@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.
@@ -15,6 +15,7 @@ export interface FieldDescriptor {
15
15
  required?: boolean;
16
16
  properties?: any;
17
17
  dependencies?: Array<FieldDependency>;
18
+ group?: string;
18
19
  }
19
20
  export interface FieldDependency {
20
21
  masterFields: Array<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"UnitMetadata.js","sourceRoot":"","sources":["../../../src/dataunit/metadata/UnitMetadata.ts"],"names":[],"mappings":"AAsDA,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"}
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
- 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 };
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;AAK1D,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,EAGX,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,4 @@
1
+ export declare class UserAgentUtils {
2
+ static isFirefox(): boolean;
3
+ static getBrowserInfo(): any;
4
+ }
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "Modulo core JavaScript da Sankhya.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -17,6 +17,7 @@ export interface FieldDescriptor {
17
17
  required?: boolean;
18
18
  properties?: any;
19
19
  dependencies?: Array<FieldDependency>;
20
+ group?: string;
20
21
  }
21
22
 
22
23
  export interface FieldDependency {
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
+ ]