@sankhyalabs/core 0.0.0-hotfix-ga-KB-4098

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.
Files changed (276) hide show
  1. package/.docs/.nojekyll +1 -0
  2. package/.docs/README.md +63 -0
  3. package/.docs/classes/ApplicationContext.md +90 -0
  4. package/.docs/classes/ArrayUtils.md +99 -0
  5. package/.docs/classes/AuthorizedServiceCaller.md +76 -0
  6. package/.docs/classes/Change.md +190 -0
  7. package/.docs/classes/DataUnit.md +2427 -0
  8. package/.docs/classes/DataUnitAction.md +96 -0
  9. package/.docs/classes/DataUnitStorage.md +116 -0
  10. package/.docs/classes/DateUtils.md +327 -0
  11. package/.docs/classes/ElementIDUtils.md +308 -0
  12. package/.docs/classes/ErrorException.md +214 -0
  13. package/.docs/classes/ErrorTracking.md +62 -0
  14. package/.docs/classes/FloatingManager.md +530 -0
  15. package/.docs/classes/HttpProvider.md +96 -0
  16. package/.docs/classes/JSUtils.md +115 -0
  17. package/.docs/classes/MaskFormatter-1.md +347 -0
  18. package/.docs/classes/NumberUtils.md +335 -0
  19. package/.docs/classes/ObjectUtils.md +160 -0
  20. package/.docs/classes/OnboardingUtils.md +126 -0
  21. package/.docs/classes/PromiseSync.md +91 -0
  22. package/.docs/classes/ReadyUtil.md +115 -0
  23. package/.docs/classes/RequestMetadata.md +84 -0
  24. package/.docs/classes/SelectionInfo.md +168 -0
  25. package/.docs/classes/SkwHttpProvider.md +109 -0
  26. package/.docs/classes/StringUtils.md +562 -0
  27. package/.docs/classes/TimeFormatter.md +98 -0
  28. package/.docs/classes/UserAgentUtils.md +58 -0
  29. package/.docs/classes/VersionUtils.md +42 -0
  30. package/.docs/classes/WaitingChangeException.md +200 -0
  31. package/.docs/classes/WarningException.md +214 -0
  32. package/.docs/enums/Action.md +283 -0
  33. package/.docs/enums/ChangeOperation.md +52 -0
  34. package/.docs/enums/DataType.md +63 -0
  35. package/.docs/enums/DependencyType.md +41 -0
  36. package/.docs/enums/SelectionMode.md +30 -0
  37. package/.docs/enums/SortMode.md +30 -0
  38. package/.docs/enums/UserInterface.md +195 -0
  39. package/.docs/interfaces/ChildDescriptor.md +41 -0
  40. package/.docs/interfaces/ChildLink.md +30 -0
  41. package/.docs/interfaces/DUActionInterceptor.md +29 -0
  42. package/.docs/interfaces/ExecutionContext.md +58 -0
  43. package/.docs/interfaces/FieldDescriptor.md +140 -0
  44. package/.docs/interfaces/Filter.md +41 -0
  45. package/.docs/interfaces/IElementIDInfo.md +30 -0
  46. package/.docs/interfaces/LoadDataRequest.md +101 -0
  47. package/.docs/interfaces/LoadDataResponse.md +36 -0
  48. package/.docs/interfaces/PageRequest.md +41 -0
  49. package/.docs/interfaces/PaginationInfo.md +75 -0
  50. package/.docs/interfaces/PromiseSyncCallback.md +39 -0
  51. package/.docs/interfaces/QuickFilter.md +41 -0
  52. package/.docs/interfaces/Record.md +62 -0
  53. package/.docs/interfaces/SavedRecord.md +85 -0
  54. package/.docs/interfaces/Sort.md +41 -0
  55. package/.docs/interfaces/SortingProvider.md +29 -0
  56. package/.docs/interfaces/UnitMetadata.md +52 -0
  57. package/.docs/interfaces/WaitingChange.md +41 -0
  58. package/.docs/modules/MaskFormatter.md +37 -0
  59. package/.docs/modules.md +73 -0
  60. package/.docs/package.json +15 -0
  61. package/.eslintignore +2 -0
  62. package/.eslintrc.cjs +35 -0
  63. package/.releaserc +58 -0
  64. package/README.md +61 -0
  65. package/dist/async/PromiseSync.d.ts +29 -0
  66. package/dist/async/PromiseSync.js +31 -0
  67. package/dist/async/PromiseSync.js.map +1 -0
  68. package/dist/dataunit/DataUnit.d.ts +922 -0
  69. package/dist/dataunit/DataUnit.js +1602 -0
  70. package/dist/dataunit/DataUnit.js.map +1 -0
  71. package/dist/dataunit/DataUnitStorage.d.ts +24 -0
  72. package/dist/dataunit/DataUnitStorage.js +39 -0
  73. package/dist/dataunit/DataUnitStorage.js.map +1 -0
  74. package/dist/dataunit/formatting/PrettyFormatter.d.ts +2 -0
  75. package/dist/dataunit/formatting/PrettyFormatter.js +88 -0
  76. package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -0
  77. package/dist/dataunit/loading/LoadDataRequest.d.ts +19 -0
  78. package/dist/dataunit/loading/LoadDataRequest.js +2 -0
  79. package/dist/dataunit/loading/LoadDataRequest.js.map +1 -0
  80. package/dist/dataunit/loading/LoadDataResponse.d.ts +9 -0
  81. package/dist/dataunit/loading/LoadDataResponse.js +2 -0
  82. package/dist/dataunit/loading/LoadDataResponse.js.map +1 -0
  83. package/dist/dataunit/loading/PaginationInfo.d.ts +13 -0
  84. package/dist/dataunit/loading/PaginationInfo.js +2 -0
  85. package/dist/dataunit/loading/PaginationInfo.js.map +1 -0
  86. package/dist/dataunit/metadata/DataType.d.ts +54 -0
  87. package/dist/dataunit/metadata/DataType.js +124 -0
  88. package/dist/dataunit/metadata/DataType.js.map +1 -0
  89. package/dist/dataunit/metadata/UnitMetadata.d.ts +88 -0
  90. package/dist/dataunit/metadata/UnitMetadata.js +36 -0
  91. package/dist/dataunit/metadata/UnitMetadata.js.map +1 -0
  92. package/dist/dataunit/state/HistReducer.d.ts +10 -0
  93. package/dist/dataunit/state/HistReducer.js +28 -0
  94. package/dist/dataunit/state/HistReducer.js.map +1 -0
  95. package/dist/dataunit/state/StateManager.d.ts +57 -0
  96. package/dist/dataunit/state/StateManager.js +97 -0
  97. package/dist/dataunit/state/StateManager.js.map +1 -0
  98. package/dist/dataunit/state/action/DataUnitAction.d.ts +39 -0
  99. package/dist/dataunit/state/action/DataUnitAction.js +41 -0
  100. package/dist/dataunit/state/action/DataUnitAction.js.map +1 -0
  101. package/dist/dataunit/state/slice/AddedRecordsSlice.d.ts +12 -0
  102. package/dist/dataunit/state/slice/AddedRecordsSlice.js +30 -0
  103. package/dist/dataunit/state/slice/AddedRecordsSlice.js.map +1 -0
  104. package/dist/dataunit/state/slice/ChangesSlice.d.ts +13 -0
  105. package/dist/dataunit/state/slice/ChangesSlice.js +105 -0
  106. package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -0
  107. package/dist/dataunit/state/slice/InvalidFieldsSlice.d.ts +10 -0
  108. package/dist/dataunit/state/slice/InvalidFieldsSlice.js +66 -0
  109. package/dist/dataunit/state/slice/InvalidFieldsSlice.js.map +1 -0
  110. package/dist/dataunit/state/slice/LoadingControlSlice.d.ts +19 -0
  111. package/dist/dataunit/state/slice/LoadingControlSlice.js +45 -0
  112. package/dist/dataunit/state/slice/LoadingControlSlice.js.map +1 -0
  113. package/dist/dataunit/state/slice/RecordsSlice.d.ts +10 -0
  114. package/dist/dataunit/state/slice/RecordsSlice.js +58 -0
  115. package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -0
  116. package/dist/dataunit/state/slice/RemovedRecordsSlice.d.ts +9 -0
  117. package/dist/dataunit/state/slice/RemovedRecordsSlice.js +25 -0
  118. package/dist/dataunit/state/slice/RemovedRecordsSlice.js.map +1 -0
  119. package/dist/dataunit/state/slice/SelectionSlice.d.ts +19 -0
  120. package/dist/dataunit/state/slice/SelectionSlice.js +155 -0
  121. package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -0
  122. package/dist/dataunit/state/slice/SnapshotSlice.d.ts +18 -0
  123. package/dist/dataunit/state/slice/SnapshotSlice.js +85 -0
  124. package/dist/dataunit/state/slice/SnapshotSlice.js.map +1 -0
  125. package/dist/dataunit/state/slice/UnitMetadataSlice.d.ts +11 -0
  126. package/dist/dataunit/state/slice/UnitMetadataSlice.js +21 -0
  127. package/dist/dataunit/state/slice/UnitMetadataSlice.js.map +1 -0
  128. package/dist/dataunit/state/slice/WaitingChangesSlice.d.ts +12 -0
  129. package/dist/dataunit/state/slice/WaitingChangesSlice.js +56 -0
  130. package/dist/dataunit/state/slice/WaitingChangesSlice.js.map +1 -0
  131. package/dist/exceptions/ErrorException.d.ts +14 -0
  132. package/dist/exceptions/ErrorException.js +13 -0
  133. package/dist/exceptions/ErrorException.js.map +1 -0
  134. package/dist/exceptions/WaitingChangeException.d.ts +12 -0
  135. package/dist/exceptions/WaitingChangeException.js +12 -0
  136. package/dist/exceptions/WaitingChangeException.js.map +1 -0
  137. package/dist/exceptions/WarningException.d.ts +14 -0
  138. package/dist/exceptions/WarningException.js +13 -0
  139. package/dist/exceptions/WarningException.js.map +1 -0
  140. package/dist/http/AuthorizedServiceCaller.d.ts +11 -0
  141. package/dist/http/AuthorizedServiceCaller.js +54 -0
  142. package/dist/http/AuthorizedServiceCaller.js.map +1 -0
  143. package/dist/http/HttpProvider.d.ts +25 -0
  144. package/dist/http/HttpProvider.js +74 -0
  145. package/dist/http/HttpProvider.js.map +1 -0
  146. package/dist/http/RequestMetadata.d.ts +30 -0
  147. package/dist/http/RequestMetadata.js +25 -0
  148. package/dist/http/RequestMetadata.js.map +1 -0
  149. package/dist/http/SkwHttpProvider.d.ts +9 -0
  150. package/dist/http/SkwHttpProvider.js +67 -0
  151. package/dist/http/SkwHttpProvider.js.map +1 -0
  152. package/dist/index.d.ts +33 -0
  153. package/dist/index.js +32 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/traking/ErrorTraking.d.ts +19 -0
  156. package/dist/traking/ErrorTraking.js +34 -0
  157. package/dist/traking/ErrorTraking.js.map +1 -0
  158. package/dist/ui/FloatingManager.d.ts +164 -0
  159. package/dist/ui/FloatingManager.js +358 -0
  160. package/dist/ui/FloatingManager.js.map +1 -0
  161. package/dist/utils/ApplicationContext.d.ts +26 -0
  162. package/dist/utils/ApplicationContext.js +38 -0
  163. package/dist/utils/ApplicationContext.js.map +1 -0
  164. package/dist/utils/ArrayUtils.d.ts +29 -0
  165. package/dist/utils/ArrayUtils.js +57 -0
  166. package/dist/utils/ArrayUtils.js.map +1 -0
  167. package/dist/utils/CriteriaModel.d.ts +107 -0
  168. package/dist/utils/CriteriaModel.js +172 -0
  169. package/dist/utils/CriteriaModel.js.map +1 -0
  170. package/dist/utils/CriteriaParameter.d.ts +69 -0
  171. package/dist/utils/CriteriaParameter.js +83 -0
  172. package/dist/utils/CriteriaParameter.js.map +1 -0
  173. package/dist/utils/DateUtils.d.ts +97 -0
  174. package/dist/utils/DateUtils.js +171 -0
  175. package/dist/utils/DateUtils.js.map +1 -0
  176. package/dist/utils/ElementIDUtils.d.ts +72 -0
  177. package/dist/utils/ElementIDUtils.js +161 -0
  178. package/dist/utils/ElementIDUtils.js.map +1 -0
  179. package/dist/utils/JSUtils.d.ts +36 -0
  180. package/dist/utils/JSUtils.js +66 -0
  181. package/dist/utils/JSUtils.js.map +1 -0
  182. package/dist/utils/MaskFormatter.d.ts +148 -0
  183. package/dist/utils/MaskFormatter.js +356 -0
  184. package/dist/utils/MaskFormatter.js.map +1 -0
  185. package/dist/utils/NumberUtils.d.ts +127 -0
  186. package/dist/utils/NumberUtils.js +245 -0
  187. package/dist/utils/NumberUtils.js.map +1 -0
  188. package/dist/utils/ObjectUtils.d.ts +47 -0
  189. package/dist/utils/ObjectUtils.js +68 -0
  190. package/dist/utils/ObjectUtils.js.map +1 -0
  191. package/dist/utils/OnboardingUtils.d.ts +17 -0
  192. package/dist/utils/OnboardingUtils.js +41 -0
  193. package/dist/utils/OnboardingUtils.js.map +1 -0
  194. package/dist/utils/ReadyUtil.d.ts +24 -0
  195. package/dist/utils/ReadyUtil.js +41 -0
  196. package/dist/utils/ReadyUtil.js.map +1 -0
  197. package/dist/utils/StringUtils.d.ts +167 -0
  198. package/dist/utils/StringUtils.js +328 -0
  199. package/dist/utils/StringUtils.js.map +1 -0
  200. package/dist/utils/TimeFormatter.d.ts +33 -0
  201. package/dist/utils/TimeFormatter.js +98 -0
  202. package/dist/utils/TimeFormatter.js.map +1 -0
  203. package/dist/utils/UserAgentUtils/index.d.ts +15 -0
  204. package/dist/utils/UserAgentUtils/index.js +48 -0
  205. package/dist/utils/UserAgentUtils/index.js.map +1 -0
  206. package/dist/utils/UserAgentUtils/navigatorAgentList.d.ts +17 -0
  207. package/dist/utils/UserAgentUtils/navigatorAgentList.js +40 -0
  208. package/dist/utils/UserAgentUtils/navigatorAgentList.js.map +1 -0
  209. package/dist/utils/VersionUtils.d.ts +7 -0
  210. package/dist/utils/VersionUtils.js +31 -0
  211. package/dist/utils/VersionUtils.js.map +1 -0
  212. package/jest.config.ts +17 -0
  213. package/mock/http/XMLHttpRequest-mock.js +26 -0
  214. package/package.json +48 -0
  215. package/scripts/runlink.bat +1 -0
  216. package/scripts/runlink.sh +1 -0
  217. package/src/async/PromiseSync.ts +49 -0
  218. package/src/dataunit/DataUnit.ts +1808 -0
  219. package/src/dataunit/DataUnitStorage.ts +43 -0
  220. package/src/dataunit/formatting/PrettyFormatter.ts +106 -0
  221. package/src/dataunit/loading/LoadDataRequest.ts +26 -0
  222. package/src/dataunit/loading/LoadDataResponse.ts +11 -0
  223. package/src/dataunit/loading/PaginationInfo.ts +18 -0
  224. package/src/dataunit/metadata/DataType.ts +127 -0
  225. package/src/dataunit/metadata/UnitMetadata.ts +102 -0
  226. package/src/dataunit/state/HistReducer.ts +34 -0
  227. package/src/dataunit/state/StateManager.ts +142 -0
  228. package/src/dataunit/state/action/DataUnitAction.ts +66 -0
  229. package/src/dataunit/state/slice/AddedRecordsSlice.ts +48 -0
  230. package/src/dataunit/state/slice/ChangesSlice.ts +125 -0
  231. package/src/dataunit/state/slice/InvalidFieldsSlice.ts +85 -0
  232. package/src/dataunit/state/slice/LoadingControlSlice.ts +60 -0
  233. package/src/dataunit/state/slice/RecordsSlice.ts +69 -0
  234. package/src/dataunit/state/slice/RemovedRecordsSlice.ts +30 -0
  235. package/src/dataunit/state/slice/SelectionSlice.ts +193 -0
  236. package/src/dataunit/state/slice/SnapshotSlice.ts +113 -0
  237. package/src/dataunit/state/slice/UnitMetadataSlice.ts +30 -0
  238. package/src/dataunit/state/slice/WaitingChangesSlice.ts +74 -0
  239. package/src/exceptions/ErrorException.ts +25 -0
  240. package/src/exceptions/WaitingChangeException.ts +21 -0
  241. package/src/exceptions/WarningException.ts +26 -0
  242. package/src/http/AuthorizedServiceCaller.ts +58 -0
  243. package/src/http/HttpProvider.ts +94 -0
  244. package/src/http/RequestMetadata.ts +42 -0
  245. package/src/http/SkwHttpProvider.ts +78 -0
  246. package/src/index.ts +91 -0
  247. package/src/traking/ErrorTraking.ts +37 -0
  248. package/src/ui/FloatingManager.ts +417 -0
  249. package/src/utils/ApplicationContext.ts +42 -0
  250. package/src/utils/ArrayUtils.ts +61 -0
  251. package/src/utils/CriteriaModel.ts +205 -0
  252. package/src/utils/CriteriaParameter.ts +108 -0
  253. package/src/utils/DateUtils.ts +195 -0
  254. package/src/utils/ElementIDUtils.ts +184 -0
  255. package/src/utils/JSUtils.ts +69 -0
  256. package/src/utils/MaskFormatter.ts +407 -0
  257. package/src/utils/NumberUtils.ts +283 -0
  258. package/src/utils/ObjectUtils.ts +76 -0
  259. package/src/utils/OnboardingUtils.ts +46 -0
  260. package/src/utils/ReadyUtil.ts +45 -0
  261. package/src/utils/StringUtils.ts +359 -0
  262. package/src/utils/TimeFormatter.ts +98 -0
  263. package/src/utils/UserAgentUtils/index.ts +62 -0
  264. package/src/utils/UserAgentUtils/navigatorAgentList.ts +39 -0
  265. package/src/utils/VersionUtils.ts +37 -0
  266. package/test/http/HttpProvider.spec.ts +35 -0
  267. package/test/http/SkwHttpProvider.ts.spec.ts +34 -0
  268. package/test/util/CriteriaModel.spec.ts +232 -0
  269. package/test/util/CriteriaParameter.spec.ts +52 -0
  270. package/test/util/DataUnitStorage.spec.ts +63 -0
  271. package/test/util/ElementIDUtils.spec.ts +272 -0
  272. package/test/util/MaskFormatter.spec.ts +138 -0
  273. package/test/util/NumberUtils.spec.ts +182 -0
  274. package/test/util/StringUtils.spec.ts +51 -0
  275. package/test/util/TimeFormatter.spec.ts +26 -0
  276. package/tsconfig.json +16 -0
@@ -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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * `MaskFormatter` é usado para formatar strings. Seu comportamento
3
+ * é controlado pelo formato do atributo `mask` que especifica quais
4
+ * caracteres são válidos e onde devem estar posicionados, intercalando-os
5
+ * com eventuais caracteres literais expressados no padrão informado.
6
+ * Sua implementação é inspirada pela implementação em Java do [MaskFormatter](https://docs.oracle.com/javase/7/docs/api/javax/swing/text/MaskFormatter.html).
7
+ *
8
+ * Para o padrão da máscara podem ser usados os seguintes caracteres especiais:
9
+ *
10
+ * | Caractere | Comportamento |
11
+ * |:---------:|-------------------------------------------------------------------------------------------------------------|
12
+ * | # | Qualquer número |
13
+ * | ' | "Escapa" o caractere que vem na sequência. Útil quando desejamos converter um caractere especial em literal.|
14
+ * | U | Qualquer letra. Transforma letras minúsculas em maiúsculas. |
15
+ * | L | Qualquer letra. Transforma letras maiúsculas em minúsculas. |
16
+ * | A | Qualquer letra ou número. |
17
+ * | ? | Qualquer letra. Preserva maiúsculas e minúsculas. |
18
+ * | * | Qualquer caractere. |
19
+ *
20
+ * Os demais caracteres presentes no padrão serão tratados como literais, isto é,
21
+ * serão apenas inseridos naquela posição.
22
+ *
23
+ * Quando o valor a ser formatado é menor que a máscara, um 'placeHolder'
24
+ * será inserido em cada posição ausente, completando a formatação.
25
+ * Por padrão será usado um espaço em branco como 'placeHolder', mas
26
+ * esse valor pode ser alterado.
27
+ *
28
+ * Por exemplo:
29
+ * '''
30
+ * const formatter: MaskFormatter = new MaskFormatter("###-####");
31
+ * formatter.placeholder = '_';
32
+ * console.log(formatter.format("123"));
33
+ * '''
34
+ * resultaria na string '123-____'.
35
+ *
36
+ * ##Veja mais alguns exemplos:
37
+ * |Padrão |Máscara |Entrada |Saída |
38
+ * |----------------|------------------|--------------|------------------|
39
+ * |Telefone |(##) ####-#### |3432192515 |(34) 3219-2515 |
40
+ * |CPF |###.###.###-## |12345678901 |123.456.789-01 |
41
+ * |CNPJ |##.###.###/####-##|12345678901234|12.345.678/9012-34|
42
+ * |CEP |##.###-### |12345678 |12.345-678 |
43
+ * |PLACA (veículo) |UUU-#### |abc1234 |ABC-1234 |
44
+ * |Cor RGB |'#AAAAAA |00000F0 |#0000F0 |
45
+ *
46
+ */
47
+ export declare class MaskFormatter {
48
+ private static DIGIT_KEY;
49
+ private static LITERAL_KEY;
50
+ private static UPPERCASE_KEY;
51
+ private static LOWERCASE_KEY;
52
+ private static ALPHA_NUMERIC_KEY;
53
+ private static CHARACTER_KEY;
54
+ private static ANYTHING_KEY;
55
+ static DEFAULT_MASKS: any;
56
+ private _mask;
57
+ private _maskChars;
58
+ /**
59
+ * Determina qual caractere será usado dos caracteres não presentes no valor,
60
+ * ou seja, aqueles que o usuário ainda não informou. Por padrão usamos um espaço.
61
+ */
62
+ placeholder: string;
63
+ /**
64
+ * Setter para mask. Trata-se do padrão que se espera ao formatar o texto.
65
+ */
66
+ set mask(mask: string);
67
+ /**
68
+ * Getter para mask.
69
+ *
70
+ * @return A última máscara informada.
71
+ */
72
+ get mask(): string;
73
+ constructor(mask: string);
74
+ /**
75
+ * Formata a string passada baseada na máscara definda pelo atributo mask.
76
+ *
77
+ * @param value Valor a ser formatado.
78
+ * @return O valor processado de acordo com o padrão.
79
+ */
80
+ format(value: string): string;
81
+ /**
82
+ * Prepara a formatação internamente de acordo com o padrão.
83
+ */
84
+ private updateInternalMask;
85
+ static MaskCharacter: {
86
+ new (maskFormatter: MaskFormatter, type: string): {
87
+ maskFormatter: MaskFormatter;
88
+ type: string;
89
+ /**
90
+ * Cada subclasse deve sobrescrever retornando true caso represente.
91
+ * um caractere literal. Por padrão o retorno é false.
92
+ */
93
+ isLiteral(): boolean;
94
+ /**
95
+ * Retorna se é um texto válido.
96
+ *
97
+ * @param aChar - Valor a ser validado.
98
+ * @returns - Retorna se é um texto válido.
99
+ */
100
+ isValidCharacter(aChar: string): boolean;
101
+ /**
102
+ * Retorna o texto informado.
103
+ *
104
+ * @param aChar - Texto a ser retornado.
105
+ * @returns - Texto informado.
106
+ */
107
+ getChar(aChar: string): string;
108
+ /**
109
+ * Adiciona valor encontrado.
110
+ *
111
+ * @param result - String a ser manipulada.
112
+ * @param formatting - String de formatação a ser adicionada na result.
113
+ * @param index - Índice que será utilizado para buscar no parâmetro formatting.
114
+ *
115
+ * @returns - Valor passado na result incrementado com o valor encontrado na formatting.
116
+ *
117
+ * @example
118
+ * ``` const result = "";
119
+ * const formatting = "123456";
120
+ * const index = [0];
121
+ * const returnedResult = append(result, formatting, index);
122
+ * ```
123
+ * Retorna:
124
+ * ```returnedResult = "1";
125
+ * index = [1];
126
+ * ```
127
+ */
128
+ append(result: string, formatting: string, index: Array<number>): string;
129
+ /**
130
+ * Obtém tipo por extenso.
131
+ *
132
+ * @returns O tipo por extenso.
133
+ * @example
134
+ * Se o tipo for **ALPHA_NUMERIC_KEY** recebo **uma letra ou um número**
135
+ */
136
+ getFormatMessage(): string;
137
+ };
138
+ };
139
+ private static LiteralCharacter;
140
+ private static DigitMaskCharacter;
141
+ private static UpperCaseCharacter;
142
+ private static LowerCaseCharacter;
143
+ private static AlphaNumericCharacter;
144
+ private static CharCharacter;
145
+ }
146
+ export declare namespace MaskFormatter {
147
+ type MaskCharacter = InstanceType<typeof MaskFormatter.MaskCharacter>;
148
+ }