@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-72074.0 → 0.0.0-bugfix-dev-kb-74339.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 (60) hide show
  1. package/dist/cjs/index-f9e81701.js +8 -28
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/{snk-form-config.cjs.entry.js → snk-config-options_3.cjs.entry.js} +363 -1
  5. package/dist/cjs/{snk-filter-bar.cjs.entry.js → snk-filter-bar_4.cjs.entry.js} +685 -0
  6. package/dist/collection/collection-manifest.json +11 -31
  7. package/dist/collection/sw.js +46 -0
  8. package/dist/esm/{SnkFormConfigManager-139f09fa.js → SnkFormConfigManager-f1a0fc92.js} +1 -1
  9. package/dist/esm/{constants-8457af36.js → constants-7302ee87.js} +1 -1
  10. package/dist/esm/index-a7d3d3f1.js +8 -28
  11. package/dist/esm/loader.js +1 -1
  12. package/dist/esm/sankhyablocks.js +1 -1
  13. package/dist/esm/snk-actions-button_4.entry.js +1 -1
  14. package/dist/esm/snk-attach.entry.js +1 -1
  15. package/dist/esm/{snk-form-config.entry.js → snk-config-options_3.entry.js} +364 -4
  16. package/dist/esm/snk-configurator.entry.js +1 -1
  17. package/dist/esm/snk-crud.entry.js +1 -1
  18. package/dist/esm/snk-data-exporter.entry.js +1 -1
  19. package/dist/esm/snk-detail-view.entry.js +3 -3
  20. package/dist/esm/snk-field-config.entry.js +1 -1
  21. package/dist/esm/{snk-filter-bar.entry.js → snk-filter-bar_4.entry.js} +684 -2
  22. package/dist/esm/{snk-guides-viewer-8934c537.js → snk-guides-viewer-8fa1321a.js} +2 -2
  23. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  24. package/dist/esm/snk-simple-crud.entry.js +2 -2
  25. package/dist/esm/snk-tab-config.entry.js +1 -1
  26. package/dist/sankhyablocks/p-052213ba.entry.js +1 -0
  27. package/dist/sankhyablocks/{p-8eb67fa4.entry.js → p-2d3f9482.entry.js} +1 -1
  28. package/dist/sankhyablocks/{p-be5d8fcb.entry.js → p-2ef45894.entry.js} +1 -1
  29. package/dist/sankhyablocks/{p-7663f597.entry.js → p-41793e17.entry.js} +1 -1
  30. package/dist/sankhyablocks/{p-92eadb1c.entry.js → p-42288374.entry.js} +1 -1
  31. package/dist/sankhyablocks/{p-430e4d3c.entry.js → p-49b01ec2.entry.js} +1 -1
  32. package/dist/sankhyablocks/{p-01086ff7.entry.js → p-7281cdab.entry.js} +1 -1
  33. package/dist/sankhyablocks/{p-95df461f.entry.js → p-8b4fc28f.entry.js} +1 -1
  34. package/dist/sankhyablocks/{p-eb9f0407.entry.js → p-8dfc2ba9.entry.js} +1 -1
  35. package/dist/sankhyablocks/{p-b0ef4383.js → p-95ce311a.js} +1 -1
  36. package/dist/sankhyablocks/p-ab05d5f2.entry.js +1 -0
  37. package/dist/sankhyablocks/{p-dcead955.entry.js → p-c2e4ac99.entry.js} +1 -1
  38. package/dist/sankhyablocks/{p-16869f77.js → p-ee7023c4.js} +1 -1
  39. package/dist/sankhyablocks/p-fa6c5826.entry.js +1 -0
  40. package/dist/sankhyablocks/{p-afbb070d.js → p-fadc8339.js} +1 -1
  41. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  42. package/package.json +3 -2
  43. package/dist/cjs/snk-config-options.cjs.entry.js +0 -239
  44. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -312
  45. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -152
  46. package/dist/cjs/snk-filter-modal.cjs.entry.js +0 -249
  47. package/dist/cjs/snk-form.cjs.entry.js +0 -144
  48. package/dist/esm/snk-config-options.entry.js +0 -235
  49. package/dist/esm/snk-filter-item.entry.js +0 -308
  50. package/dist/esm/snk-filter-list.entry.js +0 -148
  51. package/dist/esm/snk-filter-modal.entry.js +0 -245
  52. package/dist/esm/snk-form.entry.js +0 -140
  53. package/dist/sankhyablocks/p-3b60db06.entry.js +0 -1
  54. package/dist/sankhyablocks/p-49f1c9be.entry.js +0 -1
  55. package/dist/sankhyablocks/p-60b29483.entry.js +0 -1
  56. package/dist/sankhyablocks/p-70a4af56.entry.js +0 -1
  57. package/dist/sankhyablocks/p-b9679243.entry.js +0 -1
  58. package/dist/sankhyablocks/p-d3f53df2.entry.js +0 -1
  59. package/dist/sankhyablocks/p-e8763234.entry.js +0 -1
  60. package/dist/sankhyablocks/p-feba9d4b.entry.js +0 -1
@@ -1,312 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-f9e81701.js');
6
- const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
- const filterNumberVariation = require('./filterNumberVariation-d65332da.js');
9
-
10
- const SnkFilterItem = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.visibleChanged = index.createEvent(this, "visibleChanged", 7);
14
- this.filterChange = index.createEvent(this, "filterChange", 3);
15
- this.innerClickCheck = (_floatingContainer, node) => {
16
- if (node.id != core.FloatingManager.MODAL_ELEMENT_ID) {
17
- return true;
18
- }
19
- this.detailIsVisible = false;
20
- return false;
21
- };
22
- this.detailIsVisible = undefined;
23
- this.config = undefined;
24
- this.getMessage = undefined;
25
- this.showChips = true;
26
- }
27
- observeDetailIsVisible(value) {
28
- this.visibleChanged.emit(value);
29
- }
30
- /**
31
- * Exibe os detalhes de um item da lista.
32
- */
33
- async showUp(open = false) {
34
- return new Promise(resolve => {
35
- this._filterItemElement.scrollIntoView({ behavior: "auto", block: "nearest", inline: "nearest" });
36
- if (open) {
37
- this._closeCallback = resolve;
38
- window.requestAnimationFrame(() => {
39
- this._floatingID = core.FloatingManager.float(this._popover, this._popoverContainer, this.getFloatOptions());
40
- this._popover.show();
41
- this.detailIsVisible = true;
42
- });
43
- }
44
- });
45
- }
46
- updatePosition() {
47
- if (this._floatingID == undefined) {
48
- return;
49
- }
50
- core.FloatingManager.updateFloatPosition(this._popover, this._popoverContainer, this.getFloatOptions());
51
- }
52
- getFloatOptions() {
53
- return {
54
- autoClose: true,
55
- innerClickTest: this.innerClickCheck,
56
- backClickListener: () => this.onDetailCloseCallback(),
57
- left: this.getOffsetLeft(),
58
- top: this.getOffsetTop(),
59
- useOverlay: true,
60
- overlayClassName: 'ez-scrim ez-scrim--light',
61
- isFixed: true
62
- };
63
- }
64
- getOffsetLeft() {
65
- const padding = getComputedStyle(this._filterItemElement).getPropertyValue("padding-left");
66
- const rect = this._filterItemElement.getBoundingClientRect();
67
- // Width baseado no conteudo do snk-filter-detail. Nesse momento ele retorna 0px pois ainda não foi criado em tela.
68
- const filterDetailWidth = 430;
69
- const adjustRightPosition = filterDetailWidth - (document.body.clientWidth - rect.left);
70
- return `calc(${rect.x}px + ${padding} - ${adjustRightPosition > 0 ? adjustRightPosition : 0}px)`;
71
- }
72
- getOffsetTop() {
73
- const rect = this._filterItemElement.getBoundingClientRect();
74
- return (rect.y + rect.height) + "px";
75
- }
76
- controlScrollPage() {
77
- window.removeEventListener("scroll", this.updatePosition.bind(this));
78
- window.addEventListener("scroll", this.updatePosition.bind(this));
79
- }
80
- getConfigChanges() {
81
- var _a;
82
- const configToBeCleared = this.config;
83
- if (!!((_a = configToBeCleared.groupedItems) === null || _a === void 0 ? void 0 : _a.length)) {
84
- configToBeCleared.visible = false;
85
- configToBeCleared.groupedItems = configToBeCleared.groupedItems.map(item => (Object.assign(Object.assign({}, item), { visible: false })));
86
- }
87
- const hasMultiValues = configToBeCleared.type === filterItemType_enum.FilterItemType.MULTI_LIST && Array.isArray(configToBeCleared.value);
88
- const newValue = hasMultiValues ? configToBeCleared.value.map((valueItem) => (Object.assign(Object.assign({}, valueItem), { check: false }))) : undefined;
89
- return Object.assign(Object.assign({}, configToBeCleared), { value: newValue });
90
- }
91
- /**
92
- * Oculta os detalhes de um item da lista.
93
- */
94
- async hideDetail() {
95
- if (this.detailIsVisible) {
96
- if (this._floatingID != undefined) {
97
- core.FloatingManager.close(this._floatingID);
98
- }
99
- }
100
- }
101
- onDetailCloseCallback() {
102
- this._floatingID = undefined;
103
- this.detailIsVisible = false;
104
- if (this._closeCallback) {
105
- this._closeCallback();
106
- this._closeCallback = undefined;
107
- }
108
- }
109
- //---------------------------------------------
110
- // Event handlers
111
- //---------------------------------------------
112
- clickListener(evt) {
113
- if ([this._chipElement, this._leftIconElement, this._rightIconElement].includes(evt.target)) {
114
- if (evt.target === this._rightIconElement && this.canClearFilter()) {
115
- const configChanged = this.getConfigChanges();
116
- this.filterChange.emit(configChanged);
117
- }
118
- else {
119
- if (this.detailIsVisible) {
120
- this.hideDetail();
121
- }
122
- else {
123
- this.showUp(true);
124
- }
125
- }
126
- evt.preventDefault();
127
- evt.stopImmediatePropagation();
128
- evt.stopPropagation();
129
- }
130
- }
131
- mouseDownListener(evt) {
132
- if (this.detailIsVisible && [this._chipElement, this._leftIconElement, this._rightIconElement].includes(evt.target)) {
133
- evt.preventDefault();
134
- evt.stopImmediatePropagation();
135
- evt.stopPropagation();
136
- }
137
- }
138
- getLabel(isTooltipLabel = false) {
139
- var _a, _b;
140
- const { type, value, label, props, groupedItems = [] } = this.config;
141
- if (value || groupedItems.length) {
142
- if (type === filterItemType_enum.FilterItemType.BINARY_SELECT) {
143
- const [optOne, optTwo] = props.options;
144
- const tooltip = this.getMessage('snkFilterBar.binarySelectTooltip');
145
- if (optOne.name === value) {
146
- return isTooltipLabel ? `${tooltip} ${String(optOne.label).toLowerCase()}` : optOne.label;
147
- }
148
- if (optTwo.name === value) {
149
- return isTooltipLabel ? `${tooltip} ${String(optTwo.label).toLowerCase()}` : optTwo.label;
150
- }
151
- }
152
- if (type === filterItemType_enum.FilterItemType.MULTI_SELECT) {
153
- const opt = props.options.find(opt => opt.value === value);
154
- return `${label}: ${opt.label}`;
155
- }
156
- if (type === filterItemType_enum.FilterItemType.PERIOD) {
157
- let { end, start } = value;
158
- if (typeof end === "string") {
159
- end = new Date(end);
160
- end.setMinutes(end.getMinutes() + end.getTimezoneOffset());
161
- }
162
- if (typeof start === "string") {
163
- start = new Date(start);
164
- start.setMinutes(start.getMinutes() + start.getTimezoneOffset());
165
- }
166
- const dateFormater = new Intl.DateTimeFormat("pt-BR");
167
- if (end && start) {
168
- const isSameYear = start.getFullYear() === end.getFullYear();
169
- const formatOptions = Object.assign({ day: '2-digit', month: '2-digit' }, ((!isSameYear || isTooltipLabel) && { year: '2-digit' }));
170
- const startLabel = core.DateUtils.formatDate(start, formatOptions);
171
- const endLabel = core.DateUtils.formatDate(end, formatOptions);
172
- if (isTooltipLabel) {
173
- return this.getMessage('snkFilterBar.fullPeriodTooltip', { LABEL: label, START_LABEL: startLabel, END_LABEL: endLabel });
174
- }
175
- return `${label}: ${startLabel} \u2192 ${endLabel}`;
176
- }
177
- else {
178
- if (start) {
179
- return `${label}: ${this.getMessage('snkFilterBar.onlyStartToltip')} ${dateFormater.format(start)}`;
180
- }
181
- else if (end) {
182
- return `${label}: ${this.getMessage('snkFilterBar.onlyEndToltip')} ${dateFormater.format(end)}`;
183
- }
184
- else {
185
- return label;
186
- }
187
- }
188
- }
189
- if (type === filterItemType_enum.FilterItemType.SEARCH) {
190
- return `${label}: ${value.value} - ${value.label}`;
191
- }
192
- if (type === filterItemType_enum.FilterItemType.PERSONALIZED) {
193
- const activeCount = this.calculateActiveCount(groupedItems);
194
- if (activeCount <= 0)
195
- return label;
196
- return `${label}: ${this.getMessage('snkFilterBar.personalizedCount', { activeCount })}`;
197
- }
198
- if (type === filterItemType_enum.FilterItemType.MULTI_LIST) {
199
- const selectedOptions = ((_a = value.elements) !== null && _a !== void 0 ? _a : value).filter(item => item === null || item === void 0 ? void 0 : item.check);
200
- return this.getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel);
201
- }
202
- if (type === filterItemType_enum.FilterItemType.CHECK_BOX_LIST) {
203
- const selectedValues = Object.entries(value !== null && value !== void 0 ? value : {})
204
- .filter(([_, value]) => value === true)
205
- .map(([key, _]) => key);
206
- const options = (_b = props.options) !== null && _b !== void 0 ? _b : [];
207
- const selectedOptions = options.filter(option => selectedValues.includes(option.name));
208
- return this.getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel);
209
- }
210
- if (type === filterItemType_enum.FilterItemType.NUMBER && props.variation === filterNumberVariation.FilterNumberVariation.INTERVAL) {
211
- const { start, end } = value;
212
- if (start && end) {
213
- return this.getMessage('snkFilterBar.fullIntervalTooltip', { LABEL: label, START_LABEL: start, END_LABEL: end });
214
- }
215
- if (start) {
216
- return `${label}: ${this.getMessage('snkFilterBar.onlyStartToltip')} ${Number(start)}`;
217
- }
218
- if (end) {
219
- return `${label}: ${this.getMessage('snkFilterBar.onlyEndToltip')} ${Number(end)}`;
220
- }
221
- }
222
- return `${label}: ${value}`;
223
- }
224
- return label;
225
- }
226
- getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel) {
227
- const checkedAmount = selectedOptions.length;
228
- if (checkedAmount === 0) {
229
- return `${label}`;
230
- }
231
- if (checkedAmount > 1) {
232
- if (isTooltipLabel) {
233
- const selectedOptionsDescrptions = selectedOptions.map(item => item.label);
234
- return `${label}: ${selectedOptionsDescrptions.join(',')}`;
235
- }
236
- return `${label}: ${checkedAmount} ${this.getMessage('snkFilterBar.multiListToltip')}`;
237
- }
238
- return `${label}: ${selectedOptions[0].label}`;
239
- }
240
- calculateActiveCount(groupedItems) {
241
- return groupedItems.reduce((total, item) => {
242
- if (!!item.visible)
243
- return total + 1;
244
- return total;
245
- }, 0);
246
- }
247
- componentDidLoad() {
248
- if (this._filterItemElement) {
249
- core.ElementIDUtils.addIDInfo(this._filterItemElement);
250
- this._idSnkFilterDetail = `filterDetail_${this.config.id}`;
251
- }
252
- this.controlScrollPage();
253
- }
254
- componentDidRender() {
255
- if (this._floatingID == undefined) {
256
- if (this._popover) {
257
- this._popover.remove();
258
- }
259
- }
260
- }
261
- /**
262
- * Emitido quando o estado do filtro é alterado.
263
- */
264
- filterChangeListener() {
265
- this.hideDetail();
266
- }
267
- canClearFilter() {
268
- const { value, groupedItems = [] } = this.config;
269
- if (value != undefined && this.config.type === filterItemType_enum.FilterItemType.MULTI_LIST) {
270
- return value.some((item) => item.check);
271
- }
272
- return value !== undefined || groupedItems.some(item => item.visible);
273
- }
274
- getRightIconName() {
275
- if (this.canClearFilter())
276
- return "close";
277
- return this.detailIsVisible ? "chevron-up" : "chevron-down";
278
- }
279
- getLeftIconName() {
280
- switch (this.config.type) {
281
- case filterItemType_enum.FilterItemType.PERIOD:
282
- return "calendar";
283
- case filterItemType_enum.FilterItemType.PERSONALIZED:
284
- return "tune";
285
- }
286
- return undefined;
287
- }
288
- hasActiveElements(value) {
289
- var _a, _b, _c;
290
- 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;
291
- }
292
- hasActiveValue(config) {
293
- return (config.type !== filterItemType_enum.FilterItemType.MULTI_LIST && config.value !== undefined) || this.hasActiveElements(config.value);
294
- }
295
- getEnabledChip() {
296
- if (this.config.type === filterItemType_enum.FilterItemType.PERSONALIZED) {
297
- const { groupedItems = [] } = this.config;
298
- return groupedItems.some(item => item.visible);
299
- }
300
- return this.hasActiveValue(this.config);
301
- }
302
- render() {
303
- const leftIcon = this.getLeftIconName();
304
- return (index.h(index.Host, null, this.showChips && (index.h("ez-chip", { id: this.config.id, ref: ref => this._chipElement = ref, label: this.getLabel(), value: this.getEnabledChip() }, leftIcon && (index.h("ez-icon", { ref: ref => this._leftIconElement = ref, iconName: leftIcon, class: "ez-padding-right--small", slot: "leftIcon" })), index.h("ez-icon", { ref: ref => this._rightIconElement = ref, iconName: this.getRightIconName(), class: "ez-padding-left--small", slot: "rightIcon", id: "removeFilter" }))), index.h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, index.h("snk-filter-detail", { config: this.config, getMessage: this.getMessage, class: "sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--16", ref: elem => this._popover = elem, key: this.config.id, "data-element-id": this._idSnkFilterDetail, showHardFixed: this.showChips }))));
305
- }
306
- get _filterItemElement() { return index.getElement(this); }
307
- static get watchers() { return {
308
- "detailIsVisible": ["observeDetailIsVisible"]
309
- }; }
310
- };
311
-
312
- exports.snk_filter_item = SnkFilterItem;
@@ -1,152 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-f9e81701.js');
6
- const core = require('@sankhyalabs/core');
7
-
8
- const SHOW_MORE_ITEM_NAME = "__SHOWMORE__";
9
- const MAX_FILTERS = 5;
10
- const SnkFilterList = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.snkItemSelected = index.createEvent(this, "snkItemSelected", 7);
14
- this._preselection = -1;
15
- this.innerClickCheck = (_floatingContainer, node) => {
16
- if (node.id != core.FloatingManager.MODAL_ELEMENT_ID) {
17
- return true;
18
- }
19
- this._detailIsVisible = false;
20
- return false;
21
- };
22
- this._filterArgument = undefined;
23
- this._showAll = undefined;
24
- this.label = undefined;
25
- this.iconName = undefined;
26
- this.items = undefined;
27
- this.getMessage = undefined;
28
- this.emptyText = undefined;
29
- this.findFilterText = undefined;
30
- this.buttonClass = undefined;
31
- }
32
- showDetail() {
33
- this._preselection = -1;
34
- this._floatingID = core.FloatingManager.float(this._popover, this._popoverContainer, {
35
- autoClose: true,
36
- innerClickTest: this.innerClickCheck,
37
- backClickListener: () => this.onListCloseCallback(),
38
- useOverlay: true
39
- });
40
- this._detailIsVisible = true;
41
- this._showAll = false;
42
- this._filterArgument = "";
43
- this._filterInput.setFocus();
44
- }
45
- /**
46
- * Oculta os detalhes do componente snk-filter-list.
47
- */
48
- async hideDetail() {
49
- if (this._floatingID != undefined) {
50
- core.FloatingManager.close(this._floatingID);
51
- }
52
- }
53
- onListCloseCallback() {
54
- this._floatingID = undefined;
55
- this._detailIsVisible = false;
56
- }
57
- buttonClick() {
58
- if (this._detailIsVisible) {
59
- this.hideDetail();
60
- }
61
- else {
62
- this.showDetail();
63
- }
64
- }
65
- componentDidLoad() {
66
- if (this._element) {
67
- core.ElementIDUtils.addIDInfo(this._element);
68
- }
69
- }
70
- componentDidRender() {
71
- if (this._floatingID == undefined) {
72
- if (this._popover) {
73
- this._popover.remove();
74
- }
75
- }
76
- }
77
- buildIdElement(buttonElement, name) {
78
- if (!buttonElement)
79
- return;
80
- const dataElement = { id: name };
81
- buttonElement.removeAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
82
- core.ElementIDUtils.addIDInfoIfNotExists(buttonElement, "filterItemList", dataElement);
83
- }
84
- buildItemElement(item) {
85
- const itemId = ++this._selectableItemsCount;
86
- return (index.h("button", { ref: elem => elem && this.buildIdElement(elem, item.label), id: `filter-item${itemId}`, onFocusin: () => this._preselection = itemId, class: `ez-col ez-col--sd-12 ez-align--middle ez-padding--small sc-snk-filter-bar snk-filter-bar__filter-list-item`, onClick: () => this.itemSelected(item.name), name: item.label, key: itemId }, item.iconName ? index.h("ez-icon", { iconName: item.iconName, size: "small", class: `ez-padding-right--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__icon ${item.iconClass || ""}` }) : undefined, index.h("div", { class: `ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__label ${item.labelClass || ""}` }, item.label)));
87
- }
88
- itemSelected(itemName) {
89
- if (itemName === SHOW_MORE_ITEM_NAME) {
90
- this._showAll = true;
91
- }
92
- else {
93
- this.hideDetail();
94
- this.snkItemSelected.emit(itemName);
95
- }
96
- }
97
- getFilterItems() {
98
- const items = this.items ? core.ArrayUtils.applyStringFilter(this._filterArgument, this.items.filter(item => item.kind === "FILTER")) : [];
99
- if (items.length === 0) {
100
- return index.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);
101
- }
102
- const hideItems = !this._filterArgument && !this._showAll && (items.length > MAX_FILTERS + 1);
103
- if (hideItems) {
104
- items.splice(MAX_FILTERS);
105
- items.push({ kind: "INTERNAL", label: "Mostrar mais", iconName: "dots-horizontal", name: SHOW_MORE_ITEM_NAME, iconClass: "snk-filter-bar__filter-list-item__icon--secondary", labelClass: "snk-filter-bar__filter-list-item__label--secondary" });
106
- }
107
- this._selectableItemsCount = 0;
108
- return index.h("div", { class: "sc-snk-filter-bar snk-filter-bar__filter-list-items-container" }, items.map(item => this.buildItemElement(item)));
109
- }
110
- getFooterItems() {
111
- return this.items.filter(item => item.kind === "FOOTER");
112
- }
113
- keyDownHandler(event) {
114
- switch (event.key) {
115
- case "ArrowDown":
116
- this.changePreselection(this._preselection + 1);
117
- //Paramos a propagação do evento para evitar scroll indesejado
118
- event.stopImmediatePropagation();
119
- event.stopPropagation();
120
- event.preventDefault();
121
- break;
122
- case "ArrowUp":
123
- this.changePreselection(this._preselection - 1);
124
- //Paramos a propagação do evento para evitar scroll indesejado
125
- event.stopImmediatePropagation();
126
- event.stopPropagation();
127
- event.preventDefault();
128
- break;
129
- }
130
- }
131
- changePreselection(newSelection) {
132
- if (newSelection < 0) {
133
- newSelection = this._selectableItemsCount;
134
- }
135
- this._preselection = newSelection > this._selectableItemsCount ? 0 : newSelection;
136
- if (this._preselection === 0) {
137
- this._filterInput.setFocus();
138
- }
139
- else {
140
- const item = this._element.querySelector(`#filter-item${this._preselection}`);
141
- if (item) {
142
- item.focus();
143
- }
144
- }
145
- }
146
- render() {
147
- return (index.h(index.Host, { class: "ez-flex ez-flex--column" }, index.h("ez-button", { class: this.buttonClass, label: this.label, onClick: () => this.buttonClick(), mode: this.iconName ? "icon" : undefined, iconName: this.iconName, size: "small" }, index.h("slot", { name: "leftIcon" })), index.h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, index.h("div", { class: "sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--4", ref: elem => this._popover = elem }, index.h("ez-filter-input", { ref: ref => this._filterInput = ref, "data-element-id": "serachFilters", mode: "slim", label: this.findFilterText, value: this._filterArgument, onEzChange: (evt) => this._filterArgument = evt.detail, onFocus: () => this._preselection = 0 }), this.getFilterItems(), index.h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), this.items ? this.getFooterItems().map(item => this.buildItemElement(item)) : undefined))));
148
- }
149
- get _element() { return index.getElement(this); }
150
- };
151
-
152
- exports.snk_filter_list = SnkFilterList;