@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,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DateUtils`: Utilizado para formatação, padronização e cálculos de datas.
|
|
3
|
+
*/
|
|
4
|
+
export default class DateUtils {
|
|
5
|
+
/**
|
|
6
|
+
* Zerar o horário de uma data.
|
|
7
|
+
*
|
|
8
|
+
* @param date - Data a ser manipulada.
|
|
9
|
+
* @param adjustDayLightSavingTime - Ajusta horário de verão na data recebida.
|
|
10
|
+
* @returns - Data sem as informações de horário.
|
|
11
|
+
* @example
|
|
12
|
+
* Informo: 2023-03-09 12:42:40 | Obtenho: 2023-03-09 00:00:00
|
|
13
|
+
*/
|
|
14
|
+
static clearTime(date, adjustDayLightSavingTime = true) {
|
|
15
|
+
const newDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);
|
|
16
|
+
return adjustDayLightSavingTime ? DateUtils.adjustDLST(newDate) : newDate;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Converte data para uma string no formato pt-BR.
|
|
20
|
+
*
|
|
21
|
+
* @param date - Data a ser convertida.
|
|
22
|
+
* @param options - Opções de formatação da data.
|
|
23
|
+
* @returns - Uma string com a data no formato pt-BR DD/MM/YYYY.
|
|
24
|
+
*/
|
|
25
|
+
static formatDate(date, options) {
|
|
26
|
+
return date ? new Intl.DateTimeFormat("pt-BR", options !== null && options !== void 0 ? options : {}).format(date) : "";
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Converte as horas de uma data para uma string pt-BR.
|
|
30
|
+
*
|
|
31
|
+
* @param date - Data a ser convertida.
|
|
32
|
+
* @param showSeconds - define se devemos considerar os segundos.
|
|
33
|
+
* @returns - Uma string com as horas no formato HH:MM ou HH:MM:SS.
|
|
34
|
+
*/
|
|
35
|
+
static formatTime(date, showSeconds = false) {
|
|
36
|
+
const timeOptions = { hour: "2-digit", minute: "2-digit", second: showSeconds ? "2-digit" : undefined };
|
|
37
|
+
return new Intl.DateTimeFormat("pt-BR", timeOptions).format(date);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Converte a data e hora para uma string no formato pt-BR.
|
|
41
|
+
*
|
|
42
|
+
* @param date - Data a ser convertida.
|
|
43
|
+
* @param showSeconds - define se devemos considerar os segundos.
|
|
44
|
+
* @returns - Uma string com as horas no formato DD/MM/YYYY HH:MM ou DD/MM/YYYY HH:MM:SS.
|
|
45
|
+
*/
|
|
46
|
+
static formatDateTime(date, showSeconds = false) {
|
|
47
|
+
return `${DateUtils.formatDate(date)} ${DateUtils.formatTime(date, showSeconds)}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Converte String para Date.
|
|
51
|
+
*
|
|
52
|
+
* @param strValue - Texto a ser convertido para data.
|
|
53
|
+
* @param adjustDayLightSavingTime - Se verdadeiro, ativa regra de horário de verão.
|
|
54
|
+
* @param monthYearMode - Quando ativado, retorna o primeiro dia do mês apenas para construir a data.
|
|
55
|
+
* @returns - Data sem as informações de horário.
|
|
56
|
+
*/
|
|
57
|
+
static strToDate(strValue, adjustDayLightSavingTime = true, monthYearMode = false) {
|
|
58
|
+
/** monthYearMode é um booleano para usar o formato MM/YYYY.
|
|
59
|
+
* Quando ativado, é retornado o primeiro dia do mês apenas para construir a data.
|
|
60
|
+
* Não há necessidade de verificar o horário de verão quando utilizado esse modo. */
|
|
61
|
+
let parts;
|
|
62
|
+
if (monthYearMode) {
|
|
63
|
+
parts = /^(1[0-2]|0[1-9]|[1-9])[^\d]?(\d{2}|\d{4})(?:\s(\d{1,2}):(\d{1,2}):?(\d{0,2}))?$/.exec(strValue);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
parts = /^(3[01]|[1-2]\d|0[1-9]|[1-9])[^\d]?(1[0-2]|0[1-9]|[1-9])[^\d]?(\d{2}|\d{4})(?:\s(\d{1,2}):(\d{1,2}):?(\d{0,2}))?$/.exec(strValue);
|
|
67
|
+
}
|
|
68
|
+
if (!parts) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const day = monthYearMode ? 1 : Number(parts[1]);
|
|
72
|
+
const month = Number(parts[(monthYearMode ? 1 : 2)]);
|
|
73
|
+
let year = Number(parts[(monthYearMode ? 2 : 3)]);
|
|
74
|
+
const hour = Number(parts[(monthYearMode ? 3 : 4)] || 0);
|
|
75
|
+
const min = Number(parts[(monthYearMode ? 4 : 5)] || 0);
|
|
76
|
+
const sec = Number(parts[(monthYearMode ? 5 : 6)] || 0);
|
|
77
|
+
if (year < 100) {
|
|
78
|
+
year += year < 30 ? 2000 : 1900;
|
|
79
|
+
}
|
|
80
|
+
let date = new Date(year, month - 1, day, hour, min, sec, 0);
|
|
81
|
+
if (adjustDayLightSavingTime === true && !monthYearMode && hour == 0) {
|
|
82
|
+
date = DateUtils.adjustDLST(date);
|
|
83
|
+
}
|
|
84
|
+
return date;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Obtém a data atual.
|
|
88
|
+
*
|
|
89
|
+
* @param withTime - Caso true retorna a data com informações de horário.
|
|
90
|
+
* @returns - Data atual sem informação de horário.
|
|
91
|
+
*/
|
|
92
|
+
static getToday(withTime = false) {
|
|
93
|
+
const today = new Date();
|
|
94
|
+
if (withTime) {
|
|
95
|
+
return today;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
return DateUtils.clearTime(today);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Retorna se a data é válida.
|
|
103
|
+
*
|
|
104
|
+
* @param value - Data a ser validada.
|
|
105
|
+
* @param hasTime - Determina se a data retornada deve conter informação de horário ou não. Por padrão não retorna a hora.
|
|
106
|
+
* @returns - Caso válida, retorna a própria data.
|
|
107
|
+
*/
|
|
108
|
+
static validateDate(value, hasTime = false) {
|
|
109
|
+
return value instanceof Date && !isNaN(value.valueOf())
|
|
110
|
+
? hasTime ? value : DateUtils.clearTime(value)
|
|
111
|
+
: undefined;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Realiza correção do horário de verão.
|
|
115
|
+
*
|
|
116
|
+
* @param date - Data a ser ajustada.
|
|
117
|
+
* @returns - Data informada ajustada para horário de verão.
|
|
118
|
+
*/
|
|
119
|
+
static adjustDLST(date) {
|
|
120
|
+
if (date.getHours() == 23) {
|
|
121
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1, 1, 0, 0, 0);
|
|
122
|
+
}
|
|
123
|
+
return date;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Adiciona uma casa decimal a esquerda de uma unidade.
|
|
127
|
+
*
|
|
128
|
+
* @param n - Número a ser ajustado
|
|
129
|
+
* @returns - O número informado, com uma casa decimal a esquerda.
|
|
130
|
+
* @example
|
|
131
|
+
* Informo: 15 | Obtenho: 15
|
|
132
|
+
* @example
|
|
133
|
+
* Informo: 2 | Obtenho: "02"
|
|
134
|
+
*/
|
|
135
|
+
static pad(n) {
|
|
136
|
+
return n < 10 ? "0" + n : n;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Retorna timezone da data.
|
|
140
|
+
*
|
|
141
|
+
* @param offset - Valor do timezone desejado.
|
|
142
|
+
* @returns Timezone da data.
|
|
143
|
+
*/
|
|
144
|
+
static timezoneOffset(offset) {
|
|
145
|
+
let sign;
|
|
146
|
+
if (offset === 0) {
|
|
147
|
+
return "Z";
|
|
148
|
+
}
|
|
149
|
+
sign = (offset > 0) ? "-" : "+";
|
|
150
|
+
offset = Math.abs(offset);
|
|
151
|
+
return sign + this.pad(Math.floor(offset / 60)) + ":" + this.pad(offset % 60);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Converte a data para o formato RFC3339.
|
|
155
|
+
*
|
|
156
|
+
* @param date - Data a ser convertida
|
|
157
|
+
* @returns - Data informada no formato RFC3339.
|
|
158
|
+
* * @example
|
|
159
|
+
* Informo: 2023-03-09 12:42:40 | Obtenho: 2023-03-09T12:42:47-03:00
|
|
160
|
+
*/
|
|
161
|
+
static formatRfc3339(date) {
|
|
162
|
+
return date.getFullYear() + "-" +
|
|
163
|
+
this.pad(date.getMonth() + 1) + "-" +
|
|
164
|
+
this.pad(date.getDate()) + "T" +
|
|
165
|
+
this.pad(date.getHours()) + ":" +
|
|
166
|
+
this.pad(date.getMinutes()) + ":" +
|
|
167
|
+
this.pad(date.getSeconds()) +
|
|
168
|
+
this.timezoneOffset(date.getTimezoneOffset());
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=DateUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateUtils.js","sourceRoot":"","sources":["../../src/utils/DateUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import DataUnit from "../dataunit/DataUnit.js";
|
|
2
|
+
export interface IElementIDInfo {
|
|
3
|
+
id?: string;
|
|
4
|
+
dataUnit?: DataUnit;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `ElementIDUtils`: O ElementIDUtils é um utilitário responsável por criar e adicionar identificadores únicos aos componentes através do atributo data-element-id.
|
|
8
|
+
* A finalidade dele é otimizar a automação dos testes e melhorar a eficiência na manipulação dos componentes do Design System, garantindo seleções precisas e seguras.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ElementIDUtils {
|
|
11
|
+
static DATA_ELEMENT_ID_ATTRIBUTE_NAME: string;
|
|
12
|
+
static INTERNAL_INPUT_NAME: string;
|
|
13
|
+
private static REGEX_DATAUNIT_NAME;
|
|
14
|
+
/**
|
|
15
|
+
* Cria e adiciona a propriedade `data-element-id` em um elemento.
|
|
16
|
+
*
|
|
17
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
18
|
+
* @param suffix - Sufixo/Texto para ser adicionado.
|
|
19
|
+
* @param iDInfo - ID para ser adicionado.
|
|
20
|
+
* @returns - O data-element-id gerado.
|
|
21
|
+
*/
|
|
22
|
+
static addIDInfo(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string;
|
|
23
|
+
static addIDInfoIfNotExists(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string;
|
|
24
|
+
static getInternalIDInfo(sufix: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Obtém o `data-element-id` do elemento com adição do sufixo e ID.
|
|
27
|
+
*
|
|
28
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
29
|
+
* @param suffix - Sufixo/Texto para ser adicionado.
|
|
30
|
+
* @param iDInfo - ID para ser adicionado.
|
|
31
|
+
* @returns - Atributo `data-element-id` do elemento modificado com sufixo e/ou ID.
|
|
32
|
+
*/
|
|
33
|
+
private static getDataElementID;
|
|
34
|
+
/**
|
|
35
|
+
* Obtém ID válido para o elemento.
|
|
36
|
+
*
|
|
37
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
38
|
+
* @param iDInfo - ID para ser adicionado.
|
|
39
|
+
* @returns - ID para ser adicionado ao elemento conforme ordem de prioridade.
|
|
40
|
+
*/
|
|
41
|
+
private static getAttributeValid;
|
|
42
|
+
/**
|
|
43
|
+
* Adiciona sufixo ao atributo `data-element-id` de um elemento, utilizado para montar a hierarquia dos ids dos componentes em tela.
|
|
44
|
+
*
|
|
45
|
+
* @param dataElementID - ID para ser adicionado ao `data-element-id`.
|
|
46
|
+
* @param suffix - Sufixo/Texto para ser adicionado ao `data-element-id`.
|
|
47
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
48
|
+
* @returns - `data-element-id` com sufixo.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* Um ez-combo-box tem data-element-id = codparc_input_embedded_combo.
|
|
52
|
+
* Dentro desse ez-combo-box existe um ez-text-input. O data-element-id teria como sufixo o id 'codparc_input_embedded_combo' referente ao seu pai.
|
|
53
|
+
*/
|
|
54
|
+
private static addSuffix;
|
|
55
|
+
/**
|
|
56
|
+
* Adiciona a propriedade name do DataUnit como prefixo do data-element-id do elemento.
|
|
57
|
+
*
|
|
58
|
+
* @param iDInfo - ID para ser adicionado ao `data-element-id`.
|
|
59
|
+
* @param dataElementID - Sufixo/Texto para ser adicionado ao `data-element-id`.
|
|
60
|
+
* @returns - String contendo informação para ser usada no `data-element-id` do elemento.
|
|
61
|
+
*/
|
|
62
|
+
private static addPrefix;
|
|
63
|
+
/**
|
|
64
|
+
* Remove caracteres especiais.
|
|
65
|
+
*
|
|
66
|
+
* @param value - Texto que terá os caracteres especiais removidos.
|
|
67
|
+
* @returns - Retorna a string sem caracteres especiais e em camelCase.
|
|
68
|
+
*/
|
|
69
|
+
private static formatDescription;
|
|
70
|
+
private static getDataElementIDAttribute;
|
|
71
|
+
private static parseDataUnitName;
|
|
72
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { StringUtils } from "./StringUtils.js";
|
|
2
|
+
/**
|
|
3
|
+
* `ElementIDUtils`: O ElementIDUtils é um utilitário responsável por criar e adicionar identificadores únicos aos componentes através do atributo data-element-id.
|
|
4
|
+
* A finalidade dele é otimizar a automação dos testes e melhorar a eficiência na manipulação dos componentes do Design System, garantindo seleções precisas e seguras.
|
|
5
|
+
*/
|
|
6
|
+
export class ElementIDUtils {
|
|
7
|
+
/**
|
|
8
|
+
* Cria e adiciona a propriedade `data-element-id` em um elemento.
|
|
9
|
+
*
|
|
10
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
11
|
+
* @param suffix - Sufixo/Texto para ser adicionado.
|
|
12
|
+
* @param iDInfo - ID para ser adicionado.
|
|
13
|
+
* @returns - O data-element-id gerado.
|
|
14
|
+
*/
|
|
15
|
+
static addIDInfo(element, suffix, iDInfo) {
|
|
16
|
+
try {
|
|
17
|
+
let dataElementID = this.getDataElementID(element, suffix, iDInfo);
|
|
18
|
+
dataElementID = StringUtils.replaceAccentuatedChars(dataElementID, false);
|
|
19
|
+
dataElementID = this.addPrefix(iDInfo, dataElementID);
|
|
20
|
+
element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, dataElementID);
|
|
21
|
+
return dataElementID;
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
console.warn(`Erro ao gerar data-element-id: ${element.tagName}`, e);
|
|
25
|
+
}
|
|
26
|
+
return "";
|
|
27
|
+
}
|
|
28
|
+
static addIDInfoIfNotExists(element, suffix, iDInfo) {
|
|
29
|
+
try {
|
|
30
|
+
let dataElementID = element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
|
|
31
|
+
if (dataElementID == undefined) {
|
|
32
|
+
dataElementID = ElementIDUtils.addIDInfo(element, suffix, iDInfo);
|
|
33
|
+
}
|
|
34
|
+
return dataElementID;
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.warn(`Erro ao gerar data-element-id: ${element.tagName}`, e);
|
|
38
|
+
}
|
|
39
|
+
return "";
|
|
40
|
+
}
|
|
41
|
+
static getInternalIDInfo(sufix) {
|
|
42
|
+
return `${ElementIDUtils.INTERNAL_INPUT_NAME}_${sufix}`;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Obtém o `data-element-id` do elemento com adição do sufixo e ID.
|
|
46
|
+
*
|
|
47
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
48
|
+
* @param suffix - Sufixo/Texto para ser adicionado.
|
|
49
|
+
* @param iDInfo - ID para ser adicionado.
|
|
50
|
+
* @returns - Atributo `data-element-id` do elemento modificado com sufixo e/ou ID.
|
|
51
|
+
*/
|
|
52
|
+
static getDataElementID(element, suffix, iDInfo) {
|
|
53
|
+
let dataElementID = ElementIDUtils.getDataElementIDAttribute(element);
|
|
54
|
+
if (dataElementID != null) {
|
|
55
|
+
return this.addSuffix(StringUtils.toCamelCase(dataElementID), suffix, element);
|
|
56
|
+
}
|
|
57
|
+
const validAttribute = this.getAttributeValid(element, iDInfo);
|
|
58
|
+
if (validAttribute)
|
|
59
|
+
return this.addSuffix(validAttribute, suffix, element);
|
|
60
|
+
if (suffix)
|
|
61
|
+
return String(suffix);
|
|
62
|
+
let tagName = StringUtils.toCamelCase(element.tagName);
|
|
63
|
+
element.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, tagName);
|
|
64
|
+
return tagName;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Obtém ID válido para o elemento.
|
|
68
|
+
*
|
|
69
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
70
|
+
* @param iDInfo - ID para ser adicionado.
|
|
71
|
+
* @returns - ID para ser adicionado ao elemento conforme ordem de prioridade.
|
|
72
|
+
*/
|
|
73
|
+
static getAttributeValid(element, iDInfo) {
|
|
74
|
+
if (iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.id) {
|
|
75
|
+
return this.formatDescription(iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.id);
|
|
76
|
+
}
|
|
77
|
+
if (element.hasAttribute("data-field-name")) {
|
|
78
|
+
return StringUtils.toCamelCase(element.getAttribute("data-field-name"));
|
|
79
|
+
}
|
|
80
|
+
if (element === null || element === void 0 ? void 0 : element.id) {
|
|
81
|
+
return StringUtils.toCamelCase(element === null || element === void 0 ? void 0 : element.id);
|
|
82
|
+
}
|
|
83
|
+
if (element.hasAttribute("name")) {
|
|
84
|
+
return this.formatDescription(element.getAttribute("name"));
|
|
85
|
+
}
|
|
86
|
+
if (element.hasAttribute("label")) {
|
|
87
|
+
return this.formatDescription(element.getAttribute("label"));
|
|
88
|
+
}
|
|
89
|
+
if (element.hasAttribute("title")) {
|
|
90
|
+
return this.formatDescription(element.getAttribute("title"));
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Adiciona sufixo ao atributo `data-element-id` de um elemento, utilizado para montar a hierarquia dos ids dos componentes em tela.
|
|
96
|
+
*
|
|
97
|
+
* @param dataElementID - ID para ser adicionado ao `data-element-id`.
|
|
98
|
+
* @param suffix - Sufixo/Texto para ser adicionado ao `data-element-id`.
|
|
99
|
+
* @param element - Elemento HTML a ser modificado (HTMLElement).
|
|
100
|
+
* @returns - `data-element-id` com sufixo.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* Um ez-combo-box tem data-element-id = codparc_input_embedded_combo.
|
|
104
|
+
* Dentro desse ez-combo-box existe um ez-text-input. O data-element-id teria como sufixo o id 'codparc_input_embedded_combo' referente ao seu pai.
|
|
105
|
+
*/
|
|
106
|
+
static addSuffix(dataElementID, suffix, element) {
|
|
107
|
+
if (suffix) {
|
|
108
|
+
return `${dataElementID}_${StringUtils.toCamelCase(suffix)}`;
|
|
109
|
+
}
|
|
110
|
+
if (StringUtils.isEmpty(dataElementID)) {
|
|
111
|
+
return `${StringUtils.toCamelCase(element.tagName)}`;
|
|
112
|
+
}
|
|
113
|
+
return `${dataElementID}_${StringUtils.toCamelCase(element.tagName)}`;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Adiciona a propriedade name do DataUnit como prefixo do data-element-id do elemento.
|
|
117
|
+
*
|
|
118
|
+
* @param iDInfo - ID para ser adicionado ao `data-element-id`.
|
|
119
|
+
* @param dataElementID - Sufixo/Texto para ser adicionado ao `data-element-id`.
|
|
120
|
+
* @returns - String contendo informação para ser usada no `data-element-id` do elemento.
|
|
121
|
+
*/
|
|
122
|
+
static addPrefix(iDInfo, dataElementID) {
|
|
123
|
+
var _a;
|
|
124
|
+
let dataUnitName = ((_a = iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.dataUnit) === null || _a === void 0 ? void 0 : _a.name) || "";
|
|
125
|
+
dataUnitName = this.parseDataUnitName(dataUnitName);
|
|
126
|
+
if ((iDInfo === null || iDInfo === void 0 ? void 0 : iDInfo.dataUnit) && !(dataElementID === null || dataElementID === void 0 ? void 0 : dataElementID.startsWith(dataUnitName))) {
|
|
127
|
+
dataElementID = `${StringUtils.toCamelCase(dataUnitName)}_${dataElementID}`;
|
|
128
|
+
}
|
|
129
|
+
return dataElementID;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Remove caracteres especiais.
|
|
133
|
+
*
|
|
134
|
+
* @param value - Texto que terá os caracteres especiais removidos.
|
|
135
|
+
* @returns - Retorna a string sem caracteres especiais e em camelCase.
|
|
136
|
+
*/
|
|
137
|
+
static formatDescription(value) {
|
|
138
|
+
if (!value)
|
|
139
|
+
return "";
|
|
140
|
+
value = StringUtils.replaceAccentuatedChars(value, false);
|
|
141
|
+
return StringUtils.toCamelCase((value.replace(/[^\w\sÀ-ÖØ-öø-ÿ]/gi, " ")).replace(/\s+/g, ' ').trim());
|
|
142
|
+
}
|
|
143
|
+
static getDataElementIDAttribute(element) {
|
|
144
|
+
if (element[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] || element.hasAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)) {
|
|
145
|
+
return element[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] || element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
|
|
146
|
+
}
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
static parseDataUnitName(uri) {
|
|
150
|
+
var _a;
|
|
151
|
+
if (StringUtils.isEmpty(uri)) {
|
|
152
|
+
return uri;
|
|
153
|
+
}
|
|
154
|
+
const matcher = this.REGEX_DATAUNIT_NAME.exec(uri);
|
|
155
|
+
return (_a = matcher === null || matcher === void 0 ? void 0 : matcher[1]) !== null && _a !== void 0 ? _a : uri;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME = "data-element-id";
|
|
159
|
+
ElementIDUtils.INTERNAL_INPUT_NAME = "embedded";
|
|
160
|
+
ElementIDUtils.REGEX_DATAUNIT_NAME = /dd:\/\/(.+?)\//;
|
|
161
|
+
//# sourceMappingURL=ElementIDUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementIDUtils.js","sourceRoot":"","sources":["../../src/utils/ElementIDUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classe com utiliários comuns para funções genéricas em JavaScript.
|
|
3
|
+
*/
|
|
4
|
+
export declare class JSUtils {
|
|
5
|
+
/**
|
|
6
|
+
* Método responsável em criar um timer para processar uma determinada função.
|
|
7
|
+
*
|
|
8
|
+
* @param callback - Função de callback para processar após o timer.
|
|
9
|
+
* @param timeout - Valor dos milissegundos desejados para processar a função (o padrão é 300).
|
|
10
|
+
*
|
|
11
|
+
* @returns - Retorna um método com controle de timer para processar a função de callback.
|
|
12
|
+
*/
|
|
13
|
+
static debounce(callback: any, timeout?: number): any;
|
|
14
|
+
/**
|
|
15
|
+
* Método responsável em validar se um elemento HTML está com o ellipsis ativo.
|
|
16
|
+
*
|
|
17
|
+
* @param element - Elemento HTML que será verificado.
|
|
18
|
+
*
|
|
19
|
+
* @returns - Retorna um valor booleando informando se o elemento está com o ellipsis ativo.
|
|
20
|
+
*/
|
|
21
|
+
static isEllipsisActive(element: HTMLElement | any): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Método que verifica se uma string está encodada com base64.
|
|
24
|
+
*
|
|
25
|
+
* @param str - String que será verificada.
|
|
26
|
+
*
|
|
27
|
+
* @returns - Retorna um valor booleando informando se a string está encodada com base64.
|
|
28
|
+
*/
|
|
29
|
+
static isBase64(str: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Método responsável em gerar um UUID.
|
|
32
|
+
*
|
|
33
|
+
* @returns - Retorna um UUID.
|
|
34
|
+
*/
|
|
35
|
+
static generateUUID(): string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { v4 as uuid } from "uuid";
|
|
2
|
+
/**
|
|
3
|
+
* Classe com utiliários comuns para funções genéricas em JavaScript.
|
|
4
|
+
*/
|
|
5
|
+
export class JSUtils {
|
|
6
|
+
/**
|
|
7
|
+
* Método responsável em criar um timer para processar uma determinada função.
|
|
8
|
+
*
|
|
9
|
+
* @param callback - Função de callback para processar após o timer.
|
|
10
|
+
* @param timeout - Valor dos milissegundos desejados para processar a função (o padrão é 300).
|
|
11
|
+
*
|
|
12
|
+
* @returns - Retorna um método com controle de timer para processar a função de callback.
|
|
13
|
+
*/
|
|
14
|
+
static debounce(callback, timeout = 300) {
|
|
15
|
+
let timer;
|
|
16
|
+
return (...args) => {
|
|
17
|
+
clearTimeout(timer);
|
|
18
|
+
timer = setTimeout(() => { callback.apply(this, args); }, timeout);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Método responsável em validar se um elemento HTML está com o ellipsis ativo.
|
|
23
|
+
*
|
|
24
|
+
* @param element - Elemento HTML que será verificado.
|
|
25
|
+
*
|
|
26
|
+
* @returns - Retorna um valor booleando informando se o elemento está com o ellipsis ativo.
|
|
27
|
+
*/
|
|
28
|
+
static isEllipsisActive(element) {
|
|
29
|
+
if (element == undefined) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (element.clientWidth < element.scrollWidth) {
|
|
33
|
+
const style = element.currentStyle || window.getComputedStyle(element);
|
|
34
|
+
return (style === null || style === void 0 ? void 0 : style.textOverflow) === 'ellipsis';
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Método que verifica se uma string está encodada com base64.
|
|
40
|
+
*
|
|
41
|
+
* @param str - String que será verificada.
|
|
42
|
+
*
|
|
43
|
+
* @returns - Retorna um valor booleando informando se a string está encodada com base64.
|
|
44
|
+
*/
|
|
45
|
+
static isBase64(str) {
|
|
46
|
+
str = (str || '').replaceAll("\n", "");
|
|
47
|
+
if (str === '' || str.trim() === '') {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
return window.btoa(window.atob(str)) == str;
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Método responsável em gerar um UUID.
|
|
59
|
+
*
|
|
60
|
+
* @returns - Retorna um UUID.
|
|
61
|
+
*/
|
|
62
|
+
static generateUUID() {
|
|
63
|
+
return uuid();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=JSUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSUtils.js","sourceRoot":"","sources":["../../src/utils/JSUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAEjC;;GAEG;AACH,MAAM,OAAO,OAAO;IAElB;;;;;;;OAOG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAa,EAAE,UAAkB,GAAG;QACvD,IAAI,KAAU,CAAC;QACf,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAA0B;QACvD,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvE,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,MAAK,UAAU,CAAC;SAC7C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,QAAQ,CAAC,GAAW;QAChC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAC;YAAE,OAAO,KAAK,CAAC;SAAE;QACrD,IAAI;YACA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;SAC/C;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,KAAK,CAAC;SAChB;IACH,CAAC;IAED;;;;MAIE;IACK,MAAM,CAAC,YAAY;QACxB,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF"}
|