@globalpayments/vega 2.47.1 → 2.49.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 (381) hide show
  1. package/dist/cjs/{app-globals-fdf98585.js → app-globals-e17dedba.js} +3 -3
  2. package/dist/cjs/{content-state-b1ec39e3.js → content-state-6a48bcb5.js} +240 -5
  3. package/dist/cjs/{design-token-0c22ffa8.js → design-token-6e2c52f1.js} +1 -1
  4. package/dist/cjs/{element-appender-slimmer-b3109dd1.js → element-appender-slimmer-9fb99abd.js} +2 -2
  5. package/dist/cjs/{form-field-controller-slimmer-2432e295.js → form-field-controller-slimmer-527c25a0.js} +2 -2
  6. package/dist/cjs/{image-annotation-action-becd6f24.js → image-annotation-action-9c2b9c8e.js} +1 -1
  7. package/dist/cjs/{index-ec9a1f36.js → index-c4dec3aa.js} +1 -1
  8. package/dist/cjs/index.cjs.js +6 -6
  9. package/dist/cjs/{inject-keyboard-manager-d1eac696.js → inject-keyboard-manager-b301e887.js} +1 -1
  10. package/dist/cjs/{keyboard-manager-97d0ddfa.js → keyboard-manager-2ccf4b16.js} +25 -5
  11. package/dist/cjs/{keyboard-manager-slimmer-23ce5dcf.js → keyboard-manager-slimmer-900cf2f5.js} +1 -1
  12. package/dist/cjs/loader.cjs.js +5 -5
  13. package/dist/cjs/{min-number-rule-5bcccc8f.js → min-number-rule-965fc43d.js} +2 -2
  14. package/dist/cjs/{public-rules-3c2a69b4.js → public-rules-10ec636d.js} +3 -3
  15. package/dist/cjs/{responsive-format-facade-e48962dd.js → responsive-format-facade-9be0a851.js} +1 -1
  16. package/dist/cjs/{rich-text-editor-required-rule-f08f5891.js → rich-text-editor-required-rule-5faded94.js} +1 -1
  17. package/dist/cjs/{string-input-formatter-slimmer-56a2401f.js → string-input-formatter-slimmer-50322824.js} +2 -2
  18. package/dist/cjs/{style-formatter-48ef74d4.js → style-formatter-5b95a2a6.js} +1 -1
  19. package/dist/cjs/{sub-state-notify-slimmer-b16c9094.js → sub-state-notify-slimmer-7f437b19.js} +1 -1
  20. package/dist/cjs/{sub-state-observer-slimmer-1b6de09f.js → sub-state-observer-slimmer-e90362cd.js} +1 -1
  21. package/dist/cjs/vega-accordion.cjs.entry.js +4 -4
  22. package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
  23. package/dist/cjs/vega-box.cjs.entry.js +5 -5
  24. package/dist/cjs/vega-button-circle.cjs.entry.js +4 -4
  25. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  26. package/dist/cjs/vega-button.cjs.entry.js +3 -3
  27. package/dist/cjs/vega-calendar_3.cjs.entry.js +3 -3
  28. package/dist/cjs/vega-card.cjs.entry.js +4 -4
  29. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  30. package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
  31. package/dist/cjs/vega-chip.cjs.entry.js +4 -4
  32. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
  33. package/dist/cjs/vega-combo-box.cjs.entry.js +5 -5
  34. package/dist/cjs/vega-date-picker_2.cjs.entry.js +10 -10
  35. package/dist/cjs/vega-dialog_2.cjs.entry.js +4 -4
  36. package/dist/cjs/vega-divider.cjs.entry.js +4 -4
  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-file-uploader.cjs.entry.js +3 -3
  40. package/dist/cjs/vega-flag-icon.cjs.entry.js +4 -4
  41. package/dist/cjs/vega-flex.cjs.entry.js +5 -5
  42. package/dist/cjs/vega-font.cjs.entry.js +4 -4
  43. package/dist/cjs/vega-form.cjs.entry.js +4 -4
  44. package/dist/cjs/vega-grid.cjs.entry.js +4 -4
  45. package/dist/cjs/vega-icon.cjs.entry.js +4 -4
  46. package/dist/cjs/vega-image-uploader.cjs.entry.js +16 -7
  47. package/dist/cjs/vega-input-credit-card.cjs.entry.js +3 -3
  48. package/dist/cjs/vega-input-numeric.cjs.entry.js +11 -8
  49. package/dist/cjs/vega-input-phone-number.cjs.entry.js +3 -3
  50. package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
  51. package/dist/cjs/vega-input-select.cjs.entry.js +5 -5
  52. package/dist/cjs/vega-input.cjs.entry.js +8 -8
  53. package/dist/cjs/{vega-internal-event-id-dc866d43.js → vega-internal-event-id-bfea9b93.js} +4 -0
  54. package/dist/cjs/vega-left-nav_5.cjs.entry.js +447 -194
  55. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  56. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +1 -1
  57. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
  58. package/dist/cjs/vega-pagination.cjs.entry.js +3 -3
  59. package/dist/cjs/vega-popover_2.cjs.entry.js +11 -11
  60. package/dist/cjs/vega-radio_2.cjs.entry.js +8 -5
  61. package/dist/cjs/vega-rich-text-content.cjs.entry.js +19 -13
  62. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +480 -196
  63. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +6 -6
  64. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
  65. package/dist/cjs/vega-sidenav_3.cjs.entry.js +5 -5
  66. package/dist/cjs/vega-signature-capture.cjs.entry.js +6 -6
  67. package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
  68. package/dist/cjs/vega-tab-group_2.cjs.entry.js +55 -19
  69. package/dist/cjs/vega-table_8.cjs.entry.js +5 -5
  70. package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
  71. package/dist/cjs/vega-time-picker_2.cjs.entry.js +8 -8
  72. package/dist/cjs/vega-toggle-switch.cjs.entry.js +10 -4
  73. package/dist/cjs/vega-tooltip_2.cjs.entry.js +11 -11
  74. package/dist/cjs/vega.cjs.js +5 -5
  75. package/dist/collection/collection-manifest.json +1 -1
  76. package/dist/collection/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-actions-renderer.js +4 -1
  77. package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +11 -1
  78. package/dist/collection/components/vega-input/vega-input.js +4 -4
  79. package/dist/collection/components/vega-nav/slimmers/vega-left-nav-group-hierarchy-controller.js +31 -0
  80. package/dist/collection/components/vega-nav/vega-left-nav/test/vega-left-nav-mock-data.js +147 -0
  81. package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +42 -8
  82. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-initialize-selected-controller.js +56 -0
  83. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-link-click-controller.js +70 -0
  84. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-open-state-controller.js +47 -0
  85. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-other-groups-click-controller.js +60 -0
  86. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/renderers/vega-left-nav-group-renderer.js +10 -9
  87. package/dist/collection/components/vega-nav/vega-left-nav-group/vega-left-nav-group.js +21 -6
  88. package/dist/collection/components/vega-nav/vega-left-nav-link/slimmers/controllers/vega-left-nav-link-controller.js +21 -0
  89. package/dist/collection/components/vega-nav/vega-left-nav-link/slimmers/renderers/vega-left-nav-link-renderer.js +13 -1
  90. package/dist/collection/components/vega-nav/vega-left-nav-link/vega-left-nav-link.js +5 -0
  91. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.css +3 -0
  92. package/dist/collection/components/vega-rich-text-editor/dto/annotations/bold-annotation.js +6 -0
  93. package/dist/collection/components/vega-rich-text-editor/dto/annotations/code-annotation.js +6 -0
  94. package/dist/collection/components/vega-rich-text-editor/dto/annotations/horizontal-alignment-annotation.js +6 -0
  95. package/dist/collection/components/vega-rich-text-editor/dto/annotations/image-annotation.js +6 -0
  96. package/dist/collection/components/vega-rich-text-editor/dto/annotations/indent-annotation.js +6 -0
  97. package/dist/collection/components/vega-rich-text-editor/dto/annotations/italic-annotation.js +6 -0
  98. package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-annotation.js +6 -0
  99. package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-group-annotation.js +7 -0
  100. package/dist/collection/components/vega-rich-text-editor/dto/annotations/selection-range-annotation.js +8 -0
  101. package/dist/collection/components/vega-rich-text-editor/dto/annotations/strikethrough-annotation.js +6 -0
  102. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-color-annotation.js +6 -0
  103. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-annotation.js +15 -0
  104. package/dist/collection/components/vega-rich-text-editor/dto/annotations/underline-annotation.js +6 -0
  105. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +8 -0
  106. package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +14 -0
  107. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +14 -0
  108. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +20 -0
  109. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +25 -1
  110. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +47 -2
  111. package/dist/collection/components/vega-rich-text-editor/dto/editor-state.js +36 -0
  112. package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +6 -0
  113. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +8 -0
  114. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +7 -1
  115. package/dist/collection/components/vega-rich-text-editor/dto/range.js +8 -0
  116. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.js +1 -1
  117. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +1 -1
  118. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +1 -1
  119. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +7 -1
  120. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +1 -1
  121. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +2 -2
  122. package/dist/collection/components/vega-rich-text-editor/dto/selection-state.js +17 -0
  123. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/block-to-rte-block-strategy.abstract.js +15 -5
  124. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +3 -0
  125. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +3 -2
  126. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/inline-block-to-rte-text-block-strategy.js +16 -1
  127. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/vega-image-to-rte-image-block-strategy.js +18 -15
  128. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/history-controller.js +137 -0
  129. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +54 -15
  130. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +13 -1
  131. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +116 -0
  132. package/dist/collection/components/vega-rich-text-editor/test/dto/nodes/text-node.test.js +12 -0
  133. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +5 -0
  134. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/slimmers/renderers/vega-rich-text-image-editor-renderer.js +4 -0
  135. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.js +2 -1
  136. package/dist/collection/components/vega-stepper/vega-stepper.js +2 -2
  137. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-pages-controller.js +22 -12
  138. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-renderer.js +6 -2
  139. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +20 -4
  140. package/dist/collection/components/vega-tab-group/vega-tab-group.css +16 -0
  141. package/dist/collection/components/vega-tab-group/vega-tab-group.js +32 -0
  142. package/dist/collection/components/vega-toggle-switch/vega-toggle-switch.js +8 -2
  143. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +2 -0
  144. package/dist/collection/helpers/keyboard/keyboard-manager.js +25 -5
  145. package/dist/collection/helpers/keyboard/test/keyboard-manager.test.js +204 -105
  146. package/dist/collection/helpers/validator/rules/max-number-rule.js +1 -1
  147. package/dist/collection/helpers/validator/rules/min-number-rule.js +1 -1
  148. package/dist/collection/helpers/validator/test/rules/max-number-rule.test.js +2 -2
  149. package/dist/collection/helpers/validator/test/rules/min-number-rule.test.js +2 -2
  150. package/dist/esm/{app-globals-53b6125a.js → app-globals-b7b43a4e.js} +3 -3
  151. package/dist/esm/{content-state-7437e069.js → content-state-dbc9f635.js} +240 -5
  152. package/dist/esm/{design-token-fb43f78a.js → design-token-e263e6a2.js} +1 -1
  153. package/dist/esm/{element-appender-slimmer-0a0b20e9.js → element-appender-slimmer-55d63b1f.js} +2 -2
  154. package/dist/esm/{form-field-controller-slimmer-2978abd4.js → form-field-controller-slimmer-e7dc3db1.js} +2 -2
  155. package/dist/esm/{image-annotation-action-51248df9.js → image-annotation-action-1aa938ab.js} +1 -1
  156. package/dist/esm/{index-96374234.js → index-4aa167d6.js} +1 -1
  157. package/dist/esm/index.js +6 -6
  158. package/dist/esm/{inject-keyboard-manager-ab0bfb8b.js → inject-keyboard-manager-f513be4a.js} +1 -1
  159. package/dist/esm/{keyboard-manager-8c4ef91b.js → keyboard-manager-262be5ce.js} +25 -5
  160. package/dist/esm/{keyboard-manager-slimmer-6f5cb52a.js → keyboard-manager-slimmer-42bf9773.js} +1 -1
  161. package/dist/esm/loader.js +5 -5
  162. package/dist/esm/{min-number-rule-a6082418.js → min-number-rule-86421853.js} +2 -2
  163. package/dist/esm/{public-rules-cfc196c9.js → public-rules-5cf6aa95.js} +3 -3
  164. package/dist/esm/{responsive-format-facade-ae799f25.js → responsive-format-facade-bc2f8ad3.js} +1 -1
  165. package/dist/esm/{rich-text-editor-required-rule-baf61553.js → rich-text-editor-required-rule-6a7cd3ee.js} +1 -1
  166. package/dist/esm/{string-input-formatter-slimmer-8c7987ac.js → string-input-formatter-slimmer-c61f82d6.js} +2 -2
  167. package/dist/esm/{style-formatter-bf71b8e7.js → style-formatter-0f221459.js} +1 -1
  168. package/dist/esm/{sub-state-notify-slimmer-2216c7dc.js → sub-state-notify-slimmer-4e3cf09d.js} +1 -1
  169. package/dist/esm/{sub-state-observer-slimmer-da938c88.js → sub-state-observer-slimmer-be7a6ce3.js} +1 -1
  170. package/dist/esm/vega-accordion.entry.js +4 -4
  171. package/dist/esm/vega-app-header-button.entry.js +4 -4
  172. package/dist/esm/vega-box.entry.js +5 -5
  173. package/dist/esm/vega-button-circle.entry.js +4 -4
  174. package/dist/esm/vega-button-group_2.entry.js +3 -3
  175. package/dist/esm/vega-button.entry.js +3 -3
  176. package/dist/esm/vega-calendar_3.entry.js +3 -3
  177. package/dist/esm/vega-card.entry.js +4 -4
  178. package/dist/esm/vega-carousel.entry.js +3 -3
  179. package/dist/esm/vega-checkbox_2.entry.js +3 -3
  180. package/dist/esm/vega-chip.entry.js +4 -4
  181. package/dist/esm/vega-color-picker.entry.js +3 -3
  182. package/dist/esm/vega-combo-box.entry.js +5 -5
  183. package/dist/esm/vega-date-picker_2.entry.js +10 -10
  184. package/dist/esm/vega-dialog_2.entry.js +4 -4
  185. package/dist/esm/vega-divider.entry.js +4 -4
  186. package/dist/esm/vega-dropdown_5.entry.js +8 -8
  187. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  188. package/dist/esm/vega-file-uploader.entry.js +3 -3
  189. package/dist/esm/vega-flag-icon.entry.js +4 -4
  190. package/dist/esm/vega-flex.entry.js +5 -5
  191. package/dist/esm/vega-font.entry.js +4 -4
  192. package/dist/esm/vega-form.entry.js +4 -4
  193. package/dist/esm/vega-grid.entry.js +4 -4
  194. package/dist/esm/vega-icon.entry.js +4 -4
  195. package/dist/esm/vega-image-uploader.entry.js +16 -7
  196. package/dist/esm/vega-input-credit-card.entry.js +3 -3
  197. package/dist/esm/vega-input-numeric.entry.js +11 -8
  198. package/dist/esm/vega-input-phone-number.entry.js +3 -3
  199. package/dist/esm/vega-input-range.entry.js +3 -3
  200. package/dist/esm/vega-input-select.entry.js +5 -5
  201. package/dist/esm/vega-input.entry.js +8 -8
  202. package/dist/esm/{vega-internal-event-id-7d1ff289.js → vega-internal-event-id-85ad403f.js} +3 -1
  203. package/dist/esm/vega-left-nav_5.entry.js +447 -194
  204. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  205. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +1 -1
  206. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -1
  207. package/dist/esm/vega-pagination.entry.js +3 -3
  208. package/dist/esm/vega-popover_2.entry.js +11 -11
  209. package/dist/esm/vega-radio_2.entry.js +8 -5
  210. package/dist/esm/vega-rich-text-content.entry.js +19 -13
  211. package/dist/esm/vega-rich-text-editor_4.entry.js +480 -196
  212. package/dist/esm/vega-selection-chip_2.entry.js +6 -6
  213. package/dist/esm/vega-selection-tile_2.entry.js +4 -4
  214. package/dist/esm/vega-sidenav_3.entry.js +5 -5
  215. package/dist/esm/vega-signature-capture.entry.js +6 -6
  216. package/dist/esm/vega-stepper.entry.js +6 -6
  217. package/dist/esm/vega-tab-group_2.entry.js +55 -19
  218. package/dist/esm/vega-table_8.entry.js +5 -5
  219. package/dist/esm/vega-textarea.entry.js +3 -3
  220. package/dist/esm/vega-time-picker_2.entry.js +8 -8
  221. package/dist/esm/vega-toggle-switch.entry.js +10 -4
  222. package/dist/esm/vega-tooltip_2.entry.js +11 -11
  223. package/dist/esm/vega.js +5 -5
  224. package/dist/types/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-actions-renderer.d.ts +1 -0
  225. package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +3 -0
  226. package/dist/types/components/vega-input/vega-input.d.ts +2 -2
  227. package/dist/types/components/vega-nav/interface.d.ts +11 -0
  228. package/dist/types/components/vega-nav/slimmers/vega-left-nav-group-hierarchy-controller.d.ts +15 -0
  229. package/dist/types/components/vega-nav/vega-left-nav/test/vega-left-nav-mock-data.d.ts +4 -0
  230. package/dist/types/components/vega-nav/vega-left-nav/vega-left-nav.d.ts +21 -4
  231. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-initialize-selected-controller.d.ts +20 -0
  232. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-link-click-controller.d.ts +25 -0
  233. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-open-state-controller.d.ts +27 -0
  234. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-other-groups-click-controller.d.ts +17 -0
  235. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/renderers/vega-left-nav-group-renderer.d.ts +2 -1
  236. package/dist/types/components/vega-nav/vega-left-nav-group/vega-left-nav-group.d.ts +12 -5
  237. package/dist/types/components/vega-nav/vega-left-nav-link/slimmers/controllers/vega-left-nav-link-controller.d.ts +5 -0
  238. package/dist/types/components/vega-nav/vega-left-nav-link/slimmers/renderers/vega-left-nav-link-renderer.d.ts +2 -0
  239. package/dist/types/components/vega-nav/vega-left-nav-link/vega-left-nav-link.d.ts +2 -0
  240. package/dist/types/components/vega-rich-text-editor/dto/annotations/block-annotation.abstract.d.ts +1 -0
  241. package/dist/types/components/vega-rich-text-editor/dto/annotations/bold-annotation.d.ts +4 -0
  242. package/dist/types/components/vega-rich-text-editor/dto/annotations/code-annotation.d.ts +4 -0
  243. package/dist/types/components/vega-rich-text-editor/dto/annotations/horizontal-alignment-annotation.d.ts +4 -0
  244. package/dist/types/components/vega-rich-text-editor/dto/annotations/image-annotation.d.ts +4 -0
  245. package/dist/types/components/vega-rich-text-editor/dto/annotations/indent-annotation.d.ts +4 -0
  246. package/dist/types/components/vega-rich-text-editor/dto/annotations/italic-annotation.d.ts +4 -0
  247. package/dist/types/components/vega-rich-text-editor/dto/annotations/link-annotation.d.ts +4 -0
  248. package/dist/types/components/vega-rich-text-editor/dto/annotations/link-group-annotation.d.ts +1 -0
  249. package/dist/types/components/vega-rich-text-editor/dto/annotations/node-annotation.abstract.d.ts +1 -0
  250. package/dist/types/components/vega-rich-text-editor/dto/annotations/selection-range-annotation.d.ts +6 -0
  251. package/dist/types/components/vega-rich-text-editor/dto/annotations/strikethrough-annotation.d.ts +4 -0
  252. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-color-annotation.d.ts +4 -0
  253. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-annotation.d.ts +4 -0
  254. package/dist/types/components/vega-rich-text-editor/dto/annotations/underline-annotation.d.ts +4 -0
  255. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +9 -1
  256. package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +4 -0
  257. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +4 -0
  258. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +4 -0
  259. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +4 -0
  260. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +19 -1
  261. package/dist/types/components/vega-rich-text-editor/dto/editor-state.d.ts +20 -0
  262. package/dist/types/components/vega-rich-text-editor/dto/nodes/image-node.d.ts +4 -0
  263. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +9 -1
  264. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +4 -0
  265. package/dist/types/components/vega-rich-text-editor/dto/range.d.ts +6 -0
  266. package/dist/types/components/vega-rich-text-editor/dto/selection-state.d.ts +14 -0
  267. package/dist/types/components/vega-rich-text-editor/interface.d.ts +7 -1
  268. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/block-to-rte-block-strategy.abstract.d.ts +1 -0
  269. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +2 -2
  270. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/history-controller.d.ts +54 -0
  271. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +14 -1
  272. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +4 -1
  273. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +2 -0
  274. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-pages-controller.d.ts +1 -0
  275. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-renderer.d.ts +1 -0
  276. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +3 -0
  277. package/dist/types/components/vega-tab-group/types.d.ts +2 -0
  278. package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +7 -1
  279. package/dist/types/components/vega-toggle-switch/vega-toggle-switch.d.ts +1 -0
  280. package/dist/types/components.d.ts +26 -14
  281. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +2 -0
  282. package/dist/types/helpers/keyboard/keyboard-manager.d.ts +11 -1
  283. package/dist/types/types/components.type.d.ts +2 -1
  284. package/dist/types/types/ui.type.d.ts +1 -1
  285. package/dist/vega/index.esm.js +1 -1
  286. package/dist/vega/{p-df44a712.entry.js → p-01fd343e.entry.js} +1 -1
  287. package/dist/vega/{p-50a076d0.entry.js → p-0a18f5f6.entry.js} +1 -1
  288. package/dist/vega/{p-7bc3a42b.js → p-1abe125f.js} +1 -1
  289. package/dist/vega/{p-4b541ce8.entry.js → p-2198de3e.entry.js} +1 -1
  290. package/dist/vega/{p-0073c3de.entry.js → p-24e0cdcc.entry.js} +1 -1
  291. package/dist/vega/{p-4f7f93ef.entry.js → p-2565cb0c.entry.js} +1 -1
  292. package/dist/vega/p-26e4221c.entry.js +1 -0
  293. package/dist/vega/{p-1c08e94a.entry.js → p-27e3825f.entry.js} +1 -1
  294. package/dist/vega/{p-aa109e80.entry.js → p-2bd64faf.entry.js} +1 -1
  295. package/dist/vega/{p-ab26cad6.js → p-2da83c2a.js} +1 -1
  296. package/dist/vega/{p-410755ca.entry.js → p-2fadef27.entry.js} +1 -1
  297. package/dist/vega/{p-01b4d6ba.entry.js → p-33ffaa71.entry.js} +1 -1
  298. package/dist/vega/{p-343b4522.entry.js → p-34a70d18.entry.js} +1 -1
  299. package/dist/vega/{p-f9b07b5e.entry.js → p-353d32c0.entry.js} +1 -1
  300. package/dist/vega/{p-d6d9c300.entry.js → p-3aa244d4.entry.js} +1 -1
  301. package/dist/vega/p-429616af.entry.js +1 -0
  302. package/dist/vega/p-44b0a005.js +1 -0
  303. package/dist/vega/{p-e1a06741.entry.js → p-472727a4.entry.js} +1 -1
  304. package/dist/vega/p-4e167a8c.js +1 -0
  305. package/dist/vega/p-4e68dfd9.js +1 -0
  306. package/dist/vega/p-4e76904e.entry.js +1 -0
  307. package/dist/vega/{p-8c32ff75.entry.js → p-4fa94b35.entry.js} +1 -1
  308. package/dist/vega/{p-b64d5c3a.entry.js → p-52e17867.entry.js} +1 -1
  309. package/dist/vega/p-56a0b13d.js +1 -0
  310. package/dist/vega/{p-1b731247.entry.js → p-57cdacb1.entry.js} +1 -1
  311. package/dist/vega/{p-bcb43c54.entry.js → p-57e813f2.entry.js} +1 -1
  312. package/dist/vega/{p-b06e5916.entry.js → p-58b8c06b.entry.js} +1 -1
  313. package/dist/vega/{p-bd5ca7cc.entry.js → p-59ccf915.entry.js} +1 -1
  314. package/dist/vega/{p-324dd09a.entry.js → p-5a8f129f.entry.js} +1 -1
  315. package/dist/vega/p-5cbadf95.entry.js +1 -0
  316. package/dist/vega/{p-b2643e88.js → p-5e3a15a1.js} +1 -1
  317. package/dist/vega/p-5f377954.js +1 -1
  318. package/dist/vega/{p-4b1a7d31.entry.js → p-63414091.entry.js} +1 -1
  319. package/dist/vega/{p-0b56725e.entry.js → p-6aa569e5.entry.js} +1 -1
  320. package/dist/vega/{p-b9f48611.js → p-6b75fe39.js} +1 -1
  321. package/dist/vega/{p-69cc3fa2.js → p-6cabdb36.js} +1 -1
  322. package/dist/vega/{p-bab6ca81.js → p-6d7d923b.js} +1 -1
  323. package/dist/vega/{p-b6caa1e2.entry.js → p-6ec8a9d8.entry.js} +1 -1
  324. package/dist/vega/{p-d7642125.js → p-72ecfd40.js} +1 -1
  325. package/dist/vega/p-7db32dc0.entry.js +1 -0
  326. package/dist/vega/{p-f0bc8f6d.js → p-7f6702f7.js} +1 -1
  327. package/dist/vega/{p-c706de06.entry.js → p-84aac4b1.entry.js} +1 -1
  328. package/dist/vega/{p-213752bd.js → p-88c9efbb.js} +1 -1
  329. package/dist/vega/{p-b65de502.entry.js → p-8aec8dac.entry.js} +1 -1
  330. package/dist/vega/{p-1e2886b5.js → p-8afa2115.js} +1 -1
  331. package/dist/vega/p-8bc4c015.entry.js +1 -0
  332. package/dist/vega/p-96b4c0cc.entry.js +1 -0
  333. package/dist/vega/p-a8b681ed.entry.js +1 -0
  334. package/dist/vega/{p-b4dfa967.entry.js → p-ac82ca73.entry.js} +1 -1
  335. package/dist/vega/{p-c86a4896.entry.js → p-ba6c7f00.entry.js} +1 -1
  336. package/dist/vega/{p-2c1c88c0.entry.js → p-be40684b.entry.js} +1 -1
  337. package/dist/vega/p-bf1894ec.js +1 -0
  338. package/dist/vega/{p-79cc1f41.entry.js → p-c1e1adf9.entry.js} +1 -1
  339. package/dist/vega/p-c5f8b3a3.entry.js +1 -0
  340. package/dist/vega/p-c754b32c.js +1 -0
  341. package/dist/vega/{p-d4a61b1d.entry.js → p-c96effa5.entry.js} +1 -1
  342. package/dist/vega/{p-d6c37085.entry.js → p-ca34443a.entry.js} +1 -1
  343. package/dist/vega/{p-96410d71.entry.js → p-cb637815.entry.js} +1 -1
  344. package/dist/vega/{p-0523efe8.entry.js → p-ccdd49be.entry.js} +1 -1
  345. package/dist/vega/p-cd205d96.js +1 -0
  346. package/dist/vega/{p-a1bdf9a0.entry.js → p-ce70a54a.entry.js} +1 -1
  347. package/dist/vega/{p-e5695801.entry.js → p-d6591d70.entry.js} +1 -1
  348. package/dist/vega/{p-80c86d79.js → p-d7937711.js} +1 -1
  349. package/dist/vega/{p-59e9f57a.js → p-dbc82247.js} +1 -1
  350. package/dist/vega/{p-d6620b42.entry.js → p-e29da13d.entry.js} +1 -1
  351. package/dist/vega/p-e719b1a9.entry.js +1 -0
  352. package/dist/vega/{p-4f54ba1f.entry.js → p-f7423232.entry.js} +1 -1
  353. package/dist/vega/{p-611282a7.entry.js → p-fb853d5f.entry.js} +1 -1
  354. package/dist/vega/{p-8f80b321.entry.js → p-fd018044.entry.js} +1 -1
  355. package/dist/vega/p-fda0c179.entry.js +1 -0
  356. package/dist/vega/p-ff41dc6a.entry.js +1 -0
  357. package/dist/vega/vega.esm.js +1 -1
  358. package/package.json +1 -1
  359. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-controller.js +0 -30
  360. package/dist/collection/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-sibling-observer-controller.js +0 -48
  361. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-controller.d.ts +0 -11
  362. package/dist/types/components/vega-nav/vega-left-nav-group/slimmers/controllers/vega-left-nav-group-sibling-observer-controller.d.ts +0 -18
  363. package/dist/vega/p-08679cd9.entry.js +0 -1
  364. package/dist/vega/p-12d60f5f.js +0 -1
  365. package/dist/vega/p-214aa52e.js +0 -1
  366. package/dist/vega/p-2863aa51.entry.js +0 -1
  367. package/dist/vega/p-2e65e175.js +0 -1
  368. package/dist/vega/p-31de5cb4.entry.js +0 -1
  369. package/dist/vega/p-3d3cd394.js +0 -1
  370. package/dist/vega/p-3e285c35.js +0 -1
  371. package/dist/vega/p-7594875a.entry.js +0 -1
  372. package/dist/vega/p-8af3fc79.entry.js +0 -1
  373. package/dist/vega/p-8ee31f00.entry.js +0 -1
  374. package/dist/vega/p-952913fc.entry.js +0 -1
  375. package/dist/vega/p-b07add9c.entry.js +0 -1
  376. package/dist/vega/p-b9051ad2.js +0 -1
  377. package/dist/vega/p-c2321aa8.entry.js +0 -1
  378. package/dist/vega/p-ceb9f5aa.entry.js +0 -1
  379. package/dist/vega/p-db7a6878.entry.js +0 -1
  380. package/dist/vega/p-e59ff7d1.entry.js +0 -1
  381. package/dist/vega/p-f2373487.js +0 -1
@@ -17,8 +17,10 @@ import ChangeManager from '../../../../helpers/change-manager/change-manager';
17
17
  import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
18
18
  import { VegaInternalRichTextEditorSelectionRangeChange } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
19
19
  import { Observer } from '../../../../helpers/change-manager/observer/observer';
20
+ import { RTETextNode } from '../../dto/nodes/text-node';
20
21
  import { ZERO_WIDTH_SPACE } from '../../constants/constant';
21
22
  import { RTERange } from '../../dto/range';
23
+ import { RTESelectionState } from '../../dto/selection-state';
22
24
  /**
23
25
  * The text selection controller
24
26
  */
@@ -28,7 +30,7 @@ export class SelectionController extends VegaSlimmer {
28
30
  this.currentRange = new RTERange();
29
31
  this.updateCaretPositionTaskQueue = new SynchronizeTaskQueue(1);
30
32
  this.handleSelectionWithDebounce = debounce(this.handleSelectionChange, SelectionController.SELECTION_CHANGE_DEBOUNCE_TIME, this);
31
- this.selectedNodes = [];
33
+ this.pendingRestoreSelectionNodes = [];
32
34
  /**
33
35
  * Sets the next selection state with specified start and end nodes, offsets, and a timestamp.
34
36
  *
@@ -68,6 +70,7 @@ export class SelectionController extends VegaSlimmer {
68
70
  * Watches the internal value of the editor
69
71
  */
70
72
  watchValueUpdate() {
73
+ this.prepareRestoreSelectionState();
71
74
  this.restoreSelection();
72
75
  }
73
76
  /**
@@ -102,6 +105,14 @@ export class SelectionController extends VegaSlimmer {
102
105
  getSelectedBlocks() {
103
106
  return Array.from(this.selectionMap.keys());
104
107
  }
108
+ /**
109
+ * Set the selection state
110
+ *
111
+ * @param {RTESelectionState} state - The selection state to set
112
+ */
113
+ setSelectionState(state) {
114
+ this.selectionState = state;
115
+ }
105
116
  /**
106
117
  * Sets the next selection state with specified start and end nodes, offsets, push the update task to a queue
107
118
  *
@@ -159,23 +170,15 @@ export class SelectionController extends VegaSlimmer {
159
170
  * Restore the selection to the current selected nodes
160
171
  */
161
172
  restoreSelection() {
162
- if (this.selectedNodes.length > 0) {
163
- const startNode = this.selectedNodes[0];
164
- const endNode = this.selectedNodes.length > 1 ? this.selectedNodes[this.selectedNodes.length - 1] : startNode;
165
- if (startNode === endNode && startNode.text.length === 0) {
173
+ if (this.selectionState) {
174
+ const { startNode, endNode, startOffset, endOffset } = this.selectionState.range;
175
+ if (startNode instanceof RTETextNode && startNode === endNode && startNode.text.length === 0) {
166
176
  this.enqueueSelectionRangeFutureState(startNode, ZERO_WIDTH_SPACE.length);
167
177
  }
168
178
  else {
169
- const { startContainer, endContainer, startOffset, endOffset } = this.currentRange;
170
- if (stateEntityRenderingRegistry.getDOMByEntity(startNode) === startContainer.parentElement &&
171
- stateEntityRenderingRegistry.getDOMByEntity(endNode) === endContainer.parentElement) {
172
- this.enqueueSelectionRangeFutureState(startNode, startOffset, endNode, endOffset);
173
- }
174
- else {
175
- this.enqueueSelectionRangeFutureState(startNode, 0, endNode, endNode.text.length);
176
- }
179
+ this.enqueueSelectionRangeFutureState(startNode, startOffset, endNode, endOffset);
177
180
  }
178
- this.selectedNodes = [];
181
+ this.selectionState = null;
179
182
  }
180
183
  }
181
184
  /**
@@ -263,10 +266,43 @@ export class SelectionController extends VegaSlimmer {
263
266
  */
264
267
  registerSelectionRangeChangeObserver() {
265
268
  this.selectionRangeChangeObserver = new Observer(this.isAcceptableSelectionRangeChange.bind(this), (payload) => {
266
- this.selectedNodes.push(payload.node);
269
+ this.pendingRestoreSelectionNodes.push(payload.node);
267
270
  });
268
271
  ChangeManager.register(domNodeSubjectFactory.getSubject(this.host, VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
269
272
  }
273
+ /**
274
+ * Prepare the selection state to restore
275
+ */
276
+ prepareRestoreSelectionState() {
277
+ if (this.pendingRestoreSelectionNodes.length > 0) {
278
+ const startNode = this.pendingRestoreSelectionNodes[0];
279
+ const endNode = this.pendingRestoreSelectionNodes.length > 1
280
+ ? this.pendingRestoreSelectionNodes[this.pendingRestoreSelectionNodes.length - 1]
281
+ : startNode;
282
+ const { startOffset, endOffset, endContainer, startContainer } = this.currentRange;
283
+ const nodesInCurrentRange = stateEntityRenderingRegistry.getDOMByEntity(startNode) === startContainer.parentElement &&
284
+ stateEntityRenderingRegistry.getDOMByEntity(endNode) === endContainer.parentElement;
285
+ if (nodesInCurrentRange) {
286
+ this.currentRange = this.currentRange.updateRTERange({
287
+ startNode,
288
+ endNode,
289
+ startOffset,
290
+ endOffset,
291
+ });
292
+ this.selectionState = new RTESelectionState(this.currentRange);
293
+ }
294
+ else {
295
+ this.currentRange = this.currentRange.updateRTERange({
296
+ startNode,
297
+ endNode,
298
+ startOffset: 0,
299
+ endOffset: endNode.text.length,
300
+ });
301
+ this.selectionState = new RTESelectionState(this.currentRange);
302
+ }
303
+ this.pendingRestoreSelectionNodes = [];
304
+ }
305
+ }
270
306
  }
271
307
  SelectionController.SELECTION_CHANGE_DEBOUNCE_TIME = 50;
272
308
  __decorate([
@@ -290,6 +326,9 @@ __decorate([
290
326
  __decorate([
291
327
  MapToComponentField()
292
328
  ], SelectionController.prototype, "insertCompositionTextController", void 0);
329
+ __decorate([
330
+ MapToComponentField()
331
+ ], SelectionController.prototype, "historyController", void 0);
293
332
  __decorate([
294
333
  MapToComponentMethod('connectedCallback')
295
334
  ], SelectionController.prototype, "connectedCallback", null);
@@ -14,6 +14,8 @@ import { Observer } from '../../../../helpers/change-manager/observer/observer';
14
14
  import { debounce } from '../../../../utils/timer';
15
15
  import { VegaRTEContent } from '../../dto/content-state';
16
16
  import { waitForComponentDidRender } from '../../../../helpers/common';
17
+ import { RTEEditorState } from '../../dto/editor-state';
18
+ import { RTESelectionState } from '../../dto/selection-state';
17
19
  /**
18
20
  * The value controller is responsible for updating the value of the rich text editor.
19
21
  */
@@ -64,8 +66,12 @@ export class ValueController extends VegaSlimmer {
64
66
  * Updates the value of the editor and restore the selection.
65
67
  *
66
68
  * @param {VegaRTEContent} newValue The new value to set.
69
+ * @param {boolean} recordHistory - Whether to record the change in history.
67
70
  */
68
- async flushChanges(newValue) {
71
+ async flushChanges(newValue, recordHistory = true) {
72
+ if (recordHistory) {
73
+ this.historyController.registerHistory(new RTEEditorState(newValue, new RTESelectionState(this.selectionController.getCurrentRange())));
74
+ }
69
75
  this.value = newValue.clone();
70
76
  await waitForComponentDidRender(this.host);
71
77
  }
@@ -91,6 +97,12 @@ __decorate([
91
97
  __decorate([
92
98
  MapToComponentField()
93
99
  ], ValueController.prototype, "valueController", void 0);
100
+ __decorate([
101
+ MapToComponentField()
102
+ ], ValueController.prototype, "historyController", void 0);
103
+ __decorate([
104
+ MapToComponentField()
105
+ ], ValueController.prototype, "selectionController", void 0);
94
106
  __decorate([
95
107
  MapToComponentMethod('connectedCallback')
96
108
  ], ValueController.prototype, "connectedCallback", null);
@@ -2,6 +2,8 @@ import { VegaRTEContent } from '../../dto/content-state';
2
2
  import { RTETextBlock } from '../../dto/blocks/text-block';
3
3
  import { RTEImageBlock } from '../../dto/blocks/image-block';
4
4
  import { RTEListBlock } from '../../dto/blocks/list-block';
5
+ import { BlockAnnotationTypeEnum } from '../../dto/annotations/block-annotation.abstract';
6
+ import { NodeAnnotationTypeEnum } from '../../dto/annotations/node-annotation.abstract';
5
7
  describe('content state', () => {
6
8
  it('fromJSON should work as expect', () => {
7
9
  expect(() => VegaRTEContent.fromJSON([
@@ -125,6 +127,43 @@ describe('content state', () => {
125
127
  expect(clonedContentState).not.toBe(contentState);
126
128
  expect(clonedContentState).toEqual(contentState);
127
129
  });
130
+ it('should deep clone content state', () => {
131
+ const contentState = VegaRTEContent.fromJSON([
132
+ {
133
+ id: '1',
134
+ type: 'paragraph',
135
+ annotations: {
136
+ textStyle: 'paragraph',
137
+ },
138
+ nodes: [
139
+ { id: '1-1', type: 'text', text: 'This is a paragraph', annotations: { bold: true } },
140
+ ],
141
+ },
142
+ ]);
143
+ const clonedContentState = contentState.clone(true);
144
+ expect(clonedContentState).not.toBe(contentState);
145
+ expect(clonedContentState).toEqual(contentState);
146
+ const block = contentState.blocks[0];
147
+ const clonedBlock = clonedContentState.blocks[0];
148
+ expect(clonedBlock).toEqual(block);
149
+ expect(clonedBlock).not.toBe(block);
150
+ const node = block.nodes[0];
151
+ const clonedNode = clonedBlock.nodes[0];
152
+ expect(clonedNode).toEqual(node);
153
+ expect(clonedNode).not.toBe(node);
154
+ const blockAnnotations = block.annotationMap;
155
+ const clonedBlockAnnotations = clonedBlock.annotationMap;
156
+ expect(clonedBlockAnnotations).toEqual(blockAnnotations);
157
+ expect(clonedBlockAnnotations).not.toBe(blockAnnotations);
158
+ expect(clonedBlock.getAnnotationByType(BlockAnnotationTypeEnum.TEXT_STYLE)).toEqual(block.getAnnotationByType(BlockAnnotationTypeEnum.TEXT_STYLE));
159
+ expect(clonedBlock.getAnnotationByType(BlockAnnotationTypeEnum.TEXT_STYLE)).not.toBe(block.getAnnotationByType(BlockAnnotationTypeEnum.TEXT_STYLE));
160
+ const nodeAnnotations = node.annotationMap;
161
+ const clonedNodeAnnotations = clonedNode.annotationMap;
162
+ expect(clonedNodeAnnotations).toEqual(nodeAnnotations);
163
+ expect(clonedNodeAnnotations).not.toBe(nodeAnnotations);
164
+ expect(clonedNode.getAnnotationByType(NodeAnnotationTypeEnum.BOLD)).toEqual(node.getAnnotationByType(NodeAnnotationTypeEnum.BOLD));
165
+ expect(clonedNode.getAnnotationByType(NodeAnnotationTypeEnum.BOLD)).not.toBe(node.getAnnotationByType(NodeAnnotationTypeEnum.BOLD));
166
+ });
128
167
  it('the parent property should set as properly when create VegaRTEContent', () => {
129
168
  const contentState = VegaRTEContent.fromJSON([
130
169
  {
@@ -169,4 +208,81 @@ describe('content state', () => {
169
208
  expect(nestedListBlock.parent).toEqual(listItemBlock);
170
209
  expect(nestedListItemBlock.parent).toEqual(nestedListBlock);
171
210
  });
211
+ describe('findNodeById', () => {
212
+ let content;
213
+ beforeAll(() => {
214
+ content = VegaRTEContent.fromJSON([
215
+ {
216
+ id: '1',
217
+ type: 'paragraph',
218
+ nodes: [
219
+ { id: '1-1', type: 'text', text: 'This ' },
220
+ { id: '1-2', type: 'text', text: 'is a ' },
221
+ { id: '1-3', type: 'text', text: 'paragraph.' },
222
+ ],
223
+ },
224
+ {
225
+ id: '2',
226
+ type: 'image',
227
+ nodes: [{ id: '2-1', type: 'image', url: 'img.png' }],
228
+ },
229
+ {
230
+ id: '3',
231
+ type: 'bullet-list',
232
+ blocks: [
233
+ {
234
+ id: '3-1',
235
+ type: 'list-item',
236
+ nodes: [{ id: '3-1-1', type: 'text', text: 'List item 1' }],
237
+ children: [
238
+ {
239
+ id: '3-2',
240
+ type: 'number-list',
241
+ blocks: [
242
+ {
243
+ id: '3-2-1',
244
+ type: 'list-item',
245
+ nodes: [
246
+ { id: '3-2-1-1', type: 'text', text: 'Nested list item' },
247
+ ],
248
+ },
249
+ ],
250
+ },
251
+ ],
252
+ },
253
+ ],
254
+ },
255
+ ]);
256
+ });
257
+ it('should find the node in text block', () => {
258
+ expect(content.findNodeById('1-2').toJSON()).toEqual({ id: '1-2', type: 'text', text: 'is a ' });
259
+ });
260
+ it('should find the node in image block', () => {
261
+ expect(content.findNodeById('2-1').toJSON()).toEqual({
262
+ id: '2-1',
263
+ type: 'image',
264
+ url: 'img.png',
265
+ annotations: {
266
+ size: 'md',
267
+ },
268
+ });
269
+ });
270
+ it('should find the node in list item', () => {
271
+ expect(content.findNodeById('3-1-1').toJSON()).toEqual({
272
+ id: '3-1-1',
273
+ type: 'text',
274
+ text: 'List item 1',
275
+ });
276
+ });
277
+ it('should find the node in nested list item', () => {
278
+ expect(content.findNodeById('3-2-1-1').toJSON()).toEqual({
279
+ id: '3-2-1-1',
280
+ type: 'text',
281
+ text: 'Nested list item',
282
+ });
283
+ });
284
+ it('should return null for non-existent node', () => {
285
+ expect(content.findNodeById('not-exist')).toBeNull();
286
+ });
287
+ });
172
288
  });
@@ -396,4 +396,16 @@ describe('text node', () => {
396
396
  textNode.apply(new DeleteNodeAnnotationAction(NodeAnnotationTypeEnum.BOLD));
397
397
  expect(textNode.toJSON()).toEqual({ id: '1', type: 'text', text: 'This is a text.' });
398
398
  });
399
+ it('should clone a text node with annotations correctly', () => {
400
+ const textBlock = new RTETextBlock('block-1', 'paragraph');
401
+ const textNode = new RTETextNode('1', 'This is a text.', textBlock);
402
+ textNode.apply(new BoldAnnotationAction(true));
403
+ const clonedNode = textNode.clone();
404
+ expect(textNode).toEqual(clonedNode);
405
+ expect(textNode).not.toBe(clonedNode);
406
+ expect(textNode.annotationMap).toEqual(clonedNode.annotationMap);
407
+ expect(textNode.annotationMap).not.toBe(clonedNode.annotationMap);
408
+ expect(textNode.getAnnotationByType(NodeAnnotationTypeEnum.BOLD)).toEqual(clonedNode.getAnnotationByType(NodeAnnotationTypeEnum.BOLD));
409
+ expect(textNode.getAnnotationByType(NodeAnnotationTypeEnum.BOLD)).not.toBe(clonedNode.getAnnotationByType(NodeAnnotationTypeEnum.BOLD));
410
+ });
399
411
  });
@@ -43,6 +43,7 @@ import { InsertCompositionTextController } from './slimmers/controllers/insert-c
43
43
  import { DeleteSelectedNodesController } from './slimmers/controllers/delete-selected-nodes-controller';
44
44
  import { TranslationSlimmer } from '../../helpers/slimmers/translation';
45
45
  import { VegaInternalThemeManager } from '../../helpers/theme/internal-theme-manager';
46
+ import { HistoryController } from './slimmers/controllers/history-controller';
46
47
  /**
47
48
  * @vegaVersion 2.34.0
48
49
  */
@@ -95,6 +96,7 @@ export class VegaRichTextEditor {
95
96
  this.changeEventPreventSlimmer = new ChildNodesEventPreventSlimmer([VegaChange], () => this.vegaRichTextEditorRenderer.getRichTextWrapperRef());
96
97
  this.textNodeColorController = new TextNodeColorController();
97
98
  this.deleteSelectedNodesController = new DeleteSelectedNodesController();
99
+ this.historyController = new HistoryController();
98
100
  this.richTextContentEditable = true;
99
101
  this.selectionMap = new Map();
100
102
  this.isInDarkMode = VegaInternalThemeManager.isDarkMode();
@@ -689,3 +691,6 @@ __decorate([
689
691
  __decorate([
690
692
  InjectVegaSlimmer()
691
693
  ], VegaRichTextEditor.prototype, "deleteSelectedNodesController", void 0);
694
+ __decorate([
695
+ InjectVegaSlimmer()
696
+ ], VegaRichTextEditor.prototype, "historyController", void 0);
@@ -63,6 +63,10 @@ export class VegaRichTextImageEditorRenderer extends VegaSlimmer {
63
63
  { key: 'lg', text: this.translationSlimmer.t('Lg') },
64
64
  ], selected: this.size, ref: (ref) => {
65
65
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, (e) => {
66
+ // The below line is covered in `history.spec#should register history, and undo/redo for image size change`
67
+ // Prevent handling vegaChange triggered by DOM ref reuse (e.g., undo/redo) when the image editor is not visible.
68
+ if (!this.selected)
69
+ return;
66
70
  const size = e.detail;
67
71
  this.size = size;
68
72
  this.changeEventEmitter.emit({
@@ -38,6 +38,7 @@ export class VegaRichTextImageEditor {
38
38
  *
39
39
  * @vegaVersion 2.34.0
40
40
  */
41
+ /* eslint-disable-next-line @stencil/strict-mutable */
41
42
  this.size = 'md';
42
43
  }
43
44
  render() {
@@ -75,7 +76,7 @@ export class VegaRichTextImageEditor {
75
76
  },
76
77
  "size": {
77
78
  "type": "string",
78
- "mutable": false,
79
+ "mutable": true,
79
80
  "complexType": {
80
81
  "original": "VegaRichTextImageEditorSizeType",
81
82
  "resolved": "\"lg\" | \"md\" | \"sm\"",
@@ -30,11 +30,11 @@ export class VegaStepper {
30
30
  propertyRules: [
31
31
  {
32
32
  propertyName: 'min',
33
- ruleFactory: (min) => new MinNumberRule({ minValue: min }),
33
+ ruleFactory: (min) => typeof min === 'number' ? new MinNumberRule({ minValue: min }) : null,
34
34
  },
35
35
  {
36
36
  propertyName: 'max',
37
- ruleFactory: (max) => new MaxNumberRule({ maxValue: max }),
37
+ ruleFactory: (max) => typeof max === 'number' ? new MaxNumberRule({ maxValue: max }) : null,
38
38
  },
39
39
  ],
40
40
  defaultValue: 0,
@@ -52,15 +52,17 @@ export class VegaTabGroupPagesController extends PageResizeObserverSlimmer {
52
52
  const primaryMargin = 48;
53
53
  const groupWidth = this.host.getBoundingClientRect().width;
54
54
  let tabGroupContainerWidth = this.variant === 'secondary' ? groupWidth : groupWidth - primaryMargin;
55
- if (startIndex > 0) {
56
- tabGroupContainerWidth -= this.TAB_SIDE_BUTTON_WIDTH + this.TAB_SIDE_BUTTON_AND_CONTENT_SPACE;
57
- }
58
- const showRightButton = values.length > 0 &&
59
- values.slice(startIndex).reduce((prev, current) => prev + current) >
60
- tabGroupContainerWidth &&
61
- tabGroupContainerWidth > 0;
62
- if (showRightButton) {
63
- tabGroupContainerWidth -= this.TAB_SIDE_BUTTON_WIDTH;
55
+ if (this.overflow === 'menu') {
56
+ if (startIndex > 0) {
57
+ tabGroupContainerWidth -= this.TAB_SIDE_BUTTON_WIDTH + this.TAB_SIDE_BUTTON_AND_CONTENT_SPACE;
58
+ }
59
+ const showRightButton = values.length > 0 &&
60
+ values.slice(startIndex).reduce((prev, current) => prev + current) >
61
+ tabGroupContainerWidth &&
62
+ tabGroupContainerWidth > 0;
63
+ if (showRightButton) {
64
+ tabGroupContainerWidth -= this.TAB_SIDE_BUTTON_WIDTH;
65
+ }
64
66
  }
65
67
  return tabGroupContainerWidth;
66
68
  };
@@ -136,9 +138,14 @@ export class VegaTabGroupPagesController extends PageResizeObserverSlimmer {
136
138
  */
137
139
  initTabPages() {
138
140
  if (this.tabItems) {
139
- this.tabPages = this.valuePaginator.paginate(this.tabItems, (_input, index) => this.tabWidthArray[index] > 0
140
- ? this.tabWidthArray[index] + Number(this.formatAndValidGap(this.gap))
141
- : this.tabWidthArray[index], this.getTabContainerSpace);
141
+ if (this.overflow === 'scroll') {
142
+ this.tabPages = [[...this.tabItems]];
143
+ }
144
+ else {
145
+ this.tabPages = this.valuePaginator.paginate(this.tabItems, (_input, index) => this.tabWidthArray[index] > 0
146
+ ? this.tabWidthArray[index] + Number(this.formatAndValidGap(this.gap))
147
+ : this.tabWidthArray[index], this.getTabContainerSpace);
148
+ }
142
149
  }
143
150
  }
144
151
  /*
@@ -199,6 +206,9 @@ __decorate([
199
206
  __decorate([
200
207
  MapToComponentField()
201
208
  ], VegaTabGroupPagesController.prototype, "variant", void 0);
209
+ __decorate([
210
+ MapToComponentField()
211
+ ], VegaTabGroupPagesController.prototype, "overflow", void 0);
202
212
  __decorate([
203
213
  MapToComponentField({ componentFieldName: 'vegaTabGroupSliderStateController' })
204
214
  ], VegaTabGroupPagesController.prototype, "sliderStateController", void 0);
@@ -23,10 +23,11 @@ export class VegaTabGroupRenderer extends VegaSlimmer {
23
23
  'more-tab': this.tabPages.length > 1,
24
24
  'tab-style-secondary': this.variant === 'secondary',
25
25
  'tab-style-primary': this.variant !== 'secondary',
26
+ 'swipe-more-tabs': this.overflow === 'scroll',
26
27
  }, ref: (node) => (this.tabMenuContainer = node) },
27
- this.directionButtonRenderer.render('left'),
28
+ this.overflow === 'menu' && this.directionButtonRenderer.render('left'),
28
29
  this.tabListRenderer.render(),
29
- this.directionButtonRenderer.render('right')),
30
+ this.overflow === 'menu' && this.directionButtonRenderer.render('right')),
30
31
  h("div", { class: "horizontal-divider" }),
31
32
  this.contentRenderer.render()));
32
33
  }
@@ -37,6 +38,9 @@ __decorate([
37
38
  __decorate([
38
39
  MapToComponentField()
39
40
  ], VegaTabGroupRenderer.prototype, "variant", void 0);
41
+ __decorate([
42
+ MapToComponentField()
43
+ ], VegaTabGroupRenderer.prototype, "overflow", void 0);
40
44
  __decorate([
41
45
  MapToComponentField({ componentFieldName: 'vegaTabGroupTabListRenderer' })
42
46
  ], VegaTabGroupRenderer.prototype, "tabListRenderer", void 0);
@@ -21,10 +21,23 @@ export class VegaTabGroupTabListRenderer extends VegaSlimmer {
21
21
  };
22
22
  }
23
23
  render() {
24
- return (h("div", { class: "tab-list" },
25
- h("vega-carousel", { showSlider: false, ref: (el) => (this.carouselDom = el) }, this.tabPages.length > 0 ? (this.tabPages.map((tabPage) => {
26
- return h("div", null, this.renderTabList(tabPage));
27
- })) : (h("div", null, this.renderTabList(this.tabItems))))));
24
+ return (h("div", { class: {
25
+ 'tab-list': true,
26
+ 'menu': this.overflow === 'menu',
27
+ 'scroll': this.overflow === 'scroll',
28
+ } },
29
+ this.overflow === 'menu' && this.renderTabListInMenuOverflow(),
30
+ this.overflow === 'scroll' && this.renderTabListInScrollOverflow()));
31
+ }
32
+ renderTabListInMenuOverflow() {
33
+ return (h("vega-carousel", { showSlider: false, ref: (el) => (this.carouselDom = el) }, this.tabPages.length > 0 ? (this.tabPages.map((tabPage, index) => {
34
+ return h("div", { key: index }, this.renderTabList(tabPage));
35
+ })) : (h("div", null, this.renderTabList(this.tabItems)))));
36
+ }
37
+ renderTabListInScrollOverflow() {
38
+ return (h("div", { class: "overflow-scroll" }, this.tabPages.map((tabPage, index) => {
39
+ return h("div", { key: index }, this.renderTabList(tabPage));
40
+ })));
28
41
  }
29
42
  renderTabList(showTabItems) {
30
43
  return (h("vega-flex", { gap: this.gap }, showTabItems.map((item) => {
@@ -106,6 +119,9 @@ __decorate([
106
119
  __decorate([
107
120
  MapToComponentField()
108
121
  ], VegaTabGroupTabListRenderer.prototype, "tabItems", void 0);
122
+ __decorate([
123
+ MapToComponentField()
124
+ ], VegaTabGroupTabListRenderer.prototype, "overflow", void 0);
109
125
  __decorate([
110
126
  MapToComponentField()
111
127
  ], VegaTabGroupTabListRenderer.prototype, "positionRelativeTo", void 0);
@@ -15,6 +15,22 @@
15
15
  background-color: rgba(var(--v-bg-action-quaternary, 222, 225, 227, 1));
16
16
  }
17
17
 
18
+ .tab-content-container .tab-list.scroll {
19
+ width: 100%;
20
+ overflow: hidden;
21
+ }
22
+ .tab-content-container .tab-list.scroll .overflow-scroll > div {
23
+ display: flex;
24
+ overflow-x: auto;
25
+ scroll-behavior: smooth;
26
+ -webkit-overflow-scrolling: touch;
27
+ scrollbar-width: none;
28
+ -ms-overflow-style: none;
29
+ }
30
+ .tab-content-container .tab-list.scroll .overflow-scroll > div::-webkit-scrollbar {
31
+ display: none;
32
+ }
33
+
18
34
  .tab-content-container.more-tab .vega-tab {
19
35
  flex-grow: 1;
20
36
  }
@@ -84,6 +84,12 @@ export class VegaTabGroup {
84
84
  * @vegaVersion 1.39.0
85
85
  */
86
86
  this.variant = 'primary';
87
+ /**
88
+ * Specifies the overflow navigation for many tab items within the tab group.
89
+ *
90
+ * @vegaVersion __VERSION__
91
+ */
92
+ this.overflow = 'menu';
87
93
  }
88
94
  /**
89
95
  * The below method is e2e-test covered in
@@ -283,6 +289,32 @@ export class VegaTabGroup {
283
289
  "attribute": "variant",
284
290
  "reflect": false,
285
291
  "defaultValue": "'primary'"
292
+ },
293
+ "overflow": {
294
+ "type": "string",
295
+ "mutable": false,
296
+ "complexType": {
297
+ "original": "TabGroupOverflowType",
298
+ "resolved": "\"menu\" | \"scroll\"",
299
+ "references": {
300
+ "TabGroupOverflowType": {
301
+ "location": "import",
302
+ "path": "./types"
303
+ }
304
+ }
305
+ },
306
+ "required": false,
307
+ "optional": false,
308
+ "docs": {
309
+ "tags": [{
310
+ "name": "vegaVersion",
311
+ "text": "__VERSION__"
312
+ }],
313
+ "text": "Specifies the overflow navigation for many tab items within the tab group."
314
+ },
315
+ "attribute": "overflow",
316
+ "reflect": false,
317
+ "defaultValue": "'menu'"
286
318
  }
287
319
  }; }
288
320
  static get states() { return {
@@ -45,6 +45,7 @@ export class VegaToggleSwitch {
45
45
  this.checked = false;
46
46
  /**
47
47
  * The `value` property returns `true` when the toggle switch is checked, and `false` when it is unchecked.
48
+ * This property is included for form control compatibility and can be used interchangeably with the checked property.
48
49
  *
49
50
  * @vegaVersion 2.25.0
50
51
  */
@@ -125,7 +126,12 @@ export class VegaToggleSwitch {
125
126
  methodPlaceholder();
126
127
  }
127
128
  componentWillLoad() {
128
- this.value = this.checked;
129
+ if (!this.checked && this.value === true) {
130
+ this.checked = true;
131
+ }
132
+ else {
133
+ this.value = this.checked;
134
+ }
129
135
  }
130
136
  render() {
131
137
  let divContainerCss = this.checked
@@ -189,7 +195,7 @@ export class VegaToggleSwitch {
189
195
  "name": "vegaVersion",
190
196
  "text": "2.25.0"
191
197
  }],
192
- "text": "The `value` property returns `true` when the toggle switch is checked, and `false` when it is unchecked."
198
+ "text": "The `value` property returns `true` when the toggle switch is checked, and `false` when it is unchecked.\nThis property is included for form control compatibility and can be used interchangeably with the checked property."
193
199
  },
194
200
  "attribute": "value",
195
201
  "reflect": true,
@@ -34,6 +34,8 @@ export const VegaInputSelectRenderPrefixIconInternalOverridden = new VegaInterna
34
34
  export const VegaDropdownSearchInternalOverridden = new VegaInternalEventID('VegaDropdownSearchInternalOverridden');
35
35
  export const VegaInternalSidenavLinkClick = new VegaInternalEventID('sidenavLinkClick');
36
36
  export const VegaInternalLeftNavGroupExpand = new VegaInternalEventID('leftNavGroupExpand');
37
+ export const VegaInternalLeftNavLinkSelected = new VegaInternalEventID('leftNavLinkSelected');
38
+ export const VegaInternalInitializeLeftNavLinkSelected = new VegaInternalEventID('initializeLeftNavLinkSelected');
37
39
  export const VegaInternalDropdownUpdateTarget = new VegaInternalEventID('dropdownUpdateTarget');
38
40
  export const VegaInternalRichTextEditorFlushChanges = new VegaInternalEventID('richTextEditorFlushChanges');
39
41
  export const VegaInternalRichTextEditorSelectionRangeChange = new VegaInternalEventID('richTextEditorSelectionRangeChange');