@sankhyalabs/core 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dataunit/state/slice/SelectionSlice.js +8 -1
- package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/ElementIDUtils.d.ts +13 -0
- package/dist/utils/ElementIDUtils.js +63 -0
- package/dist/utils/ElementIDUtils.js.map +1 -0
- package/dist/utils/StringUtils.d.ts +28 -0
- package/dist/utils/StringUtils.js +50 -0
- package/dist/utils/StringUtils.js.map +1 -1
- package/jest.config.ts +5 -5
- package/package.json +1 -1
- package/src/dataunit/state/slice/SelectionSlice.ts +11 -1
- package/src/index.ts +3 -0
- package/src/utils/ElementIDUtils.ts +85 -0
- package/src/utils/StringUtils.ts +55 -0
- package/test/util/ElementIDUtils.spec.ts +230 -0
|
@@ -68,7 +68,7 @@ class SelectionReducerImpl {
|
|
|
68
68
|
return { currentSelection: selectionById };
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
return { currentSelection: selectionSource };
|
|
71
|
+
return { currentSelection: getFilteredSelection(selectionSource, stateManager) };
|
|
72
72
|
case Action.EDITION_CANCELED:
|
|
73
73
|
if (currentState === null || currentState === void 0 ? void 0 : currentState.lastSelection) {
|
|
74
74
|
return { currentSelection: currentState.lastSelection };
|
|
@@ -107,6 +107,13 @@ export const hasPrevious = (stateManager) => {
|
|
|
107
107
|
}
|
|
108
108
|
return false;
|
|
109
109
|
};
|
|
110
|
+
function getFilteredSelection(selection, stateManager) {
|
|
111
|
+
if (selection) {
|
|
112
|
+
const records = getCurrentRecords(stateManager);
|
|
113
|
+
return selection.filter(id => records.has(id));
|
|
114
|
+
}
|
|
115
|
+
return selection;
|
|
116
|
+
}
|
|
110
117
|
function getItemIndex(key, map) {
|
|
111
118
|
return Array.from(map.keys()).indexOf(key);
|
|
112
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/SelectionSlice.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SelectionSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/SelectionSlice.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,5 +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
|
+
import { ElementIDUtils, IElementIDInfo } from "./utils/ElementIDUtils.js";
|
|
26
27
|
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 };
|
|
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,7 +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";
|
|
23
24
|
import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
|
|
24
25
|
/*Classes públicas no pacote*/
|
|
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 };
|
|
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 };
|
|
26
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;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"}
|
|
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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"}
|
package/jest.config.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
transform: {'^.+\\.ts?$': 'ts-jest'},
|
|
3
|
-
testEnvironment: '
|
|
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":
|
|
9
|
-
"functions":
|
|
10
|
-
"lines":
|
|
11
|
-
"statements":
|
|
8
|
+
"branches": 10,
|
|
9
|
+
"functions": 10,
|
|
10
|
+
"lines": 10,
|
|
11
|
+
"statements": 10
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
moduleNameMapper: {
|
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@ class SelectionReducerImpl implements ActionReducer {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
return {currentSelection: selectionSource };
|
|
86
|
+
return {currentSelection: getFilteredSelection(selectionSource, stateManager) };
|
|
87
87
|
case Action.EDITION_CANCELED:
|
|
88
88
|
if(currentState?.lastSelection){
|
|
89
89
|
return { currentSelection: currentState.lastSelection };
|
|
@@ -130,6 +130,16 @@ export const hasPrevious = (stateManager: StateManager): boolean => {
|
|
|
130
130
|
return false;
|
|
131
131
|
};
|
|
132
132
|
|
|
133
|
+
function getFilteredSelection(selection: Array<string>, stateManager: StateManager): Array<string>{
|
|
134
|
+
|
|
135
|
+
if(selection){
|
|
136
|
+
const records = getCurrentRecords(stateManager);
|
|
137
|
+
return selection.filter(id => records.has(id));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return selection;
|
|
141
|
+
}
|
|
142
|
+
|
|
133
143
|
function getItemIndex(key: string, map: Map<string, any>): number {
|
|
134
144
|
return Array.from(map.keys()).indexOf(key);
|
|
135
145
|
}
|
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 { ElementIDUtils, IElementIDInfo } from "./utils/ElementIDUtils.js";
|
|
26
27
|
import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
|
|
27
28
|
|
|
28
29
|
/*Classes públicas no pacote*/
|
|
@@ -69,5 +70,7 @@ export {
|
|
|
69
70
|
SortMode,
|
|
70
71
|
LoadDataRequest,
|
|
71
72
|
LoadDataResponse,
|
|
73
|
+
ElementIDUtils,
|
|
74
|
+
IElementIDInfo,
|
|
72
75
|
UserAgentUtils
|
|
73
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
|
+
}
|
package/src/utils/StringUtils.ts
CHANGED
|
@@ -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,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
|
+
});
|