@sankhyalabs/core 2.0.1 → 2.2.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,6 @@ 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 { ElementIDUtils, IElementIDInfo } from "./utils/ElementIDUtils.js";
27
+ import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
28
+ 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, ElementIDUtils, IElementIDInfo, UserAgentUtils };
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ 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 { ElementIDUtils } from "./utils/ElementIDUtils.js";
24
+ import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
23
25
  /*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 };
26
+ 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, ElementIDUtils, UserAgentUtils };
25
27
  //# 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,EAAkB,MAAM,2BAA2B,CAAC;AAC3E,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,EAEd,cAAc,EACjB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import DataUnit from "../dataunit/DataUnit.js";
2
+ export interface IElementIDInfo {
3
+ id?: string;
4
+ dataUnit?: DataUnit;
5
+ }
6
+ export declare class ElementIDUtils {
7
+ static addIDInfo(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string;
8
+ private static getDataElementID;
9
+ private static getAttributeValid;
10
+ private static addSuffix;
11
+ private static addPrefix;
12
+ private static formatDescription;
13
+ }
@@ -0,0 +1,63 @@
1
+ import { StringUtils } from "./StringUtils.js";
2
+ export class ElementIDUtils {
3
+ static addIDInfo(element, suffix, iDInfo) {
4
+ let dataElementID = this.getDataElementID(element, suffix, iDInfo);
5
+ dataElementID = this.addPrefix(iDInfo, dataElementID);
6
+ element.setAttribute("data-element-id", dataElementID);
7
+ return dataElementID;
8
+ }
9
+ static getDataElementID(element, suffix, iDInfo) {
10
+ if (element.hasAttribute("data-element-id")) {
11
+ return this.addSuffix(StringUtils.toCamelCase(element.getAttribute("data-element-id")), suffix, element);
12
+ }
13
+ const validAttribute = this.getAttributeValid(element, iDInfo);
14
+ if (validAttribute)
15
+ return this.addSuffix(validAttribute, suffix, element);
16
+ if (suffix)
17
+ return String(suffix);
18
+ const tagName = StringUtils.toCamelCase(element.tagName);
19
+ element.setAttribute("data-element-id", tagName);
20
+ return tagName;
21
+ }
22
+ static getAttributeValid(element, iDInfo) {
23
+ if (iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.id) {
24
+ return StringUtils.toCamelCase(iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.id);
25
+ }
26
+ if (element.hasAttribute("data-field-name")) {
27
+ return StringUtils.toCamelCase(element.getAttribute("data-field-name"));
28
+ }
29
+ if (element === null || element === void 0 ? void 0 : element.id) {
30
+ return StringUtils.toCamelCase(element === null || element === void 0 ? void 0 : element.id);
31
+ }
32
+ if (element.hasAttribute("name")) {
33
+ return this.formatDescription(element.getAttribute("name"));
34
+ }
35
+ if (element.hasAttribute("label")) {
36
+ return this.formatDescription(element.getAttribute("label"));
37
+ }
38
+ return null;
39
+ }
40
+ static addSuffix(dataElementID, suffix, element) {
41
+ if (suffix) {
42
+ return `${dataElementID}_${StringUtils.toCamelCase(suffix)}`;
43
+ }
44
+ if (StringUtils.isEmpty(dataElementID)) {
45
+ return `${StringUtils.toCamelCase(element.tagName)}`;
46
+ }
47
+ return `${dataElementID}_${StringUtils.toCamelCase(element.tagName)}`;
48
+ }
49
+ static addPrefix(iDInfo, dataElementID) {
50
+ var _a;
51
+ const dataUnitName = ((_a = iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.dataUnit) === null || _a === void 0 ? void 0 : _a.name) || "";
52
+ if ((iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.dataUnit) && !(dataElementID === null || dataElementID === void 0 ? void 0 : dataElementID.startsWith(dataUnitName))) {
53
+ dataElementID = `${StringUtils.toCamelCase(dataUnitName)}_${dataElementID}`;
54
+ }
55
+ return dataElementID;
56
+ }
57
+ static formatDescription(value) {
58
+ if (!value)
59
+ return "";
60
+ return StringUtils.toCamelCase((value.replace(/[^\w\sÀ-ÖØ-öø-ÿ]/gi, " ")).replace(/\s+/g, ' ').trim());
61
+ }
62
+ }
63
+ //# sourceMappingURL=ElementIDUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementIDUtils.js","sourceRoot":"","sources":["../../src/utils/ElementIDUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,MAAM,OAAO,cAAc;IAElB,MAAM,CAAC,SAAS,CAAC,OAAoB,EAAE,MAAe,EAAE,MAAuB;QAEpF,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnE,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACtD,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAEvD,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,OAAoB,EAAE,MAAe,EAAE,MAAuB;QAC5F,IAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAE,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACtH;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/D,IAAG,cAAc;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAG,MAAM;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,OAAoB,EAAE,MAAuB;QAC5E,IAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,EAAC;YACZ,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,CAAC;SAC5C;QAED,IAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAC;YACzC,OAAO,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAW,CAAC,CAAC;SACnF;QAED,IAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAC;YACb,OAAO,WAAW,CAAC,WAAW,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC,CAAC;SAC7C;QAED,IAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAC;YAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SAC7D;QAED,IAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAC;YAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SAC9D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,aAA4B,EAAE,MAA0B,EAAE,OAAoB;QACrG,IAAG,MAAM,EAAC;YACR,OAAO,GAAG,aAAa,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;SAC9D;QACD,IAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EAAC;YACpC,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;SACtD;QACD,OAAO,GAAG,aAAa,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,MAAkC,EAAE,aAAqB;;QAChF,MAAM,YAAY,GAAW,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,IAAI,KAAI,EAAE,CAAC;QAE1D,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,KAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,CAAC,YAAY,CAAC,CAAA,EAAE;YAChE,aAAa,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,aAAa,EAAE,CAAA;SAC5E;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,KAAoB;QACnD,IAAG,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzG,CAAC;CAEF"}
@@ -42,4 +42,32 @@ export declare class StringUtils {
42
42
  * @returns Um valor maior, menor ou igual a zero para determinar se a ordem precisa ser alterada.
43
43
  */
44
44
  static compare(a: string, b: string): number;
45
+ /**
46
+ * Utilitário para converter string em camelCase
47
+ * Combina palavras compostas ou frases, alterando a inicial de cada uma, a partir da primeira, para maiúscula e unidas sem espaços.
48
+ * @param value String a ser convertida
49
+ * @returns String convertida em camelCase
50
+ */
51
+ static toCamelCase(value: string): string;
52
+ /**
53
+ * Utilitário para converter string em PascalCase
54
+ * Combina palavras colocando todas as palavras em minúsculas (mesmo a primeira palavra) removendo espaços
55
+ * @param value String a ser convertida
56
+ * @returns String convertida em PascalCase
57
+ */
58
+ static toPascalCase(value: string): string;
59
+ /**
60
+ * Utilitário para converter string em snake_case
61
+ * Combina palavras substituindo cada espaço por um unsderscore (_) convertendo todas as letras para minúsculas
62
+ * @param value String a ser convertida
63
+ * @returns String convertida em snake_case
64
+ */
65
+ static toSnakeCase(value: string): string;
66
+ /**
67
+ * Utilitário para converter string em kebab-case
68
+ * Combina palavras substituindo cada espaço por um traço (-) convertendo todas as letras para minúsculas
69
+ * @param value String a ser convertida
70
+ * @returns String convertida em KebabCase
71
+ */
72
+ static toKebabCase(value: string): string;
45
73
  }
@@ -125,5 +125,55 @@ export class StringUtils {
125
125
  }
126
126
  return a.localeCompare(b);
127
127
  }
128
+ /**
129
+ * Utilitário para converter string em camelCase
130
+ * Combina palavras compostas ou frases, alterando a inicial de cada uma, a partir da primeira, para maiúscula e unidas sem espaços.
131
+ * @param value String a ser convertida
132
+ * @returns String convertida em camelCase
133
+ */
134
+ static toCamelCase(value) {
135
+ if (!value)
136
+ return "";
137
+ if (value.match(/^[a-z]+[A-Z]/) || value.includes(".")) {
138
+ return value;
139
+ }
140
+ return value
141
+ .toLowerCase()
142
+ .replace(/^([A-Z])|[\s-_](\w)/g, (_, p1, p2) => (p2 === null || p2 === void 0 ? void 0 : p2.toUpperCase()) || p1.toLowerCase());
143
+ }
144
+ /**
145
+ * Utilitário para converter string em PascalCase
146
+ * Combina palavras colocando todas as palavras em minúsculas (mesmo a primeira palavra) removendo espaços
147
+ * @param value String a ser convertida
148
+ * @returns String convertida em PascalCase
149
+ */
150
+ static toPascalCase(value) {
151
+ return value
152
+ .toLowerCase()
153
+ .replace(/(?:^|\s)\w/g, (match) => match.toUpperCase())
154
+ .replace(/[\s-_]/g, '');
155
+ }
156
+ /**
157
+ * Utilitário para converter string em snake_case
158
+ * Combina palavras substituindo cada espaço por um unsderscore (_) convertendo todas as letras para minúsculas
159
+ * @param value String a ser convertida
160
+ * @returns String convertida em snake_case
161
+ */
162
+ static toSnakeCase(value) {
163
+ return value
164
+ .toLowerCase()
165
+ .replace(/[A-Z]/g, (match) => `_${match.toLowerCase()}`)
166
+ .replace(/[\s-]/g, '_')
167
+ .replace(/^_/, "");
168
+ }
169
+ /**
170
+ * Utilitário para converter string em kebab-case
171
+ * Combina palavras substituindo cada espaço por um traço (-) convertendo todas as letras para minúsculas
172
+ * @param value String a ser convertida
173
+ * @returns String convertida em KebabCase
174
+ */
175
+ static toKebabCase(value) {
176
+ return value.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/[\s_]+/g, '-').toLowerCase();
177
+ }
128
178
  }
129
179
  //# sourceMappingURL=StringUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"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"}
@@ -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/jest.config.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  module.exports = {
2
2
  transform: {'^.+\\.ts?$': 'ts-jest'},
3
- testEnvironment: 'node',
3
+ testEnvironment: 'jsdom',
4
4
  testRegex: '\\.(test|spec)?\\.(ts|tsx)$',
5
5
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
6
6
  coverageThreshold: {
7
7
  "global": {
8
- "branches": 60,
9
- "functions": 60,
10
- "lines": 60,
11
- "statements": 60
8
+ "branches": 10,
9
+ "functions": 10,
10
+ "lines": 10,
11
+ "statements": 10
12
12
  }
13
13
  },
14
14
  moduleNameMapper: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "2.0.1",
3
+ "version": "2.2.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,8 @@ 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 { ElementIDUtils, IElementIDInfo } from "./utils/ElementIDUtils.js";
27
+ import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
26
28
 
27
29
  /*Classes públicas no pacote*/
28
30
  export {
@@ -67,5 +69,8 @@ export {
67
69
  SortingProvider,
68
70
  SortMode,
69
71
  LoadDataRequest,
70
- LoadDataResponse
72
+ LoadDataResponse,
73
+ ElementIDUtils,
74
+ IElementIDInfo,
75
+ UserAgentUtils
71
76
  };
@@ -0,0 +1,85 @@
1
+
2
+ import { StringUtils } from "./StringUtils.js";
3
+ import DataUnit from "../dataunit/DataUnit.js";
4
+
5
+ export interface IElementIDInfo {
6
+ id?: string,
7
+ dataUnit?: DataUnit
8
+ }
9
+
10
+ export class ElementIDUtils {
11
+
12
+ public static addIDInfo(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string {
13
+
14
+ let dataElementID = this.getDataElementID(element, suffix, iDInfo);
15
+ dataElementID = this.addPrefix(iDInfo, dataElementID);
16
+ element.setAttribute("data-element-id", dataElementID);
17
+
18
+ return dataElementID;
19
+ }
20
+
21
+ private static getDataElementID(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo) {
22
+ if(element.hasAttribute("data-element-id")) {
23
+ return this.addSuffix(StringUtils.toCamelCase((element.getAttribute("data-element-id") as string)), suffix, element);
24
+ }
25
+
26
+ const validAttribute = this.getAttributeValid(element, iDInfo);
27
+
28
+ if(validAttribute) return this.addSuffix(validAttribute, suffix, element);
29
+ if(suffix) return String(suffix);
30
+
31
+ const tagName = StringUtils.toCamelCase(element.tagName);
32
+ element.setAttribute("data-element-id", tagName);
33
+
34
+ return tagName;
35
+ }
36
+
37
+ private static getAttributeValid(element: HTMLElement, iDInfo?: IElementIDInfo): string | null{
38
+ if(iDInfo?.id){
39
+ return StringUtils.toCamelCase(iDInfo?.id);
40
+ }
41
+
42
+ if(element.hasAttribute("data-field-name")){
43
+ return StringUtils.toCamelCase(element.getAttribute("data-field-name") as string);
44
+ }
45
+
46
+ if(element?.id){
47
+ return StringUtils.toCamelCase(element?.id);
48
+ }
49
+
50
+ if(element.hasAttribute("name")){
51
+ return this.formatDescription(element.getAttribute("name"));
52
+ }
53
+
54
+ if(element.hasAttribute("label")){
55
+ return this.formatDescription(element.getAttribute("label"));
56
+ }
57
+ return null;
58
+ }
59
+
60
+ private static addSuffix(dataElementID: string | null, suffix: string | undefined, element: HTMLElement): string{
61
+ if(suffix){
62
+ return `${dataElementID}_${StringUtils.toCamelCase(suffix)}`;
63
+ }
64
+ if(StringUtils.isEmpty(dataElementID)){
65
+ return `${StringUtils.toCamelCase(element.tagName)}`;
66
+ }
67
+ return `${dataElementID}_${StringUtils.toCamelCase(element.tagName)}`;
68
+ }
69
+
70
+ private static addPrefix(iDInfo: IElementIDInfo | undefined, dataElementID: string): string {
71
+ const dataUnitName: string = iDInfo?.dataUnit?.name || "";
72
+
73
+ if (iDInfo?.dataUnit && !dataElementID?.startsWith(dataUnitName)) {
74
+ dataElementID = `${StringUtils.toCamelCase(dataUnitName)}_${dataElementID}`
75
+ }
76
+
77
+ return dataElementID;
78
+ }
79
+
80
+ private static formatDescription(value: string | null): string{
81
+ if(!value) return "";
82
+ return StringUtils.toCamelCase((value.replace(/[^\w\sÀ-ÖØ-öø-ÿ]/gi, " ")).replace(/\s+/g, ' ').trim());
83
+ }
84
+
85
+ }
@@ -139,4 +139,59 @@ export class StringUtils {
139
139
 
140
140
  return a.localeCompare(b);
141
141
  }
142
+
143
+ /**
144
+ * Utilitário para converter string em camelCase
145
+ * Combina palavras compostas ou frases, alterando a inicial de cada uma, a partir da primeira, para maiúscula e unidas sem espaços.
146
+ * @param value String a ser convertida
147
+ * @returns String convertida em camelCase
148
+ */
149
+ static toCamelCase(value: string): string {
150
+ if(!value) return "";
151
+ if (value.match(/^[a-z]+[A-Z]/) || value.includes(".")) {
152
+ return value;
153
+ }
154
+ return value
155
+ .toLowerCase()
156
+ .replace(/^([A-Z])|[\s-_](\w)/g, (_, p1, p2) => p2?.toUpperCase() || p1.toLowerCase());
157
+ }
158
+
159
+ /**
160
+ * Utilitário para converter string em PascalCase
161
+ * Combina palavras colocando todas as palavras em minúsculas (mesmo a primeira palavra) removendo espaços
162
+ * @param value String a ser convertida
163
+ * @returns String convertida em PascalCase
164
+ */
165
+ static toPascalCase(value: string): string{
166
+ return value
167
+ .toLowerCase()
168
+ .replace(/(?:^|\s)\w/g, (match: string) => match.toUpperCase())
169
+ .replace(/[\s-_]/g,'');
170
+ }
171
+
172
+ /**
173
+ * Utilitário para converter string em snake_case
174
+ * Combina palavras substituindo cada espaço por um unsderscore (_) convertendo todas as letras para minúsculas
175
+ * @param value String a ser convertida
176
+ * @returns String convertida em snake_case
177
+ */
178
+ static toSnakeCase(value: string): string{
179
+ return value
180
+ .toLowerCase()
181
+ .replace(/[A-Z]/g, (match: string) => `_${match.toLowerCase()}`)
182
+ .replace(/[\s-]/g, '_')
183
+ .replace(/^_/, "");
184
+ }
185
+
186
+ /**
187
+ * Utilitário para converter string em kebab-case
188
+ * Combina palavras substituindo cada espaço por um traço (-) convertendo todas as letras para minúsculas
189
+ * @param value String a ser convertida
190
+ * @returns String convertida em KebabCase
191
+ */
192
+ static toKebabCase(value: string): string{
193
+ return value.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/[\s_]+/g, '-').toLowerCase();
194
+ }
195
+
196
+
142
197
  }
@@ -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
+ ]
@@ -0,0 +1,230 @@
1
+ import { ElementIDUtils, IElementIDInfo } from '../../src/utils/ElementIDUtils';
2
+ import { describe, expect, beforeEach, test } from '@jest/globals';
3
+ import DataUnit from '../../src/dataunit/DataUnit'
4
+ import { DataType } from '../../src/dataunit/metadata/DataType';
5
+ import { UserInterface } from '../../src/dataunit/metadata/UnitMetadata';
6
+
7
+ describe('addIDInfo', () => {
8
+
9
+ let element: HTMLElement;
10
+ const dataUnit = new DataUnit("dataunit-financeiro");
11
+
12
+ beforeEach(() => {
13
+ element = document.createElement('snk-application');
14
+
15
+ dataUnit.metadata = {
16
+ name: "dd://br.com.sankhya.fin.cad.movimentacaoFinanceira/Financeiro",
17
+ label: "Parceiro",
18
+ fields: [
19
+ {
20
+ name: "CODPARC",
21
+ label: "Parceiro",
22
+ dataType: DataType.NUMBER,
23
+ userInterface: UserInterface.SEARCH,
24
+ required: true,
25
+ properties: { ENTITYNAME: "Parceiro" }
26
+ }
27
+ ]
28
+ };
29
+ });
30
+
31
+ test('1 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
32
+ element.setAttribute("data-element-id", "movFinanceira");
33
+
34
+ const result = ElementIDUtils.addIDInfo(element);
35
+ expect(result).toBe("movFinanceira_snkApplication");
36
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_snkApplication");
37
+ });
38
+
39
+ test('2 - should add data-element-id with valid id "br.com.sankhya.fin.cad.movimentacaoFinanceira_snkApplication"', () => {
40
+ const iDInfo: IElementIDInfo = { id: "br.com.sankhya.fin.cad.movimentacaoFinanceira" };
41
+
42
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
43
+ expect(result).toBe("br.com.sankhya.fin.cad.movimentacaoFinanceira_snkApplication");
44
+ expect(element.getAttribute("data-element-id")).toBe("br.com.sankhya.fin.cad.movimentacaoFinanceira_snkApplication");
45
+ });
46
+
47
+ test('3 - should add data-element-id with valid id "movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
48
+ element.setAttribute("data-field-name", "movFinanceira");
49
+ const sufix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
50
+
51
+ const result = ElementIDUtils.addIDInfo(element, sufix);
52
+ expect(result).toBe("movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira");
53
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_br.com.sankhya.fin.cad.movimentacaoFinanceira");
54
+ });
55
+
56
+ test('4 - should add data-element-id with valid id "meuID2_snkApplication"', () => {
57
+ element.setAttribute("id", "movFinanceira");
58
+ const iDInfo = {id: "meuID2"};
59
+
60
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
61
+ expect(result).toBe("meuID2_snkApplication");
62
+ expect(element.getAttribute("data-element-id")).toBe("meuID2_snkApplication");
63
+ });
64
+
65
+ test('5 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
66
+ element.setAttribute("id", "movFinanceira");
67
+ element.setAttribute("name", "componenteNameTest");
68
+
69
+ const result = ElementIDUtils.addIDInfo(element);
70
+ expect(result).toBe("movFinanceira_snkApplication");
71
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_snkApplication");
72
+ });
73
+
74
+ test('6 - should add data-element-id with valid id "movFinanceira_snkApplication"', () => {
75
+ element.setAttribute("id", "movFinanceira");
76
+ element.setAttribute("label", "componenteLabelTest");
77
+
78
+ const result = ElementIDUtils.addIDInfo(element);
79
+ expect(result).toBe("movFinanceira_snkApplication");
80
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_snkApplication");
81
+ });
82
+
83
+ test('7 - should add data-element-id with valid id "componenteNameTest_snkApplication"', () => {
84
+ element.setAttribute("name", "componenteNameTest");
85
+
86
+ const result = ElementIDUtils.addIDInfo(element);
87
+ expect(result).toBe("componenteNameTest_snkApplication");
88
+ expect(element.getAttribute("data-element-id")).toBe("componenteNameTest_snkApplication");
89
+ });
90
+
91
+
92
+ test('8 - should add data-element-id with valid id "componentLabel_snkApplication"', () => {
93
+ element.setAttribute("label", "componentLabel");
94
+
95
+ const result = ElementIDUtils.addIDInfo(element);
96
+ expect(result).toBe("componentLabel_snkApplication");
97
+ expect(element.getAttribute("data-element-id")).toBe("componentLabel_snkApplication");
98
+ });
99
+
100
+ test('9 - should add data-element-id with valid id "dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
101
+
102
+ const iDInfo = {dataUnit: dataUnit};
103
+ const sufix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
104
+
105
+ const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
106
+ expect(result).toBe("dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira");
107
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_br.com.sankhya.fin.cad.movimentacaoFinanceira");
108
+ });
109
+
110
+ test('10 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira"', () => {
111
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
112
+ const sufix = "br.com.sankhya.fin.cad.movimentacaoFinanceira";
113
+
114
+ const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
115
+ expect(result).toBe("dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira");
116
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_meuIDTeste_br.com.sankhya.fin.cad.movimentacaoFinanceira");
117
+ });
118
+
119
+ test('11 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira"', () => {
120
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
121
+ const sufix = "movimentacaoFinanceira";
122
+
123
+ const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
124
+ expect(result).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
125
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
126
+ });
127
+
128
+ test('12 - should add data-element-id with valid id "dataunitFinanceiro_movFinanceira_movimentacaoFinanceira"', () => {
129
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
130
+ const sufix = "movimentacaoFinanceira";
131
+ element.setAttribute("data-element-id", "movFinanceira");
132
+
133
+ const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
134
+ expect(result).toBe("dataunitFinanceiro_movFinanceira_movimentacaoFinanceira");
135
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_movFinanceira_movimentacaoFinanceira");
136
+ });
137
+
138
+ test('13 - should add data-element-id with valid id "dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira"', () => {
139
+ const iDInfo = {id: "meuIDTeste", dataUnit: dataUnit};
140
+ const sufix = "movimentacaoFinanceira";
141
+ element.setAttribute("id", "movFinanceira");
142
+
143
+ const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
144
+ expect(result).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
145
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_meuIDTeste_movimentacaoFinanceira");
146
+ });
147
+
148
+ test('14 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira"', () => {
149
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
150
+ const sufix = "movimentacao Financeira";
151
+ element.setAttribute("id", "mov-financeira-snk");
152
+
153
+ const result = ElementIDUtils.addIDInfo(element, sufix, iDInfo);
154
+ expect(result).toBe("dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira");
155
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_meuIdTeste_movimentacaoFinanceira");
156
+ });
157
+
158
+ test('15 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_snkApplication"', () => {
159
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
160
+ element.setAttribute("id", "mov-financeira-snk");
161
+
162
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
163
+ expect(result).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
164
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
165
+ });
166
+
167
+ test('16 - should add data-element-id with valid id "dataunitFinanceiro_meuIdTeste_snkApplication"', () => {
168
+ const iDInfo = {id: "meu-id-teste", dataUnit: dataUnit};
169
+
170
+ const result = ElementIDUtils.addIDInfo(element, undefined, iDInfo);
171
+ expect(result).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
172
+ expect(element.getAttribute("data-element-id")).toBe("dataunitFinanceiro_meuIdTeste_snkApplication");
173
+ });
174
+
175
+ test('17 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
176
+ const sufix = "movimentacao-financeira";
177
+ element.setAttribute("id", "mov-financeira");
178
+
179
+ const result = ElementIDUtils.addIDInfo(element, sufix);
180
+ expect(result).toBe("movFinanceira_movimentacaoFinanceira");
181
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_movimentacaoFinanceira");
182
+ });
183
+
184
+ test('18 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
185
+ const sufix = "movimentacao-financeira";
186
+ element.setAttribute("data-element-id", "mov-financeira");
187
+
188
+ const result = ElementIDUtils.addIDInfo(element, sufix);
189
+ expect(result).toBe("movFinanceira_movimentacaoFinanceira");
190
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_movimentacaoFinanceira");
191
+ });
192
+
193
+
194
+ test('19 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
195
+ const sufix = "movimentacao-financeira";
196
+ element.setAttribute("data-field-name", "mov-financeira");
197
+
198
+ const result = ElementIDUtils.addIDInfo(element, sufix);
199
+ expect(result).toBe("movFinanceira_movimentacaoFinanceira");
200
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_movimentacaoFinanceira");
201
+ });
202
+
203
+ test('20 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
204
+ const sufix = "movimentacao-financeira";
205
+ element.setAttribute("name", "mov-financeira");
206
+
207
+ const result = ElementIDUtils.addIDInfo(element, sufix);
208
+ expect(result).toBe("movFinanceira_movimentacaoFinanceira");
209
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_movimentacaoFinanceira");
210
+ });
211
+
212
+ test('21 - should add data-element-id with valid id "movFinanceira_movimentacaoFinanceira"', () => {
213
+ const sufix = "movimentacao-financeira";
214
+ element.setAttribute("label", "mov-financeira");
215
+
216
+ const result = ElementIDUtils.addIDInfo(element, sufix);
217
+ expect(result).toBe("movFinanceira_movimentacaoFinanceira");
218
+ expect(element.getAttribute("data-element-id")).toBe("movFinanceira_movimentacaoFinanceira");
219
+ });
220
+
221
+ test('22 - should add data-element-id with valid id "bancoObrigatório_movimentacaoFinanceira"', () => {
222
+ const sufix = "movimentacao-financeira";
223
+ element.setAttribute("name", "Banco (obrigatório) *");
224
+
225
+ const result = ElementIDUtils.addIDInfo(element, sufix);
226
+ expect(result).toBe("bancoObrigatório_movimentacaoFinanceira");
227
+ expect(element.getAttribute("data-element-id")).toBe("bancoObrigatório_movimentacaoFinanceira");
228
+ });
229
+
230
+ });