@sankhyalabs/sankhyablocks 6.10.0 → 7.0.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 (156) hide show
  1. package/dist/cjs/{ConfigStorage-da2bf3bf.js → ConfigStorage-97468a0f.js} +28 -22
  2. package/dist/cjs/{PersonalizedFilterUtils-cfcd9af2.js → PersonalizedFilterUtils-9848e09b.js} +18 -64
  3. package/dist/cjs/{SnkFormConfigManager-d7cc9118.js → SnkFormConfigManager-bef6e022.js} +1 -1
  4. package/dist/cjs/{SnkMessageBuilder-a5a9b437.js → SnkMessageBuilder-f40df6d4.js} +18 -2
  5. package/dist/cjs/{filter-bar-config-fetcher-58cfc12e.js → filter-bar-config-fetcher-a7747f69.js} +22 -5
  6. package/dist/cjs/index-8d94b7e0.js +7 -0
  7. package/dist/cjs/index-c5771aba.js +44 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  10. package/dist/cjs/snk-application.cjs.entry.js +3 -3
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
  12. package/dist/cjs/{snk-data-unit-9d03800c.js → snk-data-unit-b14563fc.js} +4 -2
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +5 -5
  15. package/dist/cjs/snk-expression-group_2.cjs.entry.js +542 -0
  16. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +66 -0
  17. package/dist/cjs/snk-filter-bar.cjs.entry.js +14 -14
  18. package/dist/cjs/snk-filter-detail.cjs.entry.js +3 -3
  19. package/dist/cjs/{snk-expression-item_3.cjs.entry.js → snk-filter-field-search_2.cjs.entry.js} +23 -315
  20. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
  21. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -2
  22. package/dist/cjs/snk-form.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-grid-config.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-grid.cjs.entry.js +8 -2
  25. package/dist/cjs/{snk-guides-viewer-36766466.js → snk-guides-viewer-897368ea.js} +1 -1
  26. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  27. package/dist/cjs/snk-personalized-filter.cjs.entry.js +122 -31
  28. package/dist/cjs/snk-simple-crud.cjs.entry.js +12 -2
  29. package/dist/collection/collection-manifest.json +2 -0
  30. package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -1
  31. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +1 -1
  32. package/dist/collection/components/snk-grid/snk-grid.js +6 -0
  33. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.css +5 -1
  34. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +114 -23
  35. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +4 -6
  36. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +2 -1
  37. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.css +10 -0
  38. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.js +95 -0
  39. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.css +66 -0
  40. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.js +158 -0
  41. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +8 -2
  42. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +14 -23
  43. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +14 -4
  44. package/dist/collection/lib/configs/ConfigStorage.js +5 -3
  45. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +22 -5
  46. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +22 -18
  47. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +18 -2
  48. package/dist/components/ConfigStorage.js +27 -21
  49. package/dist/components/PersonalizedFilterUtils.js +14 -23
  50. package/dist/components/SnkMessageBuilder.js +18 -2
  51. package/dist/components/filter-bar-config-fetcher.js +22 -5
  52. package/dist/components/index.d.ts +2 -0
  53. package/dist/components/index.js +2 -0
  54. package/dist/components/snk-crud.js +34 -22
  55. package/dist/components/snk-data-unit2.js +3 -1
  56. package/dist/components/snk-detail-view2.js +49 -27
  57. package/dist/components/snk-expression-group2.js +4 -6
  58. package/dist/components/snk-expression-item2.js +2 -1
  59. package/dist/components/snk-filter-advanced-mode.d.ts +11 -0
  60. package/dist/components/snk-filter-advanced-mode.js +6 -0
  61. package/dist/components/snk-filter-advanced-mode2.js +46 -0
  62. package/dist/components/snk-filter-assistent-mode.d.ts +11 -0
  63. package/dist/components/snk-filter-assistent-mode.js +6 -0
  64. package/dist/components/snk-filter-assistent-mode2.js +77 -0
  65. package/dist/components/snk-filter-bar2.js +17 -5
  66. package/dist/components/snk-filter-param-config2.js +6 -0
  67. package/dist/components/snk-grid2.js +28 -10
  68. package/dist/components/snk-personalized-filter2.js +131 -28
  69. package/dist/components/snk-simple-crud2.js +12 -2
  70. package/dist/esm/{ConfigStorage-f1e805a0.js → ConfigStorage-02f17a26.js} +28 -22
  71. package/dist/esm/{PersonalizedFilterUtils-1a167d89.js → PersonalizedFilterUtils-731cae01.js} +16 -62
  72. package/dist/esm/{SnkFormConfigManager-324f6dc7.js → SnkFormConfigManager-cd9e6cab.js} +1 -1
  73. package/dist/esm/{SnkMessageBuilder-76f62087.js → SnkMessageBuilder-5be56185.js} +18 -2
  74. package/dist/esm/{filter-bar-config-fetcher-a358b8e0.js → filter-bar-config-fetcher-790283d8.js} +22 -5
  75. package/dist/esm/index-620ac460.js +7 -0
  76. package/dist/esm/index-ae591a44.js +44 -0
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/esm/sankhyablocks.js +1 -1
  79. package/dist/esm/snk-application.entry.js +3 -3
  80. package/dist/esm/snk-data-exporter.entry.js +2 -2
  81. package/dist/esm/{snk-data-unit-0ff2d644.js → snk-data-unit-d44b6bc0.js} +4 -2
  82. package/dist/esm/snk-data-unit.entry.js +2 -2
  83. package/dist/esm/snk-detail-view.entry.js +5 -5
  84. package/dist/esm/snk-expression-group_2.entry.js +537 -0
  85. package/dist/esm/snk-filter-advanced-mode_2.entry.js +61 -0
  86. package/dist/esm/snk-filter-bar.entry.js +5 -5
  87. package/dist/esm/snk-filter-detail.entry.js +3 -3
  88. package/dist/esm/{snk-expression-item_3.entry.js → snk-filter-field-search_2.entry.js} +12 -303
  89. package/dist/esm/snk-filter-modal-item.entry.js +2 -2
  90. package/dist/esm/snk-filter-modal.entry.js +2 -2
  91. package/dist/esm/snk-form.entry.js +3 -3
  92. package/dist/esm/snk-grid-config.entry.js +2 -2
  93. package/dist/esm/snk-grid.entry.js +8 -2
  94. package/dist/esm/{snk-guides-viewer-e7209909.js → snk-guides-viewer-579c70cc.js} +1 -1
  95. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  96. package/dist/esm/snk-personalized-filter.entry.js +119 -28
  97. package/dist/esm/snk-simple-crud.entry.js +12 -2
  98. package/dist/sankhyablocks/{p-522172e1.entry.js → p-1005cf8e.entry.js} +1 -1
  99. package/dist/sankhyablocks/{p-8f6575c8.entry.js → p-19fdcf88.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-18b74675.entry.js → p-1fe2976e.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-2227bb94.js +1 -0
  102. package/dist/sankhyablocks/p-386102a7.entry.js +1 -0
  103. package/dist/sankhyablocks/{p-7a075ae6.js → p-3b059f4e.js} +1 -1
  104. package/dist/sankhyablocks/p-48156672.entry.js +1 -0
  105. package/dist/sankhyablocks/p-4af6cbef.entry.js +1 -0
  106. package/dist/sankhyablocks/p-4bbc7aac.entry.js +1 -0
  107. package/dist/sankhyablocks/{p-3251999f.entry.js → p-4f687570.entry.js} +1 -1
  108. package/dist/sankhyablocks/p-5098f618.js +1 -0
  109. package/dist/sankhyablocks/{p-652b9081.js → p-7e486ac9.js} +1 -1
  110. package/dist/sankhyablocks/p-7e636457.entry.js +1 -0
  111. package/dist/sankhyablocks/p-7f1c4687.js +56 -0
  112. package/dist/sankhyablocks/{p-ed9e1e52.entry.js → p-88f4ef73.entry.js} +1 -1
  113. package/dist/sankhyablocks/{p-4f3df9b6.js → p-90a926c7.js} +1 -1
  114. package/dist/sankhyablocks/{p-eef26a01.entry.js → p-90e7c3a2.entry.js} +1 -1
  115. package/dist/sankhyablocks/p-933c0c0b.js +1 -0
  116. package/dist/sankhyablocks/p-97720467.entry.js +1 -0
  117. package/dist/sankhyablocks/{p-bd840081.entry.js → p-9fa9331b.entry.js} +1 -1
  118. package/dist/sankhyablocks/{p-40a5d35e.entry.js → p-ad6673fb.entry.js} +1 -1
  119. package/dist/sankhyablocks/p-bd86c9d3.entry.js +1 -0
  120. package/dist/sankhyablocks/{p-8d583a79.entry.js → p-c39b27a3.entry.js} +1 -1
  121. package/dist/sankhyablocks/p-f4184ce7.js +1 -0
  122. package/dist/sankhyablocks/{p-56378a3b.js → p-fb1e5b6d.js} +1 -1
  123. package/dist/sankhyablocks/p-fcc487ea.entry.js +1 -0
  124. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  125. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  126. package/dist/types/components/snk-personalized-filter/interfaces/IPersonalizedFilter.d.ts +4 -0
  127. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +17 -6
  128. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +2 -2
  129. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.d.ts +20 -0
  130. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.d.ts +31 -0
  131. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.d.ts +6 -0
  132. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +2 -2
  133. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +2 -1
  134. package/dist/types/components.d.ts +103 -2
  135. package/dist/types/lib/configs/ConfigStorage.d.ts +3 -2
  136. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +2 -1
  137. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  138. package/package.json +1 -1
  139. package/react/components.d.ts +2 -0
  140. package/react/components.js +2 -0
  141. package/react/components.js.map +1 -1
  142. package/dist/cjs/IExpressionItem-0e32ebb7.js +0 -7
  143. package/dist/cjs/snk-expression-group.cjs.entry.js +0 -250
  144. package/dist/esm/IExpressionItem-21f225bf.js +0 -7
  145. package/dist/esm/snk-expression-group.entry.js +0 -246
  146. package/dist/sankhyablocks/p-432a73a8.js +0 -1
  147. package/dist/sankhyablocks/p-63bff2a8.js +0 -1
  148. package/dist/sankhyablocks/p-6490021d.entry.js +0 -1
  149. package/dist/sankhyablocks/p-7d68a43a.js +0 -1
  150. package/dist/sankhyablocks/p-7fd8a0ab.entry.js +0 -1
  151. package/dist/sankhyablocks/p-9f34a127.entry.js +0 -1
  152. package/dist/sankhyablocks/p-a357d13c.entry.js +0 -1
  153. package/dist/sankhyablocks/p-d4adf773.js +0 -68
  154. package/dist/sankhyablocks/p-d9586ead.entry.js +0 -1
  155. package/dist/sankhyablocks/p-eb30a52a.entry.js +0 -1
  156. package/dist/sankhyablocks/p-f8ce17d3.entry.js +0 -1
@@ -49,24 +49,6 @@ export default class PersonalizedFilterFetcher {
49
49
  active
50
50
  expression
51
51
  warningMessage
52
- parameters {
53
- entityName
54
- fieldName
55
- dataType
56
- description
57
- userInterface
58
- label
59
- searchContext {
60
- entity
61
- entityDescription
62
- searchOptions {
63
- rootEntity
64
- descriptionFieldName
65
- codeFieldName
66
- showInactives
67
- }
68
- }
69
- }
70
52
  assistent
71
53
  }
72
54
  }`);
@@ -84,6 +66,13 @@ export default class PersonalizedFilterFetcher {
84
66
  name
85
67
  }
86
68
  }`);
69
+ this.templateByQuery.set("validateExpression", gql `
70
+ query($dataUnitName: String!, $expression: String!) {
71
+ $queryAlias$: validateExpression(dataUnitName: $dataUnitName, expression: $expression) {
72
+ valid
73
+ message
74
+ }
75
+ }`);
87
76
  }
88
77
  async loadPersonalizedFilter(resourceID, filterID, configName) {
89
78
  return new Promise((resolve, reject) => {
@@ -133,6 +122,21 @@ export default class PersonalizedFilterFetcher {
133
122
  });
134
123
  });
135
124
  }
125
+ async validatePersonalizedFilter(dataUnitName, expression) {
126
+ return new Promise((resolve, reject) => {
127
+ DataFetcher.get()
128
+ .callGraphQL({
129
+ values: { dataUnitName: dataUnitName, expression: expression },
130
+ query: this.templateByQuery.get("validateExpression"),
131
+ })
132
+ .then((resp) => {
133
+ resolve(resp);
134
+ })
135
+ .catch((error) => {
136
+ reject(error);
137
+ });
138
+ });
139
+ }
136
140
  loadFields(uri) {
137
141
  return new Promise((resolve, reject) => {
138
142
  DataFetcher.get()
@@ -15,12 +15,16 @@ export const snkPersonalizedFilterMessages = {
15
15
  labelCancel: "Cancelar",
16
16
  labelSave: "Salvar",
17
17
  labelNameFilter: "Nome do filtro",
18
- labelExpression: "Expressão SQL",
18
+ labelExpression: "Expressão",
19
19
  badgeVariable: "variável",
20
20
  noDataFound: "Nenhum filtro encontrado",
21
21
  condition: "Condição",
22
22
  addGroup: "Adicionar grupo",
23
- applyExpression: "Expressão a ser aplicada:"
23
+ addField: "Adicionar campo",
24
+ applyExpression: "Expressão a ser aplicada:",
25
+ tooltipDisabledAssistentMode: "Expressão não suportada pelo assistente.",
26
+ activeModeAdvanced: "Ativar modo avançado",
27
+ activeModeAssistent: "Ativar modo assistente"
24
28
  },
25
29
  confirmExpression: {
26
30
  title: "Aviso",
@@ -34,6 +38,18 @@ export const snkPersonalizedFilterMessages = {
34
38
  title: "Aviso",
35
39
  description: `As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>`
36
40
  },
41
+ confirmChangeModeAssistent: {
42
+ title: "Aviso",
43
+ description: `Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>`
44
+ },
45
+ confirmChangeModeAdvanced: {
46
+ title: "Aviso",
47
+ description: `Ao retornar ao modo assistente suas alterações serão perdidas.</br></br><b>Gostaria de continuar?</b>`
48
+ },
49
+ confirmSaveModeAdvanced: {
50
+ title: "Aviso",
51
+ description: `Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>`
52
+ },
37
53
  operador: {
38
54
  firstLevel: "A seleção será habilitada a partir da adição da segunda linha de regras.",
39
55
  and: "Será verdadeiro se todas as condições forem obedecidas.",
@@ -93,24 +93,6 @@ class PersonalizedFilterFetcher {
93
93
  active
94
94
  expression
95
95
  warningMessage
96
- parameters {
97
- entityName
98
- fieldName
99
- dataType
100
- description
101
- userInterface
102
- label
103
- searchContext {
104
- entity
105
- entityDescription
106
- searchOptions {
107
- rootEntity
108
- descriptionFieldName
109
- codeFieldName
110
- showInactives
111
- }
112
- }
113
- }
114
96
  assistent
115
97
  }
116
98
  }`);
@@ -128,6 +110,13 @@ class PersonalizedFilterFetcher {
128
110
  name
129
111
  }
130
112
  }`);
113
+ this.templateByQuery.set("validateExpression", dist.gql `
114
+ query($dataUnitName: String!, $expression: String!) {
115
+ $queryAlias$: validateExpression(dataUnitName: $dataUnitName, expression: $expression) {
116
+ valid
117
+ message
118
+ }
119
+ }`);
131
120
  }
132
121
  async loadPersonalizedFilter(resourceID, filterID, configName) {
133
122
  return new Promise((resolve, reject) => {
@@ -177,6 +166,21 @@ class PersonalizedFilterFetcher {
177
166
  });
178
167
  });
179
168
  }
169
+ async validatePersonalizedFilter(dataUnitName, expression) {
170
+ return new Promise((resolve, reject) => {
171
+ DataFetcher.get()
172
+ .callGraphQL({
173
+ values: { dataUnitName: dataUnitName, expression: expression },
174
+ query: this.templateByQuery.get("validateExpression"),
175
+ })
176
+ .then((resp) => {
177
+ resolve(resp);
178
+ })
179
+ .catch((error) => {
180
+ reject(error);
181
+ });
182
+ });
183
+ }
180
184
  loadFields(uri) {
181
185
  return new Promise((resolve, reject) => {
182
186
  DataFetcher.get()
@@ -222,17 +226,16 @@ class ConfigStorage {
222
226
  const resourceID = await application.getResourceID();
223
227
  ConfigStorage.instance = new ConfigStorage();
224
228
  ConfigStorage.resourceID = resourceID;
225
- ConfigStorage.instance.loadFilterBarConfig(configName);
226
229
  ConfigStorage.instance.loadFormConfig(configName);
227
230
  ConfigStorage.instance.loadGridConfig(configName);
228
231
  }
229
232
  }
230
233
  return this.instance;
231
234
  }
232
- async loadFilterBarConfig(name) {
235
+ async loadFilterBarConfig(name, urlParams) {
233
236
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.filterBar);
234
237
  if (!ConfigStorage.configById.has(cacheID)) {
235
- ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(ConfigStorage.resourceID, name));
238
+ ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(ConfigStorage.resourceID, name, urlParams));
236
239
  }
237
240
  return ConfigStorage.configById.get(cacheID);
238
241
  }
@@ -284,6 +287,9 @@ class ConfigStorage {
284
287
  static async removePersonalizedFilter(personalizedFilter, configName) {
285
288
  return this.personalizedFilterFetcher.removePersonalizedFilter(personalizedFilter, this.resourceID, configName);
286
289
  }
290
+ static async validatePersonalizedFilter(dataUnitName, expression) {
291
+ return this.personalizedFilterFetcher.validatePersonalizedFilter(dataUnitName, expression);
292
+ }
287
293
  static buildCacheID(name, source) {
288
294
  if (name == undefined) {
289
295
  return `req_${source}_${this.resourceID}`;
@@ -50,14 +50,12 @@ class PersonalizedFilterUtils {
50
50
  * @param expressionItem - Objeto com os parâmetros necessários para montar a expressão.
51
51
  * @returns Retorna a expressão de filtro.
52
52
  */
53
- static buildFilterExpression(expressionItem, ignoreInvalidExpressions = false) {
53
+ static buildFilterExpression(expressionItem) {
54
+ var _a;
54
55
  if (expressionItem == undefined) {
55
56
  return;
56
57
  }
57
- if (!this.validateExpressionItem(expressionItem) && ignoreInvalidExpressions) {
58
- return "";
59
- }
60
- let value = this.buildVariableParameterValue(expressionItem);
58
+ let value = (_a = this.buildVariableParameterValue(expressionItem)) !== null && _a !== void 0 ? _a : undefined;
61
59
  let expression = expressionItem.expression || "";
62
60
  let commas = "'";
63
61
  if (expressionItem.paramVariable) {
@@ -81,8 +79,13 @@ class PersonalizedFilterUtils {
81
79
  expression += ` LIKE '%${value}'`;
82
80
  break;
83
81
  default:
84
- value = typeof value === 'string' ? `${commas}${value}${commas}` : value;
85
- expression += ` ${FilterOperand[expressionItem.operand]} ${value}`;
82
+ if (expressionItem.operand) {
83
+ expression += ` ${FilterOperand[expressionItem.operand]}`;
84
+ }
85
+ if (value) {
86
+ value = isNaN(value) ? `${commas}${value}${commas}` : value;
87
+ expression += ` ${value}`;
88
+ }
86
89
  }
87
90
  return expression;
88
91
  }
@@ -106,7 +109,7 @@ class PersonalizedFilterUtils {
106
109
  pois para filtros herdados do HTML5 não temos o tipo OBJECT, fazendo com que a expressão
107
110
  fique inválida para campos do tipo pesquisa.
108
111
  */
109
- if (UserInterface.SEARCH === expressionItem.userInterface || DataType.OBJECT == type) {
112
+ if (UserInterface.SEARCH === expressionItem.userInterface || expressionItem.userInterface === UserInterface.OPTIONSELECTOR || DataType.OBJECT == type) {
110
113
  value = (_a = value === null || value === void 0 ? void 0 : value.value) !== null && _a !== void 0 ? _a : value;
111
114
  }
112
115
  if (DataType.NUMBER == type && value != undefined) {
@@ -148,11 +151,11 @@ class PersonalizedFilterUtils {
148
151
  /*
149
152
  * Cria uma expressão de filtro para um grupo de itens.
150
153
  */
151
- static buildGroupExpression(expressionGroup, ignoreInvalidExpressions = false) {
154
+ static buildGroupExpression(expressionGroup) {
152
155
  var _a, _b;
153
156
  if (!((_a = expressionGroup === null || expressionGroup === void 0 ? void 0 : expressionGroup.items) === null || _a === void 0 ? void 0 : _a.length))
154
157
  return "";
155
- const itemExpressions = expressionGroup.items.map((item) => this.buildFilterExpression(item, ignoreInvalidExpressions)).join(` ${expressionGroup.operand} `);
158
+ const itemExpressions = expressionGroup.items.map((item) => this.buildFilterExpression(item)).join(` ${expressionGroup.operand} `);
156
159
  if (((_b = expressionGroup === null || expressionGroup === void 0 ? void 0 : expressionGroup.childrenGroups) === null || _b === void 0 ? void 0 : _b.length) > 0) {
157
160
  const childGroupExpressions = expressionGroup.childrenGroups.map((children) => this.buildGroupExpression(children)).join(` ${expressionGroup.operand} `);
158
161
  return `(${itemExpressions} ${expressionGroup.operand} (${childGroupExpressions}))`;
@@ -239,7 +242,6 @@ class PersonalizedFilterUtils {
239
242
  * do tipo variavel;
240
243
  */
241
244
  static buildVariableParameters(expressionGroup) {
242
- var _a, _b, _c, _d;
243
245
  const allItems = this.buildPlainExpressionItems(expressionGroup);
244
246
  const allParams = [];
245
247
  for (const item of allItems) {
@@ -248,18 +250,7 @@ class PersonalizedFilterUtils {
248
250
  }
249
251
  allParams.push({
250
252
  entityName: item.entityName,
251
- fieldName: item.fieldName,
252
- dataType: item.type,
253
- description: item.description,
254
- userInterface: item.userInterface,
255
- label: item.fieldLabel,
256
- searchContext: {
257
- entity: (_b = (_a = item.props) === null || _a === void 0 ? void 0 : _a.find(prop => prop.name == "ENTITYNAME")) === null || _b === void 0 ? void 0 : _b.value,
258
- entityDescription: (_d = (_c = item.props) === null || _c === void 0 ? void 0 : _c.find(prop => prop.name == "DESCRIPTIONENTITY")) === null || _d === void 0 ? void 0 : _d.value,
259
- searchOptions: {
260
- showInactives: false
261
- }
262
- }
253
+ fieldName: item.fieldName
263
254
  });
264
255
  }
265
256
  return allParams;
@@ -359,12 +359,16 @@ const snkPersonalizedFilterMessages = {
359
359
  labelCancel: "Cancelar",
360
360
  labelSave: "Salvar",
361
361
  labelNameFilter: "Nome do filtro",
362
- labelExpression: "Expressão SQL",
362
+ labelExpression: "Expressão",
363
363
  badgeVariable: "variável",
364
364
  noDataFound: "Nenhum filtro encontrado",
365
365
  condition: "Condição",
366
366
  addGroup: "Adicionar grupo",
367
- applyExpression: "Expressão a ser aplicada:"
367
+ addField: "Adicionar campo",
368
+ applyExpression: "Expressão a ser aplicada:",
369
+ tooltipDisabledAssistentMode: "Expressão não suportada pelo assistente.",
370
+ activeModeAdvanced: "Ativar modo avançado",
371
+ activeModeAssistent: "Ativar modo assistente"
368
372
  },
369
373
  confirmExpression: {
370
374
  title: "Aviso",
@@ -378,6 +382,18 @@ const snkPersonalizedFilterMessages = {
378
382
  title: "Aviso",
379
383
  description: `As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>`
380
384
  },
385
+ confirmChangeModeAssistent: {
386
+ title: "Aviso",
387
+ description: `Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>`
388
+ },
389
+ confirmChangeModeAdvanced: {
390
+ title: "Aviso",
391
+ description: `Ao retornar ao modo assistente suas alterações serão perdidas.</br></br><b>Gostaria de continuar?</b>`
392
+ },
393
+ confirmSaveModeAdvanced: {
394
+ title: "Aviso",
395
+ description: `Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>`
396
+ },
381
397
  operador: {
382
398
  firstLevel: "A seleção será habilitada a partir da adição da segunda linha de regras.",
383
399
  and: "Será verdadeiro se todas as condições forem obedecidas.",
@@ -75,9 +75,9 @@ class FilterBarConfigFetcher extends ResourceFetcher {
75
75
  saveConfig(items, resourceID, configName) {
76
76
  return this.saveResource(this.normalize(items), this.getPath(resourceID, configName));
77
77
  }
78
- getConfig(resourceID, configName) {
78
+ getConfig(resourceID, configName, urlParams) {
79
79
  return new Promise((accept, reject) => {
80
- this.loadResource(this.getPath(resourceID, configName))
80
+ this.loadResource(this.getPath(resourceID, configName, urlParams))
81
81
  .then((configAsString) => {
82
82
  let fieldsList;
83
83
  if (configAsString) {
@@ -125,11 +125,28 @@ class FilterBarConfigFetcher extends ResourceFetcher {
125
125
  return item;
126
126
  });
127
127
  }
128
- getPath(resourceID, name) {
128
+ getPath(resourceID, name, urlParams) {
129
+ let path = `cfg://filter/FilterBarState:${resourceID}`;
129
130
  if (name) {
130
- return `cfg://filter/FilterBarState:${resourceID}.${name}`;
131
+ path += `.${name}`;
131
132
  }
132
- return `cfg://filter/FilterBarState:${resourceID}`;
133
+ if (urlParams) {
134
+ path += this.buildQueryString(urlParams);
135
+ }
136
+ return path;
137
+ }
138
+ buildQueryString(urlParams) {
139
+ let queryString = '?';
140
+ for (let key in urlParams) {
141
+ if (!urlParams.hasOwnProperty(key)) {
142
+ continue;
143
+ }
144
+ if (queryString.length > 1) {
145
+ queryString += '&';
146
+ }
147
+ queryString += key + '=' + urlParams[key];
148
+ }
149
+ return queryString;
133
150
  }
134
151
  }
135
152
 
@@ -15,6 +15,8 @@ export { SnkExporterEmailSender as SnkExporterEmailSender } from '../types/compo
15
15
  export { SnkExpressionGroup as SnkExpressionGroup } from '../types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group';
16
16
  export { SnkExpressionItem as SnkExpressionItem } from '../types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item';
17
17
  export { SnkFieldConfig as SnkFieldConfig } from '../types/components/snk-form/subcomponents/snk-field-config/snk-field-config';
18
+ export { SnkFilterAdvancedMode as SnkFilterAdvancedMode } from '../types/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode';
19
+ export { SnkFilterAssistentMode as SnkFilterAssistentMode } from '../types/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode';
18
20
  export { SnkFilterBar as SnkFilterBar } from '../types/components/snk-filter-bar/snk-filter-bar';
19
21
  export { SnkFilterBinarySelect as SnkFilterBinarySelect } from '../types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select';
20
22
  export { SnkFilterDetail as SnkFilterDetail } from '../types/components/snk-filter-bar/filter-item/snk-filter-detail';
@@ -15,6 +15,8 @@ export { SnkExporterEmailSender, defineCustomElement as defineCustomElementSnkEx
15
15
  export { SnkExpressionGroup, defineCustomElement as defineCustomElementSnkExpressionGroup } from './snk-expression-group.js';
16
16
  export { SnkExpressionItem, defineCustomElement as defineCustomElementSnkExpressionItem } from './snk-expression-item.js';
17
17
  export { SnkFieldConfig, defineCustomElement as defineCustomElementSnkFieldConfig } from './snk-field-config.js';
18
+ export { SnkFilterAdvancedMode, defineCustomElement as defineCustomElementSnkFilterAdvancedMode } from './snk-filter-advanced-mode.js';
19
+ export { SnkFilterAssistentMode, defineCustomElement as defineCustomElementSnkFilterAssistentMode } from './snk-filter-assistent-mode.js';
18
20
  export { SnkFilterBar, defineCustomElement as defineCustomElementSnkFilterBar } from './snk-filter-bar.js';
19
21
  export { SnkFilterBinarySelect, defineCustomElement as defineCustomElementSnkFilterBinarySelect } from './snk-filter-binary-select.js';
20
22
  export { SnkFilterDetail, defineCustomElement as defineCustomElementSnkFilterDetail } from './snk-filter-detail.js';
@@ -5,17 +5,19 @@ import './DataFetcher.js';
5
5
  import './pesquisa-fetcher.js';
6
6
  import { P as PresentationMode } from './index2.js';
7
7
  import { V as VIEW_MODE } from './constants.js';
8
- import { d as defineCustomElement$t } from './snk-actions-button2.js';
9
- import { d as defineCustomElement$s } from './snk-attach2.js';
10
- import { d as defineCustomElement$r } from './snk-config-options2.js';
11
- import { d as defineCustomElement$q } from './snk-configurator2.js';
12
- import { d as defineCustomElement$p } from './snk-data-exporter2.js';
13
- import { d as defineCustomElement$o } from './snk-data-unit2.js';
14
- import { d as defineCustomElement$8, a as defineCustomElement$n } from './snk-detail-view2.js';
15
- import { d as defineCustomElement$m } from './snk-exporter-email-sender2.js';
16
- import { d as defineCustomElement$l } from './snk-expression-group2.js';
17
- import { d as defineCustomElement$k } from './snk-expression-item2.js';
18
- import { d as defineCustomElement$j } from './snk-field-config2.js';
8
+ import { d as defineCustomElement$v } from './snk-actions-button2.js';
9
+ import { d as defineCustomElement$u } from './snk-attach2.js';
10
+ import { d as defineCustomElement$t } from './snk-config-options2.js';
11
+ import { d as defineCustomElement$s } from './snk-configurator2.js';
12
+ import { d as defineCustomElement$r } from './snk-data-exporter2.js';
13
+ import { d as defineCustomElement$q } from './snk-data-unit2.js';
14
+ import { d as defineCustomElement$8, a as defineCustomElement$p } from './snk-detail-view2.js';
15
+ import { d as defineCustomElement$o } from './snk-exporter-email-sender2.js';
16
+ import { d as defineCustomElement$n } from './snk-expression-group2.js';
17
+ import { d as defineCustomElement$m } from './snk-expression-item2.js';
18
+ import { d as defineCustomElement$l } from './snk-field-config2.js';
19
+ import { d as defineCustomElement$k } from './snk-filter-advanced-mode2.js';
20
+ import { d as defineCustomElement$j } from './snk-filter-assistent-mode2.js';
19
21
  import { d as defineCustomElement$i } from './snk-filter-bar2.js';
20
22
  import { d as defineCustomElement$h } from './snk-filter-detail2.js';
21
23
  import { d as defineCustomElement$g } from './snk-filter-field-search2.js';
@@ -216,7 +218,7 @@ function defineCustomElement$1() {
216
218
  if (typeof customElements === "undefined") {
217
219
  return;
218
220
  }
219
- const components = ["snk-crud", "snk-actions-button", "snk-attach", "snk-config-options", "snk-configurator", "snk-data-exporter", "snk-data-unit", "snk-detail-view", "snk-exporter-email-sender", "snk-expression-group", "snk-expression-item", "snk-field-config", "snk-filter-bar", "snk-filter-detail", "snk-filter-field-search", "snk-filter-item", "snk-filter-param-config", "snk-form-config", "snk-form-summary", "snk-form-view", "snk-grid", "snk-grid-config", "snk-guides-viewer", "snk-personalized-filter", "snk-select-box", "snk-simple-bar", "snk-simple-crud", "snk-tab-config", "snk-taskbar"];
221
+ const components = ["snk-crud", "snk-actions-button", "snk-attach", "snk-config-options", "snk-configurator", "snk-data-exporter", "snk-data-unit", "snk-detail-view", "snk-exporter-email-sender", "snk-expression-group", "snk-expression-item", "snk-field-config", "snk-filter-advanced-mode", "snk-filter-assistent-mode", "snk-filter-bar", "snk-filter-detail", "snk-filter-field-search", "snk-filter-item", "snk-filter-param-config", "snk-form-config", "snk-form-summary", "snk-form-view", "snk-grid", "snk-grid-config", "snk-guides-viewer", "snk-personalized-filter", "snk-select-box", "snk-simple-bar", "snk-simple-crud", "snk-tab-config", "snk-taskbar"];
220
222
  components.forEach(tagName => { switch (tagName) {
221
223
  case "snk-crud":
222
224
  if (!customElements.get(tagName)) {
@@ -225,55 +227,65 @@ function defineCustomElement$1() {
225
227
  break;
226
228
  case "snk-actions-button":
227
229
  if (!customElements.get(tagName)) {
228
- defineCustomElement$t();
230
+ defineCustomElement$v();
229
231
  }
230
232
  break;
231
233
  case "snk-attach":
232
234
  if (!customElements.get(tagName)) {
233
- defineCustomElement$s();
235
+ defineCustomElement$u();
234
236
  }
235
237
  break;
236
238
  case "snk-config-options":
237
239
  if (!customElements.get(tagName)) {
238
- defineCustomElement$r();
240
+ defineCustomElement$t();
239
241
  }
240
242
  break;
241
243
  case "snk-configurator":
242
244
  if (!customElements.get(tagName)) {
243
- defineCustomElement$q();
245
+ defineCustomElement$s();
244
246
  }
245
247
  break;
246
248
  case "snk-data-exporter":
247
249
  if (!customElements.get(tagName)) {
248
- defineCustomElement$p();
250
+ defineCustomElement$r();
249
251
  }
250
252
  break;
251
253
  case "snk-data-unit":
252
254
  if (!customElements.get(tagName)) {
253
- defineCustomElement$o();
255
+ defineCustomElement$q();
254
256
  }
255
257
  break;
256
258
  case "snk-detail-view":
257
259
  if (!customElements.get(tagName)) {
258
- defineCustomElement$n();
260
+ defineCustomElement$p();
259
261
  }
260
262
  break;
261
263
  case "snk-exporter-email-sender":
262
264
  if (!customElements.get(tagName)) {
263
- defineCustomElement$m();
265
+ defineCustomElement$o();
264
266
  }
265
267
  break;
266
268
  case "snk-expression-group":
267
269
  if (!customElements.get(tagName)) {
268
- defineCustomElement$l();
270
+ defineCustomElement$n();
269
271
  }
270
272
  break;
271
273
  case "snk-expression-item":
272
274
  if (!customElements.get(tagName)) {
273
- defineCustomElement$k();
275
+ defineCustomElement$m();
274
276
  }
275
277
  break;
276
278
  case "snk-field-config":
279
+ if (!customElements.get(tagName)) {
280
+ defineCustomElement$l();
281
+ }
282
+ break;
283
+ case "snk-filter-advanced-mode":
284
+ if (!customElements.get(tagName)) {
285
+ defineCustomElement$k();
286
+ }
287
+ break;
288
+ case "snk-filter-assistent-mode":
277
289
  if (!customElements.get(tagName)) {
278
290
  defineCustomElement$j();
279
291
  }
@@ -291,7 +291,8 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
291
291
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
292
292
  selectedRecords: undefined,
293
293
  selectionInfo,
294
- selectedRecord: this.dataUnit.getSelectedRecord()
294
+ selectedRecord: this.dataUnit.getSelectedRecord(),
295
+ recordsIsEmpty: this.dataUnit.records.length === 0
295
296
  });
296
297
  }
297
298
  /**
@@ -442,6 +443,7 @@ class DataStateImpl {
442
443
  this.hasPrevious = datastate.hasPrevious;
443
444
  this.selectionInfo = datastate.selectionInfo;
444
445
  this.selectedRecord = datastate.selectedRecord;
446
+ this.recordsIsEmpty = datastate.recordsIsEmpty;
445
447
  }
446
448
  get selectedRecords() {
447
449
  var _a;