@globalpayments/vega 2.61.0 → 2.62.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 (417) 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/{public-rules-21622bd0.js → public-rules-5d0f3a5f.js} +5 -5
  20. package/dist/cjs/range-cfc45f9e.js +178 -0
  21. package/dist/cjs/{responsive-format-facade-0d22ff78.js → responsive-format-facade-7e933525.js} +4 -3
  22. package/dist/cjs/{rich-text-editor-required-rule-8d7e441a.js → rich-text-editor-required-rule-72170c10.js} +2 -2
  23. package/dist/cjs/{string-input-formatter-slimmer-5a744e71.js → string-input-formatter-slimmer-f6c7a255.js} +4 -4
  24. package/dist/cjs/{style-formatter-a66813a2.js → style-formatter-702df81e.js} +1 -1
  25. package/dist/cjs/{sub-state-notify-slimmer-9602b5bb.js → sub-state-notify-slimmer-bb64fcfc.js} +4 -4
  26. package/dist/cjs/{sub-state-observer-slimmer-df7df5bb.js → sub-state-observer-slimmer-84175d61.js} +4 -4
  27. package/dist/cjs/{vega-skeleton-loader-controller-9c54f3aa.js → token-extension-23ccff1d.js} +679 -3
  28. package/dist/cjs/vega-accordion.cjs.entry.js +15 -16
  29. package/dist/cjs/vega-app-header-button.cjs.entry.js +20 -21
  30. package/dist/cjs/vega-banner.cjs.entry.js +7 -9
  31. package/dist/cjs/vega-box.cjs.entry.js +13 -12
  32. package/dist/cjs/vega-brand-logo.cjs.entry.js +1 -2
  33. package/dist/cjs/vega-breadcrumb.cjs.entry.js +8 -9
  34. package/dist/cjs/vega-button-circle.cjs.entry.js +16 -16
  35. package/dist/cjs/vega-button-group_2.cjs.entry.js +11 -12
  36. package/dist/cjs/vega-button-link.cjs.entry.js +7 -8
  37. package/dist/cjs/vega-button.cjs.entry.js +15 -15
  38. package/dist/cjs/vega-calendar_4.cjs.entry.js +22 -24
  39. package/dist/cjs/vega-card.cjs.entry.js +12 -11
  40. package/dist/cjs/vega-carousel.cjs.entry.js +13 -13
  41. package/dist/cjs/vega-checkbox_2.cjs.entry.js +12 -13
  42. package/dist/cjs/vega-chip.cjs.entry.js +17 -17
  43. package/dist/cjs/vega-code-block.cjs.entry.js +16 -17
  44. package/dist/cjs/vega-color-picker.cjs.entry.js +6 -7
  45. package/dist/cjs/vega-combo-box.cjs.entry.js +14 -15
  46. package/dist/cjs/vega-date-picker_2.cjs.entry.js +30 -31
  47. package/dist/cjs/vega-dialog_2.cjs.entry.js +27 -27
  48. package/dist/cjs/vega-divider.cjs.entry.js +12 -11
  49. package/dist/cjs/vega-dropdown_5.cjs.entry.js +32 -32
  50. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  51. package/dist/cjs/vega-field-label.cjs.entry.js +6 -7
  52. package/dist/cjs/vega-file-uploader.cjs.entry.js +15 -17
  53. package/dist/cjs/vega-flag-icon.cjs.entry.js +13 -13
  54. package/dist/cjs/vega-flex.cjs.entry.js +12 -11
  55. package/dist/cjs/vega-font.cjs.entry.js +12 -11
  56. package/dist/cjs/vega-form.cjs.entry.js +13 -14
  57. package/dist/cjs/vega-grid.cjs.entry.js +12 -11
  58. package/dist/cjs/vega-icon.cjs.entry.js +15 -14
  59. package/dist/cjs/vega-image-uploader.cjs.entry.js +18 -18
  60. package/dist/cjs/vega-input-credit-card.cjs.entry.js +14 -16
  61. package/dist/cjs/vega-input-numeric.cjs.entry.js +10 -11
  62. package/dist/cjs/vega-input-phone-number.cjs.entry.js +20 -21
  63. package/dist/cjs/vega-input-range.cjs.entry.js +11 -12
  64. package/dist/cjs/vega-input-select.cjs.entry.js +27 -28
  65. package/dist/cjs/vega-input.cjs.entry.js +12 -13
  66. package/dist/cjs/vega-item-toggle.cjs.entry.js +5 -6
  67. package/dist/cjs/vega-left-nav_5.cjs.entry.js +33 -34
  68. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +13 -12
  69. package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -3
  70. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +8 -9
  71. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +3 -4
  72. package/dist/cjs/vega-pagination.cjs.entry.js +18 -18
  73. package/dist/cjs/vega-popover_2.cjs.entry.js +18 -18
  74. package/dist/cjs/vega-progress-tracker.cjs.entry.js +5 -6
  75. package/dist/cjs/vega-radio_2.cjs.entry.js +13 -14
  76. package/dist/cjs/vega-rich-text-content.cjs.entry.js +53 -48
  77. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +387 -261
  78. package/dist/cjs/vega-segment-control.cjs.entry.js +5 -6
  79. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +20 -20
  80. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +13 -14
  81. package/dist/cjs/vega-sidenav_3.cjs.entry.js +24 -25
  82. package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -17
  83. package/dist/cjs/vega-stepper.cjs.entry.js +12 -13
  84. package/dist/cjs/vega-tab-group_2.cjs.entry.js +8 -9
  85. package/dist/cjs/vega-table_8.cjs.entry.js +58 -59
  86. package/dist/cjs/vega-textarea.cjs.entry.js +9 -10
  87. package/dist/cjs/vega-time-picker_2.cjs.entry.js +24 -24
  88. package/dist/cjs/vega-toggle-switch.cjs.entry.js +7 -8
  89. package/dist/cjs/vega-tooltip_2.cjs.entry.js +12 -12
  90. package/dist/cjs/vega.cjs.js +14 -12
  91. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +31 -0
  92. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +10 -0
  93. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +11 -0
  94. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.js +6 -3
  95. 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
  96. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/code-block-remove-self-strategy.js +2 -2
  97. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/insert-node-to-nearest-root-strategy.js +57 -0
  98. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/update-cursor-position-strategy.js +2 -1
  99. package/dist/collection/components/vega-rich-text-editor/dto/actions/insert-node-to-nearest-root-action.js +14 -0
  100. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
  101. package/dist/collection/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.js +5 -2
  102. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +12 -0
  103. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +36 -10
  104. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.js +10 -4
  105. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +145 -0
  106. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +97 -0
  107. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +113 -0
  108. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +90 -0
  109. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-action.js +16 -0
  110. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.js +20 -0
  111. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +60 -0
  112. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-extension.js +38 -0
  113. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +67 -0
  114. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +55 -0
  115. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +88 -0
  116. package/dist/collection/components/vega-rich-text-editor/public-api.js +38 -0
  117. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +97 -0
  118. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/focus-controller.js +8 -6
  119. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +12 -0
  120. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +9 -3
  121. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +43 -18
  122. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +3 -1
  123. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.js +6 -6
  124. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.js +9 -9
  125. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +41 -0
  126. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +44 -11
  127. package/dist/collection/global/scripts/before-vega-load.js +9 -0
  128. package/dist/collection/helpers/code-format/test/code-formatter.test.js +1 -1
  129. package/dist/collection/helpers/public-api.js +1 -1
  130. package/dist/collection/helpers/rte-manager/dto-action-strategy-manager.js +2 -0
  131. package/dist/esm/{app-globals-ce54f0ac.js → app-globals-aaff0b25.js} +13 -5
  132. package/dist/esm/base-renderer-101f6d04.js +7 -0
  133. package/dist/esm/{child-nodes-event-prevent-slimmer-2a3115ae.js → child-nodes-event-prevent-slimmer-7fe3dc57.js} +1 -1
  134. package/dist/esm/{code-block-89a4dd13.js → code-block-68300b47.js} +67 -17
  135. package/dist/esm/{component-value-history-controller-slimmer.abstract-95b199df.js → component-value-history-controller-slimmer.abstract-ac2f1bfd.js} +13 -179
  136. package/dist/esm/{design-token-eaa7c221.js → design-token-1a36307e.js} +1 -1
  137. package/dist/esm/{dom-node-subject-factory-3c2e13f1.js → dom-node-subject-observer-factory-c7bc3035.js} +41 -1
  138. package/dist/esm/{content-state-fc47457c.js → dto-renderer-manager-af66bbd9.js} +1643 -1502
  139. package/dist/esm/{element-appender-slimmer-ce83db8a.js → element-appender-slimmer-fe68ec2d.js} +3 -4
  140. package/dist/esm/{event-emit-slimmer-4428ce26.js → event-emit-slimmer-3922d816.js} +2 -3
  141. package/dist/esm/{form-field-controller-slimmer-6e69ca4e.js → form-field-controller-slimmer-f7e8845b.js} +2 -3
  142. package/dist/esm/{image-annotation-action-53812eb7.js → image-annotation-action-f61c2693.js} +20 -76
  143. package/dist/esm/{index-1d479c88.js → index-7fe93427.js} +1 -1
  144. package/dist/esm/index.js +13 -10
  145. package/dist/esm/{icon-manager-2ee1c619.js → internal-icon-manager-f0486245.js} +51 -1
  146. package/dist/esm/{internal-vega-event-manager-a654cf8a.js → internal-vega-event-manager-cb06e987.js} +1 -1
  147. package/dist/esm/language-extension-1ada2a9d.js +204 -0
  148. package/dist/esm/loader.js +14 -12
  149. package/dist/esm/{public-rules-095284f6.js → public-rules-9f62069a.js} +5 -5
  150. package/dist/esm/range-c2eeb794.js +176 -0
  151. package/dist/esm/{responsive-format-facade-86b6de3b.js → responsive-format-facade-5711c77d.js} +4 -3
  152. package/dist/esm/{rich-text-editor-required-rule-4e8d2db8.js → rich-text-editor-required-rule-de738309.js} +1 -1
  153. package/dist/esm/{string-input-formatter-slimmer-60897659.js → string-input-formatter-slimmer-69117deb.js} +2 -2
  154. package/dist/esm/{style-formatter-a0719a8f.js → style-formatter-2479dc61.js} +1 -1
  155. package/dist/esm/{sub-state-notify-slimmer-ee730968.js → sub-state-notify-slimmer-4252a90e.js} +1 -1
  156. package/dist/esm/{sub-state-observer-slimmer-d474634d.js → sub-state-observer-slimmer-baa8853a.js} +1 -1
  157. package/dist/esm/{vega-skeleton-loader-controller-394a6026.js → token-extension-6fc5e1f5.js} +672 -4
  158. package/dist/esm/vega-accordion.entry.js +13 -14
  159. package/dist/esm/vega-app-header-button.entry.js +14 -15
  160. package/dist/esm/vega-banner.entry.js +4 -6
  161. package/dist/esm/vega-box.entry.js +13 -12
  162. package/dist/esm/vega-brand-logo.entry.js +1 -2
  163. package/dist/esm/vega-breadcrumb.entry.js +4 -5
  164. package/dist/esm/vega-button-circle.entry.js +14 -14
  165. package/dist/esm/vega-button-group_2.entry.js +6 -7
  166. package/dist/esm/vega-button-link.entry.js +5 -6
  167. package/dist/esm/vega-button.entry.js +13 -13
  168. package/dist/esm/vega-calendar_4.entry.js +7 -9
  169. package/dist/esm/vega-card.entry.js +12 -11
  170. package/dist/esm/vega-carousel.entry.js +12 -12
  171. package/dist/esm/vega-checkbox_2.entry.js +6 -7
  172. package/dist/esm/vega-chip.entry.js +14 -14
  173. package/dist/esm/vega-code-block.entry.js +8 -9
  174. package/dist/esm/vega-color-picker.entry.js +5 -6
  175. package/dist/esm/vega-combo-box.entry.js +6 -7
  176. package/dist/esm/vega-date-picker_2.entry.js +16 -17
  177. package/dist/esm/vega-dialog_2.entry.js +15 -15
  178. package/dist/esm/vega-divider.entry.js +12 -11
  179. package/dist/esm/vega-dropdown_5.entry.js +15 -15
  180. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  181. package/dist/esm/vega-field-label.entry.js +4 -5
  182. package/dist/esm/vega-file-uploader.entry.js +6 -8
  183. package/dist/esm/vega-flag-icon.entry.js +12 -12
  184. package/dist/esm/vega-flex.entry.js +12 -11
  185. package/dist/esm/vega-font.entry.js +12 -11
  186. package/dist/esm/vega-form.entry.js +7 -8
  187. package/dist/esm/vega-grid.entry.js +12 -11
  188. package/dist/esm/vega-icon.entry.js +12 -11
  189. package/dist/esm/vega-image-uploader.entry.js +12 -12
  190. package/dist/esm/vega-input-credit-card.entry.js +7 -9
  191. package/dist/esm/vega-input-numeric.entry.js +7 -8
  192. package/dist/esm/vega-input-phone-number.entry.js +12 -13
  193. package/dist/esm/vega-input-range.entry.js +7 -8
  194. package/dist/esm/vega-input-select.entry.js +14 -15
  195. package/dist/esm/vega-input.entry.js +7 -8
  196. package/dist/esm/vega-item-toggle.entry.js +3 -4
  197. package/dist/esm/vega-left-nav_5.entry.js +14 -15
  198. package/dist/esm/vega-loader-wrapper_2.entry.js +11 -10
  199. package/dist/esm/vega-page-notification_2.entry.js +1 -2
  200. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -4
  201. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -2
  202. package/dist/esm/vega-pagination.entry.js +10 -10
  203. package/dist/esm/vega-popover_2.entry.js +14 -14
  204. package/dist/esm/vega-progress-tracker.entry.js +3 -4
  205. package/dist/esm/vega-radio_2.entry.js +6 -7
  206. package/dist/esm/vega-rich-text-content.entry.js +24 -19
  207. package/dist/esm/vega-rich-text-editor_4.entry.js +342 -216
  208. package/dist/esm/vega-segment-control.entry.js +4 -5
  209. package/dist/esm/vega-selection-chip_2.entry.js +15 -15
  210. package/dist/esm/vega-selection-tile_2.entry.js +7 -8
  211. package/dist/esm/vega-sidenav_3.entry.js +16 -17
  212. package/dist/esm/vega-signature-capture.entry.js +14 -15
  213. package/dist/esm/vega-stepper.entry.js +6 -7
  214. package/dist/esm/vega-tab-group_2.entry.js +4 -5
  215. package/dist/esm/vega-table_8.entry.js +12 -13
  216. package/dist/esm/vega-textarea.entry.js +6 -7
  217. package/dist/esm/vega-time-picker_2.entry.js +14 -14
  218. package/dist/esm/vega-toggle-switch.entry.js +6 -7
  219. package/dist/esm/vega-tooltip_2.entry.js +12 -12
  220. package/dist/esm/vega.js +14 -12
  221. package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +8 -0
  222. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +2 -1
  223. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +8 -0
  224. 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
  225. package/dist/types/components/vega-rich-text-editor/dto/actions/insert-node-to-nearest-root-action.d.ts +14 -0
  226. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
  227. package/dist/types/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.d.ts +4 -2
  228. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +2 -3
  229. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
  230. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +11 -1
  231. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.d.ts +3 -3
  232. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +95 -2
  233. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +82 -0
  234. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +50 -0
  235. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +54 -0
  236. package/dist/types/components/vega-rich-text-editor/extensions/tokens/insert-token-node-action.d.ts +16 -0
  237. package/dist/types/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.d.ts +12 -0
  238. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +24 -0
  239. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +14 -0
  240. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +38 -0
  241. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +39 -0
  242. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +47 -0
  243. package/dist/types/components/vega-rich-text-editor/interface.d.ts +52 -1
  244. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +29 -0
  245. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +44 -0
  246. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +10 -1
  247. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.d.ts +6 -0
  248. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +4 -4
  249. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.d.ts +7 -7
  250. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +10 -0
  251. package/dist/types/components.d.ts +21 -0
  252. package/dist/types/helpers/public-api.d.ts +1 -1
  253. package/dist/types/types/components.type.d.ts +1 -0
  254. package/dist/types/types/public-api.d.ts +11 -0
  255. package/dist/vega/index.esm.js +1 -1
  256. package/dist/vega/p-03cc47b7.entry.js +1 -0
  257. package/dist/vega/p-07836d27.entry.js +1 -0
  258. package/dist/vega/p-079f5d94.entry.js +1 -0
  259. package/dist/vega/p-09cb98f3.entry.js +1 -0
  260. package/dist/vega/{p-fb232e29.entry.js → p-0b91bb73.entry.js} +1 -1
  261. package/dist/vega/p-15a78afd.entry.js +1 -0
  262. package/dist/vega/p-16075b30.entry.js +1 -0
  263. package/dist/vega/{p-67101f43.entry.js → p-1c08077c.entry.js} +1 -1
  264. package/dist/vega/{p-c5e862aa.js → p-1da54ff3.js} +1 -1
  265. package/dist/vega/p-20a180e4.js +1 -0
  266. package/dist/vega/p-25ddb070.entry.js +1 -0
  267. package/dist/vega/p-2788afe7.entry.js +1 -0
  268. package/dist/vega/p-2a1b3108.entry.js +1 -0
  269. package/dist/vega/p-2ee4def0.js +1 -0
  270. package/dist/vega/p-2f88ba36.entry.js +1 -0
  271. package/dist/vega/p-327cd6ec.entry.js +1 -0
  272. package/dist/vega/{p-f2a1fe6a.js → p-39c185a5.js} +1 -1
  273. package/dist/vega/p-3b1bedaf.entry.js +1 -0
  274. package/dist/vega/p-3c96bbe1.entry.js +1 -0
  275. package/dist/vega/p-3cdbee7e.js +1 -0
  276. package/dist/vega/p-3d0d8a21.entry.js +1 -0
  277. package/dist/vega/p-3d53858c.entry.js +1 -0
  278. package/dist/vega/{p-927cab0c.entry.js → p-3f3bbaaa.entry.js} +2 -2
  279. package/dist/vega/p-42c364e0.entry.js +1 -0
  280. package/dist/vega/p-4f56a427.entry.js +1 -0
  281. package/dist/vega/p-4f5a2b0c.entry.js +1 -0
  282. package/dist/vega/p-51d40b0d.entry.js +1 -0
  283. package/dist/vega/p-5420c1d4.entry.js +1 -0
  284. package/dist/vega/p-589b7ea3.entry.js +1 -0
  285. package/dist/vega/p-5d3c6a06.entry.js +1 -0
  286. package/dist/vega/p-5dec47da.entry.js +1 -0
  287. package/dist/vega/p-5f377954.js +1 -1
  288. package/dist/vega/p-6244b0ad.entry.js +1 -0
  289. package/dist/vega/p-63212cc1.js +1 -0
  290. package/dist/vega/p-6585cfd5.entry.js +1 -0
  291. package/dist/vega/p-6ba27010.js +1 -0
  292. package/dist/vega/{p-129f5938.js → p-6caa6bb2.js} +1 -1
  293. package/dist/vega/p-74ac2a48.js +1 -0
  294. package/dist/vega/p-76c7538a.entry.js +1 -0
  295. package/dist/vega/p-7d8eaca9.entry.js +1 -0
  296. package/dist/vega/p-7da6e7bd.js +1 -0
  297. package/dist/vega/p-81765b4b.entry.js +1 -0
  298. package/dist/vega/p-81fbf18f.entry.js +1 -0
  299. package/dist/vega/p-8682ee0a.entry.js +1 -0
  300. package/dist/vega/p-893d5dfa.js +1 -0
  301. package/dist/vega/p-8a484812.entry.js +1 -0
  302. package/dist/vega/p-8a6b820a.entry.js +1 -0
  303. package/dist/vega/p-8c9ea6f4.js +1 -0
  304. package/dist/vega/p-8e58d6cb.entry.js +1 -0
  305. package/dist/vega/p-8e812dca.entry.js +1 -0
  306. package/dist/vega/p-8f056ac2.js +1 -0
  307. package/dist/vega/{p-e66aef91.entry.js → p-9125ba84.entry.js} +1 -1
  308. package/dist/vega/p-92469fa1.entry.js +1 -0
  309. package/dist/vega/p-9ab3bb6f.entry.js +1 -0
  310. package/dist/vega/p-9ca0bdcc.js +1 -0
  311. package/dist/vega/p-a1362aa4.entry.js +1 -0
  312. package/dist/vega/p-a61e4bba.entry.js +1 -0
  313. package/dist/vega/p-a646b66d.js +1 -0
  314. package/dist/vega/p-a7b5f497.js +1 -0
  315. package/dist/vega/p-ac5c5221.entry.js +1 -0
  316. package/dist/vega/p-b1a5ff74.entry.js +1 -0
  317. package/dist/vega/p-b32f7aac.entry.js +1 -0
  318. package/dist/vega/{p-dc6f45af.entry.js → p-baafe7d9.entry.js} +1 -1
  319. package/dist/vega/{p-3a6abcd7.entry.js → p-bb51e020.entry.js} +1 -1
  320. package/dist/vega/{p-e764acd5.js → p-bb61f015.js} +1 -1
  321. package/dist/vega/p-bc0ae89a.entry.js +1 -0
  322. package/dist/vega/p-bd39af8a.entry.js +1 -0
  323. package/dist/vega/{p-cd18f0fe.js → p-bdd9ef3b.js} +1 -1
  324. package/dist/vega/{p-5f85811c.entry.js → p-c167fa41.entry.js} +1 -1
  325. package/dist/vega/{p-7ecf65ec.js → p-c2377afa.js} +1 -1
  326. package/dist/vega/p-c671f57e.js +1 -0
  327. package/dist/vega/p-c6a354b1.js +1 -0
  328. package/dist/vega/p-c7726252.js +1 -0
  329. package/dist/vega/p-ce1766fa.js +1 -0
  330. package/dist/vega/p-cfb2af9c.entry.js +1 -0
  331. package/dist/vega/{p-3bf95faf.entry.js → p-d2790023.entry.js} +2 -2
  332. package/dist/vega/p-d3bbfb1b.js +1 -0
  333. package/dist/vega/{p-5faa7313.entry.js → p-d9617358.entry.js} +1 -1
  334. package/dist/vega/p-d982babe.entry.js +1 -0
  335. package/dist/vega/p-dcae53cf.entry.js +1 -0
  336. package/dist/vega/p-ddfad815.entry.js +1 -0
  337. package/dist/vega/p-e00ed9bd.entry.js +1 -0
  338. package/dist/vega/p-e365aba9.entry.js +1 -0
  339. package/dist/vega/p-ebfc5739.entry.js +1 -0
  340. package/dist/vega/{p-aeccc7f8.js → p-f1436035.js} +1 -1
  341. package/dist/vega/p-fe2cb3a1.entry.js +1 -0
  342. package/dist/vega/p-ff3a8907.entry.js +1 -0
  343. package/dist/vega/vega.esm.js +1 -1
  344. package/package.json +1 -1
  345. package/dist/cjs/dom-node-subject-observer-factory-15130e50.js +0 -45
  346. package/dist/cjs/internal-icon-manager-f8677abb.js +0 -55
  347. package/dist/esm/dom-node-subject-observer-factory-1e456cd4.js +0 -43
  348. package/dist/esm/internal-icon-manager-7eac52c8.js +0 -53
  349. package/dist/vega/p-0070e970.entry.js +0 -1
  350. package/dist/vega/p-0169af6b.entry.js +0 -1
  351. package/dist/vega/p-03e9cbc8.js +0 -1
  352. package/dist/vega/p-04341cd4.entry.js +0 -1
  353. package/dist/vega/p-0664ca9c.js +0 -1
  354. package/dist/vega/p-074b73f8.js +0 -1
  355. package/dist/vega/p-08fb66a4.entry.js +0 -1
  356. package/dist/vega/p-0cf35281.entry.js +0 -1
  357. package/dist/vega/p-0e75ddb2.entry.js +0 -1
  358. package/dist/vega/p-13cb5a04.entry.js +0 -1
  359. package/dist/vega/p-18223240.js +0 -1
  360. package/dist/vega/p-19ce9ae6.js +0 -1
  361. package/dist/vega/p-27f922fe.entry.js +0 -1
  362. package/dist/vega/p-2c7b7dd6.entry.js +0 -1
  363. package/dist/vega/p-310f9e76.entry.js +0 -1
  364. package/dist/vega/p-330d7ba8.js +0 -1
  365. package/dist/vega/p-34fdbe7a.js +0 -1
  366. package/dist/vega/p-3d6c302d.js +0 -1
  367. package/dist/vega/p-42563036.entry.js +0 -1
  368. package/dist/vega/p-441a681b.js +0 -1
  369. package/dist/vega/p-4a357f30.entry.js +0 -1
  370. package/dist/vega/p-4e8b6eb6.entry.js +0 -1
  371. package/dist/vega/p-50dd3cf1.js +0 -1
  372. package/dist/vega/p-518722aa.js +0 -1
  373. package/dist/vega/p-5422fdc4.entry.js +0 -1
  374. package/dist/vega/p-5c36a6cb.entry.js +0 -1
  375. package/dist/vega/p-5d095f9b.entry.js +0 -1
  376. package/dist/vega/p-68806f9c.entry.js +0 -1
  377. package/dist/vega/p-6cf490d9.entry.js +0 -1
  378. package/dist/vega/p-6def20e1.js +0 -1
  379. package/dist/vega/p-78d3f99b.entry.js +0 -1
  380. package/dist/vega/p-792715f3.js +0 -1
  381. package/dist/vega/p-7a201c6e.entry.js +0 -1
  382. package/dist/vega/p-7c22a1c3.entry.js +0 -1
  383. package/dist/vega/p-7f329473.entry.js +0 -1
  384. package/dist/vega/p-80f1b680.js +0 -1
  385. package/dist/vega/p-82beb586.entry.js +0 -1
  386. package/dist/vega/p-84eb131b.entry.js +0 -1
  387. package/dist/vega/p-8c46e116.js +0 -1
  388. package/dist/vega/p-909820dd.entry.js +0 -1
  389. package/dist/vega/p-989e141d.entry.js +0 -1
  390. package/dist/vega/p-a29e5d32.js +0 -1
  391. package/dist/vega/p-a3942d0b.entry.js +0 -1
  392. package/dist/vega/p-a66533c1.entry.js +0 -1
  393. package/dist/vega/p-a9b831d8.entry.js +0 -1
  394. package/dist/vega/p-b1d0e4cb.entry.js +0 -1
  395. package/dist/vega/p-b34f9891.entry.js +0 -1
  396. package/dist/vega/p-b820e42f.entry.js +0 -1
  397. package/dist/vega/p-c4677b0c.entry.js +0 -1
  398. package/dist/vega/p-c467fe81.entry.js +0 -1
  399. package/dist/vega/p-c7762c86.entry.js +0 -1
  400. package/dist/vega/p-c9e57cf1.entry.js +0 -1
  401. package/dist/vega/p-d0b3e319.entry.js +0 -1
  402. package/dist/vega/p-d7b4ffed.entry.js +0 -1
  403. package/dist/vega/p-e4586f13.entry.js +0 -1
  404. package/dist/vega/p-e71c4a09.entry.js +0 -1
  405. package/dist/vega/p-ea66d9f7.entry.js +0 -1
  406. package/dist/vega/p-ebbaa112.entry.js +0 -1
  407. package/dist/vega/p-ec6819fe.entry.js +0 -1
  408. package/dist/vega/p-ec9a8f81.entry.js +0 -1
  409. package/dist/vega/p-ed01328c.entry.js +0 -1
  410. package/dist/vega/p-ed798cd4.entry.js +0 -1
  411. package/dist/vega/p-edb71a72.entry.js +0 -1
  412. package/dist/vega/p-f08a4adf.js +0 -1
  413. package/dist/vega/p-f4e23c23.entry.js +0 -1
  414. package/dist/vega/p-f825e8a2.entry.js +0 -1
  415. package/dist/vega/p-f9deb43e.entry.js +0 -1
  416. package/dist/vega/p-fdd930a9.entry.js +0 -1
  417. package/dist/vega/p-fe52c370.entry.js +0 -1
@@ -4,8 +4,14 @@ import { L as LogUtility, I as InjectVegaSlimmer } from './global-slimmer-regist
4
4
  import { c as createDynamicSlimmer } from './dynamic-slimmer-90b8af32.js';
5
5
  import { P as PageResizeObserverSlimmer } from './page-resize-observer-slimmer-0bf7fbf3.js';
6
6
  import { V as VegaInternalThemeManager } from './dark-mode-style-controller-3bbb32dc.js';
7
- import { i as internalVegaEventManager } from './internal-vega-event-manager-a654cf8a.js';
7
+ import { i as internalVegaEventManager } from './internal-vega-event-manager-cb06e987.js';
8
8
  import { c as convertToNumber } from './number-4398f2e1.js';
9
+ import { R as RTEDTORendererManager, a as RTEDTOActionStrategyManager, E as ElementToDTOClassStrategyManager, U as UpdateCursorPositionAction, b as ElementToDTOStrategy, c as RTEListItemBlock } from './dto-renderer-manager-af66bbd9.js';
10
+ import { A as ActionHandleStrategyRegistry, R as RTEDTOClassManager, s as stateEntityRenderingRegistry, M as ModifyContentAction, a as RTETextNode, b as ModifyContentActionType, c as ActionHandleStrategy, d as RTETextBlock } from './code-block-68300b47.js';
11
+ import { i as isNonNullable } from './type-guard-12f7654b.js';
12
+ import { V as VegaRTEBaseRenderer } from './base-renderer-101f6d04.js';
13
+ import { a as VegaInternalIconManager } from './internal-icon-manager-f0486245.js';
14
+ import { D as DomNodeSubjectObserverFactory, V as VegaDropdownClick, a as VegaClick } from './dom-node-subject-observer-factory-c7bc3035.js';
9
15
 
10
16
  const VegaLoaderRuntimeMetricsPayloadDefinition = [
11
17
  {
@@ -731,7 +737,7 @@ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators,
731
737
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
732
738
  return c > 3 && r && Object.defineProperty(target, key, r), r;
733
739
  };
734
- var __rest = (undefined && undefined.__rest) || function (s, e) {
740
+ var __rest$1 = (undefined && undefined.__rest) || function (s, e) {
735
741
  var t = {};
736
742
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
737
743
  t[p] = s[p];
@@ -760,7 +766,7 @@ class VegaDialogController {
760
766
  open(options) {
761
767
  // eslint-disable-next-line no-restricted-globals
762
768
  const dialog = document.createElement('vega-dialog');
763
- const { isVerticallyCenter, isVerticallyCentered, showCloseButton, size, title, handleClose } = options, dialogProps = __rest(options, ["isVerticallyCenter", "isVerticallyCentered", "showCloseButton", "size", "title", "handleClose"]);
769
+ const { isVerticallyCenter, isVerticallyCentered, showCloseButton, size, title, handleClose } = options, dialogProps = __rest$1(options, ["isVerticallyCenter", "isVerticallyCentered", "showCloseButton", "size", "title", "handleClose"]);
764
770
  dialog.id = `vega-dialog-${generateUUID()}`;
765
771
  dialog.dialogTitle = title;
766
772
  dialog.modalProps = { isVerticallyCenter, isVerticallyCentered, showCloseButton, size, handleClose };
@@ -1289,4 +1295,666 @@ __decorate([
1289
1295
  ], VegaSkeletonLoaderController.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
1290
1296
  const VegaSkeletonLoader = new VegaSkeletonLoaderController();
1291
1297
 
1292
- export { InternalVegaZIndexManager$1 as I, VegaLoader as V, VegaNotify as a, VegaThemeManager as b, VegaDialog as c, VegaEventManager$1 as d, VegaZIndexManager$1 as e, VegaSkeletonLoader as f };
1298
+ /**
1299
+ * Abstract class for Vega Rich Text Editor extensions.
1300
+ */
1301
+ class VegaRTEExtension {
1302
+ constructor() {
1303
+ /**
1304
+ * The context of the RTE extension, which may include references to the host editor and other relevant information.
1305
+ */
1306
+ this.extensionContext = null;
1307
+ }
1308
+ /**
1309
+ * Registers an action handle strategy for a specific node or block class.
1310
+ *
1311
+ * @param {string} nodeOrBlockClassName - The name of the node or block class.
1312
+ * @param {string} actionType - The type of the action.
1313
+ * @param {ActionHandleStrategy<ModifyContentAction, RTENode | RTEBlock>} strategy - The strategy to register.
1314
+ */
1315
+ static registerActionHandleStrategy(nodeOrBlockClassName, actionType, strategy) {
1316
+ ActionHandleStrategyRegistry.register(actionType, nodeOrBlockClassName, strategy);
1317
+ }
1318
+ /**
1319
+ * Initializes the RTE extension with the provided context.
1320
+ *
1321
+ * @param {RTEExtensionContext} context - The context of the RTE extension.
1322
+ */
1323
+ initialExtension(context) {
1324
+ this.extensionContext = context;
1325
+ }
1326
+ /**
1327
+ * Register a node type with the extension.
1328
+ *
1329
+ * @param {string} type - The type of the node or block. The type should be a string that uniquely identifies the node or block.
1330
+ * @param {ClassType<RTEBlock | RTENode>} DTOClass - The DTO class to register.
1331
+ */
1332
+ registerNode(type, DTOClass) {
1333
+ RTEDTOClassManager.registerRTEDTOClass(type, DTOClass);
1334
+ }
1335
+ /**
1336
+ * Register a renderer for a node type with the extension.
1337
+ *
1338
+ * @param {string} type - The type of the node or block. The type should be a string that uniquely identifies the node or block.
1339
+ * @param {BaseRenderer} renderer - The renderer to register.
1340
+ */
1341
+ registerRenderer(type, renderer) {
1342
+ RTEDTORendererManager.registerRTEDTORenderer(type, renderer);
1343
+ }
1344
+ /**
1345
+ * Register a toolbar button renderer for the extension.
1346
+ *
1347
+ * @param {string} type - The type of the toolbar button.
1348
+ * @param {VegaRTEToolbarButtonRenderer} renderer - The renderer to register.
1349
+ */
1350
+ registerToolbarButtonRenderer(type, renderer) {
1351
+ RTEDTORendererManager.registerRTEToolbarButtonRenderer(type, renderer);
1352
+ }
1353
+ /**
1354
+ * This is a helper method that utilizes RTEUtils to register common strategies.
1355
+ * Call the method with the class name of the block to make it support basic strategies like:
1356
+ * - Delete children
1357
+ * - Append the children
1358
+ * - Delete the block children content
1359
+ *
1360
+ * @param {string} blockClassName - The class name of the block to register strategies for.
1361
+ */
1362
+ registerBlockBasicStrategies(blockClassName) {
1363
+ RTEDTOActionStrategyManager.registerBlockBasicStrategies(blockClassName);
1364
+ }
1365
+ /**
1366
+ * Register an element to block DTO class strategy.
1367
+ *
1368
+ * @param {ElementToDTOStrategy} strategy - The strategy to register.
1369
+ */
1370
+ registerElementToBlockDTOClassStrategy(strategy) {
1371
+ ElementToDTOClassStrategyManager.registerElementToBlockStrategy(strategy);
1372
+ }
1373
+ /**
1374
+ * Register an element to node DTO class strategy.
1375
+ *
1376
+ * @param {ElementToDTOStrategy} strategy - The strategy to register.
1377
+ */
1378
+ registerElementToNodeDTOClassStrategy(strategy) {
1379
+ ElementToDTOClassStrategyManager.registerElementToNodeStrategy(strategy);
1380
+ }
1381
+ /**
1382
+ * Get the registered element to node DTO class strategies.
1383
+ *
1384
+ * @returns {ElementToDTOStrategy[]} - The registered element to node DTO class strategies.
1385
+ */
1386
+ getElementToNodeDTOClassStrategies() {
1387
+ return ElementToDTOClassStrategyManager.getElementToNodeStrategies();
1388
+ }
1389
+ }
1390
+
1391
+ /**
1392
+ * Base renderer for Vega Rich Text Editor.
1393
+ */
1394
+ class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
1395
+ /**
1396
+ * Renders the given data as a DOM element.
1397
+ *
1398
+ * @param {RTEBlock | RTENode} renderData - The data to render, which can be a block or a node.
1399
+ * @param {RTERenderContext} rteContext - The rte editor context.
1400
+ * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1401
+ * @returns {VegaRTERenderResult} - The rendered DOM element.
1402
+ */
1403
+ render(renderData, rteContext, createElement) {
1404
+ const element = this.doRender(createElement, renderData, rteContext);
1405
+ this.fallbackRegisterRef(element, renderData);
1406
+ this.appendChildren(element, renderData, rteContext, createElement);
1407
+ return element;
1408
+ }
1409
+ /**
1410
+ * Register the reference of the element in the rendering registry.
1411
+ *
1412
+ * @param {RTEBlock | RTENode} renderData - The data to register with the element.
1413
+ * @returns {VegaRTEUseRef} - The function to register the element.
1414
+ */
1415
+ useRef(renderData) {
1416
+ renderData[VegaRTEExtensionRenderer.REGISTER_REF_FLAG] = true;
1417
+ return function (element) {
1418
+ if (element) {
1419
+ stateEntityRenderingRegistry.register(element, renderData);
1420
+ }
1421
+ };
1422
+ }
1423
+ /**
1424
+ * Auto render the block children if the block element is not exist
1425
+ *
1426
+ * @param {VegaRTERenderResult} parentElement - The parent element to append children to.
1427
+ * @param {RTEBlock | RTENode} renderData - The data to render children for.
1428
+ * @param {RTERenderContext} rteContext - The render context.
1429
+ * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1430
+ */
1431
+ appendChildren(parentElement, renderData, rteContext, createElement) {
1432
+ if (Array.isArray(renderData['children']) &&
1433
+ renderData['children'].length &&
1434
+ !parentElement['$children$']) {
1435
+ parentElement['$children$'] = renderData['children']
1436
+ .map((child) => {
1437
+ return this.renderChildren(child, rteContext, createElement);
1438
+ })
1439
+ .filter(isNonNullable);
1440
+ }
1441
+ }
1442
+ /**
1443
+ * Render the children node.
1444
+ *
1445
+ * @param {RTENode | RTEBlock} renderData - The node to render children for.
1446
+ * @param {RTERenderContext} rteContext - The render context.
1447
+ * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1448
+ * @returns {Nullable<VegaRTERenderResult>} - The rendered DOM element.
1449
+ */
1450
+ renderChildren(renderData, rteContext, createElement) {
1451
+ const renderer = RTEDTORendererManager.getRTERenderer(renderData.type);
1452
+ if (renderer) {
1453
+ return renderer.render(renderData, rteContext, createElement);
1454
+ }
1455
+ }
1456
+ /**
1457
+ * Fallback register reference for the element.
1458
+ *
1459
+ * @param {VegaRTERenderResult} element - The rendered DOM element.
1460
+ * @param {RTEBlock | RTENode} renderData - The data to register with the element.
1461
+ */
1462
+ fallbackRegisterRef(element, renderData) {
1463
+ if (!renderData[VegaRTEExtensionRenderer.REGISTER_REF_FLAG] && element['$attrs$']) {
1464
+ // eslint-disable-next-line jsdoc/require-jsdoc
1465
+ element['$attrs$']['ref'] = this.useRef(renderData);
1466
+ }
1467
+ }
1468
+ }
1469
+ VegaRTEExtensionRenderer.REGISTER_REF_FLAG = '__registeredRef__';
1470
+
1471
+ /**
1472
+ * Base class for rendering extension toolbar button in the rich text editor.
1473
+ * The renderer provides common functionalities for rendering toolbar buttons, including:
1474
+ * - Rendering a button with an icon, label, and optional arrow icon.
1475
+ * - Rendering a dropdown with a list of items.
1476
+ * - Rendering dropdown items.
1477
+ * - Rendering template for dropdown list.
1478
+ * - Determining if the button should be disabled based on the editor context.
1479
+ * - Handling button and dropdown click events.
1480
+ * Override the methods to customize the rendering and behavior of the button.
1481
+ */
1482
+ class VegaRTEToolbarButtonRenderer {
1483
+ /**
1484
+ * Checks if the button should be hidden.
1485
+ *
1486
+ * @param {VegaRTEToolbarRenderContext} editorContext The render context for the editor.
1487
+ * @returns {boolean} True if the button is hidden, false otherwise.
1488
+ */
1489
+ isHidden(editorContext) {
1490
+ return editorContext.sourceEditMode;
1491
+ }
1492
+ /**
1493
+ * Renders a dropdown component with the specified properties and children.
1494
+ *
1495
+ * @param {VegaRTECreateElementFunction} h - Create element function.
1496
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1497
+ * @param {RTEToolbarDropdownProps} dropdownProps - The properties for the dropdown.
1498
+ * @param {VegaRTERenderResult[]} children - The children elements for the dropdown.
1499
+ * @returns {VegaRTERenderResult} - The render result for the dropdown.
1500
+ */
1501
+ renderDropdown(h, editorContext, dropdownProps, children) {
1502
+ return h('vega-dropdown', Object.assign({ trigger: 'click', searchable: false,
1503
+ // eslint-disable-next-line jsdoc/require-jsdoc
1504
+ ref: (el) => {
1505
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, (input) => this.handleDropdownClick(input.detail, editorContext));
1506
+ } }, dropdownProps), children);
1507
+ }
1508
+ /**
1509
+ * Renders the dropdown list template.
1510
+ *
1511
+ * @param {VegaRTECreateElementFunction} h - Create element function.
1512
+ * @param {RTEDropdownListItem[]} itemList - The list of dropdown items.
1513
+ * @returns {VegaRTERenderResult} - The render result for the dropdown list.
1514
+ */
1515
+ renderDropdownListTemplate(h, itemList) {
1516
+ return h('div', {
1517
+ slot: 'items',
1518
+ onMouseDown: this.preventDefault,
1519
+ }, itemList.map((item) => {
1520
+ return this.renderDropdownItem(h, item);
1521
+ }));
1522
+ }
1523
+ /**
1524
+ * Renders a dropdown item for the toolbar button.
1525
+ *
1526
+ * @param {VegaRTECreateElementFunction} h - Create element function.
1527
+ * @param {RTEDropdownListItem} item - The dropdown item.
1528
+ * @returns {VegaRTERenderResult} - The render result for the dropdown item.
1529
+ */
1530
+ renderDropdownItem(h, item) {
1531
+ return h('vega-dropdown-item', {
1532
+ key: item.key,
1533
+ itemKey: item.key,
1534
+ label: item.label,
1535
+ prefixIcon: item.icon,
1536
+ });
1537
+ }
1538
+ /**
1539
+ * Renders a common toolbar button with optional icon, label, and arrow icon.
1540
+ *
1541
+ * @param {VegaRTECreateElementFunction} h - Create element function.
1542
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1543
+ * @param {RTEToolbarButtonProps} buttonProps - The properties for the button.
1544
+ * @returns {VegaRTERenderResult} - The render result for the button.
1545
+ */
1546
+ renderButton(h, editorContext, buttonProps) {
1547
+ const { icon, label, showArrowIcon } = buttonProps;
1548
+ const isDisabled = this.isDisabled(editorContext);
1549
+ return h('vega-rich-text-editor-toolbar-button', {
1550
+ disabled: isDisabled,
1551
+ icon: icon,
1552
+ hidden: this.isHidden(editorContext),
1553
+ selected: this.isSelected(editorContext),
1554
+ // eslint-disable-next-line jsdoc/require-jsdoc
1555
+ ref: (el) => {
1556
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaClick, () => this.handleButtonClick(editorContext));
1557
+ },
1558
+ onMouseDown: this.preventDefault,
1559
+ }, [
1560
+ this.renderButtonLabel(h, editorContext, label),
1561
+ showArrowIcon
1562
+ ? h('vega-icon', {
1563
+ size: 'size-8',
1564
+ color: isDisabled ? 'text-disabled' : 'text-secondary',
1565
+ style: { marginLeft: '8px' },
1566
+ icon: VegaInternalIconManager.getIconKey('chevron-down'),
1567
+ })
1568
+ : null,
1569
+ ].filter(isNonNullable));
1570
+ }
1571
+ /**
1572
+ * Renders the button label.
1573
+ *
1574
+ * @param {VegaRTECreateElementFunction} h - Create element function.
1575
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1576
+ * @param {Nullable<string>} label - The button label if exist.
1577
+ * @returns {Nullable<VegaRTERenderResult>} - The render result for the button.
1578
+ */
1579
+ renderButtonLabel(h, editorContext, label) {
1580
+ if (label) {
1581
+ const isDisabled = this.isDisabled(editorContext);
1582
+ return h('vega-font', {
1583
+ variant: 'font-field-label-sm',
1584
+ color: isDisabled ? 'text-disabled' : 'text-primary',
1585
+ }, label);
1586
+ }
1587
+ return null;
1588
+ }
1589
+ /**
1590
+ * Determines if the button should be disabled based on the editor context.
1591
+ *
1592
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1593
+ * @returns {boolean} - True if the button should be disabled, false otherwise.
1594
+ */
1595
+ isDisabled(editorContext) {
1596
+ return editorContext.host.disabled;
1597
+ }
1598
+ /**
1599
+ * Checks if the button should be selected.
1600
+ *
1601
+ * @param {VegaRTEToolbarRenderContext} _editorContext The render context for the editor.
1602
+ * @returns {boolean} True if the button is selected, false otherwise.
1603
+ */
1604
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1605
+ isSelected(_editorContext) {
1606
+ return false;
1607
+ }
1608
+ /**
1609
+ * Prevents the default action of the click event. This is to avoid losing focus from the editor when the button is clicked.
1610
+ *
1611
+ * @param {MouseEvent} e The mouse event to prevent default action for.
1612
+ */
1613
+ preventDefault(e) {
1614
+ e.preventDefault();
1615
+ }
1616
+ }
1617
+
1618
+ /**
1619
+ * Action to insert a token node at a specified range in the Rich Text Editor.
1620
+ *
1621
+ * @example block.apply(new InsertTokenNodeAction(rteRange, tokenNode));
1622
+ */
1623
+ class InsertTokenNodeAction extends ModifyContentAction {
1624
+ constructor(rteRange, token) {
1625
+ super();
1626
+ this.type = 'INSERT_TOKEN_NODE';
1627
+ this.rteRange = null;
1628
+ this.actionHandleResult = false;
1629
+ this.rteRange = rteRange;
1630
+ this.token = token;
1631
+ }
1632
+ }
1633
+
1634
+ /**
1635
+ * Renderer for the token toolbar button in the Vega Rich Text Editor.
1636
+ */
1637
+ class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
1638
+ constructor(tokenList) {
1639
+ super();
1640
+ this.tokenList = [];
1641
+ this.extensionContext = null;
1642
+ this.tokenList = tokenList;
1643
+ }
1644
+ /**
1645
+ * Sets the RTE extension context.
1646
+ *
1647
+ * @param {RTEExtensionContext} context - The context of the RTE extension.
1648
+ */
1649
+ injectExtensionContext(context) {
1650
+ this.extensionContext = context;
1651
+ }
1652
+ /**
1653
+ * Renders the token toolbar button.
1654
+ *
1655
+ * @param {VegaRTECreateElementFunction} createElement Function to create elements in the rich text editor.
1656
+ * @param {VegaRTEToolbarRenderContext} editorContext The render context for the editor.
1657
+ * @returns {VegaRTERenderResult} Token toolbar button.
1658
+ */
1659
+ render(createElement, editorContext) {
1660
+ return this.renderDropdown(createElement, editorContext, {}, [
1661
+ this.renderButton(createElement, editorContext, { label: 'Tokens', showArrowIcon: true }),
1662
+ this.renderDropdownListTemplate(createElement, this.tokenList),
1663
+ ]);
1664
+ }
1665
+ /**
1666
+ * Checks if the token toolbar button is disabled.
1667
+ *
1668
+ * @returns {boolean} True if the button is disabled, false otherwise.
1669
+ */
1670
+ isDisabled() {
1671
+ if (this.extensionContext) {
1672
+ const { host, getSelectedNodes } = this.extensionContext;
1673
+ const [startNode] = getSelectedNodes();
1674
+ return startNode
1675
+ ? host.disabled ||
1676
+ !ActionHandleStrategyRegistry.canHandle('INSERT_TOKEN_NODE', startNode.parent)
1677
+ : host.disabled;
1678
+ }
1679
+ return false;
1680
+ }
1681
+ /* istanbul ignore next */
1682
+ /**
1683
+ * Handles the button click event. No need this method for token button.
1684
+ *
1685
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1686
+ */
1687
+ handleButtonClick(editorContext) {
1688
+ }
1689
+ /**
1690
+ * Handles the token item click event from the dropdown.
1691
+ *
1692
+ * @param {string} itemKey - The key of the clicked token item.
1693
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1694
+ */
1695
+ handleDropdownClick(itemKey, editorContext) {
1696
+ const token = this.tokenList.find((t) => t.key === itemKey);
1697
+ const { rteRange } = editorContext;
1698
+ const { startNode } = rteRange;
1699
+ if (startNode && startNode.parent) {
1700
+ const action = new InsertTokenNodeAction(rteRange, token);
1701
+ startNode.parent.apply(action);
1702
+ if (action.actionHandleResult) {
1703
+ this.flushEditorUI();
1704
+ }
1705
+ }
1706
+ }
1707
+ /**
1708
+ * Refreshes the editor UI.
1709
+ */
1710
+ flushEditorUI() {
1711
+ if (this.extensionContext) {
1712
+ const { host, flushValue } = this.extensionContext;
1713
+ flushValue(host.value);
1714
+ }
1715
+ }
1716
+ }
1717
+
1718
+ /**
1719
+ * Token node for the Vega Rich Text Editor.
1720
+ */
1721
+ class RTETokenNode extends RTETextNode {
1722
+ constructor(id, token, text, parentBlock, annotations) {
1723
+ super(id, text, parentBlock, annotations);
1724
+ this.type = 'token';
1725
+ this.token = token;
1726
+ this.text = text;
1727
+ }
1728
+ /**
1729
+ * @inheritDoc
1730
+ */
1731
+ static from(value, parent) {
1732
+ const node = new RTETokenNode(value.id, value.token, value.text, parent);
1733
+ if (value.annotations) {
1734
+ node.annotationMap = this.generateTextAnnotationMap(value.annotations);
1735
+ }
1736
+ return node;
1737
+ }
1738
+ /**
1739
+ * Converts the token node to a JSON representation.
1740
+ *
1741
+ * @returns {VegaRTETokenNode} - The JSON representation of the token node.
1742
+ */
1743
+ toJSON() {
1744
+ const json = super.toJSON();
1745
+ return Object.assign({ id: this.id, type: this.type, text: this.text, token: this.token }, (json.annotations ? { annotations: json.annotations } : {}));
1746
+ }
1747
+ /**
1748
+ * Determines if the token node is content editable.
1749
+ *
1750
+ * @returns {boolean} - Always returns false for token nodes.
1751
+ */
1752
+ isContentEditable() {
1753
+ return false;
1754
+ }
1755
+ /**
1756
+ * Clones the token node.
1757
+ *
1758
+ * @returns {RTETokenNode} - The cloned token node.
1759
+ */
1760
+ clone() {
1761
+ return new RTETokenNode(this.id, this.token, this.text, this.parent, this.annotationMap);
1762
+ }
1763
+ /**
1764
+ * Converts the token node to an HTML representation.
1765
+ *
1766
+ * @returns {string} - The HTML representation of the token node.
1767
+ */
1768
+ toHtml() {
1769
+ return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}" ${super.generateAttributeString()}>${this.text}</span>`;
1770
+ }
1771
+ }
1772
+
1773
+ /**
1774
+ * Token node renderer for the rich text editor.
1775
+ */
1776
+ class RTETokenNodeRenderer extends VegaRTEExtensionRenderer {
1777
+ constructor() {
1778
+ super(...arguments);
1779
+ this.extensionContext = null;
1780
+ }
1781
+ /**
1782
+ * Renders the token node as a DOM element.
1783
+ *
1784
+ * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1785
+ * @param {RTETokenNode} node - The token node to render.
1786
+ * @param {RTERenderContext} editorContent - The editor content context.
1787
+ * @returns {VegaRTERenderResult} - The rendered DOM element.
1788
+ */
1789
+ doRender(createElement, node, editorContent) {
1790
+ const { id, token } = node;
1791
+ return createElement('span', {
1792
+ 'key': id,
1793
+ 'template-token-key': token,
1794
+ 'token-key': token,
1795
+ 'contenteditable': 'false',
1796
+ 'style': this.getStyle(node),
1797
+ 'class': `token ${node.getClasses()}`,
1798
+ 'ref': this.useRef(node),
1799
+ // eslint-disable-next-line jsdoc/require-jsdoc
1800
+ 'onClick': (event) => {
1801
+ event.preventDefault();
1802
+ if (editorContent && editorContent.editable !== false) {
1803
+ this.handleTokenElementClick(event, node);
1804
+ }
1805
+ },
1806
+ }, node.text);
1807
+ }
1808
+ /**
1809
+ * Sets the RTE extension context.
1810
+ *
1811
+ * @param {RTEExtensionContext} context - The context of the RTE extension.
1812
+ */
1813
+ injectExtensionContext(context) {
1814
+ this.extensionContext = context;
1815
+ }
1816
+ /**
1817
+ * Get the style for the token element.
1818
+ *
1819
+ * @param {RTETokenNode} node - The token node.
1820
+ * @returns {Record<string, string>} The style object for the token element.
1821
+ */
1822
+ getStyle(node) {
1823
+ return Object.assign(Object.assign({}, node.getStyles()), { backgroundColor: 'var(--v-bg-status-info, #CDD1D3)', padding: '0 2px', margin: '0 1px' });
1824
+ }
1825
+ /**
1826
+ * Handle the click event on the token element.
1827
+ *
1828
+ * @param {MouseEvent} event - The click event.
1829
+ * @param {RTETokenNode} node - The token node that was clicked.
1830
+ */
1831
+ handleTokenElementClick(event, node) {
1832
+ event.preventDefault();
1833
+ if (this.extensionContext) {
1834
+ this.extensionContext.host.value.apply(new UpdateCursorPositionAction(node, undefined, true));
1835
+ }
1836
+ }
1837
+ }
1838
+
1839
+ /**
1840
+ * Insert a new children to the nearest position of the parent container
1841
+ *
1842
+ * @example parent.apply(new InsertNodeToNearestRoot(rteRange, nodeToBeInserted))
1843
+ */
1844
+ class InsertNodeToNearestRootAction extends ModifyContentAction {
1845
+ constructor(rteRange, nodeToBeInserted) {
1846
+ super();
1847
+ this.type = ModifyContentActionType.INSERT_NODE_TO_NEAREST_ROOT;
1848
+ this.rteRange = rteRange;
1849
+ this.nodeToBeInserted = nodeToBeInserted;
1850
+ }
1851
+ }
1852
+
1853
+ /**
1854
+ * Strategy to handle the insertion of a token node into the nearest root block.
1855
+ */
1856
+ class InsertTokenNodeStrategy extends ActionHandleStrategy {
1857
+ /**
1858
+ * @inheritDoc
1859
+ */
1860
+ handleAction(action, block) {
1861
+ const { rteRange, token } = action;
1862
+ if (rteRange && rteRange.startNode) {
1863
+ const tokenNode = new RTETokenNode(generateUUID(), token.key, token.label, block);
1864
+ block.apply(new InsertNodeToNearestRootAction(rteRange, tokenNode));
1865
+ action.actionHandleResult = true;
1866
+ }
1867
+ }
1868
+ }
1869
+
1870
+ var __rest = (undefined && undefined.__rest) || function (s, e) {
1871
+ var t = {};
1872
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1873
+ t[p] = s[p];
1874
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
1875
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1876
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1877
+ t[p[i]] = s[p[i]];
1878
+ }
1879
+ return t;
1880
+ };
1881
+ /**
1882
+ * Strategy to convert <span class="token" token-key="...">...</span> to a token node
1883
+ */
1884
+ class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
1885
+ /**
1886
+ * @inheritDoc
1887
+ */
1888
+ canHandle(elementsArray, currentIndex) {
1889
+ const element = elementsArray[currentIndex];
1890
+ if (element.nodeName === 'SPAN' &&
1891
+ element.classList.contains('token') &&
1892
+ element.hasAttribute('token-key')) {
1893
+ return 1;
1894
+ }
1895
+ return 0;
1896
+ }
1897
+ /**
1898
+ * @inheritDoc
1899
+ */
1900
+ handle(elementsArray) {
1901
+ const element = elementsArray[0];
1902
+ const tokenKey = element.getAttribute('token-key');
1903
+ const text = element.textContent;
1904
+ const annotations = this.generateTextStyleAnnotations(element);
1905
+ // Exclude customAttribute and customClass from annotations
1906
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1907
+ const restAnnotations = __rest(annotations, ["customAttribute", "customClass"]);
1908
+ return {
1909
+ id: generateUUID(),
1910
+ type: 'token',
1911
+ token: tokenKey,
1912
+ text,
1913
+ annotations: Object.assign({}, restAnnotations),
1914
+ };
1915
+ }
1916
+ /**
1917
+ * @inheritDoc
1918
+ */
1919
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
1920
+ appendChildBlocks() { }
1921
+ /**
1922
+ * @inheritDoc
1923
+ */
1924
+ shouldProceedToElementChildren() {
1925
+ return false;
1926
+ }
1927
+ }
1928
+
1929
+ const spanToTokenNodeStrategy = new SpanToTokenNodeStrategy();
1930
+ /**
1931
+ * Vega Rich Text Editor Token Extension
1932
+ */
1933
+ class VegaRTETokenExtension extends VegaRTEExtension {
1934
+ constructor(tokenList = []) {
1935
+ super();
1936
+ this.tokenRenderer = new RTETokenNodeRenderer();
1937
+ this.registerNode('token', RTETokenNode);
1938
+ this.registerRenderer('token', this.tokenRenderer);
1939
+ this.tokenToolbarButtonRenderer = new RTETokenToolbarButtonRenderer(tokenList);
1940
+ this.registerToolbarButtonRenderer('token', this.tokenToolbarButtonRenderer);
1941
+ this.registerElementToNodeDTOClassStrategy(spanToTokenNodeStrategy);
1942
+ }
1943
+ /**
1944
+ * @inheritDoc
1945
+ */
1946
+ initialExtension(context) {
1947
+ super.initialExtension(context);
1948
+ this.tokenRenderer.injectExtensionContext(context);
1949
+ if (this.tokenToolbarButtonRenderer) {
1950
+ this.tokenToolbarButtonRenderer.injectExtensionContext(context);
1951
+ }
1952
+ }
1953
+ }
1954
+ (() => {
1955
+ const insertTokenNodeStrategy = new InsertTokenNodeStrategy();
1956
+ VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, 'INSERT_TOKEN_NODE', insertTokenNodeStrategy);
1957
+ VegaRTEExtension.registerActionHandleStrategy(RTEListItemBlock.name, 'INSERT_TOKEN_NODE', insertTokenNodeStrategy);
1958
+ })();
1959
+
1960
+ export { InsertNodeToNearestRootAction as I, RTETokenToolbarButtonRenderer as R, VegaLoader as V, VegaNotify as a, VegaThemeManager as b, VegaDialog as c, VegaEventManager$1 as d, VegaZIndexManager$1 as e, VegaSkeletonLoader as f, VegaRTETokenExtension as g, VegaRTEToolbarButtonRenderer as h, VegaRTEExtension as i, VegaRTEExtensionRenderer as j, RTETokenNode as k, RTETokenNodeRenderer as l, InternalVegaZIndexManager$1 as m };