@sankhyalabs/core 0.0.0-bugfix-dev-KB-6165.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.
- package/.docs/.nojekyll +1 -0
- package/.docs/README.md +63 -0
- package/.docs/classes/ApplicationContext.md +90 -0
- package/.docs/classes/ArrayUtils.md +99 -0
- package/.docs/classes/AuthorizedServiceCaller.md +76 -0
- package/.docs/classes/Change.md +190 -0
- package/.docs/classes/DataUnit.md +2453 -0
- package/.docs/classes/DataUnitAction.md +96 -0
- package/.docs/classes/DataUnitStorage.md +116 -0
- package/.docs/classes/DateUtils.md +327 -0
- package/.docs/classes/ElementIDUtils.md +308 -0
- package/.docs/classes/ErrorException.md +214 -0
- package/.docs/classes/ErrorTracking.md +62 -0
- package/.docs/classes/FloatingManager.md +530 -0
- package/.docs/classes/HTMLBuilder.md +45 -0
- package/.docs/classes/HttpProvider.md +96 -0
- package/.docs/classes/JSUtils.md +115 -0
- package/.docs/classes/MaskFormatter-1.md +347 -0
- package/.docs/classes/NumberUtils.md +335 -0
- package/.docs/classes/ObjectUtils.md +160 -0
- package/.docs/classes/OnboardingUtils.md +126 -0
- package/.docs/classes/PromiseSync.md +91 -0
- package/.docs/classes/ReadyUtil.md +115 -0
- package/.docs/classes/RequestMetadata.md +84 -0
- package/.docs/classes/SelectionInfo.md +168 -0
- package/.docs/classes/SkwHttpProvider.md +109 -0
- package/.docs/classes/StringUtils.md +562 -0
- package/.docs/classes/TimeFormatter.md +98 -0
- package/.docs/classes/UserAgentUtils.md +58 -0
- package/.docs/classes/VersionUtils.md +42 -0
- package/.docs/classes/WaitingChangeException.md +200 -0
- package/.docs/classes/WarningException.md +214 -0
- package/.docs/enums/Action.md +294 -0
- package/.docs/enums/ChangeOperation.md +52 -0
- package/.docs/enums/DataType.md +63 -0
- package/.docs/enums/DependencyType.md +41 -0
- package/.docs/enums/SelectionMode.md +30 -0
- package/.docs/enums/SortMode.md +30 -0
- package/.docs/enums/UserInterface.md +195 -0
- package/.docs/interfaces/ChildDescriptor.md +41 -0
- package/.docs/interfaces/ChildLink.md +30 -0
- package/.docs/interfaces/DUActionInterceptor.md +29 -0
- package/.docs/interfaces/ExecutionContext.md +58 -0
- package/.docs/interfaces/FieldDescriptor.md +140 -0
- package/.docs/interfaces/Filter.md +41 -0
- package/.docs/interfaces/IElementIDInfo.md +30 -0
- package/.docs/interfaces/LoadDataRequest.md +101 -0
- package/.docs/interfaces/LoadDataResponse.md +36 -0
- package/.docs/interfaces/PageRequest.md +41 -0
- package/.docs/interfaces/PaginationInfo.md +75 -0
- package/.docs/interfaces/PromiseSyncCallback.md +39 -0
- package/.docs/interfaces/QuickFilter.md +41 -0
- package/.docs/interfaces/Record.md +62 -0
- package/.docs/interfaces/SavedRecord.md +85 -0
- package/.docs/interfaces/Sort.md +41 -0
- package/.docs/interfaces/SortingProvider.md +29 -0
- package/.docs/interfaces/UnitMetadata.md +52 -0
- package/.docs/interfaces/WaitingChange.md +41 -0
- package/.docs/modules/MaskFormatter.md +37 -0
- package/.docs/modules.md +74 -0
- package/.docs/package.json +15 -0
- package/.eslintignore +2 -0
- package/.eslintrc.cjs +35 -0
- package/.husky/commit-msg +4 -0
- package/.releaserc +58 -0
- package/README.md +62 -0
- package/commitlint.config.cjs +14 -0
- package/dist/async/PromiseSync.d.ts +29 -0
- package/dist/async/PromiseSync.js +31 -0
- package/dist/async/PromiseSync.js.map +1 -0
- package/dist/dataunit/DataUnit.d.ts +924 -0
- package/dist/dataunit/DataUnit.js +1621 -0
- package/dist/dataunit/DataUnit.js.map +1 -0
- package/dist/dataunit/DataUnitStorage.d.ts +24 -0
- package/dist/dataunit/DataUnitStorage.js +39 -0
- package/dist/dataunit/DataUnitStorage.js.map +1 -0
- package/dist/dataunit/formatting/PrettyFormatter.d.ts +2 -0
- package/dist/dataunit/formatting/PrettyFormatter.js +94 -0
- package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -0
- package/dist/dataunit/loading/LoadDataRequest.d.ts +19 -0
- package/dist/dataunit/loading/LoadDataRequest.js +2 -0
- package/dist/dataunit/loading/LoadDataRequest.js.map +1 -0
- package/dist/dataunit/loading/LoadDataResponse.d.ts +9 -0
- package/dist/dataunit/loading/LoadDataResponse.js +2 -0
- package/dist/dataunit/loading/LoadDataResponse.js.map +1 -0
- package/dist/dataunit/loading/PaginationInfo.d.ts +13 -0
- package/dist/dataunit/loading/PaginationInfo.js +2 -0
- package/dist/dataunit/loading/PaginationInfo.js.map +1 -0
- package/dist/dataunit/metadata/DataType.d.ts +54 -0
- package/dist/dataunit/metadata/DataType.js +124 -0
- package/dist/dataunit/metadata/DataType.js.map +1 -0
- package/dist/dataunit/metadata/UnitMetadata.d.ts +88 -0
- package/dist/dataunit/metadata/UnitMetadata.js +36 -0
- package/dist/dataunit/metadata/UnitMetadata.js.map +1 -0
- package/dist/dataunit/state/HistReducer.d.ts +10 -0
- package/dist/dataunit/state/HistReducer.js +28 -0
- package/dist/dataunit/state/HistReducer.js.map +1 -0
- package/dist/dataunit/state/StateManager.d.ts +57 -0
- package/dist/dataunit/state/StateManager.js +97 -0
- package/dist/dataunit/state/StateManager.js.map +1 -0
- package/dist/dataunit/state/action/DataUnitAction.d.ts +40 -0
- package/dist/dataunit/state/action/DataUnitAction.js +42 -0
- package/dist/dataunit/state/action/DataUnitAction.js.map +1 -0
- package/dist/dataunit/state/slice/AddedRecordsSlice.d.ts +12 -0
- package/dist/dataunit/state/slice/AddedRecordsSlice.js +30 -0
- package/dist/dataunit/state/slice/AddedRecordsSlice.js.map +1 -0
- package/dist/dataunit/state/slice/ChangesSlice.d.ts +13 -0
- package/dist/dataunit/state/slice/ChangesSlice.js +105 -0
- package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -0
- package/dist/dataunit/state/slice/InvalidFieldsSlice.d.ts +10 -0
- package/dist/dataunit/state/slice/InvalidFieldsSlice.js +66 -0
- package/dist/dataunit/state/slice/InvalidFieldsSlice.js.map +1 -0
- package/dist/dataunit/state/slice/LoadingControlSlice.d.ts +19 -0
- package/dist/dataunit/state/slice/LoadingControlSlice.js +45 -0
- package/dist/dataunit/state/slice/LoadingControlSlice.js.map +1 -0
- package/dist/dataunit/state/slice/RecordsSlice.d.ts +11 -0
- package/dist/dataunit/state/slice/RecordsSlice.js +62 -0
- package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -0
- package/dist/dataunit/state/slice/RemovedRecordsSlice.d.ts +9 -0
- package/dist/dataunit/state/slice/RemovedRecordsSlice.js +25 -0
- package/dist/dataunit/state/slice/RemovedRecordsSlice.js.map +1 -0
- package/dist/dataunit/state/slice/SelectionSlice.d.ts +19 -0
- package/dist/dataunit/state/slice/SelectionSlice.js +155 -0
- package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -0
- package/dist/dataunit/state/slice/SnapshotSlice.d.ts +19 -0
- package/dist/dataunit/state/slice/SnapshotSlice.js +106 -0
- package/dist/dataunit/state/slice/SnapshotSlice.js.map +1 -0
- package/dist/dataunit/state/slice/UnitMetadataSlice.d.ts +11 -0
- package/dist/dataunit/state/slice/UnitMetadataSlice.js +21 -0
- package/dist/dataunit/state/slice/UnitMetadataSlice.js.map +1 -0
- package/dist/dataunit/state/slice/WaitingChangesSlice.d.ts +12 -0
- package/dist/dataunit/state/slice/WaitingChangesSlice.js +56 -0
- package/dist/dataunit/state/slice/WaitingChangesSlice.js.map +1 -0
- package/dist/exceptions/ErrorException.d.ts +14 -0
- package/dist/exceptions/ErrorException.js +13 -0
- package/dist/exceptions/ErrorException.js.map +1 -0
- package/dist/exceptions/WaitingChangeException.d.ts +12 -0
- package/dist/exceptions/WaitingChangeException.js +12 -0
- package/dist/exceptions/WaitingChangeException.js.map +1 -0
- package/dist/exceptions/WarningException.d.ts +14 -0
- package/dist/exceptions/WarningException.js +13 -0
- package/dist/exceptions/WarningException.js.map +1 -0
- package/dist/html/HTMLBuilder.d.ts +3 -0
- package/dist/html/HTMLBuilder.js +9 -0
- package/dist/html/HTMLBuilder.js.map +1 -0
- package/dist/http/AuthorizedServiceCaller.d.ts +11 -0
- package/dist/http/AuthorizedServiceCaller.js +54 -0
- package/dist/http/AuthorizedServiceCaller.js.map +1 -0
- package/dist/http/HttpProvider.d.ts +25 -0
- package/dist/http/HttpProvider.js +74 -0
- package/dist/http/HttpProvider.js.map +1 -0
- package/dist/http/RequestMetadata.d.ts +30 -0
- package/dist/http/RequestMetadata.js +25 -0
- package/dist/http/RequestMetadata.js.map +1 -0
- package/dist/http/SkwHttpProvider.d.ts +9 -0
- package/dist/http/SkwHttpProvider.js +67 -0
- package/dist/http/SkwHttpProvider.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/traking/ErrorTraking.d.ts +19 -0
- package/dist/traking/ErrorTraking.js +34 -0
- package/dist/traking/ErrorTraking.js.map +1 -0
- package/dist/ui/FloatingManager.d.ts +164 -0
- package/dist/ui/FloatingManager.js +358 -0
- package/dist/ui/FloatingManager.js.map +1 -0
- package/dist/utils/ApplicationContext.d.ts +26 -0
- package/dist/utils/ApplicationContext.js +38 -0
- package/dist/utils/ApplicationContext.js.map +1 -0
- package/dist/utils/ArrayUtils.d.ts +29 -0
- package/dist/utils/ArrayUtils.js +57 -0
- package/dist/utils/ArrayUtils.js.map +1 -0
- package/dist/utils/CriteriaModel.d.ts +107 -0
- package/dist/utils/CriteriaModel.js +172 -0
- package/dist/utils/CriteriaModel.js.map +1 -0
- package/dist/utils/CriteriaParameter.d.ts +69 -0
- package/dist/utils/CriteriaParameter.js +83 -0
- package/dist/utils/CriteriaParameter.js.map +1 -0
- package/dist/utils/DateUtils.d.ts +97 -0
- package/dist/utils/DateUtils.js +171 -0
- package/dist/utils/DateUtils.js.map +1 -0
- package/dist/utils/ElementIDUtils.d.ts +72 -0
- package/dist/utils/ElementIDUtils.js +161 -0
- package/dist/utils/ElementIDUtils.js.map +1 -0
- package/dist/utils/JSUtils.d.ts +36 -0
- package/dist/utils/JSUtils.js +66 -0
- package/dist/utils/JSUtils.js.map +1 -0
- package/dist/utils/MaskFormatter.d.ts +148 -0
- package/dist/utils/MaskFormatter.js +356 -0
- package/dist/utils/MaskFormatter.js.map +1 -0
- package/dist/utils/NumberUtils.d.ts +127 -0
- package/dist/utils/NumberUtils.js +245 -0
- package/dist/utils/NumberUtils.js.map +1 -0
- package/dist/utils/ObjectUtils.d.ts +47 -0
- package/dist/utils/ObjectUtils.js +68 -0
- package/dist/utils/ObjectUtils.js.map +1 -0
- package/dist/utils/OnboardingUtils.d.ts +17 -0
- package/dist/utils/OnboardingUtils.js +41 -0
- package/dist/utils/OnboardingUtils.js.map +1 -0
- package/dist/utils/ReadyUtil.d.ts +24 -0
- package/dist/utils/ReadyUtil.js +41 -0
- package/dist/utils/ReadyUtil.js.map +1 -0
- package/dist/utils/StringUtils.d.ts +167 -0
- package/dist/utils/StringUtils.js +328 -0
- package/dist/utils/StringUtils.js.map +1 -0
- package/dist/utils/TimeFormatter.d.ts +33 -0
- package/dist/utils/TimeFormatter.js +98 -0
- package/dist/utils/TimeFormatter.js.map +1 -0
- package/dist/utils/UserAgentUtils/index.d.ts +15 -0
- package/dist/utils/UserAgentUtils/index.js +48 -0
- package/dist/utils/UserAgentUtils/index.js.map +1 -0
- package/dist/utils/UserAgentUtils/navigatorAgentList.d.ts +17 -0
- package/dist/utils/UserAgentUtils/navigatorAgentList.js +40 -0
- package/dist/utils/UserAgentUtils/navigatorAgentList.js.map +1 -0
- package/dist/utils/VersionUtils.d.ts +7 -0
- package/dist/utils/VersionUtils.js +31 -0
- package/dist/utils/VersionUtils.js.map +1 -0
- package/jest.config.ts +17 -0
- package/mock/http/XMLHttpRequest-mock.js +26 -0
- package/package.json +52 -0
- package/scripts/runlink.bat +1 -0
- package/scripts/runlink.sh +1 -0
- package/src/async/PromiseSync.ts +49 -0
- package/src/dataunit/DataUnit.ts +1835 -0
- package/src/dataunit/DataUnitStorage.ts +43 -0
- package/src/dataunit/formatting/PrettyFormatter.ts +113 -0
- package/src/dataunit/loading/LoadDataRequest.ts +26 -0
- package/src/dataunit/loading/LoadDataResponse.ts +11 -0
- package/src/dataunit/loading/PaginationInfo.ts +18 -0
- package/src/dataunit/metadata/DataType.ts +127 -0
- package/src/dataunit/metadata/UnitMetadata.ts +102 -0
- package/src/dataunit/state/HistReducer.ts +34 -0
- package/src/dataunit/state/StateManager.ts +142 -0
- package/src/dataunit/state/action/DataUnitAction.ts +67 -0
- package/src/dataunit/state/slice/AddedRecordsSlice.ts +48 -0
- package/src/dataunit/state/slice/ChangesSlice.ts +125 -0
- package/src/dataunit/state/slice/InvalidFieldsSlice.ts +85 -0
- package/src/dataunit/state/slice/LoadingControlSlice.ts +60 -0
- package/src/dataunit/state/slice/RecordsSlice.ts +74 -0
- package/src/dataunit/state/slice/RemovedRecordsSlice.ts +30 -0
- package/src/dataunit/state/slice/SelectionSlice.ts +193 -0
- package/src/dataunit/state/slice/SnapshotSlice.ts +139 -0
- package/src/dataunit/state/slice/UnitMetadataSlice.ts +30 -0
- package/src/dataunit/state/slice/WaitingChangesSlice.ts +74 -0
- package/src/exceptions/ErrorException.ts +25 -0
- package/src/exceptions/WaitingChangeException.ts +21 -0
- package/src/exceptions/WarningException.ts +26 -0
- package/src/html/HTMLBuilder.ts +8 -0
- package/src/http/AuthorizedServiceCaller.ts +58 -0
- package/src/http/HttpProvider.ts +94 -0
- package/src/http/RequestMetadata.ts +42 -0
- package/src/http/SkwHttpProvider.ts +78 -0
- package/src/index.ts +93 -0
- package/src/traking/ErrorTraking.ts +37 -0
- package/src/ui/FloatingManager.ts +417 -0
- package/src/utils/ApplicationContext.ts +42 -0
- package/src/utils/ArrayUtils.ts +61 -0
- package/src/utils/CriteriaModel.ts +205 -0
- package/src/utils/CriteriaParameter.ts +108 -0
- package/src/utils/DateUtils.ts +195 -0
- package/src/utils/ElementIDUtils.ts +184 -0
- package/src/utils/JSUtils.ts +69 -0
- package/src/utils/MaskFormatter.ts +407 -0
- package/src/utils/NumberUtils.ts +283 -0
- package/src/utils/ObjectUtils.ts +76 -0
- package/src/utils/OnboardingUtils.ts +46 -0
- package/src/utils/ReadyUtil.ts +45 -0
- package/src/utils/StringUtils.ts +359 -0
- package/src/utils/TimeFormatter.ts +98 -0
- package/src/utils/UserAgentUtils/index.ts +62 -0
- package/src/utils/UserAgentUtils/navigatorAgentList.ts +39 -0
- package/src/utils/VersionUtils.ts +37 -0
- package/test/http/HttpProvider.spec.ts +35 -0
- package/test/http/SkwHttpProvider.ts.spec.ts +34 -0
- package/test/util/CriteriaModel.spec.ts +232 -0
- package/test/util/CriteriaParameter.spec.ts +52 -0
- package/test/util/DataUnitStorage.spec.ts +63 -0
- package/test/util/ElementIDUtils.spec.ts +272 -0
- package/test/util/MaskFormatter.spec.ts +138 -0
- package/test/util/NumberUtils.spec.ts +182 -0
- package/test/util/StringUtils.spec.ts +51 -0
- package/test/util/TimeFormatter.spec.ts +26 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { StringUtils } from "./StringUtils.js";
|
|
2
|
+
const NUMBERINPUTS_REGEX_SCIENTIFIC_PARTS = /^([+-])?(\d+).?(\d*)[eE]([-+]?\d+)$/;
|
|
3
|
+
/**
|
|
4
|
+
* `NumberUtils`: Utilizado para manipulação de numerais.
|
|
5
|
+
*/
|
|
6
|
+
export class NumberUtils {
|
|
7
|
+
/**
|
|
8
|
+
* Realiza o arredondamento de casas decimais de um numero.
|
|
9
|
+
*
|
|
10
|
+
* @param value - Numeral a ser arredondado.
|
|
11
|
+
* @param decimals - Quantidade de casas decimais ussada no arredondamento.
|
|
12
|
+
*
|
|
13
|
+
* @returns - O próprio numeral arredondado com a quantidade de casas decimais do argumento decimals.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* Informo: (100.12) | 100.12
|
|
17
|
+
* Informo: (100,12) | NaN
|
|
18
|
+
|
|
19
|
+
* Informo: ("100.12", 1) | 100.1
|
|
20
|
+
* Informo: ("100.12", 2) | 100.12
|
|
21
|
+
* Informo: ("100.12", 3) | 100.12
|
|
22
|
+
|
|
23
|
+
* Informo: ("100.15", 1) | 100.2
|
|
24
|
+
* Informo: ("100.15", 2) | 100.15
|
|
25
|
+
* Informo: ("100.15", 3) | 100.15
|
|
26
|
+
|
|
27
|
+
* Informo: ("100.16", 1) | 100.2
|
|
28
|
+
* Informo: ("100.16", 2) | 100.16
|
|
29
|
+
* Informo: ("100.16", 3) | 100.16
|
|
30
|
+
*/
|
|
31
|
+
static round(value, decimals = 2) {
|
|
32
|
+
const multiplier = Math.pow(10, decimals);
|
|
33
|
+
return Math.round(value * multiplier) / multiplier;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Determina a ordem de umeros.
|
|
37
|
+
*
|
|
38
|
+
* @param a - Primeio número para comparação.
|
|
39
|
+
* @param b - Segundo número para comparação.
|
|
40
|
+
* @returns - Um numeral negativo se o primeiro argumento é menor que o segundo, zero se os dois são iguais e um numeral positivo quando o primeiro é maior que o segundo.
|
|
41
|
+
*/
|
|
42
|
+
static compare(a, b) {
|
|
43
|
+
if (a === undefined) {
|
|
44
|
+
return b === undefined ? 0 : 1;
|
|
45
|
+
}
|
|
46
|
+
else if (b === undefined) {
|
|
47
|
+
return -1;
|
|
48
|
+
}
|
|
49
|
+
if (a === null) {
|
|
50
|
+
return b === null ? 0 : 1;
|
|
51
|
+
}
|
|
52
|
+
else if (b === null) {
|
|
53
|
+
return -1;
|
|
54
|
+
}
|
|
55
|
+
return a > b ? 1 : (a < b ? -1 : 0);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Converte o dado numérico de string para number.
|
|
60
|
+
*
|
|
61
|
+
* @param value Numeral em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico: ######.##).
|
|
62
|
+
* @returns - Numeral passado.
|
|
63
|
+
* @example
|
|
64
|
+
* @"100,12" | 100.12
|
|
65
|
+
* @"100.12" | 100.12
|
|
66
|
+
* @"-100,12" | -100.12
|
|
67
|
+
* @"R$100,12" | 100.12
|
|
68
|
+
* @"-R$100,12" | -100.12
|
|
69
|
+
* @"string" | NaN
|
|
70
|
+
*/
|
|
71
|
+
NumberUtils.stringToNumber = (value) => {
|
|
72
|
+
if (value === '' || value === null || value === undefined) {
|
|
73
|
+
return NaN;
|
|
74
|
+
}
|
|
75
|
+
if (value) {
|
|
76
|
+
value = value.toString();
|
|
77
|
+
const negative = (value.charAt(0) === '-');
|
|
78
|
+
if (!NUMBERINPUTS_REGEX_SCIENTIFIC_PARTS.test(value)) {
|
|
79
|
+
value = value.replace(/[^\d.,]/g, '');
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
value = value.replace(/^-/g, '');
|
|
83
|
+
}
|
|
84
|
+
//In case of simple string such as: "@@@@@@@"
|
|
85
|
+
if (value === '') {
|
|
86
|
+
return Number(NaN);
|
|
87
|
+
}
|
|
88
|
+
const indexV = value.indexOf(',');
|
|
89
|
+
const indexP = value.indexOf('.');
|
|
90
|
+
if (indexP > indexV) {
|
|
91
|
+
value = value.replace(',', '');
|
|
92
|
+
}
|
|
93
|
+
else if (indexP < indexV) {
|
|
94
|
+
value = value.replace(/\./g, '@').replace(',', '.').replace(/@/g, '');
|
|
95
|
+
}
|
|
96
|
+
if (negative) {
|
|
97
|
+
value = '-' + value;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return Number(value);
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Formata o numeral com a precisão informada.
|
|
104
|
+
*
|
|
105
|
+
* @param value - Numeral em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico - sem separador de milhares: ######.##).
|
|
106
|
+
* @param precision - Quantidade de casas decimais.
|
|
107
|
+
* @param prettyPrecision - Quantidade de zeros nos decimais.
|
|
108
|
+
* @param defaultValue - Valor padrão caso o value não seja um valor numérico válido.
|
|
109
|
+
*
|
|
110
|
+
* @returns - Numeral em formato de String formatado em PT-BR.
|
|
111
|
+
* @example
|
|
112
|
+
* Informado: ('10,9845444', 3, 3) | Retorna: '10,985'
|
|
113
|
+
* Informado: (undefined, 3, 3) | Retorna: NaN
|
|
114
|
+
* Informado: (undefined, 3, 3, '0,00') | Retorna: 0,00
|
|
115
|
+
*/
|
|
116
|
+
NumberUtils.format = (value, precision, prettyPrecision = NaN, defaultValue = NaN.toString()) => {
|
|
117
|
+
if (value === '' || value === undefined || value === "NaN") {
|
|
118
|
+
return defaultValue;
|
|
119
|
+
}
|
|
120
|
+
const newValue = NumberUtils.stringToNumber(value);
|
|
121
|
+
if (isNaN(newValue)) {
|
|
122
|
+
return defaultValue;
|
|
123
|
+
}
|
|
124
|
+
//Validation "precision":
|
|
125
|
+
// Case1: precision < 0 => does not use precision
|
|
126
|
+
// Case2: presicion not int => does not use precision
|
|
127
|
+
if (precision < 0 || Math.abs(Math.round(precision * 1) / 1) !== precision) {
|
|
128
|
+
//Once stringToNumber returns number format, we need to change to pt-br
|
|
129
|
+
return NumberUtils.changeFormat(newValue.toString());
|
|
130
|
+
}
|
|
131
|
+
//Validation "prettyPrecision"
|
|
132
|
+
let prettyPrecisionInternal = 0;
|
|
133
|
+
// Case1: prettyPrecision < 0 => prettyPrecision does not change de format that means: prettyPrecisionInternal = precision;
|
|
134
|
+
// Case2: prettyPrecision not int => prettyPrecision does not change de format that means: prettyPrecisionInternal = precision;
|
|
135
|
+
if (isNaN(prettyPrecision) || Math.abs(Math.round(prettyPrecision * 1) / 1) !== prettyPrecision) {
|
|
136
|
+
prettyPrecisionInternal = precision;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
prettyPrecisionInternal = prettyPrecision;
|
|
140
|
+
}
|
|
141
|
+
let newValueStr;
|
|
142
|
+
newValueStr = (Math.round(newValue * Math.pow(10, precision)) / Math.pow(10, precision)).toLocaleString('pt-br', { minimumFractionDigits: precision });
|
|
143
|
+
//prettyPrecision
|
|
144
|
+
const varSettingPP = precision - prettyPrecisionInternal;
|
|
145
|
+
if (varSettingPP > 0) {
|
|
146
|
+
for (let i = 0; i < varSettingPP; i++) {
|
|
147
|
+
if (newValueStr.substring(newValueStr.length - 1) == "0" && precision > 0) {
|
|
148
|
+
newValueStr = newValueStr.substring(0, newValueStr.length - 1);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//in Case "." or "," in the end of the string
|
|
153
|
+
if (newValueStr.substring(newValueStr.length - 1) == "." || newValueStr.substring(newValueStr.length - 1) == ",") {
|
|
154
|
+
newValueStr = newValueStr.substring(0, newValueStr.length - 1);
|
|
155
|
+
}
|
|
156
|
+
return newValueStr;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Formata o numeral com a precisão informada e o valor default 0,00 caso o value não seja um numero valido.
|
|
160
|
+
*
|
|
161
|
+
* @param value - Numeral em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico - sem separador de milhares: ######.##).
|
|
162
|
+
* @param precision - Quantidade de casas decimais.
|
|
163
|
+
* @param prettyPrecision - Quantidade de zeros nos decimais.
|
|
164
|
+
*
|
|
165
|
+
* @returns - Numeral em formato de String formatado em PT-BR.
|
|
166
|
+
* @example
|
|
167
|
+
* Informado: ('10,9845444', 3, 3) | Retorna: '10,985'
|
|
168
|
+
* Informado: (undefined, 3, 3) | Retorna: 0,00
|
|
169
|
+
*/
|
|
170
|
+
NumberUtils.safeFormat = (value, precision, prettyPrecision = NaN) => {
|
|
171
|
+
return NumberUtils.format(value, precision, prettyPrecision, "0,00");
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Retira os separadores de milhar de um numeral em formato de string.
|
|
175
|
+
*
|
|
176
|
+
* @param value - Numeral em formato de string a ser convertido.
|
|
177
|
+
* @param formatnumber - Formatação de ENTRADA e SAÍDA do utilitário: pt-BR="###.###,##" en-US="###,###.##"; Default: "pt-BR".
|
|
178
|
+
*
|
|
179
|
+
* @returns - Numeral em formato de string formatado apenas com separador decimal.
|
|
180
|
+
* @example
|
|
181
|
+
* Informado: '95.12' | Retorna: '9512'
|
|
182
|
+
*/
|
|
183
|
+
NumberUtils.keepOnlyDecimalSeparator = (value, formatnumber = 'pt-BR') => {
|
|
184
|
+
//Formatting formatnumber to be able to get lowercases
|
|
185
|
+
formatnumber = formatnumber.toUpperCase();
|
|
186
|
+
//Formatting value following formatnumber parameter
|
|
187
|
+
//keep only decimal character in order to correct format the string
|
|
188
|
+
//This transformation is due the "stringtoNumber" method is a general method that tries to convert all formated strings
|
|
189
|
+
if (formatnumber === 'EN-US') {
|
|
190
|
+
value = value.replace(/\,/g, '');
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
value = value.replace(/\./g, '');
|
|
194
|
+
}
|
|
195
|
+
return value;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Troca o formato do numeral(string) de "PT-BR" para "EN-US" e vice-versa.
|
|
199
|
+
*
|
|
200
|
+
* @param value - Numeral em formato de string a ser convertido.
|
|
201
|
+
*
|
|
202
|
+
* @returns - Numeral em formato de string formatado de "PT-BR" para "EN-US" e vice-versa.
|
|
203
|
+
* @example
|
|
204
|
+
* Informo: "15,55" | Obtenho: "15.55"
|
|
205
|
+
* @example
|
|
206
|
+
* Informo: "27.99" | Obtenho: "27,99"
|
|
207
|
+
*/
|
|
208
|
+
NumberUtils.changeFormat = (value) => {
|
|
209
|
+
//Formatting output following formatnumber
|
|
210
|
+
return value.replace(/\./g, '_').replace(/\,/g, '.').replace(/\_/g, ',');
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Obtém o valor ou o valor padrão, caso o valor seja inválido(NaN/undefined).
|
|
214
|
+
*
|
|
215
|
+
* @param value - Valor a ser validado.
|
|
216
|
+
* @param defaultValue - Valor padrão a ser retornado caso o value seja inválido.
|
|
217
|
+
*
|
|
218
|
+
* @returns - O próprio numeral passado ou zero.
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* Informo: value: 30, defaultValue: 0 | Obtenho: 30
|
|
222
|
+
* @example
|
|
223
|
+
* Informo: value: "30", defaultValue: 0 | Obtenho: 30
|
|
224
|
+
* @example
|
|
225
|
+
* Informo: value: "30abc", defaultValue: 0 | Obtenho: 0
|
|
226
|
+
*/
|
|
227
|
+
NumberUtils.getValueOrDefault = (value, defaultValue) => {
|
|
228
|
+
value = StringUtils.isEmpty(value) ? undefined : value;
|
|
229
|
+
value = Number(value);
|
|
230
|
+
if (isNaN(value)) {
|
|
231
|
+
return Number(defaultValue);
|
|
232
|
+
}
|
|
233
|
+
return value;
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Obtém o valor ou zero, caso o valor seja inválido(NaN/undefined).
|
|
237
|
+
*
|
|
238
|
+
* @param value - Numeral a ser validado.
|
|
239
|
+
*
|
|
240
|
+
* @returns - O próprio numeral passado. Caso esse seja inválido retorna zero.
|
|
241
|
+
*/
|
|
242
|
+
NumberUtils.getValueOrZero = (value) => {
|
|
243
|
+
return NumberUtils.getValueOrDefault(value, 0);
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=NumberUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberUtils.js","sourceRoot":"","sources":["../../src/utils/NumberUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ObjectUtils`: Utilizado para manipulação de objetos.
|
|
3
|
+
*/
|
|
4
|
+
export default class ObjectUtils {
|
|
5
|
+
/**
|
|
6
|
+
* Faz a cópia do objeto.
|
|
7
|
+
*
|
|
8
|
+
* @param data - Objeto a ser copiado.
|
|
9
|
+
* @returns - A cópia do objeto válido.
|
|
10
|
+
*/
|
|
11
|
+
static copy<T>(data: Object | Array<Object>): T;
|
|
12
|
+
/**
|
|
13
|
+
* Converte um objeto em string/JSON.
|
|
14
|
+
*
|
|
15
|
+
* @param data - Objeto a ser convertido.
|
|
16
|
+
* @returns - Uma string JSON.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* @Informado: ```{nome : "Sankhya", cidade: "Uberlandia"}``` | Obtenho: ```"{"nome" : "Sankhya", "cidade":"Uberlandia"}"```
|
|
20
|
+
*/
|
|
21
|
+
static objectToString(data: Object | Array<Object>): string;
|
|
22
|
+
/**
|
|
23
|
+
* Converte uma string/JSON em objeto.
|
|
24
|
+
*
|
|
25
|
+
* @param data - String a ser convertida.
|
|
26
|
+
* @returns - Um objeto válido.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* Informado: ```"{"nome" : "Sankhya", "cidade":"Uberlandia"}"``` | Obtenho: ```{nome : "Sankhya", cidade: "Uberlandia"}```
|
|
30
|
+
*/
|
|
31
|
+
static stringToObject(data: string): Object | Array<Object>;
|
|
32
|
+
/**
|
|
33
|
+
* Faz a ordenação de um objeto por uma propriedade.
|
|
34
|
+
*
|
|
35
|
+
* @param data - Objeto a ser ordenado.
|
|
36
|
+
* @param property - Nome da propriedade a ser ordenada.
|
|
37
|
+
* @returns - O objeto ordenado pela propriedade.
|
|
38
|
+
*/
|
|
39
|
+
static sortByProperty(data: any, property: string): any;
|
|
40
|
+
/**
|
|
41
|
+
* Remove atributos nulos e indefinidos de um objeto.
|
|
42
|
+
*
|
|
43
|
+
* @param data - Objeto a ser filtrado.
|
|
44
|
+
* @returns - O objeto com as propriedades válidas.
|
|
45
|
+
*/
|
|
46
|
+
static removeEmptyValues(obj: object): object;
|
|
47
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ObjectUtils`: Utilizado para manipulação de objetos.
|
|
3
|
+
*/
|
|
4
|
+
export default class ObjectUtils {
|
|
5
|
+
/**
|
|
6
|
+
* Faz a cópia do objeto.
|
|
7
|
+
*
|
|
8
|
+
* @param data - Objeto a ser copiado.
|
|
9
|
+
* @returns - A cópia do objeto válido.
|
|
10
|
+
*/
|
|
11
|
+
static copy(data) {
|
|
12
|
+
return this.stringToObject(this.objectToString(data));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Converte um objeto em string/JSON.
|
|
16
|
+
*
|
|
17
|
+
* @param data - Objeto a ser convertido.
|
|
18
|
+
* @returns - Uma string JSON.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* @Informado: ```{nome : "Sankhya", cidade: "Uberlandia"}``` | Obtenho: ```"{"nome" : "Sankhya", "cidade":"Uberlandia"}"```
|
|
22
|
+
*/
|
|
23
|
+
static objectToString(data) {
|
|
24
|
+
return JSON.stringify(data);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Converte uma string/JSON em objeto.
|
|
28
|
+
*
|
|
29
|
+
* @param data - String a ser convertida.
|
|
30
|
+
* @returns - Um objeto válido.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* Informado: ```"{"nome" : "Sankhya", "cidade":"Uberlandia"}"``` | Obtenho: ```{nome : "Sankhya", cidade: "Uberlandia"}```
|
|
34
|
+
*/
|
|
35
|
+
static stringToObject(data) {
|
|
36
|
+
return JSON.parse(data);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Faz a ordenação de um objeto por uma propriedade.
|
|
40
|
+
*
|
|
41
|
+
* @param data - Objeto a ser ordenado.
|
|
42
|
+
* @param property - Nome da propriedade a ser ordenada.
|
|
43
|
+
* @returns - O objeto ordenado pela propriedade.
|
|
44
|
+
*/
|
|
45
|
+
static sortByProperty(data, property) {
|
|
46
|
+
return Object.keys(data)
|
|
47
|
+
.sort(function (keyA, keyB) {
|
|
48
|
+
const x = data[keyA][property];
|
|
49
|
+
const y = data[keyB][property];
|
|
50
|
+
return x < y ? -1 : x > y ? 1 : 0;
|
|
51
|
+
}).reduce((obj, key) => {
|
|
52
|
+
obj[key] = data[key];
|
|
53
|
+
return obj;
|
|
54
|
+
}, {});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Remove atributos nulos e indefinidos de um objeto.
|
|
58
|
+
*
|
|
59
|
+
* @param data - Objeto a ser filtrado.
|
|
60
|
+
* @returns - O objeto com as propriedades válidas.
|
|
61
|
+
*/
|
|
62
|
+
static removeEmptyValues(obj) {
|
|
63
|
+
return Object.fromEntries(Object.entries(obj)
|
|
64
|
+
.filter(([, v]) => v != null)
|
|
65
|
+
.map(([k, v]) => [k, v === Object(v) ? ObjectUtils.removeEmptyValues(v) : v]));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ObjectUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectUtils.js","sourceRoot":"","sources":["../../src/utils/ObjectUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAG5B;;;;;OAKG;IACI,MAAM,CAAC,IAAI,CAAI,IAA2B;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAM,CAAC;IAC/D,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,cAAc,CAAC,IAA2B;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,cAAc,CAAC,IAAW;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,IAAS,EAAE,QAAgB;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACrB,IAAI,CAAC,UAAS,IAAY,EAAE,IAAY;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;YAClC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAAC,GAAW;QACzC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;IAEJ,CAAC;CACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class OnboardingUtils {
|
|
2
|
+
private static readonly USER_GUIDE_TAG_ID;
|
|
3
|
+
private static instance;
|
|
4
|
+
private constructor();
|
|
5
|
+
static getInstance(): OnboardingUtils;
|
|
6
|
+
init(apiKey: string, ctx: EnvironmentContext): Promise<void>;
|
|
7
|
+
private injectScript;
|
|
8
|
+
private register;
|
|
9
|
+
}
|
|
10
|
+
export declare class EnvironmentContext {
|
|
11
|
+
userID: string;
|
|
12
|
+
userName: string;
|
|
13
|
+
partnerName: string;
|
|
14
|
+
sysVersion: string;
|
|
15
|
+
environment: string;
|
|
16
|
+
clientGaId: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class OnboardingUtils {
|
|
2
|
+
constructor() { }
|
|
3
|
+
static getInstance() {
|
|
4
|
+
if (this.instance == null) {
|
|
5
|
+
this.instance = new OnboardingUtils();
|
|
6
|
+
}
|
|
7
|
+
return this.instance;
|
|
8
|
+
}
|
|
9
|
+
init(apiKey, ctx) {
|
|
10
|
+
if (!apiKey) {
|
|
11
|
+
return Promise.resolve();
|
|
12
|
+
}
|
|
13
|
+
this.injectScript(apiKey);
|
|
14
|
+
this.register(ctx);
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
injectScript(apiKey) {
|
|
18
|
+
if (window.document.head.querySelector(`script#${OnboardingUtils.USER_GUIDE_TAG_ID}`)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const scriptEl = document.createElement('script');
|
|
22
|
+
scriptEl.setAttribute("id", OnboardingUtils.USER_GUIDE_TAG_ID);
|
|
23
|
+
scriptEl.innerText = `(function(g,u,i,d,e,s){g[e]=g[e]||[];var f=u.getElementsByTagName(i)[0];var k=u.createElement(i);k.async=true;k.src='https://static.userguiding.com/media/user-guiding-'+s+'-embedded.js';f.parentNode.insertBefore(k,f);if(g[d])return;var ug=g[d]={q:[]};ug.c=function(n){return function(){ug.q.push([n,arguments])};};var m=['previewGuide','finishPreview','track','identify','hideChecklist','launchChecklist'];for(var j=0;j<m.length;j+=1){ug[m[j]]=ug.c(m[j]);}})(window,document,'script','userGuiding','userGuidingLayer','${apiKey}');`;
|
|
24
|
+
window.document.head.appendChild(scriptEl);
|
|
25
|
+
}
|
|
26
|
+
register(ctx) {
|
|
27
|
+
window.userGuiding.identify(`${ctx.userID}-${ctx.userName}-${ctx.clientGaId}`, ctx);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
OnboardingUtils.USER_GUIDE_TAG_ID = "userGuideSnippet";
|
|
31
|
+
export class EnvironmentContext {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.userID = "";
|
|
34
|
+
this.userName = "";
|
|
35
|
+
this.partnerName = "";
|
|
36
|
+
this.sysVersion = "";
|
|
37
|
+
this.environment = "";
|
|
38
|
+
this.clientGaId = "";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=OnboardingUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnboardingUtils.js","sourceRoot":"","sources":["../../src/utils/OnboardingUtils.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IAIxB,gBAAsB,CAAC;IAEhB,MAAM,CAAC,WAAW;QACrB,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,MAAc,EAAE,GAAuB;QAC/C,IAAG,CAAC,MAAM,EAAC;YACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,YAAY,CAAC,MAAc;QAC/B,IAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,eAAe,CAAC,iBAAiB,EAAE,CAAC,EAAC;YACjF,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC/D,QAAQ,CAAC,SAAS,GAAG,ygBAAygB,MAAM,KAAK,CAAC;QAC1iB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEO,QAAQ,CAAC,GAAuB;QACnC,MAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;IACjG,CAAC;;AAlCuB,iCAAiB,GAAG,kBAAkB,CAAC;AAqCnE,MAAM,OAAO,kBAAkB;IAA/B;QACK,WAAM,GAAW,EAAE,CAAC;QACpB,aAAQ,GAAW,EAAE,CAAC;QACtB,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAW,EAAE,CAAC;QACxB,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAW,EAAE,CAAC;IAC7B,CAAC;CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ReadyUtil`: Registra processos que serão invocados após a conclusão de operações.
|
|
3
|
+
*/
|
|
4
|
+
export default class ReadyUtil {
|
|
5
|
+
private resolve;
|
|
6
|
+
private promise;
|
|
7
|
+
/**
|
|
8
|
+
* Limpa o estado da instancia ao finalizar a execução do processo registrado.
|
|
9
|
+
*/
|
|
10
|
+
private clean;
|
|
11
|
+
/**
|
|
12
|
+
* Inicializa o estado da instancia ao registrar processo.
|
|
13
|
+
*/
|
|
14
|
+
private start;
|
|
15
|
+
/**
|
|
16
|
+
* Executa processo atribuído.
|
|
17
|
+
*/
|
|
18
|
+
end(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Atribui processo que será executado por operações que o invocarem no método 'end'.
|
|
21
|
+
* @returns Promise que deve conter o código do processo.
|
|
22
|
+
*/
|
|
23
|
+
whenReady(): Promise<unknown>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ReadyUtil`: Registra processos que serão invocados após a conclusão de operações.
|
|
3
|
+
*/
|
|
4
|
+
export default class ReadyUtil {
|
|
5
|
+
/**
|
|
6
|
+
* Limpa o estado da instancia ao finalizar a execução do processo registrado.
|
|
7
|
+
*/
|
|
8
|
+
clean() {
|
|
9
|
+
this.resolve = undefined;
|
|
10
|
+
this.promise = undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Inicializa o estado da instancia ao registrar processo.
|
|
14
|
+
*/
|
|
15
|
+
start() {
|
|
16
|
+
if (!this.promise)
|
|
17
|
+
this.promise = new Promise((accept) => {
|
|
18
|
+
this.resolve = () => accept(true);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Executa processo atribuído.
|
|
23
|
+
*/
|
|
24
|
+
end() {
|
|
25
|
+
this.resolve && this.resolve();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Atribui processo que será executado por operações que o invocarem no método 'end'.
|
|
29
|
+
* @returns Promise que deve conter o código do processo.
|
|
30
|
+
*/
|
|
31
|
+
whenReady() {
|
|
32
|
+
this.start();
|
|
33
|
+
return new Promise((accept) => {
|
|
34
|
+
this.promise.then(() => {
|
|
35
|
+
accept(true);
|
|
36
|
+
this.clean();
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ReadyUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadyUtil.js","sourceRoot":"","sources":["../../src/utils/ReadyUtil.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAI1B;;OAEG;IACK,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,KAAK;QACT,IAAG,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACpD,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,GAAG;QACC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|