@sankhyalabs/sankhyablocks 6.5.0 → 6.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/cjs/{PersonalizedFilterUtils-7d959e91.js → PersonalizedFilterUtils-cfcd9af2.js} +47 -10
  2. package/dist/cjs/{SnkMessageBuilder-aec46b5d.js → SnkMessageBuilder-ba6d4ade.js} +4 -1
  3. package/dist/cjs/SnkMultiSelectionListDataSource-804ff4c7.js +34 -0
  4. package/dist/cjs/{index-614af008.js → index-0e663819.js} +0 -36
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  7. package/dist/cjs/snk-actions-button.cjs.entry.js +1 -1
  8. package/dist/cjs/snk-application.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  10. package/dist/cjs/snk-crud.cjs.entry.js +2 -2
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  12. package/dist/cjs/{snk-data-unit-ba0c368c.js → snk-data-unit-5f434275.js} +1 -1
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  15. package/dist/cjs/snk-expression-group.cjs.entry.js +21 -17
  16. package/dist/cjs/snk-expression-item_3.cjs.entry.js +21 -31
  17. package/dist/cjs/snk-filter-bar.cjs.entry.js +15 -16
  18. package/dist/cjs/snk-filter-detail.cjs.entry.js +11 -7
  19. package/dist/cjs/snk-filter-item.cjs.entry.js +16 -7
  20. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +10 -8
  21. package/dist/cjs/snk-filter-modal.cjs.entry.js +13 -7
  22. package/dist/cjs/snk-grid.cjs.entry.js +4 -32
  23. package/dist/cjs/{snk-guides-viewer-7bedfa91.js → snk-guides-viewer-27586701.js} +2 -2
  24. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  25. package/dist/cjs/{snk-filter-personalized.cjs.entry.js → snk-personalized-filter-editor.cjs.entry.js} +35 -12
  26. package/dist/cjs/snk-personalized-filter.cjs.entry.js +24 -13
  27. package/dist/cjs/snk-simple-crud.cjs.entry.js +44 -15
  28. package/dist/cjs/snk-taskbar.cjs.entry.js +2 -2
  29. package/dist/cjs/{taskbar-elements-7f91f4cd.js → taskbar-elements-b98dd6e9.js} +1 -1
  30. package/dist/collection/collection-manifest.json +1 -1
  31. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +1 -1
  32. package/dist/collection/components/snk-filter-bar/filter-item/editors/{snk-filter-personalized/snk-filter-personalized.js → snk-personalized-filter-editor/snk-personalized-filter-editor.js} +36 -13
  33. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +9 -5
  34. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +16 -7
  35. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +11 -5
  36. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +10 -8
  37. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +4 -5
  38. package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.js +2 -12
  39. package/dist/collection/components/snk-personalized-filter/interfaces/index.js +39 -0
  40. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +24 -12
  41. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +25 -21
  42. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +7 -7
  43. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +3 -3
  44. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +6 -6
  45. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +10 -2
  46. package/dist/collection/lib/@types/index.js +0 -36
  47. package/dist/collection/lib/dataUnit/InMemoryLoader.js +25 -4
  48. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +4 -1
  49. package/dist/components/PersonalizedFilterUtils.js +49 -7
  50. package/dist/components/SnkMessageBuilder.js +4 -1
  51. package/dist/components/{taskbar-processor.js → SnkMultiSelectionListDataSource.js} +32 -1
  52. package/dist/components/index.d.ts +1 -1
  53. package/dist/components/index.js +1 -1
  54. package/dist/components/index2.js +1 -37
  55. package/dist/components/snk-detail-view2.js +1 -1
  56. package/dist/components/snk-expression-group2.js +22 -23
  57. package/dist/components/snk-expression-item2.js +4 -4
  58. package/dist/components/snk-filter-bar2.js +5 -7
  59. package/dist/components/snk-filter-detail2.js +9 -5
  60. package/dist/components/snk-filter-field-search2.js +2 -12
  61. package/dist/components/snk-filter-item2.js +16 -7
  62. package/dist/components/snk-filter-modal-item2.js +10 -8
  63. package/dist/components/snk-filter-modal.js +11 -5
  64. package/dist/components/snk-filter-param-config2.js +1 -2
  65. package/dist/components/snk-grid2.js +4 -33
  66. package/dist/components/snk-personalized-filter-editor.d.ts +11 -0
  67. package/dist/components/{snk-filter-personalized.js → snk-personalized-filter-editor.js} +42 -19
  68. package/dist/components/snk-personalized-filter2.js +25 -13
  69. package/dist/components/snk-simple-crud2.js +34 -6
  70. package/dist/esm/{PersonalizedFilterUtils-202cd721.js → PersonalizedFilterUtils-1a167d89.js} +44 -7
  71. package/dist/esm/{SnkMessageBuilder-a4f7d858.js → SnkMessageBuilder-9d2becfb.js} +4 -1
  72. package/dist/esm/SnkMultiSelectionListDataSource-892f37f9.js +32 -0
  73. package/dist/esm/index-1564817d.js +33 -0
  74. package/dist/esm/loader.js +1 -1
  75. package/dist/esm/sankhyablocks.js +1 -1
  76. package/dist/esm/snk-actions-button.entry.js +1 -1
  77. package/dist/esm/snk-application.entry.js +1 -1
  78. package/dist/esm/snk-attach.entry.js +2 -2
  79. package/dist/esm/snk-crud.entry.js +2 -2
  80. package/dist/esm/snk-data-exporter.entry.js +3 -3
  81. package/dist/esm/{snk-data-unit-3ecaf52c.js → snk-data-unit-ca4bcba6.js} +1 -1
  82. package/dist/esm/snk-data-unit.entry.js +2 -2
  83. package/dist/esm/snk-detail-view.entry.js +4 -4
  84. package/dist/esm/snk-expression-group.entry.js +21 -17
  85. package/dist/esm/snk-expression-item_3.entry.js +7 -17
  86. package/dist/esm/snk-filter-bar.entry.js +6 -7
  87. package/dist/esm/snk-filter-detail.entry.js +11 -7
  88. package/dist/esm/snk-filter-item.entry.js +16 -7
  89. package/dist/esm/snk-filter-modal-item.entry.js +10 -8
  90. package/dist/esm/snk-filter-modal.entry.js +13 -7
  91. package/dist/esm/snk-grid.entry.js +6 -34
  92. package/dist/esm/{snk-guides-viewer-9240c017.js → snk-guides-viewer-950dd3b5.js} +2 -2
  93. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  94. package/dist/esm/{snk-filter-personalized.entry.js → snk-personalized-filter-editor.entry.js} +35 -12
  95. package/dist/esm/snk-personalized-filter.entry.js +24 -13
  96. package/dist/esm/snk-simple-crud.entry.js +36 -7
  97. package/dist/esm/snk-taskbar.entry.js +2 -2
  98. package/dist/esm/{taskbar-elements-139b1058.js → taskbar-elements-2c761819.js} +1 -1
  99. package/dist/sankhyablocks/{p-ab33e180.js → p-01070d6d.js} +1 -1
  100. package/dist/sankhyablocks/p-18de3bbd.entry.js +1 -0
  101. package/dist/sankhyablocks/p-25df01a1.entry.js +1 -0
  102. package/dist/sankhyablocks/p-30134b16.entry.js +1 -0
  103. package/dist/sankhyablocks/{p-09f33525.entry.js → p-402db136.entry.js} +1 -1
  104. package/dist/sankhyablocks/p-40a5d35e.entry.js +1 -0
  105. package/dist/sankhyablocks/p-4c8d0516.entry.js +1 -0
  106. package/dist/sankhyablocks/p-5534e08c.js +1 -0
  107. package/dist/sankhyablocks/{p-257aeea4.entry.js → p-5e06e139.entry.js} +1 -1
  108. package/dist/sankhyablocks/{p-43485c54.js → p-602dfb9e.js} +1 -1
  109. package/dist/sankhyablocks/{p-78a226a1.js → p-6f4f88ef.js} +1 -1
  110. package/dist/sankhyablocks/p-775e60f5.entry.js +1 -0
  111. package/dist/sankhyablocks/{p-aa4e880f.entry.js → p-7c10486f.entry.js} +1 -1
  112. package/dist/sankhyablocks/p-7d68a43a.js +1 -0
  113. package/dist/sankhyablocks/p-86e10ecc.entry.js +1 -0
  114. package/dist/sankhyablocks/p-88a40b96.entry.js +1 -0
  115. package/dist/sankhyablocks/{p-f1edaec0.js → p-a2493d11.js} +1 -1
  116. package/dist/sankhyablocks/p-b6f9f702.entry.js +1 -0
  117. package/dist/sankhyablocks/{p-6564f621.entry.js → p-c2d3e4fb.entry.js} +1 -1
  118. package/dist/sankhyablocks/{p-2adb4481.entry.js → p-c6380ea2.entry.js} +1 -1
  119. package/dist/sankhyablocks/{p-0d670404.entry.js → p-c7c4ed56.entry.js} +1 -1
  120. package/dist/sankhyablocks/{p-e8be0aae.entry.js → p-ca29b093.entry.js} +1 -1
  121. package/dist/sankhyablocks/p-d881cab2.entry.js +1 -0
  122. package/dist/sankhyablocks/p-d9586ead.entry.js +1 -0
  123. package/dist/sankhyablocks/p-f8ce17d3.entry.js +1 -0
  124. package/dist/sankhyablocks/p-fa9d3f73.js +1 -0
  125. package/dist/sankhyablocks/{p-cea58f8b.entry.js → p-fdc262aa.entry.js} +1 -1
  126. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  127. package/dist/types/components/snk-filter-bar/filter-item/editors/{snk-filter-personalized/snk-filter-personalized.d.ts → snk-personalized-filter-editor/snk-personalized-filter-editor.d.ts} +8 -25
  128. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +2 -0
  129. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +3 -0
  130. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +2 -1
  131. package/dist/types/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.d.ts +3 -1
  132. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +1 -0
  133. package/dist/types/components/snk-filter-field-search/snk-filter-field-search.d.ts +0 -1
  134. package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionItem.d.ts +1 -1
  135. package/dist/types/components/snk-personalized-filter/interfaces/IParameter.d.ts +37 -0
  136. package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IUserFilterConfig.d.ts +1 -1
  137. package/dist/types/components/snk-personalized-filter/interfaces/index.d.ts +35 -0
  138. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +3 -1
  139. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +5 -2
  140. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.d.ts +1 -1
  141. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.d.ts +2 -1
  142. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.d.ts +1 -1
  143. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +2 -2
  144. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +3 -0
  145. package/dist/types/components.d.ts +62 -62
  146. package/dist/types/lib/@types/index.d.ts +0 -32
  147. package/dist/types/lib/configs/ConfigStorage.d.ts +1 -1
  148. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +3 -1
  149. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +1 -1
  150. package/package.json +1 -1
  151. package/react/components.d.ts +1 -1
  152. package/react/components.js +1 -1
  153. package/react/components.js.map +1 -1
  154. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.js +0 -3
  155. package/dist/components/snk-filter-personalized.d.ts +0 -11
  156. package/dist/esm/index-a255b326.js +0 -69
  157. package/dist/sankhyablocks/p-0364abc8.entry.js +0 -1
  158. package/dist/sankhyablocks/p-18e3a2b7.entry.js +0 -1
  159. package/dist/sankhyablocks/p-36ecb6ab.js +0 -1
  160. package/dist/sankhyablocks/p-4374cc15.entry.js +0 -1
  161. package/dist/sankhyablocks/p-50c3700f.entry.js +0 -1
  162. package/dist/sankhyablocks/p-6ce48ae3.entry.js +0 -1
  163. package/dist/sankhyablocks/p-7add855c.entry.js +0 -1
  164. package/dist/sankhyablocks/p-a1cab141.entry.js +0 -1
  165. package/dist/sankhyablocks/p-abc4ae66.entry.js +0 -1
  166. package/dist/sankhyablocks/p-c7dd701c.entry.js +0 -1
  167. package/dist/sankhyablocks/p-d5a25c7d.entry.js +0 -1
  168. package/dist/sankhyablocks/p-e962ce72.entry.js +0 -1
  169. package/dist/sankhyablocks/p-eb90de43.js +0 -1
  170. package/dist/sankhyablocks/p-f75dceb1.entry.js +0 -1
  171. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IParameter.d.ts +0 -21
  172. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.d.ts +0 -3
  173. /package/dist/cjs/{IExpressionItem-1090c3fd.js → IExpressionItem-0e32ebb7.js} +0 -0
  174. /package/dist/collection/components/snk-filter-bar/filter-item/editors/{snk-filter-personalized/snk-filter-personalized.css → snk-personalized-filter-editor/snk-personalized-filter-editor.css} +0 -0
  175. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionGroup.js +0 -0
  176. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionItem.js +0 -0
  177. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IParameter.js +0 -0
  178. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IPersonalizedFilter.js +0 -0
  179. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/ISystemFilterConfig.js +0 -0
  180. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IUserFilterConfig.js +0 -0
  181. /package/dist/esm/{IExpressionItem-2e922b2c.js → IExpressionItem-21f225bf.js} +0 -0
  182. /package/dist/sankhyablocks/{p-c6bf66e0.js → p-63bff2a8.js} +0 -0
  183. /package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionGroup.d.ts +0 -0
  184. /package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IPersonalizedFilter.d.ts +0 -0
  185. /package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/ISystemFilterConfig.d.ts +0 -0
@@ -181,11 +181,7 @@ const SnkFilterItem = class {
181
181
  return `${label}: ${value.value} - ${value.label}`;
182
182
  }
183
183
  if (type === FilterItemType.PERSONALIZED) {
184
- const activeCount = groupedItems.reduce((total, item) => {
185
- if (!!item.visible)
186
- return total + 1;
187
- return total;
188
- }, 0);
184
+ const activeCount = this.calculateActiveCount(groupedItems);
189
185
  if (activeCount <= 0)
190
186
  return label;
191
187
  return `${label}: ${this.getMessage('snkFilterBar.personalizedCount', { activeCount })}`;
@@ -209,6 +205,13 @@ const SnkFilterItem = class {
209
205
  }
210
206
  return label;
211
207
  }
208
+ calculateActiveCount(groupedItems) {
209
+ return groupedItems.reduce((total, item) => {
210
+ if (!!item.visible)
211
+ return total + 1;
212
+ return total;
213
+ }, 0);
214
+ }
212
215
  applyTooltip() {
213
216
  if (!this.config.value)
214
217
  return undefined;
@@ -257,13 +260,19 @@ const SnkFilterItem = class {
257
260
  }
258
261
  return undefined;
259
262
  }
263
+ hasActiveElements(value) {
264
+ var _a, _b, _c;
265
+ return ((_c = (_b = ((_a = value === null || value === void 0 ? void 0 : value.elements) !== null && _a !== void 0 ? _a : value)) === null || _b === void 0 ? void 0 : _b.filter(val => val === null || val === void 0 ? void 0 : val.check)) === null || _c === void 0 ? void 0 : _c.length) > 0;
266
+ }
267
+ hasActiveValue(config) {
268
+ return (config.type !== FilterItemType.MULTI_LIST && config.value !== undefined) || this.hasActiveElements(config.value);
269
+ }
260
270
  getEnabledChip() {
261
- var _a, _b, _c, _d;
262
271
  if (this.config.type === FilterItemType.PERSONALIZED) {
263
272
  const { groupedItems = [] } = this.config;
264
273
  return groupedItems.some(item => item.visible);
265
274
  }
266
- return (FilterItemType.MULTI_LIST != this.config.type && this.config.value != undefined) || (((_d = (_c = ((_b = (_a = this.config.value) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : this.config.value)) === null || _c === void 0 ? void 0 : _c.filter(value => value === null || value === void 0 ? void 0 : value.check)) === null || _d === void 0 ? void 0 : _d.length) > 0);
275
+ return this.hasActiveValue(this.config);
267
276
  }
268
277
  render() {
269
278
  const leftIcon = this.getLeftIconName();
@@ -43,19 +43,21 @@ const SnkFilterModalItem = class {
43
43
  case FilterItemType.NUMBER:
44
44
  return { tag: "snk-filter-number" };
45
45
  case FilterItemType.PERSONALIZED:
46
- const snkFilterPersonalizedProps = {
47
- tag: "snk-filter-personalized", props: {
48
- onDeleteFilter: (event) => this.handleDeleteFilter(event.detail, FilterItemType.PERSONALIZED),
49
- onEditFilter: (event) => this.editPersonalizedFilter.emit(event.detail),
50
- onAddFilter: () => this.addPersonalizedFilter.emit(),
51
- }
52
- };
53
- return snkFilterPersonalizedProps;
46
+ return this.buildSnkFilterPersonalizedProps();
54
47
  case FilterItemType.MULTI_LIST:
55
48
  return { tag: "snk-entity-list", props: { maxHeightList: "640px", rightListSlotBuilder: item => this.buildRightSlot(item) } };
56
49
  }
57
50
  return { tag: "snk-filter-text" };
58
51
  }
52
+ buildSnkFilterPersonalizedProps() {
53
+ return {
54
+ tag: "snk-personalized-filter-editor", props: {
55
+ onDeleteFilter: (event) => this.handleDeleteFilter(event.detail, FilterItemType.PERSONALIZED),
56
+ onEditFilter: (event) => this.editPersonalizedFilter.emit(event.detail),
57
+ onAddFilter: () => this.addPersonalizedFilter.emit(),
58
+ }
59
+ };
60
+ }
59
61
  isVisible(newValue) {
60
62
  return !this.filterItem.visible ? newValue !== undefined : true;
61
63
  }
@@ -4,8 +4,8 @@ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
5
5
  import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
6
6
  import { ObjectUtils } from '@sankhyalabs/core';
7
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
8
- import './index-a255b326.js';
7
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
8
+ import './IExpressionItem-21f225bf.js';
9
9
 
10
10
  const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px}.snk-filter-modal__container{width:344px;max-width:344px;min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px;overflow-x:clip;overflow-y:auto}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";
11
11
 
@@ -71,7 +71,7 @@ const SnkFilterModal = class {
71
71
  });
72
72
  }
73
73
  handleClose() {
74
- const hasChangesToSave = JSON.stringify(this.filters) !== JSON.stringify(this._originalFilterConfig);
74
+ const hasChangesToSave = ObjectUtils.objectToString(this.filters) !== ObjectUtils.objectToString(this._originalFilterConfig);
75
75
  if (!hasChangesToSave) {
76
76
  this.closeModal();
77
77
  return;
@@ -81,13 +81,19 @@ const SnkFilterModal = class {
81
81
  this.closeModal();
82
82
  });
83
83
  }
84
- validatePersonalizedFilter() {
84
+ handleApplyFilters() {
85
85
  const filterPersonalized = this.filters.find(filter => filter.filterType === FilterType.CUSTOM_FILTER);
86
+ if (this.isValidCustomFilter(filterPersonalized)) {
87
+ this.applyFilters(this.filters);
88
+ }
89
+ }
90
+ isValidCustomFilter(filterPersonalized) {
86
91
  const isValid = PersonalizedFilterUtils.validateVariableValues(filterPersonalized);
87
92
  if (!isValid) {
88
- return ApplicationUtils.alert(this.getCustomMessage('validations.notFullFilled.title'), this.getCustomMessage('validations.notFullFilled.message'));
93
+ ApplicationUtils.alert(this.getCustomMessage('validations.notFullFilled.title'), this.getCustomMessage('validations.notFullFilled.message'));
94
+ return false;
89
95
  }
90
- this.applyFilters(this.filters);
96
+ return true;
91
97
  }
92
98
  modalActionListener(evt) {
93
99
  const modalAction = evt.detail;
@@ -96,7 +102,7 @@ const SnkFilterModal = class {
96
102
  this.handleClearAll();
97
103
  break;
98
104
  case ModalAction.OK:
99
- this.validatePersonalizedFilter();
105
+ this.handleApplyFilters();
100
106
  break;
101
107
  case ModalAction.CLOSE:
102
108
  this.handleClose();
@@ -1,11 +1,12 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
- import { UserInterface, DateUtils, ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
- import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
- import { T as TaskbarElement } from './taskbar-elements-139b1058.js';
2
+ import { ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
+ import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
+ import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
5
5
  import { C as ConfigStorage } from './ConfigStorage-9f4d2e67.js';
6
- import { P as PresentationMode } from './index-a255b326.js';
6
+ import { P as PresentationMode } from './index-1564817d.js';
7
7
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
8
8
  import { s as store } from './index-bdf75557.js';
9
+ import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-892f37f9.js';
9
10
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
10
11
  import './form-config-fetcher-cac8cd96.js';
11
12
  import './DataFetcher-b3d8b2d5.js';
@@ -14,35 +15,6 @@ import './resource-fetcher-02642924.js';
14
15
  import './filter-bar-config-fetcher-bd2070a3.js';
15
16
  import './filter-item-type.enum-5028ed3f.js';
16
17
 
17
- class SnkMultiSelectionListDataSource {
18
- setDataUnit(dataUnit) {
19
- this._dataUnit = dataUnit;
20
- }
21
- setApplication(application) {
22
- this._application = application;
23
- }
24
- formatLabel(fieldName, value) {
25
- const { userInterface } = this._dataUnit.getField(fieldName);
26
- if (userInterface === UserInterface.DATETIME) {
27
- return DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
28
- }
29
- return String(this._dataUnit.getFormattedValue(fieldName, value));
30
- }
31
- fetchData(filterTerm, fieldName) {
32
- return new Promise(resolve => {
33
- this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
34
- resolve(result.map(item => {
35
- const field = this._dataUnit.getField(fieldName);
36
- if (field.userInterface === UserInterface.SEARCH) {
37
- return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
38
- }
39
- return { value: item, label: this.formatLabel(fieldName, item), check: true };
40
- }));
41
- });
42
- });
43
- }
44
- }
45
-
46
18
  const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
47
19
 
48
20
  const SnkGrid = class {
@@ -176,7 +148,7 @@ const SnkGrid = class {
176
148
  id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
177
149
  width: 200,
178
150
  type: DataType.TEXT,
179
- userInterface: UserInterface$1.LONGTEXT
151
+ userInterface: UserInterface.LONGTEXT
180
152
  };
181
153
  columnsMetadata.push(descriptionColumn);
182
154
  }
@@ -3,11 +3,11 @@ import { ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { S as SnkFormConfigManager } from './SnkFormConfigManager-def999fe.js';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
5
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
6
- import { T as TaskbarElement } from './taskbar-elements-139b1058.js';
6
+ import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
7
7
  import { c as VIEW_MODE } from './constants-3644f1b6.js';
8
8
  import './DataFetcher-b3d8b2d5.js';
9
9
  import './pesquisa-fetcher-bd6af0e3.js';
10
- import { P as PresentationMode } from './index-a255b326.js';
10
+ import { P as PresentationMode } from './index-1564817d.js';
11
11
 
12
12
  const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-medium:var(--space--medium, 12px);--snk-guides-viewer__header--min-height:94px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;display:block}snk-form-view.sc-snk-guides-viewer{width:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding-left:0px;padding-top:0px;padding-right:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-medium);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-medium)}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:calc(var(--snk-guides-viewer__header--min-height) + var(--snk-guides-viewer--space-medium));height:calc(100vh - var(--snk-guides-viewer__header--min-height) - var(--snk-guides-viewer--space-large) - var(--snk-guides-viewer--space-medium))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
13
13
 
@@ -1,4 +1,4 @@
1
- export { S as snk_guides_viewer } from './snk-guides-viewer-9240c017.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-950dd3b5.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
4
  import './SnkFormConfigManager-def999fe.js';
@@ -11,8 +11,8 @@ import './filter-bar-config-fetcher-bd2070a3.js';
11
11
  import './filter-item-type.enum-5028ed3f.js';
12
12
  import '@sankhyalabs/ezui/dist/collection/utils/form';
13
13
  import './taskbar-processor-94402e6e.js';
14
- import './taskbar-elements-139b1058.js';
15
- import './index-a255b326.js';
14
+ import './taskbar-elements-2c761819.js';
15
+ import './index-1564817d.js';
16
16
  import './index-bdf75557.js';
17
17
  import './constants-3644f1b6.js';
18
18
  import './pesquisa-fetcher-bd6af0e3.js';
@@ -5,7 +5,7 @@ import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
5
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
6
6
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
7
7
 
8
- const snkFilterPersonalizedCss = ".sc-snk-filter-personalized-h{--snk-filter-personalized__max-height:21;--snk-filter-personalized__max-width:21.5}.SnkFilterPersonalized_list-container.sc-snk-filter-personalized{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.SnkFilterPersonalized_list-container-chip.sc-snk-filter-personalized{width:400px}.SnkFilterPersonalized_list-scroller.sc-snk-filter-personalized{display:block;max-height:calc(var(--space--2xl) * var(--snk-filter-personalized__max-height));cursor:auto;--ez-scroller__max-height:300px}.SnkFilterPersonalized_checkbox.sc-snk-filter-personalized{display:grid;grid-template-columns:auto auto;justify-content:start}.SnkFilterPersonalized_list-container.sc-snk-filter-personalized:has(.SnkFilterPersonalized_list-item--chip){gap:var(--space--small, 6px);max-width:calc(var(--space--md) * var(--snk-filter-personalized__max-width))}.SnkFilterPersonalized_list-item--modal.sc-snk-filter-personalized{display:flex;border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--modal.sc-snk-filter-personalized:hover{background-color:var(--background--medium, #f0f3f7)}.SnkFilterPersonalized_list-actions.sc-snk-filter-personalized{display:none;align-items:center}.SnkFilterPersonalized_list-item--modal.sc-snk-filter-personalized:hover .SnkFilterPersonalized_list-actions.sc-snk-filter-personalized{display:flex}.SnkFilterPersonalized_list-item--chip.sc-snk-filter-personalized{display:flex;flex-direction:column;border:var(--border--small, 1px solid) var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--chip.sc-snk-filter-personalized .sc-snk-filter-personalized:first-of-type{gap:var(--space--3xs)}";
8
+ const snkPersonalizedFilterEditorCss = ".sc-snk-personalized-filter-editor-h{--snk-filter-personalized__max-height:21;--snk-filter-personalized__max-width:21.5}.SnkFilterPersonalized_list-container.sc-snk-personalized-filter-editor{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.SnkFilterPersonalized_list-container-chip.sc-snk-personalized-filter-editor{width:400px}.SnkFilterPersonalized_list-scroller.sc-snk-personalized-filter-editor{display:block;max-height:calc(var(--space--2xl) * var(--snk-filter-personalized__max-height));cursor:auto;--ez-scroller__max-height:300px}.SnkFilterPersonalized_checkbox.sc-snk-personalized-filter-editor{display:grid;grid-template-columns:auto auto;justify-content:start}.SnkFilterPersonalized_list-container.sc-snk-personalized-filter-editor:has(.SnkFilterPersonalized_list-item--chip){gap:var(--space--small, 6px);max-width:calc(var(--space--md) * var(--snk-filter-personalized__max-width))}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor{display:flex;border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor:hover{background-color:var(--background--medium, #f0f3f7)}.SnkFilterPersonalized_list-actions.sc-snk-personalized-filter-editor{display:none;align-items:center}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor:hover .SnkFilterPersonalized_list-actions.sc-snk-personalized-filter-editor{display:flex}.SnkFilterPersonalized_list-item--chip.sc-snk-personalized-filter-editor{display:flex;flex-direction:column;border:var(--border--small, 1px solid) var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--chip.sc-snk-personalized-filter-editor .sc-snk-personalized-filter-editor:first-of-type{gap:var(--space--3xs)}";
9
9
 
10
10
  const SnkFilterPersonalized = class {
11
11
  constructor(hostRef) {
@@ -49,10 +49,15 @@ const SnkFilterPersonalized = class {
49
49
  var _a, _b;
50
50
  const CheckboxElement = () => (h("ez-check", Object.assign({ class: "SnkFilterPersonalized_checkbox", id: `param_${item.id}`, key: item.id, compact: true, value: item.visible, label: item.label, onEzChange: ({ detail: visible }) => this.handleItemChange.bind(this)(visible, item.id) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`checkboxFilter_${item.id}`)}` })));
51
51
  const isVariable = !!((_b = (_a = item.props) === null || _a === void 0 ? void 0 : _a.personalizedFilter) === null || _b === void 0 ? void 0 : _b.parameters.length);
52
- return (h("div", { class: `${!this.isModalMode() ? "SnkFilterPersonalized_list-item--chip" : ""}` }, h("li", { class: `${this.isModalMode() ? "SnkFilterPersonalized_list-item--modal" : ""}` }, h("div", { class: "ez-flex ez-flex--align-items-center ez-margin-right--small ez-size-width--full" }, h(CheckboxElement, null), this.isModalMode() ?
52
+ return (h("div", { class: `${!this.isModalMode() ? "SnkFilterPersonalized_list-item--chip" : ""}` }, h("li", { class: `${this.isModalMode() ? "SnkFilterPersonalized_list-item--modal" : ""}` }, h("div", { class: "ez-flex ez-flex--align-items-center ez-margin-right--small ez-size-width--full" }, h(CheckboxElement, null), this.buildModalListActions(item, isVariable))), (item.visible && isVariable) && (h("div", { class: "ez-row ez-padding--small" }, this.getFormField(item)))));
53
+ }
54
+ buildModalListActions(item, isVariable) {
55
+ if (!this.isModalMode())
56
+ return;
57
+ return (this.isModalMode() ?
53
58
  h("div", { class: "SnkFilterPersonalized_list-actions" }, h("ez-button", { size: "small", mode: "icon", iconName: "edit", title: this.getMessage('snkPersonalizedFilter.listActions.edit'), onClick: () => this.editFilter.emit(item.id) }), h("ez-button", { size: "small", mode: "icon", iconName: "delete", title: this.getMessage('snkPersonalizedFilter.listActions.delete'), onClick: this.handleDeleteFilter.bind(this, item) }))
54
59
  :
55
- isVariable && (h("ez-badge", Object.assign({ class: "ez-badge--warning-subtle ez-margin-right--small", label: this.getMessage('snkPersonalizedFilter.info.badgeVariable'), size: "medium" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`variableBadge_${item.id}`)}` }))))), (item.visible && isVariable) && (h("div", { class: "ez-row ez-padding--small" }, this.getFormField(item)))));
60
+ isVariable && (h("ez-badge", Object.assign({ class: "ez-badge--warning-subtle ez-margin-right--small", label: this.getMessage('snkPersonalizedFilter.info.badgeVariable'), size: "medium" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`variableBadge_${item.id}`)}` }))));
56
61
  }
57
62
  isModalMode() {
58
63
  return this.presentationMode === EPresentationMode.MODAL;
@@ -119,7 +124,7 @@ const SnkFilterPersonalized = class {
119
124
  });
120
125
  this.emitChange();
121
126
  }
122
- handleFilterChange({ detail: query = "" }) {
127
+ handleSearchFilterList({ detail: query = "" }) {
123
128
  this.items = query ? this.originalItems.filter(item => item.label.toLowerCase().includes(query.toLowerCase())) : this.originalItems;
124
129
  }
125
130
  handleFilterItemChange(value, formProp) {
@@ -152,11 +157,11 @@ const SnkFilterPersonalized = class {
152
157
  }
153
158
  handleDeleteFilter(item) {
154
159
  this._application.confirm(this.getMessage('snkPersonalizedFilter.deleteConfirm.title'), this.getMessage('snkPersonalizedFilter.deleteConfirm.message', { filterName: item.label })).then((actionConfirmed) => {
155
- if (actionConfirmed) {
156
- this.deleteFilter.emit(item);
157
- this.items = this.originalItems = this.originalItems.filter(originalItem => originalItem.id !== item.id);
158
- this.emitChange();
159
- }
160
+ if (!actionConfirmed)
161
+ return;
162
+ this.deleteFilter.emit(item);
163
+ this.items = this.originalItems = this.originalItems.filter(originalItem => originalItem.id !== item.id);
164
+ this.emitChange();
160
165
  });
161
166
  }
162
167
  componentDidLoad() {
@@ -168,16 +173,34 @@ const SnkFilterPersonalized = class {
168
173
  this._application = ApplicationContext.getContextValue('__SNK__APPLICATION__');
169
174
  this.items = this.originalItems = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.groupedItems) || [];
170
175
  }
176
+ buildModeModalHeader() {
177
+ if (this.presentationMode !== EPresentationMode.MODAL)
178
+ return;
179
+ return (h("div", { class: "ez-margin-bottom--medium" }, h(Fragment, null, h("ez-filter-input", Object.assign({ label: this.config.label, onEzChange: this.handleSearchFilterList.bind(this) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("filterSearch")}` })), h("span", { class: "ez-text ez-title--small ez-title--primary" }, " ", this.config.detailTitle, " "))));
180
+ }
181
+ buildModeModalFooter() {
182
+ if (this.presentationMode !== EPresentationMode.MODAL)
183
+ return;
184
+ return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
185
+ }
186
+ buildContainerFiltersCreated() {
187
+ if (this.items.length) {
188
+ return (h("ez-scroller", { class: "SnkFilterPersonalized_list-scroller", direction: EzScrollDirection.VERTICAL }, h("ul", { class: `SnkFilterPersonalized_list-container ${!this.isModalMode() ? "SnkFilterPersonalized_list-container-chip" : ""}` }, this.items.map((itemConfig) => this.getItemContent(itemConfig)))));
189
+ }
190
+ else {
191
+ return (h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--small" }, this.getMessage('snkPersonalizedFilter.info.noDataFound'))));
192
+ }
193
+ }
171
194
  render() {
172
195
  if (!this.config || this.config.type !== FilterItemType.PERSONALIZED)
173
196
  return undefined;
174
- return (h(Host, null, h("div", { class: "ez-margin-bottom--medium" }, this.presentationMode === EPresentationMode.MODAL && (h(Fragment, null, h("ez-filter-input", Object.assign({ label: this.config.label, onEzChange: this.handleFilterChange.bind(this) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("filterSearch")}` })), h("span", { class: "ez-text ez-title--small ez-title--primary" }, " ", this.config.detailTitle, " ")))), this.items.length ? (h("ez-scroller", { class: "SnkFilterPersonalized_list-scroller", direction: EzScrollDirection.VERTICAL }, h("ul", { class: `SnkFilterPersonalized_list-container ${!this.isModalMode() ? "SnkFilterPersonalized_list-container-chip" : ""}` }, this.items.map((itemConfig) => this.getItemContent(itemConfig))))) : (h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--small" }, this.getMessage('snkPersonalizedFilter.info.noDataFound')))), this.presentationMode === EPresentationMode.MODAL && (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })))));
197
+ return (h(Host, null, this.buildModeModalHeader(), this.buildContainerFiltersCreated(), this.buildModeModalFooter()));
175
198
  }
176
199
  get _element() { return getElement(this); }
177
200
  static get watchers() { return {
178
201
  "config": ["configWatcher"]
179
202
  }; }
180
203
  };
181
- SnkFilterPersonalized.style = snkFilterPersonalizedCss;
204
+ SnkFilterPersonalized.style = snkPersonalizedFilterEditorCss;
182
205
 
183
- export { SnkFilterPersonalized as snk_filter_personalized };
206
+ export { SnkFilterPersonalized as snk_personalized_filter_editor };
@@ -1,11 +1,10 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ObjectUtils, ApplicationContext } from '@sankhyalabs/core';
3
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
3
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
4
4
  import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-9f4d2e67.js';
5
5
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
- import { F as FilterGroupCondition } from './IExpressionItem-2e922b2c.js';
6
+ import { F as FilterGroupCondition } from './IExpressionItem-21f225bf.js';
7
7
  import { s as store } from './index-bdf75557.js';
8
- import './index-a255b326.js';
9
8
  import './filter-item-type.enum-5028ed3f.js';
10
9
  import './form-config-fetcher-cac8cd96.js';
11
10
  import './DataFetcher-b3d8b2d5.js';
@@ -21,13 +20,18 @@ const SnkPersonalizedFilter = class {
21
20
  this.ezCancel = createEvent(this, "ezCancel", 7);
22
21
  this.ezSave = createEvent(this, "ezSave", 7);
23
22
  this._personalizedFilterFetcher = new PersonalizedFilterFetcher();
23
+ this._filterMetadataStorage = new Map();
24
24
  this._dataSourceFetcher = {
25
25
  fetchData: async (entity) => {
26
26
  let entityURI = entity === null || entity === void 0 ? void 0 : entity.uri;
27
27
  if (StringUtils.isEmpty(entityURI)) {
28
28
  entityURI = this.entityUri;
29
29
  }
30
- return await this._personalizedFilterFetcher.loadFields(entityURI);
30
+ if (!this._filterMetadataStorage.has(entityURI)) {
31
+ const filterMetadata = await this._personalizedFilterFetcher.loadFields(entityURI);
32
+ this._filterMetadataStorage.set(entityURI, filterMetadata);
33
+ }
34
+ return this._filterMetadataStorage.get(entityURI);
31
35
  }
32
36
  };
33
37
  this._filterAssistentMode = true;
@@ -140,11 +144,11 @@ const SnkPersonalizedFilter = class {
140
144
  ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmCancel.title"), this.getMessage("snkPersonalizedFilter.confirmCancel.description"))
141
145
  .then((canCancel) => {
142
146
  var _a;
143
- if (canCancel) {
144
- this._filterAssistent = ObjectUtils.copy((_a = this._originalFilterAssistent) !== null && _a !== void 0 ? _a : {});
145
- this.ezCancel.emit();
146
- this._elButtonSave.enabled = false;
147
- }
147
+ if (!canCancel)
148
+ return;
149
+ this._filterAssistent = ObjectUtils.copy((_a = this._originalFilterAssistent) !== null && _a !== void 0 ? _a : {});
150
+ this.ezCancel.emit();
151
+ this._elButtonSave.enabled = false;
148
152
  });
149
153
  }
150
154
  handleTitleChange(name) {
@@ -177,14 +181,21 @@ const SnkPersonalizedFilter = class {
177
181
  }
178
182
  return (h("div", { class: "ez-flex" }, h("ez-alert", { alertType: "warn" }, this._filterAssistent.warningMessage)));
179
183
  }
184
+ buildContainerPersonalizedFilter() {
185
+ var _a, _b, _c;
186
+ if (this._filterAssistentMode) {
187
+ return (h(Fragment, null, h("div", { class: "ez-padding-top--small snk-personalized-filter__group" }, h("snk-expression-group", { ref: (el) => this._mainExpressionGroup = el, group: (_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.assistent, messagesBuilder: this.messagesBuilder, onEzFilterGroupChange: this.handleFilterGroupChange.bind(this), filterId: this.filterId, entityURI: this.entityUri })), h("div", null, h("div", { class: "snk-personalized-filter__expression-input--line" }), h("ez-collapsible-box", { label: this.getMessage("snkPersonalizedFilter.info.titleCollapsible"), headerSize: "medium", value: true }, h("div", { class: "ez-box" }, h("div", { class: "ez-box__container" }, h("ez-text-area", { ref: (el) => this._elTextAreaExpression = el, enabled: false, label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.expression })))))));
188
+ }
189
+ else {
190
+ return (h(Fragment, null, h("span", { class: "ez-text ez-text--small ez-text--bold ez-padding-bottom--medium" }, this.getMessage("snkPersonalizedFilter.info.applyExpression")), h("ez-text-area", { label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.expression, onEzChange: (evt) => this.handleExpressionChange(evt.detail) }), this.getWarningMessageComponent()));
191
+ }
192
+ }
180
193
  render() {
181
- var _a, _b, _c, _d, _e;
194
+ var _a, _b;
182
195
  if (!((_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.assistent) && this._filterAssistentMode) {
183
196
  return;
184
197
  }
185
- return (h(Host, null, h("div", { class: "snk-personalized-filter" }, h("div", null, h("snk-simple-bar", { label: this.filterId ? this.getMessage("snkPersonalizedFilter.info.titleEdit") : this.getMessage("snkPersonalizedFilter.info.titleAdd"), onExit: () => this.handleCancel() }, h("div", { class: "snk-personalized-filter__header-actions", slot: "rightSlot" }, h("ez-button", { size: "small", label: this.getMessage("snkPersonalizedFilter.info.labelCancel"), onClick: () => this.handleCancel() }), h("ez-button", { size: "small", ref: (el) => this._elButtonSave = el, enabled: false, class: "ez-button--primary", label: this.getMessage("snkPersonalizedFilter.info.labelSave"), onClick: this.handleSave.bind(this) })))), h("div", { class: "ez-box ez-margin-bottom--medium ez-box__main" }, h("div", { class: "ez-box__container" }, h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("div", { class: "ez-flex" }, h("ez-text-input", { class: "ez-padding-right--medium", label: this.getMessage("snkPersonalizedFilter.info.labelNameFilter"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.name, onEzChange: (evt) => this.handleTitleChange(evt.detail) })), this._filterAssistentMode ?
186
- h(Fragment, null, h("div", { class: "ez-padding-top--small snk-personalized-filter__group" }, h("snk-expression-group", { ref: (el) => this._mainExpressionGroup = el, group: (_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.assistent, messagesBuilder: this.messagesBuilder, onEzFilterGroupChange: this.handleFilterGroupChange.bind(this), filterId: this.filterId, entityURI: this.entityUri })), h("div", null, h("div", { class: "snk-personalized-filter__expression-input--line" }), h("ez-collapsible-box", { label: this.getMessage("snkPersonalizedFilter.info.titleCollapsible"), headerSize: "medium", value: true }, h("div", { class: "ez-box" }, h("div", { class: "ez-box__container" }, h("ez-text-area", { ref: (el) => this._elTextAreaExpression = el, enabled: false, label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_d = this._filterAssistent) === null || _d === void 0 ? void 0 : _d.expression })))))) :
187
- h(Fragment, null, h("span", { class: "ez-text ez-text--small ez-text--bold ez-padding-bottom--medium" }, "Express\u00E3o a ser aplicada:"), h("ez-text-area", { label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_e = this._filterAssistent) === null || _e === void 0 ? void 0 : _e.expression, onEzChange: (evt) => this.handleExpressionChange(evt.detail) }), this.getWarningMessageComponent())))))));
198
+ return (h(Host, null, h("div", { class: "snk-personalized-filter" }, h("div", null, h("snk-simple-bar", { label: this.filterId ? this.getMessage("snkPersonalizedFilter.info.titleEdit") : this.getMessage("snkPersonalizedFilter.info.titleAdd"), onExit: () => this.handleCancel() }, h("div", { class: "snk-personalized-filter__header-actions", slot: "rightSlot" }, h("ez-button", { size: "small", label: this.getMessage("snkPersonalizedFilter.info.labelCancel"), onClick: () => this.handleCancel() }), h("ez-button", { size: "small", ref: (el) => this._elButtonSave = el, enabled: false, class: "ez-button--primary", label: this.getMessage("snkPersonalizedFilter.info.labelSave"), onClick: this.handleSave.bind(this) })))), h("div", { class: "ez-box ez-margin-bottom--medium ez-box__main" }, h("div", { class: "ez-box__container" }, h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("div", { class: "ez-flex" }, h("ez-text-input", { class: "ez-padding-right--medium", label: this.getMessage("snkPersonalizedFilter.info.labelNameFilter"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.name, onEzChange: (evt) => this.handleTitleChange(evt.detail) })), this.buildContainerPersonalizedFilter()))))));
188
199
  }
189
200
  static get watchers() { return {
190
201
  "filterId": ["loadFilter"]
@@ -1,11 +1,13 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
- import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, UserInterface } from '@sankhyalabs/core';
2
+ import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, ApplicationContext, UserInterface } from '@sankhyalabs/core';
3
3
  import { c as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-3644f1b6.js';
4
- import { T as TaskbarElement } from './taskbar-elements-139b1058.js';
4
+ import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
5
5
  import './DataFetcher-b3d8b2d5.js';
6
6
  import './pesquisa-fetcher-bd6af0e3.js';
7
- import { P as PresentationMode } from './index-a255b326.js';
7
+ import { P as PresentationMode } from './index-1564817d.js';
8
8
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
9
+ import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
10
+ import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-892f37f9.js';
9
11
  import './index-bdf75557.js';
10
12
  import './_commonjsHelpers-9943807e.js';
11
13
 
@@ -15,7 +17,7 @@ class InMemoryLoader {
15
17
  this.metadata = metadata;
16
18
  this._dataUnit = new DataUnit("InMemoryDataUnit");
17
19
  this._dataUnit.metadataLoader = () => this.metadaLoader();
18
- this._dataUnit.dataLoader = (_dataUnit, request) => this.dataLoader(_dataUnit, request);
20
+ this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
19
21
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
20
22
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
21
23
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
@@ -52,8 +54,9 @@ class InMemoryLoader {
52
54
  metadaLoader() {
53
55
  return Promise.resolve(this._metadata);
54
56
  }
55
- dataLoader(_dataUnit, request) {
56
- let records = [...this._records];
57
+ dataLoader(dataUnit, request) {
58
+ const filters = this.getColumnFilters(dataUnit);
59
+ let records = this.applyFilters(filters);
57
60
  if (request.sort) {
58
61
  request.sort.forEach(sort => {
59
62
  records = records.sort((recordA, recordB) => {
@@ -66,6 +69,25 @@ class InMemoryLoader {
66
69
  }
67
70
  return Promise.resolve({ records: records });
68
71
  }
72
+ applyFilters(filters) {
73
+ let records = [...this._records];
74
+ filters.forEach(filter => {
75
+ records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
76
+ });
77
+ return records;
78
+ }
79
+ getColumnFilters(dataUnit) {
80
+ var _a, _b;
81
+ const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
82
+ const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
83
+ return columnFilters.map(filter => {
84
+ var _a, _b;
85
+ return {
86
+ column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
87
+ values: filter.params.map(param => param.value),
88
+ };
89
+ });
90
+ }
69
91
  getSortFn(type) {
70
92
  switch (type) {
71
93
  case DataType.NUMBER:
@@ -131,6 +153,7 @@ const SnkSimpleCrud = class {
131
153
  this.actionClick = createEvent(this, "actionClick", 7);
132
154
  this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
133
155
  this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
156
+ this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
134
157
  this._taskbarProcessor = new TaskbarProcessor({
135
158
  "snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
136
159
  "snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
@@ -192,6 +215,12 @@ const SnkSimpleCrud = class {
192
215
  componentWillLoad() {
193
216
  this.processMetadata();
194
217
  this.onModeChange();
218
+ this.configDatasource();
219
+ }
220
+ configDatasource() {
221
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
222
+ this._multiSelectionListDataSource.setApplication(application);
223
+ this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
195
224
  }
196
225
  getTaskBarId() {
197
226
  var _a, _b, _c;
@@ -277,7 +306,7 @@ const SnkSimpleCrud = class {
277
306
  }
278
307
  render() {
279
308
  var _a;
280
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM) }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
309
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
281
310
  }
282
311
  get _element() { return getElement(this); }
283
312
  static get watchers() { return {
@@ -1,8 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
4
- import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-139b1058.js';
5
- import { P as PresentationMode } from './index-a255b326.js';
4
+ import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-2c761819.js';
5
+ import { P as PresentationMode } from './index-1564817d.js';
6
6
  import './index-bdf75557.js';
7
7
 
8
8
  const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-a7d3d3f1.js';
2
- import { P as PresentationMode } from './index-a255b326.js';
2
+ import { P as PresentationMode } from './index-1564817d.js';
3
3
  import { s as store } from './index-bdf75557.js';
4
4
 
5
5
  var TaskbarElement;
@@ -1 +1 @@
1
- import{ApplicationContext as e}from"@sankhyalabs/core";const a={saveInfo:{clone:"Duplicação realizada!",insert:"Inclusão realizada!",update:"Alteração realizada!"},cancelInfo:{clone:"Duplicação descartada!",insert:"A inclusão descartada!",update:"A edição foi descartada!"},confirm:{cancel:"Cancelar",delete:"Excluir",yes:"Sim",no:"Não"},removeInfo:"Registro removido com sucesso!",cancelConfirmationTitle:"Aviso",cancelConfirmation:"As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?",removeConfirmationTitle:"Aviso",removeConfirmation:"Deseja realmente excluir o registro atual?",forbidden:"Sem permissão",forbiddenUpdate:"Não é possível fazer alterações. Verifique as permissões de acesso.",forbiddenInsert:"Não é possível incluir. Verifique as permissões de acesso.",forbiddenClone:"Não é possível duplicar. Verifique as permissões de acesso.",forbiddenRemove:"Não é possível remover. Verifique as permissões de acesso.",removeAllConfirmation:"Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>",removeAllInfo:"Os {{size}} registros foram removidos com sucesso!"},o={addFilter:"Adicionar filtro",pinFilter:"Fixar filtro",unpinFilter:"Desfixar filtro",removeFilter:"Remover filtro",cleanFilter:"Limpar",applyFilter:"Aplicar",findFilter:"Buscar filtros...",findField:"Buscar filtros...",modalFindFilter:"Buscar filtro",emptyFiltersList:"Não há filtros disponíveis",emptyAppliedFiltersList:"Não há filtros aplicados",customFilter:"Filtro personalizado",defaultFilter:"Filtro padrão",failToLoadConfig:"Falha ao buscar configuração de filtros",clearAllFilters:"Limpar todos os filtros",successfullyCleaned:"Filtro limpo com sucesso!",activeFilter:"{{ACTIVE_FILTERS}} filtro aplicado",activeFilters:"{{ACTIVE_FILTERS}} filtros aplicados",noActiveFilters:"Nenhum filtro aplicado",modalDefaultFilterTitle:"Filtro padrão",modalInfoTextEditDefault:"Use o layout antigo para editar o seu filtro padrão, em breve traremos uma nova experiência.",modalInfoTextCreateDefault:"Use o layout antigo para criar o seu filtro padrão, em breve traremos uma nova experiência.",modalPersonalizedFilterTitle:"Filtro personalizado",modalPersonalizedFilterSubTitle:"Gerencie seus filtros",modalInfoTextCreateEditPersonalized:"Use o layout antigo para criar ou editar filtros, em breve traremos uma nova experiência",modalInfoTextCreateFilter:"Criar filtro personalizado",modalInfoTextNoFilterRegister:"Você não possui filtros cadastrados.",modalOkButtonLabel:"Aplicar",modalCancelButtonLabel:"Limpar",binarySelectTooltip:"Exibindo registros",multiListToltip:"selecionado(a)s",onlyStartPeriodToltip:"A partir de",onlyEndPeriodToltip:"Até",fullPeriodTooltip:"Data de {{LABEL}}: {{START_LABEL}} até {{END_LABEL}}",labelStartDatePeriod:"Inicial",labelEndDatePeriod:"Final",filters:"Filtros",personalizedCount:"{{activeCount}} selecionado(s)",filterModal:{title:"Filtros",okButtonLabel:"Aplicar",cancelButtonLabel:"Limpar tudo",customFilters:"Filtros personalizados",quickFilters:"Filtros rápidos",validations:{notFullFilled:{title:"Filtro parcialmente preenchido",message:"Favor completar todas as informações do filtro."},notSaved:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"}}}},r={titleUpdate:"Editar",titlePrevious:"Anterior",titleNext:"Próximo",titleRefresh:"Atualizar",titleClone:"Duplicar",titleRemove:"Excluir",titleMoreOptions:"Mais Opções",titleInsert:"Cadastrar",titleCancel:"Cancelar",titleSave:"Salvar",titleGridMode:"Modo Grade",titleFormMode:"Modo Formulário",titleConfigurator:"Configurações",titleAttach:"Anexar",forbidden:"Permissão não liberada"},i={errorArray:"CrudUtils.find deve receber um array de fields, ou uma lista separada por virgula."},s={emailSenderTitle:"Enviar por email",emailSenderBackButton:"Voltar",emailSenderNextButton:"Avançar",emailSenderCancelButton:"Cancelar",emailSenderSendButton:"Enviar",emailSenderOptStep_subtitle:"Primeiro, escolha o formato do arquivo",emailSenderOptStep_lblFormat:"Formato:",emailSenderOptStep_formatPDF:"PDF (.pdf)",emailSenderOptStep_formatXLSX:"Planilha (.xlsx)",emailSenderOptStep_export:"Exportar:",emailSenderOptStep_allData:"Toda a grade",emailSenderOptStep_currentPage:"Somente a página atual",emailSenderOptStep_someRecords:"{{SELECTION_COUNT}} linhas selecionadas",emailSenderOptStep_oneRecord:"Somente a linha selecionada",emailSenderInfoStep_subtitle:"Informações de email",emailSenderInfoStep_sendTo:"Enviar para",emailSenderInfoStep_subject:"Assunto",emailSenderInfoStep_message:"Mensagem"},l={title:{clone:"Duplicar registro",insert:"Cadastrar registro",update:"Alterar registro",clean:"{{ENTITY_NAME}}"},goBackTitle:"Voltar"},t={error:{title:"Erro na Exportação",message:"O usuário não possui permissão para exportar o arquivo."},message:{exportSuccess:"Exportado com sucesso!"}},n={label:{nameField:"Nome do Campo *",typeValueDefault:"Tipo de valor padrão *",valueDefault:"Valor Padrão",clearDuplicate:"Limpar ao Duplicar",requiredField:"Campo Obrigatório",protectedField:"Campo Protegido"},options:{valueFixed:"Valor Fixo",variable:"Variável"}},d={title:"Configuração do formulário",goBackTitle:"Voltar",applyConfig:"Aplicar configuração",availableFields:{title:"Campos disponíveis",labelNoFields:"Nenhum campo disponível",labelOneField:"1 campo disponível",labelAvailableFields:"Campos disponíveis",labelSearchField:"Procurar campo"},form:{subTitleInfo:"Inclua estes campos nos grupos ou deixe-os separados no topo do formulário!",labelDropField:"Arraste e solte um campo aqui",labelNewGroup:"Adicionar novo grupo",mainArea:"Área principal",tabGeneral:"Geral"},confirm:{title:"Aviso",deleteTab:"Você realmente deseja excluir a aba",cancel:"As alterações realizadas serão descartadas.<br/><br/><b>Gostaria de continuar?</b>",exit:"Ao sair as alterações serão descartadas.<br/><br/><b>Você realmente gostaria de sair?</b>",apply:"A <b>{0}</b> irá substituir a sua configuração {1}!<br/><br/><b>Deseja continuar?</b>",group:"Não é possível salvar as configurações com um grupo vazio!",labelCancel:"Cancelar",labelDelete:"Excluir"},alert:{titleGroupExists:"Já existe um grupo com título",infoValidTitle:"Por favor, digite um título válido.",inTab:"na aba"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"}},c={titleRemove:"Remover",titleConfigurations:"Configurações",titleAdd:"Adicionar"},m={labelRename:"Renomear",labelHide:"Ocultar",labelShow:"Exibir",labelDelete:"Excluir"},u={titleConfigurations:"Configurações",subTitleModeConfig:"Modo de visualização",labelConfigGrid:"Configurar grade",labelConfigForm:"Configurar formulário",labelGrid:"Grade",labelForm:"Formulário"},p={},f={gridConfiguration:"Configuração da Grade",columnVisibilityOrder:"Defina visibilidade e ordem das colunas.",sortingSequence:"Sequência da ordenação",findColumn:"Localizar coluna",cancel:"Cancelar",complete:"Concluir",tab:{columns:"Colunas",lineOrdering:"Ordenação das linhas"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"},confirm:{cancel:"Descartar",save:"Salvar",alert:"Aviso",msgCancel:"As alterações realizadas serão descartadas. Gostaria de salvar antes de sair?"},group:{visible:"Visíveis",hidden:"Ocultas"}},b={group:{export:{default:"Exportar para",multiSelected:"Exportar {0} linhas selecionadas",selectedLine:"Exportar somente 1 linha selecionada",title:"Exportar"},custom:"Personalizado"},label:{currentPage:"Somente a página atual",spreadsheet:"Planilha",cube:"Cubo",sendByEmail:"Enviar por email"},message:{emailSuccess:"E-mail enviado com sucesso",exportError:"Usuário sem permissão",exportPermission:"O usuário não possui permissão para exportar o arquivo."},title:{error:"Erro"},limitExceeded:{title:"Atenção",description:"Apenas os {{limit}} primeiros registros serão exportados. Deseja continuar?",subdescription:"Caso seja necessária uma quantidade maior de registros exportados, utilize o Extrator de Dados através de um Relatório Personalizado.",cancel:"Cancelar",continue:"Continuar"}},v={modalTitle:"Configuração de valor variável",labelSystemConfig:"Usar definições do sistema",labelUserConfig:"Usar definições personalizadas",labelInstance:"Categoria",labelField:"Campo",labelDescription:"Descrição (obrigatório) *",labelType:"Tipo (obrigatório) *",labelTypeValues:{date:"Data",text:"Texto",integer:"Número Inteiro",decimal:"Número com Decimal"},labelExpression:"Expressão",labelCancel:"Cancelar",labelSave:"Salvar"},g={searchLabel:"Buscar campo",fieldLabel:"Campos de {{link}}",linkLabel:"Categorias de {{link}}",groupEmpty:"Não há categorias para seleção",searchEmpty:"Nenhum resultado encontrado"},C={backTitle:"Voltar"},A={title:"Anexar arquivos",description:"Faça o upload dos arquivos ou informe links que deseja anexar ao título",attachHint:"Fazer download do arquivo",breadcrumbTitle:"Anexar",finishedMessage:"O anexo foi finalizado com sucesso",finish:"Finalizar",cancelConfirmation:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"},alertValidation:{fileAndLinkAtTheSameTime:{title:"Atenção",message:"Não é permitido inserir o arquivo e o link ao mesmo tempo."},anyLinkOrFileFilled:{title:"Atenção",message:'É necessário preencher o campo "Link" ou anexar um arquivo.'}},taskbar:{titleDownload:"Fazer download",titleLink:"Abrir link"}},F={info:{titleEdit:"Editar filtro personalizado",titleAdd:"Criar filtro personalizado",titleCollapsible:"Expressão a ser aplicada (gerada pelo assistente)",labelSearchField:"Buscar campo",labelOperator:"Operador",labelValueVarible:"Valor variável",titleTooltip:"Ao ativar um valor variável, é possível inserir um valor diferente sempre que o filtro for aplicado",labelAddNewExpression:"Adicionar nova linha de expressão",labelDeleteExpression:"Remover expressão",labelDeleteItem:"Remover item",labelDisabledAddGroupButton:"Filtros Personalizados possuem um limite de {{LIMIT_GROUP_LEVEL}} Grupos de Condições e Valores",labelDisabledAddExpressionButton:"Preencha campos obrigatórios ou indique valores variáveis nas expressões do grupo antes de adicionar mais itens",labelCancel:"Cancelar",labelSave:"Salvar",labelNameFilter:"Nome do filtro",labelExpression:"Expressão SQL",badgeVariable:"variável",noDataFound:"Nenhum filtro encontrado"},confirmExpression:{title:"Aviso",description:"As informações da condição serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmGroup:{title:"Aviso",description:"As informações do Grupo e suas Condições serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmCancel:{title:"Aviso",description:"As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>"},operador:{firstLevel:"A seleção será habilitada a partir da adição da segunda linha de regras.",and:"Será verdadeiro se todas as condições forem obedecidas.",or:"Será verdadeiro se qualquer uma das condições for obedecida."},error:{title:"Atenção",description:"Há pelo menos um campo obrigatório não preenchido."},confirmSave:{title:"Filtro criado com sucesso!"},confirmEdit:{title:"Filtro atualizado com sucesso!"},deleteConfirm:{title:"Aviso",message:"Deseja realmente excluir o filtro '{{filterName}}'?"},listActions:{edit:"Editar",delete:"Excluir"},footerActions:{clear:"Limpar",create:"Criar filtro"}},S={selected:"Selecionados:"},x={title:{actions:"Ações",error:"Erro",warning:"Aviso"},action:{incorrectAction:'A ação "{{description}}" não pode ser executada porque ela não foi salva corretamente.',emptyParamName:"<b>Regra Personalizada:</b><br/><br/>É necessário informar o atributo 'paramName'",nonExistentType:"Tipo de ação não implementada: {{this.actionType}}"},launchScreen:{emptyField:'A ação "{{description}}" não pôde ser executada porque o campo "{{localFieldLabel}}" está vazio.'},form:{fillParams:"Informe os parâmetros"},clientEvent:{cancelMessage:"Caso queira cancelar, feche esta mensagem."},buttons:{apply:"Aplicar",cancel:"Cancelar",yes:"Sim",no:"Não"}};class h{constructor(h){this._defaults={snkDataUnit:a,snkFormConfig:d,snkConfigOptions:n,snkTaskbar:r,snkFieldConfig:c,snkFilterBar:o,snkConfigurator:u,snkTabConfig:m,crudUtils:i,snkGrid:p,snkGridConfig:f,snkExporter:s,snkDataExporter:b,snkCrud:l,fileViewer:t,snkFilterParamConfig:v,snkFilterFieldSearch:g,snkSimpleBar:C,snkAttach:A,snkPersonalizedFilter:F,snkEntityList:S,snkActionsButton:x},this._currentOperation=E.CLEAN,this._domainName=h,this._application=e.getContextValue("__SNK__APPLICATION__"),this.loadAppMessages().then((e=>{this._appMessages=e}),(e=>{console.info("O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js",e)}))}set currentOperation(e){this._currentOperation=e}getMessage(e,a){if(null==e)return;var o=e.split(".");let r=this.resolveMessage(o,this.getDomainMessages());if(null==r&&(r=this.resolveMessage(o,this._defaults)),this.customMessageBuilder){const o=this.customMessageBuilder(e,r,a);r=o.message,a=o.params}return this.postProcess(r,a)}getDomainMessages(){return null==this._domainName?this._appMessages.Global||this._appMessages:null==this._appMessages?void 0:this._appMessages[this._domainName]}resolveMessage(e,a){if(null==a)return;const o=a[e[0]];return o?this.isOperationSensitive(o)?o[this._currentOperation]:1===e.length||null==o||"string"==typeof o?o:this.resolveMessage(e.slice(1),o):void 0}isOperationSensitive(e){return null!=e[E.CLONE]||null!=e[E.INSERT]||null!=e[E.UPDATE]||null!=e[E.CLEAN]}postProcess(e,a){if(e){const o=/(.*?)\{\{(.+?)\}\}/g;let r,i="",s=e;for(;null!==(r=o.exec(e));){const[o,l,t]=r,n=r.index+o.length;s=n<e.length?e.substring(n):"";let d=a?a[t]:void 0;null==d&&(d=""),i+=l+d}return i+s}return e}loadAppMessages(){return new Promise((async(e,a)=>{const o=await this._application.getApplicationPath();import(`${o}/messages/appmessages.js`).then((a=>{e(a.default)})).catch((e=>{a(e)}))}))}}var E;!function(e){e.CLONE="clone",e.INSERT="insert",e.UPDATE="update",e.CLEAN="clean"}(E||(E={}));export{E as O,h as S}
1
+ import{ApplicationContext as e}from"@sankhyalabs/core";const a={saveInfo:{clone:"Duplicação realizada!",insert:"Inclusão realizada!",update:"Alteração realizada!"},cancelInfo:{clone:"Duplicação descartada!",insert:"A inclusão descartada!",update:"A edição foi descartada!"},confirm:{cancel:"Cancelar",delete:"Excluir",yes:"Sim",no:"Não"},removeInfo:"Registro removido com sucesso!",cancelConfirmationTitle:"Aviso",cancelConfirmation:"As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?",removeConfirmationTitle:"Aviso",removeConfirmation:"Deseja realmente excluir o registro atual?",forbidden:"Sem permissão",forbiddenUpdate:"Não é possível fazer alterações. Verifique as permissões de acesso.",forbiddenInsert:"Não é possível incluir. Verifique as permissões de acesso.",forbiddenClone:"Não é possível duplicar. Verifique as permissões de acesso.",forbiddenRemove:"Não é possível remover. Verifique as permissões de acesso.",removeAllConfirmation:"Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>",removeAllInfo:"Os {{size}} registros foram removidos com sucesso!"},o={addFilter:"Adicionar filtro",pinFilter:"Fixar filtro",unpinFilter:"Desfixar filtro",removeFilter:"Remover filtro",cleanFilter:"Limpar",applyFilter:"Aplicar",findFilter:"Buscar filtros...",findField:"Buscar filtros...",modalFindFilter:"Buscar filtro",emptyFiltersList:"Não há filtros disponíveis",emptyAppliedFiltersList:"Não há filtros aplicados",customFilter:"Filtro personalizado",defaultFilter:"Filtro padrão",failToLoadConfig:"Falha ao buscar configuração de filtros",clearAllFilters:"Limpar todos os filtros",successfullyCleaned:"Filtro limpo com sucesso!",activeFilter:"{{ACTIVE_FILTERS}} filtro aplicado",activeFilters:"{{ACTIVE_FILTERS}} filtros aplicados",noActiveFilters:"Nenhum filtro aplicado",modalDefaultFilterTitle:"Filtro padrão",modalInfoTextEditDefault:"Use o layout antigo para editar o seu filtro padrão, em breve traremos uma nova experiência.",modalInfoTextCreateDefault:"Use o layout antigo para criar o seu filtro padrão, em breve traremos uma nova experiência.",modalPersonalizedFilterTitle:"Filtro personalizado",modalPersonalizedFilterSubTitle:"Gerencie seus filtros",modalInfoTextCreateEditPersonalized:"Use o layout antigo para criar ou editar filtros, em breve traremos uma nova experiência",modalInfoTextCreateFilter:"Criar filtro personalizado",modalInfoTextNoFilterRegister:"Você não possui filtros cadastrados.",modalOkButtonLabel:"Aplicar",modalCancelButtonLabel:"Limpar",binarySelectTooltip:"Exibindo registros",multiListToltip:"selecionado(a)s",onlyStartPeriodToltip:"A partir de",onlyEndPeriodToltip:"Até",fullPeriodTooltip:"Data de {{LABEL}}: {{START_LABEL}} até {{END_LABEL}}",labelStartDatePeriod:"Inicial",labelEndDatePeriod:"Final",filters:"Filtros",personalizedCount:"{{activeCount}} selecionado(s)",filterModal:{title:"Filtros",okButtonLabel:"Aplicar",cancelButtonLabel:"Limpar tudo",customFilters:"Filtros personalizados",quickFilters:"Filtros rápidos",validations:{notFullFilled:{title:"Filtro parcialmente preenchido",message:"Favor completar todas as informações do filtro."},notSaved:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"}}}},r={titleUpdate:"Editar",titlePrevious:"Anterior",titleNext:"Próximo",titleRefresh:"Atualizar",titleClone:"Duplicar",titleRemove:"Excluir",titleMoreOptions:"Mais Opções",titleInsert:"Cadastrar",titleCancel:"Cancelar",titleSave:"Salvar",titleGridMode:"Modo Grade",titleFormMode:"Modo Formulário",titleConfigurator:"Configurações",titleAttach:"Anexar",forbidden:"Permissão não liberada"},i={errorArray:"CrudUtils.find deve receber um array de fields, ou uma lista separada por virgula."},s={emailSenderTitle:"Enviar por email",emailSenderBackButton:"Voltar",emailSenderNextButton:"Avançar",emailSenderCancelButton:"Cancelar",emailSenderSendButton:"Enviar",emailSenderOptStep_subtitle:"Primeiro, escolha o formato do arquivo",emailSenderOptStep_lblFormat:"Formato:",emailSenderOptStep_formatPDF:"PDF (.pdf)",emailSenderOptStep_formatXLSX:"Planilha (.xlsx)",emailSenderOptStep_export:"Exportar:",emailSenderOptStep_allData:"Toda a grade",emailSenderOptStep_currentPage:"Somente a página atual",emailSenderOptStep_someRecords:"{{SELECTION_COUNT}} linhas selecionadas",emailSenderOptStep_oneRecord:"Somente a linha selecionada",emailSenderInfoStep_subtitle:"Informações de email",emailSenderInfoStep_sendTo:"Enviar para",emailSenderInfoStep_subject:"Assunto",emailSenderInfoStep_message:"Mensagem"},l={title:{clone:"Duplicar registro",insert:"Cadastrar registro",update:"Alterar registro",clean:"{{ENTITY_NAME}}"},goBackTitle:"Voltar"},t={error:{title:"Erro na Exportação",message:"O usuário não possui permissão para exportar o arquivo."},message:{exportSuccess:"Exportado com sucesso!"}},n={label:{nameField:"Nome do Campo *",typeValueDefault:"Tipo de valor padrão *",valueDefault:"Valor Padrão",clearDuplicate:"Limpar ao Duplicar",requiredField:"Campo Obrigatório",protectedField:"Campo Protegido"},options:{valueFixed:"Valor Fixo",variable:"Variável"}},d={title:"Configuração do formulário",goBackTitle:"Voltar",applyConfig:"Aplicar configuração",availableFields:{title:"Campos disponíveis",labelNoFields:"Nenhum campo disponível",labelOneField:"1 campo disponível",labelAvailableFields:"Campos disponíveis",labelSearchField:"Procurar campo"},form:{subTitleInfo:"Inclua estes campos nos grupos ou deixe-os separados no topo do formulário!",labelDropField:"Arraste e solte um campo aqui",labelNewGroup:"Adicionar novo grupo",mainArea:"Área principal",tabGeneral:"Geral"},confirm:{title:"Aviso",deleteTab:"Você realmente deseja excluir a aba",cancel:"As alterações realizadas serão descartadas.<br/><br/><b>Gostaria de continuar?</b>",exit:"Ao sair as alterações serão descartadas.<br/><br/><b>Você realmente gostaria de sair?</b>",apply:"A <b>{0}</b> irá substituir a sua configuração {1}!<br/><br/><b>Deseja continuar?</b>",group:"Não é possível salvar as configurações com um grupo vazio!",labelCancel:"Cancelar",labelDelete:"Excluir"},alert:{titleGroupExists:"Já existe um grupo com título",infoValidTitle:"Por favor, digite um título válido.",inTab:"na aba"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"}},c={titleRemove:"Remover",titleConfigurations:"Configurações",titleAdd:"Adicionar"},u={labelRename:"Renomear",labelHide:"Ocultar",labelShow:"Exibir",labelDelete:"Excluir"},m={titleConfigurations:"Configurações",subTitleModeConfig:"Modo de visualização",labelConfigGrid:"Configurar grade",labelConfigForm:"Configurar formulário",labelGrid:"Grade",labelForm:"Formulário"},p={},f={gridConfiguration:"Configuração da Grade",columnVisibilityOrder:"Defina visibilidade e ordem das colunas.",sortingSequence:"Sequência da ordenação",findColumn:"Localizar coluna",cancel:"Cancelar",complete:"Concluir",tab:{columns:"Colunas",lineOrdering:"Ordenação das linhas"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"},confirm:{cancel:"Descartar",save:"Salvar",alert:"Aviso",msgCancel:"As alterações realizadas serão descartadas. Gostaria de salvar antes de sair?"},group:{visible:"Visíveis",hidden:"Ocultas"}},b={group:{export:{default:"Exportar para",multiSelected:"Exportar {0} linhas selecionadas",selectedLine:"Exportar somente 1 linha selecionada",title:"Exportar"},custom:"Personalizado"},label:{currentPage:"Somente a página atual",spreadsheet:"Planilha",cube:"Cubo",sendByEmail:"Enviar por email"},message:{emailSuccess:"E-mail enviado com sucesso",exportError:"Usuário sem permissão",exportPermission:"O usuário não possui permissão para exportar o arquivo."},title:{error:"Erro"},limitExceeded:{title:"Atenção",description:"Apenas os {{limit}} primeiros registros serão exportados. Deseja continuar?",subdescription:"Caso seja necessária uma quantidade maior de registros exportados, utilize o Extrator de Dados através de um Relatório Personalizado.",cancel:"Cancelar",continue:"Continuar"}},v={modalTitle:"Configuração de valor variável",labelSystemConfig:"Usar definições do sistema",labelUserConfig:"Usar definições personalizadas",labelInstance:"Categoria",labelField:"Campo",labelDescription:"Descrição (obrigatório) *",labelType:"Tipo (obrigatório) *",labelTypeValues:{date:"Data",text:"Texto",integer:"Número Inteiro",decimal:"Número com Decimal"},labelExpression:"Expressão",labelCancel:"Cancelar",labelSave:"Salvar"},g={searchLabel:"Buscar campo",fieldLabel:"Campos de {{link}}",linkLabel:"Categorias de {{link}}",groupEmpty:"Não há categorias para seleção",searchEmpty:"Nenhum resultado encontrado"},C={backTitle:"Voltar"},A={title:"Anexar arquivos",description:"Faça o upload dos arquivos ou informe links que deseja anexar ao título",attachHint:"Fazer download do arquivo",breadcrumbTitle:"Anexar",finishedMessage:"O anexo foi finalizado com sucesso",finish:"Finalizar",cancelConfirmation:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"},alertValidation:{fileAndLinkAtTheSameTime:{title:"Atenção",message:"Não é permitido inserir o arquivo e o link ao mesmo tempo."},anyLinkOrFileFilled:{title:"Atenção",message:'É necessário preencher o campo "Link" ou anexar um arquivo.'}},taskbar:{titleDownload:"Fazer download",titleLink:"Abrir link"}},F={info:{titleEdit:"Editar filtro personalizado",titleAdd:"Criar filtro personalizado",titleCollapsible:"Expressão a ser aplicada (gerada pelo assistente)",labelSearchField:"Buscar campo",labelOperator:"Operador",labelValueVarible:"Valor variável",titleTooltip:"Ao ativar um valor variável, é possível inserir um valor diferente sempre que o filtro for aplicado",labelAddNewExpression:"Adicionar nova linha de expressão",labelDeleteExpression:"Remover expressão",labelDeleteItem:"Remover item",labelDisabledAddGroupButton:"Filtros Personalizados possuem um limite de {{LIMIT_GROUP_LEVEL}} Grupos de Condições e Valores",labelDisabledAddExpressionButton:"Preencha campos obrigatórios ou indique valores variáveis nas expressões do grupo antes de adicionar mais itens",labelCancel:"Cancelar",labelSave:"Salvar",labelNameFilter:"Nome do filtro",labelExpression:"Expressão SQL",badgeVariable:"variável",noDataFound:"Nenhum filtro encontrado",condition:"Condição",addGroup:"Adicionar grupo",applyExpression:"Expressão a ser aplicada:"},confirmExpression:{title:"Aviso",description:"As informações da condição serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmGroup:{title:"Aviso",description:"As informações do Grupo e suas Condições serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmCancel:{title:"Aviso",description:"As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>"},operador:{firstLevel:"A seleção será habilitada a partir da adição da segunda linha de regras.",and:"Será verdadeiro se todas as condições forem obedecidas.",or:"Será verdadeiro se qualquer uma das condições for obedecida."},error:{title:"Atenção",description:"Há pelo menos um campo obrigatório não preenchido."},confirmSave:{title:"Filtro criado com sucesso!"},confirmEdit:{title:"Filtro atualizado com sucesso!"},deleteConfirm:{title:"Aviso",message:"Deseja realmente excluir o filtro '{{filterName}}'?"},listActions:{edit:"Editar",delete:"Excluir"},footerActions:{clear:"Limpar",create:"Criar filtro"}},x={selected:"Selecionados:"},S={title:{actions:"Ações",error:"Erro",warning:"Aviso"},action:{incorrectAction:'A ação "{{description}}" não pode ser executada porque ela não foi salva corretamente.',emptyParamName:"<b>Regra Personalizada:</b><br/><br/>É necessário informar o atributo 'paramName'",nonExistentType:"Tipo de ação não implementada: {{this.actionType}}"},launchScreen:{emptyField:'A ação "{{description}}" não pôde ser executada porque o campo "{{localFieldLabel}}" está vazio.'},form:{fillParams:"Informe os parâmetros"},clientEvent:{cancelMessage:"Caso queira cancelar, feche esta mensagem."},buttons:{apply:"Aplicar",cancel:"Cancelar",yes:"Sim",no:"Não"}};class E{constructor(E){this._defaults={snkDataUnit:a,snkFormConfig:d,snkConfigOptions:n,snkTaskbar:r,snkFieldConfig:c,snkFilterBar:o,snkConfigurator:m,snkTabConfig:u,crudUtils:i,snkGrid:p,snkGridConfig:f,snkExporter:s,snkDataExporter:b,snkCrud:l,fileViewer:t,snkFilterParamConfig:v,snkFilterFieldSearch:g,snkSimpleBar:C,snkAttach:A,snkPersonalizedFilter:F,snkEntityList:x,snkActionsButton:S},this._currentOperation=h.CLEAN,this._domainName=E,this._application=e.getContextValue("__SNK__APPLICATION__"),this.loadAppMessages().then((e=>{this._appMessages=e}),(e=>{console.info("O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js",e)}))}set currentOperation(e){this._currentOperation=e}getMessage(e,a){if(null==e)return;var o=e.split(".");let r=this.resolveMessage(o,this.getDomainMessages());if(null==r&&(r=this.resolveMessage(o,this._defaults)),this.customMessageBuilder){const o=this.customMessageBuilder(e,r,a);r=o.message,a=o.params}return this.postProcess(r,a)}getDomainMessages(){return null==this._domainName?this._appMessages.Global||this._appMessages:null==this._appMessages?void 0:this._appMessages[this._domainName]}resolveMessage(e,a){if(null==a)return;const o=a[e[0]];return o?this.isOperationSensitive(o)?o[this._currentOperation]:1===e.length||null==o||"string"==typeof o?o:this.resolveMessage(e.slice(1),o):void 0}isOperationSensitive(e){return null!=e[h.CLONE]||null!=e[h.INSERT]||null!=e[h.UPDATE]||null!=e[h.CLEAN]}postProcess(e,a){if(e){const o=/(.*?)\{\{(.+?)\}\}/g;let r,i="",s=e;for(;null!==(r=o.exec(e));){const[o,l,t]=r,n=r.index+o.length;s=n<e.length?e.substring(n):"";let d=a?a[t]:void 0;null==d&&(d=""),i+=l+d}return i+s}return e}loadAppMessages(){return new Promise((async(e,a)=>{const o=await this._application.getApplicationPath();import(`${o}/messages/appmessages.js`).then((a=>{e(a.default)})).catch((e=>{a(e)}))}))}}var h;!function(e){e.CLONE="clone",e.INSERT="insert",e.UPDATE="update",e.CLEAN="clean"}(h||(h={}));export{h as O,E as S}