@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
1 lines • 1.49 kB
JavaScript
import"react";const e=`Mac|iPad|iPhone|iPod`,t=`Linux`,n=()=>typeof navigator<`u`&&new RegExp(e,`i`).test(navigator?.platform),r=()=>typeof navigator<`u`&&RegExp(`Win`,`i`).test(navigator?.platform),i=()=>typeof navigator<`u`&&RegExp(`Android`,`i`).test(navigator?.userAgent),a=()=>typeof navigator<`u`&&new RegExp(t,`i`).test(navigator?.platform),o=()=>typeof navigator<`u`&&RegExp(`iOS|iPhone|iPad|iPod`,`i`).test(navigator?.platform),s=()=>typeof navigator<`u`&&/safari/i.test(navigator?.userAgent)&&!/chrome/i.test(navigator?.userAgent),c=()=>typeof navigator<`u`&&/edge/i.test(navigator?.userAgent);c(),o(),s(),r(),i(),n(),a();function l(){if(typeof document<`u`){let e=!1;try{e=document.documentElement.getAttribute(`data-whatintent`)}catch{}return e===`touch`}return!1}function u(){let n=()=>{if(!(typeof document>`u`||typeof window>`u`||typeof navigator>`u`)){try{typeof window<`u`&&window.IS_TEST?document.documentElement.setAttribute(`data-os`,`other`):navigator.platform.match(new RegExp(e))===null?navigator.platform.match(RegExp(`Win`))===null?navigator.platform.match(new RegExp(t))!==null&&document.documentElement.setAttribute(`data-os`,`linux`):document.documentElement.setAttribute(`data-os`,`win`):document.documentElement.setAttribute(`data-os`,`mac`)}catch{}document.removeEventListener(`DOMContentLoaded`,n)}};typeof document<`u`&&document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,n):n()}export{u as defineNavigator,l as isTouchDevice};