{"version":3,"sources":["webpack:///./node_modules/@capacitor/device/dist/esm/web.js"],"names":["DeviceWeb","identifier","this","getUid","navigator","userAgent","unavailable","ua","uaFields","parseUa","model","platform","operatingSystem","osVersion","manufacturer","vendor","isVirtual","webViewVersion","browserVersion","getBattery","battery","e","batteryLevel","level","isCharging","charging","value","language","split","toLowerCase","start","indexOf","end","fields","substring","tmpFields","replace","pop","oscpu","lastParts","length","test","window","MSStream","isSafari","ApplePaySession","isChrome","chrome","isFirefox","isEdge","isFirefoxIOS","isChromeIOS","isEdgeIOS","searchWord","words","word","includes","version","reverseUA","reverse","join","reverseVersion","localStorage","uid","getItem","uuid4","setItem","c","r","Math","random","v","toString"],"mappings":"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","file":"js/chunk-2d0c8407.b84c030b.js","sourcesContent":["import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n identifier: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"sourceRoot":""}