@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.
@@ -1 +1 @@
1
- {"version":3,"file":"PrettyFormatter.js","sourceRoot":"","sources":["../../../src/dataunit/formatting/PrettyFormatter.ts"],"names":[],"mappings":"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"}
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,MAuCX;AAvCD,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;IAE5B,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,EAvCW,MAAM,KAAN,MAAM,QAuCjB"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "5.8.1-dev.1",
3
+ "version": "5.9.0-dev.1",
4
4
  "description": "Modulo core JavaScript da Sankhya.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -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 = getWaitingChangePromisses(this._stateManager);
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 (!value) {
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
- return this.dispatchAction(Action.DATA_CHANGED, { [fieldName]: typedValue, records }, undefined);
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 && Object.hasOwn(value, "value")){
9
- return getSearchFormat(value, descriptor);
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
  }
@@ -44,6 +44,7 @@ export enum Action{
44
44
  CHANGING_DATA = "changingData",
45
45
  WAITING_CHANGE_CANCELED = "waitingChangeCanceled",
46
46
  DATA_CHANGED = "dataChanged",
47
+ DATA_RESOLVED = "dataResolved",
47
48
 
48
49
  EDITION_CANCELED = "editionCanceled",
49
50
  CHANGE_UNDONE = "changeUndone",