@sankhyalabs/sankhyablocks 8.15.0-dev.2 → 8.15.0-dev.21

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 (231) hide show
  1. package/dist/cjs/{ConfigStorage-0d507a8f.js → ConfigStorage-302bbbd4.js} +25 -15
  2. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  3. package/dist/cjs/{SnkFormConfigManager-467907f6.js → SnkFormConfigManager-71c4768e.js} +1 -1
  4. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-e7dcf408.js} +13 -0
  5. package/dist/cjs/{index-0e663819.js → index-0922807b.js} +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{dataunit-fetcher-bdaf9482.js → pesquisa-fetcher-c790ffb7.js} +254 -34
  8. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  9. package/dist/cjs/snk-actions-button_2.cjs.entry.js +23 -5
  10. package/dist/cjs/snk-application.cjs.entry.js +95 -6
  11. package/dist/cjs/snk-attach.cjs.entry.js +395 -57
  12. package/dist/cjs/snk-crud.cjs.entry.js +10 -8
  13. package/dist/cjs/snk-data-exporter.cjs.entry.js +4 -4
  14. package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-82c08a8c.js} +1 -1
  15. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  16. package/dist/cjs/snk-detail-view.cjs.entry.js +8 -9
  17. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  18. package/dist/cjs/snk-filter-bar.cjs.entry.js +57 -7
  19. package/dist/cjs/snk-filter-item.cjs.entry.js +3 -0
  20. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +1 -2
  21. package/dist/cjs/snk-filter-modal.cjs.entry.js +16 -1
  22. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  23. package/dist/cjs/snk-form.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-grid-config.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-grid.cjs.entry.js +42 -18
  26. package/dist/cjs/{snk-guides-viewer-9342bca1.js → snk-guides-viewer-32c1d35d.js} +9 -10
  27. package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -8
  28. package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
  29. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-simple-crud.cjs.entry.js +19 -8
  31. package/dist/cjs/snk-taskbar.cjs.entry.js +53 -5
  32. package/dist/cjs/{taskbar-elements-b8c428a9.js → taskbar-elements-01b85b99.js} +1 -1
  33. package/dist/collection/collection-manifest.json +1 -1
  34. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  35. package/dist/collection/components/snk-application/snk-application.js +111 -5
  36. package/dist/collection/components/snk-attach/snk-attach.js +194 -38
  37. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  38. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  39. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  40. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  41. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  42. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +111 -0
  43. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  44. package/dist/collection/components/snk-crud/snk-crud.js +24 -4
  45. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  46. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +4 -4
  47. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +1 -1
  48. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  49. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  50. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +3 -0
  51. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +84 -2
  52. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +0 -1
  53. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +101 -5
  54. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +5 -1
  55. package/dist/collection/components/snk-grid/snk-grid.js +57 -16
  56. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  57. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  58. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +53 -1
  59. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +26 -1
  60. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  61. package/dist/collection/components/snk-taskbar/snk-taskbar.js +89 -4
  62. package/dist/collection/lib/@types/index.js +1 -0
  63. package/dist/collection/lib/configs/ConfigStorage.js +24 -14
  64. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  65. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  66. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  67. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  68. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  69. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  70. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  71. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  72. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +31 -3
  73. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +55 -31
  74. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +1 -1
  75. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  76. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +10 -4
  77. package/dist/collection/lib/index.js +1 -1
  78. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  79. package/dist/components/ConfigStorage.js +25 -15
  80. package/dist/components/SnkMessageBuilder.js +13 -0
  81. package/dist/components/dataunit-fetcher.js +96 -38
  82. package/dist/components/index2.js +1 -0
  83. package/dist/components/snk-actions-button2.js +1 -0
  84. package/dist/components/snk-application2.js +94 -3
  85. package/dist/components/snk-attach2.js +400 -56
  86. package/dist/components/snk-crud.js +7 -3
  87. package/dist/components/snk-data-exporter2.js +1 -1
  88. package/dist/components/snk-detail-view2.js +4 -4
  89. package/dist/components/snk-entity-list.js +5 -3
  90. package/dist/components/snk-filter-bar2.js +59 -7
  91. package/dist/components/snk-filter-item2.js +3 -0
  92. package/dist/components/snk-filter-modal-item2.js +0 -1
  93. package/dist/components/snk-filter-modal.js +21 -3
  94. package/dist/components/snk-filter-multi-select.js +2 -1
  95. package/dist/components/snk-grid2.js +40 -15
  96. package/dist/components/snk-personalized-filter2.js +1 -1
  97. package/dist/components/snk-pesquisa2.js +1 -1
  98. package/dist/components/snk-simple-crud2.js +15 -1
  99. package/dist/components/snk-taskbar2.js +55 -4
  100. package/dist/components/taskbar-actions-button2.js +21 -2
  101. package/dist/esm/{ConfigStorage-379a9cba.js → ConfigStorage-4151acc8.js} +25 -15
  102. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  103. package/dist/esm/{SnkFormConfigManager-587e9030.js → SnkFormConfigManager-5c7d3771.js} +1 -1
  104. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-0fb796b9.js} +13 -0
  105. package/dist/esm/{index-1564817d.js → index-0ece87a6.js} +1 -0
  106. package/dist/esm/loader.js +1 -1
  107. package/dist/esm/{dataunit-fetcher-cc1650eb.js → pesquisa-fetcher-4000d0b8.js} +255 -36
  108. package/dist/esm/sankhyablocks.js +1 -1
  109. package/dist/esm/snk-actions-button_2.entry.js +23 -5
  110. package/dist/esm/snk-application.entry.js +95 -6
  111. package/dist/esm/snk-attach.entry.js +396 -58
  112. package/dist/esm/snk-crud.entry.js +10 -8
  113. package/dist/esm/snk-data-exporter.entry.js +4 -4
  114. package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-5d201fb3.js} +1 -1
  115. package/dist/esm/snk-data-unit.entry.js +2 -2
  116. package/dist/esm/snk-detail-view.entry.js +8 -9
  117. package/dist/esm/snk-entity-list.entry.js +5 -3
  118. package/dist/esm/snk-filter-bar.entry.js +57 -7
  119. package/dist/esm/snk-filter-item.entry.js +3 -0
  120. package/dist/esm/snk-filter-modal-item.entry.js +1 -2
  121. package/dist/esm/snk-filter-modal.entry.js +16 -1
  122. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  123. package/dist/esm/snk-form.entry.js +2 -2
  124. package/dist/esm/snk-grid-config.entry.js +1 -1
  125. package/dist/esm/snk-grid.entry.js +42 -18
  126. package/dist/esm/{snk-guides-viewer-9ce9588c.js → snk-guides-viewer-8adacfd4.js} +9 -10
  127. package/dist/esm/snk-guides-viewer.entry.js +7 -8
  128. package/dist/esm/snk-personalized-filter.entry.js +2 -2
  129. package/dist/esm/snk-pesquisa.entry.js +1 -1
  130. package/dist/esm/snk-simple-crud.entry.js +17 -6
  131. package/dist/esm/snk-taskbar.entry.js +54 -6
  132. package/dist/esm/{taskbar-elements-26c981af.js → taskbar-elements-d4d0b424.js} +1 -1
  133. package/dist/sankhyablocks/{p-ff6064e7.js → p-05243555.js} +1 -1
  134. package/dist/sankhyablocks/p-0574c231.entry.js +1 -0
  135. package/dist/sankhyablocks/p-0eb1ff03.js +65 -0
  136. package/dist/sankhyablocks/p-11bbb65e.entry.js +1 -0
  137. package/dist/sankhyablocks/{p-729f5f5b.entry.js → p-1d75d9f9.entry.js} +1 -1
  138. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  139. package/dist/sankhyablocks/p-2419f19f.js +1 -0
  140. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  141. package/dist/sankhyablocks/p-374d03f6.js +1 -0
  142. package/dist/sankhyablocks/p-38289a55.js +1 -0
  143. package/dist/sankhyablocks/p-3838d2ff.entry.js +1 -0
  144. package/dist/sankhyablocks/{p-35fe6e61.entry.js → p-40915359.entry.js} +1 -1
  145. package/dist/sankhyablocks/p-45d82274.entry.js +1 -0
  146. package/dist/sankhyablocks/{p-2028633c.js → p-573a07c5.js} +1 -1
  147. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  148. package/dist/sankhyablocks/{p-aaa1438e.entry.js → p-761ed32f.entry.js} +1 -1
  149. package/dist/sankhyablocks/p-79b4b271.entry.js +1 -0
  150. package/dist/sankhyablocks/p-7f3c7b09.entry.js +1 -0
  151. package/dist/sankhyablocks/{p-6977a26c.entry.js → p-86801b08.entry.js} +1 -1
  152. package/dist/sankhyablocks/p-96ef14f9.entry.js +1 -0
  153. package/dist/sankhyablocks/p-aa95fb2c.js +56 -0
  154. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  155. package/dist/sankhyablocks/p-c4874327.entry.js +1 -0
  156. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  157. package/dist/sankhyablocks/p-db4edd06.entry.js +11 -0
  158. package/dist/sankhyablocks/p-df2b84c4.entry.js +1 -0
  159. package/dist/sankhyablocks/p-e0b23084.entry.js +1 -0
  160. package/dist/sankhyablocks/p-e0fd9555.entry.js +1 -0
  161. package/dist/sankhyablocks/p-ed2dce4b.entry.js +1 -0
  162. package/dist/sankhyablocks/{p-32f0935f.js → p-f3d1c48e.js} +1 -1
  163. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  164. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  165. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  166. package/dist/types/components/snk-application/snk-application.d.ts +12 -2
  167. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  168. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  169. package/dist/types/components/snk-attach/snk-attach.d.ts +28 -6
  170. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  171. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +31 -0
  172. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  173. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  174. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  175. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +15 -0
  176. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  177. package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
  178. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
  179. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +19 -1
  180. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +18 -0
  181. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +7 -1
  182. package/dist/types/components/snk-grid/snk-grid.d.ts +6 -0
  183. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -1
  184. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +2 -0
  185. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +20 -1
  186. package/dist/types/components/snk-taskbar/subcomponents/field-search.d.ts +1 -0
  187. package/dist/types/components.d.ts +140 -13
  188. package/dist/types/lib/@types/index.d.ts +2 -1
  189. package/dist/types/lib/configs/ConfigStorage.d.ts +4 -0
  190. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  191. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  192. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  193. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  194. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  195. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  196. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  197. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +4 -1
  198. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  199. package/dist/types/lib/index.d.ts +1 -1
  200. package/package.json +15 -6
  201. package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
  202. package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
  203. package/dist/sankhyablocks/p-145c4434.js +0 -1
  204. package/dist/sankhyablocks/p-17dda7a2.entry.js +0 -1
  205. package/dist/sankhyablocks/p-19f51c6b.entry.js +0 -11
  206. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  207. package/dist/sankhyablocks/p-311c6173.entry.js +0 -1
  208. package/dist/sankhyablocks/p-4396d1a6.js +0 -56
  209. package/dist/sankhyablocks/p-44e894af.entry.js +0 -1
  210. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  211. package/dist/sankhyablocks/p-4b0ea83f.entry.js +0 -1
  212. package/dist/sankhyablocks/p-5534e08c.js +0 -1
  213. package/dist/sankhyablocks/p-78777ae0.entry.js +0 -1
  214. package/dist/sankhyablocks/p-953346b9.entry.js +0 -1
  215. package/dist/sankhyablocks/p-9c3229fc.entry.js +0 -1
  216. package/dist/sankhyablocks/p-a037f5b4.entry.js +0 -1
  217. package/dist/sankhyablocks/p-a702a1a2.js +0 -60
  218. package/dist/sankhyablocks/p-c259545b.entry.js +0 -1
  219. package/dist/sankhyablocks/p-d1677df0.entry.js +0 -1
  220. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  221. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  222. package/dist/sankhyablocks/p-dd6a8377.js +0 -1
  223. package/dist/sankhyablocks/p-e138e7d4.entry.js +0 -1
  224. package/dist/sankhyablocks/p-e1b29d4c.entry.js +0 -1
  225. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  226. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  227. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  228. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  229. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  230. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  231. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -30,6 +30,7 @@ export class SnkCrud {
30
30
  this.presentationMode = PresentationMode.PRIMARY;
31
31
  this.messagesBuilder = undefined;
32
32
  this.useEnterLikeTab = false;
33
+ this.disablePersonalizedFilter = undefined;
33
34
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
34
35
  }
35
36
  /**
@@ -162,7 +163,8 @@ export class SnkCrud {
162
163
  window.removeEventListener("keydown", this._keyDownHandler);
163
164
  }
164
165
  async initKeyboardManager() {
165
- const keyboardManager = await this._application.getKeyboardManager();
166
+ var _a;
167
+ const keyboardManager = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getKeyboardManager());
166
168
  if (keyboardManager) {
167
169
  const dataUnit = this._dataUnit || await this._snkDataUnit.getDataUnit();
168
170
  async function saveDataUnitHandlingFocus() {
@@ -211,7 +213,8 @@ export class SnkCrud {
211
213
  }
212
214
  }
213
215
  async removeShortcuts() {
214
- const keyboardManager = await this._application.getKeyboardManager();
216
+ var _a;
217
+ const keyboardManager = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getKeyboardManager());
215
218
  if (keyboardManager) {
216
219
  keyboardManager
217
220
  .unbind("F6")
@@ -278,7 +281,7 @@ export class SnkCrud {
278
281
  return;
279
282
  }
280
283
  this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
281
- return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
284
+ return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
282
285
  }
283
286
  static get is() { return "snk-crud"; }
284
287
  static get encapsulation() { return "scoped"; }
@@ -459,7 +462,7 @@ export class SnkCrud {
459
462
  "mutable": false,
460
463
  "complexType": {
461
464
  "original": "PresentationMode",
462
- "resolved": "PresentationMode.PRIMARY | PresentationMode.SECONDARY",
465
+ "resolved": "PresentationMode.PRIMARY | PresentationMode.SECONDARY | PresentationMode.SINGLE_TASKBAR",
463
466
  "references": {
464
467
  "PresentationMode": {
465
468
  "location": "import",
@@ -514,6 +517,23 @@ export class SnkCrud {
514
517
  "attribute": "use-enter-like-tab",
515
518
  "reflect": false,
516
519
  "defaultValue": "false"
520
+ },
521
+ "disablePersonalizedFilter": {
522
+ "type": "boolean",
523
+ "mutable": false,
524
+ "complexType": {
525
+ "original": "boolean",
526
+ "resolved": "boolean",
527
+ "references": {}
528
+ },
529
+ "required": false,
530
+ "optional": false,
531
+ "docs": {
532
+ "tags": [],
533
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
534
+ },
535
+ "attribute": "disable-personalized-filter",
536
+ "reflect": false
517
537
  }
518
538
  };
519
539
  }
@@ -25,7 +25,7 @@ snk-form-view {
25
25
  position: relative;
26
26
  padding-left: 0px;
27
27
  padding-top: 0px;
28
-
28
+
29
29
  /*public*/
30
30
  padding-right: var(--snk-guides-viewer--space-large);
31
31
  padding-bottom: var(--snk-guides-viewer--space-large);
@@ -57,6 +57,15 @@ snk-form-view {
57
57
  margin-bottom: var(--snk-guides-viewer--space-medium);
58
58
  }
59
59
 
60
+ .snk-guides-viewer__header-breadcrumb{
61
+ width: 25%;
62
+ display: flex;
63
+ }
64
+
65
+ .snk-guides-viewer__header-taskbar{
66
+ width: 75%;
67
+ }
68
+
60
69
  .snk-guides-viewer__container {
61
70
  /*private*/
62
71
  display: grid;
@@ -88,4 +97,4 @@ snk-form-view {
88
97
  min-height: 100%;
89
98
  align-items: flex-start;
90
99
  align-content: flex-start;
91
- }
100
+ }
@@ -134,7 +134,7 @@ export class SnkGuidesViewer {
134
134
  });
135
135
  this._guides = this._guides.map(guide => {
136
136
  if (guide.id === guideItem.id) {
137
- return Object.assign(Object.assign({}, guide), guideItem);
137
+ return Object.assign(Object.assign(Object.assign({}, guide), guideItem), (guideItem.children !== undefined ? {} : { children: undefined }));
138
138
  }
139
139
  return guide;
140
140
  });
@@ -383,7 +383,7 @@ export class SnkGuidesViewer {
383
383
  }
384
384
  buildTaskBar() {
385
385
  var _a;
386
- return h("div", { class: `ez-col ez-flex-item--align-center ez-col--sd-6 ez-col--tb-6 ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
386
+ return h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS", alignRigth: true }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
387
387
  }
388
388
  async dataUnitActionHandler(action) {
389
389
  var _a;
@@ -442,7 +442,7 @@ export class SnkGuidesViewer {
442
442
  }
443
443
  this.loadTaskbarProcessor();
444
444
  const showGuides = this._guides && (this._guides.length > 1);
445
- return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
445
+ return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
446
446
  h("div", { class: "ez-margin-top--extra-small" }, h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != PresentationMode.SECONDARY && this.buildTaskBar()), h("div", { class: "snk-guides-viewer__container" }, showGuides ?
447
447
  h("ez-guide-navigator", { ref: (ref) => this._guideNavigator = ref, class: "snk-guides-viewer__guide-navigator", items: this._guides, selectedId: this.selectedGuide ? this.selectedGuide.id : undefined, onEzSelectionChange: evt => this.updateSelectedGuideHandler(evt.detail) })
448
448
  :
@@ -690,7 +690,7 @@ export class SnkGuidesViewer {
690
690
  "mutable": false,
691
691
  "complexType": {
692
692
  "original": "PresentationMode",
693
- "resolved": "PresentationMode.PRIMARY | PresentationMode.SECONDARY",
693
+ "resolved": "PresentationMode.PRIMARY | PresentationMode.SECONDARY | PresentationMode.SINGLE_TASKBAR",
694
694
  "references": {
695
695
  "PresentationMode": {
696
696
  "location": "import",
@@ -239,7 +239,7 @@ export class SnkDataExporter {
239
239
  pkObject[`PK_${name}`] = { type: this.parseDataType(type), value };
240
240
  pkObject['pks'] = [];
241
241
  }
242
- const dataFields = { nome: name, tipo: type, valor: value };
242
+ const dataFields = { nome: name, tipo: this.parseDataType(type), valor: value };
243
243
  fields['fields'].push(dataFields);
244
244
  pkObject['pks'].push(fields);
245
245
  });
@@ -56,16 +56,18 @@ export class SnkEntityList {
56
56
  this.loadListSource();
57
57
  }
58
58
  optionLoader(searchArgument) {
59
- var _a, _b, _c, _d;
59
+ var _a, _b, _c, _d, _e, _f;
60
60
  const { mode, argument } = searchArgument;
61
61
  if (this._application === undefined) {
62
62
  return;
63
63
  }
64
64
  const searchOptions = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.searchContext) === null || _c === void 0 ? void 0 : _c.searchOptions;
65
+ const criteria = (_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.props) === null || _e === void 0 ? void 0 : _e.criteria;
65
66
  const options = {
66
- entityDescription: (_d = this.config) === null || _d === void 0 ? void 0 : _d.label,
67
+ entityDescription: (_f = this.config) === null || _f === void 0 ? void 0 : _f.label,
67
68
  entity: this._entityName,
68
- searchOptions: searchOptions
69
+ searchOptions: searchOptions,
70
+ criteria,
69
71
  };
70
72
  return this._application.executePreparedSearch(mode, argument, options);
71
73
  }
@@ -10,7 +10,8 @@ export class SnkFilterMultiSelect {
10
10
  * Emitido quando acontece a alteração de valor do componente snk-filter-multi-select
11
11
  */
12
12
  ezChangeListener(evt) {
13
- this.value = evt.detail.value;
13
+ var _a;
14
+ this.value = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value;
14
15
  this.valueChanged.emit(this.value);
15
16
  }
16
17
  /**
@@ -254,6 +254,9 @@ export class SnkFilterItem {
254
254
  }
255
255
  canClearFilter() {
256
256
  const { value, groupedItems = [] } = this.config;
257
+ if (value != undefined && this.config.type === FilterItemType.MULTI_LIST) {
258
+ return value.some((item) => item.check);
259
+ }
257
260
  return value !== undefined || groupedItems.some(item => item.visible);
258
261
  }
259
262
  getRightIconName() {
@@ -15,6 +15,15 @@ export class SnkFilterModal {
15
15
  this.closeModal = undefined;
16
16
  this.addPersonalizedFilter = undefined;
17
17
  this.editPersonalizedFilter = undefined;
18
+ this.deletePersonalizedFilter = undefined;
19
+ this.filtersToDelete = [];
20
+ this.disablePersonalizedFilter = undefined;
21
+ }
22
+ /**
23
+ * Emitido quando um filtro personalizado é deletado.
24
+ */
25
+ deletePersonalizedFilterListener(event) {
26
+ this.filtersToDelete.push(event.detail);
18
27
  }
19
28
  getCustomMessage(key, params) {
20
29
  var _a;
@@ -82,6 +91,12 @@ export class SnkFilterModal {
82
91
  if (this.isValidCustomFilter(filterPersonalized)) {
83
92
  this.applyFilters(this.filters);
84
93
  }
94
+ if (this.filtersToDelete.length > 0) {
95
+ this.filtersToDelete.forEach(filter => {
96
+ this.deletePersonalizedFilter(filter, this.configName);
97
+ });
98
+ this.filtersToDelete = [];
99
+ }
85
100
  }
86
101
  isValidCustomFilter(filterPersonalized) {
87
102
  const isValid = PersonalizedFilterUtils.validateVariableValues(filterPersonalized);
@@ -219,7 +234,7 @@ export class SnkFilterModal {
219
234
  const customFilters = this.filters.filter(filter => filter.filterType === FilterType.CUSTOM_FILTER);
220
235
  const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
221
236
  const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
222
- return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
237
+ return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
223
238
  }
224
239
  static get is() { return "snk-filter-modal"; }
225
240
  static get originalStyleUrls() {
@@ -354,9 +369,76 @@ export class SnkFilterModal {
354
369
  "optional": false,
355
370
  "docs": {
356
371
  "tags": [],
357
- "text": "A\u00E7\u00E3o executada ao editart um filtro personalizado"
372
+ "text": "A\u00E7\u00E3o executada ao editar um filtro personalizado"
358
373
  }
374
+ },
375
+ "deletePersonalizedFilter": {
376
+ "type": "unknown",
377
+ "mutable": false,
378
+ "complexType": {
379
+ "original": "(filter: IPersonalizedFilter, configName: string) => void",
380
+ "resolved": "(filter: IPersonalizedFilter, configName: string) => void",
381
+ "references": {
382
+ "IPersonalizedFilter": {
383
+ "location": "import",
384
+ "path": "../../snk-personalized-filter/interfaces/IPersonalizedFilter"
385
+ }
386
+ }
387
+ },
388
+ "required": false,
389
+ "optional": false,
390
+ "docs": {
391
+ "tags": [],
392
+ "text": "A\u00E7\u00E3o executada ao deletar um filtro personalizado"
393
+ }
394
+ },
395
+ "filtersToDelete": {
396
+ "type": "unknown",
397
+ "mutable": false,
398
+ "complexType": {
399
+ "original": "IPersonalizedFilter[]",
400
+ "resolved": "IPersonalizedFilter[]",
401
+ "references": {
402
+ "IPersonalizedFilter": {
403
+ "location": "import",
404
+ "path": "../../snk-personalized-filter/interfaces/IPersonalizedFilter"
405
+ }
406
+ }
407
+ },
408
+ "required": false,
409
+ "optional": false,
410
+ "docs": {
411
+ "tags": [],
412
+ "text": "Guarda filtros a serem deletados no Apply do modal"
413
+ },
414
+ "defaultValue": "[]"
415
+ },
416
+ "disablePersonalizedFilter": {
417
+ "type": "boolean",
418
+ "mutable": false,
419
+ "complexType": {
420
+ "original": "boolean",
421
+ "resolved": "boolean",
422
+ "references": {}
423
+ },
424
+ "required": false,
425
+ "optional": false,
426
+ "docs": {
427
+ "tags": [],
428
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
429
+ },
430
+ "attribute": "disable-personalized-filter",
431
+ "reflect": false
359
432
  }
360
433
  };
361
434
  }
435
+ static get listeners() {
436
+ return [{
437
+ "name": "deleteFilter",
438
+ "method": "deletePersonalizedFilterListener",
439
+ "target": undefined,
440
+ "capture": false,
441
+ "passive": false
442
+ }];
443
+ }
362
444
  }
@@ -41,7 +41,6 @@ export class SnkFilterModalItem {
41
41
  buildSnkFilterPersonalizedProps() {
42
42
  return {
43
43
  tag: "snk-personalized-filter-editor", props: {
44
- onDeleteFilter: (event) => this.handleDeleteFilter(event.detail, FilterItemType.PERSONALIZED),
45
44
  onEditFilter: (event) => this.editPersonalizedFilter.emit(event.detail),
46
45
  onAddFilter: () => this.addPersonalizedFilter.emit(),
47
46
  }
@@ -11,6 +11,7 @@ export class SnkFilterBar {
11
11
  this._updateSequence = [];
12
12
  this._loadingPending = false;
13
13
  this._configUpdated = false;
14
+ this._firstLoad = true;
14
15
  this._pendingVariables = false;
15
16
  this._customfiltersToBeUpdated = [];
16
17
  this._calculateSortIndex = (item) => {
@@ -31,6 +32,7 @@ export class SnkFilterBar {
31
32
  this.resourceID = undefined;
32
33
  this.filterConfig = undefined;
33
34
  this.messagesBuilder = undefined;
35
+ this.disablePersonalizedFilter = undefined;
34
36
  this.allowDefault = undefined;
35
37
  this.scrollerLocked = false;
36
38
  this.showPersonalizedFilter = false;
@@ -74,7 +76,7 @@ export class SnkFilterBar {
74
76
  * Faz o recarregamento da filterbar buscando o state no servidor.
75
77
  */
76
78
  async reload() {
77
- this.loadConfigFromStorage();
79
+ this.loadConfigFromStorage(true);
78
80
  }
79
81
  /**
80
82
  * Retorna um item de filtro pelo ID.
@@ -114,6 +116,24 @@ export class SnkFilterBar {
114
116
  this.updateFilter(filterItem);
115
117
  return Promise.resolve();
116
118
  }
119
+ /**
120
+ * Remove um item de filtro.
121
+ *
122
+ * @param filterID - ID do a ser adicionado
123
+ *
124
+ * @returns {Promise<SnkFilterItemConfig|undefined>} - Retorna o item de filtro removido, ou undefined caso não encontrado.
125
+ */
126
+ async removeFilterItem(filterID) {
127
+ const itemIndex = this.filterConfig.findIndex(item => item.id === filterID);
128
+ if (itemIndex == -1) {
129
+ console.warn("[SnkFilterBar.removeFilterItem] FilterItem não encontrado");
130
+ return Promise.resolve(undefined);
131
+ }
132
+ const itemToRemove = this.filterConfig[itemIndex];
133
+ ;
134
+ this.filterConfig = this.filterConfig.filter(item => item.id !== filterID);
135
+ return Promise.resolve(itemToRemove);
136
+ }
117
137
  componentDidLoad() {
118
138
  if (this._element) {
119
139
  const dataInfo = { dataUnit: this.dataUnit };
@@ -146,13 +166,27 @@ export class SnkFilterBar {
146
166
  return;
147
167
  }
148
168
  this._loadingPending = false;
149
- this.dataUnit.loadData(undefined, undefined, true);
169
+ this.doLoadData(this.dataUnit.getLastLoadRequest() != undefined);
150
170
  }
151
171
  if (this._configUpdated) {
152
172
  this._configUpdated = false;
153
173
  ConfigStorage.saveFilterBarConfig(this.filterConfig, this.configName, this.resourceID);
154
174
  }
155
175
  }
176
+ async doLoadData(forceReload = false) {
177
+ try {
178
+ if (this._firstLoad && !forceReload) {
179
+ let autoLoad = await this._application.getBooleanParam("global.carregar.registros.iniciar.tela");
180
+ if (!autoLoad) {
181
+ return;
182
+ }
183
+ }
184
+ this.dataUnit.loadData(undefined, undefined, true);
185
+ }
186
+ finally {
187
+ this._firstLoad = false;
188
+ }
189
+ }
156
190
  /**
157
191
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
158
192
  * através de um pequeno modulo na estrutura da aplicação:
@@ -161,6 +195,9 @@ export class SnkFilterBar {
161
195
  */
162
196
  getMessage(key, params, defaultValue) {
163
197
  var _a;
198
+ if (this.messagesBuilder == undefined && this._application) {
199
+ this.messagesBuilder = this._application.messagesBuilder;
200
+ }
164
201
  return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
165
202
  }
166
203
  getFilter(_dataUnit) {
@@ -187,7 +224,7 @@ export class SnkFilterBar {
187
224
  registryFilterProvider() {
188
225
  this.dataUnit.addFilterProvider(this);
189
226
  if (this.filterConfig) {
190
- this.dataUnit.loadData(undefined, undefined, true);
227
+ this.doLoadData();
191
228
  }
192
229
  }
193
230
  itemFocused(selectedItem) {
@@ -264,7 +301,10 @@ export class SnkFilterBar {
264
301
  loadPermitions() {
265
302
  this._application.isUserSup().then(value => this.allowDefault = value);
266
303
  }
267
- loadConfigFromStorage() {
304
+ async loadConfigFromStorage(clearCache) {
305
+ if (clearCache) {
306
+ await ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
307
+ }
268
308
  return new Promise(accept => {
269
309
  ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name })
270
310
  .then((filters) => {
@@ -319,9 +359,11 @@ export class SnkFilterBar {
319
359
  filterConfig: filtersConfigCopy,
320
360
  configName: this.configName,
321
361
  onComplete: callbackOnApplyFilter,
362
+ disablePersonalizedFilter: this.disablePersonalizedFilter,
322
363
  getMessage: (key, props) => this.getMessage(key, props),
323
364
  onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
324
- onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id)
365
+ onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id),
366
+ onDeletePersonalizedFilter: (filter, configName) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName),
325
367
  };
326
368
  this._filterModalFactory = new SnkFilterModalFactory(factoryParams);
327
369
  await this._filterModalFactory.showModal();
@@ -339,6 +381,11 @@ export class SnkFilterBar {
339
381
  this.showPersonalizedFilter = true;
340
382
  this.personalizedFilterId = id;
341
383
  }
384
+ deletePersonalizedFilter(filter, filterItemType, configName) {
385
+ if (filterItemType === FilterItemType.PERSONALIZED) {
386
+ ConfigStorage.removePersonalizedFilter(filter, this.resourceID, configName);
387
+ }
388
+ }
342
389
  handleHidePersonalizedFilter(reloadFilterBar) {
343
390
  if (reloadFilterBar) {
344
391
  this.loadConfigFromStorage().then(() => {
@@ -483,6 +530,23 @@ export class SnkFilterBar {
483
530
  "tags": [],
484
531
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
485
532
  }
533
+ },
534
+ "disablePersonalizedFilter": {
535
+ "type": "boolean",
536
+ "mutable": false,
537
+ "complexType": {
538
+ "original": "boolean",
539
+ "resolved": "boolean",
540
+ "references": {}
541
+ },
542
+ "required": false,
543
+ "optional": false,
544
+ "docs": {
545
+ "tags": [],
546
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
547
+ },
548
+ "attribute": "disable-personalized-filter",
549
+ "reflect": false
486
550
  }
487
551
  };
488
552
  }
@@ -612,6 +676,38 @@ export class SnkFilterBar {
612
676
  "text": "filterItem - Item a ser adicionado, caso o item j\u00E1 exista com o ID ele n\u00E3o ser\u00E1 adicionado novamente"
613
677
  }]
614
678
  }
679
+ },
680
+ "removeFilterItem": {
681
+ "complexType": {
682
+ "signature": "(filterID: string) => Promise<SnkFilterItemConfig | undefined>",
683
+ "parameters": [{
684
+ "tags": [{
685
+ "name": "param",
686
+ "text": "filterID - ID do a ser adicionado"
687
+ }],
688
+ "text": "- ID do a ser adicionado"
689
+ }],
690
+ "references": {
691
+ "Promise": {
692
+ "location": "global"
693
+ },
694
+ "SnkFilterItemConfig": {
695
+ "location": "import",
696
+ "path": "./filter-item/snk-filter-item"
697
+ }
698
+ },
699
+ "return": "Promise<SnkFilterItemConfig>"
700
+ },
701
+ "docs": {
702
+ "text": "Remove um item de filtro.",
703
+ "tags": [{
704
+ "name": "param",
705
+ "text": "filterID - ID do a ser adicionado"
706
+ }, {
707
+ "name": "returns",
708
+ "text": "- Retorna o item de filtro removido, ou undefined caso n\u00E3o encontrado."
709
+ }]
710
+ }
615
711
  }
616
712
  };
617
713
  }
@@ -1,12 +1,14 @@
1
1
  import { ApplicationUtils } from "@sankhyalabs/ezui/dist/collection/utils";
2
2
  class SnkFilterModalFactory {
3
- constructor({ filterConfig, configName, onComplete, getMessage, onAddPersonalizedFilter, onEditPersonalizedFilter }) {
3
+ constructor({ filterConfig, configName, onComplete, getMessage, disablePersonalizedFilter, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
4
4
  this._filterConfig = filterConfig;
5
5
  this._configName = configName;
6
6
  this._onComplete = onComplete;
7
7
  this._getMessage = getMessage;
8
+ this._disablePersonalizedFilter = disablePersonalizedFilter;
8
9
  this._addPersonalizedFilterFn = onAddPersonalizedFilter;
9
10
  this._editPersonalizedFilterFn = onEditPersonalizedFilter;
11
+ this._onDeletePersonalizedFilter = onDeletePersonalizedFilter;
10
12
  }
11
13
  applyFilters(newFilterConfig) {
12
14
  this._onComplete(newFilterConfig);
@@ -17,11 +19,13 @@ class SnkFilterModalFactory {
17
19
  filterModal.className = "ez-size-height--full";
18
20
  filterModal.filters = this._filterConfig;
19
21
  filterModal.configName = this._configName;
22
+ filterModal.disablePersonalizedFilter = this._disablePersonalizedFilter;
20
23
  filterModal.getMessage = this._getMessage.bind(this);
21
24
  filterModal.applyFilters = this.applyFilters.bind(this);
22
25
  filterModal.closeModal = () => this._closeModal();
23
26
  filterModal.addPersonalizedFilter = () => this._addPersonalizedFilterFn();
24
27
  filterModal.editPersonalizedFilter = (id) => this._editPersonalizedFilterFn(id);
28
+ filterModal.deletePersonalizedFilter = (filter, configName) => this._onDeletePersonalizedFilter(filter, configName);
25
29
  return filterModal;
26
30
  }
27
31
  async showModal() {