@wavemaker-ai/app-rn-runtime 1.0.0-rc.324 → 1.0.0-rc.328
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/advanced/offline-banner/offline-banner.component.js +68 -0
- package/components/advanced/offline-banner/offline-banner.component.js.map +1 -0
- package/components/advanced/offline-banner/offline-banner.props.js +12 -0
- package/components/advanced/offline-banner/offline-banner.props.js.map +1 -0
- package/components/advanced/offline-banner/offline-banner.styles.js +99 -0
- package/components/advanced/offline-banner/offline-banner.styles.js.map +1 -0
- package/components/advanced/webview/webview.component.js +2 -2
- package/components/advanced/webview/webview.component.js.map +1 -1
- package/components/advanced/webview/webview.props.js +1 -1
- package/components/advanced/webview/webview.props.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.component.js +156 -14
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.styles.js +0 -3
- package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
- package/components/basic/progress-circle/progress-circle.component.js +3 -1
- package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
- package/components/chart/area-chart/area-chart.component.js +86 -93
- package/components/chart/area-chart/area-chart.component.js.map +1 -1
- package/components/chart/area-chart/area-chart.props.js +2 -0
- package/components/chart/area-chart/area-chart.props.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js +79 -97
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/basechart.component.js +117 -96
- package/components/chart/basechart.component.js.map +1 -1
- package/components/chart/basechart.props.js +12 -0
- package/components/chart/basechart.props.js.map +1 -1
- package/components/chart/basechart.styles.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.component.js +72 -70
- package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.props.js +1 -0
- package/components/chart/bubble-chart/bubble-chart.props.js.map +1 -1
- package/components/chart/line-chart/line-chart.component.js +105 -79
- package/components/chart/line-chart/line-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.component.js +70 -166
- package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.props.js +1 -0
- package/components/chart/pie-chart/pie-chart.props.js.map +1 -1
- package/components/container/accordion/accordionpane/accordionpane.component.js +6 -2
- package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
- package/components/container/container.component.js +27 -1
- package/components/container/container.component.js.map +1 -1
- package/components/container/container.props.js +7 -0
- package/components/container/container.props.js.map +1 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +25 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -0
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.component.js +5 -14
- package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.props.js +0 -2
- package/components/container/tabs/tabheader/tabheader.props.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.styles.js +1 -43
- package/components/container/tabs/tabheader/tabheader.styles.js.map +1 -1
- package/components/container/tabs/tabpane/tabpane.component.js +6 -2
- package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
- package/components/container/tabs/tabs.component.js +2 -6
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/tabs/tabs.props.js +0 -2
- package/components/container/tabs/tabs.props.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js +28 -5
- package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.props.js +2 -0
- package/components/container/wizard/wizardstep/wizardstep.props.js.map +1 -1
- package/components/data/form/form-field/form-field.component.js +1 -0
- package/components/data/form/form-field/form-field.component.js.map +1 -1
- package/components/data/form/form-field/form-field.props.js +1 -0
- package/components/data/form/form-field/form-field.props.js.map +1 -1
- package/components/data/list/list-template/list-template.component.js +3 -0
- package/components/data/list/list-template/list-template.component.js.map +1 -1
- package/components/data/list/list.component.js +6 -4
- package/components/data/list/list.component.js.map +1 -1
- package/components/data/list/list.styles.js +1 -14
- package/components/data/list/list.styles.js.map +1 -1
- package/components/input/baseinput/baseinput.component.js +7 -0
- package/components/input/baseinput/baseinput.component.js.map +1 -1
- package/components/input/calendar/calendar.component.js +4 -0
- package/components/input/calendar/calendar.component.js.map +1 -1
- package/components/input/calendar/views/month-view.js +8 -1
- package/components/input/calendar/views/month-view.js.map +1 -1
- package/components/input/checkboxset/checkboxset.component.js.map +1 -1
- package/components/input/checkboxset/checkboxset.styles.js.map +1 -1
- package/components/input/chips/chips.component.js +3 -4
- package/components/input/chips/chips.component.js.map +1 -1
- package/components/input/chips/chips.styles.js +1 -2
- package/components/input/chips/chips.styles.js.map +1 -1
- package/components/input/currency/currency.component.js +1 -0
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/number/number.component.js +1 -0
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/switch/switch.component.js +2 -16
- package/components/input/switch/switch.component.js.map +1 -1
- package/components/input/switch/switch.props.js +0 -1
- package/components/input/switch/switch.props.js.map +1 -1
- package/components/input/switch/switch.styles.js +0 -19
- package/components/input/switch/switch.styles.js.map +1 -1
- package/components/input/text/text.component.js +14 -3
- 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 +3 -1
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +3 -2
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/toggle/toggle.component.js +4 -13
- package/components/input/toggle/toggle.component.js.map +1 -1
- package/components/input/toggle/toggle.props.js +1 -3
- package/components/input/toggle/toggle.props.js.map +1 -1
- package/components/input/toggle/toggle.styles.js +4 -12
- package/components/input/toggle/toggle.styles.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.props.js +1 -1
- package/components/navigation/appnavbar/appnavbar.props.js.map +1 -1
- package/components/page/page-content/page-content.component.js +3 -0
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/page-content/page-content.props.js +2 -0
- package/components/page/page-content/page-content.props.js.map +1 -1
- package/components/page/page.component.js +95 -2
- package/components/page/page.component.js.map +1 -1
- package/components/page/page.props.js +3 -0
- package/components/page/page.props.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +3 -2
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/components/page/tabbar/tabbar.props.js +1 -0
- package/components/page/tabbar/tabbar.props.js.map +1 -1
- package/components-prism/basic/search/search.component.js +8 -12
- package/components-prism/basic/search/search.component.js.map +1 -1
- package/components-prism/basic/search/search.props.js +1 -1
- package/components-prism/basic/search/search.props.js.map +1 -1
- package/components-prism/basic/search/search.styles.js +60 -25
- package/components-prism/basic/search/search.styles.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/accessibility.js +9 -0
- package/core/accessibility.js.map +1 -1
- package/core/auto-layout-host.component.js +8 -2
- package/core/auto-layout-host.component.js.map +1 -1
- package/core/auto-layout.utils.js +59 -0
- package/core/auto-layout.utils.js.map +1 -1
- package/core/base.component.js +22 -1
- package/core/base.component.js.map +1 -1
- package/core/components/floatinglabel.component.js +5 -2
- package/core/components/floatinglabel.component.js.map +1 -1
- package/core/components/textinput.component.js +3 -0
- package/core/components/textinput.component.js.map +1 -1
- package/core/network.service.js.map +1 -1
- package/core/tappable.component.js +109 -15
- package/core/tappable.component.js.map +1 -1
- package/npm-shrinkwrap.json +2835 -5858
- package/package-lock.json +2835 -5858
- package/package.json +25 -18
- package/runtime/base-fragment.component.js +7 -1
- package/runtime/base-fragment.component.js.map +1 -1
- package/runtime/base-page.component.js +24 -0
- package/runtime/base-page.component.js.map +1 -1
- package/runtime/base-partial.component.js.map +1 -1
- package/runtime/navigator/drawer.navigator.js +1 -0
- package/runtime/navigator/drawer.navigator.js.map +1 -1
- package/runtime/navigator/stack.navigator.js +16 -1
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/runtime/services/device/scan-service.js +12 -34
- package/runtime/services/device/scan-service.js.map +1 -1
- package/styles/theme.variables.js.map +1 -1
- package/variables/http.service.js +6 -1
- package/variables/http.service.js.map +1 -1
- package/variables/interceptor/intercept-context.impl.js +46 -0
- package/variables/interceptor/intercept-context.impl.js.map +1 -0
- package/variables/interceptor/interceptor.factory.js +78 -0
- package/variables/interceptor/interceptor.factory.js.map +1 -0
- package/variables/interceptor/persistent.storage.js +142 -0
- package/variables/interceptor/persistent.storage.js.map +1 -0
- package/variables/interceptor/service-variable-interceptor.js +52 -0
- package/variables/interceptor/service-variable-interceptor.js.map +1 -0
- package/variables/service-variable.js +109 -1
- package/variables/service-variable.js.map +1 -1
|
@@ -1,50 +1,78 @@
|
|
|
1
1
|
import '@wavemaker-ai/app-rn-runtime/components/basic/search/search.styles';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
2
3
|
import BASE_THEME from '@wavemaker-ai/app-rn-runtime/styles/theme';
|
|
3
4
|
import { defineStyles } from '@wavemaker-ai/app-rn-runtime/core/base.component';
|
|
4
5
|
export const DEFAULT_CLASS = 'app-search';
|
|
6
|
+
const M3_ICON_TOUCH_SIZE = 48;
|
|
7
|
+
const M3_ICON_SIZE = 24;
|
|
8
|
+
const M3_DROPDOWN_MAX_HEIGHT = 320;
|
|
9
|
+
const m3Elevation1 = Platform.select({
|
|
10
|
+
ios: {
|
|
11
|
+
shadowColor: '#000',
|
|
12
|
+
shadowOffset: {
|
|
13
|
+
width: 0,
|
|
14
|
+
height: 1
|
|
15
|
+
},
|
|
16
|
+
shadowOpacity: 0.15,
|
|
17
|
+
shadowRadius: 3
|
|
18
|
+
},
|
|
19
|
+
android: {
|
|
20
|
+
elevation: 1
|
|
21
|
+
},
|
|
22
|
+
default: {}
|
|
23
|
+
});
|
|
24
|
+
const m3Elevation2 = Platform.select({
|
|
25
|
+
ios: {
|
|
26
|
+
shadowColor: '#000',
|
|
27
|
+
shadowOffset: {
|
|
28
|
+
width: 0,
|
|
29
|
+
height: 2
|
|
30
|
+
},
|
|
31
|
+
shadowOpacity: 0.15,
|
|
32
|
+
shadowRadius: 6
|
|
33
|
+
},
|
|
34
|
+
android: {
|
|
35
|
+
elevation: 3
|
|
36
|
+
},
|
|
37
|
+
default: {}
|
|
38
|
+
});
|
|
5
39
|
BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
6
|
-
const
|
|
40
|
+
const prismSearchLayout = defineStyles({
|
|
7
41
|
rootWrapper: {
|
|
8
42
|
position: 'relative'
|
|
9
43
|
},
|
|
10
44
|
rootWrapperDropdownOpen: {
|
|
11
45
|
zIndex: 10
|
|
12
46
|
},
|
|
13
|
-
searchWrapper: {
|
|
14
|
-
position: 'relative'
|
|
15
|
-
},
|
|
16
47
|
root: {
|
|
17
|
-
|
|
48
|
+
...m3Elevation1
|
|
18
49
|
},
|
|
50
|
+
text: {},
|
|
19
51
|
inputWeb: {
|
|
20
52
|
outline: 'none',
|
|
21
53
|
boxShadow: 'none'
|
|
22
54
|
},
|
|
23
55
|
leadingIcon: {
|
|
24
56
|
root: {
|
|
25
|
-
width:
|
|
26
|
-
height:
|
|
57
|
+
width: M3_ICON_TOUCH_SIZE,
|
|
58
|
+
height: M3_ICON_TOUCH_SIZE,
|
|
27
59
|
justifyContent: 'center',
|
|
28
|
-
alignItems: 'center'
|
|
29
|
-
backgroundColor: 'transparent',
|
|
30
|
-
color: themeVariables.defaultColor4
|
|
60
|
+
alignItems: 'center'
|
|
31
61
|
},
|
|
32
62
|
icon: {
|
|
33
|
-
fontSize:
|
|
63
|
+
fontSize: M3_ICON_SIZE
|
|
34
64
|
},
|
|
35
65
|
text: {}
|
|
36
66
|
},
|
|
37
67
|
trailingIcon: {
|
|
38
68
|
root: {
|
|
39
|
-
width:
|
|
40
|
-
height:
|
|
69
|
+
width: M3_ICON_TOUCH_SIZE,
|
|
70
|
+
height: M3_ICON_TOUCH_SIZE,
|
|
41
71
|
justifyContent: 'center',
|
|
42
|
-
alignItems: 'center'
|
|
43
|
-
backgroundColor: 'transparent',
|
|
44
|
-
color: themeVariables.defaultColor4
|
|
72
|
+
alignItems: 'center'
|
|
45
73
|
},
|
|
46
74
|
icon: {
|
|
47
|
-
fontSize:
|
|
75
|
+
fontSize: M3_ICON_SIZE
|
|
48
76
|
},
|
|
49
77
|
text: {}
|
|
50
78
|
},
|
|
@@ -61,23 +89,30 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
61
89
|
justifyContent: 'center',
|
|
62
90
|
pointerEvents: 'box-none'
|
|
63
91
|
},
|
|
92
|
+
modalContent: {
|
|
93
|
+
position: 'absolute'
|
|
94
|
+
},
|
|
64
95
|
dropdownContainer: {
|
|
65
96
|
position: 'absolute',
|
|
66
97
|
left: 0,
|
|
67
98
|
zIndex: 999,
|
|
68
|
-
|
|
69
|
-
|
|
99
|
+
maxHeight: M3_DROPDOWN_MAX_HEIGHT,
|
|
100
|
+
overflow: 'hidden',
|
|
101
|
+
...m3Elevation2,
|
|
102
|
+
...(Platform.OS === 'android' ? {
|
|
103
|
+
elevation: 8
|
|
104
|
+
} : {})
|
|
70
105
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
106
|
+
searchItem: {
|
|
107
|
+
flexDirection: 'row',
|
|
108
|
+
alignItems: 'center',
|
|
109
|
+
gap: 12
|
|
75
110
|
}
|
|
76
111
|
});
|
|
77
|
-
addStyle(DEFAULT_CLASS, '',
|
|
112
|
+
addStyle(DEFAULT_CLASS, '', prismSearchLayout);
|
|
78
113
|
addStyle(DEFAULT_CLASS + '-disabled', '', {
|
|
79
114
|
root: {
|
|
80
|
-
opacity: 0.
|
|
115
|
+
opacity: 0.38
|
|
81
116
|
}
|
|
82
117
|
});
|
|
83
118
|
addStyle(DEFAULT_CLASS + '-rtl', '', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","
|
|
1
|
+
{"version":3,"names":["Platform","BASE_THEME","defineStyles","DEFAULT_CLASS","M3_ICON_TOUCH_SIZE","M3_ICON_SIZE","M3_DROPDOWN_MAX_HEIGHT","m3Elevation1","select","ios","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","android","elevation","default","m3Elevation2","registerStyle","themeVariables","addStyle","prismSearchLayout","rootWrapper","position","rootWrapperDropdownOpen","zIndex","root","text","inputWeb","outline","boxShadow","leadingIcon","justifyContent","alignItems","icon","fontSize","trailingIcon","inputWithLeadingIcon","paddingLeft","inputWithTrailingIcon","paddingRight","iconWrapper","top","bottom","pointerEvents","modalContent","dropdownContainer","left","maxHeight","overflow","OS","searchItem","flexDirection","gap","opacity"],"sources":["search.styles.ts"],"sourcesContent":["import '@wavemaker-ai/app-rn-runtime/components/basic/search/search.styles';\n\nimport { Platform } from 'react-native';\nimport BASE_THEME, {\n AllStyle,\n} from '@wavemaker-ai/app-rn-runtime/styles/theme';\nimport { defineStyles } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { WmIconStyles } from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.styles';\nimport { WmSearchStyles } from '@wavemaker-ai/app-rn-runtime/components/basic/search/search.styles';\n\nexport type WmSearchPrismStyles = WmSearchStyles & {\n inputWeb: AllStyle;\n leadingIcon: WmIconStyles;\n trailingIcon: WmIconStyles;\n iconWrapper: AllStyle;\n inputWithLeadingIcon: AllStyle;\n inputWithTrailingIcon: AllStyle;\n dropdownContainer: AllStyle;\n rootWrapperDropdownOpen: AllStyle;\n rootWrapper: AllStyle;\n};\n\nexport const DEFAULT_CLASS = 'app-search';\n\nconst M3_ICON_TOUCH_SIZE = 48;\nconst M3_ICON_SIZE = 24;\nconst M3_DROPDOWN_MAX_HEIGHT = 320;\n\nconst m3Elevation1 = Platform.select({\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.15,\n shadowRadius: 3,\n },\n android: { elevation: 1 },\n default: {},\n}) as AllStyle;\n\nconst m3Elevation2 = Platform.select({\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.15,\n shadowRadius: 6,\n },\n android: { elevation: 3 },\n default: {},\n}) as AllStyle;\n\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const prismSearchLayout = defineStyles({\n rootWrapper: {\n position: 'relative',\n },\n rootWrapperDropdownOpen: {\n zIndex: 10,\n },\n root: {\n ...m3Elevation1,\n },\n text: {},\n inputWeb: {\n outline: 'none',\n boxShadow: 'none',\n },\n leadingIcon: {\n root: {\n width: M3_ICON_TOUCH_SIZE,\n height: M3_ICON_TOUCH_SIZE,\n justifyContent: 'center',\n alignItems: 'center',\n },\n icon: { fontSize: M3_ICON_SIZE },\n text: {},\n } as WmIconStyles,\n trailingIcon: {\n root: {\n width: M3_ICON_TOUCH_SIZE,\n height: M3_ICON_TOUCH_SIZE,\n justifyContent: 'center',\n alignItems: 'center',\n },\n icon: { fontSize: M3_ICON_SIZE },\n text: {},\n } as WmIconStyles,\n inputWithLeadingIcon: {\n paddingLeft: 52,\n },\n inputWithTrailingIcon: {\n paddingRight: 52,\n },\n iconWrapper: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n justifyContent: 'center',\n pointerEvents: 'box-none',\n },\n modalContent: {\n position: 'absolute',\n },\n dropdownContainer: {\n position: 'absolute',\n left: 0,\n zIndex: 999,\n maxHeight: M3_DROPDOWN_MAX_HEIGHT,\n overflow: 'hidden',\n ...m3Elevation2,\n ...(Platform.OS === 'android' ? { elevation: 8 } : {}),\n },\n searchItem: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n }) as any;\n\n addStyle(DEFAULT_CLASS, '', prismSearchLayout);\n\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root: {\n opacity: 0.38,\n },\n });\n\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root: {\n flexDirection: 'row-reverse',\n },\n searchItem: {\n flexDirection: 'row-reverse',\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 /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n}"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n detachInactiveScreens:boolean,\n isLegacyTappable: boolean,\n}"],"mappings":"","ignoreList":[]}
|
package/core/accessibility.js
CHANGED
|
@@ -39,6 +39,7 @@ export let AccessibilityWidgetType = /*#__PURE__*/function (AccessibilityWidgetT
|
|
|
39
39
|
AccessibilityWidgetType["SLIDER"] = "slider";
|
|
40
40
|
AccessibilityWidgetType["BOTTOMSHEET"] = "bottomsheet";
|
|
41
41
|
AccessibilityWidgetType["TABS"] = "tab";
|
|
42
|
+
AccessibilityWidgetType["OFFLINE_BANNER"] = "offlinebanner";
|
|
42
43
|
return AccessibilityWidgetType;
|
|
43
44
|
}({});
|
|
44
45
|
;
|
|
@@ -184,6 +185,14 @@ export const getAccessibilityProps = (widgetType, accessibilityProps) => {
|
|
|
184
185
|
props.accessibilityRole = accessibilityProps.accessibilityrole;
|
|
185
186
|
break;
|
|
186
187
|
}
|
|
188
|
+
case AccessibilityWidgetType.OFFLINE_BANNER:
|
|
189
|
+
{
|
|
190
|
+
props.accessibilityLabel = accessibilityProps.accessibilitylabel || 'Offline mode notification';
|
|
191
|
+
props.accessibilityHint = accessibilityProps.hint;
|
|
192
|
+
props.accessibilityRole = accessibilityProps.accessibilityrole || 'alert';
|
|
193
|
+
props.accessibilityLiveRegion = 'polite';
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
187
196
|
default:
|
|
188
197
|
break;
|
|
189
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AccessibilityInfo","isAndroid","isWebPreviewMode","removeUndefinedKeys","_isScreenReaderEnabled","addEventListener","flag","isScreenReaderEnabled","getScreenReaderStatus","AccessibilityWidgetType","getAccessibilityProps","widgetType","accessibilityProps","accessible","importantForAccessibility","props","BUTTON","TEXT","NUMBER","TEXTAREA","CURRENCY","TOGGLE","DATE","LABEL","MESSAGE","SEARCH","ICON","NAV","POVOVER","BOTTOMSHEET","WEBVIEW","LINECHART","SLIDER","VIDEO","_accessibilityProps$c","accessibilityLabel","accessibilitylabel","caption","toString","accessibilityHint","hint","accessibilityRole","accessibilityrole","accessibilityState","disabled","accessibilityLabelledBy","accessibilitylabelledby","accessibilityValue","min","minvalue","max","maxvalue","checked","selected","TABS","title","ANCHOR","badgevalue","CHECKBOX","_accessibilityProps$c2","readonly","SELECT","displayValue","expanded","RADIOSET","CHECKBOXSET","SWITCH","PROGRESSBAR","PROGRESSCIRCLE","_accessibilityProps$c3","PICTURE","alttext","finalProps"],"sources":["accessibility.ts"],"sourcesContent":["import { AccessibilityInfo } from 'react-native';\nimport { isAndroid, isWebPreviewMode, removeUndefinedKeys } from './utils';\n\nlet _isScreenReaderEnabled = false;\n\nAccessibilityInfo.addEventListener(\n 'screenReaderChanged',\n flag => {\n _isScreenReaderEnabled = flag;\n },\n);\n\nexport const isScreenReaderEnabled = () => _isScreenReaderEnabled;\n\nasync function getScreenReaderStatus() {\n _isScreenReaderEnabled = (!isWebPreviewMode() && await AccessibilityInfo.isScreenReaderEnabled());\n}\n\ngetScreenReaderStatus();\n\nexport enum AccessibilityWidgetType {\n BUTTON = 'button',\n PICTURE = 'picture',\n TEXT = 'text',\n NUMBER = 'number',\n TEXTAREA = 'textarea',\n SELECT = 'select',\n CHIPS = 'chips',\n CURRENCY = 'currency',\n RADIOSET = 'radioset',\n CHECKBOX = 'checkbox',\n CHECKBOXSET = 'checkboxset',\n TOGGLE = 'toggle',\n SWITCH = 'switch',\n DATE = 'date',\n VIDEO = 'video',\n PROGRESSBAR = 'progressbar',\n PROGRESSCIRCLE = 'progresscircle',\n LABEL = 'label',\n ANCHOR = 'anchor',\n MESSAGE = 'message',\n SEARCH = 'search',\n ICON = 'icon',\n NAV = 'nav',\n POVOVER = 'popover',\n WEBVIEW = 'webview',\n LINECHART = 'linechart',\n SLIDER = 'slider',\n BOTTOMSHEET='bottomsheet',\n TABS = 'tab'\n};\n\n \nexport type AccessibilityPropsType = {\n accessible?: boolean;\n accessibilityLabel?: string;\n accessibilityLabelledBy?: string;\n accessibilityHint?: string;\n accessibilityRole?: 'button' | 'checkbox' | 'combobox' | 'link' | 'header' | 'search' | 'image' | 'imagebutton' | 'none' | 'summary' | 'text' | 'progressbar' | 'grid' | 'alert' | 'tab';\n accessibilityState?: {\n disabled?: boolean;\n selected?: boolean;\n checked?: boolean;\n expanded?: boolean;\n };\n accessibilityValue?: {\n min?: number;\n max?: number;\n now?: number;\n text?: string;\n };\n accessibilityActions?: Array<{\n name: string;\n label?: string;\n }>;\n accessibilityLiveRegion?: 'none' | 'polite' | 'assertive';\n accessibilityLanguage?: any;\n accessibilityElementsHidden?: boolean;\n accessibilityViewIsModal?: boolean;\n};\n \n\nexport const getAccessibilityProps = (widgetType: AccessibilityWidgetType, accessibilityProps: AccessibilityPropsType | any) => {\n if(accessibilityProps.accessible === false){\n return {accessible: false, importantForAccessibility: \"no\"}\n }\n let props: AccessibilityPropsType = {accessible: true};\n if (!_isScreenReaderEnabled || isWebPreviewMode()) {\n return {};\n }\n switch (widgetType) {\n case AccessibilityWidgetType.BUTTON:\n case AccessibilityWidgetType.TEXT:\n case AccessibilityWidgetType.NUMBER:\n case AccessibilityWidgetType.TEXTAREA:\n case AccessibilityWidgetType.CURRENCY:\n case AccessibilityWidgetType.TOGGLE:\n case AccessibilityWidgetType.DATE:\n case AccessibilityWidgetType.LABEL:\n case AccessibilityWidgetType.MESSAGE: \n case AccessibilityWidgetType.SEARCH: \n case AccessibilityWidgetType.ICON:\n case AccessibilityWidgetType.NAV:\n case AccessibilityWidgetType.POVOVER:\n case AccessibilityWidgetType.BOTTOMSHEET:\n case AccessibilityWidgetType.WEBVIEW:\n case AccessibilityWidgetType.LINECHART:\n case AccessibilityWidgetType.SLIDER:\n case AccessibilityWidgetType.VIDEO: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.caption?.toString();\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole;\n\n if (\n widgetType === AccessibilityWidgetType.BUTTON ||\n widgetType === AccessibilityWidgetType.TEXT ||\n widgetType === AccessibilityWidgetType.NUMBER ||\n widgetType === AccessibilityWidgetType.TEXTAREA ||\n widgetType === AccessibilityWidgetType.TOGGLE ||\n widgetType === AccessibilityWidgetType.DATE\n ) {\n props.accessibilityState = { disabled: accessibilityProps.disabled };\n }\n if (\n (widgetType === AccessibilityWidgetType.TEXT ||\n widgetType === AccessibilityWidgetType.NUMBER ||\n widgetType === AccessibilityWidgetType.TEXTAREA ||\n widgetType === AccessibilityWidgetType.CURRENCY ||\n widgetType === AccessibilityWidgetType.TOGGLE) &&\n isAndroid()\n ) {\n props.accessibilityLabelledBy =\n accessibilityProps.accessibilitylabelledby;\n }\n if (\n widgetType === AccessibilityWidgetType.NUMBER ||\n widgetType === AccessibilityWidgetType.CURRENCY\n ) {\n props.accessibilityValue = {\n min: accessibilityProps.minvalue,\n max: accessibilityProps.maxvalue,\n };\n }\n if (widgetType === AccessibilityWidgetType.TOGGLE) {\n props.accessibilityState = {\n ...props.accessibilityState,\n checked: accessibilityProps.selected,\n };\n }\n break;\n }\n\n case AccessibilityWidgetType.TABS: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.title;\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'tab';\n props.accessibilityState = {\n ...props.accessibilityState,\n selected: accessibilityProps.selected,\n };\n break;\n }\n\n case AccessibilityWidgetType.ANCHOR: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || (accessibilityProps.badgevalue ? `${accessibilityProps.caption} ${accessibilityProps.badgevalue}` : accessibilityProps.caption);\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole\n break;\n }\n\n case AccessibilityWidgetType.CHECKBOX: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.caption?.toString();\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'checkbox'\n props.accessibilityState = {\n disabled: accessibilityProps.readonly || accessibilityProps.disabled,\n checked: accessibilityProps.checked,\n };\n break;\n }\n\n case AccessibilityWidgetType.SELECT: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.displayValue || \"Select an option\"\n props.accessibilityHint = accessibilityProps.hint\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'button',\n props.accessibilityState = {\n disabled: accessibilityProps.readonly || accessibilityProps.disabled,\n expanded: accessibilityProps.expanded,\n };\n if(isAndroid()) {\n props.accessibilityLabelledBy =\n accessibilityProps.accessibilitylabelledby;\n }\n break;\n }\n\n case AccessibilityWidgetType.RADIOSET: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || 'Select your preferred option';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'radiogroup'\n break;\n }\n\n case AccessibilityWidgetType.CHECKBOXSET: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || 'Select your preferred options';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'combobox'\n break;\n }\n\n case AccessibilityWidgetType.SWITCH: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || \"Select an option\";\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole\n props.accessibilityState = {\n disabled: accessibilityProps.disabled,\n selected: accessibilityProps.selected,\n };\n break;\n }\n case AccessibilityWidgetType.PROGRESSBAR:\n case AccessibilityWidgetType.PROGRESSCIRCLE: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.caption?.toString();\n props.accessibilityRole = accessibilityProps.accessibilityrole;\n break;\n }\n case AccessibilityWidgetType.PICTURE: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.alttext || 'Image';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole;\n break;\n }\n default:\n break;\n }\n\n const finalProps = removeUndefinedKeys(props);\n // console.log('finalProps', finalProps)\n\n return finalProps;\n}"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,cAAc;AAChD,SAASC,SAAS,EAAEC,gBAAgB,EAAEC,mBAAmB,QAAQ,SAAS;AAE1E,IAAIC,sBAAsB,GAAG,KAAK;AAElCJ,iBAAiB,CAACK,gBAAgB,CAChC,qBAAqB,EACrBC,IAAI,IAAI;EACNF,sBAAsB,GAAGE,IAAI;AAC/B,CACF,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAMH,sBAAsB;AAEjE,eAAeI,qBAAqBA,CAAA,EAAG;EACrCJ,sBAAsB,GAAI,CAACF,gBAAgB,CAAC,CAAC,KAAI,MAAMF,iBAAiB,CAACO,qBAAqB,CAAC,CAAC,CAAC;AACnG;AAEAC,qBAAqB,CAAC,CAAC;AAEvB,WAAYC,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AA8BlC;AAgCD,OAAO,MAAMC,qBAAqB,GAAGA,CAACC,UAAmC,EAAEC,kBAAgD,KAAK;EAC9H,IAAGA,kBAAkB,CAACC,UAAU,KAAK,KAAK,EAAC;IACzC,OAAO;MAACA,UAAU,EAAE,KAAK;MAAEC,yBAAyB,EAAE;IAAI,CAAC;EAC7D;EACA,IAAIC,KAA6B,GAAG;IAACF,UAAU,EAAE;EAAI,CAAC;EACtD,IAAI,CAACT,sBAAsB,IAAIF,gBAAgB,CAAC,CAAC,EAAE;IACjD,OAAO,CAAC,CAAC;EACX;EACA,QAAQS,UAAU;IAChB,KAAKF,uBAAuB,CAACO,MAAM;IACnC,KAAKP,uBAAuB,CAACQ,IAAI;IACjC,KAAKR,uBAAuB,CAACS,MAAM;IACnC,KAAKT,uBAAuB,CAACU,QAAQ;IACrC,KAAKV,uBAAuB,CAACW,QAAQ;IACrC,KAAKX,uBAAuB,CAACY,MAAM;IACnC,KAAKZ,uBAAuB,CAACa,IAAI;IACjC,KAAKb,uBAAuB,CAACc,KAAK;IAClC,KAAKd,uBAAuB,CAACe,OAAO;IACpC,KAAKf,uBAAuB,CAACgB,MAAM;IACnC,KAAKhB,uBAAuB,CAACiB,IAAI;IACjC,KAAKjB,uBAAuB,CAACkB,GAAG;IAChC,KAAKlB,uBAAuB,CAACmB,OAAO;IACpC,KAAKnB,uBAAuB,CAACoB,WAAW;IACxC,KAAKpB,uBAAuB,CAACqB,OAAO;IACpC,KAAKrB,uBAAuB,CAACsB,SAAS;IACtC,KAAKtB,uBAAuB,CAACuB,MAAM;IACnC,KAAKvB,uBAAuB,CAACwB,KAAK;MAAE;QAAA,IAAAC,qBAAA;QAClCnB,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,MAAAF,qBAAA,GAAItB,kBAAkB,CAACyB,OAAO,cAAAH,qBAAA,uBAA1BA,qBAAA,CAA4BI,QAAQ,CAAC,CAAC;QAC1GvB,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB;QAE9D,IACE/B,UAAU,KAAKF,uBAAuB,CAACO,MAAM,IAC7CL,UAAU,KAAKF,uBAAuB,CAACQ,IAAI,IAC3CN,UAAU,KAAKF,uBAAuB,CAACS,MAAM,IAC7CP,UAAU,KAAKF,uBAAuB,CAACU,QAAQ,IAC/CR,UAAU,KAAKF,uBAAuB,CAACY,MAAM,IAC7CV,UAAU,KAAKF,uBAAuB,CAACa,IAAI,EAC3C;UACAP,KAAK,CAAC4B,kBAAkB,GAAG;YAAEC,QAAQ,EAAEhC,kBAAkB,CAACgC;UAAS,CAAC;QACtE;QACA,IACE,CAACjC,UAAU,KAAKF,uBAAuB,CAACQ,IAAI,IAC1CN,UAAU,KAAKF,uBAAuB,CAACS,MAAM,IAC7CP,UAAU,KAAKF,uBAAuB,CAACU,QAAQ,IAC/CR,UAAU,KAAKF,uBAAuB,CAACW,QAAQ,IAC/CT,UAAU,KAAKF,uBAAuB,CAACY,MAAM,KAC/CpB,SAAS,CAAC,CAAC,EACX;UACAc,KAAK,CAAC8B,uBAAuB,GAC3BjC,kBAAkB,CAACkC,uBAAuB;QAC9C;QACA,IACEnC,UAAU,KAAKF,uBAAuB,CAACS,MAAM,IAC7CP,UAAU,KAAKF,uBAAuB,CAACW,QAAQ,EAC/C;UACAL,KAAK,CAACgC,kBAAkB,GAAG;YACzBC,GAAG,EAAEpC,kBAAkB,CAACqC,QAAQ;YAChCC,GAAG,EAAEtC,kBAAkB,CAACuC;UAC1B,CAAC;QACH;QACA,IAAIxC,UAAU,KAAKF,uBAAuB,CAACY,MAAM,EAAE;UACjDN,KAAK,CAAC4B,kBAAkB,GAAG;YACzB,GAAG5B,KAAK,CAAC4B,kBAAkB;YAC3BS,OAAO,EAAExC,kBAAkB,CAACyC;UAC9B,CAAC;QACH;QACA;MACF;IAEA,KAAK5C,uBAAuB,CAAC6C,IAAI;MAAE;QACjCvC,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,IAAIxB,kBAAkB,CAAC2C,KAAK;QAC5FxC,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB,IAAI,KAAK;QACvE3B,KAAK,CAAC4B,kBAAkB,GAAG;UACzB,GAAG5B,KAAK,CAAC4B,kBAAkB;UAC3BU,QAAQ,EAAEzC,kBAAkB,CAACyC;QAC/B,CAAC;QACD;MACF;IAEA,KAAK5C,uBAAuB,CAAC+C,MAAM;MAAE;QACnCzC,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,KAAKxB,kBAAkB,CAAC6C,UAAU,GAAG,GAAG7C,kBAAkB,CAACyB,OAAO,IAAIzB,kBAAkB,CAAC6C,UAAU,EAAE,GAAG7C,kBAAkB,CAACyB,OAAO,CAAC;QACnMtB,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB;QAC9D;MACF;IAEA,KAAKjC,uBAAuB,CAACiD,QAAQ;MAAE;QAAA,IAAAC,sBAAA;QACrC5C,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,MAAAuB,sBAAA,GAAI/C,kBAAkB,CAACyB,OAAO,cAAAsB,sBAAA,uBAA1BA,sBAAA,CAA4BrB,QAAQ,CAAC,CAAC;QAC1GvB,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB,IAAI,UAAU;QAC5E3B,KAAK,CAAC4B,kBAAkB,GAAG;UACzBC,QAAQ,EAAEhC,kBAAkB,CAACgD,QAAQ,IAAKhD,kBAAkB,CAACgC,QAAQ;UACrEQ,OAAO,EAAExC,kBAAkB,CAACwC;QAC9B,CAAC;QACD;MACF;IAEA,KAAK3C,uBAAuB,CAACoD,MAAM;MAAE;QACnC9C,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,IAAIxB,kBAAkB,CAACkD,YAAY,IAAI,kBAAkB;QACzH/C,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB,IAAI,QAAQ,EAC1E3B,KAAK,CAAC4B,kBAAkB,GAAG;UACzBC,QAAQ,EAAEhC,kBAAkB,CAACgD,QAAQ,IAAKhD,kBAAkB,CAACgC,QAAQ;UACrEmB,QAAQ,EAAEnD,kBAAkB,CAACmD;QAC/B,CAAC;QACD,IAAG9D,SAAS,CAAC,CAAC,EAAE;UACdc,KAAK,CAAC8B,uBAAuB,GAC3BjC,kBAAkB,CAACkC,uBAAuB;QAC9C;QACA;MACF;IAEA,KAAKrC,uBAAuB,CAACuD,QAAQ;MAAE;QACrCjD,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,IAAI,8BAA8B;QAClGrB,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB,IAAI,YAAY;QAC9E;MACF;IAEA,KAAKjC,uBAAuB,CAACwD,WAAW;MAAE;QACxClD,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,IAAI,+BAA+B;QACnGrB,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB,IAAI,UAAU;QAC5E;MACF;IAEA,KAAKjC,uBAAuB,CAACyD,MAAM;MAAE;QACnCnD,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,IAAI,kBAAkB;QACtFrB,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB;QAC9D3B,KAAK,CAAC4B,kBAAkB,GAAG;UACzBC,QAAQ,EAAEhC,kBAAkB,CAACgC,QAAQ;UACrCS,QAAQ,EAAEzC,kBAAkB,CAACyC;QAC/B,CAAC;QACD;MACF;IACA,KAAK5C,uBAAuB,CAAC0D,WAAW;IACxC,KAAK1D,uBAAuB,CAAC2D,cAAc;MAAE;QAAA,IAAAC,sBAAA;QAC3CtD,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,MAAAiC,sBAAA,GAAIzD,kBAAkB,CAACyB,OAAO,cAAAgC,sBAAA,uBAA1BA,sBAAA,CAA4B/B,QAAQ,CAAC,CAAC;QAC1GvB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB;QAC9D;MACF;IACA,KAAKjC,uBAAuB,CAAC6D,OAAO;MAAE;QACpCvD,KAAK,CAACoB,kBAAkB,GAAGvB,kBAAkB,CAACwB,kBAAkB,IAAIxB,kBAAkB,CAAC2D,OAAO,IAAI,OAAO;QACzGxD,KAAK,CAACwB,iBAAiB,GAAG3B,kBAAkB,CAAC4B,IAAI;QACjDzB,KAAK,CAAC0B,iBAAiB,GAAG7B,kBAAkB,CAAC8B,iBAAiB;QAC9D;MACF;IACA;MACE;EACJ;EAEA,MAAM8B,UAAU,GAAGrE,mBAAmB,CAACY,KAAK,CAAC;EAC7C;;EAEA,OAAOyD,UAAU;AACnB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AccessibilityInfo","isAndroid","isWebPreviewMode","removeUndefinedKeys","_isScreenReaderEnabled","addEventListener","flag","isScreenReaderEnabled","getScreenReaderStatus","AccessibilityWidgetType","getAccessibilityProps","widgetType","accessibilityProps","accessible","importantForAccessibility","props","BUTTON","TEXT","NUMBER","TEXTAREA","CURRENCY","TOGGLE","DATE","LABEL","MESSAGE","SEARCH","ICON","NAV","POVOVER","BOTTOMSHEET","WEBVIEW","LINECHART","SLIDER","VIDEO","_accessibilityProps$c","accessibilityLabel","accessibilitylabel","caption","toString","accessibilityHint","hint","accessibilityRole","accessibilityrole","accessibilityState","disabled","accessibilityLabelledBy","accessibilitylabelledby","accessibilityValue","min","minvalue","max","maxvalue","checked","selected","TABS","title","ANCHOR","badgevalue","CHECKBOX","_accessibilityProps$c2","readonly","SELECT","displayValue","expanded","RADIOSET","CHECKBOXSET","SWITCH","PROGRESSBAR","PROGRESSCIRCLE","_accessibilityProps$c3","PICTURE","alttext","OFFLINE_BANNER","accessibilityLiveRegion","finalProps"],"sources":["accessibility.ts"],"sourcesContent":["import { AccessibilityInfo } from 'react-native';\nimport { isAndroid, isWebPreviewMode, removeUndefinedKeys } from './utils';\n\nlet _isScreenReaderEnabled = false;\n\nAccessibilityInfo.addEventListener(\n 'screenReaderChanged',\n flag => {\n _isScreenReaderEnabled = flag;\n },\n);\n\nexport const isScreenReaderEnabled = () => _isScreenReaderEnabled;\n\nasync function getScreenReaderStatus() {\n _isScreenReaderEnabled = (!isWebPreviewMode() && await AccessibilityInfo.isScreenReaderEnabled());\n}\n\ngetScreenReaderStatus();\n\nexport enum AccessibilityWidgetType {\n BUTTON = 'button',\n PICTURE = 'picture',\n TEXT = 'text',\n NUMBER = 'number',\n TEXTAREA = 'textarea',\n SELECT = 'select',\n CHIPS = 'chips',\n CURRENCY = 'currency',\n RADIOSET = 'radioset',\n CHECKBOX = 'checkbox',\n CHECKBOXSET = 'checkboxset',\n TOGGLE = 'toggle',\n SWITCH = 'switch',\n DATE = 'date',\n VIDEO = 'video',\n PROGRESSBAR = 'progressbar',\n PROGRESSCIRCLE = 'progresscircle',\n LABEL = 'label',\n ANCHOR = 'anchor',\n MESSAGE = 'message',\n SEARCH = 'search',\n ICON = 'icon',\n NAV = 'nav',\n POVOVER = 'popover',\n WEBVIEW = 'webview',\n LINECHART = 'linechart',\n SLIDER = 'slider',\n BOTTOMSHEET='bottomsheet',\n TABS = 'tab',\n OFFLINE_BANNER = 'offlinebanner'\n};\n\n \nexport type AccessibilityPropsType = {\n accessible?: boolean;\n accessibilityLabel?: string;\n accessibilityLabelledBy?: string;\n accessibilityHint?: string;\n accessibilityRole?: 'button' | 'checkbox' | 'combobox' | 'link' | 'header' | 'search' | 'image' | 'imagebutton' | 'none' | 'summary' | 'text' | 'progressbar' | 'grid' | 'alert' | 'tab';\n accessibilityState?: {\n disabled?: boolean;\n selected?: boolean;\n checked?: boolean;\n expanded?: boolean;\n };\n accessibilityValue?: {\n min?: number;\n max?: number;\n now?: number;\n text?: string;\n };\n accessibilityActions?: Array<{\n name: string;\n label?: string;\n }>;\n accessibilityLiveRegion?: 'none' | 'polite' | 'assertive';\n accessibilityLanguage?: any;\n accessibilityElementsHidden?: boolean;\n accessibilityViewIsModal?: boolean;\n};\n \n\nexport const getAccessibilityProps = (widgetType: AccessibilityWidgetType, accessibilityProps: AccessibilityPropsType | any) => {\n if(accessibilityProps.accessible === false){\n return {accessible: false, importantForAccessibility: \"no\"}\n }\n let props: AccessibilityPropsType = {accessible: true};\n if (!_isScreenReaderEnabled || isWebPreviewMode()) {\n return {};\n }\n switch (widgetType) {\n case AccessibilityWidgetType.BUTTON:\n case AccessibilityWidgetType.TEXT:\n case AccessibilityWidgetType.NUMBER:\n case AccessibilityWidgetType.TEXTAREA:\n case AccessibilityWidgetType.CURRENCY:\n case AccessibilityWidgetType.TOGGLE:\n case AccessibilityWidgetType.DATE:\n case AccessibilityWidgetType.LABEL:\n case AccessibilityWidgetType.MESSAGE: \n case AccessibilityWidgetType.SEARCH: \n case AccessibilityWidgetType.ICON:\n case AccessibilityWidgetType.NAV:\n case AccessibilityWidgetType.POVOVER:\n case AccessibilityWidgetType.BOTTOMSHEET:\n case AccessibilityWidgetType.WEBVIEW:\n case AccessibilityWidgetType.LINECHART:\n case AccessibilityWidgetType.SLIDER:\n case AccessibilityWidgetType.VIDEO: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.caption?.toString();\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole;\n\n if (\n widgetType === AccessibilityWidgetType.BUTTON ||\n widgetType === AccessibilityWidgetType.TEXT ||\n widgetType === AccessibilityWidgetType.NUMBER ||\n widgetType === AccessibilityWidgetType.TEXTAREA ||\n widgetType === AccessibilityWidgetType.TOGGLE ||\n widgetType === AccessibilityWidgetType.DATE\n ) {\n props.accessibilityState = { disabled: accessibilityProps.disabled };\n }\n if (\n (widgetType === AccessibilityWidgetType.TEXT ||\n widgetType === AccessibilityWidgetType.NUMBER ||\n widgetType === AccessibilityWidgetType.TEXTAREA ||\n widgetType === AccessibilityWidgetType.CURRENCY ||\n widgetType === AccessibilityWidgetType.TOGGLE) &&\n isAndroid()\n ) {\n props.accessibilityLabelledBy =\n accessibilityProps.accessibilitylabelledby;\n }\n if (\n widgetType === AccessibilityWidgetType.NUMBER ||\n widgetType === AccessibilityWidgetType.CURRENCY\n ) {\n props.accessibilityValue = {\n min: accessibilityProps.minvalue,\n max: accessibilityProps.maxvalue,\n };\n }\n if (widgetType === AccessibilityWidgetType.TOGGLE) {\n props.accessibilityState = {\n ...props.accessibilityState,\n checked: accessibilityProps.selected,\n };\n }\n break;\n }\n\n case AccessibilityWidgetType.TABS: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.title;\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'tab';\n props.accessibilityState = {\n ...props.accessibilityState,\n selected: accessibilityProps.selected,\n };\n break;\n }\n\n case AccessibilityWidgetType.ANCHOR: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || (accessibilityProps.badgevalue ? `${accessibilityProps.caption} ${accessibilityProps.badgevalue}` : accessibilityProps.caption);\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole\n break;\n }\n\n case AccessibilityWidgetType.CHECKBOX: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.caption?.toString();\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'checkbox'\n props.accessibilityState = {\n disabled: accessibilityProps.readonly || accessibilityProps.disabled,\n checked: accessibilityProps.checked,\n };\n break;\n }\n\n case AccessibilityWidgetType.SELECT: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.displayValue || \"Select an option\"\n props.accessibilityHint = accessibilityProps.hint\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'button',\n props.accessibilityState = {\n disabled: accessibilityProps.readonly || accessibilityProps.disabled,\n expanded: accessibilityProps.expanded,\n };\n if(isAndroid()) {\n props.accessibilityLabelledBy =\n accessibilityProps.accessibilitylabelledby;\n }\n break;\n }\n\n case AccessibilityWidgetType.RADIOSET: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || 'Select your preferred option';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'radiogroup'\n break;\n }\n\n case AccessibilityWidgetType.CHECKBOXSET: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || 'Select your preferred options';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'combobox'\n break;\n }\n\n case AccessibilityWidgetType.SWITCH: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || \"Select an option\";\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole\n props.accessibilityState = {\n disabled: accessibilityProps.disabled,\n selected: accessibilityProps.selected,\n };\n break;\n }\n case AccessibilityWidgetType.PROGRESSBAR:\n case AccessibilityWidgetType.PROGRESSCIRCLE: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.caption?.toString();\n props.accessibilityRole = accessibilityProps.accessibilityrole;\n break;\n }\n case AccessibilityWidgetType.PICTURE: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || accessibilityProps.alttext || 'Image';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole;\n break;\n }\n case AccessibilityWidgetType.OFFLINE_BANNER: {\n props.accessibilityLabel = accessibilityProps.accessibilitylabel || 'Offline mode notification';\n props.accessibilityHint = accessibilityProps.hint;\n props.accessibilityRole = accessibilityProps.accessibilityrole || 'alert';\n props.accessibilityLiveRegion = 'polite';\n break;\n }\n default:\n break;\n }\n\n const finalProps = removeUndefinedKeys(props);\n // console.log('finalProps', finalProps)\n\n return finalProps;\n}"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,10 @@ export function AutoLayoutHost({
|
|
|
9
9
|
onLayout,
|
|
10
10
|
onScroll,
|
|
11
11
|
scrollEventThrottle = 48,
|
|
12
|
-
children
|
|
12
|
+
children,
|
|
13
|
+
ref,
|
|
14
|
+
onScrollEndDrag,
|
|
15
|
+
onMomentumScrollEnd
|
|
13
16
|
}) {
|
|
14
17
|
const enableScroll = shouldScroll !== null && shouldScroll !== void 0 ? shouldScroll : autoLayoutProps.overflow === 'scroll';
|
|
15
18
|
const isHorizontal = autoLayoutProps.direction === 'row';
|
|
@@ -25,7 +28,10 @@ export function AutoLayoutHost({
|
|
|
25
28
|
contentContainerStyle: contentStyle,
|
|
26
29
|
onLayout: onLayout,
|
|
27
30
|
onScroll: onScroll,
|
|
28
|
-
scrollEventThrottle: scrollEventThrottle
|
|
31
|
+
scrollEventThrottle: scrollEventThrottle,
|
|
32
|
+
ref: ref,
|
|
33
|
+
onScrollEndDrag: onScrollEndDrag,
|
|
34
|
+
onMomentumScrollEnd: onMomentumScrollEnd
|
|
29
35
|
}, children);
|
|
30
36
|
}
|
|
31
37
|
//# sourceMappingURL=auto-layout-host.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","ScrollView","AutoLayoutHost","autoLayoutProps","shouldScroll","containerStyle","contentStyle","onLayout","onScroll","scrollEventThrottle","children","enableScroll","overflow","isHorizontal","direction","createElement","style","horizontal","contentContainerStyle"],"sources":["auto-layout-host.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent, View, ViewStyle, StyleProp } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { AutoLayoutProps } from './auto-layout.utils';\n\ninterface AutoLayoutHostProps {\n autoLayoutProps: AutoLayoutProps;\n shouldScroll?: boolean;\n containerStyle?: StyleProp<ViewStyle>;\n contentStyle?: StyleProp<ViewStyle>;\n onLayout?: (event: LayoutChangeEvent) => void;\n onScroll?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;\n scrollEventThrottle?: number;\n children?: React.ReactNode;\n}\n\nexport function AutoLayoutHost({\n autoLayoutProps,\n shouldScroll,\n containerStyle,\n contentStyle,\n onLayout,\n onScroll,\n scrollEventThrottle = 48,\n children,\n}: AutoLayoutHostProps) {\n const enableScroll = shouldScroll ?? (autoLayoutProps.overflow === 'scroll');\n const isHorizontal = autoLayoutProps.direction === 'row';\n\n if (!enableScroll) {\n return (\n <View style={[containerStyle, contentStyle]} onLayout={onLayout}>\n {children}\n </View>\n );\n }\n\n return (\n <ScrollView\n horizontal={isHorizontal}\n style={containerStyle}\n contentContainerStyle={contentStyle}\n onLayout={onLayout}\n onScroll={onScroll}\n scrollEventThrottle={scrollEventThrottle}\n >\n {children}\n </ScrollView>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqEC,IAAI,QAA8B,cAAc;AACrH,SAASC,UAAU,QAAQ,8BAA8B;
|
|
1
|
+
{"version":3,"names":["React","View","ScrollView","AutoLayoutHost","autoLayoutProps","shouldScroll","containerStyle","contentStyle","onLayout","onScroll","scrollEventThrottle","children","ref","onScrollEndDrag","onMomentumScrollEnd","enableScroll","overflow","isHorizontal","direction","createElement","style","horizontal","contentContainerStyle"],"sources":["auto-layout-host.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent, View, ViewStyle, StyleProp } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { AutoLayoutProps } from './auto-layout.utils';\n\ninterface AutoLayoutHostProps {\n autoLayoutProps: AutoLayoutProps;\n shouldScroll?: boolean;\n containerStyle?: StyleProp<ViewStyle>;\n contentStyle?: StyleProp<ViewStyle>;\n onLayout?: (event: LayoutChangeEvent) => void;\n onScroll?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;\n scrollEventThrottle?: number;\n children?: React.ReactNode;\n ref?: React.RefObject<ScrollView | null>;\n onScrollEndDrag?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;\n onMomentumScrollEnd?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;\n}\n\nexport function AutoLayoutHost({\n autoLayoutProps,\n shouldScroll,\n containerStyle,\n contentStyle,\n onLayout,\n onScroll,\n scrollEventThrottle = 48,\n children,\n ref,\n onScrollEndDrag,\n onMomentumScrollEnd\n}: AutoLayoutHostProps) {\n const enableScroll = shouldScroll ?? (autoLayoutProps.overflow === 'scroll');\n const isHorizontal = autoLayoutProps.direction === 'row';\n\n if (!enableScroll) {\n return (\n <View style={[containerStyle, contentStyle]} onLayout={onLayout}>\n {children}\n </View>\n );\n }\n\n return (\n <ScrollView\n horizontal={isHorizontal}\n style={containerStyle}\n contentContainerStyle={contentStyle}\n onLayout={onLayout}\n onScroll={onScroll}\n scrollEventThrottle={scrollEventThrottle}\n ref={ref}\n onScrollEndDrag={onScrollEndDrag}\n onMomentumScrollEnd={onMomentumScrollEnd}\n >\n {children}\n </ScrollView>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqEC,IAAI,QAA8B,cAAc;AACrH,SAASC,UAAU,QAAQ,8BAA8B;AAiBzD,OAAO,SAASC,cAAcA,CAAC;EAC7BC,eAAe;EACfC,YAAY;EACZC,cAAc;EACdC,YAAY;EACZC,QAAQ;EACRC,QAAQ;EACRC,mBAAmB,GAAG,EAAE;EACxBC,QAAQ;EACRC,GAAG;EACHC,eAAe;EACfC;AACmB,CAAC,EAAE;EACtB,MAAMC,YAAY,GAAGV,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAKD,eAAe,CAACY,QAAQ,KAAK,QAAS;EAC5E,MAAMC,YAAY,GAAGb,eAAe,CAACc,SAAS,KAAK,KAAK;EAExD,IAAI,CAACH,YAAY,EAAE;IACjB,oBACEf,KAAA,CAAAmB,aAAA,CAAClB,IAAI;MAACmB,KAAK,EAAE,CAACd,cAAc,EAAEC,YAAY,CAAE;MAACC,QAAQ,EAAEA;IAAS,GAC7DG,QACG,CAAC;EAEX;EAEA,oBACEX,KAAA,CAAAmB,aAAA,CAACjB,UAAU;IACTmB,UAAU,EAAEJ,YAAa;IACzBG,KAAK,EAAEd,cAAe;IACtBgB,qBAAqB,EAAEf,YAAa;IACpCC,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBC,mBAAmB,EAAEA,mBAAoB;IACzCE,GAAG,EAAEA,GAAI;IACTC,eAAe,EAAEA,eAAgB;IACjCC,mBAAmB,EAAEA;EAAoB,GAExCH,QACS,CAAC;AAEjB","ignoreList":[]}
|
|
@@ -234,6 +234,65 @@ export function getDirectionStyle(props) {
|
|
|
234
234
|
}
|
|
235
235
|
return directionStyle;
|
|
236
236
|
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Resolves a plain (non-auto-layout) widget's own width/height fill|hug tokens into
|
|
240
|
+
* flex styles based on its parent's direction. Deliberately independent of
|
|
241
|
+
* getDimensionStyle (which drives auto-layout containers) so this can be applied
|
|
242
|
+
* generically to any widget without touching that existing, already-relied-upon logic.
|
|
243
|
+
* No-ops unless width/height is exactly 'fill' or 'hug'.
|
|
244
|
+
*/
|
|
245
|
+
export function resolveFillHugStyle(width, height, parentDirection, hasParentAlignment = false) {
|
|
246
|
+
const dimensionStyle = {};
|
|
247
|
+
const isRow = parentDirection === 'row';
|
|
248
|
+
if (height === 'fill') {
|
|
249
|
+
if (!parentDirection) {
|
|
250
|
+
dimensionStyle.height = '100%';
|
|
251
|
+
} else {
|
|
252
|
+
if (isRow) {
|
|
253
|
+
dimensionStyle.alignSelf = 'stretch';
|
|
254
|
+
} else {
|
|
255
|
+
dimensionStyle.flexGrow = 1;
|
|
256
|
+
dimensionStyle.flexShrink = 0;
|
|
257
|
+
dimensionStyle.flexBasis = 0;
|
|
258
|
+
dimensionStyle.minHeight = 0;
|
|
259
|
+
}
|
|
260
|
+
dimensionStyle.height = undefined;
|
|
261
|
+
}
|
|
262
|
+
} else if (height === 'hug') {
|
|
263
|
+
if (parentDirection && !isRow) {
|
|
264
|
+
dimensionStyle.flexGrow = 0;
|
|
265
|
+
}
|
|
266
|
+
dimensionStyle.height = undefined;
|
|
267
|
+
}
|
|
268
|
+
if (width === 'fill') {
|
|
269
|
+
if (!parentDirection) {
|
|
270
|
+
dimensionStyle.width = '100%';
|
|
271
|
+
} else {
|
|
272
|
+
if (isRow) {
|
|
273
|
+
dimensionStyle.flexGrow = 1;
|
|
274
|
+
dimensionStyle.flexShrink = 0;
|
|
275
|
+
dimensionStyle.flexBasis = 0;
|
|
276
|
+
dimensionStyle.minWidth = 0;
|
|
277
|
+
} else {
|
|
278
|
+
dimensionStyle.alignSelf = 'stretch';
|
|
279
|
+
}
|
|
280
|
+
dimensionStyle.width = undefined;
|
|
281
|
+
}
|
|
282
|
+
} else if (width === 'hug') {
|
|
283
|
+
if (parentDirection) {
|
|
284
|
+
if (isRow) {
|
|
285
|
+
dimensionStyle.flexGrow = 0;
|
|
286
|
+
dimensionStyle.flexBasis = 'auto';
|
|
287
|
+
dimensionStyle.flexShrink = 0;
|
|
288
|
+
} else if (!hasParentAlignment) {
|
|
289
|
+
dimensionStyle.alignSelf = 'flex-start';
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
dimensionStyle.width = undefined;
|
|
293
|
+
}
|
|
294
|
+
return dimensionStyle;
|
|
295
|
+
}
|
|
237
296
|
export function extractAutoLayoutProps(source, parentProps) {
|
|
238
297
|
var _source$overflow, _source$parentdirecti, _source$parentalignme;
|
|
239
298
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["alignmentMatrixFixed","justifyContent","alignItems","alignmentMatrixAuto","start","center","end","isAutoLayout","props","direction","wrap","gap","alignment","columngap","undefined","getPositionValueStyle","positionvalue","top","right","bottom","left","split","parse","v","Number","replace","getDimensionStyle","baseStyle","isInnerView","base","width","height","dimensionStyle","parentDir","parentdirection","hasParentAlignment","Boolean","parentalignment","isRow","position","Object","assign","clipcontent","overflow","zindex","zIndex","alignSelf","flexGrow","num","endsWith","parseFloat","isNaN","flexShrink","minWidth","flexBasis","getGapStyle","_props$gap","_props$direction","_props$alignment","finalGap","finalDirection","finalAlignment","isAutoGap","layoutStyle","alignConfig","columnGap","rowGap","getContentContainerStyle","_props$direction2","_props$wrap","_props$gap2","_props$alignment2","finalWrap","isWrap","flexWrap","alignContent","getDirectionStyle","directionStyle","flexDirection","extractAutoLayoutProps","source","parentProps","_source$overflow","_source$parentdirecti","_source$parentalignme","toLowerCase"],"sources":["auto-layout.utils.ts"],"sourcesContent":["import { ViewStyle, DimensionValue } from 'react-native';\n\nexport interface AutoLayoutProps {\n direction?: 'row' | 'column';\n wrap?: boolean;\n alignment?: string;\n gap?: number | string | 'auto';\n columngap?: number | string | 'auto';\n parentdirection?: string;\n parentalignment?: string;\n\n position?: 'relative' | 'sticky' | 'absolute' | 'fixed';\n zindex?: number;\n clipcontent?: boolean;\n overflow?: 'none' | 'scroll';\n positionvalue?: string;\n}\n\nexport type ParentAlignItems = 'flex-start' | 'center' | 'flex-end';\n\nconst alignmentMatrixFixed: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n 'top-left': { justifyContent: 'flex-start', alignItems: 'flex-start' },\n 'top-center': { justifyContent: 'center', alignItems: 'flex-start' },\n 'top-right': { justifyContent: 'flex-end', alignItems: 'flex-start' },\n 'middle-left': { justifyContent: 'flex-start', alignItems: 'center' },\n 'middle-center': { justifyContent: 'center', alignItems: 'center' },\n 'middle-right': { justifyContent: 'flex-end', alignItems: 'center' },\n 'bottom-left': { justifyContent: 'flex-start', alignItems: 'flex-end' },\n 'bottom-center': { justifyContent: 'center', alignItems: 'flex-end' },\n 'bottom-right': { justifyContent: 'flex-end', alignItems: 'flex-end' },\n};\n\nconst alignmentMatrixAuto: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n start: { justifyContent: 'space-between', alignItems: 'flex-start' },\n center: { justifyContent: 'space-between', alignItems: 'center' },\n end: { justifyContent: 'space-between', alignItems: 'flex-end' },\n};\n\nexport function isAutoLayout(props: AutoLayoutProps): boolean {\n const { direction, wrap, gap, alignment, columngap } = props;\n\n return (\n direction !== undefined ||\n wrap !== undefined ||\n gap !== undefined ||\n alignment !== undefined ||\n columngap !== undefined\n );\n}\n\nexport function getPositionValueStyle(\n positionvalue: AutoLayoutProps['positionvalue']): Pick<ViewStyle, 'top' | 'right' | 'bottom' | 'left'> {\n const [top, right, bottom, left] = positionvalue?.split(' ') || [];\n const parse = (v?: string) => {\n if (!v || v === 'auto') return undefined;\n return Number(v.replace('px', ''));\n };\n return {\n top: parse(top),\n right: parse(right),\n bottom: parse(bottom),\n left: parse(left),\n };\n}\n\nexport function getDimensionStyle(\n props: AutoLayoutProps,\n baseStyle?: ViewStyle,\n isInnerView: boolean = false\n): ViewStyle {\n const base = baseStyle || {};\n const { width, height }: any = base;\n const dimensionStyle: ViewStyle = {};\n const parentDir = props.parentdirection;\n const hasParentAlignment = Boolean(props.parentalignment);\n const isRow = parentDir === 'row';\n if (!isInnerView){\n if(props.position === 'absolute'){\n dimensionStyle.position = 'absolute';\n Object.assign(dimensionStyle, getPositionValueStyle(props.positionvalue));\n }\n if(props.clipcontent){\n if(props.overflow == \"none\"){\n dimensionStyle.overflow = 'hidden'\n }\n }\n if(props.zindex !== undefined){\n dimensionStyle.zIndex = props.zindex\n }\n }\n if (isInnerView) {\n if (width && width !== 'hug') {\n dimensionStyle.width = '100%';\n }\n if (height && height !== 'hug') {\n dimensionStyle.height = '100%';\n }\n return dimensionStyle;\n }\n\n if (height === 'fill') {\n if (!parentDir) {\n dimensionStyle.height = '100%';\n } else {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n }\n dimensionStyle.height = undefined;\n }\n } else if (height === 'hug' || height === undefined) {\n if (parentDir && !isRow) {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n } else if (height) {\n const num = (typeof height === 'string' && height.endsWith('%')) ? height : parseFloat(height);\n dimensionStyle.height = (isNaN(num as number) ? height : num) as DimensionValue;\n }\n\n if (width === 'fill') {\n if (!parentDir) {\n dimensionStyle.width = '100%';\n } else {\n if (isRow) {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 1;\n dimensionStyle.minWidth = 0;\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width === 'hug') {\n if (parentDir) {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n dimensionStyle.flexBasis = 'auto';\n dimensionStyle.flexShrink = 0;\n } else if (!hasParentAlignment) {\n dimensionStyle.alignSelf = 'flex-start';\n }\n }\n dimensionStyle.width = undefined;\n } else if (width === undefined) {\n if (parentDir) {\n if (isRow) {\n // Keep row children with implicit width in their natural content size.\n // Setting flexGrow=0 here makes RN Web emit `flex: 0 1 0%`, which can collapse text/content.\n dimensionStyle.flexBasis = 'auto';\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width) {\n const num = (typeof width === 'string' && width.endsWith('%')) ? width : parseFloat(width);\n dimensionStyle.width = (isNaN(num as number) ? width : num) as DimensionValue;\n }\n\n return dimensionStyle;\n}\n\nfunction getGapStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalGap = props.gap ?? 4;\n const finalDirection = props.direction ?? 'row';\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isAutoGap = finalGap === 'auto';\n const isRow = finalDirection === 'row';\n\n const layoutStyle: ViewStyle = {};\n\n if (isAutoGap) {\n const alignConfig = alignmentMatrixAuto[finalAlignment] || alignmentMatrixAuto['start'];\n layoutStyle.justifyContent = alignConfig.justifyContent as ViewStyle['justifyContent'];\n layoutStyle.alignItems = alignConfig.alignItems as ViewStyle['alignItems'];\n } else {\n if (isRow) {\n layoutStyle.columnGap = Number(finalGap);\n } else {\n layoutStyle.rowGap = Number(finalGap);\n }\n }\n\n return layoutStyle;\n}\n\nexport function getContentContainerStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalDirection = props.direction ?? 'row';\n const finalWrap = props.wrap ?? false;\n const finalGap = props.gap ?? 4;\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isRow = finalDirection === 'row';\n const isAutoGap = finalGap === 'auto';\n const isWrap = finalWrap === true;\n\n const layoutStyle: ViewStyle = {\n flexWrap: isWrap && isRow ? 'wrap' : 'nowrap',\n };\n\n if (!isAutoGap) {\n const alignConfig =\n alignmentMatrixFixed[finalAlignment] || alignmentMatrixFixed['top-left'];\n\n layoutStyle.justifyContent = (\n isRow ? alignConfig.justifyContent : alignConfig.alignItems\n ) as ViewStyle['justifyContent'];\n layoutStyle.alignItems = (\n isRow ? alignConfig.alignItems : alignConfig.justifyContent\n ) as ViewStyle['alignItems'];\n }\n\n if (isWrap && isRow) {\n if (props.columngap === 'auto') {\n layoutStyle.alignContent = 'space-between';\n } else if (props.columngap !== undefined) {\n layoutStyle.rowGap = Number(props.columngap);\n layoutStyle.alignContent = 'flex-start';\n } else {\n // RN Web defaults wrapped rows to stretch, which can create large vertical gaps.\n layoutStyle.alignContent = 'flex-start';\n }\n }\n\n return {\n ...layoutStyle,\n ...getGapStyle(props),\n };\n}\n\nexport function getDirectionStyle(props: AutoLayoutProps): ViewStyle {\n const directionStyle: ViewStyle = {};\n if (props.direction) {\n directionStyle.flexDirection = props.direction;\n }\n return directionStyle;\n}\n\nexport function extractAutoLayoutProps(source: Record<string, any>, parentProps?: Record<string, any>): AutoLayoutProps {\n return {\n direction: source.direction,\n wrap: source.wrap,\n gap: source.gap,\n alignment: source.alignment,\n columngap: source.columngap,\n position: source.position,\n positionvalue: source.positionvalue,\n zindex: source.zindex,\n clipcontent: source.clipcontent,\n overflow: source.overflow?.toLowerCase() as AutoLayoutProps['overflow'],\n parentdirection: source.parentdirection ?? parentProps?.direction,\n parentalignment: source.parentalignment ?? parentProps?.alignment,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["alignmentMatrixFixed","justifyContent","alignItems","alignmentMatrixAuto","start","center","end","isAutoLayout","props","direction","wrap","gap","alignment","columngap","undefined","getPositionValueStyle","positionvalue","top","right","bottom","left","split","parse","v","Number","replace","getDimensionStyle","baseStyle","isInnerView","base","width","height","dimensionStyle","parentDir","parentdirection","hasParentAlignment","Boolean","parentalignment","isRow","position","Object","assign","clipcontent","overflow","zindex","zIndex","alignSelf","flexGrow","num","endsWith","parseFloat","isNaN","flexShrink","minWidth","flexBasis","getGapStyle","_props$gap","_props$direction","_props$alignment","finalGap","finalDirection","finalAlignment","isAutoGap","layoutStyle","alignConfig","columnGap","rowGap","getContentContainerStyle","_props$direction2","_props$wrap","_props$gap2","_props$alignment2","finalWrap","isWrap","flexWrap","alignContent","getDirectionStyle","directionStyle","flexDirection","resolveFillHugStyle","parentDirection","minHeight","extractAutoLayoutProps","source","parentProps","_source$overflow","_source$parentdirecti","_source$parentalignme","toLowerCase"],"sources":["auto-layout.utils.ts"],"sourcesContent":["import { ViewStyle, DimensionValue } from 'react-native';\n\nexport interface AutoLayoutProps {\n direction?: 'row' | 'column';\n wrap?: boolean;\n alignment?: string;\n gap?: number | string | 'auto';\n columngap?: number | string | 'auto';\n parentdirection?: string;\n parentalignment?: string;\n\n position?: 'relative' | 'sticky' | 'absolute' | 'fixed';\n zindex?: number;\n clipcontent?: boolean;\n overflow?: 'none' | 'scroll';\n positionvalue?: string;\n}\n\nexport type ParentAlignItems = 'flex-start' | 'center' | 'flex-end';\n\nconst alignmentMatrixFixed: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n 'top-left': { justifyContent: 'flex-start', alignItems: 'flex-start' },\n 'top-center': { justifyContent: 'center', alignItems: 'flex-start' },\n 'top-right': { justifyContent: 'flex-end', alignItems: 'flex-start' },\n 'middle-left': { justifyContent: 'flex-start', alignItems: 'center' },\n 'middle-center': { justifyContent: 'center', alignItems: 'center' },\n 'middle-right': { justifyContent: 'flex-end', alignItems: 'center' },\n 'bottom-left': { justifyContent: 'flex-start', alignItems: 'flex-end' },\n 'bottom-center': { justifyContent: 'center', alignItems: 'flex-end' },\n 'bottom-right': { justifyContent: 'flex-end', alignItems: 'flex-end' },\n};\n\nconst alignmentMatrixAuto: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n start: { justifyContent: 'space-between', alignItems: 'flex-start' },\n center: { justifyContent: 'space-between', alignItems: 'center' },\n end: { justifyContent: 'space-between', alignItems: 'flex-end' },\n};\n\nexport function isAutoLayout(props: AutoLayoutProps): boolean {\n const { direction, wrap, gap, alignment, columngap } = props;\n\n return (\n direction !== undefined ||\n wrap !== undefined ||\n gap !== undefined ||\n alignment !== undefined ||\n columngap !== undefined\n );\n}\n\nexport function getPositionValueStyle(\n positionvalue: AutoLayoutProps['positionvalue']): Pick<ViewStyle, 'top' | 'right' | 'bottom' | 'left'> {\n const [top, right, bottom, left] = positionvalue?.split(' ') || [];\n const parse = (v?: string) => {\n if (!v || v === 'auto') return undefined;\n return Number(v.replace('px', ''));\n };\n return {\n top: parse(top),\n right: parse(right),\n bottom: parse(bottom),\n left: parse(left),\n };\n}\n\nexport function getDimensionStyle(\n props: AutoLayoutProps,\n baseStyle?: ViewStyle,\n isInnerView: boolean = false\n): ViewStyle {\n const base = baseStyle || {};\n const { width, height }: any = base;\n const dimensionStyle: ViewStyle = {};\n const parentDir = props.parentdirection;\n const hasParentAlignment = Boolean(props.parentalignment);\n const isRow = parentDir === 'row';\n if (!isInnerView){\n if(props.position === 'absolute'){\n dimensionStyle.position = 'absolute';\n Object.assign(dimensionStyle, getPositionValueStyle(props.positionvalue));\n }\n if(props.clipcontent){\n if(props.overflow == \"none\"){\n dimensionStyle.overflow = 'hidden'\n }\n }\n if(props.zindex !== undefined){\n dimensionStyle.zIndex = props.zindex\n }\n }\n if (isInnerView) {\n if (width && width !== 'hug') {\n dimensionStyle.width = '100%';\n }\n if (height && height !== 'hug') {\n dimensionStyle.height = '100%';\n }\n return dimensionStyle;\n }\n\n if (height === 'fill') {\n if (!parentDir) {\n dimensionStyle.height = '100%';\n } else {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n }\n dimensionStyle.height = undefined;\n }\n } else if (height === 'hug' || height === undefined) {\n if (parentDir && !isRow) {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n } else if (height) {\n const num = (typeof height === 'string' && height.endsWith('%')) ? height : parseFloat(height);\n dimensionStyle.height = (isNaN(num as number) ? height : num) as DimensionValue;\n }\n\n if (width === 'fill') {\n if (!parentDir) {\n dimensionStyle.width = '100%';\n } else {\n if (isRow) {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 1;\n dimensionStyle.minWidth = 0;\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width === 'hug') {\n if (parentDir) {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n dimensionStyle.flexBasis = 'auto';\n dimensionStyle.flexShrink = 0;\n } else if (!hasParentAlignment) {\n dimensionStyle.alignSelf = 'flex-start';\n }\n }\n dimensionStyle.width = undefined;\n } else if (width === undefined) {\n if (parentDir) {\n if (isRow) {\n // Keep row children with implicit width in their natural content size.\n // Setting flexGrow=0 here makes RN Web emit `flex: 0 1 0%`, which can collapse text/content.\n dimensionStyle.flexBasis = 'auto';\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width) {\n const num = (typeof width === 'string' && width.endsWith('%')) ? width : parseFloat(width);\n dimensionStyle.width = (isNaN(num as number) ? width : num) as DimensionValue;\n }\n\n return dimensionStyle;\n}\n\nfunction getGapStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalGap = props.gap ?? 4;\n const finalDirection = props.direction ?? 'row';\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isAutoGap = finalGap === 'auto';\n const isRow = finalDirection === 'row';\n\n const layoutStyle: ViewStyle = {};\n\n if (isAutoGap) {\n const alignConfig = alignmentMatrixAuto[finalAlignment] || alignmentMatrixAuto['start'];\n layoutStyle.justifyContent = alignConfig.justifyContent as ViewStyle['justifyContent'];\n layoutStyle.alignItems = alignConfig.alignItems as ViewStyle['alignItems'];\n } else {\n if (isRow) {\n layoutStyle.columnGap = Number(finalGap);\n } else {\n layoutStyle.rowGap = Number(finalGap);\n }\n }\n\n return layoutStyle;\n}\n\nexport function getContentContainerStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalDirection = props.direction ?? 'row';\n const finalWrap = props.wrap ?? false;\n const finalGap = props.gap ?? 4;\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isRow = finalDirection === 'row';\n const isAutoGap = finalGap === 'auto';\n const isWrap = finalWrap === true;\n\n const layoutStyle: ViewStyle = {\n flexWrap: isWrap && isRow ? 'wrap' : 'nowrap',\n };\n\n if (!isAutoGap) {\n const alignConfig =\n alignmentMatrixFixed[finalAlignment] || alignmentMatrixFixed['top-left'];\n\n layoutStyle.justifyContent = (\n isRow ? alignConfig.justifyContent : alignConfig.alignItems\n ) as ViewStyle['justifyContent'];\n layoutStyle.alignItems = (\n isRow ? alignConfig.alignItems : alignConfig.justifyContent\n ) as ViewStyle['alignItems'];\n }\n\n if (isWrap && isRow) {\n if (props.columngap === 'auto') {\n layoutStyle.alignContent = 'space-between';\n } else if (props.columngap !== undefined) {\n layoutStyle.rowGap = Number(props.columngap);\n layoutStyle.alignContent = 'flex-start';\n } else {\n // RN Web defaults wrapped rows to stretch, which can create large vertical gaps.\n layoutStyle.alignContent = 'flex-start';\n }\n }\n\n return {\n ...layoutStyle,\n ...getGapStyle(props),\n };\n}\n\nexport function getDirectionStyle(props: AutoLayoutProps): ViewStyle {\n const directionStyle: ViewStyle = {};\n if (props.direction) {\n directionStyle.flexDirection = props.direction;\n }\n return directionStyle;\n}\n\n/**\n * Resolves a plain (non-auto-layout) widget's own width/height fill|hug tokens into\n * flex styles based on its parent's direction. Deliberately independent of\n * getDimensionStyle (which drives auto-layout containers) so this can be applied\n * generically to any widget without touching that existing, already-relied-upon logic.\n * No-ops unless width/height is exactly 'fill' or 'hug'.\n */\nexport function resolveFillHugStyle(\n width: string | number | undefined,\n height: string | number | undefined,\n parentDirection?: string,\n hasParentAlignment: boolean = false\n): ViewStyle {\n const dimensionStyle: ViewStyle = {};\n const isRow = parentDirection === 'row';\n\n if (height === 'fill') {\n if (!parentDirection) {\n dimensionStyle.height = '100%';\n } else {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 0;\n dimensionStyle.flexBasis = 0;\n dimensionStyle.minHeight = 0;\n }\n dimensionStyle.height = undefined;\n }\n } else if (height === 'hug') {\n if (parentDirection && !isRow) {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n }\n\n if (width === 'fill') {\n if (!parentDirection) {\n dimensionStyle.width = '100%';\n } else {\n if (isRow) {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 0;\n dimensionStyle.flexBasis = 0;\n dimensionStyle.minWidth = 0;\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width === 'hug') {\n if (parentDirection) {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n dimensionStyle.flexBasis = 'auto';\n dimensionStyle.flexShrink = 0;\n } else if (!hasParentAlignment) {\n dimensionStyle.alignSelf = 'flex-start';\n }\n }\n dimensionStyle.width = undefined;\n }\n\n return dimensionStyle;\n}\n\nexport function extractAutoLayoutProps(source: Record<string, any>, parentProps?: Record<string, any>): AutoLayoutProps {\n return {\n direction: source.direction,\n wrap: source.wrap,\n gap: source.gap,\n alignment: source.alignment,\n columngap: source.columngap,\n position: source.position,\n positionvalue: source.positionvalue,\n zindex: source.zindex,\n clipcontent: source.clipcontent,\n overflow: source.overflow?.toLowerCase() as AutoLayoutProps['overflow'],\n parentdirection: source.parentdirection ?? parentProps?.direction,\n parentalignment: source.parentalignment ?? parentProps?.alignment,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/core/base.component.js
CHANGED
|
@@ -24,7 +24,7 @@ import { TextIdPrefixConsumer } from './testid.provider';
|
|
|
24
24
|
import { isScreenReaderEnabled } from './accessibility';
|
|
25
25
|
import { TappableContext } from './tappable.component';
|
|
26
26
|
import { WmComponentNode } from './wm-component-tree';
|
|
27
|
-
import { getPositionValueStyle } from './auto-layout.utils';
|
|
27
|
+
import { getPositionValueStyle, resolveFillHugStyle } from './auto-layout.utils';
|
|
28
28
|
export const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');
|
|
29
29
|
export const ParentContext = /*#__PURE__*/React.createContext(null);
|
|
30
30
|
export class BaseComponentState {
|
|
@@ -421,6 +421,16 @@ export class BaseComponent extends React.Component {
|
|
|
421
421
|
}
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Whether this widget already resolves its own width/height 'fill'/'hug' tokens
|
|
427
|
+
* elsewhere (e.g. auto-layout containers calling getDimensionStyle on their own root).
|
|
428
|
+
* Overridden by those widgets specifically — must NOT be inferred from prop shape,
|
|
429
|
+
* since unrelated widgets can have their own props named direction/wrap/gap/alignment.
|
|
430
|
+
*/
|
|
431
|
+
hasOwnFillHugResolution() {
|
|
432
|
+
return false;
|
|
433
|
+
}
|
|
424
434
|
copyStyles(property, from, to) {
|
|
425
435
|
if (!isUndefined(from[property])) {
|
|
426
436
|
to[property] = from[property];
|
|
@@ -649,6 +659,17 @@ export class BaseComponent extends React.Component {
|
|
|
649
659
|
}
|
|
650
660
|
this.setBackground();
|
|
651
661
|
this.isFixed = this.styles.root.position === 'fixed' || props.position === 'fixed';
|
|
662
|
+
if (!this.isFixed) {
|
|
663
|
+
const rootStyle = this.styles.root;
|
|
664
|
+
if (rootStyle.width === 'fill' || rootStyle.width === 'hug' || rootStyle.height === 'fill' || rootStyle.height === 'hug') {
|
|
665
|
+
var _this$parent5;
|
|
666
|
+
const parentProps = (_this$parent5 = this.parent) === null || _this$parent5 === void 0 || (_this$parent5 = _this$parent5.state) === null || _this$parent5 === void 0 ? void 0 : _this$parent5.props;
|
|
667
|
+
const hasOwnResolution = this.hasOwnFillHugResolution();
|
|
668
|
+
if (!hasOwnResolution) {
|
|
669
|
+
Object.assign(this.styles.root, resolveFillHugStyle(rootStyle.width, rootStyle.height, parentProps === null || parentProps === void 0 ? void 0 : parentProps.direction, Boolean(parentProps === null || parentProps === void 0 ? void 0 : parentProps.alignment)));
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
652
673
|
const positionStyle = getPositionValueStyle(props.positionvalue);
|
|
653
674
|
if (this.isFixed) {
|
|
654
675
|
this.styles.root.position = undefined;
|