@sankhyalabs/ezui 5.22.0-dev.12 → 5.22.0-dev.120

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 (422) hide show
  1. package/dist/cjs/{CSSVarsUtils-10c9d5b4.js → CSSVarsUtils-f20973d1.js} +1 -0
  2. package/dist/cjs/DataBinder-b9973a19.js +474 -0
  3. package/dist/cjs/FocusResolver-885f2173.js +35 -0
  4. package/dist/cjs/FormLayout-c2451c7f.js +7 -0
  5. package/dist/cjs/{constants-2714478b.js → constants-569271bc.js} +4 -0
  6. package/dist/cjs/ez-actions-button.cjs.entry.js +6 -4
  7. package/dist/cjs/ez-badge.cjs.entry.js +14 -2
  8. package/dist/cjs/ez-button.cjs.entry.js +11 -5
  9. package/dist/cjs/ez-card-item_2.cjs.entry.js +270 -0
  10. package/dist/cjs/ez-chart.cjs.entry.js +3 -3
  11. package/dist/cjs/ez-check.cjs.entry.js +18 -10
  12. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-collapsible-box.cjs.entry.js +3 -2
  14. package/dist/cjs/ez-combo-box-list_3.cjs.entry.js +388 -0
  15. package/dist/cjs/ez-combo-box.cjs.entry.js +79 -156
  16. package/dist/cjs/ez-date-input.cjs.entry.js +16 -19
  17. package/dist/cjs/ez-date-time-input.cjs.entry.js +15 -20
  18. package/dist/cjs/ez-dialog.cjs.entry.js +18 -8
  19. package/dist/cjs/ez-double-list.cjs.entry.js +287 -0
  20. package/dist/cjs/ez-dropdown.cjs.entry.js +14 -8
  21. package/dist/cjs/ez-filter-input.cjs.entry.js +129 -0
  22. package/dist/cjs/ez-form-view.cjs.entry.js +41 -27
  23. package/dist/cjs/ez-form.cjs.entry.js +34 -327
  24. package/dist/cjs/ez-grid.cjs.entry.js +15146 -69779
  25. package/dist/cjs/ez-icon.cjs.entry.js +1 -1
  26. package/dist/cjs/ez-list.cjs.entry.js +258 -211
  27. package/dist/cjs/ez-modal-container.cjs.entry.js +7 -3
  28. package/dist/cjs/ez-modal.cjs.entry.js +17 -4
  29. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +2 -2
  30. package/dist/cjs/ez-number-input.cjs.entry.js +16 -3
  31. package/dist/cjs/ez-popover-plus_3.cjs.entry.js +209 -0
  32. package/dist/cjs/ez-popup.cjs.entry.js +29 -3
  33. package/dist/cjs/ez-scroller_2.cjs.entry.js +3 -3
  34. package/dist/cjs/ez-search-plus.cjs.entry.js +398 -0
  35. package/dist/cjs/ez-search-result-list.cjs.entry.js +97 -0
  36. package/dist/cjs/ez-search.cjs.entry.js +124 -191
  37. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-skeleton.cjs.entry.js +1 -1
  39. package/dist/cjs/ez-split-button.cjs.entry.js +2 -2
  40. package/dist/cjs/ez-split-item.cjs.entry.js +8 -4
  41. package/dist/cjs/ez-split-panel.cjs.entry.js +68 -6
  42. package/dist/cjs/ez-text-area.cjs.entry.js +91 -8
  43. package/dist/cjs/ez-text-input.cjs.entry.js +135 -30
  44. package/dist/cjs/ez-time-input.cjs.entry.js +9 -2
  45. package/dist/cjs/ez-tooltip.cjs.entry.js +135 -0
  46. package/dist/cjs/ez-tree.cjs.entry.js +5 -4
  47. package/dist/cjs/ezListHelper-0d3970b4.js +90 -0
  48. package/dist/cjs/ezui.cjs.js +1 -1
  49. package/dist/cjs/filter-column.cjs.entry.js +10 -47
  50. package/dist/cjs/floating-ui.dom.esm-017acce4.js +1404 -0
  51. package/dist/cjs/index-9e5554cb.js +32 -8
  52. package/dist/cjs/loader.cjs.js +1 -1
  53. package/dist/cjs/searchFormatters-b7e1ed1e.js +23 -0
  54. package/dist/cjs/{ICustomRender-6fafffce.js → types-6a5df0c7.js} +8 -0
  55. package/dist/collection/collection-manifest.json +20 -2
  56. package/dist/collection/components/ez-actions-button/ez-actions-button.js +3 -2
  57. package/dist/collection/components/ez-badge/ez-badge.css +12 -1
  58. package/dist/collection/components/ez-badge/ez-badge.js +31 -1
  59. package/dist/collection/components/ez-button/ez-button.css +24 -14
  60. package/dist/collection/components/ez-button/ez-button.js +12 -6
  61. package/dist/collection/components/ez-card-item/ez-card-item.css +58 -10
  62. package/dist/collection/components/ez-card-item/ez-card-item.js +30 -3
  63. package/dist/collection/components/ez-chart/ez-chart.js +2 -2
  64. package/dist/collection/components/ez-chart/interfaces/ChartTypeValue.js +1 -0
  65. package/dist/collection/components/ez-chart/types/BaseHighChartsRender.js +3 -3
  66. package/dist/collection/components/ez-check/ez-check.css +10 -6
  67. package/dist/collection/components/ez-check/ez-check.js +34 -9
  68. package/dist/collection/components/ez-chip/ez-chip.css +5 -1
  69. package/dist/collection/components/ez-collapsible-box/ez-collapsible-box.css +2 -2
  70. package/dist/collection/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.css +205 -0
  71. package/dist/collection/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.js +426 -0
  72. package/dist/collection/components/ez-combo-box/ez-combo-box.css +8 -246
  73. package/dist/collection/components/ez-combo-box/ez-combo-box.js +139 -165
  74. package/dist/collection/components/ez-date-input/ez-date-input.css +1 -1
  75. package/dist/collection/components/ez-date-input/ez-date-input.js +58 -19
  76. package/dist/collection/components/ez-date-time-input/ez-date-time-input.css +1 -1
  77. package/dist/collection/components/ez-date-time-input/ez-date-time-input.js +57 -20
  78. package/dist/collection/components/ez-dialog/ez-dialog.css +27 -24
  79. package/dist/collection/components/ez-dialog/ez-dialog.js +18 -17
  80. package/dist/collection/components/ez-double-list/doubleListHelper.js +82 -0
  81. package/dist/collection/components/ez-double-list/ez-double-list.css +62 -0
  82. package/dist/collection/components/ez-double-list/ez-double-list.js +440 -0
  83. package/dist/collection/components/ez-dropdown/ez-dropdown.js +33 -8
  84. package/dist/collection/components/ez-filter-input/ez-filter-input.css +1 -1
  85. package/dist/collection/components/ez-filter-input/ez-filter-input.js +35 -4
  86. package/dist/collection/components/ez-form/ez-form.js +32 -4
  87. package/dist/collection/components/ez-form-view/custom-input/ez-custom-form-input.js +49 -6
  88. package/dist/collection/components/ez-form-view/ez-form-view.css +13 -2
  89. package/dist/collection/components/ez-form-view/ez-form-view.js +21 -2
  90. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +5 -2
  91. package/dist/collection/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.js +1 -1
  92. package/dist/collection/components/ez-form-view/fieldbuilder/templates/ComboBox.tpl.js +1 -1
  93. package/dist/collection/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.js +8 -4
  94. package/dist/collection/components/ez-form-view/fieldbuilder/templates/FileInput.tpl.js +1 -1
  95. package/dist/collection/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.js +1 -1
  96. package/dist/collection/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.js +1 -1
  97. package/dist/collection/components/ez-form-view/fieldbuilder/templates/SearchInputPlus.tpl.js +6 -0
  98. package/dist/collection/components/ez-form-view/fieldbuilder/templates/TextArea.tpl.js +1 -1
  99. package/dist/collection/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.js +2 -2
  100. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +387 -73
  101. package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +170 -33
  102. package/dist/collection/components/ez-grid/controller/ag-grid/DataSourceInterceptor.js +2 -1
  103. package/dist/collection/components/ez-grid/controller/ag-grid/GridEditionManager.js +248 -43
  104. package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.js +16 -0
  105. package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomHeader.js +1 -1
  106. package/dist/collection/components/ez-grid/controller/ag-grid/editor/EzCellEditor.js +10 -0
  107. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/ComboBox.tpl.js +2 -0
  108. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/DateInput.tpl.js +1 -0
  109. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/NumberInput.tpl.js +1 -0
  110. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/Search.tpl.js +8 -1
  111. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/SearchPlus.tpl.js +15 -0
  112. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/TextInput.tpl.js +4 -1
  113. package/dist/collection/components/ez-grid/controller/ag-grid/test/constants/GridEditionMock.js +2 -0
  114. package/dist/collection/components/ez-grid/ez-grid.css +95 -10
  115. package/dist/collection/components/ez-grid/ez-grid.js +370 -12
  116. package/dist/collection/components/ez-grid/subcomponents/filter-column.css +4 -0
  117. package/dist/collection/components/ez-grid/subcomponents/filter-column.js +9 -46
  118. package/dist/collection/components/ez-grid/utils/ColumnFilterManager.js +7 -54
  119. package/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource.js +20 -4
  120. package/dist/collection/components/ez-icon/ez-icon.css +156 -149
  121. package/dist/collection/components/ez-list/ez-list.css +5 -4
  122. package/dist/collection/components/ez-list/ez-list.js +301 -212
  123. package/dist/collection/components/ez-list/ezListHelper.js +85 -0
  124. package/dist/collection/components/ez-modal/ez-modal.css +7 -2
  125. package/dist/collection/components/ez-modal/ez-modal.js +18 -5
  126. package/dist/collection/components/ez-modal-container/ez-modal-container.css +1 -0
  127. package/dist/collection/components/ez-modal-container/ez-modal-container.js +6 -2
  128. package/dist/collection/components/ez-multi-selection-list/ez-multi-selection-list.css +3 -3
  129. package/dist/collection/components/ez-multi-selection-list/ez-multi-selection-list.js +1 -1
  130. package/dist/collection/components/ez-number-input/ez-number-input.css +8 -0
  131. package/dist/collection/components/ez-number-input/ez-number-input.js +67 -1
  132. package/dist/collection/components/ez-popover-plus/ez-popover-plus.css +3 -0
  133. package/dist/collection/components/ez-popover-plus/ez-popover-plus.js +434 -0
  134. package/dist/collection/components/ez-popover-plus/subcomponent/ez-popover-core.css +67 -0
  135. package/dist/collection/components/ez-popover-plus/subcomponent/ez-popover-core.js +527 -0
  136. package/dist/collection/components/ez-popup/ez-popup.css +8 -3
  137. package/dist/collection/components/ez-popup/ez-popup.js +48 -4
  138. package/dist/collection/components/ez-scroller/ez-scroller.css +4 -0
  139. package/dist/collection/components/ez-search/ez-search.css +2 -210
  140. package/dist/collection/components/ez-search/ez-search.js +223 -204
  141. package/dist/collection/components/ez-search/subcomponent/search-list/search-list.css +227 -0
  142. package/dist/collection/components/ez-search/subcomponent/search-list/search-list.js +289 -0
  143. package/dist/collection/components/ez-search/utils/searchFormatters.js +18 -0
  144. package/dist/collection/components/ez-search-plus/ez-search-plus.css +373 -0
  145. package/dist/collection/components/ez-search-plus/ez-search-plus.js +984 -0
  146. package/dist/collection/components/ez-search-plus/subcomponent/ez-search-result-list/ez-search-result-list.css +221 -0
  147. package/dist/collection/components/ez-search-plus/subcomponent/ez-search-result-list/ez-search-result-list.js +278 -0
  148. package/dist/collection/components/ez-sidebar-button/ez-sidebar-button.css +3 -0
  149. package/dist/collection/components/ez-sidebar-button/ez-sidebar-button.js +1 -1
  150. package/dist/collection/components/ez-sidebar-navigator/ez-sidebar-navigator.css +4 -1
  151. package/dist/collection/components/ez-skeleton/ez-skeleton.css +54 -34
  152. package/dist/collection/components/ez-split-button/ez-split-button.css +52 -14
  153. package/dist/collection/components/ez-split-button/ez-split-button.js +3 -3
  154. package/dist/collection/components/ez-split-panel/ez-split-panel.css +15 -0
  155. package/dist/collection/components/ez-split-panel/ez-split-panel.js +106 -5
  156. package/dist/collection/components/ez-split-panel/interfaces/IPanelSizeInfo.js +1 -0
  157. package/dist/collection/components/ez-split-panel/structure/item/ez-split-item.css +14 -2
  158. package/dist/collection/components/ez-split-panel/structure/item/ez-split-item.js +22 -1
  159. package/dist/collection/components/ez-text-area/ez-text-area.css +78 -29
  160. package/dist/collection/components/ez-text-area/ez-text-area.js +151 -6
  161. package/dist/collection/components/ez-text-input/ez-text-input.css +126 -93
  162. package/dist/collection/components/ez-text-input/ez-text-input.js +216 -28
  163. package/dist/collection/components/ez-time-input/ez-time-input.js +43 -1
  164. package/dist/collection/components/ez-tooltip/ez-tooltip.css +61 -0
  165. package/dist/collection/components/ez-tooltip/ez-tooltip.js +310 -0
  166. package/dist/collection/components/ez-tree/ez-tree.js +21 -1
  167. package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +3 -3
  168. package/dist/collection/sw.js +46 -0
  169. package/dist/collection/utils/CSSVarsUtils.js +1 -0
  170. package/dist/collection/utils/FocusResolver.js +31 -0
  171. package/dist/collection/utils/constants.js +2 -0
  172. package/dist/collection/utils/form/DataBinder.js +65 -21
  173. package/dist/collection/utils/form/FormMetadata.js +2 -1
  174. package/dist/collection/utils/form/interfaces/FormLayout.js +5 -0
  175. package/dist/collection/utils/form/interfaces/index.js +1 -1
  176. package/dist/collection/utils/form/test/DataBinder.test.js +14 -0
  177. package/dist/collection/utils/index.js +2 -0
  178. package/dist/collection/utils/interfaces/AbstractFieldMetadata.js +1 -1
  179. package/dist/collection/utils/search/types.js +7 -0
  180. package/dist/collection/utils/validators/recordvalidator/IInvalidCells.js +1 -0
  181. package/dist/collection/utils/validators/recordvalidator/RecordValidationProcessor.js +7 -1
  182. package/dist/custom-elements/index.d.ts +48 -0
  183. package/dist/custom-elements/index.js +21625 -72913
  184. package/dist/esm/{CSSVarsUtils-71ce76be.js → CSSVarsUtils-acba92d7.js} +1 -0
  185. package/dist/esm/DataBinder-1035e36f.js +470 -0
  186. package/dist/esm/FocusResolver-1ccbf850.js +33 -0
  187. package/dist/esm/FormLayout-54092963.js +7 -0
  188. package/dist/esm/constants-b036528f.js +7 -0
  189. package/dist/esm/ez-actions-button.entry.js +6 -4
  190. package/dist/esm/ez-badge.entry.js +14 -2
  191. package/dist/esm/ez-button.entry.js +11 -5
  192. package/dist/esm/ez-card-item_2.entry.js +265 -0
  193. package/dist/esm/ez-chart.entry.js +3 -3
  194. package/dist/esm/ez-check.entry.js +18 -10
  195. package/dist/esm/ez-chip.entry.js +1 -1
  196. package/dist/esm/ez-collapsible-box.entry.js +3 -2
  197. package/dist/esm/ez-combo-box-list_3.entry.js +382 -0
  198. package/dist/esm/ez-combo-box.entry.js +80 -157
  199. package/dist/esm/ez-date-input.entry.js +16 -19
  200. package/dist/esm/ez-date-time-input.entry.js +15 -20
  201. package/dist/esm/ez-dialog.entry.js +19 -9
  202. package/dist/esm/ez-double-list.entry.js +283 -0
  203. package/dist/esm/ez-dropdown.entry.js +14 -8
  204. package/dist/esm/ez-filter-input.entry.js +125 -0
  205. package/dist/esm/ez-form-view.entry.js +42 -28
  206. package/dist/esm/ez-form.entry.js +33 -326
  207. package/dist/esm/ez-grid.entry.js +15145 -69778
  208. package/dist/esm/ez-icon.entry.js +1 -1
  209. package/dist/esm/ez-list.entry.js +258 -211
  210. package/dist/esm/ez-modal-container.entry.js +7 -3
  211. package/dist/esm/ez-modal.entry.js +17 -4
  212. package/dist/esm/ez-multi-selection-list.entry.js +2 -2
  213. package/dist/esm/ez-number-input.entry.js +16 -3
  214. package/dist/esm/ez-popover-plus_3.entry.js +203 -0
  215. package/dist/esm/ez-popup.entry.js +29 -3
  216. package/dist/esm/ez-scroller_2.entry.js +3 -3
  217. package/dist/esm/ez-search-plus.entry.js +394 -0
  218. package/dist/esm/ez-search-result-list.entry.js +93 -0
  219. package/dist/esm/ez-search.entry.js +125 -192
  220. package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
  221. package/dist/esm/ez-skeleton.entry.js +1 -1
  222. package/dist/esm/ez-split-button.entry.js +2 -2
  223. package/dist/esm/ez-split-item.entry.js +8 -4
  224. package/dist/esm/ez-split-panel.entry.js +69 -7
  225. package/dist/esm/ez-text-area.entry.js +91 -8
  226. package/dist/esm/ez-text-input.entry.js +135 -30
  227. package/dist/esm/ez-time-input.entry.js +9 -2
  228. package/dist/esm/ez-tooltip.entry.js +131 -0
  229. package/dist/esm/ez-tree.entry.js +5 -4
  230. package/dist/esm/ezListHelper-00fb9b8d.js +87 -0
  231. package/dist/esm/ezui.js +1 -1
  232. package/dist/esm/filter-column.entry.js +10 -47
  233. package/dist/esm/floating-ui.dom.esm-5d3da819.js +1398 -0
  234. package/dist/esm/index-5a720e56.js +32 -8
  235. package/dist/esm/loader.js +1 -1
  236. package/dist/esm/searchFormatters-8229207e.js +20 -0
  237. package/dist/esm/{ICustomRender-875b5a40.js → types-6f6b2650.js} +9 -1
  238. package/dist/ezui/ezui.esm.js +1 -1
  239. package/dist/ezui/p-000159dc.entry.js +1 -0
  240. package/dist/ezui/p-06f1b8e4.entry.js +1 -0
  241. package/dist/ezui/{p-044d46d5.entry.js → p-07594da0.entry.js} +1 -1
  242. package/dist/ezui/p-0cfbbe82.entry.js +1 -0
  243. package/dist/ezui/p-0f658cfd.entry.js +1 -0
  244. package/dist/ezui/p-15ea0c98.js +1 -0
  245. package/dist/ezui/p-173f68ea.js +1 -0
  246. package/dist/ezui/p-18e71523.entry.js +1 -0
  247. package/dist/ezui/p-19389207.entry.js +1 -0
  248. package/dist/ezui/p-1f7241cd.entry.js +1 -0
  249. package/dist/ezui/p-1fefb37a.entry.js +1 -0
  250. package/dist/ezui/p-2069c78a.entry.js +1 -0
  251. package/dist/ezui/{p-b2f6bc0a.entry.js → p-2f351332.entry.js} +1 -1
  252. package/dist/ezui/{p-82ac8b06.entry.js → p-2f77f563.entry.js} +1 -1
  253. package/dist/ezui/p-3eaa0f67.entry.js +1 -0
  254. package/dist/ezui/p-40a60148.js +1 -0
  255. package/dist/ezui/p-44b39e81.entry.js +1 -0
  256. package/dist/ezui/p-4d8afc8e.entry.js +1 -0
  257. package/dist/ezui/p-5895e687.js +1 -0
  258. package/dist/ezui/p-5b85d3de.entry.js +1 -0
  259. package/dist/ezui/p-5b8639c0.entry.js +1 -0
  260. package/dist/ezui/p-5eea9886.js +1 -0
  261. package/dist/ezui/p-6b3fddee.entry.js +1 -0
  262. package/dist/ezui/p-6ccfb01f.entry.js +1 -0
  263. package/dist/ezui/p-708b196e.entry.js +1 -0
  264. package/dist/ezui/p-72731b9b.entry.js +1 -0
  265. package/dist/ezui/p-80dfc50b.js +1 -0
  266. package/dist/ezui/p-81452714.entry.js +309 -0
  267. package/dist/ezui/p-88c615f0.entry.js +1 -0
  268. package/dist/ezui/p-8d9ab0b0.entry.js +1 -0
  269. package/dist/ezui/p-8f49705f.entry.js +1 -0
  270. package/dist/ezui/p-9066b0b0.entry.js +1 -0
  271. package/dist/ezui/p-90e91173.entry.js +1 -0
  272. package/dist/ezui/p-926a0bde.entry.js +1 -0
  273. package/dist/ezui/p-97d94ef3.entry.js +1 -0
  274. package/dist/ezui/p-9e95bfeb.entry.js +1 -0
  275. package/dist/ezui/p-a11827ca.entry.js +1 -0
  276. package/dist/ezui/p-b8344ae8.entry.js +1 -0
  277. package/dist/ezui/p-b9255e16.entry.js +1 -0
  278. package/dist/ezui/p-c2b1b592.entry.js +1 -0
  279. package/dist/ezui/p-c7035d65.entry.js +1 -0
  280. package/dist/ezui/p-cf33bc48.entry.js +1 -0
  281. package/dist/ezui/p-d2290004.entry.js +1 -0
  282. package/dist/ezui/p-dc628ed3.js +1 -0
  283. package/dist/ezui/p-ddb22a70.entry.js +1 -0
  284. package/dist/ezui/p-e07e4671.js +1 -0
  285. package/dist/ezui/p-e18c7afe.entry.js +1 -0
  286. package/dist/ezui/p-e5e911ef.entry.js +1 -0
  287. package/dist/ezui/p-ec7db713.js +1 -0
  288. package/dist/ezui/p-ed48a632.entry.js +1 -0
  289. package/dist/ezui/p-f6a88217.entry.js +1 -0
  290. package/dist/types/components/ez-badge/ez-badge.d.ts +5 -0
  291. package/dist/types/components/ez-button/ez-button.d.ts +2 -1
  292. package/dist/types/components/ez-calendar/ez-calendar.d.ts +3 -3
  293. package/dist/types/components/ez-card-item/ez-card-item.d.ts +5 -0
  294. package/dist/types/components/ez-chart/interfaces/ChartAxis.d.ts +2 -0
  295. package/dist/types/components/ez-chart/interfaces/ChartTypeValue.d.ts +1 -0
  296. package/dist/types/components/ez-check/ez-check.d.ts +7 -2
  297. package/dist/types/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.d.ts +104 -0
  298. package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +19 -15
  299. package/dist/types/components/ez-date-input/ez-date-input.d.ts +12 -3
  300. package/dist/types/components/ez-date-time-input/ez-date-time-input.d.ts +12 -3
  301. package/dist/types/components/ez-dialog/ez-dialog.d.ts +3 -1
  302. package/dist/types/components/ez-double-list/doubleListHelper.d.ts +10 -0
  303. package/dist/types/components/ez-double-list/ez-double-list.d.ts +87 -0
  304. package/dist/types/components/ez-dropdown/ez-dropdown.d.ts +4 -0
  305. package/dist/types/components/ez-dropdown/structure/DropdownItem.d.ts +1 -1
  306. package/dist/types/components/ez-filter-input/ez-filter-input.d.ts +6 -1
  307. package/dist/types/components/ez-form/ez-form.d.ts +5 -1
  308. package/dist/types/components/ez-form-view/custom-input/ez-custom-form-input.d.ts +7 -1
  309. package/dist/types/components/ez-form-view/ez-form-view.d.ts +4 -0
  310. package/dist/types/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.d.ts +2 -1
  311. package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInputPlus.tpl.d.ts +2 -0
  312. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.d.ts +1 -1
  313. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +75 -4
  314. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +42 -6
  315. package/dist/types/components/ez-grid/controller/ag-grid/DataSource.d.ts +26 -2
  316. package/dist/types/components/ez-grid/controller/ag-grid/GridEditionManager.d.ts +34 -7
  317. package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.d.ts +4 -1
  318. package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellRender.d.ts +1 -1
  319. package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomHeader.d.ts +1 -1
  320. package/dist/types/components/ez-grid/controller/ag-grid/components/cellRendererStatus.d.ts +1 -1
  321. package/dist/types/components/ez-grid/controller/ag-grid/components/selectionHeader.d.ts +1 -1
  322. package/dist/types/components/ez-grid/controller/ag-grid/editor/EzCellEditor.d.ts +2 -1
  323. package/dist/types/components/ez-grid/controller/ag-grid/editor/EzCellRender.d.ts +1 -1
  324. package/dist/types/components/ez-grid/controller/ag-grid/editor/IUICellEditor.d.ts +1 -0
  325. package/dist/types/components/ez-grid/controller/ag-grid/editor/templates/SearchPlus.tpl.d.ts +3 -0
  326. package/dist/types/components/ez-grid/controller/ag-grid/mock/Server.d.ts +1 -1
  327. package/dist/types/components/ez-grid/ez-grid.d.ts +59 -1
  328. package/dist/types/components/ez-grid/subcomponents/filter-column.d.ts +0 -11
  329. package/dist/types/components/ez-grid/utils/ColumnFilterManager.d.ts +1 -1
  330. package/dist/types/components/ez-grid/utils/InMemoryFilterColumnDataSource.d.ts +3 -0
  331. package/dist/types/components/ez-list/ez-list.d.ts +23 -2
  332. package/dist/types/components/ez-list/ezListHelper.d.ts +20 -0
  333. package/dist/types/components/ez-modal/ez-modal.d.ts +4 -1
  334. package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +2 -0
  335. package/dist/types/components/ez-number-input/ez-number-input.d.ts +12 -0
  336. package/dist/types/components/ez-popover-plus/ez-popover-plus.d.ts +74 -0
  337. package/dist/types/components/ez-popover-plus/subcomponent/ez-popover-core.d.ts +91 -0
  338. package/dist/types/components/ez-popup/ez-popup.d.ts +10 -1
  339. package/dist/types/components/ez-search/ez-search.d.ts +36 -18
  340. package/dist/types/components/ez-search/subcomponent/search-list/search-list.d.ts +23 -0
  341. package/dist/types/components/ez-search/utils/searchFormatters.d.ts +2 -0
  342. package/dist/types/components/ez-search-plus/ez-search-plus.d.ts +186 -0
  343. package/dist/types/components/ez-search-plus/subcomponent/ez-search-result-list/ez-search-result-list.d.ts +26 -0
  344. package/dist/types/components/ez-split-button/ez-split-button.d.ts +1 -1
  345. package/dist/types/components/ez-split-panel/ez-split-panel.d.ts +11 -0
  346. package/dist/types/components/ez-split-panel/interfaces/IPanelSizeInfo.d.ts +9 -0
  347. package/dist/types/components/ez-split-panel/structure/item/ez-split-item.d.ts +5 -0
  348. package/dist/types/components/ez-text-area/ez-text-area.d.ts +25 -0
  349. package/dist/types/components/ez-text-input/ez-text-input.d.ts +35 -3
  350. package/dist/types/components/ez-time-input/ez-time-input.d.ts +8 -0
  351. package/dist/types/components/ez-tooltip/ez-tooltip.d.ts +57 -0
  352. package/dist/types/components/ez-tree/ez-tree.d.ts +4 -0
  353. package/dist/types/components/ez-tree/interfaces/ITreeItem.d.ts +1 -0
  354. package/dist/types/components/ez-tree/subcomponents/TreeItem.d.ts +1 -0
  355. package/dist/types/components.d.ts +1233 -63
  356. package/dist/types/utils/FocusResolver.d.ts +5 -0
  357. package/dist/types/utils/constants.d.ts +2 -0
  358. package/dist/types/utils/customEditor/interfaces/ICustomEditor.d.ts +2 -0
  359. package/dist/types/utils/form/DataBinder.d.ts +7 -2
  360. package/dist/types/utils/form/interfaces/FormLayout.d.ts +4 -0
  361. package/dist/types/utils/form/interfaces/index.d.ts +1 -0
  362. package/dist/types/utils/index.d.ts +2 -0
  363. package/dist/types/utils/search/types.d.ts +12 -0
  364. package/dist/types/utils/validators/recordvalidator/IInvalidCells.d.ts +5 -0
  365. package/dist/types/utils/validators/recordvalidator/RecordValidationProcessor.d.ts +1 -1
  366. package/package.json +12 -4
  367. package/react/components.d.ts +62 -54
  368. package/react/components.js +8 -0
  369. package/react/components.js.map +1 -1
  370. package/react/react-component-lib/createComponent.d.ts +1 -1
  371. package/react/react-component-lib/createComponent.js.map +1 -1
  372. package/react/react-component-lib/createOverlayComponent.js.map +1 -1
  373. package/react/react-component-lib/interfaces.js +1 -0
  374. package/react/react-component-lib/utils/attachProps.d.ts +1 -1
  375. package/react/react-component-lib/utils/attachProps.js.map +1 -1
  376. package/react/react-component-lib/utils/dev.js.map +1 -1
  377. package/react/react-component-lib/utils/index.d.ts +2 -2
  378. package/react/react-component-lib/utils/index.js.map +1 -1
  379. package/dist/cjs/RecordValidationProcessor-4c893e04.js +0 -102
  380. package/dist/cjs/ez-card-item_3.cjs.entry.js +0 -183
  381. package/dist/cjs/ez-custom-form-input_2.cjs.entry.js +0 -206
  382. package/dist/esm/RecordValidationProcessor-b00b8b77.js +0 -99
  383. package/dist/esm/constants-4e0d35b7.js +0 -5
  384. package/dist/esm/ez-card-item_3.entry.js +0 -177
  385. package/dist/esm/ez-custom-form-input_2.entry.js +0 -201
  386. package/dist/ezui/p-04f24913.js +0 -1
  387. package/dist/ezui/p-05e1f4e7.js +0 -1
  388. package/dist/ezui/p-0ee0ac03.entry.js +0 -1
  389. package/dist/ezui/p-11b09aa1.entry.js +0 -1
  390. package/dist/ezui/p-1b08bf3c.entry.js +0 -1
  391. package/dist/ezui/p-24ca32a3.entry.js +0 -1
  392. package/dist/ezui/p-2af4e2de.entry.js +0 -1
  393. package/dist/ezui/p-30951bd7.entry.js +0 -1
  394. package/dist/ezui/p-3141ee18.entry.js +0 -1
  395. package/dist/ezui/p-31674f8e.entry.js +0 -1
  396. package/dist/ezui/p-33792b2b.entry.js +0 -1
  397. package/dist/ezui/p-36180f4d.entry.js +0 -1
  398. package/dist/ezui/p-3f8c33e0.entry.js +0 -1
  399. package/dist/ezui/p-4607fb89.js +0 -1
  400. package/dist/ezui/p-52100a6e.entry.js +0 -1
  401. package/dist/ezui/p-5517995b.entry.js +0 -1
  402. package/dist/ezui/p-5fefcdc9.entry.js +0 -1
  403. package/dist/ezui/p-615def37.entry.js +0 -304
  404. package/dist/ezui/p-752c4069.entry.js +0 -1
  405. package/dist/ezui/p-81cffa53.entry.js +0 -1
  406. package/dist/ezui/p-81f99ace.entry.js +0 -1
  407. package/dist/ezui/p-868b56f7.entry.js +0 -1
  408. package/dist/ezui/p-8eef0f70.entry.js +0 -1
  409. package/dist/ezui/p-9634631d.entry.js +0 -1
  410. package/dist/ezui/p-9a23d513.entry.js +0 -1
  411. package/dist/ezui/p-9aa27e69.entry.js +0 -1
  412. package/dist/ezui/p-9c2e2d68.entry.js +0 -1
  413. package/dist/ezui/p-9e11fc7b.js +0 -1
  414. package/dist/ezui/p-b0e71d23.entry.js +0 -1
  415. package/dist/ezui/p-c3b7a23e.entry.js +0 -1
  416. package/dist/ezui/p-cd1a2e6b.entry.js +0 -1
  417. package/dist/ezui/p-dbeee5aa.entry.js +0 -1
  418. package/dist/ezui/p-de870657.entry.js +0 -1
  419. package/dist/ezui/p-ee9315ff.entry.js +0 -1
  420. package/dist/ezui/p-f1c2c19e.entry.js +0 -1
  421. package/dist/ezui/p-f1c3f85d.entry.js +0 -1
  422. package/dist/ezui/p-f291db18.entry.js +0 -1
@@ -1,8 +1,9 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import CSSVarsUtils from "../../utils/CSSVarsUtils";
3
- import { ElementIDUtils, FloatingManager, ObjectUtils, StringUtils } from "@sankhyalabs/core";
3
+ import { ElementIDUtils, ObjectUtils, StringUtils } from "@sankhyalabs/core";
4
4
  import { ApplicationUtils } from "../../utils";
5
5
  import { REQUIRED_INFO } from "../../utils/constants";
6
+ import { replaceHighlight, replaceQuotes } from "./utils/searchFormatters";
6
7
  export class EzSearch {
7
8
  constructor() {
8
9
  this._changeDeboucingTimeout = null;
@@ -18,15 +19,18 @@ export class EzSearch {
18
19
  this._visibleOptions = undefined;
19
20
  this._startLoading = false;
20
21
  this._showLoading = true;
22
+ this._showLoadingDescription = false;
21
23
  this._criteria = undefined;
22
24
  this.value = undefined;
23
25
  this.label = undefined;
24
26
  this.enabled = true;
25
27
  this.errorMessage = undefined;
26
28
  this.optionLoader = undefined;
29
+ this.contextProperties = undefined;
27
30
  this.showSelectedValue = true;
28
31
  this.showOptionValue = true;
29
32
  this.suppressEmptyOption = false;
33
+ this.stopPropagateEnterKeyEvent = false;
30
34
  this.mode = "regular";
31
35
  this.canShowError = true;
32
36
  this.hideErrorOnFocusOut = true;
@@ -35,7 +39,10 @@ export class EzSearch {
35
39
  this.ignoreLimitCharsToSearch = false;
36
40
  this.options = undefined;
37
41
  this.suppressSearch = false;
38
- this.fromGrid = false;
42
+ this.ensureClearButtonVisible = false;
43
+ this.suppressPreLoad = true;
44
+ this.autoFocus = false;
45
+ this.alternativePlaceholder = undefined;
39
46
  }
40
47
  observeErrorMessage() {
41
48
  var _a;
@@ -46,12 +53,21 @@ export class EzSearch {
46
53
  }
47
54
  }
48
55
  }
56
+ getValue(val) {
57
+ return typeof val === 'object' ? val === null || val === void 0 ? void 0 : val.value : val;
58
+ }
49
59
  validateNewValue(newValue, oldValue) {
50
- const getValue = (val) => typeof val === 'object' ? val === null || val === void 0 ? void 0 : val.value : val;
51
- return (getValue(newValue) !== getValue(oldValue));
60
+ const parsedNewValue = this.getValue(newValue);
61
+ const parsedOldValue = this.getValue(oldValue);
62
+ const newValueIsValid = parsedNewValue !== "[object Object]";
63
+ const valuesIsDifferent = parsedNewValue !== parsedOldValue;
64
+ if (newValueIsValid && valuesIsDifferent) {
65
+ return true;
66
+ }
67
+ return false;
52
68
  }
53
69
  async observeValue(newValue, oldValue) {
54
- if (this._textInput && newValue !== oldValue && this.validateNewValue(newValue, oldValue)) {
70
+ if (this._textInput && this.validateNewValue(newValue, oldValue)) {
55
71
  if (typeof newValue === "string") {
56
72
  await this.handleValueAsString(newValue);
57
73
  return;
@@ -68,7 +84,7 @@ export class EzSearch {
68
84
  }
69
85
  }
70
86
  observeOptions(newOptions, oldOptions) {
71
- if (!newOptions.length && this.fromGrid)
87
+ if (!newOptions.length && this.suppressPreLoad)
72
88
  return;
73
89
  if ((newOptions === null || newOptions === void 0 ? void 0 : newOptions.join('')) === (oldOptions === null || oldOptions === void 0 ? void 0 : oldOptions.join('')))
74
90
  return;
@@ -94,9 +110,9 @@ export class EzSearch {
94
110
  /**
95
111
  * Aplica o foco no campo.
96
112
  */
97
- async setFocus() {
113
+ async setFocus(options) {
98
114
  if (this._textInput) {
99
- this._textInput.setFocus();
115
+ this._textInput.setFocus(options);
100
116
  }
101
117
  }
102
118
  /**
@@ -119,73 +135,19 @@ export class EzSearch {
119
135
  async clearValue() {
120
136
  this.clearSearch();
121
137
  }
122
- scrollListener() {
123
- var _a;
124
- if (this._floatingID == undefined) {
125
- return;
126
- }
127
- if ((_a = this.listOptionsPosition) === null || _a === void 0 ? void 0 : _a.hardPosition) {
128
- this.hideOptions();
129
- }
130
- else {
131
- window.requestAnimationFrame(() => {
132
- this.updateListPosition();
133
- });
134
- }
135
- }
136
138
  async handleValueAsString(value) {
137
139
  if (this.getSelectedOption(value)) {
138
140
  this.setInputValue();
139
141
  return;
140
142
  }
141
143
  await this.loadDescriptionValue(value);
144
+ if (!this._currentValue) {
145
+ return;
146
+ }
142
147
  this.setInputValue();
143
148
  this.ezChange.emit(this.value);
144
149
  this._currentValue = this.value;
145
150
  }
146
- updateListPosition() {
147
- let { verticalPosition, horizontalPosition, fromBottom, fromRight, bottomLimit, hardPosition } = this.getListPosition();
148
- const elementRect = this._listWrapper.getBoundingClientRect();
149
- const containerRect = this._listContainer.getBoundingClientRect();
150
- const textInputRect = this._textInput.getBoundingClientRect();
151
- const limitHeight = bottomLimit || window.innerHeight;
152
- const neededHeight = containerRect.bottom + elementRect.height;
153
- if (!fromBottom && (elementRect.top < 0 || neededHeight > limitHeight)) {
154
- fromBottom = true;
155
- }
156
- if (!hardPosition) {
157
- verticalPosition = verticalPosition || 0;
158
- horizontalPosition = horizontalPosition || 0;
159
- if (fromBottom) {
160
- verticalPosition = window.innerHeight - textInputRect.top + verticalPosition;
161
- }
162
- else {
163
- verticalPosition += containerRect.top;
164
- }
165
- if (fromRight) {
166
- horizontalPosition = window.innerWidth - textInputRect.right + horizontalPosition;
167
- }
168
- else {
169
- horizontalPosition += containerRect.left;
170
- }
171
- }
172
- if (verticalPosition != undefined) {
173
- this._listWrapper.style[fromBottom ? "bottom" : "top"] = `${verticalPosition}px`;
174
- this._listWrapper.style[fromBottom ? "top" : "bottom"] = "";
175
- }
176
- if (horizontalPosition != undefined) {
177
- this._listWrapper.style[fromRight ? "right" : "left"] = `${horizontalPosition}px`;
178
- this._listWrapper.style[fromRight ? "left" : "right"] = "";
179
- }
180
- }
181
- getListPosition() {
182
- if (this.listOptionsPosition) {
183
- return this.listOptionsPosition;
184
- }
185
- return {
186
- verticalPosition: (this.errorMessage || !this.canShowError || this.mode === "slim") ? 6 : -13
187
- };
188
- }
189
151
  isDifferentValues(firstValue, secondValue) {
190
152
  return ObjectUtils.objectToString(firstValue || {}) !== ObjectUtils.objectToString(secondValue || {});
191
153
  }
@@ -193,28 +155,21 @@ export class EzSearch {
193
155
  if (currentValue == undefined) {
194
156
  return;
195
157
  }
196
- let text = (!this.showSelectedValue || currentValue.value == undefined) ? currentValue.label : `${currentValue.value} - ${currentValue.label}`;
197
- text = text.replace(new RegExp(this._startHighlightTag, 'g'), '').replace(new RegExp(this._endHighlightTag, 'g'), '');
158
+ let text = (!this.showSelectedValue || currentValue.value == undefined) ? currentValue.label : currentValue.label ? `${currentValue.value} - ${currentValue.label}` : currentValue.value;
159
+ text = text === null || text === void 0 ? void 0 : text.replace(new RegExp(this._startHighlightTag, 'g'), '').replace(new RegExp(this._endHighlightTag, 'g'), '');
198
160
  return text;
199
161
  }
200
162
  getText() {
201
163
  const currentValue = this.getSelectedOption(this._currentValue);
202
164
  const text = this.getFormattedText(currentValue);
203
- if (text == undefined) {
204
- return;
205
- }
206
- return String(text)
207
- .replace(/&amp;/g, '&')
208
- .replace(/&lt;/g, '<')
209
- .replace(/&gt;/g, '>')
210
- .replace(/&quot;/g, '"');
165
+ return replaceQuotes(text);
211
166
  }
212
167
  getSelectedOption(value) {
213
168
  if (typeof value === "string" || value instanceof String) {
214
169
  return this._visibleOptions.find(o => o.value === value);
215
170
  }
216
171
  if (value) {
217
- return Object.assign(Object.assign({}, value), { value: this.replaceHighlight(value === null || value === void 0 ? void 0 : value.value), label: this.replaceHighlight(value === null || value === void 0 ? void 0 : value.label) });
172
+ return Object.assign(Object.assign({}, value), { value: replaceHighlight(value === null || value === void 0 ? void 0 : value.value), label: replaceHighlight(value === null || value === void 0 ? void 0 : value.label) });
218
173
  }
219
174
  return value;
220
175
  }
@@ -252,75 +207,19 @@ export class EzSearch {
252
207
  }
253
208
  return 0;
254
209
  }
255
- createOption(detail) {
256
- let { key, title } = detail;
257
- const startHighlight = new RegExp(this._startHighlightTag, 'g');
258
- const endHighlight = new RegExp(this._endHighlightTag, 'g');
259
- title = StringUtils.decodeHtmlEntities(title);
260
- const option = {
261
- value: key === null || key === void 0 ? void 0 : key.replace(startHighlight, '').replace(endHighlight, ''),
262
- label: title === null || title === void 0 ? void 0 : title.replace(startHighlight, '').replace(endHighlight, '')
263
- };
264
- this.selectOption(option);
265
- }
266
- buildItem(opt, index) {
267
- opt.label = opt.label || opt.value;
268
- const card = {
269
- key: opt.value,
270
- title: opt.label,
271
- details: opt.details
272
- };
273
- return h("div", { style: { "height": "100%" }, class: index === this._preSelection ? "item preselected" : "item", id: `item_${opt.value}`, onMouseDown: () => this.createOption(card), onMouseOver: () => this._preSelection = index }, h("ez-card-item", { item: card }));
274
- }
275
210
  showOptions() {
276
211
  if (!this.enabled)
277
212
  return;
278
213
  if (this.isOptionsVisible()) {
279
214
  return;
280
215
  }
281
- if (!!this._resizeObserver)
282
- this._resizeObserver.observe(this._textInput);
283
- this._floatingID = FloatingManager.float(this._listWrapper, this._listContainer, { autoClose: false, isFixed: true, backClickListener: () => this.hideOptions() });
284
- this.setFocus();
285
- window.requestAnimationFrame(() => {
286
- this.updateListPosition();
287
- if (!this.listOptionsPosition) {
288
- this._listWrapper.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" });
289
- }
290
- });
216
+ this._ezPopOverPlusElement.showUnder(this._textInput);
291
217
  }
292
218
  hideOptions() {
293
- if (this._floatingID !== undefined) {
294
- FloatingManager.close(this._floatingID);
295
- }
296
- this._floatingID = undefined;
297
- if (!!this._resizeObserver)
298
- this._resizeObserver.unobserve(this._textInput);
219
+ this._ezPopOverPlusElement.hide();
299
220
  }
300
221
  isOptionsVisible() {
301
- return this._floatingID !== undefined && FloatingManager.isFloating(this._floatingID);
302
- }
303
- nextOption() {
304
- if (!this.isOptionsVisible()) {
305
- return;
306
- }
307
- this.showOptions();
308
- this._preSelection = this._preSelection === undefined ? 0 : Math.min(this._preSelection + 1, this._visibleOptions.length - 1);
309
- this.scrollToOption(this._visibleOptions[this._preSelection]);
310
- }
311
- previousOption() {
312
- this._preSelection = this._preSelection === undefined ? 0 : Math.max(this._preSelection - 1, 0);
313
- this.scrollToOption(this._visibleOptions[this._preSelection]);
314
- }
315
- scrollToOption(opt) {
316
- window.requestAnimationFrame(() => {
317
- const liElem = (opt === null || opt === void 0 ? void 0 : opt.value)
318
- ? this._optionsList.querySelector(`div#item_${opt.value.replace(/([ #;&,.+*~':"!^$[\]()=<>|/\\])/g, '\\$1')}`)
319
- : undefined;
320
- if (liElem) {
321
- liElem.scrollIntoView({ behavior: "smooth", block: "nearest" });
322
- }
323
- });
222
+ return this._ezPopOverPlusElement.opened;
324
223
  }
325
224
  selectCurrentOption() {
326
225
  if (this._preSelection !== undefined) {
@@ -335,10 +234,13 @@ export class EzSearch {
335
234
  this._startLoading = false;
336
235
  if (source instanceof Promise) {
337
236
  this._showLoading = true;
237
+ this._showLoadingDescription = true;
338
238
  source.then(result => {
339
- this._showLoading = false;
340
239
  this.updateSource(result);
341
- }).catch(() => this._showLoading = false);
240
+ }).finally(() => {
241
+ this._showLoading = false;
242
+ this._showLoadingDescription = false;
243
+ });
342
244
  this.updateVisibleOptions();
343
245
  }
344
246
  else {
@@ -348,7 +250,7 @@ export class EzSearch {
348
250
  this.updateVisibleOptions();
349
251
  if (this._tabPressed) {
350
252
  this._tabPressed = false;
351
- this.controlEmptySearch();
253
+ this.controlEmptySearch(false);
352
254
  }
353
255
  }
354
256
  else {
@@ -360,18 +262,14 @@ export class EzSearch {
360
262
  this._source = [];
361
263
  this.updateVisibleOptions();
362
264
  }
363
- replaceHighlight(value) {
364
- const startHighlight = new RegExp(this._startHighlightTag, 'g');
365
- const endHighlight = new RegExp(this._endHighlightTag, 'g');
366
- return (value !== null && value !== void 0 ? value : "").replace(startHighlight, '').replace(endHighlight, '');
367
- }
368
- selectOption(newOption) {
265
+ selectOption(newOption, focusOnInput = true) {
369
266
  var _a, _b;
370
267
  const currentValue = this.getSelectedOption(this.value);
371
- const newOptionsReplaced = Object.assign(Object.assign({}, newOption), { value: this.replaceHighlight(newOption === null || newOption === void 0 ? void 0 : newOption.value), label: this.replaceHighlight(newOption === null || newOption === void 0 ? void 0 : newOption.label) });
372
- if ((((_a = currentValue === null || currentValue === void 0 ? void 0 : currentValue.value) === null || _a === void 0 ? void 0 : _a.toString()) !== ((_b = newOptionsReplaced === null || newOptionsReplaced === void 0 ? void 0 : newOptionsReplaced.value) === null || _b === void 0 ? void 0 : _b.toString()))
373
- || (currentValue == undefined && newOptionsReplaced != undefined && "value" in newOptionsReplaced)) {
374
- const adjustedOpt = !(newOptionsReplaced === null || newOptionsReplaced === void 0 ? void 0 : newOptionsReplaced.value) ? undefined : newOptionsReplaced;
268
+ const newOptionsReplaced = Object.assign(Object.assign({}, newOption), { value: replaceHighlight(newOption === null || newOption === void 0 ? void 0 : newOption.value), label: replaceHighlight(newOption === null || newOption === void 0 ? void 0 : newOption.label) });
269
+ const newOptionsFormatted = Object.assign(Object.assign({}, newOptionsReplaced), { value: replaceQuotes(newOptionsReplaced === null || newOptionsReplaced === void 0 ? void 0 : newOptionsReplaced.value), label: replaceQuotes(newOptionsReplaced === null || newOptionsReplaced === void 0 ? void 0 : newOptionsReplaced.label) });
270
+ if ((((_a = currentValue === null || currentValue === void 0 ? void 0 : currentValue.value) === null || _a === void 0 ? void 0 : _a.toString()) !== ((_b = newOptionsFormatted === null || newOptionsFormatted === void 0 ? void 0 : newOptionsFormatted.value) === null || _b === void 0 ? void 0 : _b.toString()))
271
+ || (currentValue == undefined && newOptionsFormatted != undefined && "value" in newOptionsFormatted)) {
272
+ const adjustedOpt = !(newOptionsFormatted === null || newOptionsFormatted === void 0 ? void 0 : newOptionsFormatted.value) ? undefined : newOptionsFormatted;
375
273
  this.value = adjustedOpt;
376
274
  this._currentValue = adjustedOpt;
377
275
  }
@@ -381,20 +279,25 @@ export class EzSearch {
381
279
  }
382
280
  this._visibleOptions = [];
383
281
  this.clearSource();
282
+ if (focusOnInput) {
283
+ setTimeout(() => {
284
+ this.setFocus();
285
+ }, 0);
286
+ }
384
287
  }
385
288
  loadOptions(mode, argument = "") {
386
289
  this._criteria = argument;
387
290
  this._startLoading = true;
388
291
  if (this.optionLoader) {
389
292
  const searchArgument = { mode, argument };
390
- this.updateSource(this.optionLoader(searchArgument));
293
+ this.updateSource(this.optionLoader(searchArgument, this.contextProperties));
391
294
  }
392
295
  else {
393
296
  this.updateSource(this.options);
394
297
  }
395
298
  }
396
299
  cancelPreselection() {
397
- if (!this._textInput.value && this._currentValue) {
300
+ if (!this._textInput.value && this._currentValue && this._source.length > 0) {
398
301
  this.selectOption(undefined);
399
302
  }
400
303
  else {
@@ -417,7 +320,7 @@ export class EzSearch {
417
320
  this.value = null;
418
321
  this._currentValue = null;
419
322
  }
420
- controlListWithOnlyOne() {
323
+ controlListWithOnlyOne(focusOnInput = true) {
421
324
  var _a, _b;
422
325
  const source = (_a = this._visibleOptions) === null || _a === void 0 ? void 0 : _a.filter((opt) => opt.label !== "" && opt.value != undefined);
423
326
  if ((source === null || source === void 0 ? void 0 : source.length) > 0) {
@@ -428,31 +331,18 @@ export class EzSearch {
428
331
  value: (_b = source[0].value) === null || _b === void 0 ? void 0 : _b.replace(startHighlight, '').replace(endHighlight, ''),
429
332
  label: title === null || title === void 0 ? void 0 : title.replace(startHighlight, '').replace(endHighlight, '')
430
333
  };
431
- this.selectOption(option);
334
+ this.selectOption(option, focusOnInput);
432
335
  }
433
336
  }
434
- controlEmptySearch() {
337
+ controlEmptySearch(focusOnInput = true) {
435
338
  var _a;
436
339
  if (!((_a = this._visibleOptions) === null || _a === void 0 ? void 0 : _a.length)) {
437
340
  this.clearSearch();
438
341
  ApplicationUtils.info(this._textEmptyList);
439
342
  }
440
343
  else {
441
- this.controlListWithOnlyOne();
442
- }
443
- }
444
- validateDescriptionValue() {
445
- if (StringUtils.isEmpty(this.value)) {
446
- return;
447
- }
448
- if (!this.validateNewValue(this.value, this._currentValue)) {
449
- return;
450
- }
451
- let value = this.value;
452
- if (typeof value === "object") {
453
- return;
344
+ this.controlListWithOnlyOne(focusOnInput);
454
345
  }
455
- this.loadDescriptionValue(value);
456
346
  }
457
347
  async loadDescriptionValue(argument) {
458
348
  var _a, _b;
@@ -467,7 +357,7 @@ export class EzSearch {
467
357
  mode: SearchMode.PREDICTIVE,
468
358
  argument
469
359
  };
470
- const source = await ((_b = this.optionLoader) === null || _b === void 0 ? void 0 : _b.call(this, searchArgument));
360
+ const source = await ((_b = this.optionLoader) === null || _b === void 0 ? void 0 : _b.call(this, searchArgument, this.contextProperties));
471
361
  if (source == undefined) {
472
362
  return;
473
363
  }
@@ -486,8 +376,17 @@ export class EzSearch {
486
376
  this.showNoResultMessage();
487
377
  return;
488
378
  }
489
- this._currentValue = value ? Object.assign(Object.assign({}, value), { value: this.replaceHighlight(value.value), label: this.replaceHighlight(value.label) }) : value;
379
+ this._currentValue = value ? Object.assign(Object.assign({}, value), { value: replaceHighlight(value.value), label: replaceHighlight(value.label) }) : value;
490
380
  this.value = this._currentValue;
381
+ this.setTextInputValue();
382
+ }
383
+ setTextInputValue() {
384
+ if (this._textInput && (this._textInput.value === null || this._textInput.value === undefined)) {
385
+ if (this.value === undefined || this.value === null)
386
+ return;
387
+ const textValue = (typeof this.value === 'string') ? this.value : this.getFormattedText(this.value);
388
+ this._textInput.value = replaceQuotes(textValue);
389
+ }
491
390
  }
492
391
  loadOptionValue(argument) {
493
392
  var _a;
@@ -513,6 +412,19 @@ export class EzSearch {
513
412
  this._preSelection = undefined;
514
413
  this.updateVisibleOptions();
515
414
  }
415
+ async handleInitialValue() {
416
+ const valueIsValid = !!this.getValue(this.value);
417
+ if (!valueIsValid) {
418
+ return;
419
+ }
420
+ if (typeof this.value === "string") {
421
+ await this.handleValueAsString(this.value);
422
+ return;
423
+ }
424
+ let text = this.getFormattedText(this.value);
425
+ text = replaceQuotes(text);
426
+ this._textInput.value = text;
427
+ }
516
428
  //---------------------------------------------
517
429
  // Lifecycle web component
518
430
  //---------------------------------------------
@@ -537,28 +449,29 @@ export class EzSearch {
537
449
  }
538
450
  componentDidRender() {
539
451
  var _a;
540
- if (this._floatingID === undefined) {
541
- this._listWrapper.remove();
542
- }
543
452
  (_a = this._optionsList) === null || _a === void 0 ? void 0 : _a.querySelectorAll(".item").forEach((elem) => {
544
453
  ElementIDUtils.addIDInfoIfNotExists(elem, "itemSearch");
545
454
  });
546
- this.validateDescriptionValue();
547
455
  }
548
- componentDidLoad() {
456
+ async componentDidLoad() {
549
457
  this._currentValue = this.value;
550
458
  CSSVarsUtils.applyVarsTextInput(this.el, this._textInput);
551
- this.setInputValue(false);
552
459
  this._resizeObserver = new ResizeObserver((entries) => {
553
460
  window.requestAnimationFrame(() => {
554
461
  if (!Array.isArray(entries) || !entries.length)
555
462
  return;
556
- const { clientWidth } = this._listContainer;
557
- if (clientWidth > 0 && !!this._listWrapper) {
558
- this._listWrapper.style.width = `${clientWidth}px`;
559
- }
560
463
  });
561
464
  });
465
+ await this.handleInitialValue();
466
+ if (this.autoFocus) {
467
+ requestAnimationFrame(() => {
468
+ this.setFocus({ selectText: true });
469
+ });
470
+ }
471
+ }
472
+ disconnectedCallback() {
473
+ var _a;
474
+ (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
562
475
  }
563
476
  //---------------------------------------------
564
477
  // Event handlers
@@ -613,7 +526,7 @@ export class EzSearch {
613
526
  this._changeDeboucingTimeout = null;
614
527
  }
615
528
  }
616
- keyDownHandler(event) {
529
+ async keyDownHandler(event) {
617
530
  this._tabPressed = false;
618
531
  if (event.ctrlKey) {
619
532
  if (event.key === "f" || event.key === "F") {
@@ -628,14 +541,24 @@ export class EzSearch {
628
541
  }
629
542
  switch (event.key) {
630
543
  case "ArrowDown":
631
- this.nextOption();
632
544
  event.stopPropagation();
545
+ if (this.canShowListOptions()) {
546
+ event.preventDefault();
547
+ }
548
+ if (!this.isOptionsVisible()) {
549
+ this.showOptions();
550
+ }
551
+ await this._searchList.nextOption();
633
552
  break;
634
553
  case "ArrowUp":
635
- this.previousOption();
636
554
  event.stopPropagation();
555
+ if (this.canShowListOptions()) {
556
+ event.preventDefault();
557
+ }
558
+ await this._searchList.previousOption();
637
559
  break;
638
560
  case "Enter":
561
+ this.handleEventPropagation(event);
639
562
  this.selectCurrentOption();
640
563
  break;
641
564
  case "Escape":
@@ -643,7 +566,7 @@ export class EzSearch {
643
566
  break;
644
567
  case "Tab":
645
568
  this._tabPressed = true;
646
- this.controlListWithOnlyOne();
569
+ this.controlListWithOnlyOne(false);
647
570
  break;
648
571
  }
649
572
  //ATENÇÃO: Existe a necessidade de propagar o evento de teclado.
@@ -652,6 +575,12 @@ export class EzSearch {
652
575
  //e o contexto pode reagir (fechar um popup por exemplo).
653
576
  //event.stopPropagation();
654
577
  }
578
+ //O evento deve ter sua propagação interrompida, apenas se a lista de opções estiver sendo exibida.
579
+ handleEventPropagation(event) {
580
+ if (this._ezPopOverPlusElement.opened && this.stopPropagateEnterKeyEvent) {
581
+ event.stopPropagation();
582
+ }
583
+ }
655
584
  onTextInputFocusOutHandler() {
656
585
  if (this.hideErrorOnFocusOut)
657
586
  this.cancelPreselection();
@@ -659,15 +588,18 @@ export class EzSearch {
659
588
  canShowListOptions() {
660
589
  return !this._showLoading && this._visibleOptions.length > 0;
661
590
  }
591
+ canShowLoadSpinDescription() {
592
+ return this._showLoadingDescription && !this._ezPopOverPlusElement.opened;
593
+ }
594
+ onChangePreSelection(value) {
595
+ this._preSelection = value;
596
+ }
662
597
  render() {
663
598
  var _a;
664
599
  ElementIDUtils.addIDInfoIfNotExists(this.el, 'input');
665
- return (h(Host, null, h("ez-text-input", { "data-element-id": ElementIDUtils.getInternalIDInfo("textInput"), class: this.suppressSearch ? "suppressed-search-input" : "", ref: elem => this._textInput = elem, "data-slave-mode": "true", enabled: this.enabled && !this.suppressSearch, onInput: event => this.onTextInputChangeHandler(event), onFocusout: () => this.onTextInputFocusOutHandler(), onKeyDown: event => this.keyDownHandler(event), label: this.label, canShowError: this.canShowError, errorMessage: this.errorMessage, mode: this.mode }, h("button", { class: "btn", slot: "leftIcon", disabled: !this.enabled, tabindex: -1, onClick: () => this.handlerIconClick() }, h("ez-icon", { iconName: "search" })), (((_a = this._textInput) === null || _a === void 0 ? void 0 : _a.value) && (this._criteria || this.value) || this.fromGrid)
600
+ return (h(Host, null, h("ez-text-input", { "data-element-id": ElementIDUtils.getInternalIDInfo("textInput"), class: this.suppressSearch ? "suppressed-search-input" : "", ref: elem => this._textInput = elem, "data-slave-mode": "true", enabled: this.enabled && !this.suppressSearch, onInput: event => this.onTextInputChangeHandler(event), onFocusout: () => this.onTextInputFocusOutHandler(), onKeyDown: event => this.keyDownHandler(event), label: this.label, canShowError: this.canShowError, errorMessage: this.errorMessage, mode: this.mode, alternativePlaceholder: this.alternativePlaceholder }, h("button", { class: "btn", slot: "leftIcon", disabled: !this.enabled, tabindex: -1, onClick: () => this.handlerIconClick() }, this.canShowLoadSpinDescription() ? h("div", { class: "message__loading" }) : h("ez-icon", { iconName: "search" })), (((_a = this._textInput) === null || _a === void 0 ? void 0 : _a.value) && (this._criteria || this.value) || this.ensureClearButtonVisible)
666
601
  ? h("button", { class: "btn btn__close", slot: "rightIcon", disabled: !this.enabled, tabindex: -1, onClick: () => this.clearSearch() }, h("ez-icon", { iconName: "close" }))
667
- : undefined), h("section", { class: "list-container", ref: elem => this._listContainer = elem }, h("div", { class: "list-wrapper", ref: elem => this._listWrapper = elem }, h("ul", { class: "list-options", ref: elem => this._optionsList = elem }, !this._showLoading
668
- && this._visibleOptions.length === 0
669
- && h("div", { class: "message" }, h("span", { class: "message__no-result" }, this._textEmptyList)), this._showLoading
670
- && h("div", { class: "message" }, h("div", { class: "message__loading" })), h("span", { class: "item__value item__value--hidden", ref: elem => this._itemValueBasis = elem }), this.canShowListOptions() && this._visibleOptions.map((opt, index) => this.buildItem(opt, index)))))));
602
+ : undefined), h("ez-popover-plus", { ref: elem => this._ezPopOverPlusElement = elem, autoClose: false, overlayType: "none", useAnchorSize: true, anchorElement: [this._textInput, this.el] }, h("search-list", { ref: (ref) => this._searchList = ref, showLoading: this._showLoading, visibleOptions: this._visibleOptions, textEmptyList: this._textEmptyList, canShowListOptions: this.canShowListOptions(), value: this.value, showOptionValue: this.showOptionValue, preSelection: this._preSelection, onChangeValue: ({ detail }) => this.selectOption(detail), onChangePreSelection: ({ detail }) => this.onChangePreSelection(detail) }))));
671
603
  }
672
604
  static get is() { return "ez-search"; }
673
605
  static get encapsulation() { return "shadow"; }
@@ -760,8 +692,8 @@ export class EzSearch {
760
692
  "type": "unknown",
761
693
  "mutable": false,
762
694
  "complexType": {
763
- "original": "(argument: ISearchArgument) => Promise<Array<IOption>> | Array<IOption> | IOption",
764
- "resolved": "(argument: ISearchArgument) => IOption | IOption[] | Promise<IOption[]>",
695
+ "original": "(argument: ISearchArgument, ctxProperties?: any) => Promise<Array<IOption>> | Array<IOption> | IOption",
696
+ "resolved": "(argument: ISearchArgument, ctxProperties?: any) => IOption | IOption[] | Promise<IOption[]>",
765
697
  "references": {
766
698
  "ISearchArgument": {
767
699
  "location": "local"
@@ -784,6 +716,23 @@ export class EzSearch {
784
716
  "text": "Carrega as op\u00E7\u00F5es dinamicamente."
785
717
  }
786
718
  },
719
+ "contextProperties": {
720
+ "type": "any",
721
+ "mutable": false,
722
+ "complexType": {
723
+ "original": "any",
724
+ "resolved": "any",
725
+ "references": {}
726
+ },
727
+ "required": false,
728
+ "optional": true,
729
+ "docs": {
730
+ "tags": [],
731
+ "text": "Propriedades de contexto da aplica\u00E7\u00E3o."
732
+ },
733
+ "attribute": "context-properties",
734
+ "reflect": false
735
+ },
787
736
  "showSelectedValue": {
788
737
  "type": "boolean",
789
738
  "mutable": false,
@@ -838,6 +787,24 @@ export class EzSearch {
838
787
  "reflect": false,
839
788
  "defaultValue": "false"
840
789
  },
790
+ "stopPropagateEnterKeyEvent": {
791
+ "type": "boolean",
792
+ "mutable": false,
793
+ "complexType": {
794
+ "original": "boolean",
795
+ "resolved": "boolean",
796
+ "references": {}
797
+ },
798
+ "required": false,
799
+ "optional": false,
800
+ "docs": {
801
+ "tags": [],
802
+ "text": "Se true, ineterrompe a propaga\u00E7\u00E3o do evento de KeyDown da tecla enter"
803
+ },
804
+ "attribute": "stop-propagate-enter-key-event",
805
+ "reflect": false,
806
+ "defaultValue": "false"
807
+ },
841
808
  "mode": {
842
809
  "type": "string",
843
810
  "mutable": false,
@@ -988,7 +955,7 @@ export class EzSearch {
988
955
  "reflect": false,
989
956
  "defaultValue": "false"
990
957
  },
991
- "fromGrid": {
958
+ "ensureClearButtonVisible": {
992
959
  "type": "boolean",
993
960
  "mutable": false,
994
961
  "complexType": {
@@ -1000,11 +967,64 @@ export class EzSearch {
1000
967
  "optional": false,
1001
968
  "docs": {
1002
969
  "tags": [],
1003
- "text": "Informa se o componente est\u00E1 instanciado de dentro de uma grade"
970
+ "text": "Garante que o bot\u00E3o de limpar pesquisa est\u00E1 sempre vis\u00EDvel"
1004
971
  },
1005
- "attribute": "from-grid",
972
+ "attribute": "ensure-clear-button-visible",
1006
973
  "reflect": false,
1007
974
  "defaultValue": "false"
975
+ },
976
+ "suppressPreLoad": {
977
+ "type": "boolean",
978
+ "mutable": false,
979
+ "complexType": {
980
+ "original": "boolean",
981
+ "resolved": "boolean",
982
+ "references": {}
983
+ },
984
+ "required": false,
985
+ "optional": false,
986
+ "docs": {
987
+ "tags": [],
988
+ "text": "Se true, desabilita pr\u00E9-load das op\u00E7\u00F5es ao carregar componente"
989
+ },
990
+ "attribute": "suppress-pre-load",
991
+ "reflect": false,
992
+ "defaultValue": "true"
993
+ },
994
+ "autoFocus": {
995
+ "type": "boolean",
996
+ "mutable": false,
997
+ "complexType": {
998
+ "original": "boolean",
999
+ "resolved": "boolean",
1000
+ "references": {}
1001
+ },
1002
+ "required": false,
1003
+ "optional": false,
1004
+ "docs": {
1005
+ "tags": [],
1006
+ "text": "Se true o campo de texto receber\u00E1 o foco ao ser renderizado."
1007
+ },
1008
+ "attribute": "auto-focus",
1009
+ "reflect": false,
1010
+ "defaultValue": "false"
1011
+ },
1012
+ "alternativePlaceholder": {
1013
+ "type": "string",
1014
+ "mutable": false,
1015
+ "complexType": {
1016
+ "original": "string",
1017
+ "resolved": "string",
1018
+ "references": {}
1019
+ },
1020
+ "required": false,
1021
+ "optional": false,
1022
+ "docs": {
1023
+ "tags": [],
1024
+ "text": "Texto alternativo a ser apresentado como t\u00EDtulo do campo."
1025
+ },
1026
+ "attribute": "alternative-placeholder",
1027
+ "reflect": true
1008
1028
  }
1009
1029
  };
1010
1030
  }
@@ -1014,6 +1034,7 @@ export class EzSearch {
1014
1034
  "_visibleOptions": {},
1015
1035
  "_startLoading": {},
1016
1036
  "_showLoading": {},
1037
+ "_showLoadingDescription": {},
1017
1038
  "_criteria": {}
1018
1039
  };
1019
1040
  }
@@ -1059,11 +1080,18 @@ export class EzSearch {
1059
1080
  },
1060
1081
  "setFocus": {
1061
1082
  "complexType": {
1062
- "signature": "() => Promise<void>",
1063
- "parameters": [],
1083
+ "signature": "(options?: TFocusOptions) => Promise<void>",
1084
+ "parameters": [{
1085
+ "tags": [],
1086
+ "text": ""
1087
+ }],
1064
1088
  "references": {
1065
1089
  "Promise": {
1066
1090
  "location": "global"
1091
+ },
1092
+ "TFocusOptions": {
1093
+ "location": "import",
1094
+ "path": "../ez-text-input/ez-text-input"
1067
1095
  }
1068
1096
  },
1069
1097
  "return": "Promise<void>"
@@ -1136,15 +1164,6 @@ export class EzSearch {
1136
1164
  "methodName": "observeOptions"
1137
1165
  }];
1138
1166
  }
1139
- static get listeners() {
1140
- return [{
1141
- "name": "scroll",
1142
- "method": "scrollListener",
1143
- "target": "window",
1144
- "capture": true,
1145
- "passive": true
1146
- }];
1147
- }
1148
1167
  }
1149
1168
  var SearchMode;
1150
1169
  (function (SearchMode) {