@sankhyalabs/core 1.0.24 → 1.0.27

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.
Files changed (40) hide show
  1. package/dist/application/Application.d.ts +8 -0
  2. package/dist/application/Application.js +19 -0
  3. package/dist/application/Application.js.map +1 -0
  4. package/dist/dataunit/DataUnit.js.map +1 -1
  5. package/dist/http/data-fetcher/HttpFetcher.d.ts +13 -0
  6. package/dist/http/data-fetcher/HttpFetcher.js +174 -0
  7. package/dist/http/data-fetcher/HttpFetcher.js.map +1 -0
  8. package/dist/http/data-fetcher/default/application-config-fetcher.d.ts +6 -0
  9. package/dist/http/data-fetcher/default/application-config-fetcher.js +21 -0
  10. package/dist/http/data-fetcher/default/application-config-fetcher.js.map +1 -0
  11. package/dist/http/data-fetcher/default/dataunit-fetcher.d.ts +9 -0
  12. package/dist/http/data-fetcher/default/dataunit-fetcher.js +45 -0
  13. package/dist/http/data-fetcher/default/dataunit-fetcher.js.map +1 -0
  14. package/dist/http/data-fetcher/default/form-config-fetcher.d.ts +2 -0
  15. package/dist/http/data-fetcher/default/form-config-fetcher.js +3 -0
  16. package/dist/http/data-fetcher/default/form-config-fetcher.js.map +1 -0
  17. package/dist/http/data-fetcher/default/grid-config-fetcher.d.ts +2 -0
  18. package/dist/http/data-fetcher/default/grid-config-fetcher.js +3 -0
  19. package/dist/http/data-fetcher/default/grid-config-fetcher.js.map +1 -0
  20. package/dist/http/data-fetcher/state/LoadStateManager.d.ts +23 -0
  21. package/dist/http/data-fetcher/state/LoadStateManager.js +74 -0
  22. package/dist/http/data-fetcher/state/LoadStateManager.js.map +1 -0
  23. package/dist/index.d.ts +6 -1
  24. package/dist/index.js +6 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/utils/StringUtils.d.ts +6 -0
  27. package/dist/utils/StringUtils.js +31 -0
  28. package/dist/utils/StringUtils.js.map +1 -1
  29. package/package.json +5 -2
  30. package/src/application/Application.ts +22 -0
  31. package/src/dataunit/DataUnit.ts +0 -1
  32. package/src/http/data-fetcher/HttpFetcher.ts +174 -0
  33. package/src/http/data-fetcher/default/application-config-fetcher.ts +26 -0
  34. package/src/http/data-fetcher/default/dataunit-fetcher.ts +52 -0
  35. package/src/http/data-fetcher/default/form-config-fetcher.ts +3 -0
  36. package/src/http/data-fetcher/default/grid-config-fetcher.ts +3 -0
  37. package/src/http/data-fetcher/state/LoadStateManager.ts +74 -0
  38. package/src/index.ts +11 -0
  39. package/src/utils/StringUtils.ts +36 -3
  40. package/test/util/StringUtils.spec.ts +42 -33
@@ -0,0 +1,8 @@
1
+ export declare class Application {
2
+ private static instance;
3
+ private static element;
4
+ private constructor();
5
+ static get(): Application;
6
+ onLoaded(listener: Function): void;
7
+ getResourceID(): string;
8
+ }
@@ -0,0 +1,19 @@
1
+ export class Application {
2
+ constructor() { }
3
+ static get() {
4
+ if (Application.instance === undefined) {
5
+ Application.instance = new Application();
6
+ Application.element = document.querySelector('ez-application');
7
+ }
8
+ return Application.instance;
9
+ }
10
+ onLoaded(listener) {
11
+ var _a;
12
+ (_a = Application.element) === null || _a === void 0 ? void 0 : _a.addEventListener('applicationLoaded', () => listener());
13
+ }
14
+ getResourceID() {
15
+ return "br.com.sankhya.mge.cad.parceiro"; //TODO: Remover mock
16
+ }
17
+ }
18
+ Application.element = null;
19
+ //# sourceMappingURL=Application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../src/application/Application.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAGpB,gBAAsB,CAAC;IAEhB,MAAM,CAAC,GAAG;QACb,IAAG,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAC;YAClC,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;YACzC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;SAClE;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,QAAQ,CAAC,QAAiB;;QAC7B,MAAA,WAAW,CAAC,OAAO,0CAAE,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,CAAC;IAEM,aAAa;QAChB,OAAO,iCAAiC,CAAC,CAAC,oBAAoB;IAClE,CAAC;;AAjBc,mBAAO,GAAkB,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataUnit.js","sourceRoot":"","sources":["../../src/dataunit/DataUnit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAG5G,MAAM,CAAC,OAAO,OAAO,QAAQ;IAYzB,YAAY,IAAY;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CACjC;YACI,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,qBAAqB;YACrB,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,qBAAqB;SACxB,CACJ,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,mBAAmB;IACX,oBAAoB,CAAC,SAAiB,EAAE,QAAa;QACzD,yCAAyC;QACzC,MAAM,UAAU,GAAgC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9E,CAAC;IAEO,UAAU;QACd,IAAI,OAAO,GAA8B,SAAS,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAG,CAAC,EAAC;gBACD,OAAO,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,OAAO;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IAED,UAAU;IACH,YAAY;QACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CACvC,CAAC;SACL;IACL,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAC,EAAE;YAChC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAC3C,OAAO,CAAC,EAAE;oBACN,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC,CACJ,CAAC,KAAK,CAAC,GAAE,EAAE,CAAA,IAAI,EAAE,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ;QAEX,MAAM,OAAO,GAAkB,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAC1E,CAAC;aACL;SACJ;IACL,CAAC;IAED,MAAM;IACC,iBAAiB,CAAC,QAAwB;QAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,IAAW,eAAe,CAAC,QAAyB;QAChD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,IAAW,QAAQ,CAAC,EAAgB;QAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,OAAO,CAAC,CAAgB;QAC/B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAW,OAAO;QACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;IAEM,QAAQ,CAAC,SAAiB;QAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAEM,SAAS;QACZ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAEM,qBAAqB;QACxB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;SAC1D;IACL,CAAC;IAEM,aAAa,CAAC,SAAiB;QAClC,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,SAAiB,EAAE,QAAa,EAAE,OAAuB;QAE1E,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,YAAY,KAAK,UAAU,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;SAClF;IACL,CAAC;IAEM,YAAY;QACf,OAAO,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAEM,YAAY,CAAC,SAAwB;QACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEM,mBAAmB,CAAC,SAAwB;QAC/C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,cAAc;QACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW;QACd,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B;IAClB,cAAc,CAAC,UAAkB,EAAE,OAAa;QACpD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvD,aAAa;QACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEM,SAAS,CAAC,QAA0C;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,QAAkB;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;CAEJ;AAYD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,yDAAM,CAAA;IACN,yDAAM,CAAA;IACN,yDAAM,CAAA;AACV,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,OAAO,MAAM;IAQf,YAAY,QAAgB,EAAE,MAAc,EAAE,OAAY,EAAE,SAA0B;QAClF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,MAAM,CAAC;IACtD,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,MAAM,CAAC;IACtD,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,MAAM,CAAC;IACtD,CAAC;CAEJ"}
1
+ {"version":3,"file":"DataUnit.js","sourceRoot":"","sources":["../../src/dataunit/DataUnit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAG5G,MAAM,CAAC,OAAO,OAAO,QAAQ;IAYzB,YAAY,IAAY;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CACjC;YACI,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,qBAAqB;YACrB,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,qBAAqB;SACxB,CACJ,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,mBAAmB;IACX,oBAAoB,CAAC,SAAiB,EAAE,QAAa;QACzD,yCAAyC;QACzC,MAAM,UAAU,GAAgC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9E,CAAC;IAEO,UAAU;QACd,IAAI,OAAO,GAA8B,SAAS,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAG,CAAC,EAAC;gBACD,OAAO,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,OAAO;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IAED,UAAU;IACH,YAAY;QACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CACvC,CAAC;SACL;IACL,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAC,EAAE;YAChC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAC3C,OAAO,CAAC,EAAE;oBACN,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC,CACJ,CAAC,KAAK,CAAC,GAAE,EAAE,CAAA,IAAI,EAAE,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ;QAEX,MAAM,OAAO,GAAkB,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAC1E,CAAC;aACL;SACJ;IACL,CAAC;IAED,MAAM;IACC,iBAAiB,CAAC,QAAwB;QAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,IAAW,eAAe,CAAC,QAAyB;QAChD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,IAAW,QAAQ,CAAC,EAAgB;QAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,OAAO,CAAC,CAAgB;QAC/B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAW,OAAO;QACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;IAEM,QAAQ,CAAC,SAAiB;QAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAEM,SAAS;QACZ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAEM,qBAAqB;QACxB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;SAC1D;IACL,CAAC;IAEM,aAAa,CAAC,SAAiB;QAClC,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,SAAiB,EAAE,QAAa,EAAE,OAAuB;QAE1E,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,YAAY,KAAK,UAAU,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;SAClF;IACL,CAAC;IAEM,YAAY;QACf,OAAO,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAEM,YAAY,CAAC,SAAwB;QACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEM,mBAAmB,CAAC,SAAwB;QAC/C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,cAAc;QACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW;QACd,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,OAAO;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B;IAClB,cAAc,CAAC,UAAkB,EAAE,OAAa;QACpD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvD,aAAa;QACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEM,SAAS,CAAC,QAA0C;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,QAAkB;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;CACJ;AAYD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,yDAAM,CAAA;IACN,yDAAM,CAAA;IACN,yDAAM,CAAA;AACV,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,OAAO,MAAM;IAQf,YAAY,QAAgB,EAAE,MAAc,EAAE,OAAY,EAAE,SAA0B;QAClF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,MAAM,CAAC;IACtD,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,MAAM,CAAC;IACtD,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,MAAM,CAAC;IACtD,CAAC;CAEJ"}
@@ -0,0 +1,13 @@
1
+ export declare class HttpFetcher {
2
+ private static instance;
3
+ private static loadStateManager;
4
+ private static watingRequestsById;
5
+ private constructor();
6
+ static get(): HttpFetcher;
7
+ callGraphQL(req: any): Promise<any>;
8
+ private getReqKey;
9
+ private static getQueryTemplate;
10
+ private static getWatingRequest;
11
+ private onApplicationLoaded;
12
+ private hashCode;
13
+ }
@@ -0,0 +1,174 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { LoadStateManager, LoadType } from "./state/LoadStateManager";
11
+ import { DataType } from "./../../dataunit/metadata/DataType";
12
+ import { UserInterface } from "./../../dataunit/metadata/UnitMetadata";
13
+ import { batchRequests } from 'graphql-request';
14
+ export class HttpFetcher {
15
+ constructor() {
16
+ HttpFetcher.loadStateManager = LoadStateManager.get(LoadType.APP_LOAD);
17
+ HttpFetcher.loadStateManager.onLoaded(this.onApplicationLoaded);
18
+ }
19
+ static get() {
20
+ if (!HttpFetcher.instance) {
21
+ HttpFetcher.instance = new HttpFetcher();
22
+ }
23
+ return HttpFetcher.instance;
24
+ }
25
+ callGraphQL(req) {
26
+ var _a;
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ if (HttpFetcher.loadStateManager.isPreInitialize()) {
29
+ const reqKey = this.getReqKey(req);
30
+ req.queryID = reqKey;
31
+ req.values.queryID = reqKey;
32
+ if (!HttpFetcher.watingRequestsById.has(reqKey)) {
33
+ HttpFetcher.watingRequestsById.set(reqKey, new WaitingRequest(req));
34
+ }
35
+ return (_a = HttpFetcher.getWatingRequest(reqKey)) === null || _a === void 0 ? void 0 : _a.promise;
36
+ }
37
+ else {
38
+ //TODO: fazer chamada direta para graphQL
39
+ return new Promise(function (resolve) {
40
+ const md = {
41
+ name: "dd://br.com.sankhya.cad.parceiro/Parceiro",
42
+ label: "Parceiro",
43
+ fields: [
44
+ {
45
+ name: "CODPARC",
46
+ label: "Cód. Parceiro",
47
+ dataType: DataType.NUMBER
48
+ },
49
+ {
50
+ name: "NOMEPARC",
51
+ label: "Nome",
52
+ dataType: DataType.TEXT,
53
+ userInterface: UserInterface.LONGTEXT,
54
+ required: true
55
+ },
56
+ {
57
+ name: "P",
58
+ label: "pera",
59
+ dataType: DataType.TEXT,
60
+ userInterface: UserInterface.OPTIONSELECTOR,
61
+ properties: { options: `{"M": "Madura", "V": "Verde", "P": "Passada"}` }
62
+ },
63
+ {
64
+ name: "ME",
65
+ label: "ME",
66
+ dataType: DataType.NUMBER,
67
+ userInterface: UserInterface.DECIMALNUMBER,
68
+ properties: { precision: 4, prettyPrecision: 1 }
69
+ }
70
+ ]
71
+ };
72
+ setTimeout(() => resolve(md));
73
+ });
74
+ }
75
+ });
76
+ }
77
+ getReqKey(req) {
78
+ return window.btoa(this.hashCode(`${req.query}${JSON.stringify(req.values || "")}`)).replaceAll("=", "");
79
+ }
80
+ static getQueryTemplate(re) {
81
+ return (re.query || "").replaceAll("$queryAlias$", re.queryID);
82
+ }
83
+ static getWatingRequest(reqID) {
84
+ return HttpFetcher.watingRequestsById.get(reqID);
85
+ }
86
+ onApplicationLoaded() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const requestsBatch = [];
89
+ HttpFetcher.watingRequestsById.forEach((waitingReq) => __awaiter(this, void 0, void 0, function* () {
90
+ let query = HttpFetcher.getQueryTemplate(waitingReq.request);
91
+ requestsBatch.push({ document: query, variables: Object.assign({}, waitingReq.request.values) });
92
+ }));
93
+ let res = undefined;
94
+ let dataResponse = [];
95
+ let errorsResponse = [];
96
+ try {
97
+ res = yield batchRequests('http://localhost:8082/', requestsBatch);
98
+ res.forEach((resItem) => {
99
+ dataResponse.push(resItem.data);
100
+ });
101
+ }
102
+ catch (err) {
103
+ res = err.response;
104
+ const req = err.request;
105
+ Object.entries(res).forEach(([key, val]) => {
106
+ if (val.errors) {
107
+ errorsResponse.push(val.errors.map((item) => {
108
+ item.request = req;
109
+ item.index = Number(key);
110
+ return item;
111
+ }));
112
+ }
113
+ else if (val.data) {
114
+ dataResponse.push(val.data);
115
+ }
116
+ });
117
+ }
118
+ //Reject primises with errors from query
119
+ errorsResponse.forEach((errorResponse) => {
120
+ Object.entries(errorResponse).forEach(([key, val]) => {
121
+ var _a;
122
+ (((_a = HttpFetcher.getWatingRequest(val.request.variables[val.index].queryID)) === null || _a === void 0 ? void 0 : _a.reject) || Promise.reject)(val);
123
+ });
124
+ });
125
+ //Resolve primises with data from query
126
+ dataResponse.forEach((data) => {
127
+ Object.entries(data).forEach(([key, val]) => {
128
+ var _a;
129
+ (((_a = HttpFetcher.getWatingRequest(key)) === null || _a === void 0 ? void 0 : _a.resolve) || Promise.resolve)(val);
130
+ });
131
+ });
132
+ HttpFetcher.watingRequestsById.clear();
133
+ });
134
+ }
135
+ //TODO: Mover este metodo para o @sankhyalabs/core classe string utils.
136
+ hashCode(txt) {
137
+ var hash = 0, i, chr;
138
+ if (txt.length === 0)
139
+ return hash.toString();
140
+ for (i = 0; i < txt.length; i++) {
141
+ chr = txt.charCodeAt(i);
142
+ hash = ((hash << 5) - hash) + chr;
143
+ hash |= 0; // Convert to 32bit integer
144
+ }
145
+ return hash.toString();
146
+ }
147
+ ;
148
+ }
149
+ HttpFetcher.watingRequestsById = new Map();
150
+ class WaitingRequest {
151
+ constructor(req) {
152
+ this._resolve = () => { };
153
+ this._reject = () => { };
154
+ this._request = undefined;
155
+ this._request = req;
156
+ this._promisse = new Promise((resolve, reject) => {
157
+ this._resolve = resolve;
158
+ this._reject = reject;
159
+ });
160
+ }
161
+ get resolve() {
162
+ return this._resolve;
163
+ }
164
+ get reject() {
165
+ return this._reject;
166
+ }
167
+ get promise() {
168
+ return this._promisse;
169
+ }
170
+ get request() {
171
+ return this._request;
172
+ }
173
+ }
174
+ //# sourceMappingURL=HttpFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpFetcher.js","sourceRoot":"","sources":["../../../src/http/data-fetcher/HttpFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class ApplicationConfigFetcher {
2
+ private templateByQuery;
3
+ constructor();
4
+ private buldTemplates;
5
+ getResource(name: string, resourceID: string): Promise<any>;
6
+ }
@@ -0,0 +1,21 @@
1
+ import { gql } from 'graphql-request';
2
+ import { HttpFetcher } from '../HttpFetcher';
3
+ export class ApplicationConfigFetcher {
4
+ constructor() {
5
+ this.templateByQuery = new Map();
6
+ this.buldTemplates();
7
+ }
8
+ buldTemplates() {
9
+ this.templateByQuery.set('getResource', gql `query($name: String!) {
10
+ $queryAlias$: getResource(name: $name){
11
+ name
12
+ resource
13
+ }
14
+ }`);
15
+ }
16
+ getResource(name, resourceID) {
17
+ const completPath = `cfg://app/${resourceID}/${name}`;
18
+ return HttpFetcher.get().callGraphQL({ values: { "name": completPath }, query: this.templateByQuery.get("getResource") });
19
+ }
20
+ }
21
+ //# sourceMappingURL=application-config-fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-config-fetcher.js","sourceRoot":"","sources":["../../../../src/http/data-fetcher/default/application-config-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,wBAAwB;IAIjC;QAFQ,oBAAe,GAAuB,IAAI,GAAG,EAAkB,CAAC;QAGpE,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC;;;;;UAK1C,CAAC,CAAC;IACR,CAAC;IAEM,WAAW,CAAC,IAAW,EAAE,UAAiB;QAC7C,MAAM,WAAW,GAAG,aAAa,UAAU,IAAI,IAAI,EAAE,CAAC;QACtD,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAG,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC;IAC9H,CAAC;CAEJ"}
@@ -0,0 +1,9 @@
1
+ import { UnitMetadata } from "../../../dataunit/metadata/UnitMetadata";
2
+ import DataUnit from "../../../dataunit/DataUnit";
3
+ export declare class DataUnitFetcher {
4
+ private templateByQuery;
5
+ constructor();
6
+ private buldTemplates;
7
+ getDataUnit(name: string, resourceID: string): Promise<UnitMetadata>;
8
+ static bindTo(dataUnit: DataUnit, resourceID: string): DataUnitFetcher;
9
+ }
@@ -0,0 +1,45 @@
1
+ import { HttpFetcher } from "../HttpFetcher";
2
+ import { gql } from 'graphql-request';
3
+ export class DataUnitFetcher {
4
+ constructor() {
5
+ this.templateByQuery = new Map();
6
+ this.buldTemplates();
7
+ }
8
+ buldTemplates() {
9
+ this.templateByQuery.set('getDataUnit', gql `query($name: String!) {
10
+ $queryAlias$: getDataUnit(name: $name){
11
+ name,
12
+ cardinality,
13
+ fields{
14
+ name,
15
+ defaultValue,
16
+ label,
17
+ readOnly,
18
+ required,
19
+ dataType,
20
+ userInterface,
21
+ properties{
22
+ name,
23
+ value
24
+ },
25
+ dependencies{
26
+ masterFields,
27
+ type,
28
+ expression
29
+ }
30
+ }
31
+ }
32
+ }`);
33
+ }
34
+ getDataUnit(name, resourceID) {
35
+ const completPath = `dd://${resourceID}/${name}`;
36
+ return HttpFetcher.get().callGraphQL({ values: { "name": completPath }, query: this.templateByQuery.get("getDataUnit") });
37
+ }
38
+ static bindTo(dataUnit, resourceID) {
39
+ const du = new DataUnitFetcher();
40
+ dataUnit.metadataLoader = (name) => du.getDataUnit(name, resourceID);
41
+ //TODO: Implementar bind dos demais métodos.
42
+ return du;
43
+ }
44
+ }
45
+ //# sourceMappingURL=dataunit-fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataunit-fetcher.js","sourceRoot":"","sources":["../../../../src/http/data-fetcher/default/dataunit-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,MAAM,OAAO,eAAe;IAIxB;QAFQ,oBAAe,GAAuB,IAAI,GAAG,EAAkB,CAAC;QAGpE,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;YAuBxC,CAAC,CAAC;IACV,CAAC;IAEM,WAAW,CAAC,IAAW,EAAE,UAAiB;QAC7C,MAAM,WAAW,GAAG,QAAQ,UAAU,IAAI,IAAI,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAG,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC;IAC9H,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,QAAiB,EAAE,UAAiB;QACrD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,cAAc,GAAG,CAAC,IAAW,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5E,4CAA4C;QAC5C,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare class FormConfigFetcher {
2
+ }
@@ -0,0 +1,3 @@
1
+ export class FormConfigFetcher {
2
+ }
3
+ //# sourceMappingURL=form-config-fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-config-fetcher.js","sourceRoot":"","sources":["../../../../src/http/data-fetcher/default/form-config-fetcher.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;CAE7B"}
@@ -0,0 +1,2 @@
1
+ export declare class GridConfigFetcher {
2
+ }
@@ -0,0 +1,3 @@
1
+ export class GridConfigFetcher {
2
+ }
3
+ //# sourceMappingURL=grid-config-fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-config-fetcher.js","sourceRoot":"","sources":["../../../../src/http/data-fetcher/default/grid-config-fetcher.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;CAE7B"}
@@ -0,0 +1,23 @@
1
+ export declare class LoadStateManager {
2
+ private static instanceByStatus;
3
+ private _state;
4
+ private _application;
5
+ private static listenersByType;
6
+ private constructor();
7
+ private onStatusChange;
8
+ private addListener;
9
+ onPreInitialize(listener: () => void): LoadStateManager;
10
+ onLoaded(listener: () => void): LoadStateManager;
11
+ getStatus(): LoadStatus;
12
+ isPreInitialize(): boolean;
13
+ isLoaded(): boolean;
14
+ static get(type?: LoadType): LoadStateManager;
15
+ }
16
+ export declare enum LoadStatus {
17
+ DOM_LOADED = "DOM_LOADED",
18
+ PRE_INITIALIZE = "PRE_INITIALIZE",
19
+ LOADED = "LOADED"
20
+ }
21
+ export declare enum LoadType {
22
+ APP_LOAD = "APP_LOAD"
23
+ }
@@ -0,0 +1,74 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Application } from './../../../application/Application';
11
+ export class LoadStateManager {
12
+ constructor() {
13
+ this._state = LoadStatus.DOM_LOADED;
14
+ this._application = Application.get();
15
+ this._application.onLoaded(() => {
16
+ this.onStatusChange(LoadStatus.LOADED);
17
+ });
18
+ this.onStatusChange(LoadStatus.PRE_INITIALIZE);
19
+ }
20
+ onStatusChange(newStatus) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ this._state = newStatus;
23
+ (LoadStateManager.listenersByType.get(newStatus) || []).forEach((listener) => {
24
+ listener();
25
+ });
26
+ });
27
+ }
28
+ addListener(status, listener) {
29
+ var _a;
30
+ if (!LoadStateManager.listenersByType.has(status)) {
31
+ LoadStateManager.listenersByType.set(status, []);
32
+ }
33
+ (_a = LoadStateManager.listenersByType.get(status)) === null || _a === void 0 ? void 0 : _a.push(listener);
34
+ if (status === this._state) {
35
+ listener();
36
+ }
37
+ }
38
+ onPreInitialize(listener) {
39
+ this.addListener(LoadStatus.PRE_INITIALIZE, listener);
40
+ return this;
41
+ }
42
+ onLoaded(listener) {
43
+ this.addListener(LoadStatus.LOADED, listener);
44
+ return this;
45
+ }
46
+ getStatus() {
47
+ return this._state;
48
+ }
49
+ isPreInitialize() {
50
+ return this._state === LoadStatus.PRE_INITIALIZE;
51
+ }
52
+ isLoaded() {
53
+ return this._state === LoadStatus.LOADED;
54
+ }
55
+ static get(type = LoadType.APP_LOAD) {
56
+ if (!LoadStateManager.instanceByStatus.has(type)) {
57
+ LoadStateManager.instanceByStatus.set(type, new LoadStateManager());
58
+ }
59
+ return LoadStateManager.instanceByStatus.get(type) || new LoadStateManager();
60
+ }
61
+ }
62
+ LoadStateManager.instanceByStatus = new Map();
63
+ LoadStateManager.listenersByType = new Map();
64
+ export var LoadStatus;
65
+ (function (LoadStatus) {
66
+ LoadStatus["DOM_LOADED"] = "DOM_LOADED";
67
+ LoadStatus["PRE_INITIALIZE"] = "PRE_INITIALIZE";
68
+ LoadStatus["LOADED"] = "LOADED";
69
+ })(LoadStatus || (LoadStatus = {}));
70
+ export var LoadType;
71
+ (function (LoadType) {
72
+ LoadType["APP_LOAD"] = "APP_LOAD";
73
+ })(LoadType || (LoadType = {}));
74
+ //# sourceMappingURL=LoadStateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadStateManager.js","sourceRoot":"","sources":["../../../../src/http/data-fetcher/state/LoadStateManager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,MAAM,OAAO,gBAAgB;IAMzB;QAJQ,WAAM,GAAc,UAAU,CAAC,UAAU,CAAC;QAK9C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAEa,cAAc,CAAC,SAAoB;;YAC7C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAmB,EAAE,EAAE;gBACpF,QAAQ,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEO,WAAW,CAAC,MAAiB,EAAE,QAAmB;;QACtD,IAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;YAC7C,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACpD;QACD,MAAA,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAG,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC;YACtB,QAAQ,EAAE,CAAC;SACd;IACL,CAAC;IAEM,eAAe,CAAC,QAAmB;QACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ,CAAC,QAAmB;QAC/B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,cAAc,CAAC;IACrD,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,OAAgB,QAAQ,CAAC,QAAQ;QAC/C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9C,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;SACvE;QACD,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,gBAAgB,EAAE,CAAC;IACjF,CAAC;;AA3Dc,iCAAgB,GAAoC,IAAI,GAAG,EAA8B,CAAC;AAG1F,gCAAe,GAAuC,IAAI,GAAG,EAAiC,CAAC;AA2DlH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,uCAAyB,CAAA;IACzB,+CAAiC,CAAA;IACjC,+BAAiB,CAAA;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,iCAAqB,CAAA;AACzB,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB"}
package/dist/index.d.ts CHANGED
@@ -11,5 +11,10 @@ import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller";
11
11
  import DataUnit, { Record } from "./dataunit/DataUnit";
12
12
  import { DataType } from "./dataunit/metadata/DataType";
13
13
  import { UnitMetadata, FieldDescriptor, UserInterface } from "./dataunit/metadata/UnitMetadata";
14
+ import { HttpFetcher } from "./http/data-fetcher/HttpFetcher";
15
+ import { DataUnitFetcher } from "./http/data-fetcher/default/dataunit-fetcher";
16
+ import { ApplicationConfigFetcher } from "./http/data-fetcher/default/application-config-fetcher";
17
+ import { LoadStateManager, LoadStatus } from "./http/data-fetcher/state/LoadStateManager";
18
+ import { Application } from './application/Application';
14
19
  import { DataUnitAction, Action } from "./dataunit/state/action/DataUnitAction";
15
- export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, Record, DataType, UnitMetadata, FieldDescriptor, UserInterface, DataUnitAction, Action };
20
+ export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, Record, DataType, UnitMetadata, FieldDescriptor, UserInterface, HttpFetcher, LoadStateManager, LoadStatus, Application, DataUnitFetcher, ApplicationConfigFetcher, DataUnitAction, Action };
package/dist/index.js CHANGED
@@ -11,7 +11,12 @@ import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller";
11
11
  import DataUnit from "./dataunit/DataUnit";
12
12
  import { DataType } from "./dataunit/metadata/DataType";
13
13
  import { UserInterface } from "./dataunit/metadata/UnitMetadata";
14
+ import { HttpFetcher } from "./http/data-fetcher/HttpFetcher";
15
+ import { DataUnitFetcher } from "./http/data-fetcher/default/dataunit-fetcher";
16
+ import { ApplicationConfigFetcher } from "./http/data-fetcher/default/application-config-fetcher";
17
+ import { LoadStateManager, LoadStatus } from "./http/data-fetcher/state/LoadStateManager";
18
+ import { Application } from './application/Application';
14
19
  import { DataUnitAction, Action } from "./dataunit/state/action/DataUnitAction";
15
20
  /*Classes públicas no pacote*/
16
- export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataType, UserInterface, DataUnitAction, Action };
21
+ export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataType, UserInterface, HttpFetcher, LoadStateManager, LoadStatus, Application, DataUnitFetcher, ApplicationConfigFetcher, DataUnitAction, Action };
17
22
  //# 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,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,QAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAiC,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAEhF,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EAER,QAAQ,EAGR,aAAa,EACb,cAAc,EACd,MAAM,EACT,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,QAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAiC,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAEhF,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EAER,QAAQ,EAGR,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,cAAc,EACd,MAAM,EACT,CAAC"}
@@ -9,4 +9,10 @@ export declare class StringUtils {
9
9
  * @param value String para ser validada.
10
10
  */
11
11
  static isEmpty(value: any): Boolean;
12
+ /**
13
+ * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta.
14
+ *
15
+ * @param value String para ser transformada.
16
+ */
17
+ static replaceAccentuatedChars(text: string): string;
12
18
  }
@@ -19,5 +19,36 @@ export class StringUtils {
19
19
  }
20
20
  return false;
21
21
  }
22
+ /**
23
+ * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta.
24
+ *
25
+ * @param value String para ser transformada.
26
+ */
27
+ static replaceAccentuatedChars(text) {
28
+ text = text.toUpperCase();
29
+ text = text.replace(/[À]/, "A");
30
+ text = text.replace(/[Á]/, "A");
31
+ text = text.replace(/[Â]/, "A");
32
+ text = text.replace(/[Ã]/, "A");
33
+ text = text.replace(/[Ä]/, "A");
34
+ text = text.replace(/[È]/, "E");
35
+ text = text.replace(/[É]/, "E");
36
+ text = text.replace(/[Ê]/, "E");
37
+ text = text.replace(/[Ë]/, "E");
38
+ text = text.replace(/[Ì]/, "I");
39
+ text = text.replace(/[Í]/, "I");
40
+ text = text.replace(/[Î]/, "I");
41
+ text = text.replace(/[Ï]/, "I");
42
+ text = text.replace(/[Ò]/, "O");
43
+ text = text.replace(/[Ó]/, "O");
44
+ text = text.replace(/[Ô]/, "O");
45
+ text = text.replace(/[Ö]/, "O");
46
+ text = text.replace(/[Ù]/, "U");
47
+ text = text.replace(/[Ú]/, "U");
48
+ text = text.replace(/[Û]/, "U");
49
+ text = text.replace(/[Ü]/, "U");
50
+ text = text.replace(/[Ç]/, "C");
51
+ return text.replace(/[^a-z0-9]/gi, '');
52
+ }
22
53
  }
23
54
  //# sourceMappingURL=StringUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,WAAW;IAEpB;;;;;MAKE;IACF,MAAM,CAAC,OAAO,CAAC,KAAS;QAEpB,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACtC,OAAO,IAAI,CAAC;SACf;QAED,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ"}
1
+ {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,WAAW;IAEpB;;;;;MAKE;IACF,MAAM,CAAC,OAAO,CAAC,KAAU;QAErB,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACtC,OAAO,IAAI,CAAC;SACf;QAED,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD;;;;MAIE;IACF,MAAM,CAAC,uBAAuB,CAAC,IAAY;QACvC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;CAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/core",
3
- "version": "1.0.24",
3
+ "version": "1.0.27",
4
4
  "description": "Modulo core JavaScript da Sankhya.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -15,7 +15,10 @@
15
15
  },
16
16
  "author": "leonardo.jorge",
17
17
  "license": "ISC",
18
- "dependencies": {},
18
+ "dependencies": {
19
+ "graphql": "^16.3.0",
20
+ "graphql-request": "^4.2.0"
21
+ },
19
22
  "devDependencies": {
20
23
  "@types/jest": "^26.0.20",
21
24
  "es-dev-server": "^1.60.2",
@@ -0,0 +1,22 @@
1
+ export class Application{
2
+ private static instance:Application;
3
+ private static element:Element | null = null;
4
+ private constructor(){}
5
+
6
+ public static get():Application{
7
+ if(Application.instance === undefined){
8
+ Application.instance = new Application();
9
+ Application.element = document.querySelector('ez-application');
10
+ }
11
+ return Application.instance;
12
+ }
13
+
14
+ public onLoaded(listener:Function):void{
15
+ Application.element?.addEventListener('applicationLoaded', () => listener());
16
+ }
17
+
18
+ public getResourceID():string{
19
+ return "br.com.sankhya.mge.cad.parceiro"; //TODO: Remover mock
20
+ }
21
+
22
+ }
@@ -234,7 +234,6 @@ export default class DataUnit {
234
234
  public unsubscribe(observer: Function) {
235
235
  this._observers = this._observers.filter(f => f !== observer);
236
236
  }
237
-
238
237
  }
239
238
 
240
239
  export interface Record {
@@ -0,0 +1,174 @@
1
+ import { LoadStateManager, LoadType } from "./state/LoadStateManager";
2
+ import { DataType } from "./../../dataunit/metadata/DataType";
3
+ import { UserInterface } from "./../../dataunit/metadata/UnitMetadata";
4
+ import { batchRequests, BatchRequestDocument } from 'graphql-request';
5
+
6
+ export class HttpFetcher{
7
+ private static instance: HttpFetcher;
8
+ private static loadStateManager: LoadStateManager;
9
+ private static watingRequestsById: Map<string, WaitingRequest >= new Map<string, WaitingRequest>();
10
+
11
+ private constructor() {
12
+ HttpFetcher.loadStateManager = LoadStateManager.get(LoadType.APP_LOAD);
13
+ HttpFetcher.loadStateManager.onLoaded(this.onApplicationLoaded);
14
+ }
15
+
16
+ public static get(): HttpFetcher {
17
+ if (!HttpFetcher.instance) {
18
+ HttpFetcher.instance = new HttpFetcher();
19
+ }
20
+ return HttpFetcher.instance;
21
+ }
22
+
23
+ public async callGraphQL(req:any):Promise<any>{
24
+ if(HttpFetcher.loadStateManager.isPreInitialize()){
25
+ const reqKey = this.getReqKey(req);
26
+ req.queryID = reqKey;
27
+ req.values.queryID = reqKey;
28
+
29
+ if(!HttpFetcher.watingRequestsById.has(reqKey)){
30
+ HttpFetcher.watingRequestsById.set(reqKey, new WaitingRequest(req));
31
+ }
32
+ return HttpFetcher.getWatingRequest(reqKey)?.promise;
33
+ }else{
34
+ //TODO: fazer chamada direta para graphQL
35
+ return new Promise(function(resolve){
36
+ const md = {
37
+ name: "dd://br.com.sankhya.cad.parceiro/Parceiro",
38
+ label: "Parceiro",
39
+ fields: [
40
+ {
41
+ name: "CODPARC",
42
+ label: "Cód. Parceiro",
43
+ dataType: DataType.NUMBER
44
+ },
45
+ {
46
+ name: "NOMEPARC",
47
+ label: "Nome",
48
+ dataType: DataType.TEXT,
49
+ userInterface: UserInterface.LONGTEXT,
50
+ required: true
51
+ },
52
+ {
53
+ name: "P",
54
+ label: "pera",
55
+ dataType: DataType.TEXT,
56
+ userInterface: UserInterface.OPTIONSELECTOR,
57
+ properties: {options: `{"M": "Madura", "V": "Verde", "P": "Passada"}`}
58
+ },
59
+ {
60
+ name: "ME",
61
+ label: "ME",
62
+ dataType: DataType.NUMBER,
63
+ userInterface: UserInterface.DECIMALNUMBER,
64
+ properties: {precision: 4, prettyPrecision: 1}
65
+ }
66
+ ]
67
+ }
68
+ setTimeout(() => resolve(md));
69
+ });
70
+ }
71
+ }
72
+
73
+ private getReqKey(req:any):string{
74
+ return window.btoa(this.hashCode(`${req.query}${JSON.stringify(req.values || "")}`)).replaceAll("=", "");
75
+ }
76
+
77
+ private static getQueryTemplate(re:any):string{
78
+ return (re.query || "").replaceAll("$queryAlias$", re.queryID);
79
+ }
80
+
81
+ private static getWatingRequest(reqID:string):WaitingRequest|undefined{
82
+ return HttpFetcher.watingRequestsById.get(reqID);
83
+ }
84
+
85
+ private async onApplicationLoaded():Promise<any>{
86
+ const requestsBatch:Array<BatchRequestDocument> = [];
87
+
88
+ HttpFetcher.watingRequestsById.forEach(async (waitingReq:WaitingRequest) => {
89
+ let query = HttpFetcher.getQueryTemplate(waitingReq.request);
90
+ requestsBatch.push({ document: query, variables: {...waitingReq.request.values } });
91
+ });
92
+
93
+ let res:any = undefined;
94
+ let dataResponse:Array<any> = [];
95
+ let errorsResponse:Array<any> = [];
96
+
97
+ try{
98
+ res = await batchRequests('http://localhost:8082/', requestsBatch);
99
+ res.forEach((resItem:any) => {
100
+ dataResponse.push(resItem.data);
101
+ });
102
+ }catch(err:any){
103
+ res = err.response;
104
+ const req:any = err.request;
105
+ Object.entries(res).forEach(([key, val]:Array<any>) => {
106
+ if(val.errors){
107
+ errorsResponse.push(val.errors.map((item:any) => {
108
+ item.request = req;
109
+ item.index = Number(key);
110
+ return item;
111
+ }));
112
+ }else if(val.data){
113
+ dataResponse.push(val.data);
114
+ }
115
+ });
116
+ }
117
+ //Reject primises with errors from query
118
+ errorsResponse.forEach((errorResponse:any) => {
119
+ Object.entries(errorResponse).forEach(([key, val]:Array<any>) => {
120
+ (HttpFetcher.getWatingRequest(val.request.variables[val.index].queryID)?.reject || Promise.reject)(val);
121
+ });
122
+ });
123
+ //Resolve primises with data from query
124
+ dataResponse.forEach((data:any) => {
125
+ Object.entries(data).forEach(([key, val]:Array<any>) => {
126
+ (HttpFetcher.getWatingRequest(key)?.resolve || Promise.resolve)(val);
127
+ });
128
+ });
129
+ HttpFetcher.watingRequestsById.clear();
130
+ }
131
+
132
+ //TODO: Mover este metodo para o @sankhyalabs/core classe string utils.
133
+ private hashCode (txt:string):string {
134
+ var hash = 0, i, chr;
135
+ if (txt.length === 0) return hash.toString();
136
+ for (i = 0; i < txt.length; i++) {
137
+ chr = txt.charCodeAt(i);
138
+ hash = ((hash << 5) - hash) + chr;
139
+ hash |= 0; // Convert to 32bit integer
140
+ }
141
+ return hash.toString();
142
+ };
143
+ }
144
+
145
+ class WaitingRequest {
146
+ private _resolve: Function = () => {};
147
+ private _reject: Function = () => {};
148
+ private _promisse: Promise<any>;
149
+ private _request: any = undefined;
150
+
151
+ constructor(req:any){
152
+ this._request = req;
153
+ this._promisse = new Promise((resolve, reject) => {
154
+ this._resolve = resolve;
155
+ this._reject = reject;
156
+ });
157
+ }
158
+
159
+ public get resolve():Function{
160
+ return this._resolve;
161
+ }
162
+
163
+ public get reject():Function{
164
+ return this._reject;
165
+ }
166
+
167
+ public get promise():Promise<any>{
168
+ return this._promisse;
169
+ }
170
+
171
+ public get request():any{
172
+ return this._request;
173
+ }
174
+ }
@@ -0,0 +1,26 @@
1
+ import { gql } from 'graphql-request';
2
+ import { HttpFetcher } from '../HttpFetcher';
3
+
4
+ export class ApplicationConfigFetcher {
5
+
6
+ private templateByQuery:Map<string, string >= new Map<string, string>();
7
+
8
+ constructor(){
9
+ this.buldTemplates();
10
+ }
11
+
12
+ private buldTemplates():void{
13
+ this.templateByQuery.set('getResource', gql `query($name: String!) {
14
+ $queryAlias$: getResource(name: $name){
15
+ name
16
+ resource
17
+ }
18
+ }`);
19
+ }
20
+
21
+ public getResource(name:string, resourceID:string):Promise<any>{
22
+ const completPath = `cfg://app/${resourceID}/${name}`;
23
+ return HttpFetcher.get().callGraphQL({ values : { "name": completPath }, query: this.templateByQuery.get("getResource")});
24
+ }
25
+
26
+ }
@@ -0,0 +1,52 @@
1
+ import { UnitMetadata } from "../../../dataunit/metadata/UnitMetadata";
2
+ import { HttpFetcher } from "../HttpFetcher";
3
+ import { gql } from 'graphql-request';
4
+ import DataUnit from "../../../dataunit/DataUnit";
5
+
6
+ export class DataUnitFetcher{
7
+
8
+ private templateByQuery:Map<string, string >= new Map<string, string>();
9
+
10
+ constructor(){
11
+ this.buldTemplates();
12
+ }
13
+
14
+ private buldTemplates():void{
15
+ this.templateByQuery.set('getDataUnit', gql `query($name: String!) {
16
+ $queryAlias$: getDataUnit(name: $name){
17
+ name,
18
+ cardinality,
19
+ fields{
20
+ name,
21
+ defaultValue,
22
+ label,
23
+ readOnly,
24
+ required,
25
+ dataType,
26
+ userInterface,
27
+ properties{
28
+ name,
29
+ value
30
+ },
31
+ dependencies{
32
+ masterFields,
33
+ type,
34
+ expression
35
+ }
36
+ }
37
+ }
38
+ }`);
39
+ }
40
+
41
+ public getDataUnit(name:string, resourceID:string):Promise<UnitMetadata>{
42
+ const completPath = `dd://${resourceID}/${name}`;
43
+ return HttpFetcher.get().callGraphQL({ values : { "name": completPath }, query: this.templateByQuery.get("getDataUnit")});
44
+ }
45
+
46
+ public static bindTo(dataUnit:DataUnit, resourceID:string):DataUnitFetcher{
47
+ const du = new DataUnitFetcher();
48
+ dataUnit.metadataLoader = (name:string) => du.getDataUnit(name, resourceID);
49
+ //TODO: Implementar bind dos demais métodos.
50
+ return du;
51
+ }
52
+ }
@@ -0,0 +1,3 @@
1
+ export class FormConfigFetcher {
2
+
3
+ }
@@ -0,0 +1,3 @@
1
+ export class GridConfigFetcher {
2
+
3
+ }
@@ -0,0 +1,74 @@
1
+ import { Application } from './../../../application/Application';
2
+
3
+ export class LoadStateManager {
4
+ private static instanceByStatus: Map<LoadType, LoadStateManager> = new Map<LoadType, LoadStateManager>();
5
+ private _state:LoadStatus = LoadStatus.DOM_LOADED;
6
+ private _application:Application;
7
+ private static listenersByType: Map<LoadStatus, Array<() => void>> = new Map<LoadStatus, Array<() => void>>();
8
+
9
+ private constructor() {
10
+ this._application = Application.get();
11
+
12
+ this._application.onLoaded(() => {
13
+ this.onStatusChange(LoadStatus.LOADED);
14
+ });
15
+
16
+ this.onStatusChange(LoadStatus.PRE_INITIALIZE);
17
+ }
18
+
19
+ private async onStatusChange(newStatus:LoadStatus){
20
+ this._state = newStatus;
21
+ (LoadStateManager.listenersByType.get(newStatus) || []).forEach((listener:() => void) => {
22
+ listener();
23
+ });
24
+ }
25
+
26
+ private addListener(status:LoadStatus, listener:() => void){
27
+ if(!LoadStateManager.listenersByType.has(status)){
28
+ LoadStateManager.listenersByType.set(status, []);
29
+ }
30
+ LoadStateManager.listenersByType.get(status)?.push(listener);
31
+ if(status === this._state){
32
+ listener();
33
+ }
34
+ }
35
+
36
+ public onPreInitialize(listener:() => void):LoadStateManager{
37
+ this.addListener(LoadStatus.PRE_INITIALIZE, listener);
38
+ return this;
39
+ }
40
+
41
+ public onLoaded(listener:() => void):LoadStateManager{
42
+ this.addListener(LoadStatus.LOADED, listener);
43
+ return this;
44
+ }
45
+
46
+ public getStatus():LoadStatus{
47
+ return this._state;
48
+ }
49
+
50
+ public isPreInitialize():boolean{
51
+ return this._state === LoadStatus.PRE_INITIALIZE;
52
+ }
53
+
54
+ public isLoaded():boolean{
55
+ return this._state === LoadStatus.LOADED;
56
+ }
57
+
58
+ public static get(type:LoadType = LoadType.APP_LOAD): LoadStateManager{
59
+ if (!LoadStateManager.instanceByStatus.has(type)) {
60
+ LoadStateManager.instanceByStatus.set(type, new LoadStateManager());
61
+ }
62
+ return LoadStateManager.instanceByStatus.get(type) || new LoadStateManager();
63
+ }
64
+ }
65
+
66
+ export enum LoadStatus{
67
+ DOM_LOADED = "DOM_LOADED",
68
+ PRE_INITIALIZE = "PRE_INITIALIZE",
69
+ LOADED = "LOADED"
70
+ }
71
+
72
+ export enum LoadType{
73
+ APP_LOAD = "APP_LOAD",
74
+ }
package/src/index.ts CHANGED
@@ -11,6 +11,11 @@ import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller";
11
11
  import DataUnit, {Record} from "./dataunit/DataUnit";
12
12
  import { DataType } from "./dataunit/metadata/DataType";
13
13
  import { UnitMetadata, FieldDescriptor, UserInterface } from "./dataunit/metadata/UnitMetadata";
14
+ import { HttpFetcher } from "./http/data-fetcher/HttpFetcher";
15
+ import { DataUnitFetcher } from "./http/data-fetcher/default/dataunit-fetcher";
16
+ import { ApplicationConfigFetcher } from "./http/data-fetcher/default/application-config-fetcher";
17
+ import { LoadStateManager, LoadStatus } from "./http/data-fetcher/state/LoadStateManager";
18
+ import { Application } from './application/Application';
14
19
  import { DataUnitAction, Action } from "./dataunit/state/action/DataUnitAction";
15
20
 
16
21
  /*Classes públicas no pacote*/
@@ -31,6 +36,12 @@ export {
31
36
  UnitMetadata,
32
37
  FieldDescriptor,
33
38
  UserInterface,
39
+ HttpFetcher,
40
+ LoadStateManager,
41
+ LoadStatus,
42
+ Application,
43
+ DataUnitFetcher,
44
+ ApplicationConfigFetcher,
34
45
  DataUnitAction,
35
46
  Action
36
47
  };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Classe com utiliários comuns para Strings.
3
3
  */
4
- export class StringUtils{
4
+ export class StringUtils {
5
5
 
6
6
  /**
7
7
  * Verifica se a string está vazia.
@@ -9,8 +9,8 @@ export class StringUtils{
9
9
  *
10
10
  * @param value String para ser validada.
11
11
  */
12
- static isEmpty(value:any):Boolean {
13
-
12
+ static isEmpty(value: any): Boolean {
13
+
14
14
  if (value == undefined || value === null) {
15
15
  return true;
16
16
  }
@@ -25,4 +25,37 @@ export class StringUtils{
25
25
  return false;
26
26
  }
27
27
 
28
+
29
+ /**
30
+ * Remove acentos de vogais, substitui Ç por c e retorna a string em caixa alta.
31
+ *
32
+ * @param value String para ser transformada.
33
+ */
34
+ static replaceAccentuatedChars(text: string): string {
35
+ text = text.toUpperCase();
36
+ text = text.replace(/[À]/, "A");
37
+ text = text.replace(/[Á]/, "A");
38
+ text = text.replace(/[Â]/, "A");
39
+ text = text.replace(/[Ã]/, "A");
40
+ text = text.replace(/[Ä]/, "A");
41
+ text = text.replace(/[È]/, "E");
42
+ text = text.replace(/[É]/, "E");
43
+ text = text.replace(/[Ê]/, "E");
44
+ text = text.replace(/[Ë]/, "E");
45
+ text = text.replace(/[Ì]/, "I");
46
+ text = text.replace(/[Í]/, "I");
47
+ text = text.replace(/[Î]/, "I");
48
+ text = text.replace(/[Ï]/, "I");
49
+ text = text.replace(/[Ò]/, "O");
50
+ text = text.replace(/[Ó]/, "O");
51
+ text = text.replace(/[Ô]/, "O");
52
+ text = text.replace(/[Ö]/, "O");
53
+ text = text.replace(/[Ù]/, "U");
54
+ text = text.replace(/[Ú]/, "U");
55
+ text = text.replace(/[Û]/, "U");
56
+ text = text.replace(/[Ü]/, "U");
57
+ text = text.replace(/[Ç]/, "C");
58
+ return text.replace(/[^a-z0-9]/gi, '');
59
+ }
60
+
28
61
  }
@@ -1,35 +1,44 @@
1
- import {StringUtils} from '../../src/utils/StringUtils';
2
-
3
- describe('StringUtils', function() {
4
-
5
- it('valor vazio', function() {
6
- let result = StringUtils.isEmpty('');
7
- expect(result).toBe(true);
8
- });
9
-
10
- it('valor em branco', function() {
11
- let result = StringUtils.isEmpty(' ');
12
- expect(result).toBe(true);
13
- });
14
-
15
- it('valor null', function() {
16
- let result = StringUtils.isEmpty(null);
17
- expect(result).toBe(true);
18
- });
19
-
20
- it('valor undefined', function() {
21
- let result = StringUtils.isEmpty(undefined);
22
- expect(result).toBe(true);
23
- });
24
-
25
- it('valor 0', function() {
26
- let result = StringUtils.isEmpty('0');
27
- expect(result).toBe(false);
28
- });
29
-
30
- it('com valor', function() {
31
- let result = StringUtils.isEmpty('ab');
32
- expect(result).toBe(false);
33
- });
1
+ import { StringUtils } from '../../src/utils/StringUtils';
2
+
3
+ describe('StringUtils', function () {
4
+
5
+ it('valor vazio', function () {
6
+ let result = StringUtils.isEmpty('');
7
+ expect(result).toBe(true);
8
+ });
9
+
10
+ it('valor em branco', function () {
11
+ let result = StringUtils.isEmpty(' ');
12
+ expect(result).toBe(true);
13
+ });
14
+
15
+ it('valor null', function () {
16
+ let result = StringUtils.isEmpty(null);
17
+ expect(result).toBe(true);
18
+ });
19
+
20
+ it('valor undefined', function () {
21
+ let result = StringUtils.isEmpty(undefined);
22
+ expect(result).toBe(true);
23
+ });
24
+
25
+ it('valor 0', function () {
26
+ let result = StringUtils.isEmpty('0');
27
+ expect(result).toBe(false);
28
+ });
29
+
30
+ it('com valor', function () {
31
+ let result = StringUtils.isEmpty('ab');
32
+ expect(result).toBe(false);
33
+ });
34
+
35
+ it('substitui vogais com acento por sem acento', function () {
36
+ let resultadoInputMaiusculo = StringUtils.replaceAccentuatedChars('ÁÀÂÃÄ');
37
+ expect(resultadoInputMaiusculo).toBe('AAAAA');
38
+ let resultInputMinusculo = StringUtils.replaceAccentuatedChars('áàâãä');
39
+ expect(resultInputMinusculo).toBe('AAAAA');
40
+ let resultInputCedilha = StringUtils.replaceAccentuatedChars('ç');
41
+ expect(resultInputCedilha).toBe('C');
42
+ });
34
43
 
35
44
  });