@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 +2 -2
- package/dist/utils/ElementIDUtils.d.ts +1 -0
- package/dist/utils/ElementIDUtils.js +14 -3
- package/dist/utils/ElementIDUtils.js.map +1 -1
- package/dist/utils/StringUtils.d.ts +21 -3
- package/dist/utils/StringUtils.js +45 -27
- package/dist/utils/StringUtils.js.map +1 -1
- package/package.json +1 -1
- package/publish-docs.sh +1 -0
- package/src/utils/ElementIDUtils.ts +19 -8
- package/src/utils/StringUtils.ts +48 -27
- package/test/util/ElementIDUtils.spec.ts +3 -3
- package/test/util/StringUtils.spec.ts +11 -4
package/build.env
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
PUBLISHED_NEXT_VERSION=v2.3.
|
|
2
|
-
PUBLISHED_CURRENT_VERSION=v2.3.
|
|
1
|
+
PUBLISHED_NEXT_VERSION=v2.3.3
|
|
2
|
+
PUBLISHED_CURRENT_VERSION=v2.3.2
|
|
@@ -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
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,MAAM,OAAO,cAAc;IAKlB,MAAM,CAAC,SAAS,CAAC,OAAoB,EAAE,MAAe,EAAE,MAAuB;
|
|
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
|
|
13
|
+
* Remove acentos de vogais maiúsculas
|
|
14
14
|
*
|
|
15
|
-
* @param
|
|
15
|
+
* @param text String para ser transformada.
|
|
16
|
+
* @example entrada: "ÁÊÇÒ" // retorno: "AECO"
|
|
16
17
|
*/
|
|
17
|
-
static
|
|
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
|
|
23
|
+
* Remove acentos de vogais maiúsculas
|
|
24
24
|
*
|
|
25
|
-
* @param
|
|
25
|
+
* @param text String para ser transformada.
|
|
26
|
+
* @example entrada: "ÁÊÇÒ" // retorno: "AECO"
|
|
26
27
|
*/
|
|
27
|
-
static
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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":"AAAA;;GAEG;AACH,MAAM,OAAO,WAAW;IAEpB;;;;;MAKE;IACF,MAAM,CAAC,OAAO,CAAC,KAAU;QAErB,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACtC,OAAO,IAAI,CAAC;SACf;QAED,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/publish-docs.sh
CHANGED
|
@@ -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
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|
}
|
package/src/utils/StringUtils.ts
CHANGED
|
@@ -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
|
|
63
|
+
* Remove acentuação de vogais e de caracteres especiais que não sejam letras ou numeral.
|
|
31
64
|
*
|
|
32
|
-
* @param
|
|
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
|
-
|
|
36
|
-
text =
|
|
37
|
-
text =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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 "
|
|
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("
|
|
227
|
-
expect(element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)).toBe("
|
|
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('
|
|
40
|
-
|
|
41
|
-
|
|
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
|
});
|