@sankhyalabs/core 5.8.1-dev.1 → 5.9.0-dev.1
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/Change.md +11 -11
- package/.docs/classes/DataUnit.md +129 -103
- package/.docs/classes/SelectionInfo.md +11 -11
- package/.docs/enums/Action.md +23 -12
- package/.docs/enums/ChangeOperation.md +4 -4
- package/.docs/enums/SelectionMode.md +2 -2
- package/.docs/interfaces/DUActionInterceptor.md +1 -1
- package/.docs/interfaces/PageRequest.md +3 -3
- package/.docs/interfaces/QuickFilter.md +3 -3
- package/.docs/interfaces/Record.md +4 -4
- package/.docs/interfaces/SavedRecord.md +5 -5
- package/.docs/interfaces/WaitingChange.md +3 -3
- package/dist/dataunit/DataUnit.d.ts +2 -0
- package/dist/dataunit/DataUnit.js +22 -3
- package/dist/dataunit/DataUnit.js.map +1 -1
- package/dist/dataunit/formatting/PrettyFormatter.js +8 -2
- package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -1
- package/dist/dataunit/state/action/DataUnitAction.d.ts +1 -0
- package/dist/dataunit/state/action/DataUnitAction.js +1 -0
- package/dist/dataunit/state/action/DataUnitAction.js.map +1 -1
- package/package.json +1 -1
- package/src/dataunit/DataUnit.ts +25 -4
- package/src/dataunit/formatting/PrettyFormatter.ts +9 -2
- package/src/dataunit/state/action/DataUnitAction.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrettyFormatter.js","sourceRoot":"","sources":["../../../src/dataunit/formatting/PrettyFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAmB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAE;IAC1E,IAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,MAAK,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"PrettyFormatter.js","sourceRoot":"","sources":["../../../src/dataunit/formatting/PrettyFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export declare enum Action {
|
|
|
24
24
|
CHANGING_DATA = "changingData",
|
|
25
25
|
WAITING_CHANGE_CANCELED = "waitingChangeCanceled",
|
|
26
26
|
DATA_CHANGED = "dataChanged",
|
|
27
|
+
DATA_RESOLVED = "dataResolved",
|
|
27
28
|
EDITION_CANCELED = "editionCanceled",
|
|
28
29
|
CHANGE_UNDONE = "changeUndone",
|
|
29
30
|
CHANGE_REDONE = "changeRedone",
|
|
@@ -25,6 +25,7 @@ export var Action;
|
|
|
25
25
|
Action["CHANGING_DATA"] = "changingData";
|
|
26
26
|
Action["WAITING_CHANGE_CANCELED"] = "waitingChangeCanceled";
|
|
27
27
|
Action["DATA_CHANGED"] = "dataChanged";
|
|
28
|
+
Action["DATA_RESOLVED"] = "dataResolved";
|
|
28
29
|
Action["EDITION_CANCELED"] = "editionCanceled";
|
|
29
30
|
Action["CHANGE_UNDONE"] = "changeUndone";
|
|
30
31
|
Action["CHANGE_REDONE"] = "changeRedone";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataUnitAction.js","sourceRoot":"","sources":["../../../../src/dataunit/state/action/DataUnitAction.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAKvB,YAAY,IAAY,EAAE,OAAY;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAMD,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"DataUnitAction.js","sourceRoot":"","sources":["../../../../src/dataunit/state/action/DataUnitAction.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAKvB,YAAY,IAAY,EAAE,OAAY;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAMD,MAAM,CAAN,IAAY,MAwCX;AAxCD,WAAY,MAAM;IAEd,8CAAoC,CAAA;IACpC,4CAAkC,CAAA;IAElC,sCAA4B,CAAA;IAC5B,oCAA0B,CAAA;IAE1B,oCAA0B,CAAA;IAC1B,kCAAwB,CAAA;IAExB,8CAAoC,CAAA;IACpC,4CAAkC,CAAA;IAElC,wCAA8B,CAAA;IAC9B,0CAAgC,CAAA;IAEhC,wCAA8B,CAAA;IAC9B,2DAAiD,CAAA;IACjD,sCAA4B,CAAA;IAC5B,wCAA8B,CAAA;IAE9B,8CAAoC,CAAA;IACpC,wCAA8B,CAAA;IAC9B,wCAA8B,CAAA;IAE9B,gDAAsC,CAAA;IACtC,wCAA8B,CAAA;IAC9B,gDAAsC,CAAA;IAEtC,wCAA8B,CAAA;IAE9B,0CAAgC,CAAA;IAChC,wCAA8B,CAAA;IAE9B,wCAA8B,CAAA;IAE9B,gDAAsC,CAAA;IACtC,8CAAoC,CAAA;AAExC,CAAC,EAxCW,MAAM,KAAN,MAAM,QAwCjB"}
|
package/package.json
CHANGED
package/src/dataunit/DataUnit.ts
CHANGED
|
@@ -43,6 +43,7 @@ export default class DataUnit {
|
|
|
43
43
|
private _childByName = new Map<string, DataUnit>();
|
|
44
44
|
private _parentDataUnit: DataUnit | undefined;
|
|
45
45
|
private _loadingLockers: Promise<void>[];
|
|
46
|
+
private _savingLockers: Promise<any>[] = [];
|
|
46
47
|
|
|
47
48
|
public metadataLoader?: (dataUnit: DataUnit) => Promise<UnitMetadata>;
|
|
48
49
|
public dataLoader?: (dataUnit: DataUnit, request: LoadDataRequest) => Promise<LoadDataResponse>;
|
|
@@ -350,6 +351,12 @@ export default class DataUnit {
|
|
|
350
351
|
}));
|
|
351
352
|
}
|
|
352
353
|
|
|
354
|
+
private getBeforeSavePromisses(): Array<Promise<any>|undefined>{
|
|
355
|
+
let promises = getWaitingChangePromisses(this._stateManager)||[];
|
|
356
|
+
promises = promises.concat(this._savingLockers);
|
|
357
|
+
return promises;
|
|
358
|
+
}
|
|
359
|
+
|
|
353
360
|
/**
|
|
354
361
|
*
|
|
355
362
|
* Salva o estado do registro do DataUnit.
|
|
@@ -369,9 +376,10 @@ export default class DataUnit {
|
|
|
369
376
|
if (this.isDirty()) {
|
|
370
377
|
|
|
371
378
|
if (await this.notifySavingData(executionCtx)) {
|
|
372
|
-
const promisses =
|
|
379
|
+
const promisses = this.getBeforeSavePromisses();
|
|
373
380
|
return new Promise((resolve, fail) => {
|
|
374
381
|
Promise.all(promisses || []).then(() => {
|
|
382
|
+
this._savingLockers = [];
|
|
375
383
|
if (this.saveLoader) {
|
|
376
384
|
const changes: Array<Change> = this.getAllChangesToSave();
|
|
377
385
|
|
|
@@ -387,7 +395,7 @@ export default class DataUnit {
|
|
|
387
395
|
dispatchPromisses.push(ownerDataUnit.dispatchAction(Action.DATA_SAVED, { changes: changesByDataUnit, records: splittedRecords }, executionCtx));
|
|
388
396
|
}
|
|
389
397
|
}
|
|
390
|
-
Promise.all(dispatchPromisses).then(() => resolve())
|
|
398
|
+
Promise.all(dispatchPromisses).then(() => resolve());
|
|
391
399
|
}).catch(cause => {
|
|
392
400
|
const {errorCode} = cause;
|
|
393
401
|
fail(new ErrorException("Erro ao salvar alterações", cause, errorCode));
|
|
@@ -563,7 +571,7 @@ export default class DataUnit {
|
|
|
563
571
|
public getFormattedValue(fieldName: string, value?: any): string {
|
|
564
572
|
|
|
565
573
|
const descriptor = this.getField(fieldName);
|
|
566
|
-
if (
|
|
574
|
+
if (value == undefined) {
|
|
567
575
|
value = this.getFieldValue(fieldName);
|
|
568
576
|
} else if (typeof value === "string" && descriptor?.dataType != DataType.TEXT){
|
|
569
577
|
value = this.valueFromString(fieldName, value);
|
|
@@ -841,9 +849,22 @@ export default class DataUnit {
|
|
|
841
849
|
|
|
842
850
|
const typedValue = this.validateAndTypeValue(fieldName, newValue);
|
|
843
851
|
const currentValue = this.getFieldValue(fieldName);
|
|
852
|
+
|
|
853
|
+
if(newValue instanceof Promise){
|
|
854
|
+
const promise:Promise<boolean> = new Promise(accept => {
|
|
855
|
+
newValue.then(resolvedValue => {
|
|
856
|
+
this.dispatchAction(Action.DATA_RESOLVED, { [fieldName]: resolvedValue, records }, undefined);
|
|
857
|
+
accept(this.setFieldValue(fieldName, resolvedValue, records));
|
|
858
|
+
});
|
|
859
|
+
});
|
|
860
|
+
this._savingLockers.push(promise);
|
|
861
|
+
return promise;
|
|
862
|
+
}
|
|
844
863
|
|
|
845
864
|
if (currentValue !== typedValue) {
|
|
846
|
-
|
|
865
|
+
const promise = this.dispatchAction(Action.DATA_CHANGED, { [fieldName]: typedValue, records }, undefined);
|
|
866
|
+
this._savingLockers.push(promise);
|
|
867
|
+
return promise;
|
|
847
868
|
}
|
|
848
869
|
|
|
849
870
|
return Promise.resolve(false);
|
|
@@ -5,8 +5,11 @@ import { DataType, toString } from "../metadata/DataType.js";
|
|
|
5
5
|
import { FieldDescriptor, UserInterface } from "../metadata/UnitMetadata.js";
|
|
6
6
|
|
|
7
7
|
export const getFormattedValue = (value: any, descriptor?: FieldDescriptor) => {
|
|
8
|
-
if(descriptor?.dataType === DataType.OBJECT
|
|
9
|
-
|
|
8
|
+
if(descriptor?.dataType === DataType.OBJECT){
|
|
9
|
+
if(Object.hasOwn(value, "value")){
|
|
10
|
+
return getSearchFormat(value, descriptor);
|
|
11
|
+
}
|
|
12
|
+
return value == undefined ? "" : value.toString();
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
if(descriptor?.userInterface === UserInterface.OPTIONSELECTOR){
|
|
@@ -75,6 +78,10 @@ const getOptionFormat = (value: any, descriptor: FieldDescriptor) => {
|
|
|
75
78
|
prop.forEach(opt => options[opt.label] = opt.value);
|
|
76
79
|
}
|
|
77
80
|
|
|
81
|
+
if(typeof value === "object"){
|
|
82
|
+
value = value.value
|
|
83
|
+
}
|
|
84
|
+
|
|
78
85
|
if(options && Object.hasOwn(options, value)){
|
|
79
86
|
return options[value];
|
|
80
87
|
}
|