@globalpayments/vega 2.66.0 → 2.68.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 (436) hide show
  1. package/dist/cjs/{app-globals-ab28f910.js → app-globals-f7106a22.js} +15 -14
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-eb803b14.js → child-nodes-event-prevent-slimmer-f8840f1b.js} +1 -1
  3. package/dist/cjs/{code-block-ab97a0a0.js → code-block-39074880.js} +514 -319
  4. package/dist/cjs/{component-value-history-controller-slimmer.abstract-5630341e.js → component-value-history-controller-slimmer.abstract-ddedf543.js} +2 -2
  5. package/dist/cjs/{design-token-847739f1.js → design-token-e14a4e66.js} +1 -1
  6. package/dist/cjs/{dto-renderer-manager-d0f0f2c0.js → dto-renderer-manager-b7969d6c.js} +1587 -1563
  7. package/dist/cjs/{element-appender-slimmer-aead9bbb.js → element-appender-slimmer-7ee27ab3.js} +5 -5
  8. package/dist/cjs/{event-emit-slimmer-d21a0935.js → event-emit-slimmer-7afe8d78.js} +1 -1
  9. package/dist/cjs/{token-extension-aa8d5cce.js → function-extension-f0e845f2.js} +1019 -96
  10. package/dist/cjs/{image-annotation-action-d84de785.js → image-annotation-action-7f0626c8.js} +15 -25
  11. package/dist/cjs/index.cjs.js +36 -24
  12. package/dist/cjs/{internal-vega-event-manager-4d1ce667.js → internal-vega-event-manager-45d451de.js} +5 -2
  13. package/dist/cjs/{language-extension-d257e65d.js → language-extension-d0103d1a.js} +5 -5
  14. package/dist/cjs/loader.cjs.js +8 -8
  15. package/dist/cjs/{public-rules-d2b9b8f0.js → public-rules-8b67eaba.js} +3 -3
  16. package/dist/cjs/{range-d610028e.js → range-002671b6.js} +1 -1
  17. package/dist/cjs/{responsive-format-facade-71e7b74c.js → responsive-format-facade-347db035.js} +3 -3
  18. package/dist/cjs/{rich-text-editor-required-rule-a8fe5f50.js → rich-text-editor-required-rule-5392bd8a.js} +1 -1
  19. package/dist/cjs/{style-formatter-6facb42b.js → style-formatter-0a09f0dd.js} +1 -1
  20. package/dist/cjs/vega-accordion.cjs.entry.js +7 -7
  21. package/dist/cjs/vega-app-header-button.cjs.entry.js +8 -8
  22. package/dist/cjs/vega-banner.cjs.entry.js +2 -2
  23. package/dist/cjs/vega-box.cjs.entry.js +8 -8
  24. package/dist/cjs/vega-breadcrumb.cjs.entry.js +3 -3
  25. package/dist/cjs/vega-button-circle.cjs.entry.js +9 -9
  26. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  27. package/dist/cjs/vega-button-link.cjs.entry.js +3 -3
  28. package/dist/cjs/vega-button.cjs.entry.js +8 -8
  29. package/dist/cjs/vega-calendar_4.cjs.entry.js +307 -269
  30. package/dist/cjs/vega-card.cjs.entry.js +7 -7
  31. package/dist/cjs/vega-carousel.cjs.entry.js +7 -7
  32. package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
  33. package/dist/cjs/vega-chip.cjs.entry.js +9 -9
  34. package/dist/cjs/vega-code-block.cjs.entry.js +6 -6
  35. package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
  36. package/dist/cjs/vega-combo-box.cjs.entry.js +3 -3
  37. package/dist/cjs/vega-date-picker_2.cjs.entry.js +12 -12
  38. package/dist/cjs/vega-dialog_2.cjs.entry.js +138 -44
  39. package/dist/cjs/vega-divider.cjs.entry.js +7 -7
  40. package/dist/cjs/vega-dropdown_5.cjs.entry.js +9 -9
  41. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  42. package/dist/cjs/vega-field-label.cjs.entry.js +24 -5
  43. package/dist/cjs/vega-file-uploader.cjs.entry.js +2 -2
  44. package/dist/cjs/vega-flag-icon.cjs.entry.js +6 -6
  45. package/dist/cjs/vega-flex.cjs.entry.js +8 -8
  46. package/dist/cjs/vega-font.cjs.entry.js +7 -7
  47. package/dist/cjs/vega-form.cjs.entry.js +3 -3
  48. package/dist/cjs/vega-grid.cjs.entry.js +7 -7
  49. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  50. package/dist/cjs/vega-image-uploader.cjs.entry.js +8 -8
  51. package/dist/cjs/vega-input-credit-card.cjs.entry.js +3 -3
  52. package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
  53. package/dist/cjs/vega-input-passcode.cjs.entry.js +3 -3
  54. package/dist/cjs/vega-input-phone-number.cjs.entry.js +6 -6
  55. package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
  56. package/dist/cjs/vega-input-select.cjs.entry.js +38 -14
  57. package/dist/cjs/vega-input.cjs.entry.js +14 -3
  58. package/dist/cjs/vega-item-toggle.cjs.entry.js +2 -2
  59. package/dist/cjs/vega-left-nav_5.cjs.entry.js +11 -11
  60. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +8 -8
  61. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +2 -2
  62. package/dist/cjs/vega-pagination.cjs.entry.js +7 -7
  63. package/dist/cjs/vega-popover_2.cjs.entry.js +9 -9
  64. package/dist/cjs/vega-progress-tracker.cjs.entry.js +2 -2
  65. package/dist/cjs/vega-radio_2.cjs.entry.js +3 -3
  66. package/dist/cjs/vega-rich-text-content.cjs.entry.js +93 -16
  67. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +107 -54
  68. package/dist/cjs/vega-segment-control.cjs.entry.js +2 -2
  69. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
  70. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
  71. package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
  72. package/dist/cjs/vega-signature-capture.cjs.entry.js +7 -7
  73. package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
  74. package/dist/cjs/vega-tab-group_2.cjs.entry.js +3 -3
  75. package/dist/cjs/vega-table_8.cjs.entry.js +11 -11
  76. package/dist/cjs/vega-textarea.cjs.entry.js +24 -4
  77. package/dist/cjs/vega-time-picker_2.cjs.entry.js +9 -9
  78. package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
  79. package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
  80. package/dist/cjs/vega.cjs.js +8 -8
  81. package/dist/collection/components/vega-calendar/slimmers/common/helpers/calendar-event-sorter.js +3 -3
  82. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +1 -1
  83. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/day-view-timed-event-layout-column.js +1 -1
  84. package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +3 -4
  85. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.js +11 -3
  86. package/dist/collection/components/vega-field-label/vega-field-label.js +42 -0
  87. package/dist/collection/components/vega-input/vega-input.js +48 -2
  88. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-renderer.js +16 -5
  89. package/dist/collection/components/vega-input-select/vega-input-select.css +2 -44
  90. package/dist/collection/components/vega-input-select/vega-input-select.js +81 -1
  91. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +95 -16
  92. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-z-index-controller.js +4 -1
  93. package/dist/collection/components/vega-modal/slimmers/models/vega-modal-open-state.js +9 -0
  94. package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +4 -1
  95. package/dist/collection/components/vega-modal/vega-modal.js +19 -16
  96. package/dist/collection/components/vega-rich-text-content/slimmers/controllers/vega-rich-text-content-extensions-styles-controller.js +60 -0
  97. package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +7 -1
  98. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +17 -1
  99. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor-registry.js +61 -0
  100. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor.abstract.js +5 -0
  101. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +30 -6
  102. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +10 -3
  103. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +2 -1
  104. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.js +28 -0
  105. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
  106. package/dist/collection/components/vega-rich-text-editor/dto/actions/paste-content-action.js +17 -0
  107. package/dist/collection/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.js +5 -0
  108. package/dist/collection/components/vega-rich-text-editor/dto/annotations/annotation-style.js +87 -0
  109. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +27 -9
  110. package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +1 -12
  111. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +6 -0
  112. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +14 -5
  113. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
  114. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +7 -37
  115. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +14 -3
  116. package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js +19 -1
  117. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +44 -3
  118. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +51 -1
  119. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-new-paragraph-interceptor.js +30 -0
  120. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-paste-content-interceptor.js +25 -0
  121. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/function-block-insert-paragraph-strategy.js +30 -0
  122. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +99 -0
  123. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/paste-plain-text-strategy.js +68 -0
  124. package/dist/collection/components/vega-rich-text-editor/extensions/functions/actions/insert-function-block-action.js +15 -0
  125. package/dist/collection/components/vega-rich-text-editor/extensions/functions/actions/paste-plain-text-action.js +17 -0
  126. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +97 -0
  127. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +73 -0
  128. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +69 -0
  129. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +49 -0
  130. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +27 -0
  131. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +55 -0
  132. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +75 -0
  133. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +38 -0
  134. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +71 -0
  135. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +20 -0
  136. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +1 -1
  137. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +3 -1
  138. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +5 -6
  139. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -1
  140. package/dist/collection/components/vega-rich-text-editor/public-api.js +8 -1
  141. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/delete-selected-nodes-controller.js +9 -1
  142. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +0 -12
  143. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +3 -1
  144. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +12 -10
  145. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bold-toolbar-button-slimmer.js +2 -4
  146. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +30 -5
  147. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/clear-style-toolbar-button-slimmer.js +1 -4
  148. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/code-block-toolbar-button-slimmer.js +10 -1
  149. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/code-toolbar-button-slimmer.js +2 -4
  150. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
  151. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +4 -1
  152. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/italic-toolbar-button-slimmer.js +2 -4
  153. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/less-indent-toolbar-button-slimmer.js +1 -4
  154. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +1 -4
  155. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/more-indent-toolbar-button-slimmer.js +1 -4
  156. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/strikethrough-toolbar-button-slimmer.js +2 -4
  157. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +2 -4
  158. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +2 -5
  159. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/underline-toolbar-button-slimmer.js +2 -4
  160. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.js +11 -0
  161. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +4 -1
  162. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.js +32 -2
  163. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-delete-node-content-strategy.test.js +69 -0
  164. package/dist/collection/components/vega-rich-text-editor/test/dto/annotation-style.test.js +70 -0
  165. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.css +3 -0
  166. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
  167. package/dist/collection/components/vega-table/vega-table.css +2 -1
  168. package/dist/collection/components/vega-textarea/vega-textarea.js +88 -2
  169. package/dist/collection/global/scripts/before-vega-load.js +2 -0
  170. package/dist/collection/helpers/calendar/calendar-date-time.js +136 -0
  171. package/dist/collection/helpers/calendar/calendar-date.js +10 -4
  172. package/dist/collection/helpers/calendar/calendar-event.js +38 -193
  173. package/dist/collection/helpers/calendar/calendar-time.js +120 -0
  174. package/dist/collection/helpers/calendar/index.js +2 -0
  175. package/dist/collection/helpers/calendar/test/calendar-date-time.test.js +27 -0
  176. package/dist/collection/helpers/calendar/test/calendar-event.test.js +24 -22
  177. package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +2 -2
  178. package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +2 -2
  179. package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +6 -6
  180. package/dist/collection/helpers/calendar/test/calendar-time.test.js +45 -0
  181. package/dist/collection/helpers/calendar/test/utils.test.js +1 -29
  182. package/dist/collection/helpers/calendar/utils.js +0 -66
  183. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +5 -2
  184. package/dist/collection/helpers/rte-manager/dto-action-strategy-manager.js +2 -0
  185. package/dist/esm/{app-globals-37a60cc1.js → app-globals-2f689986.js} +6 -5
  186. package/dist/esm/{child-nodes-event-prevent-slimmer-735cb880.js → child-nodes-event-prevent-slimmer-76331524.js} +1 -1
  187. package/dist/esm/{code-block-11b2bc1c.js → code-block-e8839202.js} +511 -318
  188. package/dist/esm/{component-value-history-controller-slimmer.abstract-16c5cb96.js → component-value-history-controller-slimmer.abstract-c6f94113.js} +2 -2
  189. package/dist/esm/{design-token-297dc528.js → design-token-e9e6b011.js} +1 -1
  190. package/dist/esm/{dto-renderer-manager-a1a3b6d2.js → dto-renderer-manager-7abc53bf.js} +1587 -1565
  191. package/dist/esm/{element-appender-slimmer-f7233708.js → element-appender-slimmer-8dbc8387.js} +2 -2
  192. package/dist/esm/{event-emit-slimmer-28fd360c.js → event-emit-slimmer-4e28e9f8.js} +1 -1
  193. package/dist/esm/{token-extension-b690953f.js → function-extension-eb1d062f.js} +1018 -97
  194. package/dist/esm/{image-annotation-action-fc46c920.js → image-annotation-action-7957653a.js} +14 -24
  195. package/dist/esm/index.js +9 -9
  196. package/dist/esm/{internal-vega-event-manager-a5a5938d.js → internal-vega-event-manager-516aa721.js} +5 -2
  197. package/dist/esm/{language-extension-314a2b18.js → language-extension-3331131f.js} +3 -3
  198. package/dist/esm/loader.js +8 -8
  199. package/dist/esm/{public-rules-c6a6946d.js → public-rules-e613dead.js} +3 -3
  200. package/dist/esm/{range-b78254de.js → range-adf206fd.js} +1 -1
  201. package/dist/esm/{responsive-format-facade-a41e1be7.js → responsive-format-facade-b0712993.js} +3 -3
  202. package/dist/esm/{rich-text-editor-required-rule-d50c24da.js → rich-text-editor-required-rule-43857573.js} +1 -1
  203. package/dist/esm/{style-formatter-f7effaac.js → style-formatter-a20a1ef4.js} +1 -1
  204. package/dist/esm/vega-accordion.entry.js +7 -7
  205. package/dist/esm/vega-app-header-button.entry.js +8 -8
  206. package/dist/esm/vega-banner.entry.js +2 -2
  207. package/dist/esm/vega-box.entry.js +8 -8
  208. package/dist/esm/vega-breadcrumb.entry.js +3 -3
  209. package/dist/esm/vega-button-circle.entry.js +9 -9
  210. package/dist/esm/vega-button-group_2.entry.js +3 -3
  211. package/dist/esm/vega-button-link.entry.js +3 -3
  212. package/dist/esm/vega-button.entry.js +8 -8
  213. package/dist/esm/vega-calendar_4.entry.js +307 -269
  214. package/dist/esm/vega-card.entry.js +7 -7
  215. package/dist/esm/vega-carousel.entry.js +7 -7
  216. package/dist/esm/vega-checkbox_2.entry.js +3 -3
  217. package/dist/esm/vega-chip.entry.js +9 -9
  218. package/dist/esm/vega-code-block.entry.js +6 -6
  219. package/dist/esm/vega-color-picker.entry.js +2 -2
  220. package/dist/esm/vega-combo-box.entry.js +3 -3
  221. package/dist/esm/vega-date-picker_2.entry.js +8 -8
  222. package/dist/esm/vega-dialog_2.entry.js +132 -38
  223. package/dist/esm/vega-divider.entry.js +7 -7
  224. package/dist/esm/vega-dropdown_5.entry.js +9 -9
  225. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  226. package/dist/esm/vega-field-label.entry.js +24 -5
  227. package/dist/esm/vega-file-uploader.entry.js +2 -2
  228. package/dist/esm/vega-flag-icon.entry.js +6 -6
  229. package/dist/esm/vega-flex.entry.js +8 -8
  230. package/dist/esm/vega-font.entry.js +7 -7
  231. package/dist/esm/vega-form.entry.js +3 -3
  232. package/dist/esm/vega-grid.entry.js +7 -7
  233. package/dist/esm/vega-icon.entry.js +6 -6
  234. package/dist/esm/vega-image-uploader.entry.js +7 -7
  235. package/dist/esm/vega-input-credit-card.entry.js +3 -3
  236. package/dist/esm/vega-input-numeric.entry.js +3 -3
  237. package/dist/esm/vega-input-passcode.entry.js +3 -3
  238. package/dist/esm/vega-input-phone-number.entry.js +6 -6
  239. package/dist/esm/vega-input-range.entry.js +3 -3
  240. package/dist/esm/vega-input-select.entry.js +38 -14
  241. package/dist/esm/vega-input.entry.js +14 -3
  242. package/dist/esm/vega-item-toggle.entry.js +2 -2
  243. package/dist/esm/vega-left-nav_5.entry.js +7 -7
  244. package/dist/esm/vega-loader-wrapper_2.entry.js +6 -6
  245. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
  246. package/dist/esm/vega-pagination.entry.js +7 -7
  247. package/dist/esm/vega-popover_2.entry.js +9 -9
  248. package/dist/esm/vega-progress-tracker.entry.js +2 -2
  249. package/dist/esm/vega-radio_2.entry.js +3 -3
  250. package/dist/esm/vega-rich-text-content.entry.js +93 -16
  251. package/dist/esm/vega-rich-text-editor_4.entry.js +107 -54
  252. package/dist/esm/vega-segment-control.entry.js +2 -2
  253. package/dist/esm/vega-selection-chip_2.entry.js +8 -8
  254. package/dist/esm/vega-selection-tile_2.entry.js +3 -3
  255. package/dist/esm/vega-sidenav_3.entry.js +6 -6
  256. package/dist/esm/vega-signature-capture.entry.js +7 -7
  257. package/dist/esm/vega-stepper.entry.js +3 -3
  258. package/dist/esm/vega-tab-group_2.entry.js +3 -3
  259. package/dist/esm/vega-table_8.entry.js +8 -8
  260. package/dist/esm/vega-textarea.entry.js +25 -5
  261. package/dist/esm/vega-time-picker_2.entry.js +9 -9
  262. package/dist/esm/vega-toggle-switch.entry.js +2 -2
  263. package/dist/esm/vega-tooltip_2.entry.js +7 -7
  264. package/dist/esm/vega.js +8 -8
  265. package/dist/sri/vega-sri-manifest.json +273 -273
  266. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.d.ts +1 -0
  267. package/dist/types/components/vega-field-label/types.d.ts +12 -0
  268. package/dist/types/components/vega-field-label/vega-field-label.d.ts +13 -1
  269. package/dist/types/components/vega-input/vega-input.d.ts +14 -2
  270. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-renderer.d.ts +3 -0
  271. package/dist/types/components/vega-input-select/vega-input-select.d.ts +25 -0
  272. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +31 -2
  273. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-z-index-controller.d.ts +1 -0
  274. package/dist/types/components/vega-modal/slimmers/models/vega-modal-open-state.d.ts +9 -0
  275. package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +1 -0
  276. package/dist/types/components/vega-modal/types.d.ts +9 -0
  277. package/dist/types/components/vega-modal/vega-modal.d.ts +8 -2
  278. package/dist/types/components/vega-rich-text-content/slimmers/controllers/vega-rich-text-content-extensions-styles-controller.d.ts +26 -0
  279. package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +1 -0
  280. package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +7 -0
  281. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor-registry.d.ts +42 -0
  282. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor.abstract.d.ts +26 -0
  283. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +9 -2
  284. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.d.ts +7 -0
  285. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.d.ts +12 -0
  286. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
  287. package/dist/types/components/vega-rich-text-editor/dto/actions/paste-content-action.d.ts +20 -0
  288. package/dist/types/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.d.ts +1 -0
  289. package/dist/types/components/vega-rich-text-editor/dto/annotations/annotation-style.d.ts +46 -0
  290. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +10 -1
  291. package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +3 -3
  292. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +6 -0
  293. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +0 -11
  294. package/dist/types/components/vega-rich-text-editor/extensions/base-extension-renderer.d.ts +16 -0
  295. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +19 -3
  296. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +36 -3
  297. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-new-paragraph-interceptor.d.ts +25 -0
  298. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-paste-content-interceptor.d.ts +17 -0
  299. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/function-block-insert-paragraph-strategy.d.ts +18 -0
  300. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.d.ts +27 -0
  301. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/paste-plain-text-strategy.d.ts +26 -0
  302. package/dist/types/components/vega-rich-text-editor/extensions/functions/actions/insert-function-block-action.d.ts +17 -0
  303. package/dist/types/components/vega-rich-text-editor/extensions/functions/actions/paste-plain-text-action.d.ts +17 -0
  304. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +58 -0
  305. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.d.ts +55 -0
  306. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +48 -0
  307. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.d.ts +27 -0
  308. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.d.ts +14 -0
  309. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.d.ts +32 -0
  310. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +19 -0
  311. package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.d.ts +25 -0
  312. package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.d.ts +33 -0
  313. package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.d.ts +12 -0
  314. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +2 -2
  315. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +2 -2
  316. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +2 -2
  317. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +3 -4
  318. package/dist/types/components/vega-rich-text-editor/interface.d.ts +8 -2
  319. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +8 -1
  320. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +2 -11
  321. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/state-entity-rendering-registry.d.ts +1 -1
  322. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.d.ts +15 -0
  323. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/code-block-toolbar-button-slimmer.d.ts +1 -0
  324. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.d.ts +11 -0
  325. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +1 -0
  326. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-delete-node-content-strategy.test.d.ts +1 -0
  327. package/dist/types/components/vega-rich-text-editor/test/dto/annotation-style.test.d.ts +1 -0
  328. package/dist/types/components/vega-textarea/vega-textarea.d.ts +26 -0
  329. package/dist/types/components.d.ts +66 -4
  330. package/dist/types/helpers/calendar/calendar-date-time.d.ts +76 -0
  331. package/dist/types/helpers/calendar/calendar-event.d.ts +18 -57
  332. package/dist/types/helpers/calendar/calendar-time.d.ts +64 -0
  333. package/dist/types/helpers/calendar/index.d.ts +2 -0
  334. package/dist/types/helpers/calendar/test/calendar-date-time.test.d.ts +1 -0
  335. package/dist/types/helpers/calendar/test/calendar-time.test.d.ts +1 -0
  336. package/dist/types/helpers/calendar/utils.d.ts +0 -25
  337. package/dist/types/types/components.type.d.ts +1 -1
  338. package/dist/types/types/public-api.d.ts +2 -0
  339. package/dist/vega/index.esm.js +1 -1
  340. package/dist/vega/{p-6f7d42a0.entry.js → p-00376f71.entry.js} +1 -1
  341. package/dist/vega/p-018d70a5.js +1 -0
  342. package/dist/vega/p-0849f85e.js +1 -0
  343. package/dist/vega/{p-b431f9d5.entry.js → p-0a55f984.entry.js} +1 -1
  344. package/dist/vega/p-0f7dec29.entry.js +1 -0
  345. package/dist/vega/{p-47cae62d.entry.js → p-113d305b.entry.js} +1 -1
  346. package/dist/vega/{p-015cdbe7.entry.js → p-115b42e6.entry.js} +1 -1
  347. package/dist/vega/p-16358fec.entry.js +1 -0
  348. package/dist/vega/{p-af5bfe34.js → p-16d68187.js} +1 -1
  349. package/dist/vega/{p-92a22562.entry.js → p-18e8c54a.entry.js} +1 -1
  350. package/dist/vega/{p-6f6ccf67.entry.js → p-1922303e.entry.js} +1 -1
  351. package/dist/vega/{p-74d61782.entry.js → p-19256107.entry.js} +1 -1
  352. package/dist/vega/{p-59298f5e.entry.js → p-1dcb1fcd.entry.js} +2 -2
  353. package/dist/vega/{p-7f69081b.entry.js → p-1dd7f8b2.entry.js} +1 -1
  354. package/dist/vega/{p-d006e732.entry.js → p-22fe8c61.entry.js} +1 -1
  355. package/dist/vega/{p-524693d8.entry.js → p-238afe1b.entry.js} +1 -1
  356. package/dist/vega/p-240d9d35.entry.js +1 -0
  357. package/dist/vega/{p-b82d3915.entry.js → p-24419ebe.entry.js} +1 -1
  358. package/dist/vega/p-2478f65e.js +1 -0
  359. package/dist/vega/{p-358e9800.entry.js → p-2c945862.entry.js} +1 -1
  360. package/dist/vega/{p-5f58d1da.entry.js → p-2e32fbe6.entry.js} +1 -1
  361. package/dist/vega/p-2f04d2ac.js +1 -0
  362. package/dist/vega/p-30a8d9d6.entry.js +1 -0
  363. package/dist/vega/{p-e6cccee4.js → p-369810ae.js} +1 -1
  364. package/dist/vega/p-3ad87199.entry.js +1 -0
  365. package/dist/vega/{p-fe2e859f.entry.js → p-3b800f1b.entry.js} +1 -1
  366. package/dist/vega/p-437f865f.js +1 -0
  367. package/dist/vega/{p-de624f7d.entry.js → p-48bc03fa.entry.js} +1 -1
  368. package/dist/vega/{p-46830028.entry.js → p-54ddd06f.entry.js} +1 -1
  369. package/dist/vega/{p-5a0524ab.entry.js → p-56636a58.entry.js} +1 -1
  370. package/dist/vega/{p-fc8c5869.entry.js → p-56f77466.entry.js} +1 -1
  371. package/dist/vega/p-5f377954.js +1 -1
  372. package/dist/vega/{p-ab1001f5.entry.js → p-61d9cdf9.entry.js} +1 -1
  373. package/dist/vega/{p-39b9c57b.entry.js → p-626246b4.entry.js} +1 -1
  374. package/dist/vega/{p-ff3bb4e2.entry.js → p-634499cb.entry.js} +1 -1
  375. package/dist/vega/p-6609d87e.entry.js +1 -0
  376. package/dist/vega/p-69d27eaf.entry.js +1 -0
  377. package/dist/vega/{p-7efb5ebe.entry.js → p-705dad87.entry.js} +1 -1
  378. package/dist/vega/{p-8d574fbd.entry.js → p-75b5894f.entry.js} +1 -1
  379. package/dist/vega/{p-00071542.entry.js → p-76b1dae4.entry.js} +1 -1
  380. package/dist/vega/{p-54b62ecf.js → p-7747c163.js} +1 -1
  381. package/dist/vega/{p-0ed53cce.entry.js → p-787caad3.entry.js} +1 -1
  382. package/dist/vega/{p-129c0ce1.js → p-79e6e12c.js} +1 -1
  383. package/dist/vega/{p-cc519f53.entry.js → p-7dde3be9.entry.js} +1 -1
  384. package/dist/vega/p-8233d814.entry.js +1 -0
  385. package/dist/vega/{p-5e32866d.entry.js → p-83a50ac2.entry.js} +1 -1
  386. package/dist/vega/p-8506e8c3.js +1 -0
  387. package/dist/vega/{p-47fa359b.js → p-85407fb9.js} +1 -1
  388. package/dist/vega/{p-892cbe7c.entry.js → p-880569ec.entry.js} +1 -1
  389. package/dist/vega/{p-0113a83c.entry.js → p-8dba59a6.entry.js} +1 -1
  390. package/dist/vega/p-94e167b8.entry.js +1 -0
  391. package/dist/vega/{p-b2aaab66.entry.js → p-98fb9eaa.entry.js} +1 -1
  392. package/dist/vega/{p-3288a65b.entry.js → p-99bf5993.entry.js} +1 -1
  393. package/dist/vega/p-a211ae63.js +1 -0
  394. package/dist/vega/{p-fef846d5.entry.js → p-a2506cb5.entry.js} +1 -1
  395. package/dist/vega/{p-4e33fff6.entry.js → p-a6fb5a40.entry.js} +1 -1
  396. package/dist/vega/{p-bee1cc34.entry.js → p-b5060e84.entry.js} +1 -1
  397. package/dist/vega/{p-616cd622.entry.js → p-b78670c9.entry.js} +1 -1
  398. package/dist/vega/{p-d5761532.entry.js → p-b8558278.entry.js} +1 -1
  399. package/dist/vega/{p-8d655fd2.entry.js → p-bb0f2b5f.entry.js} +1 -1
  400. package/dist/vega/{p-a7631c6b.js → p-bb37a401.js} +1 -1
  401. package/dist/vega/p-bccee21e.js +1 -0
  402. package/dist/vega/{p-2553031f.entry.js → p-bd0e55a2.entry.js} +1 -1
  403. package/dist/vega/{p-65693321.entry.js → p-c0223a17.entry.js} +1 -1
  404. package/dist/vega/{p-2d430dc4.entry.js → p-c26332ae.entry.js} +1 -1
  405. package/dist/vega/{p-7f9ec104.entry.js → p-c54148fb.entry.js} +1 -1
  406. package/dist/vega/{p-276b1163.entry.js → p-d3905af1.entry.js} +2 -2
  407. package/dist/vega/p-d4893487.js +1 -0
  408. package/dist/vega/{p-d1dacaeb.entry.js → p-d67200e8.entry.js} +1 -1
  409. package/dist/vega/{p-725f0a2c.js → p-db57dddc.js} +1 -1
  410. package/dist/vega/{p-ed8bc4f0.entry.js → p-de02f404.entry.js} +1 -1
  411. package/dist/vega/{p-d4452dbc.entry.js → p-de8c5fae.entry.js} +1 -1
  412. package/dist/vega/{p-7b145620.js → p-de97c6d9.js} +1 -1
  413. package/dist/vega/{p-34800282.entry.js → p-e0979451.entry.js} +1 -1
  414. package/dist/vega/{p-1a3cb65e.entry.js → p-e6351dab.entry.js} +1 -1
  415. package/dist/vega/{p-8d096fea.entry.js → p-f0fb3fdd.entry.js} +1 -1
  416. package/dist/vega/{p-ea05a2fc.entry.js → p-f3399ef1.entry.js} +1 -1
  417. package/dist/vega/vega.esm.js +1 -1
  418. package/package.json +1 -1
  419. package/dist/vega/p-019f7f95.js +0 -1
  420. package/dist/vega/p-03a1e82e.entry.js +0 -1
  421. package/dist/vega/p-0d1eca78.entry.js +0 -1
  422. package/dist/vega/p-16370cfb.js +0 -1
  423. package/dist/vega/p-3a7f177a.entry.js +0 -1
  424. package/dist/vega/p-41c3fcb4.js +0 -1
  425. package/dist/vega/p-81105691.entry.js +0 -1
  426. package/dist/vega/p-822c6092.js +0 -1
  427. package/dist/vega/p-8edf3513.js +0 -1
  428. package/dist/vega/p-a1b7a179.entry.js +0 -1
  429. package/dist/vega/p-ab8f99e9.entry.js +0 -1
  430. package/dist/vega/p-bf7f755b.js +0 -1
  431. package/dist/vega/p-bf9476cd.entry.js +0 -1
  432. package/dist/vega/p-c1da8328.entry.js +0 -1
  433. package/dist/vega/p-c6ce2869.js +0 -1
  434. package/dist/vega/p-d0e6454e.entry.js +0 -1
  435. package/dist/vega/p-d88e88a7.js +0 -1
  436. package/dist/vega/p-f360c9ba.js +0 -1
@@ -1,6 +1,4 @@
1
1
  import { RTEBlock } from './block.abstract';
2
- import RTEDTOClassManager from '../../../../helpers/rte-manager/dto-class-manager';
3
- import { isNonNullable } from '../../../../types/type-guard';
4
2
  /**
5
3
  * HTML Block
6
4
  */
@@ -24,16 +22,7 @@ export class RTEHtmlBlock extends RTEBlock {
24
22
  if (annotations) {
25
23
  super.convertAnnotationsToMap(htmlBlock.annotationMap, annotations);
26
24
  }
27
- htmlBlock.children = block.children
28
- .map((child) => {
29
- const BlockClass = RTEDTOClassManager.getRTEBlockClass(child.type);
30
- if (BlockClass) {
31
- const block = BlockClass.from(child, options);
32
- block.parent = htmlBlock;
33
- return block;
34
- }
35
- })
36
- .filter(isNonNullable);
25
+ htmlBlock.children = this.generateBlockChildren(block.children, options, htmlBlock);
37
26
  return htmlBlock;
38
27
  }
39
28
  /**
@@ -14,6 +14,10 @@ import { ListItemReplaceNestListStrategy } from '../action-handle-strategies/mod
14
14
  import { BlockMergeNodesStrategy } from '../action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy';
15
15
  import { ListItemInsertImageStrategy } from '../action-handle-strategies/modify-content-strategies/list-item-insert-image-strategy';
16
16
  import { isNonNullable } from '../../../../types/type-guard';
17
+ import { TextStyleAnnotationAction } from '../actions/text-style-annotation-action';
18
+ import { BlockUpdateTextStyleStrategy } from '../action-handle-strategies/apply-annotation-strategies/block-update-text-style-strategy';
19
+ import { HorizontalAlignmentAnnotationAction } from '../actions/horizontal-alignment-annotation-action';
20
+ import { BlockUpdateHorizontalAlignmentStrategy } from '../action-handle-strategies/apply-annotation-strategies/block-update-horizontal-alignment-strategy';
17
21
  /**
18
22
  * List item block
19
23
  */
@@ -116,6 +120,8 @@ export class RTEListItemBlock extends RTETextBlock {
116
120
  }
117
121
  }
118
122
  (() => {
123
+ ActionHandleStrategyRegistry.register(TextStyleAnnotationAction.name, RTEListItemBlock.name, new BlockUpdateTextStyleStrategy());
124
+ ActionHandleStrategyRegistry.register(HorizontalAlignmentAnnotationAction.name, RTEListItemBlock.name, new BlockUpdateHorizontalAlignmentStrategy());
119
125
  ActionHandleStrategyRegistry.register(ModifyContentActionType.LINE_BREAK_SINGLE_BLOCK, RTEListItemBlock.name, new BlockInsertLineBreakStrategy());
120
126
  ActionHandleStrategyRegistry.register(ModifyContentActionType.LINE_BREAK_MULTIPLE_BLOCKS, RTEListItemBlock.name, new BlockInsertLineBreakWithBlocksStrategy());
121
127
  ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_NEST_LIST, RTEListItemBlock.name, new ListItemRemoveNestListStrategy());
@@ -140,11 +140,7 @@ export class RTETextBlock extends RTEBlock {
140
140
  toHtml() {
141
141
  const BlockTag = this.getBlockTag();
142
142
  const attrStr = super.generateAttributeString();
143
- const linkGroupAnnotation = this.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
144
- let nodesHtml = this.children.map((node) => node.toHtml()).join('');
145
- if (linkGroupAnnotation && this.children.length > 0) {
146
- nodesHtml = this.generateLinkHtml(linkGroupAnnotation, nodesHtml);
147
- }
143
+ const nodesHtml = this.getChildrenHtml();
148
144
  return super.shouldRenderAsInternalWrapper()
149
145
  ? nodesHtml
150
146
  : [`<${BlockTag}${attrStr}>`, nodesHtml, `</${BlockTag}>`].join('');
@@ -210,6 +206,19 @@ export class RTETextBlock extends RTEBlock {
210
206
  return 'p';
211
207
  }
212
208
  }
209
+ /**
210
+ * Get the HTML string for the children nodes, including handling link group annotations.
211
+ *
212
+ * @returns {string} The HTML string representing the children nodes.
213
+ */
214
+ getChildrenHtml() {
215
+ const linkGroupAnnotation = this.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
216
+ let nodesHtml = this.children.map((node) => node.toHtml()).join('');
217
+ if (linkGroupAnnotation && this.children.length > 0) {
218
+ nodesHtml = this.generateLinkHtml(linkGroupAnnotation, nodesHtml);
219
+ }
220
+ return nodesHtml;
221
+ }
213
222
  /**
214
223
  * @inheritDoc
215
224
  */
@@ -14,6 +14,10 @@ import { RemoveChildrenStrategy } from './action-handle-strategies/modify-conten
14
14
  import { AppendChildrenStrategy } from './action-handle-strategies/modify-content-strategies/append-children-strategy';
15
15
  import { InsertChildrenBeforeStrategy } from './action-handle-strategies/modify-content-strategies/insert-children-before-strategy';
16
16
  import { InsertChildrenAfterStrategy } from './action-handle-strategies/modify-content-strategies/insert-children-after-strategy';
17
+ import stateEntityRenderingRegistry from '../slimmers/controllers/state-entity-rendering-registry';
18
+ import changeManager from '../../../helpers/change-manager/change-manager';
19
+ import domNodeSubjectFactory from '../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
20
+ import { VegaInternalRichTextEditorFlushChanges } from '../../../helpers/event-manager/event-id/vega-internal-event-id';
17
21
  import './setup';
18
22
  import { StylePreservator } from '../../../helpers/csp/styles-preservator';
19
23
  import { LogUtility } from '../../../utils/log';
@@ -146,6 +150,13 @@ export class VegaRTEContent {
146
150
  */
147
151
  apply(action) {
148
152
  ActionHandleStrategyRegistry.executeTheStrategy(action, this);
153
+ // Check if the action has been executed and is flushable
154
+ if (action['executedFlag'] && action.isFlushable) {
155
+ const host = stateEntityRenderingRegistry.getDOMByEntity(this);
156
+ if (host) {
157
+ changeManager.notify(domNodeSubjectFactory.getSubject(host, VegaInternalRichTextEditorFlushChanges), {});
158
+ }
159
+ }
149
160
  }
150
161
  /**
151
162
  * Get the last node in the content.
@@ -4,13 +4,13 @@ import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/do
4
4
  import { VegaInternalRichTextEditorFlushChanges } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
5
5
  import { ModifyContentAction } from '../actions/modify-content-action.abstract';
6
6
  import { NodeAnnotation } from '../annotations/node-annotation.abstract';
7
- import { camelToDashCase } from '../../../../utils/string';
8
7
  import { isNonNullable } from '../../../../types/type-guard';
9
8
  import { CustomAttributeAnnotation } from '../annotations/custom-attribute-annotation';
10
9
  import { CustomClassAnnotation } from '../annotations/custom-class-annotation';
11
10
  import { CommonAnnotationTypeEnum } from '../annotations/common-annotation.abstract';
12
11
  import { CustomStyleAnnotation } from '../annotations/custom-style-annotation';
13
12
  import { methodPlaceholder } from 'vega-slimmer/core';
13
+ import { RTEAnnotationStyle } from '../annotations/annotation-style';
14
14
  export var NodeTypeEnum;
15
15
  (function (NodeTypeEnum) {
16
16
  NodeTypeEnum["TEXT"] = "TEXT";
@@ -95,11 +95,8 @@ export class RTENode {
95
95
  * @returns {AnnotationStyle} - Annotation styles
96
96
  */
97
97
  getStyles(options = { standalone: false }) {
98
- const styles = Array.from(this.annotationMap.values())
99
- .filter((annotation) => annotation instanceof NodeAnnotation || annotation instanceof CustomStyleAnnotation)
100
- .map((annotation) => annotation.renderStyle(options))
101
- .filter(Boolean);
102
- return this.mergeAnnotationStyles(styles, ['textDecoration']);
98
+ const rteAnnotationStyle = new RTEAnnotationStyle(this);
99
+ return rteAnnotationStyle.toJSON(options, ['textDecoration']);
103
100
  }
104
101
  /**
105
102
  * Get classes from annotations
@@ -146,9 +143,10 @@ export class RTENode {
146
143
  */
147
144
  generateAttributeString(...attrs) {
148
145
  var _a;
149
- const styles = Object.entries(Object.assign({}, this.getStyles({ standalone: true })))
150
- .map(([key, value]) => `${camelToDashCase(key)}: ${value};`)
151
- .join('');
146
+ const nodeAnnotationStyle = new RTEAnnotationStyle(this);
147
+ const styles = nodeAnnotationStyle.toCssText({ standalone: true }, [
148
+ 'textDecoration',
149
+ ]);
152
150
  const customClassAnnotation = this.annotationMap.get(CommonAnnotationTypeEnum.CUSTOM_CLASS);
153
151
  const customAttributeString = ((_a = this.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.toString(attrs)) || [];
154
152
  const attributes = [
@@ -210,32 +208,4 @@ export class RTENode {
210
208
  doModifyActionApply(action) {
211
209
  methodPlaceholder(action);
212
210
  }
213
- /**
214
- * Merge an array of annotation styles into a single style object.
215
- * e.g.,
216
- * { textDecoration: 'underline', textDecoration: 'line-through' }
217
- * -> { textDecoration: 'underline line-through' }
218
- *
219
- * @param {AnnotationStyle[]} styles - Array of annotation style objects to merge.
220
- * @param {string[]} canMergeKeyList - List of style keys that can be merged by concatenation.
221
- * @returns {AnnotationStyle} - The merged annotation style object.
222
- */
223
- mergeAnnotationStyles(styles, canMergeKeyList) {
224
- const merged = {};
225
- for (const style of styles) {
226
- for (const key in style) {
227
- const value = style[key];
228
- const existing = merged[key];
229
- if (typeof existing === 'string' &&
230
- typeof value === 'string' &&
231
- canMergeKeyList.includes(key)) {
232
- merged[key] = Array.from(new Set(`${existing} ${value}`.split(/\s+/).filter(Boolean))).join(' ');
233
- }
234
- else {
235
- merged[key] = value;
236
- }
237
- }
238
- }
239
- return merged;
240
- }
241
211
  }
@@ -31,6 +31,13 @@ import { LinkGroupNodeSplitStrategy } from '../action-handle-strategies/modify-c
31
31
  import { DeleteLinkGroupStrategy } from '../action-handle-strategies/modify-content-strategies/delete-link-group-strategy';
32
32
  import { PlainTextAnnotation } from '../annotations/plain-text-annotation';
33
33
  import { LinkAnnotationAction } from '../actions/link-annotation-action';
34
+ import { BoldAnnotationAction } from '../actions/bold-annotation-action';
35
+ import { ClearFormattingAnnotationAction } from '../actions/clear-formatting-annotation-action';
36
+ import { ItalicAnnotationAction } from '../actions/italic-annotation-action';
37
+ import { UnderlineAnnotationAction } from '../actions/underline-annotation-action';
38
+ import { TextColorAnnotationAction } from '../actions/text-color-annotation-action';
39
+ import { StrikethroughAnnotationAction } from '../actions/strikethrough-annotation-action';
40
+ import { CodeAnnotationAction } from '../actions/code-annotation-action';
34
41
  /**
35
42
  * Text node
36
43
  */
@@ -217,6 +224,13 @@ export class RTETextNode extends RTENode {
217
224
  }
218
225
  ActionHandleStrategyRegistry.register(TextSplittableAction.name, dtoClassName, new NodeSplitTextStrategy());
219
226
  ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_LINK_GROUP, dtoClassName, new DeleteLinkGroupStrategy());
227
+ ActionHandleStrategyRegistry.register(BoldAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
228
+ ActionHandleStrategyRegistry.register(ClearFormattingAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
229
+ ActionHandleStrategyRegistry.register(ItalicAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
230
+ ActionHandleStrategyRegistry.register(UnderlineAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
231
+ ActionHandleStrategyRegistry.register(TextColorAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
232
+ ActionHandleStrategyRegistry.register(StrikethroughAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
233
+ ActionHandleStrategyRegistry.register(CodeAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
220
234
  ActionHandleStrategyRegistry.register(AnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
221
235
  RTETextNode.registerActionStrategyStatus[dtoClassName] = true;
222
236
  }
@@ -267,9 +281,6 @@ export class RTETextNode extends RTENode {
267
281
  /**
268
282
  * 1. Try to get the specific strategy for the action and node type first (e.g., LinkAnnotationAction on RTETextNode).
269
283
  * 2. If no specific strategy found, try to get the generic NodeUpdateAnnotationMapStrategy for AnnotationAction on RTETextNode.
270
- *
271
- * 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.
272
- * TODO: Update the other annotation actions to follow this pattern. https://gethired.atlassian.net/browse/VD-7367
273
284
  */
274
285
  const strategy = ActionHandleStrategyRegistry.get(action.constructor.name, node.constructor.name);
275
286
  if (strategy) {
@@ -6,6 +6,15 @@ import stateEntityRenderingRegistry from '../slimmers/controllers/state-entity-r
6
6
  * Base renderer for Vega Rich Text Editor.
7
7
  */
8
8
  export class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
9
+ /**
10
+ * Returns the styles to be injected into the RTE scope.
11
+ * Override this method to provide custom styles for the custom blocks or nodes.
12
+ *
13
+ * @returns {string} - The styles as a string.
14
+ */
15
+ injectRTEScopeStyles() {
16
+ return '';
17
+ }
9
18
  /**
10
19
  * Renders the given data as a DOM element.
11
20
  *
@@ -34,6 +43,15 @@ export class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
34
43
  }
35
44
  };
36
45
  }
46
+ /**
47
+ * Get a registered renderer by its key.
48
+ *
49
+ * @param {string} key - The key of the renderer.
50
+ * @returns {Nullable<BaseRenderer>} - The registered renderer or null if not found.
51
+ */
52
+ getDTORenderer(key) {
53
+ return RTEDTORendererManager.getRTERenderer(key);
54
+ }
37
55
  /**
38
56
  * Auto render the block children if the block element is not exist
39
57
  *
@@ -62,7 +80,7 @@ export class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
62
80
  * @returns {Nullable<VegaRTERenderResult>} - The rendered DOM element.
63
81
  */
64
82
  renderChildren(renderData, rteContext, createElement) {
65
- const renderer = RTEDTORendererManager.getRTERenderer(renderData.type);
83
+ const renderer = this.getDTORenderer(renderData.type);
66
84
  if (renderer) {
67
85
  return renderer.render(renderData, rteContext, createElement);
68
86
  }
@@ -33,7 +33,7 @@ export class VegaRTEToolbarButtonRenderer {
33
33
  * @returns {VegaRTERenderResult} - The render result for the dropdown.
34
34
  */
35
35
  renderDropdown(h, editorContext, dropdownProps, children) {
36
- return h('vega-dropdown', Object.assign({ trigger: 'click', searchable: false,
36
+ return h('vega-dropdown', Object.assign({ trigger: 'click', searchable: false, maxWidth: '200', itemDisplayRule: 'ellipsis',
37
37
  // eslint-disable-next-line jsdoc/require-jsdoc
38
38
  ref: (el) => {
39
39
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, (input) => this.handleDropdownClick(input.detail, editorContext));
@@ -43,7 +43,7 @@ export class VegaRTEToolbarButtonRenderer {
43
43
  * Renders the dropdown list template.
44
44
  *
45
45
  * @param {VegaRTECreateElementFunction} h - Create element function.
46
- * @param {RTEDropdownListItem[]} itemList - The list of dropdown items.
46
+ * @param {(RTEDropdownListItem | RTEDropdownListGroup)[]} itemList - The list of dropdown items.
47
47
  * @returns {VegaRTERenderResult} - The render result for the dropdown list.
48
48
  */
49
49
  renderDropdownListTemplate(h, itemList) {
@@ -51,7 +51,9 @@ export class VegaRTEToolbarButtonRenderer {
51
51
  slot: 'items',
52
52
  onMouseDown: this.preventDefault,
53
53
  }, itemList.map((item) => {
54
- return this.renderDropdownItem(h, item);
54
+ return 'children' in item
55
+ ? this.renderDropdownGroup(h, item)
56
+ : this.renderDropdownItem(h, item);
55
57
  }));
56
58
  }
57
59
  /**
@@ -69,6 +71,24 @@ export class VegaRTEToolbarButtonRenderer {
69
71
  prefixIcon: item.icon,
70
72
  });
71
73
  }
74
+ /**
75
+ * Renders a dropdown item for the toolbar button.
76
+ *
77
+ * @param {VegaRTECreateElementFunction} h - Create element function.
78
+ * @param {RTEDropdownListGroup} item - The dropdown group.
79
+ * @returns {VegaRTERenderResult} - The render result for the dropdown item.
80
+ */
81
+ renderDropdownGroup(h, item) {
82
+ return h('vega-dropdown-group', {
83
+ key: item.key,
84
+ label: item.label,
85
+ divide: false,
86
+ }, item.children.map((child) => {
87
+ return 'children' in child
88
+ ? this.renderDropdownGroup(h, child)
89
+ : this.renderDropdownItem(h, child);
90
+ }));
91
+ }
72
92
  /**
73
93
  * Renders a common toolbar button with optional icon, label, and arrow icon.
74
94
  *
@@ -147,4 +167,25 @@ export class VegaRTEToolbarButtonRenderer {
147
167
  preventDefault(e) {
148
168
  e.preventDefault();
149
169
  }
170
+ /**
171
+ * Recursively searches for a dropdown list item by its key.
172
+ *
173
+ * @param {(RTEDropdownListItem | RTEDropdownListGroup)[]} itemList The list of dropdown items or groups to search through.
174
+ * @param {string} key The key of the item to find.
175
+ * @returns {Nullable<RTEDropdownListItem>} The dropdown list item if found, otherwise null.
176
+ */
177
+ getListItemByKey(itemList, key) {
178
+ for (const item of itemList) {
179
+ if ('children' in item) {
180
+ const foundItem = this.getListItemByKey(item.children, key);
181
+ if (foundItem) {
182
+ return foundItem;
183
+ }
184
+ }
185
+ else if (item.key === key) {
186
+ return item;
187
+ }
188
+ }
189
+ return null;
190
+ }
150
191
  }
@@ -3,6 +3,8 @@ import RTEDTORendererManager from '../../../helpers/rte-manager/dto-renderer-man
3
3
  import RTEDTOActionStrategyManager from '../../../helpers/rte-manager/dto-action-strategy-manager';
4
4
  import ElementToDTOClassStrategyManager from '../../../helpers/rte-manager/element-dto-class-strategy-manager';
5
5
  import { ActionHandleStrategyRegistry } from '../dto/action-handle-strategies/action-handle-strategy-registry';
6
+ import { VegaRTEExtensionRenderer } from './base-extension-renderer';
7
+ import { ActionHandlerInterceptorRegistry } from '../dto/action-handle-strategies/action-handle-interceptor-registry';
6
8
  /**
7
9
  * Abstract class for Vega Rich Text Editor extensions.
8
10
  */
@@ -12,17 +14,28 @@ export class VegaRTEExtension {
12
14
  * The context of the RTE extension, which may include references to the host editor and other relevant information.
13
15
  */
14
16
  this.extensionContext = null;
17
+ this.hasCustomStylesRenderers = new Set();
15
18
  }
16
19
  /**
17
20
  * Registers an action handle strategy for a specific node or block class.
18
21
  *
19
22
  * @param {string} nodeOrBlockClassName - The name of the node or block class.
20
23
  * @param {string} actionType - The type of the action.
21
- * @param {ActionHandleStrategy<ModifyContentAction, RTENode | RTEBlock>} strategy - The strategy to register.
24
+ * @param {ActionHandleStrategy<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The strategy to register.
22
25
  */
23
26
  static registerActionHandleStrategy(nodeOrBlockClassName, actionType, strategy) {
24
27
  ActionHandleStrategyRegistry.register(actionType, nodeOrBlockClassName, strategy);
25
28
  }
29
+ /**
30
+ * Registers an action handler interceptor for a specific node or block class.
31
+ *
32
+ * @param {string} nodeOrBlockClassName - The name of the node or block class.
33
+ * @param {string} actionType - The type of the action.
34
+ * @param {ActionHandlerInterceptor<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The interceptor to register.
35
+ */
36
+ static registerActionHandlerInterceptor(nodeOrBlockClassName, actionType, strategy) {
37
+ ActionHandlerInterceptorRegistry.register(actionType, nodeOrBlockClassName, strategy);
38
+ }
26
39
  /**
27
40
  * Initializes the RTE extension with the provided context.
28
41
  *
@@ -31,6 +44,21 @@ export class VegaRTEExtension {
31
44
  initialExtension(context) {
32
45
  this.extensionContext = context;
33
46
  }
47
+ /**
48
+ * Collect custom styles for the extension renderers.
49
+ * If custom nodes have special styles, override this method to provide the styles.
50
+ *
51
+ * @returns {string} - The custom styles as a string.
52
+ */
53
+ collectExtensionRendererStyles() {
54
+ let styles = '';
55
+ if (this.hasCustomStylesRenderers.size > 0) {
56
+ this.hasCustomStylesRenderers.forEach((renderer) => {
57
+ styles += `${renderer.injectRTEScopeStyles()}\n`;
58
+ });
59
+ }
60
+ return styles;
61
+ }
34
62
  /**
35
63
  * Register a node type with the extension.
36
64
  *
@@ -48,6 +76,9 @@ export class VegaRTEExtension {
48
76
  */
49
77
  registerRenderer(type, renderer) {
50
78
  RTEDTORendererManager.registerRTEDTORenderer(type, renderer);
79
+ if (renderer instanceof VegaRTEExtensionRenderer && renderer.injectRTEScopeStyles()) {
80
+ this.hasCustomStylesRenderers.add(renderer);
81
+ }
51
82
  }
52
83
  /**
53
84
  * Register a toolbar button renderer for the extension.
@@ -70,6 +101,25 @@ export class VegaRTEExtension {
70
101
  registerBlockBasicStrategies(blockClassName) {
71
102
  RTEDTOActionStrategyManager.registerBlockBasicStrategies(blockClassName);
72
103
  }
104
+ /**
105
+ * Unregister a strategy for a specific action type and block class if not need.
106
+ *
107
+ * @param {string} actionType - The special action type or the action class name.
108
+ * @param {string} blockClassName - The class name of the block to unregister the strategy for.
109
+ */
110
+ unRegisterStrategy(actionType, blockClassName) {
111
+ ActionHandleStrategyRegistry.unregister(actionType, blockClassName);
112
+ }
113
+ /**
114
+ * Unregister a strategy for a specific action type and block class if not need.
115
+ *
116
+ * @param {string} actionType - The special action type or the action class name.
117
+ * @param {string} blockClassName - The class name of the block to unregister the strategy for.
118
+ * @param {ActionHandlerInterceptor<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The interceptor to unregister.
119
+ */
120
+ unRegisterInterceptor(actionType, blockClassName, strategy) {
121
+ ActionHandlerInterceptorRegistry.unregister(actionType, blockClassName, strategy);
122
+ }
73
123
  /**
74
124
  * Register an element to block DTO class strategy.
75
125
  *
@@ -0,0 +1,30 @@
1
+ import { ActionHandlerInterceptor, } from '../../../dto/action-handle-strategies/action-handle-interceptor.abstract';
2
+ import { InsertNewParagraphAction } from '../../../dto/actions/insert-new-paragraph-action';
3
+ import { RTEFunctionBlock } from '../dto/function-block';
4
+ /**
5
+ * Prevent special type input in function block.
6
+ */
7
+ export class PreventNewParagraphInterceptor extends ActionHandlerInterceptor {
8
+ /**
9
+ * Checks the target block parent whether is function block.
10
+ *
11
+ * @param {InsertNewParagraphAction} _action - the action to be intercepted
12
+ * @param {RTETextBlock} target - the target block
13
+ * @returns {boolean} - true if the target block parent is function block, false otherwise
14
+ */
15
+ canIntercept(_action, target) {
16
+ return target.parent && target.parent instanceof RTEFunctionBlock;
17
+ }
18
+ /**
19
+ * Insert a new paragraph behind of the function block instead of the target block.
20
+ *
21
+ * @param {ActionHandlerExecution} _execution - the original execution function
22
+ * @param {ModifyContentAction} _action - the action to be intercepted
23
+ * @param {RTETextBlock} target - the target block
24
+ */
25
+ intercept(_execution, _action, target) {
26
+ const insertParagraphAction = new InsertNewParagraphAction(target.children[0], 0);
27
+ insertParagraphAction.isFlushable = true;
28
+ target.parent.apply(insertParagraphAction);
29
+ }
30
+ }
@@ -0,0 +1,25 @@
1
+ import { PastePlainTextAction } from '../actions/paste-plain-text-action';
2
+ import { PreventNewParagraphInterceptor } from '../action-handler-interceptor/prevent-new-paragraph-interceptor';
3
+ /**
4
+ * Prevent special type input in function block.
5
+ */
6
+ export class PreventPasteContentInterceptor extends PreventNewParagraphInterceptor {
7
+ /**
8
+ * Paste plain text into text block.
9
+ *
10
+ * @param {ActionHandlerExecution} _execution - the original execution function
11
+ * @param {ModifyContentAction} action - the action to be intercepted
12
+ * @param {RTETextBlock} target - the target block
13
+ */
14
+ intercept(_execution, action, target) {
15
+ const { blocksToBeInserted, rteRange } = action;
16
+ let { startNode, startOffset } = action;
17
+ // Set the start offset from rteRange if available, this is to handle the paste issue https://gethired.atlassian.net/browse/VD-7779
18
+ if (rteRange) {
19
+ startNode = rteRange.startNode;
20
+ startOffset = rteRange.startOffset;
21
+ }
22
+ const pastePlainTextAction = new PastePlainTextAction(blocksToBeInserted, startNode, startOffset);
23
+ target.apply(pastePlainTextAction);
24
+ }
25
+ }
@@ -0,0 +1,30 @@
1
+ import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
2
+ import { InsertChildrenAfterAction } from '../../../dto/actions/insert-children-after-block';
3
+ import { UpdateCursorPositionAction } from '../../../dto/actions/update-cursor-position-action';
4
+ /**
5
+ * Insert a new paragraph behind of current function block strategy.
6
+ */
7
+ export class FunctionBlockInsertParagraphStrategy extends ActionHandleStrategy {
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ handleAction(action, target) {
12
+ const newParagraph = this.createNewParagraph('');
13
+ if (newParagraph) {
14
+ target.parent.apply(new InsertChildrenAfterAction(target, newParagraph));
15
+ action.newBlock = newParagraph;
16
+ this.focusToNextLine(newParagraph);
17
+ }
18
+ }
19
+ /**
20
+ * Focus to next paragraph.
21
+ *
22
+ * @param {RTETextBlock} block - The paragraph need to focus.
23
+ */
24
+ focusToNextLine(block) {
25
+ const root = this.getRootContent(block);
26
+ if (root) {
27
+ root.apply(new UpdateCursorPositionAction(block.children[0], 1));
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,99 @@
1
+ import { VegaRTEContent } from '../../../dto/content-state';
2
+ import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
3
+ import { generateUUID } from '../../../../../utils/misc';
4
+ import { InsertChildrenAfterAction } from '../../../dto/actions/insert-children-after-block';
5
+ import { AppendChildrenAction } from '../../../dto/actions/append-child-nodes-action';
6
+ import { RTEFunctionBlock } from '../dto/function-block';
7
+ /**
8
+ * Strategy to handle the insertion of a function block into the rich text editor.
9
+ */
10
+ export class InsertFunctionBlockStrategy extends ActionHandleStrategy {
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ handleAction(action, target) {
15
+ const { functionType } = action;
16
+ const functionBlock = this.getFunctionBlock(functionType);
17
+ const emptyParagraph = this.createNewParagraph('');
18
+ const referenceBlock = this.getReferenceBlock(target);
19
+ if (referenceBlock) {
20
+ referenceBlock.parent.apply(new InsertChildrenAfterAction(referenceBlock, functionBlock, emptyParagraph));
21
+ }
22
+ else {
23
+ target.apply(new AppendChildrenAction([functionBlock, emptyParagraph]));
24
+ }
25
+ if (emptyParagraph) {
26
+ action.nextFocusNode = emptyParagraph.children[0];
27
+ }
28
+ }
29
+ /**
30
+ * Get a function block based on the specified type.
31
+ *
32
+ * @param {string} type - The type of function block to create.
33
+ * @returns {RTEFunctionBlock} The function block instance.
34
+ */
35
+ getFunctionBlock(type) {
36
+ const id = generateUUID();
37
+ return RTEFunctionBlock.from({
38
+ id: id,
39
+ type: 'function-block',
40
+ children: [
41
+ {
42
+ id: `${id}-1`,
43
+ type: 'logic-control-block',
44
+ statementText: type.toUpperCase(),
45
+ },
46
+ {
47
+ id: `${id}-2`,
48
+ annotations: {
49
+ customClass: ['statementelement'],
50
+ },
51
+ type: 'paragraph',
52
+ nodes: [
53
+ {
54
+ id: `${id}-2-1`,
55
+ type: 'text',
56
+ text: ' ',
57
+ },
58
+ ],
59
+ },
60
+ {
61
+ id: `${id}-3`,
62
+ type: 'logic-control-block',
63
+ statementText: 'SHOW',
64
+ },
65
+ {
66
+ id: `${id}-4`,
67
+ annotations: {
68
+ customClass: ['statementelement'],
69
+ },
70
+ type: 'paragraph',
71
+ nodes: [
72
+ {
73
+ id: `${id}-4-1`,
74
+ type: 'text',
75
+ text: ' ',
76
+ },
77
+ ],
78
+ },
79
+ ],
80
+ });
81
+ }
82
+ /**
83
+ * We need to get the correct block if the current target is a function block element to avoid nesting function blocks.
84
+ *
85
+ * @param {RTEBlock | VegaRTEContent} currentTarget - The current target block or content.
86
+ * @returns {Nullable<RTEBlock>} The reference block.
87
+ */
88
+ getReferenceBlock(currentTarget) {
89
+ if (!(currentTarget instanceof VegaRTEContent)) {
90
+ const parentBlock = currentTarget.parent;
91
+ if (parentBlock instanceof RTEFunctionBlock) {
92
+ return parentBlock;
93
+ }
94
+ else {
95
+ return currentTarget;
96
+ }
97
+ }
98
+ }
99
+ }