@sankhyalabs/sankhyablocks 1.3.31-beta.17 → 1.3.31-beta.19

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 (107) hide show
  1. package/dist/cjs/{SnkMessageBuilder-cb132e6d.js → SnkMessageBuilder-02c2ca02.js} +7 -3
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/snk-application.cjs.entry.js +405 -265
  5. package/dist/cjs/snk-crud.cjs.entry.js +2 -1
  6. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  7. package/dist/cjs/snk-filter-bar.cjs.entry.js +80 -14
  8. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-filter-detail.cjs.entry.js +7 -2
  10. package/dist/cjs/snk-filter-item.cjs.entry.js +13 -1
  11. package/dist/cjs/snk-filter-list.cjs.entry.js +2 -2
  12. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +23 -0
  13. package/dist/cjs/snk-filter-number.cjs.entry.js +2 -1
  14. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  15. package/dist/cjs/snk-form.cjs.entry.js +19 -1
  16. package/dist/cjs/snk-grid.cjs.entry.js +15 -5
  17. package/dist/cjs/snk-taskbar.cjs.entry.js +14 -11
  18. package/dist/cjs/{taskbar-elements-efa44ff1.js → taskbar-elements-283c737e.js} +36 -17
  19. package/dist/cjs/taskbar-processor-6bd0d35c.js +47 -0
  20. package/dist/collection/collection-manifest.json +1 -0
  21. package/dist/collection/components/snk-application/snk-application.js +23 -3
  22. package/dist/collection/components/snk-crud/snk-crud.js +41 -3
  23. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +1 -1
  24. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +64 -0
  25. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +2 -1
  26. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +1 -1
  27. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +7 -2
  28. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +36 -1
  29. package/dist/collection/components/snk-filter-bar/filter-list/snk-filter-list.js +53 -2
  30. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +15 -0
  31. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +79 -13
  32. package/dist/collection/components/snk-form/snk-form.js +41 -1
  33. package/dist/collection/components/snk-grid/snk-grid.js +35 -3
  34. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +35 -17
  35. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +43 -0
  36. package/dist/collection/components/snk-taskbar/snk-taskbar.js +36 -11
  37. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +6 -6
  38. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +375 -255
  39. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +7 -3
  40. package/dist/components/SnkMessageBuilder.js +7 -3
  41. package/dist/components/index.d.ts +1 -0
  42. package/dist/components/index.js +1 -0
  43. package/dist/components/snk-application2.js +404 -264
  44. package/dist/components/snk-crud.js +4 -2
  45. package/dist/components/snk-filter-bar2.js +80 -14
  46. package/dist/components/snk-filter-binary-select.js +1 -1
  47. package/dist/components/snk-filter-detail2.js +7 -2
  48. package/dist/components/snk-filter-item2.js +15 -2
  49. package/dist/components/snk-filter-list2.js +5 -2
  50. package/dist/components/snk-filter-multi-select.d.ts +11 -0
  51. package/dist/components/snk-filter-multi-select.js +39 -0
  52. package/dist/components/snk-filter-number.js +2 -1
  53. package/dist/components/snk-filter-search.js +1 -1
  54. package/dist/components/snk-form2.js +20 -1
  55. package/dist/components/snk-grid2.js +15 -4
  56. package/dist/components/snk-taskbar2.js +49 -27
  57. package/dist/components/taskbar-processor.js +45 -0
  58. package/dist/{sankhyablocks/SnkMessageBuilder-cff80920.js → esm/SnkMessageBuilder-65d431bd.js} +7 -3
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/esm/sankhyablocks.js +1 -1
  61. package/dist/esm/snk-application.entry.js +405 -265
  62. package/dist/esm/snk-crud.entry.js +3 -2
  63. package/dist/esm/snk-data-unit.entry.js +1 -1
  64. package/dist/esm/snk-filter-bar.entry.js +80 -14
  65. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  66. package/dist/esm/snk-filter-detail.entry.js +7 -2
  67. package/dist/esm/snk-filter-item.entry.js +13 -1
  68. package/dist/esm/snk-filter-list.entry.js +2 -2
  69. package/dist/esm/snk-filter-multi-select.entry.js +19 -0
  70. package/dist/esm/snk-filter-number.entry.js +2 -1
  71. package/dist/esm/snk-filter-search.entry.js +1 -1
  72. package/dist/esm/snk-form.entry.js +19 -1
  73. package/dist/esm/snk-grid.entry.js +15 -5
  74. package/dist/esm/snk-taskbar.entry.js +14 -11
  75. package/dist/esm/taskbar-elements-35d64ff9.js +90 -0
  76. package/dist/esm/taskbar-processor-aa6772c9.js +45 -0
  77. package/dist/{esm/SnkMessageBuilder-cff80920.js → sankhyablocks/SnkMessageBuilder-65d431bd.js} +7 -3
  78. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  79. package/dist/sankhyablocks/snk-application.entry.js +405 -265
  80. package/dist/sankhyablocks/snk-crud.entry.js +3 -2
  81. package/dist/sankhyablocks/snk-data-unit.entry.js +1 -1
  82. package/dist/sankhyablocks/snk-filter-bar.entry.js +80 -14
  83. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +1 -1
  84. package/dist/sankhyablocks/snk-filter-detail.entry.js +7 -2
  85. package/dist/sankhyablocks/snk-filter-item.entry.js +13 -1
  86. package/dist/sankhyablocks/snk-filter-list.entry.js +2 -2
  87. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +19 -0
  88. package/dist/sankhyablocks/snk-filter-number.entry.js +2 -1
  89. package/dist/sankhyablocks/snk-filter-search.entry.js +1 -1
  90. package/dist/sankhyablocks/snk-form.entry.js +19 -1
  91. package/dist/sankhyablocks/snk-grid.entry.js +15 -5
  92. package/dist/sankhyablocks/snk-taskbar.entry.js +14 -11
  93. package/dist/sankhyablocks/taskbar-elements-35d64ff9.js +90 -0
  94. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +45 -0
  95. package/dist/types/components/snk-application/snk-application.d.ts +5 -3
  96. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +7 -0
  97. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +1 -0
  98. package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +3 -0
  99. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +6 -3
  100. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +3 -2
  101. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +12 -0
  102. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +17 -1
  103. package/dist/types/components.d.ts +78 -2
  104. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -0
  105. package/package.json +1 -1
  106. package/dist/esm/taskbar-elements-c119510a.js +0 -72
  107. package/dist/sankhyablocks/taskbar-elements-c119510a.js +0 -72
@@ -1,4 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { d as defineCustomElement$8 } from './snk-filter-bar2.js';
3
3
  import { d as defineCustomElement$7 } from './snk-filter-detail2.js';
4
4
  import { d as defineCustomElement$6 } from './snk-filter-item2.js';
@@ -15,6 +15,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
15
15
  constructor() {
16
16
  super();
17
17
  this.__registerHost();
18
+ this.actionClick = createEvent(this, "actionClick", 7);
18
19
  }
19
20
  async gridToForm(keepFormMode = false) {
20
21
  this._backToGrid = !keepFormMode && await this._viewStack.getSelectedIndex() === GRID_MODE;
@@ -59,13 +60,14 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
59
60
  }
60
61
  }
61
62
  render() {
62
- return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }))), h("stack-item", null, h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, onActionClick: evt => this.executeAction(evt.detail) }))));
63
+ return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail) }, h("slot", { name: "SnkFormTaskBar" })))));
63
64
  }
64
65
  get _element() { return this; }
65
66
  static get style() { return snkCrudCss; }
66
67
  }, [6, "snk-crud", {
67
68
  "configName": [1, "config-name"],
68
69
  "actionsList": [16],
70
+ "taskbarManager": [16],
69
71
  "recordsValidator": [16],
70
72
  "_dataUnit": [32],
71
73
  "_dataState": [32]
@@ -5,10 +5,11 @@ import { d as defineCustomElement$3 } from './snk-filter-detail2.js';
5
5
  import { d as defineCustomElement$2 } from './snk-filter-item2.js';
6
6
  import { d as defineCustomElement$1 } from './snk-filter-list2.js';
7
7
 
8
- const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:minmax(100px, 100%) 1fr 1fr}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;z-index:var(--more-visible, 1);background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;flex-grow:0}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px)}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.preselected.sc-snk-filter-bar{background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}";
8
+ const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:minmax(100px, 100%) 1fr 1fr}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;z-index:var(--more-visible, 1);background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;flex-grow:0}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px)}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.preselected.sc-snk-filter-bar{background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}";
9
9
 
10
10
  const PERSONALIZED_FILTER = "PERSONALIZED_FILTER";
11
11
  const DEFAULT_FILTER = "DEFAULT_FILTER";
12
+ const CLEAR_ALL_FILTERS = "CLEAR_ALL_FILTERS";
12
13
  const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
13
14
  constructor() {
14
15
  super();
@@ -56,6 +57,9 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
56
57
  //FIXME: ajustar o backend para não exigir parametros
57
58
  return { name: id, expression: selectedOption.expression, params: [] };
58
59
  }
60
+ if (type === FilterItemType.MULTI_SELECT) {
61
+ return { name: id, expression: props.expression, params: [{ name: id, dataType: DataType.TEXT, value }] };
62
+ }
59
63
  if (type === FilterItemType.PERIOD) {
60
64
  const { end, start } = value;
61
65
  const params = [];
@@ -127,11 +131,11 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
127
131
  getFilterItems() {
128
132
  const pinnedItems = [];
129
133
  const unpinnedItems = [];
130
- this._items = this.filterConfig
134
+ this.filterConfig
131
135
  .filter(item => item.visible)
132
136
  .sort((a, b) => this._filtersComparator(a, b))
133
- .map((item, index) => {
134
- const filterItem = (h("snk-filter-item", { config: item, class: index > 0 ? "ez-padding-left--medium" : "", getMessage: (key, props) => this.getMessage(key, props), key: item.id }));
137
+ .forEach((item, index) => {
138
+ const filterItem = (h("snk-filter-item", { id: `filter-${item.id}`, config: this.normalizeItem(item), class: index > 0 ? "ez-padding-left--medium" : "", getMessage: (key, props) => this.getMessage(key, props), key: item.id }));
135
139
  if (item.fixed || item.hardFixed) {
136
140
  pinnedItems.push(filterItem);
137
141
  }
@@ -149,25 +153,54 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
149
153
  return elements;
150
154
  }
151
155
  calculateUpdateSequence(item) {
152
- this._updateSequence = this._updateSequence.filter(itemId => item.id !== itemId);
153
- this._updateSequence.push(item.id);
156
+ if (item) {
157
+ this._updateSequence = this._updateSequence.filter(itemId => item.id !== itemId);
158
+ this._updateSequence.push(item.id);
159
+ }
154
160
  }
155
161
  filterChangeListener(evt) {
156
162
  this.updateFilter(evt.detail);
157
163
  }
158
- updateFilter(newItem) {
159
- this.calculateUpdateSequence(newItem);
160
- let needRefresh = false;
164
+ normalizeItem(item) {
165
+ const normalized = Object.assign({}, item);
166
+ const optionals = ["props", "value", "hardFixed", "fixed"];
167
+ optionals.forEach(prop => {
168
+ if (normalized[prop] == undefined) {
169
+ delete normalized[prop];
170
+ }
171
+ });
172
+ if (item.value === "") {
173
+ delete item.value;
174
+ }
175
+ return normalized;
176
+ }
177
+ updateFilter(newItem, clear = false) {
178
+ let upToDate = false;
161
179
  this.filterConfig = this.filterConfig.map(item => {
162
- if (item.id === newItem.id) {
163
- needRefresh = ObjectUtils.objectToString(item.value) !== ObjectUtils.objectToString(newItem.value);
164
- return newItem;
180
+ if (clear) {
181
+ if (item.value != undefined) {
182
+ this.calculateUpdateSequence(item);
183
+ upToDate = true;
184
+ }
185
+ return Object.assign(Object.assign({}, item), { value: undefined });
186
+ }
187
+ else {
188
+ if (item.id === newItem.id) {
189
+ const normalizedOne = this.normalizeItem(item);
190
+ const normalizedTwo = this.normalizeItem(newItem);
191
+ if (ObjectUtils.objectToString(normalizedOne) != ObjectUtils.objectToString(normalizedTwo)) {
192
+ this.calculateUpdateSequence(item);
193
+ }
194
+ upToDate = ObjectUtils.objectToString(normalizedOne.value) !== ObjectUtils.objectToString(normalizedTwo.value);
195
+ return newItem;
196
+ }
165
197
  }
166
198
  return item;
167
199
  });
168
- if (needRefresh) {
200
+ if (upToDate) {
169
201
  this.dataUnit.loadData();
170
202
  }
203
+ return upToDate;
171
204
  }
172
205
  getAddListItems() {
173
206
  const hiddenItems = this.filterConfig
@@ -180,17 +213,50 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
180
213
  { name: DEFAULT_FILTER, label: this.getMessage("snkFilterBar.defaultFilter"), iconName: "configuration", kind: "FOOTER" }
181
214
  ]);
182
215
  }
216
+ getActiveClass() {
217
+ const filterApplied = this.filterConfig.filter(item => item.value != undefined).length > 0;
218
+ return filterApplied ? "sc-snk-filter-bar snk-filter-bar__filter-list-items-button--active" : "";
219
+ }
220
+ getAppliedListItems() {
221
+ const appliedItems = this.filterConfig
222
+ .filter(item => item.value != undefined)
223
+ .sort(this._filtersComparator);
224
+ return appliedItems.map(filter => {
225
+ return { name: filter.id, label: filter.label, kind: "FILTER", iconName: null };
226
+ }).concat([
227
+ { name: CLEAR_ALL_FILTERS, label: this.getMessage("snkFilterBar.clearAllFilters"), iconName: "cleaning", kind: "FOOTER" }
228
+ ]);
229
+ }
183
230
  addFilterHandler(itemName) {
184
231
  const filterItem = this.filterConfig.find(currentFilter => currentFilter.id === itemName);
185
232
  if (filterItem) {
186
233
  this.updateFilter(Object.assign(Object.assign({}, filterItem), { visible: true }));
234
+ window.requestAnimationFrame(() => {
235
+ const itemElement = this._element.querySelector("#filter-" + itemName);
236
+ if (itemElement) {
237
+ itemElement.showUp();
238
+ }
239
+ });
240
+ }
241
+ }
242
+ appliedFilterHandler(itemName) {
243
+ if (itemName === CLEAR_ALL_FILTERS) {
244
+ if (this.updateFilter(null, true)) {
245
+ this._application.info(this.getMessage("snkFilterBar.successfullyCleaned"), { iconName: "check" });
246
+ }
247
+ }
248
+ else {
249
+ const itemElement = this._element.querySelector("#filter-" + itemName);
250
+ if (itemElement) {
251
+ itemElement.showUp(true);
252
+ }
187
253
  }
188
254
  }
189
255
  render() {
190
256
  if (!this.dataUnit || !this.filterConfig || this.filterConfig.length === 0) {
191
257
  return undefined;
192
258
  }
193
- return (h(Host, null, h("ez-scroller", { direction: "horizontal" }, this.getFilterItems()), h("ez-button", { mode: "icon", size: "small", iconName: "filter", class: "ez-padding-left--medium" }), h("snk-filter-list", { items: this.getAddListItems(), label: this.getMessage("snkFilterBar.addFilter"), getMessage: (key, params) => this.getMessage(key, params), class: "ez-padding-left--medium", onSnkItemSelected: evt => this.addFilterHandler(evt.detail) }, h("ez-icon", { slot: "leftIcon", class: "ez-padding-right--small", iconName: "plus" }))));
259
+ return (h(Host, null, h("ez-scroller", { direction: "horizontal" }, this.getFilterItems()), h("snk-filter-list", { items: this.getAppliedListItems(), getMessage: (key, params) => this.getMessage(key, params), emptyText: this.getMessage("snkFilterBar.emptyAppliedFiltersList"), findFilterText: this.getMessage("snkFilterBar.findFilter"), iconName: "filter", class: "ez-padding-left--medium", buttonClass: this.getActiveClass(), onSnkItemSelected: evt => this.appliedFilterHandler(evt.detail) }), h("snk-filter-list", { items: this.getAddListItems(), label: this.getMessage("snkFilterBar.addFilter"), getMessage: (key, params) => this.getMessage(key, params), emptyText: this.getMessage("snkFilterBar.emptyFiltersList"), findFilterText: this.getMessage("snkFilterBar.findField"), class: "ez-padding-left--medium", onSnkItemSelected: evt => this.addFilterHandler(evt.detail) }, h("ez-icon", { slot: "leftIcon", class: "ez-padding-right--small", iconName: "plus" }))));
194
260
  }
195
261
  get _element() { return this; }
196
262
  static get style() { return snkFilterBarCss; }
@@ -7,7 +7,7 @@ const SnkFilterBinarySelect$1 = /*@__PURE__*/ proxyCustomElement(class extends H
7
7
  this.__registerHost();
8
8
  }
9
9
  isSelected(option) {
10
- return this.config.value == undefined || this.config.value === option;
10
+ return this.value == undefined || this.value === option;
11
11
  }
12
12
  ezChangeListener(evt) {
13
13
  if (!evt.detail) {
@@ -14,6 +14,8 @@ const SnkFilterDetail = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
14
14
  switch (this.config.type) {
15
15
  case FilterItemType.BINARY_SELECT:
16
16
  return "snk-filter-binary-select";
17
+ case FilterItemType.MULTI_SELECT:
18
+ return "snk-filter-multi-select";
17
19
  case FilterItemType.PERIOD:
18
20
  return "snk-filter-period";
19
21
  case FilterItemType.SEARCH:
@@ -23,18 +25,21 @@ const SnkFilterDetail = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
23
25
  }
24
26
  return "snk-filter-text";
25
27
  }
28
+ removeItem() {
29
+ this.changeConfig(Object.assign(Object.assign({}, this.config), { visible: false, fixed: false, value: undefined }));
30
+ }
26
31
  getPopUpHeaderButtons() {
27
32
  if (this.config.hardFixed) {
28
33
  return undefined;
29
34
  }
30
35
  return ([
31
- h("ez-icon", { title: this.getMessage("snkFilterBar.removeFilter"), class: "sc-snk-filter-bar snk-filter-item__editor-header-button", iconName: "delete", onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { visible: false })) }),
36
+ h("ez-icon", { title: this.getMessage("snkFilterBar.removeFilter"), class: "sc-snk-filter-bar snk-filter-item__editor-header-button", iconName: "delete", onClick: () => this.removeItem() }),
32
37
  h("ez-icon", { title: this.getMessage(this.config.fixed ? "snkFilterBar.unpinFilter" : "snkFilterBar.pinFilter"), class: "ez-margin-left--small sc-snk-filter-bar snk-filter-item__editor-header-button", iconName: this.config.fixed ? "un-pin" : "push-pin", onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { fixed: !this.config.fixed })) })
33
38
  ]);
34
39
  }
35
40
  render() {
36
41
  const ContentEditor = this.getContentEditor();
37
- return (h(Host, null, h("div", { class: "col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center" }, h("div", { class: "ez-text ez-title ez-title--small ez-padding--small sc-snk-filter-bar snk-filter-item__editor-header" }, this.config.detailTitle), this.getPopUpHeaderButtons()), h(ContentEditor, { ref: ref => this._editor = ref, config: this.config, fix: () => this.keepOpened = true, unfix: () => this.keepOpened = false }), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), h("div", { class: "ez-col ez-col--sd-12 ez-align--right" }, h("ez-button", { label: this.getMessage("snkFilterBar.cleanFilter"), onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { value: undefined })) }), h("ez-button", { label: this.getMessage("snkFilterBar.applyFilter"), onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { value: this._editor["value"] })), class: "ez-button--primary ez-padding-left--medium" }))));
42
+ return (h(Host, null, h("div", { class: "col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center" }, h("div", { class: "ez-text ez-title ez-title--small ez-padding--small sc-snk-filter-bar snk-filter-item__editor-header" }, this.config.detailTitle), this.getPopUpHeaderButtons()), h(ContentEditor, { ref: ref => this._editor = ref, value: this.config.value, config: this.config, fix: () => this.keepOpened = true, unfix: () => this.keepOpened = false }), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), h("div", { class: "ez-col ez-col--sd-12 ez-align--right" }, h("ez-button", { label: this.getMessage("snkFilterBar.cleanFilter"), onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { value: undefined })) }), h("ez-button", { label: this.getMessage("snkFilterBar.applyFilter"), onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { value: this._editor["value"] })), class: "ez-button--primary ez-padding-left--medium" }))));
38
43
  }
39
44
  }, [0, "snk-filter-detail", {
40
45
  "config": [1040],
@@ -27,6 +27,14 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
27
27
  return false;
28
28
  };
29
29
  }
30
+ async showUp(open = false) {
31
+ this._filterItemElement.scrollIntoView({ behavior: "auto", block: "nearest", inline: "nearest" });
32
+ if (open) {
33
+ window.requestAnimationFrame(() => {
34
+ this.showDetail();
35
+ });
36
+ }
37
+ }
30
38
  showDetail() {
31
39
  this._floatingID = FloatingManager.float(this._popover, this._popoverContainer, { autoClose: true, innerClickTest: this.innerClickCheck, left: this.getScrollOffset() });
32
40
  this.detailIsVisible = true;
@@ -81,6 +89,10 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
81
89
  return optTwo.label;
82
90
  }
83
91
  }
92
+ if (type === FilterItemType.MULTI_SELECT) {
93
+ const opt = props.options.find(opt => opt.value === value);
94
+ return `${label}: ${opt.label}`;
95
+ }
84
96
  if (type === FilterItemType.PERIOD) {
85
97
  const period = value;
86
98
  const dateFormater = new Intl.DateTimeFormat("pt-BR");
@@ -89,7 +101,7 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
89
101
  }
90
102
  else {
91
103
  if (period.start) {
92
- return `${label}: A partir de ${dateFormater.format(period.end)}`;
104
+ return `${label}: A partir de ${dateFormater.format(period.start)}`;
93
105
  }
94
106
  else {
95
107
  return `${label}: Até ${dateFormater.format(period.end)}`;
@@ -127,7 +139,8 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
127
139
  }, [0, "snk-filter-item", {
128
140
  "config": [1040],
129
141
  "getMessage": [16],
130
- "detailIsVisible": [32]
142
+ "detailIsVisible": [32],
143
+ "showUp": [64]
131
144
  }, [[2, "click", "clickListener"], [2, "mousedown", "mouseDownListener"], [0, "filterChange", "filterChangeListener"]]]);
132
145
  function defineCustomElement() {
133
146
  if (typeof customElements === "undefined") {
@@ -67,7 +67,7 @@ const SnkFilterList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
67
67
  getFilterItems() {
68
68
  const items = this.items ? ArrayUtils.applyStringFilter(this._filterArgument, this.items.filter(item => item.kind === "FILTER")) : [];
69
69
  if (items.length === 0) {
70
- return h("div", { class: "ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-items-container--empty" }, this.getMessage("snkFilterBar.emptyFilterList"));
70
+ return h("div", { class: "ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-items-container--empty" }, this.emptyText);
71
71
  }
72
72
  const hideItems = !this._filterArgument && !this._showAll && (items.length > MAX_FILTERS + 1);
73
73
  if (hideItems) {
@@ -80,7 +80,7 @@ const SnkFilterList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
80
80
  return this.items.filter(item => item.kind === "FOOTER");
81
81
  }
82
82
  render() {
83
- return (h(Host, { class: "ez-flex ez-flex--column" }, h("ez-button", { label: this.label, onClick: () => this.buttonClick(), mode: this.iconName ? "icon" : undefined, iconName: this.iconName, size: "small" }, h("slot", { name: "leftIcon" })), h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, h("div", { class: "sc-snk-filter-bar snk-filter__popover ez-padding--small", ref: elem => this._popover = elem }, h("ez-filter-input", { ref: ref => this._filterInput = ref, mode: "slim", label: this.getMessage("snkFilterBar.findFilter"), value: this._filterArgument, onEzChange: (evt) => this._filterArgument = evt.detail }), this.getFilterItems(), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), this.items ? this.getFooterItems().map(item => this.buildItemElement(item)) : undefined))));
83
+ return (h(Host, { class: "ez-flex ez-flex--column" }, h("ez-button", { class: this.buttonClass, label: this.label, onClick: () => this.buttonClick(), mode: this.iconName ? "icon" : undefined, iconName: this.iconName, size: "small" }, h("slot", { name: "leftIcon" })), h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, h("div", { class: "sc-snk-filter-bar snk-filter__popover ez-padding--small", ref: elem => this._popover = elem }, h("ez-filter-input", { ref: ref => this._filterInput = ref, mode: "slim", label: this.findFilterText, value: this._filterArgument, onEzChange: (evt) => this._filterArgument = evt.detail }), this.getFilterItems(), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), this.items ? this.getFooterItems().map(item => this.buildItemElement(item)) : undefined))));
84
84
  }
85
85
  get _element() { return this; }
86
86
  }, [4, "snk-filter-list", {
@@ -88,6 +88,9 @@ const SnkFilterList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
88
88
  "iconName": [1, "icon-name"],
89
89
  "items": [16],
90
90
  "getMessage": [16],
91
+ "emptyText": [1, "empty-text"],
92
+ "findFilterText": [1, "find-filter-text"],
93
+ "buttonClass": [1, "button-class"],
91
94
  "_filterArgument": [32],
92
95
  "_showAll": [32]
93
96
  }]);
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkFilterMultiSelect extends Components.SnkFilterMultiSelect, HTMLElement {}
4
+ export const SnkFilterMultiSelect: {
5
+ prototype: SnkFilterMultiSelect;
6
+ new (): SnkFilterMultiSelect;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,39 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { F as FilterItemType } from './filter-item-type.enum.js';
3
+
4
+ const SnkFilterMultiSelect$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.__registerHost();
8
+ }
9
+ ezChangeListener(evt) {
10
+ this.value = evt.detail.value;
11
+ }
12
+ render() {
13
+ if (!this.config || this.config.type !== FilterItemType.MULTI_SELECT) {
14
+ return undefined;
15
+ }
16
+ return (h("ez-combo-box", { label: this.config.label, value: this.config.value, options: this.config.props.options }));
17
+ }
18
+ }, [0, "snk-filter-multi-select", {
19
+ "value": [1544],
20
+ "config": [16]
21
+ }, [[0, "ezChange", "ezChangeListener"]]]);
22
+ function defineCustomElement$1() {
23
+ if (typeof customElements === "undefined") {
24
+ return;
25
+ }
26
+ const components = ["snk-filter-multi-select"];
27
+ components.forEach(tagName => { switch (tagName) {
28
+ case "snk-filter-multi-select":
29
+ if (!customElements.get(tagName)) {
30
+ customElements.define(tagName, SnkFilterMultiSelect$1);
31
+ }
32
+ break;
33
+ } });
34
+ }
35
+
36
+ const SnkFilterMultiSelect = SnkFilterMultiSelect$1;
37
+ const defineCustomElement = defineCustomElement$1;
38
+
39
+ export { SnkFilterMultiSelect, defineCustomElement };
@@ -10,10 +10,11 @@ const SnkFilterPeriod = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
10
10
  this.value = evt.detail;
11
11
  }
12
12
  render() {
13
+ var _a;
13
14
  if (!this.config || this.config.type !== FilterItemType.NUMBER) {
14
15
  return undefined;
15
16
  }
16
- return (h("ez-number-input", { label: this.config.label, value: this.config.value }));
17
+ return (h("ez-number-input", { label: this.config.label, value: this.config.value, precision: (_a = this.config.props) === null || _a === void 0 ? void 0 : _a.precision }));
17
18
  }
18
19
  }, [0, "snk-filter-number", {
19
20
  "config": [16],
@@ -34,7 +34,7 @@ const SnkFilterSearch$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
34
34
  if (!this.config || this.config.type !== FilterItemType.SEARCH) {
35
35
  return undefined;
36
36
  }
37
- return (h("ez-search", { value: this.config.value, label: this.config.label, ref: ref => this._searchInput = ref, optionLoader: ({ mode, argument }) => this.doSearch(mode, argument) }));
37
+ return (h("ez-search", { suppressEmptyOption: true, value: this.config.value, label: this.config.label, ref: ref => this._searchInput = ref, optionLoader: ({ mode, argument }) => this.doSearch(mode, argument) }));
38
38
  }
39
39
  }, [0, "snk-filter-search", {
40
40
  "config": [16],
@@ -1,5 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { a as ApplicationContext } from './index2.js';
3
+ import { T as TaskbarProcessor } from './taskbar-processor.js';
3
4
  import { d as defineCustomElement$1 } from './snk-taskbar2.js';
4
5
 
5
6
  const snkFormCss = ".sc-snk-form-h{display:block}.snk-form.sc-snk-form{position:relative;padding:var(--space--large);padding-top:var(--space--medium)}.snk-form__header.sc-snk-form{position:relative;padding-top:var(--space--medium);padding-bottom:var(--space--medium);margin-bottom:var(--space--medium)}.snk-form__header--fixed.sc-snk-form{position:sticky;top:0;background:var(--background--body);z-index:var(--more-visible, 2);padding-left:var(--space--large);padding-right:var(--space--large);margin-left:calc(var(--space--large) * -1);margin-right:calc(var(--space--large) * -1);width:calc(100% + (var(--space--large) * 2))}";
@@ -10,6 +11,10 @@ const SnkForm = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
10
11
  this.__registerHost();
11
12
  this.exit = createEvent(this, "exit", 7);
12
13
  this.actionClick = createEvent(this, "actionClick", 7);
14
+ this._taskbarProcessor = new TaskbarProcessor({
15
+ "snkForm.regular": ["PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "GRID_MODE", "INSERT"],
16
+ "snkForm.finish_edition": ["CANCEL", "SAVE"]
17
+ });
13
18
  }
14
19
  getFormConfig() {
15
20
  return (this._dataState && this._dataState.insertionMode ? this._insertionFormConfig : this._editionFormConfig);
@@ -100,11 +105,24 @@ const SnkForm = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
100
105
  parent = parent.parentElement;
101
106
  }
102
107
  }
108
+ componentWillRender() {
109
+ var _a;
110
+ const taskbarId = ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkForm.finish_edition" : "snkForm.regular";
111
+ const disabledButtons = [];
112
+ if (!this._dataState || !this._dataState.hasPrevious) {
113
+ disabledButtons.push("PREVIOUS");
114
+ }
115
+ if (!this._dataState || !this._dataState.hasNext) {
116
+ disabledButtons.push("NEXT");
117
+ }
118
+ this._taskbarProcessor.process(taskbarId, this.taskbarManager, this._dataState, disabledButtons);
119
+ }
103
120
  render() {
121
+ var _a;
104
122
  if (!this._configLoaded || !this._dataUnit || !this._dataState) {
105
123
  return undefined;
106
124
  }
107
- return (h("section", { class: "snk-form" }, h("div", { class: "snk-form__header snk-form__header--fixed ez-row" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6", key: "formHeader" }, h("ez-button", { title: this.getMessage("snkForm.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small", onClick: () => this.exitForm() }), h("h1", { class: "ez-title ez-title--primary ez-title--xlarge ez-align--middle" }, this.getMessage("snkForm.title"))), h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-align--right" }, h("snk-taskbar", { key: "formTaskbar", buttons: this._dataState.isDirty ? "CANCEL,SAVE" : "PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,INSERT", primaryButton: this._dataState.isDirty ? "SAVE" : "INSERT", disabledButtons: this.getDisabledButtons(), actionsList: this.actionsList, dataUnit: this._dataUnit }))), h("section", null, h("div", { class: "ez-row" }, h("div", { class: "ez-col ez-col--sd-12" }, h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, dataUnit: this._dataUnit, config: this.getFormConfig(), recordsValidator: this.recordsValidator }))))));
125
+ return (h("section", { class: "snk-form" }, h("div", { class: "snk-form__header snk-form__header--fixed ez-row" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6", key: "formHeader" }, h("ez-button", { title: this.getMessage("snkForm.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small", onClick: () => this.exitForm() }), h("h1", { class: "ez-title ez-title--primary ez-title--xlarge ez-align--middle" }, this.getMessage("snkForm.title"))), h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-align--right" }, h("snk-taskbar", { key: "formTaskbar", buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.actionsList, primaryButton: ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", dataUnit: this._dataUnit }))), h("section", null, h("div", { class: "ez-row" }, h("div", { class: "ez-col ez-col--sd-12" }, h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, dataUnit: this._dataUnit, config: this.getFormConfig(), recordsValidator: this.recordsValidator }))))));
108
126
  }
109
127
  get _element() { return this; }
110
128
  static get style() { return snkFormCss; }
@@ -112,6 +130,7 @@ const SnkForm = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
112
130
  "configName": [1, "config-name"],
113
131
  "recordsValidator": [16],
114
132
  "actionsList": [16],
133
+ "taskbarManager": [16],
115
134
  "_dataUnit": [32],
116
135
  "_configLoaded": [32],
117
136
  "_dataState": [32],
@@ -1,6 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { a as ApplicationContext } from './index2.js';
3
3
  import { T as TaskbarElement, d as defineCustomElement$1 } from './snk-taskbar2.js';
4
+ import { T as TaskbarProcessor } from './taskbar-processor.js';
4
5
  import { d as defineCustomElement$5 } from './snk-filter-bar2.js';
5
6
  import { d as defineCustomElement$4 } from './snk-filter-detail2.js';
6
7
  import { d as defineCustomElement$3 } from './snk-filter-item2.js';
@@ -14,9 +15,13 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14
15
  this.__registerHost();
15
16
  this.actionClick = createEvent(this, "actionClick", 7);
16
17
  this.gridDoubleClick = createEvent(this, "gridDoubleClick", 7);
17
- }
18
- getHeaderButtons() {
19
- return this._dataState && this._dataState.selectedRecords.length > 0 ? "UPDATE,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,REFRESH" : "REFRESH";
18
+ this._topTaskbarProcessor = new TaskbarProcessor({
19
+ "snkGridTopTaskbar": ["FORM_MODE", "CONFIG_GRID", "INSERT"]
20
+ });
21
+ this._headerTaskbarProcessor = new TaskbarProcessor({
22
+ "snkGridHeaderTaskbar.unselected": ["REFRESH"],
23
+ "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
24
+ });
20
25
  }
21
26
  actionClickHandler(evt) {
22
27
  if (evt.detail === TaskbarElement.CONFIG_GRID && this._grid) {
@@ -57,17 +62,23 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
57
62
  parent = parent.parentElement;
58
63
  }
59
64
  }
65
+ componentWillRender() {
66
+ const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
67
+ this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState);
68
+ this._topTaskbarProcessor.process("snkGridTopTaskbar", this.taskbarManager, this._dataState);
69
+ }
60
70
  render() {
61
71
  if (!this._configLoaded || !this._dataUnit) {
62
72
  return undefined;
63
73
  }
64
- return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium" }, h("snk-filter-bar", { class: "snk-grid__filter-bar ez-align--top" }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" })), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" }))));
74
+ return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium" }, h("snk-filter-bar", { class: "snk-grid__filter-bar ez-align--top" }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" }))));
65
75
  }
66
76
  get _element() { return this; }
67
77
  static get style() { return snkGridCss; }
68
78
  }, [6, "snk-grid", {
69
79
  "configName": [1, "config-name"],
70
80
  "actionsList": [16],
81
+ "taskbarManager": [16],
71
82
  "_dataUnit": [32],
72
83
  "_configLoaded": [32],
73
84
  "_dataState": [32],