@globalpayments/vega 2.20.1 → 2.22.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 (327) hide show
  1. package/dist/cjs/{app-globals-f7f3c776.js → app-globals-a89a3aae.js} +4 -4
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-18814356.js → child-nodes-event-prevent-slimmer-5fc30c91.js} +2 -2
  3. package/dist/cjs/{component-usage-runtime-metrics-e3e92742.js → component-usage-runtime-metrics-a903ba26.js} +1 -1
  4. package/dist/cjs/{event-emit-slimmer-95dfc7c2.js → event-emit-slimmer-6abd05c3.js} +1 -1
  5. package/dist/cjs/{feature-flag-controller-dd0aaf67.js → feature-flag-controller-5f8b13f6.js} +1 -1
  6. package/dist/cjs/{form-field-controller-slimmer-db68a8da.js → form-field-controller-slimmer-1b7c9a92.js} +2 -2
  7. package/dist/cjs/{index-1299d729.js → index-09acd3c9.js} +7 -0
  8. package/dist/cjs/{index-bf98b054.js → index-fcf23682.js} +13 -0
  9. package/dist/cjs/index.cjs.js +4 -4
  10. package/dist/cjs/{internal-vega-event-manager-6ba0e3ab.js → internal-vega-event-manager-20ce2187.js} +2 -0
  11. package/dist/cjs/loader.cjs.js +7 -7
  12. package/dist/cjs/{mutation-observer-filters-95cb1596.js → mutation-observer-filters-79b60f28.js} +13 -0
  13. package/dist/cjs/{mutation-observer-slimmer-a54ddfb1.js → mutation-observer-slimmer-9cec684e.js} +1 -1
  14. package/dist/cjs/vega-accordion.cjs.entry.js +4 -4
  15. package/dist/cjs/vega-app-footer.cjs.entry.js +2 -2
  16. package/dist/cjs/vega-app-header-button.cjs.entry.js +7 -7
  17. package/dist/cjs/vega-backdrop.cjs.entry.js +2 -2
  18. package/dist/cjs/vega-banner.cjs.entry.js +6 -6
  19. package/dist/cjs/vega-bar-chart.cjs.entry.js +2 -2
  20. package/dist/cjs/vega-box.cjs.entry.js +2 -2
  21. package/dist/cjs/vega-breadcrumb.cjs.entry.js +9 -11
  22. package/dist/cjs/vega-button-circle.cjs.entry.js +7 -7
  23. package/dist/cjs/vega-button-group_2.cjs.entry.js +7 -7
  24. package/dist/cjs/vega-button-link.cjs.entry.js +8 -8
  25. package/dist/cjs/vega-button.cjs.entry.js +7 -7
  26. package/dist/cjs/vega-calendar_3.cjs.entry.js +55 -19
  27. package/dist/cjs/vega-card.cjs.entry.js +2 -2
  28. package/dist/cjs/vega-carousel.cjs.entry.js +4 -4
  29. package/dist/cjs/vega-checkbox_2.cjs.entry.js +10 -10
  30. package/dist/cjs/vega-chip.cjs.entry.js +7 -7
  31. package/dist/cjs/vega-color-picker.cjs.entry.js +7 -7
  32. package/dist/cjs/vega-combo-box.cjs.entry.js +10 -10
  33. package/dist/cjs/vega-counter-badge.cjs.entry.js +2 -2
  34. package/dist/cjs/vega-date-picker_2.cjs.entry.js +10 -10
  35. package/dist/cjs/vega-dialog_2.cjs.entry.js +7 -7
  36. package/dist/cjs/vega-divider.cjs.entry.js +2 -2
  37. package/dist/cjs/vega-dropdown_5.cjs.entry.js +8 -8
  38. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  39. package/dist/cjs/vega-field-error.cjs.entry.js +2 -2
  40. package/dist/cjs/vega-field-label.cjs.entry.js +7 -7
  41. package/dist/cjs/vega-flex.cjs.entry.js +4 -4
  42. package/dist/cjs/vega-font.cjs.entry.js +2 -2
  43. package/dist/cjs/vega-form.cjs.entry.js +10 -10
  44. package/dist/cjs/vega-grid.cjs.entry.js +2 -2
  45. package/dist/cjs/vega-hint.cjs.entry.js +2 -2
  46. package/dist/cjs/vega-icon.cjs.entry.js +2 -2
  47. package/dist/cjs/vega-image-uploader.cjs.entry.js +10 -10
  48. package/dist/cjs/vega-input-credit-card.cjs.entry.js +10 -10
  49. package/dist/cjs/vega-input-phone-number.cjs.entry.js +20 -16
  50. package/dist/cjs/vega-input-range.cjs.entry.js +10 -10
  51. package/dist/cjs/vega-input-select.cjs.entry.js +10 -10
  52. package/dist/cjs/vega-input.cjs.entry.js +26 -15
  53. package/dist/cjs/vega-item-toggle.cjs.entry.js +4 -4
  54. package/dist/cjs/vega-left-nav_5.cjs.entry.js +5 -5
  55. package/dist/cjs/vega-line-chart.cjs.entry.js +2 -2
  56. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +2 -2
  57. package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -2
  58. package/dist/cjs/vega-pagination.cjs.entry.js +7 -7
  59. package/dist/cjs/vega-pie-chart.cjs.entry.js +2 -2
  60. package/dist/cjs/vega-popover_2.cjs.entry.js +4 -4
  61. package/dist/cjs/vega-progress-tracker.cjs.entry.js +4 -4
  62. package/dist/cjs/vega-radio_2.cjs.entry.js +10 -10
  63. package/dist/cjs/vega-section-title.cjs.entry.js +2 -2
  64. package/dist/cjs/vega-segment-control.cjs.entry.js +4 -4
  65. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +807 -0
  66. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +10 -10
  67. package/dist/cjs/vega-signature-capture.cjs.entry.js +7 -7
  68. package/dist/cjs/{vega-skeleton-loader-controller-aa3e09d6.js → vega-skeleton-loader-controller-d52d9033.js} +2 -2
  69. package/dist/cjs/vega-skeleton.cjs.entry.js +2 -2
  70. package/dist/cjs/vega-slot-container.cjs.entry.js +2 -2
  71. package/dist/cjs/vega-stepper.cjs.entry.js +10 -10
  72. package/dist/cjs/vega-tab-group_2.cjs.entry.js +7 -7
  73. package/dist/cjs/vega-table_8.cjs.entry.js +98 -42
  74. package/dist/cjs/vega-text.cjs.entry.js +2 -2
  75. package/dist/cjs/vega-textarea.cjs.entry.js +10 -10
  76. package/dist/cjs/vega-time-picker_2.cjs.entry.js +10 -10
  77. package/dist/cjs/vega-toggle-switch.cjs.entry.js +4 -4
  78. package/dist/cjs/vega-tooltip_2.cjs.entry.js +2 -2
  79. package/dist/cjs/vega.cjs.js +7 -7
  80. package/dist/collection/collection-manifest.json +9 -1
  81. package/dist/collection/components/vega-breadcrumb/slimmers/controllers/vega-breadcrumb-click-controller.js +2 -4
  82. package/dist/collection/components/vega-button-link/vega-button-link.css +2 -0
  83. package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-sub-state-controller.js +15 -1
  84. package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +15 -10
  85. package/dist/collection/components/vega-calendar/vega-calendar-event/vega-calendar-event.js +3 -1
  86. package/dist/collection/components/vega-calendar/vega-calendar.js +37 -0
  87. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.js +1 -1
  88. package/dist/collection/components/vega-input/vega-input.css +4 -0
  89. package/dist/collection/components/vega-input/vega-input.js +4 -4
  90. package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +8 -5
  91. package/dist/collection/components/vega-input-phone-number/slimmers/renderers/phone-number-input-renderer.js +1 -0
  92. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +1 -1
  93. package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.css +0 -2
  94. package/dist/collection/components/vega-selection-chip/interface.js +1 -0
  95. package/dist/collection/components/vega-selection-chip/slimmers/controllers/vega-selection-chip-checked-cotroller.js +42 -0
  96. package/dist/collection/components/vega-selection-chip/slimmers/controllers/vega-selection-chip-show-error-controller.js +63 -0
  97. package/dist/collection/components/vega-selection-chip/slimmers/controllers/vega-selection-chip-state-controller.js +77 -0
  98. package/dist/collection/components/vega-selection-chip/slimmers/renderers/vega-selection-chip-renderer.js +102 -0
  99. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/interface.js +1 -0
  100. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/slimmers/controllers/vega-selection-chip-group-items-controller.js +164 -0
  101. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/slimmers/controllers/vega-selection-chip-group-value-controller.js +68 -0
  102. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/slimmers/renderers/vega-selection-chip-group-renderer.js +45 -0
  103. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.css +91 -0
  104. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.js +326 -0
  105. package/dist/collection/components/vega-selection-chip/vega-selection-chip.css +175 -0
  106. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +335 -0
  107. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-data-source-controller.js +1 -3
  108. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sort-controller.js +36 -29
  109. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sorter.js +41 -0
  110. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-header-renderer.js +5 -1
  111. package/dist/collection/components/vega-table/test/vega-table-sorter.test.js +508 -0
  112. package/dist/collection/components/vega-table/vega-table.js +27 -0
  113. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -0
  114. package/dist/collection/helpers/formatter/string-formatter/custom-formatter-strategy.js +16 -4
  115. package/dist/collection/helpers/formatter/test/string-formatter/custom-formatter-strategy.test.js +7 -2
  116. package/dist/collection/helpers/slimmers/mutation-observer/mutation-observer-filters.js +12 -0
  117. package/dist/collection/helpers/slimmers/mutation-observer/mutation-observer-slimmer.js +1 -1
  118. package/dist/collection/helpers/slimmers/mutation-observer/test/mutation-observer-slimmer.test.js +53 -1
  119. package/dist/collection/helpers/slimmers/runtime-metrics/create-public-api-runtime-metrics-slimmer.js +23 -0
  120. package/dist/collection/helpers/slimmers/runtime-metrics/public-api-runtime-metrics-slimmer-base.js +68 -0
  121. package/dist/collection/helpers/slimmers/runtime-metrics/test/public-api-runtime-metrics-slimmer-base.test.js +89 -0
  122. package/dist/collection/helpers/slimmers/test/component-usage-runtime-metrics.test.js +1 -5
  123. package/dist/collection/helpers/vega-telemetry-helper/test/vega-env-manager.test.js +1 -1
  124. package/dist/collection/helpers/vega-telemetry-helper/vega-env-manager.js +2 -2
  125. package/dist/collection/utils/e2e-utils.js +6 -2
  126. package/dist/collection/utils/test-utils.js +12 -0
  127. package/dist/collection/value-model-adapters/angular-ng-model-accessor-adapter.js +1 -0
  128. package/dist/collection/value-model-adapters/vue-component-v-model-adaptor.js +1 -0
  129. package/dist/esm/{app-globals-565328e2.js → app-globals-68551d56.js} +4 -4
  130. package/dist/esm/{child-nodes-event-prevent-slimmer-75851864.js → child-nodes-event-prevent-slimmer-00abe396.js} +2 -2
  131. package/dist/esm/{component-usage-runtime-metrics-ac372454.js → component-usage-runtime-metrics-eaffdd1e.js} +1 -1
  132. package/dist/esm/{event-emit-slimmer-929b3e70.js → event-emit-slimmer-46b254b4.js} +1 -1
  133. package/dist/esm/{feature-flag-controller-9818c025.js → feature-flag-controller-afaa4a79.js} +1 -1
  134. package/dist/esm/{form-field-controller-slimmer-b237bb58.js → form-field-controller-slimmer-19b99b7e.js} +2 -2
  135. package/dist/esm/{index-dc8f8d91.js → index-0f54aaaa.js} +13 -0
  136. package/dist/esm/{index-c3505689.js → index-187f71d1.js} +7 -0
  137. package/dist/esm/index.js +4 -4
  138. package/dist/esm/{internal-vega-event-manager-b0d04798.js → internal-vega-event-manager-ae6359d6.js} +2 -0
  139. package/dist/esm/loader.js +7 -7
  140. package/dist/esm/{mutation-observer-filters-a484f098.js → mutation-observer-filters-9086b5cc.js} +13 -1
  141. package/dist/esm/{mutation-observer-slimmer-a4dbad26.js → mutation-observer-slimmer-151b4b90.js} +1 -1
  142. package/dist/esm/vega-accordion.entry.js +4 -4
  143. package/dist/esm/vega-app-footer.entry.js +2 -2
  144. package/dist/esm/vega-app-header-button.entry.js +7 -7
  145. package/dist/esm/vega-backdrop.entry.js +2 -2
  146. package/dist/esm/vega-banner.entry.js +6 -6
  147. package/dist/esm/vega-bar-chart.entry.js +2 -2
  148. package/dist/esm/vega-box.entry.js +2 -2
  149. package/dist/esm/vega-breadcrumb.entry.js +9 -11
  150. package/dist/esm/vega-button-circle.entry.js +7 -7
  151. package/dist/esm/vega-button-group_2.entry.js +7 -7
  152. package/dist/esm/vega-button-link.entry.js +8 -8
  153. package/dist/esm/vega-button.entry.js +7 -7
  154. package/dist/esm/vega-calendar_3.entry.js +55 -19
  155. package/dist/esm/vega-card.entry.js +2 -2
  156. package/dist/esm/vega-carousel.entry.js +4 -4
  157. package/dist/esm/vega-checkbox_2.entry.js +10 -10
  158. package/dist/esm/vega-chip.entry.js +7 -7
  159. package/dist/esm/vega-color-picker.entry.js +7 -7
  160. package/dist/esm/vega-combo-box.entry.js +10 -10
  161. package/dist/esm/vega-counter-badge.entry.js +2 -2
  162. package/dist/esm/vega-date-picker_2.entry.js +10 -10
  163. package/dist/esm/vega-dialog_2.entry.js +7 -7
  164. package/dist/esm/vega-divider.entry.js +2 -2
  165. package/dist/esm/vega-dropdown_5.entry.js +8 -8
  166. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  167. package/dist/esm/vega-field-error.entry.js +2 -2
  168. package/dist/esm/vega-field-label.entry.js +7 -7
  169. package/dist/esm/vega-flex.entry.js +4 -4
  170. package/dist/esm/vega-font.entry.js +2 -2
  171. package/dist/esm/vega-form.entry.js +10 -10
  172. package/dist/esm/vega-grid.entry.js +2 -2
  173. package/dist/esm/vega-hint.entry.js +2 -2
  174. package/dist/esm/vega-icon.entry.js +2 -2
  175. package/dist/esm/vega-image-uploader.entry.js +10 -10
  176. package/dist/esm/vega-input-credit-card.entry.js +10 -10
  177. package/dist/esm/vega-input-phone-number.entry.js +20 -16
  178. package/dist/esm/vega-input-range.entry.js +10 -10
  179. package/dist/esm/vega-input-select.entry.js +10 -10
  180. package/dist/esm/vega-input.entry.js +26 -15
  181. package/dist/esm/vega-item-toggle.entry.js +4 -4
  182. package/dist/esm/vega-left-nav_5.entry.js +5 -5
  183. package/dist/esm/vega-line-chart.entry.js +2 -2
  184. package/dist/esm/vega-loader-wrapper_2.entry.js +2 -2
  185. package/dist/esm/vega-page-notification_2.entry.js +2 -2
  186. package/dist/esm/vega-pagination.entry.js +7 -7
  187. package/dist/esm/vega-pie-chart.entry.js +2 -2
  188. package/dist/esm/vega-popover_2.entry.js +4 -4
  189. package/dist/esm/vega-progress-tracker.entry.js +4 -4
  190. package/dist/esm/vega-radio_2.entry.js +10 -10
  191. package/dist/esm/vega-section-title.entry.js +2 -2
  192. package/dist/esm/vega-segment-control.entry.js +4 -4
  193. package/dist/esm/vega-selection-chip_2.entry.js +802 -0
  194. package/dist/esm/vega-selection-tile_2.entry.js +10 -10
  195. package/dist/esm/vega-signature-capture.entry.js +7 -7
  196. package/dist/esm/{vega-skeleton-loader-controller-7378a2e4.js → vega-skeleton-loader-controller-64cb8447.js} +2 -2
  197. package/dist/esm/vega-skeleton.entry.js +2 -2
  198. package/dist/esm/vega-slot-container.entry.js +2 -2
  199. package/dist/esm/vega-stepper.entry.js +10 -10
  200. package/dist/esm/vega-tab-group_2.entry.js +7 -7
  201. package/dist/esm/vega-table_8.entry.js +98 -42
  202. package/dist/esm/vega-text.entry.js +2 -2
  203. package/dist/esm/vega-textarea.entry.js +10 -10
  204. package/dist/esm/vega-time-picker_2.entry.js +10 -10
  205. package/dist/esm/vega-toggle-switch.entry.js +4 -4
  206. package/dist/esm/vega-tooltip_2.entry.js +2 -2
  207. package/dist/esm/vega.js +7 -7
  208. package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-sub-state-controller.d.ts +1 -0
  209. package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.d.ts +2 -1
  210. package/dist/types/components/vega-calendar/vega-calendar-event/vega-calendar-event.d.ts +1 -0
  211. package/dist/types/components/vega-calendar/vega-calendar.d.ts +11 -0
  212. package/dist/types/components/vega-input/types.d.ts +1 -0
  213. package/dist/types/components/vega-input/vega-input.d.ts +1 -1
  214. package/dist/types/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.d.ts +3 -2
  215. package/dist/types/components/vega-selection-chip/interface.d.ts +4 -0
  216. package/dist/types/components/vega-selection-chip/slimmers/controllers/vega-selection-chip-checked-cotroller.d.ts +23 -0
  217. package/dist/types/components/vega-selection-chip/slimmers/controllers/vega-selection-chip-show-error-controller.d.ts +31 -0
  218. package/dist/types/components/vega-selection-chip/slimmers/controllers/vega-selection-chip-state-controller.d.ts +13 -0
  219. package/dist/types/components/vega-selection-chip/slimmers/renderers/vega-selection-chip-renderer.d.ts +26 -0
  220. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/interface.d.ts +1 -0
  221. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/slimmers/controllers/vega-selection-chip-group-items-controller.d.ts +72 -0
  222. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/slimmers/controllers/vega-selection-chip-group-value-controller.d.ts +29 -0
  223. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/slimmers/renderers/vega-selection-chip-group-renderer.d.ts +15 -0
  224. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.d.ts +82 -0
  225. package/dist/types/components/vega-selection-chip/vega-selection-chip.d.ts +92 -0
  226. package/dist/types/components/vega-table/interface.d.ts +6 -0
  227. package/dist/types/components/vega-table/slimmers/controllers/vega-table-sort-controller.d.ts +4 -3
  228. package/dist/types/components/vega-table/slimmers/controllers/vega-table-sorter.d.ts +33 -0
  229. package/dist/types/components/vega-table/slimmers/renderers/vega-table-header-renderer.d.ts +1 -0
  230. package/dist/types/components/vega-table/test/vega-table-sorter.test.d.ts +1 -0
  231. package/dist/types/components/vega-table/vega-table.d.ts +9 -2
  232. package/dist/types/components.d.ts +209 -3
  233. package/dist/types/helpers/formatter/string-formatter/custom-formatter-strategy.d.ts +6 -3
  234. package/dist/types/helpers/slimmers/mutation-observer/mutation-observer-filters.d.ts +7 -0
  235. package/dist/types/helpers/slimmers/mutation-observer/mutation-observer-slimmer.d.ts +1 -1
  236. package/dist/types/helpers/slimmers/runtime-metrics/create-public-api-runtime-metrics-slimmer.d.ts +16 -0
  237. package/dist/types/helpers/slimmers/runtime-metrics/public-api-runtime-metrics-slimmer-base.d.ts +48 -0
  238. package/dist/types/helpers/slimmers/runtime-metrics/test/public-api-runtime-metrics-slimmer-base.test.d.ts +1 -0
  239. package/dist/types/types/components.type.d.ts +7 -0
  240. package/dist/types/utils/e2e-utils.d.ts +2 -0
  241. package/dist/types/utils/test-utils.d.ts +8 -0
  242. package/dist/vega/index.esm.js +1 -1
  243. package/dist/vega/{p-15604d96.entry.js → p-057cff9d.entry.js} +1 -1
  244. package/dist/vega/{p-22cffbcc.entry.js → p-05e5d161.entry.js} +1 -1
  245. package/dist/vega/p-1c298d5a.js +2 -0
  246. package/dist/vega/{p-0fdbffc4.entry.js → p-1c2dc0c1.entry.js} +1 -1
  247. package/dist/vega/{p-1496ae4a.entry.js → p-200a8fa5.entry.js} +1 -1
  248. package/dist/vega/{p-0629c827.entry.js → p-2049c795.entry.js} +1 -1
  249. package/dist/vega/{p-a6454c72.entry.js → p-20f2ba7a.entry.js} +1 -1
  250. package/dist/vega/{p-4cf6fea1.entry.js → p-22788bc0.entry.js} +1 -1
  251. package/dist/vega/{p-3a74436f.entry.js → p-2ecf49a3.entry.js} +1 -1
  252. package/dist/vega/{p-e9851b18.entry.js → p-35248678.entry.js} +1 -1
  253. package/dist/vega/p-35296720.entry.js +1 -0
  254. package/dist/vega/{p-fb7ca3e4.entry.js → p-354bb9b8.entry.js} +1 -1
  255. package/dist/vega/{p-f58e4e4a.entry.js → p-36a4ad8f.entry.js} +1 -1
  256. package/dist/vega/p-38d81bde.js +1 -0
  257. package/dist/vega/{p-a1235ae4.entry.js → p-3aa738f2.entry.js} +1 -1
  258. package/dist/vega/{p-ed0d4be8.entry.js → p-3c1d59d6.entry.js} +1 -1
  259. package/dist/vega/{p-d5c10af1.js → p-3e0299cd.js} +1 -1
  260. package/dist/vega/{p-394a4289.entry.js → p-3ed5adb1.entry.js} +1 -1
  261. package/dist/vega/{p-db129cbf.entry.js → p-3ef16d4e.entry.js} +1 -1
  262. package/dist/vega/{p-9c3ed69a.entry.js → p-46b8664a.entry.js} +1 -1
  263. package/dist/vega/{p-1d5f39a4.entry.js → p-4a704547.entry.js} +1 -1
  264. package/dist/vega/{p-4c919221.entry.js → p-4bdc66fd.entry.js} +1 -1
  265. package/dist/vega/{p-b211ca98.entry.js → p-52527dba.entry.js} +1 -1
  266. package/dist/vega/{p-20effa66.js → p-5608bf96.js} +1 -1
  267. package/dist/vega/{p-bc37ab37.entry.js → p-58a58cf3.entry.js} +1 -1
  268. package/dist/vega/{p-2113e8a0.entry.js → p-5b0811c0.entry.js} +1 -1
  269. package/dist/vega/{p-d7b21179.entry.js → p-5ee189ba.entry.js} +1 -1
  270. package/dist/vega/p-5f377954.js +1 -1
  271. package/dist/vega/{p-21688c09.entry.js → p-61226f5d.entry.js} +1 -1
  272. package/dist/vega/{p-a8f406e3.entry.js → p-62c1e269.entry.js} +1 -1
  273. package/dist/vega/{p-9fc2882a.js → p-6574c0e8.js} +1 -1
  274. package/dist/vega/{p-cbb1c0a7.entry.js → p-680be8f6.entry.js} +1 -1
  275. package/dist/vega/{p-a32d7542.entry.js → p-6b365ba6.entry.js} +1 -1
  276. package/dist/vega/{p-8ddbf84b.entry.js → p-6bd76976.entry.js} +1 -1
  277. package/dist/vega/{p-c1e103da.entry.js → p-6e8cf962.entry.js} +1 -1
  278. package/dist/vega/{p-cee7b0e6.entry.js → p-702910ff.entry.js} +1 -1
  279. package/dist/vega/{p-3856bf46.entry.js → p-71cfc8da.entry.js} +1 -1
  280. package/dist/vega/p-731bd18d.entry.js +1 -0
  281. package/dist/vega/{p-0a157187.entry.js → p-76acd56a.entry.js} +1 -1
  282. package/dist/vega/{p-13893eed.entry.js → p-76f7907b.entry.js} +1 -1
  283. package/dist/vega/{p-68ead15a.entry.js → p-7b867084.entry.js} +1 -1
  284. package/dist/vega/{p-6d7fa33c.entry.js → p-80804da8.entry.js} +1 -1
  285. package/dist/vega/{p-6aab349d.entry.js → p-82f9b832.entry.js} +1 -1
  286. package/dist/vega/{p-10456650.entry.js → p-84a7e59f.entry.js} +1 -1
  287. package/dist/vega/{p-33f260f6.entry.js → p-88d63e07.entry.js} +1 -1
  288. package/dist/vega/{p-bb63021c.entry.js → p-8be8e237.entry.js} +1 -1
  289. package/dist/vega/{p-507d3a25.js → p-8cdbfbc1.js} +1 -1
  290. package/dist/vega/p-91c9f45d.entry.js +1 -0
  291. package/dist/vega/{p-4dc711c1.js → p-96de336a.js} +1 -1
  292. package/dist/vega/{p-b8e45e21.entry.js → p-97b69994.entry.js} +1 -1
  293. package/dist/vega/{p-19aa73b5.entry.js → p-9bda5809.entry.js} +1 -1
  294. package/dist/vega/{p-e48c71be.entry.js → p-9e744f92.entry.js} +1 -1
  295. package/dist/vega/{p-faf4cfd8.entry.js → p-a32643e3.entry.js} +1 -1
  296. package/dist/vega/{p-a8b216c0.entry.js → p-a3b57e9e.entry.js} +1 -1
  297. package/dist/vega/{p-c506420f.entry.js → p-aad984b2.entry.js} +1 -1
  298. package/dist/vega/{p-59011d75.entry.js → p-ae431236.entry.js} +1 -1
  299. package/dist/vega/p-af5d5b0f.entry.js +1 -0
  300. package/dist/vega/{p-8f13530c.entry.js → p-afd75854.entry.js} +1 -1
  301. package/dist/vega/{p-7b2315b5.entry.js → p-b9a121d3.entry.js} +1 -1
  302. package/dist/vega/p-be15ec5b.entry.js +1 -0
  303. package/dist/vega/{p-55255602.entry.js → p-c227e167.entry.js} +1 -1
  304. package/dist/vega/{p-639fa6c7.js → p-c677778e.js} +1 -1
  305. package/dist/vega/{p-9d58efb1.entry.js → p-c8b25f79.entry.js} +1 -1
  306. package/dist/vega/{p-788aea0f.entry.js → p-c95ea3b3.entry.js} +1 -1
  307. package/dist/vega/{p-6cc1716b.entry.js → p-c9880e7e.entry.js} +1 -1
  308. package/dist/vega/{p-12e34614.entry.js → p-ccd05ec5.entry.js} +1 -1
  309. package/dist/vega/{p-af4e1120.entry.js → p-d2f63287.entry.js} +1 -1
  310. package/dist/vega/{p-b32611f0.js → p-d5d136a5.js} +1 -1
  311. package/dist/vega/{p-d5e0c79c.entry.js → p-dc264664.entry.js} +1 -1
  312. package/dist/vega/{p-ca905ecc.entry.js → p-e0781825.entry.js} +1 -1
  313. package/dist/vega/{p-1e7118b1.entry.js → p-e39f9907.entry.js} +1 -1
  314. package/dist/vega/{p-fbd75ce7.entry.js → p-e3a70db2.entry.js} +1 -1
  315. package/dist/vega/{p-c4542d96.js → p-e90bae84.js} +1 -1
  316. package/dist/vega/p-ef0c67c2.js +1 -0
  317. package/dist/vega/{p-c0842b6c.entry.js → p-ef26140a.entry.js} +1 -1
  318. package/dist/vega/{p-fd58f10a.js → p-fcd74048.js} +1 -1
  319. package/dist/vega/vega.esm.js +1 -1
  320. package/package.json +2 -2
  321. package/dist/vega/p-3f20d9f0.js +0 -1
  322. package/dist/vega/p-8be4196f.entry.js +0 -1
  323. package/dist/vega/p-9777b1c1.js +0 -2
  324. package/dist/vega/p-a1557df0.entry.js +0 -1
  325. package/dist/vega/p-c216dfc3.js +0 -1
  326. package/dist/vega/p-cfdf4a95.entry.js +0 -1
  327. package/dist/vega/p-e7da829b.entry.js +0 -1
@@ -0,0 +1,508 @@
1
+ import { VegaTableSortController } from '../slimmers/controllers/vega-table-sort-controller';
2
+ import { VegaTableSorter } from '../slimmers/controllers/vega-table-sorter';
3
+ describe('VegaTableSorter', () => {
4
+ const sortController = new VegaTableSortController();
5
+ function sortData(data, sorters) {
6
+ const updatedSorters = sorters.map((s) => {
7
+ return new VegaTableSorter(s.prop, s.order, s.sorter);
8
+ });
9
+ return sortController.sortData([...data], updatedSorters);
10
+ }
11
+ describe('should handle single sorting as expected', () => {
12
+ it('should sort by amount in desc', () => {
13
+ const data = [
14
+ {
15
+ amount: 100,
16
+ balance: 100,
17
+ date: '01/01/2022',
18
+ key: '1',
19
+ name: 'A',
20
+ status: 'In Progress',
21
+ },
22
+ {
23
+ amount: 300,
24
+ balance: 200,
25
+ date: '01/02/2022',
26
+ key: '2',
27
+ name: 'D',
28
+ status: 'In Progress',
29
+ },
30
+ {
31
+ amount: 400,
32
+ balance: 300,
33
+ date: '01/03/2022',
34
+ key: '3',
35
+ name: 'B',
36
+ status: 'Not Started',
37
+ },
38
+ {
39
+ amount: 200,
40
+ balance: 400,
41
+ date: '01/04/2022',
42
+ key: '4',
43
+ name: 'C',
44
+ status: 'Pending',
45
+ },
46
+ ];
47
+ const sorters = [
48
+ {
49
+ prop: 'amount',
50
+ order: 'desc',
51
+ sorter: (a, b) => {
52
+ return a['amount'] - b['amount'];
53
+ },
54
+ },
55
+ ];
56
+ expect(sortData(data, sorters)).toEqual([
57
+ {
58
+ amount: 400,
59
+ balance: 300,
60
+ date: '01/03/2022',
61
+ key: '3',
62
+ name: 'B',
63
+ status: 'Not Started',
64
+ },
65
+ {
66
+ amount: 300,
67
+ balance: 200,
68
+ date: '01/02/2022',
69
+ key: '2',
70
+ name: 'D',
71
+ status: 'In Progress',
72
+ },
73
+ {
74
+ amount: 200,
75
+ balance: 400,
76
+ date: '01/04/2022',
77
+ key: '4',
78
+ name: 'C',
79
+ status: 'Pending',
80
+ },
81
+ {
82
+ amount: 100,
83
+ balance: 100,
84
+ date: '01/01/2022',
85
+ key: '1',
86
+ name: 'A',
87
+ status: 'In Progress',
88
+ },
89
+ ]);
90
+ });
91
+ it('should sort by balance in desc', () => {
92
+ const data = [
93
+ {
94
+ amount: 100,
95
+ balance: 100,
96
+ date: '01/01/2022',
97
+ key: '1',
98
+ name: 'A',
99
+ status: 'In Progress',
100
+ },
101
+ {
102
+ amount: 300,
103
+ balance: 200,
104
+ date: '01/02/2022',
105
+ key: '2',
106
+ name: 'D',
107
+ status: 'In Progress',
108
+ },
109
+ {
110
+ amount: 400,
111
+ balance: 300,
112
+ date: '01/03/2022',
113
+ key: '3',
114
+ name: 'B',
115
+ status: 'Not Started',
116
+ },
117
+ {
118
+ amount: 200,
119
+ balance: 400,
120
+ date: '01/04/2022',
121
+ key: '4',
122
+ name: 'C',
123
+ status: 'Pending',
124
+ },
125
+ ];
126
+ const sorters = [
127
+ {
128
+ prop: 'balance',
129
+ order: 'desc',
130
+ sorter: (a, b) => {
131
+ return a['balance'] - b['balance'];
132
+ },
133
+ },
134
+ ];
135
+ expect(sortData(data, sorters)).toEqual([
136
+ {
137
+ amount: 200,
138
+ balance: 400,
139
+ date: '01/04/2022',
140
+ key: '4',
141
+ name: 'C',
142
+ status: 'Pending',
143
+ },
144
+ {
145
+ amount: 400,
146
+ balance: 300,
147
+ date: '01/03/2022',
148
+ key: '3',
149
+ name: 'B',
150
+ status: 'Not Started',
151
+ },
152
+ {
153
+ amount: 300,
154
+ balance: 200,
155
+ date: '01/02/2022',
156
+ key: '2',
157
+ name: 'D',
158
+ status: 'In Progress',
159
+ },
160
+ {
161
+ amount: 100,
162
+ balance: 100,
163
+ date: '01/01/2022',
164
+ key: '1',
165
+ name: 'A',
166
+ status: 'In Progress',
167
+ },
168
+ ]);
169
+ });
170
+ });
171
+ describe('should handle multi-sorting sorting as expected', () => {
172
+ it('should sort by age, then by score and where age is the same, sort by score', () => {
173
+ const data = [
174
+ { age: 25, score: 90 },
175
+ { age: 20, score: 85 },
176
+ { age: 25, score: 95 },
177
+ { age: 30, score: 85 },
178
+ { age: 20, score: 80 },
179
+ { age: 20, score: 100 },
180
+ { age: 25, score: 85 },
181
+ { age: 25, score: 85 },
182
+ { age: 30, score: 90 },
183
+ { age: 30, score: 90 },
184
+ { age: 30, score: 85 },
185
+ ];
186
+ const sorters = [
187
+ {
188
+ prop: 'age',
189
+ order: 'asc',
190
+ sorter: (a, b) => {
191
+ return a['age'] - b['age'];
192
+ },
193
+ },
194
+ {
195
+ prop: 'score',
196
+ order: 'asc',
197
+ sorter: (a, b) => {
198
+ return a['score'] - b['score'];
199
+ },
200
+ },
201
+ ];
202
+ expect(sortData(data, sorters)).toEqual([
203
+ { age: 20, score: 80 },
204
+ { age: 20, score: 85 },
205
+ { age: 20, score: 100 },
206
+ { age: 25, score: 85 },
207
+ { age: 25, score: 85 },
208
+ { age: 25, score: 90 },
209
+ { age: 25, score: 95 },
210
+ { age: 30, score: 85 },
211
+ { age: 30, score: 85 },
212
+ { age: 30, score: 90 },
213
+ { age: 30, score: 90 },
214
+ ]);
215
+ });
216
+ it('should sort by name, age and where name is the same, sort by age', () => {
217
+ const data = [
218
+ { name: 'Alice', age: 25, score: 88 },
219
+ { name: 'Bob', age: 22, score: 95 },
220
+ { name: 'Charlie', age: 25, score: 82 },
221
+ { name: 'Alice', age: 28, score: 78 },
222
+ { name: 'Bob', age: 22, score: 90 },
223
+ ];
224
+ const sorters = [
225
+ {
226
+ prop: 'name',
227
+ order: 'asc',
228
+ sorter: (a, b) => {
229
+ return a.name.localeCompare(b.name);
230
+ },
231
+ },
232
+ {
233
+ prop: 'age',
234
+ order: 'asc',
235
+ sorter: (a, b) => {
236
+ return a['age'] - b['age'];
237
+ },
238
+ },
239
+ ];
240
+ expect(sortData(data, sorters)).toEqual([
241
+ { name: 'Alice', age: 25, score: 88 },
242
+ { name: 'Alice', age: 28, score: 78 },
243
+ { name: 'Bob', age: 22, score: 95 },
244
+ { name: 'Bob', age: 22, score: 90 },
245
+ { name: 'Charlie', age: 25, score: 82 },
246
+ ]);
247
+ });
248
+ it('should sort by age, score and where age is the same, sort by score', () => {
249
+ const data = [
250
+ { age: 25, score: 88 },
251
+ { age: 22, score: 95 },
252
+ { age: 25, score: 82 },
253
+ { age: 28, score: 78 },
254
+ { age: 22, score: 90 },
255
+ ];
256
+ const sorters = [
257
+ {
258
+ prop: 'age',
259
+ order: 'asc',
260
+ sorter: (a, b) => {
261
+ return a['age'] - b['age'];
262
+ },
263
+ },
264
+ {
265
+ prop: 'score',
266
+ order: 'asc',
267
+ sorter: (a, b) => {
268
+ return a['score'] - b['score'];
269
+ },
270
+ },
271
+ ];
272
+ expect(sortData(data, sorters)).toEqual([
273
+ { age: 22, score: 90 },
274
+ { age: 22, score: 95 },
275
+ { age: 25, score: 82 },
276
+ { age: 25, score: 88 },
277
+ { age: 28, score: 78 },
278
+ ]);
279
+ });
280
+ it('should sort by name, age, score and where name is the same, sort by age, and where age is the same, sort by score', () => {
281
+ const data = [
282
+ { name: 'Alice', age: 25, score: 88 },
283
+ { name: 'Bob', age: 22, score: 95 },
284
+ { name: 'Charlie', age: 25, score: 82 },
285
+ { name: 'Alice', age: 28, score: 78 },
286
+ { name: 'Bob', age: 22, score: 90 },
287
+ ];
288
+ const sorters = [
289
+ {
290
+ prop: 'name',
291
+ order: 'asc',
292
+ sorter: (a, b) => {
293
+ return a.name.localeCompare(b.name);
294
+ },
295
+ },
296
+ {
297
+ prop: 'age',
298
+ order: 'asc',
299
+ sorter: (a, b) => {
300
+ return a['age'] - b['age'];
301
+ },
302
+ },
303
+ {
304
+ prop: 'score',
305
+ order: 'asc',
306
+ sorter: (a, b) => {
307
+ return a['score'] - b['score'];
308
+ },
309
+ },
310
+ ];
311
+ expect(sortData(data, sorters)).toEqual([
312
+ { name: 'Alice', age: 25, score: 88 },
313
+ { name: 'Alice', age: 28, score: 78 },
314
+ { name: 'Bob', age: 22, score: 90 },
315
+ { name: 'Bob', age: 22, score: 95 },
316
+ { name: 'Charlie', age: 25, score: 82 },
317
+ ]);
318
+ });
319
+ it('should primarily sort by amount in desc order and if no tie in amount, secondary sorting of balance should not change sorted amount in desc', () => {
320
+ const data = [
321
+ {
322
+ amount: 100,
323
+ balance: 100,
324
+ date: '01/01/2022',
325
+ key: '1',
326
+ name: 'A',
327
+ status: 'In Progress',
328
+ },
329
+ {
330
+ amount: 300,
331
+ balance: 200,
332
+ date: '01/02/2022',
333
+ key: '2',
334
+ name: 'D',
335
+ status: 'In Progress',
336
+ },
337
+ {
338
+ amount: 400,
339
+ balance: 300,
340
+ date: '01/03/2022',
341
+ key: '3',
342
+ name: 'B',
343
+ status: 'Not Started',
344
+ },
345
+ {
346
+ amount: 200,
347
+ balance: 400,
348
+ date: '01/04/2022',
349
+ key: '4',
350
+ name: 'C',
351
+ status: 'Pending',
352
+ },
353
+ ];
354
+ const sorters = [
355
+ {
356
+ prop: 'amount',
357
+ order: 'desc',
358
+ sorter: (a, b) => {
359
+ return a['amount'] - b['amount'];
360
+ },
361
+ },
362
+ {
363
+ prop: 'balance',
364
+ order: 'desc',
365
+ sorter: (a, b) => {
366
+ return a['balance'] - b['balance'];
367
+ },
368
+ },
369
+ ];
370
+ expect(sortData(data, sorters)).toEqual([
371
+ {
372
+ amount: 400,
373
+ balance: 300,
374
+ date: '01/03/2022',
375
+ key: '3',
376
+ name: 'B',
377
+ status: 'Not Started',
378
+ },
379
+ {
380
+ amount: 300,
381
+ balance: 200,
382
+ date: '01/02/2022',
383
+ key: '2',
384
+ name: 'D',
385
+ status: 'In Progress',
386
+ },
387
+ {
388
+ amount: 200,
389
+ balance: 400,
390
+ date: '01/04/2022',
391
+ key: '4',
392
+ name: 'C',
393
+ status: 'Pending',
394
+ },
395
+ {
396
+ amount: 100,
397
+ balance: 100,
398
+ date: '01/01/2022',
399
+ key: '1',
400
+ name: 'A',
401
+ status: 'In Progress',
402
+ },
403
+ ]);
404
+ });
405
+ it('should sort by name A-Z then by amount from largest to smallest', () => {
406
+ const data = [
407
+ {
408
+ key: '1',
409
+ date: '01/03/2022',
410
+ name: 'C',
411
+ amount: 30,
412
+ amount2: 30,
413
+ balance: '$300',
414
+ },
415
+ {
416
+ key: '2',
417
+ date: '01/06/2022',
418
+ name: 'C',
419
+ amount: 20,
420
+ amount2: 20,
421
+ balance: '$400',
422
+ },
423
+ {
424
+ key: '3',
425
+ date: '01/05/2022',
426
+ name: 'C',
427
+ amount: 20,
428
+ amount2: 30,
429
+ balance: '$401',
430
+ },
431
+ {
432
+ key: '4',
433
+ date: '01/02/2022',
434
+ name: 'B',
435
+ amount: 20,
436
+ amount2: 125,
437
+ balance: '$200',
438
+ },
439
+ {
440
+ key: '5',
441
+ date: '01/04/2022',
442
+ name: 'D',
443
+ amount: 300,
444
+ amount2: 130,
445
+ balance: '$402',
446
+ },
447
+ ];
448
+ const sorters = [
449
+ {
450
+ prop: 'name',
451
+ order: 'asc',
452
+ sorter: (a, b) => {
453
+ return a.name.localeCompare(b.name);
454
+ },
455
+ },
456
+ {
457
+ prop: 'amount',
458
+ order: 'desc',
459
+ sorter: (a, b) => {
460
+ return a['amount'] - b['amount'];
461
+ },
462
+ },
463
+ ];
464
+ expect(sortData(data, sorters)).toEqual([
465
+ {
466
+ key: '4',
467
+ date: '01/02/2022',
468
+ name: 'B',
469
+ amount: 20,
470
+ amount2: 125,
471
+ balance: '$200',
472
+ },
473
+ {
474
+ key: '1',
475
+ date: '01/03/2022',
476
+ name: 'C',
477
+ amount: 30,
478
+ amount2: 30,
479
+ balance: '$300',
480
+ },
481
+ {
482
+ key: '2',
483
+ date: '01/06/2022',
484
+ name: 'C',
485
+ amount: 20,
486
+ amount2: 20,
487
+ balance: '$400',
488
+ },
489
+ {
490
+ key: '3',
491
+ date: '01/05/2022',
492
+ name: 'C',
493
+ amount: 20,
494
+ amount2: 30,
495
+ balance: '$401',
496
+ },
497
+ {
498
+ key: '5',
499
+ date: '01/04/2022',
500
+ name: 'D',
501
+ amount: 300,
502
+ amount2: 130,
503
+ balance: '$402',
504
+ },
505
+ ]);
506
+ });
507
+ });
508
+ });
@@ -168,6 +168,12 @@ export class VegaTable {
168
168
  * Defines a unique key for each row in the table.
169
169
  */
170
170
  this.rowKey = 'key';
171
+ /**
172
+ * Defines the column sorting options
173
+ * Has optional property type: single | multiple
174
+ * If not specified, it defaults to multiple column sorting
175
+ */
176
+ this.sortConfig = { type: 'multiple' };
171
177
  }
172
178
  watchSelectedRowKeySet() {
173
179
  methodPlaceholder();
@@ -701,6 +707,27 @@ export class VegaTable {
701
707
  "tags": [],
702
708
  "text": "Customizes the behavior and appearance of the\n scrollable container that wraps the table."
703
709
  }
710
+ },
711
+ "sortConfig": {
712
+ "type": "unknown",
713
+ "mutable": false,
714
+ "complexType": {
715
+ "original": "VegaTableSortConfig",
716
+ "resolved": "{ type: \"single\" | \"multiple\"; }",
717
+ "references": {
718
+ "VegaTableSortConfig": {
719
+ "location": "import",
720
+ "path": "./interface"
721
+ }
722
+ }
723
+ },
724
+ "required": false,
725
+ "optional": true,
726
+ "docs": {
727
+ "tags": [],
728
+ "text": "Defines the column sorting options\nHas optional property type: single | multiple\nIf not specified, it defaults to multiple column sorting"
729
+ },
730
+ "defaultValue": "{ type: 'multiple' }"
704
731
  }
705
732
  }; }
706
733
  static get states() { return {
@@ -41,6 +41,8 @@ const entries = [
41
41
  ['vega-radio', [VegaChange, VegaFocus, VegaBlur]],
42
42
  ['vega-radio-group', [VegaChange]],
43
43
  ['vega-segment-control', [VegaChange]],
44
+ ['vega-selection-chip', [VegaChange]],
45
+ ['vega-selection-chip-group', [VegaChange]],
44
46
  ['vega-selection-tile', [VegaChange]],
45
47
  ['vega-selection-tile-group', [VegaChange]],
46
48
  ['vega-signature-capture', [VegaChange]],
@@ -1,3 +1,4 @@
1
+ import { isNonNullable } from '../../../types/type-guard';
1
2
  /**
2
3
  * Used to format a string using a custom formatter.
3
4
  */
@@ -10,9 +11,12 @@ export class CustomFormatterStrategy {
10
11
  * string formatter class that you are passing to the constructor of the class. This custom string
11
12
  * formatter class likely contains methods or properties related to formatting strings in a specific
12
13
  * way according to your requirements.
14
+ * @param {boolean} resetCaretPosition - The caret position should update to the last or keep the current position after format
13
15
  */
14
- constructor(formatter) {
16
+ constructor(formatter, resetCaretPosition = false) {
17
+ this.resetCaretPositionFlag = false;
15
18
  this.formatter = formatter;
19
+ this.resetCaretPositionFlag = resetCaretPosition;
16
20
  }
17
21
  /**
18
22
  * The format function in TypeScript takes a string input and returns the formatted output using a
@@ -31,16 +35,24 @@ export class CustomFormatterStrategy {
31
35
  *
32
36
  * @param {string} input - The `input` parameter in the `calculateCaretPosition` function is a string
33
37
  * that represents the text input where you want to calculate the caret position.
38
+ * @param {number} caretPosition - The current position of caret
34
39
  * @returns {Nullable<number>} The `calculateCaretPosition` function is returning the length of the formatted input
35
40
  * string.
36
41
  */
37
- calculateCaretPosition(input) {
38
- return this.format(input).length;
42
+ calculateCaretPosition(input, caretPosition) {
43
+ if (this.resetCaretPositionFlag === true) {
44
+ return this.format(input).length;
45
+ }
46
+ else if (isNonNullable(caretPosition)) {
47
+ const startValue = input.substring(0, caretPosition);
48
+ const maskedStartValue = this.format(startValue);
49
+ return caretPosition + (maskedStartValue.length - startValue.length);
50
+ }
39
51
  }
40
52
  /**
41
53
  * Trigger the formatter at init
42
54
  *
43
- * @returns {boolean} true
55
+ * @returns {boolean} true or false
44
56
  */
45
57
  shouldTriggerAtInit() {
46
58
  return true;
@@ -1,7 +1,12 @@
1
1
  import { CustomFormatterStrategy } from '../../string-formatter/custom-formatter-strategy';
2
2
  test('custom formatter strategy is working as expected', () => {
3
- const customFormatterStrategy = new CustomFormatterStrategy((value) => value.toUpperCase());
3
+ const customFormatterStrategy = new CustomFormatterStrategy((value) => value.toUpperCase(), true);
4
4
  expect(customFormatterStrategy.format('test')).toBe('TEST');
5
- expect(customFormatterStrategy.calculateCaretPosition('test')).toBe(4);
5
+ expect(customFormatterStrategy.calculateCaretPosition('test', null)).toBe(4);
6
6
  expect(customFormatterStrategy.shouldTriggerAtInit()).toBe(true);
7
7
  });
8
+ test('custom formatter strategy method calculateCaretPosition is working as expected', () => {
9
+ const customFormatterStrategy = new CustomFormatterStrategy((value) => value.toUpperCase());
10
+ expect(customFormatterStrategy.calculateCaretPosition('test', null)).toBe(undefined);
11
+ expect(customFormatterStrategy.calculateCaretPosition('test', 3)).toBe(3);
12
+ });
@@ -37,3 +37,15 @@ export const AttributeOldValueMutationFilter = () => {
37
37
  return (mutations.find((mutation) => mutation.attributeName && mutation.oldValue !== host.getAttribute(mutation.attributeName)) !== undefined);
38
38
  };
39
39
  };
40
+ /**
41
+ * Filters mutations based on specified tag names or attribute changes.
42
+ *
43
+ * @param {string[]} tagNames - The tagName of need listened child.
44
+ * @returns {Function} - Filter function.
45
+ */
46
+ export const TagNameAndAttributeMutationFilter = (...tagNames) => {
47
+ return (mutations) => {
48
+ return (TagNameMutationFilter(...tagNames)(mutations) ||
49
+ mutations.find((mutation) => mutation.attributeName && tagNames.includes(mutation.target.tagName)) !== undefined);
50
+ };
51
+ };
@@ -51,7 +51,7 @@ export class MutationObserverSlimmer extends VegaSlimmer {
51
51
  this.mutationObserver = new MutationObserver(async (mutations) => {
52
52
  if (!this.observerEntry.mutationFilter ||
53
53
  this.observerEntry.mutationFilter(mutations, this.host)) {
54
- this.observerEntry.callback();
54
+ this.observerEntry.callback(mutations);
55
55
  }
56
56
  });
57
57
  }