{"ast":null,"code":"function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nimport * as React from 'react';\nimport View from \"react-native-web/dist/exports/View\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport { useSafeAreaInsets } from \"./SafeAreaContext\";\nvar TOP = 8,\n    RIGHT = 4,\n    BOTTOM = 2,\n    LEFT = 1,\n    ALL = 15;\nvar edgeBitmaskMap = {\n  top: TOP,\n  right: RIGHT,\n  bottom: BOTTOM,\n  left: LEFT\n};\nexport function SafeAreaView(_ref) {\n  var _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      mode = _ref.mode,\n      edges = _ref.edges,\n      rest = _objectWithoutProperties(_ref, [\"style\", \"mode\", \"edges\"]);\n\n  var insets = useSafeAreaInsets();\n  var edgeBitmask = edges != null ? edges.reduce(function (accum, edge) {\n    return accum | edgeBitmaskMap[edge];\n  }, 0) : ALL;\n  var appliedStyle = React.useMemo(function () {\n    var insetTop = edgeBitmask & TOP ? insets.top : 0;\n    var insetRight = edgeBitmask & RIGHT ? insets.right : 0;\n    var insetBottom = edgeBitmask & BOTTOM ? insets.bottom : 0;\n    var insetLeft = edgeBitmask & LEFT ? insets.left : 0;\n    var flatStyle = StyleSheet.flatten(style);\n\n    if (mode === 'margin') {\n      var _flatStyle$margin = flatStyle.margin,\n          margin = _flatStyle$margin === void 0 ? 0 : _flatStyle$margin,\n          _flatStyle$marginVert = flatStyle.marginVertical,\n          marginVertical = _flatStyle$marginVert === void 0 ? margin : _flatStyle$marginVert,\n          _flatStyle$marginHori = flatStyle.marginHorizontal,\n          marginHorizontal = _flatStyle$marginHori === void 0 ? margin : _flatStyle$marginHori,\n          _flatStyle$marginTop = flatStyle.marginTop,\n          marginTop = _flatStyle$marginTop === void 0 ? marginVertical : _flatStyle$marginTop,\n          _flatStyle$marginRigh = flatStyle.marginRight,\n          marginRight = _flatStyle$marginRigh === void 0 ? marginHorizontal : _flatStyle$marginRigh,\n          _flatStyle$marginBott = flatStyle.marginBottom,\n          marginBottom = _flatStyle$marginBott === void 0 ? marginVertical : _flatStyle$marginBott,\n          _flatStyle$marginLeft = flatStyle.marginLeft,\n          marginLeft = _flatStyle$marginLeft === void 0 ? marginHorizontal : _flatStyle$marginLeft;\n      var marginStyle = {\n        marginTop: marginTop + insetTop,\n        marginRight: marginRight + insetRight,\n        marginBottom: marginBottom + insetBottom,\n        marginLeft: marginLeft + insetLeft\n      };\n      return [style, marginStyle];\n    } else {\n      var _flatStyle$padding = flatStyle.padding,\n          padding = _flatStyle$padding === void 0 ? 0 : _flatStyle$padding,\n          _flatStyle$paddingVer = flatStyle.paddingVertical,\n          paddingVertical = _flatStyle$paddingVer === void 0 ? padding : _flatStyle$paddingVer,\n          _flatStyle$paddingHor = flatStyle.paddingHorizontal,\n          paddingHorizontal = _flatStyle$paddingHor === void 0 ? padding : _flatStyle$paddingHor,\n          _flatStyle$paddingTop = flatStyle.paddingTop,\n          paddingTop = _flatStyle$paddingTop === void 0 ? paddingVertical : _flatStyle$paddingTop,\n          _flatStyle$paddingRig = flatStyle.paddingRight,\n          paddingRight = _flatStyle$paddingRig === void 0 ? paddingHorizontal : _flatStyle$paddingRig,\n          _flatStyle$paddingBot = flatStyle.paddingBottom,\n          paddingBottom = _flatStyle$paddingBot === void 0 ? paddingVertical : _flatStyle$paddingBot,\n          _flatStyle$paddingLef = flatStyle.paddingLeft,\n          paddingLeft = _flatStyle$paddingLef === void 0 ? paddingHorizontal : _flatStyle$paddingLef;\n      var paddingStyle = {\n        paddingTop: paddingTop + insetTop,\n        paddingRight: paddingRight + insetRight,\n        paddingBottom: paddingBottom + insetBottom,\n        paddingLeft: paddingLeft + insetLeft\n      };\n      return [style, paddingStyle];\n    }\n  }, [style, insets, mode, edgeBitmask]);\n  return React.createElement(View, _extends({\n    style: appliedStyle\n  }, rest));\n}","map":{"version":3,"sources":["SafeAreaView.tsx"],"names":["TOP","RIGHT","BOTTOM","LEFT","ALL","edgeBitmaskMap","top","right","bottom","left","style","edges","rest","insets","useSafeAreaInsets","edgeBitmask","accum","appliedStyle","insetTop","insetRight","insetBottom","insetLeft","flatStyle","StyleSheet","mode","margin","marginVertical","marginHorizontal","marginTop","marginRight","marginBottom","marginLeft","marginStyle","padding","paddingVertical","paddingHorizontal","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingStyle"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useSafeAreaInsets } from './SafeAreaContext';\nimport { Edge, NativeSafeAreaViewProps } from './SafeArea.types';\n\n// prettier-ignore\nconst TOP    = 0b1000,\n      RIGHT  = 0b0100,\n      BOTTOM = 0b0010,\n      LEFT   = 0b0001,\n      ALL    = 0b1111;\n\n/* eslint-disable no-bitwise */\n\nconst edgeBitmaskMap: Record<Edge, number> = {\n  top: TOP,\n  right: RIGHT,\n  bottom: BOTTOM,\n  left: LEFT,\n};\n\nexport function SafeAreaView({\n  style = {},\n  mode,\n  edges,\n  ...rest\n}: NativeSafeAreaViewProps) {\n  const insets = useSafeAreaInsets();\n\n  const edgeBitmask =\n    edges != null\n      ? edges.reduce((accum, edge) => accum | edgeBitmaskMap[edge], 0)\n      : ALL;\n\n  const appliedStyle = React.useMemo(() => {\n    const insetTop = edgeBitmask & TOP ? insets.top : 0;\n    const insetRight = edgeBitmask & RIGHT ? insets.right : 0;\n    const insetBottom = edgeBitmask & BOTTOM ? insets.bottom : 0;\n    const insetLeft = edgeBitmask & LEFT ? insets.left : 0;\n\n    const flatStyle = StyleSheet.flatten(style) as Record<string, number>;\n\n    if (mode === 'margin') {\n      const {\n        margin = 0,\n        marginVertical = margin,\n        marginHorizontal = margin,\n        marginTop = marginVertical,\n        marginRight = marginHorizontal,\n        marginBottom = marginVertical,\n        marginLeft = marginHorizontal,\n      } = flatStyle;\n\n      const marginStyle = {\n        marginTop: marginTop + insetTop,\n        marginRight: marginRight + insetRight,\n        marginBottom: marginBottom + insetBottom,\n        marginLeft: marginLeft + insetLeft,\n      };\n\n      return [style, marginStyle];\n    } else {\n      const {\n        padding = 0,\n        paddingVertical = padding,\n        paddingHorizontal = padding,\n        paddingTop = paddingVertical,\n        paddingRight = paddingHorizontal,\n        paddingBottom = paddingVertical,\n        paddingLeft = paddingHorizontal,\n      } = flatStyle;\n\n      const paddingStyle = {\n        paddingTop: paddingTop + insetTop,\n        paddingRight: paddingRight + insetRight,\n        paddingBottom: paddingBottom + insetBottom,\n        paddingLeft: paddingLeft + insetLeft,\n      };\n\n      return [style, paddingStyle];\n    }\n  }, [style, insets, mode, edgeBitmask]);\n\n  return <View style={appliedStyle} {...rest} />;\n}\n"]},"metadata":{},"sourceType":"module"}