@heartlandone/vega 2.61.0 → 2.63.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 (444) hide show
  1. package/dist/cjs/{app-globals-7e624dd0.js → app-globals-8f5fa42a.js} +23 -15
  2. package/dist/cjs/base-renderer-0a3b62b7.js +9 -0
  3. package/dist/cjs/{child-nodes-event-prevent-slimmer-184fe3b2.js → child-nodes-event-prevent-slimmer-4e96270e.js} +1 -1
  4. package/dist/cjs/{code-block-ecb2df41.js → code-block-eb66d852.js} +73 -22
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-58a0f64c.js → component-value-history-controller-slimmer.abstract-62cdf04c.js} +16 -182
  6. package/dist/cjs/{design-token-16f74439.js → design-token-76bb47bd.js} +1 -1
  7. package/dist/cjs/{dom-node-subject-factory-4eb1fec2.js → dom-node-subject-observer-factory-58e3c010.js} +41 -0
  8. package/dist/cjs/{content-state-d7b8e70b.js → dto-renderer-manager-f3894490.js} +1647 -1501
  9. package/dist/cjs/{element-appender-slimmer-c4816142.js → element-appender-slimmer-e8dac628.js} +7 -8
  10. package/dist/cjs/{event-emit-slimmer-2da7c9d6.js → event-emit-slimmer-428d8802.js} +3 -4
  11. package/dist/cjs/{form-field-controller-slimmer-dab30e5c.js → form-field-controller-slimmer-cc6e53a4.js} +4 -5
  12. package/dist/cjs/{image-annotation-action-7eaab3ce.js → image-annotation-action-a628ec9b.js} +24 -81
  13. package/dist/cjs/{index-da628bba.js → index-5505e8dd.js} +3 -3
  14. package/dist/cjs/index.cjs.js +49 -23
  15. package/dist/cjs/{icon-manager-9072356d.js → internal-icon-manager-32f9ed63.js} +51 -0
  16. package/dist/cjs/{internal-vega-event-manager-7b87c2f4.js → internal-vega-event-manager-28b957c8.js} +73 -73
  17. package/dist/cjs/language-extension-20a1dba5.js +207 -0
  18. package/dist/cjs/loader.cjs.js +14 -12
  19. package/dist/cjs/{min-number-rule-965fc43d.js → min-number-rule-dc555309.js} +14 -8
  20. package/dist/cjs/{public-rules-21622bd0.js → public-rules-5d0f3a5f.js} +5 -5
  21. package/dist/cjs/range-cfc45f9e.js +178 -0
  22. package/dist/cjs/{responsive-format-facade-0d22ff78.js → responsive-format-facade-7e933525.js} +4 -3
  23. package/dist/cjs/{rich-text-editor-required-rule-8d7e441a.js → rich-text-editor-required-rule-72170c10.js} +2 -2
  24. package/dist/cjs/{string-input-formatter-slimmer-5a744e71.js → string-input-formatter-slimmer-f6c7a255.js} +4 -4
  25. package/dist/cjs/{style-formatter-a66813a2.js → style-formatter-702df81e.js} +1 -1
  26. package/dist/cjs/{sub-state-notify-slimmer-9602b5bb.js → sub-state-notify-slimmer-bb64fcfc.js} +4 -4
  27. package/dist/cjs/{sub-state-observer-slimmer-df7df5bb.js → sub-state-observer-slimmer-84175d61.js} +4 -4
  28. package/dist/cjs/{vega-skeleton-loader-controller-9c54f3aa.js → token-extension-23ccff1d.js} +679 -3
  29. package/dist/cjs/vega-accordion.cjs.entry.js +15 -16
  30. package/dist/cjs/vega-app-header-button.cjs.entry.js +20 -21
  31. package/dist/cjs/vega-banner.cjs.entry.js +7 -9
  32. package/dist/cjs/vega-box.cjs.entry.js +13 -12
  33. package/dist/cjs/vega-brand-logo.cjs.entry.js +1 -2
  34. package/dist/cjs/vega-breadcrumb.cjs.entry.js +44 -78
  35. package/dist/cjs/vega-button-circle.cjs.entry.js +16 -16
  36. package/dist/cjs/vega-button-group_2.cjs.entry.js +11 -12
  37. package/dist/cjs/vega-button-link.cjs.entry.js +22 -21
  38. package/dist/cjs/vega-button.cjs.entry.js +15 -15
  39. package/dist/cjs/vega-calendar_4.cjs.entry.js +22 -24
  40. package/dist/cjs/vega-card.cjs.entry.js +12 -11
  41. package/dist/cjs/vega-carousel.cjs.entry.js +13 -13
  42. package/dist/cjs/vega-checkbox_2.cjs.entry.js +12 -13
  43. package/dist/cjs/vega-chip.cjs.entry.js +17 -17
  44. package/dist/cjs/vega-code-block.cjs.entry.js +16 -17
  45. package/dist/cjs/vega-color-picker.cjs.entry.js +6 -7
  46. package/dist/cjs/vega-combo-box.cjs.entry.js +14 -15
  47. package/dist/cjs/vega-date-picker_2.cjs.entry.js +30 -31
  48. package/dist/cjs/vega-dialog_2.cjs.entry.js +27 -27
  49. package/dist/cjs/vega-divider.cjs.entry.js +12 -11
  50. package/dist/cjs/vega-dropdown_5.cjs.entry.js +32 -32
  51. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  52. package/dist/cjs/vega-field-label.cjs.entry.js +6 -7
  53. package/dist/cjs/vega-file-uploader.cjs.entry.js +15 -17
  54. package/dist/cjs/vega-flag-icon.cjs.entry.js +13 -13
  55. package/dist/cjs/vega-flex.cjs.entry.js +12 -11
  56. package/dist/cjs/vega-font.cjs.entry.js +12 -11
  57. package/dist/cjs/vega-form.cjs.entry.js +13 -14
  58. package/dist/cjs/vega-grid.cjs.entry.js +12 -11
  59. package/dist/cjs/vega-icon.cjs.entry.js +15 -14
  60. package/dist/cjs/vega-image-uploader.cjs.entry.js +18 -18
  61. package/dist/cjs/vega-input-credit-card.cjs.entry.js +14 -16
  62. package/dist/cjs/vega-input-numeric.cjs.entry.js +57 -12
  63. package/dist/cjs/vega-input-phone-number.cjs.entry.js +20 -21
  64. package/dist/cjs/vega-input-range.cjs.entry.js +11 -12
  65. package/dist/cjs/vega-input-select.cjs.entry.js +27 -28
  66. package/dist/cjs/vega-input.cjs.entry.js +13 -14
  67. package/dist/cjs/vega-item-toggle.cjs.entry.js +5 -6
  68. package/dist/cjs/vega-left-nav_5.cjs.entry.js +33 -34
  69. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +13 -12
  70. package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -3
  71. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +8 -9
  72. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +3 -4
  73. package/dist/cjs/vega-pagination.cjs.entry.js +18 -18
  74. package/dist/cjs/vega-popover_2.cjs.entry.js +18 -18
  75. package/dist/cjs/vega-progress-tracker.cjs.entry.js +5 -6
  76. package/dist/cjs/vega-radio_2.cjs.entry.js +13 -14
  77. package/dist/cjs/vega-rich-text-content.cjs.entry.js +53 -48
  78. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +387 -261
  79. package/dist/cjs/vega-segment-control.cjs.entry.js +5 -6
  80. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +20 -20
  81. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +13 -14
  82. package/dist/cjs/vega-sidenav_3.cjs.entry.js +24 -25
  83. package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -17
  84. package/dist/cjs/vega-stepper.cjs.entry.js +13 -14
  85. package/dist/cjs/vega-tab-group_2.cjs.entry.js +8 -9
  86. package/dist/cjs/vega-table_8.cjs.entry.js +58 -59
  87. package/dist/cjs/vega-textarea.cjs.entry.js +16 -11
  88. package/dist/cjs/vega-time-picker_2.cjs.entry.js +32 -24
  89. package/dist/cjs/vega-toggle-switch.cjs.entry.js +7 -8
  90. package/dist/cjs/vega-tooltip_2.cjs.entry.js +12 -12
  91. package/dist/cjs/vega.cjs.js +14 -12
  92. package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-collapsed-item-renderer.js +4 -13
  93. package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.js +19 -5
  94. package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +6 -5
  95. package/dist/collection/components/vega-button-link/vega-button-link.js +18 -19
  96. package/dist/collection/components/vega-input-numeric/slimmers/renderers/vega-input-numeric-renderer.js +27 -1
  97. package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +64 -0
  98. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +31 -0
  99. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +10 -0
  100. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +11 -0
  101. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.js +6 -3
  102. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +12 -6
  103. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/code-block-remove-self-strategy.js +2 -2
  104. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/insert-node-to-nearest-root-strategy.js +57 -0
  105. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/update-cursor-position-strategy.js +2 -1
  106. package/dist/collection/components/vega-rich-text-editor/dto/actions/insert-node-to-nearest-root-action.js +14 -0
  107. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
  108. package/dist/collection/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.js +5 -2
  109. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +12 -0
  110. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +36 -10
  111. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.js +10 -4
  112. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +145 -0
  113. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +97 -0
  114. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +113 -0
  115. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +90 -0
  116. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-action.js +16 -0
  117. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.js +20 -0
  118. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +60 -0
  119. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-extension.js +38 -0
  120. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +67 -0
  121. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +55 -0
  122. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +88 -0
  123. package/dist/collection/components/vega-rich-text-editor/public-api.js +38 -0
  124. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +97 -0
  125. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/focus-controller.js +8 -6
  126. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +12 -0
  127. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +9 -3
  128. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +43 -18
  129. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +3 -1
  130. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.js +6 -6
  131. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.js +9 -9
  132. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +41 -0
  133. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +44 -11
  134. package/dist/collection/components/vega-textarea/vega-textarea.js +28 -1
  135. package/dist/collection/components/vega-time-picker/vega-time-picker.js +10 -2
  136. package/dist/collection/global/scripts/before-vega-load.js +9 -0
  137. package/dist/collection/helpers/code-format/test/code-formatter.test.js +1 -1
  138. package/dist/collection/helpers/public-api.js +1 -1
  139. package/dist/collection/helpers/rte-manager/dto-action-strategy-manager.js +2 -0
  140. package/dist/collection/helpers/validator/rules/max-number-rule.js +7 -4
  141. package/dist/collection/helpers/validator/rules/min-number-rule.js +7 -4
  142. package/dist/esm/{app-globals-ce54f0ac.js → app-globals-aaff0b25.js} +13 -5
  143. package/dist/esm/base-renderer-101f6d04.js +7 -0
  144. package/dist/esm/{child-nodes-event-prevent-slimmer-2a3115ae.js → child-nodes-event-prevent-slimmer-7fe3dc57.js} +1 -1
  145. package/dist/esm/{code-block-89a4dd13.js → code-block-68300b47.js} +67 -17
  146. package/dist/esm/{component-value-history-controller-slimmer.abstract-95b199df.js → component-value-history-controller-slimmer.abstract-ac2f1bfd.js} +13 -179
  147. package/dist/esm/{design-token-eaa7c221.js → design-token-1a36307e.js} +1 -1
  148. package/dist/esm/{dom-node-subject-factory-3c2e13f1.js → dom-node-subject-observer-factory-c7bc3035.js} +41 -1
  149. package/dist/esm/{content-state-fc47457c.js → dto-renderer-manager-af66bbd9.js} +1643 -1502
  150. package/dist/esm/{element-appender-slimmer-ce83db8a.js → element-appender-slimmer-fe68ec2d.js} +3 -4
  151. package/dist/esm/{event-emit-slimmer-4428ce26.js → event-emit-slimmer-3922d816.js} +2 -3
  152. package/dist/esm/{form-field-controller-slimmer-6e69ca4e.js → form-field-controller-slimmer-f7e8845b.js} +2 -3
  153. package/dist/esm/{image-annotation-action-53812eb7.js → image-annotation-action-f61c2693.js} +20 -76
  154. package/dist/esm/{index-1d479c88.js → index-7fe93427.js} +1 -1
  155. package/dist/esm/index.js +13 -10
  156. package/dist/esm/{icon-manager-2ee1c619.js → internal-icon-manager-f0486245.js} +51 -1
  157. package/dist/esm/{internal-vega-event-manager-a654cf8a.js → internal-vega-event-manager-cb06e987.js} +1 -1
  158. package/dist/esm/language-extension-1ada2a9d.js +204 -0
  159. package/dist/esm/loader.js +14 -12
  160. package/dist/esm/{min-number-rule-86421853.js → min-number-rule-2f1cfbf9.js} +14 -8
  161. package/dist/esm/{public-rules-095284f6.js → public-rules-9f62069a.js} +5 -5
  162. package/dist/esm/range-c2eeb794.js +176 -0
  163. package/dist/esm/{responsive-format-facade-86b6de3b.js → responsive-format-facade-5711c77d.js} +4 -3
  164. package/dist/esm/{rich-text-editor-required-rule-4e8d2db8.js → rich-text-editor-required-rule-de738309.js} +1 -1
  165. package/dist/esm/{string-input-formatter-slimmer-60897659.js → string-input-formatter-slimmer-69117deb.js} +2 -2
  166. package/dist/esm/{style-formatter-a0719a8f.js → style-formatter-2479dc61.js} +1 -1
  167. package/dist/esm/{sub-state-notify-slimmer-ee730968.js → sub-state-notify-slimmer-4252a90e.js} +1 -1
  168. package/dist/esm/{sub-state-observer-slimmer-d474634d.js → sub-state-observer-slimmer-baa8853a.js} +1 -1
  169. package/dist/esm/{vega-skeleton-loader-controller-394a6026.js → token-extension-6fc5e1f5.js} +672 -4
  170. package/dist/esm/vega-accordion.entry.js +13 -14
  171. package/dist/esm/vega-app-header-button.entry.js +14 -15
  172. package/dist/esm/vega-banner.entry.js +4 -6
  173. package/dist/esm/vega-box.entry.js +13 -12
  174. package/dist/esm/vega-brand-logo.entry.js +1 -2
  175. package/dist/esm/vega-breadcrumb.entry.js +42 -76
  176. package/dist/esm/vega-button-circle.entry.js +14 -14
  177. package/dist/esm/vega-button-group_2.entry.js +6 -7
  178. package/dist/esm/vega-button-link.entry.js +20 -19
  179. package/dist/esm/vega-button.entry.js +13 -13
  180. package/dist/esm/vega-calendar_4.entry.js +7 -9
  181. package/dist/esm/vega-card.entry.js +12 -11
  182. package/dist/esm/vega-carousel.entry.js +12 -12
  183. package/dist/esm/vega-checkbox_2.entry.js +6 -7
  184. package/dist/esm/vega-chip.entry.js +14 -14
  185. package/dist/esm/vega-code-block.entry.js +8 -9
  186. package/dist/esm/vega-color-picker.entry.js +5 -6
  187. package/dist/esm/vega-combo-box.entry.js +6 -7
  188. package/dist/esm/vega-date-picker_2.entry.js +16 -17
  189. package/dist/esm/vega-dialog_2.entry.js +15 -15
  190. package/dist/esm/vega-divider.entry.js +12 -11
  191. package/dist/esm/vega-dropdown_5.entry.js +15 -15
  192. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  193. package/dist/esm/vega-field-label.entry.js +4 -5
  194. package/dist/esm/vega-file-uploader.entry.js +6 -8
  195. package/dist/esm/vega-flag-icon.entry.js +12 -12
  196. package/dist/esm/vega-flex.entry.js +12 -11
  197. package/dist/esm/vega-font.entry.js +12 -11
  198. package/dist/esm/vega-form.entry.js +7 -8
  199. package/dist/esm/vega-grid.entry.js +12 -11
  200. package/dist/esm/vega-icon.entry.js +12 -11
  201. package/dist/esm/vega-image-uploader.entry.js +12 -12
  202. package/dist/esm/vega-input-credit-card.entry.js +7 -9
  203. package/dist/esm/vega-input-numeric.entry.js +54 -9
  204. package/dist/esm/vega-input-phone-number.entry.js +12 -13
  205. package/dist/esm/vega-input-range.entry.js +7 -8
  206. package/dist/esm/vega-input-select.entry.js +14 -15
  207. package/dist/esm/vega-input.entry.js +8 -9
  208. package/dist/esm/vega-item-toggle.entry.js +3 -4
  209. package/dist/esm/vega-left-nav_5.entry.js +14 -15
  210. package/dist/esm/vega-loader-wrapper_2.entry.js +11 -10
  211. package/dist/esm/vega-page-notification_2.entry.js +1 -2
  212. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -4
  213. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -2
  214. package/dist/esm/vega-pagination.entry.js +10 -10
  215. package/dist/esm/vega-popover_2.entry.js +14 -14
  216. package/dist/esm/vega-progress-tracker.entry.js +3 -4
  217. package/dist/esm/vega-radio_2.entry.js +6 -7
  218. package/dist/esm/vega-rich-text-content.entry.js +24 -19
  219. package/dist/esm/vega-rich-text-editor_4.entry.js +342 -216
  220. package/dist/esm/vega-segment-control.entry.js +4 -5
  221. package/dist/esm/vega-selection-chip_2.entry.js +15 -15
  222. package/dist/esm/vega-selection-tile_2.entry.js +7 -8
  223. package/dist/esm/vega-sidenav_3.entry.js +16 -17
  224. package/dist/esm/vega-signature-capture.entry.js +14 -15
  225. package/dist/esm/vega-stepper.entry.js +7 -8
  226. package/dist/esm/vega-tab-group_2.entry.js +4 -5
  227. package/dist/esm/vega-table_8.entry.js +12 -13
  228. package/dist/esm/vega-textarea.entry.js +13 -8
  229. package/dist/esm/vega-time-picker_2.entry.js +22 -14
  230. package/dist/esm/vega-toggle-switch.entry.js +6 -7
  231. package/dist/esm/vega-tooltip_2.entry.js +12 -12
  232. package/dist/esm/vega.js +14 -12
  233. package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-collapsed-item-renderer.d.ts +1 -1
  234. package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.d.ts +2 -1
  235. package/dist/types/components/vega-breadcrumb/types.d.ts +1 -0
  236. package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +2 -2
  237. package/dist/types/components/vega-button-link/vega-button-link.d.ts +5 -8
  238. package/dist/types/components/vega-input-numeric/slimmers/renderers/vega-input-numeric-renderer.d.ts +3 -0
  239. package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +12 -0
  240. package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +8 -0
  241. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +2 -1
  242. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +8 -0
  243. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/insert-node-to-nearest-root-strategy.d.ts +18 -0
  244. package/dist/types/components/vega-rich-text-editor/dto/actions/insert-node-to-nearest-root-action.d.ts +14 -0
  245. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
  246. package/dist/types/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.d.ts +4 -2
  247. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +2 -3
  248. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
  249. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +11 -1
  250. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.d.ts +3 -3
  251. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +95 -2
  252. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +82 -0
  253. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +50 -0
  254. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +54 -0
  255. package/dist/types/components/vega-rich-text-editor/extensions/tokens/insert-token-node-action.d.ts +16 -0
  256. package/dist/types/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.d.ts +12 -0
  257. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +24 -0
  258. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +14 -0
  259. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +38 -0
  260. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +39 -0
  261. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +47 -0
  262. package/dist/types/components/vega-rich-text-editor/interface.d.ts +52 -1
  263. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +29 -0
  264. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +44 -0
  265. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +10 -1
  266. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.d.ts +6 -0
  267. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +4 -4
  268. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.d.ts +7 -7
  269. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +10 -0
  270. package/dist/types/components/vega-textarea/vega-textarea.d.ts +6 -0
  271. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +8 -0
  272. package/dist/types/components.d.ts +59 -10
  273. package/dist/types/helpers/public-api.d.ts +1 -1
  274. package/dist/types/helpers/validator/rules/max-number-rule.d.ts +3 -1
  275. package/dist/types/helpers/validator/rules/min-number-rule.d.ts +3 -1
  276. package/dist/types/types/components.type.d.ts +1 -0
  277. package/dist/types/types/public-api.d.ts +11 -0
  278. package/dist/vega/index.esm.js +1 -1
  279. package/dist/vega/p-03cc47b7.entry.js +1 -0
  280. package/dist/vega/p-07836d27.entry.js +1 -0
  281. package/dist/vega/p-079f5d94.entry.js +1 -0
  282. package/dist/vega/p-09cb98f3.entry.js +1 -0
  283. package/dist/vega/{p-fb232e29.entry.js → p-0b91bb73.entry.js} +1 -1
  284. package/dist/vega/p-15a78afd.entry.js +1 -0
  285. package/dist/vega/p-16075b30.entry.js +1 -0
  286. package/dist/vega/{p-67101f43.entry.js → p-1c08077c.entry.js} +1 -1
  287. package/dist/vega/{p-c5e862aa.js → p-1da54ff3.js} +1 -1
  288. package/dist/vega/p-20a180e4.js +1 -0
  289. package/dist/vega/p-2591f217.entry.js +1 -0
  290. package/dist/vega/p-25ddb070.entry.js +1 -0
  291. package/dist/vega/p-2788afe7.entry.js +1 -0
  292. package/dist/vega/p-2a1b3108.entry.js +1 -0
  293. package/dist/vega/p-2ee4def0.js +1 -0
  294. package/dist/vega/p-2f88ba36.entry.js +1 -0
  295. package/dist/vega/{p-f2a1fe6a.js → p-39c185a5.js} +1 -1
  296. package/dist/vega/p-3b1bedaf.entry.js +1 -0
  297. package/dist/vega/p-3c96bbe1.entry.js +1 -0
  298. package/dist/vega/p-3cdbee7e.js +1 -0
  299. package/dist/vega/p-3d0d8a21.entry.js +1 -0
  300. package/dist/vega/p-3d53858c.entry.js +1 -0
  301. package/dist/vega/{p-927cab0c.entry.js → p-3f3bbaaa.entry.js} +2 -2
  302. package/dist/vega/p-42c364e0.entry.js +1 -0
  303. package/dist/vega/p-4f56a427.entry.js +1 -0
  304. package/dist/vega/p-4f5a2b0c.entry.js +1 -0
  305. package/dist/vega/p-51d40b0d.entry.js +1 -0
  306. package/dist/vega/p-5420c1d4.entry.js +1 -0
  307. package/dist/vega/p-56ff8559.entry.js +1 -0
  308. package/dist/vega/p-589b7ea3.entry.js +1 -0
  309. package/dist/vega/p-5d3c6a06.entry.js +1 -0
  310. package/dist/vega/p-5dec47da.entry.js +1 -0
  311. package/dist/vega/p-5f377954.js +1 -1
  312. package/dist/vega/p-6244b0ad.entry.js +1 -0
  313. package/dist/vega/p-63212cc1.js +1 -0
  314. package/dist/vega/p-6585cfd5.entry.js +1 -0
  315. package/dist/vega/p-6ba27010.js +1 -0
  316. package/dist/vega/{p-129f5938.js → p-6caa6bb2.js} +1 -1
  317. package/dist/vega/p-74ac2a48.js +1 -0
  318. package/dist/vega/p-76c7538a.entry.js +1 -0
  319. package/dist/vega/p-7d8eaca9.entry.js +1 -0
  320. package/dist/vega/p-7da6e7bd.js +1 -0
  321. package/dist/vega/p-81765b4b.entry.js +1 -0
  322. package/dist/vega/p-81fbf18f.entry.js +1 -0
  323. package/dist/vega/p-8682ee0a.entry.js +1 -0
  324. package/dist/vega/p-893d5dfa.js +1 -0
  325. package/dist/vega/p-8a484812.entry.js +1 -0
  326. package/dist/vega/p-8a6b820a.entry.js +1 -0
  327. package/dist/vega/p-8c9ea6f4.js +1 -0
  328. package/dist/vega/p-8e58d6cb.entry.js +1 -0
  329. package/dist/vega/p-8e812dca.entry.js +1 -0
  330. package/dist/vega/p-8f056ac2.js +1 -0
  331. package/dist/vega/{p-e66aef91.entry.js → p-9125ba84.entry.js} +1 -1
  332. package/dist/vega/p-92469fa1.entry.js +1 -0
  333. package/dist/vega/p-9b2d8516.entry.js +1 -0
  334. package/dist/vega/p-9ca0bdcc.js +1 -0
  335. package/dist/vega/p-a61e4bba.entry.js +1 -0
  336. package/dist/vega/p-a646b66d.js +1 -0
  337. package/dist/vega/p-a7b5f497.js +1 -0
  338. package/dist/vega/p-b1054e18.entry.js +1 -0
  339. package/dist/vega/p-b1a5ff74.entry.js +1 -0
  340. package/dist/vega/p-b32f7aac.entry.js +1 -0
  341. package/dist/vega/{p-dc6f45af.entry.js → p-baafe7d9.entry.js} +1 -1
  342. package/dist/vega/{p-3a6abcd7.entry.js → p-bb51e020.entry.js} +1 -1
  343. package/dist/vega/{p-e764acd5.js → p-bb61f015.js} +1 -1
  344. package/dist/vega/p-bc0ae89a.entry.js +1 -0
  345. package/dist/vega/p-bd39af8a.entry.js +1 -0
  346. package/dist/vega/{p-cd18f0fe.js → p-bdd9ef3b.js} +1 -1
  347. package/dist/vega/p-c08ba4d7.entry.js +1 -0
  348. package/dist/vega/{p-5f85811c.entry.js → p-c167fa41.entry.js} +1 -1
  349. package/dist/vega/{p-7ecf65ec.js → p-c2377afa.js} +1 -1
  350. package/dist/vega/p-c671f57e.js +1 -0
  351. package/dist/vega/p-c6a354b1.js +1 -0
  352. package/dist/vega/p-c7726252.js +1 -0
  353. package/dist/vega/p-ce1766fa.js +1 -0
  354. package/dist/vega/p-cfb2af9c.entry.js +1 -0
  355. package/dist/vega/{p-3bf95faf.entry.js → p-d2790023.entry.js} +2 -2
  356. package/dist/vega/p-d3bbfb1b.js +1 -0
  357. package/dist/vega/{p-5faa7313.entry.js → p-d9617358.entry.js} +1 -1
  358. package/dist/vega/p-d982babe.entry.js +1 -0
  359. package/dist/vega/p-da6369d4.entry.js +1 -0
  360. package/dist/vega/p-dcae53cf.entry.js +1 -0
  361. package/dist/vega/p-ddfad815.entry.js +1 -0
  362. package/dist/vega/p-e00ed9bd.entry.js +1 -0
  363. package/dist/vega/p-ebfc5739.entry.js +1 -0
  364. package/dist/vega/p-f0ff4463.js +1 -0
  365. package/dist/vega/{p-aeccc7f8.js → p-f1436035.js} +1 -1
  366. package/dist/vega/p-ff3a8907.entry.js +1 -0
  367. package/dist/vega/vega.esm.js +1 -1
  368. package/package.json +1 -1
  369. package/dist/cjs/dom-node-subject-observer-factory-15130e50.js +0 -45
  370. package/dist/cjs/internal-icon-manager-f8677abb.js +0 -55
  371. package/dist/collection/components/vega-breadcrumb/slimmers/controllers/vega-breadcrumb-click-controller.js +0 -43
  372. package/dist/esm/dom-node-subject-observer-factory-1e456cd4.js +0 -43
  373. package/dist/esm/internal-icon-manager-7eac52c8.js +0 -53
  374. package/dist/types/components/vega-breadcrumb/slimmers/controllers/vega-breadcrumb-click-controller.d.ts +0 -26
  375. package/dist/vega/p-0070e970.entry.js +0 -1
  376. package/dist/vega/p-0169af6b.entry.js +0 -1
  377. package/dist/vega/p-03e9cbc8.js +0 -1
  378. package/dist/vega/p-04341cd4.entry.js +0 -1
  379. package/dist/vega/p-0664ca9c.js +0 -1
  380. package/dist/vega/p-074b73f8.js +0 -1
  381. package/dist/vega/p-08fb66a4.entry.js +0 -1
  382. package/dist/vega/p-0cf35281.entry.js +0 -1
  383. package/dist/vega/p-0e75ddb2.entry.js +0 -1
  384. package/dist/vega/p-13cb5a04.entry.js +0 -1
  385. package/dist/vega/p-18223240.js +0 -1
  386. package/dist/vega/p-19ce9ae6.js +0 -1
  387. package/dist/vega/p-27f922fe.entry.js +0 -1
  388. package/dist/vega/p-2c7b7dd6.entry.js +0 -1
  389. package/dist/vega/p-310f9e76.entry.js +0 -1
  390. package/dist/vega/p-330d7ba8.js +0 -1
  391. package/dist/vega/p-34fdbe7a.js +0 -1
  392. package/dist/vega/p-3d6c302d.js +0 -1
  393. package/dist/vega/p-42563036.entry.js +0 -1
  394. package/dist/vega/p-441a681b.js +0 -1
  395. package/dist/vega/p-4a357f30.entry.js +0 -1
  396. package/dist/vega/p-4e68dfd9.js +0 -1
  397. package/dist/vega/p-4e8b6eb6.entry.js +0 -1
  398. package/dist/vega/p-50dd3cf1.js +0 -1
  399. package/dist/vega/p-518722aa.js +0 -1
  400. package/dist/vega/p-5422fdc4.entry.js +0 -1
  401. package/dist/vega/p-5c36a6cb.entry.js +0 -1
  402. package/dist/vega/p-5d095f9b.entry.js +0 -1
  403. package/dist/vega/p-68806f9c.entry.js +0 -1
  404. package/dist/vega/p-6cf490d9.entry.js +0 -1
  405. package/dist/vega/p-6def20e1.js +0 -1
  406. package/dist/vega/p-78d3f99b.entry.js +0 -1
  407. package/dist/vega/p-792715f3.js +0 -1
  408. package/dist/vega/p-7a201c6e.entry.js +0 -1
  409. package/dist/vega/p-7c22a1c3.entry.js +0 -1
  410. package/dist/vega/p-7f329473.entry.js +0 -1
  411. package/dist/vega/p-80f1b680.js +0 -1
  412. package/dist/vega/p-82beb586.entry.js +0 -1
  413. package/dist/vega/p-84eb131b.entry.js +0 -1
  414. package/dist/vega/p-8c46e116.js +0 -1
  415. package/dist/vega/p-909820dd.entry.js +0 -1
  416. package/dist/vega/p-989e141d.entry.js +0 -1
  417. package/dist/vega/p-a29e5d32.js +0 -1
  418. package/dist/vega/p-a3942d0b.entry.js +0 -1
  419. package/dist/vega/p-a66533c1.entry.js +0 -1
  420. package/dist/vega/p-a9b831d8.entry.js +0 -1
  421. package/dist/vega/p-b1d0e4cb.entry.js +0 -1
  422. package/dist/vega/p-b34f9891.entry.js +0 -1
  423. package/dist/vega/p-b820e42f.entry.js +0 -1
  424. package/dist/vega/p-c4677b0c.entry.js +0 -1
  425. package/dist/vega/p-c467fe81.entry.js +0 -1
  426. package/dist/vega/p-c7762c86.entry.js +0 -1
  427. package/dist/vega/p-c9e57cf1.entry.js +0 -1
  428. package/dist/vega/p-d0b3e319.entry.js +0 -1
  429. package/dist/vega/p-d7b4ffed.entry.js +0 -1
  430. package/dist/vega/p-e4586f13.entry.js +0 -1
  431. package/dist/vega/p-e71c4a09.entry.js +0 -1
  432. package/dist/vega/p-ea66d9f7.entry.js +0 -1
  433. package/dist/vega/p-ebbaa112.entry.js +0 -1
  434. package/dist/vega/p-ec6819fe.entry.js +0 -1
  435. package/dist/vega/p-ec9a8f81.entry.js +0 -1
  436. package/dist/vega/p-ed01328c.entry.js +0 -1
  437. package/dist/vega/p-ed798cd4.entry.js +0 -1
  438. package/dist/vega/p-edb71a72.entry.js +0 -1
  439. package/dist/vega/p-f08a4adf.js +0 -1
  440. package/dist/vega/p-f4e23c23.entry.js +0 -1
  441. package/dist/vega/p-f825e8a2.entry.js +0 -1
  442. package/dist/vega/p-f9deb43e.entry.js +0 -1
  443. package/dist/vega/p-fdd930a9.entry.js +0 -1
  444. package/dist/vega/p-fe52c370.entry.js +0 -1
@@ -1,17 +1,19 @@
1
1
  'use strict';
2
2
 
3
3
  const featureFlagController = require('./feature-flag-controller-ce2162c8.js');
4
- const vegaSkeletonLoaderController = require('./vega-skeleton-loader-controller-9c54f3aa.js');
4
+ const tokenExtension = require('./token-extension-23ccff1d.js');
5
5
  const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
6
6
  const vegaEnvManager = require('./vega-env-manager-23b8b23c.js');
7
- const iconManager = require('./icon-manager-9072356d.js');
7
+ const internalIconManager = require('./internal-icon-manager-32f9ed63.js');
8
8
  require('./wait-for-vega-handler-5469ff80.js');
9
9
  require('./ui-4ce1fa08.js');
10
10
  const translation = require('./translation-cde4dce3.js');
11
- const contentState = require('./content-state-d7b8e70b.js');
11
+ const dtoRendererManager = require('./dto-renderer-manager-f3894490.js');
12
+ const codeBlock = require('./code-block-eb66d852.js');
12
13
  const typography = require('./typography-4560e7f1.js');
13
14
  const validCreditCardNumberRule = require('./valid-credit-card-number-rule-ce5c9147.js');
14
- const index$1 = require('./index-da628bba.js');
15
+ const index$1 = require('./index-5505e8dd.js');
16
+ const languageExtension = require('./language-extension-20a1dba5.js');
15
17
  const staticSubjectTitle = require('./static-subject-title-85732e0f.js');
16
18
  const changeManager = require('./change-manager-a297e4d2.js');
17
19
  const observer = require('./observer-f49483e8.js');
@@ -212,19 +214,19 @@ function enableFeatureFlagFromClientGlobal() {
212
214
  * Inject VegaLoader to global as a public api
213
215
  */
214
216
  function injectVegaLoaderIntoGlobal() {
215
- globalThis['VegaLoader'] = vegaSkeletonLoaderController.VegaLoader;
217
+ globalThis['VegaLoader'] = tokenExtension.VegaLoader;
216
218
  }
217
219
  /**
218
220
  * Inject VegaNotify to global as a public api
219
221
  */
220
222
  function injectVegaNotifyIntoGlobal() {
221
- globalThis.VegaNotify = vegaSkeletonLoaderController.VegaNotify;
223
+ globalThis.VegaNotify = tokenExtension.VegaNotify;
222
224
  }
223
225
  /**
224
226
  * Inject VegaThemeManager to global as a public api
225
227
  */
226
228
  function injectVegaThemeManagerIntoGlobal() {
227
- globalThis.VegaThemeManager = vegaSkeletonLoaderController.VegaThemeManager;
229
+ globalThis.VegaThemeManager = tokenExtension.VegaThemeManager;
228
230
  }
229
231
  /**
230
232
  * Inject VegaLogLevel to global as a public api
@@ -236,7 +238,7 @@ function injectVegaLogLevelIntoGlobal() {
236
238
  * Inject VegaDialog to global as a public api
237
239
  */
238
240
  function injectVegaDialogIntoGlobal() {
239
- globalThis.VegaDialog = vegaSkeletonLoaderController.VegaDialog;
241
+ globalThis.VegaDialog = tokenExtension.VegaDialog;
240
242
  }
241
243
  /**
242
244
  * register global vega slimmers
@@ -248,7 +250,7 @@ function registerGlobalVegaSlimmers() {
248
250
  * Inject setEventSemantics to global as a public api
249
251
  */
250
252
  function injectSetEventSemanticsIntoGlobal() {
251
- globalThis.VegaEventManager = vegaSkeletonLoaderController.VegaEventManager;
253
+ globalThis.VegaEventManager = tokenExtension.VegaEventManager;
252
254
  }
253
255
  /**
254
256
  * Inject Vega typography stylesheet
@@ -273,13 +275,13 @@ function injectVegaTypography() {
273
275
  * Inject VegaIconManager to global as a public api
274
276
  */
275
277
  function injectVegaIconManager() {
276
- globalThis.VegaIconManager = iconManager.VegaIconManager;
278
+ globalThis.VegaIconManager = internalIconManager.VegaIconManager;
277
279
  }
278
280
  /**
279
281
  * Inject VegaZIndexManager to global as a public api
280
282
  */
281
283
  function injectVegaZIndexManagerIntoGlobal() {
282
- globalThis.VegaZIndexManager = vegaSkeletonLoaderController.VegaZIndexManager;
284
+ globalThis.VegaZIndexManager = tokenExtension.VegaZIndexManager;
283
285
  }
284
286
  /**
285
287
  * Inject ValidCreditCardNumberRule to global as a public api.
@@ -311,7 +313,7 @@ function injectWaitForVegaIntoGlobal() {
311
313
  * Inject VegaSkeletonLoader to global as a public api
312
314
  */
313
315
  function injectVegaSkeletonLoaderIntoGlobal() {
314
- globalThis.VegaSkeletonLoader = vegaSkeletonLoaderController.VegaSkeletonLoader;
316
+ globalThis.VegaSkeletonLoader = tokenExtension.VegaSkeletonLoader;
315
317
  }
316
318
  /**
317
319
  * Inject VegaTranslation to global as a public api
@@ -322,15 +324,21 @@ function injectVegaTranslationIntoGlobal() {
322
324
  }
323
325
  /**
324
326
  * Inject VegaRTEContent to global as a public api
327
+ * Inject VegaRTETokenExtension to global as a public api
328
+ * Inject VegaRTELanguageExtension to global as a public api
329
+ * Inject VegaRTEPresetToolbarItems to global as a variable
325
330
  */
326
331
  function injectVegaRichTextEditorClassIntoGlobal() {
327
- globalThis.VegaRTEContent = contentState.VegaRTEContent;
332
+ globalThis.VegaRTEContent = dtoRendererManager.VegaRTEContent;
333
+ globalThis.VegaRTETokenExtension = tokenExtension.VegaRTETokenExtension;
334
+ globalThis.VegaRTELanguageExtension = languageExtension.VegaRTELanguageExtension;
335
+ globalThis.VegaRTEPresetToolbarItems = codeBlock.VegaRTEPresetToolbarItems;
328
336
  }
329
337
  /**
330
338
  * Inject VegaPublicValidationRules to global as a public api
331
339
  */
332
340
  function injectVegaPublicValidationRules() {
333
- void Promise.resolve().then(function () { return require('./public-rules-21622bd0.js'); }).then((module) => {
341
+ void Promise.resolve().then(function () { return require('./public-rules-5d0f3a5f.js'); }).then((module) => {
334
342
  Object.entries(module).forEach(([name, value]) => {
335
343
  globalThis[name] = value;
336
344
  });
@@ -341,7 +349,7 @@ function injectVegaPublicValidationRules() {
341
349
  */
342
350
  function applyBrandingFromClientGlobal() {
343
351
  if (globalThis['VegaThemeManagerApplyBranding']) {
344
- vegaSkeletonLoaderController.VegaThemeManager.applyBranding(globalThis['VegaThemeManagerApplyBranding']);
352
+ tokenExtension.VegaThemeManager.applyBranding(globalThis['VegaThemeManagerApplyBranding']);
345
353
  }
346
354
  }
347
355
 
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Base renderer class for the rich text editor.
5
+ */
6
+ class VegaRTEBaseRenderer {
7
+ }
8
+
9
+ exports.VegaRTEBaseRenderer = VegaRTEBaseRenderer;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
4
- const internalVegaEventManager = require('./internal-vega-event-manager-7b87c2f4.js');
4
+ const internalVegaEventManager = require('./internal-vega-event-manager-28b957c8.js');
5
5
  const vegaEnvManager = require('./vega-env-manager-23b8b23c.js');
6
6
  const featureFlagController = require('./feature-flag-controller-ce2162c8.js');
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const changeManager = require('./change-manager-a297e4d2.js');
4
- const domNodeSubjectFactory = require('./dom-node-subject-factory-4eb1fec2.js');
4
+ const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-58e3c010.js');
5
5
  const vegaInternalEventId = require('./vega-internal-event-id-9647aaf8.js');
6
6
  const string = require('./string-39438062.js');
7
7
  const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
@@ -150,6 +150,7 @@ exports.ModifyContentActionType = void 0;
150
150
  ModifyContentActionType["DELETE_LINK_GROUP"] = "DELETE_LINK_GROUP";
151
151
  ModifyContentActionType["UPDATE_CURSOR_POSITION"] = "UPDATE_CURSOR_POSITION";
152
152
  ModifyContentActionType["INSERT_TEXT_TO_DECORATOR_NODE"] = "INSERT_TEXT_TO_DECORATOR_NODE";
153
+ ModifyContentActionType["INSERT_NODE_TO_NEAREST_ROOT"] = "INSERT_NODE_TO_NEAREST_ROOT";
153
154
  })(exports.ModifyContentActionType || (exports.ModifyContentActionType = {}));
154
155
  /**
155
156
  * Abstract class for update node content, delete node, insert node
@@ -438,6 +439,17 @@ class ActionHandleStrategyRegistry {
438
439
  globalSlimmerRegistry.LogUtility.error(`Type ${actionType} action handle strategy is not registered in class ${RTEInstance.constructor.name}`);
439
440
  }
440
441
  }
442
+ /**
443
+ * Check if the action type can be handled by strategy for the specific RTE instance.
444
+ *
445
+ * @param {string} actionType - The special action type or the action class name.
446
+ * @param {RTENode | RTEBlock} RTEInstance - The rich text editor node.
447
+ * @returns {boolean} - Whether the action type can be handled by the strategy.
448
+ */
449
+ static canHandle(actionType, RTEInstance) {
450
+ const strategy = ActionHandleStrategyRegistry.get(actionType, RTEInstance.constructor.name);
451
+ return strategy ? true : false;
452
+ }
441
453
  }
442
454
  ActionHandleStrategyRegistry.registry = new Map();
443
455
 
@@ -802,7 +814,7 @@ class RTEBlock {
802
814
  if (action.isFlushable) {
803
815
  const domNode = stateEntityRenderingRegistry.getDOMByEntity(this);
804
816
  if (domNode) {
805
- const nodeSubject = domNodeSubjectFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(domNode, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges);
817
+ const nodeSubject = domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(domNode, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges);
806
818
  if (nodeSubject) {
807
819
  changeManager.ChangeManager.notify(nodeSubject, {});
808
820
  }
@@ -1086,7 +1098,7 @@ class RTENode {
1086
1098
  flushChange() {
1087
1099
  const domNode = stateEntityRenderingRegistry.getDOMByEntity(this);
1088
1100
  if (domNode) {
1089
- const nodeSubject = domNodeSubjectFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(domNode, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges);
1101
+ const nodeSubject = domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(domNode, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges);
1090
1102
  if (nodeSubject) {
1091
1103
  changeManager.ChangeManager.notify(nodeSubject, {});
1092
1104
  }
@@ -1485,6 +1497,16 @@ const RTE_TEXT_COLORS = [
1485
1497
  },
1486
1498
  ];
1487
1499
  const ZERO_WIDTH_SPACE = '\u200b';
1500
+ const VegaRTEPresetToolbarItems = [
1501
+ ['textStyles'],
1502
+ ['bold', 'italic', 'underline', 'strikethrough', 'code'],
1503
+ ['textColor'],
1504
+ ['horizontalAlignment', 'bulletsNumbers'],
1505
+ ['moreIndent', 'lessIndent'],
1506
+ ['link'],
1507
+ ['image'],
1508
+ ['clearStyle'],
1509
+ ];
1488
1510
 
1489
1511
  /**
1490
1512
  * Annotation to make text with text color
@@ -1855,7 +1877,8 @@ class NodeSplitTextStrategy extends ActionHandleStrategy {
1855
1877
  if (noTextRangeSelected) {
1856
1878
  return this.insertNewNode(startOffset, target);
1857
1879
  }
1858
- if (this.shouldSplitSelection(selectionRangeAnnotation.range)) {
1880
+ if (this.shouldSplitSelection(selectionRangeAnnotation.range) &&
1881
+ target.isContentEditable()) {
1859
1882
  const splittedTextNodes = this.splitTextNode(selectionRangeAnnotation.range, target);
1860
1883
  if (item.annotationMap.has('LINK')) {
1861
1884
  item.apply(new LinkGroupNodeSplitAction(splittedTextNodes));
@@ -1882,10 +1905,12 @@ class NodeSplitTextStrategy extends ActionHandleStrategy {
1882
1905
  insertNewNode(startOffset, target) {
1883
1906
  const newNode = target.cloneWithText('');
1884
1907
  this.setApplyTargetNode(newNode);
1885
- if (startOffset === 0) {
1908
+ const index = target.parent.children.findIndex((node) => node === target);
1909
+ if (startOffset === 0 || (!target.isContentEditable() && startOffset === index)) {
1886
1910
  return [newNode, target];
1887
1911
  }
1888
- if (startOffset === target.text.length) {
1912
+ if (startOffset === target.text.length ||
1913
+ (!target.isContentEditable() && startOffset === index + 1)) {
1889
1914
  return [target, newNode];
1890
1915
  }
1891
1916
  const beforeNode = target.cloneWithText(target.text.substring(0, startOffset));
@@ -2473,17 +2498,29 @@ class RTETextNode extends RTENode {
2473
2498
  const textNode = new RTETextNode(richText.id, richText.text, parentBlock);
2474
2499
  const { annotations } = richText;
2475
2500
  if (annotations) {
2476
- textNode.annotationMap = new Map(Object.keys(annotations)
2477
- .map((type) => {
2478
- if (type === 'link' && annotations.link && parentBlock) {
2479
- parentBlock.apply(new LinkGroupAnnotationAction(annotations.link.groupKey, [textNode], 'link'));
2480
- }
2481
- return this.createAnnotationEntity(type, annotations[type], options);
2482
- })
2483
- .filter(typeGuard.isNonNullable));
2501
+ textNode.annotationMap = this.generateTextAnnotationMap(annotations, options, parentBlock, textNode);
2484
2502
  }
2485
2503
  return textNode;
2486
2504
  }
2505
+ /**
2506
+ * Generates a map of text annotations for the given set of annotations.
2507
+ *
2508
+ * @param {VegaRTETextAnnotations} annotations - The annotations to be converted into a map.
2509
+ * @param {VegaRTETransformOptions} options - Optional transformation options.
2510
+ * @param {RTETextBlock} parentBlock - The parent text block.
2511
+ * @param {RTETextNode} textNode - The text node.
2512
+ * @returns {NodeAnnotations} The map of text annotations.
2513
+ */
2514
+ static generateTextAnnotationMap(annotations, options, parentBlock, textNode) {
2515
+ return new Map(Object.keys(annotations)
2516
+ .map((type) => {
2517
+ if (type === 'link' && annotations.link && parentBlock && textNode) {
2518
+ parentBlock.apply(new LinkGroupAnnotationAction(annotations.link.groupKey, [textNode], 'link'));
2519
+ }
2520
+ return this.createAnnotationEntity(type, annotations[type], options);
2521
+ })
2522
+ .filter(typeGuard.isNonNullable));
2523
+ }
2487
2524
  /**
2488
2525
  * Creates different types of text annotations based on the provided type and value.
2489
2526
  *
@@ -2610,9 +2647,10 @@ class RTETextNode extends RTENode {
2610
2647
  if (this.isContentEditable()) {
2611
2648
  ActionHandleStrategyRegistry.register(exports.ModifyContentActionType.UPDATE_TEXT, dtoClassName, new NodeUpdateTextStrategy());
2612
2649
  ActionHandleStrategyRegistry.register(exports.ModifyContentActionType.REPLACE_SELECTED_TEXT, dtoClassName, new NodeReplaceSelectedTextStrategy());
2613
- ActionHandleStrategyRegistry.register(TextSplittableAction.name, dtoClassName, new NodeSplitTextStrategy());
2650
+ ActionHandleStrategyRegistry.register(exports.ModifyContentActionType.LINK_GROUP_NODE_SPLIT, dtoClassName, new LinkGroupNodeSplitStrategy());
2651
+ ActionHandleStrategyRegistry.register(LinkAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
2614
2652
  }
2615
- ActionHandleStrategyRegistry.register(exports.ModifyContentActionType.LINK_GROUP_NODE_SPLIT, dtoClassName, new LinkGroupNodeSplitStrategy());
2653
+ ActionHandleStrategyRegistry.register(TextSplittableAction.name, dtoClassName, new NodeSplitTextStrategy());
2616
2654
  ActionHandleStrategyRegistry.register(exports.ModifyContentActionType.DELETE_LINK_GROUP, dtoClassName, new DeleteLinkGroupStrategy());
2617
2655
  ActionHandleStrategyRegistry.register(AnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
2618
2656
  RTETextNode.registerActionStrategyStatus[dtoClassName] = true;
@@ -2661,6 +2699,18 @@ class RTETextNode extends RTENode {
2661
2699
  if (!(annotation instanceof SelectionRangeAnnotation)) {
2662
2700
  this.syncUpSelectedNodes(node);
2663
2701
  }
2702
+ /**
2703
+ * 1. Try to get the specific strategy for the action and node type first (e.g., LinkAnnotationAction on RTETextNode).
2704
+ * 2. If no specific strategy found, try to get the generic NodeUpdateAnnotationMapStrategy for AnnotationAction on RTETextNode.
2705
+ *
2706
+ * This is useful when we want to check if there is a specific strategy for an action-node combination first, we can use the specific strategy to check if the special toolbar button should be enabled or disabled.
2707
+ * TODO: Update the other annotation actions to follow this pattern. https://gethired.atlassian.net/browse/VD-7367
2708
+ */
2709
+ const strategy = ActionHandleStrategyRegistry.get(action.constructor.name, node.constructor.name);
2710
+ if (strategy) {
2711
+ strategy.execute(action, node);
2712
+ return;
2713
+ }
2664
2714
  const updateAnnotationMapStrategy = ActionHandleStrategyRegistry.get(AnnotationAction.name, RTETextNode.name);
2665
2715
  if (updateAnnotationMapStrategy) {
2666
2716
  updateAnnotationMapStrategy.execute(action, node);
@@ -2675,7 +2725,7 @@ class RTETextNode extends RTENode {
2675
2725
  syncUpSelectedNodes(selectedNode) {
2676
2726
  const currentNodeDom = stateEntityRenderingRegistry.getDOMByEntity(this);
2677
2727
  if (currentNodeDom) {
2678
- const nodeSubject = domNodeSubjectFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(currentNodeDom, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange);
2728
+ const nodeSubject = domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(currentNodeDom, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange);
2679
2729
  if (nodeSubject) {
2680
2730
  changeManager.ChangeManager.notify(nodeSubject, { node: selectedNode });
2681
2731
  }
@@ -3805,7 +3855,7 @@ class CodeBlockRemoveSelfStrategy extends BlockDeleteNodeContentStrategy {
3805
3855
  notifyUpdateSelection(focusNode, focusElement, offset, target) {
3806
3856
  const targetDom = stateEntityRenderingRegistry.getDOMByEntity(target);
3807
3857
  if (targetDom) {
3808
- const nodeSubject = domNodeSubjectFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(targetDom, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange);
3858
+ const nodeSubject = domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(targetDom, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange);
3809
3859
  if (nodeSubject) {
3810
3860
  changeManager.ChangeManager.notify(nodeSubject, {
3811
3861
  node: focusNode,
@@ -3822,8 +3872,8 @@ class CodeBlockRemoveSelfStrategy extends BlockDeleteNodeContentStrategy {
3822
3872
  * @returns {number} - The number value.
3823
3873
  */
3824
3874
  getRTENodeEndOffset(node) {
3825
- if (node && node.type !== 'CODE_BLOCK_NODE') {
3826
- return node['type'] !== 'IMAGE' ? node['text'].length : 1;
3875
+ if (node) {
3876
+ return node.getRangeEndOffset();
3827
3877
  }
3828
3878
  return 0;
3829
3879
  }
@@ -3866,7 +3916,7 @@ class SwitchOutFromCodeBlockStrategy extends ActionHandleStrategy {
3866
3916
  // Focus the next text node after value update.
3867
3917
  const currentNodeDom = stateEntityRenderingRegistry.getDOMByEntity(target);
3868
3918
  if (currentNodeDom) {
3869
- const nodeSubject = domNodeSubjectFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(currentNodeDom, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange);
3919
+ const nodeSubject = domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(currentNodeDom, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange);
3870
3920
  if (nodeSubject) {
3871
3921
  changeManager.ChangeManager.notify(nodeSubject, { node: textBlock.children[0] });
3872
3922
  }
@@ -4135,7 +4185,7 @@ class RTECodeBlock extends RTEBlock {
4135
4185
  if (action.isFlushable) {
4136
4186
  const domNode = stateEntityRenderingRegistry.getDOMByEntity(this);
4137
4187
  if (domNode) {
4138
- const nodeSubject = domNodeSubjectFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(domNode, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges);
4188
+ const nodeSubject = domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubjectFromParentNodeByEventId(domNode, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges);
4139
4189
  if (nodeSubject) {
4140
4190
  changeManager.ChangeManager.notify(nodeSubject, {});
4141
4191
  }
@@ -4223,5 +4273,6 @@ exports.TextStyleAnnotationAction = TextStyleAnnotationAction;
4223
4273
  exports.UnderlineAnnotationAction = UnderlineAnnotationAction;
4224
4274
  exports.UpdateCodeBlockAction = UpdateCodeBlockAction;
4225
4275
  exports.UpdateTextAction = UpdateTextAction;
4276
+ exports.VegaRTEPresetToolbarItems = VegaRTEPresetToolbarItems;
4226
4277
  exports.ZERO_WIDTH_SPACE = ZERO_WIDTH_SPACE;
4227
4278
  exports.stateEntityRenderingRegistry = stateEntityRenderingRegistry;
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
4
- const codeBlock = require('./code-block-ecb2df41.js');
4
+ const codeBlock = require('./code-block-eb66d852.js');
5
5
  const timer = require('./timer-5f33058b.js');
6
6
  const component = require('./component-1e352960.js');
7
7
  const changeManager = require('./change-manager-a297e4d2.js');
8
- const domNodeSubjectFactory = require('./dom-node-subject-factory-4eb1fec2.js');
8
+ const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-58e3c010.js');
9
9
  const vegaInternalEventId = require('./vega-internal-event-id-9647aaf8.js');
10
10
  const observer = require('./observer-f49483e8.js');
11
- const ui = require('./ui-4ce1fa08.js');
11
+ const range = require('./range-cfc45f9e.js');
12
12
  const synchronizeTaskQueue = require('./synchronize-task-queue-1ee80e94.js');
13
- const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-15130e50.js');
13
+ const ui = require('./ui-4ce1fa08.js');
14
14
  const keyboardManagerSlimmer = require('./keyboard-manager-slimmer-138a90e5.js');
15
15
 
16
16
  let processing = false;
@@ -226,178 +226,6 @@ __decorate$1([
226
226
  globalSlimmerRegistry.MapToComponentMethod('componentDidUpdate')
227
227
  ], AutoRunWhenReRenderTaskQueueSlimmer.prototype, "executeTaskHook", null);
228
228
 
229
- /** Manages selection range for a rich text editor, providing methods to set, sync, and create native ranges based on RTENodes and Nodes. */
230
- class RTERange {
231
- /**
232
- * Initial the rte range properties
233
- *
234
- * @param {Node} [startContainer] The range start element.
235
- * @param {Node} [endContainer] The range end element.
236
- * @param {number} [startOffset] The range start element content offset, default value is 0.
237
- * @param {number} [endOffset] The range end element content offset, default value is 0.
238
- * @param {RTENode} [startNode] The range start node, the start node could be null if the start element is root element.
239
- * @param {RTENode} [endNode] The range start node, the start node could be null if the start element is root element.
240
- * @param {Range} [nativeRange] The browser native range instance.
241
- */
242
- constructor(startContainer, endContainer, startOffset = 0, endOffset = 0, startNode, endNode, nativeRange) {
243
- this._startOffset = 0;
244
- this._endOffset = 0;
245
- this._startContainer = startContainer;
246
- this._endContainer = endContainer;
247
- this._startOffset = startOffset;
248
- this._endOffset = endOffset;
249
- this._startNode = startNode;
250
- this._endNode = endNode;
251
- if (nativeRange) {
252
- this._oldNativeRange = nativeRange;
253
- }
254
- }
255
- /**
256
- * Returns the start container as a Node or null if it is not set.
257
- * The start container could be null when the dom node should be create after re-render.
258
- *
259
- * @returns {Nullable<Node>} The range start element.
260
- */
261
- get startContainer() {
262
- return this._startContainer;
263
- }
264
- /**
265
- * Returns the end container as a Node or null if it is not set.
266
- * The end container could be null when the dom node should be create after re-render.
267
- *
268
- * @returns {Nullable<Node>} The range start element.
269
- */
270
- get endContainer() {
271
- return this._endContainer;
272
- }
273
- /**
274
- * Returns the range start RTE node as a RTENode or null if it is not set.
275
- * The start RTENode could be null when the range start node is the root element of the rich text editor.
276
- *
277
- * @returns {Nullable<RTENode>} The range start element.
278
- */
279
- get startNode() {
280
- return this._startNode;
281
- }
282
- /**
283
- * Returns the range end RTE node as a RTENode or null if it is not set.
284
- * The end RTENode could be null when the range end node is the root element of the rich text editor.
285
- *
286
- * @returns {Nullable<RTENode>} The range start element.
287
- */
288
- get endNode() {
289
- return this._endNode;
290
- }
291
- /**
292
- * Returns range's start offset.
293
- *
294
- * @returns {number} The character length in text node or the element index of parent element.
295
- */
296
- get startOffset() {
297
- return this._startOffset;
298
- }
299
- /**
300
- * Returns range's start offset.
301
- *
302
- * @returns {number} The character length in text node or the element index of parent element.
303
- */
304
- get endOffset() {
305
- return this._endOffset;
306
- }
307
- /**
308
- * Updates the range options for a Rich Text Editor.
309
- * This method will called after modify the content, the start node and end node should be rte node.
310
- * This method will called after selectionchange event emit, the start node and end node should be the html node.
311
- *
312
- * @param {RTERangeOptions} options - An object that contains the following properties:
313
- * @param {Range} [nativeRange] - The native range instance
314
- * @returns {RTERange} - The new RTERange instance
315
- */
316
- updateRTERange(options, nativeRange) {
317
- const { startOffset, endOffset } = options;
318
- this._startOffset = startOffset;
319
- this._endOffset = endOffset;
320
- const startNode = options.startNode;
321
- const endNode = options.endNode;
322
- if (startNode instanceof codeBlock.RTENode) {
323
- this._startNode = startNode;
324
- this._endNode = endNode;
325
- const startContainer = this._startNode.getRangeContainer();
326
- const endContainer = this._startNode === this._endNode ? startContainer : this._endNode.getRangeContainer();
327
- if (startContainer) {
328
- this._startContainer = startContainer;
329
- this._endContainer = endContainer;
330
- }
331
- }
332
- else {
333
- // The selectionchange callback has a 50 ms delay, so we need to check the next range is the same as the current ret range.
334
- this._startContainer = startNode;
335
- this._endContainer = endNode;
336
- this._startNode = this.getRTENodeByElement(this._startContainer);
337
- this._endNode =
338
- this._startContainer === this._endContainer
339
- ? this._startNode
340
- : this.getRTENodeByElement(this._endContainer);
341
- if (nativeRange) {
342
- this._oldNativeRange = nativeRange;
343
- }
344
- }
345
- return new RTERange(this._startContainer, this._endContainer, this._startOffset, this._endOffset, this._startNode, this._endNode, this._oldNativeRange);
346
- }
347
- /**
348
- * Creates a new instance of the `RTERange` class with the same properties as the current instance.
349
- *
350
- * @returns {RTERange} A new `RTERange` instance with the same start and end containers, offsets, and nodes.
351
- */
352
- clone() {
353
- return new RTERange(this._startContainer, this._endContainer, this._startOffset, this._endOffset, this._startNode, this._endNode, this._oldNativeRange);
354
- }
355
- /**
356
- * Creates a Range object based on start and end nodes and offsets.
357
- * Invoke this method to get the future range state if the range content modified.
358
- * Invoke this method to get the native range instance if range start node and end node not defined
359
- *
360
- * @returns {Nullable<Range>} The range instance. The return value could be null if the start node or end node are not rendered.
361
- */
362
- toNativeRange() {
363
- let range = null;
364
- if (this._startNode) {
365
- const startContainer = this._startNode.getRangeContainer();
366
- const endContainer = this._startNode === this._endNode
367
- ? startContainer
368
- : this._endNode.getRangeContainer();
369
- if (startContainer && endContainer) {
370
- range = new Range();
371
- range.setStart(startContainer, this._startOffset);
372
- range.setEnd(endContainer, this._endOffset);
373
- this._startContainer = startContainer;
374
- this._endContainer = endContainer;
375
- this._oldNativeRange = range;
376
- return range;
377
- }
378
- }
379
- if (!range && this._oldNativeRange) {
380
- return this._oldNativeRange;
381
- }
382
- }
383
- /**
384
- * Retrieves an RTENode based on the given element by checking its type and parent elements.
385
- *
386
- * @param {Node} element - An element in the DOM (Document Object Model).
387
- * @returns { Nullable<RTENode>} Returns a nullable `RTENode` object.
388
- */
389
- getRTENodeByElement(element) {
390
- if (element) {
391
- const registerElement = element.nodeType === Node.TEXT_NODE
392
- ? element.parentElement
393
- : ui.isHTMLElement(element) && codeBlock.RTEDecoratorNode.isDecoratorNodeContainerElement(element)
394
- ? codeBlock.RTEDecoratorNode.getDecoratorNodeElement(element)
395
- : element;
396
- return codeBlock.stateEntityRenderingRegistry.getEntityByDOM(registerElement);
397
- }
398
- }
399
- }
400
-
401
229
  /**
402
230
  * Represents the state of the selection in the RTE.
403
231
  */
@@ -428,7 +256,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
428
256
  class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
429
257
  constructor() {
430
258
  super(1);
431
- this.currentRange = new RTERange();
259
+ this.currentRange = new range.RTERange();
432
260
  this.handleSelectionWithDebounce = timer.debounce(this.handleSelectionChange, SelectionController.SELECTION_CHANGE_DEBOUNCE_TIME, this);
433
261
  this.pendingRestoreSelectionNodes = [];
434
262
  /**
@@ -453,7 +281,7 @@ class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
453
281
  * Component lifecycle - [disconnectedCallback]{@link VegaRichTextEditor.disconnectedCallback}
454
282
  */
455
283
  disconnectedCallback() {
456
- changeManager.ChangeManager.unregister(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
284
+ changeManager.ChangeManager.unregister(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
457
285
  domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.host, vegaInternalEventId.VegaInternalUpdateRTECursorPosition);
458
286
  }
459
287
  /**
@@ -575,7 +403,12 @@ class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
575
403
  this.enqueueSelectionRangeFutureState(startNode, codeBlock.ZERO_WIDTH_SPACE.length);
576
404
  }
577
405
  else {
578
- this.enqueueSelectionRangeFutureState(startNode, startOffset, endNode, endOffset);
406
+ // Don't need update the range if the selected node is a non-editable text node, such as token node.
407
+ if (!(startNode === endNode &&
408
+ startNode instanceof codeBlock.RTETextNode &&
409
+ !startNode.isContentEditable())) {
410
+ this.enqueueSelectionRangeFutureState(startNode, startOffset, endNode, endOffset);
411
+ }
579
412
  }
580
413
  this.selectionState = null;
581
414
  }
@@ -586,10 +419,11 @@ class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
586
419
  handleSelectionChange() {
587
420
  if (this.disabled || this.sourceView)
588
421
  return;
422
+ // Clear previous selection when handling new selection always
423
+ this.clearSelectionMap();
589
424
  const selection = this.getSelection();
590
425
  if (!selection || selection.rangeCount === 0)
591
426
  return;
592
- this.clearSelectionMap();
593
427
  this.saveSelection();
594
428
  const range = selection.getRangeAt(0);
595
429
  const commonAncestor = range.commonAncestorContainer;
@@ -678,7 +512,7 @@ class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
678
512
  this.enqueueSelectionRangeFutureState(payload.node, payload.offset);
679
513
  }
680
514
  });
681
- changeManager.ChangeManager.register(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
515
+ changeManager.ChangeManager.register(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
682
516
  }
683
517
  /**
684
518
  * Prepare the selection state to restore
@@ -708,7 +542,7 @@ class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
708
542
  startNode,
709
543
  endNode,
710
544
  startOffset: 0,
711
- endOffset: endNode.text.length,
545
+ endOffset: endNode.getRangeEndOffset(),
712
546
  });
713
547
  this.selectionState = new RTESelectionState(this.currentRange);
714
548
  }
@@ -3,7 +3,7 @@
3
3
  const typeGuard = require('./type-guard-f12b5bae.js');
4
4
  const breakpoints = require('./breakpoints-ebde4837.js');
5
5
  const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
6
- const responsiveFormatFacade = require('./responsive-format-facade-0d22ff78.js');
6
+ const responsiveFormatFacade = require('./responsive-format-facade-7e933525.js');
7
7
  const typography = require('./typography-4560e7f1.js');
8
8
  const stateBackgroundColorFormatter = require('./state-background-color-formatter-aa5570f6.js');
9
9
  const ui = require('./ui-32e69595.js');