@sankhyalabs/ezui 5.22.0-dev.109 → 5.22.0-dev.110

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 (248) hide show
  1. package/dist/cjs/{DataBinder-e92314c2.js → DataBinder-c2060474.js} +3 -2
  2. package/dist/cjs/{constants-2714478b.js → constants-569271bc.js} +4 -0
  3. package/dist/cjs/ez-actions-button.cjs.entry.js +2 -2
  4. package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
  5. package/dist/cjs/ez-alert.cjs.entry.js +1 -1
  6. package/dist/cjs/ez-application.cjs.entry.js +1 -1
  7. package/dist/cjs/ez-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/ez-breadcrumb.cjs.entry.js +1 -1
  9. package/dist/cjs/ez-button.cjs.entry.js +1 -1
  10. package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-card-item_2.cjs.entry.js +4 -1218
  12. package/dist/cjs/ez-chart.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-check.cjs.entry.js +1 -1
  14. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-collapsible-box.cjs.entry.js +2 -2
  16. package/dist/cjs/ez-combo-box-list_3.cjs.entry.js +4 -4
  17. package/dist/cjs/ez-combo-box.cjs.entry.js +2 -8
  18. package/dist/cjs/ez-date-input.cjs.entry.js +1 -1
  19. package/dist/cjs/ez-date-time-input.cjs.entry.js +1 -1
  20. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  21. package/dist/cjs/ez-double-list.cjs.entry.js +1 -1
  22. package/dist/cjs/ez-dropdown_2.cjs.entry.js +1 -1
  23. package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
  24. package/dist/cjs/ez-filter-input.cjs.entry.js +1 -1
  25. package/dist/cjs/ez-form-view.cjs.entry.js +15 -8
  26. package/dist/cjs/ez-form.cjs.entry.js +2 -2
  27. package/dist/cjs/ez-grid.cjs.entry.js +161 -21
  28. package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-icon.cjs.entry.js +1 -1
  30. package/dist/cjs/ez-list.cjs.entry.js +1 -1
  31. package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/ez-modal-container.cjs.entry.js +1 -1
  33. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  34. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +1 -1
  35. package/dist/cjs/ez-number-input.cjs.entry.js +1 -1
  36. package/dist/cjs/ez-popover-plus_3.cjs.entry.js +1 -1
  37. package/dist/cjs/ez-popover.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-popup.cjs.entry.js +1 -1
  39. package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
  40. package/dist/cjs/ez-scroller_2.cjs.entry.js +1 -1
  41. package/dist/cjs/ez-search-plus.cjs.entry.js +369 -0
  42. package/dist/cjs/ez-search-result-list.cjs.entry.js +98 -0
  43. package/dist/cjs/ez-search.cjs.entry.js +3 -3
  44. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
  45. package/dist/cjs/ez-split-button.cjs.entry.js +1 -1
  46. package/dist/cjs/ez-split-item.cjs.entry.js +2 -2
  47. package/dist/cjs/ez-split-panel.cjs.entry.js +1 -1
  48. package/dist/cjs/ez-tabselector.cjs.entry.js +1 -1
  49. package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
  50. package/dist/cjs/ez-text-input.cjs.entry.js +21 -88
  51. package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
  52. package/dist/cjs/ez-toast.cjs.entry.js +1 -1
  53. package/dist/cjs/ez-tooltip.cjs.entry.js +105 -30
  54. package/dist/cjs/ez-tree.cjs.entry.js +1 -1
  55. package/dist/cjs/ez-upload.cjs.entry.js +1 -1
  56. package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
  57. package/dist/cjs/ezui.cjs.js +2 -2
  58. package/dist/cjs/filter-column.cjs.entry.js +1 -1
  59. package/dist/cjs/floating-ui.dom.esm-017acce4.js +1404 -0
  60. package/dist/cjs/{index-9e5554cb.js → index-a7b0c73d.js} +8 -3
  61. package/dist/cjs/loader.cjs.js +2 -2
  62. package/dist/cjs/{ICustomRender-6fafffce.js → types-6a5df0c7.js} +8 -0
  63. package/dist/collection/collection-manifest.json +12 -0
  64. package/dist/collection/components/ez-combo-box/ez-combo-box.js +1 -8
  65. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +3 -1
  66. package/dist/collection/components/ez-form-view/fieldbuilder/templates/SearchInputPlus.tpl.js +6 -0
  67. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +92 -8
  68. package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +21 -4
  69. package/dist/collection/components/ez-grid/controller/ag-grid/GridEditionManager.js +31 -7
  70. package/dist/collection/components/ez-grid/controller/ag-grid/editor/EzCellEditor.js +2 -0
  71. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/SearchPlus.tpl.js +15 -0
  72. package/dist/collection/components/ez-search-plus/ez-search-plus.css +373 -0
  73. package/dist/collection/components/ez-search-plus/ez-search-plus.js +952 -0
  74. package/dist/collection/components/ez-search-plus/subcomponent/ez-search-result-list/ez-search-result-list.css +227 -0
  75. package/dist/collection/components/ez-search-plus/subcomponent/ez-search-result-list/ez-search-result-list.js +279 -0
  76. package/dist/collection/components/ez-text-input/ez-text-input.css +18 -2
  77. package/dist/collection/components/ez-text-input/ez-text-input.js +39 -60
  78. package/dist/collection/components/ez-tooltip/ez-tooltip.css +52 -12
  79. package/dist/collection/components/ez-tooltip/ez-tooltip.js +217 -46
  80. package/dist/collection/utils/constants.js +2 -0
  81. package/dist/collection/utils/form/DataBinder.js +3 -2
  82. package/dist/collection/utils/index.js +1 -0
  83. package/dist/collection/utils/search/types.js +7 -0
  84. package/dist/custom-elements/index.d.ts +12 -0
  85. package/dist/custom-elements/index.js +942 -148
  86. package/dist/esm/{DataBinder-9c877244.js → DataBinder-89946126.js} +3 -2
  87. package/dist/esm/constants-b036528f.js +7 -0
  88. package/dist/esm/ez-actions-button.entry.js +2 -2
  89. package/dist/esm/ez-alert-list.entry.js +1 -1
  90. package/dist/esm/ez-alert.entry.js +1 -1
  91. package/dist/esm/ez-application.entry.js +1 -1
  92. package/dist/esm/ez-badge.entry.js +1 -1
  93. package/dist/esm/ez-breadcrumb.entry.js +1 -1
  94. package/dist/esm/ez-button.entry.js +1 -1
  95. package/dist/esm/ez-calendar.entry.js +1 -1
  96. package/dist/esm/ez-card-item_2.entry.js +2 -1216
  97. package/dist/esm/ez-chart.entry.js +1 -1
  98. package/dist/esm/ez-check.entry.js +1 -1
  99. package/dist/esm/ez-chip.entry.js +1 -1
  100. package/dist/esm/ez-collapsible-box.entry.js +2 -2
  101. package/dist/esm/ez-combo-box-list_3.entry.js +3 -3
  102. package/dist/esm/ez-combo-box.entry.js +2 -8
  103. package/dist/esm/ez-date-input.entry.js +1 -1
  104. package/dist/esm/ez-date-time-input.entry.js +1 -1
  105. package/dist/esm/ez-dialog.entry.js +1 -1
  106. package/dist/esm/ez-double-list.entry.js +1 -1
  107. package/dist/esm/ez-dropdown_2.entry.js +1 -1
  108. package/dist/esm/ez-file-item.entry.js +1 -1
  109. package/dist/esm/ez-filter-input.entry.js +1 -1
  110. package/dist/esm/ez-form-view.entry.js +16 -9
  111. package/dist/esm/ez-form.entry.js +2 -2
  112. package/dist/esm/ez-grid.entry.js +160 -20
  113. package/dist/esm/ez-guide-navigator.entry.js +1 -1
  114. package/dist/esm/ez-icon.entry.js +1 -1
  115. package/dist/esm/ez-list.entry.js +1 -1
  116. package/dist/esm/ez-loading-bar.entry.js +1 -1
  117. package/dist/esm/ez-modal-container.entry.js +1 -1
  118. package/dist/esm/ez-modal.entry.js +1 -1
  119. package/dist/esm/ez-multi-selection-list.entry.js +1 -1
  120. package/dist/esm/ez-number-input.entry.js +1 -1
  121. package/dist/esm/ez-popover-plus_3.entry.js +1 -1
  122. package/dist/esm/ez-popover.entry.js +1 -1
  123. package/dist/esm/ez-popup.entry.js +1 -1
  124. package/dist/esm/ez-radio-button.entry.js +1 -1
  125. package/dist/esm/ez-scroller_2.entry.js +1 -1
  126. package/dist/esm/ez-search-plus.entry.js +365 -0
  127. package/dist/esm/ez-search-result-list.entry.js +94 -0
  128. package/dist/esm/ez-search.entry.js +3 -3
  129. package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
  130. package/dist/esm/ez-split-button.entry.js +1 -1
  131. package/dist/esm/ez-split-item.entry.js +2 -2
  132. package/dist/esm/ez-split-panel.entry.js +1 -1
  133. package/dist/esm/ez-tabselector.entry.js +1 -1
  134. package/dist/esm/ez-text-area.entry.js +1 -1
  135. package/dist/esm/ez-text-input.entry.js +21 -88
  136. package/dist/esm/ez-time-input.entry.js +1 -1
  137. package/dist/esm/ez-toast.entry.js +1 -1
  138. package/dist/esm/ez-tooltip.entry.js +105 -30
  139. package/dist/esm/ez-tree.entry.js +1 -1
  140. package/dist/esm/ez-upload.entry.js +1 -1
  141. package/dist/esm/ez-view-stack.entry.js +1 -1
  142. package/dist/esm/ezui.js +3 -3
  143. package/dist/esm/filter-column.entry.js +1 -1
  144. package/dist/esm/floating-ui.dom.esm-5d3da819.js +1398 -0
  145. package/dist/esm/{index-5a720e56.js → index-baa5e267.js} +9 -3
  146. package/dist/esm/loader.js +3 -3
  147. package/dist/esm/{ICustomRender-875b5a40.js → types-6f6b2650.js} +9 -1
  148. package/dist/ezui/ezui.esm.js +1 -1
  149. package/dist/ezui/{p-e6b38ade.entry.js → p-0306dff7.entry.js} +1 -1
  150. package/dist/ezui/{p-91ccae0c.entry.js → p-09de35a2.entry.js} +1 -1
  151. package/dist/ezui/{p-1f7241cd.entry.js → p-0bffeffc.entry.js} +1 -1
  152. package/dist/ezui/{p-88c615f0.entry.js → p-0fa52b0f.entry.js} +1 -1
  153. package/dist/ezui/{p-c96fbbef.entry.js → p-17de16e5.entry.js} +1 -1
  154. package/dist/ezui/p-1a060042.entry.js +1 -0
  155. package/dist/ezui/{p-81461d2f.entry.js → p-1e7a8633.entry.js} +1 -1
  156. package/dist/ezui/{p-a8c7473b.entry.js → p-1ec8bdd2.entry.js} +46 -46
  157. package/dist/ezui/{p-6b51c9cc.entry.js → p-1f50fa05.entry.js} +1 -1
  158. package/dist/ezui/{p-cf33bc48.entry.js → p-20c024f7.entry.js} +1 -1
  159. package/dist/ezui/{p-e4c7eb39.js → p-23a36bb6.js} +2 -2
  160. package/dist/ezui/{p-a537a117.entry.js → p-248d4f54.entry.js} +1 -1
  161. package/dist/ezui/{p-8f49705f.entry.js → p-2872fd16.entry.js} +1 -1
  162. package/dist/ezui/{p-06f1b8e4.entry.js → p-288631d1.entry.js} +1 -1
  163. package/dist/ezui/{p-ca8936df.entry.js → p-2f45506d.entry.js} +1 -1
  164. package/dist/ezui/p-3176a6ef.entry.js +1 -0
  165. package/dist/ezui/{p-23dab72f.entry.js → p-31b71e50.entry.js} +1 -1
  166. package/dist/ezui/{p-0378416a.entry.js → p-44caad9a.entry.js} +1 -1
  167. package/dist/ezui/{p-b8b5e643.entry.js → p-4e0628a7.entry.js} +1 -1
  168. package/dist/ezui/{p-7567ccdd.entry.js → p-555c9018.entry.js} +1 -1
  169. package/dist/ezui/{p-9066b0b0.entry.js → p-56fe5341.entry.js} +1 -1
  170. package/dist/ezui/p-5895e687.js +1 -0
  171. package/dist/ezui/p-5a14f506.entry.js +1 -0
  172. package/dist/ezui/{p-044d46d5.entry.js → p-5b205c80.entry.js} +1 -1
  173. package/dist/ezui/{p-33b720aa.entry.js → p-5ec0ae79.entry.js} +1 -1
  174. package/dist/ezui/{p-6fc26622.entry.js → p-5ed81457.entry.js} +1 -1
  175. package/dist/ezui/p-5eea9886.js +1 -0
  176. package/dist/ezui/{p-fc194825.entry.js → p-6e429cff.entry.js} +1 -1
  177. package/dist/ezui/{p-11bfeca3.entry.js → p-77a4bd35.entry.js} +1 -1
  178. package/dist/ezui/{p-2069c78a.entry.js → p-7e677b7b.entry.js} +1 -1
  179. package/dist/ezui/{p-e18d9e6a.entry.js → p-7fdd479f.entry.js} +1 -1
  180. package/dist/ezui/p-81145609.entry.js +1 -0
  181. package/dist/ezui/{p-e6ebc6a9.entry.js → p-84b1c99e.entry.js} +1 -1
  182. package/dist/ezui/{p-22ea800a.entry.js → p-8ac8093c.entry.js} +1 -1
  183. package/dist/ezui/{p-82fa4b09.entry.js → p-8df1ca33.entry.js} +1 -1
  184. package/dist/ezui/p-9142b27a.entry.js +1 -0
  185. package/dist/ezui/p-9567b31a.entry.js +1 -0
  186. package/dist/ezui/{p-017aafe1.entry.js → p-9f22e1dc.entry.js} +1 -1
  187. package/dist/ezui/{p-c2b20f78.entry.js → p-9f5fa3f9.entry.js} +1 -1
  188. package/dist/ezui/{p-0cfbbe82.entry.js → p-a4cee65d.entry.js} +1 -1
  189. package/dist/ezui/{p-acddfb2e.js → p-a64cfcfc.js} +1 -1
  190. package/dist/ezui/{p-dfca5946.entry.js → p-a80b1287.entry.js} +1 -1
  191. package/dist/ezui/p-bc2f844e.entry.js +1 -0
  192. package/dist/ezui/p-bf9dec89.entry.js +1 -0
  193. package/dist/ezui/{p-92748142.entry.js → p-c0d9c4f8.entry.js} +1 -1
  194. package/dist/ezui/{p-4818b8ce.entry.js → p-c1527804.entry.js} +1 -1
  195. package/dist/ezui/p-c5df78be.entry.js +1 -0
  196. package/dist/ezui/{p-a79f3789.entry.js → p-cd07f8be.entry.js} +1 -1
  197. package/dist/ezui/{p-708b196e.entry.js → p-da1b4a38.entry.js} +1 -1
  198. package/dist/ezui/{p-c7035d65.entry.js → p-dc73e1fe.entry.js} +1 -1
  199. package/dist/ezui/{p-2f351332.entry.js → p-e06a9886.entry.js} +1 -1
  200. package/dist/ezui/p-e07e4671.js +1 -0
  201. package/dist/ezui/{p-1bb62d6b.entry.js → p-e3544d23.entry.js} +1 -1
  202. package/dist/ezui/{p-9e95bfeb.entry.js → p-e6a9041d.entry.js} +1 -1
  203. package/dist/ezui/{p-000159dc.entry.js → p-e75c7a23.entry.js} +1 -1
  204. package/dist/ezui/{p-68b2e579.entry.js → p-ea54d056.entry.js} +1 -1
  205. package/dist/ezui/{p-ba25a351.entry.js → p-ecaac11f.entry.js} +1 -1
  206. package/dist/ezui/{p-9e45446f.entry.js → p-f4861c6a.entry.js} +1 -1
  207. package/dist/ezui/{p-3eaa0f67.entry.js → p-f5a30e35.entry.js} +1 -1
  208. package/dist/ezui/{p-44b39e81.entry.js → p-fa6732f2.entry.js} +1 -1
  209. package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +0 -2
  210. package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInputPlus.tpl.d.ts +2 -0
  211. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +4 -0
  212. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +5 -0
  213. package/dist/types/components/ez-grid/controller/ag-grid/DataSource.d.ts +1 -0
  214. package/dist/types/components/ez-grid/controller/ag-grid/GridEditionManager.d.ts +1 -0
  215. package/dist/types/components/ez-grid/controller/ag-grid/editor/templates/SearchPlus.tpl.d.ts +3 -0
  216. package/dist/types/components/ez-search-plus/ez-search-plus.d.ts +184 -0
  217. package/dist/types/components/ez-search-plus/subcomponent/ez-search-result-list/ez-search-result-list.d.ts +26 -0
  218. package/dist/types/components/ez-text-input/ez-text-input.d.ts +6 -9
  219. package/dist/types/components/ez-tooltip/ez-tooltip.d.ts +37 -5
  220. package/dist/types/components.d.ts +330 -12
  221. package/dist/types/utils/constants.d.ts +2 -0
  222. package/dist/types/utils/index.d.ts +1 -0
  223. package/dist/types/utils/search/types.d.ts +12 -0
  224. package/package.json +2 -2
  225. package/react/components.d.ts +62 -60
  226. package/react/components.js +2 -0
  227. package/react/components.js.map +1 -1
  228. package/react/react-component-lib/createComponent.d.ts +1 -1
  229. package/react/react-component-lib/createComponent.js.map +1 -1
  230. package/react/react-component-lib/createOverlayComponent.js.map +1 -1
  231. package/react/react-component-lib/interfaces.js +1 -0
  232. package/react/react-component-lib/utils/attachProps.d.ts +1 -1
  233. package/react/react-component-lib/utils/attachProps.js.map +1 -1
  234. package/react/react-component-lib/utils/dev.js.map +1 -1
  235. package/react/react-component-lib/utils/index.d.ts +2 -2
  236. package/react/react-component-lib/utils/index.js.map +1 -1
  237. package/dist/collection/utils/ResponsiveInputUtils.js +0 -26
  238. package/dist/esm/constants-4e0d35b7.js +0 -5
  239. package/dist/ezui/p-05e1f4e7.js +0 -1
  240. package/dist/ezui/p-0cd9d4ec.entry.js +0 -1
  241. package/dist/ezui/p-37c840e8.entry.js +0 -1
  242. package/dist/ezui/p-4607fb89.js +0 -1
  243. package/dist/ezui/p-6d8b3298.entry.js +0 -1
  244. package/dist/ezui/p-6ec40dec.entry.js +0 -1
  245. package/dist/ezui/p-7ebbee50.entry.js +0 -1
  246. package/dist/ezui/p-e3f8660b.entry.js +0 -1
  247. package/dist/ezui/p-ede42942.entry.js +0 -1
  248. package/dist/types/utils/ResponsiveInputUtils.d.ts +0 -6
@@ -1,12 +1,12 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { ElementIDUtils, MaskFormatter } from "@sankhyalabs/core";
3
- import { applyEllipsisToInput } from "../../utils/ResponsiveInputUtils";
4
3
  export class EzTextInput {
5
4
  constructor() {
6
5
  this.label = undefined;
7
6
  this.value = undefined;
8
7
  this.enabled = true;
9
8
  this.errorMessage = undefined;
9
+ this.hasInvalid = false;
10
10
  this.mask = undefined;
11
11
  this.cleanValueMask = false;
12
12
  this.canShowError = true;
@@ -17,17 +17,26 @@ export class EzTextInput {
17
17
  this.autoFocus = false;
18
18
  this.hasRightSlotContent = false;
19
19
  }
20
+ observeHasInvalid() {
21
+ if (!this._inputElem)
22
+ return;
23
+ if (this.hasInvalid) {
24
+ this._inputElem.classList.add("hasError");
25
+ }
26
+ else {
27
+ this._inputElem.classList.remove("hasError");
28
+ }
29
+ }
20
30
  observeErrorMessage() {
21
31
  if (this._inputElem) {
22
32
  this.isInvalid().then((hasError) => {
23
- var _a;
24
33
  if (hasError) {
25
34
  this._inputElem.classList.add("hasError");
26
- (_a = this._tooltipPositioningObserver) === null || _a === void 0 ? void 0 : _a.observe(this._inputElem);
35
+ // this._tooltipPositioningObserver?.observe(this._inputElem);
27
36
  }
28
37
  else {
29
38
  this._inputElem.classList.remove("hasError");
30
- this.removeGlobalTooltip();
39
+ // this.removeGlobalTooltip();
31
40
  }
32
41
  });
33
42
  }
@@ -235,35 +244,8 @@ export class EzTextInput {
235
244
  }
236
245
  this.adjustColorContentSlot("var(--ez-text-input__input--focus--icon-color)");
237
246
  }
238
- renderGlobalTooltip() {
239
- const tooltip = document.createElement('ez-tooltip');
240
- tooltip.errorMessage = this.errorMessage;
241
- tooltip.anchoringElement = this._tooltipIconElem;
242
- document.body.appendChild(tooltip);
243
- this._tooltipElem = tooltip;
244
- }
245
- removeGlobalTooltip() {
246
- var _a;
247
- if (!this._tooltipElem)
248
- return;
249
- this._tooltipElem.remove();
250
- this._tooltipElem = undefined;
251
- (_a = this._tooltipPositioningObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this._inputElem);
252
- }
253
- createTooltipPositioningObserver() {
254
- const observer = new ResizeObserver(() => {
255
- if (!this._tooltipElem)
256
- return;
257
- if (!this._tooltipIconElem)
258
- return;
259
- clearTimeout(this._observerDebounceTimeout);
260
- this._observerDebounceTimeout = setTimeout(async () => {
261
- if (this._tooltipElem) {
262
- await this._tooltipElem.positionTooltip();
263
- }
264
- }, 200);
265
- });
266
- this._tooltipPositioningObserver = observer;
247
+ getValue() {
248
+ return this.mask && this.cleanValueMask ? this.applyMask(this.value) : this.value;
267
249
  }
268
250
  //---------------------------------------------
269
251
  // Lifecycle web component
@@ -291,7 +273,7 @@ export class EzTextInput {
291
273
  }
292
274
  }
293
275
  componentDidLoad() {
294
- var _a, _b;
276
+ var _a;
295
277
  this.observeErrorMessage();
296
278
  this.observeMask();
297
279
  this.adjustFloatingLabel();
@@ -305,37 +287,13 @@ export class EzTextInput {
305
287
  var _a;
306
288
  this._inputElem.setSelectionRange(0, (_a = this._inputElem) === null || _a === void 0 ? void 0 : _a.value.length);
307
289
  });
308
- this.createTooltipPositioningObserver();
309
- if (this._inputElem) {
310
- (_b = this._tooltipPositioningObserver) === null || _b === void 0 ? void 0 : _b.observe(this._inputElem);
311
- applyEllipsisToInput(this._inputElem);
312
- }
313
- }
314
- componentDidRender() {
315
- if (this._tooltipIconElem && !this._tooltipElem) {
316
- this.renderGlobalTooltip();
317
- }
318
- }
319
- componentDidUpdate() {
320
- if (this._tooltipIconElem && this._tooltipElem) {
321
- this._tooltipElem.positionTooltip();
322
- }
323
- }
324
- disconnectedCallback() {
325
- if (this._tooltipPositioningObserver) {
326
- this._tooltipPositioningObserver.disconnect();
327
- }
328
- if (this._observerDebounceTimeout) {
329
- clearTimeout(this._observerDebounceTimeout);
330
- }
331
- this.removeGlobalTooltip();
332
290
  }
333
291
  render() {
334
292
  ElementIDUtils.addIDInfoIfNotExists(this._hostElement, 'input');
335
293
  return (h(Host, { style: this._hostElement.classList.contains("grid_editor") ? { "height": "100%" } : null }, h("slot", { name: "leftIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }), this.label && this.mode != "slim" ?
336
294
  h("label", { ref: (el) => this._labelElem = el, class: `${this.enabled ? "input__label" : "input__label input__label--disabled"} ${this.errorMessage ? "hasError" : ""}`, onClick: () => this._inputElem.focus(), title: this.label }, this.label)
337
- : null, h("input", { "data-element-id": ElementIDUtils.getInternalIDInfo("input"), onFocus: () => this.doFocus(), ref: (el) => this._inputElem = el, type: this.password ? "password" : "text", class: `${this.mode === "slim" ? "input--slim" : ""}`, placeholder: this.mode === "slim" && this.label ? this.label : "", value: this.mask && this.cleanValueMask ? this.applyMask(this.value) : this.value, disabled: !this.enabled, onInput: () => { this.handleChange(); }, onFocusout: () => { this.handleFocusout(); } }), this.canShowError && this.mode != "slim" && this.errorMessage &&
338
- h("ez-icon", { class: `tooltip-icon ${this.errorMessage ? "hasError" : ""} ${this.hasRightSlotContent ? "rightIconSlot" : ""}`, "data-element-id": ElementIDUtils.getInternalIDInfo("tooltip-icon"), ref: (el) => this._tooltipIconElem = el, iconName: "alert-circle" }), h("slot", { name: "rightIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }, " ")));
295
+ : null, h("input", { "data-element-id": ElementIDUtils.getInternalIDInfo("input"), onFocus: () => this.doFocus(), ref: (el) => this._inputElem = el, type: this.password ? "password" : "text", class: `${this.mode === "slim" ? "input--slim" : ""}`, placeholder: this.mode === "slim" && this.label ? this.label : "", value: this.getValue(), disabled: !this.enabled, onInput: () => { this.handleChange(); }, onFocusout: () => { this.handleFocusout(); } }), h("ez-tooltip", { anchoringElement: this._hostElement, message: this.getValue(), minWidth: 30 }), this.canShowError && this.mode != "slim" && this.errorMessage &&
296
+ h("ez-tooltip", { type: "error", message: this.errorMessage }, h("ez-icon", { class: `tooltip-icon ${this.errorMessage ? "hasError" : ""} ${this.hasRightSlotContent ? "rightIconSlot" : ""}`, "data-element-id": ElementIDUtils.getInternalIDInfo("tooltip-icon"), ref: (el) => this._tooltipIconElem = el, iconName: "alert-circle" })), h("slot", { name: "rightIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }, " ")));
339
297
  }
340
298
  static get is() { return "ez-text-input"; }
341
299
  static get encapsulation() { return "shadow"; }
@@ -420,6 +378,24 @@ export class EzTextInput {
420
378
  "attribute": "error-message",
421
379
  "reflect": true
422
380
  },
381
+ "hasInvalid": {
382
+ "type": "boolean",
383
+ "mutable": true,
384
+ "complexType": {
385
+ "original": "boolean",
386
+ "resolved": "boolean",
387
+ "references": {}
388
+ },
389
+ "required": false,
390
+ "optional": false,
391
+ "docs": {
392
+ "tags": [],
393
+ "text": "Define se o campo est\u00E1 em estado inv\u00E1lido (bordas vermelhas)."
394
+ },
395
+ "attribute": "has-invalid",
396
+ "reflect": true,
397
+ "defaultValue": "false"
398
+ },
423
399
  "mask": {
424
400
  "type": "string",
425
401
  "mutable": false,
@@ -648,6 +624,9 @@ export class EzTextInput {
648
624
  static get elementRef() { return "_hostElement"; }
649
625
  static get watchers() {
650
626
  return [{
627
+ "propName": "hasInvalid",
628
+ "methodName": "observeHasInvalid"
629
+ }, {
651
630
  "propName": "errorMessage",
652
631
  "methodName": "observeErrorMessage"
653
632
  }, {
@@ -1,20 +1,60 @@
1
1
  :host {
2
+ --triangle-size: 8px;
3
+ }
4
+
5
+ .tooltip {
2
6
  position: absolute;
3
7
  z-index: var(--elevation--24);
4
- background: var(--color-alert--error-800, #BD0025);
5
8
  padding: var(--space--extra-small, 3px) var(--space--small, 6px);
6
- color: var(--color--inverted);
7
9
  border-radius: var(--border--radius-small);
8
- display: none; /* Initially hide the tooltip */
9
- transform: translateX(calc(-50% + 12px)) translateY(8px);
10
+ box-sizing: border-box;
11
+ font-family: var(--font-pattern , 'Roboto', sans-serif);
12
+ font-size: var(--text--small, 12px);
13
+ font-weight: var(--text-weight--medium, 400);
14
+ text-align: center;
15
+ /* Initially hide the tooltip */
16
+ display: none;
10
17
  }
11
18
 
12
- .tooltip::after{
13
- --triangle-size: 8px;
14
- content: '';
15
- right: 50%;
16
- border: var(--triangle-size) solid transparent;
17
- border-bottom-color: var(--color-alert--error-800, #BD0025);
19
+ .arrow {
18
20
  position: absolute;
19
- transform: translateX(calc(50%)) translateY(-100%);
20
- }
21
+ width: var(--triangle-size);
22
+ height: var(--triangle-size);
23
+ transform: rotate(45deg);
24
+ }
25
+
26
+ .default-tooltip {
27
+ background: var(--title--primary, #2b3a54);
28
+ color: var(--color--inverted);
29
+ }
30
+
31
+ .default-tooltip .arrow {
32
+ background: var(--title--primary, #2b3a54);
33
+ }
34
+
35
+ .error-tooltip {
36
+ background: var(--color-alert--error-800, #BD0025);
37
+ color: var(--color--error-200, #F7E0E5);
38
+ }
39
+
40
+ .error-tooltip .arrow {
41
+ background: var(--color-alert--error-800, #BD0025);
42
+ }
43
+
44
+ .success-tooltip {
45
+ background: var(--color--success, #00cb94);
46
+ color: var(--color--success-200, #EBFFFA);
47
+ }
48
+
49
+ .success-tooltip .arrow {
50
+ background: var(--color--success, #00cb94);
51
+ }
52
+
53
+ .warning-tooltip {
54
+ background: var(--color--warning, #f2d410);
55
+ color: var(--color--warning-200, #FDF8D8);
56
+ }
57
+
58
+ .warning-tooltip .arrow {
59
+ background: var(--color--warning, #f2d410);
60
+ }
@@ -1,44 +1,115 @@
1
+ import { arrow, computePosition, flip, offset, shift } from "@floating-ui/dom";
1
2
  import { ElementIDUtils } from "@sankhyalabs/core";
2
- import { h } from "@stencil/core";
3
+ import { Fragment, h } from "@stencil/core";
3
4
  export class EzTooltip {
4
5
  constructor() {
5
- this.errorMessage = undefined;
6
+ this._opened = false;
7
+ this.message = undefined;
6
8
  this.anchoringElement = undefined;
9
+ this.placement = 'bottom';
10
+ this.gapOptions = { horizontalGap: 0, verticalGap: 0 };
11
+ this.type = 'default';
12
+ this.debouncingTime = 500;
13
+ this.active = true;
14
+ this.minWidth = 150;
7
15
  }
8
- /**
9
- * TODO: Implementar a possibilidade de definir a posição do tooltip.
10
- */
11
- // @Prop() tooltipSide: 'left' | 'right' | 'top' | 'bottom' = 'bottom';
12
- /**
13
- * Reposiciona o tooltip de acordo com a posição do elemento de ancoragem.
14
- */
15
- async positionTooltip() {
16
- const anchorRect = this.anchoringElement.getBoundingClientRect();
17
- const top = (anchorRect.bottom + window.scrollY);
18
- const left = (anchorRect.left + window.scrollX);
19
- this._element.style.top = `${top}px`;
20
- this._element.style.left = `${left}px`;
16
+ watchAnchoringElement(newValue, oldValue) {
17
+ if (newValue) {
18
+ this.setEvents(newValue);
19
+ this.removeEvents(oldValue);
20
+ }
21
21
  }
22
- setEvents() {
23
- window.addEventListener('scroll', () => {
24
- this.positionTooltip();
25
- }, { capture: true });
26
- window.addEventListener('resize', () => {
27
- this.positionTooltip();
28
- }, { capture: true });
29
- this.anchoringElement.addEventListener('mouseover', () => {
30
- this._element.style.display = 'block';
22
+ watchMessage(newValue) {
23
+ if (!newValue) {
24
+ this.closeTooltip();
25
+ return;
26
+ }
27
+ this.updatePosition();
28
+ }
29
+ openTooltip() {
30
+ if (this.message && this.active) {
31
+ if (this._debouncingTimeout) {
32
+ clearTimeout(this._debouncingTimeout);
33
+ }
34
+ this._debouncingTimeout = setTimeout(() => {
35
+ this._opened = true;
36
+ this._tooltipElement.style.display = 'block';
37
+ this.updatePosition();
38
+ }, this.debouncingTime);
39
+ }
40
+ }
41
+ closeTooltip() {
42
+ clearTimeout(this._debouncingTimeout);
43
+ this._tooltipElement.style.display = 'none';
44
+ this._opened = false;
45
+ }
46
+ async updatePosition(element = this.anchoringElement) {
47
+ if (!element || !this._opened) {
48
+ return;
49
+ }
50
+ await computePosition(element, this._tooltipElement, {
51
+ placement: this.placement,
52
+ middleware: [
53
+ offset(5),
54
+ flip(),
55
+ shift(),
56
+ arrow({ element: this._arrowElement })
57
+ ],
58
+ }).then(({ x, y, placement, middlewareData }) => {
59
+ const newTop = placement.includes("bottom") ? y + this.gapOptions.verticalGap : y - this.gapOptions.verticalGap;
60
+ const newLeft = placement.includes("start") ? x + this.gapOptions.horizontalGap : x - this.gapOptions.horizontalGap;
61
+ Object.assign(this._tooltipElement.style, {
62
+ top: `${newTop}px`,
63
+ left: `${newLeft}px`,
64
+ });
65
+ if (middlewareData.arrow) {
66
+ const { x } = middlewareData.arrow;
67
+ const onBottom = placement.includes("bottom");
68
+ Object.assign(this._arrowElement.style, {
69
+ left: `${x}px`,
70
+ top: onBottom ? `${-this._arrowElement.offsetHeight / 2}px` : '',
71
+ bottom: !onBottom ? `${-this._arrowElement.offsetHeight / 2}px` : '',
72
+ });
73
+ }
74
+ });
75
+ }
76
+ handleSlotChange(ev) {
77
+ const slot = ev.target;
78
+ const content = slot.assignedElements()[0];
79
+ this.anchoringElement = content;
80
+ }
81
+ setEvents(element = this.anchoringElement) {
82
+ if (!element) {
83
+ return;
84
+ }
85
+ element.addEventListener('mouseenter', () => {
86
+ this.openTooltip();
87
+ });
88
+ element.addEventListener('mouseleave', () => {
89
+ this.closeTooltip();
90
+ });
91
+ }
92
+ removeEvents(element = this.anchoringElement) {
93
+ if (!element) {
94
+ return;
95
+ }
96
+ element.removeEventListener('mouseenter', () => {
97
+ this.openTooltip();
31
98
  });
32
- this.anchoringElement.addEventListener('mouseout', () => {
33
- this._element.style.display = 'none';
99
+ element.removeEventListener('mouseleave', () => {
100
+ this.closeTooltip();
34
101
  });
35
102
  }
36
103
  componentDidLoad() {
37
- this.positionTooltip();
38
104
  this.setEvents();
39
105
  }
40
106
  render() {
41
- return (h("div", { inert: true, class: "tooltip", role: "tooltip", "data-element-id": ElementIDUtils.getInternalIDInfo("tooltip") }, this.errorMessage));
107
+ return (h(Fragment, null, h("div", Object.assign({ ref: ref => this._tooltipElement = ref }, { inert: true }, { class: {
108
+ "tooltip": true,
109
+ [`${this.type}-tooltip`]: true,
110
+ }, style: {
111
+ minWidth: `${this.minWidth}px`
112
+ }, role: "tooltip", "data-element-id": ElementIDUtils.getInternalIDInfo("tooltip") }), this.message, h("div", { ref: ref => this._arrowElement = ref, class: "arrow" })), h("slot", { onSlotchange: (ev) => { this.handleSlotChange(ev); } })));
42
113
  }
43
114
  static get is() { return "ez-tooltip"; }
44
115
  static get encapsulation() { return "shadow"; }
@@ -54,7 +125,7 @@ export class EzTooltip {
54
125
  }
55
126
  static get properties() {
56
127
  return {
57
- "errorMessage": {
128
+ "message": {
58
129
  "type": "string",
59
130
  "mutable": false,
60
131
  "complexType": {
@@ -66,9 +137,9 @@ export class EzTooltip {
66
137
  "optional": false,
67
138
  "docs": {
68
139
  "tags": [],
69
- "text": "Mensagem de erro que ser\u00E1 apresentada no tooltip."
140
+ "text": "Mensagem que ser\u00E1 apresentada no tooltip."
70
141
  },
71
- "attribute": "error-message",
142
+ "attribute": "message",
72
143
  "reflect": false
73
144
  },
74
145
  "anchoringElement": {
@@ -89,28 +160,128 @@ export class EzTooltip {
89
160
  "tags": [],
90
161
  "text": "Elemento HTML que ser\u00E1 utilizado como ancoragem do tooltip."
91
162
  }
92
- }
93
- };
94
- }
95
- static get methods() {
96
- return {
97
- "positionTooltip": {
163
+ },
164
+ "placement": {
165
+ "type": "string",
166
+ "mutable": false,
98
167
  "complexType": {
99
- "signature": "() => Promise<void>",
100
- "parameters": [],
168
+ "original": "Placement",
169
+ "resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
101
170
  "references": {
102
- "Promise": {
103
- "location": "global"
171
+ "Placement": {
172
+ "location": "import",
173
+ "path": "@floating-ui/dom"
104
174
  }
105
- },
106
- "return": "Promise<void>"
175
+ }
107
176
  },
177
+ "required": false,
178
+ "optional": false,
108
179
  "docs": {
109
- "text": "Reposiciona o tooltip de acordo com a posi\u00E7\u00E3o do elemento de ancoragem.",
110
- "tags": []
111
- }
180
+ "tags": [],
181
+ "text": "Define a posi\u00E7\u00E3o do tooltip em rela\u00E7\u00E3o ao elemento de ancoragem."
182
+ },
183
+ "attribute": "placement",
184
+ "reflect": false,
185
+ "defaultValue": "'bottom'"
186
+ },
187
+ "gapOptions": {
188
+ "type": "unknown",
189
+ "mutable": false,
190
+ "complexType": {
191
+ "original": "{ horizontalGap: number; verticalGap: number; }",
192
+ "resolved": "{ horizontalGap: number; verticalGap: number; }",
193
+ "references": {}
194
+ },
195
+ "required": false,
196
+ "optional": false,
197
+ "docs": {
198
+ "tags": [],
199
+ "text": "Define o espa\u00E7amento entre o tooltip e o elemento de ancoragem."
200
+ },
201
+ "defaultValue": "{ horizontalGap: 0, verticalGap: 0 }"
202
+ },
203
+ "type": {
204
+ "type": "string",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "'default' | 'success' | 'error' | 'warning'",
208
+ "resolved": "\"default\" | \"error\" | \"success\" | \"warning\"",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": false,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": "Define o tipo de tooltip a ser exibido."
216
+ },
217
+ "attribute": "type",
218
+ "reflect": false,
219
+ "defaultValue": "'default'"
220
+ },
221
+ "debouncingTime": {
222
+ "type": "number",
223
+ "mutable": false,
224
+ "complexType": {
225
+ "original": "number",
226
+ "resolved": "number",
227
+ "references": {}
228
+ },
229
+ "required": false,
230
+ "optional": false,
231
+ "docs": {
232
+ "tags": [],
233
+ "text": "Tempo de espera para exibir o tooltip ap\u00F3s o evento de mouseenter."
234
+ },
235
+ "attribute": "debouncing-time",
236
+ "reflect": false,
237
+ "defaultValue": "500"
238
+ },
239
+ "active": {
240
+ "type": "boolean",
241
+ "mutable": false,
242
+ "complexType": {
243
+ "original": "boolean",
244
+ "resolved": "boolean",
245
+ "references": {}
246
+ },
247
+ "required": false,
248
+ "optional": false,
249
+ "docs": {
250
+ "tags": [],
251
+ "text": "Define se o tooltip est\u00E1 ativo."
252
+ },
253
+ "attribute": "active",
254
+ "reflect": false,
255
+ "defaultValue": "true"
256
+ },
257
+ "minWidth": {
258
+ "type": "number",
259
+ "mutable": false,
260
+ "complexType": {
261
+ "original": "number",
262
+ "resolved": "number",
263
+ "references": {}
264
+ },
265
+ "required": false,
266
+ "optional": false,
267
+ "docs": {
268
+ "tags": [],
269
+ "text": "Define a largura m\u00EDnima do elemento."
270
+ },
271
+ "attribute": "min-width",
272
+ "reflect": false,
273
+ "defaultValue": "150"
112
274
  }
113
275
  };
114
276
  }
115
277
  static get elementRef() { return "_element"; }
278
+ static get watchers() {
279
+ return [{
280
+ "propName": "anchoringElement",
281
+ "methodName": "watchAnchoringElement"
282
+ }, {
283
+ "propName": "message",
284
+ "methodName": "watchMessage"
285
+ }];
286
+ }
116
287
  }
@@ -2,3 +2,5 @@ export const REQUIRED_INFO = " (obrigatório) *";
2
2
  export const ALL_RECORD = "ALL_RECORD";
3
3
  export const DISTINCT_FILTER_NAME_PREFIX = 'FILTRO_COLUNA_';
4
4
  export const EZ_GRID_LOADING_SOURCE = "EZ_GRID_LOADING_SOURCE";
5
+ export const PRESENTATION_COL_ID_PROP_NAME = "gridDescriptionColID";
6
+ export const PRESENTATION_FROM_COL_PROP_NAME = "presentationFieldFrom";
@@ -228,8 +228,9 @@ export default class DataBinder {
228
228
  }
229
229
  }
230
230
  bindSearchOptionsLoader(fieldName, field) {
231
- if (field.nodeName === "EZ-SEARCH" && field["optionLoader"] == undefined) {
232
- const loader = ApplicationContext.getContextValue("__EZUI__SEARCH__OPTION__LOADER__");
231
+ if ((field.nodeName === "EZ-SEARCH" || field.nodeName === "EZ-SEARCH-PLUS") && field["optionLoader"] == undefined) {
232
+ const isSearchPlus = field.nodeName === "EZ-SEARCH-PLUS";
233
+ const loader = isSearchPlus ? ApplicationContext.getContextValue("__EZUI__SEARCH__PLUS__OPTION__LOADER__") : ApplicationContext.getContextValue("__EZUI__SEARCH__OPTION__LOADER__");
233
234
  if (loader) {
234
235
  field["optionLoader"] = (arg, ctxOptions) => {
235
236
  return loader(arg, fieldName, this._dataUnit, ctxOptions);
@@ -6,4 +6,5 @@ export { FormMetadata } from './form/FormMetadata';
6
6
  export { default as DataBinder } from './form/DataBinder';
7
7
  export { CustomEditorSource } from './customEditor/interfaces/ICustomEditor';
8
8
  export { CustomRenderSource } from './customRender/interfaces/ICustomRender';
9
+ export { SearchMode } from './search/types';
9
10
  export { FormLayout } from './form/interfaces';
@@ -0,0 +1,7 @@
1
+ export var SearchMode;
2
+ (function (SearchMode) {
3
+ SearchMode["ADVANCED"] = "ADVANCED";
4
+ SearchMode["PREDICTIVE"] = "PREDICTIVE";
5
+ SearchMode["LOAD_DESCRIPTION"] = "LOAD_DESCRIPTION";
6
+ SearchMode["PRELOAD"] = "PRELOAD";
7
+ })(SearchMode || (SearchMode = {}));
@@ -248,6 +248,18 @@ export const EzSearch: {
248
248
  new (): EzSearch;
249
249
  };
250
250
 
251
+ interface EzSearchPlus extends Components.EzSearchPlus, HTMLElement {}
252
+ export const EzSearchPlus: {
253
+ prototype: EzSearchPlus;
254
+ new (): EzSearchPlus;
255
+ };
256
+
257
+ interface EzSearchResultList extends Components.EzSearchResultList, HTMLElement {}
258
+ export const EzSearchResultList: {
259
+ prototype: EzSearchResultList;
260
+ new (): EzSearchResultList;
261
+ };
262
+
251
263
  interface EzSidebarButton extends Components.EzSidebarButton, HTMLElement {}
252
264
  export const EzSidebarButton: {
253
265
  prototype: EzSidebarButton;