@wavemaker/app-rn-runtime 12.0.0-next.1417146 → 12.0.0-next.1417150

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.
@@ -25,8 +25,8 @@ export class WmPictureState extends BaseComponentState {
25
25
  }
26
26
  }
27
27
  export default class WmPicture extends BaseComponent {
28
- constructor(props) {
29
- super(props, DEFAULT_CLASS, new WmPictureProps());
28
+ constructor(_props) {
29
+ super(_props, DEFAULT_CLASS, new WmPictureProps());
30
30
  _defineProperty(this, "_pictureSource", null);
31
31
  _defineProperty(this, "_picturePlaceHolder", null);
32
32
  _defineProperty(this, "onViewLayoutChange", e => {
@@ -48,6 +48,12 @@ export default class WmPicture extends BaseComponent {
48
48
  imageHeight: imageHeight
49
49
  });
50
50
  });
51
+ _defineProperty(this, "showImage", (imageElement, props) => {
52
+ if (props.fastload) {
53
+ return imageElement;
54
+ }
55
+ return this.state.imageWidth ? imageElement : null;
56
+ });
51
57
  }
52
58
  loadImage(image) {
53
59
  if (!image || !this.loadAsset) {
@@ -152,7 +158,7 @@ export default class WmPicture extends BaseComponent {
152
158
  const imageHeight = this.state.imageHeight;
153
159
  const shapeStyles = this.createShape(props.shape, imageWidth);
154
160
  this._pictureSource = this._pictureSource || this.loadImage(props.picturesource);
155
- this._picturePlaceHolder = this._picturePlaceHolder || this.loadImage(props.pictureplaceholder);
161
+ this._picturePlaceHolder = props.fastload ? this._pictureSource || this._picturePlaceHolder || this.loadImage(props.pictureplaceholder) : this._picturePlaceHolder || this.loadImage(props.pictureplaceholder);
156
162
  const imgSrc = this._pictureSource || this._picturePlaceHolder;
157
163
  let elementToshow;
158
164
  if (imgSrc) {
@@ -185,7 +191,7 @@ export default class WmPicture extends BaseComponent {
185
191
  width: imageWidth,
186
192
  borderRadius: (_shapeStyles$picture4 = shapeStyles.picture) === null || _shapeStyles$picture4 === void 0 ? void 0 : _shapeStyles$picture4.borderRadius
187
193
  }]
188
- }, this.state.imageWidth ? elementToshow : null)))) : null;
194
+ }, this.showImage(elementToshow, props))))) : null;
189
195
  }
190
196
  }
191
197
  //# sourceMappingURL=picture.component.js.map
@@ -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","imageWidth","nativeEvent","layout","width","imageHeight","height","styles","root","includes","state","naturalImageHeight","naturalImageWidth","updateState","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","getTestPropsForAction","rippleColor","target","entryanimation","animation","delay","animationdelay"],"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 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 = 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 {...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.state.imageWidth ? elementToshow : null}\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","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 {...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":[]}
@@ -17,6 +17,7 @@ export default class WmPictureProps extends BaseProps {
17
17
  _defineProperty(this, "accessibilitylabel", undefined);
18
18
  _defineProperty(this, "hint", undefined);
19
19
  _defineProperty(this, "accessibilityrole", 'image');
20
+ _defineProperty(this, "fastload", false);
20
21
  }
21
22
  }
22
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}\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;EAAA;AACjD","ignoreList":[]}
1
+ {"version":3,"names":["BaseProps","WmPictureProps","constructor","args","_defineProperty","undefined"],"sources":["picture.props.ts"],"sourcesContent":["import { AccessibilityRole, ImageResizeMode } from 'react-native';\nimport { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmPictureProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n picturesource?: string = null as any;\n pictureplaceholder?: string = null as any;\n shape?: string = null as any;\n isSvg?: string = null as any;\n resizemode?: ImageResizeMode = 'stretch' as any;\n skeletonheight?: string = null as any;\n skeletonwidth?: string = null as any;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'image';\n fastload?: boolean = false;\n}\n"],"mappings":";;;AACA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,cAAc,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC/B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,6BACC,IAAI;IAAAA,eAAA,gBACjB,IAAI;IAAAA,eAAA,gBACJ,IAAI;IAAAA,eAAA,qBACU,SAAS;IAAAA,eAAA,yBACd,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,6BACCC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,OAAO;IAAAA,eAAA,mBAC1B,KAAK;EAAA;AAC5B","ignoreList":[]}
@@ -187,7 +187,7 @@ export default class WmSearch extends BaseDatasetComponent {
187
187
  }
188
188
  onFocus() {
189
189
  this.isFocused = true;
190
- if (!this.state.props.disabled && this.state.props.type === 'autocomplete') {
190
+ if (!(this.state.props.disabled || this.state.props.readonly) && this.state.props.type === 'autocomplete') {
191
191
  var _this$state$props$que;
192
192
  this.cursor = ((_this$state$props$que = this.state.props.query) === null || _this$state$props$que === void 0 ? void 0 : _this$state$props$que.length) || 0;
193
193
  this.updateFilteredData(this.state.props.query || '');
@@ -321,7 +321,7 @@ export default class WmSearch extends BaseDatasetComponent {
321
321
  this.searchInputWidth = e.nativeEvent.layout.width;
322
322
  },
323
323
  onBlur: this.onBlur.bind(this)
324
- }, opts)), props.showclear && this.state.props.query ? /*#__PURE__*/React.createElement(WmButton, {
324
+ }, opts)), props.showclear && !(this.state.props.disabled || this.state.props.readonly) && this.state.props.query ? /*#__PURE__*/React.createElement(WmButton, {
325
325
  onTap: this.clearSearch.bind(this),
326
326
  id: this.getTestId('clear'),
327
327
  styles: this.styles.clearButton,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Keyboard","Platform","Text","TextInput","View","ScrollView","find","isNull","WmSearchProps","DEFAULT_CLASS","ModalConsumer","DataProvider","AccessibilityWidgetType","getAccessibilityProps","BaseDatasetComponent","BaseDatasetState","WmAnchor","WmPicture","Tappable","WmButton","get","isArray","isEmpty","isObject","AssetProvider","createSkeleton","WmSearchState","constructor","args","_defineProperty","top","left","WmSearch","props","Promise","resolve","position","view","measure","x","y","width","height","px","py","updateState","computePosition","then","isOpened","dataProvider","datavalue","query","clearSearch","invokeEventCallback","hide","dataItems","state","map","item","selected","type","updateFilteredData","queryText","_filteredData","filterOptions","entries","filteredData","minchars","length","_this$dataProvider","searchkey","updateRequired","undefined","init","invokeVariable","response","dataSet","setDataItems","filter","result","dataObject","data","isFocused","showPopover","focus","_this$widgetRef","widgetRef","onChange","value","isDefaultQuery","prevQuery","searchon","validate","setTimeout","invokeEvent","proxy","invokeChange","e","OS","cursor","target","selectionStart","onFocus","disabled","_this$state$props$que","onBlur","triggerValidation","prepareModalOptions","content","styles","modalService","o","modalOptions","modalContentSTyles","searchInputWidth","modalContent","borderWidth","modalStyle","modal","contentStyle","isModal","onClose","dismiss","setState","hideModal","searchIconPress","onItemSelect","displayexp","displayfield","datafield","updateDatavalue","prevDatavalue","queryModel","renderSkeleton","rootStyle","searchInputWrapper","root","text","theme","skeleton","renderSearchBar","_this$state$dataItems","opts","valueExpr","createElement","style","ref","onLayout","_extends","isValid","invalid","focusedText","selectionEnd","getTestPropsForInput","SEARCH","placeholderTextColor","placeholderText","color","placeholder","autoFocus","autofocus","editable","readonly","onChangeText","bind","nativeEvent","layout","showclear","onTap","id","getTestId","clearButton","iconclass","showSearchIcon","searchButton","reset","renderSearchItem","index","imageStyles","imagewidth","getTestProps","searchItem","template","renderitempartial","Fragment","name","picturesource","imgSrc","getTestPropsForLabel","searchItemText","updateDefaultQueryModel","selectedItem","onDataItemsUpdate","componentDidMount","onPropertyChange","$new","$old","dataset","setTemplate","partialName","renderWidget","showModal","maxHeight","contentContainerStyle","dropDownContent","loadAsset","key","limit","caption","datacompletemsg","dataCompleteItem"],"sources":["search.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Keyboard, Platform, Text, TextInput, View } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { find, isNull } from 'lodash';\n\nimport WmSearchProps from './search.props';\nimport { DEFAULT_CLASS, WmSearchStyles } from './search.styles';\nimport { ModalConsumer, ModalOptions, ModalService} from \"@wavemaker/app-rn-runtime/core/modal.service\";\nimport { DataProvider } from '@wavemaker/app-rn-runtime/components/basic/search/local-data-provider';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \n\nimport {\n BaseDatasetComponent,\n BaseDatasetState\n} from '@wavemaker/app-rn-runtime/components/input/basedataset/basedataset.component';\nimport WmAnchor from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.component';\nimport WmPicture from '@wavemaker/app-rn-runtime/components/basic/picture/picture.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport { get, isArray, isEmpty, isObject } from \"lodash-es\";\nimport { AssetProvider } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmSearchState extends BaseDatasetState<WmSearchProps> {\n isOpened: boolean = false;\n modalOptions = {} as ModalOptions;\n template: string = \"\";\n position = {\n top: 0,\n left: 0\n } as DropdownPosition;\n data: any = [];\n}\n\nexport interface DropdownPosition {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport default class WmSearch extends BaseDatasetComponent<WmSearchProps, WmSearchState, WmSearchStyles> {\n view: View = null as any;\n private prevDatavalue: any;\n private queryModel: any;\n private searchInputWidth: any;\n private isDefaultQuery: boolean = true;\n private dataProvider: DataProvider;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n private isFocused: boolean = false;\n private updateRequired: any;\n\n constructor(props: WmSearchProps) {\n super(props, DEFAULT_CLASS, new WmSearchProps(), new WmSearchState());\n this.dataProvider = new DataProvider();\n if (this.props.datavalue) {\n this.updateState({\n props: {\n query: this.props.datavalue\n }\n } as WmSearchState);\n }\n }\n\n computePosition = () => {\n return new Promise<void>((resolve) => {\n const position = {} as DropdownPosition;\n this.view.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n position.left = px;\n position.top = py + height;\n this.updateState({ position: position } as WmSearchState, resolve);\n });\n });\n }\n\n clearSearch() {\n this.invokeEventCallback('onClear', [null, this]);\n this.hide();\n this.updateState({\n props: {\n query: ''\n },\n dataItems: this.state.dataItems ? this.state.dataItems.map((item: any) => {\n item.selected = false;\n return item;\n }) : []\n } as WmSearchState, () => {\n if (this.state.props.type === 'autocomplete') {\n this.updateFilteredData('');\n }\n });\n }\n\n updateFilteredData(queryText: string = '') {\n const props = this.state.props;\n const filterOptions = {\n query: queryText,\n props: props,\n entries: this.state.dataItems\n };\n let filteredData: Array<any> = [];\n if (props.minchars && queryText.length < props.minchars) {\n filteredData = [];\n } else if (props.type === 'search' && !queryText) {\n filteredData = [];\n } else {\n if (this.props.searchkey && this.updateRequired === undefined) {\n this.updateRequired = this.dataProvider.init(this);\n }\n // for service variables invoke the variable with params.\n if (this.props.searchkey && this.updateRequired && this.state.props.query !== queryText) {\n this.dataProvider.invokeVariable(this, queryText).then((response: any) => {\n if (response) {\n response = response.dataSet;\n if (isEmpty(response)) {\n filteredData = [];\n } else {\n if (isObject(response) && !isArray(response)) {\n response = [response];\n }\n this.setDataItems(response);\n }\n }\n }, () => {});\n return;\n }\n filteredData = this.dataProvider?.filter(filterOptions);\n }\n this.updateState({\n props: { result: filteredData?.map( (item: any) => item.dataObject), query: queryText },\n data: filteredData,\n } as WmSearchState);\n if (!this.state.isOpened && this.isFocused) {\n this.showPopover && this.showPopover();\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n onChange(value: any) {\n this.isDefaultQuery = false;\n const prevQuery = this.state.props.query;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateState({\n props: {result: [], query: value},\n data: []\n } as WmSearchState);\n } else {\n this.updateFilteredData(value);\n }\n if (value === '') {\n this.validate(value);\n this.updateState({\n props: {\n datavalue: '',\n },\n } as WmSearchState);\n if (value === prevQuery) {\n return;\n }\n }\n setTimeout(() => {\n if (this.props.invokeEvent) {\n this.props.invokeEvent('onChange', [undefined, this.proxy, value, prevQuery]);\n }\n this.invokeEventCallback('onChange', [ undefined, this.proxy, value, prevQuery ]);\n }, 300);\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.updateState({ props: { query: e.target.value } } as WmSearchState);\n }\n }\n\n onFocus() {\n this.isFocused = true;\n if (!this.state.props.disabled && this.state.props.type === 'autocomplete') {\n this.cursor = this.state.props.query?.length || 0;\n this.updateFilteredData(this.state.props.query || '');\n }\n this.invokeEventCallback('onFocus', [null, this]);\n }\n\n onBlur() {\n this.isFocused = false;\n this.validate(this.state.props.datavalue);\n if (!this.state.props.datavalue) {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n this.invokeEventCallback('onBlur', [null, this]);\n }\n\n public showPopover = () => {\n this.computePosition().then(() => {\n this.updateState({ isOpened: true } as WmSearchState);\n });\n };\n\n public hide = () => {};\n\n prepareModalOptions(content: React.ReactNode, styles: WmSearchStyles, modalService: ModalService) {\n const o = this.state.modalOptions;\n const modalContentSTyles = {\n width: this.searchInputWidth - 2 * (styles.modalContent.borderWidth || 0),\n left: (this.state.position.left || 0) + 2 * (styles.modalContent.borderWidth || 0) };\n o.modalStyle = {...styles.modal};\n o.contentStyle = {...styles.modalContent, ...this.state.position, ...modalContentSTyles};\n o.content = content;\n o.isModal = true;\n o.onClose = () => {\n this.hide = () => {};\n Keyboard.dismiss();\n if (this.state.isOpened) {\n this.setState({isOpened: false, modalOptions: {} as ModalOptions} as WmSearchState);\n }\n };\n this.hide = () => {\n modalService.hideModal(this.state.modalOptions);\n if (this.state.isOpened) {\n this.setState({ isOpened: false, modalOptions: {} as ModalOptions } as WmSearchState);\n }\n }\n return o;\n }\n\n searchIconPress() {\n this.isFocused = false;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateFilteredData(this.state.props.query);\n } else {\n this.onItemSelect(this.state.data[0]);\n }\n }\n\n onItemSelect(item: any) {\n this.isFocused = false;\n this.updateState({ props: {\n query: item.displayexp || item.displayfield\n }\n } as WmSearchState);\n this.validate(item.datafield);\n this.updateDatavalue(item.datafield);\n this.prevDatavalue = item.datafield;\n this.queryModel = item;\n if (get(this.props, 'formfield')) {\n // @ts-ignore\n this.props.invokeEvent('onSelect', [null, this, item.datafield]);\n // @ts-ignore\n this.props.invokeEvent('onSubmit', [null, this]);\n } else {\n this.invokeEventCallback('onSelect', [null, this, item.datafield]);\n this.invokeEventCallback('onSubmit', [null, this]);\n }\n this.hide();\n }\n\n public renderSkeleton(props: WmSearchProps): React.ReactNode {\n \n const rootStyle = {\n ...this.styles.searchInputWrapper, \n ...this.styles.root, \n ...this.styles.text\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, rootStyle)\n }\n\n renderSearchBar() {\n const props = this.state.props;\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.props.query || '';\n return(\n /*\n * onLayout function is required.\n * https://github.com/naoufal/react-native-accordion/pull/19/files\n */\n <View style={this.styles.root} ref={ref => {this.view = ref as View}} onLayout={() => {}}>\n <View style={this.styles.searchInputWrapper}>\n <TextInput style={[this.styles.text, this.state.isValid ? {} : this.styles.invalid, this.state.isOpened && this.state.dataItems?.length > 0? this.styles.focusedText : null]}\n ref={ref => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(AccessibilityWidgetType.SEARCH, props)}\n placeholderTextColor={this.styles.placeholderText.color as any}\n placeholder={props.placeholder || 'Search'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n onChangeText={this.onChange.bind(this)}\n onChange={this.invokeChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onLayout={e => {this.searchInputWidth = e.nativeEvent.layout.width}}\n onBlur={this.onBlur.bind(this)}\n {...opts}>\n </TextInput>\n {props.showclear && this.state.props.query ? <WmButton onTap={this.clearSearch.bind(this)}\n id={this.getTestId('clear')}\n styles={this.styles.clearButton} iconclass={'wi wi-clear'}></WmButton> : null}\n </View>\n {props.showSearchIcon && props.type === 'search' ? <WmButton styles={this.styles.searchButton}\n id={this.getTestId('search')}\n iconclass={props.iconclass} onTap={this.searchIconPress.bind(this)}></WmButton> : null}\n </View>\n );\n }\n\n reset() {\n if (this.state.props.query) {\n this.updateState({\n props: {\n query: ''\n }\n } as WmSearchState);\n }\n }\n\n renderSearchItem(item: any, index: number) {\n const props = this.state.props;\n const imageStyles = { root: {height:props.imagewidth, width:props.imagewidth}}\n return (\n <Tappable onTap={this.onItemSelect.bind(this, item)} {...this.getTestProps(`action${index}`)}>\n <View style={this.styles.searchItem}>\n {!isEmpty(this.state.template) && this.props.renderitempartial ?\n this.props.renderitempartial(item.dataObject, index, this.state.template) : (<>\n <WmPicture id={this.getTestId(`picture${index}`)} styles={imageStyles} name={props.name + '_image'} picturesource={item.imgSrc}></WmPicture>\n <Text {...this.getTestPropsForLabel(index + '')} style={this.styles.searchItemText}>{item.displayexp || item.displayfield}</Text>\n </>)}\n </View>\n </Tappable>\n );\n }\n\n updateDefaultQueryModel() {\n if (this.state.dataItems && this.state.dataItems.length && this.isDefaultQuery) {\n const selectedItem = find(this.state.dataItems, (item) => item.selected);\n this.updateState({ props: {\n query: selectedItem ? (selectedItem.displayexp || selectedItem.displayfield) : ''\n }\n } as WmSearchState);\n }\n }\n\n onDataItemsUpdate() {\n super.onDataItemsUpdate();\n this.isFocused && this.state.dataItems.length && this.updateFilteredData(this.state.props.query);\n this.updateDefaultQueryModel();\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.updateDefaultQueryModel();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'dataset':\n if (!isEmpty($new) && isObject($new) && !isArray($new)) {\n $new = [$new];\n this.updateState({\n props: {\n dataset: $new\n }\n } as WmSearchState);\n }\n break;\n }\n super.onPropertyChange(name, $new, $old);\n }\n\n setTemplate(partialName: any) {\n this.updateState({ template: partialName} as WmSearchState);\n }\n\n renderWidget(props: WmSearchProps) {\n const result = this.state.data;\n return (\n <View>\n {this.renderSearchBar()}\n {this.state.isOpened ? (\n <ModalConsumer>\n {(modalService: ModalService) => {\n modalService.showModal(this.prepareModalOptions((\n <ScrollView style={{width: '100%', maxHeight: 200}} contentContainerStyle={this.styles.dropDownContent}>\n <AssetProvider value={this.loadAsset}>\n {result && result.map((item: any, index: any) => (\n <View key={item.key}>\n {\n (!props.limit) || (props.limit && index+1 <= props.limit) ?\n this.renderSearchItem(item, index)\n : null\n }\n {\n index === result.length - 1 ?\n <WmAnchor caption={props.datacompletemsg} styles={this.styles.dataCompleteItem}></WmAnchor> : null\n }\n </View>\n ))}\n </AssetProvider>\n </ScrollView>\n ), this.styles, modalService));\n return null;\n }}\n </ModalConsumer>) : null}\n </View>\n\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Keyboard","Platform","Text","TextInput","View","ScrollView","find","isNull","WmSearchProps","DEFAULT_CLASS","ModalConsumer","DataProvider","AccessibilityWidgetType","getAccessibilityProps","BaseDatasetComponent","BaseDatasetState","WmAnchor","WmPicture","Tappable","WmButton","get","isArray","isEmpty","isObject","AssetProvider","createSkeleton","WmSearchState","constructor","args","_defineProperty","top","left","WmSearch","props","Promise","resolve","position","view","measure","x","y","width","height","px","py","updateState","computePosition","then","isOpened","dataProvider","datavalue","query","clearSearch","invokeEventCallback","hide","dataItems","state","map","item","selected","type","updateFilteredData","queryText","_filteredData","filterOptions","entries","filteredData","minchars","length","_this$dataProvider","searchkey","updateRequired","undefined","init","invokeVariable","response","dataSet","setDataItems","filter","result","dataObject","data","isFocused","showPopover","focus","_this$widgetRef","widgetRef","onChange","value","isDefaultQuery","prevQuery","searchon","validate","setTimeout","invokeEvent","proxy","invokeChange","e","OS","cursor","target","selectionStart","onFocus","disabled","readonly","_this$state$props$que","onBlur","triggerValidation","prepareModalOptions","content","styles","modalService","o","modalOptions","modalContentSTyles","searchInputWidth","modalContent","borderWidth","modalStyle","modal","contentStyle","isModal","onClose","dismiss","setState","hideModal","searchIconPress","onItemSelect","displayexp","displayfield","datafield","updateDatavalue","prevDatavalue","queryModel","renderSkeleton","rootStyle","searchInputWrapper","root","text","theme","skeleton","renderSearchBar","_this$state$dataItems","opts","valueExpr","createElement","style","ref","onLayout","_extends","isValid","invalid","focusedText","selectionEnd","getTestPropsForInput","SEARCH","placeholderTextColor","placeholderText","color","placeholder","autoFocus","autofocus","editable","onChangeText","bind","nativeEvent","layout","showclear","onTap","id","getTestId","clearButton","iconclass","showSearchIcon","searchButton","reset","renderSearchItem","index","imageStyles","imagewidth","getTestProps","searchItem","template","renderitempartial","Fragment","name","picturesource","imgSrc","getTestPropsForLabel","searchItemText","updateDefaultQueryModel","selectedItem","onDataItemsUpdate","componentDidMount","onPropertyChange","$new","$old","dataset","setTemplate","partialName","renderWidget","showModal","maxHeight","contentContainerStyle","dropDownContent","loadAsset","key","limit","caption","datacompletemsg","dataCompleteItem"],"sources":["search.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Keyboard, Platform, Text, TextInput, View } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { find, isNull } from 'lodash';\n\nimport WmSearchProps from './search.props';\nimport { DEFAULT_CLASS, WmSearchStyles } from './search.styles';\nimport { ModalConsumer, ModalOptions, ModalService} from \"@wavemaker/app-rn-runtime/core/modal.service\";\nimport { DataProvider } from '@wavemaker/app-rn-runtime/components/basic/search/local-data-provider';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \n\nimport {\n BaseDatasetComponent,\n BaseDatasetState\n} from '@wavemaker/app-rn-runtime/components/input/basedataset/basedataset.component';\nimport WmAnchor from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.component';\nimport WmPicture from '@wavemaker/app-rn-runtime/components/basic/picture/picture.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport { get, isArray, isEmpty, isObject } from \"lodash-es\";\nimport { AssetProvider } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmSearchState extends BaseDatasetState<WmSearchProps> {\n isOpened: boolean = false;\n modalOptions = {} as ModalOptions;\n template: string = \"\";\n position = {\n top: 0,\n left: 0\n } as DropdownPosition;\n data: any = [];\n}\n\nexport interface DropdownPosition {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport default class WmSearch extends BaseDatasetComponent<WmSearchProps, WmSearchState, WmSearchStyles> {\n view: View = null as any;\n private prevDatavalue: any;\n private queryModel: any;\n private searchInputWidth: any;\n private isDefaultQuery: boolean = true;\n private dataProvider: DataProvider;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n private isFocused: boolean = false;\n private updateRequired: any;\n\n constructor(props: WmSearchProps) {\n super(props, DEFAULT_CLASS, new WmSearchProps(), new WmSearchState());\n this.dataProvider = new DataProvider();\n if (this.props.datavalue) {\n this.updateState({\n props: {\n query: this.props.datavalue\n }\n } as WmSearchState);\n }\n }\n\n computePosition = () => {\n return new Promise<void>((resolve) => {\n const position = {} as DropdownPosition;\n this.view.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n position.left = px;\n position.top = py + height;\n this.updateState({ position: position } as WmSearchState, resolve);\n });\n });\n }\n\n clearSearch() {\n this.invokeEventCallback('onClear', [null, this]);\n this.hide();\n this.updateState({\n props: {\n query: ''\n },\n dataItems: this.state.dataItems ? this.state.dataItems.map((item: any) => {\n item.selected = false;\n return item;\n }) : []\n } as WmSearchState, () => {\n if (this.state.props.type === 'autocomplete') {\n this.updateFilteredData('');\n }\n });\n }\n\n updateFilteredData(queryText: string = '') {\n const props = this.state.props;\n const filterOptions = {\n query: queryText,\n props: props,\n entries: this.state.dataItems\n };\n let filteredData: Array<any> = [];\n if (props.minchars && queryText.length < props.minchars) {\n filteredData = [];\n } else if (props.type === 'search' && !queryText) {\n filteredData = [];\n } else {\n if (this.props.searchkey && this.updateRequired === undefined) {\n this.updateRequired = this.dataProvider.init(this);\n }\n // for service variables invoke the variable with params.\n if (this.props.searchkey && this.updateRequired && this.state.props.query !== queryText) {\n this.dataProvider.invokeVariable(this, queryText).then((response: any) => {\n if (response) {\n response = response.dataSet;\n if (isEmpty(response)) {\n filteredData = [];\n } else {\n if (isObject(response) && !isArray(response)) {\n response = [response];\n }\n this.setDataItems(response);\n }\n }\n }, () => {});\n return;\n }\n filteredData = this.dataProvider?.filter(filterOptions);\n }\n this.updateState({\n props: { result: filteredData?.map( (item: any) => item.dataObject), query: queryText },\n data: filteredData,\n } as WmSearchState);\n if (!this.state.isOpened && this.isFocused) {\n this.showPopover && this.showPopover();\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n onChange(value: any) {\n this.isDefaultQuery = false;\n const prevQuery = this.state.props.query;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateState({\n props: {result: [], query: value},\n data: []\n } as WmSearchState);\n } else {\n this.updateFilteredData(value);\n }\n if (value === '') {\n this.validate(value);\n this.updateState({\n props: {\n datavalue: '',\n },\n } as WmSearchState);\n if (value === prevQuery) {\n return;\n }\n }\n setTimeout(() => {\n if (this.props.invokeEvent) {\n this.props.invokeEvent('onChange', [undefined, this.proxy, value, prevQuery]);\n }\n this.invokeEventCallback('onChange', [ undefined, this.proxy, value, prevQuery ]);\n }, 300);\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.updateState({ props: { query: e.target.value } } as WmSearchState);\n }\n }\n\n onFocus() {\n this.isFocused = true;\n if (\n !(this.state.props.disabled || this.state.props.readonly) &&\n this.state.props.type === 'autocomplete'\n ) {\n this.cursor = this.state.props.query?.length || 0;\n this.updateFilteredData(this.state.props.query || '');\n }\n this.invokeEventCallback('onFocus', [null, this]);\n }\n\n onBlur() {\n this.isFocused = false;\n this.validate(this.state.props.datavalue);\n if (!this.state.props.datavalue) {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n this.invokeEventCallback('onBlur', [null, this]);\n }\n\n public showPopover = () => {\n this.computePosition().then(() => {\n this.updateState({ isOpened: true } as WmSearchState);\n });\n };\n\n public hide = () => {};\n\n prepareModalOptions(content: React.ReactNode, styles: WmSearchStyles, modalService: ModalService) {\n const o = this.state.modalOptions;\n const modalContentSTyles = {\n width: this.searchInputWidth - 2 * (styles.modalContent.borderWidth || 0),\n left: (this.state.position.left || 0) + 2 * (styles.modalContent.borderWidth || 0) };\n o.modalStyle = {...styles.modal};\n o.contentStyle = {...styles.modalContent, ...this.state.position, ...modalContentSTyles};\n o.content = content;\n o.isModal = true;\n o.onClose = () => {\n this.hide = () => {};\n Keyboard.dismiss();\n if (this.state.isOpened) {\n this.setState({isOpened: false, modalOptions: {} as ModalOptions} as WmSearchState);\n }\n };\n this.hide = () => {\n modalService.hideModal(this.state.modalOptions);\n if (this.state.isOpened) {\n this.setState({ isOpened: false, modalOptions: {} as ModalOptions } as WmSearchState);\n }\n }\n return o;\n }\n\n searchIconPress() {\n this.isFocused = false;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateFilteredData(this.state.props.query);\n } else {\n this.onItemSelect(this.state.data[0]);\n }\n }\n\n onItemSelect(item: any) {\n this.isFocused = false;\n this.updateState({ props: {\n query: item.displayexp || item.displayfield\n }\n } as WmSearchState);\n this.validate(item.datafield);\n this.updateDatavalue(item.datafield);\n this.prevDatavalue = item.datafield;\n this.queryModel = item;\n if (get(this.props, 'formfield')) {\n // @ts-ignore\n this.props.invokeEvent('onSelect', [null, this, item.datafield]);\n // @ts-ignore\n this.props.invokeEvent('onSubmit', [null, this]);\n } else {\n this.invokeEventCallback('onSelect', [null, this, item.datafield]);\n this.invokeEventCallback('onSubmit', [null, this]);\n }\n this.hide();\n }\n\n public renderSkeleton(props: WmSearchProps): React.ReactNode {\n \n const rootStyle = {\n ...this.styles.searchInputWrapper, \n ...this.styles.root, \n ...this.styles.text\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, rootStyle)\n }\n\n renderSearchBar() {\n const props = this.state.props;\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.props.query || '';\n return(\n /*\n * onLayout function is required.\n * https://github.com/naoufal/react-native-accordion/pull/19/files\n */\n <View style={this.styles.root} ref={ref => {this.view = ref as View}} onLayout={() => {}}>\n <View style={this.styles.searchInputWrapper}>\n <TextInput style={[this.styles.text, this.state.isValid ? {} : this.styles.invalid, this.state.isOpened && this.state.dataItems?.length > 0? this.styles.focusedText : null]}\n ref={ref => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(AccessibilityWidgetType.SEARCH, props)}\n placeholderTextColor={this.styles.placeholderText.color as any}\n placeholder={props.placeholder || 'Search'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n onChangeText={this.onChange.bind(this)}\n onChange={this.invokeChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onLayout={e => {this.searchInputWidth = e.nativeEvent.layout.width}}\n onBlur={this.onBlur.bind(this)}\n {...opts}>\n </TextInput>\n {(props.showclear && !(this.state.props.disabled || this.state.props.readonly)) && this.state.props.query ? <WmButton onTap={this.clearSearch.bind(this)}\n id={this.getTestId('clear')}\n styles={this.styles.clearButton} iconclass={'wi wi-clear'}></WmButton> : null}\n </View>\n {props.showSearchIcon && props.type === 'search' ? <WmButton styles={this.styles.searchButton}\n id={this.getTestId('search')}\n iconclass={props.iconclass} onTap={this.searchIconPress.bind(this)}></WmButton> : null}\n </View>\n );\n }\n\n reset() {\n if (this.state.props.query) {\n this.updateState({\n props: {\n query: ''\n }\n } as WmSearchState);\n }\n }\n\n renderSearchItem(item: any, index: number) {\n const props = this.state.props;\n const imageStyles = { root: {height:props.imagewidth, width:props.imagewidth}}\n return (\n <Tappable onTap={this.onItemSelect.bind(this, item)} {...this.getTestProps(`action${index}`)}>\n <View style={this.styles.searchItem}>\n {!isEmpty(this.state.template) && this.props.renderitempartial ?\n this.props.renderitempartial(item.dataObject, index, this.state.template) : (<>\n <WmPicture id={this.getTestId(`picture${index}`)} styles={imageStyles} name={props.name + '_image'} picturesource={item.imgSrc}></WmPicture>\n <Text {...this.getTestPropsForLabel(index + '')} style={this.styles.searchItemText}>{item.displayexp || item.displayfield}</Text>\n </>)}\n </View>\n </Tappable>\n );\n }\n\n updateDefaultQueryModel() {\n if (this.state.dataItems && this.state.dataItems.length && this.isDefaultQuery) {\n const selectedItem = find(this.state.dataItems, (item) => item.selected);\n this.updateState({ props: {\n query: selectedItem ? (selectedItem.displayexp || selectedItem.displayfield) : ''\n }\n } as WmSearchState);\n }\n }\n\n onDataItemsUpdate() {\n super.onDataItemsUpdate();\n this.isFocused && this.state.dataItems.length && this.updateFilteredData(this.state.props.query);\n this.updateDefaultQueryModel();\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.updateDefaultQueryModel();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'dataset':\n if (!isEmpty($new) && isObject($new) && !isArray($new)) {\n $new = [$new];\n this.updateState({\n props: {\n dataset: $new\n }\n } as WmSearchState);\n }\n break;\n }\n super.onPropertyChange(name, $new, $old);\n }\n\n setTemplate(partialName: any) {\n this.updateState({ template: partialName} as WmSearchState);\n }\n\n renderWidget(props: WmSearchProps) {\n const result = this.state.data;\n return (\n <View>\n {this.renderSearchBar()}\n {this.state.isOpened ? (\n <ModalConsumer>\n {(modalService: ModalService) => {\n modalService.showModal(this.prepareModalOptions((\n <ScrollView style={{width: '100%', maxHeight: 200}} contentContainerStyle={this.styles.dropDownContent}>\n <AssetProvider value={this.loadAsset}>\n {result && result.map((item: any, index: any) => (\n <View key={item.key}>\n {\n (!props.limit) || (props.limit && index+1 <= props.limit) ?\n this.renderSearchItem(item, index)\n : null\n }\n {\n index === result.length - 1 ?\n <WmAnchor caption={props.datacompletemsg} styles={this.styles.dataCompleteItem}></WmAnchor> : null\n }\n </View>\n ))}\n </AssetProvider>\n </ScrollView>\n ), this.styles, modalService));\n return null;\n }}\n </ModalConsumer>) : null}\n </View>\n\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,8 +2,8 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
2
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
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
- import React from 'react';
6
- import { Animated, Easing, Text, View } from 'react-native';
5
+ import React, { createRef } from 'react';
6
+ import { Animated, Easing, Text, View, ScrollView } from 'react-native';
7
7
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
8
8
  import WmTabheaderProps from './tabheader.props';
9
9
  import { DEFAULT_CLASS } from './tabheader.styles';
@@ -22,6 +22,7 @@ export default class WmTabheader extends BaseComponent {
22
22
  _defineProperty(this, "indicatorPosition", new Animated.Value(0));
23
23
  _defineProperty(this, "reverseIndicatorWidth", new Animated.Value(0));
24
24
  _defineProperty(this, "indicatorWidth", new Animated.Value(0));
25
+ _defineProperty(this, "listRef", /*#__PURE__*/createRef());
25
26
  this.headerScrollPosition.addListener(({
26
27
  value
27
28
  }) => this.headerScrollPositionValue = value);
@@ -41,8 +42,16 @@ export default class WmTabheader extends BaseComponent {
41
42
  this.state.props.onIndexChange && this.state.props.onIndexChange(index);
42
43
  }
43
44
  }
45
+ scrollPosition(selectedTabIndex, totalWidth, toIndicatorPosition) {
46
+ var _this$headerPanelLayo;
47
+ const initialPosition = this.isRTL ? totalWidth : 0;
48
+ const baseWidth = this.isRTL ? totalWidth - toIndicatorPosition : toIndicatorPosition;
49
+ const elementWidth = this.isRTL ? -1 * (this.headersLayout[selectedTabIndex].width / 2) : this.headersLayout[selectedTabIndex].width / 2;
50
+ const positionX = selectedTabIndex === 0 ? initialPosition : baseWidth + elementWidth - (((_this$headerPanelLayo = this.headerPanelLayout) === null || _this$headerPanelLayo === void 0 ? void 0 : _this$headerPanelLayo.width) || 0) / 2;
51
+ return positionX;
52
+ }
44
53
  setPosition() {
45
- var _this$headersLayout$s, _this$headerPanelLayo, _this$headerPanelLayo2;
54
+ var _this$headersLayout$s, _this$headerPanelLayo2, _this$headerPanelLayo3, _this$listRef$current;
46
55
  const selectedTabIndex = this.state.props.selectedTabIndex ? this.state.props.selectedTabIndex : 0;
47
56
  let toIndicatorPosition = 0;
48
57
  let toIndicatorWidth = ((_this$headersLayout$s = this.headersLayout[selectedTabIndex]) === null || _this$headersLayout$s === void 0 ? void 0 : _this$headersLayout$s.width) || 0;
@@ -57,13 +66,19 @@ export default class WmTabheader extends BaseComponent {
57
66
  }
58
67
  totalWidth += p.width;
59
68
  });
60
- toHeaderScrollPosition = -1 * (toIndicatorPosition - (((_this$headerPanelLayo = this.headerPanelLayout) === null || _this$headerPanelLayo === void 0 ? void 0 : _this$headerPanelLayo.width) || 0) / 2 + toIndicatorWidth / 2);
61
- const minScrollPosition = -1 * (totalWidth - (((_this$headerPanelLayo2 = this.headerPanelLayout) === null || _this$headerPanelLayo2 === void 0 ? void 0 : _this$headerPanelLayo2.width) || 0));
69
+ toHeaderScrollPosition = -1 * (toIndicatorPosition - (((_this$headerPanelLayo2 = this.headerPanelLayout) === null || _this$headerPanelLayo2 === void 0 ? void 0 : _this$headerPanelLayo2.width) || 0) / 2 + toIndicatorWidth / 2);
70
+ const minScrollPosition = -1 * (totalWidth - (((_this$headerPanelLayo3 = this.headerPanelLayout) === null || _this$headerPanelLayo3 === void 0 ? void 0 : _this$headerPanelLayo3.width) || 0));
62
71
  const maxScrollPosition = 0;
63
72
  toHeaderScrollPosition = Math.max(minScrollPosition, toHeaderScrollPosition);
64
73
  toHeaderScrollPosition = Math.min(maxScrollPosition, toHeaderScrollPosition);
65
74
  let positionIndicator = toIndicatorPosition - (100 - toIndicatorWidth) / 2;
66
75
  let position = this.isRTL ? -positionIndicator : positionIndicator;
76
+ const positionX = this.scrollPosition(selectedTabIndex, totalWidth, toIndicatorPosition);
77
+ (_this$listRef$current = this.listRef.current) === null || _this$listRef$current === void 0 || _this$listRef$current.scrollTo({
78
+ x: positionX,
79
+ y: 0,
80
+ Animated: true
81
+ });
67
82
  Animated.parallel([Animated.timing(this.headerScrollPosition, {
68
83
  useNativeDriver: true,
69
84
  toValue: toHeaderScrollPosition,
@@ -130,19 +145,17 @@ export default class WmTabheader extends BaseComponent {
130
145
  renderWidget(props) {
131
146
  this.setPosition();
132
147
  const arrowIndicator = this.styles.arrowIndicator;
133
- return /*#__PURE__*/React.createElement(View, {
148
+ return /*#__PURE__*/React.createElement(View, _extends({
134
149
  style: {
135
150
  overflow: 'hidden',
136
151
  zIndex: 16
137
152
  }
138
- }, /*#__PURE__*/React.createElement(Animated.View, {
139
- style: {
140
- transform: [{
141
- translateX: this.headerScrollPosition
142
- }]
143
- },
144
- onLayout: this.setHeaderPanelPositon.bind(this)
145
- }, /*#__PURE__*/React.createElement(View, {
153
+ }, this.getTestProps('tabheader')), /*#__PURE__*/React.createElement(ScrollView, {
154
+ ref: this.listRef,
155
+ horizontal: true,
156
+ onLayout: this.setHeaderPanelPositon.bind(this),
157
+ showsHorizontalScrollIndicator: false
158
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
146
159
  style: this.styles.root
147
160
  }, this._background, props.data.map((header, i) => {
148
161
  const isSelected = i === props.selectedTabIndex;
@@ -192,7 +205,7 @@ export default class WmTabheader extends BaseComponent {
192
205
  }
193
206
  }) : null, /*#__PURE__*/React.createElement(View, {
194
207
  style: this.styles.arrowIndicatorDot
195
- })))));
208
+ }))))));
196
209
  }
197
210
  }
198
211
  //# sourceMappingURL=tabheader.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Easing","Text","View","BaseComponent","BaseComponentState","WmTabheaderProps","DEFAULT_CLASS","Tappable","createSkeleton","BackgroundComponent","WmIcon","WmTabheaderState","WmTabheader","constructor","props","_defineProperty","Value","headerScrollPosition","addListener","value","headerScrollPositionValue","setHeaderPanelPositon","nativeEvent","headerPanelLayout","layout","forceUpdate","setHeaderPositon","index","headersLayout","selectedTabIndex","onTabSelection","state","onIndexChange","setPosition","_this$headersLayout$s","_this$headerPanelLayo","_this$headerPanelLayo2","toIndicatorPosition","toIndicatorWidth","width","toHeaderScrollPosition","totalWidth","data","length","forEach","p","i","minScrollPosition","maxScrollPosition","Math","max","min","positionIndicator","position","isRTL","parallel","timing","useNativeDriver","toValue","duration","easing","linear","indicatorWidth","reverseIndicatorWidth","indicatorPosition","start","renderSkeleton","createElement","style","transform","translateX","onLayout","bind","styles","root","map","header","_this$styles$root","_this$styles$root2","_this$styles$activeHe","isSelected","onTap","key","flex","activeHeader","theme","borderRadius","height","activeHeaderText","fontSize","activeIndicator","scaleX","renderWidget","arrowIndicator","overflow","zIndex","_background","_extends","getTestPropsForAction","flexGrow","undefined","id","getTestId","mergeStyle","headerIcon","activeHeaderIcon","iconclass","icon","numberOfLines","headerText","getTestPropsForLabel","title","backgroundImage","image","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","arrowIndicatorDot"],"sources":["tabheader.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, Easing, LayoutChangeEvent, LayoutRectangle, Text, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmTabheaderProps from './tabheader.props';\nimport { DEFAULT_CLASS, WmTabheaderStyles } from './tabheader.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport WmSkeleton, { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';\nimport WmIcon from \"@wavemaker/app-rn-runtime/components/basic/icon/icon.component\";\n\nexport class WmTabheaderState extends BaseComponentState<WmTabheaderProps> {\n}\n\nexport default class WmTabheader extends BaseComponent<WmTabheaderProps, WmTabheaderState, WmTabheaderStyles> {\n\n private headerPanelLayout: LayoutRectangle = null as any;\n private headersLayout: LayoutRectangle[] = [];\n private headerScrollPosition = new Animated.Value(0);\n private headerScrollPositionValue = 0;\n private indicatorPosition = new Animated.Value(0);\n private reverseIndicatorWidth = new Animated.Value(0);\n private indicatorWidth = new Animated.Value(0);\n\n constructor(props: WmTabheaderProps) {\n super(props, DEFAULT_CLASS, new WmTabheaderProps(), new WmTabheaderState());\n this.headerScrollPosition.addListener(({value}) => this.headerScrollPositionValue = value);\n }\n\n setHeaderPanelPositon(nativeEvent: LayoutChangeEvent) {\n this.headerPanelLayout = nativeEvent.nativeEvent.layout;\n this.forceUpdate();\n }\n\n setHeaderPositon(index: number, nativeEvent: LayoutChangeEvent) {\n this.headersLayout[index] = nativeEvent.nativeEvent.layout;\n if (index === this.props.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n onTabSelection(index: number) {\n if (this.state.props.selectedTabIndex != index) {\n this.state.props.onIndexChange && this.state.props.onIndexChange(index);\n }\n }\n\n setPosition() {\n const selectedTabIndex = this.state.props.selectedTabIndex ? this.state.props.selectedTabIndex : 0\n let toIndicatorPosition = 0;\n let toIndicatorWidth = this.headersLayout[selectedTabIndex]?.width || 0;\n let toHeaderScrollPosition = this.headerScrollPositionValue;\n let totalWidth = 0;\n if (this.state.props.data.length !== this.headersLayout.length) {\n return;\n }\n this.headersLayout.forEach((p, i) => {\n if (i < selectedTabIndex) {\n toIndicatorPosition += p.width;\n }\n totalWidth += p.width;\n });\n toHeaderScrollPosition = -1 * (toIndicatorPosition - (this.headerPanelLayout?.width || 0) / 2 + toIndicatorWidth/ 2) ;\n const minScrollPosition = -1 * (totalWidth - (this.headerPanelLayout?.width || 0));\n const maxScrollPosition = 0;\n toHeaderScrollPosition = Math.max(minScrollPosition, toHeaderScrollPosition);\n toHeaderScrollPosition = Math.min(maxScrollPosition, toHeaderScrollPosition);\n let positionIndicator = (toIndicatorPosition - (100 - toIndicatorWidth) / 2);\n let position = this.isRTL?-positionIndicator:positionIndicator;\n Animated.parallel([\n Animated.timing(this.headerScrollPosition, {\n useNativeDriver: true,\n toValue: toHeaderScrollPosition,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth / 100,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.reverseIndicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth ? 100 / toIndicatorWidth : 0,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorPosition, {\n useNativeDriver: true,\n toValue: position,\n duration: 200,\n easing: Easing.linear\n })\n ]).start();\n }\n\n public renderSkeleton(props: WmTabheaderProps){\n return(\n <Animated.View style={{\n transform: [{\n translateX: this.headerScrollPosition\n }]\n }}\n onLayout={this.setHeaderPanelPositon.bind(this)}>\n <View style={this.styles.root}>\n {this.props.data.map((header ,i) => {\n const isSelected = i === this.props.selectedTabIndex;\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)} key={header.key} styles={{flex: 1}}>\n <View onLayout={this.setHeaderPositon.bind(this, i)} style={[\n this.styles.header,\n isSelected ? this.styles.activeHeader : null]}>\n {\n createSkeleton(this.theme, { root: { borderRadius: 4 }} as WmSkeletonStyles, {\n ...this.styles.root,\n width: this.styles.root?.width || \"80%\",\n height: this.styles.root?.height || this.styles.activeHeaderText?.fontSize || 16\n })\n }\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}></Animated.View>\n </Animated.View>\n\n )\n }\n\n renderWidget(props: WmTabheaderProps) {\n this.setPosition();\n const arrowIndicator = this.styles.arrowIndicator as any;\n return (\n <View style={{overflow: 'hidden', zIndex: 16}}>\n <Animated.View style={{\n transform: [{\n translateX: this.headerScrollPosition\n }]\n }}\n onLayout={this.setHeaderPanelPositon.bind(this)}>\n <View style={this.styles.root}>\n {this._background}\n {props.data.map((header ,i) => {\n const isSelected = i === props.selectedTabIndex ;\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)}\n {...this.getTestPropsForAction(i +'')}\n key={header.key}\n styles={this.styles.header.flexGrow ? {flexGrow: this.styles.header.flexGrow} : null}>\n <View onLayout={this.setHeaderPositon.bind(this, i)}>\n <View style={[\n this.styles.header,\n {flexGrow: undefined},\n isSelected ? this.styles.activeHeader : null]}>\n <WmIcon\n id={this.getTestId(i + 'icon')}\n styles={this.theme.mergeStyle({}, this.styles.headerIcon, isSelected ? this.styles.activeHeaderIcon : null)}\n iconclass={header.icon}></WmIcon>\n <Text numberOfLines={1} style={[\n this.styles.headerText,\n isSelected ? this.styles.activeHeaderText : null]}\n {...this.getTestPropsForLabel(i + '_title')}\n >{header.title}</Text>\n </View>\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}>\n <Animated.View style={[{\n transform: [{\n scaleX: this.reverseIndicatorWidth\n }]\n },\n this.styles.arrowIndicator\n ]}>\n {arrowIndicator.backgroundImage ? (<BackgroundComponent\n image={arrowIndicator.backgroundImage}\n position={arrowIndicator.backgroundPosition}\n size={arrowIndicator.backgroundSize}\n repeat={arrowIndicator.backgroundRepeat}\n resizeMode={arrowIndicator.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}\n ></BackgroundComponent>) : null }\n <View style={this.styles.arrowIndicatorDot}></View>\n </Animated.View>\n </Animated.View>\n </Animated.View>\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","Animated","Easing","Text","View","ScrollView","BaseComponent","BaseComponentState","WmTabheaderProps","DEFAULT_CLASS","Tappable","createSkeleton","BackgroundComponent","WmIcon","WmTabheaderState","WmTabheader","constructor","props","_defineProperty","Value","headerScrollPosition","addListener","value","headerScrollPositionValue","setHeaderPanelPositon","nativeEvent","headerPanelLayout","layout","forceUpdate","setHeaderPositon","index","headersLayout","selectedTabIndex","onTabSelection","state","onIndexChange","scrollPosition","totalWidth","toIndicatorPosition","_this$headerPanelLayo","initialPosition","isRTL","baseWidth","elementWidth","width","positionX","setPosition","_this$headersLayout$s","_this$headerPanelLayo2","_this$headerPanelLayo3","_this$listRef$current","toIndicatorWidth","toHeaderScrollPosition","data","length","forEach","p","i","minScrollPosition","maxScrollPosition","Math","max","min","positionIndicator","position","listRef","current","scrollTo","x","y","parallel","timing","useNativeDriver","toValue","duration","easing","linear","indicatorWidth","reverseIndicatorWidth","indicatorPosition","start","renderSkeleton","createElement","style","transform","translateX","onLayout","bind","styles","root","map","header","_this$styles$root","_this$styles$root2","_this$styles$activeHe","isSelected","onTap","key","flex","activeHeader","theme","borderRadius","height","activeHeaderText","fontSize","activeIndicator","scaleX","renderWidget","arrowIndicator","_extends","overflow","zIndex","getTestProps","ref","horizontal","showsHorizontalScrollIndicator","_background","getTestPropsForAction","flexGrow","undefined","id","getTestId","mergeStyle","headerIcon","activeHeaderIcon","iconclass","icon","numberOfLines","headerText","getTestPropsForLabel","title","backgroundImage","image","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","arrowIndicatorDot"],"sources":["tabheader.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Animated, Easing, LayoutChangeEvent, LayoutRectangle, Text, View, ScrollView } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmTabheaderProps from './tabheader.props';\nimport { DEFAULT_CLASS, WmTabheaderStyles } from './tabheader.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport WmSkeleton, { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';\nimport WmIcon from \"@wavemaker/app-rn-runtime/components/basic/icon/icon.component\";\n\nexport class WmTabheaderState extends BaseComponentState<WmTabheaderProps> {\n}\n\nexport default class WmTabheader extends BaseComponent<WmTabheaderProps, WmTabheaderState, WmTabheaderStyles> {\n\n private headerPanelLayout: LayoutRectangle = null as any;\n private headersLayout: LayoutRectangle[] = [];\n private headerScrollPosition = new Animated.Value(0);\n private headerScrollPositionValue = 0;\n private indicatorPosition = new Animated.Value(0);\n private reverseIndicatorWidth = new Animated.Value(0);\n private indicatorWidth = new Animated.Value(0);\n private listRef: any = createRef();\n\n constructor(props: WmTabheaderProps) {\n super(props, DEFAULT_CLASS, new WmTabheaderProps(), new WmTabheaderState());\n this.headerScrollPosition.addListener(({value}) => this.headerScrollPositionValue = value);\n }\n\n setHeaderPanelPositon(nativeEvent: LayoutChangeEvent) {\n this.headerPanelLayout = nativeEvent.nativeEvent.layout;\n this.forceUpdate();\n }\n\n setHeaderPositon(index: number, nativeEvent: LayoutChangeEvent) {\n this.headersLayout[index] = nativeEvent.nativeEvent.layout;\n if (index === this.props.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n onTabSelection(index: number) {\n if (this.state.props.selectedTabIndex != index) {\n this.state.props.onIndexChange && this.state.props.onIndexChange(index);\n }\n }\n\n scrollPosition(selectedTabIndex: number, totalWidth: number, toIndicatorPosition: number) {\n const initialPosition = this.isRTL ? totalWidth : 0;\n const baseWidth = this.isRTL ? totalWidth - toIndicatorPosition : toIndicatorPosition;\n const elementWidth = this.isRTL ? -1 * (this.headersLayout[selectedTabIndex].width/2) : this.headersLayout[selectedTabIndex].width/2\n const positionX = selectedTabIndex === 0 ? initialPosition : \n ((baseWidth + (elementWidth)) - (this.headerPanelLayout?.width || 0) / 2);\n\n return positionX\n }\n\n setPosition() {\n const selectedTabIndex = this.state.props.selectedTabIndex ? this.state.props.selectedTabIndex : 0\n let toIndicatorPosition = 0;\n let toIndicatorWidth = this.headersLayout[selectedTabIndex]?.width || 0;\n let toHeaderScrollPosition = this.headerScrollPositionValue;\n let totalWidth = 0;\n if (this.state.props.data.length !== this.headersLayout.length) {\n return;\n }\n this.headersLayout.forEach((p, i) => {\n if (i < selectedTabIndex) {\n toIndicatorPosition += p.width;\n }\n totalWidth += p.width;\n });\n toHeaderScrollPosition = -1 * (toIndicatorPosition - (this.headerPanelLayout?.width || 0) / 2 + toIndicatorWidth/ 2) ;\n const minScrollPosition = -1 * (totalWidth - (this.headerPanelLayout?.width || 0));\n const maxScrollPosition = 0;\n toHeaderScrollPosition = Math.max(minScrollPosition, toHeaderScrollPosition);\n toHeaderScrollPosition = Math.min(maxScrollPosition, toHeaderScrollPosition);\n let positionIndicator = (toIndicatorPosition - (100 - toIndicatorWidth) / 2);\n let position = this.isRTL?-positionIndicator:positionIndicator;\n\n const positionX = this.scrollPosition(selectedTabIndex, totalWidth, toIndicatorPosition)\n\n this.listRef.current?.scrollTo({\n x: positionX,\n y: 0,\n Animated: true\n });\n\n Animated.parallel([\n Animated.timing(this.headerScrollPosition, {\n useNativeDriver: true,\n toValue: toHeaderScrollPosition,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth / 100,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.reverseIndicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth ? 100 / toIndicatorWidth : 0,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorPosition, {\n useNativeDriver: true,\n toValue: position,\n duration: 200,\n easing: Easing.linear\n })\n ]).start();\n }\n\n public renderSkeleton(props: WmTabheaderProps){\n return(\n <Animated.View style={{\n transform: [{\n translateX: this.headerScrollPosition\n }]\n }}\n onLayout={this.setHeaderPanelPositon.bind(this)}>\n <View style={this.styles.root}>\n {this.props.data.map((header ,i) => {\n const isSelected = i === this.props.selectedTabIndex;\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)} key={header.key} styles={{flex: 1}}>\n <View onLayout={this.setHeaderPositon.bind(this, i)} style={[\n this.styles.header,\n isSelected ? this.styles.activeHeader : null]}>\n {\n createSkeleton(this.theme, { root: { borderRadius: 4 }} as WmSkeletonStyles, {\n ...this.styles.root,\n width: this.styles.root?.width || \"80%\",\n height: this.styles.root?.height || this.styles.activeHeaderText?.fontSize || 16\n })\n }\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}></Animated.View>\n </Animated.View>\n\n )\n }\n\n renderWidget(props: WmTabheaderProps) {\n this.setPosition();\n const arrowIndicator = this.styles.arrowIndicator as any;\n return (\n <View \n style={{overflow: 'hidden', zIndex: 16}}\n {...this.getTestProps('tabheader')}\n >\n <ScrollView\n ref={this.listRef}\n horizontal={true}\n onLayout={this.setHeaderPanelPositon.bind(this)}\n showsHorizontalScrollIndicator={false}\n >\n <View>\n <View style={this.styles.root}>\n {this._background}\n {props.data.map((header ,i) => {\n const isSelected = i === props.selectedTabIndex ;\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)}\n {...this.getTestPropsForAction(i +'')}\n key={header.key}\n styles={this.styles.header.flexGrow ? {flexGrow: this.styles.header.flexGrow} : null}>\n <View onLayout={this.setHeaderPositon.bind(this, i)}>\n <View style={[\n this.styles.header,\n {flexGrow: undefined},\n isSelected ? this.styles.activeHeader : null]}>\n <WmIcon\n id={this.getTestId(i + 'icon')}\n styles={this.theme.mergeStyle({}, this.styles.headerIcon, isSelected ? this.styles.activeHeaderIcon : null)}\n iconclass={header.icon}></WmIcon>\n <Text numberOfLines={1} style={[\n this.styles.headerText,\n isSelected ? this.styles.activeHeaderText : null]}\n {...this.getTestPropsForLabel(i + '_title')}\n >{header.title}</Text>\n </View>\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}>\n <Animated.View style={[{\n transform: [{\n scaleX: this.reverseIndicatorWidth\n }]\n },\n this.styles.arrowIndicator\n ]}>\n {\n arrowIndicator.backgroundImage ? (\n <BackgroundComponent\n image={arrowIndicator.backgroundImage}\n position={arrowIndicator.backgroundPosition}\n size={arrowIndicator.backgroundSize}\n repeat={arrowIndicator.backgroundRepeat}\n resizeMode={arrowIndicator.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}\n ></BackgroundComponent>\n ) : null }\n <View style={this.styles.arrowIndicatorDot}></View>\n </Animated.View>\n </Animated.View>\n </View>\n </ScrollView>\n </View>\n );\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAsCC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC3G,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,gBAAgB,MAAM,mBAAmB;AAChD,SAASC,aAAa,QAA2B,oBAAoB;AACrE,SAASC,QAAQ,QAAQ,mDAAmD;AAC5E,SAAqBC,cAAc,QAAQ,wEAAwE;AAEnH,SAASC,mBAAmB,QAAQ,uDAAuD;AAC3F,OAAOC,MAAM,MAAM,gEAAgE;AAEnF,OAAO,MAAMC,gBAAgB,SAASP,kBAAkB,CAAmB;AAG3E,eAAe,MAAMQ,WAAW,SAAST,aAAa,CAAwD;EAW5GU,WAAWA,CAACC,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,EAAER,aAAa,EAAE,IAAID,gBAAgB,CAAC,CAAC,EAAE,IAAIM,gBAAgB,CAAC,CAAC,CAAC;IAACI,eAAA,4BAVjC,IAAI;IAAAA,eAAA,wBACN,EAAE;IAAAA,eAAA,+BACd,IAAIjB,QAAQ,CAACkB,KAAK,CAAC,CAAC,CAAC;IAAAD,eAAA,oCAChB,CAAC;IAAAA,eAAA,4BACT,IAAIjB,QAAQ,CAACkB,KAAK,CAAC,CAAC,CAAC;IAAAD,eAAA,gCACjB,IAAIjB,QAAQ,CAACkB,KAAK,CAAC,CAAC,CAAC;IAAAD,eAAA,yBAC5B,IAAIjB,QAAQ,CAACkB,KAAK,CAAC,CAAC,CAAC;IAAAD,eAAA,+BACvBlB,SAAS,CAAC,CAAC;IAIhC,IAAI,CAACoB,oBAAoB,CAACC,WAAW,CAAC,CAAC;MAACC;IAAK,CAAC,KAAK,IAAI,CAACC,yBAAyB,GAAGD,KAAK,CAAC;EAC5F;EAEAE,qBAAqBA,CAACC,WAA8B,EAAE;IACpD,IAAI,CAACC,iBAAiB,GAAGD,WAAW,CAACA,WAAW,CAACE,MAAM;IACvD,IAAI,CAACC,WAAW,CAAC,CAAC;EACpB;EAEAC,gBAAgBA,CAACC,KAAa,EAAEL,WAA8B,EAAE;IAC9D,IAAI,CAACM,aAAa,CAACD,KAAK,CAAC,GAAGL,WAAW,CAACA,WAAW,CAACE,MAAM;IAC1D,IAAIG,KAAK,KAAK,IAAI,CAACb,KAAK,CAACe,gBAAgB,EAAE;MACzC,IAAI,CAACJ,WAAW,CAAC,CAAC;IACpB;EACF;EAEAK,cAAcA,CAACH,KAAa,EAAE;IAC5B,IAAI,IAAI,CAACI,KAAK,CAACjB,KAAK,CAACe,gBAAgB,IAAIF,KAAK,EAAE;MAC9C,IAAI,CAACI,KAAK,CAACjB,KAAK,CAACkB,aAAa,IAAI,IAAI,CAACD,KAAK,CAACjB,KAAK,CAACkB,aAAa,CAACL,KAAK,CAAC;IACzE;EACF;EAEAM,cAAcA,CAACJ,gBAAwB,EAAEK,UAAkB,EAAEC,mBAA2B,EAAE;IAAA,IAAAC,qBAAA;IACxF,MAAMC,eAAe,GAAG,IAAI,CAACC,KAAK,GAAGJ,UAAU,GAAG,CAAC;IACnD,MAAMK,SAAS,GAAG,IAAI,CAACD,KAAK,GAAGJ,UAAU,GAAGC,mBAAmB,GAAGA,mBAAmB;IACrF,MAAMK,YAAY,GAAI,IAAI,CAACF,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAACV,aAAa,CAACC,gBAAgB,CAAC,CAACY,KAAK,GAAC,CAAC,CAAC,GAAG,IAAI,CAACb,aAAa,CAACC,gBAAgB,CAAC,CAACY,KAAK,GAAC,CAAC;IACrI,MAAMC,SAAS,GAAGb,gBAAgB,KAAK,CAAC,GAAGQ,eAAe,GACtDE,SAAS,GAAIC,YAAa,GAAI,CAAC,EAAAJ,qBAAA,OAAI,CAACb,iBAAiB,cAAAa,qBAAA,uBAAtBA,qBAAA,CAAwBK,KAAK,KAAI,CAAC,IAAI,CAAE;IAE3E,OAAOC,SAAS;EAClB;EAEAC,WAAWA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,qBAAA;IACZ,MAAMlB,gBAAgB,GAAG,IAAI,CAACE,KAAK,CAACjB,KAAK,CAACe,gBAAgB,GAAG,IAAI,CAACE,KAAK,CAACjB,KAAK,CAACe,gBAAgB,GAAG,CAAC;IAClG,IAAIM,mBAAmB,GAAG,CAAC;IAC3B,IAAIa,gBAAgB,GAAG,EAAAJ,qBAAA,OAAI,CAAChB,aAAa,CAACC,gBAAgB,CAAC,cAAAe,qBAAA,uBAApCA,qBAAA,CAAsCH,KAAK,KAAI,CAAC;IACvE,IAAIQ,sBAAsB,GAAG,IAAI,CAAC7B,yBAAyB;IAC3D,IAAIc,UAAU,GAAG,CAAC;IAClB,IAAI,IAAI,CAACH,KAAK,CAACjB,KAAK,CAACoC,IAAI,CAACC,MAAM,KAAK,IAAI,CAACvB,aAAa,CAACuB,MAAM,EAAE;MAC9D;IACF;IACA,IAAI,CAACvB,aAAa,CAACwB,OAAO,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACnC,IAAIA,CAAC,GAAGzB,gBAAgB,EAAE;QACxBM,mBAAmB,IAAIkB,CAAC,CAACZ,KAAK;MAChC;MACAP,UAAU,IAAImB,CAAC,CAACZ,KAAK;IACvB,CAAC,CAAC;IACFQ,sBAAsB,GAAG,CAAC,CAAC,IAAId,mBAAmB,GAAG,CAAC,EAAAU,sBAAA,OAAI,CAACtB,iBAAiB,cAAAsB,sBAAA,uBAAtBA,sBAAA,CAAwBJ,KAAK,KAAI,CAAC,IAAI,CAAC,GAAGO,gBAAgB,GAAE,CAAC,CAAC;IACpH,MAAMO,iBAAiB,GAAG,CAAC,CAAC,IAAIrB,UAAU,IAAI,EAAAY,sBAAA,OAAI,CAACvB,iBAAiB,cAAAuB,sBAAA,uBAAtBA,sBAAA,CAAwBL,KAAK,KAAI,CAAC,CAAC,CAAC;IAClF,MAAMe,iBAAiB,GAAG,CAAC;IAC3BP,sBAAsB,GAAGQ,IAAI,CAACC,GAAG,CAACH,iBAAiB,EAAEN,sBAAsB,CAAC;IAC5EA,sBAAsB,GAAGQ,IAAI,CAACE,GAAG,CAACH,iBAAiB,EAAEP,sBAAsB,CAAC;IAC5E,IAAIW,iBAAiB,GAAIzB,mBAAmB,GAAG,CAAC,GAAG,GAAGa,gBAAgB,IAAI,CAAE;IAC5E,IAAIa,QAAQ,GAAG,IAAI,CAACvB,KAAK,GAAC,CAACsB,iBAAiB,GAACA,iBAAiB;IAE9D,MAAMlB,SAAS,GAAG,IAAI,CAACT,cAAc,CAACJ,gBAAgB,EAAEK,UAAU,EAAEC,mBAAmB,CAAC;IAExF,CAAAY,qBAAA,OAAI,CAACe,OAAO,CAACC,OAAO,cAAAhB,qBAAA,eAApBA,qBAAA,CAAsBiB,QAAQ,CAAC;MAC7BC,CAAC,EAAEvB,SAAS;MACZwB,CAAC,EAAE,CAAC;MACJpE,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEFA,QAAQ,CAACqE,QAAQ,CAAC,CAChBrE,QAAQ,CAACsE,MAAM,CAAC,IAAI,CAACnD,oBAAoB,EAAE;MACzCoD,eAAe,EAAE,IAAI;MACrBC,OAAO,EAAGrB,sBAAsB;MAChCsB,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEzE,MAAM,CAAC0E;IACjB,CAAC,CAAC,EACF3E,QAAQ,CAACsE,MAAM,CAAC,IAAI,CAACM,cAAc,EAAE;MACnCL,eAAe,EAAE,IAAI;MACrBC,OAAO,EAAGtB,gBAAgB,GAAG,GAAG;MAChCuB,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEzE,MAAM,CAAC0E;IACjB,CAAC,CAAC,EACF3E,QAAQ,CAACsE,MAAM,CAAC,IAAI,CAACO,qBAAqB,EAAE;MAC1CN,eAAe,EAAE,IAAI;MACrBC,OAAO,EAAGtB,gBAAgB,GAAG,GAAG,GAAGA,gBAAgB,GAAG,CAAC;MACvDuB,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEzE,MAAM,CAAC0E;IACjB,CAAC,CAAC,EACF3E,QAAQ,CAACsE,MAAM,CAAC,IAAI,CAACQ,iBAAiB,EAAE;MACtCP,eAAe,EAAE,IAAI;MACrBC,OAAO,EAAGT,QAAQ;MAClBU,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEzE,MAAM,CAAC0E;IACjB,CAAC,CAAC,CACH,CAAC,CAACI,KAAK,CAAC,CAAC;EACZ;EAEOC,cAAcA,CAAChE,KAAuB,EAAC;IAC5C,oBACElB,KAAA,CAAAmF,aAAA,CAACjF,QAAQ,CAACG,IAAI;MAAC+E,KAAK,EAAE;QACpBC,SAAS,EAAE,CAAC;UACVC,UAAU,EAAE,IAAI,CAACjE;QACnB,CAAC;MACH,CAAE;MACFkE,QAAQ,EAAE,IAAI,CAAC9D,qBAAqB,CAAC+D,IAAI,CAAC,IAAI;IAAE,gBAC9CxF,KAAA,CAAAmF,aAAA,CAAC9E,IAAI;MAAC+E,KAAK,EAAE,IAAI,CAACK,MAAM,CAACC;IAAK,GAC3B,IAAI,CAACxE,KAAK,CAACoC,IAAI,CAACqC,GAAG,CAAC,CAACC,MAAM,EAAElC,CAAC,KAAK;MAAA,IAAAmC,iBAAA,EAAAC,kBAAA,EAAAC,qBAAA;MAClC,MAAMC,UAAU,GAAGtC,CAAC,KAAK,IAAI,CAACxC,KAAK,CAACe,gBAAgB;MACpD,oBACEjC,KAAA,CAAAmF,aAAA,CAACxE,QAAQ;QAACsF,KAAK,EAAE,IAAI,CAAC/D,cAAc,CAACsD,IAAI,CAAC,IAAI,EAAE9B,CAAC,CAAE;QAACwC,GAAG,EAAEN,MAAM,CAACM,GAAI;QAACT,MAAM,EAAE;UAACU,IAAI,EAAE;QAAC;MAAE,gBACrFnG,KAAA,CAAAmF,aAAA,CAAC9E,IAAI;QAACkF,QAAQ,EAAE,IAAI,CAACzD,gBAAgB,CAAC0D,IAAI,CAAC,IAAI,EAAE9B,CAAC,CAAE;QAAC0B,KAAK,EAAE,CAC1D,IAAI,CAACK,MAAM,CAACG,MAAM,EAClBI,UAAU,GAAG,IAAI,CAACP,MAAM,CAACW,YAAY,GAAG,IAAI;MAAE,GAE5CxF,cAAc,CAAC,IAAI,CAACyF,KAAK,EAAE;QAAEX,IAAI,EAAE;UAAEY,YAAY,EAAE;QAAE;MAAC,CAAC,EAAsB;QAC3E,GAAG,IAAI,CAACb,MAAM,CAACC,IAAI;QACnB7C,KAAK,EAAE,EAAAgD,iBAAA,OAAI,CAACJ,MAAM,CAACC,IAAI,cAAAG,iBAAA,uBAAhBA,iBAAA,CAAkBhD,KAAK,KAAI,KAAK;QACvC0D,MAAM,EAAE,EAAAT,kBAAA,OAAI,CAACL,MAAM,CAACC,IAAI,cAAAI,kBAAA,uBAAhBA,kBAAA,CAAkBS,MAAM,OAAAR,qBAAA,GAAI,IAAI,CAACN,MAAM,CAACe,gBAAgB,cAAAT,qBAAA,uBAA5BA,qBAAA,CAA8BU,QAAQ,KAAI;MAChF,CAAC,CAEC,CACE,CAAC;IAEf,CAAC,CACG,CAAC,eACPzG,KAAA,CAAAmF,aAAA,CAACjF,QAAQ,CAACG,IAAI;MAAC+E,KAAK,EAAE,CAAC,IAAI,CAACK,MAAM,CAACiB,eAAe,EAAE;QAClDrB,SAAS,EAAE,CAAC;UACVC,UAAU,EAAE,IAAI,CAACN;QACnB,CAAC,EAAE;UACD2B,MAAM,EAAE,IAAI,CAAC7B;QACf,CAAC;MACH,CAAC;IAAE,CAAgB,CACN,CAAC;EAGpB;EAEA8B,YAAYA,CAAC1F,KAAuB,EAAE;IACpC,IAAI,CAAC6B,WAAW,CAAC,CAAC;IAClB,MAAM8D,cAAc,GAAG,IAAI,CAACpB,MAAM,CAACoB,cAAqB;IACxD,oBACE7G,KAAA,CAAAmF,aAAA,CAAC9E,IAAI,EAAAyG,QAAA;MACH1B,KAAK,EAAE;QAAC2B,QAAQ,EAAE,QAAQ;QAAEC,MAAM,EAAE;MAAE;IAAE,GACpC,IAAI,CAACC,YAAY,CAAC,WAAW,CAAC,gBAEpCjH,KAAA,CAAAmF,aAAA,CAAC7E,UAAU;MACT4G,GAAG,EAAE,IAAI,CAAChD,OAAQ;MAClBiD,UAAU,EAAE,IAAK;MACjB5B,QAAQ,EAAE,IAAI,CAAC9D,qBAAqB,CAAC+D,IAAI,CAAC,IAAI,CAAE;MAChD4B,8BAA8B,EAAE;IAAM,gBAExCpH,KAAA,CAAAmF,aAAA,CAAC9E,IAAI,qBACHL,KAAA,CAAAmF,aAAA,CAAC9E,IAAI;MAAC+E,KAAK,EAAE,IAAI,CAACK,MAAM,CAACC;IAAK,GAC3B,IAAI,CAAC2B,WAAW,EAChBnG,KAAK,CAACoC,IAAI,CAACqC,GAAG,CAAC,CAACC,MAAM,EAAElC,CAAC,KAAK;MAC7B,MAAMsC,UAAU,GAAGtC,CAAC,KAAKxC,KAAK,CAACe,gBAAgB;MAC/C,oBACEjC,KAAA,CAAAmF,aAAA,CAACxE,QAAQ,EAAAmG,QAAA;QAACb,KAAK,EAAE,IAAI,CAAC/D,cAAc,CAACsD,IAAI,CAAC,IAAI,EAAE9B,CAAC;MAAE,GAC7C,IAAI,CAAC4D,qBAAqB,CAAC5D,CAAC,GAAE,EAAE,CAAC;QACrCwC,GAAG,EAAEN,MAAM,CAACM,GAAI;QAChBT,MAAM,EAAE,IAAI,CAACA,MAAM,CAACG,MAAM,CAAC2B,QAAQ,GAAG;UAACA,QAAQ,EAAE,IAAI,CAAC9B,MAAM,CAACG,MAAM,CAAC2B;QAAQ,CAAC,GAAG;MAAK,iBACrFvH,KAAA,CAAAmF,aAAA,CAAC9E,IAAI;QAACkF,QAAQ,EAAE,IAAI,CAACzD,gBAAgB,CAAC0D,IAAI,CAAC,IAAI,EAAE9B,CAAC;MAAE,gBAClD1D,KAAA,CAAAmF,aAAA,CAAC9E,IAAI;QAAC+E,KAAK,EAAE,CACX,IAAI,CAACK,MAAM,CAACG,MAAM,EAClB;UAAC2B,QAAQ,EAAEC;QAAS,CAAC,EACrBxB,UAAU,GAAG,IAAI,CAACP,MAAM,CAACW,YAAY,GAAG,IAAI;MAAE,gBAC9CpG,KAAA,CAAAmF,aAAA,CAACrE,MAAM;QACL2G,EAAE,EAAE,IAAI,CAACC,SAAS,CAAChE,CAAC,GAAG,MAAM,CAAE;QAC/B+B,MAAM,EAAE,IAAI,CAACY,KAAK,CAACsB,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAClC,MAAM,CAACmC,UAAU,EAAE5B,UAAU,GAAG,IAAI,CAACP,MAAM,CAACoC,gBAAgB,GAAG,IAAI,CAAE;QAC5GC,SAAS,EAAElC,MAAM,CAACmC;MAAK,CAAS,CAAC,eACnC/H,KAAA,CAAAmF,aAAA,CAAC/E,IAAI,EAAA0G,QAAA;QAACkB,aAAa,EAAE,CAAE;QAAC5C,KAAK,EAAE,CAC7B,IAAI,CAACK,MAAM,CAACwC,UAAU,EACtBjC,UAAU,GAAG,IAAI,CAACP,MAAM,CAACe,gBAAgB,GAAG,IAAI;MAAE,GAC9C,IAAI,CAAC0B,oBAAoB,CAACxE,CAAC,GAAG,QAAQ,CAAC,GAC3CkC,MAAM,CAACuC,KAAY,CACjB,CACF,CACE,CAAC;IAEf,CAAC,CACG,CAAC,eACPnI,KAAA,CAAAmF,aAAA,CAACjF,QAAQ,CAACG,IAAI;MAAC+E,KAAK,EAAE,CAAC,IAAI,CAACK,MAAM,CAACiB,eAAe,EAAE;QAClDrB,SAAS,EAAE,CAAC;UACVC,UAAU,EAAE,IAAI,CAACN;QACnB,CAAC,EAAE;UACD2B,MAAM,EAAE,IAAI,CAAC7B;QACf,CAAC;MACH,CAAC;IAAE,gBACD9E,KAAA,CAAAmF,aAAA,CAACjF,QAAQ,CAACG,IAAI;MAAC+E,KAAK,EAAE,CAAC;QACnBC,SAAS,EAAE,CAAC;UACVsB,MAAM,EAAE,IAAI,CAAC5B;QACf,CAAC;MACH,CAAC,EACD,IAAI,CAACU,MAAM,CAACoB,cAAc;IAC1B,GAEAA,cAAc,CAACuB,eAAe,gBAC5BpI,KAAA,CAAAmF,aAAA,CAACtE,mBAAmB;MACpBwH,KAAK,EAAExB,cAAc,CAACuB,eAAgB;MACtCnE,QAAQ,EAAE4C,cAAc,CAACyB,kBAAmB;MAC5CC,IAAI,EAAE1B,cAAc,CAAC2B,cAAe;MACpCC,MAAM,EAAE5B,cAAc,CAAC6B,gBAAiB;MACxCC,UAAU,EAAE9B,cAAc,CAAC+B,oBAAqB;MAChDxD,KAAK,EAAE;QAACkB,YAAY,EAAE,IAAI,CAACb,MAAM,CAACC,IAAI,CAACY;MAAY;IAAE,CAC/B,CAAC,GACrB,IAAI,eACRtG,KAAA,CAAAmF,aAAA,CAAC9E,IAAI;MAAC+E,KAAK,EAAE,IAAI,CAACK,MAAM,CAACoD;IAAkB,CAAO,CACrC,CACF,CACT,CACI,CACN,CAAC;EAEX;AACF","ignoreList":[]}
@@ -14,6 +14,7 @@ import WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.compone
14
14
  import { Swipeable } from 'react-native-gesture-handler';
15
15
  import WmListProps from './list.props';
16
16
  import { DEFAULT_CLASS } from './list.styles';
17
+ import { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';
17
18
  export class WmListState extends BaseComponentState {
18
19
  constructor(...args) {
19
20
  super(...args);
@@ -329,7 +330,16 @@ export default class WmList extends BaseComponent {
329
330
  } : {}
330
331
  }, /*#__PURE__*/React.createElement(View, {
331
332
  style: [styles, props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null, this.isSelected(item) ? this.styles.selectedItem : {}]
332
- }, /*#__PURE__*/React.createElement(Tappable, _extends({}, this.getTestPropsForAction(`item${index}`), {
333
+ }, styles.backgroundImage ? /*#__PURE__*/React.createElement(BackgroundComponent, {
334
+ image: styles.backgroundImage,
335
+ position: styles.backgroundPosition || 'center',
336
+ size: styles.backgroundSize || 'cover',
337
+ repeat: styles.backgroundRepeat || 'no-repeat',
338
+ resizeMode: styles.backgroundResizeMode || 'cover',
339
+ style: {
340
+ borderRadius: this.styles.item.borderRadius
341
+ }
342
+ }) : null, /*#__PURE__*/React.createElement(Tappable, _extends({}, this.getTestPropsForAction(`item${index}`), {
333
343
  onTap: $event => this.onSelect(item, index, $event),
334
344
  onLongTap: () => this.invokeEventCallback('onLongtap', [null, this.proxy]),
335
345
  onDoubleTap: () => this.invokeEventCallback('onDoubletap', [null, this.proxy]),