@sankhyalabs/core 2.3.1 → 2.3.3

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/build.env CHANGED
@@ -1,2 +1,2 @@
1
- PUBLISHED_NEXT_VERSION=v2.3.1
2
- PUBLISHED_CURRENT_VERSION=v2.3.1-SKA-61927.13
1
+ PUBLISHED_NEXT_VERSION=v2.3.3
2
+ PUBLISHED_CURRENT_VERSION=v2.3.2
@@ -14,4 +14,5 @@ export declare class ElementIDUtils {
14
14
  private static addSuffix;
15
15
  private static addPrefix;
16
16
  private static formatDescription;
17
+ private static getDataElementIDAttribute;
17
18
  }
@@ -2,6 +2,7 @@ import { StringUtils } from "./StringUtils.js";
2
2
  export class ElementIDUtils {
3
3
  static addIDInfo(element, suffix, iDInfo) {
4
4
  let dataElementID = this.getDataElementID(element, suffix, iDInfo);
5
+ dataElementID = StringUtils.replaceAccentuatedChars(dataElementID, false);
5
6
  dataElementID = this.addPrefix(iDInfo, dataElementID);
6
7
  element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, dataElementID);
7
8
  return dataElementID;
@@ -17,15 +18,16 @@ export class ElementIDUtils {
17
18
  return `${originalID}_${ElementIDUtils.INTERNAL_INPUT_NAME}_${sufix}`;
18
19
  }
19
20
  static getDataElementID(element, suffix, iDInfo) {
20
- if (element.hasAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)) {
21
- return this.addSuffix(StringUtils.toCamelCase(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)), suffix, element);
21
+ let dataElementID = ElementIDUtils.getDataElementIDAttribute(element);
22
+ if (dataElementID != null) {
23
+ return this.addSuffix(StringUtils.toCamelCase(dataElementID), suffix, element);
22
24
  }
23
25
  const validAttribute = this.getAttributeValid(element, iDInfo);
24
26
  if (validAttribute)
25
27
  return this.addSuffix(validAttribute, suffix, element);
26
28
  if (suffix)
27
29
  return String(suffix);
28
- const tagName = StringUtils.toCamelCase(element.tagName);
30
+ let tagName = StringUtils.toCamelCase(element.tagName);
29
31
  element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, tagName);
30
32
  return tagName;
31
33
  }
@@ -45,6 +47,9 @@ export class ElementIDUtils {
45
47
  if (element.hasAttribute("label")) {
46
48
  return this.formatDescription(element.getAttribute("label"));
47
49
  }
50
+ if (element.hasAttribute("title")) {
51
+ return this.formatDescription(element.getAttribute("title"));
52
+ }
48
53
  return null;
49
54
  }
50
55
  static addSuffix(dataElementID, suffix, element) {
@@ -69,6 +74,12 @@ export class ElementIDUtils {
69
74
  return "";
70
75
  return StringUtils.toCamelCase((value.replace(/[^\w\sÀ-ÖØ-öø-ÿ]/gi, " ")).replace(/\s+/g, ' ').trim());
71
76
  }
77
+ static getDataElementIDAttribute(element) {
78
+ if (element[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] || element.hasAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)) {
79
+ return element[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] || element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
80
+ }
81
+ return null;
82
+ }
72
83
  }
73
84
  ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME = "data-element-id";
74
85
  ElementIDUtils.INTERNAL_INPUT_NAME = "internal";
@@ -1 +1 @@
1
- {"version":3,"file":"ElementIDUtils.js","sourceRoot":"","sources":["../../src/utils/ElementIDUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ElementIDUtils.js","sourceRoot":"","sources":["../../src/utils/ElementIDUtils.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,29 @@ export declare class StringUtils {
10
10
  */
11
11
  static isEmpty(value: any): Boolean;
12
12
  /**
13
- * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta.
13
+ * Remove acentos de vogais maiúsculas
14
14
  *
15
- * @param value String para ser transformada.
15
+ * @param text String para ser transformada.
16
+ * @example entrada: "ÁÊÇÒ" // retorno: "AECO"
16
17
  */
17
- static replaceAccentuatedChars(text: string): string;
18
+ static replaceAccentuatedCharsUpper(text: string): string;
19
+ /**
20
+ * Remove acentos de vogais minúsculas.
21
+ *
22
+ * @param text String para ser transformada.
23
+ * @example entrada: "áêçò" // retorno: "aeco"
24
+ */
25
+ static replaceAccentuatedCharsLower(text: string): string;
26
+ /**
27
+ * Remove acentuação de vogais e de caracteres especiais que não sejam letras ou numeral.
28
+ *
29
+ * @param text String para ser transformada.
30
+ * @param removeSpecialChars Remove outros caracteres especiais que não sejam letras e números.
31
+ * @example
32
+ * entrada: "á@Êç#Ò", false // retorno: "a@Ec#O"
33
+ * entrada: "á@Êç#Ò", true // retorno: "aEcO"
34
+ */
35
+ static replaceAccentuatedChars(text: string, removeSpecialChars?: boolean): string;
18
36
  /**
19
37
  * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta mantendo espaços e símbolos.
20
38
  * @param text String para ser transformada.
@@ -20,35 +20,53 @@ export class StringUtils {
20
20
  return false;
21
21
  }
22
22
  /**
23
- * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta.
23
+ * Remove acentos de vogais maiúsculas
24
24
  *
25
- * @param value String para ser transformada.
25
+ * @param text String para ser transformada.
26
+ * @example entrada: "ÁÊÇÒ" // retorno: "AECO"
26
27
  */
27
- static replaceAccentuatedChars(text) {
28
- text = text.toUpperCase();
29
- text = text.replace(/[À]/, "A");
30
- text = text.replace(/[Á]/, "A");
31
- text = text.replace(/[Â]/, "A");
32
- text = text.replace(/[Ã]/, "A");
33
- text = text.replace(/[Ä]/, "A");
34
- text = text.replace(/[È]/, "E");
35
- text = text.replace(/[É]/, "E");
36
- text = text.replace(/[Ê]/, "E");
37
- text = text.replace(/[Ë]/, "E");
38
- text = text.replace(/[Ì]/, "I");
39
- text = text.replace(/[Í]/, "I");
40
- text = text.replace(/[Î]/, "I");
41
- text = text.replace(/[Ï]/, "I");
42
- text = text.replace(/[Ò]/, "O");
43
- text = text.replace(/[Ó]/, "O");
44
- text = text.replace(/[Ô]/, "O");
45
- text = text.replace(/[Ö]/, "O");
46
- text = text.replace(/[Ù]/, "U");
47
- text = text.replace(/[Ú]/, "U");
48
- text = text.replace(/[Û]/, "U");
49
- text = text.replace(/[Ü]/, "U");
50
- text = text.replace(/[Ç]/, "C");
51
- return text.replace(/[^a-z0-9]/gi, "");
28
+ static replaceAccentuatedCharsUpper(text) {
29
+ return text.replace(/[ÀÁÂÃÄÅÆ]/g, 'A')
30
+ .replace(/[ÈÉÊË]/g, 'E')
31
+ .replace(/[ÌÍÎÏ]/g, 'I')
32
+ .replace(/[ÒÓÔÕÖØ]/g, 'O')
33
+ .replace(/[ÙÚÛÜ]/g, 'U')
34
+ .replace(/[ÝŸ]/g, 'Y')
35
+ .replace(/[Ñ]/g, 'N')
36
+ .replace(/[Ç]/g, 'C');
37
+ }
38
+ /**
39
+ * Remove acentos de vogais minúsculas.
40
+ *
41
+ * @param text String para ser transformada.
42
+ * @example entrada: "áêçò" // retorno: "aeco"
43
+ */
44
+ static replaceAccentuatedCharsLower(text) {
45
+ return text.replace(/[àáâãäåæ]/g, 'a')
46
+ .replace(/[èéêë]/g, 'e')
47
+ .replace(/[ìíîï]/g, 'i')
48
+ .replace(/[òóôõöø]/g, 'o')
49
+ .replace(/[ùúûü]/g, 'u')
50
+ .replace(/[ýÿ]/g, 'y')
51
+ .replace(/[ñ]/g, 'n')
52
+ .replace(/[ç]/g, 'c');
53
+ }
54
+ /**
55
+ * Remove acentuação de vogais e de caracteres especiais que não sejam letras ou numeral.
56
+ *
57
+ * @param text String para ser transformada.
58
+ * @param removeSpecialChars Remove outros caracteres especiais que não sejam letras e números.
59
+ * @example
60
+ * entrada: "á@Êç#Ò", false // retorno: "a@Ec#O"
61
+ * entrada: "á@Êç#Ò", true // retorno: "aEcO"
62
+ */
63
+ static replaceAccentuatedChars(text, removeSpecialChars = true) {
64
+ text = StringUtils.replaceAccentuatedCharsLower(text);
65
+ text = StringUtils.replaceAccentuatedCharsUpper(text);
66
+ if (removeSpecialChars) {
67
+ text = text.replace(/[^a-z0-9]/gi, "");
68
+ }
69
+ return text;
52
70
  }
53
71
  /**
54
72
  * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta mantendo espaços e símbolos.
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "2.3.1",
3
+ "version": "2.3.3",
4
4
  "description": "Modulo core JavaScript da Sankhya.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
package/publish-docs.sh CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  if [ "$SONAR_CHECK_ALL" != "true" ] && [ "$PUBLISHED_NEXT_VERSION" != "$PUBLISHED_CURRENT_VERSION" ]; then
4
4
  cd ./.docs
5
+ npm pack
5
6
  npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN
6
7
  npm version $PUBLISHED_NEXT_VERSION
7
8
  npm publish
@@ -13,8 +13,8 @@ export class ElementIDUtils {
13
13
  public static INTERNAL_INPUT_NAME: string = "internal";
14
14
 
15
15
  public static addIDInfo(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string {
16
-
17
16
  let dataElementID = this.getDataElementID(element, suffix, iDInfo);
17
+ dataElementID = StringUtils.replaceAccentuatedChars(dataElementID, false);
18
18
  dataElementID = this.addPrefix(iDInfo, dataElementID);
19
19
  element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, dataElementID);
20
20
 
@@ -37,18 +37,19 @@ export class ElementIDUtils {
37
37
  }
38
38
 
39
39
  private static getDataElementID(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo) {
40
- if(element.hasAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)) {
41
- return this.addSuffix(StringUtils.toCamelCase((element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME) as string)), suffix, element);
42
- }
40
+ let dataElementID = ElementIDUtils.getDataElementIDAttribute(element);
41
+ if(dataElementID != null){
42
+ return this.addSuffix(StringUtils.toCamelCase((dataElementID as string)), suffix, element);
43
+ }
43
44
 
44
45
  const validAttribute = this.getAttributeValid(element, iDInfo);
45
46
 
46
47
  if(validAttribute) return this.addSuffix(validAttribute, suffix, element);
47
48
  if(suffix) return String(suffix);
48
49
 
49
- const tagName = StringUtils.toCamelCase(element.tagName);
50
+ let tagName = StringUtils.toCamelCase(element.tagName);
50
51
  element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, tagName);
51
-
52
+
52
53
  return tagName;
53
54
  }
54
55
 
@@ -72,6 +73,11 @@ export class ElementIDUtils {
72
73
  if(element.hasAttribute("label")){
73
74
  return this.formatDescription(element.getAttribute("label"));
74
75
  }
76
+
77
+ if(element.hasAttribute("title")){
78
+ return this.formatDescription(element.getAttribute("title"));
79
+ }
80
+
75
81
  return null;
76
82
  }
77
83
 
@@ -87,11 +93,9 @@ export class ElementIDUtils {
87
93
 
88
94
  private static addPrefix(iDInfo: IElementIDInfo | undefined, dataElementID: string): string {
89
95
  const dataUnitName: string = iDInfo?.dataUnit?.name || "";
90
-
91
96
  if (iDInfo?.dataUnit && !dataElementID?.startsWith(dataUnitName)) {
92
97
  dataElementID = `${StringUtils.toCamelCase(dataUnitName)}_${dataElementID}`
93
98
  }
94
-
95
99
  return dataElementID;
96
100
  }
97
101
 
@@ -100,4 +104,11 @@ export class ElementIDUtils {
100
104
  return StringUtils.toCamelCase((value.replace(/[^\w\sÀ-ÖØ-öø-ÿ]/gi, " ")).replace(/\s+/g, ' ').trim());
101
105
  }
102
106
 
107
+ private static getDataElementIDAttribute(element: HTMLElement): string | null {
108
+ if((element as any)[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] || element.hasAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)) {
109
+ return (element as any)[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] || element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
110
+ }
111
+ return null;
112
+ }
113
+
103
114
  }
@@ -24,38 +24,59 @@ export class StringUtils {
24
24
 
25
25
  return false;
26
26
  }
27
+
28
+ /**
29
+ * Remove acentos de vogais maiúsculas
30
+ *
31
+ * @param text String para ser transformada.
32
+ * @example entrada: "ÁÊÇÒ" // retorno: "AECO"
33
+ */
34
+ static replaceAccentuatedCharsUpper(text: string): string {
35
+ return text.replace(/[ÀÁÂÃÄÅÆ]/g, 'A')
36
+ .replace(/[ÈÉÊË]/g, 'E')
37
+ .replace(/[ÌÍÎÏ]/g, 'I')
38
+ .replace(/[ÒÓÔÕÖØ]/g, 'O')
39
+ .replace(/[ÙÚÛÜ]/g, 'U')
40
+ .replace(/[ÝŸ]/g, 'Y')
41
+ .replace(/[Ñ]/g, 'N')
42
+ .replace(/[Ç]/g, 'C');
43
+ }
27
44
 
45
+ /**
46
+ * Remove acentos de vogais minúsculas.
47
+ *
48
+ * @param text String para ser transformada.
49
+ * @example entrada: "áêçò" // retorno: "aeco"
50
+ */
51
+ static replaceAccentuatedCharsLower(text: string): string {
52
+ return text.replace(/[àáâãäåæ]/g, 'a')
53
+ .replace(/[èéêë]/g, 'e')
54
+ .replace(/[ìíîï]/g, 'i')
55
+ .replace(/[òóôõöø]/g, 'o')
56
+ .replace(/[ùúûü]/g, 'u')
57
+ .replace(/[ýÿ]/g, 'y')
58
+ .replace(/[ñ]/g, 'n')
59
+ .replace(/[ç]/g, 'c');
60
+ }
28
61
 
29
62
  /**
30
- * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta.
63
+ * Remove acentuação de vogais e de caracteres especiais que não sejam letras ou numeral.
31
64
  *
32
- * @param value String para ser transformada.
65
+ * @param text String para ser transformada.
66
+ * @param removeSpecialChars Remove outros caracteres especiais que não sejam letras e números.
67
+ * @example
68
+ * entrada: "á@Êç#Ò", false // retorno: "a@Ec#O"
69
+ * entrada: "á@Êç#Ò", true // retorno: "aEcO"
33
70
  */
34
- static replaceAccentuatedChars(text: string): string {
35
- text = text.toUpperCase();
36
- text = text.replace(/[À]/, "A");
37
- text = text.replace(/[Á]/, "A");
38
- text = text.replace(/[Â]/, "A");
39
- text = text.replace(/[Ã]/, "A");
40
- text = text.replace(/[Ä]/, "A");
41
- text = text.replace(/[È]/, "E");
42
- text = text.replace(/[É]/, "E");
43
- text = text.replace(/[Ê]/, "E");
44
- text = text.replace(/[Ë]/, "E");
45
- text = text.replace(/[Ì]/, "I");
46
- text = text.replace(/[Í]/, "I");
47
- text = text.replace(/[Î]/, "I");
48
- text = text.replace(/[Ï]/, "I");
49
- text = text.replace(/[Ò]/, "O");
50
- text = text.replace(/[Ó]/, "O");
51
- text = text.replace(/[Ô]/, "O");
52
- text = text.replace(/[Ö]/, "O");
53
- text = text.replace(/[Ù]/, "U");
54
- text = text.replace(/[Ú]/, "U");
55
- text = text.replace(/[Û]/, "U");
56
- text = text.replace(/[Ü]/, "U");
57
- text = text.replace(/[Ç]/, "C");
58
- return text.replace(/[^a-z0-9]/gi, "");
71
+ static replaceAccentuatedChars(text: string, removeSpecialChars: boolean = true): string {
72
+
73
+ text = StringUtils.replaceAccentuatedCharsLower(text);
74
+ text = StringUtils.replaceAccentuatedCharsUpper(text);
75
+
76
+ if(removeSpecialChars){
77
+ text = text.replace(/[^a-z0-9]/gi, "");
78
+ }
79
+ return text;
59
80
  }
60
81
 
61
82
  /**
@@ -218,13 +218,13 @@ describe('addIDInfo', () => {
218
218
  expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("movFinanceira_movimentacaoFinanceira");
219
219
  });
220
220
 
221
- test('22 - should add data-element-id with valid id "bancoObrigatório_movimentacaoFinanceira"', () => {
221
+ test('22 - should add data-element-id with valid id "bancoObrigatorio_movimentacaoFinanceira"', () => {
222
222
  const sufix = "movimentacao-financeira";
223
223
  element.setAttribute("name", "Banco (obrigatório) *");
224
224
 
225
225
  const result = ElementIDUtils.addIDInfo(element, sufix);
226
- expect(result).toBe("bancoObrigatório_movimentacaoFinanceira");
227
- expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("bancoObrigatório_movimentacaoFinanceira");
226
+ expect(result).toBe("bancoObrigatorio_movimentacaoFinanceira");
227
+ expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("bancoObrigatorio_movimentacaoFinanceira");
228
228
  });
229
229
 
230
230
  });
@@ -32,13 +32,20 @@ describe('StringUtils', function () {
32
32
  expect(result).toBe(false);
33
33
  });
34
34
 
35
- it('substitui vogais com acento por sem acento', function () {
35
+ it('substitui vogais com acento por vogais sem acento', function () {
36
+
36
37
  let resultadoInputMaiusculo = StringUtils.replaceAccentuatedChars('ÁÀÂÃÄ');
37
38
  expect(resultadoInputMaiusculo).toBe('AAAAA');
39
+
38
40
  let resultInputMinusculo = StringUtils.replaceAccentuatedChars('áàâãä');
39
- expect(resultInputMinusculo).toBe('AAAAA');
40
- let resultInputCedilha = StringUtils.replaceAccentuatedChars('ç');
41
- expect(resultInputCedilha).toBe('C');
41
+ expect(resultInputMinusculo).toBe('aaaaa');
42
+
43
+ let resultInputCedilhaMaiusculo = StringUtils.replaceAccentuatedChars('Ç');
44
+ expect(resultInputCedilhaMaiusculo).toBe('C');
45
+
46
+ let resultInputCedilhaMinusculo = StringUtils.replaceAccentuatedChars('ç');
47
+ expect(resultInputCedilhaMinusculo).toBe('c');
48
+
42
49
  });
43
50
 
44
51
  });