UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 8.5 kB
{"version":3,"file":"browser.mjs","sources":["../../../src/tools/browser.ts"],"sourcesContent":["import { Type } from './type'\n\nlet UA: string = ''\ntry {\n UA = navigator?.userAgent.toLowerCase()\n} catch {\n UA = '?'\n}\n\n/**\n * @see bitrix/js/main/core/src/lib/browser.js\n */\nclass BrowserManager {\n isOpera(): boolean {\n return UA.includes('opera')\n }\n\n isIE(): boolean {\n return 'attachEvent' in document && !this.isOpera()\n }\n\n isIE6(): boolean {\n return UA.includes('msie 6')\n }\n\n isIE7(): boolean {\n return UA.includes('msie 7')\n }\n\n isIE8(): boolean {\n return UA.includes('msie 8')\n }\n\n isIE9(): boolean {\n return 'documentMode' in document && ((document?.documentMode as number) >= 9)\n }\n\n isIE10(): boolean {\n return 'documentMode' in document && ((document?.documentMode as number) >= 10)\n }\n\n isSafari(): boolean {\n return UA.includes('safari') && !UA.includes('chrome')\n }\n\n isFirefox() {\n return UA.includes('firefox')\n }\n\n isChrome() {\n return UA.includes('chrome')\n }\n\n detectIEVersion() {\n if (\n this.isOpera()\n || this.isSafari()\n || this.isFirefox()\n || this.isChrome()\n ) {\n return -1\n }\n\n let rv = -1\n\n if (\n // @ts-expect-error we detect IEVersion ////\n !!window.MSStream\n // @ts-expect-error we detect IEVersion ////\n && !window.ActiveXObject\n && 'ActiveXObject' in window\n ) {\n rv = 11\n } else if (this.isIE10()) {\n rv = 10\n } else if (this.isIE9()) {\n rv = 9\n } else if (this.isIE()) {\n rv = 8\n }\n\n if (rv === -1 || rv === 8) {\n if (navigator.appName === 'Microsoft Internet Explorer') {\n const re = /MSIE (\\d[.0-9]*)/\n const res = navigator.userAgent.match(re)\n\n if (Type.isArrayLike(res) && res.length > 0) {\n rv = Number.parseFloat(res[1]!)\n }\n }\n\n if (navigator.appName === 'Netscape') {\n // Alternative check for IE 11\n rv = 11\n const re = /Trident\\/.*rv:(\\d[.0-9]*)/\n\n if (re.exec(navigator.userAgent) != null) {\n const res = navigator.userAgent.match(re)\n\n if (Type.isArrayLike(res) && res.length > 0) {\n rv = Number.parseFloat(res[1]!)\n }\n }\n }\n }\n\n return rv\n }\n\n isIE11(): boolean {\n return this.detectIEVersion() >= 11\n }\n\n isMac(): boolean {\n return UA.includes('macintosh')\n }\n\n isWin(): boolean {\n return UA.includes('windows')\n }\n\n isLinux(): boolean {\n return UA.includes('linux') && !this.isAndroid()\n }\n\n isAndroid(): boolean {\n return UA.includes('android')\n }\n\n isIPad(): boolean {\n return UA.includes('ipad;') || (this.isMac() && this.isTouchDevice())\n }\n\n isIPhone(): boolean {\n return UA.includes('iphone;')\n }\n\n isIOS(): boolean {\n return this.isIPad() || this.isIPhone()\n }\n\n isMobile(): boolean {\n return (\n this.isIPhone()\n || this.isIPad()\n || this.isAndroid()\n || UA.includes('mobile')\n || UA.includes('touch')\n )\n }\n\n isRetina(): boolean {\n return (window.devicePixelRatio && window.devicePixelRatio >= 2) === true\n }\n\n isTouchDevice(): boolean {\n return (\n 'ontouchstart' in window\n || navigator.maxTouchPoints > 0\n )\n }\n\n isDoctype(target: any): boolean {\n const doc = target || document\n\n if (doc.compatMode) {\n return doc.compatMode === 'CSS1Compat'\n }\n\n return doc.documentElement && doc.documentElement.clientHeight\n }\n\n isLocalStorageSupported(): boolean {\n try {\n localStorage.setItem('test', 'test')\n localStorage.removeItem('test')\n return true\n } catch {\n return false\n }\n }\n\n detectAndroidVersion(): number {\n const re = /Android (\\d[.0-9]*)/\n\n if (re.exec(navigator.userAgent) != null) {\n const res = navigator.userAgent.match(re)\n if (Type.isArrayLike(res) && res.length > 0) {\n return Number.parseFloat(res[1]!)\n }\n }\n\n return 0\n }\n}\n\nexport const Browser = new BrowserManager()\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA,IAAI,EAAA,GAAa,EAAA;AACjB,IAAI;AACF,EAAA,EAAA,GAAK,SAAA,EAAW,UAAU,WAAA,EAAY;AACxC,CAAA,CAAA,MAAQ;AACN,EAAA,EAAA,GAAK,GAAA;AACP;AAKA,MAAM,cAAA,CAAe;AAAA,EAZrB;AAYqB,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EACnB,OAAA,GAAmB;AACjB,IAAA,OAAO,EAAA,CAAG,SAAS,OAAO,CAAA;AAAA,EAC5B;AAAA,EAEA,IAAA,GAAgB;AACd,IAAA,OAAO,aAAA,IAAiB,QAAA,IAAY,CAAC,IAAA,CAAK,OAAA,EAAQ;AAAA,EACpD;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,EAAA,CAAG,SAAS,QAAQ,CAAA;AAAA,EAC7B;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,EAAA,CAAG,SAAS,QAAQ,CAAA;AAAA,EAC7B;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,EAAA,CAAG,SAAS,QAAQ,CAAA;AAAA,EAC7B;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,cAAA,IAAkB,QAAA,IAAc,QAAA,EAAU,YAAA,IAA2B,CAAA;AAAA,EAC9E;AAAA,EAEA,MAAA,GAAkB;AAChB,IAAA,OAAO,cAAA,IAAkB,QAAA,IAAc,QAAA,EAAU,YAAA,IAA2B,EAAA;AAAA,EAC9E;AAAA,EAEA,QAAA,GAAoB;AAClB,IAAA,OAAO,GAAG,QAAA,CAAS,QAAQ,KAAK,CAAC,EAAA,CAAG,SAAS,QAAQ,CAAA;AAAA,EACvD;AAAA,EAEA,SAAA,GAAY;AACV,IAAA,OAAO,EAAA,CAAG,SAAS,SAAS,CAAA;AAAA,EAC9B;AAAA,EAEA,QAAA,GAAW;AACT,IAAA,OAAO,EAAA,CAAG,SAAS,QAAQ,CAAA;AAAA,EAC7B;AAAA,EAEA,eAAA,GAAkB;AAChB,IAAA,IACE,IAAA,CAAK,OAAA,EAAQ,IACV,IAAA,CAAK,QAAA,EAAS,IACd,IAAA,CAAK,SAAA,EAAU,IACf,IAAA,CAAK,QAAA,EAAS,EACjB;AACA,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,IAAI,EAAA,GAAK,EAAA;AAET,IAAA;AAAA;AAAA,MAEE,CAAC,CAAC,MAAA,CAAO,YAEN,CAAC,MAAA,CAAO,iBACR,eAAA,IAAmB;AAAA,MACtB;AACA,MAAA,EAAA,GAAK,EAAA;AAAA,IACP,CAAA,MAAA,IAAW,IAAA,CAAK,MAAA,EAAO,EAAG;AACxB,MAAA,EAAA,GAAK,EAAA;AAAA,IACP,CAAA,MAAA,IAAW,IAAA,CAAK,KAAA,EAAM,EAAG;AACvB,MAAA,EAAA,GAAK,CAAA;AAAA,IACP,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,EAAK,EAAG;AACtB,MAAA,EAAA,GAAK,CAAA;AAAA,IACP;AAEA,IAAA,IAAI,EAAA,KAAO,EAAA,IAAM,EAAA,KAAO,CAAA,EAAG;AACzB,MAAA,IAAI,SAAA,CAAU,YAAY,6BAAA,EAA+B;AACvD,QAAA,MAAM,EAAA,GAAK,kBAAA;AACX,QAAA,MAAM,GAAA,GAAM,SAAA,CAAU,SAAA,CAAU,KAAA,CAAM,EAAE,CAAA;AAExC,QAAA,IAAI,KAAK,WAAA,CAAY,GAAG,CAAA,IAAK,GAAA,CAAI,SAAS,CAAA,EAAG;AAC3C,UAAA,EAAA,GAAK,MAAA,CAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAE,CAAA;AAAA,QAChC;AAAA,MACF;AAEA,MAAA,IAAI,SAAA,CAAU,YAAY,UAAA,EAAY;AAEpC,QAAA,EAAA,GAAK,EAAA;AACL,QAAA,MAAM,EAAA,GAAK,2BAAA;AAEX,QAAA,IAAI,EAAA,CAAG,IAAA,CAAK,SAAA,CAAU,SAAS,KAAK,IAAA,EAAM;AACxC,UAAA,MAAM,GAAA,GAAM,SAAA,CAAU,SAAA,CAAU,KAAA,CAAM,EAAE,CAAA;AAExC,UAAA,IAAI,KAAK,WAAA,CAAY,GAAG,CAAA,IAAK,GAAA,CAAI,SAAS,CAAA,EAAG;AAC3C,YAAA,EAAA,GAAK,MAAA,CAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAE,CAAA;AAAA,UAChC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,MAAA,GAAkB;AAChB,IAAA,OAAO,IAAA,CAAK,iBAAgB,IAAK,EAAA;AAAA,EACnC;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,EAAA,CAAG,SAAS,WAAW,CAAA;AAAA,EAChC;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,EAAA,CAAG,SAAS,SAAS,CAAA;AAAA,EAC9B;AAAA,EAEA,OAAA,GAAmB;AACjB,IAAA,OAAO,GAAG,QAAA,CAAS,OAAO,CAAA,IAAK,CAAC,KAAK,SAAA,EAAU;AAAA,EACjD;AAAA,EAEA,SAAA,GAAqB;AACnB,IAAA,OAAO,EAAA,CAAG,SAAS,SAAS,CAAA;AAAA,EAC9B;AAAA,EAEA,MAAA,GAAkB;AAChB,IAAA,OAAO,EAAA,CAAG,SAAS,OAAO,CAAA,IAAM,KAAK,KAAA,EAAM,IAAK,KAAK,aAAA,EAAc;AAAA,EACrE;AAAA,EAEA,QAAA,GAAoB;AAClB,IAAA,OAAO,EAAA,CAAG,SAAS,SAAS,CAAA;AAAA,EAC9B;AAAA,EAEA,KAAA,GAAiB;AACf,IAAA,OAAO,IAAA,CAAK,MAAA,EAAO,IAAK,IAAA,CAAK,QAAA,EAAS;AAAA,EACxC;AAAA,EAEA,QAAA,GAAoB;AAClB,IAAA,OACE,IAAA,CAAK,QAAA,EAAS,IACX,IAAA,CAAK,QAAO,IACZ,IAAA,CAAK,SAAA,EAAU,IACf,GAAG,QAAA,CAAS,QAAQ,CAAA,IACpB,EAAA,CAAG,SAAS,OAAO,CAAA;AAAA,EAE1B;AAAA,EAEA,QAAA,GAAoB;AAClB,IAAA,OAAA,CAAQ,MAAA,CAAO,gBAAA,IAAoB,MAAA,CAAO,gBAAA,IAAoB,CAAA,MAAO,IAAA;AAAA,EACvE;AAAA,EAEA,aAAA,GAAyB;AACvB,IAAA,OACE,cAAA,IAAkB,MAAA,IACf,SAAA,CAAU,cAAA,GAAiB,CAAA;AAAA,EAElC;AAAA,EAEA,UAAU,MAAA,EAAsB;AAC9B,IAAA,MAAM,MAAM,MAAA,IAAU,QAAA;AAEtB,IAAA,IAAI,IAAI,UAAA,EAAY;AAClB,MAAA,OAAO,IAAI,UAAA,KAAe,YAAA;AAAA,IAC5B;AAEA,IAAA,OAAO,GAAA,CAAI,eAAA,IAAmB,GAAA,CAAI,eAAA,CAAgB,YAAA;AAAA,EACpD;AAAA,EAEA,uBAAA,GAAmC;AACjC,IAAA,IAAI;AACF,MAAA,YAAA,CAAa,OAAA,CAAQ,QAAQ,MAAM,CAAA;AACnC,MAAA,YAAA,CAAa,WAAW,MAAM,CAAA;AAC9B,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,oBAAA,GAA+B;AAC7B,IAAA,MAAM,EAAA,GAAK,qBAAA;AAEX,IAAA,IAAI,EAAA,CAAG,IAAA,CAAK,SAAA,CAAU,SAAS,KAAK,IAAA,EAAM;AACxC,MAAA,MAAM,GAAA,GAAM,SAAA,CAAU,SAAA,CAAU,KAAA,CAAM,EAAE,CAAA;AACxC,MAAA,IAAI,KAAK,WAAA,CAAY,GAAG,CAAA,IAAK,GAAA,CAAI,SAAS,CAAA,EAAG;AAC3C,QAAA,OAAO,MAAA,CAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAE,CAAA;AAAA,MAClC;AAAA,IACF;AAEA,IAAA,OAAO,CAAA;AAAA,EACT;AACF;AAEO,MAAM,OAAA,GAAU,IAAI,cAAA;;;;"}