@globalpayments/vega 2.73.0 → 2.75.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 (410) hide show
  1. package/dist/cjs/{app-globals-cc162173.js → app-globals-bf183914.js} +8 -8
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-536d29fc.js → child-nodes-event-prevent-slimmer-aca87dac.js} +1 -1
  3. package/dist/cjs/click-outside-only-to-dismiss-strategy-407f6d1e.js +32 -0
  4. package/dist/cjs/{code-block-823cd481.js → code-block-c1d2e6a8.js} +3 -3
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-e2e0c6f3.js → component-value-history-controller-slimmer.abstract-787c67dc.js} +4 -4
  6. package/dist/cjs/{date-required-rule-99cca681.js → date-required-rule-30ee62d0.js} +1 -1
  7. package/dist/cjs/{design-token-11656685.js → design-token-cbc01283.js} +2 -2
  8. package/dist/cjs/{dom-node-subject-observer-factory-1c8f7880.js → dom-node-subject-observer-factory-b5e71bf6.js} +4 -0
  9. package/dist/cjs/{dto-renderer-manager-bd2bd447.js → dto-renderer-manager-2fc24151.js} +21 -5
  10. package/dist/cjs/{element-appender-slimmer-12f40b8b.js → element-appender-slimmer-318d29c7.js} +160 -36
  11. package/dist/cjs/{event-emit-slimmer-6a591353.js → event-emit-slimmer-2dacabbd.js} +2 -2
  12. package/dist/cjs/{form-field-controller-slimmer-6e3e14fd.js → form-field-controller-slimmer-aef2fb1e.js} +2 -2
  13. package/dist/cjs/{function-extension-78ec27e0.js → function-extension-ca9aa115.js} +5 -5
  14. package/dist/cjs/{image-annotation-action-7408a4b3.js → image-annotation-action-e4a35325.js} +3 -3
  15. package/dist/cjs/{index-638a0f0d.js → index-95fca64f.js} +1 -1
  16. package/dist/cjs/index.cjs.js +15 -15
  17. package/dist/cjs/{inject-keyboard-manager-a6101379.js → inject-keyboard-manager-d21b4387.js} +1 -1
  18. package/dist/cjs/{internal-vega-event-manager-d587a33c.js → internal-vega-event-manager-6befeb34.js} +13 -2
  19. package/dist/cjs/{keyboard-manager-d8adb0ed.js → keyboard-manager-3dea6b28.js} +1 -1
  20. package/dist/cjs/{keyboard-manager-slimmer-15e65357.js → keyboard-manager-slimmer-0d45f944.js} +1 -1
  21. package/dist/cjs/{language-extension-716015a5.js → language-extension-38e4905e.js} +2 -2
  22. package/dist/cjs/loader.cjs.js +11 -11
  23. package/dist/cjs/{month-view-generator-706c5477.js → month-view-generator-49cc5fc2.js} +1 -1
  24. package/dist/cjs/{public-rules-2950f1fc.js → public-rules-661823fa.js} +7 -7
  25. package/dist/cjs/{range-c3c48132.js → range-79b668e7.js} +1 -1
  26. package/dist/cjs/{responsive-format-facade-96c5f598.js → responsive-format-facade-f71d399c.js} +4 -4
  27. package/dist/cjs/{rich-text-editor-required-rule-4aab05a3.js → rich-text-editor-required-rule-d5feeffd.js} +1 -1
  28. package/dist/cjs/sanitize-fb222510.js +131 -0
  29. package/dist/cjs/{string-format-strategy.abstract-a8264fca.js → string-format-strategy.abstract-63514c60.js} +1 -1
  30. package/dist/cjs/{string-input-formatter-slimmer-338bbd73.js → string-input-formatter-slimmer-f3e0bbc7.js} +3 -3
  31. package/dist/cjs/{string-mask-strategy-4e7d3780.js → string-mask-strategy-d23ac21a.js} +2 -2
  32. package/dist/cjs/{style-formatter-9c42d41b.js → style-formatter-566df206.js} +2 -2
  33. package/dist/cjs/{sub-state-notify-slimmer-1efa69c4.js → sub-state-notify-slimmer-468e19aa.js} +1 -1
  34. package/dist/cjs/{sub-state-observer-slimmer-6afa62f5.js → sub-state-observer-slimmer-5d0b8ac3.js} +1 -1
  35. package/dist/cjs/{time-required-rule-9d39a620.js → time-required-rule-c96ecdc9.js} +1 -1
  36. package/dist/cjs/{type-guard-69d2cf01.js → type-guard-a0f026d8.js} +12 -0
  37. package/dist/cjs/{valid-credit-card-number-rule-9f40d1d9.js → valid-credit-card-number-rule-c854bed9.js} +1 -1
  38. package/dist/cjs/vega-accordion.cjs.entry.js +9 -9
  39. package/dist/cjs/vega-app-header-button.cjs.entry.js +10 -10
  40. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  41. package/dist/cjs/vega-box.cjs.entry.js +9 -9
  42. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  43. package/dist/cjs/vega-button-circle.cjs.entry.js +10 -10
  44. package/dist/cjs/vega-button-group_2.cjs.entry.js +6 -6
  45. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  46. package/dist/cjs/vega-button.cjs.entry.js +9 -9
  47. package/dist/cjs/vega-calendar_4.cjs.entry.js +8 -8
  48. package/dist/cjs/vega-card.cjs.entry.js +8 -8
  49. package/dist/cjs/vega-carousel.cjs.entry.js +8 -8
  50. package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
  51. package/dist/cjs/vega-chip.cjs.entry.js +10 -10
  52. package/dist/cjs/vega-code-block.cjs.entry.js +10 -10
  53. package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
  54. package/dist/cjs/vega-combo-box.cjs.entry.js +11 -10
  55. package/dist/cjs/vega-date-picker_2.cjs.entry.js +389 -342
  56. package/dist/cjs/vega-dialog_2.cjs.entry.js +10 -10
  57. package/dist/cjs/vega-divider.cjs.entry.js +8 -8
  58. package/dist/cjs/vega-dropdown_5.cjs.entry.js +49 -21
  59. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  60. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  61. package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-flag-icon.cjs.entry.js +8 -8
  63. package/dist/cjs/vega-flex.cjs.entry.js +9 -9
  64. package/dist/cjs/vega-font.cjs.entry.js +8 -8
  65. package/dist/cjs/vega-form.cjs.entry.js +8 -8
  66. package/dist/cjs/vega-grid.cjs.entry.js +8 -8
  67. package/dist/cjs/vega-icon.cjs.entry.js +8 -8
  68. package/dist/cjs/vega-image-uploader.cjs.entry.js +11 -11
  69. package/dist/cjs/vega-input-credit-card.cjs.entry.js +10 -10
  70. package/dist/cjs/vega-input-numeric.cjs.entry.js +10 -10
  71. package/dist/cjs/vega-input-passcode.cjs.entry.js +9 -9
  72. package/dist/cjs/vega-input-phone-number.cjs.entry.js +11 -11
  73. package/dist/cjs/vega-input-range.cjs.entry.js +6 -6
  74. package/dist/cjs/vega-input-select.cjs.entry.js +187 -54
  75. package/dist/cjs/vega-input.cjs.entry.js +339 -98
  76. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  77. package/dist/cjs/vega-left-nav_5.cjs.entry.js +11 -11
  78. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +7 -7
  79. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  80. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
  81. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
  82. package/dist/cjs/vega-pagination.cjs.entry.js +9 -9
  83. package/dist/cjs/vega-popover_2.cjs.entry.js +12 -12
  84. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +10 -10
  85. package/dist/cjs/vega-radio_2.cjs.entry.js +9 -9
  86. package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
  87. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +30 -20
  88. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  89. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +12 -12
  90. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +7 -7
  91. package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
  92. package/dist/cjs/vega-signature-capture.cjs.entry.js +11 -11
  93. package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
  94. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  95. package/dist/cjs/vega-table_11.cjs.entry.js +11 -11
  96. package/dist/cjs/vega-textarea.cjs.entry.js +6 -6
  97. package/dist/cjs/vega-time-picker_2.cjs.entry.js +18 -17
  98. package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
  99. package/dist/cjs/vega-tooltip_2.cjs.entry.js +10 -10
  100. package/dist/cjs/vega.cjs.js +11 -11
  101. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +1 -1
  102. package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +1 -1
  103. package/dist/collection/components/vega-calendar/vega-calendar.js +1 -1
  104. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +2 -1
  105. package/dist/collection/components/vega-date-picker/assets/icons.js +4 -1
  106. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +2 -1
  107. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +2 -2
  108. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +109 -0
  109. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +4 -0
  110. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +42 -70
  111. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +12 -56
  112. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +435 -108
  113. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +5 -0
  114. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +5 -1
  115. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +7 -0
  116. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +6 -3
  117. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +3 -2
  118. package/dist/collection/components/vega-dropdown/vega-dropdown.js +50 -4
  119. package/dist/collection/components/vega-field-label/vega-field-label.js +1 -1
  120. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.js +51 -0
  121. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +6 -0
  122. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +142 -0
  123. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-renderer.js +12 -1
  124. package/dist/collection/components/vega-input/vega-input.js +200 -3
  125. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.js +89 -0
  126. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +4 -0
  127. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +4 -0
  128. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +38 -13
  129. package/dist/collection/components/vega-input-select/vega-input-select.js +27 -7
  130. package/dist/collection/components/vega-rich-text-editor/dto/annotations/plain-text-annotation.js +1 -1
  131. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +18 -2
  132. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +1 -1
  133. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +6 -2
  134. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +6 -0
  135. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +5 -0
  136. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
  137. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +2 -1
  138. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +2 -1
  139. package/dist/collection/constants/ui.js +2 -0
  140. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +13 -2
  141. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +2 -0
  142. package/dist/collection/helpers/event-manager/test/component-event-id-map.test.js +3 -1
  143. package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +3 -1
  144. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +60 -32
  145. package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js +3 -2
  146. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.js +28 -0
  147. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.js +33 -0
  148. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.js +42 -0
  149. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.js +22 -0
  150. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.js +1 -0
  151. package/dist/collection/types/test/type-guard.test.js +8 -1
  152. package/dist/collection/types/type-guard.js +11 -0
  153. package/dist/collection/utils/sanitize.js +126 -0
  154. package/dist/collection/utils/test/sanitize.test.js +65 -0
  155. package/dist/esm/{app-globals-949d2e18.js → app-globals-f3414aca.js} +8 -8
  156. package/dist/esm/{child-nodes-event-prevent-slimmer-e6f98de5.js → child-nodes-event-prevent-slimmer-e662bee2.js} +1 -1
  157. package/dist/esm/click-outside-only-to-dismiss-strategy-3d286c1b.js +30 -0
  158. package/dist/esm/{code-block-666674d7.js → code-block-8ee34ab6.js} +3 -3
  159. package/dist/esm/{component-value-history-controller-slimmer.abstract-171dda08.js → component-value-history-controller-slimmer.abstract-a61bf821.js} +4 -4
  160. package/dist/esm/{date-required-rule-a9980386.js → date-required-rule-47ecc28f.js} +1 -1
  161. package/dist/esm/{design-token-9b510e59.js → design-token-9b299589.js} +2 -2
  162. package/dist/esm/{dom-node-subject-observer-factory-1aaa1159.js → dom-node-subject-observer-factory-064ee2b2.js} +3 -1
  163. package/dist/esm/{dto-renderer-manager-49ae5d56.js → dto-renderer-manager-f07cf2d9.js} +21 -5
  164. package/dist/esm/{element-appender-slimmer-b9890dcb.js → element-appender-slimmer-7cb08343.js} +160 -36
  165. package/dist/esm/{event-emit-slimmer-2d791d0e.js → event-emit-slimmer-09827cec.js} +2 -2
  166. package/dist/esm/{form-field-controller-slimmer-257928c1.js → form-field-controller-slimmer-5d9dc384.js} +2 -2
  167. package/dist/esm/{function-extension-8b06c6f8.js → function-extension-63028f20.js} +5 -5
  168. package/dist/esm/{image-annotation-action-b3eea6a2.js → image-annotation-action-53529cd9.js} +3 -3
  169. package/dist/esm/{index-0d487fae.js → index-51a7da7f.js} +1 -1
  170. package/dist/esm/index.js +15 -15
  171. package/dist/esm/{inject-keyboard-manager-9241968c.js → inject-keyboard-manager-83d76ff5.js} +1 -1
  172. package/dist/esm/{internal-vega-event-manager-fdee2a0a.js → internal-vega-event-manager-efb6786e.js} +13 -2
  173. package/dist/esm/{keyboard-manager-89acac79.js → keyboard-manager-c92808d8.js} +1 -1
  174. package/dist/esm/{keyboard-manager-slimmer-e303cb7d.js → keyboard-manager-slimmer-79c78ce8.js} +1 -1
  175. package/dist/esm/{language-extension-b3f836d4.js → language-extension-c4ff21dd.js} +2 -2
  176. package/dist/esm/loader.js +11 -11
  177. package/dist/esm/{month-view-generator-4bec99fd.js → month-view-generator-16192182.js} +1 -1
  178. package/dist/esm/{public-rules-b164e40e.js → public-rules-6ebdfcf5.js} +7 -7
  179. package/dist/esm/{range-9cc1422b.js → range-5257c062.js} +1 -1
  180. package/dist/esm/{responsive-format-facade-94897ae8.js → responsive-format-facade-05e53016.js} +4 -4
  181. package/dist/esm/{rich-text-editor-required-rule-2131f21c.js → rich-text-editor-required-rule-f63a37d1.js} +1 -1
  182. package/dist/esm/sanitize-fd0cb40d.js +129 -0
  183. package/dist/esm/{string-format-strategy.abstract-75540c16.js → string-format-strategy.abstract-fc60db79.js} +1 -1
  184. package/dist/esm/{string-input-formatter-slimmer-3a42d9b8.js → string-input-formatter-slimmer-ee32b1fd.js} +3 -3
  185. package/dist/esm/{string-mask-strategy-4a18ed1a.js → string-mask-strategy-0b0accaa.js} +2 -2
  186. package/dist/esm/{style-formatter-bb5aec96.js → style-formatter-5f5bd714.js} +2 -2
  187. package/dist/esm/{sub-state-notify-slimmer-71b9bbd5.js → sub-state-notify-slimmer-4453047a.js} +1 -1
  188. package/dist/esm/{sub-state-observer-slimmer-41a1b380.js → sub-state-observer-slimmer-202ec7dc.js} +1 -1
  189. package/dist/esm/{time-required-rule-8ec1faf5.js → time-required-rule-5fa43804.js} +1 -1
  190. package/dist/esm/{type-guard-b48aec98.js → type-guard-c65a227d.js} +12 -1
  191. package/dist/esm/{valid-credit-card-number-rule-96eaf9b1.js → valid-credit-card-number-rule-666c415d.js} +1 -1
  192. package/dist/esm/vega-accordion.entry.js +9 -9
  193. package/dist/esm/vega-app-header-button.entry.js +10 -10
  194. package/dist/esm/vega-banner.entry.js +3 -3
  195. package/dist/esm/vega-box.entry.js +9 -9
  196. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  197. package/dist/esm/vega-button-circle.entry.js +10 -10
  198. package/dist/esm/vega-button-group_2.entry.js +6 -6
  199. package/dist/esm/vega-button-link.entry.js +4 -4
  200. package/dist/esm/vega-button.entry.js +9 -9
  201. package/dist/esm/vega-calendar_4.entry.js +8 -8
  202. package/dist/esm/vega-card.entry.js +8 -8
  203. package/dist/esm/vega-carousel.entry.js +8 -8
  204. package/dist/esm/vega-checkbox_2.entry.js +6 -6
  205. package/dist/esm/vega-chip.entry.js +10 -10
  206. package/dist/esm/vega-code-block.entry.js +10 -10
  207. package/dist/esm/vega-color-picker.entry.js +5 -5
  208. package/dist/esm/vega-combo-box.entry.js +11 -10
  209. package/dist/esm/vega-date-picker_2.entry.js +389 -342
  210. package/dist/esm/vega-dialog_2.entry.js +10 -10
  211. package/dist/esm/vega-divider.entry.js +8 -8
  212. package/dist/esm/vega-dropdown_5.entry.js +49 -21
  213. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  214. package/dist/esm/vega-field-label.entry.js +3 -3
  215. package/dist/esm/vega-file-uploader.entry.js +5 -5
  216. package/dist/esm/vega-flag-icon.entry.js +8 -8
  217. package/dist/esm/vega-flex.entry.js +9 -9
  218. package/dist/esm/vega-font.entry.js +8 -8
  219. package/dist/esm/vega-form.entry.js +8 -8
  220. package/dist/esm/vega-grid.entry.js +8 -8
  221. package/dist/esm/vega-icon.entry.js +8 -8
  222. package/dist/esm/vega-image-uploader.entry.js +11 -11
  223. package/dist/esm/vega-input-credit-card.entry.js +10 -10
  224. package/dist/esm/vega-input-numeric.entry.js +10 -10
  225. package/dist/esm/vega-input-passcode.entry.js +9 -9
  226. package/dist/esm/vega-input-phone-number.entry.js +11 -11
  227. package/dist/esm/vega-input-range.entry.js +6 -6
  228. package/dist/esm/vega-input-select.entry.js +187 -54
  229. package/dist/esm/vega-input.entry.js +340 -99
  230. package/dist/esm/vega-item-toggle.entry.js +3 -3
  231. package/dist/esm/vega-left-nav_5.entry.js +11 -11
  232. package/dist/esm/vega-loader-wrapper_2.entry.js +7 -7
  233. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  234. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -3
  235. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -1
  236. package/dist/esm/vega-pagination.entry.js +9 -9
  237. package/dist/esm/vega-popover_2.entry.js +12 -12
  238. package/dist/esm/vega-progress-tracker_2.entry.js +10 -10
  239. package/dist/esm/vega-radio_2.entry.js +9 -9
  240. package/dist/esm/vega-rich-text-content.entry.js +7 -7
  241. package/dist/esm/vega-rich-text-editor_4.entry.js +30 -20
  242. package/dist/esm/vega-segment-control.entry.js +3 -3
  243. package/dist/esm/vega-selection-chip_2.entry.js +12 -12
  244. package/dist/esm/vega-selection-tile_2.entry.js +7 -7
  245. package/dist/esm/vega-sidenav_3.entry.js +10 -10
  246. package/dist/esm/vega-signature-capture.entry.js +11 -11
  247. package/dist/esm/vega-stepper.entry.js +6 -6
  248. package/dist/esm/vega-tab-group_2.entry.js +4 -4
  249. package/dist/esm/vega-table_11.entry.js +11 -11
  250. package/dist/esm/vega-textarea.entry.js +6 -6
  251. package/dist/esm/vega-time-picker_2.entry.js +18 -17
  252. package/dist/esm/vega-toggle-switch.entry.js +5 -5
  253. package/dist/esm/vega-tooltip_2.entry.js +10 -10
  254. package/dist/esm/vega.js +11 -11
  255. package/dist/sri/vega-sri-manifest.json +326 -318
  256. package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
  257. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.d.ts +20 -0
  258. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +1 -0
  259. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +4 -11
  260. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +4 -9
  261. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +2 -0
  262. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +2 -0
  263. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +1 -0
  264. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +14 -2
  265. package/dist/types/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.d.ts +27 -0
  266. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +1 -0
  267. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.d.ts +40 -0
  268. package/dist/types/components/vega-input/slimmers/renderers/vega-input-renderer.d.ts +3 -0
  269. package/dist/types/components/vega-input/types.d.ts +4 -0
  270. package/dist/types/components/vega-input/vega-input.d.ts +55 -1
  271. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.d.ts +29 -0
  272. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +1 -0
  273. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -0
  274. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +1 -1
  275. package/dist/types/components/vega-input-select/types.d.ts +5 -0
  276. package/dist/types/components/vega-input-select/vega-input-select.d.ts +12 -4
  277. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +8 -1
  278. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +1 -0
  279. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
  280. package/dist/types/components.d.ts +65 -11
  281. package/dist/types/constants/ui.d.ts +1 -1
  282. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +2 -0
  283. package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +4 -9
  284. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.d.ts +21 -0
  285. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.d.ts +21 -0
  286. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.d.ts +22 -0
  287. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.d.ts +18 -0
  288. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.d.ts +37 -0
  289. package/dist/types/types/components.type.d.ts +3 -0
  290. package/dist/types/types/type-guard.d.ts +8 -0
  291. package/dist/types/types/ui.type.d.ts +9 -0
  292. package/dist/types/utils/sanitize.d.ts +71 -0
  293. package/dist/types/utils/test/sanitize.test.d.ts +1 -0
  294. package/dist/vega/index.esm.js +1 -1
  295. package/dist/vega/{p-44bc9ea9.entry.js → p-011b94b1.entry.js} +1 -1
  296. package/dist/vega/{p-1e019406.js → p-06aaced4.js} +1 -1
  297. package/dist/vega/{p-38ed3d59.entry.js → p-07d3df01.entry.js} +1 -1
  298. package/dist/vega/{p-c2ac6b47.entry.js → p-08f18b22.entry.js} +1 -1
  299. package/dist/vega/{p-8fba7f9a.js → p-1298b126.js} +1 -1
  300. package/dist/vega/{p-9b673fd4.entry.js → p-17c55205.entry.js} +1 -1
  301. package/dist/vega/{p-161b9c5b.js → p-1f83cebf.js} +1 -1
  302. package/dist/vega/{p-7f86b3c8.js → p-20ad42be.js} +1 -1
  303. package/dist/vega/p-22b2841f.entry.js +1 -0
  304. package/dist/vega/{p-e88f2dc3.js → p-22c5d83b.js} +1 -1
  305. package/dist/vega/{p-2bc4f7d9.entry.js → p-34246870.entry.js} +1 -1
  306. package/dist/vega/p-35bf5789.entry.js +1 -0
  307. package/dist/vega/{p-a125cfec.entry.js → p-3bbc0c7d.entry.js} +1 -1
  308. package/dist/vega/{p-59fa3f68.js → p-3bf66be2.js} +1 -1
  309. package/dist/vega/{p-6e84e451.entry.js → p-3c5a28e4.entry.js} +1 -1
  310. package/dist/vega/p-3cfd8616.entry.js +1 -0
  311. package/dist/vega/p-3e5f362f.js +1 -0
  312. package/dist/vega/p-43f585f7.entry.js +1 -0
  313. package/dist/vega/p-476a173a.js +1 -0
  314. package/dist/vega/p-4a537391.entry.js +1 -0
  315. package/dist/vega/{p-82dbff54.entry.js → p-509eb52e.entry.js} +1 -1
  316. package/dist/vega/{p-5f09868d.entry.js → p-50ab977c.entry.js} +1 -1
  317. package/dist/vega/p-53a694d1.entry.js +1 -0
  318. package/dist/vega/{p-79a544d6.js → p-56e97df8.js} +1 -1
  319. package/dist/vega/{p-e39aa2ea.entry.js → p-5a27084e.entry.js} +1 -1
  320. package/dist/vega/{p-03e16a05.entry.js → p-5df9a856.entry.js} +1 -1
  321. package/dist/vega/{p-94cf46ca.entry.js → p-5ea2e43c.entry.js} +1 -1
  322. package/dist/vega/p-5f377954.js +1 -1
  323. package/dist/vega/p-60274fb1.js +1 -0
  324. package/dist/vega/{p-de70aac1.js → p-60851f9d.js} +1 -1
  325. package/dist/vega/{p-0ad59141.entry.js → p-60da99c6.entry.js} +1 -1
  326. package/dist/vega/{p-f2c8c363.js → p-66fa700b.js} +1 -1
  327. package/dist/vega/{p-114c6df8.entry.js → p-67f18b9e.entry.js} +1 -1
  328. package/dist/vega/{p-623c3911.entry.js → p-67fcf6f2.entry.js} +1 -1
  329. package/dist/vega/{p-676eaf3f.entry.js → p-6a2205a1.entry.js} +1 -1
  330. package/dist/vega/{p-b007d0d5.entry.js → p-6a4277df.entry.js} +1 -1
  331. package/dist/vega/{p-30e7544c.js → p-6e136980.js} +1 -1
  332. package/dist/vega/p-6f239144.entry.js +1 -0
  333. package/dist/vega/{p-bf61d136.js → p-6f8be8ea.js} +1 -1
  334. package/dist/vega/p-7045e84c.entry.js +1 -0
  335. package/dist/vega/{p-3566ad76.js → p-7288f8c4.js} +1 -1
  336. package/dist/vega/{p-721b2981.entry.js → p-747d6afc.entry.js} +1 -1
  337. package/dist/vega/{p-40561fa0.entry.js → p-75651f32.entry.js} +1 -1
  338. package/dist/vega/{p-5be29f14.js → p-77edf50c.js} +1 -1
  339. package/dist/vega/p-7ae55fd5.js +1 -0
  340. package/dist/vega/{p-9fb71d8c.entry.js → p-81134e9e.entry.js} +1 -1
  341. package/dist/vega/p-8187878e.js +1 -0
  342. package/dist/vega/p-87238c4c.entry.js +1 -0
  343. package/dist/vega/{p-21e7808a.entry.js → p-8a887843.entry.js} +1 -1
  344. package/dist/vega/{p-2ae5ad30.entry.js → p-8c0eb12f.entry.js} +1 -1
  345. package/dist/vega/p-8d0ca805.js +1 -0
  346. package/dist/vega/{p-f6cd7a08.entry.js → p-8e42a14c.entry.js} +1 -1
  347. package/dist/vega/{p-9dfe2bbc.js → p-91ec2e30.js} +1 -1
  348. package/dist/vega/{p-a8dad05d.js → p-920719ad.js} +1 -1
  349. package/dist/vega/{p-a58bdbad.entry.js → p-94394df7.entry.js} +1 -1
  350. package/dist/vega/p-991008a8.entry.js +1 -0
  351. package/dist/vega/p-a20854d6.entry.js +1 -0
  352. package/dist/vega/{p-a4ec6575.js → p-a2aeb646.js} +1 -1
  353. package/dist/vega/{p-2409a475.entry.js → p-a530797f.entry.js} +1 -1
  354. package/dist/vega/{p-f3831dc9.entry.js → p-a5bd3c15.entry.js} +1 -1
  355. package/dist/vega/{p-70b2906a.entry.js → p-a65941d0.entry.js} +1 -1
  356. package/dist/vega/{p-be0b67b8.entry.js → p-a85ad369.entry.js} +1 -1
  357. package/dist/vega/{p-42a283b5.entry.js → p-a86010f7.entry.js} +1 -1
  358. package/dist/vega/{p-6e701542.entry.js → p-aa10eeb3.entry.js} +1 -1
  359. package/dist/vega/{p-7be3aefc.entry.js → p-ab2f35af.entry.js} +1 -1
  360. package/dist/vega/{p-c0036e71.js → p-ac4563d7.js} +1 -1
  361. package/dist/vega/{p-ce2ffff7.js → p-aedf7146.js} +1 -1
  362. package/dist/vega/p-b4ea3fad.js +1 -0
  363. package/dist/vega/{p-d991fb11.js → p-badad9ed.js} +1 -1
  364. package/dist/vega/{p-c7194674.entry.js → p-bb4a558d.entry.js} +1 -1
  365. package/dist/vega/{p-4957f07a.entry.js → p-bb8339ed.entry.js} +1 -1
  366. package/dist/vega/{p-6b9d2996.entry.js → p-be930e85.entry.js} +1 -1
  367. package/dist/vega/{p-398220f5.entry.js → p-bf2bd6d0.entry.js} +1 -1
  368. package/dist/vega/{p-ead1da57.entry.js → p-c379a5a5.entry.js} +1 -1
  369. package/dist/vega/{p-2971b17a.js → p-c8f1b9d5.js} +1 -1
  370. package/dist/vega/{p-184d8443.js → p-c9b6b5a9.js} +1 -1
  371. package/dist/vega/{p-9d8e2939.entry.js → p-ca3472c1.entry.js} +1 -1
  372. package/dist/vega/{p-2e0deef6.js → p-cc43bffb.js} +1 -1
  373. package/dist/vega/{p-74a77cad.js → p-ce1a2982.js} +1 -1
  374. package/dist/vega/{p-d1d0f08a.js → p-d0e31633.js} +1 -1
  375. package/dist/vega/{p-75d91ee9.entry.js → p-d6ed3d76.entry.js} +1 -1
  376. package/dist/vega/{p-6c1ef2ed.js → p-dd11f735.js} +1 -1
  377. package/dist/vega/{p-adc615a4.entry.js → p-e1610196.entry.js} +1 -1
  378. package/dist/vega/{p-3d85411d.js → p-e16b3adf.js} +1 -1
  379. package/dist/vega/{p-a3c4fa30.entry.js → p-e87b0b4a.entry.js} +1 -1
  380. package/dist/vega/{p-a5d4d168.entry.js → p-e9c4fd24.entry.js} +1 -1
  381. package/dist/vega/{p-7a8c4cf8.entry.js → p-eb60cfe1.entry.js} +1 -1
  382. package/dist/vega/{p-2b20a215.entry.js → p-ef001c70.entry.js} +1 -1
  383. package/dist/vega/{p-dd72ad9e.js → p-f383c856.js} +1 -1
  384. package/dist/vega/{p-c7f292dd.entry.js → p-f3c3ff26.entry.js} +1 -1
  385. package/dist/vega/{p-7f9acdf7.entry.js → p-f52a0155.entry.js} +1 -1
  386. package/dist/vega/{p-96797fee.entry.js → p-f8f7cf48.entry.js} +1 -1
  387. package/dist/vega/{p-f427d88c.entry.js → p-fba14ad2.entry.js} +1 -1
  388. package/dist/vega/{p-7b337fd4.entry.js → p-fbd64f9c.entry.js} +1 -1
  389. package/dist/vega/{p-db62b038.entry.js → p-fdc270b8.entry.js} +1 -1
  390. package/dist/vega/p-fe12eff6.js +1 -0
  391. package/dist/vega/{p-0ba0f83d.entry.js → p-ffbff9b5.entry.js} +1 -1
  392. package/dist/vega/vega.esm.js +1 -1
  393. package/package.json +1 -1
  394. package/dist/vega/p-1faef917.entry.js +0 -1
  395. package/dist/vega/p-207cfa6a.js +0 -1
  396. package/dist/vega/p-21cba83b.entry.js +0 -1
  397. package/dist/vega/p-2f592078.entry.js +0 -1
  398. package/dist/vega/p-3162a7fd.entry.js +0 -1
  399. package/dist/vega/p-3938880f.entry.js +0 -1
  400. package/dist/vega/p-524ffc12.entry.js +0 -1
  401. package/dist/vega/p-697eb0e1.js +0 -1
  402. package/dist/vega/p-76e6c13a.js +0 -1
  403. package/dist/vega/p-8bd496b4.js +0 -1
  404. package/dist/vega/p-9a83a6b0.js +0 -1
  405. package/dist/vega/p-aab0deab.js +0 -1
  406. package/dist/vega/p-b406a846.entry.js +0 -1
  407. package/dist/vega/p-bd60c72e.entry.js +0 -1
  408. package/dist/vega/p-c4700277.entry.js +0 -1
  409. package/dist/vega/p-d01fe83d.entry.js +0 -1
  410. package/dist/vega/p-f38a4be2.entry.js +0 -1
@@ -53,22 +53,27 @@ export class VegaRTEContent {
53
53
  /**
54
54
  * Create an empty content state
55
55
  *
56
+ * @param {VegaRTETransformOptions} options - Optional transformation options.
56
57
  * @returns {VegaRTEContent} An empty content state
57
58
  */
58
- static createEmptyContent() {
59
+ static createEmptyContent(options = { autoMatchFormat: true }) {
59
60
  return VegaRTEContent.fromJSON([
60
61
  {
61
62
  id: generateUUID(),
62
63
  type: 'paragraph',
64
+ annotations: {
65
+ internalWrapper: !options.autoMatchFormat,
66
+ },
63
67
  nodes: [
64
68
  {
65
69
  id: generateUUID(),
70
+ annotations: { plainText: !options.autoMatchFormat },
66
71
  type: 'text',
67
72
  text: '',
68
73
  },
69
74
  ],
70
75
  },
71
- ]);
76
+ ], options);
72
77
  }
73
78
  /**
74
79
  * Converts HTML content to a VegaRTEContent instance.
@@ -141,8 +146,19 @@ export class VegaRTEContent {
141
146
  if (options) {
142
147
  LogUtility.warn(`The 'options' parameter in toHtml method is deprecated and will be removed in the future.`);
143
148
  }
149
+ if (this.isEmpty()) {
150
+ return '';
151
+ }
144
152
  return this.children.map((block) => block.toHtml()).join('');
145
153
  }
154
+ /**
155
+ * Checks if the content state is empty.
156
+ *
157
+ * @returns {boolean} True if the content state is empty, false otherwise.
158
+ */
159
+ isEmpty() {
160
+ return this.children.length === 0 || (this.children.length === 1 && !this.children[0].isNotEmpty());
161
+ }
146
162
  /**
147
163
  * Internal method to add the block item, remove the block item
148
164
  *
@@ -90,7 +90,7 @@ __decorate([
90
90
  MapToComponentField()
91
91
  ], RTEExtensionController.prototype, "selectionController", void 0);
92
92
  __decorate([
93
- MapToComponentMethod('connectedCallback')
93
+ MapToComponentMethod('componentDidLoad')
94
94
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
95
95
  __decorate([
96
96
  MapToComponentMethod('watchExtensions')
@@ -50,11 +50,12 @@ export class ValueController extends VegaSlimmer {
50
50
  * Watches the value of the editor and updates the internal value.
51
51
  */
52
52
  watchValueUpdate() {
53
+ const autoMatchFormat = this.sourceEditConfig.autoMatchFormat;
53
54
  if (this.value && !(this.value instanceof VegaRTEContent)) {
54
- this.value = VegaRTEContent.fromJSON(this.value);
55
+ this.value = VegaRTEContent.fromJSON(this.value, { autoMatchFormat });
55
56
  }
56
57
  else if (!this.value || this.value.children.length === 0) {
57
- this.value = VegaRTEContent.createEmptyContent();
58
+ this.value = VegaRTEContent.createEmptyContent({ autoMatchFormat });
58
59
  }
59
60
  else {
60
61
  this.changeEventEmitter.emit(this.value);
@@ -114,6 +115,9 @@ __decorate([
114
115
  __decorate([
115
116
  MapToComponentField()
116
117
  ], ValueController.prototype, "selectionController", void 0);
118
+ __decorate([
119
+ MapToComponentField()
120
+ ], ValueController.prototype, "sourceEditConfig", void 0);
117
121
  __decorate([
118
122
  MapToComponentMethod('connectedCallback')
119
123
  ], ValueController.prototype, "connectedCallback", null);
@@ -37,6 +37,9 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
37
37
  }
38
38
  async saveSourceCode() {
39
39
  const sourceViewValue = this.vegaRichTextEditorRenderer.getSourceCode();
40
+ if (!sourceViewValue && this.value.isEmpty()) {
41
+ return;
42
+ }
40
43
  if (typeof sourceViewValue === 'string') {
41
44
  await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
42
45
  autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
@@ -62,3 +65,6 @@ __decorate([
62
65
  __decorate([
63
66
  MapToComponentField()
64
67
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
68
+ __decorate([
69
+ MapToComponentField()
70
+ ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
@@ -2797,6 +2797,11 @@ Line 1
2797
2797
  const paragraph = content.children[0];
2798
2798
  expect(paragraph.children[1].text).toEqual(' ');
2799
2799
  });
2800
+ it('should convert empty value as expect', async () => {
2801
+ const emptyContent = VegaRTEContent.fromHtml('', { autoMatchFormat: false });
2802
+ expect(emptyContent.toHtml()).toEqual('');
2803
+ expect(emptyContent.toJSON()).toEqual([]);
2804
+ });
2800
2805
  });
2801
2806
  describe('fromJSON', () => {
2802
2807
  it('should translate the paragraph as expect JSON', () => {
@@ -241,7 +241,7 @@ export class VegaSelectionChip {
241
241
  "mutable": false,
242
242
  "complexType": {
243
243
  "original": "VegaSelectionChipTooltipProps",
244
- "resolved": "{ size?: ResponsiveType<SizeType>; trigger?: \"hover\" | \"click\" | \"none\"; positionRelativeTo?: string; minWidth?: ResponsiveType<SizeType>; maxWidth?: ResponsiveType<SizeType>; content?: string; disableInteractive?: boolean; text?: string; placement?: ElementAppenderPlacementType; alignment?: ElementAppenderAlignmentType; }",
244
+ "resolved": "{ size?: ResponsiveType<SizeType>; trigger?: \"click\" | \"hover\" | \"none\"; positionRelativeTo?: string; minWidth?: ResponsiveType<SizeType>; maxWidth?: ResponsiveType<SizeType>; content?: string; disableInteractive?: boolean; text?: string; placement?: ElementAppenderPlacementType; alignment?: ElementAppenderAlignmentType; }",
245
245
  "references": {
246
246
  "VegaSelectionChipTooltipProps": {
247
247
  "location": "import",
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { MapToComponentField, MapToComponentMethod } from 'vega-slimmer/core';
8
8
  import { ElementAppenderSlimmer } from '../../../../helpers/slimmers/element-appender/element-appender-slimmer';
9
+ import { ClickOutsideOnlyToDismissStrategy } from '../../../../helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy';
9
10
  /** The `VegaTimePickerRangeDropdownController` class is responsible for managing the dropdown menu for selecting a range of time in the VegaTimePicker component. */
10
11
  export class VegaTimePickerRangeDropdownController extends ElementAppenderSlimmer {
11
12
  /**
@@ -29,7 +30,7 @@ export class VegaTimePickerRangeDropdownController extends ElementAppenderSlimme
29
30
  placement: ['bottom', 'top'],
30
31
  matchTargetWidth: true,
31
32
  };
32
- }, () => 'custom', 'isRangeDropdownShow');
33
+ }, () => new ClickOutsideOnlyToDismissStrategy(), 'isRangeDropdownShow');
33
34
  this.isRangeDropdownShow = false;
34
35
  this.rangeDropdownType = 'start';
35
36
  /*
@@ -8,6 +8,7 @@ import { MapToComponentField, MapToComponentMethod } from 'vega-slimmer/core';
8
8
  import { ElementAppenderSlimmer } from '../../../../helpers/slimmers/element-appender/element-appender-slimmer';
9
9
  import { LogUtility } from '../../../../utils/log';
10
10
  import { pad } from '../../../../utils/date';
11
+ import { ClickOutsideOnlyToDismissStrategy } from '../../../../helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy';
11
12
  /** The `VegaTimePickerDropdownController` class is responsible for managing the dropdown functionality of the VegaTimePicker component in a TypeScript application. */
12
13
  export class VegaTimePickerSingleDropdownController extends ElementAppenderSlimmer {
13
14
  /**
@@ -23,7 +24,7 @@ export class VegaTimePickerSingleDropdownController extends ElementAppenderSlimm
23
24
  positionRelativeTo: this.positionRelativeTo,
24
25
  translocation: { X: 0, Y: 8 },
25
26
  placement: ['bottom', 'top'],
26
- }), () => 'custom');
27
+ }), () => new ClickOutsideOnlyToDismissStrategy());
27
28
  }
28
29
  /**
29
30
  * The function initializes a value controller and dropdown source.
@@ -91,6 +91,8 @@ export const VegaNativeEventName = [
91
91
  'clear',
92
92
  'periodChange',
93
93
  'selectionChange',
94
+ 'suggestionItemClick',
95
+ 'nativeInputChange',
94
96
  ];
95
97
  // eslint-disable-next-line @typescript-eslint/typedef
96
98
  export const CssStates = ['default', 'hover', 'active', 'focus-visible'];
@@ -1,4 +1,4 @@
1
- import { VegaExpand, VegaClick, VegaDropdownClick, VegaReset, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaClear, VegaSelectionChange, VegaDropdownShow, VegaDropdownHide, VegaDropdownSearch, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaFocus, VegaBlur, VegaPaste, VegaComplete, VegaCountryChange, VegaShow, VegaHide, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaImageInserted, VegaSelectChange, VegaSelectAllChange, VegaRowClick, VegaRowExpand, VegaRowSelect, VegaRowSelectAll, } from './vega-event-id';
1
+ import { VegaExpand, VegaClick, VegaDropdownClick, VegaReset, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaClear, VegaSelectionChange, VegaDropdownShow, VegaDropdownHide, VegaDropdownSearch, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaNativeInputChange, VegaFocus, VegaBlur, VegaSuggestionItemClick, VegaPaste, VegaComplete, VegaCountryChange, VegaShow, VegaHide, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaImageInserted, VegaSelectChange, VegaSelectAllChange, VegaRowClick, VegaRowExpand, VegaRowSelect, VegaRowSelectAll, } from './vega-event-id';
2
2
  const entries = [
3
3
  ['vega-accordion', [VegaExpand]],
4
4
  ['vega-app-header-button', [VegaClick, VegaDropdownClick, VegaReset]],
@@ -35,7 +35,18 @@ const entries = [
35
35
  ['vega-file-uploader', [VegaChange, VegaSelectFileChange, VegaRemove, VegaRetry, VegaPreview]],
36
36
  ['vega-form', [VegaFormSubmit, VegaFormReset, VegaValidate]],
37
37
  ['vega-image-uploader', [VegaChange, VegaRemove, VegaCancel]],
38
- ['vega-input', [VegaChange, VegaFocus, VegaBlur, VegaLabelButtonClick, VegaPaste]],
38
+ [
39
+ 'vega-input',
40
+ [
41
+ VegaChange,
42
+ VegaNativeInputChange,
43
+ VegaFocus,
44
+ VegaBlur,
45
+ VegaLabelButtonClick,
46
+ VegaSuggestionItemClick,
47
+ VegaPaste,
48
+ ],
49
+ ],
39
50
  ['vega-input-credit-card', [VegaChange, VegaBlur, VegaFocus]],
40
51
  ['vega-input-numeric', [VegaChange]],
41
52
  ['vega-input-passcode', [VegaChange, VegaComplete]],
@@ -107,3 +107,5 @@ export const VegaPaste = new VegaEventID('vegaPaste', 'paste');
107
107
  export const HTMLNativeEventIds = [VegaChange, VegaClick, VegaFocus, VegaBlur, VegaPaste];
108
108
  export const VegaMonthYearChange = new VegaEventID('vegaMonthYearChange', 'monthYearChange');
109
109
  export const VegaSelectionChange = new VegaEventID('vegaSelectionChange', 'selectionChange');
110
+ export const VegaSuggestionItemClick = new VegaEventID('vegaSuggestionItemClick', 'suggestionItemClick');
111
+ export const VegaNativeInputChange = new VegaEventID('vegaNativeInputChange', 'nativeInputChange');
@@ -1,14 +1,16 @@
1
1
  import { VEGA_COMPONENT_EVENT_MAP } from '../event-id/component-event-id-map';
2
- import { VegaBlur, VegaChange, VegaFocus, VegaLabelButtonClick, VegaPaste } from '../event-id/vega-event-id';
2
+ import { VegaBlur, VegaChange, VegaFocus, VegaLabelButtonClick, VegaNativeInputChange, VegaPaste, VegaSuggestionItemClick, } from '../event-id/vega-event-id';
3
3
  test('VEGA_COMPONENT_EVENT_MAP size', () => {
4
4
  expect(VEGA_COMPONENT_EVENT_MAP.size).not.toEqual(0);
5
5
  });
6
6
  test('VEGA_COMPONENT_EVENT_MAP vega-input', () => {
7
7
  expect(VEGA_COMPONENT_EVENT_MAP.get('vega-input')).toEqual([
8
8
  VegaChange,
9
+ VegaNativeInputChange,
9
10
  VegaFocus,
10
11
  VegaBlur,
11
12
  VegaLabelButtonClick,
13
+ VegaSuggestionItemClick,
12
14
  VegaPaste,
13
15
  ]);
14
16
  });
@@ -1,5 +1,5 @@
1
1
  import { VegaEventManager } from '../../public-api';
2
- import { VegaBlur, VegaChange, VegaCreate, VegaDropdownClick, VegaDropdownHide, VegaDropdownSearch, VegaDropdownShow, VegaFocus, VegaLabelButtonClick, VegaPaste, VegaReset, VegaSearchTrigger, } from '../event-id/vega-event-id';
2
+ import { VegaBlur, VegaChange, VegaCreate, VegaDropdownClick, VegaDropdownHide, VegaDropdownSearch, VegaDropdownShow, VegaFocus, VegaLabelButtonClick, VegaNativeInputChange, VegaPaste, VegaReset, VegaSearchTrigger, VegaSuggestionItemClick, } from '../event-id/vega-event-id';
3
3
  import VegaTelemetryRuntimeMetricsManager from '@globalpayments/vega-telemetry-runtime-metrics/index';
4
4
  import { sleep } from '../../../utils/test-utils';
5
5
  describe('VegaEventManager', () => {
@@ -20,9 +20,11 @@ describe('VegaEventManager', () => {
20
20
  it('should work proper while call getNativeEventName', () => {
21
21
  expect(VegaEventManager.getEnabledEventIdsByComponent('vega-input')).toEqual([
22
22
  VegaChange,
23
+ VegaNativeInputChange,
23
24
  VegaFocus,
24
25
  VegaBlur,
25
26
  VegaLabelButtonClick,
27
+ VegaSuggestionItemClick,
26
28
  VegaPaste,
27
29
  ]);
28
30
  expect(VegaEventManager.getEnabledEventIdsByComponent('vega-dropdown')).toEqual([
@@ -11,6 +11,10 @@ import ChangeManager from '../../change-manager/change-manager';
11
11
  import { SHADOW_ROOT_ELEMENT_SCROLLING } from '../../change-manager/subject/static-subject/static-subject-title';
12
12
  import { Observer } from '../../change-manager/observer/observer';
13
13
  import { ElementAppenderHierarchyTreeManager } from './element-appender-hierarchy-tree-manager';
14
+ import { ClickTriggerStrategy } from './trigger-strategies/click-trigger-strategy';
15
+ import { HoverTriggerStrategy } from './trigger-strategies/hover-trigger-strategy';
16
+ import { NoneTriggerStrategy } from './trigger-strategies/none-trigger-strategy';
17
+ import { isEATriggerStrategy } from '../../../types/type-guard';
14
18
  export class ElementAppenderSlimmer extends VegaSlimmer {
15
19
  constructor(showConfigFactory, getTrigger, isDropdownShowName = 'isDropdownShow', disableInteractiveGetter = () => false) {
16
20
  super();
@@ -36,25 +40,28 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
36
40
  };
37
41
  /* It's a function that listens to the click event on the dropdown. It checks if the trigger
38
42
  property is equal to 'click'. If it is, then it toggles the dropdown. */
39
- this.targetClickHandler = () => {
40
- if (this.shouldListenerWork('click')) {
41
- this.isShowing() ? this.hide() : this.show();
43
+ this.targetClickHandler = (event) => {
44
+ const triggerStrategy = this.getTriggerStrategy();
45
+ if (triggerStrategy.canEvaluate('target-click')) {
46
+ this.executeTriggerStrategy(triggerStrategy, event, 'target-click');
42
47
  }
43
48
  };
44
49
  /* It's a function that listens to the mouseenter event on the dropdown. It checks if the trigger
45
50
  property is equal to 'hover'. If it is, then it clears the timer. */
46
- this.targetMouseEnterHandler = () => {
47
- if (this.shouldListenerWork('hover')) {
48
- this.isShowing() === false && this.show();
51
+ this.targetMouseEnterHandler = (event) => {
52
+ const triggerStrategy = this.getTriggerStrategy();
53
+ if (triggerStrategy.canEvaluate('target-mouseenter')) {
54
+ this.executeTriggerStrategy(triggerStrategy, event, 'target-mouseenter');
49
55
  this.clearDelayHideTimer();
50
56
  }
51
57
  };
52
58
  /* It's a function that listens to the mouseleave event on the dropdown. It checks if the trigger
53
59
  property is equal to 'hover'. If it is, then it creates a timer that will hide the dropdown after a
54
60
  certain amount of time. */
55
- this.targetMouseLeaveHandler = () => {
56
- if (this.shouldListenerWork('hover')) {
57
- this.createDelayHideTimer();
61
+ this.targetMouseLeaveHandler = (event) => {
62
+ const triggerStrategy = this.getTriggerStrategy();
63
+ if (triggerStrategy.canEvaluate('target-mouseleave')) {
64
+ this.createDelayHideTimer(event, 'target-mouseleave');
58
65
  }
59
66
  };
60
67
  /* istanbul ignore next */
@@ -62,7 +69,7 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
62
69
  this.targetFocusoutHandler = (e) => {
63
70
  var _a;
64
71
  if (!isParent(e.relatedTarget, (_a = this.showConfig) === null || _a === void 0 ? void 0 : _a.appendableElement)) {
65
- this.targetMouseLeaveHandler();
72
+ this.targetMouseLeaveHandler(e);
66
73
  }
67
74
  };
68
75
  /* It's a function that listens to the mouseenter event on the dropdown. It checks if the trigger
@@ -70,18 +77,20 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
70
77
  this.elementMouseEnterHandler = () => {
71
78
  var _a;
72
79
  (_a = this.hierarchyTreeManager.getParent()) === null || _a === void 0 ? void 0 : _a.elementMouseEnterHandler();
73
- if (this.shouldListenerWork('hover') && !this.disableInteractiveGetter()) {
80
+ const triggerStrategy = this.getTriggerStrategy();
81
+ if (triggerStrategy.canEvaluate('element-mouseenter') && !this.disableInteractiveGetter()) {
74
82
  this.clearDelayHideTimer();
75
83
  }
76
84
  };
77
85
  /* It's a function that listens to the mouseleave event on the dropdown. It checks if the trigger
78
86
  property is equal to 'hover'. If it is, then it creates a timer that will hide the dropdown after a
79
87
  certain amount of time. */
80
- this.elementMouseLeaveHandler = () => {
88
+ this.elementMouseLeaveHandler = (event) => {
81
89
  var _a;
82
- (_a = this.hierarchyTreeManager.getParent()) === null || _a === void 0 ? void 0 : _a.elementMouseLeaveHandler();
83
- if (this.shouldListenerWork('hover') && !this.disableInteractiveGetter()) {
84
- this.createDelayHideTimer();
90
+ (_a = this.hierarchyTreeManager.getParent()) === null || _a === void 0 ? void 0 : _a.elementMouseLeaveHandler(event);
91
+ const triggerStrategy = this.getTriggerStrategy();
92
+ if (triggerStrategy.canEvaluate('element-mouseleave') && !this.disableInteractiveGetter()) {
93
+ this.createDelayHideTimer(event, 'element-mouseleave');
85
94
  }
86
95
  };
87
96
  /* It's a function that listens to the global mousedown event. It checks if the dropdown is showing,
@@ -92,15 +101,15 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
92
101
  const hasChildShowing = this.hierarchyTreeManager
93
102
  .getChildren()
94
103
  .some((child) => child.isShowing());
104
+ const triggerStrategy = this.getTriggerStrategy();
95
105
  if (!hasChildShowing &&
96
- this.shouldListenerWork('custom') &&
97
- this.isShowing() &&
106
+ triggerStrategy.canEvaluate('click-outside') &&
98
107
  this.showConfig &&
99
108
  !isParent(currentTarget, this.showConfig.appendableElement) &&
100
109
  !isParent(currentTarget, this.showConfig.target) &&
101
110
  (this.showConfig.isScreenPosition ||
102
111
  findParent(currentTarget, 'vega-modal') === findParent(this.showConfig.target, 'vega-modal'))) {
103
- this.hide();
112
+ this.executeTriggerStrategy(triggerStrategy, e, 'click-outside');
104
113
  }
105
114
  };
106
115
  /* istanbul ignore next */
@@ -112,9 +121,10 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
112
121
  }
113
122
  };
114
123
  /* A timer that will hide the dropdown after a certain amount of time. */
115
- this.createDelayHideTimer = () => {
124
+ this.createDelayHideTimer = (event, eventType) => {
125
+ const triggerStrategy = this.getTriggerStrategy();
116
126
  this.delayHideTimer = setTimeout(() => {
117
- this.hide();
127
+ this.executeTriggerStrategy(triggerStrategy, event, eventType);
118
128
  clearTimeout(this.delayHideTimer);
119
129
  }, ElementAppenderSlimmer.DELAY_HIDE_TIME);
120
130
  };
@@ -122,19 +132,22 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
122
132
  this.clearDelayHideTimer = () => {
123
133
  this.delayHideTimer && clearTimeout(this.delayHideTimer);
124
134
  };
125
- /* It's a function that checks if the listener should work or not. */
126
- this.shouldListenerWork = (trigger) => {
127
- const currentTrigger = this.getTrigger();
128
- switch (trigger) {
129
- case 'custom':
130
- return currentTrigger !== 'none';
131
- case 'click':
132
- return currentTrigger === 'click';
133
- case 'hover':
134
- return currentTrigger === 'hover';
135
+ this.executeTriggerStrategy = (triggerStrategy, event, eventType) => {
136
+ if (this.showConfig) {
137
+ const result = triggerStrategy.evaluate({
138
+ target: this.showConfig.target,
139
+ appendableElement: this.showConfig.appendableElement,
140
+ htmlEvent: event,
141
+ eventType: eventType,
142
+ currentState: {
143
+ isVisible: this.isShowing(),
144
+ },
145
+ });
146
+ if (result) {
147
+ result.nextAction === 'hide' && this.hide();
148
+ result.nextAction === 'show' && this.show();
149
+ }
135
150
  }
136
- /* istanbul ignore next */
137
- throw new Error(`Unexpected trigger: ${trigger}. Expected values are custom, click, or hover.`);
138
151
  };
139
152
  this.showConfigFactory = showConfigFactory;
140
153
  this.getTrigger = getTrigger;
@@ -236,6 +249,21 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
236
249
  removeShadowRootElementScrolling() {
237
250
  ChangeManager.unregister(SHADOW_ROOT_ELEMENT_SCROLLING, this.shadowRootElementScrollingObserver);
238
251
  }
252
+ getTriggerStrategy() {
253
+ const trigger = this.getTrigger();
254
+ if (trigger === 'click') {
255
+ return new ClickTriggerStrategy();
256
+ }
257
+ else if (trigger === 'hover') {
258
+ return new HoverTriggerStrategy();
259
+ }
260
+ else if (isEATriggerStrategy(trigger)) {
261
+ return trigger;
262
+ }
263
+ else {
264
+ return new NoneTriggerStrategy();
265
+ }
266
+ }
239
267
  }
240
268
  ElementAppenderSlimmer.DELAY_HIDE_TIME = 100;
241
269
  __decorate([
@@ -12,6 +12,7 @@ import { ElementAppenderSlimmer } from '../element-appender-slimmer';
12
12
  import { LogUtility } from '../../../../utils/log';
13
13
  import ChangeManager from '../../../change-manager/change-manager';
14
14
  import { SHADOW_ROOT_ELEMENT_SCROLLING } from '../../../change-manager/subject/static-subject/static-subject-title';
15
+ import { ClickOutsideOnlyToDismissStrategy } from '../trigger-strategies/click-outside-only-to-dismiss-strategy';
15
16
  describe('ElementAppender slimmer test suite', () => {
16
17
  const mockedComponentDidLoadMethod = jest.fn();
17
18
  const mockedComponentDisconnectedCallbackMethod = jest.fn();
@@ -184,14 +185,14 @@ describe('ElementAppender slimmer test suite', () => {
184
185
  expect((appendableElement.style.display = 'block'));
185
186
  jest.useRealTimers();
186
187
  });
187
- test('should listen event proper while trigger is custom', () => {
188
+ test('should listen event proper while trigger is custom trigger', () => {
188
189
  const mockedComponent = new MockedComponent();
189
190
  const target = new MockHTMLElement('body', 'div');
190
191
  const appendableElement = new MockHTMLElement('body', 'div');
191
192
  appendableElement.classList.add('vega-force-hidden');
192
193
  mockedComponent.target = target;
193
194
  mockedComponent.appendableElement = appendableElement;
194
- mockedComponent.trigger = 'custom';
195
+ mockedComponent.trigger = new ClickOutsideOnlyToDismissStrategy();
195
196
  mockedComponent.componentDidLoad();
196
197
  mockedComponent.show();
197
198
  expect(mockedComponent.appendableElement).not.toHaveClass('vega-force-hidden');
@@ -0,0 +1,28 @@
1
+ /**
2
+ * A trigger strategy that hides the appendable element when a global mouse down event occurs outside the element.
3
+ */
4
+ export class ClickOutsideOnlyToDismissStrategy {
5
+ /**
6
+ * Determines if the strategy can evaluate the given event type.
7
+ *
8
+ * @param {VegaEAEventType} type - The type of the event.
9
+ * @returns {boolean} True if the event type is 'globalMouseDown', otherwise false.
10
+ */
11
+ canEvaluate(type) {
12
+ return type === 'click-outside';
13
+ }
14
+ /**
15
+ * Evaluates the trigger context and determines whether to hide the appendable element.
16
+ *
17
+ * @param {VegaEATriggerContext} context - The context of the trigger event.
18
+ * @returns {VegaEATriggerResult} An object indicating whether to hide the appendable element.
19
+ */
20
+ evaluate(context) {
21
+ if (context.eventType === 'click-outside' && context.currentState.isVisible) {
22
+ return {
23
+ nextAction: 'hide',
24
+ };
25
+ }
26
+ return {};
27
+ }
28
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * ClickTriggerStrategy handles 'targetClick' and 'globalMouseDown' events to toggle or hide the appendable element.
3
+ */
4
+ export class ClickTriggerStrategy {
5
+ /**
6
+ * Determines if the strategy can evaluate the given event type.
7
+ *
8
+ * @param {VegaEAEventType} type - The type of the event.
9
+ * @returns {boolean} True if the event type is 'targetClick' or 'globalMouseDown', otherwise false.
10
+ */
11
+ canEvaluate(type) {
12
+ return type === 'target-click' || type === 'click-outside';
13
+ }
14
+ /**
15
+ * Evaluates the trigger context and determines whether to show, hide, or toggle the appendable element.
16
+ *
17
+ * @param {VegaEATriggerContext} context - The context of the trigger event.
18
+ * @returns {VegaEATriggerResult} An object indicating whether to show, hide, or toggle the appendable element.
19
+ */
20
+ evaluate(context) {
21
+ if (context.eventType === 'target-click') {
22
+ return {
23
+ nextAction: context.currentState.isVisible ? 'hide' : 'show',
24
+ };
25
+ }
26
+ if (context.eventType === 'click-outside' && context.currentState.isVisible) {
27
+ return {
28
+ nextAction: 'hide',
29
+ };
30
+ }
31
+ return {};
32
+ }
33
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * HoverTriggerStrategy handles mouse enter and leave events on the target and appendable elements,
3
+ * as well as global mouse down events to show or hide the appendable element.
4
+ */
5
+ export class HoverTriggerStrategy {
6
+ /**
7
+ * Determines if the strategy can evaluate the given event type.
8
+ *
9
+ * @param {VegaEAEventType} type - The type of the event.
10
+ * @returns {boolean} True if the event type is related to hover actions or global mouse down, otherwise false.
11
+ */
12
+ canEvaluate(type) {
13
+ return [
14
+ 'target-mouseenter',
15
+ 'target-mouseleave',
16
+ 'element-mouseenter',
17
+ 'element-mouseleave',
18
+ ].includes(type);
19
+ }
20
+ /**
21
+ * Evaluates the trigger context and determines whether to show, hide, or toggle the appendable element.
22
+ *
23
+ * @param {VegaEATriggerContext} context - The context of the trigger event.
24
+ * @returns {VegaEATriggerResult} An object indicating whether to show, hide, or toggle the appendable element.
25
+ */
26
+ evaluate(context) {
27
+ if (['target-mouseenter', 'element-mouseenter'].includes(context.eventType)) {
28
+ return !context.currentState.isVisible
29
+ ? {
30
+ nextAction: 'show',
31
+ }
32
+ : {};
33
+ }
34
+ if (['target-mouseleave', 'element-mouseleave'].includes(context.eventType)) {
35
+ return {
36
+ nextAction: 'hide',
37
+ };
38
+ }
39
+ /* istanbul ignore next */
40
+ return {};
41
+ }
42
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * NoneTriggerStrategy does not respond to any events and always indicates no action.
3
+ */
4
+ export class NoneTriggerStrategy {
5
+ /**
6
+ * Determines if the strategy can evaluate the given event type.
7
+ *
8
+ * @returns {boolean} Always false as this strategy does not respond to any events.
9
+ */
10
+ canEvaluate() {
11
+ return false;
12
+ }
13
+ /* istanbul ignore next */
14
+ /**
15
+ * Evaluates the trigger context and always indicates no action.
16
+ *
17
+ * @returns {VegaEATriggerResult} An object indicating no action (no show, hide, or toggle).
18
+ */
19
+ evaluate() {
20
+ return {};
21
+ }
22
+ }
@@ -1,4 +1,5 @@
1
- import { isFlexWrapType, isResponsiveType, isSpacingDirection, isStateVariantTokenType } from '../type-guard';
1
+ import { ClickOutsideOnlyToDismissStrategy } from '../../helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy';
2
+ import { isEATriggerStrategy, isFlexWrapType, isResponsiveType, isSpacingDirection, isStateVariantTokenType, } from '../type-guard';
2
3
  test('should get expect result when call function isResponsiveType', async () => {
3
4
  const sizeWithDefault = {
4
5
  default: 'default',
@@ -37,3 +38,9 @@ test('should get expect result when call function isFlexWrapType', async () => {
37
38
  expect(isFlexWrapType('wrap')).toBeTruthy();
38
39
  expect(isFlexWrapType('wrap1')).toBeFalsy();
39
40
  });
41
+ test('should get expect result when call function isEATriggerStrategy', async () => {
42
+ expect(isEATriggerStrategy(undefined)).toBeFalsy();
43
+ expect(isEATriggerStrategy(null)).toBeFalsy();
44
+ expect(isEATriggerStrategy('wrap')).toBeFalsy();
45
+ expect(isEATriggerStrategy(new ClickOutsideOnlyToDismissStrategy())).toBeTruthy();
46
+ });
@@ -395,3 +395,14 @@ export const isVegaTableColumnGroupingModelType = (input) => {
395
395
  export const isCalendarDateType = (input) => {
396
396
  return input instanceof CalendarDate;
397
397
  };
398
+ /**
399
+ * Type guard to check if the provided instance implements the VegaEATriggerStrategy interface
400
+ *
401
+ * @param {unknown} instance - The instance to check.
402
+ * @returns {instance is VegaEATriggerStrategy} True if the instance implements VegaEATriggerStrategy.
403
+ */
404
+ export const isEATriggerStrategy = (instance) => {
405
+ return (!!instance &&
406
+ typeof instance.evaluate === 'function' &&
407
+ typeof instance.canEvaluate === 'function');
408
+ };