@sankhyalabs/ezui 0.0.0-bugfix-dev-KB-86600.1 → 0.0.0-bugfix-dev-KB-86904.0

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 (262) hide show
  1. package/dist/cjs/{types-6a5df0c7.js → FormLayout-18853e70.js} +6 -0
  2. package/dist/cjs/ez-actions-button.cjs.entry.js +3 -4
  3. package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
  4. package/dist/cjs/ez-alert.cjs.entry.js +1 -1
  5. package/dist/cjs/ez-application.cjs.entry.js +1 -1
  6. package/dist/cjs/ez-avatar.cjs.entry.js +50 -0
  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 +2 -2
  10. package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-card-item_2.cjs.entry.js +13 -16
  12. package/dist/cjs/ez-chart.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-check.cjs.entry.js +2 -2
  14. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-collapsible-box.cjs.entry.js +3 -4
  16. package/dist/cjs/ez-combo-box-list_3.cjs.entry.js +4 -5
  17. package/dist/cjs/ez-combo-box.cjs.entry.js +7 -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.cjs.entry.js +2 -2
  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 +1 -1
  26. package/dist/cjs/ez-form.cjs.entry.js +61 -6
  27. package/dist/cjs/ez-grid.cjs.entry.js +80 -17
  28. package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-icon.cjs.entry.js +12 -6
  30. package/dist/cjs/ez-list.cjs.entry.js +2 -2
  31. package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/ez-modal-container.cjs.entry.js +2 -2
  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 +32 -3
  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 +5 -6
  42. package/dist/cjs/ez-search-result-list.cjs.entry.js +1 -1
  43. package/dist/cjs/ez-search.cjs.entry.js +14 -4
  44. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
  45. package/dist/cjs/ez-skeleton.cjs.entry.js +119 -37
  46. package/dist/cjs/ez-split-button.cjs.entry.js +16 -7
  47. package/dist/cjs/ez-split-item.cjs.entry.js +2 -3
  48. package/dist/cjs/ez-split-panel.cjs.entry.js +1 -1
  49. package/dist/cjs/ez-tabselector.cjs.entry.js +1 -1
  50. package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
  51. package/dist/cjs/ez-text-input.cjs.entry.js +17 -3
  52. package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
  53. package/dist/cjs/ez-toast.cjs.entry.js +1 -1
  54. package/dist/cjs/ez-tooltip.cjs.entry.js +3 -3
  55. package/dist/cjs/ez-tree.cjs.entry.js +1 -1
  56. package/dist/cjs/ez-upload.cjs.entry.js +1 -1
  57. package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
  58. package/dist/cjs/ezui.cjs.js +2 -2
  59. package/dist/cjs/filter-column.cjs.entry.js +1 -2
  60. package/dist/cjs/{index-a7b0c73d.js → index-9e5554cb.js} +7 -0
  61. package/dist/cjs/loader.cjs.js +2 -2
  62. package/dist/cjs/{DataBinder-b9973a19.js → search-column-1d3c9fa5.js} +31 -0
  63. package/dist/collection/collection-manifest.json +1 -0
  64. package/dist/collection/components/ez-actions-button/ez-actions-button.css +2 -0
  65. package/dist/collection/components/ez-avatar/ez-avatar.css +139 -0
  66. package/dist/collection/components/ez-avatar/ez-avatar.js +143 -0
  67. package/dist/collection/components/ez-button/ez-button.css +2 -2
  68. package/dist/collection/components/ez-check/ez-check.css +1 -1
  69. package/dist/collection/components/ez-collapsible-box/ez-collapsible-box.css +2 -1
  70. package/dist/collection/components/ez-combo-box/ez-combo-box.js +5 -5
  71. package/dist/collection/components/ez-dropdown/ez-dropdown.js +1 -1
  72. package/dist/collection/components/ez-form/ez-form.js +95 -2
  73. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +25 -2
  74. package/dist/collection/components/ez-grid/ez-grid.css +8 -0
  75. package/dist/collection/components/ez-grid/ez-grid.js +84 -6
  76. package/dist/collection/components/ez-grid/subcomponents/filter-column.js +0 -1
  77. package/dist/collection/components/ez-icon/ez-icon.js +28 -5
  78. package/dist/collection/components/ez-list/ez-list.css +1 -0
  79. package/dist/collection/components/ez-modal-container/ez-modal-container.css +2 -1
  80. package/dist/collection/components/ez-popover-plus/subcomponent/ez-popover-core.js +12 -15
  81. package/dist/collection/components/ez-search/ez-search.js +12 -1
  82. package/dist/collection/components/ez-search/subcomponent/search-list/search-list.js +31 -2
  83. package/dist/collection/components/ez-search-plus/ez-search-plus.js +16 -40
  84. package/dist/collection/components/ez-skeleton/ez-skeleton.constants.js +25 -1
  85. package/dist/collection/components/ez-skeleton/ez-skeleton.css +122 -80
  86. package/dist/collection/components/ez-skeleton/ez-skeleton.js +210 -46
  87. package/dist/collection/components/ez-split-button/ez-split-button.css +1 -1
  88. package/dist/collection/components/ez-split-button/ez-split-button.js +87 -10
  89. package/dist/collection/components/ez-text-input/ez-text-input.css +7 -0
  90. package/dist/collection/components/ez-text-input/ez-text-input.js +15 -1
  91. package/dist/collection/components/ez-tooltip/ez-tooltip.css +1 -0
  92. package/dist/collection/components/ez-tooltip/ez-tooltip.js +2 -2
  93. package/dist/collection/utils/index.js +1 -0
  94. package/dist/collection/utils/searchColumn/search-column.js +35 -0
  95. package/dist/custom-elements/index.d.ts +6 -0
  96. package/dist/custom-elements/index.js +434 -98
  97. package/dist/esm/{types-6f6b2650.js → FormLayout-071d324c.js} +7 -1
  98. package/dist/esm/ez-actions-button.entry.js +3 -4
  99. package/dist/esm/ez-alert-list.entry.js +1 -1
  100. package/dist/esm/ez-alert.entry.js +1 -1
  101. package/dist/esm/ez-application.entry.js +1 -1
  102. package/dist/esm/ez-avatar.entry.js +46 -0
  103. package/dist/esm/ez-badge.entry.js +1 -1
  104. package/dist/esm/ez-breadcrumb.entry.js +1 -1
  105. package/dist/esm/ez-button.entry.js +2 -2
  106. package/dist/esm/ez-calendar.entry.js +1 -1
  107. package/dist/esm/ez-card-item_2.entry.js +13 -16
  108. package/dist/esm/ez-chart.entry.js +1 -1
  109. package/dist/esm/ez-check.entry.js +2 -2
  110. package/dist/esm/ez-chip.entry.js +1 -1
  111. package/dist/esm/ez-collapsible-box.entry.js +3 -4
  112. package/dist/esm/ez-combo-box-list_3.entry.js +3 -4
  113. package/dist/esm/ez-combo-box.entry.js +7 -8
  114. package/dist/esm/ez-date-input.entry.js +1 -1
  115. package/dist/esm/ez-date-time-input.entry.js +1 -1
  116. package/dist/esm/ez-dialog.entry.js +1 -1
  117. package/dist/esm/ez-double-list.entry.js +1 -1
  118. package/dist/esm/ez-dropdown.entry.js +2 -2
  119. package/dist/esm/ez-file-item.entry.js +1 -1
  120. package/dist/esm/ez-filter-input.entry.js +1 -1
  121. package/dist/esm/ez-form-view.entry.js +1 -1
  122. package/dist/esm/ez-form.entry.js +60 -5
  123. package/dist/esm/ez-grid.entry.js +75 -12
  124. package/dist/esm/ez-guide-navigator.entry.js +1 -1
  125. package/dist/esm/ez-icon.entry.js +12 -6
  126. package/dist/esm/ez-list.entry.js +2 -2
  127. package/dist/esm/ez-loading-bar.entry.js +1 -1
  128. package/dist/esm/ez-modal-container.entry.js +2 -2
  129. package/dist/esm/ez-modal.entry.js +1 -1
  130. package/dist/esm/ez-multi-selection-list.entry.js +1 -1
  131. package/dist/esm/ez-number-input.entry.js +1 -1
  132. package/dist/esm/ez-popover-plus_3.entry.js +32 -3
  133. package/dist/esm/ez-popover.entry.js +1 -1
  134. package/dist/esm/ez-popup.entry.js +1 -1
  135. package/dist/esm/ez-radio-button.entry.js +1 -1
  136. package/dist/esm/ez-scroller_2.entry.js +1 -1
  137. package/dist/esm/ez-search-plus.entry.js +2 -3
  138. package/dist/esm/ez-search-result-list.entry.js +1 -1
  139. package/dist/esm/ez-search.entry.js +14 -4
  140. package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
  141. package/dist/esm/ez-skeleton.entry.js +119 -37
  142. package/dist/esm/ez-split-button.entry.js +16 -7
  143. package/dist/esm/ez-split-item.entry.js +2 -3
  144. package/dist/esm/ez-split-panel.entry.js +1 -1
  145. package/dist/esm/ez-tabselector.entry.js +1 -1
  146. package/dist/esm/ez-text-area.entry.js +1 -1
  147. package/dist/esm/ez-text-input.entry.js +17 -3
  148. package/dist/esm/ez-time-input.entry.js +1 -1
  149. package/dist/esm/ez-toast.entry.js +1 -1
  150. package/dist/esm/ez-tooltip.entry.js +3 -3
  151. package/dist/esm/ez-tree.entry.js +1 -1
  152. package/dist/esm/ez-upload.entry.js +1 -1
  153. package/dist/esm/ez-view-stack.entry.js +1 -1
  154. package/dist/esm/ezui.js +3 -3
  155. package/dist/esm/filter-column.entry.js +1 -2
  156. package/dist/esm/{index-baa5e267.js → index-5a720e56.js} +7 -1
  157. package/dist/esm/loader.js +3 -3
  158. package/dist/esm/{DataBinder-1035e36f.js → search-column-35f4ad93.js} +26 -1
  159. package/dist/ezui/ezui.esm.js +1 -1
  160. package/dist/ezui/{p-e75c7a23.entry.js → p-000159dc.entry.js} +1 -1
  161. package/dist/ezui/p-01b72d7e.entry.js +1 -0
  162. package/dist/ezui/{p-44caad9a.entry.js → p-0378416a.entry.js} +1 -1
  163. package/dist/ezui/{p-288631d1.entry.js → p-06f1b8e4.entry.js} +1 -1
  164. package/dist/ezui/{p-d47dabdf.entry.js → p-07594da0.entry.js} +1 -1
  165. package/dist/ezui/{p-77a4bd35.entry.js → p-11bfeca3.entry.js} +1 -1
  166. package/dist/ezui/p-15d9cd15.entry.js +1 -0
  167. package/dist/ezui/p-175154a0.js +1 -0
  168. package/dist/ezui/{p-9c5cd3b2.entry.js → p-18e71523.entry.js} +1 -1
  169. package/dist/ezui/{p-2b4df33d.entry.js → p-1fefb37a.entry.js} +1 -1
  170. package/dist/ezui/{p-7e677b7b.entry.js → p-2069c78a.entry.js} +1 -1
  171. package/dist/ezui/p-28987410.entry.js +1 -0
  172. package/dist/ezui/p-2d10bb18.entry.js +1 -0
  173. package/dist/ezui/{p-e06a9886.entry.js → p-2f351332.entry.js} +1 -1
  174. package/dist/ezui/p-30ffb9ed.js +1 -0
  175. package/dist/ezui/{p-fa6732f2.entry.js → p-44b39e81.entry.js} +1 -1
  176. package/dist/ezui/p-4a876b8b.entry.js +1 -0
  177. package/dist/ezui/{p-03c106f6.entry.js → p-4e66eaeb.entry.js} +1 -1
  178. package/dist/ezui/{p-574b9e72.entry.js → p-682931aa.entry.js} +46 -46
  179. package/dist/ezui/p-6b2cc9b8.entry.js +1 -0
  180. package/dist/ezui/{p-496f7832.entry.js → p-6b3fddee.entry.js} +1 -1
  181. package/dist/ezui/{p-1f50fa05.entry.js → p-6b51c9cc.entry.js} +1 -1
  182. package/dist/ezui/p-6ec40dec.entry.js +1 -0
  183. package/dist/ezui/{p-5ed81457.entry.js → p-6fc26622.entry.js} +1 -1
  184. package/dist/ezui/p-700c1320.entry.js +1 -0
  185. package/dist/ezui/{p-da1b4a38.entry.js → p-708b196e.entry.js} +1 -1
  186. package/dist/ezui/{p-555c9018.entry.js → p-7567ccdd.entry.js} +1 -1
  187. package/dist/ezui/p-769632d5.entry.js +1 -0
  188. package/dist/ezui/{p-0bffeffc.entry.js → p-7ec3f335.entry.js} +1 -1
  189. package/dist/ezui/{p-1e7a8633.entry.js → p-81461d2f.entry.js} +1 -1
  190. package/dist/ezui/{p-8df1ca33.entry.js → p-82fa4b09.entry.js} +1 -1
  191. package/dist/ezui/{p-2872fd16.entry.js → p-87f5a060.entry.js} +1 -1
  192. package/dist/ezui/p-90c90351.entry.js +1 -0
  193. package/dist/ezui/{p-4bd6dd6a.entry.js → p-90e91173.entry.js} +1 -1
  194. package/dist/ezui/{p-09de35a2.entry.js → p-91ccae0c.entry.js} +1 -1
  195. package/dist/ezui/{p-bac0f920.entry.js → p-926a0bde.entry.js} +1 -1
  196. package/dist/ezui/{p-c0d9c4f8.entry.js → p-92748142.entry.js} +1 -1
  197. package/dist/ezui/{p-3ba9565c.entry.js → p-97d94ef3.entry.js} +1 -1
  198. package/dist/ezui/{p-e6a9041d.entry.js → p-9e95bfeb.entry.js} +1 -1
  199. package/dist/ezui/{p-cb75eb46.entry.js → p-a11827ca.entry.js} +1 -1
  200. package/dist/ezui/{p-bf9dec89.entry.js → p-b3b3c99a.entry.js} +1 -1
  201. package/dist/ezui/{p-9f5fa3f9.entry.js → p-c2b20f78.entry.js} +1 -1
  202. package/dist/ezui/{p-dc73e1fe.entry.js → p-c7035d65.entry.js} +1 -1
  203. package/dist/ezui/p-c8e6204f.entry.js +1 -0
  204. package/dist/ezui/{p-20c024f7.entry.js → p-cf33bc48.entry.js} +1 -1
  205. package/dist/ezui/{p-7019f782.entry.js → p-d2290004.entry.js} +1 -1
  206. package/dist/ezui/p-d4d6d5fe.entry.js +1 -0
  207. package/dist/ezui/p-da66838e.entry.js +1 -0
  208. package/dist/ezui/p-dd7d305a.entry.js +1 -0
  209. package/dist/ezui/{p-9567b31a.entry.js → p-ddb22a70.entry.js} +1 -1
  210. package/dist/ezui/p-ddd0bd61.entry.js +1 -0
  211. package/dist/ezui/{p-a80b1287.entry.js → p-dfca5946.entry.js} +1 -1
  212. package/dist/ezui/{p-b81881ac.entry.js → p-e195eaad.entry.js} +1 -1
  213. package/dist/ezui/p-e4ae4ddb.entry.js +1 -0
  214. package/dist/ezui/{p-23a36bb6.js → p-e4c7eb39.js} +2 -2
  215. package/dist/ezui/p-e4ead194.entry.js +1 -0
  216. package/dist/ezui/{p-0306dff7.entry.js → p-e6b38ade.entry.js} +1 -1
  217. package/dist/ezui/{p-6825bdc7.entry.js → p-ea053063.entry.js} +1 -1
  218. package/dist/ezui/{p-9478b13b.entry.js → p-ed48a632.entry.js} +1 -1
  219. package/dist/ezui/{p-6e429cff.entry.js → p-fc194825.entry.js} +1 -1
  220. package/dist/types/components/ez-avatar/ez-avatar.d.ts +24 -0
  221. package/dist/types/components/ez-dropdown/structure/DropdownItem.d.ts +4 -4
  222. package/dist/types/components/ez-form/ez-form.d.ts +18 -0
  223. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +9 -1
  224. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +3 -1
  225. package/dist/types/components/ez-grid/ez-grid.d.ts +12 -0
  226. package/dist/types/components/ez-icon/ez-icon.d.ts +5 -0
  227. package/dist/types/components/ez-popover-plus/subcomponent/ez-popover-core.d.ts +1 -3
  228. package/dist/types/components/ez-search/ez-search.d.ts +1 -0
  229. package/dist/types/components/ez-search/subcomponent/search-list/search-list.d.ts +6 -0
  230. package/dist/types/components/ez-search-plus/ez-search-plus.d.ts +8 -8
  231. package/dist/types/components/ez-skeleton/ez-skeleton.constants.d.ts +55 -1
  232. package/dist/types/components/ez-skeleton/ez-skeleton.d.ts +50 -22
  233. package/dist/types/components/ez-split-button/ez-split-button.d.ts +14 -2
  234. package/dist/types/components/ez-text-input/ez-text-input.d.ts +2 -0
  235. package/dist/types/components.d.ts +182 -24
  236. package/dist/types/utils/index.d.ts +1 -0
  237. package/dist/types/utils/searchColumn/search-column.d.ts +9 -0
  238. package/package.json +5 -4
  239. package/react/components.d.ts +1 -0
  240. package/react/components.js +1 -0
  241. package/react/components.js.map +1 -1
  242. package/dist/cjs/FormLayout-c2451c7f.js +0 -7
  243. package/dist/esm/FormLayout-54092963.js +0 -7
  244. package/dist/ezui/p-15ea0c98.js +0 -1
  245. package/dist/ezui/p-173f68ea.js +0 -1
  246. package/dist/ezui/p-4cf0aaeb.entry.js +0 -1
  247. package/dist/ezui/p-56fe5341.entry.js +0 -1
  248. package/dist/ezui/p-5895e687.js +0 -1
  249. package/dist/ezui/p-5a14f506.entry.js +0 -1
  250. package/dist/ezui/p-5ec0ae79.entry.js +0 -1
  251. package/dist/ezui/p-629d15ed.entry.js +0 -1
  252. package/dist/ezui/p-6754489a.entry.js +0 -1
  253. package/dist/ezui/p-6f4681f8.entry.js +0 -1
  254. package/dist/ezui/p-7742802c.entry.js +0 -1
  255. package/dist/ezui/p-a4cee65d.entry.js +0 -1
  256. package/dist/ezui/p-bc2f844e.entry.js +0 -1
  257. package/dist/ezui/p-c00df4be.entry.js +0 -1
  258. package/dist/ezui/p-ebd23857.entry.js +0 -1
  259. package/dist/ezui/p-ecaac11f.entry.js +0 -1
  260. package/dist/ezui/p-f4861c6a.entry.js +0 -1
  261. package/dist/ezui/p-f5a30e35.entry.js +0 -1
  262. package/dist/ezui/p-f6316720.entry.js +0 -1
@@ -1,10 +1,11 @@
1
1
  import { ElementIDUtils, JSUtils, OverflowWatcher, OVERFLOWED_CLASS_NAME, StringUtils, ApplicationContext, KeyboardManager, } from '@sankhyalabs/core';
2
2
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
3
3
  import { Host, h } from '@stencil/core';
4
- import { ApplicationUtils } from '../../utils';
4
+ import { ApplicationUtils, buildFieldSearch } from '../../utils';
5
5
  import AgGridController from './controller/ag-grid/AgGridController';
6
6
  import { SelectionCounter } from './subcomponents/selection-counter';
7
7
  import InMemoryFilterColumnDataSource from './utils/InMemoryFilterColumnDataSource';
8
+ import { focusOnFieldSerch, LABEL_SEARCH_COLUMN, SEARCH_FIELD_FULL_WIDTH, SHORTCUT_SEARCH_FIELD } from '../../utils/searchColumn/search-column';
8
9
  const windowInstace = window;
9
10
  const matches = (text, filter) => {
10
11
  const normalizedText = StringUtils.replaceAccentuatedCharsLower(text === null || text === void 0 ? void 0 : text.toLocaleLowerCase());
@@ -45,6 +46,8 @@ export class EzGrid {
45
46
  this.outlineMode = false;
46
47
  this.enableRowTableStriped = true;
47
48
  this.compact = false;
49
+ this.useSearchColumn = true;
50
+ this.suppressHorizontalScroll = false;
48
51
  }
49
52
  /**
50
53
  * Aplica a definição de colunas.
@@ -98,7 +101,7 @@ export class EzGrid {
98
101
  * Localiza determinada coluna tornando-a visível.
99
102
  */
100
103
  async locateColumn(columnName) {
101
- this._gridController.locateColumn(columnName);
104
+ this._gridController.locateColumn(columnName, this._element);
102
105
  }
103
106
  /**
104
107
  * Usa um argumento para filtrar as colunas po label
@@ -227,6 +230,7 @@ export class EzGrid {
227
230
  onClearSelectedRecords() {
228
231
  var _a;
229
232
  (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.clearSelection();
233
+ this._gridController.clearRangeSelection();
230
234
  this.setSelection(undefined);
231
235
  }
232
236
  createConfigFromState(state) {
@@ -350,16 +354,20 @@ export class EzGrid {
350
354
  ElementIDUtils.addIDInfo(this._refPaginationControl, 'pagination', dtInfo);
351
355
  }
352
356
  }
357
+ handlePageChange() {
358
+ this.resetPaginationState();
359
+ this._gridController.setFocusFirstRow();
360
+ }
353
361
  previousPage() {
354
362
  if (this.dataUnit) {
355
363
  this.dataUnit.previousPage()
356
- .then(() => this.resetPaginationState());
364
+ .then(() => this.handlePageChange());
357
365
  }
358
366
  }
359
367
  nextPage() {
360
368
  if (this.dataUnit) {
361
369
  this.dataUnit.nextPage()
362
- .then(() => this.resetPaginationState());
370
+ .then(() => this.handlePageChange());
363
371
  }
364
372
  }
365
373
  nextRecord() {
@@ -448,6 +456,7 @@ export class EzGrid {
448
456
  enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick,
449
457
  enableLockManagerLoadingComp: this.enableLockManagerLoadingComp,
450
458
  enableRowTableStriped: this.enableRowTableStriped,
459
+ suppressHorizontalScroll: this.suppressHorizontalScroll
451
460
  });
452
461
  if (this.config) {
453
462
  this.observeConfig(this.config);
@@ -616,11 +625,43 @@ export class EzGrid {
616
625
  this.nextPage();
617
626
  }
618
627
  }, { description: "Avança para a próxima página.", element: this._element });
628
+ if (this.useSearchColumn) {
629
+ this._keyboardManager.bind(SHORTCUT_SEARCH_FIELD, async () => {
630
+ if (!this._container || !this._ezPopoverSearchColumn)
631
+ return;
632
+ const container = this._container.getBoundingClientRect();
633
+ await focusOnFieldSerch(this._columnSearch);
634
+ this._ezPopoverSearchColumn.showUnder(this._container, { horizontalGap: container.width - (SEARCH_FIELD_FULL_WIDTH), verticalGap: container.height * -1 });
635
+ }, { description: LABEL_SEARCH_COLUMN, element: this._element });
636
+ }
619
637
  }
620
638
  async removeShortcuts() {
621
639
  var _a;
622
640
  (_a = this._keyboardManager) === null || _a === void 0 ? void 0 : _a.unbindAllShortcutKeys();
623
641
  }
642
+ renderFieldSearchColumn() {
643
+ this._columnSearch = buildFieldSearch({
644
+ value: StringUtils.generateUUID(),
645
+ label: LABEL_SEARCH_COLUMN,
646
+ }, ({ argument }) => new Promise(accept => {
647
+ this.filterColumns(argument).then((columns) => {
648
+ accept(columns
649
+ .filter(column => !column.hidden)
650
+ .map(column => ({ label: column.label, value: column.name })));
651
+ });
652
+ }), async (option) => {
653
+ if (option != undefined && option.value != undefined) {
654
+ await this.locateColumn(option.value);
655
+ if (this._ezPopoverSearchColumn) {
656
+ this._ezPopoverSearchColumn.hide();
657
+ }
658
+ if (this._container) {
659
+ requestAnimationFrame(() => this._container.focus());
660
+ }
661
+ }
662
+ });
663
+ return this._columnSearch;
664
+ }
624
665
  render() {
625
666
  var _a;
626
667
  return (h(Host, { "no-header": this.hideHeader() }, h("div", { class: {
@@ -629,11 +670,12 @@ export class EzGrid {
629
670
  'shadow-mode': !this.outlineMode,
630
671
  'no-padding': this.compact,
631
672
  'header-overlay': !this.hideHeader(),
632
- }, ref: elem => (this._container = elem) }), h("div", { class: {
673
+ 'no-scroll': this.suppressHorizontalScroll
674
+ }, ref: elem => (this._container = elem), tabindex: "0" }), h("div", { class: {
633
675
  'ez-box ez-padding--small grid-header': true,
634
676
  'outline-mode': this.outlineMode,
635
677
  'shadow-mode': !this.outlineMode && !this.hideHeader(),
636
- } }, h("filter-column", { class: "grid-header__popover", noHeaderTaskBar: !this._hasLeftButtons, dataSource: this.getDataSource(), dataUnit: this.dataUnit, gridHeaderHidden: this.hideHeader(), ref: (element) => (this._filterColumn = element) }), h("div", { class: "grid-header__position" }, h("div", { class: `grid-header__container grid-header__left-container ${this.resolveLeftHeaderClass()}` }, h("slot", { name: "leftButtons" })), this.getPaginationControl())), h("div", { ref: (ref) => (this._gridSelectionCounter = ref), class: `grid__selection-counter ez-elevation--4
678
+ }, tabindex: "0" }, h("filter-column", { class: "grid-header__popover", noHeaderTaskBar: !this._hasLeftButtons, dataSource: this.getDataSource(), dataUnit: this.dataUnit, gridHeaderHidden: this.hideHeader(), ref: (element) => (this._filterColumn = element) }), h("div", { class: "grid-header__position" }, h("div", { class: `grid-header__container grid-header__left-container ${this.resolveLeftHeaderClass()}` }, h("slot", { name: "leftButtons" })), this.getPaginationControl())), h("ez-popover", { ref: elem => (this._ezPopoverSearchColumn = elem), overlayType: "none" }, this.renderFieldSearchColumn()), h("div", { ref: (ref) => (this._gridSelectionCounter = ref), class: `grid__selection-counter ez-elevation--4
637
679
  ${this._showSelectionCounter ? 'grid__selection-counter--opened' : ''}
638
680
  ` }, h(SelectionCounter, { selectionCount: this._selectionCount, currentPageSelected: this._currentPageSelected, paginationInfo: this._paginationInfo, canSelectAll: (_a = this.selectionToastConfig) === null || _a === void 0 ? void 0 : _a.canSelectAll, allRecordSelected: this._isAllSelection, onSelectAll: () => this.onSelectAllRecords(), onSelectPage: () => this.onSelectPageRecords(), onClearAll: () => this.onClearSelectedRecords(), onClose: () => (this._showSelectionCounter = false) })), h("div", { class: "grid__footer" }, h("slot", { name: "footer" }))));
639
681
  }
@@ -1025,6 +1067,42 @@ export class EzGrid {
1025
1067
  "attribute": "compact",
1026
1068
  "reflect": false,
1027
1069
  "defaultValue": "false"
1070
+ },
1071
+ "useSearchColumn": {
1072
+ "type": "boolean",
1073
+ "mutable": false,
1074
+ "complexType": {
1075
+ "original": "boolean",
1076
+ "resolved": "boolean",
1077
+ "references": {}
1078
+ },
1079
+ "required": false,
1080
+ "optional": false,
1081
+ "docs": {
1082
+ "tags": [],
1083
+ "text": "Define se a grade deve exibir um buscador de coluna com uso do Ctrl+F"
1084
+ },
1085
+ "attribute": "use-search-column",
1086
+ "reflect": false,
1087
+ "defaultValue": "true"
1088
+ },
1089
+ "suppressHorizontalScroll": {
1090
+ "type": "boolean",
1091
+ "mutable": false,
1092
+ "complexType": {
1093
+ "original": "boolean",
1094
+ "resolved": "boolean",
1095
+ "references": {}
1096
+ },
1097
+ "required": false,
1098
+ "optional": false,
1099
+ "docs": {
1100
+ "tags": [],
1101
+ "text": "Define se a grade deve suprimir o scroll horizontal."
1102
+ },
1103
+ "attribute": "suppress-horizontal-scroll",
1104
+ "reflect": false,
1105
+ "defaultValue": "false"
1028
1106
  }
1029
1107
  };
1030
1108
  }
@@ -33,7 +33,6 @@ export class FilterColumn {
33
33
  async show(configs) {
34
34
  var _a;
35
35
  if (this.canShow(configs)) {
36
- await this.hide();
37
36
  this.fieldDescriptor = (_a = configs.fieldDescriptor) !== null && _a !== void 0 ? _a : this.dataUnit.getField(configs.columnName);
38
37
  this.buildIsTextSearch();
39
38
  this.columnName = configs.columnName;
@@ -3,6 +3,7 @@ import { h, Host } from "@stencil/core";
3
3
  export class EzIcon {
4
4
  constructor() {
5
5
  this.size = "medium";
6
+ this.fontSize = undefined;
6
7
  this.href = undefined;
7
8
  this.iconName = undefined;
8
9
  }
@@ -16,12 +17,17 @@ export class EzIcon {
16
17
  if (this.isSprite()) {
17
18
  return h("svg", { class: this.size, role: "img" }, h("use", { xlinkHref: this.href }));
18
19
  }
19
- else if (!StringUtils.isEmpty(this.iconName)) {
20
- return h("span", { class: `icon-content ${this.getIconClassName()} ${this.size}--font` });
21
- }
22
- else {
23
- return h("img", { class: this.size, src: this.href });
20
+ if (!StringUtils.isEmpty(this.iconName)) {
21
+ return h("span", { style: this.getStyle(), class: `icon-content ${this.getIconClassName()} ${this.size}--font` });
24
22
  }
23
+ return h("img", { class: this.size, src: this.href });
24
+ }
25
+ getStyle() {
26
+ if (!this.fontSize)
27
+ return undefined;
28
+ return {
29
+ fontSize: `${this.fontSize}px`,
30
+ };
25
31
  }
26
32
  componentDidLoad() {
27
33
  ElementIDUtils.addIDInfo(this._hostElement, "icon");
@@ -61,6 +67,23 @@ export class EzIcon {
61
67
  "reflect": true,
62
68
  "defaultValue": "\"medium\""
63
69
  },
70
+ "fontSize": {
71
+ "type": "any",
72
+ "mutable": false,
73
+ "complexType": {
74
+ "original": "number | string",
75
+ "resolved": "number | string",
76
+ "references": {}
77
+ },
78
+ "required": false,
79
+ "optional": true,
80
+ "docs": {
81
+ "tags": [],
82
+ "text": "Define o tamanho da fonte."
83
+ },
84
+ "attribute": "font-size",
85
+ "reflect": true
86
+ },
64
87
  "href": {
65
88
  "type": "string",
66
89
  "mutable": false,
@@ -95,6 +95,7 @@
95
95
  width: 100%;
96
96
  background-color: #fff;
97
97
  display: flex;
98
+ outline: none;
98
99
 
99
100
  /*public*/
100
101
  z-index: var(--ez-list__host--z-index);
@@ -1,6 +1,6 @@
1
1
  :host {
2
2
  --ez-modal-container-overflow-y: auto;
3
- --ez-modal-container-overflow-x: clip;
3
+ --ez-modal-container-overflow-x: hidden;
4
4
  display: grid;
5
5
  grid-template-rows: 0 auto 1fr auto 0;
6
6
  width: 100%;
@@ -21,6 +21,7 @@
21
21
  .ez-modal-container__content {
22
22
  overflow-y: var(--ez-modal-container-overflow-y);
23
23
  overflow-x: var(--ez-modal-container-overflow-x);
24
+ outline: none;
24
25
  }
25
26
 
26
27
  .ez-modal-container__content::-webkit-scrollbar {
@@ -2,7 +2,6 @@ import { computePosition, flip, shift } from "@floating-ui/dom";
2
2
  import { h, Host } from "@stencil/core";
3
3
  export class EzPopoverCore {
4
4
  constructor() {
5
- this.TIME_DEBOUNCE = 500;
6
5
  this.autoClose = true;
7
6
  this.boxWidth = "fit-content";
8
7
  this.opened = false;
@@ -106,11 +105,6 @@ export class EzPopoverCore {
106
105
  return;
107
106
  }
108
107
  const currentAnchorElement = this.getAnchorElement();
109
- if (this.useAnchorSize) {
110
- const anchorSize = currentAnchorElement.getBoundingClientRect().width;
111
- const width = anchorSize < this.minWidth ? this.minWidth : anchorSize;
112
- this._box.style.width = `${width}px`;
113
- }
114
108
  await computePosition(currentAnchorElement, this._box, {
115
109
  placement: this.options.fromRight ? 'bottom-end' : 'bottom-start',
116
110
  middleware: [flip(), shift({ padding: 5 })],
@@ -138,6 +132,12 @@ export class EzPopoverCore {
138
132
  }
139
133
  this._box.style.display = 'flex';
140
134
  this._box.style.visibility = 'hidden';
135
+ if (this.useAnchorSize) {
136
+ const currentAnchorElement = this.getAnchorElement();
137
+ const anchorSize = currentAnchorElement.getBoundingClientRect().width;
138
+ const width = anchorSize < this.minWidth ? this.minWidth : anchorSize;
139
+ this._box.style.width = `${width}px`;
140
+ }
141
141
  await this.updatePositionPopover();
142
142
  this.openOverlay();
143
143
  this.ezVisibilityChange.emit(true);
@@ -164,18 +164,15 @@ export class EzPopoverCore {
164
164
  }
165
165
  return false;
166
166
  }
167
- updatePositionDebounce() {
167
+ handlePositionUpdate() {
168
168
  if (!this.opened) {
169
169
  return;
170
170
  }
171
- clearTimeout(this._timeoutDebounce);
172
- this._timeoutDebounce = setTimeout(() => {
173
- this.updatePositionPopover();
174
- }, this.TIME_DEBOUNCE);
171
+ this.updatePositionPopover();
175
172
  }
176
173
  componentWillLoad() {
177
- window.addEventListener('scroll', this.updatePositionDebounce.bind(this), true);
178
- window.addEventListener('resize', this.updatePositionDebounce.bind(this), true);
174
+ window.addEventListener('scroll', this.handlePositionUpdate.bind(this), true);
175
+ window.addEventListener('resize', this.handlePositionUpdate.bind(this), true);
179
176
  }
180
177
  componentDidLoad() {
181
178
  this._overlayIsActive = this.checkStatusOverlay();
@@ -184,8 +181,8 @@ export class EzPopoverCore {
184
181
  this.openPopover();
185
182
  }
186
183
  disconnectedCallback() {
187
- window.removeEventListener('scroll', this.updatePositionDebounce.bind(this), true);
188
- window.removeEventListener('resize', this.updatePositionDebounce.bind(this), true);
184
+ window.removeEventListener('scroll', this.handlePositionUpdate.bind(this), true);
185
+ window.removeEventListener('resize', this.handlePositionUpdate.bind(this), true);
189
186
  this._resizeObserver.disconnect();
190
187
  }
191
188
  render() {
@@ -462,6 +462,16 @@ export class EzSearch {
462
462
  return;
463
463
  });
464
464
  });
465
+ this._intersectionObserver = new IntersectionObserver((entries) => {
466
+ entries.forEach(entry => {
467
+ if (!entry.isIntersecting && this._ezPopOverPlusElement) {
468
+ this._ezPopOverPlusElement.hide();
469
+ }
470
+ });
471
+ }, { threshold: 0.1 });
472
+ if (this._textInput) {
473
+ this._intersectionObserver.observe(this._textInput);
474
+ }
465
475
  await this.handleInitialValue();
466
476
  if (this.autoFocus) {
467
477
  requestAnimationFrame(() => {
@@ -470,8 +480,9 @@ export class EzSearch {
470
480
  }
471
481
  }
472
482
  disconnectedCallback() {
473
- var _a;
483
+ var _a, _b;
474
484
  (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
485
+ (_b = this._intersectionObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
475
486
  }
476
487
  //---------------------------------------------
477
488
  // Event handlers
@@ -5,6 +5,8 @@ export class SearchList {
5
5
  constructor() {
6
6
  this._startHighlightTag = "<span class='card-item__highlight'>";
7
7
  this._endHighlightTag = "</span>";
8
+ this.MAX_HEIGHT = 350;
9
+ this.HEADER_MENU_HEIGHT = 60;
8
10
  this.showLoading = undefined;
9
11
  this.visibleOptions = [];
10
12
  this.textEmptyList = undefined;
@@ -58,11 +60,38 @@ export class SearchList {
58
60
  };
59
61
  return h("div", { style: { "height": "100%" }, class: index === this.preSelection ? "item preselected" : "item", id: `item_${opt.value}`, onMouseDown: () => this.createOption(card), onMouseOver: () => this.changePreSelection.emit(index) }, h("ez-card-item", { item: card, compacted: true, enableKey: this.showOptionValue }));
60
62
  }
63
+ componentDidLoad() {
64
+ if (this._optionsList) {
65
+ this._optionsList.style.maxHeight = `${this.MAX_HEIGHT}px`;
66
+ }
67
+ }
68
+ componentDidUpdate() {
69
+ if (this._optionsList) {
70
+ const rect = this._optionsList.getBoundingClientRect();
71
+ const spaceBelow = window.innerHeight - rect.bottom;
72
+ if (spaceBelow < 0) {
73
+ this.adjustMaxHeight(rect);
74
+ }
75
+ }
76
+ }
77
+ adjustMaxHeight(rect) {
78
+ if (this._optionsList) {
79
+ const spaceAbove = rect.top - this.HEADER_MENU_HEIGHT;
80
+ const maxHeight = this.MAX_HEIGHT;
81
+ const height = Math.min(spaceAbove, maxHeight);
82
+ this._optionsList.style.maxHeight = `${height}px`;
83
+ }
84
+ }
85
+ cleanEmptyObjectArray(arr) {
86
+ return arr.filter(item => {
87
+ return Object.values(item).some(valor => valor !== undefined);
88
+ });
89
+ }
61
90
  render() {
62
91
  return (h(Host, null, h("ul", { class: "list-options", ref: elem => this._optionsList = elem }, !this.showLoading
63
- && this.visibleOptions.length === 0
92
+ && this.cleanEmptyObjectArray(this.visibleOptions).length === 0
64
93
  && h("div", { class: "message" }, h("span", { class: "message__no-result" }, this.textEmptyList)), this.showLoading
65
- && h("div", { class: "message" }, h("div", { class: "message__loading" })), this.canShowListOptions && this.visibleOptions.map((opt, index) => this.buildItem(opt, index)))));
94
+ && h("div", { class: "message" }, h("div", { class: "message__loading" })), this.canShowListOptions && this.cleanEmptyObjectArray(this.visibleOptions).map((opt, index) => this.buildItem(opt, index)))));
66
95
  }
67
96
  static get is() { return "search-list"; }
68
97
  static get encapsulation() { return "shadow"; }
@@ -669,11 +669,8 @@ export class EzSearchPlus {
669
669
  "required": false,
670
670
  "optional": false,
671
671
  "docs": {
672
- "tags": [{
673
- "name": "deprecated",
674
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
675
- }],
676
- "text": ""
672
+ "tags": [],
673
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
677
674
  },
678
675
  "attribute": "show-selected-value",
679
676
  "reflect": false,
@@ -690,11 +687,8 @@ export class EzSearchPlus {
690
687
  "required": false,
691
688
  "optional": false,
692
689
  "docs": {
693
- "tags": [{
694
- "name": "deprecated",
695
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
696
- }],
697
- "text": ""
690
+ "tags": [],
691
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
698
692
  },
699
693
  "attribute": "suppress-empty-option",
700
694
  "reflect": false,
@@ -711,11 +705,8 @@ export class EzSearchPlus {
711
705
  "required": false,
712
706
  "optional": false,
713
707
  "docs": {
714
- "tags": [{
715
- "name": "deprecated",
716
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
717
- }],
718
- "text": ""
708
+ "tags": [],
709
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
719
710
  },
720
711
  "attribute": "hide-error-on-focus-out",
721
712
  "reflect": false,
@@ -737,11 +728,8 @@ export class EzSearchPlus {
737
728
  "required": false,
738
729
  "optional": false,
739
730
  "docs": {
740
- "tags": [{
741
- "name": "deprecated",
742
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
743
- }],
744
- "text": ""
731
+ "tags": [],
732
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
745
733
  }
746
734
  },
747
735
  "isTextSearch": {
@@ -755,11 +743,8 @@ export class EzSearchPlus {
755
743
  "required": false,
756
744
  "optional": false,
757
745
  "docs": {
758
- "tags": [{
759
- "name": "deprecated",
760
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
761
- }],
762
- "text": ""
746
+ "tags": [],
747
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
763
748
  },
764
749
  "attribute": "is-text-search",
765
750
  "reflect": false,
@@ -776,11 +761,8 @@ export class EzSearchPlus {
776
761
  "required": false,
777
762
  "optional": false,
778
763
  "docs": {
779
- "tags": [{
780
- "name": "deprecated",
781
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
782
- }],
783
- "text": ""
764
+ "tags": [],
765
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
784
766
  },
785
767
  "attribute": "ignore-limit-chars-to-search",
786
768
  "reflect": false,
@@ -797,11 +779,8 @@ export class EzSearchPlus {
797
779
  "required": false,
798
780
  "optional": false,
799
781
  "docs": {
800
- "tags": [{
801
- "name": "deprecated",
802
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
803
- }],
804
- "text": ""
782
+ "tags": [],
783
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
805
784
  },
806
785
  "attribute": "suppress-search",
807
786
  "reflect": false,
@@ -818,11 +797,8 @@ export class EzSearchPlus {
818
797
  "required": false,
819
798
  "optional": false,
820
799
  "docs": {
821
- "tags": [{
822
- "name": "deprecated",
823
- "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
824
- }],
825
- "text": ""
800
+ "tags": [],
801
+ "text": "Propriedade depreciada na nova vers\u00E3o do componente de pesquisa."
826
802
  },
827
803
  "attribute": "suppress-pre-load",
828
804
  "reflect": false,
@@ -1 +1,25 @@
1
- export const ALLOWED_ANIMATIONS = ['progress', 'progress-dark', 'pulse', 'false'];
1
+ export const ALLOWED_ANIMATIONS = ['progress', 'pulse', 'false'];
2
+ export const ALLOWED_VARIANTS = ['circle', 'rect', 'text'];
3
+ export const DEFAULT_VALUES = {
4
+ COUNT: 1,
5
+ VARIANT: 'text',
6
+ ANIMATION: 'progress'
7
+ };
8
+ export const SKELETON_ARIA = {
9
+ DATA_BUSY: 'true',
10
+ DATA_VALUEMIN: '0',
11
+ DATA_VALUEMAX: '100',
12
+ DATA_VALUETEXT: 'Loading...',
13
+ ROLE: 'progressbar',
14
+ TABINDEX: '0'
15
+ };
16
+ export const VARIANT_TYPES = {
17
+ CIRCLE: 'circle',
18
+ RECT: 'rect',
19
+ TEXT: 'text'
20
+ };
21
+ export const ANIMATION_TYPES = {
22
+ PROGRESS: 'progress',
23
+ PULSE: 'pulse',
24
+ FALSE: 'false'
25
+ };