@sankhyalabs/sankhyablocks 1.3.31-beta.16 → 1.3.31-beta.18

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 (190) hide show
  1. package/dist/cjs/{SnkMessageBuilder-79cf15c5.js → SnkMessageBuilder-02c2ca02.js} +137 -1
  2. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  3. package/dist/cjs/css-shim-b8158822.js +6 -0
  4. package/dist/cjs/dom-36862b77.js +75 -0
  5. package/dist/cjs/filter-item-type.enum-e2e1bc5b.js +14 -0
  6. package/dist/cjs/index-02201bc9.js +2397 -0
  7. package/dist/cjs/{index-5575fe3d.js → index-b0b676c5.js} +1598 -145
  8. package/dist/cjs/loader.cjs.js +18 -2
  9. package/dist/cjs/sankhyablocks.cjs.js +116 -4
  10. package/dist/cjs/shadow-css-346c0795.js +389 -0
  11. package/dist/cjs/snk-application.cjs.entry.js +662 -66
  12. package/dist/cjs/snk-crud.cjs.entry.js +3 -2
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +23 -24
  14. package/dist/cjs/snk-filter-bar.cjs.entry.js +247 -0
  15. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +47 -0
  16. package/dist/cjs/snk-filter-detail.cjs.entry.js +49 -0
  17. package/dist/cjs/snk-filter-item.cjs.entry.js +143 -0
  18. package/dist/cjs/snk-filter-list.cjs.entry.js +91 -0
  19. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +23 -0
  20. package/dist/cjs/snk-filter-number.cjs.entry.js +24 -0
  21. package/dist/cjs/snk-filter-period.cjs.entry.js +26 -0
  22. package/dist/cjs/snk-filter-search.cjs.entry.js +44 -0
  23. package/dist/cjs/snk-filter-text.cjs.entry.js +22 -0
  24. package/dist/cjs/{snk-form_2.cjs.entry.js → snk-form.cjs.entry.js} +21 -65
  25. package/dist/cjs/snk-grid.cjs.entry.js +79 -0
  26. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  27. package/dist/cjs/snk-taskbar.cjs.entry.js +17 -13
  28. package/dist/cjs/{taskbar-elements-2ae0d005.js → taskbar-elements-283c737e.js} +37 -18
  29. package/dist/cjs/taskbar-processor-6bd0d35c.js +47 -0
  30. package/dist/cjs/teste-pesquisa.cjs.entry.js +5 -5
  31. package/dist/collection/collection-manifest.json +10 -0
  32. package/dist/collection/components/snk-application/errorhandler/snk-error-handler.js +7 -0
  33. package/dist/collection/components/snk-application/snk-application.js +89 -17
  34. package/dist/collection/components/snk-crud/snk-crud.js +41 -3
  35. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +88 -0
  36. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +64 -0
  37. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +65 -0
  38. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +69 -0
  39. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +118 -0
  40. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +63 -0
  41. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +10 -0
  42. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +118 -0
  43. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +244 -0
  44. package/dist/collection/components/snk-filter-bar/filter-list/snk-filter-list.js +233 -0
  45. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +114 -0
  46. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +305 -0
  47. package/dist/collection/components/snk-form/snk-form.js +41 -1
  48. package/dist/collection/components/snk-grid/snk-grid.css +14 -1
  49. package/dist/collection/components/snk-grid/snk-grid.js +35 -3
  50. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +35 -17
  51. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +43 -0
  52. package/dist/collection/components/snk-taskbar/snk-taskbar.js +36 -11
  53. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +24 -2
  54. package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +1 -1
  55. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +388 -0
  56. package/dist/collection/lib/message/SnkMessageBuilder.js +3 -1
  57. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +18 -0
  58. package/dist/components/SnkMessageBuilder.js +137 -2
  59. package/dist/components/filter-item-type.enum.js +12 -0
  60. package/dist/components/index.d.ts +10 -0
  61. package/dist/components/index.js +14 -0
  62. package/dist/components/index2.js +2384 -0
  63. package/dist/components/snk-application2.js +628 -30
  64. package/dist/components/snk-crud.js +29 -3
  65. package/dist/components/snk-data-unit.js +2 -3
  66. package/dist/components/snk-filter-bar.d.ts +11 -0
  67. package/dist/components/snk-filter-bar.js +6 -0
  68. package/dist/components/snk-filter-bar2.js +278 -0
  69. package/dist/components/snk-filter-binary-select.d.ts +11 -0
  70. package/dist/components/snk-filter-binary-select.js +63 -0
  71. package/dist/components/snk-filter-detail.d.ts +11 -0
  72. package/dist/components/snk-filter-detail.js +6 -0
  73. package/dist/components/snk-filter-detail2.js +63 -0
  74. package/dist/components/snk-filter-item.d.ts +11 -0
  75. package/dist/components/snk-filter-item.js +6 -0
  76. package/dist/components/snk-filter-item2.js +164 -0
  77. package/dist/components/snk-filter-list.d.ts +11 -0
  78. package/dist/components/snk-filter-list.js +6 -0
  79. package/dist/components/snk-filter-list2.js +111 -0
  80. package/dist/components/snk-filter-multi-select.d.ts +11 -0
  81. package/dist/components/snk-filter-multi-select.js +39 -0
  82. package/dist/components/snk-filter-number.d.ts +11 -0
  83. package/dist/components/snk-filter-number.js +40 -0
  84. package/dist/components/snk-filter-period.d.ts +11 -0
  85. package/dist/components/snk-filter-period.js +42 -0
  86. package/dist/components/snk-filter-search.d.ts +11 -0
  87. package/dist/components/snk-filter-search.js +62 -0
  88. package/dist/components/snk-filter-text.d.ts +11 -0
  89. package/dist/components/snk-filter-text.js +38 -0
  90. package/dist/components/snk-form2.js +21 -2
  91. package/dist/components/snk-grid2.js +42 -7
  92. package/dist/components/snk-pesquisa2.js +1 -1
  93. package/dist/components/snk-taskbar2.js +50 -27
  94. package/dist/components/taskbar-processor.js +45 -0
  95. package/dist/components/teste-pesquisa.js +1 -1
  96. package/dist/esm/{SnkMessageBuilder-3cdde541.js → SnkMessageBuilder-65d431bd.js} +137 -2
  97. package/dist/esm/app-globals-0f993ce5.js +3 -0
  98. package/dist/esm/css-shim-b3f2ee8d.js +4 -0
  99. package/dist/esm/dom-665d6011.js +73 -0
  100. package/dist/esm/filter-item-type.enum-61fbf80a.js +12 -0
  101. package/dist/esm/index-2b4d2d14.js +3262 -0
  102. package/dist/esm/index-e5b61043.js +2384 -0
  103. package/dist/esm/loader.js +18 -2
  104. package/dist/esm/sankhyablocks.js +116 -4
  105. package/dist/esm/shadow-css-b18e99d7.js +387 -0
  106. package/dist/esm/snk-application.entry.js +627 -31
  107. package/dist/esm/snk-crud.entry.js +3 -2
  108. package/dist/esm/snk-data-unit.entry.js +3 -4
  109. package/dist/esm/snk-filter-bar.entry.js +243 -0
  110. package/dist/esm/snk-filter-binary-select.entry.js +43 -0
  111. package/dist/esm/snk-filter-detail.entry.js +45 -0
  112. package/dist/esm/snk-filter-item.entry.js +139 -0
  113. package/dist/esm/snk-filter-list.entry.js +87 -0
  114. package/dist/esm/snk-filter-multi-select.entry.js +19 -0
  115. package/dist/esm/snk-filter-number.entry.js +20 -0
  116. package/dist/esm/snk-filter-period.entry.js +22 -0
  117. package/dist/esm/snk-filter-search.entry.js +40 -0
  118. package/dist/esm/snk-filter-text.entry.js +18 -0
  119. package/dist/esm/{snk-form_2.entry.js → snk-form.entry.js} +21 -64
  120. package/dist/esm/snk-grid.entry.js +75 -0
  121. package/dist/esm/snk-pesquisa.entry.js +2 -2
  122. package/dist/esm/snk-taskbar.entry.js +16 -12
  123. package/dist/esm/taskbar-elements-35d64ff9.js +90 -0
  124. package/dist/esm/taskbar-processor-aa6772c9.js +45 -0
  125. package/dist/esm/teste-pesquisa.entry.js +2 -2
  126. package/dist/sankhyablocks/SnkMessageBuilder-65d431bd.js +303 -0
  127. package/dist/sankhyablocks/app-globals-0f993ce5.js +3 -0
  128. package/dist/sankhyablocks/css-shim-b3f2ee8d.js +4 -0
  129. package/dist/sankhyablocks/dom-665d6011.js +73 -0
  130. package/dist/sankhyablocks/filter-item-type.enum-61fbf80a.js +12 -0
  131. package/dist/sankhyablocks/index-2b4d2d14.js +3262 -0
  132. package/dist/sankhyablocks/index-e5b61043.js +2384 -0
  133. package/dist/sankhyablocks/index.esm.js +1 -0
  134. package/dist/sankhyablocks/sankhyablocks.esm.js +129 -1
  135. package/dist/sankhyablocks/shadow-css-b18e99d7.js +387 -0
  136. package/dist/sankhyablocks/snk-application.entry.js +8426 -0
  137. package/dist/sankhyablocks/snk-crud.entry.js +61 -0
  138. package/dist/sankhyablocks/snk-data-unit.entry.js +272 -0
  139. package/dist/sankhyablocks/snk-filter-bar.entry.js +243 -0
  140. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +43 -0
  141. package/dist/sankhyablocks/snk-filter-detail.entry.js +45 -0
  142. package/dist/sankhyablocks/snk-filter-item.entry.js +139 -0
  143. package/dist/sankhyablocks/snk-filter-list.entry.js +87 -0
  144. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +19 -0
  145. package/dist/sankhyablocks/snk-filter-number.entry.js +20 -0
  146. package/dist/sankhyablocks/snk-filter-period.entry.js +22 -0
  147. package/dist/sankhyablocks/snk-filter-search.entry.js +40 -0
  148. package/dist/sankhyablocks/snk-filter-text.entry.js +18 -0
  149. package/dist/sankhyablocks/snk-form.entry.js +129 -0
  150. package/dist/sankhyablocks/snk-grid.entry.js +75 -0
  151. package/dist/sankhyablocks/snk-pesquisa.entry.js +311 -0
  152. package/dist/sankhyablocks/snk-taskbar.entry.js +156 -0
  153. package/dist/sankhyablocks/taskbar-elements-35d64ff9.js +90 -0
  154. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +45 -0
  155. package/dist/sankhyablocks/teste-pesquisa.entry.js +33 -0
  156. package/dist/types/components/snk-application/errorhandler/snk-error-handler.d.ts +1 -0
  157. package/dist/types/components/snk-application/snk-application.d.ts +9 -0
  158. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +12 -0
  159. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +7 -0
  160. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +7 -0
  161. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +13 -0
  162. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +12 -0
  163. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +7 -0
  164. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +9 -0
  165. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +14 -0
  166. package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +40 -0
  167. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +45 -0
  168. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +3 -2
  169. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +12 -0
  170. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +17 -1
  171. package/dist/types/components.d.ts +277 -2
  172. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -0
  173. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +5 -0
  174. package/dist/types/lib/message/resources/snk-filter-bar.msg.d.ts +2 -0
  175. package/package.json +2 -2
  176. package/react/components.d.ts +0 -7
  177. package/react/components.js +0 -7
  178. package/react/components.js.map +1 -1
  179. package/dist/esm/index-cf91f542.js +0 -1817
  180. package/dist/esm/taskbar-elements-bcccc0ff.js +0 -72
  181. package/dist/sankhyablocks/p-1ba29824.entry.js +0 -74
  182. package/dist/sankhyablocks/p-2266555e.entry.js +0 -1
  183. package/dist/sankhyablocks/p-23c4c94f.js +0 -2
  184. package/dist/sankhyablocks/p-2454be94.js +0 -1
  185. package/dist/sankhyablocks/p-49743bc5.js +0 -1
  186. package/dist/sankhyablocks/p-4fa389bd.entry.js +0 -1
  187. package/dist/sankhyablocks/p-5327ba05.entry.js +0 -1
  188. package/dist/sankhyablocks/p-7a922fb4.entry.js +0 -1
  189. package/dist/sankhyablocks/p-92d6f826.entry.js +0 -1
  190. package/dist/sankhyablocks/p-bdeef7f2.entry.js +0 -1
@@ -0,0 +1,164 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { F as FloatingManager } from './index2.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum.js';
4
+ import { d as defineCustomElement$1 } from './snk-filter-detail2.js';
5
+
6
+ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.filterChange = createEvent(this, "filterChange", 7);
11
+ this.innerClickCheck = (floatingContainer, node) => {
12
+ if (this._popover.keepOpened) {
13
+ return true;
14
+ }
15
+ if (node && floatingContainer) {
16
+ if (!node.offsetParent) {
17
+ return true;
18
+ }
19
+ let current = node;
20
+ do {
21
+ if (current === floatingContainer) {
22
+ return true;
23
+ }
24
+ } while ((current = current.offsetParent) != null);
25
+ }
26
+ this.detailIsVisible = false;
27
+ return false;
28
+ };
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
+ }
38
+ showDetail() {
39
+ this._floatingID = FloatingManager.float(this._popover, this._popoverContainer, { autoClose: true, innerClickTest: this.innerClickCheck, left: this.getScrollOffset() });
40
+ this.detailIsVisible = true;
41
+ }
42
+ getScrollOffset() {
43
+ return `${this._filterItemElement.getBoundingClientRect().left + 12}px`;
44
+ }
45
+ hideDetail() {
46
+ if (this._floatingID != undefined) {
47
+ FloatingManager.close(this._floatingID);
48
+ }
49
+ this._floatingID = undefined;
50
+ this.detailIsVisible = false;
51
+ }
52
+ //---------------------------------------------
53
+ // Event handlers
54
+ //---------------------------------------------
55
+ clickListener(evt) {
56
+ if ([this._chipElement, this._leftIconElement, this._rightIconElement].includes(evt.target)) {
57
+ if (evt.target === this._rightIconElement && this.config.value != undefined) {
58
+ this.filterChange.emit(Object.assign(Object.assign({}, this.config), { value: undefined }));
59
+ }
60
+ else {
61
+ if (this.detailIsVisible) {
62
+ this.hideDetail();
63
+ }
64
+ else {
65
+ this.showDetail();
66
+ }
67
+ }
68
+ evt.preventDefault();
69
+ evt.stopImmediatePropagation();
70
+ evt.stopPropagation();
71
+ }
72
+ }
73
+ mouseDownListener(evt) {
74
+ if (this.detailIsVisible && [this._chipElement, this._leftIconElement, this._rightIconElement].includes(evt.target)) {
75
+ evt.preventDefault();
76
+ evt.stopImmediatePropagation();
77
+ evt.stopPropagation();
78
+ }
79
+ }
80
+ getLabel() {
81
+ const { type, value, label, props } = this.config;
82
+ if (value) {
83
+ if (type === FilterItemType.BINARY_SELECT) {
84
+ const [optOne, optTwo] = props.options;
85
+ if (optOne.name === value) {
86
+ return optOne.label;
87
+ }
88
+ if (optTwo.name === value) {
89
+ return optTwo.label;
90
+ }
91
+ }
92
+ if (type === FilterItemType.MULTI_SELECT) {
93
+ const opt = props.options.find(opt => opt.value === value);
94
+ return `${label}: ${opt.label}`;
95
+ }
96
+ if (type === FilterItemType.PERIOD) {
97
+ const period = value;
98
+ const dateFormater = new Intl.DateTimeFormat("pt-BR");
99
+ if (period.end && period.start) {
100
+ return `${label}: ${dateFormater.format(period.start)} a ${dateFormater.format(period.end)}`;
101
+ }
102
+ else {
103
+ if (period.start) {
104
+ return `${label}: A partir de ${dateFormater.format(period.end)}`;
105
+ }
106
+ else {
107
+ return `${label}: Até ${dateFormater.format(period.end)}`;
108
+ }
109
+ }
110
+ }
111
+ if (type === FilterItemType.SEARCH) {
112
+ return `${label}: ${value.value} - ${value.label}`;
113
+ }
114
+ return `${label}: ${value}`;
115
+ }
116
+ return label;
117
+ }
118
+ componentDidRender() {
119
+ if (this._floatingID == undefined) {
120
+ if (this._popover) {
121
+ this._popover.remove();
122
+ }
123
+ }
124
+ }
125
+ filterChangeListener() {
126
+ this.hideDetail();
127
+ }
128
+ getIconName() {
129
+ if (this.config.value != undefined) {
130
+ return "close";
131
+ }
132
+ return this.detailIsVisible ? "chevron-up" : "chevron-down";
133
+ }
134
+ render() {
135
+ const leftIcon = this.config.type === FilterItemType.PERIOD ? "calendar" : undefined;
136
+ return (h(Host, null, h("ez-chip", { ref: ref => this._chipElement = ref, label: this.getLabel(), value: this.config.value != undefined }, leftIcon ? h("ez-icon", { ref: ref => this._leftIconElement = ref, iconName: leftIcon, class: "ez-padding-right--small", slot: "leftIcon" }) : undefined, h("ez-icon", { ref: ref => this._rightIconElement = ref, iconName: this.getIconName(), class: "ez-padding-left--small", slot: "rightIcon" })), h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, h("snk-filter-detail", { config: this.config, getMessage: this.getMessage, class: "sc-snk-filter-bar snk-filter__popover ez-padding--small", ref: elem => this._popover = elem, key: this.config.id }))));
137
+ }
138
+ get _filterItemElement() { return this; }
139
+ }, [0, "snk-filter-item", {
140
+ "config": [1040],
141
+ "getMessage": [16],
142
+ "detailIsVisible": [32],
143
+ "showUp": [64]
144
+ }, [[2, "click", "clickListener"], [2, "mousedown", "mouseDownListener"], [0, "filterChange", "filterChangeListener"]]]);
145
+ function defineCustomElement() {
146
+ if (typeof customElements === "undefined") {
147
+ return;
148
+ }
149
+ const components = ["snk-filter-item", "snk-filter-detail"];
150
+ components.forEach(tagName => { switch (tagName) {
151
+ case "snk-filter-item":
152
+ if (!customElements.get(tagName)) {
153
+ customElements.define(tagName, SnkFilterItem);
154
+ }
155
+ break;
156
+ case "snk-filter-detail":
157
+ if (!customElements.get(tagName)) {
158
+ defineCustomElement$1();
159
+ }
160
+ break;
161
+ } });
162
+ }
163
+
164
+ export { SnkFilterItem as S, defineCustomElement as d };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkFilterList extends Components.SnkFilterList, HTMLElement {}
4
+ export const SnkFilterList: {
5
+ prototype: SnkFilterList;
6
+ new (): SnkFilterList;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { S as SnkFilterList$1, d as defineCustomElement$1 } from './snk-filter-list2.js';
2
+
3
+ const SnkFilterList = SnkFilterList$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { SnkFilterList, defineCustomElement };
@@ -0,0 +1,111 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { F as FloatingManager, g as ArrayUtils } from './index2.js';
3
+
4
+ const SHOW_MORE_ITEM_NAME = "__SHOWMORE__";
5
+ const MAX_FILTERS = 5;
6
+ const SnkFilterList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.snkItemSelected = createEvent(this, "snkItemSelected", 7);
11
+ this.innerClickCheck = (floatingContainer, node) => {
12
+ if (node && floatingContainer) {
13
+ if (!node.offsetParent) {
14
+ return true;
15
+ }
16
+ let current = node;
17
+ do {
18
+ if (current === floatingContainer || current === this._element) {
19
+ return true;
20
+ }
21
+ } while ((current = current.offsetParent) != null);
22
+ }
23
+ this._detailIsVisible = false;
24
+ return false;
25
+ };
26
+ }
27
+ showList() {
28
+ this._floatingID = FloatingManager.float(this._popover, this._popoverContainer, { autoClose: true, innerClickTest: this.innerClickCheck });
29
+ this._detailIsVisible = true;
30
+ this._showAll = false;
31
+ this._filterArgument = "";
32
+ }
33
+ hideList() {
34
+ if (this._floatingID != undefined) {
35
+ FloatingManager.close(this._floatingID);
36
+ }
37
+ this._floatingID = undefined;
38
+ this._detailIsVisible = false;
39
+ }
40
+ buttonClick() {
41
+ if (this._detailIsVisible) {
42
+ this.hideList();
43
+ }
44
+ else {
45
+ this.showList();
46
+ }
47
+ }
48
+ componentDidRender() {
49
+ if (this._floatingID == undefined) {
50
+ if (this._popover) {
51
+ this._popover.remove();
52
+ }
53
+ }
54
+ }
55
+ buildItemElement(item) {
56
+ return (h("div", { 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) }, item.iconName ? 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, 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)));
57
+ }
58
+ itemSelected(itemName) {
59
+ if (itemName === SHOW_MORE_ITEM_NAME) {
60
+ this._showAll = true;
61
+ }
62
+ else {
63
+ this.hideList();
64
+ this.snkItemSelected.emit(itemName);
65
+ }
66
+ }
67
+ getFilterItems() {
68
+ const items = this.items ? ArrayUtils.applyStringFilter(this._filterArgument, this.items.filter(item => item.kind === "FILTER")) : [];
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.emptyText);
71
+ }
72
+ const hideItems = !this._filterArgument && !this._showAll && (items.length > MAX_FILTERS + 1);
73
+ if (hideItems) {
74
+ items.splice(MAX_FILTERS);
75
+ 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" });
76
+ }
77
+ return h("div", { class: "sc-snk-filter-bar snk-filter-bar__filter-list-items-container" }, items.map(item => this.buildItemElement(item)));
78
+ }
79
+ getFooterItems() {
80
+ return this.items.filter(item => item.kind === "FOOTER");
81
+ }
82
+ render() {
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
+ }
85
+ get _element() { return this; }
86
+ }, [4, "snk-filter-list", {
87
+ "label": [1],
88
+ "iconName": [1, "icon-name"],
89
+ "items": [16],
90
+ "getMessage": [16],
91
+ "emptyText": [1, "empty-text"],
92
+ "findFilterText": [1, "find-filter-text"],
93
+ "buttonClass": [1, "button-class"],
94
+ "_filterArgument": [32],
95
+ "_showAll": [32]
96
+ }]);
97
+ function defineCustomElement() {
98
+ if (typeof customElements === "undefined") {
99
+ return;
100
+ }
101
+ const components = ["snk-filter-list"];
102
+ components.forEach(tagName => { switch (tagName) {
103
+ case "snk-filter-list":
104
+ if (!customElements.get(tagName)) {
105
+ customElements.define(tagName, SnkFilterList);
106
+ }
107
+ break;
108
+ } });
109
+ }
110
+
111
+ export { SnkFilterList as S, defineCustomElement as d };
@@ -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 };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkFilterNumber extends Components.SnkFilterNumber, HTMLElement {}
4
+ export const SnkFilterNumber: {
5
+ prototype: SnkFilterNumber;
6
+ new (): SnkFilterNumber;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,40 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { F as FilterItemType } from './filter-item-type.enum.js';
3
+
4
+ const SnkFilterPeriod = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.__registerHost();
8
+ }
9
+ ezChangeListener(evt) {
10
+ this.value = evt.detail;
11
+ }
12
+ render() {
13
+ var _a;
14
+ if (!this.config || this.config.type !== FilterItemType.NUMBER) {
15
+ return undefined;
16
+ }
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 }));
18
+ }
19
+ }, [0, "snk-filter-number", {
20
+ "config": [16],
21
+ "value": [2]
22
+ }, [[0, "ezChange", "ezChangeListener"]]]);
23
+ function defineCustomElement$1() {
24
+ if (typeof customElements === "undefined") {
25
+ return;
26
+ }
27
+ const components = ["snk-filter-number"];
28
+ components.forEach(tagName => { switch (tagName) {
29
+ case "snk-filter-number":
30
+ if (!customElements.get(tagName)) {
31
+ customElements.define(tagName, SnkFilterPeriod);
32
+ }
33
+ break;
34
+ } });
35
+ }
36
+
37
+ const SnkFilterNumber = SnkFilterPeriod;
38
+ const defineCustomElement = defineCustomElement$1;
39
+
40
+ export { SnkFilterNumber, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkFilterPeriod extends Components.SnkFilterPeriod, HTMLElement {}
4
+ export const SnkFilterPeriod: {
5
+ prototype: SnkFilterPeriod;
6
+ new (): SnkFilterPeriod;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,42 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { F as FilterItemType } from './filter-item-type.enum.js';
3
+
4
+ const SnkFilterPeriod$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.__registerHost();
8
+ }
9
+ ezChangeListener() {
10
+ const start = this._startDate.value;
11
+ const end = this._endDate.value;
12
+ this.value = (start || end ? { start, end } : undefined);
13
+ }
14
+ render() {
15
+ var _a, _b;
16
+ if (!this.config || this.config.type !== FilterItemType.PERIOD) {
17
+ return undefined;
18
+ }
19
+ return (h("div", { class: "ez-col ez-col--nowrap" }, h("ez-date-input", { label: this.config.label, ref: ref => this._startDate = ref, value: (_a = this.config.value) === null || _a === void 0 ? void 0 : _a.start }), h("label", { class: "ez-text ez-text--medium ez-text--primary ez-margin--medium" }, "at\u00E9"), h("ez-date-input", { label: this.config.label, ref: ref => this._endDate = ref, value: (_b = this.config.value) === null || _b === void 0 ? void 0 : _b.end })));
20
+ }
21
+ }, [0, "snk-filter-period", {
22
+ "config": [16],
23
+ "value": [16]
24
+ }, [[0, "ezChange", "ezChangeListener"]]]);
25
+ function defineCustomElement$1() {
26
+ if (typeof customElements === "undefined") {
27
+ return;
28
+ }
29
+ const components = ["snk-filter-period"];
30
+ components.forEach(tagName => { switch (tagName) {
31
+ case "snk-filter-period":
32
+ if (!customElements.get(tagName)) {
33
+ customElements.define(tagName, SnkFilterPeriod$1);
34
+ }
35
+ break;
36
+ } });
37
+ }
38
+
39
+ const SnkFilterPeriod = SnkFilterPeriod$1;
40
+ const defineCustomElement = defineCustomElement$1;
41
+
42
+ export { SnkFilterPeriod, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkFilterSearch extends Components.SnkFilterSearch, HTMLElement {}
4
+ export const SnkFilterSearch: {
5
+ prototype: SnkFilterSearch;
6
+ new (): SnkFilterSearch;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,62 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { a as ApplicationContext } from './index2.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum.js';
4
+
5
+ const SnkFilterSearch$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ }
10
+ ezChangeListener(_evt) {
11
+ this.value = this._searchInput.value;
12
+ }
13
+ doSearch(mode, argument) {
14
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
15
+ if (this.fix) {
16
+ this.fix();
17
+ }
18
+ return new Promise((resolve, reject) => {
19
+ application.executePreparedSearch(mode, argument, this.config.props.searchContext)
20
+ .then(result => {
21
+ resolve(result);
22
+ if (this.unfix) {
23
+ this.unfix();
24
+ }
25
+ }).catch(reason => {
26
+ reject(reason);
27
+ if (this.unfix) {
28
+ this.unfix();
29
+ }
30
+ });
31
+ });
32
+ }
33
+ render() {
34
+ if (!this.config || this.config.type !== FilterItemType.SEARCH) {
35
+ return undefined;
36
+ }
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
+ }
39
+ }, [0, "snk-filter-search", {
40
+ "config": [16],
41
+ "value": [16],
42
+ "fix": [16],
43
+ "unfix": [16]
44
+ }, [[0, "ezChange", "ezChangeListener"]]]);
45
+ function defineCustomElement$1() {
46
+ if (typeof customElements === "undefined") {
47
+ return;
48
+ }
49
+ const components = ["snk-filter-search"];
50
+ components.forEach(tagName => { switch (tagName) {
51
+ case "snk-filter-search":
52
+ if (!customElements.get(tagName)) {
53
+ customElements.define(tagName, SnkFilterSearch$1);
54
+ }
55
+ break;
56
+ } });
57
+ }
58
+
59
+ const SnkFilterSearch = SnkFilterSearch$1;
60
+ const defineCustomElement = defineCustomElement$1;
61
+
62
+ export { SnkFilterSearch, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkFilterText extends Components.SnkFilterText, HTMLElement {}
4
+ export const SnkFilterText: {
5
+ prototype: SnkFilterText;
6
+ new (): SnkFilterText;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,38 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+
3
+ const SnkFilterText$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
4
+ constructor() {
5
+ super();
6
+ this.__registerHost();
7
+ }
8
+ ezChangeListener(evt) {
9
+ this.value = evt.detail;
10
+ }
11
+ render() {
12
+ if (!this.config) {
13
+ return undefined;
14
+ }
15
+ return (h("ez-text-input", { label: this.config.label, value: this.config.value }));
16
+ }
17
+ }, [0, "snk-filter-text", {
18
+ "config": [16],
19
+ "value": [1]
20
+ }, [[0, "ezChange", "ezChangeListener"]]]);
21
+ function defineCustomElement$1() {
22
+ if (typeof customElements === "undefined") {
23
+ return;
24
+ }
25
+ const components = ["snk-filter-text"];
26
+ components.forEach(tagName => { switch (tagName) {
27
+ case "snk-filter-text":
28
+ if (!customElements.get(tagName)) {
29
+ customElements.define(tagName, SnkFilterText$1);
30
+ }
31
+ break;
32
+ } });
33
+ }
34
+
35
+ const SnkFilterText = SnkFilterText$1;
36
+ const defineCustomElement = defineCustomElement$1;
37
+
38
+ export { SnkFilterText, defineCustomElement };
@@ -1,5 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { ApplicationContext } from '@sankhyalabs/core';
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],