{"ast":null,"code":"function _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 AccessibilityUtil from \"../AccessibilityUtil\";\nimport css from \"../../exports/StyleSheet/css\";\nimport StyleSheet from \"../../exports/StyleSheet\";\nimport styleResolver from \"../../exports/StyleSheet/styleResolver\";\nimport { STYLE_GROUPS } from \"../../exports/StyleSheet/constants\";\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar classes = css.create({\n  reset: {\n    backgroundColor: 'transparent',\n    color: 'inherit',\n    font: 'inherit',\n    listStyle: 'none',\n    margin: 0,\n    textAlign: 'inherit',\n    textDecoration: 'none'\n  },\n  cursor: {\n    cursor: 'pointer'\n  }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n  auto: {\n    pointerEvents: 'auto'\n  },\n  'box-none': {\n    pointerEvents: 'box-none'\n  },\n  'box-only': {\n    pointerEvents: 'box-only'\n  },\n  none: {\n    pointerEvents: 'none'\n  }\n});\n\nvar createDOMProps = function createDOMProps(component, props) {\n  if (!props) {\n    props = emptyObject;\n  }\n\n  var _props = props,\n      accessibilityLabel = _props.accessibilityLabel,\n      accessibilityLiveRegion = _props.accessibilityLiveRegion,\n      accessibilityState = _props.accessibilityState,\n      accessibilityValue = _props.accessibilityValue,\n      accessible = _props.accessible,\n      classList = _props.classList,\n      dataSet = _props.dataSet,\n      providedDisabled = _props.disabled,\n      importantForAccessibility = _props.importantForAccessibility,\n      nativeID = _props.nativeID,\n      pointerEvents = _props.pointerEvents,\n      providedStyle = _props.style,\n      testID = _props.testID,\n      accessibilityRole = _props.accessibilityRole,\n      domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityLabel\", \"accessibilityLiveRegion\", \"accessibilityState\", \"accessibilityValue\", \"accessible\", \"classList\", \"dataSet\", \"disabled\", \"importantForAccessibility\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\", \"accessibilityRole\"]);\n\n  var disabled = accessibilityState != null && accessibilityState.disabled === true || providedDisabled;\n  var role = AccessibilityUtil.propsToAriaRole(props);\n  var isNativeInteractiveElement = role === 'link' || component === 'a' || component === 'button' || component === 'input' || component === 'select' || component === 'textarea' || domProps.contentEditable != null;\n\n  if (dataSet != null) {\n    for (var prop in dataSet) {\n      if (hasOwnProperty.call(dataSet, prop)) {\n        var value = dataSet[prop];\n\n        if (value != null) {\n          domProps[\"data-\" + prop] = value;\n        }\n      }\n    }\n  }\n\n  if (accessibilityLabel != null) {\n    domProps['aria-label'] = accessibilityLabel;\n  }\n\n  if (accessibilityLiveRegion != null) {\n    domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n  }\n\n  if (role != null) {\n    domProps.role = role;\n  }\n\n  if (accessibilityState != null) {\n    for (var _prop in accessibilityState) {\n      var _value = accessibilityState[_prop];\n\n      if (_value != null) {\n        if (_prop === 'disabled' || _prop === 'hidden') {\n          if (_value === true) {\n            domProps[\"aria-\" + _prop] = _value;\n            domProps[_prop] = _value;\n          }\n        } else {\n          domProps[\"aria-\" + _prop] = _value;\n        }\n      }\n    }\n  }\n\n  if (accessibilityValue != null) {\n    for (var _prop2 in accessibilityValue) {\n      var _value2 = accessibilityValue[_prop2];\n\n      if (_value2 != null) {\n        domProps[\"aria-value\" + _prop2] = _value2;\n      }\n    }\n  }\n\n  if (importantForAccessibility === 'no-hide-descendants') {\n    domProps['aria-hidden'] = true;\n  }\n\n  if (disabled === true) {\n    domProps['aria-disabled'] = true;\n    domProps.disabled = true;\n  }\n\n  var focusable = !disabled && importantForAccessibility !== 'no' && importantForAccessibility !== 'no-hide-descendants';\n\n  if (isNativeInteractiveElement) {\n    if (accessible === false || !focusable) {\n      domProps.tabIndex = '-1';\n    } else {\n      domProps['data-focusable'] = true;\n    }\n  } else if (role === 'button' || role === 'menuitem' || role === 'textbox') {\n    if (accessible !== false && focusable) {\n      domProps['data-focusable'] = true;\n      domProps.tabIndex = '0';\n    }\n  } else {\n    if (accessible === true && focusable) {\n      domProps['data-focusable'] = true;\n      domProps.tabIndex = '0';\n    }\n  }\n\n  var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], providedStyle);\n  var needsCursor = (role === 'button' || role === 'link') && !disabled;\n  var needsReset = component === 'a' || component === 'button' || component === 'li' || component === 'ul' || role === 'heading';\n  var finalClassList = [needsReset && classes.reset, needsCursor && classes.cursor, classList];\n\n  var _styleResolver$resolv = styleResolver.resolve(reactNativeStyle, finalClassList),\n      className = _styleResolver$resolv.className,\n      style = _styleResolver$resolv.style;\n\n  if (className != null && className !== '') {\n    domProps.className = className;\n  }\n\n  if (style) {\n    domProps.style = style;\n  }\n\n  if (nativeID != null) {\n    domProps.id = nativeID;\n  }\n\n  if (component === 'a' && domProps.target === '_blank') {\n    domProps.rel = (domProps.rel || '') + \" noopener noreferrer\";\n  }\n\n  if (testID != null) {\n    domProps['data-testid'] = testID;\n  }\n\n  if (isNativeInteractiveElement || role === 'button' || role === 'menuitem' || accessible === true && focusable) {\n    var onClick = domProps.onClick;\n\n    if (onClick != null) {\n      if (disabled) {\n        domProps.onClick = function (e) {\n          e.stopPropagation();\n        };\n      } else if (!isNativeInteractiveElement) {\n        var onKeyDown = domProps.onKeyDown;\n\n        domProps.onKeyDown = function (e) {\n          var key = e.key,\n              repeat = e.repeat;\n          var isSpacebarKey = key === ' ' || key === 'Spacebar';\n          var isButtonRole = role === 'button' || role === 'menuitem';\n\n          if (onKeyDown != null) {\n            onKeyDown(e);\n          }\n\n          if (!repeat && key === 'Enter') {\n            onClick(e);\n          } else if (isSpacebarKey && isButtonRole) {\n            if (!repeat) {\n              onClick(e);\n            }\n\n            e.preventDefault();\n          }\n        };\n      }\n    }\n  }\n\n  return domProps;\n};\n\nexport default createDOMProps;","map":{"version":3,"sources":["/Users/nishan/Desktop/oss/responsive-breakpoints/example/node_modules/react-native-web/dist/modules/createDOMProps/index.js"],"names":["_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","Object","keys","key","i","length","indexOf","AccessibilityUtil","css","StyleSheet","styleResolver","STYLE_GROUPS","emptyObject","hasOwnProperty","prototype","classes","create","reset","backgroundColor","color","font","listStyle","margin","textAlign","textDecoration","cursor","classicReset","pointerEventsStyles","auto","pointerEvents","none","createDOMProps","component","props","_props","accessibilityLabel","accessibilityLiveRegion","accessibilityState","accessibilityValue","accessible","classList","dataSet","providedDisabled","disabled","importantForAccessibility","nativeID","providedStyle","style","testID","accessibilityRole","domProps","role","propsToAriaRole","isNativeInteractiveElement","contentEditable","prop","call","value","_prop","_value","_prop2","_value2","focusable","tabIndex","reactNativeStyle","compose","needsCursor","needsReset","finalClassList","_styleResolver$resolv","resolve","className","id","rel","onClick","e","stopPropagation","onKeyDown","repeat","isSpacebarKey","isButtonRole","preventDefault"],"mappings":"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","sourcesContent":["function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\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 AccessibilityUtil from '../AccessibilityUtil';\nimport css from '../../exports/StyleSheet/css';\nimport StyleSheet from '../../exports/StyleSheet';\nimport styleResolver from '../../exports/StyleSheet/styleResolver';\nimport { STYLE_GROUPS } from '../../exports/StyleSheet/constants';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty; // Reset styles for heading, link, and list DOM elements\n\nvar classes = css.create({\n  reset: {\n    backgroundColor: 'transparent',\n    color: 'inherit',\n    font: 'inherit',\n    listStyle: 'none',\n    margin: 0,\n    textAlign: 'inherit',\n    textDecoration: 'none'\n  },\n  cursor: {\n    cursor: 'pointer'\n  }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n  auto: {\n    pointerEvents: 'auto'\n  },\n  'box-none': {\n    pointerEvents: 'box-none'\n  },\n  'box-only': {\n    pointerEvents: 'box-only'\n  },\n  none: {\n    pointerEvents: 'none'\n  }\n});\n\nvar createDOMProps = function createDOMProps(component, props) {\n  if (!props) {\n    props = emptyObject;\n  }\n\n  var _props = props,\n      accessibilityLabel = _props.accessibilityLabel,\n      accessibilityLiveRegion = _props.accessibilityLiveRegion,\n      accessibilityState = _props.accessibilityState,\n      accessibilityValue = _props.accessibilityValue,\n      accessible = _props.accessible,\n      classList = _props.classList,\n      dataSet = _props.dataSet,\n      providedDisabled = _props.disabled,\n      importantForAccessibility = _props.importantForAccessibility,\n      nativeID = _props.nativeID,\n      pointerEvents = _props.pointerEvents,\n      providedStyle = _props.style,\n      testID = _props.testID,\n      accessibilityRole = _props.accessibilityRole,\n      domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityLabel\", \"accessibilityLiveRegion\", \"accessibilityState\", \"accessibilityValue\", \"accessible\", \"classList\", \"dataSet\", \"disabled\", \"importantForAccessibility\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\", \"accessibilityRole\"]);\n\n  var disabled = accessibilityState != null && accessibilityState.disabled === true || providedDisabled;\n  var role = AccessibilityUtil.propsToAriaRole(props);\n  var isNativeInteractiveElement = role === 'link' || component === 'a' || component === 'button' || component === 'input' || component === 'select' || component === 'textarea' || domProps.contentEditable != null; // dataSet\n\n  if (dataSet != null) {\n    for (var prop in dataSet) {\n      if (hasOwnProperty.call(dataSet, prop)) {\n        var value = dataSet[prop];\n\n        if (value != null) {\n          domProps[\"data-\" + prop] = value;\n        }\n      }\n    }\n  } // accessibilityLabel\n\n\n  if (accessibilityLabel != null) {\n    domProps['aria-label'] = accessibilityLabel;\n  } // accessibilityLiveRegion\n\n\n  if (accessibilityLiveRegion != null) {\n    domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n  } // accessibilityRole\n\n\n  if (role != null) {\n    domProps.role = role;\n  } // accessibilityState\n\n\n  if (accessibilityState != null) {\n    for (var _prop in accessibilityState) {\n      var _value = accessibilityState[_prop];\n\n      if (_value != null) {\n        if (_prop === 'disabled' || _prop === 'hidden') {\n          if (_value === true) {\n            domProps[\"aria-\" + _prop] = _value; // also set prop directly to pick up host component behaviour\n\n            domProps[_prop] = _value;\n          }\n        } else {\n          domProps[\"aria-\" + _prop] = _value;\n        }\n      }\n    }\n  } // accessibilityValue\n\n\n  if (accessibilityValue != null) {\n    for (var _prop2 in accessibilityValue) {\n      var _value2 = accessibilityValue[_prop2];\n\n      if (_value2 != null) {\n        domProps[\"aria-value\" + _prop2] = _value2;\n      }\n    }\n  } // legacy fallbacks\n\n\n  if (importantForAccessibility === 'no-hide-descendants') {\n    domProps['aria-hidden'] = true;\n  }\n\n  if (disabled === true) {\n    domProps['aria-disabled'] = true;\n    domProps.disabled = true;\n  } // FOCUS\n  // Assume that 'link' is focusable by default (uses <a>).\n  // Assume that 'button' is not (uses <div role='button'>) but must be treated as such.\n\n\n  var focusable = !disabled && importantForAccessibility !== 'no' && importantForAccessibility !== 'no-hide-descendants';\n\n  if (isNativeInteractiveElement) {\n    if (accessible === false || !focusable) {\n      domProps.tabIndex = '-1';\n    } else {\n      domProps['data-focusable'] = true;\n    }\n  } else if (role === 'button' || role === 'menuitem' || role === 'textbox') {\n    if (accessible !== false && focusable) {\n      domProps['data-focusable'] = true;\n      domProps.tabIndex = '0';\n    }\n  } else {\n    if (accessible === true && focusable) {\n      domProps['data-focusable'] = true;\n      domProps.tabIndex = '0';\n    }\n  } // STYLE\n\n\n  var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], providedStyle); // Additional style resets for interactive elements\n\n  var needsCursor = (role === 'button' || role === 'link') && !disabled;\n  var needsReset = component === 'a' || component === 'button' || component === 'li' || component === 'ul' || role === 'heading'; // Classic CSS styles\n\n  var finalClassList = [needsReset && classes.reset, needsCursor && classes.cursor, classList]; // Resolve styles\n\n  var _styleResolver$resolv = styleResolver.resolve(reactNativeStyle, finalClassList),\n      className = _styleResolver$resolv.className,\n      style = _styleResolver$resolv.style;\n\n  if (className != null && className !== '') {\n    domProps.className = className;\n  }\n\n  if (style) {\n    domProps.style = style;\n  } // OTHER\n  // Native element ID\n\n\n  if (nativeID != null) {\n    domProps.id = nativeID;\n  } // Link security\n  // https://mathiasbynens.github.io/rel-noopener/\n  // Note: using \"noreferrer\" doesn't impact referrer tracking for https\n  // transfers (i.e., from https to https).\n\n\n  if (component === 'a' && domProps.target === '_blank') {\n    domProps.rel = (domProps.rel || '') + \" noopener noreferrer\";\n  } // Automated test IDs\n\n\n  if (testID != null) {\n    domProps['data-testid'] = testID;\n  } // Keyboard accessibility\n  // Button-like roles should trigger 'onClick' if SPACE key is pressed.\n  // Button-like roles should not trigger 'onClick' if they are disabled.\n\n\n  if (isNativeInteractiveElement || role === 'button' || role === 'menuitem' || accessible === true && focusable) {\n    var onClick = domProps.onClick;\n\n    if (onClick != null) {\n      if (disabled) {\n        // Prevent click propagating if the element is disabled. See #1757\n        domProps.onClick = function (e) {\n          e.stopPropagation();\n        };\n      } else if (!isNativeInteractiveElement) {\n        // For native elements that are focusable but don't dispatch 'click' events\n        // for keyboards.\n        var onKeyDown = domProps.onKeyDown;\n\n        domProps.onKeyDown = function (e) {\n          var key = e.key,\n              repeat = e.repeat;\n          var isSpacebarKey = key === ' ' || key === 'Spacebar';\n          var isButtonRole = role === 'button' || role === 'menuitem';\n\n          if (onKeyDown != null) {\n            onKeyDown(e);\n          }\n\n          if (!repeat && key === 'Enter') {\n            onClick(e);\n          } else if (isSpacebarKey && isButtonRole) {\n            if (!repeat) {\n              onClick(e);\n            } // Prevent spacebar scrolling the window\n\n\n            e.preventDefault();\n          }\n        };\n      }\n    }\n  }\n\n  return domProps;\n};\n\nexport default createDOMProps;"]},"metadata":{},"sourceType":"module"}