@globalpayments/vega 2.29.0 → 2.30.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 (267) hide show
  1. package/dist/cjs/{app-globals-46ab4eb3.js → app-globals-391d9a14.js} +4 -3
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-0245d631.js → child-nodes-event-prevent-slimmer-bed95a1b.js} +2 -2
  3. package/dist/cjs/{element-appender-slimmer-2b251c0a.js → element-appender-slimmer-415d261a.js} +725 -536
  4. package/dist/cjs/{event-emit-slimmer-d409d0ac.js → event-emit-slimmer-b321e3f5.js} +1 -1
  5. package/dist/cjs/{feature-flag-controller-078da332.js → feature-flag-controller-f0619cc7.js} +5 -0
  6. package/dist/cjs/index-d6bf3435.js +15 -0
  7. package/dist/cjs/index.cjs.js +6 -5
  8. package/dist/cjs/{internal-vega-event-manager-4d9a8e67.js → internal-vega-event-manager-9ffb3ed1.js} +10 -3
  9. package/dist/cjs/loader.cjs.js +7 -6
  10. package/dist/cjs/vega-accordion.cjs.entry.js +3 -3
  11. package/dist/cjs/vega-app-header-button.cjs.entry.js +5 -5
  12. package/dist/cjs/vega-banner.cjs.entry.js +4 -4
  13. package/dist/cjs/vega-breadcrumb.cjs.entry.js +5 -5
  14. package/dist/cjs/vega-button-circle.cjs.entry.js +5 -5
  15. package/dist/cjs/vega-button-group_2.cjs.entry.js +5 -5
  16. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  17. package/dist/cjs/vega-button.cjs.entry.js +5 -5
  18. package/dist/cjs/vega-calendar_3.cjs.entry.js +5 -5
  19. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  20. package/dist/cjs/vega-checkbox_2.cjs.entry.js +5 -5
  21. package/dist/cjs/vega-chip.cjs.entry.js +5 -5
  22. package/dist/cjs/vega-color-picker.cjs.entry.js +11 -5
  23. package/dist/cjs/vega-combo-box.cjs.entry.js +359 -175
  24. package/dist/cjs/vega-date-picker_2.cjs.entry.js +12 -9
  25. package/dist/cjs/vega-dialog_2.cjs.entry.js +5 -5
  26. package/dist/cjs/vega-dropdown_5.cjs.entry.js +34 -20
  27. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  28. package/dist/cjs/{vega-event-id-e40ac8f0.js → vega-event-id-419d36a8.js} +2 -0
  29. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  30. package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
  31. package/dist/cjs/vega-flex.cjs.entry.js +1 -1
  32. package/dist/cjs/vega-form.cjs.entry.js +5 -5
  33. package/dist/cjs/vega-image-uploader.cjs.entry.js +5 -5
  34. package/dist/cjs/vega-input-credit-card.cjs.entry.js +5 -5
  35. package/dist/cjs/vega-input-numeric.cjs.entry.js +5 -5
  36. package/dist/cjs/vega-input-phone-number.cjs.entry.js +5 -5
  37. package/dist/cjs/vega-input-range.cjs.entry.js +5 -5
  38. package/dist/cjs/vega-input-select.cjs.entry.js +18 -6
  39. package/dist/cjs/vega-input.cjs.entry.js +3 -3
  40. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  41. package/dist/cjs/vega-left-nav_5.cjs.entry.js +4 -4
  42. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  43. package/dist/cjs/vega-pagination.cjs.entry.js +7 -7
  44. package/dist/cjs/vega-popover_2.cjs.entry.js +8 -8
  45. package/dist/cjs/vega-progress-tracker.cjs.entry.js +3 -3
  46. package/dist/cjs/vega-radio_2.cjs.entry.js +5 -5
  47. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  48. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +5 -5
  49. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +5 -5
  50. package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
  51. package/dist/cjs/vega-signature-capture.cjs.entry.js +3 -3
  52. package/dist/cjs/{vega-skeleton-loader-controller-4bd8cc88.js → vega-skeleton-loader-controller-4a016b04.js} +2 -12
  53. package/dist/cjs/vega-stepper.cjs.entry.js +5 -5
  54. package/dist/cjs/vega-tab-group_2.cjs.entry.js +5 -5
  55. package/dist/cjs/vega-table_8.cjs.entry.js +5 -5
  56. package/dist/cjs/vega-textarea.cjs.entry.js +5 -5
  57. package/dist/cjs/vega-time-picker_2.cjs.entry.js +7 -7
  58. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  59. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  60. package/dist/cjs/vega.cjs.js +7 -6
  61. package/dist/collection/components/vega-color-picker/vega-color-picker.css +8 -8
  62. package/dist/collection/components/vega-color-picker/vega-color-picker.js +30 -3
  63. package/dist/collection/components/vega-combo-box/slimmers/controllers/vega-combo-box-keyboard-controller.js +114 -0
  64. package/dist/collection/components/vega-combo-box/slimmers/controllers/vega-combo-box-value-controller.js +23 -0
  65. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +147 -0
  66. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-renderer.js +50 -0
  67. package/dist/collection/components/vega-combo-box/vega-combo-box.js +30 -177
  68. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.js +2 -0
  69. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-search-renderer.js +19 -5
  70. package/dist/collection/components/vega-dropdown/vega-dropdown.js +55 -9
  71. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.js +7 -1
  72. package/dist/collection/components/vega-input-select/vega-input-select.js +55 -2
  73. package/dist/collection/components/vega-sidenav/vega-sidenav-group/vega-sidenav-group.js +4 -4
  74. package/dist/collection/components/vega-sidenav/vega-sidenav-link/vega-sidenav-link.js +9 -9
  75. package/dist/collection/components/vega-sidenav/vega-sidenav.js +12 -12
  76. package/dist/collection/constants/ui.js +1 -0
  77. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +10 -3
  78. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  79. package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +2 -1
  80. package/dist/collection/helpers/feature-control/feature-flags-map.js +5 -0
  81. package/dist/collection/helpers/slimmers/element-appender-container/body-positioned-wrapper/body-positioned-wrapper.abstract.js +13 -0
  82. package/dist/collection/helpers/slimmers/element-appender-container/{position-relative-to-wrapper.js → body-positioned-wrapper/position-relative-to-wrapper.js} +23 -21
  83. package/dist/collection/helpers/slimmers/element-appender-container/{vega-modal-wrapper.js → body-positioned-wrapper/vega-modal-wrapper.js} +18 -15
  84. package/dist/collection/helpers/slimmers/element-appender-container/{vega-popover-wrapper.js → body-positioned-wrapper/vega-popover-wrapper.js} +20 -19
  85. package/dist/collection/helpers/slimmers/element-appender-container/default-wrapper.js +19 -19
  86. package/dist/collection/helpers/slimmers/element-appender-container/element-appender-container-controller.js +3 -3
  87. package/dist/collection/helpers/slimmers/element-appender-slimmer.js +10 -0
  88. package/dist/collection/helpers/slimmers/position-calculation/base-position-calculation-strategy.js +345 -0
  89. package/dist/collection/helpers/slimmers/position-calculation/body-position-calculation-strategy.js +66 -0
  90. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +121 -0
  91. package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +59 -0
  92. package/dist/collection/{utils/test/position.test.js → helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.js} +135 -45
  93. package/dist/collection/helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.js +113 -0
  94. package/dist/collection/helpers/ui/element-appender.js +21 -70
  95. package/dist/collection/helpers/ui/test/element-appender.test.js +53 -0
  96. package/dist/collection/utils/pagination.js +2 -2
  97. package/dist/esm/{app-globals-d90e7905.js → app-globals-00a57fbe.js} +3 -2
  98. package/dist/esm/{child-nodes-event-prevent-slimmer-4ecbc8aa.js → child-nodes-event-prevent-slimmer-db288af1.js} +2 -2
  99. package/dist/esm/{element-appender-slimmer-6cf76806.js → element-appender-slimmer-48d826b2.js} +719 -530
  100. package/dist/esm/{event-emit-slimmer-cb9d6f6c.js → event-emit-slimmer-44cb4573.js} +1 -1
  101. package/dist/esm/{feature-flag-controller-10780eeb.js → feature-flag-controller-297c4b9b.js} +5 -0
  102. package/dist/esm/index-fda6b5ee.js +13 -0
  103. package/dist/esm/index.js +5 -4
  104. package/dist/esm/{internal-vega-event-manager-1ebfd1eb.js → internal-vega-event-manager-8154661e.js} +10 -3
  105. package/dist/esm/loader.js +7 -6
  106. package/dist/esm/vega-accordion.entry.js +3 -3
  107. package/dist/esm/vega-app-header-button.entry.js +5 -5
  108. package/dist/esm/vega-banner.entry.js +4 -4
  109. package/dist/esm/vega-breadcrumb.entry.js +5 -5
  110. package/dist/esm/vega-button-circle.entry.js +5 -5
  111. package/dist/esm/vega-button-group_2.entry.js +5 -5
  112. package/dist/esm/vega-button-link.entry.js +5 -5
  113. package/dist/esm/vega-button.entry.js +5 -5
  114. package/dist/esm/vega-calendar_3.entry.js +5 -5
  115. package/dist/esm/vega-carousel.entry.js +3 -3
  116. package/dist/esm/vega-checkbox_2.entry.js +5 -5
  117. package/dist/esm/vega-chip.entry.js +5 -5
  118. package/dist/esm/vega-color-picker.entry.js +12 -6
  119. package/dist/esm/vega-combo-box.entry.js +362 -178
  120. package/dist/esm/vega-date-picker_2.entry.js +12 -9
  121. package/dist/esm/vega-dialog_2.entry.js +5 -5
  122. package/dist/esm/vega-dropdown_5.entry.js +34 -20
  123. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  124. package/dist/esm/{vega-event-id-7465a011.js → vega-event-id-b1655cbc.js} +2 -1
  125. package/dist/esm/vega-field-label.entry.js +3 -3
  126. package/dist/esm/vega-file-uploader.entry.js +3 -3
  127. package/dist/esm/vega-flex.entry.js +1 -1
  128. package/dist/esm/vega-form.entry.js +5 -5
  129. package/dist/esm/vega-image-uploader.entry.js +5 -5
  130. package/dist/esm/vega-input-credit-card.entry.js +5 -5
  131. package/dist/esm/vega-input-numeric.entry.js +5 -5
  132. package/dist/esm/vega-input-phone-number.entry.js +5 -5
  133. package/dist/esm/vega-input-range.entry.js +5 -5
  134. package/dist/esm/vega-input-select.entry.js +18 -6
  135. package/dist/esm/vega-input.entry.js +3 -3
  136. package/dist/esm/vega-item-toggle.entry.js +3 -3
  137. package/dist/esm/vega-left-nav_5.entry.js +4 -4
  138. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  139. package/dist/esm/vega-pagination.entry.js +7 -7
  140. package/dist/esm/vega-popover_2.entry.js +8 -8
  141. package/dist/esm/vega-progress-tracker.entry.js +3 -3
  142. package/dist/esm/vega-radio_2.entry.js +5 -5
  143. package/dist/esm/vega-segment-control.entry.js +3 -3
  144. package/dist/esm/vega-selection-chip_2.entry.js +5 -5
  145. package/dist/esm/vega-selection-tile_2.entry.js +5 -5
  146. package/dist/esm/vega-sidenav_3.entry.js +10 -10
  147. package/dist/esm/vega-signature-capture.entry.js +3 -3
  148. package/dist/esm/{vega-skeleton-loader-controller-def7bf3f.js → vega-skeleton-loader-controller-cec6753f.js} +2 -12
  149. package/dist/esm/vega-stepper.entry.js +5 -5
  150. package/dist/esm/vega-tab-group_2.entry.js +5 -5
  151. package/dist/esm/vega-table_8.entry.js +5 -5
  152. package/dist/esm/vega-textarea.entry.js +5 -5
  153. package/dist/esm/vega-time-picker_2.entry.js +7 -7
  154. package/dist/esm/vega-toggle-switch.entry.js +3 -3
  155. package/dist/esm/vega-tooltip_2.entry.js +6 -6
  156. package/dist/esm/vega.js +7 -6
  157. package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +6 -0
  158. package/dist/types/components/vega-combo-box/slimmers/controllers/vega-combo-box-keyboard-controller.d.ts +29 -0
  159. package/dist/types/components/vega-combo-box/slimmers/controllers/vega-combo-box-value-controller.d.ts +14 -0
  160. package/dist/types/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.d.ts +41 -0
  161. package/dist/types/components/vega-combo-box/slimmers/renderers/vega-combo-box-renderer.d.ts +17 -0
  162. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +8 -48
  163. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-search-renderer.d.ts +1 -0
  164. package/dist/types/components/vega-dropdown/types.d.ts +5 -0
  165. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +21 -1
  166. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.d.ts +1 -0
  167. package/dist/types/components/vega-input-select/vega-input-select.d.ts +20 -0
  168. package/dist/types/components/vega-sidenav/vega-sidenav-group/vega-sidenav-group.d.ts +3 -3
  169. package/dist/types/components/vega-sidenav/vega-sidenav-link/vega-sidenav-link.d.ts +7 -7
  170. package/dist/types/components/vega-sidenav/vega-sidenav.d.ts +8 -8
  171. package/dist/types/components.d.ts +58 -26
  172. package/dist/types/constants/ui.d.ts +1 -1
  173. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  174. package/dist/types/helpers/feature-control/feature-flag.d.ts +2 -1
  175. package/dist/types/helpers/slimmers/element-appender-container/body-positioned-wrapper/body-positioned-wrapper.abstract.d.ts +15 -0
  176. package/dist/types/helpers/slimmers/element-appender-container/{position-relative-to-wrapper.d.ts → body-positioned-wrapper/position-relative-to-wrapper.d.ts} +5 -5
  177. package/dist/types/helpers/slimmers/element-appender-container/{vega-modal-wrapper.d.ts → body-positioned-wrapper/vega-modal-wrapper.d.ts} +5 -5
  178. package/dist/types/helpers/slimmers/element-appender-container/{vega-popover-wrapper.d.ts → body-positioned-wrapper/vega-popover-wrapper.d.ts} +5 -5
  179. package/dist/types/helpers/slimmers/element-appender-container/default-wrapper.d.ts +2 -2
  180. package/dist/types/helpers/slimmers/element-appender-container/element-appender-container-controller.d.ts +3 -3
  181. package/dist/types/helpers/slimmers/element-appender-slimmer.d.ts +1 -0
  182. package/dist/types/helpers/slimmers/position-calculation/base-position-calculation-strategy.d.ts +138 -0
  183. package/dist/types/helpers/slimmers/position-calculation/body-position-calculation-strategy.d.ts +34 -0
  184. package/dist/types/helpers/slimmers/position-calculation/position-calculation-controller.d.ts +54 -0
  185. package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +34 -0
  186. package/dist/types/helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.d.ts +15 -0
  187. package/dist/types/helpers/ui/element-appender.d.ts +9 -24
  188. package/dist/types/types/components.type.d.ts +1 -0
  189. package/dist/vega/index.esm.js +1 -1
  190. package/dist/vega/{p-cf998fc5.entry.js → p-00c5aee5.entry.js} +1 -1
  191. package/dist/vega/{p-f6d4c1ff.entry.js → p-042b4b3f.entry.js} +1 -1
  192. package/dist/vega/{p-817a83c6.entry.js → p-07a8cf89.entry.js} +1 -1
  193. package/dist/vega/p-0abe1ade.entry.js +1 -0
  194. package/dist/vega/{p-74fcdbc6.entry.js → p-0f0e4198.entry.js} +1 -1
  195. package/dist/vega/{p-d7800ca2.entry.js → p-14f5a9ad.entry.js} +1 -1
  196. package/dist/vega/p-15023bad.entry.js +1 -0
  197. package/dist/vega/{p-38f26c82.entry.js → p-1be2fd46.entry.js} +1 -1
  198. package/dist/vega/p-1bfcb6b7.entry.js +1 -0
  199. package/dist/vega/{p-b0a6421a.entry.js → p-20d9c07c.entry.js} +1 -1
  200. package/dist/vega/p-2306c736.js +1 -0
  201. package/dist/vega/{p-8ef03eed.js → p-302e7589.js} +1 -1
  202. package/dist/vega/p-34710a3c.entry.js +1 -0
  203. package/dist/vega/p-3903ce7a.entry.js +1 -0
  204. package/dist/vega/{p-0bbcc81a.entry.js → p-438caeb3.entry.js} +1 -1
  205. package/dist/vega/{p-319efe6c.js → p-4ffd7493.js} +1 -1
  206. package/dist/vega/{p-ed4a26e7.entry.js → p-57d9bde6.entry.js} +1 -1
  207. package/dist/vega/p-5f377954.js +1 -1
  208. package/dist/vega/{p-ff7bd85f.entry.js → p-623fe226.entry.js} +1 -1
  209. package/dist/vega/{p-1d94428c.entry.js → p-63bee4f1.entry.js} +1 -1
  210. package/dist/vega/{p-6ac3ba21.entry.js → p-64ff6318.entry.js} +1 -1
  211. package/dist/vega/{p-86eda597.entry.js → p-72ecc510.entry.js} +1 -1
  212. package/dist/vega/p-79019d08.js +1 -0
  213. package/dist/vega/p-7941701a.entry.js +1 -0
  214. package/dist/vega/{p-689ee038.entry.js → p-799cb0a4.entry.js} +1 -1
  215. package/dist/vega/{p-1678b69f.entry.js → p-7a6a0740.entry.js} +1 -1
  216. package/dist/vega/p-80785fcf.entry.js +1 -0
  217. package/dist/vega/{p-0ae9b900.entry.js → p-83ef4c13.entry.js} +1 -1
  218. package/dist/vega/{p-ad31be2c.entry.js → p-87cd0d6a.entry.js} +1 -1
  219. package/dist/vega/{p-b771268b.entry.js → p-8cfe4027.entry.js} +1 -1
  220. package/dist/vega/{p-5dbcab1b.entry.js → p-9281cdb2.entry.js} +1 -1
  221. package/dist/vega/p-95b25b97.entry.js +1 -0
  222. package/dist/vega/p-9b45e5dc.entry.js +1 -0
  223. package/dist/vega/{p-0a91f217.entry.js → p-9b9c0afb.entry.js} +1 -1
  224. package/dist/vega/{p-92aaed64.entry.js → p-9ba68531.entry.js} +2 -2
  225. package/dist/vega/{p-dacf5572.entry.js → p-a66ea015.entry.js} +1 -1
  226. package/dist/vega/{p-d0756d70.entry.js → p-a67748c6.entry.js} +1 -1
  227. package/dist/vega/{p-53bb8cde.entry.js → p-a6e1d9bc.entry.js} +1 -1
  228. package/dist/vega/{p-8b0533c4.entry.js → p-b1a249ef.entry.js} +1 -1
  229. package/dist/vega/{p-cf4fea44.entry.js → p-b6e49ee9.entry.js} +1 -1
  230. package/dist/vega/{p-d045099d.entry.js → p-be6041fc.entry.js} +1 -1
  231. package/dist/vega/{p-2ae04da9.entry.js → p-bf38199b.entry.js} +1 -1
  232. package/dist/vega/p-bf3fbb9b.js +1 -0
  233. package/dist/vega/p-c06e7880.js +1 -0
  234. package/dist/vega/{p-e42a2a12.entry.js → p-c3c2890e.entry.js} +1 -1
  235. package/dist/vega/{p-b3417358.entry.js → p-c6ed1982.entry.js} +1 -1
  236. package/dist/vega/p-cdebfee7.entry.js +1 -0
  237. package/dist/vega/p-cea70476.entry.js +1 -0
  238. package/dist/vega/{p-e4d6e2c8.entry.js → p-d3c07efa.entry.js} +1 -1
  239. package/dist/vega/p-d71f968e.entry.js +1 -0
  240. package/dist/vega/{p-30693931.entry.js → p-e165c9f1.entry.js} +1 -1
  241. package/dist/vega/{p-19769aba.js → p-e5d7b4b8.js} +1 -1
  242. package/dist/vega/{p-ebb93b96.entry.js → p-e6f91767.entry.js} +1 -1
  243. package/dist/vega/p-ed237efc.js +1 -0
  244. package/dist/vega/{p-a105e4de.js → p-f2851f16.js} +1 -1
  245. package/dist/vega/{p-975c5a3a.entry.js → p-fb3233db.entry.js} +1 -1
  246. package/dist/vega/{p-a0f5d2cc.entry.js → p-ff22a95f.entry.js} +1 -1
  247. package/dist/vega/vega.esm.js +1 -1
  248. package/package.json +4 -2
  249. package/dist/collection/utils/position.js +0 -373
  250. package/dist/types/utils/position.d.ts +0 -17
  251. package/dist/vega/p-001c0b51.entry.js +0 -1
  252. package/dist/vega/p-0064f5b1.entry.js +0 -1
  253. package/dist/vega/p-19ef612a.js +0 -1
  254. package/dist/vega/p-1f03b576.entry.js +0 -1
  255. package/dist/vega/p-270b0d1a.entry.js +0 -1
  256. package/dist/vega/p-28c78b79.entry.js +0 -1
  257. package/dist/vega/p-31d530d2.entry.js +0 -1
  258. package/dist/vega/p-3f5e44c1.js +0 -1
  259. package/dist/vega/p-651e5c7d.entry.js +0 -1
  260. package/dist/vega/p-68823025.js +0 -1
  261. package/dist/vega/p-6b8277eb.js +0 -1
  262. package/dist/vega/p-7d02f723.entry.js +0 -1
  263. package/dist/vega/p-8bd09712.entry.js +0 -1
  264. package/dist/vega/p-a14be625.entry.js +0 -1
  265. package/dist/vega/p-cc272fbc.entry.js +0 -1
  266. package/dist/vega/p-e2c25432.entry.js +0 -1
  267. /package/dist/types/{utils/test/position.test.d.ts → helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.d.ts} +0 -0
@@ -1,24 +1,23 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, F as Fragment, g as getElement } from './index-187f71d1.js';
1
+ import { h, F as Fragment, H as Host, r as registerInstance, c as createEvent, g as getElement } from './index-187f71d1.js';
2
2
  import { R as RequiredFieldRule } from './required-field-rule-5da360cc.js';
3
- import { s as sanitizeVegaComponent, g as getActiveElement } from './component-cae24190.js';
3
+ import { g as getActiveElement, s as sanitizeVegaComponent } from './component-cae24190.js';
4
4
  import { N as isArrayOfType, O as isDropdownSourceItemType } from './type-guard-63caf78b.js';
5
- import { f as findParent } from './ui-0132dbb5.js';
6
- import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0fab.js';
7
- import { I as InjectKeyboardManager } from './inject-keyboard-manager-8a82e8c9.js';
8
- import { I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
5
+ import { c as MapToComponentField, V as VegaSlimmer, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
9
6
  import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-b3f6ac79.js';
10
7
  import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-a64c679c.js';
11
- import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-4ecbc8aa.js';
12
- import { c as createEventEmitSlimmer } from './event-emit-slimmer-cb9d6f6c.js';
13
- import { D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-9461cd67.js';
14
- import { e as VegaChange, j as VegaCreate, k as VegaSearch, m as VegaDropdownHide, b as VegaDropdownClick, c as VegaClose } from './vega-event-id-7465a011.js';
8
+ import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-db288af1.js';
9
+ import { c as createEventEmitSlimmer } from './event-emit-slimmer-44cb4573.js';
10
+ import { j as VegaCreate, m as VegaDropdownHide, b as VegaDropdownClick, c as VegaClose, e as VegaChange, k as VegaSearch } from './vega-event-id-b1655cbc.js';
15
11
  import { b as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-500cf2a3.js';
16
12
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
13
+ import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0fab.js';
14
+ import { D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-9461cd67.js';
15
+ import { K as KeyboardManagerSlimmer } from './keyboard-manager-slimmer-8723f20f.js';
16
+ import { f as findParent } from './ui-0132dbb5.js';
17
17
  import './breakpoints-36a3ed69.js';
18
18
  import './ui-8424715a.js';
19
19
  import './regex-dfe11abf.js';
20
20
  import './typography-a8fc4764.js';
21
- import './keyboard-manager-d1f9ddc1.js';
22
21
  import './string-be824360.js';
23
22
  import './observer-3959f9dd.js';
24
23
  import './create-public-api-runtime-metrics-slimmer-cc1164bb.js';
@@ -30,10 +29,11 @@ import './mutation-observer-slimmer-6cef9549.js';
30
29
  import './mutation-observer-filters-1035b064.js';
31
30
  import './array-b668466e.js';
32
31
  import './number-4398f2e1.js';
33
- import './internal-vega-event-manager-1ebfd1eb.js';
32
+ import './internal-vega-event-manager-8154661e.js';
34
33
  import './vega-env-manager-8f8dc473.js';
35
- import './feature-flag-controller-10780eeb.js';
34
+ import './feature-flag-controller-297c4b9b.js';
36
35
  import './index-0863eec6.js';
36
+ import './keyboard-manager-d1f9ddc1.js';
37
37
 
38
38
  const VegaComboBoxRuntimeMetricsPayloadDefinition = [
39
39
  {
@@ -62,6 +62,332 @@ const VegaComboBoxRuntimeMetricsPayloadDefinition = [
62
62
  },
63
63
  ];
64
64
 
65
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
66
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
67
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
68
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
69
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
70
+ };
71
+ class VegaComboBoxDropdownRenderer extends VegaSlimmer {
72
+ constructor() {
73
+ super(...arguments);
74
+ this.onItemClick = async () => {
75
+ this.valueController.setValue((await this.dropdownRef.getSelection()));
76
+ await this.clearInput();
77
+ };
78
+ this.onDropdownHide = async () => {
79
+ await this.clearInput();
80
+ };
81
+ this.onDropdownCreate = async (searchString) => {
82
+ this.createEventEmit.emit(searchString);
83
+ await this.clearInput();
84
+ };
85
+ /**
86
+ * The below method is e2e-test covered in
87
+ * @see{module:vega-combo-box-search-input}
88
+ * @see{module:vega-combo-box-vega-search-event-e2e}
89
+ */
90
+ /* istanbul ignore next */
91
+ this.onInputChange = async (e) => {
92
+ const value = e.target.value;
93
+ if (this.useDefaultFilter) {
94
+ await this.dropdownRef.show();
95
+ await this.dropdownRef.search(value);
96
+ }
97
+ else {
98
+ this.searchEventEmit.emit(value);
99
+ }
100
+ };
101
+ }
102
+ getDropdownRef() {
103
+ return this.dropdownRef;
104
+ }
105
+ getSearchInputRef() {
106
+ return this.searchInputRef;
107
+ }
108
+ /**
109
+ * The below method is e2e-test covered in
110
+ * @see{module:vega-combo-box-focus-by-label-e2e}
111
+ */
112
+ /* istanbul ignore next */
113
+ focusInput() {
114
+ this.searchInputRef.focus();
115
+ }
116
+ async hide() {
117
+ await this.dropdownRef.hide();
118
+ }
119
+ async show() {
120
+ await this.dropdownRef.show();
121
+ }
122
+ renderDropdown() {
123
+ return (h("vega-dropdown", Object.assign({ trigger: this.disabled ? 'none' : 'click', source: this.source, selectType: "multiple", selectedSourceKey: this.value, matchTargetWidth: true }, this.vegaDropdownProps, { ref: (ref) => {
124
+ this.dropdownRef = ref;
125
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaCreate, async (payload) => {
126
+ await this.onDropdownCreate(payload.detail);
127
+ });
128
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaDropdownHide, async () => {
129
+ await this.onDropdownHide();
130
+ });
131
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaDropdownClick, async () => {
132
+ await this.onItemClick();
133
+ });
134
+ } }), this.renderContainer()));
135
+ }
136
+ renderContainer() {
137
+ return (h("div", { class: {
138
+ 'vega-combo-box-container': true,
139
+ [`vega-combo-box-size-${this.size}`]: true,
140
+ } },
141
+ this.renderSelectedContainer(),
142
+ this.renderInputContainer()));
143
+ }
144
+ renderSelectedContainer() {
145
+ const selected = this.value
146
+ .map((key) => this.source.find((item) => item.key === key))
147
+ .filter((item) => item);
148
+ return (h(Fragment, null, selected.map((item) => {
149
+ return this.renderSelectedChip(item);
150
+ })));
151
+ }
152
+ renderSelectedChip(item) {
153
+ return (h("vega-chip", {
154
+ //TODO: the key property test will add in https://gethired.atlassian.net/browse/VD-883
155
+ key: item.key, text: item.label, variant: "outlined", showCloseIcon: !this.disabled, size: "small", ref: (ref) => {
156
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaClose, async () => {
157
+ await this.onChipClose(item.key);
158
+ });
159
+ } }));
160
+ }
161
+ renderInputContainer() {
162
+ return (h("div", { class: "vega-combo-box-input-container" },
163
+ h("input", { onInput: this.onInputChange, "aria-label": this.label || 'No label defined', placeholder: this.value.length === 0 ? this.placeholder : '', ref: (e) => (this.searchInputRef = e), onKeyDown: createEnterKeyHandlerToTriggerClick(), disabled: this.disabled })));
164
+ }
165
+ async onChipClose(key) {
166
+ this.valueController.setValue([...this.value.filter((value) => value !== key)]);
167
+ await this.dropdownRef.hide();
168
+ }
169
+ async clearInput() {
170
+ this.searchInputRef.value = '';
171
+ await this.dropdownRef.search('');
172
+ }
173
+ }
174
+ __decorate$4([
175
+ MapToComponentField()
176
+ ], VegaComboBoxDropdownRenderer.prototype, "value", void 0);
177
+ __decorate$4([
178
+ MapToComponentField()
179
+ ], VegaComboBoxDropdownRenderer.prototype, "source", void 0);
180
+ __decorate$4([
181
+ MapToComponentField()
182
+ ], VegaComboBoxDropdownRenderer.prototype, "disabled", void 0);
183
+ __decorate$4([
184
+ MapToComponentField()
185
+ ], VegaComboBoxDropdownRenderer.prototype, "size", void 0);
186
+ __decorate$4([
187
+ MapToComponentField()
188
+ ], VegaComboBoxDropdownRenderer.prototype, "vegaDropdownProps", void 0);
189
+ __decorate$4([
190
+ MapToComponentField()
191
+ ], VegaComboBoxDropdownRenderer.prototype, "label", void 0);
192
+ __decorate$4([
193
+ MapToComponentField()
194
+ ], VegaComboBoxDropdownRenderer.prototype, "placeholder", void 0);
195
+ __decorate$4([
196
+ MapToComponentField()
197
+ ], VegaComboBoxDropdownRenderer.prototype, "useDefaultFilter", void 0);
198
+ __decorate$4([
199
+ MapToComponentField()
200
+ ], VegaComboBoxDropdownRenderer.prototype, "createEventEmit", void 0);
201
+ __decorate$4([
202
+ MapToComponentField()
203
+ ], VegaComboBoxDropdownRenderer.prototype, "searchEventEmit", void 0);
204
+ __decorate$4([
205
+ MapToComponentField()
206
+ ], VegaComboBoxDropdownRenderer.prototype, "valueController", void 0);
207
+
208
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
209
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
210
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
211
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
212
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
213
+ };
214
+ /**
215
+ * The value controller of `VegaComboBox` component.
216
+ */
217
+ class VegaComboBoxValueController extends VegaSlimmer {
218
+ /**
219
+ * The function `setValue` sets the value of a VegaComboBox component.
220
+ *
221
+ * @param {string[]} value - value
222
+ */
223
+ setValue(value) {
224
+ this.value = value;
225
+ }
226
+ }
227
+ __decorate$3([
228
+ MapToComponentField({ writable: true })
229
+ ], VegaComboBoxValueController.prototype, "value", void 0);
230
+
231
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
232
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
233
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
234
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
235
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
236
+ };
237
+ class VegaComboBoxRenderer extends VegaSlimmer {
238
+ constructor() {
239
+ super(...arguments);
240
+ /**
241
+ * The below method is e2e-test covered in
242
+ * @see{module:vega-combo-box-focus-by-label-e2e}
243
+ */
244
+ /* istanbul ignore next */
245
+ this.onLabelClick = () => {
246
+ this.dropdownRenderer.focusInput();
247
+ };
248
+ }
249
+ render() {
250
+ return (h(Host, { class: {
251
+ 'vega-combo-box-disabled': this.disabled,
252
+ } },
253
+ this.renderLabel(),
254
+ this.dropdownRenderer.renderDropdown(),
255
+ this.renderHint()));
256
+ }
257
+ renderLabel() {
258
+ return (h("vega-field-label", { onClick: this.onLabelClick, "is-field-required": this.required, disabled: this.disabled, label: this.label }));
259
+ }
260
+ renderHint() {
261
+ return h("div", { class: "vega-combo-box-hint" }, this.hint);
262
+ }
263
+ }
264
+ __decorate$2([
265
+ MapToComponentField()
266
+ ], VegaComboBoxRenderer.prototype, "required", void 0);
267
+ __decorate$2([
268
+ MapToComponentField()
269
+ ], VegaComboBoxRenderer.prototype, "hint", void 0);
270
+ __decorate$2([
271
+ MapToComponentField()
272
+ ], VegaComboBoxRenderer.prototype, "disabled", void 0);
273
+ __decorate$2([
274
+ MapToComponentField()
275
+ ], VegaComboBoxRenderer.prototype, "dropdownRenderer", void 0);
276
+ __decorate$2([
277
+ MapToComponentField()
278
+ ], VegaComboBoxRenderer.prototype, "label", void 0);
279
+
280
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
281
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
282
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
283
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
284
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
285
+ };
286
+ /**
287
+ * Keyboard controller for vega-combo-box
288
+ */
289
+ class VegaComboBoxKeyboardController extends KeyboardManagerSlimmer {
290
+ /** The function sets up the functionality of key board control */
291
+ constructor() {
292
+ super((target) => [
293
+ {
294
+ keyCode: 'Backspace',
295
+ activeElementInScope: [target.dropdownRenderer.getSearchInputRef()],
296
+ eventName: 'keydown',
297
+ callback: target.deleteLastSelectedItem,
298
+ },
299
+ {
300
+ keyCode: 'ArrowLeft',
301
+ activeElementInScope: [target.host],
302
+ callback:
303
+ /* istanbul ignore next */
304
+ /* eslint-disable jsdoc/require-jsdoc */
305
+ () => target.controlDirectionByKeyboard('ArrowLeft'),
306
+ },
307
+ {
308
+ keyCode: 'ArrowRight',
309
+ activeElementInScope: [target.host],
310
+ callback:
311
+ /* istanbul ignore next */
312
+ /* eslint-disable jsdoc/require-jsdoc */
313
+ () => target.controlDirectionByKeyboard('ArrowRight'),
314
+ },
315
+ ]);
316
+ /*
317
+ * The below method is e2e-test covered in
318
+ * @see{module:vega-combo-box-keyboard-control-e2e}
319
+ * @see{module:vega-combo-box-keyboard-control-for-selected-items-e2e}
320
+ */
321
+ /* istanbul ignore next */
322
+ /**
323
+ * Delete last item when press `Backspace` key
324
+ */
325
+ this.deleteLastSelectedItem = () => {
326
+ if (this.dropdownRenderer.getSearchInputRef().value === '') {
327
+ this.value.pop();
328
+ this.valueController.setValue([...this.value]);
329
+ }
330
+ };
331
+ }
332
+ /*
333
+ * The below method is e2e-test covered in
334
+ * @see{module:vega-combo-box-keyboard-control-e2e}
335
+ * @see{module:vega-combo-box-keyboard-control-for-selected-items-e2e}
336
+ */
337
+ /* istanbul ignore next */
338
+ /**
339
+ * Handles keyboard input to navigate between elements, focusing on the previous or next element based on the key pressed.
340
+ *
341
+ * @param {KeyboardCodeType} code - code
342
+ */
343
+ controlDirectionByKeyboard(code) {
344
+ const activeElement = getActiveElement();
345
+ if (activeElement && activeElement.classList.contains('vega-chip-close-icon')) {
346
+ const currentChip = findParent(activeElement, 'vega-chip');
347
+ if (code === 'ArrowLeft')
348
+ this.focusItemByKeyboard(currentChip.previousSibling);
349
+ if (code === 'ArrowRight')
350
+ this.focusItemByKeyboard(currentChip.nextSibling);
351
+ }
352
+ else if (code === 'ArrowLeft' && this.dropdownRenderer.getSearchInputRef().selectionStart === 0) {
353
+ this.focusItemByKeyboard(this.host.shadowRoot.querySelector('vega-chip:last-of-type'));
354
+ }
355
+ }
356
+ /*
357
+ * The below method is e2e-test covered in
358
+ * @see{module:vega-combo-box-keyboard-control-e2e}
359
+ * @see{module:vega-combo-box-keyboard-control-for-selected-items-e2e}
360
+ */
361
+ /* istanbul ignore next */
362
+ /**
363
+ * The function is used to focus on a specific element based on its class name.
364
+ *
365
+ * @param {HTMLElement} item - item
366
+ */
367
+ focusItemByKeyboard(item) {
368
+ if (item) {
369
+ if (item.classList.contains('vega-combo-box-input-container')) {
370
+ item.querySelector('input').focus();
371
+ }
372
+ else {
373
+ item.shadowRoot.querySelector('.vega-chip-close-icon').focus();
374
+ }
375
+ }
376
+ }
377
+ }
378
+ __decorate$1([
379
+ MapToComponentField()
380
+ ], VegaComboBoxKeyboardController.prototype, "host", void 0);
381
+ __decorate$1([
382
+ MapToComponentField()
383
+ ], VegaComboBoxKeyboardController.prototype, "value", void 0);
384
+ __decorate$1([
385
+ MapToComponentField()
386
+ ], VegaComboBoxKeyboardController.prototype, "dropdownRenderer", void 0);
387
+ __decorate$1([
388
+ MapToComponentField()
389
+ ], VegaComboBoxKeyboardController.prototype, "valueController", void 0);
390
+
65
391
  const vegaComboBoxCss = ":host{display:inline-block;width:100%;min-width:0px;text-align:left;line-height:normal}.vega-combo-box-container{border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));padding-left:16px;padding-right:16px;padding-top:12px;padding-bottom:12px;border-radius:8px;gap:8px;display:block;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer}.vega-combo-box-container:hover{border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1))}.vega-combo-box-container:focus-within{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));box-shadow:0 0 0 4px rgba(var(--v-ring-input-focus, 19, 98, 226, 0.25))}.vega-combo-box-container .vega-combo-box-input-container{width:-webkit-min-content;width:-moz-min-content;width:min-content;flex-grow:1}.vega-combo-box-container input{border-style:none;background-color:rgba(var(--v-bg-transparent, 0, 0, 0, 0));font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));width:100%}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-combo-box-container input{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-combo-box-container input{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-combo-box-container input{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}.vega-combo-box-container input:focus{outline:2px solid transparent;outline-offset:2px}.vega-combo-box-size-medium{padding-left:12px;padding-right:12px;padding-top:11px;padding-bottom:11px}.vega-combo-box-size-small{padding-left:12px;padding-right:12px;padding-top:7px;padding-bottom:7px}.vega-combo-box-container:focus{outline:none}vega-field-label{margin-bottom:8px}.error .vega-combo-box-container{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1))}.error .vega-combo-box-container:hover{border:1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1))}.error .vega-combo-box-container:focus-within{border:1px solid rgba(var(--v-border-input-field-danger-focus, 233, 71, 104, 1));box-shadow:0 0 0 4px rgba(var(--v-ring-input-danger-focus, 230, 50, 87, 0.25))}:host(.vega-combo-box-disabled) .vega-combo-box-container{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));--tw-shadow:0 0 #0000;box-shadow:rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px}:host(.vega-combo-box-disabled) .vega-combo-box-container:hover{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1))}:host(.vega-combo-box-disabled) vega-icon{color:rgba(var(--v-text-disabled, 176, 180, 181, 1))}.vega-combo-box-container input::placeholder{color:rgba(var(--v-text-input-placeholder, 176, 180, 181, 1))}.vega-error{display:inline-block;padding-left:8px;padding-right:8px;padding-top:8px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-error, 189, 41, 71, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}.vega-hidden{display:none}.vega-combo-box-hint{padding-left:8px;padding-right:8px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));padding-top:8px}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-combo-box-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-combo-box-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-combo-box-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}.vega-error:not(.vega-hidden)+.vega-combo-box-hint{padding-top:4px}vega-dropdown{display:block}";
66
392
 
67
393
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -84,6 +410,10 @@ const VegaComboBox = class {
84
410
  this.vegaSearch = createEvent(this, "vegaSearch", 7);
85
411
  this.search = createEvent(this, "search", 7);
86
412
  this.globalSlimmers = {};
413
+ this.keyboardController = new VegaComboBoxKeyboardController();
414
+ this.valueController = new VegaComboBoxValueController();
415
+ this.renderer = new VegaComboBoxRenderer();
416
+ this.dropdownRenderer = new VegaComboBoxDropdownRenderer();
87
417
  this.formFieldController = new FormFieldControllerSlimmer({
88
418
  propertyRules: [
89
419
  {
@@ -94,13 +424,13 @@ const VegaComboBox = class {
94
424
  validationRulesName: 'validationRules',
95
425
  defaultValue: [],
96
426
  attributeGetter: (propertyName) => this[propertyName],
97
- inputContainerGetter: () => this.dropdownRef,
98
- touchableAreaGetter: () => [this.searchInputRef],
427
+ inputContainerGetter: () => this.dropdownRenderer.getDropdownRef(),
428
+ touchableAreaGetter: () => [this.dropdownRenderer.getSearchInputRef()],
99
429
  });
100
430
  this.changeEventEmit = createEventEmitSlimmer(VegaComboBox, VegaChange);
101
431
  this.createEventEmit = createEventEmitSlimmer(VegaComboBox, VegaCreate);
102
432
  this.searchEventEmit = createEventEmitSlimmer(VegaComboBox, VegaSearch);
103
- this.dropdownEventPrevent = new ChildNodesEventPreventSlimmer([VegaCreate, VegaSearch], () => this.dropdownRef, {
433
+ this.dropdownEventPrevent = new ChildNodesEventPreventSlimmer([VegaCreate, VegaSearch], () => this.dropdownRenderer.getDropdownRef(), {
104
434
  customPreventHandle: (e) => {
105
435
  e.stopImmediatePropagation();
106
436
  },
@@ -137,6 +467,7 @@ const VegaComboBox = class {
137
467
  *
138
468
  * @vegaVersion 1.11.0
139
469
  */
470
+ /* eslint-disable-next-line @stencil/strict-mutable */
140
471
  this.value = [];
141
472
  /**
142
473
  * Specifies the validation status of the combo box component.
@@ -204,53 +535,6 @@ const VegaComboBox = class {
204
535
  * @vegaVersion 1.24.0
205
536
  */
206
537
  this.useDefaultFilter = true;
207
- this.onItemClick = async () => {
208
- this.value = (await this.dropdownRef.getSelection());
209
- await this.clearInput();
210
- };
211
- this.onDropdownHide = async () => {
212
- await this.clearInput();
213
- };
214
- this.onDropdownCreate = async (searchString) => {
215
- this.createEventEmit.emit(searchString);
216
- await this.clearInput();
217
- };
218
- /**
219
- * The below method is e2e-test covered in
220
- * @see{module:vega-combo-box-search-input}
221
- * @see{module:vega-combo-box-vega-search-event-e2e}
222
- */
223
- /* istanbul ignore next */
224
- this.onInputChange = async (e) => {
225
- const value = e.target.value;
226
- if (this.useDefaultFilter) {
227
- await this.dropdownRef.show();
228
- await this.dropdownRef.search(value);
229
- }
230
- else {
231
- this.searchEventEmit.emit(value);
232
- }
233
- };
234
- /**
235
- * The below method is e2e-test covered in
236
- * @see{module:vega-combo-box-focus-by-label-e2e}
237
- */
238
- /* istanbul ignore next */
239
- this.onLabelClick = () => {
240
- this.searchInputRef.focus();
241
- };
242
- /**
243
- * The below method is e2e-test covered in
244
- * @see{module:vega-combo-box-keyboard-control-e2e}
245
- * @see{module:vega-combo-box-keyboard-control-for-selected-items-e2e}
246
- */
247
- /* istanbul ignore next */
248
- this.deleteLastSelectedItem = () => {
249
- if (this.searchInputRef.value === '') {
250
- this.value.pop();
251
- this.value = [...this.value];
252
- }
253
- };
254
538
  }
255
539
  watchSource() {
256
540
  this.source = isArrayOfType(this.source, isDropdownSourceItemType)
@@ -273,7 +557,7 @@ const VegaComboBox = class {
273
557
  */
274
558
  async close() {
275
559
  if (!this.disabled) {
276
- await this.dropdownRef.hide();
560
+ await this.dropdownRenderer.hide();
277
561
  }
278
562
  }
279
563
  /**
@@ -283,103 +567,11 @@ const VegaComboBox = class {
283
567
  */
284
568
  async open() {
285
569
  if (!this.disabled) {
286
- await this.dropdownRef.show();
570
+ await this.dropdownRenderer.show();
287
571
  }
288
572
  }
289
573
  render() {
290
- return sanitizeVegaComponent(h(Host, { class: {
291
- 'vega-combo-box-disabled': this.disabled,
292
- } }, this.renderLabel(), this.renderDropdown(), this.renderHint()), this.host);
293
- }
294
- renderLabel() {
295
- return (h("vega-field-label", { onClick: this.onLabelClick, "is-field-required": this.required, disabled: this.disabled, label: this.label }));
296
- }
297
- renderHint() {
298
- return h("div", { class: "vega-combo-box-hint" }, this.hint);
299
- }
300
- renderDropdown() {
301
- return (h("vega-dropdown", Object.assign({ trigger: this.disabled ? 'none' : 'click', source: this.source, selectType: "multiple", selectedSourceKey: this.value, matchTargetWidth: true }, this.vegaDropdownProps, { ref: (ref) => {
302
- this.dropdownRef = ref;
303
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaCreate, async (payload) => {
304
- await this.onDropdownCreate(payload.detail);
305
- });
306
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaDropdownHide, async () => {
307
- await this.onDropdownHide();
308
- });
309
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaDropdownClick, async () => {
310
- await this.onItemClick();
311
- });
312
- } }), this.renderContainer()));
313
- }
314
- renderContainer() {
315
- return (h("div", { class: {
316
- 'vega-combo-box-container': true,
317
- [`vega-combo-box-size-${this.size}`]: true,
318
- } }, this.renderSelectedContainer(), this.renderInputContainer()));
319
- }
320
- renderSelectedContainer() {
321
- const selected = this.value
322
- .map((key) => this.source.find((item) => item.key === key))
323
- .filter((item) => item);
324
- return (h(Fragment, null, selected.map((item) => {
325
- return this.renderSelectedChip(item);
326
- })));
327
- }
328
- renderSelectedChip(item) {
329
- return (h("vega-chip", {
330
- //TODO: the key property test will add in https://gethired.atlassian.net/browse/VD-883
331
- key: item.key, text: item.label, variant: "outlined", showCloseIcon: !this.disabled, size: "small", ref: (ref) => {
332
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaClose, async () => {
333
- await this.onChipClose(item.key);
334
- });
335
- }
336
- }));
337
- }
338
- renderInputContainer() {
339
- return (h("div", { class: "vega-combo-box-input-container" }, h("input", { onInput: this.onInputChange, "aria-label": this.label || 'No label defined', placeholder: this.value.length === 0 ? this.placeholder : '', ref: (e) => (this.searchInputRef = e), onKeyDown: createEnterKeyHandlerToTriggerClick(), disabled: this.disabled })));
340
- }
341
- async onChipClose(key) {
342
- this.value = [...this.value.filter((value) => value !== key)];
343
- await this.dropdownRef.hide();
344
- }
345
- async clearInput() {
346
- this.searchInputRef.value = '';
347
- await this.dropdownRef.search('');
348
- }
349
- /**
350
- * The below method is e2e-test covered in
351
- * @see{module:vega-combo-box-keyboard-control-e2e}
352
- * @see{module:vega-combo-box-keyboard-control-for-selected-items-e2e}
353
- */
354
- /* istanbul ignore next */
355
- controlDirectionByKeyboard(code) {
356
- const activeElement = getActiveElement();
357
- if (activeElement && activeElement.classList.contains('vega-chip-close-icon')) {
358
- const currentChip = findParent(activeElement, 'vega-chip');
359
- if (code === 'ArrowLeft')
360
- this.focusItemByKeyboard(currentChip.previousSibling);
361
- if (code === 'ArrowRight')
362
- this.focusItemByKeyboard(currentChip.nextSibling);
363
- }
364
- else if (code === 'ArrowLeft' && this.searchInputRef.selectionStart === 0) {
365
- this.focusItemByKeyboard(this.host.shadowRoot.querySelector('vega-chip:last-of-type'));
366
- }
367
- }
368
- /**
369
- * The below method is e2e-test covered in
370
- * @see{module:vega-combo-box-keyboard-control-e2e}
371
- * @see{module:vega-combo-box-keyboard-control-for-selected-items-e2e}
372
- */
373
- /* istanbul ignore next */
374
- focusItemByKeyboard(item) {
375
- if (item) {
376
- if (item.classList.contains('vega-combo-box-input-container')) {
377
- item.querySelector('input').focus();
378
- }
379
- else {
380
- item.shadowRoot.querySelector('.vega-chip-close-icon').focus();
381
- }
382
- }
574
+ return sanitizeVegaComponent(this.renderer.render(), this.host);
383
575
  }
384
576
  get host() { return getElement(this); }
385
577
  static get watchers() { return {
@@ -391,6 +583,18 @@ const VegaComboBox = class {
391
583
  __decorate([
392
584
  InjectVegaGlobalSlimmer()
393
585
  ], VegaComboBox.prototype, "globalSlimmers", void 0);
586
+ __decorate([
587
+ InjectVegaSlimmer()
588
+ ], VegaComboBox.prototype, "keyboardController", void 0);
589
+ __decorate([
590
+ InjectVegaSlimmer()
591
+ ], VegaComboBox.prototype, "valueController", void 0);
592
+ __decorate([
593
+ InjectVegaSlimmer()
594
+ ], VegaComboBox.prototype, "renderer", void 0);
595
+ __decorate([
596
+ InjectVegaSlimmer()
597
+ ], VegaComboBox.prototype, "dropdownRenderer", void 0);
394
598
  __decorate([
395
599
  InjectVegaSlimmer()
396
600
  ], VegaComboBox.prototype, "formFieldController", void 0);
@@ -409,26 +613,6 @@ __decorate([
409
613
  __decorate([
410
614
  InjectVegaSlimmer()
411
615
  ], VegaComboBox.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
412
- __decorate([
413
- InjectKeyboardManager((target) => [
414
- {
415
- keyCode: 'Backspace',
416
- activeElementInScope: [target.searchInputRef],
417
- eventName: 'keydown',
418
- callback: target.deleteLastSelectedItem,
419
- },
420
- {
421
- keyCode: 'ArrowLeft',
422
- activeElementInScope: [target.host],
423
- callback: /* istanbul ignore next */ () => target.controlDirectionByKeyboard('ArrowLeft'),
424
- },
425
- {
426
- keyCode: 'ArrowRight',
427
- activeElementInScope: [target.host],
428
- callback: /* istanbul ignore next */ () => target.controlDirectionByKeyboard('ArrowRight'),
429
- },
430
- ])
431
- ], VegaComboBox.prototype, "host", void 0);
432
616
  VegaComboBox.style = vegaComboBoxCss;
433
617
 
434
618
  export { VegaComboBox as vega_combo_box };