{"ast":null,"code":"import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from \"./constants\";\nimport normalizeValueWithProperty from \"./normalizeValueWithProperty\";\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n\nvar mapTransform = function mapTransform(transform) {\n  var type = Object.keys(transform)[0];\n  var value = transform[type];\n\n  if (type === 'matrix' || type === 'matrix3d') {\n    return type + \"(\" + value.join(',') + \")\";\n  } else {\n    var normalizedValue = normalizeValueWithProperty(value, type);\n    return type + \"(\" + normalizedValue + \")\";\n  }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n  var transform = style.transform;\n\n  if (Array.isArray(style.transform)) {\n    transform = style.transform.map(mapTransform).join(' ');\n  }\n\n  resolvedStyle.transform = transform;\n};\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n  if (!style) {\n    return emptyObject;\n  }\n\n  var resolvedStyle = {};\n  Object.keys(style).sort().forEach(function (prop) {\n    var value = normalizeValueWithProperty(style[prop], prop);\n\n    if (value == null) {\n      return;\n    }\n\n    switch (prop) {\n      case 'aspectRatio':\n      case 'elevation':\n      case 'overlayColor':\n      case 'resizeMode':\n      case 'tintColor':\n        {\n          break;\n        }\n\n      case 'backgroundClip':\n        {\n          if (value === 'text') {\n            resolvedStyle.backgroundClip = value;\n            resolvedStyle.WebkitBackgroundClip = value;\n          }\n\n          break;\n        }\n\n      case 'flex':\n        {\n          if (value === -1) {\n            resolvedStyle.flexGrow = 0;\n            resolvedStyle.flexShrink = 1;\n            resolvedStyle.flexBasis = 'auto';\n          } else {\n            resolvedStyle.flex = value;\n          }\n\n          break;\n        }\n\n      case 'font':\n        {\n          resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n          break;\n        }\n\n      case 'fontFamily':\n        {\n          if (value.indexOf('System') > -1) {\n            var stack = value.split(/,\\s*/);\n            stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n            resolvedStyle[prop] = stack.join(',');\n          } else if (value === 'monospace') {\n            resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n          } else {\n            resolvedStyle[prop] = value;\n          }\n\n          break;\n        }\n\n      case 'fontVariant':\n        {\n          if (Array.isArray(value) && value.length > 0) {\n            resolvedStyle.fontVariant = value.join(' ');\n          }\n\n          break;\n        }\n\n      case 'textAlignVertical':\n        {\n          resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n          break;\n        }\n\n      case 'textDecorationLine':\n        {\n          if (!supportsCSS3TextDecoration) {\n            resolvedStyle.textDecoration = value;\n          } else {\n            resolvedStyle.textDecorationLine = value;\n          }\n\n          break;\n        }\n\n      case 'transform':\n      case 'transformMatrix':\n        {\n          resolveTransform(resolvedStyle, style);\n          break;\n        }\n\n      case 'writingDirection':\n        {\n          resolvedStyle.direction = value;\n          break;\n        }\n\n      default:\n        {\n          var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n          if (longFormProperties) {\n            longFormProperties.forEach(function (longForm, i) {\n              if (typeof style[longForm] === 'undefined') {\n                resolvedStyle[longForm] = value;\n              }\n            });\n          } else {\n            resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n          }\n        }\n    }\n  });\n  return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","map":{"version":3,"sources":["/Users/nishan/Desktop/oss/responsive-breakpoints/example/node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js"],"names":["canUseDOM","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","normalizeValueWithProperty","emptyObject","supportsCSS3TextDecoration","window","CSS","supports","mapTransform","transform","type","Object","keys","value","join","normalizedValue","resolveTransform","resolvedStyle","style","Array","isArray","map","createReactDOMStyle","sort","forEach","prop","backgroundClip","WebkitBackgroundClip","flexGrow","flexShrink","flexBasis","flex","replace","indexOf","stack","split","length","fontVariant","verticalAlign","textDecoration","textDecorationLine","direction","longFormProperties","longForm","i"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from './constants';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = function mapTransform(transform) {\n  var type = Object.keys(transform)[0];\n  var value = transform[type];\n\n  if (type === 'matrix' || type === 'matrix3d') {\n    return type + \"(\" + value.join(',') + \")\";\n  } else {\n    var normalizedValue = normalizeValueWithProperty(value, type);\n    return type + \"(\" + normalizedValue + \")\";\n  }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n  var transform = style.transform;\n\n  if (Array.isArray(style.transform)) {\n    transform = style.transform.map(mapTransform).join(' ');\n  }\n\n  resolvedStyle.transform = transform;\n};\n/**\n * Reducer\n */\n\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n  if (!style) {\n    return emptyObject;\n  }\n\n  var resolvedStyle = {};\n  Object.keys(style).sort().forEach(function (prop) {\n    var value = normalizeValueWithProperty(style[prop], prop); // Ignore everything else with a null value\n\n    if (value == null) {\n      return;\n    }\n\n    switch (prop) {\n      // Ignore some React Native styles\n      case 'aspectRatio':\n      case 'elevation':\n      case 'overlayColor':\n      case 'resizeMode':\n      case 'tintColor':\n        {\n          break;\n        }\n      // TODO: remove once this issue is fixed\n      // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n\n      case 'backgroundClip':\n        {\n          if (value === 'text') {\n            resolvedStyle.backgroundClip = value;\n            resolvedStyle.WebkitBackgroundClip = value;\n          }\n\n          break;\n        }\n      // The 'flex' property value in React Native must be a positive integer,\n      // 0, or -1.\n\n      case 'flex':\n        {\n          if (value === -1) {\n            resolvedStyle.flexGrow = 0;\n            resolvedStyle.flexShrink = 1;\n            resolvedStyle.flexBasis = 'auto';\n          } else {\n            resolvedStyle.flex = value;\n          }\n\n          break;\n        }\n\n      case 'font':\n        {\n          resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n          break;\n        }\n\n      case 'fontFamily':\n        {\n          if (value.indexOf('System') > -1) {\n            var stack = value.split(/,\\s*/);\n            stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n            resolvedStyle[prop] = stack.join(',');\n          } else if (value === 'monospace') {\n            resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n          } else {\n            resolvedStyle[prop] = value;\n          }\n\n          break;\n        }\n\n      case 'fontVariant':\n        {\n          if (Array.isArray(value) && value.length > 0) {\n            resolvedStyle.fontVariant = value.join(' ');\n          }\n\n          break;\n        }\n\n      case 'textAlignVertical':\n        {\n          resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n          break;\n        }\n\n      case 'textDecorationLine':\n        {\n          // use 'text-decoration' for browsers that only support CSS2\n          // text-decoration (e.g., IE, Edge)\n          if (!supportsCSS3TextDecoration) {\n            resolvedStyle.textDecoration = value;\n          } else {\n            resolvedStyle.textDecorationLine = value;\n          }\n\n          break;\n        }\n\n      case 'transform':\n      case 'transformMatrix':\n        {\n          resolveTransform(resolvedStyle, style);\n          break;\n        }\n\n      case 'writingDirection':\n        {\n          resolvedStyle.direction = value;\n          break;\n        }\n\n      default:\n        {\n          var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n          if (longFormProperties) {\n            longFormProperties.forEach(function (longForm, i) {\n              // The value of any longform property in the original styles takes\n              // precedence over the shortform's value.\n              if (typeof style[longForm] === 'undefined') {\n                resolvedStyle[longForm] = value;\n              }\n            });\n          } else {\n            resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n          }\n        }\n    }\n  });\n  return resolvedStyle;\n};\n\nexport default createReactDOMStyle;"]},"metadata":{},"sourceType":"module"}