{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar ariaToAccessibilityMap = {\n  'aria-activedescendant': 'accessibilityActiveDescendant',\n  'aria-atomic': 'accessibilityAtomic',\n  'aria-autocomplete': 'accessibilityAutoComplete',\n  'aria-busy': 'accessibilityBusy',\n  'aria-checked': 'accessibilityChecked',\n  'aria-colcount': 'accessibilityColumnCount',\n  'aria-colindex': 'accessibilityColumnIndex',\n  'aria-colspan': 'accessibilityColumnSpan',\n  'aria-controls': 'accessibilityControls',\n  'aria-describedby': 'accessibilityDescribedBy',\n  'aria-details': 'accessibilityDetails',\n  'aria-disabled': 'accessibilityDisabled',\n  'aria-errormessage': 'accessibilityErrorMessage',\n  'aria-expanded': 'accessibilityExpanded',\n  'aria-flowto': 'accessibilityFlowTo',\n  'aria-haspopup': 'accessibilityHasPopup',\n  'aria-hidden': 'accessibilityHidden',\n  'aria-invalid': 'accessibilityInvalid',\n  'aria-keyshortcuts': 'accessibilityKeyShortcuts',\n  'aria-label': 'accessibilityLabel',\n  'aria-labelledby': 'accessibilityLabelledBy',\n  'aria-live': 'accessibilityLiveRegion',\n  'aria-modal': 'accessibilityModal',\n  'aria-multiline': 'accessibilityMultiline',\n  'aria-multiselectable': 'accessibilityMultiSelectable',\n  'aria-orientation': 'accessibilityOrientation',\n  'aria-owns': 'accessibilityOwns',\n  'aria-placeholder': 'accessibilityPlaceholder',\n  'aria-posinset': 'accessibilityPosInSet',\n  'aria-pressed': 'accessibilityPressed',\n  'aria-readonly': 'accessibilityReadOnly',\n  'aria-required': 'accessibilityRequired',\n  'aria-roledescription': 'accessibilityRoleDescription',\n  'aria-rowcount': 'accessibilityRowCount',\n  'aria-rowindex': 'accessibilityRowIndex',\n  'aria-rowspan': 'accessibilityRowSpan',\n  'aria-selected': 'accessibilitySelected',\n  'aria-setsize': 'accessibilitySetSize',\n  'aria-sort': 'accessibilitySort',\n  'aria-valuemax': 'accessibilityValueMax',\n  'aria-valuemin': 'accessibilityValueMin',\n  'aria-valuenow': 'accessibilityValueNow',\n  'aria-valuetext': 'accessibilityValueText'\n};\nexport var mapDomPropsToRN = function mapDomPropsToRN(props) {\n  var newProps = _objectSpread({}, props);\n\n  if (props.tabIndex === '0' || props.tabIndex === 0) {\n    newProps.focusable = true;\n  }\n\n  if (props.role) {\n    newProps.accessibilityRole = props.role;\n  }\n\n  if (props.id) {\n    newProps.nativeID = props.id;\n  }\n\n  for (var key in props) {\n    if (key.indexOf('aria') > -1) {\n      if (ariaToAccessibilityMap[key]) {\n        newProps[ariaToAccessibilityMap[key]] = props[key];\n      } else {\n        console.warn('@react-native-aria/utils:: ', 'No equivalent mapping of ' + key + ' found in ariaToAccessibilityMap. Please raise a PR to support this attribute.');\n      }\n    } else if (key.indexOf('data-') > -1) {\n      if (!newProps.dataSet) {\n        newProps.dataSet = {};\n      }\n\n      newProps.dataSet[key.split('data-')[1]] = props[key];\n    }\n  }\n\n  return newProps;\n};\nexport var useMapDomPropsToRN = function useMapDomPropsToRN(props, ref) {\n  React.useEffect(function () {\n    if (ref.current) {\n      ref.current.tabIndex = props.tabIndex;\n    }\n  }, [props.tabIndex]);\n  return mapDomPropsToRN(props);\n};","map":{"version":3,"sources":["ariaToAccessibilityMap.ts"],"names":["ariaToAccessibilityMap","mapDomPropsToRN","props","newProps","key","console","useMapDomPropsToRN","React","ref"],"mappings":"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","sourcesContent":["import React, { RefObject } from 'react';\n\nconst ariaToAccessibilityMap: any = {\n  'aria-activedescendant': 'accessibilityActiveDescendant',\n  'aria-atomic': 'accessibilityAtomic',\n  'aria-autocomplete': 'accessibilityAutoComplete',\n  'aria-busy': 'accessibilityBusy',\n  'aria-checked': 'accessibilityChecked',\n  'aria-colcount': 'accessibilityColumnCount',\n  'aria-colindex': 'accessibilityColumnIndex',\n  'aria-colspan': 'accessibilityColumnSpan',\n  'aria-controls': 'accessibilityControls',\n  'aria-describedby': 'accessibilityDescribedBy',\n  'aria-details': 'accessibilityDetails',\n  'aria-disabled': 'accessibilityDisabled',\n  'aria-errormessage': 'accessibilityErrorMessage',\n  'aria-expanded': 'accessibilityExpanded',\n  'aria-flowto': 'accessibilityFlowTo',\n  'aria-haspopup': 'accessibilityHasPopup',\n  'aria-hidden': 'accessibilityHidden',\n  'aria-invalid': 'accessibilityInvalid',\n  'aria-keyshortcuts': 'accessibilityKeyShortcuts',\n  'aria-label': 'accessibilityLabel',\n  'aria-labelledby': 'accessibilityLabelledBy',\n  'aria-live': 'accessibilityLiveRegion',\n  'aria-modal': 'accessibilityModal',\n  'aria-multiline': 'accessibilityMultiline',\n  'aria-multiselectable': 'accessibilityMultiSelectable',\n  'aria-orientation': 'accessibilityOrientation',\n  'aria-owns': 'accessibilityOwns',\n  'aria-placeholder': 'accessibilityPlaceholder',\n  'aria-posinset': 'accessibilityPosInSet',\n  'aria-pressed': 'accessibilityPressed',\n  'aria-readonly': 'accessibilityReadOnly',\n  'aria-required': 'accessibilityRequired',\n  'aria-roledescription': 'accessibilityRoleDescription',\n  'aria-rowcount': 'accessibilityRowCount',\n  'aria-rowindex': 'accessibilityRowIndex',\n  'aria-rowspan': 'accessibilityRowSpan',\n  'aria-selected': 'accessibilitySelected',\n  'aria-setsize': 'accessibilitySetSize',\n  'aria-sort': 'accessibilitySort',\n  'aria-valuemax': 'accessibilityValueMax',\n  'aria-valuemin': 'accessibilityValueMin',\n  'aria-valuenow': 'accessibilityValueNow',\n  'aria-valuetext': 'accessibilityValueText',\n};\n\n// Refer - https://necolas.github.io/react-native-web/docs/accessibility/\nexport const mapDomPropsToRN = (props: any) => {\n  let newProps: any = { ...props };\n\n  if (props.tabIndex === '0' || props.tabIndex === 0) {\n    newProps.focusable = true;\n  }\n  // use the below hook for tabIndex\n  // useMapDomPropsToRN\n  // if (props.tabIndex === '-1' || props.tabIndex === -1) {\n  //   newProps.focusable = false;\n  // }\n\n  if (props.role) {\n    newProps.accessibilityRole = props.role;\n  }\n\n  if (props.id) {\n    newProps.nativeID = props.id;\n  }\n\n  for (let key in props) {\n    // Map aria to RN web accessibility equivalents\n    if (key.indexOf('aria') > -1) {\n      if (ariaToAccessibilityMap[key]) {\n        newProps[ariaToAccessibilityMap[key]] = props[key];\n      } else {\n        console.warn(\n          '@react-native-aria/utils:: ',\n          'No equivalent mapping of ' +\n            key +\n            ' found in ariaToAccessibilityMap. Please raise a PR to support this attribute.'\n        );\n      }\n    } else if (key.indexOf('data-') > -1) {\n      if (!newProps.dataSet) {\n        newProps.dataSet = {};\n      }\n\n      newProps.dataSet[key.split('data-')[1]] = props[key];\n    }\n  }\n\n  return newProps;\n};\n\n// RN web currently doesn't allow setting tabIndex via props, so need to be set using setNativeProps or ref\n// https://github.com/necolas/react-native-web/issues/1916\n// https://github.com/necolas/react-native-web/issues/1099\nexport const useMapDomPropsToRN = (props: any, ref: RefObject<any>) => {\n  React.useEffect(() => {\n    if (ref.current) {\n      ref.current.tabIndex = props.tabIndex;\n    }\n  }, [props.tabIndex]);\n\n  return mapDomPropsToRN(props);\n};\n"]},"metadata":{},"sourceType":"module"}