1082815dcSEvan Bacon"use strict"; 2082815dcSEvan Bacon 3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", { 4082815dcSEvan Bacon value: true 5082815dcSEvan Bacon}); 6082815dcSEvan Baconexports.getStatusBarColor = getStatusBarColor; 7082815dcSEvan Baconexports.getStatusBarStyle = getStatusBarStyle; 8082815dcSEvan Baconexports.getStatusBarTranslucent = getStatusBarTranslucent; 9082815dcSEvan Baconexports.setStatusBarColors = setStatusBarColors; 10082815dcSEvan Baconexports.setStatusBarStyles = setStatusBarStyles; 11082815dcSEvan Baconexports.withStatusBar = void 0; 12082815dcSEvan Baconfunction _assert() { 13082815dcSEvan Bacon const data = _interopRequireDefault(require("assert")); 14082815dcSEvan Bacon _assert = function () { 15082815dcSEvan Bacon return data; 16082815dcSEvan Bacon }; 17082815dcSEvan Bacon return data; 18082815dcSEvan Bacon} 19082815dcSEvan Baconfunction _Colors() { 20082815dcSEvan Bacon const data = require("./Colors"); 21082815dcSEvan Bacon _Colors = function () { 22082815dcSEvan Bacon return data; 23082815dcSEvan Bacon }; 24082815dcSEvan Bacon return data; 25082815dcSEvan Bacon} 26082815dcSEvan Baconfunction _Styles() { 27082815dcSEvan Bacon const data = require("./Styles"); 28082815dcSEvan Bacon _Styles = function () { 29082815dcSEvan Bacon return data; 30082815dcSEvan Bacon }; 31082815dcSEvan Bacon return data; 32082815dcSEvan Bacon} 33*8a424bebSJames Idefunction _androidPlugins() { 34*8a424bebSJames Ide const data = require("../plugins/android-plugins"); 35*8a424bebSJames Ide _androidPlugins = function () { 36*8a424bebSJames Ide return data; 37*8a424bebSJames Ide }; 38*8a424bebSJames Ide return data; 39*8a424bebSJames Ide} 40082815dcSEvan Baconfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 41082815dcSEvan Bacon// https://developer.android.com/reference/android/R.attr#colorPrimaryDark 42ee216927STomasz Sapetaconst COLOR_PRIMARY_DARK_KEY = 'colorPrimaryDark'; 43ee216927STomasz Sapeta// https://developer.android.com/reference/android/R.attr#windowTranslucentStatus 44ee216927STomasz Sapetaconst WINDOW_TRANSLUCENT_STATUS = 'android:windowTranslucentStatus'; 45ee216927STomasz Sapeta// https://developer.android.com/reference/android/R.attr#windowLightStatusBar 46082815dcSEvan Baconconst WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar'; 47082815dcSEvan Baconconst withStatusBar = config => { 48082815dcSEvan Bacon config = withStatusBarColors(config); 49082815dcSEvan Bacon config = withStatusBarStyles(config); 50082815dcSEvan Bacon return config; 51082815dcSEvan Bacon}; 52082815dcSEvan Baconexports.withStatusBar = withStatusBar; 53082815dcSEvan Baconconst withStatusBarColors = config => { 54082815dcSEvan Bacon return (0, _androidPlugins().withAndroidColors)(config, config => { 55082815dcSEvan Bacon config.modResults = setStatusBarColors(config, config.modResults); 56082815dcSEvan Bacon return config; 57082815dcSEvan Bacon }); 58082815dcSEvan Bacon}; 59082815dcSEvan Baconconst withStatusBarStyles = config => { 60082815dcSEvan Bacon return (0, _androidPlugins().withAndroidStyles)(config, config => { 61082815dcSEvan Bacon config.modResults = setStatusBarStyles(config, config.modResults); 62082815dcSEvan Bacon return config; 63082815dcSEvan Bacon }); 64082815dcSEvan Bacon}; 65082815dcSEvan Baconfunction setStatusBarColors(config, colors) { 66082815dcSEvan Bacon return (0, _Colors().assignColorValue)(colors, { 67082815dcSEvan Bacon name: COLOR_PRIMARY_DARK_KEY, 68082815dcSEvan Bacon value: getStatusBarColor(config) 69082815dcSEvan Bacon }); 70082815dcSEvan Bacon} 71082815dcSEvan Baconfunction setStatusBarStyles(config, styles) { 72082815dcSEvan Bacon const hexString = getStatusBarColor(config); 73082815dcSEvan Bacon const floatElement = getStatusBarTranslucent(config); 74082815dcSEvan Bacon styles = (0, _Styles().assignStylesValue)(styles, { 75082815dcSEvan Bacon parent: (0, _Styles().getAppThemeLightNoActionBarGroup)(), 76082815dcSEvan Bacon name: WINDOW_LIGHT_STATUS_BAR, 77082815dcSEvan Bacon targetApi: '23', 78082815dcSEvan Bacon value: 'true', 79082815dcSEvan Bacon // Default is light-content, don't need to do anything to set it 80082815dcSEvan Bacon add: getStatusBarStyle(config) === 'dark-content' 81082815dcSEvan Bacon }); 82082815dcSEvan Bacon styles = (0, _Styles().assignStylesValue)(styles, { 83082815dcSEvan Bacon parent: (0, _Styles().getAppThemeLightNoActionBarGroup)(), 84082815dcSEvan Bacon name: WINDOW_TRANSLUCENT_STATUS, 85082815dcSEvan Bacon value: 'true', 86082815dcSEvan Bacon // translucent status bar set in theme 87082815dcSEvan Bacon add: floatElement 88082815dcSEvan Bacon }); 89082815dcSEvan Bacon styles = (0, _Styles().assignStylesValue)(styles, { 90082815dcSEvan Bacon parent: (0, _Styles().getAppThemeLightNoActionBarGroup)(), 91082815dcSEvan Bacon name: COLOR_PRIMARY_DARK_KEY, 92082815dcSEvan Bacon value: `@color/${COLOR_PRIMARY_DARK_KEY}`, 93082815dcSEvan Bacon // Remove the color if translucent is used 94082815dcSEvan Bacon add: !!hexString 95082815dcSEvan Bacon }); 96082815dcSEvan Bacon return styles; 97082815dcSEvan Bacon} 98082815dcSEvan Baconfunction getStatusBarColor(config) { 99082815dcSEvan Bacon var _config$androidStatus; 100082815dcSEvan Bacon const backgroundColor = (_config$androidStatus = config.androidStatusBar) === null || _config$androidStatus === void 0 ? void 0 : _config$androidStatus.backgroundColor; 101082815dcSEvan Bacon if (backgroundColor) { 102082815dcSEvan Bacon // Drop support for translucent 103082815dcSEvan Bacon (0, _assert().default)(backgroundColor !== 'translucent', `androidStatusBar.backgroundColor must be a valid hex string, instead got: "${backgroundColor}"`); 104082815dcSEvan Bacon } 105082815dcSEvan Bacon return backgroundColor; 106082815dcSEvan Bacon} 107ee216927STomasz Sapeta 108082815dcSEvan Bacon/** 109082815dcSEvan Bacon * Specifies whether the status bar should be "translucent". When true, the status bar is drawn with `position: absolute` and a gray underlay, when false `position: relative` (pushes content down). 110082815dcSEvan Bacon * 111082815dcSEvan Bacon * @default false 112082815dcSEvan Bacon * @param config 113082815dcSEvan Bacon * @returns 114082815dcSEvan Bacon */ 115082815dcSEvan Baconfunction getStatusBarTranslucent(config) { 116082815dcSEvan Bacon var _config$androidStatus2, _config$androidStatus3; 117082815dcSEvan Bacon return (_config$androidStatus2 = (_config$androidStatus3 = config.androidStatusBar) === null || _config$androidStatus3 === void 0 ? void 0 : _config$androidStatus3.translucent) !== null && _config$androidStatus2 !== void 0 ? _config$androidStatus2 : false; 118082815dcSEvan Bacon} 119082815dcSEvan Baconfunction getStatusBarStyle(config) { 120082815dcSEvan Bacon var _config$androidStatus4; 121082815dcSEvan Bacon return ((_config$androidStatus4 = config.androidStatusBar) === null || _config$androidStatus4 === void 0 ? void 0 : _config$androidStatus4.barStyle) || 'light-content'; 122082815dcSEvan Bacon} 123082815dcSEvan Bacon//# sourceMappingURL=StatusBar.js.map