@wavemaker/app-rn-runtime 11.14.1-16.6417 → 11.14.1-16.6418
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/container/wizard/wizard.component.js +1 -1
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/dialogs/dialogcontent/dialogcontent.component.js +2 -1
- package/components/dialogs/dialogcontent/dialogcontent.component.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/advanced-promise-rejection-tracker.js +1 -2
- package/core/advanced-promise-rejection-tracker.js.map +1 -1
- package/core/base.component.js +1 -1
- package/core/base.component.js.map +1 -1
- package/core/error-boundary.component.js +29 -1
- package/core/error-boundary.component.js.map +1 -1
- package/core/global-error-handler.service.js +97 -23
- package/core/global-error-handler.service.js.map +1 -1
- package/npm-shrinkwrap.json +106 -131
- package/package-lock.json +106 -131
- package/package.json +2 -2
- package/runtime/App.js +85 -33
- package/runtime/App.js.map +1 -1
|
@@ -454,7 +454,7 @@ export default class WmWizard extends BaseComponent {
|
|
|
454
454
|
flexDirection: props.actionsalignment === 'right' ? 'row-reverse' : 'row'
|
|
455
455
|
}]
|
|
456
456
|
}, this.state.currentStep === this.lastStepIndex() && activeStep.state.props.showdone && /*#__PURE__*/React.createElement(WmButton, {
|
|
457
|
-
iconclass: props.donebtniconclass,
|
|
457
|
+
iconclass: this.props.donebtniconclass,
|
|
458
458
|
styles: merge({}, this.styles.wizardActions, this.theme.getStyle('btn-default'), this.styles.doneButton),
|
|
459
459
|
id: this.getTestId('donebtn'),
|
|
460
460
|
caption: props.donebtnlabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","View","TouchableOpacity","Platform","TouchableWithoutFeedback","isArray","merge","BaseComponent","BaseComponentState","WmWizardProps","DEFAULT_CLASS","WmButton","WmIcon","WmAnchor","WmProgressCircle","WmPopover","WmLabel","createSkeleton","WmWizardState","constructor","args","_defineProperty","WmWizard","props","onComponentInit","c","popOverRef","updateDefaultStep","steps","defaultStepIndex","defaultstep","map","item","index","name","updateCurrentStep","addWizardStep","step","forceUpdate","componentDidMount","componentDidUpdate","prevProps","prevState","snapshot","showActiveStep","_this$steps$this$stat","state","currentStep","setActive","isDone","_this$steps$this$stat2","_this$steps$nextStep","lastStep","nextStep","setInActive","show","i","length","updateState","invokeEventCallback","proxy","getStepStyle","style","styles","push","doneStep","activeStep","renderMenuPopover","menuDataset","getmenudataexpression","Labels","title","createElement","id","getTestId","popover","contentanimation","caption","popoverheight","height","popoverwidth","width","listener","iconclass","popovericonclass","iconposition","type","currentMenuItem","key","onPress","hide","stepMenu","activeStepMenu","stepMenuActiveIcon","stepMenuIcon","stepMenuActiveLabel","stepMenuLabel","renderProgressCircleHeader","progressTitle","progresstitle","headerWrapper","stepWrapper","flex","alignItems","justifyContent","flexDirection","minvalue","maxvalue","datavalue","captionplacement","progresstype","subtitle","progressCircle","stepTitleWrapper","_extends","stepTitle","getTestPropsForLabel","stepSubTitle","stepConnectorWidth","isFirstOrLastConnector","stepIndex","lastStepIndex","firstStepIndex","stepConnectorHeight","getDotStyle","stepDot","activeStepDot","renderDot","getConnectorPosition","_this$styles","stepStyles","cssWidth","cssHeight","parseStyleValue","value","numValue","parseFloat","isNaN","result","top","left","renderWizardHeader","_this$state$props$cla","_this$state$props$cla2","_this$state$props$cla3","isLastStep","isFirstStep","isActiveStep","isNumberTextLayout","classname","isVertical","includes","isDotted","isStepperBasic","wizardStepCountVisibility","paddingRight","paddingLeft","bind","disabled","headernavigation","accessibilityRole","_showSkeleton","getTestPropsForAction","Fragment","stepIcon","icon","color","activeStepCounter","stepCounter","showskeleton","root","numberOfSteps","numberTextStepConnector","getTotalVisibleSteps","stepConnector","OS","isRTL","prev","skipdefaultprevious","invokePrevCB","next","eventName","skipdefaultnext","invokeSkipCB","invokeNextCB","done","$event","skipdefaultdone","cancel","skipdefaultcancel","skip","skipdefaultskip","getBackground","_background","firstStep","renderSkeleton","showskeletonchildren","_this$props","skeletonStyles","skeleton","text","theme","opacity","children","renderWidget","_this$state$props$cla4","isSkippable","enableskip","isProgressCircleHeader","onLayout","event","handleLayout","wizardHeader","wizardBody","wizardFooter","actionsalignment","showdone","donebtniconclass","wizardActions","getStyle","doneButton","donebtnlabel","onTap","disabledone","shownext","nextButton","nextbtnlabel","disablenext","showprev","prevButton","previousbtnlabel","disableprev","cancelable","cancelbtnlabel","cancelButton","skipLink"],"sources":["wizard.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View, TouchableOpacity, Platform, TouchableWithoutFeedback, DimensionValue } from 'react-native';\nimport { isArray, merge } from 'lodash';\nimport { BaseComponent, BaseComponentState, LifecycleListener } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmWizardProps from './wizard.props';\nimport { DEFAULT_CLASS, WmWizardStyles } from './wizard.styles';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmAnchor from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.component';\nimport WmWizardstep from './wizardstep/wizardstep.component';\nimport WmProgressCircle from '@wavemaker/app-rn-runtime/components/basic/progress-circle/progress-circle.component';\nimport WmPopover from '@wavemaker/app-rn-runtime/components/navigation/popover/popover.component';\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmWizardState extends BaseComponentState<WmWizardProps> {\n currentStep: number = 0;\n isDone: boolean = false;\n}\n\nexport default class WmWizard extends BaseComponent<WmWizardProps, WmWizardState, WmWizardStyles> {\n private numberOfSteps: number = null as any;\n private steps = [] as WmWizardstep[];\n private popOverRef: WmPopover = null as any;\n\n private listener: LifecycleListener = {\n onComponentInit: (c) => {\n if (c instanceof WmPopover) {\n this.popOverRef = c;\n }\n }\n };\n\n constructor(props: WmWizardProps) {\n super(props, DEFAULT_CLASS, new WmWizardProps());\n }\n\n updateDefaultStep() {\n const steps = this.steps;\n const props = this.props;\n let defaultStepIndex = 0;\n if (isArray(steps) && props.defaultstep) {\n steps && steps.map((item: any, index: any) => {\n if (props.defaultstep === item.props.name) {\n defaultStepIndex = index;\n }\n })\n }\n this.updateCurrentStep(defaultStepIndex);\n }\n\n addWizardStep(step: WmWizardstep) {\n this.steps[step.props.index] = step;\n this.forceUpdate();\n }\n\n componentDidMount() {\n super.componentDidMount();\n if (this.props.defaultstep && this.props.defaultstep != 'none') {\n this.updateDefaultStep();\n }\n }\n\n componentDidUpdate(prevProps: Readonly<WmWizardProps>, prevState: Readonly<WmWizardState>, snapshot?: any): void {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n // * when a variable is bind to default step\n if (this.props.defaultstep && prevProps.defaultstep !== this.props.defaultstep) {\n this.updateDefaultStep();\n }\n }\n\n showActiveStep() {\n this.steps[this.state.currentStep]?.setActive();\n }\n\n updateCurrentStep(index: number, isDone = false) {\n const lastStep = this.state.currentStep;\n let nextStep = index\n this.steps[this.state.currentStep]?.setInActive();\n\n // check for next available step if next or prev steps show prop is false\n if(this.steps[nextStep]?.state && !this.steps[nextStep].state.props.show){\n if(lastStep < nextStep){\n for(let i = nextStep + 1; i < this.steps.length; i++){\n if(this.steps[i].state.props.show) {\n nextStep = i;\n break;\n }\n }\n }else if(lastStep > nextStep) {\n for(let i = nextStep - 1; i >= 0; i--){\n if(this.steps[i].state.props.show) {\n nextStep = i;\n break;\n }\n }\n }\n }\n\n this.updateState({\n currentStep: nextStep,\n isDone: isDone\n } as WmWizardState, () => {\n this.showActiveStep();\n if (lastStep !== nextStep) {\n this.invokeEventCallback('onChange', [null, this.proxy, nextStep + 1, lastStep + 1]);\n }\n });\n this.forceUpdate();\n }\n\n getStepStyle(index: number) {\n const style = [this.styles.step];\n if (this.state.isDone || index < this.state.currentStep) {\n style.push(this.styles.doneStep);\n } else if (this.state.currentStep === index) {\n style.push(this.styles.activeStep);\n }\n return style;\n }\n\n renderMenuPopover(){\n const menuDataset = this.props.getmenudataexpression || ((item: any, index: number) => '') ;\n const Labels = this.steps.map((step: WmWizardstep) => step.state.props.title);\n return (\n <WmPopover\n id={this.getTestId('menu')}\n styles={this.styles.popover}\n contentanimation={'slideInDown'}\n caption={''}\n popoverheight={this.styles.popover.popover.height as string | number | undefined || null}\n popoverwidth={this.styles.popover.popover.width as string | number | undefined || null}\n listener={this.listener}\n iconclass={this.props.popovericonclass || 'fa fa-caret-down'}\n iconposition=\"right\"\n type='dropdown'>\n <View style={this.styles.popover.popover}>\n {Labels.map((item: any, index: number) => {\n const currentMenuItem = index==this.state.currentStep;\n const caption = menuDataset({\"count\":this.steps.length}, index);\n return (\n <TouchableWithoutFeedback key={'wizard_menu_item_'+index} onPress={()=>{this.popOverRef.hide();}}>\n <View style={[this.styles.stepMenu, currentMenuItem?this.styles.activeStepMenu:{}]}>\n <WmIcon id={this.getTestId('icon')} caption={caption} iconclass={currentMenuItem? \"wi wi-radio-button-checked\" : 'wi wi-radio-button-unchecked'} styles={currentMenuItem?this.styles.stepMenuActiveIcon:this.styles.stepMenuIcon}/>\n <WmLabel caption={item} styles={currentMenuItem?this.styles.stepMenuActiveLabel:this.styles.stepMenuLabel}/>\n </View>\n </TouchableWithoutFeedback>\n )})}\n </View>\n </WmPopover>\n );\n }\n\n renderProgressCircleHeader(item: any, index: number) {\n const progressTitle = this.props.progresstitle || (index + 1 + '/' + this.steps.length);\n return (\n <View style={[this.styles.headerWrapper]} key={index + 1}>\n <View style={this.styles.stepWrapper}>\n <View style={{ flex: 1, alignItems: 'flex-start', justifyContent: 'center', flexDirection:'row' }}>\n <WmProgressCircle id={this.getTestId('progress')} minvalue={0} maxvalue={this.steps.length} datavalue={index + 1} captionplacement={'inside'} type={this.props.progresstype} title={progressTitle} subtitle={''} styles={this.styles.progressCircle}/>\n </View>\n <View style={this.styles.stepTitleWrapper}>\n <Text style={this.styles.stepTitle} {...this.getTestPropsForLabel('step' + (index + 1) + '_title')}>\n {item.props.title || 'Step Title'}</Text>\n <Text style={this.styles.stepSubTitle} {...this.getTestPropsForLabel('step' + (index + 1)+ '_subtitle')}>\n {item.props.subtitle || 'Step Sub Title'}</Text>\n </View>\n <View style={{ flexDirection: 'row', alignItems: 'flex-end', justifyContent: 'flex-end', flex: 1 }}>\n {this.renderMenuPopover()}\n </View>\n </View>\n </View>\n );\n }\n\n stepConnectorWidth(isFirstOrLastConnector: boolean, stepIndex: number): DimensionValue {\n if(stepIndex === this.lastStepIndex() || stepIndex === this.firstStepIndex()){\n return '50%';\n }\n return isFirstOrLastConnector ? '50%' : '100%';\n }\n\n stepConnectorHeight(isFirstOrLastConnector: boolean, stepIndex: number): DimensionValue {\n if (stepIndex === this.lastStepIndex() || stepIndex === this.firstStepIndex()) {\n return '50%';\n }\n return isFirstOrLastConnector ? '50%' : '100%';\n }\n\n getDotStyle(index: number) {\n const style = [this.styles.stepDot];\n if (this.state.currentStep === index) {\n style.push(this.styles.activeStepDot);\n }\n return style;\n }\n\n renderDot(index: number) {\n return (\n <View style={this.getDotStyle(index)}></View>\n );\n }\n\n getConnectorPosition(): { top?: number, left?: number } {\n const stepStyles = this.styles?.step;\n if (!stepStyles) return {};\n const cssWidth = stepStyles.width;\n const cssHeight = stepStyles.height;\n const parseStyleValue = (value: any): number | null => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const numValue = parseFloat(value);\n return isNaN(numValue) ? null : numValue;\n }\n return null;\n };\n const width = parseStyleValue(cssWidth);\n const height = parseStyleValue(cssHeight);\n const result: { top?: number, left?: number } = {};\n // Calculate connector positions based on actual circle dimensions\n if (height !== null) {\n result.top = (height / 2) - 1;\n }\n if (width !== null) {\n result.left = (width / 2) - 1;\n }\n return result;\n }\n\n renderWizardHeader(item: any, index: number) {\n const isLastStep = index === this.lastStepIndex();\n const isFirstStep = index === this.firstStepIndex();\n const isActiveStep = index === this.state.currentStep;\n const isNumberTextLayout = this.state.props.classname === 'number-text-inline';\n const isVertical = this.state.props.classname?.includes('vertical');\n const isDotted = this.state.props.classname?.includes('dottedstepper');\n const isStepperBasic = this.state.props.classname?.includes('stepper-basic');\n const wizardStepCountVisibility = (index >= this.state.currentStep && !this.state.isDone) || !this.state.currentStep\n return item.state.props.show !== false ? (\n <View \n style={[\n this.styles.headerWrapper, isNumberTextLayout ?\n {paddingRight: isActiveStep ? 0 : 5, paddingLeft: index === this.state.currentStep + 1 ? 0 : 5}: {}\n ]} \n key={index+1}\n >\n <TouchableOpacity \n style={this.styles.stepWrapper}\n onPress={this.updateCurrentStep.bind(this, index, false)} disabled={index >= this.state.currentStep || !this.state.props.headernavigation}\n accessibilityRole='header'\n >\n {!this._showSkeleton ? isStepperBasic ? (\n <View style={this.getStepStyle(index)} {...this.getTestPropsForAction('step'+index)}/>\n ) : <View style={this.getStepStyle(index)} {...this.getTestPropsForAction('step'+index)}>\n {(isDotted) ? (\n <>\n {(index < this.state.currentStep || this.state.isDone) ? (\n <WmIcon \n id={this.getTestId('status')} \n styles={isActiveStep ? merge({}, this.styles.stepIcon, {icon: {color: this.styles.activeStep.color}}) : this.styles.stepIcon}\n iconclass={item.state.props.iconclass || 'wm-sl-l sl-check'}\n ></WmIcon>\n ) : (\n this.renderDot(index)\n )}\n </>\n ) : (\n <>\n { wizardStepCountVisibility &&\n <Text \n style={\n isActiveStep ? [this.styles.activeStep, this.styles.activeStepCounter] : this.styles.stepCounter} \n {...this.getTestPropsForLabel('step' + (index + 1) + '_indicator')\n }\n >\n {index+1}\n </Text>\n }\n {(index < this.state.currentStep || this.state.isDone) &&\n <WmIcon \n id={this.getTestId('status')} \n styles={isActiveStep ? merge({}, this.styles.stepIcon, {icon: {color: this.styles.activeStep.color}}) : this.styles.stepIcon}\n iconclass={item.state.props.iconclass || 'wm-sl-l sl-check'}\n ></WmIcon>\n }\n </>\n )}\n </View> : \n <WmLabel showskeleton={true} styles={{root: {...this.getStepStyle(index)[0]}}}/>\n }\n {(isActiveStep) &&\n <View style={this.styles.stepTitleWrapper}>\n <Text style={this.styles.stepTitle} {...this.getTestPropsForLabel('step' + (index + 1) + '_title')}>\n {item.state.props.title || 'Step Title'}\n </Text> \n <Text style={this.styles.stepSubTitle} {...this.getTestPropsForLabel('step' + (index + 1) + '_subtitle')}>\n {item.state.props.subtitle}\n </Text> \n </View>\n }\n {!isStepperBasic && this.numberOfSteps > 1 && isActiveStep &&\n <View style={[this.styles.numberTextStepConnector, {width: isLastStep ? 0 : 50}]}></View>}\n </TouchableOpacity>\n {!isStepperBasic && this.getTotalVisibleSteps() > 1 &&\n item.state.props.show && !isVertical &&\n <View \n style={[\n this.styles.stepConnector, \n {\n width: this.stepConnectorWidth(isFirstStep || isLastStep, index),\n left: Platform.OS === \"web\" ?\n (!this.isRTL && isFirstStep) || (this.isRTL && isLastStep) ? \n '50%': '0%': isFirstStep ? '50%': '0%'\n },\n this.getConnectorPosition().top ? {top: this.getConnectorPosition().top} : {}\n ]}\n ></View>\n }\n {!isStepperBasic && this.getTotalVisibleSteps() > 1 &&\n item.state.props.show && isVertical &&\n <View \n style={[\n this.styles.stepConnector, \n {\n height: this.stepConnectorHeight(isFirstStep || isLastStep, index),\n top: isFirstStep ? '50%' : '0%',\n },\n this.getConnectorPosition().left ? {left: this.getConnectorPosition().left} : {}\n ]}\n ></View>\n }\n </View>\n ) : null;\n }\n\n prev() {\n if(this.state.props.skipdefaultprevious) {\n this.invokeEventCallback('onPrev', ['prev',this.proxy]);\n return;\n }\n \n const index = this.state.currentStep;\n if (index <= 0) {\n return;\n }\n const currentStep = this.steps[index];\n this.invokeEventCallback('onPrev', ['prev',this.proxy]);\n if(currentStep.invokePrevCB(index) == false){\n return;\n }\n this.updateCurrentStep(index - 1);\n }\n\n next(eventName?: string) {\n if( eventName !== 'skip' && this.state.props.skipdefaultnext) {\n this.invokeEventCallback('onNext', ['next',this.proxy]);\n return;\n }\n\n const index = this.state.currentStep;\n if (index >= this.steps.length - 1) {\n return;\n }\n const currentStep = this.steps[index];\n if (eventName === 'skip') {\n this.invokeEventCallback('onSkip', ['skip',this.proxy]);\n currentStep.invokeSkipCB(index);\n } else {\n this.invokeEventCallback('onNext', ['next',this.proxy]);\n if (currentStep.invokeNextCB(index) == false) {\n return;\n } \n } \n this.updateCurrentStep(index + 1);\n }\n\n done($event: any) {\n if(this.state.props.skipdefaultdone) {\n this.invokeEventCallback('onDone', ['done', this.proxy]);\n return;\n }\n if (this.state.currentStep !== this.lastStepIndex()) {\n return;\n }\n this.updateState({\n isDone: true\n } as WmWizardState);\n this.invokeEventCallback('onDone', ['done', this.proxy]);\n }\n\n cancel() {\n this.invokeEventCallback('onCancel', ['cancel', this.proxy]);\n if(this.state.props.skipdefaultcancel) {\n return;\n }\n }\n\n skip() {\n if(this.state.props.skipdefaultskip) {\n this.invokeEventCallback('onSkip', ['skip', this.proxy]);\n return;\n }\n this.next('skip');\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n\n lastStepIndex(): number {\n let lastStep = 0;\n for(let i = 0; i < this.steps.length; i++) {\n if(this.steps[i].state.props.show) {\n lastStep = i;\n }\n }\n return lastStep;\n }\n\n firstStepIndex(): number {\n let firstStep = -1;\n for(let i = 0; i < this.steps.length; i++) {\n if(this.steps[i].state.props.show) {\n if (firstStep === -1) {\n firstStep = i;\n }\n }\n }\n return firstStep;\n }\n\n getTotalVisibleSteps(): number {\n let lastStep = 0;\n for(let i = 0; i < this.steps.length; i++) {\n if(this.steps[i].state.props.show) {\n lastStep++;\n }\n }\n return lastStep;\n }\n \n public renderSkeleton(props: WmWizardProps): React.ReactNode {\n if(!props.showskeletonchildren) {\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 {props.children}\n </View>))\n }\n return null;\n }\n\n\n renderWidget(props: WmWizardProps) {\n this.numberOfSteps = this.steps.length;\n const activeStep = this.steps[this.state.currentStep];\n const isSkippable = activeStep && activeStep.state.props.enableskip;\n const isProgressCircleHeader = this.state.props.classname?.includes('progress-circle-header');\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root\n return (\n <View \n style={styles}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this.getBackground()}\n <View style={this.styles.wizardHeader}>\n {activeStep && isProgressCircleHeader ? (this.renderProgressCircleHeader(activeStep, this.state.currentStep)) : (this.steps ? this.steps.map((step, i) => this.renderWizardHeader(step, i)) : null)}\n </View>\n <View style={this.styles.wizardBody}>\n {props.children}\n </View>\n <View style={[this.styles.wizardFooter,\n {flexDirection: props.actionsalignment === 'right' ? 'row-reverse': 'row'}]}>\n {(this.state.currentStep) === this.lastStepIndex() && activeStep.state.props.showdone &&\n <WmButton iconclass={props.donebtniconclass} styles={merge({}, this.styles.wizardActions, this.theme.getStyle('btn-default'), this.styles.doneButton)}\n id = {this.getTestId('donebtn')} caption={props.donebtnlabel} onTap={this.done.bind(this)} disabled={activeStep.state.props.disabledone}></WmButton>\n }\n {(this.state.currentStep) < this.lastStepIndex() && activeStep.state.props.shownext &&\n <WmButton iconclass={'wi wi-chevron-right'} styles={merge({}, this.styles.wizardActions, this.theme.getStyle('btn-default'), this.styles.nextButton)}\n id = {this.getTestId('nextbtn')}\n iconposition={'right'} caption={props.nextbtnlabel} onTap={this.next.bind(this)} disabled={activeStep.state.props.disablenext}></WmButton>\n }\n {this.state.currentStep > 0 && activeStep.state.props.showprev &&\n <WmButton iconclass={'wi wi-chevron-left'} styles={merge({}, this.theme.getStyle('btn-default'), this.styles.wizardActions, this.styles.prevButton)} caption={props.previousbtnlabel}\n id = {this.getTestId('prevbtn')}\n onTap={this.prev.bind(this)} disabled={activeStep.state.props.disableprev}></WmButton>\n }\n {props.cancelable ?\n <WmButton id = {this.getTestId('cancelbtn')} caption={props.cancelbtnlabel} styles={merge({}, this.theme.getStyle('btn-default'), this.styles.wizardActions, this.styles.cancelButton)} onTap={this.cancel.bind(this)}></WmButton>\n : null\n }\n {isSkippable &&\n <WmAnchor iconclass={'wi wi-chevron-right'} iconposition={'right'} caption={'Skip'}\n id = {this.getTestId('skip')}\n styles={merge({}, this.styles.wizardActions, this.styles.skipLink)} onTap={this.skip.bind(this)}></WmAnchor>\n }\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Text","View","TouchableOpacity","Platform","TouchableWithoutFeedback","isArray","merge","BaseComponent","BaseComponentState","WmWizardProps","DEFAULT_CLASS","WmButton","WmIcon","WmAnchor","WmProgressCircle","WmPopover","WmLabel","createSkeleton","WmWizardState","constructor","args","_defineProperty","WmWizard","props","onComponentInit","c","popOverRef","updateDefaultStep","steps","defaultStepIndex","defaultstep","map","item","index","name","updateCurrentStep","addWizardStep","step","forceUpdate","componentDidMount","componentDidUpdate","prevProps","prevState","snapshot","showActiveStep","_this$steps$this$stat","state","currentStep","setActive","isDone","_this$steps$this$stat2","_this$steps$nextStep","lastStep","nextStep","setInActive","show","i","length","updateState","invokeEventCallback","proxy","getStepStyle","style","styles","push","doneStep","activeStep","renderMenuPopover","menuDataset","getmenudataexpression","Labels","title","createElement","id","getTestId","popover","contentanimation","caption","popoverheight","height","popoverwidth","width","listener","iconclass","popovericonclass","iconposition","type","currentMenuItem","key","onPress","hide","stepMenu","activeStepMenu","stepMenuActiveIcon","stepMenuIcon","stepMenuActiveLabel","stepMenuLabel","renderProgressCircleHeader","progressTitle","progresstitle","headerWrapper","stepWrapper","flex","alignItems","justifyContent","flexDirection","minvalue","maxvalue","datavalue","captionplacement","progresstype","subtitle","progressCircle","stepTitleWrapper","_extends","stepTitle","getTestPropsForLabel","stepSubTitle","stepConnectorWidth","isFirstOrLastConnector","stepIndex","lastStepIndex","firstStepIndex","stepConnectorHeight","getDotStyle","stepDot","activeStepDot","renderDot","getConnectorPosition","_this$styles","stepStyles","cssWidth","cssHeight","parseStyleValue","value","numValue","parseFloat","isNaN","result","top","left","renderWizardHeader","_this$state$props$cla","_this$state$props$cla2","_this$state$props$cla3","isLastStep","isFirstStep","isActiveStep","isNumberTextLayout","classname","isVertical","includes","isDotted","isStepperBasic","wizardStepCountVisibility","paddingRight","paddingLeft","bind","disabled","headernavigation","accessibilityRole","_showSkeleton","getTestPropsForAction","Fragment","stepIcon","icon","color","activeStepCounter","stepCounter","showskeleton","root","numberOfSteps","numberTextStepConnector","getTotalVisibleSteps","stepConnector","OS","isRTL","prev","skipdefaultprevious","invokePrevCB","next","eventName","skipdefaultnext","invokeSkipCB","invokeNextCB","done","$event","skipdefaultdone","cancel","skipdefaultcancel","skip","skipdefaultskip","getBackground","_background","firstStep","renderSkeleton","showskeletonchildren","_this$props","skeletonStyles","skeleton","text","theme","opacity","children","renderWidget","_this$state$props$cla4","isSkippable","enableskip","isProgressCircleHeader","onLayout","event","handleLayout","wizardHeader","wizardBody","wizardFooter","actionsalignment","showdone","donebtniconclass","wizardActions","getStyle","doneButton","donebtnlabel","onTap","disabledone","shownext","nextButton","nextbtnlabel","disablenext","showprev","prevButton","previousbtnlabel","disableprev","cancelable","cancelbtnlabel","cancelButton","skipLink"],"sources":["wizard.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View, TouchableOpacity, Platform, TouchableWithoutFeedback, DimensionValue } from 'react-native';\nimport { isArray, merge } from 'lodash';\nimport { BaseComponent, BaseComponentState, LifecycleListener } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmWizardProps from './wizard.props';\nimport { DEFAULT_CLASS, WmWizardStyles } from './wizard.styles';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmAnchor from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.component';\nimport WmWizardstep from './wizardstep/wizardstep.component';\nimport WmProgressCircle from '@wavemaker/app-rn-runtime/components/basic/progress-circle/progress-circle.component';\nimport WmPopover from '@wavemaker/app-rn-runtime/components/navigation/popover/popover.component';\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmWizardState extends BaseComponentState<WmWizardProps> {\n currentStep: number = 0;\n isDone: boolean = false;\n}\n\nexport default class WmWizard extends BaseComponent<WmWizardProps, WmWizardState, WmWizardStyles> {\n private numberOfSteps: number = null as any;\n private steps = [] as WmWizardstep[];\n private popOverRef: WmPopover = null as any;\n\n private listener: LifecycleListener = {\n onComponentInit: (c) => {\n if (c instanceof WmPopover) {\n this.popOverRef = c;\n }\n }\n };\n\n constructor(props: WmWizardProps) {\n super(props, DEFAULT_CLASS, new WmWizardProps());\n }\n\n updateDefaultStep() {\n const steps = this.steps;\n const props = this.props;\n let defaultStepIndex = 0;\n if (isArray(steps) && props.defaultstep) {\n steps && steps.map((item: any, index: any) => {\n if (props.defaultstep === item.props.name) {\n defaultStepIndex = index;\n }\n })\n }\n this.updateCurrentStep(defaultStepIndex);\n }\n\n addWizardStep(step: WmWizardstep) {\n this.steps[step.props.index] = step;\n this.forceUpdate();\n }\n\n componentDidMount() {\n super.componentDidMount();\n if (this.props.defaultstep && this.props.defaultstep != 'none') {\n this.updateDefaultStep();\n }\n }\n\n componentDidUpdate(prevProps: Readonly<WmWizardProps>, prevState: Readonly<WmWizardState>, snapshot?: any): void {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n // * when a variable is bind to default step\n if (this.props.defaultstep && prevProps.defaultstep !== this.props.defaultstep) {\n this.updateDefaultStep();\n }\n }\n\n showActiveStep() {\n this.steps[this.state.currentStep]?.setActive();\n }\n\n updateCurrentStep(index: number, isDone = false) {\n const lastStep = this.state.currentStep;\n let nextStep = index\n this.steps[this.state.currentStep]?.setInActive();\n\n // check for next available step if next or prev steps show prop is false\n if(this.steps[nextStep]?.state && !this.steps[nextStep].state.props.show){\n if(lastStep < nextStep){\n for(let i = nextStep + 1; i < this.steps.length; i++){\n if(this.steps[i].state.props.show) {\n nextStep = i;\n break;\n }\n }\n }else if(lastStep > nextStep) {\n for(let i = nextStep - 1; i >= 0; i--){\n if(this.steps[i].state.props.show) {\n nextStep = i;\n break;\n }\n }\n }\n }\n\n this.updateState({\n currentStep: nextStep,\n isDone: isDone\n } as WmWizardState, () => {\n this.showActiveStep();\n if (lastStep !== nextStep) {\n this.invokeEventCallback('onChange', [null, this.proxy, nextStep + 1, lastStep + 1]);\n }\n });\n this.forceUpdate();\n }\n\n getStepStyle(index: number) {\n const style = [this.styles.step];\n if (this.state.isDone || index < this.state.currentStep) {\n style.push(this.styles.doneStep);\n } else if (this.state.currentStep === index) {\n style.push(this.styles.activeStep);\n }\n return style;\n }\n\n renderMenuPopover(){\n const menuDataset = this.props.getmenudataexpression || ((item: any, index: number) => '') ;\n const Labels = this.steps.map((step: WmWizardstep) => step.state.props.title);\n return (\n <WmPopover\n id={this.getTestId('menu')}\n styles={this.styles.popover}\n contentanimation={'slideInDown'}\n caption={''}\n popoverheight={this.styles.popover.popover.height as string | number | undefined || null}\n popoverwidth={this.styles.popover.popover.width as string | number | undefined || null}\n listener={this.listener}\n iconclass={this.props.popovericonclass || 'fa fa-caret-down'}\n iconposition=\"right\"\n type='dropdown'>\n <View style={this.styles.popover.popover}>\n {Labels.map((item: any, index: number) => {\n const currentMenuItem = index==this.state.currentStep;\n const caption = menuDataset({\"count\":this.steps.length}, index);\n return (\n <TouchableWithoutFeedback key={'wizard_menu_item_'+index} onPress={()=>{this.popOverRef.hide();}}>\n <View style={[this.styles.stepMenu, currentMenuItem?this.styles.activeStepMenu:{}]}>\n <WmIcon id={this.getTestId('icon')} caption={caption} iconclass={currentMenuItem? \"wi wi-radio-button-checked\" : 'wi wi-radio-button-unchecked'} styles={currentMenuItem?this.styles.stepMenuActiveIcon:this.styles.stepMenuIcon}/>\n <WmLabel caption={item} styles={currentMenuItem?this.styles.stepMenuActiveLabel:this.styles.stepMenuLabel}/>\n </View>\n </TouchableWithoutFeedback>\n )})}\n </View>\n </WmPopover>\n );\n }\n\n renderProgressCircleHeader(item: any, index: number) {\n const progressTitle = this.props.progresstitle || (index + 1 + '/' + this.steps.length);\n return (\n <View style={[this.styles.headerWrapper]} key={index + 1}>\n <View style={this.styles.stepWrapper}>\n <View style={{ flex: 1, alignItems: 'flex-start', justifyContent: 'center', flexDirection:'row' }}>\n <WmProgressCircle id={this.getTestId('progress')} minvalue={0} maxvalue={this.steps.length} datavalue={index + 1} captionplacement={'inside'} type={this.props.progresstype} title={progressTitle} subtitle={''} styles={this.styles.progressCircle}/>\n </View>\n <View style={this.styles.stepTitleWrapper}>\n <Text style={this.styles.stepTitle} {...this.getTestPropsForLabel('step' + (index + 1) + '_title')}>\n {item.props.title || 'Step Title'}</Text>\n <Text style={this.styles.stepSubTitle} {...this.getTestPropsForLabel('step' + (index + 1)+ '_subtitle')}>\n {item.props.subtitle || 'Step Sub Title'}</Text>\n </View>\n <View style={{ flexDirection: 'row', alignItems: 'flex-end', justifyContent: 'flex-end', flex: 1 }}>\n {this.renderMenuPopover()}\n </View>\n </View>\n </View>\n );\n }\n\n stepConnectorWidth(isFirstOrLastConnector: boolean, stepIndex: number): DimensionValue {\n if(stepIndex === this.lastStepIndex() || stepIndex === this.firstStepIndex()){\n return '50%';\n }\n return isFirstOrLastConnector ? '50%' : '100%';\n }\n\n stepConnectorHeight(isFirstOrLastConnector: boolean, stepIndex: number): DimensionValue {\n if (stepIndex === this.lastStepIndex() || stepIndex === this.firstStepIndex()) {\n return '50%';\n }\n return isFirstOrLastConnector ? '50%' : '100%';\n }\n\n getDotStyle(index: number) {\n const style = [this.styles.stepDot];\n if (this.state.currentStep === index) {\n style.push(this.styles.activeStepDot);\n }\n return style;\n }\n\n renderDot(index: number) {\n return (\n <View style={this.getDotStyle(index)}></View>\n );\n }\n\n getConnectorPosition(): { top?: number, left?: number } {\n const stepStyles = this.styles?.step;\n if (!stepStyles) return {};\n const cssWidth = stepStyles.width;\n const cssHeight = stepStyles.height;\n const parseStyleValue = (value: any): number | null => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const numValue = parseFloat(value);\n return isNaN(numValue) ? null : numValue;\n }\n return null;\n };\n const width = parseStyleValue(cssWidth);\n const height = parseStyleValue(cssHeight);\n const result: { top?: number, left?: number } = {};\n // Calculate connector positions based on actual circle dimensions\n if (height !== null) {\n result.top = (height / 2) - 1;\n }\n if (width !== null) {\n result.left = (width / 2) - 1;\n }\n return result;\n }\n\n renderWizardHeader(item: any, index: number) {\n const isLastStep = index === this.lastStepIndex();\n const isFirstStep = index === this.firstStepIndex();\n const isActiveStep = index === this.state.currentStep;\n const isNumberTextLayout = this.state.props.classname === 'number-text-inline';\n const isVertical = this.state.props.classname?.includes('vertical');\n const isDotted = this.state.props.classname?.includes('dottedstepper');\n const isStepperBasic = this.state.props.classname?.includes('stepper-basic');\n const wizardStepCountVisibility = (index >= this.state.currentStep && !this.state.isDone) || !this.state.currentStep\n return item.state.props.show !== false ? (\n <View \n style={[\n this.styles.headerWrapper, isNumberTextLayout ?\n {paddingRight: isActiveStep ? 0 : 5, paddingLeft: index === this.state.currentStep + 1 ? 0 : 5}: {}\n ]} \n key={index+1}\n >\n <TouchableOpacity \n style={this.styles.stepWrapper}\n onPress={this.updateCurrentStep.bind(this, index, false)} disabled={index >= this.state.currentStep || !this.state.props.headernavigation}\n accessibilityRole='header'\n >\n {!this._showSkeleton ? isStepperBasic ? (\n <View style={this.getStepStyle(index)} {...this.getTestPropsForAction('step'+index)}/>\n ) : <View style={this.getStepStyle(index)} {...this.getTestPropsForAction('step'+index)}>\n {(isDotted) ? (\n <>\n {(index < this.state.currentStep || this.state.isDone) ? (\n <WmIcon \n id={this.getTestId('status')} \n styles={isActiveStep ? merge({}, this.styles.stepIcon, {icon: {color: this.styles.activeStep.color}}) : this.styles.stepIcon}\n iconclass={item.state.props.iconclass || 'wm-sl-l sl-check'}\n ></WmIcon>\n ) : (\n this.renderDot(index)\n )}\n </>\n ) : (\n <>\n { wizardStepCountVisibility &&\n <Text \n style={\n isActiveStep ? [this.styles.activeStep, this.styles.activeStepCounter] : this.styles.stepCounter} \n {...this.getTestPropsForLabel('step' + (index + 1) + '_indicator')\n }\n >\n {index+1}\n </Text>\n }\n {(index < this.state.currentStep || this.state.isDone) &&\n <WmIcon \n id={this.getTestId('status')} \n styles={isActiveStep ? merge({}, this.styles.stepIcon, {icon: {color: this.styles.activeStep.color}}) : this.styles.stepIcon}\n iconclass={item.state.props.iconclass || 'wm-sl-l sl-check'}\n ></WmIcon>\n }\n </>\n )}\n </View> : \n <WmLabel showskeleton={true} styles={{root: {...this.getStepStyle(index)[0]}}}/>\n }\n {(isActiveStep) &&\n <View style={this.styles.stepTitleWrapper}>\n <Text style={this.styles.stepTitle} {...this.getTestPropsForLabel('step' + (index + 1) + '_title')}>\n {item.state.props.title || 'Step Title'}\n </Text> \n <Text style={this.styles.stepSubTitle} {...this.getTestPropsForLabel('step' + (index + 1) + '_subtitle')}>\n {item.state.props.subtitle}\n </Text> \n </View>\n }\n {!isStepperBasic && this.numberOfSteps > 1 && isActiveStep &&\n <View style={[this.styles.numberTextStepConnector, {width: isLastStep ? 0 : 50}]}></View>}\n </TouchableOpacity>\n {!isStepperBasic && this.getTotalVisibleSteps() > 1 &&\n item.state.props.show && !isVertical &&\n <View \n style={[\n this.styles.stepConnector, \n {\n width: this.stepConnectorWidth(isFirstStep || isLastStep, index),\n left: Platform.OS === \"web\" ?\n (!this.isRTL && isFirstStep) || (this.isRTL && isLastStep) ? \n '50%': '0%': isFirstStep ? '50%': '0%'\n },\n this.getConnectorPosition().top ? {top: this.getConnectorPosition().top} : {}\n ]}\n ></View>\n }\n {!isStepperBasic && this.getTotalVisibleSteps() > 1 &&\n item.state.props.show && isVertical &&\n <View \n style={[\n this.styles.stepConnector, \n {\n height: this.stepConnectorHeight(isFirstStep || isLastStep, index),\n top: isFirstStep ? '50%' : '0%',\n },\n this.getConnectorPosition().left ? {left: this.getConnectorPosition().left} : {}\n ]}\n ></View>\n }\n </View>\n ) : null;\n }\n\n prev() {\n if(this.state.props.skipdefaultprevious) {\n this.invokeEventCallback('onPrev', ['prev',this.proxy]);\n return;\n }\n \n const index = this.state.currentStep;\n if (index <= 0) {\n return;\n }\n const currentStep = this.steps[index];\n this.invokeEventCallback('onPrev', ['prev',this.proxy]);\n if(currentStep.invokePrevCB(index) == false){\n return;\n }\n this.updateCurrentStep(index - 1);\n }\n\n next(eventName?: string) {\n if( eventName !== 'skip' && this.state.props.skipdefaultnext) {\n this.invokeEventCallback('onNext', ['next',this.proxy]);\n return;\n }\n\n const index = this.state.currentStep;\n if (index >= this.steps.length - 1) {\n return;\n }\n const currentStep = this.steps[index];\n if (eventName === 'skip') {\n this.invokeEventCallback('onSkip', ['skip',this.proxy]);\n currentStep.invokeSkipCB(index);\n } else {\n this.invokeEventCallback('onNext', ['next',this.proxy]);\n if (currentStep.invokeNextCB(index) == false) {\n return;\n } \n } \n this.updateCurrentStep(index + 1);\n }\n\n done($event: any) {\n if(this.state.props.skipdefaultdone) {\n this.invokeEventCallback('onDone', ['done', this.proxy]);\n return;\n }\n if (this.state.currentStep !== this.lastStepIndex()) {\n return;\n }\n this.updateState({\n isDone: true\n } as WmWizardState);\n this.invokeEventCallback('onDone', ['done', this.proxy]);\n }\n\n cancel() {\n this.invokeEventCallback('onCancel', ['cancel', this.proxy]);\n if(this.state.props.skipdefaultcancel) {\n return;\n }\n }\n\n skip() {\n if(this.state.props.skipdefaultskip) {\n this.invokeEventCallback('onSkip', ['skip', this.proxy]);\n return;\n }\n this.next('skip');\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n\n lastStepIndex(): number {\n let lastStep = 0;\n for(let i = 0; i < this.steps.length; i++) {\n if(this.steps[i].state.props.show) {\n lastStep = i;\n }\n }\n return lastStep;\n }\n\n firstStepIndex(): number {\n let firstStep = -1;\n for(let i = 0; i < this.steps.length; i++) {\n if(this.steps[i].state.props.show) {\n if (firstStep === -1) {\n firstStep = i;\n }\n }\n }\n return firstStep;\n }\n\n getTotalVisibleSteps(): number {\n let lastStep = 0;\n for(let i = 0; i < this.steps.length; i++) {\n if(this.steps[i].state.props.show) {\n lastStep++;\n }\n }\n return lastStep;\n }\n \n public renderSkeleton(props: WmWizardProps): React.ReactNode {\n if(!props.showskeletonchildren) {\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 {props.children}\n </View>))\n }\n return null;\n }\n\n\n renderWidget(props: WmWizardProps) {\n this.numberOfSteps = this.steps.length;\n const activeStep = this.steps[this.state.currentStep];\n const isSkippable = activeStep && activeStep.state.props.enableskip;\n const isProgressCircleHeader = this.state.props.classname?.includes('progress-circle-header');\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root\n return (\n <View \n style={styles}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this.getBackground()}\n <View style={this.styles.wizardHeader}>\n {activeStep && isProgressCircleHeader ? (this.renderProgressCircleHeader(activeStep, this.state.currentStep)) : (this.steps ? this.steps.map((step, i) => this.renderWizardHeader(step, i)) : null)}\n </View>\n <View style={this.styles.wizardBody}>\n {props.children}\n </View>\n <View style={[this.styles.wizardFooter,\n {flexDirection: props.actionsalignment === 'right' ? 'row-reverse': 'row'}]}>\n {(this.state.currentStep) === this.lastStepIndex() && activeStep.state.props.showdone &&\n <WmButton iconclass={this.props.donebtniconclass} styles={merge({}, this.styles.wizardActions, this.theme.getStyle('btn-default'), this.styles.doneButton)}\n id = {this.getTestId('donebtn')} caption={props.donebtnlabel} onTap={this.done.bind(this)} disabled={activeStep.state.props.disabledone}></WmButton>\n }\n {(this.state.currentStep) < this.lastStepIndex() && activeStep.state.props.shownext &&\n <WmButton iconclass={'wi wi-chevron-right'} styles={merge({}, this.styles.wizardActions, this.theme.getStyle('btn-default'), this.styles.nextButton)}\n id = {this.getTestId('nextbtn')}\n iconposition={'right'} caption={props.nextbtnlabel} onTap={this.next.bind(this)} disabled={activeStep.state.props.disablenext}></WmButton>\n }\n {this.state.currentStep > 0 && activeStep.state.props.showprev &&\n <WmButton iconclass={'wi wi-chevron-left'} styles={merge({}, this.theme.getStyle('btn-default'), this.styles.wizardActions, this.styles.prevButton)} caption={props.previousbtnlabel}\n id = {this.getTestId('prevbtn')}\n onTap={this.prev.bind(this)} disabled={activeStep.state.props.disableprev}></WmButton>\n }\n {props.cancelable ?\n <WmButton id = {this.getTestId('cancelbtn')} caption={props.cancelbtnlabel} styles={merge({}, this.theme.getStyle('btn-default'), this.styles.wizardActions, this.styles.cancelButton)} onTap={this.cancel.bind(this)}></WmButton>\n : null\n }\n {isSkippable &&\n <WmAnchor iconclass={'wi wi-chevron-right'} iconposition={'right'} caption={'Skip'}\n id = {this.getTestId('skip')}\n styles={merge({}, this.styles.wizardActions, this.styles.skipLink)} onTap={this.skip.bind(this)}></WmAnchor>\n }\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,7 +24,8 @@ export default class WmDialogcontent extends BaseComponent {
|
|
|
24
24
|
maxHeight: this.styles.root.maxHeight
|
|
25
25
|
}
|
|
26
26
|
}, this._background, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
27
|
-
activeOpacity: 1
|
|
27
|
+
activeOpacity: 1,
|
|
28
|
+
accessible: false
|
|
28
29
|
}, /*#__PURE__*/React.createElement(React.Fragment, null, props.children)));
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TouchableOpacity","ScrollView","BaseComponent","BaseComponentState","WmDialogcontentProps","DEFAULT_CLASS","WmDialogcontentState","WmDialogcontent","constructor","props","renderWidget","createElement","onLayout","event","handleLayout","contentContainerStyle","styles","root","maxHeight","undefined","onScroll","notify","scrollEventThrottle","showsVerticalScrollIndicator","style","_background","activeOpacity","Fragment","children"],"sources":["dialogcontent.component.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmDialogcontentProps from './dialogcontent.props';\nimport { DEFAULT_CLASS, WmDialogcontentStyles } from './dialogcontent.styles';\n\nexport class WmDialogcontentState extends BaseComponentState<WmDialogcontentProps> {}\n\nexport default class WmDialogcontent extends BaseComponent<WmDialogcontentProps, WmDialogcontentState, WmDialogcontentStyles> {\n\n constructor(props: WmDialogcontentProps) {\n super(props, DEFAULT_CLASS, new WmDialogcontentProps());\n }\n\n renderWidget(props: WmDialogcontentProps) {\n return (<ScrollView\n onLayout={(event) => this.handleLayout(event)}\n contentContainerStyle={[this.styles.root, {maxHeight: undefined}]}\n onScroll={(event) => {this.notify('scroll', [event])}}\n scrollEventThrottle={48}\n showsVerticalScrollIndicator={false}\n style={{maxHeight: this.styles.root.maxHeight}}>\n {this._background}\n\n {/* *IMPORTANT: Pan responder in WmDialog interfering with scroll of ScrollView [https://github.com/facebook/react-native/issues/11206] */}\n <TouchableOpacity \n activeOpacity={1}\n >\n <>\n {props.children}\n </>\n </TouchableOpacity>\n </ScrollView>);\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,cAAc;AAC/C,SAASC,UAAU,QAAQ,8BAA8B;AACzD,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,oBAAoB,MAAM,uBAAuB;AACxD,SAASC,aAAa,QAA+B,wBAAwB;AAE7E,OAAO,MAAMC,oBAAoB,SAASH,kBAAkB,CAAuB;AAEnF,eAAe,MAAMI,eAAe,SAASL,aAAa,CAAoE;EAE5HM,WAAWA,CAACC,KAA2B,EAAE;IACvC,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,oBAAoB,CAAC,CAAC,CAAC;EACzD;EAEAM,YAAYA,CAACD,KAA2B,EAAE;IACxC,oBAAQV,KAAA,CAAAY,aAAA,CAACV,UAAU;MACjBW,QAAQ,EAAGC,KAAK,IAAK,IAAI,CAACC,YAAY,CAACD,KAAK,CAAE;MAC9CE,qBAAqB,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE;QAACC,SAAS,EAAEC;MAAS,CAAC,CAAE;MAClEC,QAAQ,EAAGP,KAAK,IAAK;QAAC,IAAI,CAACQ,MAAM,CAAC,QAAQ,EAAE,CAACR,KAAK,CAAC,CAAC;MAAA,CAAE;MACtDS,mBAAmB,EAAE,EAAG;MACxBC,4BAA4B,EAAE,KAAM;MACpCC,KAAK,EAAE;QAACN,SAAS,EAAE,IAAI,CAACF,MAAM,CAACC,IAAI,CAACC;MAAS;IAAE,GAC5C,IAAI,CAACO,WAAW,eAGjB1B,KAAA,CAAAY,aAAA,CAACX,gBAAgB;MACf0B,aAAa,EAAE;
|
|
1
|
+
{"version":3,"names":["React","TouchableOpacity","ScrollView","BaseComponent","BaseComponentState","WmDialogcontentProps","DEFAULT_CLASS","WmDialogcontentState","WmDialogcontent","constructor","props","renderWidget","createElement","onLayout","event","handleLayout","contentContainerStyle","styles","root","maxHeight","undefined","onScroll","notify","scrollEventThrottle","showsVerticalScrollIndicator","style","_background","activeOpacity","accessible","Fragment","children"],"sources":["dialogcontent.component.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmDialogcontentProps from './dialogcontent.props';\nimport { DEFAULT_CLASS, WmDialogcontentStyles } from './dialogcontent.styles';\n\nexport class WmDialogcontentState extends BaseComponentState<WmDialogcontentProps> {}\n\nexport default class WmDialogcontent extends BaseComponent<WmDialogcontentProps, WmDialogcontentState, WmDialogcontentStyles> {\n\n constructor(props: WmDialogcontentProps) {\n super(props, DEFAULT_CLASS, new WmDialogcontentProps());\n }\n\n renderWidget(props: WmDialogcontentProps) {\n return (<ScrollView\n onLayout={(event) => this.handleLayout(event)}\n contentContainerStyle={[this.styles.root, {maxHeight: undefined}]}\n onScroll={(event) => {this.notify('scroll', [event])}}\n scrollEventThrottle={48}\n showsVerticalScrollIndicator={false}\n style={{maxHeight: this.styles.root.maxHeight}}>\n {this._background}\n\n {/* *IMPORTANT: Pan responder in WmDialog interfering with scroll of ScrollView [https://github.com/facebook/react-native/issues/11206] */}\n <TouchableOpacity \n activeOpacity={1}\n accessible={false}\n >\n <>\n {props.children}\n </>\n </TouchableOpacity>\n </ScrollView>);\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,cAAc;AAC/C,SAASC,UAAU,QAAQ,8BAA8B;AACzD,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,oBAAoB,MAAM,uBAAuB;AACxD,SAASC,aAAa,QAA+B,wBAAwB;AAE7E,OAAO,MAAMC,oBAAoB,SAASH,kBAAkB,CAAuB;AAEnF,eAAe,MAAMI,eAAe,SAASL,aAAa,CAAoE;EAE5HM,WAAWA,CAACC,KAA2B,EAAE;IACvC,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,oBAAoB,CAAC,CAAC,CAAC;EACzD;EAEAM,YAAYA,CAACD,KAA2B,EAAE;IACxC,oBAAQV,KAAA,CAAAY,aAAA,CAACV,UAAU;MACjBW,QAAQ,EAAGC,KAAK,IAAK,IAAI,CAACC,YAAY,CAACD,KAAK,CAAE;MAC9CE,qBAAqB,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE;QAACC,SAAS,EAAEC;MAAS,CAAC,CAAE;MAClEC,QAAQ,EAAGP,KAAK,IAAK;QAAC,IAAI,CAACQ,MAAM,CAAC,QAAQ,EAAE,CAACR,KAAK,CAAC,CAAC;MAAA,CAAE;MACtDS,mBAAmB,EAAE,EAAG;MACxBC,4BAA4B,EAAE,KAAM;MACpCC,KAAK,EAAE;QAACN,SAAS,EAAE,IAAI,CAACF,MAAM,CAACC,IAAI,CAACC;MAAS;IAAE,GAC5C,IAAI,CAACO,WAAW,eAGjB1B,KAAA,CAAAY,aAAA,CAACX,gBAAgB;MACf0B,aAAa,EAAE,CAAE;MACjBC,UAAU,EAAE;IAAM,gBAElB5B,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAA6B,QAAA,QACGnB,KAAK,CAACoB,QACP,CACc,CACV,CAAC;EACf;AACF","ignoreList":[]}
|
package/core/AppConfig.js.map
CHANGED
|
@@ -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 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}"],"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}"],"mappings":"","ignoreList":[]}
|
|
@@ -79,8 +79,7 @@ export class AdvancedPromiseRejectionTracker {
|
|
|
79
79
|
}
|
|
80
80
|
const handler = event => {
|
|
81
81
|
event.preventDefault(); // Prevent browser's default handling
|
|
82
|
-
|
|
83
|
-
this.onRejectionHandler(error);
|
|
82
|
+
this.onRejectionHandler(event.reason);
|
|
84
83
|
};
|
|
85
84
|
window.addEventListener('unhandledrejection', handler);
|
|
86
85
|
this.cleanupFunctions.push(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","AdvancedPromiseRejectionTracker","constructor","onRejection","_defineProperty","onRejectionHandler","setup","OS","setupWebTracking","setupHermesTracking","setupReactNativeTracking","window","addEventListener","handler","event","preventDefault","error","reason","Error","String","cleanupFunctions","push","removeEventListener","hermesInternal","global","HermesInternal","enablePromiseRejectionTracker","allRejections","onUnhandled","id","onHandled","tracking","require","enable","disable","cleanup","forEach","detectJavaScriptEngine","setupAdvancedPromiseRejectionTracking","tracker"],"sources":["advanced-promise-rejection-tracker.ts"],"sourcesContent":["/**\n * Advanced Promise Rejection Tracker\n *\n * Provides comprehensive promise rejection tracking across different JavaScript engines.\n * This module addresses the critical gap where API call failures and async function errors\n * are not caught by React Error Boundaries, ensuring all promise rejections are handled.\n *\n * Engine Support:\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 * Coverage Includes:\n * - API call failures (fetch, axios, any HTTP library)\n * - Async function errors (unhandled throws in async/await)\n * - Manual Promise.reject() calls\n * - Third-party library promise rejections\n *\n * Research Notes:\n * This implementation was developed through extensive research into React Native's\n * promise handling across different engines. Each engine has its own optimal approach:\n * - Hermes provides a native tracking API that hooks into the engine's internals\n * - JSC can use React Native's internal promise tracking module\n * - Web browsers have standardized unhandledrejection events\n *\n * The approach automatically detects the best available method and falls back\n * gracefully when native tracking is unavailable.\n */\n\nimport { Platform } from 'react-native';\n\n// TypeScript declarations for global objects\ndeclare global {\n interface Global {\n HermesInternal?: {\n enablePromiseRejectionTracker?: (options: {\n allRejections: boolean;\n onUnhandled: (id: number, error: any) => void;\n onHandled: (id: number) => void;\n }) => void;\n };\n }\n}\n\nexport interface PromiseRejectionHandler {\n (error: any): void;\n}\n\n/**\n * Multi-engine promise rejection tracking implementation\n */\nexport class AdvancedPromiseRejectionTracker {\n private onRejectionHandler: PromiseRejectionHandler;\n private cleanupFunctions: (() => void)[] = [];\n\n constructor(onRejection: PromiseRejectionHandler) {\n this.onRejectionHandler = onRejection;\n }\n\n /**\n * Setup promise rejection tracking based on available APIs\n * Returns true if native tracking was enabled, false if fallback used\n */\n public setup(): boolean {\n // Automatically detect and setup the best available promise rejection tracking method\n\n if (Platform.OS === 'web') {\n return this.setupWebTracking();\n }\n\n // For mobile platforms, try native tracking methods in order of preference\n if (this.setupHermesTracking()) {\n return true;\n }\n\n // Fallback to React Native internal tracking for JSC\n if (this.setupReactNativeTracking()) {\n return true;\n }\n\n // No native tracking available - this should rarely happen in modern RN versions\n return false;\n }\n\n /**\n * Method 1: Web Environment - Use unhandledrejection event\n */\n private setupWebTracking(): boolean {\n try {\n if (typeof window === 'undefined' || !window.addEventListener) {\n return false;\n }\n\n const handler = (event: PromiseRejectionEvent) => {\n event.preventDefault(); // Prevent browser's default handling\n const error =\n event.reason instanceof Error\n ? event.reason\n : new Error(String(event.reason));\n this.onRejectionHandler(error);\n };\n\n window.addEventListener('unhandledrejection', handler);\n this.cleanupFunctions.push(() => {\n window.removeEventListener('unhandledrejection', handler);\n });\n\n return true;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Method 2: Hermes Engine - Use HermesInternal API\n */\n private setupHermesTracking(): boolean {\n try {\n // Check if Hermes engine is available\n const hermesInternal = (global as any).HermesInternal;\n if (\n hermesInternal &&\n typeof hermesInternal.enablePromiseRejectionTracker === 'function'\n ) {\n hermesInternal.enablePromiseRejectionTracker({\n allRejections: true, // Track both handled and unhandled rejections\n onUnhandled: (id: number, error: any) => {\n this.onRejectionHandler(error);\n },\n onHandled: (id: number) => {\n // Promise was handled later - could be used for analytics in the future\n },\n });\n\n // Cleanup function (if available)\n this.cleanupFunctions.push(() => {\n // Hermes doesn't provide a disable method, but we can set a no-op handler\n if (hermesInternal?.enablePromiseRejectionTracker) {\n hermesInternal.enablePromiseRejectionTracker({\n allRejections: false,\n onUnhandled: () => {},\n onHandled: () => {},\n });\n }\n });\n\n return true;\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Method 3: React Native Internal - Use promise/setimmediate/rejection-tracking for JSC\n */\n private setupReactNativeTracking(): boolean {\n try {\n // Try to access React Native's internal promise tracking module\n const tracking = require('promise/setimmediate/rejection-tracking');\n\n if (tracking && typeof tracking.enable === 'function') {\n tracking.enable({\n allRejections: true,\n onUnhandled: (id: number, error: any) => {\n this.onRejectionHandler(error);\n },\n onHandled: (id: number) => {\n // Promise was handled later - tracking for potential analytics\n },\n });\n\n this.cleanupFunctions.push(() => {\n // Try to disable tracking if possible\n if (tracking.disable && typeof tracking.disable === 'function') {\n tracking.disable();\n }\n });\n\n return true;\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Clean up all tracking mechanisms\n */\n public cleanup(): void {\n // Clean up all tracking mechanisms and restore original state\n this.cleanupFunctions.forEach((cleanup) => {\n try {\n cleanup();\n } catch (error) {\n // Silently handle cleanup errors to avoid disrupting app shutdown\n }\n });\n this.cleanupFunctions = [];\n }\n}\n\n/**\n * Helper function to detect JavaScript engine (simplified for Web/Hermes/JSC)\n */\nexport function detectJavaScriptEngine(): 'web' | 'hermes' | 'jsc' {\n if (Platform.OS === 'web') {\n return 'web';\n }\n\n if (typeof (global as any).HermesInternal !== 'undefined') {\n return 'hermes';\n }\n\n // For non-Hermes engines on mobile, assume JSC (most common)\n return 'jsc';\n}\n\n/**\n * Public API for easy integration\n */\n/**\n * Sets up advanced promise rejection tracking with automatic engine detection\n * @param onRejection Callback function to handle unhandled promise rejections\n * @returns AdvancedPromiseRejectionTracker instance for cleanup and testing\n */\nexport function setupAdvancedPromiseRejectionTracking(\n onRejection: PromiseRejectionHandler\n): AdvancedPromiseRejectionTracker {\n const tracker = new AdvancedPromiseRejectionTracker(onRejection);\n tracker.setup();\n return tracker;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","AdvancedPromiseRejectionTracker","constructor","onRejection","_defineProperty","onRejectionHandler","setup","OS","setupWebTracking","setupHermesTracking","setupReactNativeTracking","window","addEventListener","handler","event","preventDefault","reason","cleanupFunctions","push","removeEventListener","error","hermesInternal","global","HermesInternal","enablePromiseRejectionTracker","allRejections","onUnhandled","id","onHandled","tracking","require","enable","disable","cleanup","forEach","detectJavaScriptEngine","setupAdvancedPromiseRejectionTracking","tracker"],"sources":["advanced-promise-rejection-tracker.ts"],"sourcesContent":["/**\n * Advanced Promise Rejection Tracker\n *\n * Provides comprehensive promise rejection tracking across different JavaScript engines.\n * This module addresses the critical gap where API call failures and async function errors\n * are not caught by React Error Boundaries, ensuring all promise rejections are handled.\n *\n * Engine Support:\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 * Coverage Includes:\n * - API call failures (fetch, axios, any HTTP library)\n * - Async function errors (unhandled throws in async/await)\n * - Manual Promise.reject() calls\n * - Third-party library promise rejections\n *\n * Research Notes:\n * This implementation was developed through extensive research into React Native's\n * promise handling across different engines. Each engine has its own optimal approach:\n * - Hermes provides a native tracking API that hooks into the engine's internals\n * - JSC can use React Native's internal promise tracking module\n * - Web browsers have standardized unhandledrejection events\n *\n * The approach automatically detects the best available method and falls back\n * gracefully when native tracking is unavailable.\n */\n\nimport { Platform } from 'react-native';\n\n// TypeScript declarations for global objects\ndeclare global {\n interface Global {\n HermesInternal?: {\n enablePromiseRejectionTracker?: (options: {\n allRejections: boolean;\n onUnhandled: (id: number, error: any) => void;\n onHandled: (id: number) => void;\n }) => void;\n };\n }\n}\n\nexport interface PromiseRejectionHandler {\n (error: any): void;\n}\n\n/**\n * Multi-engine promise rejection tracking implementation\n */\nexport class AdvancedPromiseRejectionTracker {\n private onRejectionHandler: PromiseRejectionHandler;\n private cleanupFunctions: (() => void)[] = [];\n\n constructor(onRejection: PromiseRejectionHandler) {\n this.onRejectionHandler = onRejection;\n }\n\n /**\n * Setup promise rejection tracking based on available APIs\n * Returns true if native tracking was enabled, false if fallback used\n */\n public setup(): boolean {\n // Automatically detect and setup the best available promise rejection tracking method\n\n if (Platform.OS === 'web') {\n return this.setupWebTracking();\n }\n\n // For mobile platforms, try native tracking methods in order of preference\n if (this.setupHermesTracking()) {\n return true;\n }\n\n // Fallback to React Native internal tracking for JSC\n if (this.setupReactNativeTracking()) {\n return true;\n }\n\n // No native tracking available - this should rarely happen in modern RN versions\n return false;\n }\n\n /**\n * Method 1: Web Environment - Use unhandledrejection event\n */\n private setupWebTracking(): boolean {\n try {\n if (typeof window === 'undefined' || !window.addEventListener) {\n return false;\n }\n\n const handler = (event: PromiseRejectionEvent) => {\n event.preventDefault(); // Prevent browser's default handling\n this.onRejectionHandler(event.reason);\n };\n\n window.addEventListener('unhandledrejection', handler);\n this.cleanupFunctions.push(() => {\n window.removeEventListener('unhandledrejection', handler);\n });\n\n return true;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Method 2: Hermes Engine - Use HermesInternal API\n */\n private setupHermesTracking(): boolean {\n try {\n // Check if Hermes engine is available\n const hermesInternal = (global as any).HermesInternal;\n if (\n hermesInternal &&\n typeof hermesInternal.enablePromiseRejectionTracker === 'function'\n ) {\n hermesInternal.enablePromiseRejectionTracker({\n allRejections: true, // Track both handled and unhandled rejections\n onUnhandled: (id: number, error: any) => {\n this.onRejectionHandler(error);\n },\n onHandled: (id: number) => {\n // Promise was handled later - could be used for analytics in the future\n },\n });\n\n // Cleanup function (if available)\n this.cleanupFunctions.push(() => {\n // Hermes doesn't provide a disable method, but we can set a no-op handler\n if (hermesInternal?.enablePromiseRejectionTracker) {\n hermesInternal.enablePromiseRejectionTracker({\n allRejections: false,\n onUnhandled: () => {},\n onHandled: () => {},\n });\n }\n });\n\n return true;\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Method 3: React Native Internal - Use promise/setimmediate/rejection-tracking for JSC\n */\n private setupReactNativeTracking(): boolean {\n try {\n // Try to access React Native's internal promise tracking module\n const tracking = require('promise/setimmediate/rejection-tracking');\n\n if (tracking && typeof tracking.enable === 'function') {\n tracking.enable({\n allRejections: true,\n onUnhandled: (id: number, error: any) => {\n this.onRejectionHandler(error);\n },\n onHandled: (id: number) => {\n // Promise was handled later - tracking for potential analytics\n },\n });\n\n this.cleanupFunctions.push(() => {\n // Try to disable tracking if possible\n if (tracking.disable && typeof tracking.disable === 'function') {\n tracking.disable();\n }\n });\n\n return true;\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Clean up all tracking mechanisms\n */\n public cleanup(): void {\n // Clean up all tracking mechanisms and restore original state\n this.cleanupFunctions.forEach((cleanup) => {\n try {\n cleanup();\n } catch (error) {\n // Silently handle cleanup errors to avoid disrupting app shutdown\n }\n });\n this.cleanupFunctions = [];\n }\n}\n\n/**\n * Helper function to detect JavaScript engine (simplified for Web/Hermes/JSC)\n */\nexport function detectJavaScriptEngine(): 'web' | 'hermes' | 'jsc' {\n if (Platform.OS === 'web') {\n return 'web';\n }\n\n if (typeof (global as any).HermesInternal !== 'undefined') {\n return 'hermes';\n }\n\n // For non-Hermes engines on mobile, assume JSC (most common)\n return 'jsc';\n}\n\n/**\n * Public API for easy integration\n */\n/**\n * Sets up advanced promise rejection tracking with automatic engine detection\n * @param onRejection Callback function to handle unhandled promise rejections\n * @returns AdvancedPromiseRejectionTracker instance for cleanup and testing\n */\nexport function setupAdvancedPromiseRejectionTracking(\n onRejection: PromiseRejectionHandler\n): AdvancedPromiseRejectionTracker {\n const tracker = new AdvancedPromiseRejectionTracker(onRejection);\n tracker.setup();\n return tracker;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/core/base.component.js
CHANGED
|
@@ -304,7 +304,7 @@ export class BaseComponent extends React.Component {
|
|
|
304
304
|
} catch (e) {
|
|
305
305
|
var _appConfig$preference;
|
|
306
306
|
console.error(e);
|
|
307
|
-
if ((appConfig === null || appConfig === void 0 || (_appConfig$preference = appConfig.preferences) === null || _appConfig$preference === void 0 ? void 0 : _appConfig$preference.enableGlobalErrorHandler)
|
|
307
|
+
if ((appConfig === null || appConfig === void 0 || (_appConfig$preference = appConfig.preferences) === null || _appConfig$preference === void 0 ? void 0 : _appConfig$preference.enableGlobalErrorHandler) === true) {
|
|
308
308
|
throw e; // Re-throwing error to let ErrorBoundary or Global Handler catch it
|
|
309
309
|
}
|
|
310
310
|
}
|