@sankhyalabs/core 2.7.1 → 2.9.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 +34 -3
- package/.docs/classes/Change.md +11 -11
- package/.docs/classes/DataUnit.md +64 -39
- package/.docs/enums/ChangeOperation.md +4 -4
- package/.docs/enums/DependencyType.md +3 -3
- package/.docs/enums/SortMode.md +2 -2
- package/.docs/enums/UserInterface.md +17 -17
- package/.docs/interfaces/DUActionInterceptor.md +1 -1
- package/.docs/interfaces/FieldDescriptor.md +11 -11
- package/.docs/interfaces/Filter.md +3 -3
- package/.docs/interfaces/PageRequest.md +3 -3
- package/.docs/interfaces/QuickFilter.md +2 -2
- package/.docs/interfaces/Record.md +2 -2
- package/.docs/interfaces/SavedRecord.md +3 -3
- package/.docs/interfaces/Sort.md +3 -3
- package/.docs/interfaces/SortingProvider.md +1 -1
- package/.docs/interfaces/UnitMetadata.md +11 -0
- package/.docs/interfaces/WaitingChange.md +3 -3
- package/dist/dataunit/DataUnit.d.ts +11 -1
- package/dist/dataunit/DataUnit.js +17 -0
- package/dist/dataunit/DataUnit.js.map +1 -1
- package/dist/dataunit/metadata/UnitMetadata.d.ts +9 -0
- package/dist/dataunit/metadata/UnitMetadata.js.map +1 -1
- package/dist/utils/ArrayUtils.d.ts +19 -0
- package/dist/utils/ArrayUtils.js +26 -0
- package/dist/utils/ArrayUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/dataunit/DataUnit.ts +19 -1
- package/src/dataunit/metadata/UnitMetadata.ts +11 -0
- package/src/utils/ArrayUtils.ts +37 -0
package/src/dataunit/DataUnit.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { convertType, toString } from "./metadata/DataType.js";
|
|
2
|
-
import { FieldDescriptor, Filter, FilterProvider, Sort, SortingProvider, UnitMetadata } from "./metadata/UnitMetadata.js";
|
|
2
|
+
import { ChildDescriptor, FieldDescriptor, Filter, FilterProvider, Sort, SortingProvider, UnitMetadata } from "./metadata/UnitMetadata.js";
|
|
3
3
|
|
|
4
4
|
import { Action, DataUnitAction, ExecutionContext } from "./state/action/DataUnitAction.js";
|
|
5
5
|
import StateManager from "./state/StateManager.js";
|
|
@@ -459,6 +459,24 @@ export default class DataUnit {
|
|
|
459
459
|
return getMetadata(this._stateManager);
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
+
/**
|
|
463
|
+
*
|
|
464
|
+
* Obtém informações da ligação para um DataUnit filho.
|
|
465
|
+
*
|
|
466
|
+
* @param name - Nome do DataUnit que se deseja.
|
|
467
|
+
*
|
|
468
|
+
* @returns - As informações sobre a ligação solicitada. Pode retornar undefined.
|
|
469
|
+
*
|
|
470
|
+
*/
|
|
471
|
+
public getChildInfo(name: string): ChildDescriptor|undefined {
|
|
472
|
+
const children = this.metadata?.children;
|
|
473
|
+
if(children == undefined){
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
return children.find(child => child.name === name);
|
|
478
|
+
}
|
|
479
|
+
|
|
462
480
|
/**
|
|
463
481
|
*
|
|
464
482
|
* Define a propriedade records da instância da classe com um novo valor e chama o método dispatchAction para notificar os observers da aplicação sobre a mudança.
|
|
@@ -4,6 +4,17 @@ export interface UnitMetadata{
|
|
|
4
4
|
name: string;
|
|
5
5
|
label: string;
|
|
6
6
|
fields: Array<FieldDescriptor>;
|
|
7
|
+
children?: Array<ChildDescriptor>
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface ChildDescriptor{
|
|
11
|
+
name: string;
|
|
12
|
+
links: Array<ChildLink>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface ChildLink{
|
|
16
|
+
source: string;
|
|
17
|
+
target: string;
|
|
7
18
|
}
|
|
8
19
|
|
|
9
20
|
export interface FieldDescriptor {
|
package/src/utils/ArrayUtils.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { StringUtils } from "./StringUtils.js";
|
|
2
|
+
|
|
3
|
+
type FilterRecursivelyParams<T> = {
|
|
4
|
+
query: string;
|
|
5
|
+
list: T[];
|
|
6
|
+
fieldName: string;
|
|
7
|
+
key: string;
|
|
8
|
+
sortAlphabetically?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
2
11
|
/**
|
|
3
12
|
* `ArrayUtils`: Utilitário com a responsabilidade de manipular Arrays.
|
|
4
13
|
*/
|
|
@@ -33,6 +42,34 @@ export default class ArrayUtils {
|
|
|
33
42
|
private static normalizeSearchString(original:string ): string{
|
|
34
43
|
return StringUtils.replaceAccentuatedCharsKeepSymbols(original.toUpperCase());
|
|
35
44
|
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Filtra um array a partir de um critério textual.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} options.query - Texto a ser usado no filtro.
|
|
50
|
+
* @param {Object[]} options.list - Lista a ser filtrada.
|
|
51
|
+
* @param {string} options.fieldName - Nome do campo onde irá ser feito a busca a partir do parâmetro `query`.
|
|
52
|
+
* @param {string} options.key - Nome do atributo onde conterá outros atributos filhos.
|
|
53
|
+
* @param {boolean} [options.sortAlphabetically=true] - Determina se o resultado deve ser ordenado ou mantido na ordem original. Por padrão ordena.
|
|
54
|
+
* @returns - Uma lista recursivamente filtrada e ordenado conforme necessidade..
|
|
55
|
+
*/
|
|
56
|
+
static applyStringFilterRecursively<ListType>({ query, list, fieldName, key, sortAlphabetically = true }: FilterRecursivelyParams<ListType>): ListType[] {
|
|
57
|
+
const normalizedArgument = ArrayUtils.normalizeSearchString(query);
|
|
58
|
+
const alphabeticalSortingList = sortAlphabetically ? ArrayUtils.sortAlphabetically(list, fieldName) : list;
|
|
59
|
+
|
|
60
|
+
const recursiveReducer = (initialList: ListType[], item: any) => {
|
|
61
|
+
const itemValue = ArrayUtils.normalizeSearchString(item[fieldName]);
|
|
62
|
+
if (itemValue.includes(normalizedArgument)) {
|
|
63
|
+
initialList.push(item);
|
|
64
|
+
return initialList;
|
|
65
|
+
}
|
|
66
|
+
item[key] = Array.isArray(item[key]) ? item[key].reduce(recursiveReducer, []) : [];
|
|
67
|
+
if (item[key].length) initialList.push({ ...item, [key]: item[key] });
|
|
68
|
+
return initialList;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return alphabeticalSortingList.reduce(recursiveReducer, []);
|
|
72
|
+
}
|
|
36
73
|
|
|
37
74
|
/**
|
|
38
75
|
* Ordena valores de um array alfabeticamente.
|