@sankhyalabs/sankhyablocks 1.3.31-beta.2 → 1.3.31-beta.20

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 (218) hide show
  1. package/dist/cjs/SnkMessageBuilder-7717f1e4.js +326 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  3. package/dist/cjs/css-shim-b8158822.js +6 -0
  4. package/dist/cjs/dom-36862b77.js +75 -0
  5. package/dist/cjs/filter-item-type.enum-e2e1bc5b.js +14 -0
  6. package/dist/cjs/index-02201bc9.js +2397 -0
  7. package/dist/cjs/index-b0b676c5.js +3298 -0
  8. package/dist/cjs/loader.cjs.js +19 -3
  9. package/dist/cjs/sankhyablocks.cjs.js +117 -5
  10. package/dist/cjs/shadow-css-346c0795.js +389 -0
  11. package/dist/cjs/snk-application.cjs.entry.js +1041 -177
  12. package/dist/cjs/snk-crud.cjs.entry.js +65 -0
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +276 -0
  14. package/dist/cjs/snk-filter-bar.cjs.entry.js +265 -0
  15. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +47 -0
  16. package/dist/cjs/snk-filter-detail.cjs.entry.js +49 -0
  17. package/dist/cjs/snk-filter-item.cjs.entry.js +143 -0
  18. package/dist/cjs/snk-filter-list.cjs.entry.js +91 -0
  19. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +23 -0
  20. package/dist/cjs/snk-filter-number.cjs.entry.js +24 -0
  21. package/dist/cjs/snk-filter-period.cjs.entry.js +26 -0
  22. package/dist/cjs/snk-filter-search.cjs.entry.js +44 -0
  23. package/dist/cjs/snk-filter-text.cjs.entry.js +22 -0
  24. package/dist/cjs/snk-form.cjs.entry.js +133 -0
  25. package/dist/cjs/snk-grid.cjs.entry.js +79 -0
  26. package/dist/cjs/snk-pesquisa.cjs.entry.js +10 -7
  27. package/dist/cjs/snk-taskbar.cjs.entry.js +160 -0
  28. package/dist/cjs/taskbar-elements-283c737e.js +93 -0
  29. package/dist/cjs/taskbar-processor-6bd0d35c.js +47 -0
  30. package/dist/cjs/teste-pesquisa.cjs.entry.js +5 -5
  31. package/dist/collection/collection-manifest.json +17 -2
  32. package/dist/collection/components/snk-application/errorhandler/snk-error-handler.js +9 -2
  33. package/dist/collection/components/snk-application/snk-application.js +1061 -629
  34. package/dist/collection/components/snk-crud/snk-crud.css +6 -0
  35. package/dist/collection/components/snk-crud/snk-crud.js +176 -0
  36. package/dist/collection/components/snk-data-unit/snk-data-unit.css +6 -0
  37. package/dist/collection/components/snk-data-unit/snk-data-unit.js +540 -0
  38. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +88 -0
  39. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +64 -0
  40. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +65 -0
  41. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +69 -0
  42. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +118 -0
  43. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +63 -0
  44. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +10 -0
  45. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +118 -0
  46. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +244 -0
  47. package/dist/collection/components/snk-filter-bar/filter-list/snk-filter-list.js +233 -0
  48. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +114 -0
  49. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +323 -0
  50. package/dist/collection/components/snk-form/snk-form.css +34 -0
  51. package/dist/collection/components/snk-form/snk-form.js +258 -0
  52. package/dist/collection/components/snk-grid/snk-grid.css +18 -0
  53. package/dist/collection/components/snk-grid/snk-grid.js +183 -0
  54. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +56 -13
  55. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +81 -76
  56. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +86 -0
  57. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +43 -0
  58. package/dist/collection/components/snk-taskbar/snk-taskbar.css +3 -0
  59. package/dist/collection/components/snk-taskbar/snk-taskbar.js +307 -0
  60. package/dist/collection/components/teste-pesquisa/teste-pesquisa.js +12 -9
  61. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +38 -13
  62. package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +52 -21
  63. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +388 -0
  64. package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +4 -3
  65. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +2 -0
  66. package/dist/collection/lib/http/data-fetcher/fetchers/totals-fetcher.js +47 -0
  67. package/dist/collection/lib/index.js +1 -0
  68. package/dist/collection/lib/message/SnkMessageBuilder.js +121 -0
  69. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +23 -0
  70. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +18 -0
  71. package/dist/collection/lib/message/resources/snk-form.msg.js +10 -0
  72. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +17 -0
  73. package/dist/components/SnkMessageBuilder.js +303 -0
  74. package/dist/components/filter-item-type.enum.js +12 -0
  75. package/dist/components/index.d.ts +18 -5
  76. package/dist/components/index.js +22 -0
  77. package/dist/components/index2.js +2384 -0
  78. package/dist/components/snk-application2.js +1019 -148
  79. package/dist/components/snk-crud.d.ts +11 -0
  80. package/dist/components/snk-crud.js +127 -0
  81. package/dist/components/snk-data-unit.d.ts +11 -0
  82. package/dist/components/snk-data-unit.js +299 -0
  83. package/dist/components/snk-filter-bar.d.ts +11 -0
  84. package/dist/components/snk-filter-bar.js +6 -0
  85. package/dist/components/snk-filter-bar2.js +296 -0
  86. package/dist/components/snk-filter-binary-select.d.ts +11 -0
  87. package/dist/components/snk-filter-binary-select.js +63 -0
  88. package/dist/components/snk-filter-detail.d.ts +11 -0
  89. package/dist/components/snk-filter-detail.js +6 -0
  90. package/dist/components/snk-filter-detail2.js +63 -0
  91. package/dist/components/snk-filter-item.d.ts +11 -0
  92. package/dist/components/snk-filter-item.js +6 -0
  93. package/dist/components/snk-filter-item2.js +164 -0
  94. package/dist/components/snk-filter-list.d.ts +11 -0
  95. package/dist/components/snk-filter-list.js +6 -0
  96. package/dist/components/snk-filter-list2.js +111 -0
  97. package/dist/components/snk-filter-multi-select.d.ts +11 -0
  98. package/dist/components/snk-filter-multi-select.js +39 -0
  99. package/dist/components/snk-filter-number.d.ts +11 -0
  100. package/dist/components/snk-filter-number.js +40 -0
  101. package/dist/components/snk-filter-period.d.ts +11 -0
  102. package/dist/components/snk-filter-period.js +42 -0
  103. package/dist/components/snk-filter-search.d.ts +11 -0
  104. package/dist/components/snk-filter-search.js +62 -0
  105. package/dist/components/snk-filter-text.d.ts +11 -0
  106. package/dist/components/snk-filter-text.js +38 -0
  107. package/dist/components/snk-form.d.ts +11 -0
  108. package/dist/components/snk-form.js +6 -0
  109. package/dist/components/snk-form2.js +159 -0
  110. package/dist/components/snk-grid.d.ts +11 -0
  111. package/dist/components/snk-grid.js +6 -0
  112. package/dist/components/snk-grid2.js +126 -0
  113. package/dist/components/snk-pesquisa2.js +6 -3
  114. package/dist/components/snk-taskbar.d.ts +11 -0
  115. package/dist/components/snk-taskbar.js +6 -0
  116. package/dist/components/snk-taskbar2.js +264 -0
  117. package/dist/components/taskbar-processor.js +45 -0
  118. package/dist/components/teste-pesquisa.js +1 -1
  119. package/dist/esm/SnkMessageBuilder-a7da466b.js +303 -0
  120. package/dist/esm/app-globals-0f993ce5.js +3 -0
  121. package/dist/esm/css-shim-b3f2ee8d.js +4 -0
  122. package/dist/esm/dom-665d6011.js +73 -0
  123. package/dist/esm/filter-item-type.enum-61fbf80a.js +12 -0
  124. package/dist/esm/index-2b4d2d14.js +3262 -0
  125. package/dist/esm/index-e5b61043.js +2384 -0
  126. package/dist/esm/loader.js +19 -3
  127. package/dist/esm/polyfills/css-shim.js +1 -1
  128. package/dist/esm/sankhyablocks.js +117 -5
  129. package/dist/esm/shadow-css-b18e99d7.js +387 -0
  130. package/dist/esm/snk-application.entry.js +1013 -149
  131. package/dist/esm/snk-crud.entry.js +61 -0
  132. package/dist/esm/snk-data-unit.entry.js +272 -0
  133. package/dist/esm/snk-filter-bar.entry.js +261 -0
  134. package/dist/esm/snk-filter-binary-select.entry.js +43 -0
  135. package/dist/esm/snk-filter-detail.entry.js +45 -0
  136. package/dist/esm/snk-filter-item.entry.js +139 -0
  137. package/dist/esm/snk-filter-list.entry.js +87 -0
  138. package/dist/esm/snk-filter-multi-select.entry.js +19 -0
  139. package/dist/esm/snk-filter-number.entry.js +20 -0
  140. package/dist/esm/snk-filter-period.entry.js +22 -0
  141. package/dist/esm/snk-filter-search.entry.js +40 -0
  142. package/dist/esm/snk-filter-text.entry.js +18 -0
  143. package/dist/esm/snk-form.entry.js +129 -0
  144. package/dist/esm/snk-grid.entry.js +75 -0
  145. package/dist/esm/snk-pesquisa.entry.js +7 -4
  146. package/dist/esm/snk-taskbar.entry.js +156 -0
  147. package/dist/esm/taskbar-elements-35d64ff9.js +90 -0
  148. package/dist/esm/taskbar-processor-aa6772c9.js +45 -0
  149. package/dist/esm/teste-pesquisa.entry.js +2 -2
  150. package/dist/sankhyablocks/SnkMessageBuilder-a7da466b.js +303 -0
  151. package/dist/sankhyablocks/app-globals-0f993ce5.js +3 -0
  152. package/dist/sankhyablocks/css-shim-b3f2ee8d.js +4 -0
  153. package/dist/sankhyablocks/dom-665d6011.js +73 -0
  154. package/dist/sankhyablocks/filter-item-type.enum-61fbf80a.js +12 -0
  155. package/dist/sankhyablocks/index-2b4d2d14.js +3262 -0
  156. package/dist/sankhyablocks/index-e5b61043.js +2384 -0
  157. package/dist/sankhyablocks/index.esm.js +1 -0
  158. package/dist/sankhyablocks/sankhyablocks.esm.js +129 -1
  159. package/dist/sankhyablocks/shadow-css-b18e99d7.js +387 -0
  160. package/dist/sankhyablocks/snk-application.entry.js +8452 -0
  161. package/dist/sankhyablocks/snk-crud.entry.js +61 -0
  162. package/dist/sankhyablocks/snk-data-unit.entry.js +272 -0
  163. package/dist/sankhyablocks/snk-filter-bar.entry.js +261 -0
  164. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +43 -0
  165. package/dist/sankhyablocks/snk-filter-detail.entry.js +45 -0
  166. package/dist/sankhyablocks/snk-filter-item.entry.js +139 -0
  167. package/dist/sankhyablocks/snk-filter-list.entry.js +87 -0
  168. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +19 -0
  169. package/dist/sankhyablocks/snk-filter-number.entry.js +20 -0
  170. package/dist/sankhyablocks/snk-filter-period.entry.js +22 -0
  171. package/dist/sankhyablocks/snk-filter-search.entry.js +40 -0
  172. package/dist/sankhyablocks/snk-filter-text.entry.js +18 -0
  173. package/dist/sankhyablocks/snk-form.entry.js +129 -0
  174. package/dist/sankhyablocks/snk-grid.entry.js +75 -0
  175. package/dist/sankhyablocks/snk-pesquisa.entry.js +311 -0
  176. package/dist/sankhyablocks/snk-taskbar.entry.js +156 -0
  177. package/dist/sankhyablocks/taskbar-elements-35d64ff9.js +90 -0
  178. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +45 -0
  179. package/dist/sankhyablocks/teste-pesquisa.entry.js +33 -0
  180. package/dist/types/components/snk-application/errorhandler/snk-error-handler.d.ts +1 -0
  181. package/dist/types/components/snk-application/snk-application.d.ts +141 -20
  182. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +12 -0
  183. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +7 -0
  184. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +7 -0
  185. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +13 -0
  186. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +12 -0
  187. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +7 -0
  188. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +9 -0
  189. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +14 -0
  190. package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +40 -0
  191. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +46 -0
  192. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +29 -0
  193. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +12 -0
  194. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +84 -0
  195. package/dist/types/components.d.ts +662 -9
  196. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +7 -6
  197. package/dist/types/lib/http/data-fetcher/fetchers/dataunit-fetcher.d.ts +2 -0
  198. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +5 -0
  199. package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +3 -3
  200. package/dist/types/lib/http/data-fetcher/fetchers/totals-fetcher.d.ts +8 -0
  201. package/dist/types/lib/index.d.ts +1 -0
  202. package/dist/types/lib/message/SnkMessageBuilder.d.ts +42 -0
  203. package/dist/types/lib/message/resources/snk-data-unit.msg.d.ts +2 -0
  204. package/dist/types/lib/message/resources/snk-filter-bar.msg.d.ts +2 -0
  205. package/dist/types/lib/message/resources/snk-form.msg.d.ts +2 -0
  206. package/dist/types/lib/message/resources/snk-taskbar.msg.d.ts +2 -0
  207. package/dist/types/stencil-public-runtime.d.ts +15 -4
  208. package/loader/package.json +1 -0
  209. package/package.json +5 -5
  210. package/react/components.d.ts +0 -2
  211. package/react/components.js +0 -2
  212. package/react/components.js.map +1 -1
  213. package/dist/cjs/index-1133bc2a.js +0 -1235
  214. package/dist/esm/index-ffda6382.js +0 -1208
  215. package/dist/sankhyablocks/p-2a7b4cb3.entry.js +0 -1
  216. package/dist/sankhyablocks/p-d62412bb.entry.js +0 -1
  217. package/dist/sankhyablocks/p-e6e91d5f.entry.js +0 -69
  218. package/dist/sankhyablocks/p-edcb9d8e.js +0 -2
@@ -1,10 +1,10 @@
1
- import { ErrorException } from '@sankhyalabs/core';
1
+ import { ErrorException, WarningException } from '@sankhyalabs/core';
2
2
  import { batchRequests } from 'graphql-request';
3
3
  import UrlUtils from "../../../lib/utils/urlutils";
4
4
  import { StringUtils } from '@sankhyalabs/core';
5
5
  export class DataFetcher {
6
6
  constructor() {
7
- this.GRAPHQL_PATH = window['applicationenv'] === "sankhyaom" ? "/mge/graphql" : "";
7
+ this.GRAPHQL_PATH = "/mge/graphql";
8
8
  this.watingRequestsById = new Map();
9
9
  }
10
10
  static get() {
@@ -33,6 +33,27 @@ export class DataFetcher {
33
33
  DataFetcher.requestListener.splice(index, 1);
34
34
  }
35
35
  }
36
+ processErrorInfo(errors) {
37
+ var _a, _b;
38
+ const POSITION_ERROR_INFO = 0;
39
+ const errorTitle = "Falha detectada";
40
+ const error = errors[POSITION_ERROR_INFO];
41
+ if (error.length > 0) { //As informações do erro vem no primeiro indice de um array
42
+ const errorInfo = error[POSITION_ERROR_INFO];
43
+ const errorMessage = (errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.message) ? errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.message : "Não há mensagem de erro";
44
+ const errorLevel = ((_a = errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.extensions) === null || _a === void 0 ? void 0 : _a.level) ? errorInfo.extensions.level : "ERROR";
45
+ const errorCode = ((_b = errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.extensions) === null || _b === void 0 ? void 0 : _b.code) ? errorInfo.extensions.code : "";
46
+ switch (errorLevel) {
47
+ case "WARNING":
48
+ return new WarningException(errorTitle, errorMessage, errorCode);
49
+ default:
50
+ return new ErrorException(errorTitle, errorMessage, errorCode);
51
+ }
52
+ }
53
+ else {
54
+ return new ErrorException(errorTitle, "Não há informações sobre o erro");
55
+ }
56
+ }
36
57
  async callGraphQL(req) {
37
58
  var _a;
38
59
  const reqKey = this.getReqKey(req);
@@ -43,7 +64,8 @@ export class DataFetcher {
43
64
  let query = this.getQueryTemplate(req);
44
65
  const res = await this.fecthGrapql([{ document: query, variables: req.values }]);
45
66
  if (res.errors.length > 0) {
46
- reject(new ErrorException("Falha detectada", res.errors[0][0].message));
67
+ const error = this.processErrorInfo(res.errors);
68
+ reject(error);
47
69
  }
48
70
  else {
49
71
  resolve(res.data[0][reqKey]);
@@ -60,23 +82,26 @@ export class DataFetcher {
60
82
  resolveURL() {
61
83
  return UrlUtils.getUrlBase();
62
84
  }
63
- getContext() {
85
+ getContext(module) {
64
86
  const urlParams = UrlUtils.getQueryParams(location.search);
65
87
  return {
66
- baseUrl: `${this.resolveURL()}/mge/service.sbr`,
88
+ baseUrl: `${this.resolveURL()}/${module}/service.sbr`,
67
89
  appName: "SankhyaBlocks",
68
90
  mgeSession: `${window['skw_session'] || urlParams.mgeSession}`,
69
91
  globalID: "85C0093DFA240EAB699B4E47A10215BD",
92
+ //FIXME: Precisamos ajustar para buscar o resourceId pela aplicação
70
93
  resourceID: "br.com.sankhya.mov.bancaria"
71
94
  };
72
95
  }
73
96
  async callServiceBroker(serviceName, payload) {
74
97
  return new Promise((accept, reject) => {
75
- const ctx = this.getContext();
76
- const url = `${ctx.baseUrl}?serviceName=${serviceName}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
98
+ const parts = serviceName.split("@");
99
+ const [module, name] = parts.length === 2 ? parts : ['mge', serviceName];
100
+ const ctx = this.getContext(module);
101
+ const url = `${ctx.baseUrl}?serviceName=${name}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
77
102
  document.cookie = `JSESSIONID=${ctx.mgeSession};`;
78
103
  const http = new XMLHttpRequest();
79
- DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url }));
104
+ DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url: url, requestBody: payload }));
80
105
  http.open("POST", url, true);
81
106
  http.withCredentials = true;
82
107
  http.send(payload);
@@ -95,11 +120,11 @@ export class DataFetcher {
95
120
  console.warn(`callServiceBroker error to parser response to JSON ${e}`);
96
121
  reject(this.responseText);
97
122
  }
98
- DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url }));
123
+ DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url: url, requestBody: payload }));
99
124
  }
100
125
  else if (this.readyState == 4 && this.status != 200) {
101
126
  reject(this.responseText);
102
- DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url }));
127
+ DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url: url, requestBody: payload }));
103
128
  }
104
129
  };
105
130
  });
@@ -155,7 +180,7 @@ export class DataFetcher {
155
180
  if (window['skw_session']) {
156
181
  url += `?mgeSession=${window['skw_session']}`;
157
182
  }
158
- DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url }));
183
+ DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url: url, requestBody: request }));
159
184
  try {
160
185
  res = await batchRequests(url, request, { 'Content-Type': `application/json; charset=${window['SERVER_ENCODING'] || 'UTF-8'}` });
161
186
  res.forEach((resItem, index) => {
@@ -186,11 +211,11 @@ export class DataFetcher {
186
211
  });
187
212
  }
188
213
  else {
189
- DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url }));
214
+ DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url: url, requestBody: request }));
190
215
  throw new ErrorException("Falha de comunicação", err.message);
191
216
  }
192
217
  }
193
- DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url }));
218
+ DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url: url, requestBody: request }));
194
219
  return { data: dataResponse, errors: errorsResponse };
195
220
  }
196
221
  isHttpError(err) {
@@ -1,9 +1,10 @@
1
- import { DataUnit, ChangeOperation, StringUtils, DataType, } from "@sankhyalabs/core";
2
- import { DataFetcher } from "../DataFetcher";
1
+ import { ChangeOperation, DataType, DataUnit, StringUtils } from "@sankhyalabs/core";
3
2
  import { gql } from "graphql-request";
3
+ import { DataFetcher } from "../DataFetcher";
4
4
  export default class DataUnitFetcher {
5
5
  constructor() {
6
6
  this.templateByQuery = new Map();
7
+ this._loadDataTimeout = {};
7
8
  this.buldTemplates();
8
9
  }
9
10
  buldTemplates() {
@@ -32,9 +33,9 @@ export default class DataUnitFetcher {
32
33
  }
33
34
  }
34
35
  }`);
35
- this.templateByQuery.set("fetchData", gql `query($dataunit: String! $limit: Int $offset:Int $filter: [InputFilter!] $sort: [InputSort!]) {
36
+ this.templateByQuery.set("fetchData", gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!]) {
36
37
  $queryAlias$: fetchDataUnit(name: $dataunit){
37
- data(limit: $limit offset: $offset filters: $filter sort: $sort){
38
+ data(limit: $limit offset: $offset filters: $filters sort: $sort){
38
39
  limit
39
40
  offset
40
41
  total
@@ -63,7 +64,7 @@ export default class DataUnitFetcher {
63
64
  getDataUnit(entityName, resourceID) {
64
65
  const dataUnit = new DataUnit(`dd://${entityName}/${resourceID}`);
65
66
  dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
66
- dataUnit.dataLoader = (dataUnit, page, sort, filters) => this.loadData(dataUnit, page, sort, filters);
67
+ dataUnit.dataLoader = (dataUnit, request) => this.loadData(dataUnit, request);
67
68
  dataUnit.saveLoader = (dataUnit, changes) => this.saveData(dataUnit, changes);
68
69
  dataUnit.removeLoader = (dataUnit, recordIds) => this.removeRecords(dataUnit, recordIds);
69
70
  return dataUnit;
@@ -100,25 +101,39 @@ export default class DataUnitFetcher {
100
101
  });
101
102
  });
102
103
  }
103
- loadData(dataUnit, page, sort, filter) {
104
+ loadData(dataUnit, request) {
105
+ const duName = dataUnit.name;
106
+ if (this._loadDataTimeout[duName]) {
107
+ clearTimeout(this._loadDataTimeout[duName]);
108
+ delete this._loadDataTimeout[duName];
109
+ }
104
110
  return new Promise((resolve, reject) => {
105
- var _a, _b, _c;
106
- const variables = { dataunit: dataUnit.name, sort, filter };
107
- if (page) {
108
- variables.limit = page.limit;
109
- variables.offset = page.offset;
110
- }
111
- if (!StringUtils.isEmpty((_a = page === null || page === void 0 ? void 0 : page.quickFilter) === null || _a === void 0 ? void 0 : _a.term)) {
111
+ this._loadDataTimeout[duName] = setTimeout(() => {
112
+ delete this._loadDataTimeout[duName];
113
+ this.doLoadData(dataUnit, request)
114
+ .then(result => resolve(result))
115
+ .catch(reason => reject(reason));
116
+ }, 200);
117
+ });
118
+ }
119
+ doLoadData(dataUnit, request) {
120
+ return new Promise((resolve, reject) => {
121
+ var _a;
122
+ const { sort, filters, limit, offset, quickFilter } = request;
123
+ const variables = { dataunit: dataUnit.name, sort, filters };
124
+ variables.limit = limit;
125
+ variables.offset = offset;
126
+ if (!StringUtils.isEmpty(quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.term)) {
112
127
  if (variables.filter === undefined) {
113
128
  variables.filter = [];
114
129
  }
115
130
  const quickFilterCriteria = {
116
131
  name: "__QUICK_FILTER__",
117
132
  expression: "__QUICK_FILTER__",
118
- params: [{ name: "term", dataType: DataType.TEXT, value: page.quickFilter.term }]
133
+ params: [{ name: "term", dataType: DataType.TEXT, value: quickFilter.term }]
119
134
  };
120
- if (((_c = (_b = page.quickFilter) === null || _b === void 0 ? void 0 : _b.fields) === null || _c === void 0 ? void 0 : _c.length) > 0) {
121
- quickFilterCriteria.params.push({ name: "fields", dataType: DataType.OBJECT, value: page.quickFilter.fields });
135
+ if (((_a = quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.fields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
136
+ quickFilterCriteria.params.push({ name: "fields", dataType: DataType.OBJECT, value: quickFilter.fields });
122
137
  }
123
138
  variables.filter.push(quickFilterCriteria);
124
139
  }
@@ -128,16 +143,32 @@ export default class DataUnitFetcher {
128
143
  query: this.templateByQuery.get("fetchData"),
129
144
  })
130
145
  .then((resp) => {
131
- const pageResult = resp.data;
132
- const records = [];
133
- pageResult.records.forEach((responseRecord) => {
146
+ const { limit, offset, total, hasMore, records } = resp.data;
147
+ let paginationInfo;
148
+ if (limit) {
149
+ const firstRecord = total == 0 ? 0 : offset + 1;
150
+ const lastRecord = offset + Math.min(records.length, limit);
151
+ const currentPage = offset / limit;
152
+ paginationInfo = {
153
+ firstRecord,
154
+ lastRecord,
155
+ total,
156
+ currentPage,
157
+ hasMore
158
+ };
159
+ }
160
+ const processedRecords = [];
161
+ records.forEach((responseRecord) => {
134
162
  const duRecord = { __record__id__: responseRecord.id };
135
163
  responseRecord.fields.forEach(({ name, value }) => {
136
164
  duRecord[name] = dataUnit.valueFromString(name, value);
137
165
  });
138
- records.push(duRecord);
166
+ processedRecords.push(duRecord);
167
+ });
168
+ resolve({
169
+ paginationInfo,
170
+ records: processedRecords
139
171
  });
140
- resolve(Object.assign(Object.assign({}, pageResult), { records }));
141
172
  })
142
173
  .catch((error) => {
143
174
  reject(error);
@@ -0,0 +1,388 @@
1
+ import FilterItemType from "../../../../components/snk-filter-bar/filter-item/filter-item-type.enum";
2
+ import { ResourceFetcher } from "./resource-fetcher";
3
+ export default class FilterBarConfigFetcher extends ResourceFetcher {
4
+ getConfig(resourceID) {
5
+ return new Promise((resolve) => {
6
+ if (resourceID === "br.com.sankhya.fin.cad.movimentacaoFinanceira") {
7
+ resolve(getFiltrosMovFin());
8
+ }
9
+ else if (resourceID === "br.com.sankhya.fin.cad.movimentacaoBancaria") {
10
+ resolve(getFiltrosMovBan());
11
+ }
12
+ else {
13
+ resolve(undefined);
14
+ }
15
+ });
16
+ }
17
+ }
18
+ function getFiltrosMovBan() {
19
+ return [{
20
+ "id": "DTLANC",
21
+ "visible": true,
22
+ "type": FilterItemType.PERIOD,
23
+ "label": "Dt Lançamento",
24
+ "detailTitle": "Informe a data ou período",
25
+ "props": {
26
+ "expression": {
27
+ "fullfill": "onlydate(this.DTLANC) >= :DTLANC.START AND onlydate(this.DTLANC) <= :DTLANC.END",
28
+ "onlystart": "onlydate(this.DTLANC) >= :DTLANC",
29
+ "onlyend": "onlydate(this.DTLANC) <= :DTLANC"
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "id": "CODCTABCOINT",
35
+ "visible": true,
36
+ "type": FilterItemType.SEARCH,
37
+ "label": "Conta origem",
38
+ "detailTitle": "Informe a conta de origem",
39
+ "props": {
40
+ "expression": "this.CODCTABCOINT = :CODCTABCOINT",
41
+ "searchContext": {
42
+ "entity": "ImplantacaoSaldoConta",
43
+ "entityDescription": "Conta origem",
44
+ "searchOptions": {
45
+ "rootEntity": "MovimentoBancario",
46
+ "descriptionFieldName": "DESCRICAO",
47
+ "codeFieldName": "CODCTABCOINT",
48
+ "showInactives": false
49
+ }
50
+ }
51
+ }
52
+ },
53
+ {
54
+ "id": "CODTIPOPER",
55
+ "visible": false,
56
+ "type": FilterItemType.SEARCH,
57
+ "label": "Tipo de operação",
58
+ "detailTitle": "Informe o tipo de operação",
59
+ "props": {
60
+ "expression": "this.CODTIPOPER = :CODTIPOPER",
61
+ "searchContext": {
62
+ "entity": "TipoOperacao",
63
+ "entityDescription": "Tipo de operação",
64
+ "searchOptions": {
65
+ "rootEntity": "MovimentoBancario",
66
+ "descriptionFieldName": "DESCROPER",
67
+ "codeFieldName": "CODTIPOPER",
68
+ "showInactives": false
69
+ }
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "id": "ORIGMOV",
75
+ "visible": false,
76
+ "type": FilterItemType.MULTI_SELECT,
77
+ "label": "Tipo de movimento",
78
+ "detailTitle": "Escolha um tipo de movimento",
79
+ "props": {
80
+ "expression": "this.ORIGMOV = :ORIGMOV",
81
+ "options": [
82
+ { "value": "A", "label": "Aplicação" },
83
+ { "value": "R", "label": "Resgate" },
84
+ { "value": "S", "label": "Saque" },
85
+ { "value": "D", "label": "Depósito" },
86
+ { "value": "T", "label": "Transferência" }
87
+ ]
88
+ }
89
+ },
90
+ {
91
+ "id": "NUBCO",
92
+ "type": FilterItemType.NUMBER,
93
+ "visible": false,
94
+ "label": "Nr. único",
95
+ "detailTitle": "Informe o número único",
96
+ "props": {
97
+ "expression": "this.NUBCO = :NUBCO"
98
+ }
99
+ },
100
+ {
101
+ "id": "VLRLANC",
102
+ "type": FilterItemType.NUMBER,
103
+ "visible": false,
104
+ "label": "Vlr. Lançamento",
105
+ "detailTitle": "Informe o valor do lançamento",
106
+ "props": {
107
+ "expression": "this.VLRLANC = :VLRLANC",
108
+ "precision": 2
109
+ }
110
+ },
111
+ {
112
+ "id": "CODLANC",
113
+ "visible": false,
114
+ "type": FilterItemType.SEARCH,
115
+ "label": "Lançamento origem",
116
+ "detailTitle": "Informe o lançamento de origem",
117
+ "props": {
118
+ "expression": "this.CODLANC = :CODLANC",
119
+ "searchContext": {
120
+ "entity": "HistoricoBancario",
121
+ "entityDescription": "Lançamento origem",
122
+ "searchOptions": {
123
+ "rootEntity": "MovimentoBancario",
124
+ "descriptionFieldName": "DESCRLANCBCO",
125
+ "codeFieldName": "CODLANC",
126
+ "showInactives": false
127
+ }
128
+ }
129
+ }
130
+ }];
131
+ }
132
+ function getFiltrosMovFin() {
133
+ return [{
134
+ id: "RECDESP",
135
+ visible: true,
136
+ label: "Receitas + Despesas",
137
+ detailTitle: "Selecione o que deseja ver",
138
+ type: FilterItemType.BINARY_SELECT,
139
+ hardFixed: true,
140
+ props: {
141
+ options: [
142
+ { name: "RECEITA", expression: "this.RECDESP = 1", label: "Receitas" },
143
+ { name: "DESPESA", expression: "this.RECDESP = -1", label: "Despesas" }
144
+ ]
145
+ }
146
+ },
147
+ {
148
+ id: "PROVISAO",
149
+ visible: true,
150
+ label: "Real + Provisão",
151
+ detailTitle: "Selecione o que deseja ver",
152
+ type: FilterItemType.BINARY_SELECT,
153
+ hardFixed: true,
154
+ props: {
155
+ options: [
156
+ { name: "REAL", expression: "nullvalue(this.PROVISAO, 'N') = 'N'", label: "Real" },
157
+ { name: "PROVISAO", expression: "nullvalue(this.PROVISAO, 'N') = 'S'", label: "Provisão" }
158
+ ]
159
+ }
160
+ },
161
+ {
162
+ id: "BAIXADO",
163
+ visible: true,
164
+ label: "Pendentes + Baixados",
165
+ detailTitle: "Selecione o que deseja ver",
166
+ type: FilterItemType.BINARY_SELECT,
167
+ hardFixed: true,
168
+ props: {
169
+ options: [
170
+ { name: "PENDENTE", expression: "this.DHBAIXA IS NULL", label: "Pendentes" },
171
+ { name: "BAIXADO", expression: "this.DHBAIXA IS NOT NULL", label: "Baixados" }
172
+ ]
173
+ }
174
+ },
175
+ {
176
+ id: "DTVENC",
177
+ visible: true,
178
+ type: FilterItemType.PERIOD,
179
+ label: "Dt. Vencimento",
180
+ detailTitle: "Informe a data ou período",
181
+ props: {
182
+ expression: {
183
+ fullfill: "onlydate(this.DTVENC) >= :DTVENC.START AND onlydate(this.DTVENC) <= :DTVENC.END",
184
+ onlystart: "onlydate(this.DTVENC) >= :DTVENC",
185
+ onlyend: "onlydate(this.DTVENC) <= :DTVENC"
186
+ }
187
+ }
188
+ },
189
+ {
190
+ id: "CODPARC",
191
+ visible: true,
192
+ type: FilterItemType.SEARCH,
193
+ label: "Parceiro",
194
+ detailTitle: "Informe o parceiro",
195
+ props: {
196
+ expression: "this.CODPARC = :CODPARC",
197
+ searchContext: {
198
+ entity: "Parceiro",
199
+ entityDescription: "Parceiro",
200
+ searchOptions: {
201
+ rootEntity: "Financeiro",
202
+ descriptionFieldName: "NOMEPARC",
203
+ codeFieldName: "CODPARC",
204
+ showInactives: false
205
+ }
206
+ }
207
+ }
208
+ },
209
+ {
210
+ id: "NUFIN",
211
+ type: FilterItemType.NUMBER,
212
+ visible: true,
213
+ label: "Nr. único",
214
+ detailTitle: "Informe o número único",
215
+ props: {
216
+ expression: "this.NUFIN = :NUFIN"
217
+ }
218
+ },
219
+ {
220
+ id: "NUMNOTA",
221
+ visible: true,
222
+ type: FilterItemType.NUMBER,
223
+ label: "Nr. Nota",
224
+ detailTitle: "Informe o número da nota",
225
+ props: {
226
+ expression: "this.NUMNOTA = :NUMNOTA"
227
+ }
228
+ },
229
+ {
230
+ id: "DHBAIXA",
231
+ visible: true,
232
+ type: FilterItemType.PERIOD,
233
+ label: "Data da Baixa",
234
+ detailTitle: "Informe a data ou período",
235
+ props: {
236
+ expression: {
237
+ fullfill: "onlydate(this.DHBAIXA) >= :DHBAIXA.START AND onlydate(this.DHBAIXA) <= :DHBAIXA.END",
238
+ onlystart: "onlydate(this.DHBAIXA) >= :DHBAIXA",
239
+ onlyend: "onlydate(this.DHBAIXA) <= :DHBAIXA"
240
+ }
241
+ }
242
+ },
243
+ {
244
+ id: "CODEMP",
245
+ visible: false,
246
+ type: FilterItemType.SEARCH,
247
+ label: "Empresa",
248
+ detailTitle: "Informe a empresa",
249
+ props: {
250
+ expression: "this.CODEMP = :CODEMP",
251
+ searchContext: {
252
+ entity: "Empresa",
253
+ entityDescription: "Empresa",
254
+ searchOptions: {
255
+ rootEntity: "Financeiro",
256
+ descriptionFieldName: "NOMEFANTASIA",
257
+ codeFieldName: "CODEMP",
258
+ showInactives: false
259
+ }
260
+ }
261
+ }
262
+ },
263
+ {
264
+ id: "CODNAT",
265
+ visible: false,
266
+ type: FilterItemType.SEARCH,
267
+ label: "Natureza",
268
+ detailTitle: "Informe a natureza",
269
+ props: {
270
+ expression: "this.CODNAT = :CODNAT",
271
+ searchContext: {
272
+ entity: "Natureza",
273
+ entityDescription: "Natureza",
274
+ searchOptions: {
275
+ rootEntity: "Financeiro",
276
+ descriptionFieldName: "DESCRNAT",
277
+ codeFieldName: "CODNAT",
278
+ showInactives: false
279
+ }
280
+ }
281
+ }
282
+ },
283
+ {
284
+ id: "DTNEG",
285
+ visible: false,
286
+ type: FilterItemType.PERIOD,
287
+ label: "Dt. Negociação",
288
+ detailTitle: "Informe a data ou período",
289
+ props: {
290
+ expression: {
291
+ fullfill: "onlydate(this.DTNEG) >= :DTNEG.START AND onlydate(this.DTNEG) <= :DTNEG.END",
292
+ onlystart: "onlydate(this.DTNEG) >= :DTNEG",
293
+ onlyend: "onlydate(this.DTNEG) <= :DTNEG"
294
+ }
295
+ }
296
+ },
297
+ {
298
+ id: "NUNOTA",
299
+ visible: false,
300
+ type: FilterItemType.NUMBER,
301
+ label: "Nro Único do Pedido",
302
+ detailTitle: "Informe o número único do pedido",
303
+ props: {
304
+ expression: "this.NUNOTA = :NUNOTA"
305
+ }
306
+ },
307
+ {
308
+ id: "CODCENCUS",
309
+ visible: false,
310
+ type: FilterItemType.SEARCH,
311
+ label: "Centro de resultado",
312
+ detailTitle: "Informe o centro de resultado",
313
+ props: {
314
+ expression: "this.CODCENCUS = :CODCENCUS",
315
+ searchContext: {
316
+ entity: "CentroResultado",
317
+ entityDescription: "Centro de resultado",
318
+ searchOptions: {
319
+ rootEntity: "Financeiro",
320
+ descriptionFieldName: "DESCRCENCUS",
321
+ codeFieldName: "CODCENCUS",
322
+ showInactives: false
323
+ }
324
+ }
325
+ }
326
+ },
327
+ {
328
+ id: "CODCTABCOINT",
329
+ visible: false,
330
+ type: FilterItemType.SEARCH,
331
+ label: "Conta bancária",
332
+ detailTitle: "Informe a conta bancária",
333
+ props: {
334
+ expression: "this.CODCTABCOINT = :CODCTABCOINT",
335
+ searchContext: {
336
+ entity: "ContaBancaria",
337
+ entityDescription: "Conta bancária",
338
+ searchOptions: {
339
+ rootEntity: "Financeiro",
340
+ descriptionFieldName: "DESCRICAO",
341
+ codeFieldName: "CODCTABCOINT",
342
+ showInactives: false
343
+ }
344
+ }
345
+ }
346
+ },
347
+ {
348
+ id: "CODBCO",
349
+ visible: false,
350
+ type: FilterItemType.SEARCH,
351
+ label: "Banco",
352
+ detailTitle: "Informe o banco",
353
+ props: {
354
+ expression: "this.CODBCO = :CODBCO",
355
+ searchContext: {
356
+ entity: "Banco",
357
+ entityDescription: "Banco",
358
+ searchOptions: {
359
+ rootEntity: "Financeiro",
360
+ descriptionFieldName: "NOMEBCO",
361
+ codeFieldName: "CODBCO",
362
+ showInactives: false
363
+ }
364
+ }
365
+ }
366
+ },
367
+ {
368
+ id: "CODPROJ",
369
+ visible: false,
370
+ type: FilterItemType.SEARCH,
371
+ label: "Projeto",
372
+ detailTitle: "Informe o projeto",
373
+ props: {
374
+ expression: "this.CODPROJ = :CODPROJ",
375
+ searchContext: {
376
+ entity: "Projeto",
377
+ entityDescription: "Projeto",
378
+ searchOptions: {
379
+ rootEntity: "Financeiro",
380
+ descriptionFieldName: "IDENTIFICACAO",
381
+ codeFieldName: "CODPROJ",
382
+ showInactives: false
383
+ }
384
+ }
385
+ }
386
+ }
387
+ ];
388
+ }
@@ -4,15 +4,16 @@ export default class GridConfigFetcher extends ResourceFetcher {
4
4
  super(...arguments);
5
5
  this.GRID_CONFIG_VERSION = "V3:";
6
6
  }
7
- getConfig(resourceID) {
7
+ getConfig(_gridName, resourceID) {
8
8
  const completePath = `cfg://grid/${this.GRID_CONFIG_VERSION}${resourceID}`;
9
9
  return new Promise((resolve, reject) => {
10
10
  this.loadResource(completePath)
11
11
  .then(loadedResource => {
12
+ let config = undefined;
12
13
  if (loadedResource) {
13
- let config = JSON.parse(loadedResource);
14
- resolve(config);
14
+ config = JSON.parse(loadedResource);
15
15
  }
16
+ resolve(config);
16
17
  }).catch((error) => {
17
18
  reject(error);
18
19
  });
@@ -16,6 +16,8 @@ export class PesquisaFetcher {
16
16
  }`);
17
17
  }
18
18
  loadSearchOptions(entityName, argument, criteria, options) {
19
+ const cleanText = (argument === null || argument === void 0 ? void 0 : argument.trim()) || undefined;
20
+ argument = isNaN(Number(cleanText)) && cleanText ? `%${cleanText}` : cleanText;
19
21
  return new Promise((resolve, reject) => {
20
22
  DataFetcher.get()
21
23
  .callGraphQL({