@sankhyalabs/core 5.15.5 → 5.16.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.
Files changed (129) hide show
  1. package/.docs/README.md +3 -1
  2. package/.docs/classes/ApplicationContext.md +31 -32
  3. package/.docs/classes/ArrayUtils.md +183 -41
  4. package/.docs/classes/AuthorizedServiceCaller.md +25 -34
  5. package/.docs/classes/Change.md +59 -74
  6. package/.docs/classes/DataUnit.md +970 -1068
  7. package/.docs/classes/DataUnitAction.md +25 -42
  8. package/.docs/classes/DataUnitStorage.md +40 -43
  9. package/.docs/classes/DateUtils.md +133 -126
  10. package/.docs/classes/ElementIDUtils.md +123 -122
  11. package/.docs/classes/ErrorException.md +67 -88
  12. package/.docs/classes/ErrorTracking.md +20 -23
  13. package/.docs/classes/FieldComparator.md +35 -39
  14. package/.docs/classes/FloatingManager.md +195 -198
  15. package/.docs/classes/HTMLBuilder.md +14 -20
  16. package/.docs/classes/HttpProvider.md +45 -41
  17. package/.docs/classes/IDBRepository.md +179 -196
  18. package/.docs/classes/JSUtils.md +82 -58
  19. package/.docs/classes/KeyboardManager.md +95 -87
  20. package/.docs/classes/{MaskFormatter-1.md → MaskFormatter.md} +81 -120
  21. package/.docs/classes/NumberUtils.md +163 -152
  22. package/.docs/classes/ObjectUtils.md +82 -61
  23. package/.docs/classes/OnboardingUtils.md +36 -51
  24. package/.docs/classes/OverflowWatcher.md +269 -0
  25. package/.docs/classes/PromiseSync.md +25 -42
  26. package/.docs/classes/ReadyUtil.md +31 -41
  27. package/.docs/classes/RequestMetadata.md +29 -30
  28. package/.docs/classes/SearchUtils.md +41 -0
  29. package/.docs/classes/SelectionInfo.md +59 -74
  30. package/.docs/classes/SkwHttpProvider.md +33 -45
  31. package/.docs/classes/StringUtils.md +397 -268
  32. package/.docs/classes/TimeFormatter.md +43 -44
  33. package/.docs/classes/UserAgentUtils.md +17 -20
  34. package/.docs/classes/VersionUtils.md +15 -18
  35. package/.docs/classes/WaitingChangeException.md +63 -84
  36. package/.docs/classes/WarningException.md +67 -88
  37. package/.docs/enumerations/Action.md +297 -0
  38. package/.docs/enumerations/ChangeOperation.md +47 -0
  39. package/.docs/enumerations/DataType.md +57 -0
  40. package/.docs/enumerations/DependencyType.md +37 -0
  41. package/.docs/enumerations/OverflowDirection.md +29 -0
  42. package/.docs/enumerations/SelectionMode.md +27 -0
  43. package/.docs/enumerations/SortMode.md +27 -0
  44. package/.docs/enumerations/UserInterface.md +177 -0
  45. package/.docs/functions/defaultDataLoader.md +25 -0
  46. package/.docs/{modules.md → globals.md} +22 -37
  47. package/.docs/interfaces/ChildDescriptor.md +12 -16
  48. package/.docs/interfaces/ChildLink.md +9 -12
  49. package/.docs/interfaces/DUActionInterceptor.md +10 -14
  50. package/.docs/interfaces/ExecutionContext.md +17 -32
  51. package/.docs/interfaces/FieldDescriptor.md +52 -66
  52. package/.docs/interfaces/Filter.md +13 -17
  53. package/.docs/interfaces/IElementIDInfo.md +11 -14
  54. package/.docs/interfaces/ILoadResult.md +11 -16
  55. package/.docs/interfaces/IRepository.md +88 -93
  56. package/.docs/interfaces/IRepositoryIndex.md +23 -30
  57. package/.docs/interfaces/LoadDataRequest.md +36 -45
  58. package/.docs/interfaces/LoadDataResponse.md +11 -14
  59. package/.docs/interfaces/PageRequest.md +16 -20
  60. package/.docs/interfaces/PaginationInfo.md +24 -31
  61. package/.docs/interfaces/PromiseSyncCallback.md +13 -17
  62. package/.docs/interfaces/QuickFilter.md +17 -21
  63. package/.docs/interfaces/Record.md +26 -33
  64. package/.docs/interfaces/SavedRecord.md +33 -41
  65. package/.docs/interfaces/Sort.md +12 -16
  66. package/.docs/interfaces/SortingProvider.md +10 -13
  67. package/.docs/interfaces/UnitMetadata.md +16 -21
  68. package/.docs/interfaces/WaitingChange.md +16 -20
  69. package/.docs/namespaces/MaskFormatter/README.md +17 -0
  70. package/.docs/namespaces/MaskFormatter/type-aliases/MaskCharacter.md +13 -0
  71. package/.docs/namespaces/MaskFormatter/variables/MaskCharacter.md +13 -0
  72. package/.docs/type-aliases/OnOverflowCallBack.md +25 -0
  73. package/.releaserc +10 -10
  74. package/dist/dataunit/DataUnit.d.ts +7 -1
  75. package/dist/dataunit/DataUnit.js +13 -5
  76. package/dist/dataunit/DataUnit.js.map +1 -1
  77. package/dist/dataunit/state/slice/SelectionSlice.js +1 -1
  78. package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -1
  79. package/dist/index.d.ts +3 -1
  80. package/dist/index.js +3 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/utils/ArrayUtils.d.ts +39 -0
  83. package/dist/utils/ArrayUtils.js +69 -0
  84. package/dist/utils/ArrayUtils.js.map +1 -1
  85. package/dist/utils/JSUtils.d.ts +7 -0
  86. package/dist/utils/JSUtils.js +16 -0
  87. package/dist/utils/JSUtils.js.map +1 -1
  88. package/dist/utils/ObjectUtils.d.ts +8 -0
  89. package/dist/utils/ObjectUtils.js +10 -0
  90. package/dist/utils/ObjectUtils.js.map +1 -1
  91. package/dist/utils/OverflowWatcher/index.d.ts +31 -0
  92. package/dist/utils/OverflowWatcher/index.js +107 -0
  93. package/dist/utils/OverflowWatcher/index.js.map +1 -0
  94. package/dist/utils/OverflowWatcher/types/overflow-callback.d.ts +6 -0
  95. package/dist/utils/OverflowWatcher/types/overflow-callback.js +2 -0
  96. package/dist/utils/OverflowWatcher/types/overflow-callback.js.map +1 -0
  97. package/dist/utils/OverflowWatcher/types/overflow-direction.d.ts +7 -0
  98. package/dist/utils/OverflowWatcher/types/overflow-direction.js +9 -0
  99. package/dist/utils/OverflowWatcher/types/overflow-direction.js.map +1 -0
  100. package/dist/utils/SearchUtils.d.ts +6 -0
  101. package/dist/utils/SearchUtils.js +17 -0
  102. package/dist/utils/SearchUtils.js.map +1 -0
  103. package/dist/utils/StringUtils.d.ts +7 -0
  104. package/dist/utils/StringUtils.js +97 -0
  105. package/dist/utils/StringUtils.js.map +1 -1
  106. package/jest.config.ts +1 -1
  107. package/package.json +11 -4
  108. package/sonar-project.properties +7 -0
  109. package/src/dataunit/DataUnit.ts +18 -4
  110. package/src/dataunit/state/slice/SelectionSlice.ts +1 -1
  111. package/src/index.ts +6 -0
  112. package/src/utils/ArrayUtils.ts +73 -0
  113. package/src/utils/JSUtils.ts +18 -0
  114. package/src/utils/ObjectUtils.ts +11 -0
  115. package/src/utils/OverflowWatcher/index.ts +151 -0
  116. package/src/utils/OverflowWatcher/types/overflow-callback.ts +6 -0
  117. package/src/utils/OverflowWatcher/types/overflow-direction.ts +7 -0
  118. package/src/utils/SearchUtils.ts +18 -0
  119. package/src/utils/StringUtils.ts +124 -0
  120. package/test/util/OverflowWatcher.spec.ts +118 -0
  121. package/.docs/.nojekyll +0 -1
  122. package/.docs/enums/Action.md +0 -327
  123. package/.docs/enums/ChangeOperation.md +0 -52
  124. package/.docs/enums/DataType.md +0 -63
  125. package/.docs/enums/DependencyType.md +0 -41
  126. package/.docs/enums/SelectionMode.md +0 -30
  127. package/.docs/enums/SortMode.md +0 -30
  128. package/.docs/enums/UserInterface.md +0 -195
  129. package/.docs/modules/MaskFormatter.md +0 -37
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Define em qual direção o overflow será observado
3
+ */
4
+ export declare enum OverflowDirection {
5
+ 'VERTICAL' = 0,
6
+ 'HORIZONTAL' = 1
7
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Define em qual direção o overflow será observado
3
+ */
4
+ export var OverflowDirection;
5
+ (function (OverflowDirection) {
6
+ OverflowDirection[OverflowDirection["VERTICAL"] = 0] = "VERTICAL";
7
+ OverflowDirection[OverflowDirection["HORIZONTAL"] = 1] = "HORIZONTAL";
8
+ })(OverflowDirection || (OverflowDirection = {}));
9
+ //# sourceMappingURL=overflow-direction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overflow-direction.js","sourceRoot":"","sources":["../../../../src/utils/OverflowWatcher/types/overflow-direction.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,iEAAU,CAAA;IACV,qEAAY,CAAA;AAChB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * `Search`: Utilizado para manipulação de do objeto de pesquisa.
3
+ */
4
+ export declare class SearchUtils {
5
+ static buildDetails(argument: String, fields: any, item: any): any;
6
+ }
@@ -0,0 +1,17 @@
1
+ import { StringUtils } from "./StringUtils.js";
2
+ /**
3
+ * `Search`: Utilizado para manipulação de do objeto de pesquisa.
4
+ */
5
+ export class SearchUtils {
6
+ static buildDetails(argument, fields, item) {
7
+ let details = {};
8
+ for (let index = 0; (index < fields.length); index++) {
9
+ const field = fields[index];
10
+ const itemValue = item[field.fieldName];
11
+ const optionValue = field.options ? field.options[itemValue] || itemValue : itemValue;
12
+ details[field.description] = StringUtils.highlightValue(argument, item['__matchFields'], optionValue, fields, true);
13
+ }
14
+ return details;
15
+ }
16
+ }
17
+ //# sourceMappingURL=SearchUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchUtils.js","sourceRoot":"","sources":["../../src/utils/SearchUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,WAAW;IAEb,MAAM,CAAC,YAAY,CAAC,QAAgB,EAAE,MAAW,EAAE,IAAS;QAC/D,IAAI,OAAO,GAAO,EAAE,CAAC;QACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SACrH;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -190,4 +190,11 @@ export declare class StringUtils {
190
190
  * @return {string} A string invertida
191
191
  */
192
192
  static getOppositeCase(original: string): string;
193
+ static replaceToSpace(source: string, replaceList?: string[]): string;
194
+ static replaceAccentuatedCharsHtmlEntities(source: string): string;
195
+ static getSpecialCharacters(str: string): string[];
196
+ static replaceAll(str: string, strFrom: string, strTo: string): string;
197
+ static removeSpecialCharacters(str: string): string;
198
+ static getArgumentNumber(argument: String): number;
199
+ static highlightValue(argument: String, matchFields: any, value: string, fieldMD: any, forceMatch: boolean): string;
193
200
  }
@@ -1,4 +1,6 @@
1
1
  import { v4 as uuid } from "uuid";
2
+ import ArrayUtils from "./ArrayUtils.js";
3
+ import { JSUtils } from "./JSUtils.js";
2
4
  /**
3
5
  * `StringUtils`: Utilizado para manipulação de Strings.
4
6
  */
@@ -372,5 +374,100 @@ export class StringUtils {
372
374
  static getOppositeCase(original) {
373
375
  return this.isLowerCase(original) ? original.toUpperCase() : original.toLowerCase();
374
376
  }
377
+ static replaceToSpace(source, replaceList = []) {
378
+ if (source == undefined) {
379
+ return source;
380
+ }
381
+ replaceList.forEach((word) => {
382
+ const wordAux = new RegExp(word, 'g');
383
+ let whiteSpace = '';
384
+ for (let i = 0; i < word.length; i++) {
385
+ whiteSpace += ' ';
386
+ }
387
+ source = String(source).replace(wordAux, whiteSpace);
388
+ });
389
+ return source;
390
+ }
391
+ static replaceAccentuatedCharsHtmlEntities(source) {
392
+ const charsWithoutAccentuation = "AEIOU_AO_AEIOU_AEIOU_U_C_aeiou_ao_aeiou_aeiou_u_c";
393
+ if (source == undefined) {
394
+ return source;
395
+ }
396
+ const replaceList = ['&amp;', '&lt;', '&gt;', '&quot;'];
397
+ const sourceAux = StringUtils.replaceToSpace(source, replaceList);
398
+ return sourceAux.replace(/[^\w ]/g, (char) => {
399
+ let index = charsWithoutAccentuation.indexOf(char);
400
+ if (index > -1) {
401
+ char = charsWithoutAccentuation.charAt(index);
402
+ }
403
+ return char || '';
404
+ });
405
+ }
406
+ static getSpecialCharacters(str) {
407
+ const specialCharsRegex = /[[.\-\$\+\*,_\&\(\)%\/\\#@!:\|\=\'\"]/gmi;
408
+ let match;
409
+ let charList = [];
410
+ while ((match = specialCharsRegex.exec(str))) {
411
+ charList.push(str[match.index]);
412
+ }
413
+ return charList;
414
+ }
415
+ static replaceAll(str, strFrom, strTo) {
416
+ let pos = (str != undefined ? str : '').indexOf(strFrom);
417
+ while (pos > -1) {
418
+ str = str.replace(strFrom, strTo);
419
+ pos = str.indexOf(strFrom);
420
+ }
421
+ return (str);
422
+ }
423
+ static removeSpecialCharacters(str) {
424
+ let specialChars = StringUtils.getSpecialCharacters(str);
425
+ specialChars.forEach((ch) => {
426
+ str = StringUtils.replaceAll(str, ch, '');
427
+ });
428
+ return str;
429
+ }
430
+ static getArgumentNumber(argument) {
431
+ return Number(argument || undefined);
432
+ }
433
+ static highlightValue(argument, matchFields, value, fieldMD, forceMatch) {
434
+ const startHighlightTag = "<span class='card-item__highlight'>";
435
+ const endHighlightTag = "</span>";
436
+ let valueAux = JSUtils.replaceHtmlEntities(value);
437
+ if (argument && (forceMatch || ArrayUtils.isIn(matchFields, fieldMD.fieldName))) {
438
+ const argumentNumber = StringUtils.getArgumentNumber(argument);
439
+ let replacements = (isNaN(argumentNumber) ? argument : argumentNumber.toString()).split(/%|,|\s+/);
440
+ let lastMatchIndex = 0;
441
+ let cleanText = StringUtils.replaceAccentuatedCharsHtmlEntities(valueAux);
442
+ replacements.forEach((r) => {
443
+ if (r) {
444
+ r = StringUtils.replaceAccentuatedCharsHtmlEntities(r);
445
+ let specialChars = StringUtils.getSpecialCharacters(r);
446
+ if (specialChars != undefined && specialChars.length > 0) {
447
+ r = StringUtils.removeSpecialCharacters(r);
448
+ }
449
+ if (fieldMD.mask || fieldMD.uiType === 'CGC_CPF' || fieldMD.uiType === 'Phone') {
450
+ //Fazemos isso para descondirerar os caracteres especiais de formatação da string
451
+ r = r.split('').join('\\.?\\-?\\/?\\(?\\)?');
452
+ }
453
+ let regex = new RegExp(r, "ig");
454
+ regex.lastIndex = lastMatchIndex;
455
+ let match = regex.exec(cleanText);
456
+ if (match && match.length > 0) {
457
+ lastMatchIndex = match.index;
458
+ let sizeMatch = match[0].length;
459
+ let txtToColor = valueAux.substring(lastMatchIndex, lastMatchIndex + sizeMatch);
460
+ let txtColored = (txtToColor === null || txtToColor === void 0 ? void 0 : txtToColor.trim()) ? startHighlightTag + txtToColor + endHighlightTag : '';
461
+ let start = valueAux.substring(0, lastMatchIndex);
462
+ let end = valueAux.substring(lastMatchIndex + sizeMatch);
463
+ valueAux = start + txtColored + end;
464
+ lastMatchIndex = lastMatchIndex + txtColored.length;
465
+ cleanText = StringUtils.replaceAccentuatedCharsHtmlEntities(valueAux);
466
+ }
467
+ }
468
+ });
469
+ }
470
+ return valueAux;
471
+ }
375
472
  }
376
473
  //# sourceMappingURL=StringUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"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"}
package/jest.config.ts CHANGED
@@ -2,7 +2,7 @@ module.exports = {
2
2
  transform: {'^.+\\.ts?$': 'ts-jest'},
3
3
  testEnvironment: 'jsdom',
4
4
  testRegex: '\\.(test|spec)?\\.(ts|tsx)$',
5
- moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
5
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
6
6
  coverageThreshold: {
7
7
  "global": {
8
8
  "branches": 10,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "5.15.5",
3
+ "version": "5.16.0",
4
4
  "description": "Modulo core JavaScript da Sankhya.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -10,7 +10,7 @@
10
10
  "build": "tsc",
11
11
  "build:watch": "tsc --watch",
12
12
  "compile": "tsc",
13
- "test": "jest",
13
+ "test": "jest --coverage --silent --testResultsProcessor jest-sonar-reporter",
14
14
  "coverage": "jest --coverage",
15
15
  "serve": "es-dev-server --node-resolve --watch",
16
16
  "eslint": "eslint src/**",
@@ -43,11 +43,18 @@
43
43
  "eslint-plugin-import": "^2.26.0",
44
44
  "husky": "^8.0.3",
45
45
  "jest": "^29.4.1",
46
+ "jest-sonar-reporter": "^2.0.0",
46
47
  "jest-environment-jsdom": "^29.4.1",
47
48
  "ts-jest": "^29.0.5",
48
49
  "ts-node": "^10.9.1",
49
- "typedoc": "^0.23.24",
50
- "typedoc-plugin-markdown": "^3.14.0",
50
+ "typedoc": "^0.25.13",
51
+ "typedoc-plugin-markdown": "^4.0.1",
51
52
  "typescript": "^4.9.5"
53
+ },
54
+ "jestSonar": {
55
+ "sonar56x": true,
56
+ "reportPath": "reports",
57
+ "reportFile": "test-report.xml",
58
+ "indent": 4
52
59
  }
53
60
  }
@@ -0,0 +1,7 @@
1
+ sonar.testExecutionReportPaths=./reports/test-report.xml
2
+ sonar.typescript.lcov.reportPaths=./coverage/lcov.info
3
+ sonar.test.inclusions="**/test/*.e2e.ts","**/test/*.spec.ts","**/test/*.spec.tsx","**/utils/*.spec.ts"
4
+ sonar.tests=.
5
+ sonar.c.file.suffixes=-
6
+ sonar.cpp.file.suffixes=-
7
+ sonar.objc.file.suffixes=-
@@ -238,9 +238,14 @@ export default class DataUnit {
238
238
  if (await this.dispatchAction(Action.LOADING_DATA, request, executionCtx)) {
239
239
  if (this.dataLoader) {
240
240
  this.dataLoader(this, request).then(
241
- response => {
242
- this.dispatchAction(Action.DATA_LOADED, {...response, keepSelection: request.keepSelection}, executionCtx);
243
- this.dispatchAction(Action.LOADING_PROPERTIES_CLEANED);
241
+ async response => {
242
+ await this.dispatchAction(
243
+ Action.DATA_LOADED,
244
+ {...response, keepSelection: request.keepSelection, filters: request.filters},
245
+ executionCtx
246
+ );
247
+
248
+ await this.dispatchAction(Action.LOADING_PROPERTIES_CLEANED);
244
249
 
245
250
  if(selectFirstRecord){
246
251
  this.requestSelectFirst(executionCtx);
@@ -1727,12 +1732,21 @@ export default class DataUnit {
1727
1732
  return selection?.recordIds || [];
1728
1733
  }
1729
1734
 
1735
+ /**
1736
+ * Adiciona um campo stand-alone ao dataUnit.
1737
+ *
1738
+ * @deprecated - metodo depreciado, utilizar o metodo addField
1739
+ */
1740
+ public addStandAloneField() : void {
1741
+ console.warn("metodo depreciado, para adicionar um campo standAlone, utilizar o metodo addField")
1742
+ }
1743
+
1730
1744
  /**
1731
1745
  * Adiciona um campo stand-alone ao dataUnit.
1732
1746
  *
1733
1747
  * @param field - Campo a ser adicionado.
1734
1748
  */
1735
- public addStandAloneField(field: Omit<FieldDescriptor, 'standAlone'>) : void {
1749
+ public addField(field: Omit<FieldDescriptor, 'standAlone'>) : void {
1736
1750
  const standAloneField = {...field, standAlone: true};
1737
1751
  this.metadata = {...this.metadata, fields: [...this.metadata.fields, standAloneField]};
1738
1752
  }
@@ -68,7 +68,7 @@ class SelectionReducerImpl implements ActionReducer {
68
68
  if(currentState?.lastSelection){
69
69
  return { currentSelection: currentState.lastSelection };
70
70
  }
71
- break;
71
+ return { currentSelection: [] }
72
72
  }
73
73
 
74
74
  return currentState;
package/src/index.ts CHANGED
@@ -38,6 +38,8 @@ import { ILoadResult } from "./repository/ILoadResult.js";
38
38
  import { IRepositoryIndex } from "./repository/indexeddb/IRepositoryIndex.js"
39
39
  import { FieldComparator } from "./dataunit/sorting/FieldComparator.js";
40
40
  import { KeyboardManager } from "./utils/KeyboardManager/index.js";
41
+ import { SearchUtils } from "./utils/SearchUtils.js";
42
+ import OverflowWatcher, { OnOverflowCallBack, OverflowDirection } from "./utils/OverflowWatcher/index.js";
41
43
 
42
44
  /*Classes públicas no pacote*/
43
45
  export {
@@ -104,4 +106,8 @@ export {
104
106
  FieldComparator,
105
107
  defaultDataLoader,
106
108
  KeyboardManager,
109
+ SearchUtils,
110
+ OverflowWatcher,
111
+ OnOverflowCallBack,
112
+ OverflowDirection
107
113
  };
@@ -1,5 +1,6 @@
1
1
  import { StringUtils } from "./StringUtils.js";
2
2
  import { NumberUtils } from './NumberUtils.js';
3
+ import ObjectUtils from "./ObjectUtils.js";
3
4
 
4
5
  /**
5
6
  * `ArrayUtils`: Utilitário com a responsabilidade de manipular Arrays.
@@ -58,4 +59,76 @@ export default class ArrayUtils {
58
59
  }
59
60
  });
60
61
  }
62
+
63
+ /**
64
+ * Ordena valores de um array alfabeticamente.
65
+ *
66
+ * @param arr - Array a ser ordenado.
67
+ * @returns - Array ordenado alfabeticamente..
68
+ */
69
+ public static find(arr: any, checkerFn: any) {
70
+ if (arr) {
71
+ for (let i = 0, length = arr.length; i < length; i++) {
72
+ if (checkerFn(arr[i], i, arr)) {
73
+ return arr[i];
74
+ }
75
+ }
76
+ } else {
77
+ return undefined;
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Retorna o objeto se for encontrado no array, ou -1 se não for encontrado.
83
+ *
84
+ * @param arr - Array onde está o objeto.
85
+ * @param obj - Objeto a ser procurado.
86
+ * @returns - Array ordenado alfabeticamente..
87
+ */
88
+ public static indexOf(arr: any, obj: any) {
89
+ let index = -1;
90
+ if (Array.isArray(arr)) {
91
+ ArrayUtils.find(arr, (item: any, i: number) => {
92
+ index = i;
93
+ return ObjectUtils.equals(obj, item);
94
+ });
95
+ }
96
+ return index;
97
+ }
98
+
99
+ /**
100
+ * Remove um item de array de acordo com o index.
101
+ *
102
+ * @param array - Array onde está o item.
103
+ * @param index - Index do item a ser removido.
104
+ * @returns - Array sem o item do index informado.
105
+ */
106
+ public static removeAtIndex(array: any, index: number) {
107
+ if (index >= 0 && index < array.length) {
108
+ return array.splice(index, 1)[0];
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Remove um objeto do array.
114
+ *
115
+ * @param array - Array onde está o objeto.
116
+ * @param obj - Objeto a ser removido.
117
+ * @returns - Array sem o Objeto informado.
118
+ */
119
+ public static removeReference(array: any, obj: any) {
120
+ let index = ArrayUtils.indexOf(array, obj);
121
+ return ArrayUtils.removeAtIndex(array, index);
122
+ }
123
+
124
+ /**
125
+ * Remove um objeto do array.
126
+ *
127
+ * @param array - Array onde está o objeto.
128
+ * @param obj - Objeto a ser removido.
129
+ * @returns - Array sem o Objeto informado.
130
+ */
131
+ public static isIn(arr: any, obj: any) {
132
+ return ArrayUtils.indexOf(arr, obj) > -1;
133
+ }
61
134
  }
@@ -95,4 +95,22 @@ export class JSUtils{
95
95
  public static generateUUID(): string {
96
96
  return uuid();
97
97
  }
98
+
99
+ /**
100
+ * Substitui caracteres para suas entidades HTML.
101
+ *
102
+ * @param source - String a ter os caracteres substituidos.
103
+ * @returns - Retorna um UUID.
104
+ */
105
+ public static replaceHtmlEntities(source: string) {
106
+ if (source == undefined) {
107
+ return source;
108
+ }
109
+
110
+ return String(source)
111
+ .replace(/&/g, '&amp;')
112
+ .replace(/</g, '&lt;')
113
+ .replace(/>/g, '&gt;')
114
+ .replace(/"/g, '&quot;');
115
+ }
98
116
  }
@@ -73,4 +73,15 @@ export default class ObjectUtils{
73
73
  );
74
74
 
75
75
  }
76
+
77
+ /**
78
+ * Compara se um objeto é igual a outro objeto.
79
+ *
80
+ * @param obj1 - Objeto a ser comparado.
81
+ * @param obj2 - Objeto a ser comparado.
82
+ * @returns - Se o objeto 1 é igual ao objeto 2.
83
+ */
84
+ public static equals(obj1: any, obj2: any): any {
85
+ return ObjectUtils.objectToString(obj1) === ObjectUtils.objectToString(obj2);
86
+ }
76
87
  }
@@ -0,0 +1,151 @@
1
+ import { JSUtils } from "../JSUtils.js";
2
+ import { OverflowDirection } from "./types/overflow-direction.js"
3
+ import { OnOverflowCallBack } from "./types/overflow-callback.js"
4
+
5
+ export * from "./types/overflow-direction.js";
6
+ export * from "./types/overflow-callback.js";
7
+
8
+ export default class OverflowWatcher {
9
+ private _onResize:OnOverflowCallBack;
10
+ private _resizeObserver:ResizeObserver;
11
+ private _lastContentRect:DOMRectReadOnly|undefined = undefined;
12
+ private _scrollDirection = OverflowDirection.HORIZONTAL;
13
+ private _propSize:string;
14
+ private _hiddenItems:Element[] = [];
15
+ private _deltaSize:number;
16
+
17
+ /**
18
+ * Cria uma instancia do OverflowWatcher
19
+ *
20
+ * @param element - Elemento HTML que o overflow será observado.
21
+ * @param callback - Função que sera chamada quando ocorrer overflow no elemento.
22
+ * @param overFlowDirection - Indica direção que o overflow será monitorado.
23
+ * @param deltaSize - Variação de tamanho que será considerada como overflow.
24
+ */
25
+ constructor(element:HTMLElement,
26
+ callback:OnOverflowCallBack,
27
+ overFlowDirection:OverflowDirection = OverflowDirection.HORIZONTAL,
28
+ deltaSize:number = 10){
29
+ this._onResize = callback;
30
+ this._scrollDirection = overFlowDirection;
31
+ this._resizeObserver = new ResizeObserver(JSUtils.debounce((entries: ResizeObserverEntry[]) => this.handleResize(entries), 200));
32
+ this._resizeObserver.observe(element);
33
+ this._propSize = this.getPropSizeByDirection();
34
+ this._deltaSize = deltaSize;
35
+ }
36
+
37
+ public destroy(){
38
+ this._resizeObserver.disconnect();
39
+ }
40
+
41
+ private handleResize(entries: ResizeObserverEntry[]){
42
+
43
+ if(!entries || entries.length === 0){
44
+ return;
45
+ }
46
+
47
+ const resizeItem = entries[0];
48
+ const contentRect:any = resizeItem.contentRect;
49
+
50
+ if(this.isChangedSize(contentRect)){
51
+ const children:Element[] = Array.from(resizeItem.target.children);
52
+ this.proccessElements(contentRect[this._propSize], children);
53
+ this._lastContentRect = contentRect;
54
+ }
55
+ }
56
+
57
+ private isChangedSize(newContentRect:DOMRectReadOnly):boolean{
58
+ if(this._lastContentRect == undefined){
59
+ return true;
60
+ }
61
+ return Math.abs((newContentRect as any)[this._propSize] - (this._lastContentRect as any)[this._propSize]) >= this._deltaSize;
62
+ }
63
+
64
+
65
+ private getPropSizeByDirection():string{
66
+ if(OverflowDirection.HORIZONTAL === this._scrollDirection){
67
+ return "width"
68
+ }
69
+
70
+ return "height";
71
+ }
72
+
73
+ private proccessElements(elementSize:number, children:Element[]){
74
+
75
+ if(children.length === 0){
76
+ return;
77
+ }
78
+
79
+ const childrenSize = this.calcChildrenSize(children);
80
+
81
+ let diff = Number((elementSize - childrenSize).toFixed(4));
82
+
83
+ if(diff > 0){
84
+ this.proccessElementsWithoutOverFlow(diff);
85
+ return;
86
+ }
87
+
88
+ this.proccessElementsOverFlow(children, diff);
89
+ }
90
+
91
+ private proccessElementsWithoutOverFlow(diff:number){
92
+ this._hiddenItems.forEach((item:any) => {
93
+
94
+ if(item.getBoundingClientRect().width < diff){
95
+ this._hiddenItems.pop();
96
+ }
97
+
98
+ });
99
+
100
+ this._onResize(this._hiddenItems);
101
+ }
102
+
103
+ private proccessElementsOverFlow(children:Element[], diff:number){
104
+ const elementsOverflow = [];
105
+ let sumRemovedItems = 0;
106
+
107
+ while(elementsOverflow.length < children.length && sumRemovedItems < (diff * -1) ) {
108
+ const itemToRemove = children.pop();
109
+
110
+ if(itemToRemove != undefined && (itemToRemove as any).style.display === 'none'){
111
+ continue;
112
+ }
113
+
114
+ if(itemToRemove != undefined){
115
+ elementsOverflow.push(itemToRemove);
116
+ sumRemovedItems += (itemToRemove.getBoundingClientRect() as any)[this._propSize];
117
+ }
118
+ }
119
+
120
+
121
+ this._hiddenItems = elementsOverflow;
122
+ this._onResize(elementsOverflow);
123
+
124
+ }
125
+
126
+ private calcChildrenSize(children:Element[]):number{
127
+ let sumChildren = 0;
128
+
129
+ Array.from(children).forEach(el => {
130
+ sumChildren += (el.getBoundingClientRect() as any)[this._propSize];
131
+ sumChildren += this.calcMarginSize(el);
132
+ });
133
+
134
+ if(sumChildren > 0){
135
+ sumChildren += this._deltaSize;
136
+ }
137
+
138
+ return sumChildren;
139
+ }
140
+
141
+ private calcMarginSize(el:Element){
142
+ const computedStyle = getComputedStyle(el);
143
+
144
+ if(OverflowDirection.HORIZONTAL === this._scrollDirection){
145
+ return (parseInt(computedStyle.marginLeft || '0') + parseInt(computedStyle.marginRight || '0'));
146
+ }
147
+
148
+ return (parseInt(computedStyle.marginTop || '0') + parseInt(computedStyle.marginBottom || '0'));
149
+ }
150
+
151
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Callback que será chamado quando o overflow de um elemento for alterado.
3
+ *
4
+ * @param elementsOverFlow - Conjunto de elementos filhos que estão causando overflow no elemento pai.
5
+ */
6
+ export type OnOverflowCallBack = (elementsOverFlow:Array<Element>) => void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Define em qual direção o overflow será observado
3
+ */
4
+ export enum OverflowDirection {
5
+ 'VERTICAL',
6
+ 'HORIZONTAL'
7
+ }
@@ -0,0 +1,18 @@
1
+ import { StringUtils } from "./StringUtils.js";
2
+
3
+ /**
4
+ * `Search`: Utilizado para manipulação de do objeto de pesquisa.
5
+ */
6
+ export class SearchUtils {
7
+
8
+ public static buildDetails(argument: String, fields: any, item: any) {
9
+ let details:any = {};
10
+ for (let index = 0; (index < fields.length); index++) {
11
+ const field = fields[index];
12
+ const itemValue = item[field.fieldName];
13
+ const optionValue = field.options ? field.options[itemValue] || itemValue : itemValue;
14
+ details[field.description] = StringUtils.highlightValue(argument, item['__matchFields'], optionValue, fields, true);
15
+ }
16
+ return details;
17
+ }
18
+ }