@sankhyalabs/core 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dataunit/metadata/UnitMetadata.d.ts +1 -0
- package/dist/dataunit/metadata/UnitMetadata.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/UserAgentUtils/index.d.ts +4 -0
- package/dist/utils/UserAgentUtils/index.js +37 -0
- package/dist/utils/UserAgentUtils/index.js.map +1 -0
- package/dist/utils/UserAgentUtils/navigatorAgentList.d.ts +17 -0
- package/dist/utils/UserAgentUtils/navigatorAgentList.js +40 -0
- package/dist/utils/UserAgentUtils/navigatorAgentList.js.map +1 -0
- package/package.json +1 -1
- package/src/dataunit/metadata/UnitMetadata.ts +1 -0
- package/src/index.ts +3 -1
- package/src/utils/UserAgentUtils/index.ts +50 -0
- package/src/utils/UserAgentUtils/navigatorAgentList.ts +39 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitMetadata.js","sourceRoot":"","sources":["../../../src/dataunit/metadata/UnitMetadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UnitMetadata.js","sourceRoot":"","sources":["../../../src/dataunit/metadata/UnitMetadata.ts"],"names":[],"mappings":"AAuDA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,uBAAW,CAAA;IACX,yBAAa,CAAA;AACjB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,6CAA2B,CAAA;IAC3B,4CAA0B,CAAA;AAC9B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,aAkBX;AAlBD,WAAY,aAAa;IACrB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,sCAAqB,CAAA;IACrB,8BAAa,CAAA;IACb,4CAA2B,CAAA;IAC3B,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,kDAAiC,CAAA;IACjC,gDAA+B,CAAA;IAC/B,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;AACjB,CAAC,EAlBW,aAAa,KAAb,aAAa,QAkBxB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,5 @@ import { ErrorTracking } from "./traking/ErrorTraking.js";
|
|
|
23
23
|
import { PaginationInfo } from "./dataunit/loading/PaginationInfo.js";
|
|
24
24
|
import { LoadDataRequest } from "./dataunit/loading/LoadDataRequest.js";
|
|
25
25
|
import { LoadDataResponse } from "./dataunit/loading/LoadDataResponse.js";
|
|
26
|
-
|
|
26
|
+
import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
|
|
27
|
+
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface, DependencyType, DataUnitAction, Action, Change, Sort, Filter, ChangeOperation, DUActionInterceptor, ApplicationContext, WaitingChange, PageRequest, QuickFilter, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, ExecutionContext, PaginationInfo, SortingProvider, SortMode, LoadDataRequest, LoadDataResponse, UserAgentUtils };
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ import WarningException from "./exceptions/WarningException.js";
|
|
|
20
20
|
import WaitingChangeException from "./exceptions/WaitingChangeException.js";
|
|
21
21
|
import ErrorException from "./exceptions/ErrorException.js";
|
|
22
22
|
import { ErrorTracking } from "./traking/ErrorTraking.js";
|
|
23
|
+
import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
|
|
23
24
|
/*Classes públicas no pacote*/
|
|
24
|
-
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataType, UserInterface, DependencyType, DataUnitAction, Action, Change, ChangeOperation, ApplicationContext, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, SortMode };
|
|
25
|
+
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataType, UserInterface, DependencyType, DataUnitAction, Action, Change, ChangeOperation, ApplicationContext, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, SortMode, UserAgentUtils };
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAA+D,MAAM,wBAAwB,CAAC;AAC5J,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAiC,aAAa,EAAQ,QAAQ,EAA2B,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC5J,OAAO,EAAE,cAAc,EAAE,MAAM,EAAoB,MAAM,2CAA2C,CAAC;AACrG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAA+D,MAAM,wBAAwB,CAAC;AAC5J,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAiC,aAAa,EAAQ,QAAQ,EAA2B,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC5J,OAAO,EAAE,cAAc,EAAE,MAAM,EAAoB,MAAM,2CAA2C,CAAC;AACrG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EAGR,QAAQ,EAGR,aAAa,EACb,cAAc,EACd,cAAc,EACd,MAAM,EACN,MAAM,EAGN,eAAe,EAEf,kBAAkB,EAIlB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAIb,QAAQ,EAGR,cAAc,EACjB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import AGENT_LIST from "./navigatorAgentList.js";
|
|
2
|
+
import { NumberUtils } from "../NumberUtils.js";
|
|
3
|
+
export class UserAgentUtils {
|
|
4
|
+
static isFirefox() {
|
|
5
|
+
const browser = this.getBrowserInfo();
|
|
6
|
+
return !!browser.firefox;
|
|
7
|
+
}
|
|
8
|
+
static getBrowserInfo() {
|
|
9
|
+
const userAgent = window.navigator.userAgent;
|
|
10
|
+
let browser = { name: '', version: '' };
|
|
11
|
+
let result;
|
|
12
|
+
AGENT_LIST.every(({ name, type, regexp, simpleVersionRegExp }) => {
|
|
13
|
+
let hasFound = false;
|
|
14
|
+
regexp.every((reg) => {
|
|
15
|
+
if (reg.test(userAgent)) {
|
|
16
|
+
hasFound = true;
|
|
17
|
+
result = reg.exec(userAgent);
|
|
18
|
+
let simpleVersion = 0;
|
|
19
|
+
try {
|
|
20
|
+
if (simpleVersionRegExp && simpleVersionRegExp.test(userAgent)) {
|
|
21
|
+
const simpleExec = simpleVersionRegExp.exec(userAgent);
|
|
22
|
+
simpleVersion = NumberUtils.stringToNumber((simpleExec === null || simpleExec === void 0 ? void 0 : simpleExec[1]) || "0");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
//ignored
|
|
27
|
+
}
|
|
28
|
+
browser = Object.assign(Object.assign(Object.assign({}, browser), { name, version: (result === null || result === void 0 ? void 0 : result[1]) || "", simpleVersion }), (Array.isArray(type) ? type.reduce((acc, val) => (Object.assign(Object.assign({}, acc), { [val]: true })), {}) : { [type]: true }));
|
|
29
|
+
return !hasFound;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return !hasFound;
|
|
33
|
+
});
|
|
34
|
+
return browser;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/UserAgentUtils/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,cAAc;IAChB,MAAM,CAAC,SAAS;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,cAAc;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QAC7C,IAAI,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAS,CAAC;QAC/C,IAAI,MAA8B,CAAC;QAEnC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE;YAC7D,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;oBACrB,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;oBAEtB,IAAI;wBACA,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;4BAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACvD,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,KAAI,GAAG,CAAC,CAAA;yBACrE;qBACJ;oBAAC,OAAO,CAAC,EAAE;wBACR,SAAS;qBACZ;oBAED,OAAO,iDACA,OAAO,KACV,IAAI,EACJ,OAAO,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,KAAI,EAAE,EAC1B,aAAa,KACV,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,IAAI,IAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CACxG,CAAA;oBAED,OAAO,CAAC,QAAQ,CAAC;iBACpB;YACL,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,QAAQ,CAAC;QACrB,CAAC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare const _default: ({
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
regexp: RegExp[];
|
|
5
|
+
simpleVersionRegExp?: undefined;
|
|
6
|
+
} | {
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
regexp: RegExp[];
|
|
10
|
+
simpleVersionRegExp: RegExp;
|
|
11
|
+
} | {
|
|
12
|
+
name: string;
|
|
13
|
+
type: string[];
|
|
14
|
+
regexp: RegExp[];
|
|
15
|
+
simpleVersionRegExp?: undefined;
|
|
16
|
+
})[];
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export default [
|
|
2
|
+
{
|
|
3
|
+
name: "Electron",
|
|
4
|
+
type: "electron",
|
|
5
|
+
regexp: [new RegExp('Electron\\/([0-9\\.]*)')]
|
|
6
|
+
}, {
|
|
7
|
+
name: "Internet Explorer",
|
|
8
|
+
type: "ie",
|
|
9
|
+
regexp: [
|
|
10
|
+
new RegExp('MSIE.([0-9\\.]*)'),
|
|
11
|
+
new RegExp('Trident.([0-9\\.]*)')
|
|
12
|
+
]
|
|
13
|
+
}, {
|
|
14
|
+
name: "Edge",
|
|
15
|
+
type: "edge",
|
|
16
|
+
regexp: [new RegExp('Edge.([0-9\\.]*)')]
|
|
17
|
+
}, {
|
|
18
|
+
name: "Chrome",
|
|
19
|
+
type: "chrome",
|
|
20
|
+
regexp: [new RegExp('Chrome\\/([0-9\\.]*)')]
|
|
21
|
+
}, {
|
|
22
|
+
name: "Safari",
|
|
23
|
+
type: "safari",
|
|
24
|
+
regexp: [new RegExp('safari\\/([\\d\\.]*)')]
|
|
25
|
+
}, {
|
|
26
|
+
name: "Apple Web Kit",
|
|
27
|
+
type: "safari",
|
|
28
|
+
regexp: [new RegExp('AppleWebKit\\/([\\d\\.]*)')],
|
|
29
|
+
simpleVersionRegExp: new RegExp('Version\\/([\\d]*)')
|
|
30
|
+
}, {
|
|
31
|
+
name: "Firefox",
|
|
32
|
+
type: ["firefox", "mozilla"],
|
|
33
|
+
regexp: [new RegExp('Fire[Ff]ox.([0-9\\.]*)')]
|
|
34
|
+
}, {
|
|
35
|
+
name: "",
|
|
36
|
+
type: "mozilla",
|
|
37
|
+
regexp: [new RegExp('gecko')]
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
//# sourceMappingURL=navigatorAgentList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigatorAgentList.js","sourceRoot":"","sources":["../../../src/utils/UserAgentUtils/navigatorAgentList.ts"],"names":[],"mappings":"AAAA,eAAe;IACX;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAE;KACnD,EAAE;QACC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACJ,IAAI,MAAM,CAAC,kBAAkB,CAAC;YAC9B,IAAI,MAAM,CAAC,qBAAqB,CAAC;SACpC;KACJ,EAAE;QACC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAE;KAC7C,EAAE;QACC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAE;KACjD,EAAE;QACC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAE;KACjD,EAAE;QACC,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAE;QACnD,mBAAmB,EAAE,IAAI,MAAM,CAAC,oBAAoB,CAAC;KACxD,EAAE;QACC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAC5B,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAE;KACnD,EAAE;QACC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,CAAE;KAClC;CACJ,CAAA"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -23,6 +23,7 @@ import { ErrorTracking } from "./traking/ErrorTraking.js";
|
|
|
23
23
|
import { PaginationInfo } from "./dataunit/loading/PaginationInfo.js";
|
|
24
24
|
import { LoadDataRequest } from "./dataunit/loading/LoadDataRequest.js";
|
|
25
25
|
import { LoadDataResponse } from "./dataunit/loading/LoadDataResponse.js";
|
|
26
|
+
import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
|
|
26
27
|
|
|
27
28
|
/*Classes públicas no pacote*/
|
|
28
29
|
export {
|
|
@@ -67,5 +68,6 @@ export {
|
|
|
67
68
|
SortingProvider,
|
|
68
69
|
SortMode,
|
|
69
70
|
LoadDataRequest,
|
|
70
|
-
LoadDataResponse
|
|
71
|
+
LoadDataResponse,
|
|
72
|
+
UserAgentUtils
|
|
71
73
|
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import AGENT_LIST from "./navigatorAgentList.js"
|
|
2
|
+
import { NumberUtils } from "../NumberUtils.js";
|
|
3
|
+
|
|
4
|
+
export class UserAgentUtils {
|
|
5
|
+
public static isFirefox() {
|
|
6
|
+
const browser = this.getBrowserInfo();
|
|
7
|
+
return !!browser.firefox;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
public static getBrowserInfo(): any {
|
|
11
|
+
const userAgent = window.navigator.userAgent;
|
|
12
|
+
let browser = { name: '', version: '' } as any;
|
|
13
|
+
let result: RegExpExecArray | null;
|
|
14
|
+
|
|
15
|
+
AGENT_LIST.every(({ name, type, regexp, simpleVersionRegExp }) => {
|
|
16
|
+
let hasFound = false;
|
|
17
|
+
|
|
18
|
+
regexp.every((reg) => {
|
|
19
|
+
if (reg.test(userAgent)) {
|
|
20
|
+
hasFound = true;
|
|
21
|
+
result = reg.exec(userAgent);
|
|
22
|
+
let simpleVersion = 0;
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
if (simpleVersionRegExp && simpleVersionRegExp.test(userAgent)) {
|
|
26
|
+
const simpleExec = simpleVersionRegExp.exec(userAgent);
|
|
27
|
+
simpleVersion = NumberUtils.stringToNumber(simpleExec?.[1] || "0")
|
|
28
|
+
}
|
|
29
|
+
} catch (e) {
|
|
30
|
+
//ignored
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
browser = {
|
|
34
|
+
...browser,
|
|
35
|
+
name,
|
|
36
|
+
version: result?.[1] || "",
|
|
37
|
+
simpleVersion,
|
|
38
|
+
...(Array.isArray(type) ? type.reduce((acc, val) => ({ ...acc, [val]: true}), {}) : { [type]: true })
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return !hasFound;
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
return !hasFound;
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
return browser;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export default [
|
|
2
|
+
{
|
|
3
|
+
name: "Electron",
|
|
4
|
+
type: "electron",
|
|
5
|
+
regexp: [ new RegExp('Electron\\/([0-9\\.]*)') ]
|
|
6
|
+
}, {
|
|
7
|
+
name: "Internet Explorer",
|
|
8
|
+
type: "ie",
|
|
9
|
+
regexp: [
|
|
10
|
+
new RegExp('MSIE.([0-9\\.]*)'),
|
|
11
|
+
new RegExp('Trident.([0-9\\.]*)')
|
|
12
|
+
]
|
|
13
|
+
}, {
|
|
14
|
+
name: "Edge",
|
|
15
|
+
type: "edge",
|
|
16
|
+
regexp: [ new RegExp('Edge.([0-9\\.]*)') ]
|
|
17
|
+
}, {
|
|
18
|
+
name: "Chrome",
|
|
19
|
+
type: "chrome",
|
|
20
|
+
regexp: [ new RegExp('Chrome\\/([0-9\\.]*)') ]
|
|
21
|
+
}, {
|
|
22
|
+
name: "Safari",
|
|
23
|
+
type: "safari",
|
|
24
|
+
regexp: [ new RegExp('safari\\/([\\d\\.]*)') ]
|
|
25
|
+
}, {
|
|
26
|
+
name: "Apple Web Kit",
|
|
27
|
+
type: "safari",
|
|
28
|
+
regexp: [ new RegExp('AppleWebKit\\/([\\d\\.]*)') ],
|
|
29
|
+
simpleVersionRegExp: new RegExp('Version\\/([\\d]*)')
|
|
30
|
+
}, {
|
|
31
|
+
name: "Firefox",
|
|
32
|
+
type: ["firefox", "mozilla"],
|
|
33
|
+
regexp: [ new RegExp('Fire[Ff]ox.([0-9\\.]*)') ]
|
|
34
|
+
}, {
|
|
35
|
+
name: "",
|
|
36
|
+
type: "mozilla",
|
|
37
|
+
regexp: [ new RegExp('gecko') ]
|
|
38
|
+
}
|
|
39
|
+
]
|