@wavemaker/app-rn-runtime 11.14.1-22.647491 → 11.14.1-22.647577

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.
@@ -89,6 +89,20 @@ export default class WmContainer extends PartialHost {
89
89
  left: 0,
90
90
  right: 0
91
91
  });
92
+ _defineProperty(this, "handleOnScrollEndDrag", event => {
93
+ var _event$nativeEvent;
94
+ const currentY = event === null || event === void 0 || (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 || (_event$nativeEvent = _event$nativeEvent.contentOffset) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.y;
95
+ if (currentY > 0) {
96
+ this.invokeEventCallback('onScroll', [null, this.proxy]);
97
+ }
98
+ });
99
+ _defineProperty(this, "handleOnMomentumScrollEnd", event => {
100
+ var _event$nativeEvent2;
101
+ const currentY = event === null || event === void 0 || (_event$nativeEvent2 = event.nativeEvent) === null || _event$nativeEvent2 === void 0 || (_event$nativeEvent2 = _event$nativeEvent2.contentOffset) === null || _event$nativeEvent2 === void 0 ? void 0 : _event$nativeEvent2.y;
102
+ if (currentY < 1) {
103
+ this.invokeEventCallback('onScrolltotop', [null, this.proxy]);
104
+ }
105
+ });
92
106
  this.containerRef = /*#__PURE__*/React.createRef();
93
107
  this.stickyContainerOpacity = new Animated.Value(1);
94
108
  this.subscribe('updateStickyHeaders', _event => {
@@ -102,7 +116,6 @@ export default class WmContainer extends PartialHost {
102
116
  getBackground() {
103
117
  return this._showSkeleton ? null : this._background;
104
118
  }
105
-
106
119
  // Compute root style respecting 'fill'|'hug'|<size> for width/height.
107
120
  getRootContainerStyle() {
108
121
  var _this$props, _this$styles$skeleton;
@@ -337,7 +350,9 @@ export default class WmContainer extends PartialHost {
337
350
  style: [dimensions, this.styles.content, autoLayoutStyle],
338
351
  onScroll: event => this.notify('scroll', [event], props.emittoparent),
339
352
  scrollEventThrottle: 48,
340
- ref: this.scrollViewRef
353
+ ref: this.scrollViewRef,
354
+ onScrollEndDrag: this.handleOnScrollEndDrag,
355
+ onMomentumScrollEnd: this.handleOnMomentumScrollEnd
341
356
  }, this.renderContent(props))));
342
357
  });
343
358
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Platform","Animated","WmContainerProps","DEFAULT_CLASS","Tappable","Animatedview","PartialHost","PartialHostState","createSkeleton","ScrollView","StickyWrapperContext","SafeAreaInsetsContext","StickyContainer","getParentStyles","injector","alignmentMatrixFixed","justifyContent","alignItems","alignmentMatrixAuto","start","center","end","WmContainerState","constructor","args","_defineProperty","WmContainer","props","createRef","get","top","bottom","left","right","containerRef","stickyContainerOpacity","Value","subscribe","_event","sticky","setTimeout","getStickyHeaderTranslateY","getBackground","_showSkeleton","_background","getRootContainerStyle","_this$props","_this$styles$skeleton","baseStyle","styles","root","width","height","dimensionStyle","isRow","direction","alignSelf","flexGrow","undefined","num","endsWith","parseFloat","isNaN","styleWithResize","skeleton","getContentContainerStyle","wrap","gap","alignment","columngap","useNewLayoutSystem","finalDirection","finalWrap","finalGap","finalAlignment","isAutoGap","isWrap","layoutStyle","flexDirection","flexWrap","alignConfig","columnGap","Number","rowGap","alignContent","renderSkeleton","showskeletonchildren","_this$props2","dimensions","skeletonStyles","text","theme","createElement","style","opacity","_extends","getTestPropsForAction","target","disableTouchEffect","state","disabletoucheffect","content","renderContent","_this$appConfig","_this$containerRef","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","current","measure","_x","_y","_width","_height","px","py","_this$insets","topInsetsInYposition","OS","insets","context","stickyContainerTranslateY","value","updateState","stickyContainerVisibility","componentDidUpdate","_prevProps","prevState","timing","toValue","delay","useNativeDriver","scrollViewRef","notify","renderStickyContent","autoLayoutStyle","positioningStyles","Fragment","component","backgroundColor","positionStyles","show","ref","renderWidget","rootStyle","isSticky","Consumer","entryanimation","animation","animationdelay","onLayout","event","handleLayout","scrollable","onScroll","emittoparent","scrollEventThrottle"],"sources":["container.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, LayoutChangeEvent, StyleProp, View, ViewStyle, Platform, Animated } from 'react-native';\nimport WmContainerProps from './container.props';\nimport { DEFAULT_CLASS, WmContainerStyles } from './container.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { PartialHost, PartialHostState } from './partial-host.component';\nimport { createSkeleton } from '../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../basic/skeleton/skeleton.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { StickyContainer } from '@wavemaker/app-rn-runtime/core/components/sticky-container.component';\nimport { getParentStyles } from '@wavemaker/app-rn-runtime/core/components/sticky-container.styles';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\n// Alignment matrix for flex properties\nconst alignmentMatrixFixed: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n 'top-left': { justifyContent: 'flex-start', alignItems: 'flex-start' },\n 'top-center': { justifyContent: 'center', alignItems: 'flex-start' },\n 'top-right': { justifyContent: 'flex-end', alignItems: 'flex-start' },\n 'middle-left': { justifyContent: 'flex-start', alignItems: 'center' },\n 'middle-center': { justifyContent: 'center', alignItems: 'center' },\n 'middle-right': { justifyContent: 'flex-end', alignItems: 'center' },\n 'bottom-left': { justifyContent: 'flex-start', alignItems: 'flex-end' },\n 'bottom-center': { justifyContent: 'center', alignItems: 'flex-end' },\n 'bottom-right': { justifyContent: 'flex-end', alignItems: 'flex-end' },\n};\n\nconst alignmentMatrixAuto: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n start: { justifyContent: 'space-between', alignItems: 'flex-start' },\n center: { justifyContent: 'space-between', alignItems: 'center' },\n end: { justifyContent: 'space-between', alignItems: 'flex-end' },\n};\n\nexport class WmContainerState extends PartialHostState<WmContainerProps> {\n isPartialLoaded = false;\n stickyContainerVisibility = false;\n}\n\nexport default class WmContainer extends PartialHost<WmContainerProps, WmContainerState, WmContainerStyles> {\n static contextType = StickyWrapperContext;\n private containerRef: React.RefObject<View | null>;\n private scrollViewRef = React.createRef<ScrollView>();\n private stickyContainerOpacity: Animated.Value;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmContainerProps) {\n super(props, DEFAULT_CLASS, new WmContainerProps(), new WmContainerState());\n this.containerRef = React.createRef();\n this.stickyContainerOpacity = new Animated.Value(1);\n\n this.subscribe('updateStickyHeaders', (_event: any) => {\n if(this.props.sticky){\n setTimeout(()=>{\n this.getStickyHeaderTranslateY();\n }, 500);\n }\n })\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n }\n\n // Compute root style respecting 'fill'|'hug'|<size> for width/height.\n private getRootContainerStyle(): ViewStyle {\n // const { width, height } = this.props;\n const baseStyle = this.styles.root || {};\n const { width, height }: any = baseStyle;\n const dimensionStyle: ViewStyle = {};\n const isRow = this.props?.direction === \"row\";\n\n if (height === 'fill') {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n }\n dimensionStyle.height = undefined;\n }\n else if (height === 'hug') {\n if (isRow) {\n dimensionStyle.alignSelf = 'flex-start';\n } else {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n }\n else if (height) {\n const num = (typeof height === 'string' && height.endsWith('%')) ? height : parseFloat(height);\n dimensionStyle.height = (isNaN(num as number) ? height : num) as DimensionValue;\n }\n\n if (width === 'fill') {\n if (isRow) {\n dimensionStyle.width = '100%';\n } else {\n dimensionStyle.alignSelf = 'stretch';\n dimensionStyle.width = undefined;\n }\n }\n else if (width === 'hug') {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n } else {\n dimensionStyle.alignSelf = 'flex-start';\n }\n dimensionStyle.width = undefined;\n }\n else if (width) {\n const num = (typeof width === 'string' && width.endsWith('%')) ? width : parseFloat(width);\n dimensionStyle.width = (isNaN(num as number) ? width : num) as DimensionValue;\n }\n\n const styleWithResize = {\n ...baseStyle,\n ...dimensionStyle,\n };\n\n return this._showSkeleton\n ? { ...styleWithResize, ...this.styles.skeleton?.root }\n : styleWithResize;\n }\n\n // Compute content layout (flexDirection, wrap, gap, justifyContent, alignItems).\n private getContentContainerStyle(): ViewStyle {\n const { direction, wrap, gap, alignment, columngap } = this.props;\n\n /* Check if any of the new layout props are provided. If not, return an empty\n style object to maintain backward compatibility. */\n const useNewLayoutSystem =\n direction !== undefined ||\n wrap !== undefined ||\n gap !== undefined ||\n alignment !== undefined ||\n columngap !== undefined;\n\n if (!useNewLayoutSystem) {\n return {};\n }\n\n // Apply defaults only if the new layout system is active\n const finalDirection = direction ?? 'row';\n const finalWrap = wrap ?? false;\n const finalGap = gap ?? 4;\n const finalAlignment = alignment ?? 'top-left';\n\n const isRow = finalDirection === 'row';\n const isAutoGap = finalGap === 'auto';\n const isWrap = finalWrap === 'true' || finalWrap === true;\n\n const layoutStyle: ViewStyle = {\n flexDirection: finalDirection,\n flexWrap: isWrap && isRow ? 'wrap' : 'nowrap',\n };\n\n if (isAutoGap) {\n const alignConfig =\n alignmentMatrixAuto[finalAlignment] || alignmentMatrixAuto['start'];\n layoutStyle.justifyContent =\n alignConfig.justifyContent as ViewStyle['justifyContent'];\n layoutStyle.alignItems =\n alignConfig.alignItems as ViewStyle['alignItems'];\n } else {\n if (isRow) {\n // For a row, the main-axis gap (between items) is columnGap.\n layoutStyle.columnGap = Number(finalGap);\n } else {\n // For a column, the main-axis gap (between items) is rowGap.\n layoutStyle.rowGap = Number(finalGap);\n }\n const alignConfig =\n alignmentMatrixFixed[finalAlignment] || alignmentMatrixFixed['top-left'];\n\n layoutStyle.justifyContent = (\n isRow ? alignConfig.justifyContent : alignConfig.alignItems\n ) as ViewStyle['justifyContent'];\n layoutStyle.alignItems = (\n isRow ? alignConfig.alignItems : alignConfig.justifyContent\n ) as ViewStyle['alignItems'];\n }\n\n // Add columnGap logic for wrapped rows\n if (isWrap && isRow) {\n if (columngap === 'auto') {\n layoutStyle.alignContent = 'space-between';\n } else if (columngap !== undefined) {\n layoutStyle.rowGap = Number(columngap);\n }\n }\n\n return {\n ...layoutStyle,\n };\n }\n\n public renderSkeleton(props: WmContainerProps): React.ReactNode {\n if(!props.showskeletonchildren) {\n const dimensions = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n };\n const skeletonStyles: WmSkeletonStyles = this.props?.styles?.skeleton || { root: {}, text: {} } as WmSkeletonStyles\n return createSkeleton(this.theme, skeletonStyles, {\n ...this.styles.root\n }, (<View style={[this.styles.root, { opacity: 0 }]}>\n <Tappable {...this.getTestPropsForAction()} target={this} styles={dimensions} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={[dimensions as ViewStyle, this.styles.content]}>{this.renderContent(props)}</View>\n </Tappable>\n\n </View>))\n }\n return null;\n }\n\n public getStickyHeaderTranslateY(){\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n this.containerRef?.current?.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0)=>{\n const topInsetsInYposition = (Platform.OS == 'ios' && !isEdgeToEdgeApp) ? (this.insets?.top || 0): 0\n if((this.context) && (this.context as StickyWrapperContextType).stickyContainerTranslateY) {\n (this.context as StickyWrapperContextType).stickyContainerTranslateY.value = py - topInsetsInYposition ;\n this.updateState({ stickyContainerVisibility: true} as WmContainerState); \n }\n })\n }\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (prevState.stickyContainerVisibility !== this.state.stickyContainerVisibility) {\n Animated.timing(this.stickyContainerOpacity, {\n toValue: this.state.stickyContainerVisibility ? 0 : 1,\n delay: 500,\n useNativeDriver: true\n }).start();\n }\n\n //emiting container wdiget scrollview ref value to bottom sheet widget(bottom sheet sticky header/footer feature)\n if (this.scrollViewRef.current) {\n this.notify('containerScrollViewReady', [this.scrollViewRef], true);\n }\n }\n\n private renderStickyContent(props: WmContainerProps, dimensions: ViewStyle, styles: ViewStyle, autoLayoutStyle: ViewStyle) {\n const { stickyContainerVisibility } = this.state;\n const { positioningStyles } = getParentStyles(this);\n\n return (\n <>\n {stickyContainerVisibility ? (\n <StickyContainer\n component={this}\n theme={this.theme}\n style={[\n this.styles.sticky,\n { backgroundColor: styles.backgroundColor }\n ]}\n positionStyles={positioningStyles}\n show={props.show as boolean}\n >\n <View style={[dimensions as ViewStyle, { backgroundColor: styles.backgroundColor }, this.styles.content, autoLayoutStyle]}>\n {this.renderContent(props)}\n </View>\n </StickyContainer>\n ) : <></>}\n <Animated.View\n style={[\n dimensions as ViewStyle,\n { opacity: this.stickyContainerOpacity },\n this.styles.content,\n autoLayoutStyle\n ]}\n ref={this.containerRef}\n >\n {this.renderContent(props)}\n </Animated.View>\n </>\n );\n }\n\n renderWidget(props: WmContainerProps) {\n const rootStyle = this.getRootContainerStyle();\n const autoLayoutStyle = this.getContentContainerStyle();\n\n const dimensions: ViewStyle = {\n width: rootStyle.width ? '100%' : undefined,\n height: rootStyle.height ? '100%' : undefined\n };\n\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root;\n\n if (props.sticky) {\n this.isSticky = true;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return (\n <Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={rootStyle}\n onLayout={(event: LayoutChangeEvent, ref: React.RefObject<View>) => {\n this.handleLayout(event, ref);\n }}\n >\n {this.getBackground()}\n <Tappable\n {...this.getTestPropsForAction()}\n target={this}\n styles={dimensions}\n disableTouchEffect={this.state.props.disabletoucheffect}\n >\n {props.sticky ? (\n this.renderStickyContent(props, dimensions, styles, autoLayoutStyle)\n ) : !props.scrollable ? (\n <View style={[\n dimensions as ViewStyle,\n this.styles.content,\n autoLayoutStyle]}>\n {this.renderContent(props)}\n </View>\n ) : (\n <ScrollView\n style={[dimensions as ViewStyle, this.styles.content, autoLayoutStyle]}\n onScroll={(event) => this.notify('scroll', [event], props.emittoparent)}\n scrollEventThrottle={48}\n ref={this.scrollViewRef}\n >\n {this.renderContent(props)}\n </ScrollView>\n )}\n </Tappable>\n </Animatedview>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAuDC,IAAI,EAAaC,QAAQ,EAAEC,QAAQ,QAAQ,cAAc;AAChH,OAAOC,gBAAgB,MAAM,mBAAmB;AAChD,SAASC,aAAa,QAA2B,oBAAoB;AACrE,SAASC,QAAQ,QAAQ,mDAAmD;AAC5E,SAASC,YAAY,QAAQ,mEAAmE;AAChG,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,0BAA0B;AACxE,SAASC,cAAc,QAAQ,sCAAsC;AAErE,SAASC,UAAU,QAAQ,8BAA8B;AACzD,SAAmCC,oBAAoB,QAAQ,+CAA+C;AAC9G,SAAqBC,qBAAqB,QAAQ,gCAAgC;AAClF,SAASC,eAAe,QAAQ,sEAAsE;AACtG,SAASC,eAAe,QAAQ,mEAAmE;AACnG,OAAOC,QAAQ,MAAM,yCAAyC;AAG9D;AACA,MAAMC,oBAGL,GAAG;EACF,UAAU,EAAE;IAAEC,cAAc,EAAE,YAAY;IAAEC,UAAU,EAAE;EAAa,CAAC;EACtE,YAAY,EAAE;IAAED,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAa,CAAC;EACpE,WAAW,EAAE;IAAED,cAAc,EAAE,UAAU;IAAEC,UAAU,EAAE;EAAa,CAAC;EACrE,aAAa,EAAE;IAAED,cAAc,EAAE,YAAY;IAAEC,UAAU,EAAE;EAAS,CAAC;EACrE,eAAe,EAAE;IAAED,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAS,CAAC;EACnE,cAAc,EAAE;IAAED,cAAc,EAAE,UAAU;IAAEC,UAAU,EAAE;EAAS,CAAC;EACpE,aAAa,EAAE;IAAED,cAAc,EAAE,YAAY;IAAEC,UAAU,EAAE;EAAW,CAAC;EACvE,eAAe,EAAE;IAAED,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAW,CAAC;EACrE,cAAc,EAAE;IAAED,cAAc,EAAE,UAAU;IAAEC,UAAU,EAAE;EAAW;AACvE,CAAC;AAED,MAAMC,mBAGL,GAAG;EACFC,KAAK,EAAE;IAAEH,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAa,CAAC;EACpEG,MAAM,EAAE;IAAEJ,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAS,CAAC;EACjEI,GAAG,EAAE;IAAEL,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAW;AACjE,CAAC;AAED,OAAO,MAAMK,gBAAgB,SAASf,gBAAgB,CAAmB;EAAAgB,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,0BACrD,KAAK;IAAAA,eAAA,oCACK,KAAK;EAAA;AACnC;AAEA,eAAe,MAAMC,WAAW,SAASpB,WAAW,CAAwD;EAU1GiB,WAAWA,CAACI,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,EAAExB,aAAa,EAAE,IAAID,gBAAgB,CAAC,CAAC,EAAE,IAAIoB,gBAAgB,CAAC,CAAC,CAAC;IAACG,eAAA;IAAAA,eAAA,qCARtD3B,KAAK,CAAC8B,SAAS,CAAa,CAAC;IAAAH,eAAA;IAAAA,eAAA,oBAEjCX,QAAQ,CAACe,GAAG,CAAY,YAAY,CAAC;IAAAJ,eAAA,iBAC7B;MAC1BK,GAAG,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;MAAEC,IAAI,EAAE,CAAC;MAAEC,KAAK,EAAE;IACrC,CAAC;IAIC,IAAI,CAACC,YAAY,gBAAGpC,KAAK,CAAC8B,SAAS,CAAC,CAAC;IACrC,IAAI,CAACO,sBAAsB,GAAG,IAAIlC,QAAQ,CAACmC,KAAK,CAAC,CAAC,CAAC;IAEnD,IAAI,CAACC,SAAS,CAAC,qBAAqB,EAAGC,MAAW,IAAK;MACrD,IAAG,IAAI,CAACX,KAAK,CAACY,MAAM,EAAC;QACnBC,UAAU,CAAC,MAAI;UACb,IAAI,CAACC,yBAAyB,CAAC,CAAC;QAClC,CAAC,EAAE,GAAG,CAAC;MACT;IACF,CAAC,CAAC;EACJ;EAEAC,aAAaA,CAAA,EAA6B;IACxC,OAAO,IAAI,CAACC,aAAa,GAAG,IAAI,GAAG,IAAI,CAACC,WAAW;EACrD;;EAEA;EACQC,qBAAqBA,CAAA,EAAc;IAAA,IAAAC,WAAA,EAAAC,qBAAA;IACzC;IACA,MAAMC,SAAS,GAAG,IAAI,CAACC,MAAM,CAACC,IAAI,IAAI,CAAC,CAAC;IACxC,MAAM;MAAEC,KAAK;MAAEC;IAAY,CAAC,GAAGJ,SAAS;IACxC,MAAMK,cAAyB,GAAG,CAAC,CAAC;IACpC,MAAMC,KAAK,GAAG,EAAAR,WAAA,OAAI,CAACnB,KAAK,cAAAmB,WAAA,uBAAVA,WAAA,CAAYS,SAAS,MAAK,KAAK;IAE7C,IAAIH,MAAM,KAAK,MAAM,EAAE;MACrB,IAAIE,KAAK,EAAE;QACTD,cAAc,CAACG,SAAS,GAAG,SAAS;MACtC,CAAC,MAAM;QACLH,cAAc,CAACI,QAAQ,GAAG,CAAC;MAC7B;MACAJ,cAAc,CAACD,MAAM,GAAGM,SAAS;IACnC,CAAC,MACI,IAAIN,MAAM,KAAK,KAAK,EAAE;MACzB,IAAIE,KAAK,EAAE;QACTD,cAAc,CAACG,SAAS,GAAG,YAAY;MACzC,CAAC,MAAM;QACLH,cAAc,CAACI,QAAQ,GAAG,CAAC;MAC7B;MACAJ,cAAc,CAACD,MAAM,GAAGM,SAAS;IACnC,CAAC,MACI,IAAIN,MAAM,EAAE;MACf,MAAMO,GAAG,GAAI,OAAOP,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACQ,QAAQ,CAAC,GAAG,CAAC,GAAIR,MAAM,GAAGS,UAAU,CAACT,MAAM,CAAC;MAC9FC,cAAc,CAACD,MAAM,GAAIU,KAAK,CAACH,GAAa,CAAC,GAAGP,MAAM,GAAGO,GAAsB;IACjF;IAEA,IAAIR,KAAK,KAAK,MAAM,EAAE;MACpB,IAAIG,KAAK,EAAE;QACTD,cAAc,CAACF,KAAK,GAAG,MAAM;MAC/B,CAAC,MAAM;QACLE,cAAc,CAACG,SAAS,GAAG,SAAS;QACpCH,cAAc,CAACF,KAAK,GAAGO,SAAS;MAClC;IACF,CAAC,MACI,IAAIP,KAAK,KAAK,KAAK,EAAE;MACxB,IAAIG,KAAK,EAAE;QACTD,cAAc,CAACI,QAAQ,GAAG,CAAC;MAC7B,CAAC,MAAM;QACLJ,cAAc,CAACG,SAAS,GAAG,YAAY;MACzC;MACAH,cAAc,CAACF,KAAK,GAAGO,SAAS;IAClC,CAAC,MACI,IAAIP,KAAK,EAAE;MACd,MAAMQ,GAAG,GAAI,OAAOR,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACS,QAAQ,CAAC,GAAG,CAAC,GAAIT,KAAK,GAAGU,UAAU,CAACV,KAAK,CAAC;MAC1FE,cAAc,CAACF,KAAK,GAAIW,KAAK,CAACH,GAAa,CAAC,GAAGR,KAAK,GAAGQ,GAAsB;IAC/E;IAEA,MAAMI,eAAe,GAAG;MACtB,GAAGf,SAAS;MACZ,GAAGK;IACL,CAAC;IAED,OAAO,IAAI,CAACV,aAAa,GACrB;MAAE,GAAGoB,eAAe;MAAE,KAAAhB,qBAAA,GAAG,IAAI,CAACE,MAAM,CAACe,QAAQ,cAAAjB,qBAAA,uBAApBA,qBAAA,CAAsBG,IAAI;IAAC,CAAC,GACrDa,eAAe;EACrB;;EAEA;EACQE,wBAAwBA,CAAA,EAAc;IAC5C,MAAM;MAAEV,SAAS;MAAEW,IAAI;MAAEC,GAAG;MAAEC,SAAS;MAAEC;IAAU,CAAC,GAAG,IAAI,CAAC1C,KAAK;;IAEjE;AACJ;IACI,MAAM2C,kBAAkB,GACtBf,SAAS,KAAKG,SAAS,IACvBQ,IAAI,KAAKR,SAAS,IAClBS,GAAG,KAAKT,SAAS,IACjBU,SAAS,KAAKV,SAAS,IACvBW,SAAS,KAAKX,SAAS;IAEzB,IAAI,CAACY,kBAAkB,EAAE;MACvB,OAAO,CAAC,CAAC;IACX;;IAEA;IACA,MAAMC,cAAc,GAAGhB,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,KAAK;IACzC,MAAMiB,SAAS,GAAGN,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,KAAK;IAC/B,MAAMO,QAAQ,GAAGN,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,CAAC;IACzB,MAAMO,cAAc,GAAGN,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,UAAU;IAE9C,MAAMd,KAAK,GAAGiB,cAAc,KAAK,KAAK;IACtC,MAAMI,SAAS,GAAGF,QAAQ,KAAK,MAAM;IACrC,MAAMG,MAAM,GAAGJ,SAAS,KAAK,MAAM,IAAIA,SAAS,KAAK,IAAI;IAEzD,MAAMK,WAAsB,GAAG;MAC7BC,aAAa,EAAEP,cAAc;MAC7BQ,QAAQ,EAAEH,MAAM,IAAItB,KAAK,GAAG,MAAM,GAAG;IACvC,CAAC;IAED,IAAIqB,SAAS,EAAE;MACb,MAAMK,WAAW,GACf9D,mBAAmB,CAACwD,cAAc,CAAC,IAAIxD,mBAAmB,CAAC,OAAO,CAAC;MACrE2D,WAAW,CAAC7D,cAAc,GACxBgE,WAAW,CAAChE,cAA6C;MAC3D6D,WAAW,CAAC5D,UAAU,GACpB+D,WAAW,CAAC/D,UAAqC;IACrD,CAAC,MAAM;MACL,IAAIqC,KAAK,EAAE;QACT;QACAuB,WAAW,CAACI,SAAS,GAAGC,MAAM,CAACT,QAAQ,CAAC;MAC1C,CAAC,MAAM;QACL;QACAI,WAAW,CAACM,MAAM,GAAGD,MAAM,CAACT,QAAQ,CAAC;MACvC;MACA,MAAMO,WAAW,GACfjE,oBAAoB,CAAC2D,cAAc,CAAC,IAAI3D,oBAAoB,CAAC,UAAU,CAAC;MAE1E8D,WAAW,CAAC7D,cAAc,GACxBsC,KAAK,GAAG0B,WAAW,CAAChE,cAAc,GAAGgE,WAAW,CAAC/D,UACnB;MAChC4D,WAAW,CAAC5D,UAAU,GACpBqC,KAAK,GAAG0B,WAAW,CAAC/D,UAAU,GAAG+D,WAAW,CAAChE,cACnB;IAC9B;;IAEA;IACA,IAAI4D,MAAM,IAAItB,KAAK,EAAE;MACnB,IAAIe,SAAS,KAAK,MAAM,EAAE;QACxBQ,WAAW,CAACO,YAAY,GAAG,eAAe;MAC5C,CAAC,MAAM,IAAIf,SAAS,KAAKX,SAAS,EAAE;QAClCmB,WAAW,CAACM,MAAM,GAAGD,MAAM,CAACb,SAAS,CAAC;MACxC;IACF;IAEA,OAAO;MACL,GAAGQ;IACL,CAAC;EACH;EAEOQ,cAAcA,CAAC1D,KAAuB,EAAmB;IAC5D,IAAG,CAACA,KAAK,CAAC2D,oBAAoB,EAAE;MAAA,IAAAC,YAAA;MAChC,MAAMC,UAAU,GAAG;QACjBrC,KAAK,EAAE,IAAI,CAACF,MAAM,CAACC,IAAI,CAACC,KAAK,GAAG,MAAM,GAAGO,SAAS;QAClDN,MAAM,EAAE,IAAI,CAACH,MAAM,CAACC,IAAI,CAACE,MAAM,GAAG,MAAM,GAAGM;MAC7C,CAAC;MACC,MAAM+B,cAAgC,GAAG,EAAAF,YAAA,OAAI,CAAC5D,KAAK,cAAA4D,YAAA,gBAAAA,YAAA,GAAVA,YAAA,CAAYtC,MAAM,cAAAsC,YAAA,uBAAlBA,YAAA,CAAoBvB,QAAQ,KAAI;QAAEd,IAAI,EAAE,CAAC,CAAC;QAAEwC,IAAI,EAAE,CAAC;MAAG,CAAqB;MACtH,OAAOlF,cAAc,CAAC,IAAI,CAACmF,KAAK,EAAEF,cAAc,EAAE;QAChD,GAAG,IAAI,CAACxC,MAAM,CAACC;MACjB,CAAC,eAAGpD,KAAA,CAAA8F,aAAA,CAAC7F,IAAI;QAAC8F,KAAK,EAAE,CAAC,IAAI,CAAC5C,MAAM,CAACC,IAAI,EAAE;UAAE4C,OAAO,EAAE;QAAE,CAAC;MAAE,gBAClDhG,KAAA,CAAA8F,aAAA,CAACxF,QAAQ,EAAA2F,QAAA,KAAK,IAAI,CAACC,qBAAqB,CAAC,CAAC;QAAEC,MAAM,EAAE,IAAK;QAAChD,MAAM,EAAEuC,UAAW;QAACU,kBAAkB,EAAE,IAAI,CAACC,KAAK,CAACxE,KAAK,CAACyE;MAAmB,iBAClItG,KAAA,CAAA8F,aAAA,CAAC7F,IAAI;QAAC8F,KAAK,EAAE,CAACL,UAAU,EAAgB,IAAI,CAACvC,MAAM,CAACoD,OAAO;MAAE,GAAE,IAAI,CAACC,aAAa,CAAC3E,KAAK,CAAQ,CACzF,CAEN,CAAE,CAAC;IACX;IACA,OAAO,IAAI;EACb;EAEOc,yBAAyBA,CAAA,EAAE;IAAA,IAAA8D,eAAA,EAAAC,kBAAA;IAChC,MAAMC,eAAe,GAAG,CAAC,GAAAF,eAAA,GAAC,IAAI,CAACG,SAAS,cAAAH,eAAA,gBAAAA,eAAA,GAAdA,eAAA,CAAgBI,gBAAgB,cAAAJ,eAAA,eAAhCA,eAAA,CAAkCE,eAAe;IAC3E,CAAAD,kBAAA,OAAI,CAACtE,YAAY,cAAAsE,kBAAA,gBAAAA,kBAAA,GAAjBA,kBAAA,CAAmBI,OAAO,cAAAJ,kBAAA,eAA1BA,kBAAA,CAA4BK,OAAO,CAAC,CAACC,EAAE,GAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,EAAEC,MAAM,GAAG,CAAC,EAAEC,OAAO,GAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,KAAG;MAAA,IAAAC,YAAA;MAC7F,MAAMC,oBAAoB,GAAIrH,QAAQ,CAACsH,EAAE,IAAI,KAAK,IAAI,CAACb,eAAe,GAAK,EAAAW,YAAA,OAAI,CAACG,MAAM,cAAAH,YAAA,uBAAXA,YAAA,CAAatF,GAAG,KAAI,CAAC,GAAG,CAAC;MACpG,IAAI,IAAI,CAAC0F,OAAO,IAAM,IAAI,CAACA,OAAO,CAA8BC,yBAAyB,EAAE;QACxF,IAAI,CAACD,OAAO,CAA8BC,yBAAyB,CAACC,KAAK,GAAGP,EAAE,GAAGE,oBAAoB;QACtG,IAAI,CAACM,WAAW,CAAC;UAAEC,yBAAyB,EAAE;QAAI,CAAqB,CAAC;MAC1E;IACF,CAAC,CAAC;EACJ;EAEAC,kBAAkBA,CAACC,UAAe,EAAEC,SAAc,EAAE;IAClD,IAAIA,SAAS,CAACH,yBAAyB,KAAK,IAAI,CAACzB,KAAK,CAACyB,yBAAyB,EAAE;MAChF3H,QAAQ,CAAC+H,MAAM,CAAC,IAAI,CAAC7F,sBAAsB,EAAE;QAC3C8F,OAAO,EAAE,IAAI,CAAC9B,KAAK,CAACyB,yBAAyB,GAAG,CAAC,GAAG,CAAC;QACrDM,KAAK,EAAE,GAAG;QACVC,eAAe,EAAE;MACnB,CAAC,CAAC,CAAChH,KAAK,CAAC,CAAC;IACZ;;IAEA;IACA,IAAI,IAAI,CAACiH,aAAa,CAACxB,OAAO,EAAE;MAC9B,IAAI,CAACyB,MAAM,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAACD,aAAa,CAAC,EAAE,IAAI,CAAC;IACrE;EACF;EAEQE,mBAAmBA,CAAC3G,KAAuB,EAAE6D,UAAqB,EAAEvC,MAAiB,EAAEsF,eAA0B,EAAE;IACzH,MAAM;MAAEX;IAA0B,CAAC,GAAG,IAAI,CAACzB,KAAK;IAChD,MAAM;MAAEqC;IAAkB,CAAC,GAAG3H,eAAe,CAAC,IAAI,CAAC;IAEnD,oBACEf,KAAA,CAAA8F,aAAA,CAAA9F,KAAA,CAAA2I,QAAA,QACGb,yBAAyB,gBACxB9H,KAAA,CAAA8F,aAAA,CAAChF,eAAe;MACd8H,SAAS,EAAE,IAAK;MAChB/C,KAAK,EAAE,IAAI,CAACA,KAAM;MAClBE,KAAK,EAAE,CACL,IAAI,CAAC5C,MAAM,CAACV,MAAM,EAClB;QAAEoG,eAAe,EAAE1F,MAAM,CAAC0F;MAAgB,CAAC,CAC3C;MACFC,cAAc,EAAEJ,iBAAkB;MAClCK,IAAI,EAAElH,KAAK,CAACkH;IAAgB,gBAE5B/I,KAAA,CAAA8F,aAAA,CAAC7F,IAAI;MAAC8F,KAAK,EAAE,CAACL,UAAU,EAAe;QAAEmD,eAAe,EAAE1F,MAAM,CAAC0F;MAAgB,CAAC,EAAE,IAAI,CAAC1F,MAAM,CAACoD,OAAO,EAAEkC,eAAe;IAAE,GACvH,IAAI,CAACjC,aAAa,CAAC3E,KAAK,CACrB,CACS,CAAC,gBAChB7B,KAAA,CAAA8F,aAAA,CAAA9F,KAAA,CAAA2I,QAAA,MAAI,CAAC,eACT3I,KAAA,CAAA8F,aAAA,CAAC3F,QAAQ,CAACF,IAAI;MACZ8F,KAAK,EAAE,CACLL,UAAU,EACV;QAAEM,OAAO,EAAE,IAAI,CAAC3D;MAAuB,CAAC,EACxC,IAAI,CAACc,MAAM,CAACoD,OAAO,EACnBkC,eAAe,CACf;MACFO,GAAG,EAAE,IAAI,CAAC5G;IAAa,GAEtB,IAAI,CAACoE,aAAa,CAAC3E,KAAK,CACZ,CACf,CAAC;EAEP;EAEAoH,YAAYA,CAACpH,KAAuB,EAAE;IACpC,MAAMqH,SAAS,GAAG,IAAI,CAACnG,qBAAqB,CAAC,CAAC;IAC9C,MAAM0F,eAAe,GAAG,IAAI,CAACtE,wBAAwB,CAAC,CAAC;IAEvD,MAAMuB,UAAqB,GAAG;MAC5BrC,KAAK,EAAE6F,SAAS,CAAC7F,KAAK,GAAG,MAAM,GAAGO,SAAS;MAC3CN,MAAM,EAAE4F,SAAS,CAAC5F,MAAM,GAAG,MAAM,GAAGM;IACtC,CAAC;IAED,MAAMT,MAAM,GAAG,IAAI,CAACN,aAAa,GAAG;MAClC,GAAG,IAAI,CAACM,MAAM,CAACC,IAAI;MACnB,GAAG,IAAI,CAACD,MAAM,CAACe,QAAQ,CAACd;IAC1B,CAAC,GAAG,IAAI,CAACD,MAAM,CAACC,IAAI;IAEpB,IAAIvB,KAAK,CAACY,MAAM,EAAE;MAChB,IAAI,CAAC0G,QAAQ,GAAG,IAAI;IACtB;IACA,oBACEnJ,KAAA,CAAA8F,aAAA,CAACjF,qBAAqB,CAACuI,QAAQ,QAC5B,CAAC3B,MAAM,GAAG;MAAEzF,GAAG,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;MAAEC,IAAI,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC,KAAK;MACtD,IAAI,CAACsF,MAAM,GAAGA,MAAM;MACpB,oBACEzH,KAAA,CAAA8F,aAAA,CAACvF,YAAY;QACX8I,cAAc,EAAExH,KAAK,CAACyH,SAAU;QAChClB,KAAK,EAAEvG,KAAK,CAAC0H,cAAe;QAC5BxD,KAAK,EAAEmD,SAAU;QACjBM,QAAQ,EAAEA,CAACC,KAAwB,EAAET,GAA0B,KAAK;UAClE,IAAI,CAACU,YAAY,CAACD,KAAK,EAAET,GAAG,CAAC;QAC/B;MAAE,GAED,IAAI,CAACpG,aAAa,CAAC,CAAC,eACrB5C,KAAA,CAAA8F,aAAA,CAACxF,QAAQ,EAAA2F,QAAA,KACH,IAAI,CAACC,qBAAqB,CAAC,CAAC;QAChCC,MAAM,EAAE,IAAK;QACbhD,MAAM,EAAEuC,UAAW;QACnBU,kBAAkB,EAAE,IAAI,CAACC,KAAK,CAACxE,KAAK,CAACyE;MAAmB,IAEvDzE,KAAK,CAACY,MAAM,GACX,IAAI,CAAC+F,mBAAmB,CAAC3G,KAAK,EAAE6D,UAAU,EAAEvC,MAAM,EAAEsF,eAAe,CAAC,GAClE,CAAC5G,KAAK,CAAC8H,UAAU,gBACnB3J,KAAA,CAAA8F,aAAA,CAAC7F,IAAI;QAAC8F,KAAK,EAAE,CACXL,UAAU,EACV,IAAI,CAACvC,MAAM,CAACoD,OAAO,EACnBkC,eAAe;MAAE,GAChB,IAAI,CAACjC,aAAa,CAAC3E,KAAK,CACrB,CAAC,gBAEP7B,KAAA,CAAA8F,aAAA,CAACnF,UAAU;QACToF,KAAK,EAAE,CAACL,UAAU,EAAe,IAAI,CAACvC,MAAM,CAACoD,OAAO,EAAEkC,eAAe,CAAE;QACvEmB,QAAQ,EAAGH,KAAK,IAAK,IAAI,CAAClB,MAAM,CAAC,QAAQ,EAAE,CAACkB,KAAK,CAAC,EAAE5H,KAAK,CAACgI,YAAY,CAAE;QACxEC,mBAAmB,EAAE,EAAG;QACxBd,GAAG,EAAE,IAAI,CAACV;MAAc,GAEvB,IAAI,CAAC9B,aAAa,CAAC3E,KAAK,CACf,CAEN,CACE,CAAC;IAEnB,CAC8B,CAAC;EAErC;AACF;AAACF,eAAA,CAjToBC,WAAW,iBACThB,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Platform","Animated","WmContainerProps","DEFAULT_CLASS","Tappable","Animatedview","PartialHost","PartialHostState","createSkeleton","ScrollView","StickyWrapperContext","SafeAreaInsetsContext","StickyContainer","getParentStyles","injector","alignmentMatrixFixed","justifyContent","alignItems","alignmentMatrixAuto","start","center","end","WmContainerState","constructor","args","_defineProperty","WmContainer","props","createRef","get","top","bottom","left","right","event","_event$nativeEvent","currentY","nativeEvent","contentOffset","y","invokeEventCallback","proxy","_event$nativeEvent2","containerRef","stickyContainerOpacity","Value","subscribe","_event","sticky","setTimeout","getStickyHeaderTranslateY","getBackground","_showSkeleton","_background","getRootContainerStyle","_this$props","_this$styles$skeleton","baseStyle","styles","root","width","height","dimensionStyle","isRow","direction","alignSelf","flexGrow","undefined","num","endsWith","parseFloat","isNaN","styleWithResize","skeleton","getContentContainerStyle","wrap","gap","alignment","columngap","useNewLayoutSystem","finalDirection","finalWrap","finalGap","finalAlignment","isAutoGap","isWrap","layoutStyle","flexDirection","flexWrap","alignConfig","columnGap","Number","rowGap","alignContent","renderSkeleton","showskeletonchildren","_this$props2","dimensions","skeletonStyles","text","theme","createElement","style","opacity","_extends","getTestPropsForAction","target","disableTouchEffect","state","disabletoucheffect","content","renderContent","_this$appConfig","_this$containerRef","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","current","measure","_x","_y","_width","_height","px","py","_this$insets","topInsetsInYposition","OS","insets","context","stickyContainerTranslateY","value","updateState","stickyContainerVisibility","componentDidUpdate","_prevProps","prevState","timing","toValue","delay","useNativeDriver","scrollViewRef","notify","renderStickyContent","autoLayoutStyle","positioningStyles","Fragment","component","backgroundColor","positionStyles","show","ref","renderWidget","rootStyle","isSticky","Consumer","entryanimation","animation","animationdelay","onLayout","handleLayout","scrollable","onScroll","emittoparent","scrollEventThrottle","onScrollEndDrag","handleOnScrollEndDrag","onMomentumScrollEnd","handleOnMomentumScrollEnd"],"sources":["container.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, LayoutChangeEvent, StyleProp, View, ViewStyle, Platform, Animated } from 'react-native';\nimport WmContainerProps from './container.props';\nimport { DEFAULT_CLASS, WmContainerStyles } from './container.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { PartialHost, PartialHostState } from './partial-host.component';\nimport { createSkeleton } from '../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../basic/skeleton/skeleton.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { StickyContainer } from '@wavemaker/app-rn-runtime/core/components/sticky-container.component';\nimport { getParentStyles } from '@wavemaker/app-rn-runtime/core/components/sticky-container.styles';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\n// Alignment matrix for flex properties\nconst alignmentMatrixFixed: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n 'top-left': { justifyContent: 'flex-start', alignItems: 'flex-start' },\n 'top-center': { justifyContent: 'center', alignItems: 'flex-start' },\n 'top-right': { justifyContent: 'flex-end', alignItems: 'flex-start' },\n 'middle-left': { justifyContent: 'flex-start', alignItems: 'center' },\n 'middle-center': { justifyContent: 'center', alignItems: 'center' },\n 'middle-right': { justifyContent: 'flex-end', alignItems: 'center' },\n 'bottom-left': { justifyContent: 'flex-start', alignItems: 'flex-end' },\n 'bottom-center': { justifyContent: 'center', alignItems: 'flex-end' },\n 'bottom-right': { justifyContent: 'flex-end', alignItems: 'flex-end' },\n};\n\nconst alignmentMatrixAuto: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n start: { justifyContent: 'space-between', alignItems: 'flex-start' },\n center: { justifyContent: 'space-between', alignItems: 'center' },\n end: { justifyContent: 'space-between', alignItems: 'flex-end' },\n};\n\nexport class WmContainerState extends PartialHostState<WmContainerProps> {\n isPartialLoaded = false;\n stickyContainerVisibility = false;\n}\n\nexport default class WmContainer extends PartialHost<WmContainerProps, WmContainerState, WmContainerStyles> {\n static contextType = StickyWrapperContext;\n private containerRef: React.RefObject<View | null>;\n private scrollViewRef = React.createRef<ScrollView>();\n private stickyContainerOpacity: Animated.Value;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmContainerProps) {\n super(props, DEFAULT_CLASS, new WmContainerProps(), new WmContainerState());\n this.containerRef = React.createRef();\n this.stickyContainerOpacity = new Animated.Value(1);\n\n this.subscribe('updateStickyHeaders', (_event: any) => {\n if(this.props.sticky){\n setTimeout(()=>{\n this.getStickyHeaderTranslateY();\n }, 500);\n }\n })\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n }\n\n private handleOnScrollEndDrag = (event: any) => {\n const currentY = event?.nativeEvent?.contentOffset?.y;\n if (currentY > 0) {\n this.invokeEventCallback('onScroll', [null, this.proxy]);\n }\n }\n\n private handleOnMomentumScrollEnd = (event: any) => {\n const currentY = event?.nativeEvent?.contentOffset?.y;\n if (currentY < 1) {\n this.invokeEventCallback('onScrolltotop', [null, this.proxy]);\n }\n }\n\n // Compute root style respecting 'fill'|'hug'|<size> for width/height.\n private getRootContainerStyle(): ViewStyle {\n // const { width, height } = this.props;\n const baseStyle = this.styles.root || {};\n const { width, height }: any = baseStyle;\n const dimensionStyle: ViewStyle = {};\n const isRow = this.props?.direction === \"row\";\n\n if (height === 'fill') {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n }\n dimensionStyle.height = undefined;\n }\n else if (height === 'hug') {\n if (isRow) {\n dimensionStyle.alignSelf = 'flex-start';\n } else {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n }\n else if (height) {\n const num = (typeof height === 'string' && height.endsWith('%')) ? height : parseFloat(height);\n dimensionStyle.height = (isNaN(num as number) ? height : num) as DimensionValue;\n }\n\n if (width === 'fill') {\n if (isRow) {\n dimensionStyle.width = '100%';\n } else {\n dimensionStyle.alignSelf = 'stretch';\n dimensionStyle.width = undefined;\n }\n }\n else if (width === 'hug') {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n } else {\n dimensionStyle.alignSelf = 'flex-start';\n }\n dimensionStyle.width = undefined;\n }\n else if (width) {\n const num = (typeof width === 'string' && width.endsWith('%')) ? width : parseFloat(width);\n dimensionStyle.width = (isNaN(num as number) ? width : num) as DimensionValue;\n }\n\n const styleWithResize = {\n ...baseStyle,\n ...dimensionStyle,\n };\n\n return this._showSkeleton\n ? { ...styleWithResize, ...this.styles.skeleton?.root }\n : styleWithResize;\n }\n\n // Compute content layout (flexDirection, wrap, gap, justifyContent, alignItems).\n private getContentContainerStyle(): ViewStyle {\n const { direction, wrap, gap, alignment, columngap } = this.props;\n\n /* Check if any of the new layout props are provided. If not, return an empty\n style object to maintain backward compatibility. */\n const useNewLayoutSystem =\n direction !== undefined ||\n wrap !== undefined ||\n gap !== undefined ||\n alignment !== undefined ||\n columngap !== undefined;\n\n if (!useNewLayoutSystem) {\n return {};\n }\n\n // Apply defaults only if the new layout system is active\n const finalDirection = direction ?? 'row';\n const finalWrap = wrap ?? false;\n const finalGap = gap ?? 4;\n const finalAlignment = alignment ?? 'top-left';\n\n const isRow = finalDirection === 'row';\n const isAutoGap = finalGap === 'auto';\n const isWrap = finalWrap === 'true' || finalWrap === true;\n\n const layoutStyle: ViewStyle = {\n flexDirection: finalDirection,\n flexWrap: isWrap && isRow ? 'wrap' : 'nowrap',\n };\n\n if (isAutoGap) {\n const alignConfig =\n alignmentMatrixAuto[finalAlignment] || alignmentMatrixAuto['start'];\n layoutStyle.justifyContent =\n alignConfig.justifyContent as ViewStyle['justifyContent'];\n layoutStyle.alignItems =\n alignConfig.alignItems as ViewStyle['alignItems'];\n } else {\n if (isRow) {\n // For a row, the main-axis gap (between items) is columnGap.\n layoutStyle.columnGap = Number(finalGap);\n } else {\n // For a column, the main-axis gap (between items) is rowGap.\n layoutStyle.rowGap = Number(finalGap);\n }\n const alignConfig =\n alignmentMatrixFixed[finalAlignment] || alignmentMatrixFixed['top-left'];\n\n layoutStyle.justifyContent = (\n isRow ? alignConfig.justifyContent : alignConfig.alignItems\n ) as ViewStyle['justifyContent'];\n layoutStyle.alignItems = (\n isRow ? alignConfig.alignItems : alignConfig.justifyContent\n ) as ViewStyle['alignItems'];\n }\n\n // Add columnGap logic for wrapped rows\n if (isWrap && isRow) {\n if (columngap === 'auto') {\n layoutStyle.alignContent = 'space-between';\n } else if (columngap !== undefined) {\n layoutStyle.rowGap = Number(columngap);\n }\n }\n\n return {\n ...layoutStyle,\n };\n }\n\n public renderSkeleton(props: WmContainerProps): React.ReactNode {\n if(!props.showskeletonchildren) {\n const dimensions = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n };\n const skeletonStyles: WmSkeletonStyles = this.props?.styles?.skeleton || { root: {}, text: {} } as WmSkeletonStyles\n return createSkeleton(this.theme, skeletonStyles, {\n ...this.styles.root\n }, (<View style={[this.styles.root, { opacity: 0 }]}>\n <Tappable {...this.getTestPropsForAction()} target={this} styles={dimensions} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={[dimensions as ViewStyle, this.styles.content]}>{this.renderContent(props)}</View>\n </Tappable>\n\n </View>))\n }\n return null;\n }\n\n public getStickyHeaderTranslateY(){\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n this.containerRef?.current?.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0)=>{\n const topInsetsInYposition = (Platform.OS == 'ios' && !isEdgeToEdgeApp) ? (this.insets?.top || 0): 0\n if((this.context) && (this.context as StickyWrapperContextType).stickyContainerTranslateY) {\n (this.context as StickyWrapperContextType).stickyContainerTranslateY.value = py - topInsetsInYposition ;\n this.updateState({ stickyContainerVisibility: true} as WmContainerState); \n }\n })\n }\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (prevState.stickyContainerVisibility !== this.state.stickyContainerVisibility) {\n Animated.timing(this.stickyContainerOpacity, {\n toValue: this.state.stickyContainerVisibility ? 0 : 1,\n delay: 500,\n useNativeDriver: true\n }).start();\n }\n\n //emiting container wdiget scrollview ref value to bottom sheet widget(bottom sheet sticky header/footer feature)\n if (this.scrollViewRef.current) {\n this.notify('containerScrollViewReady', [this.scrollViewRef], true);\n }\n }\n\n private renderStickyContent(props: WmContainerProps, dimensions: ViewStyle, styles: ViewStyle, autoLayoutStyle: ViewStyle) {\n const { stickyContainerVisibility } = this.state;\n const { positioningStyles } = getParentStyles(this);\n\n return (\n <>\n {stickyContainerVisibility ? (\n <StickyContainer\n component={this}\n theme={this.theme}\n style={[\n this.styles.sticky,\n { backgroundColor: styles.backgroundColor }\n ]}\n positionStyles={positioningStyles}\n show={props.show as boolean}\n >\n <View style={[dimensions as ViewStyle, { backgroundColor: styles.backgroundColor }, this.styles.content, autoLayoutStyle]}>\n {this.renderContent(props)}\n </View>\n </StickyContainer>\n ) : <></>}\n <Animated.View\n style={[\n dimensions as ViewStyle,\n { opacity: this.stickyContainerOpacity },\n this.styles.content,\n autoLayoutStyle\n ]}\n ref={this.containerRef}\n >\n {this.renderContent(props)}\n </Animated.View>\n </>\n );\n }\n\n renderWidget(props: WmContainerProps) {\n const rootStyle = this.getRootContainerStyle();\n const autoLayoutStyle = this.getContentContainerStyle();\n\n const dimensions: ViewStyle = {\n width: rootStyle.width ? '100%' : undefined,\n height: rootStyle.height ? '100%' : undefined\n };\n\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root;\n\n if (props.sticky) {\n this.isSticky = true;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return (\n <Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={rootStyle}\n onLayout={(event: LayoutChangeEvent, ref: React.RefObject<View>) => {\n this.handleLayout(event, ref);\n }}\n >\n {this.getBackground()}\n <Tappable\n {...this.getTestPropsForAction()}\n target={this}\n styles={dimensions}\n disableTouchEffect={this.state.props.disabletoucheffect}\n >\n {props.sticky ? (\n this.renderStickyContent(props, dimensions, styles, autoLayoutStyle)\n ) : !props.scrollable ? (\n <View style={[\n dimensions as ViewStyle,\n this.styles.content,\n autoLayoutStyle]}>\n {this.renderContent(props)}\n </View>\n ) : (\n <ScrollView\n style={[dimensions as ViewStyle, this.styles.content, autoLayoutStyle]}\n onScroll={(event) => this.notify('scroll', [event], props.emittoparent)}\n scrollEventThrottle={48}\n ref={this.scrollViewRef}\n onScrollEndDrag={this.handleOnScrollEndDrag}\n onMomentumScrollEnd={this.handleOnMomentumScrollEnd}\n >\n {this.renderContent(props)}\n </ScrollView>\n )}\n </Tappable>\n </Animatedview>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n}"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n detachInactiveScreens:boolean,\n isLegacyTappable: boolean,\n}"],"mappings":"","ignoreList":[]}
@@ -3,12 +3,16 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import React from "react";
6
- import { Platform, View, TouchableOpacity } from "react-native";
7
- import { get } from "lodash";
6
+ import { Platform, View, TouchableOpacity as RNTouchableOpacity } from "react-native";
7
+ import { Pressable, TouchableNativeFeedback, TouchableOpacity } from "react-native-gesture-handler";
8
+ import Constants, { ExecutionEnvironment } from 'expo-constants';
9
+ import { cloneDeep, get } from "lodash";
8
10
  import injector from "./injector";
9
11
  import { TouchableRipple } from "react-native-paper";
12
+ import { deepCopy } from "./utils";
10
13
  export const TappableContext = /*#__PURE__*/React.createContext(null);
11
14
  import { UIPreferencesConsumer } from "./ui-preferences.context";
15
+ const isExpoGo = Constants.executionEnvironment === ExecutionEnvironment.StoreClient;
12
16
  export const ParentTappableContext = /*#__PURE__*/React.createContext(null);
13
17
  export class SyntheticEvent {
14
18
  constructor() {
@@ -21,12 +25,113 @@ export class SyntheticEvent {
21
25
  }
22
26
  export class Tappable extends React.Component {
23
27
  constructor(props) {
28
+ var _this$appConfig$isLeg, _this$appConfig;
24
29
  super(props);
25
30
  _defineProperty(this, "lastPress", 0);
26
31
  _defineProperty(this, "lastTap", 0);
27
32
  _defineProperty(this, "lastDoubleTap", 0);
28
33
  _defineProperty(this, "isLongTap", false);
29
34
  _defineProperty(this, "parent", null);
35
+ _defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
36
+ _defineProperty(this, "isLegacyTappable", void 0);
37
+ _defineProperty(this, "getContainerStyles", commonStyles => {
38
+ var _inner, _inner2, _inner3, _inner4, _inner5, _inner6, _inner7;
39
+ let inner = {};
40
+ if (Array.isArray(commonStyles)) {
41
+ commonStyles.forEach(style => {
42
+ if (style) {
43
+ Object.keys(style).forEach(key => {
44
+ inner[key] = style[key];
45
+ });
46
+ }
47
+ });
48
+ } else {
49
+ inner = cloneDeep(commonStyles);
50
+ }
51
+ const outer = deepCopy(inner);
52
+ outer === null || outer === void 0 || delete outer["padding"];
53
+ outer === null || outer === void 0 || delete outer["paddingHorizontal"];
54
+ outer === null || outer === void 0 || delete outer["paddingVertical"];
55
+ outer === null || outer === void 0 || delete outer["paddingTop"];
56
+ outer === null || outer === void 0 || delete outer["paddingBottom"];
57
+ outer === null || outer === void 0 || delete outer["paddingLeft"];
58
+ outer === null || outer === void 0 || delete outer["paddingRight"];
59
+ (_inner = inner) === null || _inner === void 0 || delete _inner["margin"];
60
+ (_inner2 = inner) === null || _inner2 === void 0 || delete _inner2["marginHorizontal"];
61
+ (_inner3 = inner) === null || _inner3 === void 0 || delete _inner3["marginVertical"];
62
+ (_inner4 = inner) === null || _inner4 === void 0 || delete _inner4["marginLeft"];
63
+ (_inner5 = inner) === null || _inner5 === void 0 || delete _inner5["marginRight"];
64
+ (_inner6 = inner) === null || _inner6 === void 0 || delete _inner6["marginTop"];
65
+ (_inner7 = inner) === null || _inner7 === void 0 || delete _inner7["marginBottom"];
66
+ return {
67
+ outer,
68
+ inner
69
+ };
70
+ });
71
+ /*
72
+ TODO: Remove TouchableNativeFeedback and TouchableOpacity, and use Pressable only,
73
+ When the issue with Pressable not working in Expo GO is fixed from Expo. (this happens only in Android with Expo Go)
74
+ */
75
+ _defineProperty(this, "getTouchableRipple", (rippleColor, commonProps) => {
76
+ if (this.isLegacyTappable || Platform.OS === 'ios') {
77
+ return /*#__PURE__*/React.createElement(TouchableRipple, _extends({
78
+ rippleColor: rippleColor,
79
+ borderless: true
80
+ }, commonProps, {
81
+ onLayout: this.props.onLayout
82
+ }), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children));
83
+ }
84
+ if (isExpoGo) {
85
+ const containerStyle = this.getContainerStyles(commonProps.style);
86
+ delete commonProps["style"];
87
+ return /*#__PURE__*/React.createElement(TouchableNativeFeedback, _extends({}, rippleColor && {
88
+ background: TouchableNativeFeedback.Ripple(rippleColor, true)
89
+ }, {
90
+ onLayout: this.props.onLayout
91
+ }, commonProps, {
92
+ style: containerStyle.outer
93
+ }), /*#__PURE__*/React.createElement(View, {
94
+ style: containerStyle.inner
95
+ }, this.props.children));
96
+ }
97
+ return /*#__PURE__*/React.createElement(Pressable, _extends({
98
+ android_ripple: {
99
+ color: rippleColor,
100
+ borderless: true
101
+ },
102
+ onLayout: this.props.onLayout
103
+ }, commonProps), this.props.children);
104
+ });
105
+ _defineProperty(this, "getTouchable", commonProps => {
106
+ if (this.isLegacyTappable || Platform.OS === 'ios') {
107
+ return /*#__PURE__*/React.createElement(RNTouchableOpacity, _extends({
108
+ activeOpacity: this.props.disableTouchEffect ? 1 : 0.2,
109
+ onLayout: this.props.onLayout
110
+ }, commonProps), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children));
111
+ }
112
+ if (isExpoGo) {
113
+ const containerStyle = this.getContainerStyles(commonProps.style);
114
+ delete commonProps["style"];
115
+ return /*#__PURE__*/React.createElement(TouchableOpacity, _extends({
116
+ activeOpacity: this.props.disableTouchEffect ? 1 : 0.2,
117
+ onLayout: this.props.onLayout
118
+ }, commonProps, {
119
+ style: containerStyle.outer
120
+ }), /*#__PURE__*/React.createElement(View, {
121
+ style: containerStyle.inner
122
+ }, this.props.children));
123
+ }
124
+ return /*#__PURE__*/React.createElement(Pressable, _extends({
125
+ onLayout: this.props.onLayout
126
+ }, commonProps, {
127
+ style: ({
128
+ pressed
129
+ }) => [commonProps.style, {
130
+ opacity: !this.props.disableTouchEffect && pressed ? 0.2 : 1
131
+ }]
132
+ }), this.props.children);
133
+ });
134
+ this.isLegacyTappable = (_this$appConfig$isLeg = (_this$appConfig = this.appConfig) === null || _this$appConfig === void 0 ? void 0 : _this$appConfig.isLegacyTappable) !== null && _this$appConfig$isLeg !== void 0 ? _this$appConfig$isLeg : true;
30
135
  }
31
136
  async triggerTap(e = new SyntheticEvent()) {
32
137
  var _this$parent;
@@ -136,19 +241,8 @@ export class Tappable extends React.Component {
136
241
  this.setParent(parent);
137
242
  return /*#__PURE__*/React.createElement(ParentTappableContext.Provider, {
138
243
  value: this
139
- }, /*#__PURE__*/React.createElement(TouchableRipple, _extends({
140
- rippleColor: this.props.disableTouchEffect ? "transparent" : this.props.rippleColor,
141
- borderless: true
142
- }, commonProps, {
143
- onLayout: this.props.onLayout
144
- }), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children)));
145
- }) :
146
- /*#__PURE__*/
147
- //default value is 0.2
148
- React.createElement(TouchableOpacity, _extends({
149
- activeOpacity: this.props.disableTouchEffect ? 1 : 0.2,
150
- onLayout: this.props.onLayout
151
- }, commonProps), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children));
244
+ }, this.getTouchableRipple(this.props.disableTouchEffect ? "transparent" : this.props.rippleColor, commonProps));
245
+ }) : /*#__PURE__*/React.createElement(React.Fragment, null, this.getTouchable(commonProps));
152
246
  });
153
247
  }
154
248
  return /*#__PURE__*/React.createElement(View, _extends({
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","View","TouchableOpacity","get","injector","TouchableRipple","TappableContext","createContext","UIPreferencesConsumer","ParentTappableContext","SyntheticEvent","constructor","_defineProperty","stopPropagation","propagationEnabled","Tappable","Component","props","triggerTap","e","_this$parent","target","onTap","invokeEventCallback","parent","onPress","_this$props$target","lastPress","Date","now","onTouchStart","currentTime","tapDelta","lastTap","isLongTap","_injector$FOCUSED_ELE","FOCUSED_ELEMENT","blur","lastDoubleTap","onDoubleTap","setTimeout","_this$parent2","onLongTap","_this$props$target2","_this$parent3","onPressOut","onTouchEnd","_this$props$target3","_this$parent4","setParent","render","commonProps","OS","accessibilityLabel","testID","accessible","accessibilityProps","disabled","proxy","style","styles","_e$target","tagName","onLongPress","onLongtap","onDoubletap","createElement","preferences","enableRipple","Consumer","Provider","value","_extends","rippleColor","disableTouchEffect","borderless","onLayout","Fragment","children","activeOpacity"],"sources":["tappable.component.tsx"],"sourcesContent":["import { BaseComponent } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport React from \"react\";\nimport { GestureResponderEvent, Platform, View, TouchableOpacity } from \"react-native\";\nimport { get } from \"lodash\";\nimport injector from \"./injector\";\nimport { TouchableRipple } from \"react-native-paper\";\nimport ThemeVariables from \"../styles/theme.variables\";\nimport { isDefined } from \"./utils\";\n\nexport const TappableContext = React.createContext<Tappable>(null as any);\nimport { UIPreferencesConsumer, UI_PREFERENCES } from \"./ui-preferences.context\";\n\nexport const ParentTappableContext = React.createContext<Tappable>(null as any);\ninterface TappableProps {\n testID?: string;\n children?: any\n styles?: any;\n target?: BaseComponent<any, any, any>;\n onTap?: (e: any) => void;\n onLongTap?: (e: any) => void; \n onDoubleTap?: (e: any) => void;\n onTouchStart? : (e: any) => void;\n onTouchEnd? : (e: any) => void;\n rippleColor?: string;\n accessibilityProps?: any;\n disableTouchEffect?:boolean;\n onLayout?: any;\n}\n\nexport class SyntheticEvent {\n // as the event is being used in onPress, onPressOut and onLongTap the TapEvent is renamed to SyntheticEvent\n propagationEnabled = true;\n \n constructor() {\n\n }\n\n stopPropagation() {\n this.propagationEnabled = false;\n }\n}\n\nexport class Tappable extends React.Component<TappableProps, any> {\n private lastPress = 0;\n private lastTap = 0;\n private lastDoubleTap = 0;\n private isLongTap = false;\n private parent:Tappable = null as any;\n \n constructor(props: any) {\n super(props);\n }\n\n async triggerTap(e = new SyntheticEvent()) {\n if (!e.propagationEnabled) {\n return;\n }\n const target = this.props.target;\n if (this.props.onTap) {\n await this.props.onTap(e);\n } else {\n await target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.triggerTap(e);\n }\n\n onPress(e: SyntheticEvent): void { \n this.lastPress = Date.now();\n const target = this.props.target;\n this.props.onTouchStart && this.props.onTouchStart(e);\n this.props.target?.invokeEventCallback('onTouchstart', [e, this.props.target]);\n const currentTime = Date.now();\n const tapDelta = currentTime - this.lastTap;\n if (this.isLongTap) {\n this.isLongTap = false;\n return;\n }\n if (e.propagationEnabled) {\n injector.FOCUSED_ELEMENT.get()?.blur();\n if(this.lastDoubleTap !== this.lastTap \n && tapDelta < 500) {\n this.props.onDoubleTap && this.props.onDoubleTap(e);\n setTimeout(() => {\n target?.invokeEventCallback('onDoubletap', [e, target]);\n }, 200);\n this.lastDoubleTap = currentTime;\n }\n setTimeout(() => {\n if (!e.propagationEnabled) {\n return;\n }\n if (this.props.onTap) {\n this.props.onTap(e);\n } else {\n target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.onPress(e);\n }, 200);\n this.lastTap = currentTime;\n }\n }\n\n onLongTap(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n }\n this.props.onLongTap && this.props.onLongTap(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onLongtap', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = true;\n }\n \n onPressOut(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n } \n this.props.onTouchEnd && this.props.onTouchEnd(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onTouchend', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = false;\n }\n private setParent(parent: Tappable) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n }\n }\n\n render() {\n const target = this.props.target;\n const commonProps = {\n ...(Platform.OS === 'android' || Platform.OS === 'web') ? {\n accessibilityLabel: this.props.testID,\n testID: this.props.testID\n }: {\n accessible: false,\n testID: this.props.testID\n },\n ...this.props.accessibilityProps,\n disabled:get(target?.proxy, 'disabled'),\n style:this.props.styles,\n onPress:(e?: GestureResponderEvent) => {\n if ((e?.target as any)?.tagName === 'INPUT') {\n return;\n }\n this.onPress(new SyntheticEvent())\n },\n onLongPress:(e?: GestureResponderEvent) => this.onLongTap(new SyntheticEvent()),\n onPressOut:(e?: GestureResponderEvent) => this.onPressOut(new SyntheticEvent())\n };\n if (target?.props.onTap \n || target?.props.onLongtap \n || target?.props.onDoubletap \n || this.props.onTap \n || this.props.onLongTap \n || this.props.onDoubleTap) {\n return (\n <UIPreferencesConsumer>\n {(preferences: UI_PREFERENCES) => {\n return preferences.enableRipple != false ? (\n <ParentTappableContext.Consumer>{(parent) => {\n this.setParent(parent);\n return(\n <ParentTappableContext.Provider value={this}>\n <TouchableRipple \n rippleColor={this.props.disableTouchEffect ? \"transparent\" : this.props.rippleColor} \n borderless={true} \n {...commonProps}\n onLayout={this.props.onLayout}\n >\n <>{this.props.children}</>\n </TouchableRipple>\n </ParentTappableContext.Provider>\n )\n }}</ParentTappableContext.Consumer>): (\n //default value is 0.2\n <TouchableOpacity \n activeOpacity={this.props.disableTouchEffect ? 1 : 0.2} \n onLayout={this.props.onLayout}\n {...commonProps}\n >\n <>{this.props.children}</>\n </TouchableOpacity>);\n }}\n </UIPreferencesConsumer>\n );\n }\n return (\n <View \n style={this.props.styles}\n onLayout={this.props.onLayout}\n {...this.props.accessibilityProps}\n >\n {this.props.children}\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","View","TouchableOpacity","RNTouchableOpacity","Pressable","TouchableNativeFeedback","Constants","ExecutionEnvironment","cloneDeep","get","injector","TouchableRipple","deepCopy","TappableContext","createContext","UIPreferencesConsumer","isExpoGo","executionEnvironment","StoreClient","ParentTappableContext","SyntheticEvent","constructor","_defineProperty","stopPropagation","propagationEnabled","Tappable","Component","props","_this$appConfig$isLeg","_this$appConfig","commonStyles","_inner","_inner2","_inner3","_inner4","_inner5","_inner6","_inner7","inner","Array","isArray","forEach","style","Object","keys","key","outer","rippleColor","commonProps","isLegacyTappable","OS","createElement","_extends","borderless","onLayout","Fragment","children","containerStyle","getContainerStyles","background","Ripple","android_ripple","color","activeOpacity","disableTouchEffect","pressed","opacity","appConfig","triggerTap","e","_this$parent","target","onTap","invokeEventCallback","parent","onPress","_this$props$target","lastPress","Date","now","onTouchStart","currentTime","tapDelta","lastTap","isLongTap","_injector$FOCUSED_ELE","FOCUSED_ELEMENT","blur","lastDoubleTap","onDoubleTap","setTimeout","_this$parent2","onLongTap","_this$props$target2","_this$parent3","onPressOut","onTouchEnd","_this$props$target3","_this$parent4","setParent","render","accessibilityLabel","testID","accessible","accessibilityProps","disabled","proxy","styles","_e$target","tagName","onLongPress","onLongtap","onDoubletap","preferences","enableRipple","Consumer","Provider","value","getTouchableRipple","getTouchable"],"sources":["tappable.component.tsx"],"sourcesContent":["import { BaseComponent } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport React from \"react\";\nimport { GestureResponderEvent, Platform, View, TouchableOpacity as RNTouchableOpacity } from \"react-native\";\nimport { Pressable, TouchableNativeFeedback, TouchableOpacity } from \"react-native-gesture-handler\";\nimport Constants, { ExecutionEnvironment } from 'expo-constants';\nimport { cloneDeep, get } from \"lodash\";\nimport injector from \"./injector\";\nimport { TouchableRipple } from \"react-native-paper\";\nimport ThemeVariables from \"../styles/theme.variables\";\nimport { deepCopy, isDefined } from \"./utils\";\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport const TappableContext = React.createContext<Tappable>(null as any);\nimport { UIPreferencesConsumer, UI_PREFERENCES } from \"./ui-preferences.context\";\n\nconst isExpoGo = Constants.executionEnvironment === ExecutionEnvironment.StoreClient;\n\nexport const ParentTappableContext = React.createContext<Tappable>(null as any);\ninterface TappableProps {\n testID?: string;\n children?: any\n styles?: any;\n target?: BaseComponent<any, any, any>;\n onTap?: (e: any) => void;\n onLongTap?: (e: any) => void; \n onDoubleTap?: (e: any) => void;\n onTouchStart? : (e: any) => void;\n onTouchEnd? : (e: any) => void;\n rippleColor?: string;\n accessibilityProps?: any;\n disableTouchEffect?:boolean;\n onLayout?: any;\n}\n\nexport class SyntheticEvent {\n // as the event is being used in onPress, onPressOut and onLongTap the TapEvent is renamed to SyntheticEvent\n propagationEnabled = true;\n \n constructor() {\n\n }\n\n stopPropagation() {\n this.propagationEnabled = false;\n }\n}\n\nexport class Tappable extends React.Component<TappableProps, any> {\n private lastPress = 0;\n private lastTap = 0;\n private lastDoubleTap = 0;\n private isLongTap = false;\n private parent:Tappable = null as any;\n private appConfig: any = injector.get<AppConfig>('APP_CONFIG');;\n private isLegacyTappable: boolean\n\n constructor(props: any) {\n super(props);\n this.isLegacyTappable = this.appConfig?.isLegacyTappable ?? true;\n }\n\n async triggerTap(e = new SyntheticEvent()) {\n if (!e.propagationEnabled) {\n return;\n }\n const target = this.props.target;\n if (this.props.onTap) {\n await this.props.onTap(e);\n } else {\n await target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.triggerTap(e);\n }\n\n onPress(e: SyntheticEvent): void { \n this.lastPress = Date.now();\n const target = this.props.target;\n this.props.onTouchStart && this.props.onTouchStart(e);\n this.props.target?.invokeEventCallback('onTouchstart', [e, this.props.target]);\n const currentTime = Date.now();\n const tapDelta = currentTime - this.lastTap;\n if (this.isLongTap) {\n this.isLongTap = false;\n return;\n }\n if (e.propagationEnabled) {\n injector.FOCUSED_ELEMENT.get()?.blur();\n if(this.lastDoubleTap !== this.lastTap \n && tapDelta < 500) {\n this.props.onDoubleTap && this.props.onDoubleTap(e);\n setTimeout(() => {\n target?.invokeEventCallback('onDoubletap', [e, target]);\n }, 200);\n this.lastDoubleTap = currentTime;\n }\n setTimeout(() => {\n if (!e.propagationEnabled) {\n return;\n }\n if (this.props.onTap) {\n this.props.onTap(e);\n } else {\n target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.onPress(e);\n }, 200);\n this.lastTap = currentTime;\n }\n }\n\n onLongTap(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n }\n this.props.onLongTap && this.props.onLongTap(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onLongtap', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = true;\n }\n \n onPressOut(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n } \n this.props.onTouchEnd && this.props.onTouchEnd(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onTouchend', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = false;\n }\n private setParent(parent: Tappable) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n }\n }\n\n\n private getContainerStyles = (commonStyles: any) => {\n let inner: any = {}\n if(Array.isArray(commonStyles)) {\n commonStyles.forEach((style: any) => {\n if(style) {\n Object.keys(style).forEach(key => {\n inner[key] = style[key];\n })\n }\n })\n } else {\n inner = cloneDeep(commonStyles)\n }\n const outer: any = deepCopy(inner);\n\n delete outer?.[\"padding\"];\n delete outer?.[\"paddingHorizontal\"];\n delete outer?.[\"paddingVertical\"];\n delete outer?.[\"paddingTop\"];\n delete outer?.[\"paddingBottom\"];\n delete outer?.[\"paddingLeft\"];\n delete outer?.[\"paddingRight\"];\n\n delete inner?.[\"margin\"];\n delete inner?.[\"marginHorizontal\"];\n delete inner?.[\"marginVertical\"];\n delete inner?.[\"marginLeft\"];\n delete inner?.[\"marginRight\"];\n delete inner?.[\"marginTop\"];\n delete inner?.[\"marginBottom\"];\n\n return {\n outer,\n inner\n }\n }\n\n /*\n TODO: Remove TouchableNativeFeedback and TouchableOpacity, and use Pressable only,\n When the issue with Pressable not working in Expo GO is fixed from Expo. (this happens only in Android with Expo Go)\n */\n getTouchableRipple = (rippleColor: string | undefined, commonProps: any) => {\n if(this.isLegacyTappable || Platform.OS === 'ios') {\n return (\n <TouchableRipple \n rippleColor={rippleColor} \n borderless={true} \n {...commonProps}\n onLayout={this.props.onLayout}\n >\n <>{this.props.children}</>\n </TouchableRipple>\n )\n }\n\n if(isExpoGo) {\n const containerStyle = this.getContainerStyles(commonProps.style);\n delete commonProps[\"style\"];\n \n return (\n <TouchableNativeFeedback\n {...rippleColor && {background: TouchableNativeFeedback.Ripple(rippleColor, true)}}\n onLayout={this.props.onLayout}\n {...commonProps}\n style={containerStyle.outer}\n >\n <View style={containerStyle.inner}>\n {this.props.children}\n </View>\n </TouchableNativeFeedback>\n )\n }\n\n return (\n <Pressable\n android_ripple={{\n color: rippleColor,\n borderless: true\n }}\n onLayout={this.props.onLayout}\n {...commonProps}\n >\n {this.props.children}\n </Pressable>\n )\n }\n \n\n getTouchable = (commonProps: any) => {\n if(this.isLegacyTappable || Platform.OS === 'ios') {\n return (\n <RNTouchableOpacity \n activeOpacity={this.props.disableTouchEffect ? 1 : 0.2} \n onLayout={this.props.onLayout}\n {...commonProps}\n >\n <>{this.props.children}</>\n </RNTouchableOpacity>\n )\n }\n\n if(isExpoGo) {\n const containerStyle = this.getContainerStyles(commonProps.style);\n delete commonProps[\"style\"];\n\n return (\n <TouchableOpacity\n activeOpacity={this.props.disableTouchEffect ? 1 : 0.2}\n onLayout={this.props.onLayout}\n {...commonProps}\n style={containerStyle.outer}\n\n >\n <View style={containerStyle.inner}>\n {this.props.children}\n </View>\n </TouchableOpacity>\n )\n }\n\n return (\n <Pressable\n onLayout={this.props.onLayout}\n {...commonProps}\n style={({pressed}) => [\n commonProps.style, \n { opacity: !this.props.disableTouchEffect && pressed ? 0.2 : 1}\n ]}\n >\n {this.props.children}\n </Pressable>\n )\n }\n\n render() {\n const target = this.props.target;\n const commonProps = {\n ...(Platform.OS === 'android' || Platform.OS === 'web') ? {\n accessibilityLabel: this.props.testID,\n testID: this.props.testID\n }: {\n accessible: false,\n testID: this.props.testID\n },\n ...this.props.accessibilityProps,\n disabled:get(target?.proxy, 'disabled'),\n style:this.props.styles,\n onPress:(e?: GestureResponderEvent) => {\n if ((e?.target as any)?.tagName === 'INPUT') {\n return;\n }\n this.onPress(new SyntheticEvent())\n },\n onLongPress:(e?: GestureResponderEvent) => this.onLongTap(new SyntheticEvent()),\n onPressOut:(e?: GestureResponderEvent) => this.onPressOut(new SyntheticEvent())\n };\n if (target?.props.onTap \n || target?.props.onLongtap \n || target?.props.onDoubletap \n || this.props.onTap \n || this.props.onLongTap \n || this.props.onDoubleTap) {\n return (\n <UIPreferencesConsumer>\n {(preferences: UI_PREFERENCES) => {\n return preferences.enableRipple != false ? (\n <ParentTappableContext.Consumer>{(parent) => {\n this.setParent(parent);\n return(\n <ParentTappableContext.Provider value={this}>\n {this.getTouchableRipple(\n this.props.disableTouchEffect ? \"transparent\" : this.props.rippleColor, \n commonProps\n )}\n </ParentTappableContext.Provider>\n )\n }}</ParentTappableContext.Consumer>): (\n <>\n {this.getTouchable(commonProps)}\n </>\n )\n }}\n </UIPreferencesConsumer>\n );\n }\n return (\n <View \n style={this.props.styles}\n onLayout={this.props.onLayout}\n {...this.props.accessibilityProps}\n >\n {this.props.children}\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}