@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-72074.0 → 0.0.0-bugfix-dev-KB-74246.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 (138) hide show
  1. package/dist/cjs/{ConfigStorage-ecc0ed20.js → ConfigStorage-f079f5fd.js} +2 -2
  2. package/dist/cjs/{ContinuousInsertUtils-29b65619.js → ContinuousInsertUtils-64e47516.js} +29 -20
  3. package/dist/cjs/{DataFetcher-cadeef8e.js → DataFetcher-e059eb72.js} +7 -5
  4. package/dist/cjs/{SnkFormConfigManager-f1c92f79.js → SnkFormConfigManager-bff848f1.js} +5 -5
  5. package/dist/cjs/{auth-fetcher-d68841bc.js → auth-fetcher-4f853233.js} +1 -1
  6. package/dist/cjs/{dataunit-fetcher-f89461c1.js → dataunit-fetcher-228016f4.js} +3 -3
  7. package/dist/cjs/{form-config-fetcher-ed497282.js → form-config-fetcher-39397ac5.js} +1 -1
  8. package/dist/cjs/index-f9e81701.js +8 -28
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{pesquisa-fetcher-ca89181c.js → pesquisa-fetcher-a9bfeb22.js} +7 -2
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/snk-actions-button_4.cjs.entry.js +5 -5
  13. package/dist/cjs/snk-application.cjs.entry.js +101 -59
  14. package/dist/cjs/snk-attach.cjs.entry.js +5 -5
  15. package/dist/cjs/{snk-form-config.cjs.entry.js → snk-config-options_3.cjs.entry.js} +365 -3
  16. package/dist/cjs/snk-crud.cjs.entry.js +5 -5
  17. package/dist/cjs/snk-data-exporter.cjs.entry.js +5 -5
  18. package/dist/cjs/{snk-data-unit-668dc5e8.js → snk-data-unit-3d4d0e2a.js} +1 -1
  19. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
  20. package/dist/cjs/snk-detail-view.cjs.entry.js +7 -7
  21. package/dist/cjs/{snk-filter-bar.cjs.entry.js → snk-filter-bar_4.cjs.entry.js} +688 -3
  22. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-grid.cjs.entry.js +6 -6
  24. package/dist/cjs/{snk-guides-viewer-4236cb9d.js → snk-guides-viewer-2b44c804.js} +8 -5
  25. package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -7
  26. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  27. package/dist/cjs/snk-simple-crud.cjs.entry.js +10 -8
  28. package/dist/collection/collection-manifest.json +11 -31
  29. package/dist/collection/components/snk-application/request-listener/DebouncedRequestListener.js +28 -0
  30. package/dist/collection/components/snk-application/request-listener/RequestListenerFactory.js +16 -0
  31. package/dist/collection/components/snk-application/request-listener/RequestListenerLoadingBar.js +52 -0
  32. package/dist/collection/components/snk-application/snk-application.js +3 -53
  33. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +3 -0
  34. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +3 -3
  35. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +3 -1
  36. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +8 -6
  37. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +2 -2
  38. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +6 -1
  39. package/dist/collection/lib/utils/CrudUtils.js +25 -16
  40. package/dist/collection/sw.js +46 -0
  41. package/dist/components/ContinuousInsertUtils.js +25 -16
  42. package/dist/components/DataFetcher.js +7 -5
  43. package/dist/components/SnkFormConfigManager.js +3 -3
  44. package/dist/components/dataunit-fetcher.js +2 -2
  45. package/dist/components/pesquisa-fetcher.js +6 -1
  46. package/dist/components/snk-application2.js +95 -53
  47. package/dist/components/snk-detail-view2.js +3 -0
  48. package/dist/components/snk-simple-crud2.js +3 -1
  49. package/dist/esm/{ConfigStorage-7b36d041.js → ConfigStorage-6514d66e.js} +2 -2
  50. package/dist/esm/{ContinuousInsertUtils-30caa626.js → ContinuousInsertUtils-b62906f9.js} +29 -20
  51. package/dist/esm/{DataFetcher-a9c598f2.js → DataFetcher-5034df59.js} +7 -5
  52. package/dist/esm/{SnkFormConfigManager-139f09fa.js → SnkFormConfigManager-f0532f7d.js} +6 -6
  53. package/dist/esm/{auth-fetcher-749d880f.js → auth-fetcher-ca5d3a49.js} +1 -1
  54. package/dist/esm/{constants-8457af36.js → constants-7302ee87.js} +1 -1
  55. package/dist/esm/{dataunit-fetcher-c24c76c6.js → dataunit-fetcher-56cb648b.js} +3 -3
  56. package/dist/esm/{form-config-fetcher-adbe5d34.js → form-config-fetcher-a7d3e277.js} +1 -1
  57. package/dist/esm/index-a7d3d3f1.js +8 -28
  58. package/dist/esm/loader.js +1 -1
  59. package/dist/esm/{pesquisa-fetcher-8edaa8cd.js → pesquisa-fetcher-6bc2e41a.js} +7 -2
  60. package/dist/esm/sankhyablocks.js +1 -1
  61. package/dist/esm/snk-actions-button_4.entry.js +6 -6
  62. package/dist/esm/snk-application.entry.js +101 -59
  63. package/dist/esm/snk-attach.entry.js +6 -6
  64. package/dist/esm/{snk-form-config.entry.js → snk-config-options_3.entry.js} +366 -6
  65. package/dist/esm/snk-configurator.entry.js +1 -1
  66. package/dist/esm/snk-crud.entry.js +6 -6
  67. package/dist/esm/snk-data-exporter.entry.js +6 -6
  68. package/dist/esm/{snk-data-unit-0fdfb6c2.js → snk-data-unit-618e0b80.js} +1 -1
  69. package/dist/esm/snk-data-unit.entry.js +3 -3
  70. package/dist/esm/snk-detail-view.entry.js +8 -8
  71. package/dist/esm/snk-field-config.entry.js +1 -1
  72. package/dist/esm/{snk-filter-bar.entry.js → snk-filter-bar_4.entry.js} +687 -5
  73. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  74. package/dist/esm/snk-grid.entry.js +6 -6
  75. package/dist/esm/{snk-guides-viewer-8934c537.js → snk-guides-viewer-15c916a3.js} +9 -6
  76. package/dist/esm/snk-guides-viewer.entry.js +8 -8
  77. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  78. package/dist/esm/snk-simple-crud.entry.js +11 -9
  79. package/dist/esm/snk-tab-config.entry.js +1 -1
  80. package/dist/sankhyablocks/{p-f3434fc4.js → p-00278e07.js} +1 -1
  81. package/dist/sankhyablocks/{p-06421fdb.js → p-126c58ea.js} +1 -1
  82. package/dist/sankhyablocks/{p-a75d242d.entry.js → p-1dbd5c18.entry.js} +1 -1
  83. package/dist/sankhyablocks/{p-8eb67fa4.entry.js → p-2d3f9482.entry.js} +1 -1
  84. package/dist/sankhyablocks/{p-1bf06cd3.js → p-341465ce.js} +2 -2
  85. package/dist/sankhyablocks/p-3858a2e4.entry.js +1 -0
  86. package/dist/sankhyablocks/{p-7663f597.entry.js → p-41793e17.entry.js} +1 -1
  87. package/dist/sankhyablocks/{p-7ac7932c.js → p-47d24ac8.js} +2 -2
  88. package/dist/sankhyablocks/{p-eb9f0407.entry.js → p-563b7c28.entry.js} +1 -1
  89. package/dist/sankhyablocks/{p-95df461f.entry.js → p-8b4fc28f.entry.js} +1 -1
  90. package/dist/sankhyablocks/{p-b0ef4383.js → p-95ce311a.js} +1 -1
  91. package/dist/sankhyablocks/{p-430e4d3c.entry.js → p-9c3138f5.entry.js} +1 -1
  92. package/dist/sankhyablocks/{p-4d9549cf.js → p-9ffd9fc7.js} +1 -1
  93. package/dist/sankhyablocks/p-a0ebd886.js +1 -0
  94. package/dist/sankhyablocks/{p-dcead955.entry.js → p-a2c790ac.entry.js} +1 -1
  95. package/dist/sankhyablocks/{p-5dd8cf4f.js → p-a75e9dcc.js} +1 -1
  96. package/dist/sankhyablocks/{p-212213d9.entry.js → p-aa003d4e.entry.js} +1 -1
  97. package/dist/sankhyablocks/p-aaf94476.js +1 -0
  98. package/dist/sankhyablocks/{p-16869f77.js → p-ae50d69f.js} +1 -1
  99. package/dist/sankhyablocks/p-bab79110.entry.js +1 -0
  100. package/dist/sankhyablocks/{p-b9c67e45.entry.js → p-c1adf0dd.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-c88ad28e.entry.js +1 -0
  102. package/dist/sankhyablocks/p-d1da52e1.entry.js +1 -0
  103. package/dist/sankhyablocks/p-da87e42c.entry.js +11 -0
  104. package/dist/sankhyablocks/{p-be5d8fcb.entry.js → p-e41bd8ee.entry.js} +1 -1
  105. package/dist/sankhyablocks/p-e4391e16.js +1 -0
  106. package/dist/sankhyablocks/{p-92eadb1c.entry.js → p-f0aaad2b.entry.js} +1 -1
  107. package/dist/sankhyablocks/{p-fb34e0cf.entry.js → p-fca0e5cc.entry.js} +1 -1
  108. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  109. package/dist/types/components/snk-application/request-listener/DebouncedRequestListener.d.ts +11 -0
  110. package/dist/types/components/snk-application/request-listener/RequestListenerFactory.d.ts +12 -0
  111. package/dist/types/components/snk-application/request-listener/RequestListenerLoadingBar.d.ts +13 -0
  112. package/dist/types/components/snk-application/snk-application.d.ts +3 -12
  113. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -0
  114. package/dist/types/lib/utils/CrudUtils.d.ts +1 -0
  115. package/package.json +3 -2
  116. package/dist/cjs/snk-config-options.cjs.entry.js +0 -239
  117. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -312
  118. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -152
  119. package/dist/cjs/snk-filter-modal.cjs.entry.js +0 -249
  120. package/dist/cjs/snk-form.cjs.entry.js +0 -144
  121. package/dist/esm/snk-config-options.entry.js +0 -235
  122. package/dist/esm/snk-filter-item.entry.js +0 -308
  123. package/dist/esm/snk-filter-list.entry.js +0 -148
  124. package/dist/esm/snk-filter-modal.entry.js +0 -245
  125. package/dist/esm/snk-form.entry.js +0 -140
  126. package/dist/sankhyablocks/p-01086ff7.entry.js +0 -1
  127. package/dist/sankhyablocks/p-2923c1b5.js +0 -1
  128. package/dist/sankhyablocks/p-3b60db06.entry.js +0 -1
  129. package/dist/sankhyablocks/p-49f1c9be.entry.js +0 -1
  130. package/dist/sankhyablocks/p-60b29483.entry.js +0 -1
  131. package/dist/sankhyablocks/p-70a4af56.entry.js +0 -1
  132. package/dist/sankhyablocks/p-a42e7a1e.entry.js +0 -11
  133. package/dist/sankhyablocks/p-afbb070d.js +0 -1
  134. package/dist/sankhyablocks/p-b9679243.entry.js +0 -1
  135. package/dist/sankhyablocks/p-ca5ec380.js +0 -1
  136. package/dist/sankhyablocks/p-d3f53df2.entry.js +0 -1
  137. package/dist/sankhyablocks/p-e8763234.entry.js +0 -1
  138. package/dist/sankhyablocks/p-feba9d4b.entry.js +0 -1
@@ -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;
@@ -1,249 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-f9e81701.js');
6
- const ezModalContainer = require('@sankhyalabs/ezui/dist/collection/components/ez-modal-container');
7
- const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
- const filterType_enum = require('./filter-type.enum-b14ce507.js');
9
- const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
10
- const core = require('@sankhyalabs/core');
11
- const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-0184ffbb.js');
12
- const filterNumberVariation = require('./filterNumberVariation-d65332da.js');
13
- require('./index-c5771aba.js');
14
-
15
- const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px}.snk-filter-modal__container{width:344px;max-width:344px;min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px;overflow-x:clip;overflow-y:auto}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";
16
-
17
- const SnkFilterModal = class {
18
- constructor(hostRef) {
19
- index.registerInstance(this, hostRef);
20
- this.getMessage = undefined;
21
- this.configName = undefined;
22
- this.filters = undefined;
23
- this.applyFilters = undefined;
24
- this.closeModal = undefined;
25
- this.addPersonalizedFilter = undefined;
26
- this.editPersonalizedFilter = undefined;
27
- this.deletePersonalizedFilter = undefined;
28
- this.filtersToDelete = [];
29
- this.disablePersonalizedFilter = undefined;
30
- }
31
- /**
32
- * Emitido quando um filtro personalizado é deletado.
33
- */
34
- deletePersonalizedFilterListener(event) {
35
- this.filtersToDelete.push(event.detail);
36
- }
37
- getCustomMessage(key, params) {
38
- var _a;
39
- return (_a = this.getMessage) === null || _a === void 0 ? void 0 : _a.call(this, `snkFilterBar.filterModal.${key}`, params);
40
- }
41
- //TODO: tratar clear all dos filtros personalizados
42
- handleClearAll() {
43
- const { customFilters, quickFilters, otherFilters, multiListFilters } = this.filters.reduce((acc, filter) => {
44
- if (filter.type === filterItemType_enum.FilterItemType.MULTI_LIST) {
45
- acc.multiListFilters.push(filter);
46
- return acc;
47
- }
48
- if (filter.filterType === filterType_enum.FilterType.QUICK_FILTER) {
49
- acc.quickFilters.push(filter);
50
- return acc;
51
- }
52
- if (filter.filterType === filterType_enum.FilterType.CUSTOM_FILTER) {
53
- acc.customFilters.push(filter);
54
- return acc;
55
- }
56
- if (filter.filterType === filterType_enum.FilterType.OTHER_FILTERS) {
57
- acc.otherFilters.push(filter);
58
- return acc;
59
- }
60
- return acc;
61
- }, { quickFilters: [], customFilters: [], otherFilters: [], multiListFilters: [] });
62
- this.handleClearFilterList(quickFilters);
63
- this.handleClearCustomFilters(customFilters);
64
- this.handleClearOthersFilters(otherFilters);
65
- multiListFilters.forEach(multiListFilter => this.handleClearSigleFilter(multiListFilter));
66
- }
67
- handleClearOthersFilters(otherFilters) {
68
- this.filters = this.filters.map(filter => otherFilters.includes(filter) ? (Object.assign(Object.assign({}, filter), { value: undefined })) : filter);
69
- }
70
- handleClearCustomFilters(customFilters) {
71
- this.filters.forEach((filter, index) => {
72
- if (filter.filterType === filterType_enum.FilterType.CUSTOM_FILTER)
73
- this.filters[index] = this.clearAllCustomFilter(customFilters).shift();
74
- });
75
- }
76
- clearAllCustomFilter(filterConfigSnapshot) {
77
- return filterConfigSnapshot.map(filterItem => {
78
- const copy = Object.assign({}, filterItem);
79
- delete copy.value;
80
- copy.visible = false;
81
- if (copy.groupedItems) {
82
- copy.groupedItems = this.clearAllCustomFilter(copy.groupedItems);
83
- }
84
- return copy;
85
- });
86
- }
87
- handleClose() {
88
- const hasChangesToSave = core.ObjectUtils.objectToString(this.filters) !== core.ObjectUtils.objectToString(this._originalFilterConfig);
89
- if (!hasChangesToSave) {
90
- this.closeModal();
91
- return;
92
- }
93
- return utils.ApplicationUtils.confirm(this.getCustomMessage('validations.notSaved.title'), this.getCustomMessage('validations.notSaved.message')).then((cancelAction) => {
94
- if (cancelAction)
95
- this.closeModal();
96
- });
97
- }
98
- handleApplyFilters() {
99
- const filterPersonalized = this.filters.find(filter => filter.filterType === filterType_enum.FilterType.CUSTOM_FILTER);
100
- if (this.isValidCustomFilter(filterPersonalized)) {
101
- this.applyFilters(this.filters);
102
- }
103
- if (this.filtersToDelete.length > 0) {
104
- this.filtersToDelete.forEach(filter => {
105
- this.deletePersonalizedFilter(filter, this.configName);
106
- });
107
- this.filtersToDelete = [];
108
- }
109
- }
110
- isValidCustomFilter(filterPersonalized) {
111
- const isValid = PersonalizedFilterUtils.PersonalizedFilterUtils.validateVariableValues(filterPersonalized);
112
- if (!isValid) {
113
- utils.ApplicationUtils.alert(this.getCustomMessage('validations.notFullFilled.title'), this.getCustomMessage('validations.notFullFilled.message'));
114
- return false;
115
- }
116
- return true;
117
- }
118
- modalActionListener(evt) {
119
- const modalAction = evt.detail;
120
- switch (modalAction) {
121
- case ezModalContainer.ModalAction.CANCEL:
122
- this.handleClearAll();
123
- break;
124
- case ezModalContainer.ModalAction.OK:
125
- this.handleApplyFilters();
126
- break;
127
- case ezModalContainer.ModalAction.CLOSE:
128
- this.handleClose();
129
- break;
130
- }
131
- }
132
- handleFilterChange(filterConfig) {
133
- this.filters = this.filters.map(filter => filter.id === filterConfig.id ? filterConfig : filter);
134
- }
135
- handleClearFilterList(filterList) {
136
- this.filters = this.filters.map(filter => filterList.includes(filter) ? (Object.assign(Object.assign({}, filter), { value: undefined })) : filter);
137
- }
138
- handleClearSigleFilter(filterItem) {
139
- if (filterItemType_enum.FilterItemType.MULTI_LIST === filterItem.type) {
140
- let filterItemCopy = core.ObjectUtils.copy(filterItem);
141
- this.uncheckFilterValues(filterItemCopy.value);
142
- const filterListCopy = core.ObjectUtils.copy(this.filters);
143
- const index = filterListCopy.findIndex(item => item.id === filterItem.id);
144
- filterListCopy.splice(index, 1, filterItemCopy);
145
- this.filters = core.ObjectUtils.copy(filterListCopy);
146
- return;
147
- }
148
- if (filterItemType_enum.FilterItemType.CHECK_BOX_LIST === filterItem.type) {
149
- const filterListCopy = core.ObjectUtils.copy(this.filters);
150
- filterListCopy.find(filter => filter.id === filterItem.id).value = undefined;
151
- this.filters = core.ObjectUtils.copy(filterListCopy);
152
- return;
153
- }
154
- this.filters.find(filter => filter.id === filterItem.id).value = undefined;
155
- }
156
- uncheckFilterValues(valueList) {
157
- valueList.forEach(value => {
158
- if (!!value) {
159
- value.check = false;
160
- }
161
- });
162
- return valueList;
163
- }
164
- renderFilterItem(filterItem, fullRow) {
165
- return (index.h("snk-filter-modal-item", { class: fullRow ? 'ez-col ez-col--sd-12' : 'ez-col ez-col--sd-6 ez-padding--small', filterItem: filterItem, configName: this.configName, onFilterChange: (event) => this.handleFilterChange(event.detail), onEditPersonalizedFilter: evt => this.editPersonalizedFilter(evt.detail), onAddPersonalizedFilter: () => this.addPersonalizedFilter() }));
166
- }
167
- isDefaultFilterNumberVariation(filter) {
168
- var _a;
169
- return filter.type === filterItemType_enum.FilterItemType.NUMBER
170
- && (!filter.props.variation || ((_a = filter.props) === null || _a === void 0 ? void 0 : _a.variation) === filterNumberVariation.FilterNumberVariation.DEFAULT);
171
- }
172
- mountFiltersLines(filters) {
173
- const MAX_LINE_LENGTH = 2;
174
- let currentLine = 0;
175
- let forceAddCurrent = false;
176
- const filtersLines = {};
177
- for (let curr = 0; curr < filters.length; curr++) {
178
- filtersLines[currentLine] = filtersLines[currentLine] || [];
179
- const item = filters[curr];
180
- const isLast = curr === filters.length - 1;
181
- const currentItemMatch = item.type === filterItemType_enum.FilterItemType.TEXT || this.isDefaultFilterNumberVariation(item);
182
- const nextItemMatch = isLast ? false : filters[curr + 1].type === filterItemType_enum.FilterItemType.TEXT || this.isDefaultFilterNumberVariation(filters[curr + 1]);
183
- if ((currentItemMatch && nextItemMatch) || forceAddCurrent) {
184
- filtersLines[currentLine].push(item);
185
- forceAddCurrent = filtersLines[currentLine].length < MAX_LINE_LENGTH;
186
- if (filtersLines[currentLine].length === MAX_LINE_LENGTH)
187
- ++currentLine;
188
- continue;
189
- }
190
- filtersLines[currentLine] = filtersLines[currentLine] || [];
191
- filtersLines[currentLine].push(item);
192
- ++currentLine;
193
- }
194
- return Object.values(filtersLines);
195
- }
196
- renderFilterLine(filters) {
197
- const fullLine = filters.length === 1;
198
- return filters.map((filter) => this.renderFilterItem(filter, fullLine));
199
- }
200
- getIformedFiltersCount(listItems) {
201
- let countInformedItens = 0;
202
- listItems.forEach(item => {
203
- var _a, _b, _c, _d, _e, _f;
204
- if (filterItemType_enum.FilterItemType.MULTI_LIST === item.type) {
205
- countInformedItens += (_e = (_d = (_c = ((_b = (_a = item.value) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : item.value)) === null || _c === void 0 ? void 0 : _c.filter(value => value === null || value === void 0 ? void 0 : value.check)) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0;
206
- return;
207
- }
208
- if (filterItemType_enum.FilterItemType.CHECK_BOX_LIST === item.type) {
209
- countInformedItens += Object.entries((_f = item.value) !== null && _f !== void 0 ? _f : {})
210
- .filter(([_, value]) => value === true)
211
- .map(([key, _]) => key).length;
212
- return;
213
- }
214
- if (item.groupedItems != undefined) {
215
- countInformedItens = item.groupedItems.filter(item => item.visible).length;
216
- return;
217
- }
218
- if (!!item.value) {
219
- countInformedItens++;
220
- }
221
- });
222
- return countInformedItens;
223
- }
224
- renderCollapsibleFilterBox(label, listItems, isSingleItem, shouldRenderFooter = true) {
225
- if (!listItems.length)
226
- return null;
227
- const appliedFilters = this.getIformedFiltersCount(listItems);
228
- const lines = this.mountFiltersLines(listItems);
229
- return (index.h("ez-collapsible-box", { class: "snk-filter-modal__collapsible-box", headerSize: "medium", value: true, label: label }, !!appliedFilters && (index.h("ez-badge", { class: "ez-badge--primary-subtle", slot: "rightSlot", label: appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.toString() })), index.h("div", { class: "ez-row snk-filter-modal__rendered-items" }, lines.map(this.renderFilterLine.bind(this))), shouldRenderFooter && (index.h("div", { class: "ez-flex ez-flex--justify-end grow" }, index.h("ez-button", { class: "ez-button--tertiary", size: "medium", label: "Limpar", onClick: () => isSingleItem ? this.handleClearSigleFilter(listItems[0]) : this.handleClearFilterList(listItems) })))));
230
- }
231
- componentWillRender() {
232
- this._modalTitle = this.getCustomMessage('title');
233
- this._okButtonLabel = this.getCustomMessage('okButtonLabel');
234
- this._cancelButtonLabel = this.getCustomMessage('cancelButtonLabel');
235
- }
236
- componentDidLoad() {
237
- if (!this._originalFilterConfig)
238
- this._originalFilterConfig = this.filters;
239
- }
240
- render() {
241
- const customFilters = this.filters.filter(filter => filter.filterType === filterType_enum.FilterType.CUSTOM_FILTER);
242
- const quickFilters = this.filters.filter(filter => filter.filterType === filterType_enum.FilterType.QUICK_FILTER);
243
- const otherFilters = this.filters.filter(filter => filter.filterType === filterType_enum.FilterType.OTHER_FILTERS);
244
- return (index.h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, index.h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
245
- }
246
- };
247
- SnkFilterModal.style = snkFilterModalCss;
248
-
249
- exports.snk_filter_modal = SnkFilterModal;
@@ -1,144 +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 SnkFormConfigManager = require('./SnkFormConfigManager-f1c92f79.js');
8
- const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
9
- require('./ConfigStorage-ecc0ed20.js');
10
- require('./form-config-fetcher-ed497282.js');
11
- require('./DataFetcher-cadeef8e.js');
12
- require('./PrintUtils-bcaeb82f.js');
13
- require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
- require('./filter-item-type.enum-a7ffdaa6.js');
15
- require('./constants-35ddd366.js');
16
-
17
- const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
18
-
19
- const SnkForm = class {
20
- constructor(hostRef) {
21
- index.registerInstance(this, hostRef);
22
- this.exit = index.createEvent(this, "exit", 7);
23
- this.actionClick = index.createEvent(this, "actionClick", 7);
24
- this.formItemsReady = index.createEvent(this, "formItemsReady", 7);
25
- this._customEditors = new Map();
26
- this._dataUnit = undefined;
27
- this._dataState = undefined;
28
- this._showFormConfig = false;
29
- this._configManager = undefined;
30
- this.configName = undefined;
31
- this.recordsValidator = undefined;
32
- this.messagesBuilder = undefined;
33
- this.formLegacyConfigName = undefined;
34
- this.resourceID = undefined;
35
- }
36
- /**
37
- * Exibe a janela de configurações do formulário.
38
- */
39
- async showConfig() {
40
- this._showFormConfig = true;
41
- }
42
- /**
43
- * Fecha a janela de configurações do formulário.
44
- */
45
- async hideConfig() {
46
- this._showFormConfig = false;
47
- }
48
- /**
49
- * Registra um editor customizado para campos da grade e formulário.
50
- */
51
- async addCustomEditor(fieldName, customEditor) {
52
- if (this._form) {
53
- this._form.addCustomEditor(fieldName, customEditor);
54
- return;
55
- }
56
- const newCustomEditors = new Map(this._customEditors);
57
- newCustomEditors.set(fieldName, customEditor);
58
- this._customEditors = newCustomEditors;
59
- }
60
- /**
61
- * Altera/adiciona uma propriedade nos metadados do campo.
62
- */
63
- async setFieldProp(fieldName, propName, value) {
64
- await this._form.setFieldProp(fieldName, propName, value);
65
- }
66
- closeConfig() {
67
- this.hideConfig();
68
- }
69
- dataunitReady() {
70
- const dataInfo = { dataUnit: this._dataUnit };
71
- core.ElementIDUtils.addIDInfo(this._element, null, dataInfo);
72
- }
73
- setCustomEditors() {
74
- if (!this._form) {
75
- return;
76
- }
77
- for (const [fieldName, customEditor] of this._customEditors) {
78
- this._form.addCustomEditor(fieldName, customEditor);
79
- this._customEditors.delete(fieldName);
80
- }
81
- }
82
- async componentDidRender() {
83
- this.setCustomEditors();
84
- }
85
- async componentWillLoad() {
86
- let parent = this._element.parentElement;
87
- while (parent) {
88
- if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
89
- this._snkDataUnit = parent;
90
- this._dataUnit = this._snkDataUnit.dataUnit;
91
- this._dataState = this._snkDataUnit.dataState;
92
- if (this._dataUnit) {
93
- this.dataunitReady();
94
- }
95
- else {
96
- this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
97
- this._dataUnit = evt.detail;
98
- });
99
- }
100
- this._snkDataUnit.addEventListener("dataStateChange", this.handleDataStateChange.bind(this));
101
- break;
102
- }
103
- parent = parent.parentElement;
104
- }
105
- if (this.resourceID == undefined) {
106
- this.resourceID = await ResourceIDUtils.ResourceIDUtils.getResourceID();
107
- }
108
- this._configManager = new SnkFormConfigManager.SnkFormConfigManager(this.configName, this.resourceID, undefined, this._dataUnit);
109
- this.addFormLegacyConfig();
110
- await this._configManager.loadConfig();
111
- }
112
- async handleDataStateChange(evt) {
113
- var _a;
114
- this._dataState = evt.detail;
115
- const fieldsWithRmPrecision = await this._snkDataUnit.getFieldsWithRmPrecision();
116
- for (const field of fieldsWithRmPrecision || []) {
117
- if (!field) {
118
- continue;
119
- }
120
- const rmPrecision = (_a = this._dataState.rowMetadata) === null || _a === void 0 ? void 0 : _a.getProp('rm_precision', field);
121
- if (!rmPrecision && rmPrecision !== 0) {
122
- continue;
123
- }
124
- await this.setFieldProp(field, 'precision', rmPrecision);
125
- await this.setFieldProp(field, 'prettyPrecision', rmPrecision);
126
- }
127
- }
128
- addFormLegacyConfig() {
129
- if (this.formLegacyConfigName) {
130
- this._configManager.addFormLegacyConfig(this.formLegacyConfigName);
131
- }
132
- }
133
- render() {
134
- if (!this._dataUnit || !this._dataState) {
135
- return undefined;
136
- }
137
- return (index.h("section", null, index.h("div", { class: "ez-row" }, index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("ez-form", { ref: (ref) => this._form = ref, key: "ezForm" + this._snkDataUnit.entityName, "data-element-id": "embedded", dataUnit: this._dataUnit, config: this._configManager.getConfig(this._dataUnit), recordsValidator: this.recordsValidator, class: this._showFormConfig ? 'snk-form__form--hidden' : '' }), this._showFormConfig &&
138
- index.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this._dataUnit, configManager: this._configManager, onConfigClose: () => this.closeConfig() })))));
139
- }
140
- get _element() { return index.getElement(this); }
141
- };
142
- SnkForm.style = snkFormCss;
143
-
144
- exports.snk_form = SnkForm;