@wavemaker/app-rn-runtime 11.10.2-next.27746 → 11.10.2-next.27751

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 (29) hide show
  1. package/components/advanced/carousel/carousel.component.js +1 -0
  2. package/components/advanced/carousel/carousel.component.js.map +1 -1
  3. package/components/chart/area-chart/area-chart.component.js +31 -23
  4. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  5. package/components/chart/bar-chart/bar-chart.component.js +31 -23
  6. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  7. package/components/chart/basechart.component.js +3 -10
  8. package/components/chart/basechart.component.js.map +1 -1
  9. package/components/chart/bubble-chart/bubble-chart.component.js +31 -23
  10. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  11. package/components/chart/line-chart/line-chart.component.js +31 -23
  12. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  13. package/components/chart/pie-chart/pie-chart.component.js +29 -22
  14. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  15. package/components/chart/stack-chart/stack-chart.component.js +36 -26
  16. package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  17. package/core/AppConfig.js.map +1 -1
  18. package/core/base.component.js +7 -3
  19. package/core/base.component.js.map +1 -1
  20. package/core/utils.js.map +1 -1
  21. package/gestures/swipe.animation.js +10 -7
  22. package/gestures/swipe.animation.js.map +1 -1
  23. package/npm-shrinkwrap.json +62 -61
  24. package/package-lock.json +62 -61
  25. package/package.json +2 -2
  26. package/runtime/App.js +17 -7
  27. package/runtime/App.js.map +1 -1
  28. package/styles/style-props.js +10 -1
  29. package/styles/style-props.js.map +1 -1
@@ -285,6 +285,7 @@ export default class WmCarousel extends BaseComponent {
285
285
  flex: 1
286
286
  },
287
287
  direction: "horizontal",
288
+ threshold: 5,
288
289
  ref: r => {
289
290
  this.animationView = r;
290
291
  },
@@ -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","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":[]}
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":[]}
@@ -30,27 +30,33 @@ export default class WmAreaChart extends BaseChartComponent {
30
30
  });
31
31
  }
32
32
  onSelect(event, data) {
33
- let value = data.data[data.index].y;
34
- let label = this.state.xaxisDatakeyArr[data.datum.x];
35
- let selectedItem = this.props.dataset[data.index];
36
- const nativeEvent = event.nativeEvent;
37
- this.setTooltipPosition(nativeEvent);
38
- let selectedChartItem = [{
39
- series: 0,
40
- x: data.index,
41
- y: value,
42
- _dataObj: selectedItem
43
- }, data.index];
44
- this.updateState({
45
- tooltipXaxis: label,
46
- tooltipYaxis: value,
47
- isTooltipOpen: true,
48
- selectedItem: {
49
- ...selectedItem,
50
- index: data.index
51
- }
33
+ if (!this.viewRef.current) return;
34
+ this.viewRef.current.measureInWindow((chartX, chartY) => {
35
+ let value = data.data[data.index].y;
36
+ let label = this.state.xaxisDatakeyArr[data.datum.x];
37
+ let selectedItem = this.props.dataset[data.index];
38
+ const nativeEvent = event.nativeEvent;
39
+ let tooltipX = nativeEvent.pageX - chartX;
40
+ let tooltipY = nativeEvent.pageY - chartY;
41
+ let selectedChartItem = [{
42
+ series: 0,
43
+ x: data.index,
44
+ y: value,
45
+ _dataObj: selectedItem
46
+ }, data.index];
47
+ this.updateState({
48
+ tooltipXaxis: label,
49
+ tooltipYaxis: value,
50
+ isTooltipOpen: true,
51
+ selectedItem: {
52
+ ...selectedItem,
53
+ index: data.index
54
+ },
55
+ tooltipXPosition: tooltipX - this.state.tooltipoffsetx,
56
+ tooltipYPosition: tooltipY - this.state.tooltipoffsety
57
+ });
58
+ this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem]);
52
59
  });
53
- this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem]);
54
60
  }
55
61
  renderWidget(props) {
56
62
  var _this$state$data, _this$props$name;
@@ -71,7 +77,7 @@ export default class WmAreaChart extends BaseChartComponent {
71
77
  style: this.styles.root,
72
78
  onLayout: this.onViewLayoutChange.bind(this),
73
79
  key: `${props.title}_area_chart`
74
- }), this.getTooltip(), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
80
+ }), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
75
81
  style: {
76
82
  flexDirection: 'row',
77
83
  alignItems: 'center'
@@ -83,7 +89,9 @@ export default class WmAreaChart extends BaseChartComponent {
83
89
  style: this.styles.title
84
90
  }, props.title)), /*#__PURE__*/React.createElement(Text, {
85
91
  style: this.styles.subHeading
86
- }, props.subheading)), this.state.chartWidth ? /*#__PURE__*/React.createElement(VictoryChart, {
92
+ }, props.subheading)), this.state.chartWidth ? /*#__PURE__*/React.createElement(View, {
93
+ ref: this.viewRef
94
+ }, this.getTooltip(), /*#__PURE__*/React.createElement(VictoryChart, {
87
95
  theme: this.state.theme,
88
96
  height: this.styles.root.height,
89
97
  width: this.state.chartWidth || 120,
@@ -142,7 +150,7 @@ export default class WmAreaChart extends BaseChartComponent {
142
150
  }
143
151
  }]
144
152
  }));
145
- }))) : null);
153
+ })))) : null);
146
154
  }
147
155
  }
148
156
  //# sourceMappingURL=area-chart.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Color","View","Text","Platform","Defs","LinearGradient","Stop","VictoryArea","VictoryChart","VictoryStack","VictoryScatter","VictoryGroup","WmAreaChartProps","DEFAULT_CLASS","BaseChartComponent","BaseChartComponentState","WmIcon","isNumber","AccessibilityWidgetType","getAccessibilityProps","WmAreaChartState","constructor","args","_defineProperty","WmAreaChart","props","e","viewWidth","nativeEvent","layout","width","updateState","chartWidth","onSelect","event","data","value","index","y","label","state","xaxisDatakeyArr","datum","x","selectedItem","dataset","setTooltipPosition","selectedChartItem","series","_dataObj","tooltipXaxis","tooltipYaxis","isTooltipOpen","invokeEventCallback","proxy","renderWidget","_this$state$data","_this$props$name","length","mindomain","xdomain","chartMinX","undefined","ydomain","chartMinY","chartName","name","gradientStop","chartMaxY","createElement","_extends","LINECHART","style","styles","root","onLayout","onViewLayoutChange","bind","key","title","getTooltip","flexDirection","alignItems","iconclass","icon","subHeading","subheading","theme","height","padding","top","offsettop","bottom","offsetbottom","left","offsetleft","right","offsetright","minDomain","getLegendView","getXaxis","getYAxis","map","d","i","id","x1","y1","x2","y2","offset","stopColor","colors","lighten","rgb","toString","interpolation","fill","stroke","strokeWidth","linethickness","isRTL","toReversed","size","highlightpoints","opacity","events","target","eventHandlers","OS","onClick","onPress"],"sources":["area-chart.component.tsx"],"sourcesContent":["import React from 'react';\nimport Color from \"color\";\nimport { LayoutChangeEvent, View, Text, Platform } from 'react-native';\nimport { Defs, LinearGradient, Stop, Svg } from 'react-native-svg';\nimport { VictoryArea, VictoryLine, VictoryChart, VictoryLegend, VictoryStack, VictoryScatter, VictoryGroup } from \"victory-native\";\nimport { InterpolationPropType } from 'victory-core';\nimport WmAreaChartProps from './area-chart.props';\nimport { DEFAULT_CLASS, WmAreaChartStyles } from './area-chart.styles';\nimport {\n BaseChartComponent,\n BaseChartComponentState\n} from \"@wavemaker/app-rn-runtime/components/chart/basechart.component\";\nimport WmIcon from \"@wavemaker/app-rn-runtime/components/basic/icon/icon.component\";\n\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { isNil, isNumber } from 'lodash-es';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \n\nexport class WmAreaChartState extends BaseChartComponentState<WmAreaChartProps> {\n chartWidth = 0;\n}\n\nexport default class WmAreaChart extends BaseChartComponent<WmAreaChartProps, WmAreaChartState, WmAreaChartStyles> {\n\n constructor(props: WmAreaChartProps) {\n super(props, DEFAULT_CLASS, new WmAreaChartProps(), new WmAreaChartState());\n }\n\n onViewLayoutChange = (e: LayoutChangeEvent) => {\n let viewWidth = e.nativeEvent.layout.width;\n this.updateState({\n chartWidth: viewWidth\n } as WmAreaChartState)\n }\n\n onSelect(event: any, data: any){\n let value = data.data[data.index].y;\n let label = this.state.xaxisDatakeyArr[data.datum.x];\n let selectedItem = this.props.dataset[data.index];\n const nativeEvent = event.nativeEvent;\n this.setTooltipPosition(nativeEvent);\n let selectedChartItem = [{series: 0, x: data.index, y: value,_dataObj: selectedItem},data.index];\n this.updateState({\n tooltipXaxis: label,\n tooltipYaxis: value,\n isTooltipOpen: true,\n selectedItem: {...selectedItem, index: data.index},\n } as WmAreaChartState)\n this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem ]);\n }\n\n renderWidget(props: WmAreaChartProps) {\n this.invokeEventCallback('onBeforerender', [this.proxy, null]);\n if (!this.state.data?.length) {\n return null;\n }\n let mindomain={\n x: props.xdomain === 'Min' ? this.state.chartMinX: undefined,\n y: props.ydomain === 'Min' ? this.state.chartMinY: undefined\n };\n const chartName = this.props.name ?? 'nonameAreachart';\n let gradientStop = '100%';\n if (isNumber(this.state.chartMaxY) && isNumber(this.state.chartMinY) && this.state.chartMaxY > 0) {\n gradientStop = (this.state.chartMaxY - this.state.chartMinY) * 100 / this.state.chartMaxY + '%';\n }\n return (\n <View\n {...getAccessibilityProps(AccessibilityWidgetType.LINECHART, props)}\n style={this.styles.root}\n onLayout={this.onViewLayoutChange.bind(this)}\n key={`${props.title}_area_chart`}\n >\n {this.getTooltip()}\n <View>\n <View style={{flexDirection: 'row', alignItems: 'center'}}>\n {props.iconclass ? (<WmIcon iconclass={props.iconclass} styles={this.styles.icon}></WmIcon>) : null }\n <Text style={this.styles.title}>{props.title}</Text>\n </View>\n <Text style={this.styles.subHeading}>{props.subheading}</Text>\n </View>\n {this.state.chartWidth ? \n (\n <VictoryChart\n theme={this.state.theme}\n height={this.styles.root.height as number}\n width={this.state.chartWidth || 120}\n padding={{ top: props.offsettop, bottom: props.offsetbottom, left: props.offsetleft, right: props.offsetright }}\n minDomain={mindomain}\n > \n {this.getLegendView()}\n {this.getXaxis()}\n {this.getYAxis()}\n <VictoryStack>\n {\n this.state.data.map((d: any, i: number) => {\n return <VictoryGroup key={props.name + '_area_group_' + i}>\n <Defs>\n <LinearGradient id={`${chartName}Gradient${i}`} x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <Stop offset=\"0%\" stopColor={Color(this.state.colors[i]).lighten(0.2).rgb().toString()}/>\n <Stop offset={gradientStop} stopColor={Color(this.state.colors[i]).lighten(0.6).rgb().toString()}/>\n </LinearGradient>\n </Defs>\n <VictoryArea\n interpolation={props.interpolation as InterpolationPropType}\n key={props.name + '_' + i}\n name={props.name + '_' + i}\n style={{\n data: {\n fill: `url(#${chartName}Gradient${i})`,\n stroke: this.state.colors[i],\n strokeWidth: props.linethickness,\n }\n }}\n data={this.isRTL?d.toReversed():d}\n />\n <VictoryScatter\n size={5}\n key={props.name + '_scatter' + i}\n style={{\n data: props.highlightpoints ? {fill: this.state.colors[i], opacity: 0.8}:{opacity: 0}\n }} \n data={this.isRTL?d.toReversed():d}\n events={[{\n target: 'data',\n eventHandlers: Platform.OS == \"web\" ? {\n onClick: this.onSelect.bind(this)\n }:{\n onPress: this.onSelect.bind(this)\n }\n }]}\n />\n </VictoryGroup>\n })\n }\n </VictoryStack>\n </VictoryChart>\n )\n : null}\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Color","View","Text","Platform","Defs","LinearGradient","Stop","VictoryArea","VictoryChart","VictoryStack","VictoryScatter","VictoryGroup","WmAreaChartProps","DEFAULT_CLASS","BaseChartComponent","BaseChartComponentState","WmIcon","isNumber","AccessibilityWidgetType","getAccessibilityProps","WmAreaChartState","constructor","args","_defineProperty","WmAreaChart","props","e","viewWidth","nativeEvent","layout","width","updateState","chartWidth","onSelect","event","data","viewRef","current","measureInWindow","chartX","chartY","value","index","y","label","state","xaxisDatakeyArr","datum","x","selectedItem","dataset","tooltipX","pageX","tooltipY","pageY","selectedChartItem","series","_dataObj","tooltipXaxis","tooltipYaxis","isTooltipOpen","tooltipXPosition","tooltipoffsetx","tooltipYPosition","tooltipoffsety","invokeEventCallback","proxy","renderWidget","_this$state$data","_this$props$name","length","mindomain","xdomain","chartMinX","undefined","ydomain","chartMinY","chartName","name","gradientStop","chartMaxY","createElement","_extends","LINECHART","style","styles","root","onLayout","onViewLayoutChange","bind","key","title","flexDirection","alignItems","iconclass","icon","subHeading","subheading","ref","getTooltip","theme","height","padding","top","offsettop","bottom","offsetbottom","left","offsetleft","right","offsetright","minDomain","getLegendView","getXaxis","getYAxis","map","d","i","id","x1","y1","x2","y2","offset","stopColor","colors","lighten","rgb","toString","interpolation","fill","stroke","strokeWidth","linethickness","isRTL","toReversed","size","highlightpoints","opacity","events","target","eventHandlers","OS","onClick","onPress"],"sources":["area-chart.component.tsx"],"sourcesContent":["import React from 'react';\nimport Color from \"color\";\nimport { LayoutChangeEvent, View, Text, Platform } from 'react-native';\nimport { Defs, LinearGradient, Stop, Svg } from 'react-native-svg';\nimport { VictoryArea, VictoryLine, VictoryChart, VictoryLegend, VictoryStack, VictoryScatter, VictoryGroup } from \"victory-native\";\nimport { InterpolationPropType } from 'victory-core';\nimport WmAreaChartProps from './area-chart.props';\nimport { DEFAULT_CLASS, WmAreaChartStyles } from './area-chart.styles';\nimport {\n BaseChartComponent,\n BaseChartComponentState\n} from \"@wavemaker/app-rn-runtime/components/chart/basechart.component\";\nimport WmIcon from \"@wavemaker/app-rn-runtime/components/basic/icon/icon.component\";\n\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { isNil, isNumber } from 'lodash-es';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class WmAreaChartState extends BaseChartComponentState<WmAreaChartProps> {\n chartWidth = 0;\n}\n\nexport default class WmAreaChart extends BaseChartComponent<WmAreaChartProps, WmAreaChartState, WmAreaChartStyles> {\n\n constructor(props: WmAreaChartProps) {\n super(props, DEFAULT_CLASS, new WmAreaChartProps(), new WmAreaChartState());\n }\n\n onViewLayoutChange = (e: LayoutChangeEvent) => {\n let viewWidth = e.nativeEvent.layout.width;\n this.updateState({\n chartWidth: viewWidth\n } as WmAreaChartState)\n }\n\n onSelect(event: any, data: any){\n if (!this.viewRef.current) return;\n this.viewRef.current.measureInWindow((chartX: number, chartY: number) => {\n let value = data.data[data.index].y;\n let label = this.state.xaxisDatakeyArr[data.datum.x];\n let selectedItem = this.props.dataset[data.index];\n const nativeEvent = event.nativeEvent;\n let tooltipX = nativeEvent.pageX - chartX;\n let tooltipY = nativeEvent.pageY - chartY;\n let selectedChartItem = [{series: 0, x: data.index, y: value,_dataObj: selectedItem},data.index];\n this.updateState({\n tooltipXaxis: label,\n tooltipYaxis: value,\n isTooltipOpen: true,\n selectedItem: {...selectedItem, index: data.index},\n tooltipXPosition: tooltipX - this.state.tooltipoffsetx, \n tooltipYPosition: tooltipY - this.state.tooltipoffsety\n } as WmAreaChartState)\n this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem ]);\n });\n }\n\n renderWidget(props: WmAreaChartProps) {\n this.invokeEventCallback('onBeforerender', [this.proxy, null]);\n if (!this.state.data?.length) {\n return null;\n }\n let mindomain={\n x: props.xdomain === 'Min' ? this.state.chartMinX: undefined,\n y: props.ydomain === 'Min' ? this.state.chartMinY: undefined\n };\n const chartName = this.props.name ?? 'nonameAreachart';\n let gradientStop = '100%';\n if (isNumber(this.state.chartMaxY) && isNumber(this.state.chartMinY) && this.state.chartMaxY > 0) {\n gradientStop = (this.state.chartMaxY - this.state.chartMinY) * 100 / this.state.chartMaxY + '%';\n }\n return (\n <View\n {...getAccessibilityProps(AccessibilityWidgetType.LINECHART, props)}\n style={this.styles.root}\n onLayout={this.onViewLayoutChange.bind(this)}\n key={`${props.title}_area_chart`}\n >\n <View>\n <View style={{flexDirection: 'row', alignItems: 'center'}}>\n {props.iconclass ? (<WmIcon iconclass={props.iconclass} styles={this.styles.icon}></WmIcon>) : null }\n <Text style={this.styles.title}>{props.title}</Text>\n </View>\n <Text style={this.styles.subHeading}>{props.subheading}</Text>\n </View>\n {this.state.chartWidth ? \n (\n <View ref={this.viewRef}>\n {this.getTooltip()}\n <VictoryChart\n theme={this.state.theme}\n height={this.styles.root.height as number}\n width={this.state.chartWidth || 120}\n padding={{ top: props.offsettop, bottom: props.offsetbottom, left: props.offsetleft, right: props.offsetright }}\n minDomain={mindomain}\n > \n {this.getLegendView()}\n {this.getXaxis()}\n {this.getYAxis()}\n <VictoryStack>\n {\n this.state.data.map((d: any, i: number) => {\n return <VictoryGroup key={props.name + '_area_group_' + i}>\n <Defs>\n <LinearGradient id={`${chartName}Gradient${i}`} x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <Stop offset=\"0%\" stopColor={Color(this.state.colors[i]).lighten(0.2).rgb().toString()}/>\n <Stop offset={gradientStop} stopColor={Color(this.state.colors[i]).lighten(0.6).rgb().toString()}/>\n </LinearGradient>\n </Defs>\n <VictoryArea\n interpolation={props.interpolation as InterpolationPropType}\n key={props.name + '_' + i}\n name={props.name + '_' + i}\n style={{\n data: {\n fill: `url(#${chartName}Gradient${i})`,\n stroke: this.state.colors[i],\n strokeWidth: props.linethickness,\n }\n }}\n data={this.isRTL?d.toReversed():d}\n />\n <VictoryScatter\n size={5}\n key={props.name + '_scatter' + i}\n style={{\n data: props.highlightpoints ? {fill: this.state.colors[i], opacity: 0.8}:{opacity: 0}\n }} \n data={this.isRTL?d.toReversed():d}\n events={[{\n target: 'data',\n eventHandlers: Platform.OS == \"web\" ? {\n onClick: this.onSelect.bind(this)\n }:{\n onPress: this.onSelect.bind(this)\n }\n }]}\n />\n </VictoryGroup>\n })\n }\n </VictoryStack>\n </VictoryChart>\n </View>\n )\n : null}\n </View>);\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,OAAO;AACzB,SAA4BC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,cAAc;AACtE,SAASC,IAAI,EAAEC,cAAc,EAAEC,IAAI,QAAa,kBAAkB;AAClE,SAASC,WAAW,EAAeC,YAAY,EAAiBC,YAAY,EAAEC,cAAc,EAAEC,YAAY,QAAQ,gBAAgB;AAElI,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,aAAa,QAA2B,qBAAqB;AACtE,SACEC,kBAAkB,EAClBC,uBAAuB,QAClB,gEAAgE;AACvE,OAAOC,MAAM,MAAM,gEAAgE;AAGnF,SAAgBC,QAAQ,QAAQ,WAAW;AAC3C,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,8CAA8C;AAG7G,OAAO,MAAMC,gBAAgB,SAASL,uBAAuB,CAAmB;EAAAM,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,qBACjE,CAAC;EAAA;AAChB;AAEA,eAAe,MAAMC,WAAW,SAASV,kBAAkB,CAAwD;EAEjHO,WAAWA,CAACI,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,EAAEZ,aAAa,EAAE,IAAID,gBAAgB,CAAC,CAAC,EAAE,IAAIQ,gBAAgB,CAAC,CAAC,CAAC;IAACG,eAAA,6BAGxDG,CAAoB,IAAK;MAC7C,IAAIC,SAAS,GAAGD,CAAC,CAACE,WAAW,CAACC,MAAM,CAACC,KAAK;MAC1C,IAAI,CAACC,WAAW,CAAC;QACfC,UAAU,EAAEL;MACd,CAAqB,CAAC;IACxB,CAAC;EAPD;EASAM,QAAQA,CAACC,KAAU,EAAEC,IAAS,EAAC;IAC7B,IAAI,CAAC,IAAI,CAACC,OAAO,CAACC,OAAO,EAAE;IAC3B,IAAI,CAACD,OAAO,CAACC,OAAO,CAACC,eAAe,CAAC,CAACC,MAAc,EAAEC,MAAc,KAAK;MACzE,IAAIC,KAAK,GAAGN,IAAI,CAACA,IAAI,CAACA,IAAI,CAACO,KAAK,CAAC,CAACC,CAAC;MACnC,IAAIC,KAAK,GAAG,IAAI,CAACC,KAAK,CAACC,eAAe,CAACX,IAAI,CAACY,KAAK,CAACC,CAAC,CAAC;MACpD,IAAIC,YAAY,GAAG,IAAI,CAACxB,KAAK,CAACyB,OAAO,CAACf,IAAI,CAACO,KAAK,CAAC;MACjD,MAAMd,WAAW,GAAGM,KAAK,CAACN,WAAW;MACrC,IAAIuB,QAAQ,GAAGvB,WAAW,CAACwB,KAAK,GAAGb,MAAM;MACzC,IAAIc,QAAQ,GAAGzB,WAAW,CAAC0B,KAAK,GAAGd,MAAM;MACzC,IAAIe,iBAAiB,GAAG,CAAC;QAACC,MAAM,EAAE,CAAC;QAAER,CAAC,EAAEb,IAAI,CAACO,KAAK;QAAEC,CAAC,EAAEF,KAAK;QAACgB,QAAQ,EAAER;MAAY,CAAC,EAACd,IAAI,CAACO,KAAK,CAAC;MAChG,IAAI,CAACX,WAAW,CAAC;QACf2B,YAAY,EAAEd,KAAK;QACnBe,YAAY,EAAElB,KAAK;QACnBmB,aAAa,EAAE,IAAI;QACnBX,YAAY,EAAE;UAAC,GAAGA,YAAY;UAAEP,KAAK,EAAEP,IAAI,CAACO;QAAK,CAAC;QAClDmB,gBAAgB,EAAEV,QAAQ,GAAG,IAAI,CAACN,KAAK,CAACiB,cAAc;QACtDC,gBAAgB,EAAEV,QAAQ,GAAG,IAAI,CAACR,KAAK,CAACmB;MAC1C,CAAqB,CAAC;MACtB,IAAI,CAACC,mBAAmB,CAAC,UAAU,EAAE,CAAC/B,KAAK,CAACN,WAAW,EAAE,IAAI,CAACsC,KAAK,EAAEjB,YAAY,EAAEM,iBAAiB,CAAE,CAAC;IACzG,CAAC,CAAC;EACF;EAEAY,YAAYA,CAAC1C,KAAuB,EAAE;IAAA,IAAA2C,gBAAA,EAAAC,gBAAA;IACpC,IAAI,CAACJ,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAACC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,GAAAE,gBAAA,GAAC,IAAI,CAACvB,KAAK,CAACV,IAAI,cAAAiC,gBAAA,eAAfA,gBAAA,CAAiBE,MAAM,GAAE;MAC5B,OAAO,IAAI;IACb;IACA,IAAIC,SAAS,GAAC;MACZvB,CAAC,EAAEvB,KAAK,CAAC+C,OAAO,KAAK,KAAK,GAAG,IAAI,CAAC3B,KAAK,CAAC4B,SAAS,GAAEC,SAAS;MAC5D/B,CAAC,EAAElB,KAAK,CAACkD,OAAO,KAAK,KAAK,GAAG,IAAI,CAAC9B,KAAK,CAAC+B,SAAS,GAAEF;IACrD,CAAC;IACD,MAAMG,SAAS,IAAAR,gBAAA,GAAG,IAAI,CAAC5C,KAAK,CAACqD,IAAI,cAAAT,gBAAA,cAAAA,gBAAA,GAAI,iBAAiB;IACtD,IAAIU,YAAY,GAAG,MAAM;IACzB,IAAI9D,QAAQ,CAAC,IAAI,CAAC4B,KAAK,CAACmC,SAAS,CAAC,IAAI/D,QAAQ,CAAC,IAAI,CAAC4B,KAAK,CAAC+B,SAAS,CAAC,IAAI,IAAI,CAAC/B,KAAK,CAACmC,SAAS,GAAG,CAAC,EAAE;MAChGD,YAAY,GAAG,CAAC,IAAI,CAAClC,KAAK,CAACmC,SAAS,GAAG,IAAI,CAACnC,KAAK,CAAC+B,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC/B,KAAK,CAACmC,SAAS,GAAG,GAAG;IACjG;IACA,oBACEjF,KAAA,CAAAkF,aAAA,CAAChF,IAAI,EAAAiF,QAAA,KACC/D,qBAAqB,CAACD,uBAAuB,CAACiE,SAAS,EAAE1D,KAAK,CAAC;MACnE2D,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC,IAAK;MACxBC,QAAQ,EAAE,IAAI,CAACC,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAE;MAC7CC,GAAG,EAAE,GAAGjE,KAAK,CAACkE,KAAK;IAAc,iBAEjC5F,KAAA,CAAAkF,aAAA,CAAChF,IAAI,qBACHF,KAAA,CAAAkF,aAAA,CAAChF,IAAI;MAACmF,KAAK,EAAE;QAACQ,aAAa,EAAE,KAAK;QAAEC,UAAU,EAAE;MAAQ;IAAE,GACvDpE,KAAK,CAACqE,SAAS,gBAAI/F,KAAA,CAAAkF,aAAA,CAACjE,MAAM;MAAC8E,SAAS,EAAErE,KAAK,CAACqE,SAAU;MAACT,MAAM,EAAE,IAAI,CAACA,MAAM,CAACU;IAAK,CAAS,CAAC,GAAI,IAAI,eACnGhG,KAAA,CAAAkF,aAAA,CAAC/E,IAAI;MAACkF,KAAK,EAAE,IAAI,CAACC,MAAM,CAACM;IAAM,GAAElE,KAAK,CAACkE,KAAY,CAC/C,CAAC,eACP5F,KAAA,CAAAkF,aAAA,CAAC/E,IAAI;MAACkF,KAAK,EAAE,IAAI,CAACC,MAAM,CAACW;IAAW,GAAEvE,KAAK,CAACwE,UAAiB,CACzD,CAAC,EACN,IAAI,CAACpD,KAAK,CAACb,UAAU,gBAEpBjC,KAAA,CAAAkF,aAAA,CAAChF,IAAI;MAACiG,GAAG,EAAE,IAAI,CAAC9D;IAAQ,GACvB,IAAI,CAAC+D,UAAU,CAAC,CAAC,eAClBpG,KAAA,CAAAkF,aAAA,CAACzE,YAAY;MACX4F,KAAK,EAAE,IAAI,CAACvD,KAAK,CAACuD,KAAM;MACxBC,MAAM,EAAE,IAAI,CAAChB,MAAM,CAACC,IAAI,CAACe,MAAiB;MAC1CvE,KAAK,EAAE,IAAI,CAACe,KAAK,CAACb,UAAU,IAAI,GAAI;MACpCsE,OAAO,EAAE;QAAEC,GAAG,EAAE9E,KAAK,CAAC+E,SAAS;QAAEC,MAAM,EAAEhF,KAAK,CAACiF,YAAY;QAAEC,IAAI,EAAElF,KAAK,CAACmF,UAAU;QAAEC,KAAK,EAAEpF,KAAK,CAACqF;MAAY,CAAE;MAChHC,SAAS,EAAExC;IAAU,GAEpB,IAAI,CAACyC,aAAa,CAAC,CAAC,EACpB,IAAI,CAACC,QAAQ,CAAC,CAAC,EACf,IAAI,CAACC,QAAQ,CAAC,CAAC,eAChBnH,KAAA,CAAAkF,aAAA,CAACxE,YAAY,QAEX,IAAI,CAACoC,KAAK,CAACV,IAAI,CAACgF,GAAG,CAAC,CAACC,CAAM,EAAEC,CAAS,KAAK;MACzC,oBAAOtH,KAAA,CAAAkF,aAAA,CAACtE,YAAY;QAAC+E,GAAG,EAAEjE,KAAK,CAACqD,IAAI,GAAG,cAAc,GAAGuC;MAAE,gBACxDtH,KAAA,CAAAkF,aAAA,CAAC7E,IAAI,qBACHL,KAAA,CAAAkF,aAAA,CAAC5E,cAAc;QAACiH,EAAE,EAAE,GAAGzC,SAAS,WAAWwC,CAAC,EAAG;QAACE,EAAE,EAAC,IAAI;QAACC,EAAE,EAAC,IAAI;QAACC,EAAE,EAAC,IAAI;QAACC,EAAE,EAAC;MAAM,gBAC/E3H,KAAA,CAAAkF,aAAA,CAAC3E,IAAI;QAACqH,MAAM,EAAC,IAAI;QAACC,SAAS,EAAE5H,KAAK,CAAC,IAAI,CAAC6C,KAAK,CAACgF,MAAM,CAACR,CAAC,CAAC,CAAC,CAACS,OAAO,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;MAAE,CAAC,CAAC,eACzFjI,KAAA,CAAAkF,aAAA,CAAC3E,IAAI;QAACqH,MAAM,EAAE5C,YAAa;QAAC6C,SAAS,EAAE5H,KAAK,CAAC,IAAI,CAAC6C,KAAK,CAACgF,MAAM,CAACR,CAAC,CAAC,CAAC,CAACS,OAAO,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;MAAE,CAAC,CACpF,CACZ,CAAC,eACPjI,KAAA,CAAAkF,aAAA,CAAC1E,WAAW;QACV0H,aAAa,EAAExG,KAAK,CAACwG,aAAuC;QAC5DvC,GAAG,EAAEjE,KAAK,CAACqD,IAAI,GAAG,GAAG,GAAGuC,CAAE;QAC1BvC,IAAI,EAAErD,KAAK,CAACqD,IAAI,GAAG,GAAG,GAAGuC,CAAE;QAC3BjC,KAAK,EAAE;UACLjD,IAAI,EAAE;YACJ+F,IAAI,EAAE,QAAQrD,SAAS,WAAWwC,CAAC,GAAG;YACtCc,MAAM,EAAE,IAAI,CAACtF,KAAK,CAACgF,MAAM,CAACR,CAAC,CAAC;YAC5Be,WAAW,EAAE3G,KAAK,CAAC4G;UACrB;QACF,CAAE;QACFlG,IAAI,EAAE,IAAI,CAACmG,KAAK,GAAClB,CAAC,CAACmB,UAAU,CAAC,CAAC,GAACnB;MAAE,CACnC,CAAC,eACArH,KAAA,CAAAkF,aAAA,CAACvE,cAAc;QACb8H,IAAI,EAAE,CAAE;QACR9C,GAAG,EAAEjE,KAAK,CAACqD,IAAI,GAAG,UAAU,GAAGuC,CAAE;QACjCjC,KAAK,EAAE;UACLjD,IAAI,EAAEV,KAAK,CAACgH,eAAe,GAAG;YAACP,IAAI,EAAE,IAAI,CAACrF,KAAK,CAACgF,MAAM,CAACR,CAAC,CAAC;YAAEqB,OAAO,EAAE;UAAG,CAAC,GAAC;YAACA,OAAO,EAAE;UAAC;QACtF,CAAE;QACFvG,IAAI,EAAE,IAAI,CAACmG,KAAK,GAAClB,CAAC,CAACmB,UAAU,CAAC,CAAC,GAACnB,CAAE;QAClCuB,MAAM,EAAE,CAAC;UACPC,MAAM,EAAE,MAAM;UACdC,aAAa,EAAE1I,QAAQ,CAAC2I,EAAE,IAAI,KAAK,GAAG;YACpCC,OAAO,EAAE,IAAI,CAAC9G,QAAQ,CAACwD,IAAI,CAAC,IAAI;UAClC,CAAC,GAAC;YACAuD,OAAO,EAAE,IAAI,CAAC/G,QAAQ,CAACwD,IAAI,CAAC,IAAI;UAClC;QACF,CAAC;MAAE,CACF,CACO,CAAC;IACjB,CAAC,CAEW,CACF,CACR,CAAC,GAET,IACE,CAAC;EACT;AACF","ignoreList":[]}
@@ -52,27 +52,33 @@ export default class WmBarChart extends BaseChartComponent {
52
52
  });
53
53
  }
54
54
  onSelect(event, data) {
55
- let value = data.data[data.index].y;
56
- let label = this.state.xaxisDatakeyArr[data.datum.x];
57
- let selectedItem = this.props.dataset[data.index];
58
- const nativeEvent = event.nativeEvent;
59
- this.setTooltipPosition(nativeEvent);
60
- let selectedChartItem = [{
61
- series: 0,
62
- x: data.index,
63
- y: value,
64
- _dataObj: selectedItem
65
- }, data.index];
66
- this.updateState({
67
- tooltipXaxis: label,
68
- tooltipYaxis: value,
69
- isTooltipOpen: true,
70
- selectedItem: {
71
- ...selectedItem,
72
- index: data.index
73
- }
55
+ if (!this.viewRef.current) return;
56
+ this.viewRef.current.measureInWindow((chartX, chartY) => {
57
+ let value = data.data[data.index].y;
58
+ let label = this.state.xaxisDatakeyArr[data.datum.x];
59
+ let selectedItem = this.props.dataset[data.index];
60
+ const nativeEvent = event.nativeEvent;
61
+ let tooltipX = nativeEvent.pageX - chartX;
62
+ let tooltipY = nativeEvent.pageY - chartY;
63
+ let selectedChartItem = [{
64
+ series: 0,
65
+ x: data.index,
66
+ y: value,
67
+ _dataObj: selectedItem
68
+ }, data.index];
69
+ this.updateState({
70
+ tooltipXaxis: label,
71
+ tooltipYaxis: value,
72
+ isTooltipOpen: true,
73
+ selectedItem: {
74
+ ...selectedItem,
75
+ index: data.index
76
+ },
77
+ tooltipXPosition: tooltipX - this.state.tooltipoffsetx,
78
+ tooltipYPosition: tooltipY - this.state.tooltipoffsety
79
+ });
80
+ this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem]);
74
81
  });
75
- this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem]);
76
82
  }
77
83
  renderWidget(props) {
78
84
  this.invokeEventCallback('onBeforerender', [this.proxy, null]);
@@ -86,7 +92,7 @@ export default class WmBarChart extends BaseChartComponent {
86
92
  return /*#__PURE__*/React.createElement(View, _extends({}, getAccessibilityProps(AccessibilityWidgetType.LINECHART, props), {
87
93
  style: this.styles.root,
88
94
  onLayout: this.onViewLayoutChange.bind(this)
89
- }), this.getTooltip(), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
95
+ }), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
90
96
  style: {
91
97
  flexDirection: 'row',
92
98
  alignItems: 'center'
@@ -98,7 +104,9 @@ export default class WmBarChart extends BaseChartComponent {
98
104
  style: this.styles.title
99
105
  }, props.title)), /*#__PURE__*/React.createElement(Text, {
100
106
  style: this.styles.subHeading
101
- }, props.subheading)), /*#__PURE__*/React.createElement(VictoryChart, {
107
+ }, props.subheading)), /*#__PURE__*/React.createElement(View, {
108
+ ref: this.viewRef
109
+ }, this.getTooltip(), /*#__PURE__*/React.createElement(VictoryChart, {
102
110
  theme: this.state.theme,
103
111
  height: this.styles.root.height,
104
112
  width: this.state.chartWidth || this.screenWidth,
@@ -114,7 +122,7 @@ export default class WmBarChart extends BaseChartComponent {
114
122
  }, this.getBarChart(props)) : /*#__PURE__*/React.createElement(VictoryGroup, {
115
123
  colorScale: this.state.colors,
116
124
  offset: 10
117
- }, this.getBarChart(props))));
125
+ }, this.getBarChart(props)))));
118
126
  }
119
127
  }
120
128
  //# sourceMappingURL=bar-chart.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","Platform","AccessibilityWidgetType","getAccessibilityProps","VictoryChart","VictoryBar","VictoryStack","VictoryGroup","BaseChartComponent","BaseChartComponentState","WmBarChartProps","DEFAULT_CLASS","WmIcon","WmBarChartState","WmBarChart","constructor","props","labelFn","data","abbreviateNumber","datum","y","getBarChart","state","map","d","i","createElement","key","name","horizontal","labels","showvalues","bind","undefined","isRTL","toReversed","height","alignment","style","customcolors","fill","_this$state$colors$da","colors","x","length","cornerRadius","topLeft","styles","bar","borderTopLeftRadius","topRight","borderTopRightRadius","bottomLeft","borderBottomLeftRadius","bottomRight","borderBottomRightRadius","events","target","eventHandlers","OS","onClick","onSelect","onPress","event","value","index","label","xaxisDatakeyArr","selectedItem","dataset","nativeEvent","setTooltipPosition","selectedChartItem","series","_dataObj","updateState","tooltipXaxis","tooltipYaxis","isTooltipOpen","invokeEventCallback","proxy","renderWidget","mindomain","xdomain","chartMinX","ydomain","chartMinY","_extends","LINECHART","root","onLayout","onViewLayoutChange","getTooltip","flexDirection","alignItems","iconclass","icon","title","subHeading","subheading","theme","width","chartWidth","screenWidth","minDomain","padding","top","offsettop","bottom","offsetbottom","left","offsetleft","right","offsetright","getLegendView","getXaxis","getYAxis","viewtype","colorScale","offset"],"sources":["bar-chart.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform, LayoutChangeEvent } from 'react-native';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport {\n VictoryChart,\n VictoryBar,\n VictoryLegend,\n VictoryStack,\n VictoryGroup\n} from \"victory-native\";\n\nimport {\n BaseChartComponent,\n BaseChartComponentState\n} from \"@wavemaker/app-rn-runtime/components/chart/basechart.component\";\nimport WmBarChartProps from './bar-chart.props';\nimport { DEFAULT_CLASS, WmBarChartStyles } from './bar-chart.styles';\nimport WmIcon from \"@wavemaker/app-rn-runtime/components/basic/icon/icon.component\";\nimport { min } from 'moment';\n\nexport class WmBarChartState extends BaseChartComponentState<WmBarChartProps> {}\n\nexport default class WmBarChart extends BaseChartComponent<WmBarChartProps, WmBarChartState, WmBarChartStyles> {\n\n constructor(props: WmBarChartProps) {\n super(props, DEFAULT_CLASS, new WmBarChartProps(), new WmBarChartState());\n }\n\n labelFn(data: any): string | number | string[] | number[] | null {\n return this.abbreviateNumber(data.datum.y);\n }\n\n getBarChart(props: WmBarChartProps) {\n return this.state.data.map((d: any, i: number) => {\n return <VictoryBar key={props.name + '_' + i}\n horizontal={props.horizontal} labels={props.showvalues ? this.labelFn.bind(this) : undefined}\n data={this.isRTL?d.toReversed():d}\n height={100}\n alignment='start'\n style={props.customcolors?{\n data: {\n fill: ({ datum }) => this.state.colors[datum.x] ?? this.state.colors[datum.x % this.state.colors.length]\n }\n }:{}}\n cornerRadius={{topLeft: this.styles.bar.borderTopLeftRadius, topRight: this.styles.bar.borderTopRightRadius, bottomLeft: this.styles.bar.borderBottomLeftRadius, bottomRight: this.styles.bar.borderBottomRightRadius}}\n events={[{\n target: 'data',\n eventHandlers: Platform.OS == \"web\" ? {\n onClick: this.onSelect.bind(this)\n }:{\n onPress: this.onSelect.bind(this)\n }\n }]}/>\n });\n }\n\nonSelect(event: any, data: any){\n let value = data.data[data.index].y;\n let label = this.state.xaxisDatakeyArr[data.datum.x];\n let selectedItem = this.props.dataset[data.index];\n const nativeEvent = event.nativeEvent;\n this.setTooltipPosition(nativeEvent);\n let selectedChartItem = [{series: 0, x: data.index, y: value,_dataObj: selectedItem},data.index];\n this.updateState({\n tooltipXaxis: label,\n tooltipYaxis: value,\n isTooltipOpen: true,\n selectedItem: {...selectedItem, index: data.index},\n } as WmBarChartState)\n this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem ]);\n}\n\n renderWidget(props: WmBarChartProps) {\n this.invokeEventCallback('onBeforerender', [this.proxy, null]);\n if (!this.state.data.length) {\n return null;\n }\n let mindomain={x: this.props.xdomain === 'Min' ? this.state.chartMinX: undefined, y: this.props.ydomain === 'Min' ? this.state.chartMinY: undefined};\n return (<View\n {...getAccessibilityProps(AccessibilityWidgetType.LINECHART, props)}\n style={this.styles.root}\n onLayout={this.onViewLayoutChange.bind(this)}\n >\n {this.getTooltip()}\n <View>\n <View style={{flexDirection: 'row', alignItems: 'center'}}>\n {props.iconclass ? (<WmIcon iconclass={props.iconclass} styles={this.styles.icon}></WmIcon>) : null }\n <Text style={this.styles.title}>{props.title}</Text>\n </View>\n <Text style={this.styles.subHeading}>{props.subheading}</Text>\n </View>\n <VictoryChart theme={this.state.theme}\n height={(this.styles.root.height) as number}\n width={this.state.chartWidth || this.screenWidth}\n minDomain={mindomain}\n padding={{ top: props.offsettop, bottom: props.offsetbottom, left: props.offsetleft, right: props.offsetright }}>\n {this.getLegendView()}\n {this.getXaxis()}\n {this.getYAxis()}\n {\n props.viewtype === 'Stacked' ? <VictoryStack colorScale={this.state.colors}>\n {\n this.getBarChart(props)\n }\n </VictoryStack> : <VictoryGroup colorScale={this.state.colors} offset={10} >\n {\n this.getBarChart(props) \n }\n </VictoryGroup>\n }\n </VictoryChart></View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","Platform","AccessibilityWidgetType","getAccessibilityProps","VictoryChart","VictoryBar","VictoryStack","VictoryGroup","BaseChartComponent","BaseChartComponentState","WmBarChartProps","DEFAULT_CLASS","WmIcon","WmBarChartState","WmBarChart","constructor","props","labelFn","data","abbreviateNumber","datum","y","getBarChart","state","map","d","i","createElement","key","name","horizontal","labels","showvalues","bind","undefined","isRTL","toReversed","height","alignment","style","customcolors","fill","_this$state$colors$da","colors","x","length","cornerRadius","topLeft","styles","bar","borderTopLeftRadius","topRight","borderTopRightRadius","bottomLeft","borderBottomLeftRadius","bottomRight","borderBottomRightRadius","events","target","eventHandlers","OS","onClick","onSelect","onPress","event","viewRef","current","measureInWindow","chartX","chartY","value","index","label","xaxisDatakeyArr","selectedItem","dataset","nativeEvent","tooltipX","pageX","tooltipY","pageY","selectedChartItem","series","_dataObj","updateState","tooltipXaxis","tooltipYaxis","isTooltipOpen","tooltipXPosition","tooltipoffsetx","tooltipYPosition","tooltipoffsety","invokeEventCallback","proxy","renderWidget","mindomain","xdomain","chartMinX","ydomain","chartMinY","_extends","LINECHART","root","onLayout","onViewLayoutChange","flexDirection","alignItems","iconclass","icon","title","subHeading","subheading","ref","getTooltip","theme","width","chartWidth","screenWidth","minDomain","padding","top","offsettop","bottom","offsetbottom","left","offsetleft","right","offsetright","getLegendView","getXaxis","getYAxis","viewtype","colorScale","offset"],"sources":["bar-chart.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform, LayoutChangeEvent } from 'react-native';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport {\n VictoryChart,\n VictoryBar,\n VictoryLegend,\n VictoryStack,\n VictoryGroup\n} from \"victory-native\";\n\nimport {\n BaseChartComponent,\n BaseChartComponentState\n} from \"@wavemaker/app-rn-runtime/components/chart/basechart.component\";\nimport WmBarChartProps from './bar-chart.props';\nimport { DEFAULT_CLASS, WmBarChartStyles } from './bar-chart.styles';\nimport WmIcon from \"@wavemaker/app-rn-runtime/components/basic/icon/icon.component\";\nimport { min } from 'moment';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class WmBarChartState extends BaseChartComponentState<WmBarChartProps> {}\n\nexport default class WmBarChart extends BaseChartComponent<WmBarChartProps, WmBarChartState, WmBarChartStyles> {\n\n constructor(props: WmBarChartProps) {\n super(props, DEFAULT_CLASS, new WmBarChartProps(), new WmBarChartState());\n }\n\n labelFn(data: any): string | number | string[] | number[] | null {\n return this.abbreviateNumber(data.datum.y);\n }\n\n getBarChart(props: WmBarChartProps) {\n return this.state.data.map((d: any, i: number) => {\n return <VictoryBar key={props.name + '_' + i}\n horizontal={props.horizontal} labels={props.showvalues ? this.labelFn.bind(this) : undefined}\n data={this.isRTL?d.toReversed():d}\n height={100}\n alignment='start'\n style={props.customcolors?{\n data: {\n fill: ({ datum }) => this.state.colors[datum.x] ?? this.state.colors[datum.x % this.state.colors.length]\n }\n }:{}}\n cornerRadius={{topLeft: this.styles.bar.borderTopLeftRadius, topRight: this.styles.bar.borderTopRightRadius, bottomLeft: this.styles.bar.borderBottomLeftRadius, bottomRight: this.styles.bar.borderBottomRightRadius}}\n events={[{\n target: 'data',\n eventHandlers: Platform.OS == \"web\" ? {\n onClick: this.onSelect.bind(this)\n }:{\n onPress: this.onSelect.bind(this)\n }\n }]}/>\n });\n }\n\nonSelect(event: any, data: any){\n if (!this.viewRef.current) return;\n this.viewRef.current.measureInWindow((chartX: number, chartY: number) => {\n let value = data.data[data.index].y;\n let label = this.state.xaxisDatakeyArr[data.datum.x];\n let selectedItem = this.props.dataset[data.index];\n const nativeEvent = event.nativeEvent;\n let tooltipX = nativeEvent.pageX - chartX;\n let tooltipY = nativeEvent.pageY - chartY;\n let selectedChartItem = [{series: 0, x: data.index, y: value,_dataObj: selectedItem},data.index];\n this.updateState({\n tooltipXaxis: label,\n tooltipYaxis: value,\n isTooltipOpen: true,\n selectedItem: {...selectedItem, index: data.index},\n tooltipXPosition: tooltipX - this.state.tooltipoffsetx, \n tooltipYPosition: tooltipY - this.state.tooltipoffsety\n } as WmBarChartState)\n this.invokeEventCallback('onSelect', [event.nativeEvent, this.proxy, selectedItem, selectedChartItem ]);\n });\n}\n\n renderWidget(props: WmBarChartProps) {\n this.invokeEventCallback('onBeforerender', [this.proxy, null]);\n if (!this.state.data.length) {\n return null;\n }\n let mindomain={x: this.props.xdomain === 'Min' ? this.state.chartMinX: undefined, y: this.props.ydomain === 'Min' ? this.state.chartMinY: undefined};\n return (<View\n {...getAccessibilityProps(AccessibilityWidgetType.LINECHART, props)}\n style={this.styles.root}\n onLayout={this.onViewLayoutChange.bind(this)}\n >\n <View>\n <View style={{flexDirection: 'row', alignItems: 'center'}}>\n {props.iconclass ? (<WmIcon iconclass={props.iconclass} styles={this.styles.icon}></WmIcon>) : null }\n <Text style={this.styles.title}>{props.title}</Text>\n </View>\n <Text style={this.styles.subHeading}>{props.subheading}</Text>\n </View>\n <View ref={this.viewRef}>\n {this.getTooltip()}\n <VictoryChart theme={this.state.theme}\n height={(this.styles.root.height) as number}\n width={this.state.chartWidth || this.screenWidth}\n minDomain={mindomain}\n padding={{ top: props.offsettop, bottom: props.offsetbottom, left: props.offsetleft, right: props.offsetright }}>\n {this.getLegendView()}\n {this.getXaxis()}\n {this.getYAxis()}\n {\n props.viewtype === 'Stacked' ? <VictoryStack colorScale={this.state.colors}>\n {\n this.getBarChart(props)\n }\n </VictoryStack> : <VictoryGroup colorScale={this.state.colors} offset={10} >\n {\n this.getBarChart(props) \n }\n </VictoryGroup>\n }\n </VictoryChart></View></View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,6 @@ import WmIcon from "@wavemaker/app-rn-runtime/components/basic/icon/icon.compone
11
11
  import ThemeFactory from "@wavemaker/app-rn-runtime/components/chart/theme/chart.theme";
12
12
  import { DEFAULT_CLASS } from "./basechart.styles";
13
13
  import { constructSampleData, getChartType } from "./staticdata";
14
- import { isWebPreviewMode } from "@wavemaker/app-rn-runtime/core/utils";
15
14
  import WmLottie from "../basic/lottie/lottie.component";
16
15
  export class BaseChartComponentState extends BaseComponentState {
17
16
  constructor(...args) {
@@ -40,7 +39,7 @@ export class BaseChartComponentState extends BaseComponentState {
40
39
  _defineProperty(this, "tooltipXaxis", 0);
41
40
  _defineProperty(this, "tooltipYaxis", 0);
42
41
  _defineProperty(this, "tooltipoffsetx", 50);
43
- _defineProperty(this, "tooltipoffsety", 60);
42
+ _defineProperty(this, "tooltipoffsety", 80);
44
43
  _defineProperty(this, "isTooltipOpen", false);
45
44
  _defineProperty(this, "selectedItem", {});
46
45
  _defineProperty(this, "template", "");
@@ -64,6 +63,8 @@ export class BaseChartComponent extends BaseComponent {
64
63
  super(props, defaultClass, defaultProps, defaultState);
65
64
  this.defaultClass = defaultClass;
66
65
  _defineProperty(this, "screenWidth", screenWidth);
66
+ _defineProperty(this, "viewRef", void 0);
67
+ this.viewRef = /*#__PURE__*/React.createRef();
67
68
  if (!props.theme) {
68
69
  this.applyTheme(props);
69
70
  }
@@ -255,14 +256,6 @@ export class BaseChartComponent extends BaseComponent {
255
256
  template: partialName
256
257
  });
257
258
  }
258
- setTooltipPosition(nativeEvent) {
259
- let xCoordinate = isWebPreviewMode() ? nativeEvent.offsetX : nativeEvent.locationX;
260
- let yCoordinate = isWebPreviewMode() ? nativeEvent.offsetY : nativeEvent.locationY;
261
- this.updateState({
262
- tooltipXPosition: xCoordinate - this.state.tooltipoffsetx,
263
- tooltipYPosition: yCoordinate - this.state.tooltipoffsety
264
- });
265
- }
266
259
  setTooltipPartialLayout(event) {
267
260
  let tooltipLayout = event.nativeEvent.layout;
268
261
  this.updateState({