@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.
- package/.docs/classes/ArrayUtils.md +3 -3
- package/.docs/classes/NumberUtils.md +26 -0
- package/.docs/classes/PromiseSync.md +91 -0
- package/.docs/interfaces/PromiseSyncCallback.md +39 -0
- package/.docs/modules.md +2 -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/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/ArrayUtils.js +13 -1
- package/dist/utils/ArrayUtils.js.map +1 -1
- package/dist/utils/NumberUtils.d.ts +8 -0
- package/dist/utils/NumberUtils.js +22 -0
- package/dist/utils/NumberUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/async/PromiseSync.ts +49 -0
- package/src/index.ts +4 -1
- package/src/utils/ArrayUtils.ts +16 -2
- package/src/utils/NumberUtils.ts +24 -0
|
@@ -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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/utils/ArrayUtils.js
CHANGED
|
@@ -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) =>
|
|
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,
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,mCAAmC,GAAW,qCAAqC,CAAC;AAE1F;;GAEG;AACH,MAAM,OAAO,WAAW;IA6MpB;;;;;;;;;;;;;;;;;;;;;;;MAuBE;IACF,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,WAAmB,CAAC;QAC5C,MAAM,UAAU,GAAG,SAAA,EAAE,EAAI,QAAQ,CAAA,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;IACvD,CAAC;;
|
|
1
|
+
{"version":3,"file":"NumberUtils.js","sourceRoot":"","sources":["../../src/utils/NumberUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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
|
};
|
package/src/utils/ArrayUtils.ts
CHANGED
|
@@ -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) =>
|
|
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
|
}
|
package/src/utils/NumberUtils.ts
CHANGED
|
@@ -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
|
}
|