@wavemaker/app-rn-runtime 11.14.1-20.6468 → 11.14.1-21.64739
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/basic/bottomsheet/bottomsheet.component.js +0 -12
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/progress-circle/progress-circle.component.js +3 -3
- package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
- package/components/chart/area-chart/area-chart.component.js +9 -26
- package/components/chart/area-chart/area-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js +6 -38
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.props.js +0 -1
- package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
- package/components/chart/basechart.component.js +15 -8
- package/components/chart/basechart.component.js.map +1 -1
- package/components/chart/basechart.props.js +0 -1
- package/components/chart/basechart.props.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.component.js +5 -22
- package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- package/components/chart/line-chart/line-chart.component.js +5 -22
- package/components/chart/line-chart/line-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.component.js +3 -14
- package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
- package/components/container/tabs/tabs.component.js +29 -62
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/tabs/tabs.props.js +0 -1
- package/components/container/tabs/tabs.props.js.map +1 -1
- package/components/container/wizard/wizard.component.js +1 -1
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js +1 -0
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js +2 -2
- package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
- package/components/data/form/form-field/form-field.component.js +0 -1
- package/components/data/form/form-field/form-field.component.js.map +1 -1
- package/components/data/form/form-field/form-field.props.js +0 -1
- package/components/data/form/form-field/form-field.props.js.map +1 -1
- package/components/data/form/form.component.js +1 -4
- package/components/data/form/form.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/components/input/baseinput/baseinput.component.js +3 -21
- package/components/input/baseinput/baseinput.component.js.map +1 -1
- package/components/input/baseinput/baseinput.props.js +0 -1
- package/components/input/baseinput/baseinput.props.js.map +1 -1
- package/components/input/basenumber/basenumber.component.js +3 -18
- package/components/input/basenumber/basenumber.component.js.map +1 -1
- package/components/input/basenumber/basenumber.props.js +0 -1
- package/components/input/basenumber/basenumber.props.js.map +1 -1
- package/components/input/checkboxset/checkboxset.component.js +1 -1
- package/components/input/checkboxset/checkboxset.component.js.map +1 -1
- package/components/input/currency/currency.component.js +0 -2
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/currency/currency.styles.js +1 -10
- package/components/input/currency/currency.styles.js.map +1 -1
- package/components/input/number/number.component.js +0 -2
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/number/number.styles.js +0 -4
- package/components/input/number/number.styles.js.map +1 -1
- package/components/input/radioset/radioset.component.js +4 -2
- package/components/input/radioset/radioset.component.js.map +1 -1
- package/components/input/text/text.component.js +0 -2
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.props.js +1 -0
- package/components/input/text/text.props.js.map +1 -1
- package/components/input/text/text.styles.js +0 -17
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +0 -1
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/textarea/textarea.styles.js +0 -4
- package/components/input/textarea/textarea.styles.js.map +1 -1
- package/components/navigation/popover/popover.component.js +3 -3
- package/components/navigation/popover/popover.component.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/advanced-promise-rejection-tracker.js +207 -0
- package/core/advanced-promise-rejection-tracker.js.map +1 -0
- package/core/base.component.js +5 -0
- package/core/base.component.js.map +1 -1
- package/core/components/error-fallback/error-fallback.component.js +50 -18
- package/core/components/error-fallback/error-fallback.component.js.map +1 -1
- package/core/components/error-fallback/error-fallback.styles.js +4 -1
- package/core/components/error-fallback/error-fallback.styles.js.map +1 -1
- package/core/components/textinput.component.js +4 -25
- package/core/components/textinput.component.js.map +1 -1
- package/core/error-boundary.component.js +46 -2
- package/core/error-boundary.component.js.map +1 -1
- package/core/fixed-view.component.js +2 -19
- package/core/fixed-view.component.js.map +1 -1
- package/core/global-error-handler.service.js +177 -0
- package/core/global-error-handler.service.js.map +1 -0
- package/core/tappable.component.js +1 -1
- package/core/tappable.component.js.map +1 -1
- package/core/viewport.js +8 -13
- package/core/viewport.js.map +1 -1
- package/gestures/carousel-swipe.animation.js +1 -0
- package/gestures/carousel-swipe.animation.js.map +1 -1
- package/npm-shrinkwrap.json +9553 -8521
- package/package-lock.json +9553 -8521
- package/package.json +2 -2
- package/runtime/App.js +174 -12
- package/runtime/App.js.map +1 -1
- package/runtime/base-page.component.js +11 -2
- package/runtime/base-page.component.js.map +1 -1
- package/runtime/navigator/stack.navigator.js +6 -0
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/styles/theme.js +0 -6
- package/styles/theme.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","paddingTop","paddingBottom","borderWidth","paddingLeft","paddingRight","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","text","fontSize","invalid","borderBottomColor","inputInvalidBorderColor","focused","inputFocusBorderColor","placeholderText","color","inputPlaceholderColor","floatingLabel","activeFloatingLabel","
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","paddingTop","paddingBottom","borderWidth","paddingLeft","paddingRight","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","text","fontSize","invalid","borderBottomColor","inputInvalidBorderColor","focused","inputFocusBorderColor","placeholderText","color","inputPlaceholderColor","floatingLabel","activeFloatingLabel","skeleton","width","height","flex","minWidth","maxWidth","inputDisabledBgColor","textAlign","position","top","left","floatingLabelColor","activeFloatingLabelColor"],"sources":["text.styles.ts"],"sourcesContent":["import BASE_THEME, {AllStyle, Theme} from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {ColorValue} from \"react-native\";\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\n\nexport type WmTextStyles = BaseStyles & {\n invalid: AllStyle;\n focused: AllStyle;\n placeholderText: AllStyle;\n floatingLabel: AllStyle;\n activeFloatingLabel: AllStyle;\n skeleton: WmSkeletonStyles;\n};\n\nexport const DEFAULT_CLASS = 'app-text';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmTextStyles = defineStyles({\n root: {\n minHeight: 42,\n paddingTop: 8,\n paddingBottom: 8,\n borderWidth: 1,\n paddingLeft: 16,\n paddingRight: 16,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n fontFamily: themeVariables.baseFont\n },\n text: {\n fontSize: 16\n },\n invalid: {\n borderBottomColor: themeVariables.inputInvalidBorderColor\n },\n focused : {\n borderColor: themeVariables.inputFocusBorderColor,\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n floatingLabel: {},\n activeFloatingLabel: {},\n skeleton: {\n root: {\n width: '100%',\n height: 16,\n borderRadius: 4\n }\n } as any as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n \n // Add horizontal form input styles for horizontal form field layouts - positioned early to avoid overriding more specific styles\n addStyle('form-text-input-horizontal', '', {\n root: {\n flex: 1, \n minWidth: 0, \n maxWidth: '100%',\n },\n text: {\n }\n } as BaseStyles);\n \n // Password widgets use the text component but have their own widget type\n addStyle('form-password-input-horizontal', '', {\n root: {\n flex: 1, \n minWidth: 0, \n maxWidth: '100%',\n },\n text: {}\n } as BaseStyles);\n \n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root:{\n textAlign: 'right'\n }\n });\n addStyle(DEFAULT_CLASS + '-with-label', '', {\n root: {\n minHeight: 48,\n },\n floatingLabel: {\n position: 'absolute',\n top: 12,\n left: 16,\n fontSize: 14,\n color: themeVariables.floatingLabelColor\n },\n activeFloatingLabel: {\n color: themeVariables.activeFloatingLabelColor\n }\n });\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAyB,wCAAwC;AAClF,SAAqBC,YAAY,QAAQ,+CAA+C;AAaxF,OAAO,MAAMC,aAAa,GAAG,UAAU;AACvCF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACrD,MAAMC,aAA2B,GAAGL,YAAY,CAAC;IAC7CM,IAAI,EAAE;MACJC,SAAS,EAAE,EAAE;MACbC,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE,CAAC;MAChBC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,EAAE;MACfC,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAEX,cAAc,CAACY,gBAAgB;MAC5CC,eAAe,EAAEb,cAAc,CAACc,oBAAoB;MACpDC,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEhB,cAAc,CAACiB;IAC7B,CAAC;IACDC,IAAI,EAAE;MACJC,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE;MACPC,iBAAiB,EAAErB,cAAc,CAACsB;IACpC,CAAC;IACDC,OAAO,EAAG;MACRZ,WAAW,EAAEX,cAAc,CAACwB;IAC9B,CAAC;IACDC,eAAe,EAAE;MACjBC,KAAK,EAAE1B,cAAc,CAAC2B;IACtB,CAAC;IACDC,aAAa,EAAE,CAAC,CAAC;IACjBC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,QAAQ,EAAE;MACR3B,IAAI,EAAE;QACJ4B,KAAK,EAAE,MAAM;QACbC,MAAM,EAAE,EAAE;QACVjB,YAAY,EAAE;MAChB;IACF;EACJ,CAAC,CAAC;EAEFd,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;;EAE1C;EACAD,QAAQ,CAAC,4BAA4B,EAAE,EAAE,EAAE;IACzCE,IAAI,EAAE;MACJ8B,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE;IACZ,CAAC;IACDjB,IAAI,EAAE,CACN;EACF,CAAe,CAAC;;EAEhB;EACAjB,QAAQ,CAAC,gCAAgC,EAAE,EAAE,EAAE;IAC7CE,IAAI,EAAE;MACJ8B,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE;IACZ,CAAC;IACDjB,IAAI,EAAE,CAAC;EACT,CAAe,CAAC;EAEhBjB,QAAQ,CAACH,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE;IACtCK,IAAI,EAAG;MACLU,eAAe,EAAEb,cAAc,CAACoC;IAClC;EACJ,CAAC,CAAC;EACFnC,QAAQ,CAACH,aAAa,GAAG,MAAM,EAAE,EAAE,EAAE;IACjCK,IAAI,EAAC;MACHkC,SAAS,EAAE;IACb;EACJ,CAAC,CAAC;EACFpC,QAAQ,CAACH,aAAa,GAAG,aAAa,EAAE,EAAE,EAAE;IAC1CK,IAAI,EAAE;MACJC,SAAS,EAAE;IACb,CAAC;IACDwB,aAAa,EAAE;MACbU,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,EAAE;MACPC,IAAI,EAAE,EAAE;MACRrB,QAAQ,EAAE,EAAE;MACZO,KAAK,EAAE1B,cAAc,CAACyC;IACxB,CAAC;IACDZ,mBAAmB,EAAE;MACnBH,KAAK,EAAE1B,cAAc,CAAC0C;IACxB;EACF,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -66,7 +66,6 @@ export default class WmTextarea extends BaseInputComponent {
|
|
|
66
66
|
floatingLabel: props.floatinglabel,
|
|
67
67
|
floatingLabelStyle: this.styles.floatingLabel,
|
|
68
68
|
activeFloatingLabelStyle: this.styles.activeFloatingLabel,
|
|
69
|
-
inactiveFloatingLabelStyle: this.styles.inactiveFloatingLabel,
|
|
70
69
|
autoComplete: props.autocomplete ? 'username' : 'off',
|
|
71
70
|
autoFocus: props.autofocus,
|
|
72
71
|
editable: props.disabled || props.readonly ? false : true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","Text","WmTextareaProps","DEFAULT_CLASS","BaseInputComponent","BaseInputState","WMTextInput","isNull","AccessibilityWidgetType","getAccessibilityProps","createSkeleton","WmTextareaState","WmTextarea","constructor","props","getStyleClassName","classes","state","floatinglabel","push","join","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","styles","root","width","skeletonheight","_this$styles$root2","height","theme","skeleton","renderWidget","_this$state$textValue","opts","valueExpr","OS","textValue","toString","createElement","Fragment","_extends","getTestPropsForInput","TEXTAREA","ref","widgetRef","selectionStart","selectionEnd","cursor","placeholderTextColor","placeholderText","color","isInputFocused","style","text","isValid","invalid","focused","multiline","numberOfLines","background","_background","keyboardType","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","
|
|
1
|
+
{"version":3,"names":["React","Platform","Text","WmTextareaProps","DEFAULT_CLASS","BaseInputComponent","BaseInputState","WMTextInput","isNull","AccessibilityWidgetType","getAccessibilityProps","createSkeleton","WmTextareaState","WmTextarea","constructor","props","getStyleClassName","classes","state","floatinglabel","push","join","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","styles","root","width","skeletonheight","_this$styles$root2","height","theme","skeleton","renderWidget","_this$state$textValue","opts","valueExpr","OS","textValue","toString","createElement","Fragment","_extends","getTestPropsForInput","TEXTAREA","ref","widgetRef","selectionStart","selectionEnd","cursor","placeholderTextColor","placeholderText","color","isInputFocused","style","text","isValid","invalid","focused","multiline","numberOfLines","background","_background","keyboardType","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","autoComplete","autocomplete","autoFocus","autofocus","editable","disabled","readonly","maxLength","maxchars","placeholder","onBlur","bind","onFocus","onKeyPress","onChangeText","onChange","invokeChange","allowContentSelection","userSelect","handleLayout","limitdisplaytext","helpText"],"sources":["textarea.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Platform,Text } from 'react-native';\nimport WmTextareaProps from './textarea.props';\nimport { DEFAULT_CLASS, WmTextareaStyles } from './textarea.styles';\nimport {\n BaseInputComponent,\n BaseInputState\n} from '@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.component';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { isNull } from 'lodash';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmTextareaState extends BaseInputState<WmTextareaProps> {}\n\nexport default class WmTextarea extends BaseInputComponent<WmTextareaProps, WmTextareaState, WmTextareaStyles> {\n\n constructor(props: WmTextareaProps) {\n super(props, DEFAULT_CLASS, new WmTextareaProps(), new WmTextareaState());\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-textarea-with-label'); \n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n public renderSkeleton(props: WmTextareaProps): React.ReactNode {\n let skeletonWidth, skeletonHeight;\n if(this.props.skeletonwidth == \"0\") {\n skeletonWidth = 0\n } else {\n skeletonWidth = this.props.skeletonwidth || this.styles.root?.width\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n } else {\n skeletonHeight = this.props.skeletonheight || this.styles.root?.height;\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n\n renderWidget(props: WmTextareaProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return ( \n <>\n <WMTextInput\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(\n AccessibilityWidgetType.TEXTAREA,\n props\n )}\n ref={(ref: any) => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n placeholderTextColor={this.styles.placeholderText.color as any}\n isInputFocused={ this.state.isInputFocused }\n style={[this.styles.root, this.styles.text, this.state.isValid ? {} : this.styles.invalid, this.state.isInputFocused ? this.styles.focused : {}]}\n multiline={true}\n numberOfLines={4}\n background={this._background}\n keyboardType={this.state.keyboardType}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.styles.activeFloatingLabel}\n autoComplete={props.autocomplete ? 'username' : 'off'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n maxLength={props.maxchars}\n placeholder={props.placeholder || 'Place your text'}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.onKeyPress.bind(this)}\n onChangeText={this.onChangeText.bind(this)}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n handleLayout={this.handleLayout}\n />\n { (props.maxchars && props.limitdisplaytext) && <Text\n style={[\n this.styles.helpText\n ]} > \n {props.limitdisplaytext} \n </Text>}\n </>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,6 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
20
20
|
},
|
|
21
21
|
floatingLabel: {},
|
|
22
22
|
activeFloatingLabel: {},
|
|
23
|
-
inactiveFloatingLabel: {},
|
|
24
23
|
invalid: {
|
|
25
24
|
borderBottomColor: 'red'
|
|
26
25
|
},
|
|
@@ -79,9 +78,6 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
79
78
|
},
|
|
80
79
|
activeFloatingLabel: {
|
|
81
80
|
color: themeVariables.activeFloatingLabelColor
|
|
82
|
-
},
|
|
83
|
-
inactiveFloatingLabel: {
|
|
84
|
-
color: themeVariables.floatingLabelColor
|
|
85
81
|
}
|
|
86
82
|
});
|
|
87
83
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","ThemeVariables","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","padding","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","minHeight","text","fontSize","textAlignVertical","floatingLabel","activeFloatingLabel","
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","ThemeVariables","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","padding","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","minHeight","text","fontSize","textAlignVertical","floatingLabel","activeFloatingLabel","invalid","borderBottomColor","focused","inputFocusBorderColor","placeholderText","color","inputPlaceholderColor","skeleton","width","height","helpText","marginTop","textAlign","INSTANCE","textAreaHelpTextColor","flex","minWidth","maxWidth","inputDisabledBgColor","paddingTop","position","top","left","floatingLabelColor","activeFloatingLabelColor"],"sources":["textarea.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\n\nexport type WmTextareaStyles = BaseStyles & {\n invalid: AllStyle;\n focused: AllStyle;\n placeholderText: AllStyle;\n floatingLabel: AllStyle;\n activeFloatingLabel: AllStyle;\n skeleton: WmSkeletonStyles;\n helpText:AllStyle;\n};\n\nexport const DEFAULT_CLASS = 'app-textarea';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmTextareaStyles = defineStyles({\n root: {\n padding:12,\n borderWidth:1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n fontFamily: themeVariables.baseFont,\n minHeight: 160,\n },\n text: {\n fontSize: 16,\n textAlignVertical: 'top'\n },\n floatingLabel: {},\n activeFloatingLabel: {},\n invalid: {\n borderBottomColor: 'red'\n },\n focused : {\n borderColor: themeVariables.inputFocusBorderColor,\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n skeleton: {\n root: {\n width: '100%',\n height: 84,\n borderRadius: 4\n }\n } as any as WmSkeletonStyles,\n helpText:{\n marginTop:5,\n textAlign:'right',\n fontSize: 13,\n color: ThemeVariables.INSTANCE.textAreaHelpTextColor\n }\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n \n // Add horizontal form input styles for horizontal form field layouts - positioned early to avoid overriding more specific styles\n addStyle('form-textarea-input-horizontal', '', {\n root: {\n flex: 1,\n minWidth: 0, // Allow shrinking below intrinsic content size if needed\n maxWidth: '100%', // Prevent overflow\n },\n text: {}\n } as BaseStyles);\n \n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root:{\n textAlign: 'right'\n }\n })\n addStyle(DEFAULT_CLASS + '-with-label', '', {\n text:{\n paddingTop: 24\n },\n floatingLabel: {\n position: 'absolute',\n top: 12,\n left: 16,\n fontSize: 14,\n color: themeVariables.floatingLabelColor\n },\n activeFloatingLabel: {\n color: themeVariables.activeFloatingLabelColor\n }\n })\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAoB,wCAAwC;AAC7E,SAAqBC,YAAY,QAAQ,+CAA+C;AAExF,OAAOC,cAAc,MAAM,kDAAkD;AAY7E,OAAO,MAAMC,aAAa,GAAG,cAAc;AAC3CH,UAAU,CAACI,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACrD,MAAMC,aAA+B,GAAGN,YAAY,CAAC;IACjDO,IAAI,EAAE;MACJC,OAAO,EAAC,EAAE;MACVC,WAAW,EAAC,CAAC;MACbC,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAEP,cAAc,CAACQ,gBAAgB;MAC5CC,eAAe,EAAET,cAAc,CAACU,oBAAoB;MACpDC,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEZ,cAAc,CAACa,QAAQ;MACnCC,SAAS,EAAE;IACb,CAAC;IACDC,IAAI,EAAE;MACJC,QAAQ,EAAE,EAAE;MACZC,iBAAiB,EAAE;IACrB,CAAC;IACDC,aAAa,EAAE,CAAC,CAAC;IACjBC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,OAAO,EAAE;MACPC,iBAAiB,EAAE;IACrB,CAAC;IACDC,OAAO,EAAG;MACRf,WAAW,EAAEP,cAAc,CAACuB;IAC9B,CAAC;IACDC,eAAe,EAAE;MACfC,KAAK,EAAEzB,cAAc,CAAC0B;IACxB,CAAC;IACDC,QAAQ,EAAE;MACRxB,IAAI,EAAE;QACJyB,KAAK,EAAE,MAAM;QACbC,MAAM,EAAE,EAAE;QACVlB,YAAY,EAAE;MAChB;IACF,CAA4B;IAC5BmB,QAAQ,EAAC;MACPC,SAAS,EAAC,CAAC;MACXC,SAAS,EAAC,OAAO;MACjBhB,QAAQ,EAAE,EAAE;MACZS,KAAK,EAAE5B,cAAc,CAACoC,QAAQ,CAACC;IACjC;EACJ,CAAC,CAAC;EAEFjC,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;;EAE1C;EACAD,QAAQ,CAAC,gCAAgC,EAAE,EAAE,EAAE;IAC7CE,IAAI,EAAE;MACJgC,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,CAAC;MAAE;MACbC,QAAQ,EAAE,MAAM,CAAE;IACpB,CAAC;IACDtB,IAAI,EAAE,CAAC;EACT,CAAe,CAAC;EAEhBd,QAAQ,CAACH,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE;IACtCK,IAAI,EAAG;MACLM,eAAe,EAAET,cAAc,CAACsC;IAClC;EACJ,CAAC,CAAC;EACFrC,QAAQ,CAACH,aAAa,GAAG,MAAM,EAAE,EAAE,EAAE;IACnCK,IAAI,EAAC;MACH6B,SAAS,EAAE;IACb;EACF,CAAC,CAAC;EACF/B,QAAQ,CAACH,aAAa,GAAG,aAAa,EAAE,EAAE,EAAE;IAC1CiB,IAAI,EAAC;MACHwB,UAAU,EAAE;IACd,CAAC;IACDrB,aAAa,EAAE;MACbsB,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,EAAE;MACPC,IAAI,EAAE,EAAE;MACR1B,QAAQ,EAAE,EAAE;MACZS,KAAK,EAAEzB,cAAc,CAAC2C;IACxB,CAAC;IACDxB,mBAAmB,EAAE;MACnBM,KAAK,EAAEzB,cAAc,CAAC4C;IACxB;EACF,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -70,10 +70,10 @@ export default class WmPopover extends BaseComponent {
|
|
|
70
70
|
}
|
|
71
71
|
this.isRTL ? position.right = x : position.left = x;
|
|
72
72
|
if (x + popoverwidth > windowDimensions.width) {
|
|
73
|
-
this.isRTL ? position.right = x + width - popoverwidth : position.left = x
|
|
73
|
+
this.isRTL ? position.right = x + width - popoverwidth : position.left = x;
|
|
74
74
|
}
|
|
75
|
-
const yOffset = Platform.OS == 'ios' ? (this === null || this === void 0 || (_this$insets = this.insets) === null || _this$insets === void 0 ? void 0 : _this$insets.top) || 0
|
|
76
|
-
position.top = y + height
|
|
75
|
+
const yOffset = Platform.OS == 'ios' ? 0 : (this === null || this === void 0 || (_this$insets = this.insets) === null || _this$insets === void 0 ? void 0 : _this$insets.top) || 0;
|
|
76
|
+
position.top = y + height + yOffset;
|
|
77
77
|
this.updateState({
|
|
78
78
|
position: position
|
|
79
79
|
}, callback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isString","TouchableOpacity","Text","View","Dimensions","Animated","PanResponder","Platform","BaseComponent","BaseComponentState","ModalConsumer","WmAnchor","WmPopoverProps","DEFAULT_CLASS","WmContainer","AccessibilityWidgetType","getAccessibilityProps","ScrollView","GestureHandlerRootView","SafeAreaInsetsContext","WmPopoverState","constructor","args","_defineProperty","WmPopover","props","Value","top","bottom","left","right","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderMove","_","gestureState","dy","Number","styles","popover","minHeight","dragY","setValue","onPanResponderRelease","timing","toValue","maxHeight","duration","useNativeDriver","start","callback","position","state","type","windowDimensions","get","view","measureInWindow","x","y","width","height","_this$insets","popoverwidth","parseInt","isRTL","yOffset","OS","insets","updateState","e","computePosition","isOpened","invokeEventCallback","stopPropagation","autoopen","showPopover","getDefaultStyles","isActionSheet","theme","getStyle","defaultClass","renderPopoverContent","dimensions","createElement","style","mergeStyle","onScroll","event","notify","scrollEventThrottle","accessible","accessibilityViewIsModal","title","_extends","getTestPropsForAction","activeOpacity","onPress","autoclose","hide","popoverContent","root","onLoad","renderPartial","p","children","onPropertyChange","name","$new","$old","prepareModalOptions","content","modalService","o","modalOptions","modalStyle","modal","contentStyle","modalContent","isModal","centered","animation","contentanimation","onClose","setState","isPartialLoaded","hideModal","renderWidget","popoverheight","Consumer","onLayout","handleLayout","ref","POVOVER","_background","id","getTestId","caption","badgevalue","iconclass","iconposition","iconheight","iconwidth","iconmargin","iconurl","link","onTap","showModal","panResponder","panHandlers"],"sources":["popover.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isString } from 'lodash-es';\nimport { LayoutChangeEvent, TouchableOpacity, Text, View, Dimensions, Animated, PanResponder, Platform } from 'react-native';\nimport { BaseComponent, BaseComponentState, BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport { SyntheticEvent } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport WmAnchor from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.component';\n\nimport WmPopoverProps from './popover.props';\nimport { DEFAULT_CLASS, WmPopoverStyles } from './popover.styles';\nimport WmContainer from '../../container/container.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport { ScrollView, GestureHandlerRootView } from 'react-native-gesture-handler';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport { SafeAreaInsetsContext, EdgeInsets } from 'react-native-safe-area-context';\n\n\nexport class WmPopoverState extends BaseComponentState<WmPopoverProps> {\n isOpened: boolean = false;\n modalOptions = {} as ModalOptions;\n position = {} as PopoverPosition;\n isPartialLoaded = false;\n}\n\nexport interface PopoverPosition {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport default class WmPopover extends BaseComponent<WmPopoverProps, WmPopoverState, WmPopoverStyles> {\n\n view: View = null as any;\n dragY = new Animated.Value(0);\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmPopoverProps) {\n super(props, DEFAULT_CLASS, new WmPopoverProps(), new WmPopoverState());\n\n if (this.state.props.autoopen) {\n this.showPopover(); \n }\n }\n\n public panResponder = PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0 && gestureState.dy < Number(this.styles.popover.minHeight)) {\n this.dragY.setValue(Number(this.styles.popover.minHeight) - gestureState.dy);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n if (gestureState.dy < -50) {\n Animated.timing(this.dragY, {\n toValue: Number(this.styles.popover.maxHeight),\n duration: 500,\n useNativeDriver: false,\n }).start();\n } else {\n Animated.timing(this.dragY, {\n toValue: Number(this.styles.popover.minHeight),\n duration: 500,\n useNativeDriver: false,\n }).start();\n }\n },\n });\n \n getDefaultStyles() {\n const isActionSheet = this.state.props.type === 'action-sheet';\n return this.theme.getStyle(`${this.defaultClass} ${isActionSheet ? 'app-popover-action-sheet' : ''}`);\n }\n\n private computePosition = (callback?: () => void) => {\n const position = {} as PopoverPosition;\n if (this.state.props.type === 'dropdown') {\n const windowDimensions = Dimensions.get('window');\n this.view.measureInWindow((x, y, width, height) => {\n let popoverwidth = this.state.props.popoverwidth as any;\n if (popoverwidth && isString(popoverwidth)) {\n popoverwidth = parseInt(popoverwidth);\n }\n \n this.isRTL ? position.right = x : position.left = x;\n \n if (x + popoverwidth > windowDimensions.width) {\n this.isRTL\n ? (position.right = x + width - popoverwidth)\n : (position.left = x + width - popoverwidth);\n }\n const yOffset = Platform.OS == 'ios' ? (this?.insets?.top || 0) : 0;\n position.top = y + height - yOffset;\n this.updateState({position: position} as WmPopoverState, callback);\n });\n } else if (callback) {\n callback();\n }\n\n };\n\n public renderPopoverContent (props : WmPopoverProps , styles : WmPopoverStyles, dimensions: any) {\n return (\n <ScrollView style={props.type === \"action-sheet\" ? {dimensions} : this.theme.mergeStyle(styles.popover, dimensions)} \n onScroll={(event) => {this.notify('scroll', [event])}}\n scrollEventThrottle={48}\n accessible={props.type !== \"dropdown\"} accessibilityViewIsModal>\n {props.title ? (<Text style={styles.title}>{props.title}</Text>): null}\n <TouchableOpacity \n {...this.getTestPropsForAction('outercontent')}\n activeOpacity={1} onPress={() => {\n props.autoclose === 'always' && this.hide()\n }} style={styles.popoverContent.root}>\n <WmContainer\n styles={styles.popoverContent}\n onLoad={() => this.invokeEventCallback('onLoad', [this])}\n {...props.renderPartial ? {\n renderPartial: (p: any, onLoad: Function) => {\n return props.renderPartial && props.renderPartial(props, onLoad);\n }\n } : {}}>\n {props.renderPartial ? null : props.children}\n </WmContainer>\n </TouchableOpacity>\n </ScrollView>\n )}\n\n public showPopover = (e?: SyntheticEvent) => {\n this.computePosition(() => {\n this.updateState({ isOpened: true } as WmPopoverState);\n this.invokeEventCallback('onShow', [e, this]);\n });\n e?.stopPropagation();\n };\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case \"autoopen\":\n if($new){\n this.showPopover && this.showPopover()\n }\n else{\n this.hide && this.hide()\n }\n }\n }\n\n\n public hide = () => {};\n\n prepareModalOptions(content: React.ReactNode, styles: WmPopoverStyles, modalService: ModalService) {\n const o = this.state.modalOptions;\n o.modalStyle = styles.modal;\n o.contentStyle = {...styles.modalContent, ...this.state.position};\n o.content = content;\n o.isModal = this.state.props.autoclose !== 'disabled';\n o.centered = true;\n o.animation = this.state.props.contentanimation || 'slideInUp';\n o.onClose = () => {\n this.hide = () => {};\n this.setState({ isOpened: false, isPartialLoaded: false, modalOptions: {} as ModalOptions });\n this.invokeEventCallback('onHide', [null, this]);\n };\n this.hide = () => modalService.hideModal(this.state.modalOptions);\n return o;\n }\n\n renderWidget(props: WmPopoverProps) {\n let dimensions = {} as any;\n const styles = this.theme.mergeStyle(this.theme.getStyle('popover-' + props.type), this.styles);\n if (props.type === 'dropdown') {\n if (props.popoverwidth) {\n dimensions.width = props.popoverwidth;\n styles.modalContent.width = props.popoverwidth;\n }\n if (props.popoverheight) {\n dimensions.height = props.popoverheight;\n }\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = {top: 0, bottom: 0, left: 0, right: 0})=>{\n this.insets = insets;\n return (\n <View style={styles.root} onLayout={(e: LayoutChangeEvent)=>this.handleLayout(e)} ref={ref => {this.view = ref as View}} {...getAccessibilityProps(AccessibilityWidgetType.POVOVER, props)}>\n {this._background}\n <WmAnchor\n id={this.getTestId('trigger')}\n animation={props.animation}\n caption={props.caption}\n badgevalue={props.badgevalue}\n iconclass={props.iconclass}\n iconposition={props.iconposition}\n iconheight={props.iconheight}\n iconwidth={props.iconwidth}\n iconmargin={props.iconmargin}\n iconurl={props.iconurl}\n styles={styles.link}\n onTap={this.showPopover}\n accessible={false}/>\n {this.state.isOpened ? (\n <ModalConsumer>\n {(modalService: ModalService) => {\n modalService.showModal(this.prepareModalOptions(props.type === 'action-sheet' ? (\n <Animated.View style= {[styles.popover,{ height: this.dragY }]} {...this.panResponder.panHandlers}>\n <GestureHandlerRootView>\n {this.renderPopoverContent(props, styles, dimensions)}\n </GestureHandlerRootView>\n </Animated.View>\n ): (this.renderPopoverContent(props, styles, dimensions)), styles, modalService));\n return null;\n }}\n </ModalConsumer>) : null}\n </View>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","isString","TouchableOpacity","Text","View","Dimensions","Animated","PanResponder","Platform","BaseComponent","BaseComponentState","ModalConsumer","WmAnchor","WmPopoverProps","DEFAULT_CLASS","WmContainer","AccessibilityWidgetType","getAccessibilityProps","ScrollView","GestureHandlerRootView","SafeAreaInsetsContext","WmPopoverState","constructor","args","_defineProperty","WmPopover","props","Value","top","bottom","left","right","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderMove","_","gestureState","dy","Number","styles","popover","minHeight","dragY","setValue","onPanResponderRelease","timing","toValue","maxHeight","duration","useNativeDriver","start","callback","position","state","type","windowDimensions","get","view","measureInWindow","x","y","width","height","_this$insets","popoverwidth","parseInt","isRTL","yOffset","OS","insets","updateState","e","computePosition","isOpened","invokeEventCallback","stopPropagation","autoopen","showPopover","getDefaultStyles","isActionSheet","theme","getStyle","defaultClass","renderPopoverContent","dimensions","createElement","style","mergeStyle","onScroll","event","notify","scrollEventThrottle","accessible","accessibilityViewIsModal","title","_extends","getTestPropsForAction","activeOpacity","onPress","autoclose","hide","popoverContent","root","onLoad","renderPartial","p","children","onPropertyChange","name","$new","$old","prepareModalOptions","content","modalService","o","modalOptions","modalStyle","modal","contentStyle","modalContent","isModal","centered","animation","contentanimation","onClose","setState","isPartialLoaded","hideModal","renderWidget","popoverheight","Consumer","onLayout","handleLayout","ref","POVOVER","_background","id","getTestId","caption","badgevalue","iconclass","iconposition","iconheight","iconwidth","iconmargin","iconurl","link","onTap","showModal","panResponder","panHandlers"],"sources":["popover.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isString } from 'lodash-es';\nimport { LayoutChangeEvent, TouchableOpacity, Text, View, Dimensions, Animated, PanResponder, Platform } from 'react-native';\nimport { BaseComponent, BaseComponentState, BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport { SyntheticEvent } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport WmAnchor from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.component';\n\nimport WmPopoverProps from './popover.props';\nimport { DEFAULT_CLASS, WmPopoverStyles } from './popover.styles';\nimport WmContainer from '../../container/container.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport { ScrollView, GestureHandlerRootView } from 'react-native-gesture-handler';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport { SafeAreaInsetsContext, EdgeInsets } from 'react-native-safe-area-context';\n\n\nexport class WmPopoverState extends BaseComponentState<WmPopoverProps> {\n isOpened: boolean = false;\n modalOptions = {} as ModalOptions;\n position = {} as PopoverPosition;\n isPartialLoaded = false;\n}\n\nexport interface PopoverPosition {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport default class WmPopover extends BaseComponent<WmPopoverProps, WmPopoverState, WmPopoverStyles> {\n\n view: View = null as any;\n dragY = new Animated.Value(0);\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmPopoverProps) {\n super(props, DEFAULT_CLASS, new WmPopoverProps(), new WmPopoverState());\n\n if (this.state.props.autoopen) {\n this.showPopover(); \n }\n }\n\n public panResponder = PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0 && gestureState.dy < Number(this.styles.popover.minHeight)) {\n this.dragY.setValue(Number(this.styles.popover.minHeight) - gestureState.dy);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n if (gestureState.dy < -50) {\n Animated.timing(this.dragY, {\n toValue: Number(this.styles.popover.maxHeight),\n duration: 500,\n useNativeDriver: false,\n }).start();\n } else {\n Animated.timing(this.dragY, {\n toValue: Number(this.styles.popover.minHeight),\n duration: 500,\n useNativeDriver: false,\n }).start();\n }\n },\n });\n \n getDefaultStyles() {\n const isActionSheet = this.state.props.type === 'action-sheet';\n return this.theme.getStyle(`${this.defaultClass} ${isActionSheet ? 'app-popover-action-sheet' : ''}`);\n }\n\n private computePosition = (callback?: () => void) => {\n const position = {} as PopoverPosition;\n if (this.state.props.type === 'dropdown') {\n const windowDimensions = Dimensions.get('window');\n this.view.measureInWindow((x, y, width, height) => {\n let popoverwidth = this.state.props.popoverwidth as any;\n if (popoverwidth && isString(popoverwidth)) {\n popoverwidth = parseInt(popoverwidth);\n }\n \n this.isRTL ? position.right = x : position.left = x;\n \n if (x + popoverwidth > windowDimensions.width) {\n this.isRTL\n ? (position.right = x + width - popoverwidth)\n : (position.left = x);\n }\n const yOffset = Platform.OS == 'ios' ? 0 : (this?.insets?.top || 0);\n position.top = y + height + yOffset;\n this.updateState({position: position} as WmPopoverState, callback);\n });\n } else if (callback) {\n callback();\n }\n\n };\n\n public renderPopoverContent (props : WmPopoverProps , styles : WmPopoverStyles, dimensions: any) {\n return (\n <ScrollView style={props.type === \"action-sheet\" ? {dimensions} : this.theme.mergeStyle(styles.popover, dimensions)} \n onScroll={(event) => {this.notify('scroll', [event])}}\n scrollEventThrottle={48}\n accessible={props.type !== \"dropdown\"} accessibilityViewIsModal>\n {props.title ? (<Text style={styles.title}>{props.title}</Text>): null}\n <TouchableOpacity \n {...this.getTestPropsForAction('outercontent')}\n activeOpacity={1} onPress={() => {\n props.autoclose === 'always' && this.hide()\n }} style={styles.popoverContent.root}>\n <WmContainer\n styles={styles.popoverContent}\n onLoad={() => this.invokeEventCallback('onLoad', [this])}\n {...props.renderPartial ? {\n renderPartial: (p: any, onLoad: Function) => {\n return props.renderPartial && props.renderPartial(props, onLoad);\n }\n } : {}}>\n {props.renderPartial ? null : props.children}\n </WmContainer>\n </TouchableOpacity>\n </ScrollView>\n )}\n\n public showPopover = (e?: SyntheticEvent) => {\n this.computePosition(() => {\n this.updateState({ isOpened: true } as WmPopoverState);\n this.invokeEventCallback('onShow', [e, this]);\n });\n e?.stopPropagation();\n };\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case \"autoopen\":\n if($new){\n this.showPopover && this.showPopover()\n }\n else{\n this.hide && this.hide()\n }\n }\n }\n\n\n public hide = () => {};\n\n prepareModalOptions(content: React.ReactNode, styles: WmPopoverStyles, modalService: ModalService) {\n const o = this.state.modalOptions;\n o.modalStyle = styles.modal;\n o.contentStyle = {...styles.modalContent, ...this.state.position};\n o.content = content;\n o.isModal = this.state.props.autoclose !== 'disabled';\n o.centered = true;\n o.animation = this.state.props.contentanimation || 'slideInUp';\n o.onClose = () => {\n this.hide = () => {};\n this.setState({ isOpened: false, isPartialLoaded: false, modalOptions: {} as ModalOptions });\n this.invokeEventCallback('onHide', [null, this]);\n };\n this.hide = () => modalService.hideModal(this.state.modalOptions);\n return o;\n }\n\n renderWidget(props: WmPopoverProps) {\n let dimensions = {} as any;\n const styles = this.theme.mergeStyle(this.theme.getStyle('popover-' + props.type), this.styles);\n if (props.type === 'dropdown') {\n if (props.popoverwidth) {\n dimensions.width = props.popoverwidth;\n styles.modalContent.width = props.popoverwidth;\n }\n if (props.popoverheight) {\n dimensions.height = props.popoverheight;\n }\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = {top: 0, bottom: 0, left: 0, right: 0})=>{\n this.insets = insets;\n return (\n <View style={styles.root} onLayout={(e: LayoutChangeEvent)=>this.handleLayout(e)} ref={ref => {this.view = ref as View}} {...getAccessibilityProps(AccessibilityWidgetType.POVOVER, props)}>\n {this._background}\n <WmAnchor\n id={this.getTestId('trigger')}\n animation={props.animation}\n caption={props.caption}\n badgevalue={props.badgevalue}\n iconclass={props.iconclass}\n iconposition={props.iconposition}\n iconheight={props.iconheight}\n iconwidth={props.iconwidth}\n iconmargin={props.iconmargin}\n iconurl={props.iconurl}\n styles={styles.link}\n onTap={this.showPopover}\n accessible={false}/>\n {this.state.isOpened ? (\n <ModalConsumer>\n {(modalService: ModalService) => {\n modalService.showModal(this.prepareModalOptions(props.type === 'action-sheet' ? (\n <Animated.View style= {[styles.popover,{ height: this.dragY }]} {...this.panResponder.panHandlers}>\n <GestureHandlerRootView>\n {this.renderPopoverContent(props, styles, dimensions)}\n </GestureHandlerRootView>\n </Animated.View>\n ): (this.renderPopoverContent(props, styles, dimensions)), styles, modalService));\n return null;\n }}\n </ModalConsumer>) : null}\n </View>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","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 }
|
|
1
|
+
{"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n}"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
/**
|
|
5
|
+
* Advanced Promise Rejection Tracker
|
|
6
|
+
*
|
|
7
|
+
* Provides comprehensive promise rejection tracking across different JavaScript engines.
|
|
8
|
+
* This module addresses the critical gap where API call failures and async function errors
|
|
9
|
+
* are not caught by React Error Boundaries, ensuring all promise rejections are handled.
|
|
10
|
+
*
|
|
11
|
+
* Engine Support:
|
|
12
|
+
* - Web: Uses browser's 'unhandledrejection' event
|
|
13
|
+
* - Hermes: Uses HermesInternal.enablePromiseRejectionTracker
|
|
14
|
+
* - JSC: Uses React Native's 'promise/setimmediate/rejection-tracking' module
|
|
15
|
+
*
|
|
16
|
+
* Coverage Includes:
|
|
17
|
+
* - API call failures (fetch, axios, any HTTP library)
|
|
18
|
+
* - Async function errors (unhandled throws in async/await)
|
|
19
|
+
* - Manual Promise.reject() calls
|
|
20
|
+
* - Third-party library promise rejections
|
|
21
|
+
*
|
|
22
|
+
* Research Notes:
|
|
23
|
+
* This implementation was developed through extensive research into React Native's
|
|
24
|
+
* promise handling across different engines. Each engine has its own optimal approach:
|
|
25
|
+
* - Hermes provides a native tracking API that hooks into the engine's internals
|
|
26
|
+
* - JSC can use React Native's internal promise tracking module
|
|
27
|
+
* - Web browsers have standardized unhandledrejection events
|
|
28
|
+
*
|
|
29
|
+
* The approach automatically detects the best available method and falls back
|
|
30
|
+
* gracefully when native tracking is unavailable.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
import { Platform } from 'react-native';
|
|
34
|
+
|
|
35
|
+
// TypeScript declarations for global objects
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Multi-engine promise rejection tracking implementation
|
|
39
|
+
*/
|
|
40
|
+
export class AdvancedPromiseRejectionTracker {
|
|
41
|
+
constructor(onRejection) {
|
|
42
|
+
_defineProperty(this, "onRejectionHandler", void 0);
|
|
43
|
+
_defineProperty(this, "cleanupFunctions", []);
|
|
44
|
+
this.onRejectionHandler = onRejection;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Setup promise rejection tracking based on available APIs
|
|
49
|
+
* Returns true if native tracking was enabled, false if fallback used
|
|
50
|
+
*/
|
|
51
|
+
setup() {
|
|
52
|
+
// Automatically detect and setup the best available promise rejection tracking method
|
|
53
|
+
|
|
54
|
+
if (Platform.OS === 'web') {
|
|
55
|
+
return this.setupWebTracking();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// For mobile platforms, try native tracking methods in order of preference
|
|
59
|
+
if (this.setupHermesTracking()) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Fallback to React Native internal tracking for JSC
|
|
64
|
+
if (this.setupReactNativeTracking()) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// No native tracking available - this should rarely happen in modern RN versions
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Method 1: Web Environment - Use unhandledrejection event
|
|
74
|
+
*/
|
|
75
|
+
setupWebTracking() {
|
|
76
|
+
try {
|
|
77
|
+
if (typeof window === 'undefined' || !window.addEventListener) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const handler = event => {
|
|
81
|
+
event.preventDefault(); // Prevent browser's default handling
|
|
82
|
+
this.onRejectionHandler(event.reason);
|
|
83
|
+
};
|
|
84
|
+
window.addEventListener('unhandledrejection', handler);
|
|
85
|
+
this.cleanupFunctions.push(() => {
|
|
86
|
+
window.removeEventListener('unhandledrejection', handler);
|
|
87
|
+
});
|
|
88
|
+
return true;
|
|
89
|
+
} catch (error) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Method 2: Hermes Engine - Use HermesInternal API
|
|
96
|
+
*/
|
|
97
|
+
setupHermesTracking() {
|
|
98
|
+
try {
|
|
99
|
+
// Check if Hermes engine is available
|
|
100
|
+
const hermesInternal = global.HermesInternal;
|
|
101
|
+
if (hermesInternal && typeof hermesInternal.enablePromiseRejectionTracker === 'function') {
|
|
102
|
+
hermesInternal.enablePromiseRejectionTracker({
|
|
103
|
+
allRejections: true,
|
|
104
|
+
// Track both handled and unhandled rejections
|
|
105
|
+
onUnhandled: (id, error) => {
|
|
106
|
+
this.onRejectionHandler(error);
|
|
107
|
+
},
|
|
108
|
+
onHandled: id => {
|
|
109
|
+
// Promise was handled later - could be used for analytics in the future
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// Cleanup function (if available)
|
|
114
|
+
this.cleanupFunctions.push(() => {
|
|
115
|
+
// Hermes doesn't provide a disable method, but we can set a no-op handler
|
|
116
|
+
if (hermesInternal !== null && hermesInternal !== void 0 && hermesInternal.enablePromiseRejectionTracker) {
|
|
117
|
+
hermesInternal.enablePromiseRejectionTracker({
|
|
118
|
+
allRejections: false,
|
|
119
|
+
onUnhandled: () => {},
|
|
120
|
+
onHandled: () => {}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
return false;
|
|
127
|
+
} catch (error) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Method 3: React Native Internal - Use promise/setimmediate/rejection-tracking for JSC
|
|
134
|
+
*/
|
|
135
|
+
setupReactNativeTracking() {
|
|
136
|
+
try {
|
|
137
|
+
// Try to access React Native's internal promise tracking module
|
|
138
|
+
const tracking = require('promise/setimmediate/rejection-tracking');
|
|
139
|
+
if (tracking && typeof tracking.enable === 'function') {
|
|
140
|
+
tracking.enable({
|
|
141
|
+
allRejections: true,
|
|
142
|
+
onUnhandled: (id, error) => {
|
|
143
|
+
this.onRejectionHandler(error);
|
|
144
|
+
},
|
|
145
|
+
onHandled: id => {
|
|
146
|
+
// Promise was handled later - tracking for potential analytics
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
this.cleanupFunctions.push(() => {
|
|
150
|
+
// Try to disable tracking if possible
|
|
151
|
+
if (tracking.disable && typeof tracking.disable === 'function') {
|
|
152
|
+
tracking.disable();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
return false;
|
|
158
|
+
} catch (error) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Clean up all tracking mechanisms
|
|
165
|
+
*/
|
|
166
|
+
cleanup() {
|
|
167
|
+
// Clean up all tracking mechanisms and restore original state
|
|
168
|
+
this.cleanupFunctions.forEach(cleanup => {
|
|
169
|
+
try {
|
|
170
|
+
cleanup();
|
|
171
|
+
} catch (error) {
|
|
172
|
+
// Silently handle cleanup errors to avoid disrupting app shutdown
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
this.cleanupFunctions = [];
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Helper function to detect JavaScript engine (simplified for Web/Hermes/JSC)
|
|
181
|
+
*/
|
|
182
|
+
export function detectJavaScriptEngine() {
|
|
183
|
+
if (Platform.OS === 'web') {
|
|
184
|
+
return 'web';
|
|
185
|
+
}
|
|
186
|
+
if (typeof global.HermesInternal !== 'undefined') {
|
|
187
|
+
return 'hermes';
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// For non-Hermes engines on mobile, assume JSC (most common)
|
|
191
|
+
return 'jsc';
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Public API for easy integration
|
|
196
|
+
*/
|
|
197
|
+
/**
|
|
198
|
+
* Sets up advanced promise rejection tracking with automatic engine detection
|
|
199
|
+
* @param onRejection Callback function to handle unhandled promise rejections
|
|
200
|
+
* @returns AdvancedPromiseRejectionTracker instance for cleanup and testing
|
|
201
|
+
*/
|
|
202
|
+
export function setupAdvancedPromiseRejectionTracking(onRejection) {
|
|
203
|
+
const tracker = new AdvancedPromiseRejectionTracker(onRejection);
|
|
204
|
+
tracker.setup();
|
|
205
|
+
return tracker;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=advanced-promise-rejection-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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
|
@@ -296,12 +296,17 @@ export class BaseComponent extends React.Component {
|
|
|
296
296
|
invokeEventCallback(eventName, args) {
|
|
297
297
|
//@ts-ignore
|
|
298
298
|
const callBack = this.props[eventName];
|
|
299
|
+
const appConfig = injector.get('APP_CONFIG');
|
|
299
300
|
args = args && args.map(a => a === this ? this.proxy : a);
|
|
300
301
|
if (callBack) {
|
|
301
302
|
try {
|
|
302
303
|
return callBack.apply(this.proxy, args);
|
|
303
304
|
} catch (e) {
|
|
305
|
+
var _appConfig$preference;
|
|
304
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) === true) {
|
|
308
|
+
throw e; // Re-throwing error to let ErrorBoundary or Global Handler catch it
|
|
309
|
+
}
|
|
305
310
|
}
|
|
306
311
|
}
|
|
307
312
|
}
|