@sankhyalabs/ezui 5.21.4 → 5.22.0-dev.10

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 (201) hide show
  1. package/dist/cjs/ICustomRender-6fafffce.js +13 -0
  2. package/dist/cjs/ez-actions-button.cjs.entry.js +1 -0
  3. package/dist/cjs/ez-chart.cjs.entry.js +435 -0
  4. package/dist/cjs/ez-collapsible-box.cjs.entry.js +1 -0
  5. package/dist/cjs/ez-combo-box.cjs.entry.js +1 -0
  6. package/dist/cjs/{ez-text-edit.cjs.entry.js → ez-custom-form-input_2.cjs.entry.js} +99 -0
  7. package/dist/cjs/ez-form-view.cjs.entry.js +37 -5
  8. package/dist/cjs/ez-form.cjs.entry.js +81 -2
  9. package/dist/cjs/ez-grid.cjs.entry.js +312 -40
  10. package/dist/cjs/ez-list.cjs.entry.js +10 -2
  11. package/dist/cjs/ez-modal-container.cjs.entry.js +2 -1
  12. package/dist/cjs/ez-modal.cjs.entry.js +7 -1
  13. package/dist/cjs/ez-number-input.cjs.entry.js +37 -31
  14. package/dist/cjs/ez-scroller_2.cjs.entry.js +222 -0
  15. package/dist/cjs/ez-search.cjs.entry.js +40 -33
  16. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +92 -0
  17. package/dist/cjs/ez-split-item.cjs.entry.js +1 -0
  18. package/dist/cjs/ez-tabselector.cjs.entry.js +8 -2
  19. package/dist/cjs/{ez-scroller_3.cjs.entry.js → ez-tree.cjs.entry.js} +0 -215
  20. package/dist/cjs/ezui.cjs.js +1 -1
  21. package/dist/cjs/index-a7b0c73d.js +16 -4
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/collection/collection-manifest.json +3 -0
  24. package/dist/collection/components/ez-chart/components/BarChart.js +27 -0
  25. package/dist/collection/components/ez-chart/components/ColumnChart.js +27 -0
  26. package/dist/collection/components/ez-chart/components/DonutChart.js +42 -0
  27. package/dist/collection/components/ez-chart/components/LineChart.js +27 -0
  28. package/dist/collection/components/ez-chart/components/PieChart.js +45 -0
  29. package/dist/collection/components/ez-chart/components/index.js +5 -0
  30. package/dist/collection/components/ez-chart/ez-chart.css +5 -0
  31. package/dist/collection/components/ez-chart/ez-chart.js +286 -0
  32. package/dist/collection/components/ez-chart/interfaces/ChartAxis.js +1 -0
  33. package/dist/collection/components/ez-chart/interfaces/ChartContext.js +14 -0
  34. package/dist/collection/components/ez-chart/interfaces/ChartOptions.js +1 -0
  35. package/dist/collection/components/ez-chart/interfaces/ChartSerie.js +1 -0
  36. package/dist/collection/components/ez-chart/interfaces/ChartStrategies.js +1 -0
  37. package/dist/collection/components/ez-chart/interfaces/ChartType.js +8 -0
  38. package/dist/collection/components/ez-chart/interfaces/index.js +5 -0
  39. package/dist/collection/components/ez-chart/test/mock-chart.js +137 -0
  40. package/dist/collection/components/ez-chart/types/BaseHighChartsRender.js +146 -0
  41. package/dist/collection/components/ez-form/ez-form.js +130 -4
  42. package/dist/collection/components/ez-form-view/custom-input/ez-custom-form-input.js +278 -0
  43. package/dist/collection/components/ez-form-view/ez-form-view.js +110 -1
  44. package/dist/collection/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.js +3 -2
  45. package/dist/collection/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.js +3 -2
  46. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +51 -22
  47. package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +6 -1
  48. package/dist/collection/components/ez-grid/controller/ag-grid/GridEditionManager.js +36 -2
  49. package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.js +59 -0
  50. package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomCellRender.js +40 -0
  51. package/dist/collection/components/ez-grid/controller/ag-grid/components/test/constants/EzGridCustomCellEditorConstants.js +11 -0
  52. package/dist/collection/components/ez-grid/controller/ag-grid/components/test/constants/EzGridCustomCellRenderConstants.js +11 -0
  53. package/dist/collection/components/ez-grid/controller/ag-grid/editor/EzCellEditor.js +10 -3
  54. package/dist/collection/components/ez-grid/controller/ag-grid/editor/EzCellRender.js +40 -0
  55. package/dist/collection/components/ez-grid/controller/ag-grid/editor/IUICellRender.js +1 -0
  56. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/NumberInput.tpl.js +3 -2
  57. package/dist/collection/components/ez-grid/controller/ag-grid/test/constants/GridEditionMock.js +40 -0
  58. package/dist/collection/components/ez-grid/ez-grid.js +235 -12
  59. package/dist/collection/components/ez-grid/interfaces/ICustomFormatter.js +1 -0
  60. package/dist/collection/components/ez-grid/interfaces/index.js +1 -0
  61. package/dist/collection/components/ez-grid/test/resources/gridDataUnit.js +19 -0
  62. package/dist/collection/components/ez-list/ez-list.js +28 -2
  63. package/dist/collection/components/ez-modal/ez-modal.js +25 -1
  64. package/dist/collection/components/ez-modal-container/ez-modal-container.js +20 -1
  65. package/dist/collection/components/ez-number-input/ez-number-input.js +46 -31
  66. package/dist/collection/components/ez-search/ez-search.js +39 -33
  67. package/dist/collection/components/ez-sidebar-button/ez-sidebar-button.css +6 -2
  68. package/dist/collection/components/ez-sidebar-button/ez-sidebar-button.js +1 -1
  69. package/dist/collection/components/ez-sidebar-navigator/ez-sidebar-navigator.css +180 -0
  70. package/dist/collection/components/ez-sidebar-navigator/ez-sidebar-navigator.js +293 -0
  71. package/dist/collection/components/ez-sidebar-navigator/interfaces/ModeMenuEnum.js +5 -0
  72. package/dist/collection/components/ez-sidebar-navigator/interfaces/SizeMenuEnum.js +6 -0
  73. package/dist/collection/components/ez-sidebar-navigator/interfaces/TypeMenuEnum.js +6 -0
  74. package/dist/collection/components/ez-sidebar-navigator/interfaces/index.js +3 -0
  75. package/dist/collection/components/ez-sidebar-navigator/messages/constants.js +5 -0
  76. package/dist/collection/components/ez-tabselector/ez-tabselector.js +34 -2
  77. package/dist/collection/utils/customEditor/interfaces/ICustomEditor.js +5 -0
  78. package/dist/collection/utils/customEditor/interfaces/ICustomEditorInfo.js +1 -0
  79. package/dist/collection/utils/customRender/interfaces/ICustomRender.js +5 -0
  80. package/dist/collection/utils/customRender/interfaces/ICustomRenderInfo.js +1 -0
  81. package/dist/collection/utils/form/DataBinder.js +31 -1
  82. package/dist/collection/utils/form/test/DataBinder.test.js +41 -4
  83. package/dist/collection/utils/form/test/resources/metadataTest.js +15 -0
  84. package/dist/collection/utils/index.js +2 -0
  85. package/dist/custom-elements/index.d.ts +18 -0
  86. package/dist/custom-elements/index.js +1173 -127
  87. package/dist/esm/ICustomRender-875b5a40.js +13 -0
  88. package/dist/esm/ez-actions-button.entry.js +1 -0
  89. package/dist/esm/ez-chart.entry.js +431 -0
  90. package/dist/esm/ez-collapsible-box.entry.js +1 -0
  91. package/dist/esm/ez-combo-box.entry.js +1 -0
  92. package/dist/esm/{ez-text-edit.entry.js → ez-custom-form-input_2.entry.js} +101 -3
  93. package/dist/esm/ez-form-view.entry.js +37 -5
  94. package/dist/esm/ez-form.entry.js +82 -3
  95. package/dist/esm/ez-grid.entry.js +312 -40
  96. package/dist/esm/ez-list.entry.js +10 -2
  97. package/dist/esm/ez-modal-container.entry.js +2 -1
  98. package/dist/esm/ez-modal.entry.js +7 -1
  99. package/dist/esm/ez-number-input.entry.js +38 -32
  100. package/dist/esm/ez-scroller_2.entry.js +217 -0
  101. package/dist/esm/ez-search.entry.js +40 -33
  102. package/dist/esm/ez-sidebar-navigator.entry.js +88 -0
  103. package/dist/esm/ez-split-item.entry.js +1 -0
  104. package/dist/esm/ez-tabselector.entry.js +8 -2
  105. package/dist/esm/{ez-scroller_3.entry.js → ez-tree.entry.js} +3 -216
  106. package/dist/esm/ezui.js +1 -1
  107. package/dist/esm/index-baa5e267.js +16 -4
  108. package/dist/esm/loader.js +1 -1
  109. package/dist/ezui/ezui.esm.js +1 -1
  110. package/dist/ezui/p-2097d0cf.entry.js +1 -0
  111. package/dist/ezui/{p-9fbb0f01.entry.js → p-32e553e5.entry.js} +2 -2
  112. package/dist/ezui/p-34b6916c.entry.js +1 -0
  113. package/dist/ezui/p-3b4eeeb6.entry.js +1 -0
  114. package/dist/ezui/p-42533ea4.entry.js +1 -0
  115. package/dist/ezui/p-4607fb89.js +1 -0
  116. package/dist/ezui/p-4d5235f1.entry.js +1 -0
  117. package/dist/ezui/p-5b205c80.entry.js +1 -0
  118. package/dist/ezui/p-7922142b.entry.js +1 -0
  119. package/dist/ezui/p-84e439b9.entry.js +1 -0
  120. package/dist/ezui/p-8888d9ed.entry.js +1 -0
  121. package/dist/ezui/p-922ac38b.entry.js +1 -0
  122. package/dist/ezui/p-a31b9c90.entry.js +1 -0
  123. package/dist/ezui/p-aba3da00.entry.js +1 -0
  124. package/dist/ezui/p-bcb53f27.entry.js +1 -0
  125. package/dist/ezui/p-c0d9c4f8.entry.js +1 -0
  126. package/dist/ezui/p-cdc472cc.entry.js +1 -0
  127. package/dist/ezui/p-ecc2c1ec.entry.js +1 -0
  128. package/dist/ezui/p-fcf0acce.entry.js +1 -0
  129. package/dist/types/components/ez-chart/components/BarChart.d.ts +9 -0
  130. package/dist/types/components/ez-chart/components/ColumnChart.d.ts +9 -0
  131. package/dist/types/components/ez-chart/components/DonutChart.d.ts +9 -0
  132. package/dist/types/components/ez-chart/components/LineChart.d.ts +9 -0
  133. package/dist/types/components/ez-chart/components/PieChart.d.ts +9 -0
  134. package/dist/types/components/ez-chart/components/index.d.ts +5 -0
  135. package/dist/types/components/ez-chart/ez-chart.d.ts +58 -0
  136. package/dist/types/components/ez-chart/interfaces/ChartAxis.d.ts +7 -0
  137. package/dist/types/components/ez-chart/interfaces/ChartContext.d.ts +11 -0
  138. package/dist/types/components/ez-chart/interfaces/ChartOptions.d.ts +10 -0
  139. package/dist/types/components/ez-chart/interfaces/ChartSerie.d.ts +20 -0
  140. package/dist/types/components/ez-chart/interfaces/ChartStrategies.d.ts +7 -0
  141. package/dist/types/components/ez-chart/interfaces/ChartType.d.ts +7 -0
  142. package/dist/types/components/ez-chart/interfaces/index.d.ts +5 -0
  143. package/dist/types/components/ez-chart/types/BaseHighChartsRender.d.ts +15 -0
  144. package/dist/types/components/ez-form/ez-form.d.ts +20 -1
  145. package/dist/types/components/ez-form-view/custom-input/ez-custom-form-input.d.ts +48 -0
  146. package/dist/types/components/ez-form-view/ez-form-view.d.ts +16 -1
  147. package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.d.ts +1 -1
  148. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +37 -0
  149. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +13 -4
  150. package/dist/types/components/ez-grid/controller/ag-grid/DataSource.d.ts +1 -0
  151. package/dist/types/components/ez-grid/controller/ag-grid/GridEditionManager.d.ts +7 -1
  152. package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.d.ts +19 -0
  153. package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellRender.d.ts +14 -0
  154. package/dist/types/components/ez-grid/controller/ag-grid/components/test/constants/EzGridCustomCellEditorConstants.d.ts +11 -0
  155. package/dist/types/components/ez-grid/controller/ag-grid/components/test/constants/EzGridCustomCellRenderConstants.d.ts +11 -0
  156. package/dist/types/components/ez-grid/controller/ag-grid/editor/EzCellEditor.d.ts +6 -0
  157. package/dist/types/components/ez-grid/controller/ag-grid/editor/EzCellRender.d.ts +15 -0
  158. package/dist/types/components/ez-grid/controller/ag-grid/editor/IUICellRender.d.ts +10 -0
  159. package/dist/types/components/ez-grid/controller/ag-grid/test/constants/GridEditionMock.d.ts +6 -0
  160. package/dist/types/components/ez-grid/ez-grid.d.ts +34 -1
  161. package/dist/types/components/ez-grid/interfaces/ICustomFormatter.d.ts +5 -0
  162. package/dist/types/components/ez-grid/interfaces/index.d.ts +1 -0
  163. package/dist/types/components/ez-grid/test/resources/gridDataUnit.d.ts +2 -0
  164. package/dist/types/components/ez-list/ez-list.d.ts +5 -0
  165. package/dist/types/components/ez-modal/ez-modal.d.ts +5 -0
  166. package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +4 -0
  167. package/dist/types/components/ez-number-input/ez-number-input.d.ts +3 -0
  168. package/dist/types/components/ez-search/ez-search.d.ts +4 -2
  169. package/dist/types/components/ez-sidebar-navigator/ez-sidebar-navigator.d.ts +57 -0
  170. package/dist/types/components/ez-sidebar-navigator/interfaces/ModeMenuEnum.d.ts +4 -0
  171. package/dist/types/components/ez-sidebar-navigator/interfaces/SizeMenuEnum.d.ts +5 -0
  172. package/dist/types/components/ez-sidebar-navigator/interfaces/TypeMenuEnum.d.ts +5 -0
  173. package/dist/types/components/ez-sidebar-navigator/interfaces/index.d.ts +3 -0
  174. package/dist/types/components/ez-sidebar-navigator/messages/constants.d.ts +5 -0
  175. package/dist/types/components/ez-tabselector/ez-tabselector.d.ts +2 -1
  176. package/dist/types/components.d.ts +351 -5
  177. package/dist/types/utils/customEditor/interfaces/ICustomEditor.d.ts +31 -0
  178. package/dist/types/utils/customEditor/interfaces/ICustomEditorInfo.d.ts +5 -0
  179. package/dist/types/utils/customRender/interfaces/ICustomRender.d.ts +29 -0
  180. package/dist/types/utils/customRender/interfaces/ICustomRenderInfo.d.ts +5 -0
  181. package/dist/types/utils/form/DataBinder.d.ts +5 -0
  182. package/dist/types/utils/form/test/resources/metadataTest.d.ts +2 -0
  183. package/dist/types/utils/index.d.ts +2 -0
  184. package/package.json +2 -1
  185. package/react/components.d.ts +3 -0
  186. package/react/components.js +3 -0
  187. package/react/components.js.map +1 -1
  188. package/dist/ezui/p-0447d17c.entry.js +0 -1
  189. package/dist/ezui/p-20ec22c0.entry.js +0 -1
  190. package/dist/ezui/p-2a1a0e04.entry.js +0 -1
  191. package/dist/ezui/p-2dcb50d4.entry.js +0 -1
  192. package/dist/ezui/p-30775e7f.entry.js +0 -1
  193. package/dist/ezui/p-41ac6cd9.entry.js +0 -1
  194. package/dist/ezui/p-637f69f2.entry.js +0 -1
  195. package/dist/ezui/p-786559c5.entry.js +0 -1
  196. package/dist/ezui/p-91f626d3.entry.js +0 -1
  197. package/dist/ezui/p-99ead599.entry.js +0 -1
  198. package/dist/ezui/p-b567fa8c.entry.js +0 -1
  199. package/dist/ezui/p-bae3d0aa.entry.js +0 -1
  200. package/dist/ezui/p-db77a984.entry.js +0 -1
  201. package/dist/ezui/p-f3c526cc.entry.js +0 -1
@@ -0,0 +1,293 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { ElementIDUtils } from "@sankhyalabs/core";
3
+ import { EzScrollDirection } from "../ez-scroller/EzScrollDirection";
4
+ import { ModeMenuEnum, SizeMenuEnum, TypeMenuEnum } from "./interfaces";
5
+ import { MESSAGES } from './messages/constants';
6
+ export class EzSidebarNavigator {
7
+ constructor() {
8
+ this.handleToggleSidebar = () => {
9
+ this.open = !this.open;
10
+ };
11
+ this.handleToggleMode = () => {
12
+ this.mode = this.mode === ModeMenuEnum.FIXED ? ModeMenuEnum.FLOAT : ModeMenuEnum.FIXED;
13
+ this.ezChangeMode.emit(this.mode);
14
+ };
15
+ this.type = TypeMenuEnum.DYNAMIC;
16
+ this.mode = ModeMenuEnum.FLOAT;
17
+ this.size = SizeMenuEnum.SMALL;
18
+ this.isResponsive = false;
19
+ this.titleMenu = "";
20
+ this.showCollapseMenu = true;
21
+ this.showFixedButton = true;
22
+ this.open = false;
23
+ }
24
+ /**
25
+ * Método para fixar/desafixar o menu, emitindo o evento ezChangeMode.
26
+ */
27
+ async changeModeMenu() {
28
+ if (this.type === TypeMenuEnum.DYNAMIC) {
29
+ this.handleToggleMode();
30
+ }
31
+ }
32
+ /**
33
+ * Método para fechar o menu automaticamente após uma ação, fluxo, etc.
34
+ */
35
+ async closeSidebar() {
36
+ this.open = false;
37
+ }
38
+ /**
39
+ * Método para abrir o menu automaticamente após uma ação, fluxo, etc.
40
+ */
41
+ async openSidebar() {
42
+ this.open = true;
43
+ }
44
+ componentDidLoad() {
45
+ if (this.type === TypeMenuEnum.FIXED) {
46
+ this.mode = ModeMenuEnum.FIXED;
47
+ this.open = true;
48
+ }
49
+ }
50
+ render() {
51
+ ElementIDUtils.addIDInfoIfNotExists(this._element);
52
+ return (h(Host, null, h("ez-sidebar-button", { class: this.open ? "hidden" : "", onEzClick: this.mode === ModeMenuEnum.FIXED ? this.handleToggleSidebar : undefined, onMouseEnter: this.mode === ModeMenuEnum.FLOAT ? this.handleToggleSidebar : undefined, "aria-controls": "navigator", "aria-expanded": this.open, "data-element-id": ElementIDUtils.getInternalIDInfo("openButton") }), this.open ? (h("aside", { tabIndex: -1, id: "navigator", class: `ez-col ez-col--sd-12 ez-col--tb-3 ez-sidebar-navigator ${this.mode === ModeMenuEnum.FLOAT ? 'dynamic' : 'fixed'} ${this.isResponsive ? 'responsive' : this.size} ${!this.open ? "hidden" : "show"}`, "data-element-id": ElementIDUtils.getInternalIDInfo("sidebar"), onMouseLeave: this.type !== TypeMenuEnum.FIXED && this.mode === ModeMenuEnum.FLOAT ? this.handleToggleSidebar : undefined }, h("header", { class: "ez-sidebar-navigator__header" }, h("slot", { name: "start" }), this.titleMenu !== '' && (h("div", { class: "ez-sidebar-navigator__title", title: this.titleMenu }, this.titleMenu)), !this.titleMenu && (h("slot", { name: "content" })), h("div", { class: "ez-sidebar-navigator__end" }, h("slot", { name: "end" }), (this.type === TypeMenuEnum.DYNAMIC && this.showFixedButton) && (h("ez-button", { onClick: this.handleToggleMode, mode: "icon", size: "small", iconName: this.mode === ModeMenuEnum.FIXED ? "un-pin" : "push-pin", title: this.mode === ModeMenuEnum.FIXED ? MESSAGES.UN_PIN_MENU : MESSAGES.PUSH_PIN_MENU, "aria-label": this.mode === ModeMenuEnum.FIXED ? MESSAGES.UN_PIN_MENU : MESSAGES.PUSH_PIN_MENU, "aria-controls": "navigator", "data-element-id": ElementIDUtils.getInternalIDInfo("pinButton") })), (this.mode === ModeMenuEnum.FIXED && this.showCollapseMenu) && (h("ez-button", { onClick: this.handleToggleSidebar, class: "inverted", mode: "icon", size: "small", iconName: "show_menu", title: MESSAGES.HIDE_MENU, "aria-label": MESSAGES.HIDE_MENU, "aria-controls": "navigator", "data-element-id": ElementIDUtils.getInternalIDInfo("closeButton") })))), this.titleMenu && (h("slot", { name: "content" })), h("ez-scroller", { class: "ez-sidebar-navigator__content", direction: EzScrollDirection.VERTICAL, activeShadow: true }, h("slot", null)), h("footer", { class: "ez-sidebar-navigator__footer" }, h("slot", { name: "footer" }))))
53
+ : undefined));
54
+ }
55
+ static get is() { return "ez-sidebar-navigator"; }
56
+ static get encapsulation() { return "shadow"; }
57
+ static get originalStyleUrls() {
58
+ return {
59
+ "$": ["ez-sidebar-navigator.css"]
60
+ };
61
+ }
62
+ static get styleUrls() {
63
+ return {
64
+ "$": ["ez-sidebar-navigator.css"]
65
+ };
66
+ }
67
+ static get properties() {
68
+ return {
69
+ "type": {
70
+ "type": "string",
71
+ "mutable": false,
72
+ "complexType": {
73
+ "original": "TypeMenuEnum",
74
+ "resolved": "TypeMenuEnum.DYNAMIC | TypeMenuEnum.FIXED | TypeMenuEnum.FLOAT",
75
+ "references": {
76
+ "TypeMenuEnum": {
77
+ "location": "import",
78
+ "path": "./interfaces"
79
+ }
80
+ }
81
+ },
82
+ "required": false,
83
+ "optional": false,
84
+ "docs": {
85
+ "tags": [],
86
+ "text": "Define o tipo do menu (float, fixed ou dynamic (livre))."
87
+ },
88
+ "attribute": "type",
89
+ "reflect": false,
90
+ "defaultValue": "TypeMenuEnum.DYNAMIC"
91
+ },
92
+ "mode": {
93
+ "type": "string",
94
+ "mutable": true,
95
+ "complexType": {
96
+ "original": "ModeMenuEnum",
97
+ "resolved": "ModeMenuEnum.FIXED | ModeMenuEnum.FLOAT",
98
+ "references": {
99
+ "ModeMenuEnum": {
100
+ "location": "import",
101
+ "path": "./interfaces"
102
+ }
103
+ }
104
+ },
105
+ "required": false,
106
+ "optional": false,
107
+ "docs": {
108
+ "tags": [],
109
+ "text": "Define se o menu ser\u00E1 do tipo FIXED ou FLOAT."
110
+ },
111
+ "attribute": "mode",
112
+ "reflect": false,
113
+ "defaultValue": "ModeMenuEnum.FLOAT"
114
+ },
115
+ "size": {
116
+ "type": "string",
117
+ "mutable": false,
118
+ "complexType": {
119
+ "original": "SizeMenuEnum",
120
+ "resolved": "SizeMenuEnum.LARGE | SizeMenuEnum.MEDIUM | SizeMenuEnum.SMALL",
121
+ "references": {
122
+ "SizeMenuEnum": {
123
+ "location": "import",
124
+ "path": "./interfaces"
125
+ }
126
+ }
127
+ },
128
+ "required": false,
129
+ "optional": false,
130
+ "docs": {
131
+ "tags": [],
132
+ "text": "Define o tamanho do menu (small, medium, large)."
133
+ },
134
+ "attribute": "size",
135
+ "reflect": false,
136
+ "defaultValue": "SizeMenuEnum.SMALL"
137
+ },
138
+ "isResponsive": {
139
+ "type": "boolean",
140
+ "mutable": false,
141
+ "complexType": {
142
+ "original": "boolean",
143
+ "resolved": "boolean",
144
+ "references": {}
145
+ },
146
+ "required": false,
147
+ "optional": false,
148
+ "docs": {
149
+ "tags": [],
150
+ "text": "Define se ter\u00E1 responsividade, Controle dever\u00E1 ser pelo CSS."
151
+ },
152
+ "attribute": "is-responsive",
153
+ "reflect": false,
154
+ "defaultValue": "false"
155
+ },
156
+ "titleMenu": {
157
+ "type": "string",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "string",
161
+ "resolved": "string",
162
+ "references": {}
163
+ },
164
+ "required": false,
165
+ "optional": false,
166
+ "docs": {
167
+ "tags": [],
168
+ "text": "Define o t\u00EDtulo do Sidebar Navigator"
169
+ },
170
+ "attribute": "title-menu",
171
+ "reflect": false,
172
+ "defaultValue": "\"\""
173
+ },
174
+ "showCollapseMenu": {
175
+ "type": "boolean",
176
+ "mutable": false,
177
+ "complexType": {
178
+ "original": "boolean",
179
+ "resolved": "boolean",
180
+ "references": {}
181
+ },
182
+ "required": false,
183
+ "optional": false,
184
+ "docs": {
185
+ "tags": [],
186
+ "text": "Define se o bot\u00E3o de \"Recolher Menu\" ser\u00E1 exibido"
187
+ },
188
+ "attribute": "show-collapse-menu",
189
+ "reflect": false,
190
+ "defaultValue": "true"
191
+ },
192
+ "showFixedButton": {
193
+ "type": "boolean",
194
+ "mutable": false,
195
+ "complexType": {
196
+ "original": "boolean",
197
+ "resolved": "boolean",
198
+ "references": {}
199
+ },
200
+ "required": false,
201
+ "optional": false,
202
+ "docs": {
203
+ "tags": [],
204
+ "text": "Define se o bot\u00E3o de \"Fixar Menu\" ser\u00E1 exibido"
205
+ },
206
+ "attribute": "show-fixed-button",
207
+ "reflect": false,
208
+ "defaultValue": "true"
209
+ }
210
+ };
211
+ }
212
+ static get states() {
213
+ return {
214
+ "open": {}
215
+ };
216
+ }
217
+ static get events() {
218
+ return [{
219
+ "method": "ezChangeMode",
220
+ "name": "ezChangeMode",
221
+ "bubbles": true,
222
+ "cancelable": true,
223
+ "composed": true,
224
+ "docs": {
225
+ "tags": [],
226
+ "text": "Evento emitido sempre que o modo (FLOAT ou FIXED) do menu for alterado.."
227
+ },
228
+ "complexType": {
229
+ "original": "ModeMenuEnum",
230
+ "resolved": "ModeMenuEnum.FIXED | ModeMenuEnum.FLOAT",
231
+ "references": {
232
+ "ModeMenuEnum": {
233
+ "location": "import",
234
+ "path": "./interfaces"
235
+ }
236
+ }
237
+ }
238
+ }];
239
+ }
240
+ static get methods() {
241
+ return {
242
+ "changeModeMenu": {
243
+ "complexType": {
244
+ "signature": "() => Promise<void>",
245
+ "parameters": [],
246
+ "references": {
247
+ "Promise": {
248
+ "location": "global"
249
+ }
250
+ },
251
+ "return": "Promise<void>"
252
+ },
253
+ "docs": {
254
+ "text": "M\u00E9todo para fixar/desafixar o menu, emitindo o evento ezChangeMode.",
255
+ "tags": []
256
+ }
257
+ },
258
+ "closeSidebar": {
259
+ "complexType": {
260
+ "signature": "() => Promise<void>",
261
+ "parameters": [],
262
+ "references": {
263
+ "Promise": {
264
+ "location": "global"
265
+ }
266
+ },
267
+ "return": "Promise<void>"
268
+ },
269
+ "docs": {
270
+ "text": "M\u00E9todo para fechar o menu automaticamente ap\u00F3s uma a\u00E7\u00E3o, fluxo, etc.",
271
+ "tags": []
272
+ }
273
+ },
274
+ "openSidebar": {
275
+ "complexType": {
276
+ "signature": "() => Promise<void>",
277
+ "parameters": [],
278
+ "references": {
279
+ "Promise": {
280
+ "location": "global"
281
+ }
282
+ },
283
+ "return": "Promise<void>"
284
+ },
285
+ "docs": {
286
+ "text": "M\u00E9todo para abrir o menu automaticamente ap\u00F3s uma a\u00E7\u00E3o, fluxo, etc.",
287
+ "tags": []
288
+ }
289
+ }
290
+ };
291
+ }
292
+ static get elementRef() { return "_element"; }
293
+ }
@@ -0,0 +1,5 @@
1
+ export var ModeMenuEnum;
2
+ (function (ModeMenuEnum) {
3
+ ModeMenuEnum["FLOAT"] = "float";
4
+ ModeMenuEnum["FIXED"] = "fixed";
5
+ })(ModeMenuEnum || (ModeMenuEnum = {}));
@@ -0,0 +1,6 @@
1
+ export var SizeMenuEnum;
2
+ (function (SizeMenuEnum) {
3
+ SizeMenuEnum["SMALL"] = "sm";
4
+ SizeMenuEnum["MEDIUM"] = "md";
5
+ SizeMenuEnum["LARGE"] = "lg";
6
+ })(SizeMenuEnum || (SizeMenuEnum = {}));
@@ -0,0 +1,6 @@
1
+ export var TypeMenuEnum;
2
+ (function (TypeMenuEnum) {
3
+ TypeMenuEnum["FLOAT"] = "float";
4
+ TypeMenuEnum["FIXED"] = "fixed";
5
+ TypeMenuEnum["DYNAMIC"] = "dynamic";
6
+ })(TypeMenuEnum || (TypeMenuEnum = {}));
@@ -0,0 +1,3 @@
1
+ export * from './ModeMenuEnum';
2
+ export * from './SizeMenuEnum';
3
+ export * from './TypeMenuEnum';
@@ -0,0 +1,5 @@
1
+ export const MESSAGES = {
2
+ HIDE_MENU: 'Ocultar menu',
3
+ UN_PIN_MENU: 'Desafixar menu',
4
+ PUSH_PIN_MENU: 'Fixar menu',
5
+ };
@@ -67,11 +67,17 @@ export class EzTabselector {
67
67
  this.processesTabs();
68
68
  }
69
69
  }
70
- handleTabClick(tab) {
70
+ async goToTab(tabIndex, silent = false) {
71
+ const tab = this._processedTabs.find(tab => tab.index === tabIndex);
72
+ this.handleTabClick(tab, !silent);
73
+ }
74
+ handleTabClick(tab, emitChange = true) {
71
75
  this.selectedIndex = tab.index;
72
76
  this._focusedIndex = undefined;
73
77
  this.selectedTab = tab.tabKey;
74
- this.ezChange.emit(tab);
78
+ if (emitChange) {
79
+ this.ezChange.emit(tab);
80
+ }
75
81
  this.setFocusedBtn(false, tab.index);
76
82
  }
77
83
  componentWillLoad() {
@@ -316,6 +322,32 @@ export class EzTabselector {
316
322
  }
317
323
  }];
318
324
  }
325
+ static get methods() {
326
+ return {
327
+ "goToTab": {
328
+ "complexType": {
329
+ "signature": "(tabIndex: number, silent?: boolean) => Promise<void>",
330
+ "parameters": [{
331
+ "tags": [],
332
+ "text": ""
333
+ }, {
334
+ "tags": [],
335
+ "text": ""
336
+ }],
337
+ "references": {
338
+ "Promise": {
339
+ "location": "global"
340
+ }
341
+ },
342
+ "return": "Promise<void>"
343
+ },
344
+ "docs": {
345
+ "text": "",
346
+ "tags": []
347
+ }
348
+ }
349
+ };
350
+ }
319
351
  static get elementRef() { return "_hostElem"; }
320
352
  static get watchers() {
321
353
  return [{
@@ -0,0 +1,5 @@
1
+ export var CustomEditorSource;
2
+ (function (CustomEditorSource) {
3
+ CustomEditorSource["GRID"] = "GRID";
4
+ CustomEditorSource["FORM"] = "FORM";
5
+ })(CustomEditorSource || (CustomEditorSource = {}));
@@ -0,0 +1,5 @@
1
+ export var CustomRenderSource;
2
+ (function (CustomRenderSource) {
3
+ CustomRenderSource["GRID"] = "GRID";
4
+ CustomRenderSource["FORM"] = "FORM";
5
+ })(CustomRenderSource || (CustomRenderSource = {}));
@@ -1,4 +1,4 @@
1
- import { ApplicationContext, Action, WaitingChangeException, DataUnitAction } from "@sankhyalabs/core";
1
+ import { ApplicationContext, Action, WaitingChangeException, DataUnitAction, StringUtils } from "@sankhyalabs/core";
2
2
  import { RecordValidationProcessor } from "../validators/recordvalidator/RecordValidationProcessor";
3
3
  export default class DataBinder {
4
4
  constructor(dataUnit) {
@@ -30,11 +30,22 @@ export default class DataBinder {
30
30
  break;
31
31
  }
32
32
  };
33
+ this._uuid = StringUtils.generateUUID();
33
34
  this._fields = new Map();
34
35
  this._dataUnit = dataUnit;
35
36
  this.applyDefaultValues();
36
37
  this._dataUnit.subscribe(this.onDataUnitEvent);
37
38
  this._dataUnit.addInterceptor(this);
39
+ this.setContextDataBinder(dataUnit);
40
+ }
41
+ get dataBinderId() {
42
+ return this._uuid;
43
+ }
44
+ setContextDataBinder(dataUnit) {
45
+ const dataBindersByDataUnit = ApplicationContext.getContextValue("__DATABINDER_BY_DATAUNIT__") || new Map();
46
+ const dataBinders = [...(dataBindersByDataUnit.get(dataUnit.dataUnitId) || []), this];
47
+ dataBindersByDataUnit.set(dataUnit.dataUnitId, dataBinders);
48
+ ApplicationContext.setContextValue("__DATABINDER_BY_DATAUNIT__", dataBindersByDataUnit);
38
49
  }
39
50
  applyDefaultValues() {
40
51
  const recordIds = (this._dataUnit.getAddedRecords() || []).map(r => r.__record__id__);
@@ -61,9 +72,17 @@ export default class DataBinder {
61
72
  getMessageForField: field => this.getErrorMessage(field)
62
73
  }, recordsValidator);
63
74
  }
75
+ disconnectDataUnit() {
76
+ const dataBindersByDataUnit = ApplicationContext.getContextValue("__DATABINDER_BY_DATAUNIT__") || new Map();
77
+ const dataBinders = dataBindersByDataUnit.get(this._dataUnit.dataUnitId);
78
+ const dataBindersFiltered = dataBinders.filter((dataBinder) => dataBinder.dataBinderId !== this.dataBinderId);
79
+ dataBindersByDataUnit.set(this._dataUnit.dataUnitId, dataBindersFiltered);
80
+ ApplicationContext.setContextValue("__DATABINDER_BY_DATAUNIT__", dataBindersByDataUnit);
81
+ }
64
82
  onDisconnectedCallback() {
65
83
  this._dataUnit.unsubscribe(this.onDataUnitEvent);
66
84
  this._dataUnit.removeInterceptor(this);
85
+ this.disconnectDataUnit();
67
86
  }
68
87
  getCurrentRecordId() {
69
88
  const record = this._dataUnit.getSelectedRecord();
@@ -110,6 +129,17 @@ export default class DataBinder {
110
129
  validate() {
111
130
  return this._recordValidatorProcessor.validate();
112
131
  }
132
+ static async validateByDataunit(dataUnit) {
133
+ try {
134
+ const dataBindersByDataUnit = ApplicationContext.getContextValue("__DATABINDER_BY_DATAUNIT__");
135
+ const dataBinders = dataBindersByDataUnit.get(dataUnit.dataUnitId) || [];
136
+ await Promise.all(dataBinders.map((dataBinder) => dataBinder.validate()));
137
+ return true;
138
+ }
139
+ catch (_a) {
140
+ return false;
141
+ }
142
+ }
113
143
  updateErrorMessage(fieldName, field, message) {
114
144
  if (message == undefined) {
115
145
  message = this._dataUnit.getInvalidMessage(this.getCurrentRecordId(), fieldName);
@@ -1,9 +1,46 @@
1
- import { DataUnit } from "@sankhyalabs/core";
1
+ import { ApplicationContext, DataUnit } from "@sankhyalabs/core";
2
2
  import DataBinder from "../DataBinder";
3
+ import { metadataTest } from "./resources/metadataTest";
3
4
  describe('DataBinder', () => {
5
+ let dataBinder;
6
+ let dataUnit;
7
+ beforeEach(() => {
8
+ dataUnit = new DataUnit();
9
+ dataUnit.metadata = metadataTest;
10
+ dataUnit.addRecord();
11
+ dataUnit.selectFirst();
12
+ dataBinder = new DataBinder(dataUnit);
13
+ });
4
14
  it('constructor', async () => {
5
- const du = new DataUnit();
6
- const db = new DataBinder(du);
7
- expect(db).toBeTruthy();
15
+ expect(dataBinder).toBeTruthy();
16
+ });
17
+ it('ApplicationContext should be filled', () => {
18
+ const dataBindersByDataUnit = ApplicationContext.getContextValue("__DATABINDER_BY_DATAUNIT__") || new Map();
19
+ expect(dataBindersByDataUnit.get(dataUnit.dataUnitId).length).toBeGreaterThan(0);
20
+ });
21
+ it('ApplicationContext should be filled with two binders', () => {
22
+ new DataBinder(dataUnit);
23
+ const dataBindersByDataUnit = ApplicationContext.getContextValue("__DATABINDER_BY_DATAUNIT__") || new Map();
24
+ expect(dataBindersByDataUnit.get(dataUnit.dataUnitId).length).toBe(2);
25
+ });
26
+ it('should be invalid for empty fields', async () => {
27
+ const isValid = await DataBinder.validateByDataunit(dataUnit);
28
+ dataBinder['_recordValidatorProcessor'] = {
29
+ validate: () => Promise.reject(),
30
+ };
31
+ expect(isValid).toBe(false);
32
+ });
33
+ it('should be valid for filled fields', async () => {
34
+ await dataUnit.setFieldValue('NAME', 'João');
35
+ dataBinder['_recordValidatorProcessor'] = {
36
+ validate: () => Promise.resolve(),
37
+ };
38
+ const isValid = await DataBinder.validateByDataunit(dataUnit);
39
+ expect(isValid).toBe(true);
40
+ });
41
+ it('should be remove dataBinder on disconnected', async () => {
42
+ dataBinder.onDisconnectedCallback();
43
+ const dataBindersByDataUnit = ApplicationContext.getContextValue("__DATABINDER_BY_DATAUNIT__") || new Map();
44
+ expect(dataBindersByDataUnit.get(dataUnit.dataUnitId).length).toBe(0);
8
45
  });
9
46
  });
@@ -0,0 +1,15 @@
1
+ import { DataType, UserInterface } from "@sankhyalabs/core";
2
+ export const metadataTest = {
3
+ "name": "clients",
4
+ "label": "clients",
5
+ "fields": [
6
+ {
7
+ "name": "NAME",
8
+ "label": "Nome",
9
+ "dataType": DataType.TEXT,
10
+ "userInterface": UserInterface.SHORTTEXT,
11
+ "readOnly": false,
12
+ "required": true
13
+ },
14
+ ]
15
+ };
@@ -4,3 +4,5 @@ export { DialogType } from '../components/ez-dialog/DialogType';
4
4
  export { CheckMode } from '../components/ez-check/CheckMode';
5
5
  export { FormMetadata } from './form/FormMetadata';
6
6
  export { default as DataBinder } from './form/DataBinder';
7
+ export { CustomEditorSource } from './customEditor/interfaces/ICustomEditor';
8
+ export { CustomRenderSource } from './customRender/interfaces/ICustomRender';
@@ -56,6 +56,12 @@ export const EzCardItem: {
56
56
  new (): EzCardItem;
57
57
  };
58
58
 
59
+ interface EzChart extends Components.EzChart, HTMLElement {}
60
+ export const EzChart: {
61
+ prototype: EzChart;
62
+ new (): EzChart;
63
+ };
64
+
59
65
  interface EzCheck extends Components.EzCheck, HTMLElement {}
60
66
  export const EzCheck: {
61
67
  prototype: EzCheck;
@@ -80,6 +86,12 @@ export const EzComboBox: {
80
86
  new (): EzComboBox;
81
87
  };
82
88
 
89
+ interface EzCustomFormInput extends Components.EzCustomFormInput, HTMLElement {}
90
+ export const EzCustomFormInput: {
91
+ prototype: EzCustomFormInput;
92
+ new (): EzCustomFormInput;
93
+ };
94
+
83
95
  interface EzDateInput extends Components.EzDateInput, HTMLElement {}
84
96
  export const EzDateInput: {
85
97
  prototype: EzDateInput;
@@ -218,6 +230,12 @@ export const EzSidebarButton: {
218
230
  new (): EzSidebarButton;
219
231
  };
220
232
 
233
+ interface EzSidebarNavigator extends Components.EzSidebarNavigator, HTMLElement {}
234
+ export const EzSidebarNavigator: {
235
+ prototype: EzSidebarNavigator;
236
+ new (): EzSidebarNavigator;
237
+ };
238
+
221
239
  interface EzSkeleton extends Components.EzSkeleton, HTMLElement {}
222
240
  export const EzSkeleton: {
223
241
  prototype: EzSkeleton;