@wavemaker/app-rn-runtime 11.10.3-next.27794 → 11.10.3-next.27802

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 (44) hide show
  1. package/components/advanced/carousel/carousel.component.js +0 -1
  2. package/components/advanced/carousel/carousel.component.js.map +1 -1
  3. package/components/basic/picture/picture.component.js +7 -91
  4. package/components/basic/picture/picture.component.js.map +1 -1
  5. package/components/basic/picture/picture.props.js +0 -1
  6. package/components/basic/picture/picture.props.js.map +1 -1
  7. package/components/basic/video/video.component.js +4 -34
  8. package/components/basic/video/video.component.js.map +1 -1
  9. package/components/basic/video/video.props.js +0 -1
  10. package/components/basic/video/video.props.js.map +1 -1
  11. package/components/basic/video/video.styles.js +0 -13
  12. package/components/basic/video/video.styles.js.map +1 -1
  13. package/components/chart/area-chart/area-chart.component.js +23 -31
  14. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  15. package/components/chart/bar-chart/bar-chart.component.js +23 -31
  16. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  17. package/components/chart/basechart.component.js +10 -3
  18. package/components/chart/basechart.component.js.map +1 -1
  19. package/components/chart/bubble-chart/bubble-chart.component.js +23 -31
  20. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  21. package/components/chart/line-chart/line-chart.component.js +23 -31
  22. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  23. package/components/chart/pie-chart/pie-chart.component.js +22 -29
  24. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  25. package/components/chart/stack-chart/stack-chart.component.js +26 -36
  26. package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  27. package/components/page/page-content/page-content.component.js +3 -4
  28. package/components/page/page-content/page-content.component.js.map +1 -1
  29. package/core/AppConfig.js.map +1 -1
  30. package/core/base.component.js +3 -7
  31. package/core/base.component.js.map +1 -1
  32. package/core/fixed-view.component.js +3 -5
  33. package/core/fixed-view.component.js.map +1 -1
  34. package/core/utils.js +5 -5
  35. package/core/utils.js.map +1 -1
  36. package/gestures/swipe.animation.js +7 -10
  37. package/gestures/swipe.animation.js.map +1 -1
  38. package/npm-shrinkwrap.json +39 -32
  39. package/package-lock.json +39 -32
  40. package/package.json +2 -2
  41. package/runtime/App.js +9 -18
  42. package/runtime/App.js.map +1 -1
  43. package/styles/style-props.js +1 -9
  44. package/styles/style-props.js.map +1 -1
@@ -285,7 +285,6 @@ export default class WmCarousel extends BaseComponent {
285
285
  flex: 1
286
286
  },
287
287
  direction: "horizontal",
288
- threshold: 5,
289
288
  ref: r => {
290
289
  this.animationView = r;
291
290
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","isArray","isUndefined","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","_this$animationView","animationView","setPosition","index","prevIndex","updateState","invokeEventCallback","animatePagination","item","type","renderSlide","children","data","dataset","length","_this$animationView2","_this$animationView3","goToUpper","_this$animationView4","goToLower","cleanup","push","stopPlay","addSlideLayout","nativeEvent","layout","forceUpdate","generateItemKey","itemkey","_showSkeleton","keyExtractor","getKey","autoPlay","initialized","animation","animationinterval","intervalId","setInterval","next","clearInterval","setTimeout","_this$animationView5","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","_background","enableGestures","enablegestures","flex","direction","threshold","ref","r","handlers","animationHandlers","slideMinWidth","_this$animationView6","_this$animationView7","animationPhase","interpolate","inputRange","outputRange","onLayout","bind","testID","height","firstSlide","lastSlide","activeSlide","onTap","_this$animationView8","position","rippleColor","disableTouchEffect","disabletoucheffect","btnPanel","id","getTestId","iconclass","prevBtn","prev","accessibilitylabel","nextBtn"],"sources":["carousel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isArray, isUndefined } 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/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 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 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 return props.children[index];\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 this.onSlideChange(1);\n this.animationView?.setPosition(0);\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\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 = isArray(data) ? 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 style={styles.root}>\n {this._background}\n <SwipeAnimation.View\n enableGestures={props.enablegestures && this.noOfSlides > 1}\n style={{\n flex: 1\n }}\n direction='horizontal'\n threshold={5}\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n slideMinWidth={this.styles.slide.width}\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 <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 </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","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","_this$animationView","animationView","setPosition","index","prevIndex","updateState","invokeEventCallback","animatePagination","item","type","renderSlide","children","data","dataset","length","_this$animationView2","_this$animationView3","goToUpper","_this$animationView4","goToLower","cleanup","push","stopPlay","addSlideLayout","nativeEvent","layout","forceUpdate","generateItemKey","itemkey","_showSkeleton","keyExtractor","getKey","autoPlay","initialized","animation","animationinterval","intervalId","setInterval","next","clearInterval","setTimeout","_this$animationView5","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","_background","enableGestures","enablegestures","flex","direction","ref","r","handlers","animationHandlers","slideMinWidth","_this$animationView6","_this$animationView7","animationPhase","interpolate","inputRange","outputRange","onLayout","bind","testID","height","firstSlide","lastSlide","activeSlide","onTap","_this$animationView8","position","rippleColor","disableTouchEffect","disabletoucheffect","btnPanel","id","getTestId","iconclass","prevBtn","prev","accessibilitylabel","nextBtn"],"sources":["carousel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isArray, isUndefined } 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/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 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 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 return props.children[index];\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 this.onSlideChange(1);\n this.animationView?.setPosition(0);\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\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 = isArray(data) ? 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 style={styles.root}>\n {this._background}\n <SwipeAnimation.View \n enableGestures={props.enablegestures && this.noOfSlides > 1}\n style={{\n flex: 1\n }}\n direction='horizontal'\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n slideMinWidth={this.styles.slide.width}\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 <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 </View>): null}\n {hasDots && data ? this.renderPagination(data) : null}\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,8 +22,6 @@ export class WmPictureState extends BaseComponentState {
22
22
  _defineProperty(this, "naturalImageHeight", 0);
23
23
  _defineProperty(this, "imageWidth", 0);
24
24
  _defineProperty(this, "imageHeight", 0);
25
- _defineProperty(this, "originalContainerWidth", 0);
26
- _defineProperty(this, "originalContainerHeight", 0);
27
25
  }
28
26
  }
29
27
  export default class WmPicture extends BaseComponent {
@@ -31,32 +29,23 @@ export default class WmPicture extends BaseComponent {
31
29
  super(_props, DEFAULT_CLASS, new WmPictureProps());
32
30
  _defineProperty(this, "_pictureSource", null);
33
31
  _defineProperty(this, "_picturePlaceHolder", null);
34
- // The below property will be used to track and remove the calculateImageSize listenrs of individual picturesource
35
- _defineProperty(this, "_cleanupTracker", {});
36
32
  _defineProperty(this, "onViewLayoutChange", e => {
37
- var _this$styles, _this$styles2, _this$styles3;
38
33
  let imageWidth = e.nativeEvent.layout.width;
39
34
  let imageHeight = e.nativeEvent.layout.height;
40
35
  if (!imageWidth && !imageHeight) {
41
36
  return;
42
37
  }
43
- if (!((_this$styles = this.styles) !== null && _this$styles !== void 0 && _this$styles.root.height) || typeof ((_this$styles2 = this.styles) === null || _this$styles2 === void 0 ? void 0 : _this$styles2.root.height) === 'string' && !((_this$styles3 = this.styles) !== null && _this$styles3 !== void 0 && _this$styles3.root.height.includes('%'))) {
38
+ if (!this.styles.root.height || typeof this.styles.root.height === 'string' && !this.styles.root.height.includes('%')) {
44
39
  imageHeight = 0;
45
40
  }
46
- if (this.state.props.aspectratio && !imageHeight && imageWidth) {
47
- imageHeight = imageWidth / parseFloat(this.state.props.aspectratio);
48
- } else if (this.state.props.aspectratio && !imageWidth && imageHeight) {
49
- imageWidth = imageWidth * parseFloat(this.state.props.aspectratio);
50
- } else if (imageWidth && !imageHeight) {
41
+ if (imageWidth && !imageHeight) {
51
42
  imageHeight = imageWidth * this.state.naturalImageHeight / this.state.naturalImageWidth;
52
43
  } else if (imageHeight && !imageWidth) {
53
44
  imageWidth = imageHeight * this.state.naturalImageWidth / this.state.naturalImageHeight;
54
45
  }
55
46
  this.updateState({
56
47
  imageWidth: imageWidth,
57
- imageHeight: imageHeight,
58
- originalContainerWidth: this.styles.root.width ? e.nativeEvent.layout.width : 0,
59
- originalContainerHeight: this.styles.root.height ? e.nativeEvent.layout.height : 0
48
+ imageHeight: imageHeight
60
49
  });
61
50
  });
62
51
  _defineProperty(this, "showImage", (imageElement, props) => {
@@ -74,9 +63,6 @@ export default class WmPicture extends BaseComponent {
74
63
  if (imageSrc && typeof imageSrc === 'object' && typeof imageSrc.default === 'function') {
75
64
  return null;
76
65
  }
77
- if (this.state.props.aspectratio) {
78
- return imageSrc;
79
- }
80
66
  if (isNumber(imageSrc)) {
81
67
  const {
82
68
  width,
@@ -94,30 +80,10 @@ export default class WmPicture extends BaseComponent {
94
80
  });
95
81
  this.cleanup.splice(this.cleanup.indexOf(cancel), 1);
96
82
  });
97
- if (this.props.picturesource && this._cleanupTracker[this.props.picturesource]) {
98
- this._cleanupTracker[this.props.picturesource].push(cancel);
99
- } else if (this.props.picturesource && !this._cleanupTracker[this.props.picturesource]) {
100
- this._cleanupTracker[this.props.picturesource] = [];
101
- this._cleanupTracker[this.props.picturesource].push(cancel);
102
- }
103
83
  this.cleanup.push(cancel);
104
84
  }
105
85
  return imageSrc;
106
86
  }
107
-
108
- // Check if the image source prop is changed from previous update to remove all listeners
109
- componentDidUpdate(prevProps, prevState, snapshot) {
110
- if (this.state.props.picturesource !== prevProps.picturesource) {
111
- if (prevProps.picturesource && this._cleanupTracker[prevProps.picturesource]) {
112
- this._cleanupTracker[prevProps.picturesource].forEach(func => {
113
- func();
114
- });
115
- this._cleanupTracker[prevProps.picturesource] = [];
116
- delete this._cleanupTracker[prevProps.picturesource];
117
- }
118
- }
119
- super.componentDidUpdate(prevProps, prevState);
120
- }
121
87
  onPropertyChange(name, $new, $old) {
122
88
  switch (name) {
123
89
  case 'picturesource':
@@ -163,7 +129,7 @@ export default class WmPicture extends BaseComponent {
163
129
  } else {
164
130
  source = imgSrc;
165
131
  }
166
- if (this.state.naturalImageWidth || this.state.props.aspectratio) {
132
+ if (this.state.naturalImageWidth) {
167
133
  elementToshow = /*#__PURE__*/React.createElement(Image, _extends({}, this.getTestProps('picture'), {
168
134
  style: [this.styles.picture, shapeStyles.picture],
169
135
  resizeMode: props.resizemode,
@@ -186,60 +152,10 @@ export default class WmPicture extends BaseComponent {
186
152
  height: skeletonHeight
187
153
  });
188
154
  }
189
- //TODO: remove the re calculation logic later. Keeping it as an extra safety.
190
- calculateBasedOnaspectratio() {
191
- if (this.state.props.aspectratio) {
192
- if (this.state.originalContainerWidth) {
193
- return {
194
- imageHeight: this.state.originalContainerWidth / parseFloat(this.state.props.aspectratio),
195
- imageWidth: this.state.originalContainerWidth
196
- };
197
- } else if (this.state.originalContainerHeight) {
198
- return {
199
- imageHeight: this.state.originalContainerHeight,
200
- imageWidth: this.state.originalContainerHeight * parseFloat(this.state.props.aspectratio)
201
- };
202
- }
203
- }
204
- return null;
205
- }
206
-
207
- //TODO: remove the re calculation logic later. Keeping it as an extra safety.
208
- calculateBasedOnNaturalDimensions() {
209
- // No need to calculate width & height if the user already passign them explicitly from props.
210
- const widthAndHeightExistsInProps = this.styles.root.width && this.styles.root.height;
211
- if (!this.state.props.aspectratio && !widthAndHeightExistsInProps) {
212
- if (this.state.originalContainerWidth) {
213
- return {
214
- imageHeight: this.state.originalContainerWidth * this.state.naturalImageHeight / this.state.naturalImageWidth,
215
- imageWidth: this.state.originalContainerWidth
216
- };
217
- } else if (this.state.originalContainerHeight) {
218
- return {
219
- imageHeight: this.state.originalContainerHeight,
220
- imageWidth: this.state.originalContainerHeight * this.state.naturalImageWidth / this.state.naturalImageHeight
221
- };
222
- }
223
- }
224
- return null;
225
- }
226
155
  renderWidget(props) {
227
156
  var _shapeStyles$picture4;
228
- let imageWidth = this.state.imageWidth;
229
- let imageHeight = this.state.imageHeight;
230
-
231
- //TODO: remove the re calculation logic later. Keeping it as an extra safety.
232
- const aspectDimensions = this.calculateBasedOnaspectratio();
233
- const naturalDimensions = this.calculateBasedOnNaturalDimensions();
234
- if (aspectDimensions) {
235
- const dimensions = aspectDimensions;
236
- imageWidth = dimensions.imageWidth;
237
- imageHeight = dimensions.imageHeight;
238
- } else if (naturalDimensions) {
239
- const dimensions = naturalDimensions;
240
- imageHeight = dimensions.imageHeight;
241
- imageWidth = dimensions.imageWidth;
242
- }
157
+ const imageWidth = this.state.imageWidth;
158
+ const imageHeight = this.state.imageHeight;
243
159
  const shapeStyles = this.createShape(props.shape, imageWidth);
244
160
  this._pictureSource = this._pictureSource || this.loadImage(props.picturesource);
245
161
  this._picturePlaceHolder = props.fastload ? this._pictureSource || this._picturePlaceHolder || this.loadImage(props.pictureplaceholder) : this._picturePlaceHolder || this.loadImage(props.pictureplaceholder);
@@ -248,7 +164,7 @@ export default class WmPicture extends BaseComponent {
248
164
  if (imgSrc) {
249
165
  elementToshow = this.getElementToShow(props, imgSrc, shapeStyles);
250
166
  }
251
- return imgSrc && (this.state.naturalImageWidth || props.isSvg || props.aspectratio) ? /*#__PURE__*/React.createElement(View, {
167
+ return imgSrc && (this.state.naturalImageWidth || props.isSvg) ? /*#__PURE__*/React.createElement(View, {
252
168
  style: [{
253
169
  width: imageWidth,
254
170
  height: imageHeight
@@ -1 +1 @@
1
- {"version":3,"names":["React","Image","View","isNumber","Tappable","BaseComponent","BaseComponentState","ImageSizeEstimator","isFullPathUrl","AccessibilityWidgetType","getAccessibilityProps","WmPictureProps","DEFAULT_CLASS","Animatedview","createSkeleton","WmPictureState","constructor","args","_defineProperty","WmPicture","props","e","_this$styles","_this$styles2","_this$styles3","imageWidth","nativeEvent","layout","width","imageHeight","height","styles","root","includes","state","aspectratio","parseFloat","naturalImageHeight","naturalImageWidth","updateState","originalContainerWidth","originalContainerHeight","imageElement","fastload","loadImage","image","loadAsset","imageSrc","default","resolveAssetSource","cancel","getSize","cleanup","splice","indexOf","picturesource","_cleanupTracker","push","componentDidUpdate","prevProps","prevState","snapshot","forEach","func","onPropertyChange","name","$new","$old","_pictureSource","_picturePlaceHolder","createShape","shape","picture","borderRadius","theme","getStyle","getElementToShow","imgSrc","shapeStyles","elementToshow","source","imgStyle","resizemode","createElement","uri","_extends","getTestProps","style","resizeMode","PICTURE","renderSkeleton","_this$styles$root","_shapeStyles$root","_shapeStyles$picture","_this$styles$root2","_shapeStyles$root2","_shapeStyles$picture2","_this$styles$root3","_shapeStyles$picture3","_shapeStyles$root3","_this$styles$root4","skeletonWidth","skeletonwidth","skeletonHeight","skeletonheight","skeleton","calculateBasedOnaspectratio","calculateBasedOnNaturalDimensions","widthAndHeightExistsInProps","renderWidget","_shapeStyles$picture4","aspectDimensions","naturalDimensions","dimensions","pictureplaceholder","isSvg","_background","overflow","onLayout","onViewLayoutChange","disableTouchEffect","disabletoucheffect","getTestPropsForAction","rippleColor","target","entryanimation","animation","delay","animationdelay","showImage"],"sources":["picture.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Image, LayoutChangeEvent, View } from 'react-native';\n// import { NumberProp, SvgUri } from 'react-native-svg';\nimport { isNumber, isString } from 'lodash-es';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport ImageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\nimport WmPictureProps from './picture.props';\nimport { DEFAULT_CLASS, WmPictureStyles } from './picture.styles';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmPictureState extends BaseComponentState<WmPictureProps> {\n naturalImageWidth: number = 0;\n naturalImageHeight: number = 0;\n imageWidth: number = 0;\n imageHeight: number = 0;\n originalContainerWidth: number = 0;\n originalContainerHeight: number = 0;\n}\n\nexport default class WmPicture extends BaseComponent<WmPictureProps, WmPictureState, WmPictureStyles> {\n\n private _pictureSource = null as any;\n private _picturePlaceHolder = null as any;\n\n // The below property will be used to track and remove the calculateImageSize listenrs of individual picturesource\n private _cleanupTracker = {} as any\n\n constructor(props: WmPictureProps) {\n super(props, DEFAULT_CLASS, new WmPictureProps());\n }\n\n loadImage(image: string | undefined) {\n if (!image || !this.loadAsset) {\n return null;\n }\n const imageSrc = this.loadAsset(image) as any;\n if (imageSrc && typeof imageSrc === 'object' && typeof imageSrc.default === 'function') {\n return null;\n }\n if(this.state.props.aspectratio) {\n return imageSrc;\n }\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.updateState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as WmPictureState);\n } else if (imageSrc !== null) {\n const cancel = ImageSizeEstimator.getSize(imageSrc, (width: number, height: number) => {\n this.updateState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as WmPictureState);\n this.cleanup.splice(this.cleanup.indexOf(cancel), 1);\n });\n if(this.props.picturesource && this._cleanupTracker[this.props.picturesource]) {\n this._cleanupTracker[this.props.picturesource].push(cancel)\n } else if(this.props.picturesource && !this._cleanupTracker[this.props.picturesource]) {\n this._cleanupTracker[this.props.picturesource] = [];\n this._cleanupTracker[this.props.picturesource].push(cancel)\n }\n this.cleanup.push(cancel);\n }\n return imageSrc;\n }\n\n // Check if the image source prop is changed from previous update to remove all listeners\n componentDidUpdate(prevProps: Readonly<WmPictureProps>, prevState: Readonly<WmPictureState>, snapshot?: any): void {\n if(this.state.props.picturesource !== prevProps.picturesource) {\n if(prevProps.picturesource && this._cleanupTracker[prevProps.picturesource]) {\n this._cleanupTracker[prevProps.picturesource].forEach((func: any) => {\n func();\n }); \n this._cleanupTracker[prevProps.picturesource] = []\n delete this._cleanupTracker[prevProps.picturesource] \n }\n }\n super.componentDidUpdate(prevProps, prevState)\n }\n\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch(name) {\n case 'picturesource':\n this._pictureSource = null;\n case 'pictureplaceholder':\n this._picturePlaceHolder = null;\n break;\n }\n }\n\n onViewLayoutChange = (e: LayoutChangeEvent) => {\n let imageWidth = e.nativeEvent.layout.width;\n let imageHeight = e.nativeEvent.layout.height;\n if (!imageWidth && !imageHeight) {\n return;\n }\n if (!this.styles?.root.height\n || (typeof this.styles?.root.height === 'string'\n && !this.styles?.root.height.includes('%'))) {\n imageHeight = 0;\n }\n if(this.state.props.aspectratio && !imageHeight && imageWidth) {\n imageHeight = imageWidth / parseFloat(this.state.props.aspectratio as string)\n } else if (this.state.props.aspectratio && !imageWidth && imageHeight) {\n imageWidth = imageWidth * parseFloat(this.state.props.aspectratio as string)\n } else if (imageWidth && !imageHeight) {\n imageHeight = imageWidth * this.state.naturalImageHeight / this.state.naturalImageWidth;\n } else if (imageHeight && !imageWidth) {\n imageWidth = imageHeight * this.state.naturalImageWidth / this.state.naturalImageHeight;\n }\n this.updateState({\n imageWidth: imageWidth,\n imageHeight: imageHeight,\n originalContainerWidth: this.styles.root.width ? e.nativeEvent.layout.width : 0,\n originalContainerHeight: this.styles.root.height ? e.nativeEvent.layout.height: 0\n } as WmPictureState);\n };\n\n createShape(shape: string | undefined, imageWidth?: number | string): WmPictureStyles {\n if (shape) {\n switch(shape) {\n case 'circle':\n return {\n picture: {\n borderRadius: isNumber(imageWidth) ? imageWidth / 2 : 4\n }\n } as WmPictureStyles;\n case 'rounded' :\n return (this.theme.getStyle('rounded-image') as WmPictureStyles);\n case 'thumbnail' :\n return (this.theme.getStyle('thumbnail-image') as WmPictureStyles);\n }\n }\n return {} as WmPictureStyles;\n }\n\n getElementToShow(props: WmPictureProps, imgSrc: any, shapeStyles: WmPictureStyles) {\n let elementToshow, source;\n if (imgSrc && typeof imgSrc === 'object' && typeof imgSrc?.default === 'function') {\n let imgStyle : any = {};\n if (props.resizemode === 'contain') {\n imgStyle['width'] = '100%';\n imgStyle['height'] = '100%';\n }\n elementToshow = React.createElement(imgSrc?.default, imgStyle);\n //} else if (!isWebPreviewMode() && props.isSvg) {\n // svg from uri\n // elementToshow = <SvgUri testID={this.getTestId('picture')} width={this.styles.root.width as NumberProp} height={this.styles.root.height as NumberProp} uri={imgSrc}/>;\n } else if (isFullPathUrl(imgSrc)) {\n source = {\n uri: imgSrc\n };\n } else {\n source = imgSrc;\n }\n if (this.state.naturalImageWidth || this.state.props.aspectratio) {\n elementToshow = (\n <Image\n {...this.getTestProps('picture')}\n style={[this.styles.picture, shapeStyles.picture]}\n resizeMode={props.resizemode}\n source={source}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, props)}\n />\n );\n }\n return elementToshow;\n }\n\n public renderSkeleton(props: WmPictureProps){\n const imageWidth = this.state.imageWidth;\n const imageHeight = this.state.imageHeight;\n const shapeStyles = this.createShape(this.props.shape, imageWidth);\n const skeletonWidth = this.props.skeletonwidth || this.styles.root?.width || shapeStyles.root?.width || shapeStyles.picture?.width || imageWidth;\n const skeletonHeight = this.props.skeletonheight || this.styles.root?.height || shapeStyles.root?.height || shapeStyles.picture?.height || imageHeight;\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n borderRadius: this.props.shape == 'circle' && this.styles.root?.width ? 25 : shapeStyles.picture?.borderRadius || shapeStyles.root?.borderRadius || this.styles.root?.borderRadius || 4,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n\n showImage = (imageElement: any, props: WmPictureProps) => {\n if(props.fastload){\n return imageElement;\n }\n return this.state.imageWidth ? imageElement : null\n }\n\n\n //TODO: remove the re calculation logic later. Keeping it as an extra safety. \n calculateBasedOnaspectratio(): {imageWidth: number, imageHeight: number} | null {\n if(this.state.props.aspectratio) {\n if(this.state.originalContainerWidth) {\n return {\n imageHeight: this.state.originalContainerWidth / parseFloat(this.state.props.aspectratio as string),\n imageWidth: this.state.originalContainerWidth\n }\n } else if(this.state.originalContainerHeight) {\n return {\n imageHeight: this.state.originalContainerHeight, \n imageWidth: this.state.originalContainerHeight * parseFloat(this.state.props.aspectratio as string),\n }\n }\n }\n return null\n }\n \n //TODO: remove the re calculation logic later. Keeping it as an extra safety. \n calculateBasedOnNaturalDimensions(): {imageWidth: number, imageHeight: number} | null {\n // No need to calculate width & height if the user already passign them explicitly from props. \n const widthAndHeightExistsInProps = this.styles.root.width && this.styles.root.height\n if(!this.state.props.aspectratio && !widthAndHeightExistsInProps) {\n if(this.state.originalContainerWidth) {\n return {\n imageHeight: this.state.originalContainerWidth * this.state.naturalImageHeight / this.state.naturalImageWidth,\n imageWidth: this.state.originalContainerWidth\n }\n } else if(this.state.originalContainerHeight) {\n return {\n imageHeight: this.state.originalContainerHeight, \n imageWidth: this.state.originalContainerHeight * this.state.naturalImageWidth / this.state.naturalImageHeight\n }\n }\n }\n return null\n }\n \n\n renderWidget(props: WmPictureProps) {\n let imageWidth = this.state.imageWidth;\n let imageHeight = this.state.imageHeight;\n\n\n //TODO: remove the re calculation logic later. Keeping it as an extra safety. \n const aspectDimensions = this.calculateBasedOnaspectratio();\n const naturalDimensions = this.calculateBasedOnNaturalDimensions();\n if(aspectDimensions) {\n const dimensions = aspectDimensions as {imageWidth: number, imageHeight: number}\n imageWidth = dimensions.imageWidth;\n imageHeight = dimensions.imageHeight\n } else if(naturalDimensions) {\n const dimensions = naturalDimensions as {imageWidth: number, imageHeight: number}\n imageHeight = dimensions.imageHeight\n imageWidth = dimensions.imageWidth\n }\n const shapeStyles = this.createShape(props.shape, imageWidth);\n this._pictureSource = this._pictureSource || this.loadImage(props.picturesource);\n this._picturePlaceHolder = props.fastload ? \n (this._pictureSource || this._picturePlaceHolder || this.loadImage(props.pictureplaceholder)) :\n (this._picturePlaceHolder || this.loadImage(props.pictureplaceholder));\n const imgSrc: any = this._pictureSource || this._picturePlaceHolder;\n let elementToshow;\n if (imgSrc) {\n elementToshow = this.getElementToShow(props, imgSrc, shapeStyles);\n }\n return imgSrc && (this.state.naturalImageWidth || props.isSvg || props.aspectratio) ? (\n <View style={[{\n width: imageWidth,\n height: imageHeight\n }, this.styles.root, shapeStyles.root, shapeStyles.picture]}>\n {this._background}\n <View style={[{overflow: 'hidden', width: '100%',\n height: '100%'}]} onLayout={this.onViewLayoutChange}>\n <Tappable\n disableTouchEffect={this.state.props.disabletoucheffect}\n {...this.getTestPropsForAction()}\n rippleColor={this.styles.root.rippleColor}\n target={this} styles={{width: imageWidth ? null : '100%', height: imageHeight ? null : '100%'}}>\n <Animatedview entryanimation={props.animation} delay={props.animationdelay} style={[{\n height: imageHeight,\n width: imageWidth,\n borderRadius: shapeStyles.picture?.borderRadius\n }]}>\n {this.showImage(elementToshow, props)}\n </Animatedview>\n </Tappable>\n </View>\n </View>\n ): null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Image","View","isNumber","Tappable","BaseComponent","BaseComponentState","ImageSizeEstimator","isFullPathUrl","AccessibilityWidgetType","getAccessibilityProps","WmPictureProps","DEFAULT_CLASS","Animatedview","createSkeleton","WmPictureState","constructor","args","_defineProperty","WmPicture","props","e","imageWidth","nativeEvent","layout","width","imageHeight","height","styles","root","includes","state","naturalImageHeight","naturalImageWidth","updateState","imageElement","fastload","loadImage","image","loadAsset","imageSrc","default","resolveAssetSource","cancel","getSize","cleanup","splice","indexOf","push","onPropertyChange","name","$new","$old","_pictureSource","_picturePlaceHolder","createShape","shape","picture","borderRadius","theme","getStyle","getElementToShow","imgSrc","shapeStyles","elementToshow","source","imgStyle","resizemode","createElement","uri","_extends","getTestProps","style","resizeMode","PICTURE","renderSkeleton","_this$styles$root","_shapeStyles$root","_shapeStyles$picture","_this$styles$root2","_shapeStyles$root2","_shapeStyles$picture2","_this$styles$root3","_shapeStyles$picture3","_shapeStyles$root3","_this$styles$root4","skeletonWidth","skeletonwidth","skeletonHeight","skeletonheight","skeleton","renderWidget","_shapeStyles$picture4","picturesource","pictureplaceholder","isSvg","_background","overflow","onLayout","onViewLayoutChange","disableTouchEffect","disabletoucheffect","getTestPropsForAction","rippleColor","target","entryanimation","animation","delay","animationdelay","showImage"],"sources":["picture.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Image, LayoutChangeEvent, View } from 'react-native';\n// import { NumberProp, SvgUri } from 'react-native-svg';\nimport { isNumber, isString } from 'lodash-es';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport ImageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\nimport WmPictureProps from './picture.props';\nimport { DEFAULT_CLASS, WmPictureStyles } from './picture.styles';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmPictureState extends BaseComponentState<WmPictureProps> {\n naturalImageWidth: number = 0;\n naturalImageHeight: number = 0;\n imageWidth: number = 0;\n imageHeight: number = 0;\n}\n\nexport default class WmPicture extends BaseComponent<WmPictureProps, WmPictureState, WmPictureStyles> {\n\n private _pictureSource = null as any;\n private _picturePlaceHolder = null as any;\n\n constructor(props: WmPictureProps) {\n super(props, DEFAULT_CLASS, new WmPictureProps());\n }\n\n loadImage(image: string | undefined) {\n if (!image || !this.loadAsset) {\n return null;\n }\n const imageSrc = this.loadAsset(image) as any;\n if (imageSrc && typeof imageSrc === 'object' && typeof imageSrc.default === 'function') {\n return null;\n }\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.updateState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as WmPictureState);\n } else if (imageSrc !== null) {\n const cancel = ImageSizeEstimator.getSize(imageSrc, (width: number, height: number) => {\n this.updateState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as WmPictureState);\n this.cleanup.splice(this.cleanup.indexOf(cancel), 1);\n });\n this.cleanup.push(cancel);\n }\n return imageSrc;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch(name) {\n case 'picturesource':\n this._pictureSource = null;\n case 'pictureplaceholder':\n this._picturePlaceHolder = null;\n break;\n }\n }\n\n onViewLayoutChange = (e: LayoutChangeEvent) => {\n let imageWidth = e.nativeEvent.layout.width;\n let imageHeight = e.nativeEvent.layout.height;\n if (!imageWidth && !imageHeight) {\n return;\n }\n if (!this.styles.root.height\n || (typeof this.styles.root.height === 'string'\n && !this.styles.root.height.includes('%'))) {\n imageHeight = 0;\n }\n if (imageWidth && !imageHeight) {\n imageHeight = imageWidth * this.state.naturalImageHeight / this.state.naturalImageWidth;\n } else if (imageHeight && !imageWidth) {\n imageWidth = imageHeight * this.state.naturalImageWidth / this.state.naturalImageHeight;\n }\n this.updateState({\n imageWidth: imageWidth,\n imageHeight: imageHeight\n } as WmPictureState);\n };\n\n createShape(shape: string | undefined, imageWidth?: number | string): WmPictureStyles {\n if (shape) {\n switch(shape) {\n case 'circle':\n return {\n picture: {\n borderRadius: isNumber(imageWidth) ? imageWidth / 2 : 4\n }\n } as WmPictureStyles;\n case 'rounded' :\n return (this.theme.getStyle('rounded-image') as WmPictureStyles);\n case 'thumbnail' :\n return (this.theme.getStyle('thumbnail-image') as WmPictureStyles);\n }\n }\n return {} as WmPictureStyles;\n }\n\n getElementToShow(props: WmPictureProps, imgSrc: any, shapeStyles: WmPictureStyles) {\n let elementToshow, source;\n if (imgSrc && typeof imgSrc === 'object' && typeof imgSrc?.default === 'function') {\n let imgStyle : any = {};\n if (props.resizemode === 'contain') {\n imgStyle['width'] = '100%';\n imgStyle['height'] = '100%';\n }\n elementToshow = React.createElement(imgSrc?.default, imgStyle);\n //} else if (!isWebPreviewMode() && props.isSvg) {\n // svg from uri\n // elementToshow = <SvgUri testID={this.getTestId('picture')} width={this.styles.root.width as NumberProp} height={this.styles.root.height as NumberProp} uri={imgSrc}/>;\n } else if (isFullPathUrl(imgSrc)) {\n source = {\n uri: imgSrc\n };\n } else {\n source = imgSrc;\n }\n if (this.state.naturalImageWidth) {\n elementToshow = (\n <Image\n {...this.getTestProps('picture')}\n style={[this.styles.picture, shapeStyles.picture]}\n resizeMode={props.resizemode}\n source={source}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, props)}\n />\n );\n }\n return elementToshow;\n }\n\n public renderSkeleton(props: WmPictureProps){\n const imageWidth = this.state.imageWidth;\n const imageHeight = this.state.imageHeight;\n const shapeStyles = this.createShape(this.props.shape, imageWidth);\n const skeletonWidth = this.props.skeletonwidth || this.styles.root?.width || shapeStyles.root?.width || shapeStyles.picture?.width || imageWidth;\n const skeletonHeight = this.props.skeletonheight || this.styles.root?.height || shapeStyles.root?.height || shapeStyles.picture?.height || imageHeight;\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n borderRadius: this.props.shape == 'circle' && this.styles.root?.width ? 25 : shapeStyles.picture?.borderRadius || shapeStyles.root?.borderRadius || this.styles.root?.borderRadius || 4,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n\n showImage = (imageElement: any, props: WmPictureProps) => {\n if(props.fastload){\n return imageElement;\n }\n return this.state.imageWidth ? imageElement : null\n }\n\n renderWidget(props: WmPictureProps) {\n const imageWidth = this.state.imageWidth;\n const imageHeight = this.state.imageHeight;\n const shapeStyles = this.createShape(props.shape, imageWidth);\n this._pictureSource = this._pictureSource || this.loadImage(props.picturesource);\n this._picturePlaceHolder = props.fastload ? \n (this._pictureSource || this._picturePlaceHolder || this.loadImage(props.pictureplaceholder)) :\n (this._picturePlaceHolder || this.loadImage(props.pictureplaceholder));\n const imgSrc: any = this._pictureSource || this._picturePlaceHolder;\n let elementToshow;\n if (imgSrc) {\n elementToshow = this.getElementToShow(props, imgSrc, shapeStyles);\n }\n return imgSrc && (this.state.naturalImageWidth || props.isSvg) ? (\n <View style={[{\n width: imageWidth,\n height: imageHeight\n }, this.styles.root, shapeStyles.root, shapeStyles.picture]}>\n {this._background}\n <View style={[{overflow: 'hidden', width: '100%',\n height: '100%'}]} onLayout={this.onViewLayoutChange}>\n <Tappable\n disableTouchEffect={this.state.props.disabletoucheffect}\n {...this.getTestPropsForAction()}\n rippleColor={this.styles.root.rippleColor}\n target={this} styles={{width: imageWidth ? null : '100%', height: imageHeight ? null : '100%'}}>\n <Animatedview entryanimation={props.animation} delay={props.animationdelay} style={[{\n height: imageHeight,\n width: imageWidth,\n borderRadius: shapeStyles.picture?.borderRadius\n }]}>\n {this.showImage(elementToshow, props)}\n </Animatedview>\n </Tappable>\n </View>\n </View>\n ): null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,6 @@ export default class WmPictureProps extends BaseProps {
18
18
  _defineProperty(this, "hint", undefined);
19
19
  _defineProperty(this, "accessibilityrole", 'image');
20
20
  _defineProperty(this, "fastload", false);
21
- _defineProperty(this, "aspectratio", null);
22
21
  }
23
22
  }
24
23
  //# sourceMappingURL=picture.props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmPictureProps","constructor","args","_defineProperty","undefined"],"sources":["picture.props.ts"],"sourcesContent":["import { AccessibilityRole, ImageResizeMode } from 'react-native';\nimport { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmPictureProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n picturesource?: string = null as any;\n pictureplaceholder?: string = null as any;\n shape?: string = null as any;\n isSvg?: string = null as any;\n resizemode?: ImageResizeMode = 'stretch' as any;\n skeletonheight?: string = null as any;\n skeletonwidth?: string = null as any;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'image';\n fastload?: boolean = false;\n aspectratio?: string | number | null = null;\n}\n"],"mappings":";;;AACA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,cAAc,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC/B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,6BACC,IAAI;IAAAA,eAAA,gBACjB,IAAI;IAAAA,eAAA,gBACJ,IAAI;IAAAA,eAAA,qBACU,SAAS;IAAAA,eAAA,yBACd,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,6BACCC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,OAAO;IAAAA,eAAA,mBAC1B,KAAK;IAAAA,eAAA,sBACa,IAAI;EAAA;AAC7C","ignoreList":[]}
1
+ {"version":3,"names":["BaseProps","WmPictureProps","constructor","args","_defineProperty","undefined"],"sources":["picture.props.ts"],"sourcesContent":["import { AccessibilityRole, ImageResizeMode } from 'react-native';\nimport { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmPictureProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n picturesource?: string = null as any;\n pictureplaceholder?: string = null as any;\n shape?: string = null as any;\n isSvg?: string = null as any;\n resizemode?: ImageResizeMode = 'stretch' as any;\n skeletonheight?: string = null as any;\n skeletonwidth?: string = null as any;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'image';\n fastload?: boolean = false;\n}\n"],"mappings":";;;AACA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,cAAc,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC/B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,6BACC,IAAI;IAAAA,eAAA,gBACjB,IAAI;IAAAA,eAAA,gBACJ,IAAI;IAAAA,eAAA,qBACU,SAAS;IAAAA,eAAA,yBACd,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,6BACCC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,OAAO;IAAAA,eAAA,mBAC1B,KAAK;EAAA;AAC5B","ignoreList":[]}
@@ -3,7 +3,7 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import React from 'react';
6
- import { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';
6
+ import { View, Image, TouchableWithoutFeedback } from 'react-native';
7
7
  import { VideoView, createVideoPlayer } from 'expo-video';
8
8
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
9
9
  import WmVideoProps from './video.props';
@@ -16,7 +16,6 @@ export class WmVideoState extends BaseComponentState {
16
16
  super(...args);
17
17
  _defineProperty(this, "isVideoReady", false);
18
18
  _defineProperty(this, "playStarted", false);
19
- _defineProperty(this, "videoPosterDismissed", false);
20
19
  }
21
20
  }
22
21
  export default class WmVideo extends BaseComponent {
@@ -105,12 +104,6 @@ export default class WmVideo extends BaseComponent {
105
104
  this.player.addListener('statusChange', this.playerReadyStatusChange.bind(this));
106
105
  this.initializeProps();
107
106
  }
108
- onPlayIconTap() {
109
- this.updateState({
110
- videoPosterDismissed: true
111
- });
112
- this.player.play();
113
- }
114
107
  componentWillUnmount() {
115
108
  super.componentWillUnmount();
116
109
  this.player.removeListener('playingChange', this.playingStatusChange);
@@ -123,14 +116,12 @@ export default class WmVideo extends BaseComponent {
123
116
  videoposter,
124
117
  onFullscreenEnter,
125
118
  onFullscreenExit,
126
- requiresLinearPlayback,
127
- showdefaultvideoposter
119
+ requiresLinearPlayback
128
120
  } = props;
129
121
  const {
130
122
  playStarted
131
123
  } = this.state;
132
124
  const isPlaying = playStarted || this.state.props.autoplay;
133
- const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed;
134
125
  return /*#__PURE__*/React.createElement(View, {
135
126
  style: this.styles.root
136
127
  }, this._background, /*#__PURE__*/React.createElement(VideoView, _extends({}, getAccessibilityProps(AccessibilityWidgetType.VIDEO, props), {
@@ -140,35 +131,14 @@ export default class WmVideo extends BaseComponent {
140
131
  flex: 1
141
132
  },
142
133
  player: this.player,
143
- nativeControls: props.controls || showOverlay,
134
+ nativeControls: props.controls,
144
135
  contentFit: 'contain',
145
136
  testID: this.getTestId('video'),
146
137
  allowsPictureInPicture: allowsPictureInPicture,
147
138
  onFullscreenEnter: onFullscreenEnter,
148
139
  onFullscreenExit: onFullscreenExit,
149
140
  requiresLinearPlayback: requiresLinearPlayback
150
- })), !isPlaying && videoposter && showdefaultvideoposter ? this.renderVideoPoster(props) : /*#__PURE__*/React.createElement(React.Fragment, null), !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? /*#__PURE__*/React.createElement(View, {
151
- style: this.styles.playIconContainer
152
- }, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
153
- style: {
154
- width: 80,
155
- height: 80
156
- },
157
- onPress: this.onPlayIconTap.bind(this)
158
- }, Platform.OS === 'android' ? /*#__PURE__*/React.createElement(Image, _extends({}, this.getTestProps('video_play_button'), {
159
- style: {
160
- width: 80,
161
- height: 80
162
- },
163
- resizeMode: 'contain',
164
- source: this.getSource('resources/images/imagelists/play.png')
165
- })) : /*#__PURE__*/React.createElement(Text, {
166
- style: {
167
- fontSize: 80,
168
- fontWeight: 'bold',
169
- color: 'white'
170
- }
171
- }, "\u25B6"))) : /*#__PURE__*/React.createElement(React.Fragment, null));
141
+ })), !isPlaying && videoposter ? this.renderVideoPoster(props) : /*#__PURE__*/React.createElement(React.Fragment, null));
172
142
  }
173
143
  }
174
144
  //# sourceMappingURL=video.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Image","TouchableWithoutFeedback","Platform","Text","VideoView","createVideoPlayer","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","WmVideoState","constructor","args","_defineProperty","WmVideo","props","getSource","path","resource","loadAsset","uri","renderVideoPoster","accessibilityImageProps","accessibilitylabel","hint","accessibilityrole","createElement","onPress","player","play","_extends","getTestProps","style","position","top","bottom","left","right","width","height","resizeMode","source","videoposter","PICTURE","renderSkeleton","theme","styles","skeleton","root","playingStatusChange","isPlaying","state","playStarted","updateState","autoplay","playerReadyStatusChange","statusObj","videoReady","status","isVideoReady","initializeProps","loop","muted","showNowPlayingNotification","componentDidMount","mp4format","webmformat","videoSource","addListener","bind","onPlayIconTap","videoPosterDismissed","componentWillUnmount","removeListener","release","renderWidget","allowsPictureInPicture","onFullscreenEnter","onFullscreenExit","requiresLinearPlayback","showdefaultvideoposter","showOverlay","_background","VIDEO","flex","nativeControls","controls","contentFit","testID","getTestId","Fragment","playIconContainer","OS","fontSize","fontWeight","color"],"sources":["video.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';\nimport { VideoView, createVideoPlayer } from 'expo-video';\nimport {\n BaseComponent,\n BaseComponentState,\n} from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmVideoProps from './video.props';\nimport { DEFAULT_CLASS, WmVideoStyles } from './video.styles';\nimport {\n AccessibilityWidgetType,\n getAccessibilityProps,\n} from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmVideoState extends BaseComponentState<WmVideoProps> {\n isVideoReady: boolean = false;\n playStarted: boolean = false;\n videoPosterDismissed: boolean = false;\n}\n\nexport default class WmVideo extends BaseComponent<\n WmVideoProps,\n WmVideoState,\n WmVideoStyles\n> {\n private player: any;\n\n constructor(props: WmVideoProps) {\n super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());\n }\n\n getSource(path: string) {\n if (!path) {\n return null;\n }\n const resource = this.loadAsset && this.loadAsset(path);\n if (isFullPathUrl(resource as string)) {\n return {\n uri: resource as string,\n };\n }\n return resource || {\n uri: ''\n };\n }\n\n renderVideoPoster(props: WmVideoProps) {\n const accessibilityImageProps = {...props, \n accessibilitylabel : `${props.accessibilitylabel}_poster`,\n hint: `${props.hint}_poster`,\n accessibilityrole: `${props.accessibilityrole}_poster`,\n }\n return (\n <TouchableWithoutFeedback onPress={() => this.player.play()}>\n <Image\n {...this.getTestProps('video_poster')}\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n }}\n resizeMode={'cover'}\n source={this.getSource(props.videoposter) as any}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, accessibilityImageProps)}\n />\n </TouchableWithoutFeedback>\n );\n }\n\n\n public renderSkeleton(props: WmVideoProps): React.ReactNode {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n });\n }\n\n public playingStatusChange(isPlaying: boolean) {\n if (!this.state.playStarted) {\n this.updateState({\n playStarted: this.state.props.autoplay || isPlaying,\n } as WmVideoState);\n }\n }\n\n playerReadyStatusChange(statusObj: any) {\n const videoReady = statusObj.status === 'readyToPlay'\n if (this.state.props.autoplay && videoReady) {\n this.player.play();\n }\n this.updateState({\n isVideoReady: videoReady,\n } as WmVideoState);\n }\n\n initializeProps(){\n const {\n loop,\n muted,\n showNowPlayingNotification,\n } = this.state.props\n\n this.player.muted = muted; \n this.player.loop = loop; \n this.player.showNowPlayingNotification = showNowPlayingNotification; \n }\n\n componentDidMount(): void {\n super.componentDidMount();\n const { mp4format, webmformat, autoplay } = this.state.props;\n const videoSource = this.getSource(mp4format || webmformat) ;\n\n this.player = createVideoPlayer(videoSource);\n this.player.addListener(\n 'playingChange',\n this.playingStatusChange.bind(this)\n );\n this.player.addListener(\n 'statusChange',\n this.playerReadyStatusChange.bind(this)\n ); \n this.initializeProps()\n }\n\n onPlayIconTap() {\n this.updateState({\n videoPosterDismissed: true\n } as WmVideoState)\n this.player.play()\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.player.removeListener('playingChange', this.playingStatusChange);\n this.player.removeListener('statusChange', this.playerReadyStatusChange);\n this.player.release();\n }\n\n renderWidget(props: WmVideoProps) {\n const {\n allowsPictureInPicture,\n videoposter,\n onFullscreenEnter,\n onFullscreenExit,\n requiresLinearPlayback,\n showdefaultvideoposter\n } = props;\n\n const { playStarted } = this.state;\n const isPlaying = playStarted || this.state.props.autoplay;\n const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed\n\n return (\n <View style={this.styles.root}>\n {this._background}\n <VideoView\n {...getAccessibilityProps(AccessibilityWidgetType.VIDEO, props)}\n style={{ width: '100%', height: '100%', flex: 1 }}\n player={this.player}\n nativeControls={props.controls || showOverlay}\n contentFit={'contain'}\n testID={this.getTestId('video')}\n allowsPictureInPicture={allowsPictureInPicture}\n onFullscreenEnter={onFullscreenEnter}\n onFullscreenExit={onFullscreenExit}\n requiresLinearPlayback={requiresLinearPlayback}\n />\n {!isPlaying && videoposter && showdefaultvideoposter ? (\n this.renderVideoPoster(props)\n ) : (\n <></>\n )}\n {\n !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? (\n <View style={this.styles.playIconContainer}>\n <TouchableWithoutFeedback style={{width: 80, height: 80 }} onPress={this.onPlayIconTap.bind(this)}>\n {Platform.OS === 'android' ? <Image\n {...this.getTestProps('video_play_button')}\n style={{\n width: 80, \n height: 80,\n }}\n resizeMode={'contain'}\n source={this.getSource('resources/images/imagelists/play.png') as any}\n /> : <Text style={{ fontSize: 80, fontWeight: 'bold', color: 'white'}} >▶</Text> } \n </TouchableWithoutFeedback>\n </View> \n ) : (\n <></>\n )\n }\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Image","TouchableWithoutFeedback","VideoView","createVideoPlayer","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","WmVideoState","constructor","args","_defineProperty","WmVideo","props","getSource","path","resource","loadAsset","uri","renderVideoPoster","accessibilityImageProps","accessibilitylabel","hint","accessibilityrole","createElement","onPress","player","play","_extends","getTestProps","style","position","top","bottom","left","right","width","height","resizeMode","source","videoposter","PICTURE","renderSkeleton","theme","styles","skeleton","root","playingStatusChange","isPlaying","state","playStarted","updateState","autoplay","playerReadyStatusChange","statusObj","videoReady","status","isVideoReady","initializeProps","loop","muted","showNowPlayingNotification","componentDidMount","mp4format","webmformat","videoSource","addListener","bind","componentWillUnmount","removeListener","release","renderWidget","allowsPictureInPicture","onFullscreenEnter","onFullscreenExit","requiresLinearPlayback","_background","VIDEO","flex","nativeControls","controls","contentFit","testID","getTestId","Fragment"],"sources":["video.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Image, TouchableWithoutFeedback } from 'react-native';\nimport { VideoView, createVideoPlayer } from 'expo-video';\nimport {\n BaseComponent,\n BaseComponentState,\n} from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmVideoProps from './video.props';\nimport { DEFAULT_CLASS, WmVideoStyles } from './video.styles';\nimport {\n AccessibilityWidgetType,\n getAccessibilityProps,\n} from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmVideoState extends BaseComponentState<WmVideoProps> {\n isVideoReady: boolean = false;\n playStarted: boolean = false;\n}\n\nexport default class WmVideo extends BaseComponent<\n WmVideoProps,\n WmVideoState,\n WmVideoStyles\n> {\n private player: any;\n\n constructor(props: WmVideoProps) {\n super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());\n }\n\n getSource(path: string) {\n if (!path) {\n return null;\n }\n const resource = this.loadAsset && this.loadAsset(path);\n if (isFullPathUrl(resource as string)) {\n return {\n uri: resource as string,\n };\n }\n return resource || {\n uri: ''\n };\n }\n\n renderVideoPoster(props: WmVideoProps) {\n const accessibilityImageProps = {...props, \n accessibilitylabel : `${props.accessibilitylabel}_poster`,\n hint: `${props.hint}_poster`,\n accessibilityrole: `${props.accessibilityrole}_poster`,\n }\n return (\n <TouchableWithoutFeedback onPress={() => this.player.play()}>\n <Image\n {...this.getTestProps('video_poster')}\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n }}\n resizeMode={'cover'}\n source={this.getSource(props.videoposter) as any}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, accessibilityImageProps)}\n />\n </TouchableWithoutFeedback>\n );\n }\n\n public renderSkeleton(props: WmVideoProps): React.ReactNode {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n });\n }\n\n public playingStatusChange(isPlaying: boolean) {\n if (!this.state.playStarted) {\n this.updateState({\n playStarted: this.state.props.autoplay || isPlaying,\n } as WmVideoState);\n }\n }\n\n playerReadyStatusChange(statusObj: any) {\n const videoReady = statusObj.status === 'readyToPlay'\n if (this.state.props.autoplay && videoReady) {\n this.player.play();\n }\n this.updateState({\n isVideoReady: videoReady,\n } as WmVideoState);\n }\n\n initializeProps(){\n const {\n loop,\n muted,\n showNowPlayingNotification,\n } = this.state.props\n\n this.player.muted = muted; \n this.player.loop = loop; \n this.player.showNowPlayingNotification = showNowPlayingNotification; \n }\n\n componentDidMount(): void {\n super.componentDidMount();\n const { mp4format, webmformat, autoplay } = this.state.props;\n const videoSource = this.getSource(mp4format || webmformat) ;\n\n this.player = createVideoPlayer(videoSource);\n this.player.addListener(\n 'playingChange',\n this.playingStatusChange.bind(this)\n );\n this.player.addListener(\n 'statusChange',\n this.playerReadyStatusChange.bind(this)\n );\n\n this.initializeProps()\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.player.removeListener('playingChange', this.playingStatusChange);\n this.player.removeListener('statusChange', this.playerReadyStatusChange);\n this.player.release();\n }\n\n\n renderWidget(props: WmVideoProps) {\n const {\n allowsPictureInPicture,\n videoposter,\n onFullscreenEnter,\n onFullscreenExit,\n requiresLinearPlayback\n } = props;\n\n const { playStarted } = this.state;\n const isPlaying = playStarted || this.state.props.autoplay;\n\n return (\n <View style={this.styles.root}>\n {this._background}\n <VideoView\n {...getAccessibilityProps(AccessibilityWidgetType.VIDEO, props)}\n style={{ width: '100%', height: '100%', flex: 1 }}\n player={this.player}\n nativeControls={props.controls}\n contentFit={'contain'}\n testID={this.getTestId('video')}\n allowsPictureInPicture={allowsPictureInPicture}\n onFullscreenEnter={onFullscreenEnter}\n onFullscreenExit={onFullscreenExit}\n requiresLinearPlayback={requiresLinearPlayback}\n />\n {!isPlaying && videoposter ? (\n this.renderVideoPoster(props)\n ) : (\n <></>\n )}\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}