@wavemaker/app-rn-runtime 11.10.2-rc.6065 → 11.10.3-next.25128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/carousel.component.js +1 -1
- package/components/advanced/carousel/carousel.component.js.map +1 -1
- package/components/advanced/carousel/carousel.props.js +1 -0
- package/components/advanced/carousel/carousel.props.js.map +1 -1
- package/components/basic/picture/picture.component.js +7 -91
- package/components/basic/picture/picture.component.js.map +1 -1
- package/components/basic/picture/picture.props.js +0 -1
- package/components/basic/picture/picture.props.js.map +1 -1
- package/components/basic/video/video.component.js +4 -34
- package/components/basic/video/video.component.js.map +1 -1
- package/components/basic/video/video.props.js +0 -1
- package/components/basic/video/video.props.js.map +1 -1
- package/components/basic/video/video.styles.js +0 -13
- package/components/basic/video/video.styles.js.map +1 -1
- package/components/data/list/list.component.js +31 -3
- package/components/data/list/list.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +3 -4
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/base.component.js.map +1 -1
- package/core/fixed-view.component.js +3 -5
- package/core/fixed-view.component.js.map +1 -1
- package/npm-shrinkwrap.json +187 -180
- package/package-lock.json +187 -180
- package/package.json +2 -2
- package/runtime/App.js +9 -18
- package/runtime/App.js.map +1 -1
@@ -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","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={this.state.props.threshold}\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":[]}
|
@@ -16,6 +16,7 @@ export default class WmCarouselProps extends BaseProps {
|
|
16
16
|
_defineProperty(this, "enablegestures", true);
|
17
17
|
_defineProperty(this, "maxnoofdots", 5);
|
18
18
|
_defineProperty(this, "showskeletonchildren", false);
|
19
|
+
_defineProperty(this, "threshold", 5);
|
19
20
|
}
|
20
21
|
}
|
21
22
|
//# sourceMappingURL=carousel.props.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["BaseProps","WmCarouselProps","constructor","args","_defineProperty"],"sources":["carousel.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport React from 'react';\n\nexport default class WmCarouselProps extends BaseProps {\n dataset: any = null;\n type?: 'static' | 'dynamic' = 'static';\n animation?: 'auto' | 'none' = 'auto';\n animationinterval?: number = 3;\n controls?: 'both' | 'none' | 'navs' | 'indicators' = 'both';\n children? = null as any;\n itemkey?: ($item: any, $index: any) => any = null as any;\n renderSlide?: ($item: any, $index: number, carousel: any) => React.ReactNode;\n enablegestures = true;\n maxnoofdots = 5;\n showskeletonchildren?: boolean = false;\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAGzE,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,kBACtC,IAAI;IAAAA,eAAA,eACW,QAAQ;IAAAA,eAAA,oBACR,MAAM;IAAAA,eAAA,4BACP,CAAC;IAAAA,eAAA,mBACuB,MAAM;IAAAA,eAAA,mBAC/C,IAAI;IAAAA,eAAA,kBAC6B,IAAI;IAAAA,eAAA;IAAAA,eAAA,yBAE/B,IAAI;IAAAA,eAAA,sBACR,CAAC;IAAAA,eAAA,+BACkB,KAAK;EAAA;
|
1
|
+
{"version":3,"names":["BaseProps","WmCarouselProps","constructor","args","_defineProperty"],"sources":["carousel.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport React from 'react';\n\nexport default class WmCarouselProps extends BaseProps {\n dataset: any = null;\n type?: 'static' | 'dynamic' = 'static';\n animation?: 'auto' | 'none' = 'auto';\n animationinterval?: number = 3;\n controls?: 'both' | 'none' | 'navs' | 'indicators' = 'both';\n children? = null as any;\n itemkey?: ($item: any, $index: any) => any = null as any;\n renderSlide?: ($item: any, $index: number, carousel: any) => React.ReactNode;\n enablegestures = true;\n maxnoofdots = 5;\n showskeletonchildren?: boolean = false;\n threshold: number = 5;\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAGzE,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,kBACtC,IAAI;IAAAA,eAAA,eACW,QAAQ;IAAAA,eAAA,oBACR,MAAM;IAAAA,eAAA,4BACP,CAAC;IAAAA,eAAA,mBACuB,MAAM;IAAAA,eAAA,mBAC/C,IAAI;IAAAA,eAAA,kBAC6B,IAAI;IAAAA,eAAA;IAAAA,eAAA,yBAE/B,IAAI;IAAAA,eAAA,sBACR,CAAC;IAAAA,eAAA,+BACkB,KAAK;IAAAA,eAAA,oBAClB,CAAC;EAAA;AACvB","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 (!
|
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 (
|
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
|
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
|
-
|
229
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|