@sankhyalabs/core 5.2.0 → 5.4.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.
@@ -47,7 +47,7 @@ Filtra um array a partir de um critério textual.
47
47
 
48
48
  #### Defined in
49
49
 
50
- src/utils/ArrayUtils.ts:16
50
+ src/utils/ArrayUtils.ts:17
51
51
 
52
52
  ___
53
53
 
@@ -71,7 +71,7 @@ Converte texto para caixa alta e substitui caracteres acentuados.
71
71
 
72
72
  #### Defined in
73
73
 
74
- src/utils/ArrayUtils.ts:34
74
+ src/utils/ArrayUtils.ts:35
75
75
 
76
76
  ___
77
77
 
@@ -96,4 +96,4 @@ Ordena valores de um array alfabeticamente.
96
96
 
97
97
  #### Defined in
98
98
 
99
- src/utils/ArrayUtils.ts:44
99
+ src/utils/ArrayUtils.ts:45
@@ -13,6 +13,7 @@
13
13
  ### Methods
14
14
 
15
15
  - [changeFormat](NumberUtils.md#changeformat)
16
+ - [compare](NumberUtils.md#compare)
16
17
  - [format](NumberUtils.md#format)
17
18
  - [getValueOrDefault](NumberUtils.md#getvalueordefault)
18
19
  - [getValueOrZero](NumberUtils.md#getvalueorzero)
@@ -64,6 +65,31 @@ src/utils/NumberUtils.ts:168
64
65
 
65
66
  ___
66
67
 
68
+ ### compare
69
+
70
+ ▸ `Static` **compare**(`a`, `b`): `number`
71
+
72
+ Determina a ordem de umeros.
73
+
74
+ #### Parameters
75
+
76
+ | Name | Type | Description |
77
+ | :------ | :------ | :------ |
78
+ | `a` | `number` | Primeio número para comparação. |
79
+ | `b` | `number` | Segundo número para comparação. |
80
+
81
+ #### Returns
82
+
83
+ `number`
84
+
85
+ - Um numeral negativo se o primeiro argumento é menor que o segundo, zero se os dois são iguais e um numeral positivo quando o primeiro é maior que o segundo.
86
+
87
+ #### Defined in
88
+
89
+ src/utils/NumberUtils.ts:249
90
+
91
+ ___
92
+
67
93
  ### format
68
94
 
69
95
  ▸ `Static` **format**(`value`, `precision`, `prettyPrecision?`): `string`
@@ -0,0 +1,91 @@
1
+ [@sankhyalabs/core](../README.md) / [Exports](../modules.md) / PromiseSync
2
+
3
+ # Class: PromiseSync<T\>
4
+
5
+ O intuito desta classe é organizar a finalização de várias
6
+ promessas executando determinada ação (callback) com o resultado.
7
+
8
+ ## Type parameters
9
+
10
+ | Name |
11
+ | :------ |
12
+ | `T` |
13
+
14
+ ## Table of contents
15
+
16
+ ### Constructors
17
+
18
+ - [constructor](PromiseSync.md#constructor)
19
+
20
+ ### Properties
21
+
22
+ - [\_callBack](PromiseSync.md#_callback)
23
+ - [\_promises](PromiseSync.md#_promises)
24
+
25
+ ### Methods
26
+
27
+ - [add](PromiseSync.md#add)
28
+
29
+ ## Constructors
30
+
31
+ ### constructor
32
+
33
+ • **new PromiseSync**<`T`\>(`callBack`)
34
+
35
+ #### Type parameters
36
+
37
+ | Name |
38
+ | :------ |
39
+ | `T` |
40
+
41
+ #### Parameters
42
+
43
+ | Name | Type |
44
+ | :------ | :------ |
45
+ | `callBack` | [`PromiseSyncCallback`](../interfaces/PromiseSyncCallback.md)<`T`\> |
46
+
47
+ #### Defined in
48
+
49
+ src/async/PromiseSync.ts:13
50
+
51
+ ## Properties
52
+
53
+ ### \_callBack
54
+
55
+ • **\_callBack**: [`PromiseSyncCallback`](../interfaces/PromiseSyncCallback.md)<`T`\>
56
+
57
+ #### Defined in
58
+
59
+ src/async/PromiseSync.ts:8
60
+
61
+ ___
62
+
63
+ ### \_promises
64
+
65
+ • **\_promises**: `Promise`<`T`\>[]
66
+
67
+ #### Defined in
68
+
69
+ src/async/PromiseSync.ts:7
70
+
71
+ ## Methods
72
+
73
+ ### add
74
+
75
+ ▸ **add**(`promise`): `void`
76
+
77
+ Adiciona na lista de promises pendentes. Isso faz com que criemos uma nova espera.
78
+
79
+ #### Parameters
80
+
81
+ | Name | Type | Description |
82
+ | :------ | :------ | :------ |
83
+ | `promise` | `Promise`<`T`\> | Entrará na lista aguardada. |
84
+
85
+ #### Returns
86
+
87
+ `void`
88
+
89
+ #### Defined in
90
+
91
+ src/async/PromiseSync.ts:23
@@ -0,0 +1,39 @@
1
+ [@sankhyalabs/core](../README.md) / [Exports](../modules.md) / PromiseSyncCallback
2
+
3
+ # Interface: PromiseSyncCallback<T\>
4
+
5
+ Representa o callback de um sincronizador `PromiseSync<T>`.
6
+
7
+ ## Type parameters
8
+
9
+ | Name |
10
+ | :------ |
11
+ | `T` |
12
+
13
+ ## Table of contents
14
+
15
+ ### Methods
16
+
17
+ - [resolve](PromiseSyncCallback.md#resolve)
18
+
19
+ ## Methods
20
+
21
+ ### resolve
22
+
23
+ ▸ **resolve**(`result`): `void`
24
+
25
+ Será chamado sempre que todas as promessas adicionadas finalizarem.
26
+
27
+ #### Parameters
28
+
29
+ | Name | Type | Description |
30
+ | :------ | :------ | :------ |
31
+ | `result` | `PromiseSettledResult`<`Awaited`<`T`\>\>[] | A lista com o resultado de todas as promises aguardadas. |
32
+
33
+ #### Returns
34
+
35
+ `void`
36
+
37
+ #### Defined in
38
+
39
+ src/async/PromiseSync.ts:48
package/.docs/modules.md CHANGED
@@ -38,6 +38,7 @@
38
38
  - [NumberUtils](classes/NumberUtils.md)
39
39
  - [ObjectUtils](classes/ObjectUtils.md)
40
40
  - [OnboardingUtils](classes/OnboardingUtils.md)
41
+ - [PromiseSync](classes/PromiseSync.md)
41
42
  - [ReadyUtil](classes/ReadyUtil.md)
42
43
  - [RequestMetadata](classes/RequestMetadata.md)
43
44
  - [SelectionInfo](classes/SelectionInfo.md)
@@ -62,6 +63,7 @@
62
63
  - [LoadDataResponse](interfaces/LoadDataResponse.md)
63
64
  - [PageRequest](interfaces/PageRequest.md)
64
65
  - [PaginationInfo](interfaces/PaginationInfo.md)
66
+ - [PromiseSyncCallback](interfaces/PromiseSyncCallback.md)
65
67
  - [QuickFilter](interfaces/QuickFilter.md)
66
68
  - [Record](interfaces/Record.md)
67
69
  - [SavedRecord](interfaces/SavedRecord.md)
@@ -0,0 +1,29 @@
1
+ /**
2
+ * O intuito desta classe é organizar a finalização de várias
3
+ * promessas executando determinada ação (callback) com o resultado.
4
+ */
5
+ export default class PromiseSync<T> {
6
+ _promises: Array<Promise<T>>;
7
+ _callBack: PromiseSyncCallback<T>;
8
+ /**
9
+ * @param {PromiseSyncCallback<T>} callback - Será chamado sempre que todas as promises se resolverem.
10
+ */
11
+ constructor(callBack: PromiseSyncCallback<T>);
12
+ /**
13
+ * Adiciona na lista de promises pendentes. Isso faz com que criemos uma nova espera.
14
+ *
15
+ * @param {Promise<T>} promise - Entrará na lista aguardada.
16
+ */
17
+ add(promise: Promise<T>): void;
18
+ }
19
+ /**
20
+ * Representa o callback de um sincronizador `PromiseSync<T>`.
21
+ */
22
+ export interface PromiseSyncCallback<T> {
23
+ /**
24
+ * Será chamado sempre que todas as promessas adicionadas finalizarem.
25
+ *
26
+ * @param result - A lista com o resultado de todas as promises aguardadas.
27
+ */
28
+ resolve(result: PromiseSettledResult<Awaited<T>>[]): void;
29
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * O intuito desta classe é organizar a finalização de várias
3
+ * promessas executando determinada ação (callback) com o resultado.
4
+ */
5
+ export default class PromiseSync {
6
+ /**
7
+ * @param {PromiseSyncCallback<T>} callback - Será chamado sempre que todas as promises se resolverem.
8
+ */
9
+ constructor(callBack) {
10
+ this._promises = [];
11
+ this._callBack = callBack;
12
+ }
13
+ /**
14
+ * Adiciona na lista de promises pendentes. Isso faz com que criemos uma nova espera.
15
+ *
16
+ * @param {Promise<T>} promise - Entrará na lista aguardada.
17
+ */
18
+ add(promise) {
19
+ this._promises.push(promise);
20
+ Promise.allSettled(this._promises)
21
+ .then(result => {
22
+ if (result.length === this._promises.length) {
23
+ this._promises = [];
24
+ if (this._callBack) {
25
+ this._callBack.resolve(result);
26
+ }
27
+ }
28
+ });
29
+ }
30
+ }
31
+ //# sourceMappingURL=PromiseSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromiseSync.js","sourceRoot":"","sources":["../../src/async/PromiseSync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAK5B;;OAEG;IACH,YAAY,QAAgC;QACxC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,OAAmB;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;aAC7B,IAAI,CAAC,MAAM,CAAC,EAAE;YACX,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACzC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBAEpB,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBAClC;aACJ;QACL,CAAC,CACJ,CAAC;IACN,CAAC;CACJ"}
package/dist/index.d.ts CHANGED
@@ -29,4 +29,5 @@ import { JSUtils } from "./utils/JSUtils.js";
29
29
  import { DataUnitStorage } from "./dataunit/DataUnitStorage.js";
30
30
  import VersionUtils from './utils/VersionUtils.js';
31
31
  import { OnboardingUtils } from "./utils/OnboardingUtils.js";
32
- export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataUnitStorage, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface, DependencyType, ChildDescriptor, ChildLink, DataUnitAction, Action, Change, Sort, Filter, ChangeOperation, DUActionInterceptor, ApplicationContext, WaitingChange, PageRequest, QuickFilter, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, ExecutionContext, PaginationInfo, SortingProvider, SortMode, LoadDataRequest, LoadDataResponse, SelectionInfo, SelectionMode, ElementIDUtils, IElementIDInfo, UserAgentUtils, JSUtils, VersionUtils, OnboardingUtils };
32
+ import { default as PromiseSync, PromiseSyncCallback } from "./async/PromiseSync.js";
33
+ export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataUnitStorage, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface, DependencyType, ChildDescriptor, ChildLink, DataUnitAction, Action, Change, Sort, Filter, ChangeOperation, DUActionInterceptor, ApplicationContext, WaitingChange, PageRequest, QuickFilter, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, ExecutionContext, PaginationInfo, SortingProvider, SortMode, LoadDataRequest, LoadDataResponse, SelectionInfo, SelectionMode, ElementIDUtils, IElementIDInfo, UserAgentUtils, JSUtils, VersionUtils, OnboardingUtils, PromiseSync, PromiseSyncCallback };
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ import { JSUtils } from "./utils/JSUtils.js";
26
26
  import { DataUnitStorage } from "./dataunit/DataUnitStorage.js";
27
27
  import VersionUtils from './utils/VersionUtils.js';
28
28
  import { OnboardingUtils } from "./utils/OnboardingUtils.js";
29
+ import { default as PromiseSync } from "./async/PromiseSync.js";
29
30
  /*Classes públicas no pacote*/
30
- export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataUnitStorage, DataType, UserInterface, DependencyType, DataUnitAction, Action, Change, ChangeOperation, ApplicationContext, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, SortMode, SelectionInfo, SelectionMode, ElementIDUtils, UserAgentUtils, JSUtils, VersionUtils, OnboardingUtils };
31
+ export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataUnitStorage, DataType, UserInterface, DependencyType, DataUnitAction, Action, Change, ChangeOperation, ApplicationContext, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, SortMode, SelectionInfo, SelectionMode, ElementIDUtils, UserAgentUtils, JSUtils, VersionUtils, OnboardingUtils, PromiseSync };
31
32
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAAgE,aAAa,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1L,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAiC,aAAa,EAAQ,QAAQ,EAA2B,cAAc,EAA8B,MAAM,qCAAqC,CAAC;AACxL,OAAO,EAAE,cAAc,EAAE,MAAM,EAAoB,MAAM,2CAA2C,CAAC;AACrG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE5D,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EACR,eAAe,EAGf,QAAQ,EAGR,aAAa,EACb,cAAc,EAGd,cAAc,EACd,MAAM,EACN,MAAM,EAGN,eAAe,EAEf,kBAAkB,EAIlB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAIb,QAAQ,EAGR,aAAa,EACb,aAAa,EACb,cAAc,EAEd,cAAc,EACd,OAAO,EACP,YAAY,EACZ,eAAe,EAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAAgE,aAAa,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1L,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAiC,aAAa,EAAQ,QAAQ,EAA2B,cAAc,EAA8B,MAAM,qCAAqC,CAAC;AACxL,OAAO,EAAE,cAAc,EAAE,MAAM,EAAoB,MAAM,2CAA2C,CAAC;AACrG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,OAAO,IAAI,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAEnF,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EACR,eAAe,EAGf,QAAQ,EAGR,aAAa,EACb,cAAc,EAGd,cAAc,EACd,MAAM,EACN,MAAM,EAGN,eAAe,EAEf,kBAAkB,EAIlB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAIb,QAAQ,EAGR,aAAa,EACb,aAAa,EACb,cAAc,EAEd,cAAc,EACd,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,EAEd,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { StringUtils } from "./StringUtils.js";
2
+ import { NumberUtils } from './NumberUtils.js';
2
3
  /**
3
4
  * `ArrayUtils`: Utilitário com a responsabilidade de manipular Arrays.
4
5
  */
@@ -39,7 +40,18 @@ export default class ArrayUtils {
39
40
  * @returns - Array ordenado alfabeticamente..
40
41
  */
41
42
  static sortAlphabetically(originalArray, fieldName = "label") {
42
- return originalArray.sort((fieldA, fieldB) => StringUtils.compare(fieldA[fieldName], fieldB[fieldName]));
43
+ return originalArray.sort((fieldA, fieldB) => {
44
+ const valueStringA = fieldA[fieldName];
45
+ const valueStringB = fieldB[fieldName];
46
+ const valueIntA = NumberUtils.stringToNumber(valueStringA);
47
+ const valueIntB = NumberUtils.stringToNumber(valueStringB);
48
+ if (isNaN(valueIntA) || isNaN(valueIntB)) {
49
+ return StringUtils.compare(valueStringA, valueStringB);
50
+ }
51
+ else {
52
+ return NumberUtils.compare(valueIntA, valueIntB);
53
+ }
54
+ });
43
55
  }
44
56
  }
45
57
  //# sourceMappingURL=ArrayUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayUtils.js","sourceRoot":"","sources":["../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,aAAyB,EAAE,sBAA+B,IAAI,EAAE,YAAoB,OAAO;QACnI,IAAG,CAAC,QAAQ,EAAC;YACR,OAAO,aAAa,CAAC;SACxB;QACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9C,MAAM,SAAS,GAAW,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,OAAO,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,OAAO,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IACzG,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,qBAAqB,CAAC,QAAe;QAChD,OAAO,WAAW,CAAC,kCAAkC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,aAAyB,EAAE,YAAoB,OAAO;QAC5E,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7G,CAAC;CACJ"}
1
+ {"version":3,"file":"ArrayUtils.js","sourceRoot":"","sources":["../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,aAAyB,EAAE,sBAA+B,IAAI,EAAE,YAAoB,OAAO;QACnI,IAAG,CAAC,QAAQ,EAAC;YACR,OAAO,aAAa,CAAC;SACxB;QACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9C,MAAM,SAAS,GAAW,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,OAAO,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,OAAO,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IACzG,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,qBAAqB,CAAC,QAAe;QAChD,OAAO,WAAW,CAAC,kCAAkC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,aAAyB,EAAE,YAAoB,OAAO;QAC5E,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAE3C,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAEvC,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAG,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAC;gBACtC,OAAO,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;aACvD;iBAAM;gBACL,OAAO,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -100,4 +100,12 @@ export declare class NumberUtils {
100
100
  * Informo: ("100.16", 3) | 100.16
101
101
  */
102
102
  static round(value: number, decimals?: number): number;
103
+ /**
104
+ * Determina a ordem de umeros.
105
+ *
106
+ * @param a - Primeio número para comparação.
107
+ * @param b - Segundo número para comparação.
108
+ * @returns - Um numeral negativo se o primeiro argumento é menor que o segundo, zero se os dois são iguais e um numeral positivo quando o primeiro é maior que o segundo.
109
+ */
110
+ static compare(a: number, b: number): number;
103
111
  }
@@ -32,6 +32,28 @@ export class NumberUtils {
32
32
  const multiplier = Math.pow(10, decimals);
33
33
  return Math.round(value * multiplier) / multiplier;
34
34
  }
35
+ /**
36
+ * Determina a ordem de umeros.
37
+ *
38
+ * @param a - Primeio número para comparação.
39
+ * @param b - Segundo número para comparação.
40
+ * @returns - Um numeral negativo se o primeiro argumento é menor que o segundo, zero se os dois são iguais e um numeral positivo quando o primeiro é maior que o segundo.
41
+ */
42
+ static compare(a, b) {
43
+ if (a === undefined) {
44
+ return b === undefined ? 0 : 1;
45
+ }
46
+ else if (b === undefined) {
47
+ return -1;
48
+ }
49
+ if (a === null) {
50
+ return b === null ? 0 : 1;
51
+ }
52
+ else if (b === null) {
53
+ return -1;
54
+ }
55
+ return a > b ? 1 : (a < b ? -1 : 0);
56
+ }
35
57
  }
36
58
  /**
37
59
  * Converte o dado numérico de string para number.
@@ -1 +1 @@
1
- {"version":3,"file":"NumberUtils.js","sourceRoot":"","sources":["../../src/utils/NumberUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NumberUtils.js","sourceRoot":"","sources":["../../src/utils/NumberUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "5.2.0",
3
+ "version": "5.4.0",
4
4
  "description": "Modulo core JavaScript da Sankhya.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -0,0 +1,49 @@
1
+ /**
2
+ * O intuito desta classe é organizar a finalização de várias
3
+ * promessas executando determinada ação (callback) com o resultado.
4
+ */
5
+ export default class PromiseSync<T>{
6
+
7
+ _promises: Array<Promise<T>>;
8
+ _callBack: PromiseSyncCallback<T>;
9
+
10
+ /**
11
+ * @param {PromiseSyncCallback<T>} callback - Será chamado sempre que todas as promises se resolverem.
12
+ */
13
+ constructor(callBack: PromiseSyncCallback<T>) {
14
+ this._promises = [];
15
+ this._callBack = callBack;
16
+ }
17
+
18
+ /**
19
+ * Adiciona na lista de promises pendentes. Isso faz com que criemos uma nova espera.
20
+ *
21
+ * @param {Promise<T>} promise - Entrará na lista aguardada.
22
+ */
23
+ public add(promise: Promise<T>): void {
24
+ this._promises.push(promise);
25
+ Promise.allSettled(this._promises)
26
+ .then(result => {
27
+ if (result.length === this._promises.length) {
28
+ this._promises = [];
29
+
30
+ if (this._callBack) {
31
+ this._callBack.resolve(result);
32
+ }
33
+ }
34
+ }
35
+ );
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Representa o callback de um sincronizador `PromiseSync<T>`.
41
+ */
42
+ export interface PromiseSyncCallback<T> {
43
+ /**
44
+ * Será chamado sempre que todas as promessas adicionadas finalizarem.
45
+ *
46
+ * @param result - A lista com o resultado de todas as promises aguardadas.
47
+ */
48
+ resolve(result: PromiseSettledResult<Awaited<T>> []): void;
49
+ }
package/src/index.ts CHANGED
@@ -29,6 +29,7 @@ import { JSUtils } from "./utils/JSUtils.js";
29
29
  import { DataUnitStorage } from "./dataunit/DataUnitStorage.js";
30
30
  import VersionUtils from './utils/VersionUtils.js'
31
31
  import { OnboardingUtils} from "./utils/OnboardingUtils.js";
32
+ import {default as PromiseSync, PromiseSyncCallback} from "./async/PromiseSync.js";
32
33
 
33
34
  /*Classes públicas no pacote*/
34
35
  export {
@@ -84,5 +85,7 @@ export {
84
85
  UserAgentUtils,
85
86
  JSUtils,
86
87
  VersionUtils,
87
- OnboardingUtils
88
+ OnboardingUtils,
89
+ PromiseSync,
90
+ PromiseSyncCallback
88
91
  };
@@ -1,4 +1,5 @@
1
1
  import { StringUtils } from "./StringUtils.js";
2
+ import { NumberUtils } from './NumberUtils.js';
2
3
 
3
4
  /**
4
5
  * `ArrayUtils`: Utilitário com a responsabilidade de manipular Arrays.
@@ -37,11 +38,24 @@ export default class ArrayUtils {
37
38
 
38
39
  /**
39
40
  * Ordena valores de um array alfabeticamente.
40
- *
41
+ *
41
42
  * @param originalArray - Array a ser ordenado.
42
43
  * @returns - Array ordenado alfabeticamente..
43
44
  */
44
45
  static sortAlphabetically(originalArray: Array<any>, fieldName: string = "label"): Array<any>{
45
- return originalArray.sort((fieldA, fieldB) => StringUtils.compare(fieldA[fieldName], fieldB[fieldName]));
46
+ return originalArray.sort((fieldA, fieldB) => {
47
+
48
+ const valueStringA = fieldA[fieldName];
49
+ const valueStringB = fieldB[fieldName];
50
+
51
+ const valueIntA = NumberUtils.stringToNumber(valueStringA);
52
+ const valueIntB = NumberUtils.stringToNumber(valueStringB);
53
+
54
+ if(isNaN(valueIntA) || isNaN(valueIntB)){
55
+ return StringUtils.compare(valueStringA, valueStringB)
56
+ } else {
57
+ return NumberUtils.compare(valueIntA, valueIntB);
58
+ }
59
+ });
46
60
  }
47
61
  }
@@ -238,4 +238,28 @@ export class NumberUtils {
238
238
  const multiplier = 10 ** decimals;
239
239
  return Math.round(value * multiplier) / multiplier;
240
240
  }
241
+
242
+ /**
243
+ * Determina a ordem de umeros.
244
+ *
245
+ * @param a - Primeio número para comparação.
246
+ * @param b - Segundo número para comparação.
247
+ * @returns - Um numeral negativo se o primeiro argumento é menor que o segundo, zero se os dois são iguais e um numeral positivo quando o primeiro é maior que o segundo.
248
+ */
249
+ static compare(a: number, b: number): number{
250
+
251
+ if(a === undefined){
252
+ return b === undefined ? 0 : 1;
253
+ } else if(b === undefined){
254
+ return -1;
255
+ }
256
+
257
+ if(a === null){
258
+ return b === null ? 0 : 1;
259
+ } else if(b === null){
260
+ return -1;
261
+ }
262
+
263
+ return a > b ? 1 : (a < b ? -1 : 0);
264
+ }
241
265
  }