UNPKG

ngx-device-detector

Version:

<p align="center"> <img src="https://raw.githubusercontent.com/AhsanAyaz/ngx-device-detector/master/assets/logo.svg" width="200"> </p>

727 lines (721 loc) 17.8 kB
import * as i0 from '@angular/core'; import { Signal } from '@angular/core'; /** * Created by ahsanayaz on 08/11/2016. */ declare const GENERAL: { UKNOWN: string; }; declare const BROWSERS: { CHROME: string; FIREFOX: string; SAFARI: string; OPERA: string; IE: string; MS_EDGE: string; MS_EDGE_CHROMIUM: string; FB_MESSANGER: string; SAMSUNG: string; UCBROWSER: string; UNKNOWN: string; }; declare const MOBILES_RE: { HTC: RegExp; NEXUS_PHONE: RegExp; DELL: RegExp; MOTOROLA: RegExp; SAMSUNG: RegExp; LG: RegExp; SONY: RegExp; ASUS: RegExp; NOKIA_LUMIA: RegExp; MICROMAX: RegExp; PALM: RegExp; VERTU: RegExp; PANTECH: RegExp; FLY: RegExp; WIKO: RegExp; I_MOBILE: RegExp; SIMVALLEY: RegExp; WOLFGANG: RegExp; ALCATEL: RegExp; NINTENDO: RegExp; AMOI: RegExp; INQ: RegExp; VITA: RegExp; BLACKBERRY: RegExp; FIREFOX_OS: RegExp; IPHONE: RegExp; iPod: RegExp; ANDROID: RegExp; WINDOWS_PHONE: RegExp; GENERIC_PHONE: RegExp; }; declare const TABLETS_RE: { iPad: RegExp; NexusTablet: RegExp; GoogleTablet: RegExp; SamsungTablet: RegExp; Kindle: RegExp; SurfaceTablet: RegExp; HPTablet: RegExp; AsusTablet: RegExp; BlackBerryTablet: RegExp; HTCtablet: RegExp; MotorolaTablet: RegExp; NookTablet: RegExp; AcerTablet: RegExp; ToshibaTablet: RegExp; LGTablet: RegExp; FujitsuTablet: RegExp; PrestigioTablet: RegExp; LenovoTablet: RegExp; DellTablet: RegExp; YarvikTablet: RegExp; MedionTablet: RegExp; ArnovaTablet: RegExp; IntensoTablet: RegExp; IRUTablet: RegExp; MegafonTablet: RegExp; EbodaTablet: RegExp; AllViewTablet: RegExp; ArchosTablet: RegExp; AinolTablet: RegExp; NokiaLumiaTablet: RegExp; SonyTablet: RegExp; PhilipsTablet: RegExp; CubeTablet: RegExp; CobyTablet: RegExp; MIDTablet: RegExp; MSITablet: RegExp; SMiTTablet: RegExp; RockChipTablet: RegExp; FlyTablet: RegExp; bqTablet: RegExp; HuaweiTablet: RegExp; NecTablet: RegExp; PantechTablet: RegExp; BronchoTablet: RegExp; VersusTablet: RegExp; ZyncTablet: RegExp; PositivoTablet: RegExp; NabiTablet: RegExp; KoboTablet: RegExp; DanewTablet: RegExp; TexetTablet: RegExp; PlaystationTablet: RegExp; TrekstorTablet: RegExp; PyleAudioTablet: RegExp; AdvanTablet: RegExp; DanyTechTablet: string; GalapadTablet: RegExp; MicromaxTablet: RegExp; KarbonnTablet: RegExp; AllFineTablet: RegExp; PROSCANTablet: RegExp; YONESTablet: RegExp; ChangJiaTablet: RegExp; GUTablet: RegExp; PointOfViewTablet: RegExp; OvermaxTablet: RegExp; HCLTablet: RegExp; DPSTablet: RegExp; VistureTablet: RegExp; CrestaTablet: RegExp; MediatekTablet: RegExp; ConcordeTablet: RegExp; GoCleverTablet: RegExp; ModecomTablet: RegExp; VoninoTablet: RegExp; ECSTablet: RegExp; StorexTablet: RegExp; VodafoneTablet: RegExp; EssentielBTablet: RegExp; RossMoorTablet: RegExp; iMobileTablet: RegExp; TolinoTablet: RegExp; AudioSonicTablet: RegExp; AMPETablet: RegExp; SkkTablet: RegExp; TecnoTablet: RegExp; JXDTablet: RegExp; iJoyTablet: RegExp; FX2Tablet: RegExp; XoroTablet: RegExp; ViewsonicTablet: RegExp; VerizonTablet: RegExp; OdysTablet: RegExp; CaptivaTablet: RegExp; IconbitTablet: RegExp; TeclastTablet: RegExp; OndaTablet: RegExp; JaytechTablet: RegExp; BlaupunktTablet: RegExp; DigmaTablet: RegExp; EvolioTablet: RegExp; LavaTablet: RegExp; AocTablet: RegExp; MpmanTablet: RegExp; CelkonTablet: RegExp; WolderTablet: RegExp; MediacomTablet: string; MiTablet: RegExp; NibiruTablet: RegExp; NexoTablet: RegExp; LeaderTablet: RegExp; UbislateTablet: RegExp; PocketBookTablet: RegExp; KocasoTablet: RegExp; HisenseTablet: RegExp; Hudl: RegExp; TelstraTablet: RegExp; Honeywell: RegExp; GenericTablet: RegExp; }; declare const DEVICES: { BLACKBERRY: string; FIREFOX_OS: string; CHROME_BOOK: string; WINDOWS_PHONE: string; VITA: string; PS4: string; MAC: string; CHROMECAST: string; APPLE_TV: string; GOOGLE_TV: string; ANDROID: string; Tesla: string; iPad: string; IPHONE: string; iPod: string; UNKNOWN: string; HTC: string; NEXUS_PHONE: string; NexusTablet: string; DELL: string; MOTOROLA: string; SAMSUNG: string; LG: string; SONY: string; ASUS: string; NOKIA_LUMIA: string; MICROMAX: string; PALM: string; VERTU: string; PANTECH: string; FLY: string; WIKO: string; I_MOBILE: string; SIMVALLEY: string; WOLFGANG: string; ALCATEL: string; HONEYWELL: string; NINTENDO: string; AMOI: string; INQ: string; GENERIC_PHONE: string; MI_SE_9: string; }; declare const DESKTOP_DEVICES: string[]; declare const OS: { WINDOWS: string; MAC: string; IOS: string; ANDROID: string; LINUX: string; UNIX: string; FIREFOX_OS: string; CHROME_OS: string; WINDOWS_PHONE: string; UNKNOWN: string; }; declare const OS_VERSIONS: { WINDOWS_3_11: string; WINDOWS_95: string; WINDOWS_ME: string; WINDOWS_98: string; WINDOWS_CE: string; WINDOWS_2000: string; WINDOWS_XP: string; WINDOWS_SERVER_2003: string; WINDOWS_VISTA: string; WINDOWS_7: string; WINDOWS_8_1: string; WINDOWS_8: string; WINDOWS_10: string; WINDOWS_PHONE_7_5: string; WINDOWS_PHONE_8_1: string; WINDOWS_PHONE_10: string; WINDOWS_NT_4_0: string; MACOSX_11_0: string; MACOSX_16: string; MACOSX_15: string; MACOSX_14: string; MACOSX_13: string; MACOSX_12: string; MACOSX_11: string; MACOSX_10: string; MACOSX_9: string; MACOSX_8: string; MACOSX_7: string; MACOSX_6: string; MACOSX_5: string; MACOSX_4: string; MACOSX_3: string; MACOSX_2: string; MACOSX: string; iOS: string; ANDROID_9: string; UNKNOWN: string; }; declare const OS_RE: { WINDOWS: { and: ({ or: RegExp[]; not?: undefined; } | { not: RegExp; or?: undefined; })[]; }; MAC: { and: (RegExp | { not: { or: RegExp[]; }; })[]; }; IOS: { and: ({ or: RegExp[]; not?: undefined; } | { not: RegExp; or?: undefined; })[]; }; ANDROID: { and: (RegExp | { not: RegExp; })[]; }; LINUX: RegExp; UNIX: RegExp; FIREFOX_OS: { and: RegExp[]; }; CHROME_OS: RegExp; WINDOWS_PHONE: { or: RegExp[]; }; PS4: RegExp; VITA: RegExp; }; declare const BROWSERS_RE: { CHROME: { and: ({ or: RegExp[]; not?: undefined; } | { not: { or: RegExp[]; }; or?: undefined; })[]; }; FIREFOX: { or: RegExp[]; }; SAFARI: { and: (RegExp | { not: { or: RegExp[]; }; })[]; }; OPERA: { or: RegExp[]; }; IE: { or: RegExp[]; }; MS_EDGE: { or: RegExp[]; }; MS_EDGE_CHROMIUM: RegExp; PS4: RegExp; VITA: RegExp; FB_MESSANGER: RegExp; SAMSUNG: RegExp; UCBROWSER: RegExp; }; declare const DEVICES_RE: { FIREFOX_OS: { and: RegExp[]; }; CHROME_BOOK: RegExp; PS4: RegExp; CHROMECAST: RegExp; APPLE_TV: RegExp; GOOGLE_TV: RegExp; Tesla: RegExp; MI_SE_9: RegExp; MAC: { and: (RegExp | { not: { or: RegExp[]; }; })[]; }; WINDOWS: { and: ({ or: RegExp[]; not?: undefined; } | { not: RegExp; or?: undefined; })[]; }; IOS: { and: ({ or: RegExp[]; not?: undefined; } | { not: RegExp; or?: undefined; })[]; }; ANDROID: { and: (RegExp | { not: RegExp; })[]; }; LINUX: RegExp; UNIX: RegExp; CHROME_OS: RegExp; WINDOWS_PHONE: { or: RegExp[]; }; VITA: RegExp; iPad: RegExp; NexusTablet: RegExp; GoogleTablet: RegExp; SamsungTablet: RegExp; Kindle: RegExp; SurfaceTablet: RegExp; HPTablet: RegExp; AsusTablet: RegExp; BlackBerryTablet: RegExp; HTCtablet: RegExp; MotorolaTablet: RegExp; NookTablet: RegExp; AcerTablet: RegExp; ToshibaTablet: RegExp; LGTablet: RegExp; FujitsuTablet: RegExp; PrestigioTablet: RegExp; LenovoTablet: RegExp; DellTablet: RegExp; YarvikTablet: RegExp; MedionTablet: RegExp; ArnovaTablet: RegExp; IntensoTablet: RegExp; IRUTablet: RegExp; MegafonTablet: RegExp; EbodaTablet: RegExp; AllViewTablet: RegExp; ArchosTablet: RegExp; AinolTablet: RegExp; NokiaLumiaTablet: RegExp; SonyTablet: RegExp; PhilipsTablet: RegExp; CubeTablet: RegExp; CobyTablet: RegExp; MIDTablet: RegExp; MSITablet: RegExp; SMiTTablet: RegExp; RockChipTablet: RegExp; FlyTablet: RegExp; bqTablet: RegExp; HuaweiTablet: RegExp; NecTablet: RegExp; PantechTablet: RegExp; BronchoTablet: RegExp; VersusTablet: RegExp; ZyncTablet: RegExp; PositivoTablet: RegExp; NabiTablet: RegExp; KoboTablet: RegExp; DanewTablet: RegExp; TexetTablet: RegExp; PlaystationTablet: RegExp; TrekstorTablet: RegExp; PyleAudioTablet: RegExp; AdvanTablet: RegExp; DanyTechTablet: string; GalapadTablet: RegExp; MicromaxTablet: RegExp; KarbonnTablet: RegExp; AllFineTablet: RegExp; PROSCANTablet: RegExp; YONESTablet: RegExp; ChangJiaTablet: RegExp; GUTablet: RegExp; PointOfViewTablet: RegExp; OvermaxTablet: RegExp; HCLTablet: RegExp; DPSTablet: RegExp; VistureTablet: RegExp; CrestaTablet: RegExp; MediatekTablet: RegExp; ConcordeTablet: RegExp; GoCleverTablet: RegExp; ModecomTablet: RegExp; VoninoTablet: RegExp; ECSTablet: RegExp; StorexTablet: RegExp; VodafoneTablet: RegExp; EssentielBTablet: RegExp; RossMoorTablet: RegExp; iMobileTablet: RegExp; TolinoTablet: RegExp; AudioSonicTablet: RegExp; AMPETablet: RegExp; SkkTablet: RegExp; TecnoTablet: RegExp; JXDTablet: RegExp; iJoyTablet: RegExp; FX2Tablet: RegExp; XoroTablet: RegExp; ViewsonicTablet: RegExp; VerizonTablet: RegExp; OdysTablet: RegExp; CaptivaTablet: RegExp; IconbitTablet: RegExp; TeclastTablet: RegExp; OndaTablet: RegExp; JaytechTablet: RegExp; BlaupunktTablet: RegExp; DigmaTablet: RegExp; EvolioTablet: RegExp; LavaTablet: RegExp; AocTablet: RegExp; MpmanTablet: RegExp; CelkonTablet: RegExp; WolderTablet: RegExp; MediacomTablet: string; MiTablet: RegExp; NibiruTablet: RegExp; NexoTablet: RegExp; LeaderTablet: RegExp; UbislateTablet: RegExp; PocketBookTablet: RegExp; KocasoTablet: RegExp; HisenseTablet: RegExp; Hudl: RegExp; TelstraTablet: RegExp; Honeywell: RegExp; GenericTablet: RegExp; HTC: RegExp; NEXUS_PHONE: RegExp; DELL: RegExp; MOTOROLA: RegExp; SAMSUNG: RegExp; LG: RegExp; SONY: RegExp; ASUS: RegExp; NOKIA_LUMIA: RegExp; MICROMAX: RegExp; PALM: RegExp; VERTU: RegExp; PANTECH: RegExp; FLY: RegExp; WIKO: RegExp; I_MOBILE: RegExp; SIMVALLEY: RegExp; WOLFGANG: RegExp; ALCATEL: RegExp; NINTENDO: RegExp; AMOI: RegExp; INQ: RegExp; BLACKBERRY: RegExp; IPHONE: RegExp; iPod: RegExp; GENERIC_PHONE: RegExp; }; declare const OS_VERSIONS_RE_MAP: { WINDOWS_3_11: RegExp; WINDOWS_95: RegExp; WINDOWS_ME: RegExp; WINDOWS_98: RegExp; WINDOWS_CE: RegExp; WINDOWS_2000: RegExp; WINDOWS_XP: RegExp; WINDOWS_SERVER_2003: RegExp; WINDOWS_VISTA: RegExp; WINDOWS_7: RegExp; WINDOWS_8_1: RegExp; WINDOWS_8: RegExp; WINDOWS_10: RegExp; WINDOWS_PHONE_7_5: RegExp; WINDOWS_PHONE_8_1: RegExp; WINDOWS_PHONE_10: RegExp; WINDOWS_NT_4_0: { and: (RegExp | { not: RegExp; })[]; }; MACOSX: RegExp; MACOSX_3: RegExp; MACOSX_4: RegExp; MACOSX_5: RegExp; MACOSX_6: RegExp; MACOSX_7: RegExp; MACOSX_8: RegExp; MACOSX_9: RegExp; MACOSX_10: RegExp; MACOSX_11: RegExp; MACOSX_12: RegExp; MACOSX_13: RegExp; MACOSX_14: RegExp; MACOSX_15: RegExp; MACOSX_16: RegExp; MACOSX_11_0: { or: RegExp[]; }; iOS: RegExp; ANDROID_9: RegExp; }; declare const BROWSER_VERSIONS_RE_MAP: { CHROME: RegExp[]; FIREFOX: RegExp[]; SAFARI: RegExp[]; OPERA: RegExp[]; IE: RegExp[]; MS_EDGE: RegExp; MS_EDGE_CHROMIUM: RegExp; SAMSUNG: RegExp; UCBROWSER: RegExp; }; declare const OS_VERSIONS_RE: {}; declare const BROWSER_VERSIONS_RE: {}; /** * Created by ahsanayaz on 08/11/2016. */ interface DeviceInfo { userAgent: string; os: string; browser: string; device: string; os_version: string; browser_version: string; deviceType: string; orientation: string; isDesktopMode: boolean; } declare enum DeviceType { Mobile = "mobile", Tablet = "tablet", Desktop = "desktop", Unknown = "unknown" } declare enum OrientationType { Portrait = "portrait", Landscape = "landscape", Unknown = "Unknown" } declare class DeviceDetectorService { readonly deviceInfo: Signal<DeviceInfo>; private readonly _ua; private readonly _userAgent; private readonly _os; private readonly _browser; private readonly _device; private readonly _os_version; private readonly _browser_version; private readonly _deviceType; private readonly _orientation; private readonly _isDesktopMode; private readonly reTree; private readonly platformId; constructor(); get ua(): Signal<string>; get browser(): Signal<string>; get device(): Signal<string>; get userAgent(): Signal<string>; get os(): Signal<string>; get os_version(): Signal<string>; get browser_version(): Signal<string>; get deviceType(): Signal<DeviceType>; get orientation(): Signal<OrientationType>; get isDesktopMode(): Signal<boolean>; /** * @author Ahsan Ayaz * @desc Sets the initial value of the device when the service is initiated. * This value is later accessible for usage */ private detectFromMapping; /** * Detects if a mobile device is running in desktop mode * Desktop mode occurs when mobile browsers request desktop websites * by sending desktop user agent strings while retaining mobile characteristics */ private detectDesktopMode; /** * Checks if screen dimensions suggest mobile device */ private hasMobileScreenDimensions; /** * Checks for mobile browser signatures that might leak through in desktop mode */ private hasMobileBrowserSignatures; setDeviceInfo(ua?: string): void; /** * @author Ahsan Ayaz * @desc Returns the device information * @deprecated Use `deviceInfo` signal instead. * @returns the device information object. */ getDeviceInfo(): DeviceInfo; /** * @author Ahsan Ayaz * @desc Compares the current device info with the mobile devices to check * if the current device is a mobile and also check current device is tablet so it will return false. * @returns whether the current device is a mobile */ isMobile(userAgent?: string): boolean; /** * @author Ahsan Ayaz * @desc Compares the current device info with the tablet devices to check * if the current device is a tablet. * @returns whether the current device is a tablet */ isTablet(userAgent?: string): boolean; /** * @author Ahsan Ayaz * @desc Compares the current device info with the desktop devices to check * if the current device is a desktop device. * @returns whether the current device is a desktop device */ isDesktop(userAgent?: string): boolean; /** * @desc Checks if the current device is a mobile device running in desktop mode. * Desktop mode occurs when mobile browsers request desktop websites by sending * desktop user agent strings while retaining mobile hardware characteristics. * @returns whether the current device is in desktop mode */ isDesktopModeEnabled(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration<DeviceDetectorService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<DeviceDetectorService>; } /** * Created by ahsanayaz on 08/11/2016. */ declare class ReTree { private readonly regexCache; private getRegex; test(str: string, regex: unknown): boolean; exec(str: string, regex: unknown): RegExpExecArray | null; } export { BROWSERS, BROWSERS_RE, BROWSER_VERSIONS_RE, BROWSER_VERSIONS_RE_MAP, DESKTOP_DEVICES, DEVICES, DEVICES_RE, DeviceDetectorService, DeviceType, GENERAL, MOBILES_RE, OS, OS_RE, OS_VERSIONS, OS_VERSIONS_RE, OS_VERSIONS_RE_MAP, OrientationType, ReTree, TABLETS_RE }; export type { DeviceInfo };