{"version":3,"sources":["node_modules\\react-native-web\\dist\\modules\\modality\\index.js"],"names":["Object","defineProperty","exports","value","_ExecutionEnvironment","require","modality","canUseDOM","styleElement","hadKeyboardEvent","keyboardThrottleTimeoutID","proto","window","Element","prototype","matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector","keyboardModalityWhitelist","join","initialize","id","document","getElementById","style","head","insertAdjacentHTML","focusTriggersKeyboardModality","el","call","addFocusRing","disabled","removeFocusRing","handleKeyDown","e","clearTimeout","setTimeout","handleFocus","target","handleBlur","body","addEventListener","default"],"mappings":"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","file":"index.js","sourceRoot":"D:/Work/Office/react-native-on-web/cli/tmpl/project","sourcesContent":["Object.defineProperty(exports,\"__esModule\",{value:true});\n\nvar _ExecutionEnvironment=require('fbjs/lib/ExecutionEnvironment');\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar modality=function modality(){\nif(!_ExecutionEnvironment.canUseDOM){\nreturn;\n}\n\nvar styleElement=void 0;\nvar hadKeyboardEvent=false;\nvar keyboardThrottleTimeoutID=0;\n\nvar proto=window.Element.prototype;\nvar matches=\nproto.matches||\nproto.mozMatchesSelector||\nproto.msMatchesSelector||\nproto.webkitMatchesSelector;\n\n\n\nvar keyboardModalityWhitelist=[\n'input:not([type])',\n'input[type=text]',\n'input[type=search]',\n'input[type=url]',\n'input[type=tel]',\n'input[type=email]',\n'input[type=password]',\n'input[type=number]',\n'input[type=date]',\n'input[type=month]',\n'input[type=week]',\n'input[type=time]',\n'input[type=datetime]',\n'input[type=datetime-local]',\n'textarea',\n'[role=textbox]'].\njoin(',');\n\n\n\n\nvar initialize=function initialize(){\n\nvar id='react-native-modality';\nstyleElement=document.getElementById(id);\nif(!styleElement){\n\nvar style='<style id=\"'+id+'\">:focus { outline: none; }</style>';\ndocument.head.insertAdjacentHTML('afterbegin',style);\nstyleElement=document.getElementById(id);\n}\n};\n\n\n\n\n\nvar focusTriggersKeyboardModality=function focusTriggersKeyboardModality(el){\nif(matches){\nreturn matches.call(el,keyboardModalityWhitelist)&&matches.call(el,':not([readonly])');\n}else{\nreturn false;\n}\n};\n\n\n\n\nvar addFocusRing=function addFocusRing(){\nif(styleElement){\nstyleElement.disabled=true;\n}\n};\n\n\n\n\nvar removeFocusRing=function removeFocusRing(){\nif(styleElement){\nstyleElement.disabled=false;\n}\n};\n\n\n\n\n\n\n\nvar handleKeyDown=function handleKeyDown(e){\nhadKeyboardEvent=true;\nif(keyboardThrottleTimeoutID!==0){\nclearTimeout(keyboardThrottleTimeoutID);\n}\nkeyboardThrottleTimeoutID=setTimeout(function(){\nhadKeyboardEvent=false;\nkeyboardThrottleTimeoutID=0;\n},100);\n};\n\n\n\n\nvar handleFocus=function handleFocus(e){\nif(hadKeyboardEvent||focusTriggersKeyboardModality(e.target)){\naddFocusRing();\n}\n};\n\n\n\n\nvar handleBlur=function handleBlur(){\nif(!hadKeyboardEvent){\nremoveFocusRing();\n}\n};\n\nif(document.body&&document.body.addEventListener){\ninitialize();\ndocument.body.addEventListener('keydown',handleKeyDown,true);\ndocument.body.addEventListener('focus',handleFocus,true);\ndocument.body.addEventListener('blur',handleBlur,true);\n}\n};exports.default=\n\nmodality;"]}