@wavemaker/app-rn-runtime 11.14.1-13.6377 → 11.14.1-16.6404

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.
@@ -1 +1 @@
1
- {"version":3,"names":["assign","isUndefined","isNil","React","AccessibilityInfo","Platform","StyleSheet","View","InteractionManager","Animatable","ThemeVariables","StyleProps","getStyleName","BackgroundComponent","injector","ROOT_LOGGER","deepCopy","getPosition","setPosition","BASE_THEME","ThemeConsumer","ThemeEvent","EventNotifier","PropsProvider","assignIn","HideMode","AssetConsumer","FixedView","TextIdPrefixConsumer","isScreenReaderEnabled","TappableContext","WmComponentNode","WIDGET_LOGGER","extend","ParentContext","createContext","BaseComponentState","constructor","_defineProperty","undefined","defineStyles","styles","text","fontFamily","INSTANCE","baseFont","userSelect","BaseProps","args","BaseComponent","Component","markupProps","defaultClass","defaultProps","defaultState","ADD_TO_DOM","createElement","Fragment","I18nService","get","x","y","width","height","px","py","_this$parent$state","isPageContentWidget","isCurrentParentIsContent","parent","showSkeletonInPageContent","state","props","showskeleton","notifier","name","componentNode","instance","propertyProvider","show","$new","$old","debug","initialized","styleName","styleOverrides","setTimeout","cleanRefresh","onPropertyChange","_INSTANCE","_showView","deferload","check","proxy","Proxy","target","prop","receiver","propName","toString","has","Reflect","set","value","overrideProp","updateState","cleanup","push","updateStateTimeouts","forEach","v","clearTimeout","theme","subscribe","CHANGE","forceUpdate","addEventListener","remove","destroyParentListeners","event","fn","notify","emitToParent","isRTL","i18nService","isRTLLocale","animate","setState","animationId","Date","now","animatableProps","setProp","setPropDefault","setDefault","getDefaultStyles","getStyle","reset","newPartialState","callback","destroyed","stateFn","oldState","oldProps","newState","Object","keys","k","onUpdateState","_this$props$listener","_this$props$listener2","listener","onComponentChange","timeoutId","splice","indexOf","shouldComponentUpdate","nextProps","nextState","nextContext","key","componentDidMount","onComponentInit","componentWillAttach","isFixed","isSticky","hide","componentWillDetach","componentWillUnmount","_this$parent","onComponentDestroy","f","destroy","componentDidUpdate","prevProps","prevState","snapshot","invokeEventCallback","eventName","callBack","appConfig","map","a","apply","e","_appConfig$preference","console","error","preferences","enableGlobalErrorHandler","showView","isVisible","refresh","renderSkeleton","parentListenerDestroyers","setParent","add","getName","handleLayout","ref","_this$getName","call","newLayoutPosition","nativeEvent","layout","componentRef","baseView","measure","updateLayout","runAfterInteractions","requestAnimationFrame","copyStyles","property","from","to","renderFixedContainer","style","rootStyle","left","top","bottom","right","root","mergeStyle","addAnimation","renderWidget","n","_extends","setBackground","bgStyle","_background","image","backgroundImage","position","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","borderRadius","highlight","onTouchStart","borderWidth","overflow","backgroundColor","borderColor","borderStyle","zIndex","absoluteFill","getTestId","suffix","id","testIdPrefix","getTestProps","OS","accessibilityLabel","testID","accessible","getStyleClassName","classname","getTestPropsForInput","getTestPropsForAction","getTestPropsForLabel","getLayoutOfWidget","getLayout","scrollToTop","scrollToEnd","scrollToPosition","widgetName","_this$getLayoutOfWidg","positionY","getDependenciesFromContext","Consumer","tappable","closestTappable","loadAsset","_this$parent2","_showSkeleton","hideSkeletonInPageContentWhenDisabledInPage","Provider","render","selectedLocale","getSelectedLocale","info","hideMode","DONOT_ADD_TO_DOM","disabled","showindevice","d","join","cleanseStyleProperties","childComponentStyleKeys","length","customStyles","hasOwnProperty","eleToRender"],"sources":["base.component.tsx"],"sourcesContent":["import { assign, isUndefined, isNil } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { AccessibilityInfo, LayoutChangeEvent, Platform, StyleSheet, TextStyle, View, ViewStyle, InteractionManager } from 'react-native';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { StyleProps, getStyleName } from '@wavemaker/app-rn-runtime/styles/style-props';\nimport { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport { ROOT_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';\nimport { deepCopy, getPosition, setPosition } from '@wavemaker/app-rn-runtime/core/utils';\nimport BASE_THEME, { NamedStyles, AllStyle, ThemeConsumer, ThemeEvent, Theme } from '../styles/theme';\nimport EventNotifier from './event-notifier';\nimport { PropsProvider } from './props.provider';\nimport { assignIn } from 'lodash-es';\nimport { HideMode } from './if.component';\nimport { AssetConsumer } from './asset.provider';\nimport { FixedView } from './fixed-view.component';\nimport { TextIdPrefixConsumer } from './testid.provider';\nimport { isScreenReaderEnabled } from './accessibility';\nimport { Tappable, TappableContext } from './tappable.component';\nimport { WmComponentNode } from './wm-component-tree';\nimport AppConfig from './AppConfig';\n\nexport const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');\n\nexport const ParentContext = React.createContext(null as any);\n\nexport class BaseComponentState<T extends BaseProps> {\n public animationId?: number = 0;\n public animatableProps?: AnimatableProps<ViewStyle> = undefined;\n public props = {} as T;\n public hide? = false;\n public highlight? = false;\n}\n\nexport type BaseStyles = NamedStyles<any> & {\n root: AllStyle,\n text: TextStyle & {userSelect?: 'none'| 'text'}\n}\n\nexport function defineStyles<T>(styles: T): T {\n return deepCopy({\n text: {\n fontFamily: ThemeVariables.INSTANCE.baseFont,\n userSelect: 'text'\n }\n }, styles);\n}\n\nexport interface LifecycleListener {\n onComponentChange?: (c: BaseComponent<any, any, any>) => void;\n onComponentInit?: (c: BaseComponent<any, any, any>) => void;\n onComponentDestroy?: (c: BaseComponent<any, any, any>) => void;\n}\n\ninterface Layout {\n x: number;\n y: number;\n width: number;\n height: number;\n px: number;\n py: number;\n}\n\nexport class BaseProps extends StyleProps {\n id?: string = null as any;\n name?: string = null as any;\n key?: any = null as any;\n disabled? = false;\n show? = true as Boolean | String | Number;\n styles?: any = null;\n classname?: string = null as any;\n listener?: LifecycleListener = null as any;\n showindevice?: ('xs'|'sm'|'md'|'lg'|'xl'|'xxl')[] = null as any;\n showskeleton?: boolean = undefined;\n deferload?: boolean = false;\n showskeletonchildren?: boolean = true;\n disabletoucheffect?:boolean = false;\n isdefault?: boolean = false;\n}\n\nexport abstract class BaseComponent<T extends BaseProps, S extends BaseComponentState<T>, L extends BaseStyles> extends React.Component<T, S> {\n public styles: L = null as any;\n public hideMode = HideMode.ADD_TO_DOM;\n private propertyProvider: PropsProvider<T>;\n public proxy: BaseComponent<T, S, L>;\n public _INSTANCE: BaseComponent<T, S, L>;\n public initialized = false;\n public cleanup = [] as Function[];\n public theme = BASE_THEME;\n public updateStateTimeouts= [] as NodeJS.Timeout[];\n public parent: BaseComponent<any, any, any> = null as any;\n public destroyed = false;\n public _showSkeleton = false;\n public isFixed = false;\n public isSticky = false;\n public notifier = new EventNotifier();\n private parentListenerDestroyers = [] as Function[];\n public _background = <></>;\n private styleOverrides = {} as any;\n public loadAsset: (path: string) => number | string = null as any;\n private i18nService = injector.I18nService.get();\n public testIdPrefix = '';\n private _showView = true;\n public closestTappable?: Tappable; \n public componentNode: WmComponentNode;\n public layout: Layout = {\n x: 0, y:0, width:0, height:0, px:0, py:0\n };\n public baseView: any = View;\n protected childComponentStyleKeys: string[] = [];\n\n constructor(markupProps: T, public defaultClass: string, defaultProps?: T, defaultState?: S) {\n super(markupProps);\n this.state = (defaultState || {} as S);\n this.notifier.name = this.props.name || '';\n this.componentNode = new WmComponentNode({\n instance: this\n });\n this.propertyProvider = new PropsProvider<T>(\n assign({show: true}, defaultProps),\n assign({}, markupProps),\n (name: string, $new: any, $old: any) => {\n WIDGET_LOGGER.debug(() => `${this.props.name || this.constructor.name}: ${name} changed from ${$old} to ${$new}`);\n if (this.initialized) {\n const styleName = getStyleName(name);\n if (styleName) {\n if ($new === undefined) {\n delete this.styleOverrides[styleName];\n } else {\n this.styleOverrides[styleName] = $new;\n }\n }\n }\n if (name === 'showskeleton' && this.initialized) {\n setTimeout(() => this.cleanRefresh(), 100);\n }\n this.onPropertyChange(name, $new, $old);\n });\n //@ts-ignore\n this.state.props =this.propertyProvider.get();\n this._INSTANCE = this;\n //@ts-ignore\n this._showView = !this.props.deferload;\n this.propertyProvider.check();\n //@ts-ignore\n this.proxy = (new Proxy(this, {\n get: (target, prop, receiver): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n //@ts-ignore\n return this.state.props[propName];\n }\n return Reflect.get(target, prop, receiver);\n },\n set: (target: any, prop, value: any): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n // @ts-ignore\n const props = {} as any;\n this.propertyProvider.overrideProp(propName, value);\n props[propName] = value;\n this.updateState({\n props: props\n } as S);\n return true;\n } else {\n return Reflect.set(target, prop, value);\n }\n }\n }));\n this.cleanup.push(() => {\n this.updateStateTimeouts.forEach(v => clearTimeout(v));\n });\n this.cleanup.push(this.theme.subscribe(ThemeEvent.CHANGE, () => {\n this.forceUpdate();\n }));\n this.cleanup.push(AccessibilityInfo.addEventListener('screenReaderChanged',\n () => {\n setTimeout(() => {\n this.forceUpdate();\n }, 100);\n },\n ).remove);\n this.cleanup.push(() => {\n this.destroyParentListeners();\n });\n }\n\n public subscribe(event: string, fn: Function) {\n return this.notifier.subscribe(event, fn);\n }\n\n public notify(event: string, args: any[], emitToParent = false) {\n return this.notifier.notify(event, args, emitToParent);\n }\n\n public get isRTL(){\n return this.i18nService.isRTLLocale();\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.setState({\n animationId: Date.now(),\n animatableProps: props\n });\n }\n\n setProp(propName: string, value: any) {\n this.propertyProvider.set(propName, value);\n this.updateState({props: {}} as S);\n }\n\n setPropDefault(propName: string, value: any) {\n this.propertyProvider.setDefault(propName, value);\n }\n \n onPropertyChange(name: string, $new: any, $old: any) { \n }\n \n getDefaultStyles() {\n return this.theme.getStyle(this.defaultClass);\n }\n\n reset() {\n\n }\n\n updateState(newPartialState: S, callback?: ()=>void) {\n if (this.destroyed) {\n return;\n }\n const stateFn = (oldState: S) => {\n const oldProps = oldState.props;\n const newState = this.initialized ? assignIn({}, oldState, newPartialState) : assignIn(oldState, newPartialState);\n if (newPartialState.props) {\n Object.keys(newPartialState.props).forEach((k) => {\n //@ts-ignore\n oldProps[k] = newState.props[k];\n });\n newState.props = oldProps;\n }\n return newState;\n };\n const onUpdateState = () => {\n callback && callback();\n this.props.listener?.onComponentChange\n && this.props.listener?.onComponentChange(this);\n }\n if (!this.initialized) {\n this.state = stateFn(this.state);\n onUpdateState();\n } else {\n const timeoutId = setTimeout(() => {\n this.setState(stateFn, onUpdateState);\n this.updateStateTimeouts.splice(this.updateStateTimeouts.indexOf(timeoutId), 1);\n });\n this.updateStateTimeouts.push(timeoutId);\n }\n }\n\n shouldComponentUpdate(nextProps: T, nextState: S, nextContext: any) {\n if (this.propertyProvider.check(nextProps)) {\n return true;\n }\n for(let key in nextState) {\n if(key !== 'props' && (!(key in this.state) || nextState[key] !== this.state[key])) {\n return true;\n }\n }\n\n for(let key in this.state) {\n if(key !== 'props' && (!(key in nextState) || this.state[key] !== nextState[key])) {\n return true;\n }\n }\n return false;\n }\n\n componentDidMount() {\n if (this.props.listener && this.props.listener.onComponentInit) {\n this.props.listener.onComponentInit(this.proxy);\n }\n this.initialized = true;\n }\n\n componentWillAttach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: false});\n }\n }\n\n componentWillDetach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: true});\n }\n }\n\n componentWillUnmount() {\n this.destroyed = true;\n if (this.props.listener && this.props.listener.onComponentDestroy) {\n this.props.listener.onComponentDestroy(this.proxy);\n }\n this.cleanup.forEach(f => f && f());\n this.parent?.componentNode?.remove(this.componentNode);\n this.notifier.destroy();\n this.notifier.notify('destroy', []);\n }\n \n componentDidUpdate(prevProps: Readonly<T>, prevState: Readonly<S>, snapshot?: any): void {\n if (this.propertyProvider.check(this.props)) {\n this.forceUpdate();\n }\n }\n\n invokeEventCallback(eventName: string, args: any[]) {\n //@ts-ignore\n const callBack: Function = this.props[eventName];\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n args = args && args.map(a => (a === this) ? this.proxy : a)\n if (callBack) {\n try {\n return callBack.apply(this.proxy, args);\n } catch(e) {\n console.error(e);\n if(appConfig?.preferences?.enableGlobalErrorHandler !== false){\n throw e; // Re-throwing error to let ErrorBoundary or Global Handler catch it\n }\n }\n }\n }\n\n showView() {\n return this.isVisible();\n }\n\n isVisible() {\n const show = this.state.props.show;\n return show !== false && show !== 'false' && show !== '0' && !isNil(show) && show !== \"\";\n }\n\n protected abstract renderWidget(props: T): ReactNode;\n\n public refresh() {\n this.forceUpdate();\n }\n\n public cleanRefresh() {\n this.forceUpdate(() => this.notifier.notify('forceUpdate', []));\n }\n \n public renderSkeleton (props: T): ReactNode {\n return null;\n }\n\n public destroyParentListeners() {\n this.parentListenerDestroyers.map(fn => fn());\n }\n\n protected setParent(parent: BaseComponent<any, any, any>) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n this.parent.componentNode.add(this.componentNode);\n this.notifier.setParent(parent.notifier);\n this.parentListenerDestroyers = [\n this.parent.subscribe('forceUpdate', () => {\n this.forceUpdate();\n }),\n this.parent.subscribe('destroy', () => {\n this.destroyParentListeners();\n })\n ];\n }\n }\n\n protected getName() {\n return this.props.name;\n }\n\n public handleLayout(event: LayoutChangeEvent, ref: React.RefObject<View> | null = null) {\n const key = this?.getName?.();\n if(key){\n const newLayoutPosition = {\n [key as string]: {\n y: event.nativeEvent.layout.y,\n x: event.nativeEvent.layout.x\n }\n }\n setPosition(newLayoutPosition);\n const componentRef = ref !== null ? ref : this.baseView \n // Layout values by measure\n if(componentRef?.measure){\n const updateLayout = ()=>{\n componentRef.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n this.layout = { x, y, width, height, px, py }\n }); \n }\n updateLayout();\n InteractionManager.runAfterInteractions(() => {\n requestAnimationFrame(updateLayout); \n })\n }\n }\n }\n \n copyStyles(property: string, from: any, to: any) {\n if (!isUndefined(from[property])) {\n to[property] = from[property];\n }\n }\n\n renderFixedContainer(props: T) {\n const style = {} as ViewStyle;\n const rootStyle = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: \"100%\",\n height: \"100%\"\n } as ViewStyle;\n this.copyStyles('left', this.styles.root, style);\n this.copyStyles('top', this.styles.root, style);\n this.copyStyles('right', this.styles.root, style);\n this.copyStyles('bottom', this.styles.root, style);\n this.copyStyles('width', this.styles.root, style);\n this.copyStyles('height', this.styles.root, style);\n this.styles = this.theme.mergeStyle(this.styles, {root: rootStyle});\n return (<FixedView style={style} theme={this.theme}>{this.addAnimation(this.renderWidget(props))}</FixedView>);\n }\n\n private addAnimation(n: ReactNode) {\n if (!this.state.animatableProps) {\n return (\n <>\n {n}\n </>\n )\n }\n return (\n <Animatable.View \n key={this.state.animationId} \n {...this.state.animatableProps}\n >\n {n}\n </Animatable.View>);\n }\n \n private setBackground() {\n const bgStyle = this.styles.root as any;\n this._background = (\n <>\n <BackgroundComponent \n image={bgStyle.backgroundImage}\n position={bgStyle.backgroundPosition}\n size={bgStyle.backgroundSize}\n repeat={bgStyle.backgroundRepeat}\n resizeMode={bgStyle.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}>\n </BackgroundComponent>\n {this.state.highlight ? (<View onTouchStart={() => {\n this.setState({\n highlight: false\n })\n }} style={[{\n borderWidth: 2,\n overflow: 'hidden',\n backgroundColor: '#FFFF0033', \n borderColor: 'orange',\n borderStyle: 'dashed',\n zIndex: 1000,\n borderRadius: 0,\n }, StyleSheet.absoluteFill]}></View>) : null}\n </>\n );\n delete (this.styles.root as any)['backgroundImage'];\n delete (this.styles.root as any)['backgroundPosition'];\n delete (this.styles.root as any)['backgroundResizeMode'];\n delete (this.styles.root as any)['backgroundSize'];\n delete (this.styles.root as any)['backgroundRepeat'];\n }\n\n public getTestId(suffix?: string) {\n let id = this.props.id || this.props.name;\n if (this.testIdPrefix) {\n id = this.testIdPrefix + '_' + id;\n }\n if (suffix) {\n id = id + '_' + suffix;\n }\n return id;\n }\n\n public getTestProps(suffix?: string) {\n let id = this.getTestId(suffix);\n if (isScreenReaderEnabled()) {\n return {};\n }\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public getStyleClassName() {\n return this.state.props.classname;\n }\n\n public getTestPropsForInput(suffix?: string) {\n return this.getTestProps(suffix || 'i');\n }\n\n public getTestPropsForAction(suffix?: string) {\n return this.getTestProps(suffix || 'a');\n }\n\n public getTestPropsForLabel(suffix?: string) {\n return this.getTestProps(suffix || 'l');\n }\n\n public getLayoutOfWidget(name: string): {x: number, y: number} | undefined {\n return getPosition(name)\n }\n\n public getLayout() {\n return this.layout ;\n }\n\n public scrollToTop(){\n this.notify('scrollToPosition', [{\n x: 0,\n y: 0\n }]);\n }\n\n public scrollToEnd() {\n this.notify('scrollToEnd', []);\n }\n\n scrollToPosition(widgetName: string) {\n const positionY = this.getLayoutOfWidget(widgetName)?.y; // Safe access\n this.notify('scrollToPosition', [{\n x: 0,\n y: positionY,\n }]);\n }\n\n public hideSkeletonInPageContentWhenDisabledInPage = () => {\n const isPageContentWidget = this.defaultClass && this.defaultClass === 'app-page-content'\n const isCurrentParentIsContent = this.parent && this.parent.defaultClass && this.parent.defaultClass === 'app-content'\n const showSkeletonInPageContent = this.parent && this.parent.state?.props?.showskeleton === false\n \n if(isPageContentWidget && isCurrentParentIsContent && showSkeletonInPageContent) {\n return false;\n }\n return undefined;\n }\n \n private getDependenciesFromContext(fn: () => ReactNode) {\n return (\n <TappableContext.Consumer>{(tappable) => {\n this.closestTappable = tappable;\n return (\n <TextIdPrefixConsumer>\n {(testIdPrefix) => {\n this.testIdPrefix = testIdPrefix || '';\n return (<AssetConsumer>\n {(loadAsset) => {\n this.loadAsset = loadAsset;\n return (<ParentContext.Consumer>\n {(parent) => {\n this.setParent(parent);\n this._showSkeleton = this.state.props.showskeleton !== false \n && (this.parent?._showSkeleton || this.state.props.showskeleton === true) && this.hideSkeletonInPageContentWhenDisabledInPage() === undefined\n return (\n <ParentContext.Provider value={this}>\n <ThemeConsumer>\n {(theme) => { \n this.theme = theme || BASE_THEME;\n return fn();\n }}\n </ThemeConsumer>\n </ParentContext.Provider>);\n }} \n </ParentContext.Consumer>);\n }}\n </AssetConsumer>);\n }}\n </TextIdPrefixConsumer>)}}\n </TappableContext.Consumer>); \n }\n \n public render(): ReactNode {\n const props = this.state.props;\n const selectedLocale = this.i18nService.getSelectedLocale();\n return this.getDependenciesFromContext(() => {\n WIDGET_LOGGER.info(() => `${this.props.name || this.constructor.name} is rendering.`);\n this._showView = this._showView || this.showView();\n if (this.state.hide \n || (!this.isVisible() && this.hideMode === HideMode.DONOT_ADD_TO_DOM)\n || !this._showView) {\n return null;\n }\n this.isFixed = false;\n const classname = this.getStyleClassName();\n this.styles = this.theme.mergeStyle(\n this.getDefaultStyles(),\n {text: this.theme.getStyle('app-' + selectedLocale)},\n {text: this.theme.getStyle(this.defaultClass + '-' + selectedLocale)},\n props.disabled ? this.theme.getStyle(this.defaultClass + '-disabled') : null,\n this.isRTL ? this.theme.getStyle(this.defaultClass + '-rtl') : null,\n classname && this.theme.getStyle(classname),\n this.isRTL && classname ? this.theme.getStyle(classname + '-rtl') : null,\n props.showindevice && this.theme.getStyle('d-all-none ' + props.showindevice.map(d => `d-${d}-flex`).join(' ')),\n this.theme.cleanseStyleProperties(this.props.styles),\n this.theme.cleanseStyleProperties({\n root: this.styleOverrides,\n text: this.styleOverrides\n }));\n \n // Merge child component styles from custom classes\n if (classname && this.childComponentStyleKeys.length > 0) {\n const customStyles = this.theme.getStyle(classname);\n this.childComponentStyleKeys.forEach(key => {\n if (customStyles && this.styles && this.styles[key]) {\n (this.styles as any)[key] = this.theme.mergeStyle(this.styles[key], customStyles);\n }\n });\n }\n if (this.styles.root.hasOwnProperty('_background')) {\n delete this.styles.root.backgroundColor;\n }\n if (!this.isVisible()) {\n assign(this.styles, this.theme.getStyle('hidden'))\n }\n let eleToRender = (this._showSkeleton && this.renderSkeleton(props));\n if (eleToRender) {\n return eleToRender;\n }\n this.setBackground();\n this.isFixed = (this.styles.root.position as any) === 'fixed';\n if (this.isFixed) {\n this.styles.root.position = undefined;\n return this.renderFixedContainer(props);\n }\n return this.addAnimation(this.renderWidget(this.state.props)); \n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["assign","isUndefined","isNil","React","AccessibilityInfo","Platform","StyleSheet","View","InteractionManager","Animatable","ThemeVariables","StyleProps","getStyleName","BackgroundComponent","injector","ROOT_LOGGER","deepCopy","getPosition","setPosition","BASE_THEME","ThemeConsumer","ThemeEvent","EventNotifier","PropsProvider","assignIn","HideMode","AssetConsumer","FixedView","TextIdPrefixConsumer","isScreenReaderEnabled","TappableContext","WmComponentNode","WIDGET_LOGGER","extend","ParentContext","createContext","BaseComponentState","constructor","_defineProperty","undefined","defineStyles","styles","text","fontFamily","INSTANCE","baseFont","userSelect","BaseProps","args","BaseComponent","Component","markupProps","defaultClass","defaultProps","defaultState","ADD_TO_DOM","createElement","Fragment","I18nService","get","x","y","width","height","px","py","_this$parent$state","isPageContentWidget","isCurrentParentIsContent","parent","showSkeletonInPageContent","state","props","showskeleton","notifier","name","componentNode","instance","propertyProvider","show","$new","$old","debug","initialized","styleName","styleOverrides","setTimeout","cleanRefresh","onPropertyChange","_INSTANCE","_showView","deferload","check","proxy","Proxy","target","prop","receiver","propName","toString","has","Reflect","set","value","overrideProp","updateState","cleanup","push","updateStateTimeouts","forEach","v","clearTimeout","theme","subscribe","CHANGE","forceUpdate","addEventListener","remove","destroyParentListeners","event","fn","notify","emitToParent","isRTL","i18nService","isRTLLocale","animate","setState","animationId","Date","now","animatableProps","setProp","setPropDefault","setDefault","getDefaultStyles","getStyle","reset","newPartialState","callback","destroyed","stateFn","oldState","oldProps","newState","Object","keys","k","onUpdateState","_this$props$listener","_this$props$listener2","listener","onComponentChange","timeoutId","splice","indexOf","shouldComponentUpdate","nextProps","nextState","nextContext","key","componentDidMount","onComponentInit","componentWillAttach","isFixed","isSticky","hide","componentWillDetach","componentWillUnmount","_this$parent","onComponentDestroy","f","destroy","componentDidUpdate","prevProps","prevState","snapshot","invokeEventCallback","eventName","callBack","appConfig","map","a","apply","e","_appConfig$preference","console","error","preferences","enableGlobalErrorHandler","showView","isVisible","refresh","renderSkeleton","parentListenerDestroyers","setParent","add","getName","handleLayout","ref","_this$getName","call","newLayoutPosition","nativeEvent","layout","componentRef","baseView","measure","updateLayout","runAfterInteractions","requestAnimationFrame","copyStyles","property","from","to","renderFixedContainer","style","rootStyle","left","top","bottom","right","root","mergeStyle","addAnimation","renderWidget","n","_extends","setBackground","bgStyle","_background","image","backgroundImage","position","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","borderRadius","highlight","onTouchStart","borderWidth","overflow","backgroundColor","borderColor","borderStyle","zIndex","absoluteFill","getTestId","suffix","id","testIdPrefix","getTestProps","OS","accessibilityLabel","testID","accessible","getStyleClassName","classname","getTestPropsForInput","getTestPropsForAction","getTestPropsForLabel","getLayoutOfWidget","getLayout","scrollToTop","scrollToEnd","scrollToPosition","widgetName","_this$getLayoutOfWidg","positionY","getDependenciesFromContext","Consumer","tappable","closestTappable","loadAsset","_this$parent2","_showSkeleton","hideSkeletonInPageContentWhenDisabledInPage","Provider","render","selectedLocale","getSelectedLocale","info","hideMode","DONOT_ADD_TO_DOM","disabled","showindevice","d","join","cleanseStyleProperties","childComponentStyleKeys","length","customStyles","hasOwnProperty","eleToRender"],"sources":["base.component.tsx"],"sourcesContent":["import { assign, isUndefined, isNil } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { AccessibilityInfo, LayoutChangeEvent, Platform, StyleSheet, TextStyle, View, ViewStyle, InteractionManager } from 'react-native';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { StyleProps, getStyleName } from '@wavemaker/app-rn-runtime/styles/style-props';\nimport { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport { ROOT_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';\nimport { deepCopy, getPosition, setPosition } from '@wavemaker/app-rn-runtime/core/utils';\nimport BASE_THEME, { NamedStyles, AllStyle, ThemeConsumer, ThemeEvent, Theme } from '../styles/theme';\nimport EventNotifier from './event-notifier';\nimport { PropsProvider } from './props.provider';\nimport { assignIn } from 'lodash-es';\nimport { HideMode } from './if.component';\nimport { AssetConsumer } from './asset.provider';\nimport { FixedView } from './fixed-view.component';\nimport { TextIdPrefixConsumer } from './testid.provider';\nimport { isScreenReaderEnabled } from './accessibility';\nimport { Tappable, TappableContext } from './tappable.component';\nimport { WmComponentNode } from './wm-component-tree';\nimport AppConfig from './AppConfig';\n\nexport const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');\n\nexport const ParentContext = React.createContext(null as any);\n\nexport class BaseComponentState<T extends BaseProps> {\n public animationId?: number = 0;\n public animatableProps?: AnimatableProps<ViewStyle> = undefined;\n public props = {} as T;\n public hide? = false;\n public highlight? = false;\n}\n\nexport type BaseStyles = NamedStyles<any> & {\n root: AllStyle,\n text: TextStyle & {userSelect?: 'none'| 'text'}\n}\n\nexport function defineStyles<T>(styles: T): T {\n return deepCopy({\n text: {\n fontFamily: ThemeVariables.INSTANCE.baseFont,\n userSelect: 'text'\n }\n }, styles);\n}\n\nexport interface LifecycleListener {\n onComponentChange?: (c: BaseComponent<any, any, any>) => void;\n onComponentInit?: (c: BaseComponent<any, any, any>) => void;\n onComponentDestroy?: (c: BaseComponent<any, any, any>) => void;\n}\n\ninterface Layout {\n x: number;\n y: number;\n width: number;\n height: number;\n px: number;\n py: number;\n}\n\nexport class BaseProps extends StyleProps {\n id?: string = null as any;\n name?: string = null as any;\n key?: any = null as any;\n disabled? = false;\n show? = true as Boolean | String | Number;\n styles?: any = null;\n classname?: string = null as any;\n listener?: LifecycleListener = null as any;\n showindevice?: ('xs'|'sm'|'md'|'lg'|'xl'|'xxl')[] = null as any;\n showskeleton?: boolean = undefined;\n deferload?: boolean = false;\n showskeletonchildren?: boolean = true;\n disabletoucheffect?:boolean = false;\n isdefault?: boolean = false;\n}\n\nexport abstract class BaseComponent<T extends BaseProps, S extends BaseComponentState<T>, L extends BaseStyles> extends React.Component<T, S> {\n public styles: L = null as any;\n public hideMode = HideMode.ADD_TO_DOM;\n private propertyProvider: PropsProvider<T>;\n public proxy: BaseComponent<T, S, L>;\n public _INSTANCE: BaseComponent<T, S, L>;\n public initialized = false;\n public cleanup = [] as Function[];\n public theme = BASE_THEME;\n public updateStateTimeouts= [] as NodeJS.Timeout[];\n public parent: BaseComponent<any, any, any> = null as any;\n public destroyed = false;\n public _showSkeleton = false;\n public isFixed = false;\n public isSticky = false;\n public notifier = new EventNotifier();\n private parentListenerDestroyers = [] as Function[];\n public _background = <></>;\n private styleOverrides = {} as any;\n public loadAsset: (path: string) => number | string = null as any;\n private i18nService = injector.I18nService.get();\n public testIdPrefix = '';\n private _showView = true;\n public closestTappable?: Tappable; \n public componentNode: WmComponentNode;\n public layout: Layout = {\n x: 0, y:0, width:0, height:0, px:0, py:0\n };\n public baseView: any = View;\n protected childComponentStyleKeys: string[] = [];\n\n constructor(markupProps: T, public defaultClass: string, defaultProps?: T, defaultState?: S) {\n super(markupProps);\n this.state = (defaultState || {} as S);\n this.notifier.name = this.props.name || '';\n this.componentNode = new WmComponentNode({\n instance: this\n });\n this.propertyProvider = new PropsProvider<T>(\n assign({show: true}, defaultProps),\n assign({}, markupProps),\n (name: string, $new: any, $old: any) => {\n WIDGET_LOGGER.debug(() => `${this.props.name || this.constructor.name}: ${name} changed from ${$old} to ${$new}`);\n if (this.initialized) {\n const styleName = getStyleName(name);\n if (styleName) {\n if ($new === undefined) {\n delete this.styleOverrides[styleName];\n } else {\n this.styleOverrides[styleName] = $new;\n }\n }\n }\n if (name === 'showskeleton' && this.initialized) {\n setTimeout(() => this.cleanRefresh(), 100);\n }\n this.onPropertyChange(name, $new, $old);\n });\n //@ts-ignore\n this.state.props =this.propertyProvider.get();\n this._INSTANCE = this;\n //@ts-ignore\n this._showView = !this.props.deferload;\n this.propertyProvider.check();\n //@ts-ignore\n this.proxy = (new Proxy(this, {\n get: (target, prop, receiver): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n //@ts-ignore\n return this.state.props[propName];\n }\n return Reflect.get(target, prop, receiver);\n },\n set: (target: any, prop, value: any): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n // @ts-ignore\n const props = {} as any;\n this.propertyProvider.overrideProp(propName, value);\n props[propName] = value;\n this.updateState({\n props: props\n } as S);\n return true;\n } else {\n return Reflect.set(target, prop, value);\n }\n }\n }));\n this.cleanup.push(() => {\n this.updateStateTimeouts.forEach(v => clearTimeout(v));\n });\n this.cleanup.push(this.theme.subscribe(ThemeEvent.CHANGE, () => {\n this.forceUpdate();\n }));\n this.cleanup.push(AccessibilityInfo.addEventListener('screenReaderChanged',\n () => {\n setTimeout(() => {\n this.forceUpdate();\n }, 100);\n },\n ).remove);\n this.cleanup.push(() => {\n this.destroyParentListeners();\n });\n }\n\n public subscribe(event: string, fn: Function) {\n return this.notifier.subscribe(event, fn);\n }\n\n public notify(event: string, args: any[], emitToParent = false) {\n return this.notifier.notify(event, args, emitToParent);\n }\n\n public get isRTL(){\n return this.i18nService.isRTLLocale();\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.setState({\n animationId: Date.now(),\n animatableProps: props\n });\n }\n\n setProp(propName: string, value: any) {\n this.propertyProvider.set(propName, value);\n this.updateState({props: {}} as S);\n }\n\n setPropDefault(propName: string, value: any) {\n this.propertyProvider.setDefault(propName, value);\n }\n \n onPropertyChange(name: string, $new: any, $old: any) { \n }\n \n getDefaultStyles() {\n return this.theme.getStyle(this.defaultClass);\n }\n\n reset() {\n\n }\n\n updateState(newPartialState: S, callback?: ()=>void) {\n if (this.destroyed) {\n return;\n }\n const stateFn = (oldState: S) => {\n const oldProps = oldState.props;\n const newState = this.initialized ? assignIn({}, oldState, newPartialState) : assignIn(oldState, newPartialState);\n if (newPartialState.props) {\n Object.keys(newPartialState.props).forEach((k) => {\n //@ts-ignore\n oldProps[k] = newState.props[k];\n });\n newState.props = oldProps;\n }\n return newState;\n };\n const onUpdateState = () => {\n callback && callback();\n this.props.listener?.onComponentChange\n && this.props.listener?.onComponentChange(this);\n }\n if (!this.initialized) {\n this.state = stateFn(this.state);\n onUpdateState();\n } else {\n const timeoutId = setTimeout(() => {\n this.setState(stateFn, onUpdateState);\n this.updateStateTimeouts.splice(this.updateStateTimeouts.indexOf(timeoutId), 1);\n });\n this.updateStateTimeouts.push(timeoutId);\n }\n }\n\n shouldComponentUpdate(nextProps: T, nextState: S, nextContext: any) {\n if (this.propertyProvider.check(nextProps)) {\n return true;\n }\n for(let key in nextState) {\n if(key !== 'props' && (!(key in this.state) || nextState[key] !== this.state[key])) {\n return true;\n }\n }\n\n for(let key in this.state) {\n if(key !== 'props' && (!(key in nextState) || this.state[key] !== nextState[key])) {\n return true;\n }\n }\n return false;\n }\n\n componentDidMount() {\n if (this.props.listener && this.props.listener.onComponentInit) {\n this.props.listener.onComponentInit(this.proxy);\n }\n this.initialized = true;\n }\n\n componentWillAttach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: false});\n }\n }\n\n componentWillDetach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: true});\n }\n }\n\n componentWillUnmount() {\n this.destroyed = true;\n if (this.props.listener && this.props.listener.onComponentDestroy) {\n this.props.listener.onComponentDestroy(this.proxy);\n }\n this.cleanup.forEach(f => f && f());\n this.parent?.componentNode?.remove(this.componentNode);\n this.notifier.destroy();\n this.notifier.notify('destroy', []);\n }\n \n componentDidUpdate(prevProps: Readonly<T>, prevState: Readonly<S>, snapshot?: any): void {\n if (this.propertyProvider.check(this.props)) {\n this.forceUpdate();\n }\n }\n\n invokeEventCallback(eventName: string, args: any[]) {\n //@ts-ignore\n const callBack: Function = this.props[eventName];\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n args = args && args.map(a => (a === this) ? this.proxy : a)\n if (callBack) {\n try {\n return callBack.apply(this.proxy, args);\n } catch(e) {\n console.error(e);\n if(appConfig?.preferences?.enableGlobalErrorHandler === true){\n throw e; // Re-throwing error to let ErrorBoundary or Global Handler catch it\n }\n }\n }\n }\n\n showView() {\n return this.isVisible();\n }\n\n isVisible() {\n const show = this.state.props.show;\n return show !== false && show !== 'false' && show !== '0' && !isNil(show) && show !== \"\";\n }\n\n protected abstract renderWidget(props: T): ReactNode;\n\n public refresh() {\n this.forceUpdate();\n }\n\n public cleanRefresh() {\n this.forceUpdate(() => this.notifier.notify('forceUpdate', []));\n }\n \n public renderSkeleton (props: T): ReactNode {\n return null;\n }\n\n public destroyParentListeners() {\n this.parentListenerDestroyers.map(fn => fn());\n }\n\n protected setParent(parent: BaseComponent<any, any, any>) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n this.parent.componentNode.add(this.componentNode);\n this.notifier.setParent(parent.notifier);\n this.parentListenerDestroyers = [\n this.parent.subscribe('forceUpdate', () => {\n this.forceUpdate();\n }),\n this.parent.subscribe('destroy', () => {\n this.destroyParentListeners();\n })\n ];\n }\n }\n\n protected getName() {\n return this.props.name;\n }\n\n public handleLayout(event: LayoutChangeEvent, ref: React.RefObject<View> | null = null) {\n const key = this?.getName?.();\n if(key){\n const newLayoutPosition = {\n [key as string]: {\n y: event.nativeEvent.layout.y,\n x: event.nativeEvent.layout.x\n }\n }\n setPosition(newLayoutPosition);\n const componentRef = ref !== null ? ref : this.baseView \n // Layout values by measure\n if(componentRef?.measure){\n const updateLayout = ()=>{\n componentRef.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n this.layout = { x, y, width, height, px, py }\n }); \n }\n updateLayout();\n InteractionManager.runAfterInteractions(() => {\n requestAnimationFrame(updateLayout); \n })\n }\n }\n }\n \n copyStyles(property: string, from: any, to: any) {\n if (!isUndefined(from[property])) {\n to[property] = from[property];\n }\n }\n\n renderFixedContainer(props: T) {\n const style = {} as ViewStyle;\n const rootStyle = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: \"100%\",\n height: \"100%\"\n } as ViewStyle;\n this.copyStyles('left', this.styles.root, style);\n this.copyStyles('top', this.styles.root, style);\n this.copyStyles('right', this.styles.root, style);\n this.copyStyles('bottom', this.styles.root, style);\n this.copyStyles('width', this.styles.root, style);\n this.copyStyles('height', this.styles.root, style);\n this.styles = this.theme.mergeStyle(this.styles, {root: rootStyle});\n return (<FixedView style={style} theme={this.theme}>{this.addAnimation(this.renderWidget(props))}</FixedView>);\n }\n\n private addAnimation(n: ReactNode) {\n if (!this.state.animatableProps) {\n return (\n <>\n {n}\n </>\n )\n }\n return (\n <Animatable.View \n key={this.state.animationId} \n {...this.state.animatableProps}\n >\n {n}\n </Animatable.View>);\n }\n \n private setBackground() {\n const bgStyle = this.styles.root as any;\n this._background = (\n <>\n <BackgroundComponent \n image={bgStyle.backgroundImage}\n position={bgStyle.backgroundPosition}\n size={bgStyle.backgroundSize}\n repeat={bgStyle.backgroundRepeat}\n resizeMode={bgStyle.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}>\n </BackgroundComponent>\n {this.state.highlight ? (<View onTouchStart={() => {\n this.setState({\n highlight: false\n })\n }} style={[{\n borderWidth: 2,\n overflow: 'hidden',\n backgroundColor: '#FFFF0033', \n borderColor: 'orange',\n borderStyle: 'dashed',\n zIndex: 1000,\n borderRadius: 0,\n }, StyleSheet.absoluteFill]}></View>) : null}\n </>\n );\n delete (this.styles.root as any)['backgroundImage'];\n delete (this.styles.root as any)['backgroundPosition'];\n delete (this.styles.root as any)['backgroundResizeMode'];\n delete (this.styles.root as any)['backgroundSize'];\n delete (this.styles.root as any)['backgroundRepeat'];\n }\n\n public getTestId(suffix?: string) {\n let id = this.props.id || this.props.name;\n if (this.testIdPrefix) {\n id = this.testIdPrefix + '_' + id;\n }\n if (suffix) {\n id = id + '_' + suffix;\n }\n return id;\n }\n\n public getTestProps(suffix?: string) {\n let id = this.getTestId(suffix);\n if (isScreenReaderEnabled()) {\n return {};\n }\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public getStyleClassName() {\n return this.state.props.classname;\n }\n\n public getTestPropsForInput(suffix?: string) {\n return this.getTestProps(suffix || 'i');\n }\n\n public getTestPropsForAction(suffix?: string) {\n return this.getTestProps(suffix || 'a');\n }\n\n public getTestPropsForLabel(suffix?: string) {\n return this.getTestProps(suffix || 'l');\n }\n\n public getLayoutOfWidget(name: string): {x: number, y: number} | undefined {\n return getPosition(name)\n }\n\n public getLayout() {\n return this.layout ;\n }\n\n public scrollToTop(){\n this.notify('scrollToPosition', [{\n x: 0,\n y: 0\n }]);\n }\n\n public scrollToEnd() {\n this.notify('scrollToEnd', []);\n }\n\n scrollToPosition(widgetName: string) {\n const positionY = this.getLayoutOfWidget(widgetName)?.y; // Safe access\n this.notify('scrollToPosition', [{\n x: 0,\n y: positionY,\n }]);\n }\n\n public hideSkeletonInPageContentWhenDisabledInPage = () => {\n const isPageContentWidget = this.defaultClass && this.defaultClass === 'app-page-content'\n const isCurrentParentIsContent = this.parent && this.parent.defaultClass && this.parent.defaultClass === 'app-content'\n const showSkeletonInPageContent = this.parent && this.parent.state?.props?.showskeleton === false\n \n if(isPageContentWidget && isCurrentParentIsContent && showSkeletonInPageContent) {\n return false;\n }\n return undefined;\n }\n \n private getDependenciesFromContext(fn: () => ReactNode) {\n return (\n <TappableContext.Consumer>{(tappable) => {\n this.closestTappable = tappable;\n return (\n <TextIdPrefixConsumer>\n {(testIdPrefix) => {\n this.testIdPrefix = testIdPrefix || '';\n return (<AssetConsumer>\n {(loadAsset) => {\n this.loadAsset = loadAsset;\n return (<ParentContext.Consumer>\n {(parent) => {\n this.setParent(parent);\n this._showSkeleton = this.state.props.showskeleton !== false \n && (this.parent?._showSkeleton || this.state.props.showskeleton === true) && this.hideSkeletonInPageContentWhenDisabledInPage() === undefined\n return (\n <ParentContext.Provider value={this}>\n <ThemeConsumer>\n {(theme) => { \n this.theme = theme || BASE_THEME;\n return fn();\n }}\n </ThemeConsumer>\n </ParentContext.Provider>);\n }} \n </ParentContext.Consumer>);\n }}\n </AssetConsumer>);\n }}\n </TextIdPrefixConsumer>)}}\n </TappableContext.Consumer>); \n }\n \n public render(): ReactNode {\n const props = this.state.props;\n const selectedLocale = this.i18nService.getSelectedLocale();\n return this.getDependenciesFromContext(() => {\n WIDGET_LOGGER.info(() => `${this.props.name || this.constructor.name} is rendering.`);\n this._showView = this._showView || this.showView();\n if (this.state.hide \n || (!this.isVisible() && this.hideMode === HideMode.DONOT_ADD_TO_DOM)\n || !this._showView) {\n return null;\n }\n this.isFixed = false;\n const classname = this.getStyleClassName();\n this.styles = this.theme.mergeStyle(\n this.getDefaultStyles(),\n {text: this.theme.getStyle('app-' + selectedLocale)},\n {text: this.theme.getStyle(this.defaultClass + '-' + selectedLocale)},\n props.disabled ? this.theme.getStyle(this.defaultClass + '-disabled') : null,\n this.isRTL ? this.theme.getStyle(this.defaultClass + '-rtl') : null,\n classname && this.theme.getStyle(classname),\n this.isRTL && classname ? this.theme.getStyle(classname + '-rtl') : null,\n props.showindevice && this.theme.getStyle('d-all-none ' + props.showindevice.map(d => `d-${d}-flex`).join(' ')),\n this.theme.cleanseStyleProperties(this.props.styles),\n this.theme.cleanseStyleProperties({\n root: this.styleOverrides,\n text: this.styleOverrides\n }));\n \n // Merge child component styles from custom classes\n if (classname && this.childComponentStyleKeys.length > 0) {\n const customStyles = this.theme.getStyle(classname);\n this.childComponentStyleKeys.forEach(key => {\n if (customStyles && this.styles && this.styles[key]) {\n (this.styles as any)[key] = this.theme.mergeStyle(this.styles[key], customStyles);\n }\n });\n }\n if (this.styles.root.hasOwnProperty('_background')) {\n delete this.styles.root.backgroundColor;\n }\n if (!this.isVisible()) {\n assign(this.styles, this.theme.getStyle('hidden'))\n }\n let eleToRender = (this._showSkeleton && this.renderSkeleton(props));\n if (eleToRender) {\n return eleToRender;\n }\n this.setBackground();\n this.isFixed = (this.styles.root.position as any) === 'fixed';\n if (this.isFixed) {\n this.styles.root.position = undefined;\n return this.renderFixedContainer(props);\n }\n return this.addAnimation(this.renderWidget(this.state.props)); \n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -20,11 +20,34 @@ export default class ErrorBoundary extends React.Component {
20
20
  };
21
21
  }
22
22
  static getDerivedStateFromError(error) {
23
+ // Check preferences before setting error state
24
+ const appConfig = injector.get('APP_CONFIG');
25
+ const prefs = appConfig === null || appConfig === void 0 ? void 0 : appConfig.preferences;
26
+ const globalEnabled = (prefs === null || prefs === void 0 ? void 0 : prefs.enableGlobalErrorHandler) === true;
27
+ const renderEnabled = (prefs === null || prefs === void 0 ? void 0 : prefs.enableRenderErrors) !== false;
28
+
29
+ // Only set hasError if error handling is enabled
30
+ if (!globalEnabled || !renderEnabled) {
31
+ return {
32
+ hasError: false
33
+ };
34
+ }
23
35
  return {
24
36
  hasError: true
25
37
  };
26
38
  }
27
39
  componentDidCatch(error, info) {
40
+ // Check if error handling is enabled
41
+ const appConfig = injector.get('APP_CONFIG');
42
+ const prefs = appConfig === null || appConfig === void 0 ? void 0 : appConfig.preferences;
43
+ const globalEnabled = (prefs === null || prefs === void 0 ? void 0 : prefs.enableGlobalErrorHandler) === true;
44
+ const renderEnabled = (prefs === null || prefs === void 0 ? void 0 : prefs.enableRenderErrors) !== false;
45
+
46
+ // Only catch if both master switch and render errors are enabled
47
+ if (!globalEnabled || !renderEnabled) {
48
+ return;
49
+ }
50
+
28
51
  // Trigger user error callback if app instance is available
29
52
  let appInstance = this.props.app;
30
53
 
@@ -50,7 +73,12 @@ export default class ErrorBoundary extends React.Component {
50
73
  }
51
74
  render() {
52
75
  if (this.state.hasError) {
53
- var _this$state, _this$state2;
76
+ var _appConfig$preference, _this$state, _this$state2;
77
+ const appConfig = injector.get('APP_CONFIG');
78
+ const showFallback = (appConfig === null || appConfig === void 0 || (_appConfig$preference = appConfig.preferences) === null || _appConfig$preference === void 0 ? void 0 : _appConfig$preference.showErrorFallback) !== false;
79
+ if (!showFallback) {
80
+ return null;
81
+ }
54
82
  return /*#__PURE__*/React.createElement(Fallback, {
55
83
  error: (_this$state = this.state) === null || _this$state === void 0 ? void 0 : _this$state.error,
56
84
  info: (_this$state2 = this.state) === null || _this$state2 === void 0 ? void 0 : _this$state2.info,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Fallback","appModalService","injector","ErrorBoundary","Component","constructor","props","_defineProperty","setState","hasError","error","undefined","info","state","getDerivedStateFromError","componentDidCatch","appInstance","app","get","triggerOnError","e","console","modalsOpened","length","pop","showLastModal","render","_this$state","_this$state2","createElement","resetErrorBoundary","errorType","children"],"sources":["error-boundary.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport Fallback from './components/error-fallback/error-fallback.component';\nimport appModalService from '@wavemaker/app-rn-runtime/runtime/services/app-modal.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n info?: any;\n error?: any;\n}\n\ninterface ErrorBoundaryProps {\n currentPage?: any;\n children: React.ReactNode;\n errorType?: 'render' | 'javascript';\n app?: any;\n}\n\nexport default class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n \n constructor(props: any) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: any) {\n return { hasError: true };\n }\n\n resetErrorBoundary = () => {\n this.setState({ hasError: false, error: undefined, info: undefined });\n };\n\n componentDidCatch(error: any, info: any) {\n // Trigger user error callback if app instance is available\n let appInstance = this.props.app;\n \n // Fallback: try to get app instance from injector if prop is not available\n if (!appInstance) {\n appInstance = injector.get('APP_INSTANCE');\n }\n \n if (appInstance && appInstance.triggerOnError) {\n try {\n appInstance.triggerOnError(error, info, 'render');\n } catch (e) {\n console.error('Error calling triggerOnError:', e);\n }\n }\n \n if(error && appModalService.modalsOpened.length > 0){\n appModalService.modalsOpened.pop();\n (appModalService as any).showLastModal();\n }\n this.setState({ error, info });\n }\n\n render() {\n if (this.state.hasError) {\n return <Fallback \n error={this.state?.error} \n info={this.state?.info} \n resetErrorBoundary={this.resetErrorBoundary}\n errorType={this.props.errorType || 'render'}\n />;\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,sDAAsD;AAC3E,OAAOC,eAAe,MAAM,8DAA8D;AAC1F,OAAOC,QAAQ,MAAM,yCAAyC;AAe9D,eAAe,MAAMC,aAAa,SAASJ,KAAK,CAACK,SAAS,CAGxD;EAEAC,WAAWA,CAACC,KAAU,EAAE;IACtB,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,6BAQM,MAAM;MACzB,IAAI,CAACC,QAAQ,CAAC;QAAEC,QAAQ,EAAE,KAAK;QAAEC,KAAK,EAAEC,SAAS;QAAEC,IAAI,EAAED;MAAU,CAAC,CAAC;IACvE,CAAC;IATC,IAAI,CAACE,KAAK,GAAG;MAAEJ,QAAQ,EAAE;IAAM,CAAC;EAClC;EAEA,OAAOK,wBAAwBA,CAACJ,KAAU,EAAE;IAC1C,OAAO;MAAED,QAAQ,EAAE;IAAK,CAAC;EAC3B;EAMAM,iBAAiBA,CAACL,KAAU,EAAEE,IAAS,EAAE;IACvC;IACA,IAAII,WAAW,GAAG,IAAI,CAACV,KAAK,CAACW,GAAG;;IAEhC;IACA,IAAI,CAACD,WAAW,EAAE;MACdA,WAAW,GAAGd,QAAQ,CAACgB,GAAG,CAAC,cAAc,CAAC;IAC9C;IAEA,IAAIF,WAAW,IAAIA,WAAW,CAACG,cAAc,EAAE;MAC7C,IAAI;QACFH,WAAW,CAACG,cAAc,CAACT,KAAK,EAAEE,IAAI,EAAE,QAAQ,CAAC;MACnD,CAAC,CAAC,OAAOQ,CAAC,EAAE;QACVC,OAAO,CAACX,KAAK,CAAC,+BAA+B,EAAEU,CAAC,CAAC;MACnD;IACF;IAEA,IAAGV,KAAK,IAAIT,eAAe,CAACqB,YAAY,CAACC,MAAM,GAAG,CAAC,EAAC;MAClDtB,eAAe,CAACqB,YAAY,CAACE,GAAG,CAAC,CAAC;MACjCvB,eAAe,CAASwB,aAAa,CAAC,CAAC;IAC1C;IACA,IAAI,CAACjB,QAAQ,CAAC;MAAEE,KAAK;MAAEE;IAAK,CAAC,CAAC;EAChC;EAEAc,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACb,KAAK,CAACJ,QAAQ,EAAE;MAAA,IAAAkB,WAAA,EAAAC,YAAA;MACvB,oBAAO7B,KAAA,CAAA8B,aAAA,CAAC7B,QAAQ;QACdU,KAAK,GAAAiB,WAAA,GAAE,IAAI,CAACd,KAAK,cAAAc,WAAA,uBAAVA,WAAA,CAAYjB,KAAM;QACzBE,IAAI,GAAAgB,YAAA,GAAE,IAAI,CAACf,KAAK,cAAAe,YAAA,uBAAVA,YAAA,CAAYhB,IAAK;QACvBkB,kBAAkB,EAAE,IAAI,CAACA,kBAAmB;QAC5CC,SAAS,EAAE,IAAI,CAACzB,KAAK,CAACyB,SAAS,IAAI;MAAS,CAC7C,CAAC;IACJ;IAEA,OAAO,IAAI,CAACzB,KAAK,CAAC0B,QAAQ;EAC5B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["React","Fallback","appModalService","injector","ErrorBoundary","Component","constructor","props","_defineProperty","setState","hasError","error","undefined","info","state","getDerivedStateFromError","appConfig","get","prefs","preferences","globalEnabled","enableGlobalErrorHandler","renderEnabled","enableRenderErrors","componentDidCatch","appInstance","app","triggerOnError","e","console","modalsOpened","length","pop","showLastModal","render","_appConfig$preference","_this$state","_this$state2","showFallback","showErrorFallback","createElement","resetErrorBoundary","errorType","children"],"sources":["error-boundary.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport Fallback from './components/error-fallback/error-fallback.component';\nimport appModalService from '@wavemaker/app-rn-runtime/runtime/services/app-modal.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n info?: any;\n error?: any;\n}\n\ninterface ErrorBoundaryProps {\n currentPage?: any;\n children: React.ReactNode;\n errorType?: 'render' | 'javascript';\n app?: any;\n}\n\nexport default class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n \n constructor(props: any) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: any) {\n // Check preferences before setting error state\n const appConfig = injector.get<any>('APP_CONFIG');\n const prefs = appConfig?.preferences;\n const globalEnabled = prefs?.enableGlobalErrorHandler === true;\n const renderEnabled = prefs?.enableRenderErrors !== false;\n \n // Only set hasError if error handling is enabled\n if (!globalEnabled || !renderEnabled) {\n return { hasError: false };\n }\n \n return { hasError: true };\n }\n\n resetErrorBoundary = () => {\n this.setState({ hasError: false, error: undefined, info: undefined });\n };\n\n componentDidCatch(error: any, info: any) {\n // Check if error handling is enabled\n const appConfig = injector.get<any>('APP_CONFIG');\n const prefs = appConfig?.preferences;\n const globalEnabled = prefs?.enableGlobalErrorHandler === true;\n const renderEnabled = prefs?.enableRenderErrors !== false;\n \n // Only catch if both master switch and render errors are enabled\n if (!globalEnabled || !renderEnabled) {\n return;\n }\n \n // Trigger user error callback if app instance is available\n let appInstance = this.props.app;\n \n // Fallback: try to get app instance from injector if prop is not available\n if (!appInstance) {\n appInstance = injector.get('APP_INSTANCE');\n }\n \n if (appInstance && appInstance.triggerOnError) {\n try {\n appInstance.triggerOnError(error, info, 'render');\n } catch (e) {\n console.error('Error calling triggerOnError:', e);\n }\n }\n \n if(error && appModalService.modalsOpened.length > 0){\n appModalService.modalsOpened.pop();\n (appModalService as any).showLastModal();\n }\n this.setState({ error, info });\n }\n\n render() {\n if (this.state.hasError) {\n const appConfig = injector.get<any>('APP_CONFIG');\n const showFallback = appConfig?.preferences?.showErrorFallback !== false;\n \n if (!showFallback) {\n return null;\n }\n \n return <Fallback \n error={this.state?.error} \n info={this.state?.info} \n resetErrorBoundary={this.resetErrorBoundary}\n errorType={this.props.errorType || 'render'}\n />;\n }\n\n return this.props.children;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,25 +25,81 @@
25
25
  import { Platform } from 'react-native';
26
26
  import { isWebPreviewMode } from './utils';
27
27
  import { setupAdvancedPromiseRejectionTracking } from './advanced-promise-rejection-tracker';
28
- let globalErrorHandler = null;
28
+ let globalJsErrorHandler = null;
29
29
  let promiseRejectionTracker = null;
30
30
 
31
31
  /**
32
- * Sets up global error handling for JavaScript errors and unhandled promise rejections
32
+ * Extracts meaningful error message from various error formats
33
+ * Handles WaveMaker API errors, Axios errors, Error instances, and objects
34
+ * @param error The error object/value to extract message from
35
+ * @returns Extracted error message string
36
+ */
37
+ const extractErrorMessage = error => {
38
+ var _error$details, _error$details2;
39
+ if (typeof error === 'string') return error;
40
+ if (error instanceof Error) return error.message;
41
+ if (!error || typeof error !== 'object') return String(error);
42
+
43
+ // WaveMaker API error format: details.data.errors.error[0]
44
+ if ((_error$details = error.details) !== null && _error$details !== void 0 && (_error$details = _error$details.data) !== null && _error$details !== void 0 && (_error$details = _error$details.errors) !== null && _error$details !== void 0 && _error$details.error && Array.isArray(error.details.data.errors.error)) {
45
+ const firstError = error.details.data.errors.error[0];
46
+ if (firstError && firstError.message) {
47
+ let message = firstError.message;
48
+
49
+ // Interpolate parameters {0}, {1}, etc.
50
+ if (firstError.parameters && Array.isArray(firstError.parameters)) {
51
+ firstError.parameters.forEach((param, index) => {
52
+ message = message.replace(`{${index}}`, String(param));
53
+ });
54
+ }
55
+ return message;
56
+ }
57
+ }
58
+
59
+ // Wrapped format: { error: "message" }
60
+ if (error.error && typeof error.error === 'string') {
61
+ return error.error;
62
+ }
63
+
64
+ // Standard format: { message: "..." }
65
+ if (error.message) {
66
+ return error.message;
67
+ }
68
+
69
+ // Nested details message
70
+ if ((_error$details2 = error.details) !== null && _error$details2 !== void 0 && _error$details2.message) {
71
+ return error.details.message;
72
+ }
73
+
74
+ // Last resort - stringify the object
75
+ try {
76
+ return JSON.stringify(error);
77
+ } catch {
78
+ return String(error);
79
+ }
80
+ };
81
+
82
+ /**
83
+ * Sets up global JavaScript error handling for sync JS errors and unhandled promise rejections
84
+ * Note: Render errors are handled separately by React ErrorBoundary
33
85
  * @param onError Callback function to handle errors
34
86
  * @param suppressDefaultErrorScreen Whether to suppress React Native's default error screen
87
+ * @param enableSyncErrors Whether to enable synchronous JavaScript error handling
88
+ * @param enableAsyncErrors Whether to enable asynchronous error handling (promise rejections)
35
89
  * @returns Cleanup function to remove the error handlers
36
90
  */
37
- export const setupGlobalErrorHandler = (onError, suppressDefaultErrorScreen = false) => {
91
+ export const setupGlobalJsErrorHandler = (onError, suppressDefaultErrorScreen = false, enableSyncErrors = true, enableAsyncErrors = true) => {
38
92
  let originalHandler = null;
39
93
  const ErrorUtilsRef = globalThis === null || globalThis === void 0 ? void 0 : globalThis.ErrorUtils;
40
- if (ErrorUtilsRef) {
94
+
95
+ // Only setup synchronous JavaScript error handler if enabled
96
+ if (ErrorUtilsRef && enableSyncErrors) {
41
97
  var _ErrorUtilsRef$getGlo, _ErrorUtilsRef$setGlo;
42
98
  // Store the original error handler to restore it later
43
99
  originalHandler = ErrorUtilsRef === null || ErrorUtilsRef === void 0 || (_ErrorUtilsRef$getGlo = ErrorUtilsRef.getGlobalHandler) === null || _ErrorUtilsRef$getGlo === void 0 ? void 0 : _ErrorUtilsRef$getGlo.call(ErrorUtilsRef);
44
100
 
45
- // Setup JavaScript error handler
46
- globalErrorHandler = (error, isFatal = false) => {
101
+ // Setup synchronous JavaScript error handler
102
+ globalJsErrorHandler = (error, isFatal = false) => {
47
103
  const errorInfo = __DEV__ ? `${error.stack || error.toString()}` : 'An unexpected error occurred';
48
104
 
49
105
  // Call our custom error handler
@@ -56,35 +112,53 @@ export const setupGlobalErrorHandler = (onError, suppressDefaultErrorScreen = fa
56
112
  }
57
113
  };
58
114
 
59
- // Set our custom global error handler
60
- ErrorUtilsRef === null || ErrorUtilsRef === void 0 || (_ErrorUtilsRef$setGlo = ErrorUtilsRef.setGlobalHandler) === null || _ErrorUtilsRef$setGlo === void 0 || _ErrorUtilsRef$setGlo.call(ErrorUtilsRef, globalErrorHandler);
115
+ // Set our custom global JS error handler
116
+ ErrorUtilsRef === null || ErrorUtilsRef === void 0 || (_ErrorUtilsRef$setGlo = ErrorUtilsRef.setGlobalHandler) === null || _ErrorUtilsRef$setGlo === void 0 || _ErrorUtilsRef$setGlo.call(ErrorUtilsRef, globalJsErrorHandler);
61
117
  }
62
118
 
63
- // Setup Advanced Promise Rejection Tracking
119
+ // Setup Advanced Promise Rejection Tracking only if async errors are enabled
64
120
  // This automatically detects the best method for the current JavaScript engine:
65
121
  // - Web: Uses unhandledrejection event for complete coverage
66
122
  // - Hermes: Uses HermesInternal.enablePromiseRejectionTracker for native tracking
67
123
  // - JSC: Uses promise/setimmediate/rejection-tracking module for comprehensive handling
68
- promiseRejectionTracker = setupAdvancedPromiseRejectionTracking(error => {
69
- // Convert promise rejection to our error handler format
70
- const promiseError = error instanceof Error ? error : new Error(String(error));
71
- const errorInfo = __DEV__ ? `Promise rejection: ${promiseError.stack || promiseError.toString()}` : 'An unexpected error occurred';
72
-
73
- // Call our custom error handler with promise-specific info
74
- // This ensures API call failures and async errors trigger the same error flow
75
- onError(promiseError, false, errorInfo);
76
- });
124
+ if (enableAsyncErrors) {
125
+ promiseRejectionTracker = setupAdvancedPromiseRejectionTracking(error => {
126
+ var _error$config, _error$config2, _error$details3, _error$details4;
127
+ // Skip if this is a service error that was already handled by onServiceError
128
+ // Check multiple locations as error might be wrapped
129
+ const isServiceErrorHandled = (error === null || error === void 0 ? void 0 : error.__wmServiceError) && (error === null || error === void 0 ? void 0 : error.__wmServiceErrorHandled) || (error === null || error === void 0 || (_error$config = error.config) === null || _error$config === void 0 ? void 0 : _error$config.__wmServiceError) && (error === null || error === void 0 || (_error$config2 = error.config) === null || _error$config2 === void 0 ? void 0 : _error$config2.__wmServiceErrorHandled) || (error === null || error === void 0 || (_error$details3 = error.details) === null || _error$details3 === void 0 || (_error$details3 = _error$details3.config) === null || _error$details3 === void 0 ? void 0 : _error$details3.__wmServiceError) && (error === null || error === void 0 || (_error$details4 = error.details) === null || _error$details4 === void 0 || (_error$details4 = _error$details4.config) === null || _error$details4 === void 0 ? void 0 : _error$details4.__wmServiceErrorHandled);
130
+ if (isServiceErrorHandled) {
131
+ if (__DEV__) {
132
+ console.log('[ErrorHandler] Skipping service error, already handled by onServiceError');
133
+ }
134
+ return;
135
+ }
136
+ const promiseError = error instanceof Error ? error : new Error(extractErrorMessage(error));
137
+
138
+ // Preserve original error for debugging
139
+ if (!(error instanceof Error)) {
140
+ promiseError.originalError = error;
141
+ }
142
+ const errorInfo = __DEV__ ? `Promise rejection: ${promiseError.stack || promiseError.toString()}` : 'An unexpected error occurred';
143
+
144
+ // Call our custom error handler with promise-specific info
145
+ // This ensures API call failures and async errors trigger the same error flow
146
+ onError(promiseError, false, errorInfo);
147
+ });
148
+ }
77
149
  return () => {
78
- var _ErrorUtilsRef$setGlo2;
79
150
  // Cleanup function - restores original error handling mechanisms
80
- ErrorUtilsRef === null || ErrorUtilsRef === void 0 || (_ErrorUtilsRef$setGlo2 = ErrorUtilsRef.setGlobalHandler) === null || _ErrorUtilsRef$setGlo2 === void 0 || _ErrorUtilsRef$setGlo2.call(ErrorUtilsRef, originalHandler);
151
+ if (enableSyncErrors && ErrorUtilsRef) {
152
+ var _ErrorUtilsRef$setGlo2;
153
+ ErrorUtilsRef === null || ErrorUtilsRef === void 0 || (_ErrorUtilsRef$setGlo2 = ErrorUtilsRef.setGlobalHandler) === null || _ErrorUtilsRef$setGlo2 === void 0 || _ErrorUtilsRef$setGlo2.call(ErrorUtilsRef, originalHandler);
154
+ }
81
155
 
82
156
  // Cleanup advanced promise rejection tracking
83
- if (promiseRejectionTracker) {
157
+ if (enableAsyncErrors && promiseRejectionTracker) {
84
158
  promiseRejectionTracker.cleanup();
85
159
  promiseRejectionTracker = null;
86
160
  }
87
- globalErrorHandler = null;
161
+ globalJsErrorHandler = null;
88
162
  };
89
163
  };
90
164
 
@@ -97,7 +171,7 @@ export const getErrorHandlingInfo = () => {
97
171
  platform: Platform.OS,
98
172
  isWebPreview: isWebPreviewMode(),
99
173
  hasPromiseTracking: promiseRejectionTracker !== null,
100
- hasJavaScriptHandler: globalErrorHandler !== null
174
+ hasJavaScriptHandler: globalJsErrorHandler !== null
101
175
  };
102
176
  };
103
177
  //# sourceMappingURL=global-error-handler.service.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","isWebPreviewMode","setupAdvancedPromiseRejectionTracking","globalErrorHandler","promiseRejectionTracker","setupGlobalErrorHandler","onError","suppressDefaultErrorScreen","originalHandler","ErrorUtilsRef","globalThis","ErrorUtils","_ErrorUtilsRef$getGlo","_ErrorUtilsRef$setGlo","getGlobalHandler","call","error","isFatal","errorInfo","__DEV__","stack","toString","setGlobalHandler","promiseError","Error","String","_ErrorUtilsRef$setGlo2","cleanup","getErrorHandlingInfo","platform","OS","isWebPreview","hasPromiseTracking","hasJavaScriptHandler"],"sources":["global-error-handler.service.ts"],"sourcesContent":["/**\n * Global Error Handler Service for WaveMaker Runtime\n *\n * This service provides comprehensive error handling for React Native applications:\n * 1. JavaScript Error Handling: Uses ErrorUtils.setGlobalHandler for sync errors\n * 2. Promise Rejection Tracking: Multi-engine approach for unhandled promise rejections\n * - Web: Uses browser's 'unhandledrejection' event\n * - Hermes: Uses HermesInternal.enablePromiseRejectionTracker\n * - JSC: Uses React Native's 'promise/setimmediate/rejection-tracking' module\n *\n * Key Features:\n * - Catches ALL API call failures (fetch, axios, any HTTP library)\n * - Handles async function errors and manual Promise.reject calls\n * - Automatic engine detection and optimal method selection\n * - Production-ready with proper cleanup mechanisms\n * - Configurable suppression of React Native's default error screens\n *\n * Research Background:\n * This implementation was developed after extensive research into React Native's\n * error handling mechanisms across different JavaScript engines. It addresses\n * the common problem where API call failures and async errors are not caught\n * by standard error boundaries, providing a unified solution for all error types.\n */\n\nimport { Platform } from 'react-native';\nimport { isWebPreviewMode } from './utils';\nimport {\n setupAdvancedPromiseRejectionTracking,\n AdvancedPromiseRejectionTracker,\n} from './advanced-promise-rejection-tracker';\n\nexport interface GlobalErrorState {\n error: Error;\n errorInfo: string;\n errorType: 'javascript';\n isFatal?: boolean;\n}\n\nexport type GlobalErrorCallback = (\n error: Error,\n isFatal: boolean,\n errorInfo: string\n) => void;\n\nlet globalErrorHandler: ((error: any, isFatal?: boolean) => void) | null = null;\nlet promiseRejectionTracker: AdvancedPromiseRejectionTracker | null = null;\n\n/**\n * Sets up global error handling for JavaScript errors and unhandled promise rejections\n * @param onError Callback function to handle errors\n * @param suppressDefaultErrorScreen Whether to suppress React Native's default error screen\n * @returns Cleanup function to remove the error handlers\n */\nexport const setupGlobalErrorHandler = (\n onError: GlobalErrorCallback,\n suppressDefaultErrorScreen: boolean = false\n): (() => void) => {\n let originalHandler: any = null;\n const ErrorUtilsRef = (globalThis as any)?.ErrorUtils;\n if (ErrorUtilsRef) {\n // Store the original error handler to restore it later\n originalHandler = ErrorUtilsRef?.getGlobalHandler?.();\n\n // Setup JavaScript error handler\n globalErrorHandler = (error: any, isFatal: boolean = false) => {\n const errorInfo = __DEV__\n ? `${error.stack || error.toString()}`\n : 'An unexpected error occurred';\n\n // Call our custom error handler\n onError(error, isFatal, errorInfo);\n\n // Call the original handler for development/debugging if not suppressed\n // This controls whether React Native's default red error screen is shown\n if (originalHandler && __DEV__ && !suppressDefaultErrorScreen) {\n originalHandler(error, isFatal);\n }\n };\n\n // Set our custom global error handler\n ErrorUtilsRef?.setGlobalHandler?.(globalErrorHandler);\n }\n\n // Setup Advanced Promise Rejection Tracking\n // This automatically detects the best method for the current JavaScript engine:\n // - Web: Uses unhandledrejection event for complete coverage\n // - Hermes: Uses HermesInternal.enablePromiseRejectionTracker for native tracking\n // - JSC: Uses promise/setimmediate/rejection-tracking module for comprehensive handling\n promiseRejectionTracker = setupAdvancedPromiseRejectionTracking(\n (error: any) => {\n // Convert promise rejection to our error handler format\n const promiseError =\n error instanceof Error ? error : new Error(String(error));\n const errorInfo = __DEV__\n ? `Promise rejection: ${promiseError.stack || promiseError.toString()}`\n : 'An unexpected error occurred';\n\n // Call our custom error handler with promise-specific info\n // This ensures API call failures and async errors trigger the same error flow\n onError(promiseError, false, errorInfo);\n }\n );\n\n return () => {\n // Cleanup function - restores original error handling mechanisms\n ErrorUtilsRef?.setGlobalHandler?.(originalHandler);\n\n // Cleanup advanced promise rejection tracking\n if (promiseRejectionTracker) {\n promiseRejectionTracker.cleanup();\n promiseRejectionTracker = null;\n }\n\n globalErrorHandler = null;\n };\n};\n\n/**\n * Get current error handling configuration and capabilities\n * Useful for debugging and monitoring the error handling setup\n */\nexport const getErrorHandlingInfo = () => {\n return {\n platform: Platform.OS,\n isWebPreview: isWebPreviewMode(),\n hasPromiseTracking: promiseRejectionTracker !== null,\n hasJavaScriptHandler: globalErrorHandler !== null,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","isWebPreviewMode","setupAdvancedPromiseRejectionTracking","globalJsErrorHandler","promiseRejectionTracker","extractErrorMessage","error","_error$details","_error$details2","Error","message","String","details","data","errors","Array","isArray","firstError","parameters","forEach","param","index","replace","JSON","stringify","setupGlobalJsErrorHandler","onError","suppressDefaultErrorScreen","enableSyncErrors","enableAsyncErrors","originalHandler","ErrorUtilsRef","globalThis","ErrorUtils","_ErrorUtilsRef$getGlo","_ErrorUtilsRef$setGlo","getGlobalHandler","call","isFatal","errorInfo","__DEV__","stack","toString","setGlobalHandler","_error$config","_error$config2","_error$details3","_error$details4","isServiceErrorHandled","__wmServiceError","__wmServiceErrorHandled","config","console","log","promiseError","originalError","_ErrorUtilsRef$setGlo2","cleanup","getErrorHandlingInfo","platform","OS","isWebPreview","hasPromiseTracking","hasJavaScriptHandler"],"sources":["global-error-handler.service.ts"],"sourcesContent":["/**\n * Global Error Handler Service for WaveMaker Runtime\n *\n * This service provides comprehensive error handling for React Native applications:\n * 1. JavaScript Error Handling: Uses ErrorUtils.setGlobalHandler for sync errors\n * 2. Promise Rejection Tracking: Multi-engine approach for unhandled promise rejections\n * - Web: Uses browser's 'unhandledrejection' event\n * - Hermes: Uses HermesInternal.enablePromiseRejectionTracker\n * - JSC: Uses React Native's 'promise/setimmediate/rejection-tracking' module\n *\n * Key Features:\n * - Catches ALL API call failures (fetch, axios, any HTTP library)\n * - Handles async function errors and manual Promise.reject calls\n * - Automatic engine detection and optimal method selection\n * - Production-ready with proper cleanup mechanisms\n * - Configurable suppression of React Native's default error screens\n *\n * Research Background:\n * This implementation was developed after extensive research into React Native's\n * error handling mechanisms across different JavaScript engines. It addresses\n * the common problem where API call failures and async errors are not caught\n * by standard error boundaries, providing a unified solution for all error types.\n */\n\nimport { Platform } from 'react-native';\nimport { isWebPreviewMode } from './utils';\nimport {\n setupAdvancedPromiseRejectionTracking,\n AdvancedPromiseRejectionTracker,\n} from './advanced-promise-rejection-tracker';\n\nexport interface GlobalErrorState {\n error: Error;\n errorInfo: string;\n errorType: 'javascript';\n isFatal?: boolean;\n}\n\nexport type GlobalErrorCallback = (\n error: Error,\n isFatal: boolean,\n errorInfo: string\n) => void;\n\nlet globalJsErrorHandler: ((error: any, isFatal?: boolean) => void) | null = null;\nlet promiseRejectionTracker: AdvancedPromiseRejectionTracker | null = null;\n\n/**\n * Extracts meaningful error message from various error formats\n * Handles WaveMaker API errors, Axios errors, Error instances, and objects\n * @param error The error object/value to extract message from\n * @returns Extracted error message string\n */\nconst extractErrorMessage = (error: any): string => {\n if (typeof error === 'string') return error;\n \n if (error instanceof Error) return error.message;\n \n if (!error || typeof error !== 'object') return String(error);\n \n // WaveMaker API error format: details.data.errors.error[0]\n if (error.details?.data?.errors?.error && Array.isArray(error.details.data.errors.error)) {\n const firstError = error.details.data.errors.error[0];\n if (firstError && firstError.message) {\n let message = firstError.message;\n \n // Interpolate parameters {0}, {1}, etc.\n if (firstError.parameters && Array.isArray(firstError.parameters)) {\n firstError.parameters.forEach((param: any, index: number) => {\n message = message.replace(`{${index}}`, String(param));\n });\n }\n \n return message;\n }\n }\n \n // Wrapped format: { error: \"message\" }\n if (error.error && typeof error.error === 'string') {\n return error.error;\n }\n \n // Standard format: { message: \"...\" }\n if (error.message) {\n return error.message;\n }\n \n // Nested details message\n if (error.details?.message) {\n return error.details.message;\n }\n \n // Last resort - stringify the object\n try {\n return JSON.stringify(error);\n } catch {\n return String(error);\n }\n};\n\n/**\n * Sets up global JavaScript error handling for sync JS errors and unhandled promise rejections\n * Note: Render errors are handled separately by React ErrorBoundary\n * @param onError Callback function to handle errors\n * @param suppressDefaultErrorScreen Whether to suppress React Native's default error screen\n * @param enableSyncErrors Whether to enable synchronous JavaScript error handling\n * @param enableAsyncErrors Whether to enable asynchronous error handling (promise rejections)\n * @returns Cleanup function to remove the error handlers\n */\nexport const setupGlobalJsErrorHandler = (\n onError: GlobalErrorCallback,\n suppressDefaultErrorScreen: boolean = false,\n enableSyncErrors: boolean = true,\n enableAsyncErrors: boolean = true\n): (() => void) => {\n let originalHandler: any = null;\n const ErrorUtilsRef = (globalThis as any)?.ErrorUtils;\n \n // Only setup synchronous JavaScript error handler if enabled\n if (ErrorUtilsRef && enableSyncErrors) {\n // Store the original error handler to restore it later\n originalHandler = ErrorUtilsRef?.getGlobalHandler?.();\n\n // Setup synchronous JavaScript error handler\n globalJsErrorHandler = (error: any, isFatal: boolean = false) => {\n const errorInfo = __DEV__\n ? `${error.stack || error.toString()}`\n : 'An unexpected error occurred';\n\n // Call our custom error handler\n onError(error, isFatal, errorInfo);\n\n // Call the original handler for development/debugging if not suppressed\n // This controls whether React Native's default red error screen is shown\n if (originalHandler && __DEV__ && !suppressDefaultErrorScreen) {\n originalHandler(error, isFatal);\n }\n };\n\n // Set our custom global JS error handler\n ErrorUtilsRef?.setGlobalHandler?.(globalJsErrorHandler);\n }\n\n // Setup Advanced Promise Rejection Tracking only if async errors are enabled\n // This automatically detects the best method for the current JavaScript engine:\n // - Web: Uses unhandledrejection event for complete coverage\n // - Hermes: Uses HermesInternal.enablePromiseRejectionTracker for native tracking\n // - JSC: Uses promise/setimmediate/rejection-tracking module for comprehensive handling\n if (enableAsyncErrors) {\n promiseRejectionTracker = setupAdvancedPromiseRejectionTracking(\n (error: any) => {\n // Skip if this is a service error that was already handled by onServiceError\n // Check multiple locations as error might be wrapped\n const isServiceErrorHandled = \n (error?.__wmServiceError && error?.__wmServiceErrorHandled) ||\n (error?.config?.__wmServiceError && error?.config?.__wmServiceErrorHandled) ||\n (error?.details?.config?.__wmServiceError && error?.details?.config?.__wmServiceErrorHandled);\n \n if (isServiceErrorHandled) {\n if (__DEV__) {\n console.log('[ErrorHandler] Skipping service error, already handled by onServiceError');\n }\n return;\n }\n const promiseError = error instanceof Error ? error : new Error(extractErrorMessage(error));\n\n // Preserve original error for debugging\n if (!(error instanceof Error)) {\n (promiseError as any).originalError = error;\n }\n \n const errorInfo = __DEV__\n ? `Promise rejection: ${promiseError.stack || promiseError.toString()}`\n : 'An unexpected error occurred';\n\n // Call our custom error handler with promise-specific info\n // This ensures API call failures and async errors trigger the same error flow\n onError(promiseError, false, errorInfo);\n }\n );\n }\n\n return () => {\n // Cleanup function - restores original error handling mechanisms\n if (enableSyncErrors && ErrorUtilsRef) {\n ErrorUtilsRef?.setGlobalHandler?.(originalHandler);\n }\n\n // Cleanup advanced promise rejection tracking\n if (enableAsyncErrors && promiseRejectionTracker) {\n promiseRejectionTracker.cleanup();\n promiseRejectionTracker = null;\n }\n\n globalJsErrorHandler = null;\n };\n};\n\n/**\n * Get current error handling configuration and capabilities\n * Useful for debugging and monitoring the error handling setup\n */\nexport const getErrorHandlingInfo = () => {\n return {\n platform: Platform.OS,\n isWebPreview: isWebPreviewMode(),\n hasPromiseTracking: promiseRejectionTracker !== null,\n hasJavaScriptHandler: globalJsErrorHandler !== null,\n };\n};\n"],"mappings":"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","ignoreList":[]}