@globalpayments/vega 2.67.0 → 2.68.1

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 (455) 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-58ea899e.js +2 -2
  12. package/dist/cjs/index.cjs.js +36 -24
  13. package/dist/cjs/{internal-vega-event-manager-4d1ce667.js → internal-vega-event-manager-45d451de.js} +5 -2
  14. package/dist/cjs/{language-extension-d257e65d.js → language-extension-d0103d1a.js} +5 -5
  15. package/dist/cjs/loader.cjs.js +8 -8
  16. package/dist/cjs/{public-rules-d2b9b8f0.js → public-rules-8b67eaba.js} +3 -3
  17. package/dist/cjs/{range-d610028e.js → range-002671b6.js} +1 -1
  18. package/dist/cjs/{responsive-format-facade-71e7b74c.js → responsive-format-facade-347db035.js} +3 -3
  19. package/dist/cjs/{rich-text-editor-required-rule-a8fe5f50.js → rich-text-editor-required-rule-5392bd8a.js} +1 -1
  20. package/dist/cjs/{style-formatter-6facb42b.js → style-formatter-0a09f0dd.js} +1 -1
  21. package/dist/cjs/vega-accordion.cjs.entry.js +7 -7
  22. package/dist/cjs/vega-app-header-button.cjs.entry.js +8 -8
  23. package/dist/cjs/vega-banner.cjs.entry.js +2 -2
  24. package/dist/cjs/vega-box.cjs.entry.js +8 -8
  25. package/dist/cjs/vega-breadcrumb.cjs.entry.js +3 -3
  26. package/dist/cjs/vega-button-circle.cjs.entry.js +9 -9
  27. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  28. package/dist/cjs/vega-button-link.cjs.entry.js +3 -3
  29. package/dist/cjs/vega-button.cjs.entry.js +8 -8
  30. package/dist/cjs/vega-calendar_4.cjs.entry.js +313 -273
  31. package/dist/cjs/vega-card.cjs.entry.js +7 -7
  32. package/dist/cjs/vega-carousel.cjs.entry.js +7 -7
  33. package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
  34. package/dist/cjs/vega-chip.cjs.entry.js +9 -9
  35. package/dist/cjs/vega-code-block.cjs.entry.js +6 -6
  36. package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
  37. package/dist/cjs/vega-combo-box.cjs.entry.js +3 -3
  38. package/dist/cjs/vega-date-picker_2.cjs.entry.js +12 -12
  39. package/dist/cjs/vega-dialog_2.cjs.entry.js +15 -15
  40. package/dist/cjs/vega-divider.cjs.entry.js +7 -7
  41. package/dist/cjs/vega-dropdown_5.cjs.entry.js +9 -9
  42. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  43. package/dist/cjs/vega-field-label.cjs.entry.js +24 -5
  44. package/dist/cjs/vega-file-uploader.cjs.entry.js +2 -2
  45. package/dist/cjs/vega-flag-icon.cjs.entry.js +6 -6
  46. package/dist/cjs/vega-flex.cjs.entry.js +8 -8
  47. package/dist/cjs/vega-font.cjs.entry.js +7 -7
  48. package/dist/cjs/vega-form.cjs.entry.js +3 -3
  49. package/dist/cjs/vega-grid.cjs.entry.js +7 -7
  50. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  51. package/dist/cjs/vega-image-uploader.cjs.entry.js +8 -8
  52. package/dist/cjs/vega-input-credit-card.cjs.entry.js +3 -3
  53. package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
  54. package/dist/cjs/vega-input-passcode.cjs.entry.js +3 -3
  55. package/dist/cjs/vega-input-phone-number.cjs.entry.js +6 -6
  56. package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
  57. package/dist/cjs/vega-input-select.cjs.entry.js +38 -14
  58. package/dist/cjs/vega-input.cjs.entry.js +14 -3
  59. package/dist/cjs/vega-item-toggle.cjs.entry.js +2 -2
  60. package/dist/cjs/vega-left-nav_5.cjs.entry.js +11 -11
  61. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +8 -8
  62. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +2 -2
  63. package/dist/cjs/vega-pagination.cjs.entry.js +7 -7
  64. package/dist/cjs/vega-popover_2.cjs.entry.js +9 -9
  65. package/dist/cjs/vega-progress-tracker.cjs.entry.js +2 -2
  66. package/dist/cjs/vega-radio_2.cjs.entry.js +3 -3
  67. package/dist/cjs/vega-rich-text-content.cjs.entry.js +93 -16
  68. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +107 -54
  69. package/dist/cjs/vega-segment-control.cjs.entry.js +2 -2
  70. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
  71. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
  72. package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
  73. package/dist/cjs/vega-signature-capture.cjs.entry.js +7 -7
  74. package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
  75. package/dist/cjs/vega-tab-group_2.cjs.entry.js +3 -3
  76. package/dist/cjs/{vega-table_8.cjs.entry.js → vega-table_11.cjs.entry.js} +750 -323
  77. package/dist/cjs/vega-textarea.cjs.entry.js +24 -4
  78. package/dist/cjs/vega-time-picker_2.cjs.entry.js +9 -9
  79. package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
  80. package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
  81. package/dist/cjs/vega.cjs.js +8 -8
  82. package/dist/collection/collection-manifest.json +6 -0
  83. package/dist/collection/components/vega-calendar/slimmers/common/helpers/calendar-event-sorter.js +3 -3
  84. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +1 -1
  85. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/day-view-timed-event-layout-column.js +3 -1
  86. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.js +4 -4
  87. package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +3 -4
  88. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.js +11 -3
  89. package/dist/collection/components/vega-field-label/vega-field-label.js +42 -0
  90. package/dist/collection/components/vega-input/vega-input.js +48 -2
  91. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-renderer.js +16 -5
  92. package/dist/collection/components/vega-input-select/vega-input-select.css +2 -44
  93. package/dist/collection/components/vega-input-select/vega-input-select.js +81 -1
  94. package/dist/collection/components/vega-rich-text-content/slimmers/controllers/vega-rich-text-content-extensions-styles-controller.js +60 -0
  95. package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +7 -1
  96. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +17 -1
  97. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor-registry.js +61 -0
  98. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor.abstract.js +5 -0
  99. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +30 -6
  100. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +10 -3
  101. 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
  102. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.js +28 -0
  103. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
  104. package/dist/collection/components/vega-rich-text-editor/dto/actions/paste-content-action.js +17 -0
  105. package/dist/collection/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.js +5 -0
  106. package/dist/collection/components/vega-rich-text-editor/dto/annotations/annotation-style.js +87 -0
  107. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +27 -9
  108. package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +1 -12
  109. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +6 -0
  110. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +14 -5
  111. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
  112. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +7 -37
  113. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +14 -3
  114. package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js +19 -1
  115. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +44 -3
  116. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +51 -1
  117. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-new-paragraph-interceptor.js +30 -0
  118. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-paste-content-interceptor.js +25 -0
  119. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/function-block-insert-paragraph-strategy.js +30 -0
  120. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +99 -0
  121. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/paste-plain-text-strategy.js +68 -0
  122. package/dist/collection/components/vega-rich-text-editor/extensions/functions/actions/insert-function-block-action.js +15 -0
  123. package/dist/collection/components/vega-rich-text-editor/extensions/functions/actions/paste-plain-text-action.js +17 -0
  124. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +97 -0
  125. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +73 -0
  126. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +69 -0
  127. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +49 -0
  128. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +27 -0
  129. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +55 -0
  130. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +75 -0
  131. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +38 -0
  132. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +71 -0
  133. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +20 -0
  134. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +1 -1
  135. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +3 -1
  136. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +5 -6
  137. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -1
  138. package/dist/collection/components/vega-rich-text-editor/public-api.js +8 -1
  139. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/delete-selected-nodes-controller.js +9 -1
  140. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +0 -12
  141. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +3 -1
  142. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +12 -10
  143. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bold-toolbar-button-slimmer.js +2 -4
  144. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +30 -5
  145. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/clear-style-toolbar-button-slimmer.js +1 -4
  146. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/code-block-toolbar-button-slimmer.js +10 -1
  147. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/code-toolbar-button-slimmer.js +2 -4
  148. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
  149. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +4 -1
  150. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/italic-toolbar-button-slimmer.js +2 -4
  151. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/less-indent-toolbar-button-slimmer.js +1 -4
  152. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +1 -4
  153. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/more-indent-toolbar-button-slimmer.js +1 -4
  154. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/strikethrough-toolbar-button-slimmer.js +2 -4
  155. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +2 -4
  156. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +2 -5
  157. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/underline-toolbar-button-slimmer.js +2 -4
  158. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.js +11 -0
  159. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +4 -1
  160. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.js +32 -2
  161. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-delete-node-content-strategy.test.js +69 -0
  162. package/dist/collection/components/vega-rich-text-editor/test/dto/annotation-style.test.js +70 -0
  163. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.css +3 -0
  164. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
  165. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-children-controller.js +25 -1
  166. package/dist/collection/components/vega-table/vega-table-foot/slimmers/controllers/vega-table-foot-state-controller.js +67 -0
  167. package/dist/collection/components/vega-table/vega-table-foot/vega-table-foot.css +34 -0
  168. package/dist/collection/components/vega-table/vega-table-foot/vega-table-foot.js +65 -0
  169. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/controllers/vega-table-foot-cell-state-controller.js +43 -0
  170. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +32 -0
  171. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.css +116 -0
  172. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +130 -0
  173. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.js +77 -0
  174. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.js +41 -0
  175. package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.css +52 -0
  176. package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.js +71 -0
  177. package/dist/collection/components/vega-table/vega-table.css +12 -1
  178. package/dist/collection/components/vega-table/vega-table.js +1 -1
  179. package/dist/collection/components/vega-textarea/vega-textarea.js +88 -2
  180. package/dist/collection/global/scripts/before-vega-load.js +2 -0
  181. package/dist/collection/helpers/calendar/calendar-date-time.js +136 -0
  182. package/dist/collection/helpers/calendar/calendar-date.js +10 -4
  183. package/dist/collection/helpers/calendar/calendar-event.js +38 -193
  184. package/dist/collection/helpers/calendar/calendar-time.js +120 -0
  185. package/dist/collection/helpers/calendar/index.js +2 -0
  186. package/dist/collection/helpers/calendar/test/calendar-date-time.test.js +27 -0
  187. package/dist/collection/helpers/calendar/test/calendar-event.test.js +24 -22
  188. package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +2 -2
  189. package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +2 -2
  190. package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +6 -6
  191. package/dist/collection/helpers/calendar/test/calendar-time.test.js +45 -0
  192. package/dist/collection/helpers/calendar/test/utils.test.js +1 -29
  193. package/dist/collection/helpers/calendar/utils.js +0 -66
  194. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +5 -2
  195. package/dist/collection/helpers/rte-manager/dto-action-strategy-manager.js +2 -0
  196. package/dist/esm/{app-globals-37a60cc1.js → app-globals-2f689986.js} +6 -5
  197. package/dist/esm/{child-nodes-event-prevent-slimmer-735cb880.js → child-nodes-event-prevent-slimmer-76331524.js} +1 -1
  198. package/dist/esm/{code-block-11b2bc1c.js → code-block-e8839202.js} +511 -318
  199. package/dist/esm/{component-value-history-controller-slimmer.abstract-16c5cb96.js → component-value-history-controller-slimmer.abstract-c6f94113.js} +2 -2
  200. package/dist/esm/{design-token-297dc528.js → design-token-e9e6b011.js} +1 -1
  201. package/dist/esm/{dto-renderer-manager-a1a3b6d2.js → dto-renderer-manager-7abc53bf.js} +1587 -1565
  202. package/dist/esm/{element-appender-slimmer-f7233708.js → element-appender-slimmer-8dbc8387.js} +2 -2
  203. package/dist/esm/{event-emit-slimmer-28fd360c.js → event-emit-slimmer-4e28e9f8.js} +1 -1
  204. package/dist/esm/{token-extension-b690953f.js → function-extension-eb1d062f.js} +1018 -97
  205. package/dist/esm/{image-annotation-action-fc46c920.js → image-annotation-action-7957653a.js} +14 -24
  206. package/dist/esm/index-090d31ca.js +2 -2
  207. package/dist/esm/index.js +9 -9
  208. package/dist/esm/{internal-vega-event-manager-a5a5938d.js → internal-vega-event-manager-516aa721.js} +5 -2
  209. package/dist/esm/{language-extension-314a2b18.js → language-extension-3331131f.js} +3 -3
  210. package/dist/esm/loader.js +8 -8
  211. package/dist/esm/{public-rules-c6a6946d.js → public-rules-e613dead.js} +3 -3
  212. package/dist/esm/{range-b78254de.js → range-adf206fd.js} +1 -1
  213. package/dist/esm/{responsive-format-facade-a41e1be7.js → responsive-format-facade-b0712993.js} +3 -3
  214. package/dist/esm/{rich-text-editor-required-rule-d50c24da.js → rich-text-editor-required-rule-43857573.js} +1 -1
  215. package/dist/esm/{style-formatter-f7effaac.js → style-formatter-a20a1ef4.js} +1 -1
  216. package/dist/esm/vega-accordion.entry.js +7 -7
  217. package/dist/esm/vega-app-header-button.entry.js +8 -8
  218. package/dist/esm/vega-banner.entry.js +2 -2
  219. package/dist/esm/vega-box.entry.js +8 -8
  220. package/dist/esm/vega-breadcrumb.entry.js +3 -3
  221. package/dist/esm/vega-button-circle.entry.js +9 -9
  222. package/dist/esm/vega-button-group_2.entry.js +3 -3
  223. package/dist/esm/vega-button-link.entry.js +3 -3
  224. package/dist/esm/vega-button.entry.js +8 -8
  225. package/dist/esm/vega-calendar_4.entry.js +313 -273
  226. package/dist/esm/vega-card.entry.js +7 -7
  227. package/dist/esm/vega-carousel.entry.js +7 -7
  228. package/dist/esm/vega-checkbox_2.entry.js +3 -3
  229. package/dist/esm/vega-chip.entry.js +9 -9
  230. package/dist/esm/vega-code-block.entry.js +6 -6
  231. package/dist/esm/vega-color-picker.entry.js +2 -2
  232. package/dist/esm/vega-combo-box.entry.js +3 -3
  233. package/dist/esm/vega-date-picker_2.entry.js +8 -8
  234. package/dist/esm/vega-dialog_2.entry.js +9 -9
  235. package/dist/esm/vega-divider.entry.js +7 -7
  236. package/dist/esm/vega-dropdown_5.entry.js +9 -9
  237. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  238. package/dist/esm/vega-field-label.entry.js +24 -5
  239. package/dist/esm/vega-file-uploader.entry.js +2 -2
  240. package/dist/esm/vega-flag-icon.entry.js +6 -6
  241. package/dist/esm/vega-flex.entry.js +8 -8
  242. package/dist/esm/vega-font.entry.js +7 -7
  243. package/dist/esm/vega-form.entry.js +3 -3
  244. package/dist/esm/vega-grid.entry.js +7 -7
  245. package/dist/esm/vega-icon.entry.js +6 -6
  246. package/dist/esm/vega-image-uploader.entry.js +7 -7
  247. package/dist/esm/vega-input-credit-card.entry.js +3 -3
  248. package/dist/esm/vega-input-numeric.entry.js +3 -3
  249. package/dist/esm/vega-input-passcode.entry.js +3 -3
  250. package/dist/esm/vega-input-phone-number.entry.js +6 -6
  251. package/dist/esm/vega-input-range.entry.js +3 -3
  252. package/dist/esm/vega-input-select.entry.js +38 -14
  253. package/dist/esm/vega-input.entry.js +14 -3
  254. package/dist/esm/vega-item-toggle.entry.js +2 -2
  255. package/dist/esm/vega-left-nav_5.entry.js +7 -7
  256. package/dist/esm/vega-loader-wrapper_2.entry.js +6 -6
  257. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
  258. package/dist/esm/vega-pagination.entry.js +7 -7
  259. package/dist/esm/vega-popover_2.entry.js +9 -9
  260. package/dist/esm/vega-progress-tracker.entry.js +2 -2
  261. package/dist/esm/vega-radio_2.entry.js +3 -3
  262. package/dist/esm/vega-rich-text-content.entry.js +93 -16
  263. package/dist/esm/vega-rich-text-editor_4.entry.js +107 -54
  264. package/dist/esm/vega-segment-control.entry.js +2 -2
  265. package/dist/esm/vega-selection-chip_2.entry.js +8 -8
  266. package/dist/esm/vega-selection-tile_2.entry.js +3 -3
  267. package/dist/esm/vega-sidenav_3.entry.js +6 -6
  268. package/dist/esm/vega-signature-capture.entry.js +7 -7
  269. package/dist/esm/vega-stepper.entry.js +3 -3
  270. package/dist/esm/vega-tab-group_2.entry.js +3 -3
  271. package/dist/esm/{vega-table_8.entry.js → vega-table_11.entry.js} +745 -321
  272. package/dist/esm/vega-textarea.entry.js +25 -5
  273. package/dist/esm/vega-time-picker_2.entry.js +9 -9
  274. package/dist/esm/vega-toggle-switch.entry.js +2 -2
  275. package/dist/esm/vega-tooltip_2.entry.js +7 -7
  276. package/dist/esm/vega.js +8 -8
  277. package/dist/sri/vega-sri-manifest.json +273 -273
  278. package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.d.ts +1 -1
  279. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.d.ts +1 -0
  280. package/dist/types/components/vega-field-label/types.d.ts +12 -0
  281. package/dist/types/components/vega-field-label/vega-field-label.d.ts +13 -1
  282. package/dist/types/components/vega-input/vega-input.d.ts +14 -2
  283. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-renderer.d.ts +3 -0
  284. package/dist/types/components/vega-input-select/vega-input-select.d.ts +25 -0
  285. package/dist/types/components/vega-rich-text-content/slimmers/controllers/vega-rich-text-content-extensions-styles-controller.d.ts +26 -0
  286. package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +1 -0
  287. package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +7 -0
  288. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor-registry.d.ts +42 -0
  289. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor.abstract.d.ts +26 -0
  290. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +9 -2
  291. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.d.ts +7 -0
  292. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.d.ts +12 -0
  293. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
  294. package/dist/types/components/vega-rich-text-editor/dto/actions/paste-content-action.d.ts +20 -0
  295. package/dist/types/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.d.ts +1 -0
  296. package/dist/types/components/vega-rich-text-editor/dto/annotations/annotation-style.d.ts +46 -0
  297. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +10 -1
  298. package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +3 -3
  299. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +6 -0
  300. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +0 -11
  301. package/dist/types/components/vega-rich-text-editor/extensions/base-extension-renderer.d.ts +16 -0
  302. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +19 -3
  303. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +36 -3
  304. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-new-paragraph-interceptor.d.ts +25 -0
  305. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-paste-content-interceptor.d.ts +17 -0
  306. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/function-block-insert-paragraph-strategy.d.ts +18 -0
  307. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.d.ts +27 -0
  308. package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/paste-plain-text-strategy.d.ts +26 -0
  309. package/dist/types/components/vega-rich-text-editor/extensions/functions/actions/insert-function-block-action.d.ts +17 -0
  310. package/dist/types/components/vega-rich-text-editor/extensions/functions/actions/paste-plain-text-action.d.ts +17 -0
  311. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +58 -0
  312. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.d.ts +55 -0
  313. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +48 -0
  314. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.d.ts +27 -0
  315. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.d.ts +14 -0
  316. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.d.ts +32 -0
  317. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +19 -0
  318. package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.d.ts +25 -0
  319. package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.d.ts +33 -0
  320. package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.d.ts +12 -0
  321. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +2 -2
  322. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +2 -2
  323. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +2 -2
  324. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +3 -4
  325. package/dist/types/components/vega-rich-text-editor/interface.d.ts +8 -2
  326. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +8 -1
  327. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +2 -11
  328. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/state-entity-rendering-registry.d.ts +1 -1
  329. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.d.ts +15 -0
  330. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/code-block-toolbar-button-slimmer.d.ts +1 -0
  331. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.d.ts +11 -0
  332. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +1 -0
  333. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-delete-node-content-strategy.test.d.ts +1 -0
  334. package/dist/types/components/vega-rich-text-editor/test/dto/annotation-style.test.d.ts +1 -0
  335. package/dist/types/components/vega-table/interface.d.ts +4 -0
  336. package/dist/types/components/vega-table/slimmers/controllers/vega-table-children-controller.d.ts +9 -1
  337. package/dist/types/components/vega-table/vega-table-foot/slimmers/controllers/vega-table-foot-state-controller.d.ts +22 -0
  338. package/dist/types/components/vega-table/vega-table-foot/types.d.ts +4 -0
  339. package/dist/types/components/vega-table/vega-table-foot/vega-table-foot.d.ts +23 -0
  340. package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/controllers/vega-table-foot-cell-state-controller.d.ts +10 -0
  341. package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +8 -0
  342. package/dist/types/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.d.ts +45 -0
  343. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.d.ts +20 -0
  344. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.d.ts +11 -0
  345. package/dist/types/components/vega-table/vega-table-foot-row/types.d.ts +4 -0
  346. package/dist/types/components/vega-table/vega-table-foot-row/vega-table-foot-row.d.ts +41 -0
  347. package/dist/types/components/vega-textarea/vega-textarea.d.ts +26 -0
  348. package/dist/types/components.d.ts +134 -3
  349. package/dist/types/helpers/calendar/calendar-date-time.d.ts +76 -0
  350. package/dist/types/helpers/calendar/calendar-event.d.ts +18 -57
  351. package/dist/types/helpers/calendar/calendar-time.d.ts +64 -0
  352. package/dist/types/helpers/calendar/index.d.ts +2 -0
  353. package/dist/types/helpers/calendar/test/calendar-date-time.test.d.ts +1 -0
  354. package/dist/types/helpers/calendar/test/calendar-time.test.d.ts +1 -0
  355. package/dist/types/helpers/calendar/utils.d.ts +0 -25
  356. package/dist/types/types/components.type.d.ts +1 -1
  357. package/dist/types/types/public-api.d.ts +2 -0
  358. package/dist/vega/index.esm.js +1 -1
  359. package/dist/vega/{p-6f7d42a0.entry.js → p-00376f71.entry.js} +1 -1
  360. package/dist/vega/p-018d70a5.js +1 -0
  361. package/dist/vega/p-0849f85e.js +1 -0
  362. package/dist/vega/{p-b431f9d5.entry.js → p-0a55f984.entry.js} +1 -1
  363. package/dist/vega/p-0f7dec29.entry.js +1 -0
  364. package/dist/vega/{p-47cae62d.entry.js → p-113d305b.entry.js} +1 -1
  365. package/dist/vega/{p-015cdbe7.entry.js → p-115b42e6.entry.js} +1 -1
  366. package/dist/vega/p-16358fec.entry.js +1 -0
  367. package/dist/vega/{p-af5bfe34.js → p-16d68187.js} +1 -1
  368. package/dist/vega/{p-92a22562.entry.js → p-18e8c54a.entry.js} +1 -1
  369. package/dist/vega/{p-6f6ccf67.entry.js → p-1922303e.entry.js} +1 -1
  370. package/dist/vega/{p-74d61782.entry.js → p-19256107.entry.js} +1 -1
  371. package/dist/vega/{p-59298f5e.entry.js → p-1dcb1fcd.entry.js} +2 -2
  372. package/dist/vega/{p-7f69081b.entry.js → p-1dd7f8b2.entry.js} +1 -1
  373. package/dist/vega/{p-d006e732.entry.js → p-22fe8c61.entry.js} +1 -1
  374. package/dist/vega/{p-524693d8.entry.js → p-238afe1b.entry.js} +1 -1
  375. package/dist/vega/p-240d9d35.entry.js +1 -0
  376. package/dist/vega/{p-b82d3915.entry.js → p-24419ebe.entry.js} +1 -1
  377. package/dist/vega/p-2478f65e.js +1 -0
  378. package/dist/vega/{p-358e9800.entry.js → p-2c945862.entry.js} +1 -1
  379. package/dist/vega/{p-5f58d1da.entry.js → p-2e32fbe6.entry.js} +1 -1
  380. package/dist/vega/p-2f04d2ac.js +1 -0
  381. package/dist/vega/{p-a73dc4b3.entry.js → p-30a8d9d6.entry.js} +1 -1
  382. package/dist/vega/{p-e6cccee4.js → p-369810ae.js} +1 -1
  383. package/dist/vega/p-3ad87199.entry.js +1 -0
  384. package/dist/vega/{p-fe2e859f.entry.js → p-3b800f1b.entry.js} +1 -1
  385. package/dist/vega/p-437f865f.js +1 -0
  386. package/dist/vega/{p-de624f7d.entry.js → p-48bc03fa.entry.js} +1 -1
  387. package/dist/vega/{p-46830028.entry.js → p-54ddd06f.entry.js} +1 -1
  388. package/dist/vega/{p-5a0524ab.entry.js → p-56636a58.entry.js} +1 -1
  389. package/dist/vega/{p-fc8c5869.entry.js → p-56f77466.entry.js} +1 -1
  390. package/dist/vega/p-5a555092.entry.js +1 -0
  391. package/dist/vega/p-5f377954.js +1 -1
  392. package/dist/vega/{p-ab1001f5.entry.js → p-61d9cdf9.entry.js} +1 -1
  393. package/dist/vega/{p-39b9c57b.entry.js → p-626246b4.entry.js} +1 -1
  394. package/dist/vega/p-6609d87e.entry.js +1 -0
  395. package/dist/vega/p-69d27eaf.entry.js +1 -0
  396. package/dist/vega/{p-7efb5ebe.entry.js → p-705dad87.entry.js} +1 -1
  397. package/dist/vega/{p-8d574fbd.entry.js → p-75b5894f.entry.js} +1 -1
  398. package/dist/vega/{p-00071542.entry.js → p-76b1dae4.entry.js} +1 -1
  399. package/dist/vega/{p-54b62ecf.js → p-7747c163.js} +1 -1
  400. package/dist/vega/{p-0ed53cce.entry.js → p-787caad3.entry.js} +1 -1
  401. package/dist/vega/{p-129c0ce1.js → p-79e6e12c.js} +1 -1
  402. package/dist/vega/{p-cc519f53.entry.js → p-7dde3be9.entry.js} +1 -1
  403. package/dist/vega/p-82ef2de0.entry.js +1 -0
  404. package/dist/vega/{p-5e32866d.entry.js → p-83a50ac2.entry.js} +1 -1
  405. package/dist/vega/p-8506e8c3.js +1 -0
  406. package/dist/vega/{p-47fa359b.js → p-85407fb9.js} +1 -1
  407. package/dist/vega/{p-892cbe7c.entry.js → p-880569ec.entry.js} +1 -1
  408. package/dist/vega/{p-0113a83c.entry.js → p-8dba59a6.entry.js} +1 -1
  409. package/dist/vega/p-94e167b8.entry.js +1 -0
  410. package/dist/vega/{p-b2aaab66.entry.js → p-98fb9eaa.entry.js} +1 -1
  411. package/dist/vega/{p-3288a65b.entry.js → p-99bf5993.entry.js} +1 -1
  412. package/dist/vega/p-a211ae63.js +1 -0
  413. package/dist/vega/{p-fef846d5.entry.js → p-a2506cb5.entry.js} +1 -1
  414. package/dist/vega/{p-4e33fff6.entry.js → p-a6fb5a40.entry.js} +1 -1
  415. package/dist/vega/{p-bee1cc34.entry.js → p-b5060e84.entry.js} +1 -1
  416. package/dist/vega/{p-616cd622.entry.js → p-b78670c9.entry.js} +1 -1
  417. package/dist/vega/{p-d5761532.entry.js → p-b8558278.entry.js} +1 -1
  418. package/dist/vega/{p-8d655fd2.entry.js → p-bb0f2b5f.entry.js} +1 -1
  419. package/dist/vega/{p-a7631c6b.js → p-bb37a401.js} +1 -1
  420. package/dist/vega/p-bccee21e.js +1 -0
  421. package/dist/vega/{p-2553031f.entry.js → p-bd0e55a2.entry.js} +1 -1
  422. package/dist/vega/{p-65693321.entry.js → p-c0223a17.entry.js} +1 -1
  423. package/dist/vega/{p-2d430dc4.entry.js → p-c26332ae.entry.js} +1 -1
  424. package/dist/vega/{p-7f9ec104.entry.js → p-c54148fb.entry.js} +1 -1
  425. package/dist/vega/{p-276b1163.entry.js → p-d3905af1.entry.js} +2 -2
  426. package/dist/vega/p-d4893487.js +1 -0
  427. package/dist/vega/{p-d1dacaeb.entry.js → p-d67200e8.entry.js} +1 -1
  428. package/dist/vega/{p-725f0a2c.js → p-db57dddc.js} +1 -1
  429. package/dist/vega/{p-ed8bc4f0.entry.js → p-de02f404.entry.js} +1 -1
  430. package/dist/vega/{p-d4452dbc.entry.js → p-de8c5fae.entry.js} +1 -1
  431. package/dist/vega/{p-7b145620.js → p-de97c6d9.js} +1 -1
  432. package/dist/vega/{p-34800282.entry.js → p-e0979451.entry.js} +1 -1
  433. package/dist/vega/{p-1a3cb65e.entry.js → p-e6351dab.entry.js} +1 -1
  434. package/dist/vega/{p-8d096fea.entry.js → p-f0fb3fdd.entry.js} +1 -1
  435. package/dist/vega/{p-ea05a2fc.entry.js → p-f3399ef1.entry.js} +1 -1
  436. package/dist/vega/vega.esm.js +1 -1
  437. package/package.json +1 -1
  438. package/dist/vega/p-019f7f95.js +0 -1
  439. package/dist/vega/p-03a1e82e.entry.js +0 -1
  440. package/dist/vega/p-0d1eca78.entry.js +0 -1
  441. package/dist/vega/p-16370cfb.js +0 -1
  442. package/dist/vega/p-3a7f177a.entry.js +0 -1
  443. package/dist/vega/p-41c3fcb4.js +0 -1
  444. package/dist/vega/p-81105691.entry.js +0 -1
  445. package/dist/vega/p-822c6092.js +0 -1
  446. package/dist/vega/p-8edf3513.js +0 -1
  447. package/dist/vega/p-a1b7a179.entry.js +0 -1
  448. package/dist/vega/p-ab8f99e9.entry.js +0 -1
  449. package/dist/vega/p-bf7f755b.js +0 -1
  450. package/dist/vega/p-bf9476cd.entry.js +0 -1
  451. package/dist/vega/p-c6ce2869.js +0 -1
  452. package/dist/vega/p-d0e6454e.entry.js +0 -1
  453. package/dist/vega/p-d88e88a7.js +0 -1
  454. package/dist/vega/p-f360c9ba.js +0 -1
  455. package/dist/vega/p-ff3bb4e2.entry.js +0 -1
@@ -0,0 +1,27 @@
1
+ import { generateUUID } from '../../../../../utils/misc';
2
+ import { RTETextBlock } from '../../../dto/blocks/text-block';
3
+ import htmlElementToAnnotationGenerator from '../../../slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator';
4
+ import { DivToLogicControlBlockStrategy } from './div-to-logic-control-block-strategy';
5
+ /**
6
+ * Strategy to convert a div with class 'statementelement' into an function block.
7
+ */
8
+ export class DivToFunctionContentStrategy extends DivToLogicControlBlockStrategy {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.blockClassName = 'statementelement';
12
+ }
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ handle(elementsArray, options) {
17
+ const element = elementsArray[0];
18
+ const annotations = htmlElementToAnnotationGenerator.generate(RTETextBlock, element);
19
+ const nodes = Array.from(elementsArray[0].childNodes);
20
+ return RTETextBlock.from({
21
+ id: generateUUID(),
22
+ type: 'paragraph',
23
+ annotations: Object.assign({ customClass: [this.blockClassName] }, annotations),
24
+ nodes: this.generateChildNodes(nodes, undefined, options),
25
+ });
26
+ }
27
+ }
@@ -0,0 +1,55 @@
1
+ import { generateUUID } from '../../../../../utils/misc';
2
+ import { RTELogicControlBlock } from '../dto/logic-control-block';
3
+ import { BlockToRTEBlockStrategyAbstract } from '../../../slimmers/controllers/helper/element-to-dto-strategy/block-to-rte-block-strategy.abstract';
4
+ /**
5
+ * Strategy to convert a div with class 'statementsyntax' into an RTELogicControlBlock DTO.
6
+ */
7
+ export class DivToLogicControlBlockStrategy extends BlockToRTEBlockStrategyAbstract {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.blockClassName = 'statementsyntax';
11
+ }
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ canHandle(elementsArray, currentIndex) {
16
+ const element = elementsArray[currentIndex];
17
+ return element &&
18
+ element.nodeType === Node.ELEMENT_NODE &&
19
+ element.classList.contains(this.blockClassName) &&
20
+ this.isFunctionBlockChild(element)
21
+ ? 1
22
+ : 0;
23
+ }
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ handle(elementsArray) {
28
+ const element = elementsArray[0];
29
+ return RTELogicControlBlock.from({
30
+ id: generateUUID(),
31
+ type: 'logic-control-block',
32
+ statementText: element.innerText,
33
+ });
34
+ }
35
+ /**
36
+ * The logic control block does not have child blocks to append. so this method is intentionally left empty.
37
+ */
38
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
39
+ appendChildBlocks() { }
40
+ /**
41
+ * @inheritDoc
42
+ */
43
+ shouldProceedToElementChildren() {
44
+ return false;
45
+ }
46
+ /**
47
+ * Checks if the given element is a child of a function block
48
+ *
49
+ * @param {HTMLElement} element - The HTML element to check
50
+ * @returns {boolean} True if the element is a child of a function block, false otherwise
51
+ */
52
+ isFunctionBlockChild(element) {
53
+ return !!(element.parentElement && element.parentElement.classList.contains('statement'));
54
+ }
55
+ }
@@ -0,0 +1,75 @@
1
+ import { VegaRTEExtension } from '../extension.abstract';
2
+ import { VegaRTEContent } from '../../dto/content-state';
3
+ import { INSERT_FUNCTION_BLOCK } from './actions/insert-function-block-action';
4
+ import { InsertFunctionBlockStrategy } from './action-handler-strategies/insert-function-block-strategy';
5
+ import { RTETextBlock } from '../../dto/blocks/text-block';
6
+ import { RTEImageBlock } from '../../dto/blocks/image-block';
7
+ import { RTELogicControlBlock } from './dto/logic-control-block';
8
+ import { FunctionToolbarButtonRenderer } from './renderers/function-toolbar-button-renderer';
9
+ import { RTELogicControlBlockRenderer } from './renderers/logic-control-block-renderer';
10
+ import { DivToLogicControlBlockStrategy } from './element-to-dto-strategies/div-to-logic-control-block-strategy';
11
+ import { DivToFunctionBlockStrategy } from './element-to-dto-strategies/div-to-function-block-strategy';
12
+ import { DivToFunctionContentStrategy } from './element-to-dto-strategies/div-to-function-content-strategy';
13
+ import { RTEFunctionBlock } from './dto/function-block';
14
+ import { RTEFunctionBlockRenderer } from './renderers/function-block-renderer';
15
+ import { ModifyContentActionType } from '../../dto/actions/modify-content-action.abstract';
16
+ import { PreventNewParagraphInterceptor } from './action-handler-interceptor/prevent-new-paragraph-interceptor';
17
+ import { FunctionBlockInsertParagraphStrategy } from './action-handler-strategies/function-block-insert-paragraph-strategy';
18
+ import { PreventPasteContentInterceptor } from './action-handler-interceptor/prevent-paste-content-interceptor';
19
+ import { PASTE_PLAIN_TEXT } from './actions/paste-plain-text-action';
20
+ import { PastePlainTextStrategy } from './action-handler-strategies/paste-plain-text-strategy';
21
+ const convertLogicControlBlockStrategy = new DivToLogicControlBlockStrategy();
22
+ const convertFunctionContentStrategy = new DivToFunctionContentStrategy();
23
+ const convertFunctionBlockStrategy = new DivToFunctionBlockStrategy();
24
+ /**
25
+ * Function extension class for Vega Rich Text Editor.
26
+ */
27
+ export class VegaRTEFunctionExtension extends VegaRTEExtension {
28
+ constructor() {
29
+ super();
30
+ this.toolbarButtonRenderer = new FunctionToolbarButtonRenderer();
31
+ this.registerBlockBasicStrategies(RTELogicControlBlock.name);
32
+ this.registerBlockBasicStrategies(RTEFunctionBlock.name);
33
+ this.preventFunctionBlockDefaultInsertNewParagraph();
34
+ this.registerNode('logic-control-block', RTELogicControlBlock);
35
+ this.registerRenderer('logic-control-block', new RTELogicControlBlockRenderer());
36
+ this.registerNode('function-block', RTEFunctionBlock);
37
+ this.registerRenderer('function-block', new RTEFunctionBlockRenderer());
38
+ this.registerToolbarButtonRenderer('functions', this.toolbarButtonRenderer);
39
+ this.registerElementToBlockDTOClassStrategy(convertLogicControlBlockStrategy);
40
+ this.registerElementToBlockDTOClassStrategy(convertFunctionContentStrategy);
41
+ this.registerElementToBlockDTOClassStrategy(convertFunctionBlockStrategy);
42
+ }
43
+ /**
44
+ * Initializes the extension with the given context
45
+ *
46
+ * @param {RTEExtensionContext} context - extension context
47
+ */
48
+ initialExtension(context) {
49
+ super.initialExtension(context);
50
+ if (this.toolbarButtonRenderer) {
51
+ this.toolbarButtonRenderer.injectExtensionContext(context);
52
+ }
53
+ }
54
+ /**
55
+ * Remove the appen children strategies to prevent default insert new paragraph logic in function block
56
+ */
57
+ preventFunctionBlockDefaultInsertNewParagraph() {
58
+ this.unRegisterStrategy(ModifyContentActionType.INSERT_NEW_PARAGRAPH, RTELogicControlBlock.name);
59
+ this.unRegisterStrategy(ModifyContentActionType.APPEND_CHILDREN, RTEFunctionBlock.name);
60
+ this.unRegisterStrategy(ModifyContentActionType.INSERT_CHILDREN_AFTER, RTEFunctionBlock.name);
61
+ this.unRegisterStrategy(ModifyContentActionType.INSERT_CHILDREN_BEFORE, RTEFunctionBlock.name);
62
+ this.unRegisterStrategy(ModifyContentActionType.PASTE_CONTENT, RTELogicControlBlock.name);
63
+ VegaRTEExtension.registerActionHandleStrategy(RTEFunctionBlock.name, ModifyContentActionType.INSERT_NEW_PARAGRAPH, new FunctionBlockInsertParagraphStrategy());
64
+ }
65
+ }
66
+ (() => {
67
+ const insertFunctionBlockStrategy = new InsertFunctionBlockStrategy();
68
+ VegaRTEExtension.registerActionHandleStrategy(VegaRTEContent.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
69
+ VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
70
+ VegaRTEExtension.registerActionHandleStrategy(RTEImageBlock.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
71
+ VegaRTEExtension.registerActionHandleStrategy(RTELogicControlBlock.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
72
+ VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, PASTE_PLAIN_TEXT, new PastePlainTextStrategy());
73
+ VegaRTEExtension.registerActionHandlerInterceptor(RTETextBlock.name, ModifyContentActionType.INSERT_NEW_PARAGRAPH, new PreventNewParagraphInterceptor());
74
+ VegaRTEExtension.registerActionHandlerInterceptor(RTETextBlock.name, ModifyContentActionType.PASTE_CONTENT, new PreventPasteContentInterceptor());
75
+ })();
@@ -0,0 +1,38 @@
1
+ import { VegaRTEExtensionRenderer } from '../../base-extension-renderer';
2
+ import styles from './function-block-styles.css';
3
+ /**
4
+ * Renderer for Function Block
5
+ */
6
+ export class RTEFunctionBlockRenderer extends VegaRTEExtensionRenderer {
7
+ /**
8
+ * @inheritDoc
9
+ */
10
+ doRender(createElement, renderData) {
11
+ return createElement('div', {
12
+ key: renderData.id,
13
+ class: this.getElementClassName(renderData),
14
+ ref: this.useRef(renderData),
15
+ });
16
+ }
17
+ /**
18
+ * Defines the function block styles to be injected into the RTE scope.
19
+ *
20
+ * @returns {string} - The styles as a string.
21
+ */
22
+ injectRTEScopeStyles() {
23
+ return styles;
24
+ }
25
+ /**
26
+ * Gets the class name for the function block element.
27
+ *
28
+ * @param {RTEFunctionBlock} block - The function block.
29
+ * @returns {string} The class name for the function block element.
30
+ */
31
+ getElementClassName(block) {
32
+ let classes = block.getClasses();
33
+ if (classes.indexOf('statement') < 0) {
34
+ classes = 'statement ' + classes;
35
+ }
36
+ return classes.trim();
37
+ }
38
+ }
@@ -0,0 +1,71 @@
1
+ import { ActionHandleStrategyRegistry } from '../../../dto/action-handle-strategies/action-handle-strategy-registry';
2
+ import { UpdateCursorPositionAction } from '../../../dto/actions/update-cursor-position-action';
3
+ import { VegaRTEToolbarButtonRenderer } from '../../base-toolbar-button-renderer';
4
+ import { INSERT_FUNCTION_BLOCK, InsertFunctionBlockAction, } from '../actions/insert-function-block-action';
5
+ /**
6
+ * Function toolbar button renderer class.
7
+ */
8
+ export class FunctionToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
9
+ /**
10
+ * Injects the extension context
11
+ *
12
+ * @param {RTEExtensionContext} context - extension context
13
+ */
14
+ injectExtensionContext(context) {
15
+ this.extensionContext = context;
16
+ }
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ render(h, editorContext) {
21
+ return this.renderDropdown(h, editorContext, {}, [
22
+ this.renderButton(h, editorContext, {
23
+ label: 'Functions',
24
+ showArrowIcon: true,
25
+ }),
26
+ this.renderDropdownListTemplate(h, FunctionToolbarButtonRenderer.FUNCTION_LIST),
27
+ ]);
28
+ }
29
+ /**
30
+ * Overrides the isDisabled method to determine if the button should be disabled.
31
+ *
32
+ * @returns {boolean} - true if the button should be disabled, false otherwise.
33
+ */
34
+ isDisabled() {
35
+ const { host, getSelectedNodes } = this.extensionContext;
36
+ const focusNode = getSelectedNodes()[0];
37
+ let enableInsert = true;
38
+ if (focusNode) {
39
+ enableInsert = ActionHandleStrategyRegistry.canHandle(INSERT_FUNCTION_BLOCK, focusNode.parent);
40
+ }
41
+ return host.disabled || !enableInsert;
42
+ }
43
+ /* istanbul ignore next */
44
+ // eslint-disable-next-line jsdoc/require-jsdoc
45
+ handleButtonClick() {
46
+ throw new Error('Method not implemented.');
47
+ }
48
+ /**
49
+ * Handles dropdown click event
50
+ *
51
+ * @param {RTEExtensionFunctionType} itemKey - key of the clicked item
52
+ */
53
+ handleDropdownClick(itemKey) {
54
+ const { host, getSelectedNodes } = this.extensionContext;
55
+ const focusNode = getSelectedNodes()[0];
56
+ const action = new InsertFunctionBlockAction(itemKey);
57
+ if (!focusNode) {
58
+ host.value.apply(action);
59
+ }
60
+ else if (focusNode.parent) {
61
+ focusNode.parent.apply(action);
62
+ }
63
+ if (action.nextFocusNode) {
64
+ host.value.apply(new UpdateCursorPositionAction(action.nextFocusNode, 1));
65
+ }
66
+ }
67
+ }
68
+ FunctionToolbarButtonRenderer.FUNCTION_LIST = [
69
+ { key: 'IF', label: 'Conditional' },
70
+ { key: 'FOREACH', label: 'Foreach' },
71
+ ];
@@ -0,0 +1,20 @@
1
+ import { VegaRTEExtensionRenderer } from '../../base-extension-renderer';
2
+ /**
3
+ * Renders a logic control block in the rich text editor.
4
+ */
5
+ export class RTELogicControlBlockRenderer extends VegaRTEExtensionRenderer {
6
+ /**
7
+ * @inheritDoc
8
+ */
9
+ doRender(h, renderData) {
10
+ return h('div', {
11
+ key: renderData.id,
12
+ class: 'statementsyntax',
13
+ ref: this.useRef(renderData),
14
+ }, h('span', {
15
+ key: `${renderData.id}-1`,
16
+ contenteditable: 'false',
17
+ ref: this.useRef(renderData.children[0]),
18
+ }, renderData.statementText));
19
+ }
20
+ }
@@ -84,7 +84,7 @@ export class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRender
84
84
  * @returns {string} The label of the language, or the key if not found.
85
85
  */
86
86
  getLanguageLabelByKey(key) {
87
- const language = this.languageList.find((item) => item.key === key);
87
+ const language = this.getListItemByKey(this.languageList, key);
88
88
  return language.label;
89
89
  }
90
90
  }
@@ -10,6 +10,8 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { generateUUID } from '../../../../utils/misc';
13
+ import { RTETextNode } from '../../dto/nodes/text-node';
14
+ import htmlElementToAnnotationGenerator from '../../slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator';
13
15
  import { ElementToDTOStrategy } from '../../slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract';
14
16
  /**
15
17
  * Strategy to convert <span class="token" token-key="...">...</span> to a token node
@@ -34,7 +36,7 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
34
36
  const element = elementsArray[0];
35
37
  const tokenKey = element.getAttribute('token-key');
36
38
  const text = element.textContent;
37
- const annotations = this.generateTextStyleAnnotations(element);
39
+ const annotations = htmlElementToAnnotationGenerator.generate(RTETextNode, element);
38
40
  // Exclude customAttribute and customClass from annotations
39
41
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
42
  const { customAttribute, customClass } = annotations, restAnnotations = __rest(annotations, ["customAttribute", "customClass"]);
@@ -23,7 +23,7 @@ export class RTETokenNodeRenderer extends VegaRTEExtensionRenderer {
23
23
  'template-token-key': token,
24
24
  'token-key': token,
25
25
  'contenteditable': 'false',
26
- 'style': this.getStyle(node),
26
+ 'style': node.getStyles(),
27
27
  'class': `token ${node.getClasses()}`,
28
28
  'ref': this.useRef(node),
29
29
  // eslint-disable-next-line jsdoc/require-jsdoc
@@ -44,13 +44,12 @@ export class RTETokenNodeRenderer extends VegaRTEExtensionRenderer {
44
44
  this.extensionContext = context;
45
45
  }
46
46
  /**
47
- * Get the style for the token element.
47
+ * Override to inject RTE scope styles for the token node.
48
48
  *
49
- * @param {RTETokenNode} node - The token node.
50
- * @returns {Record<string, string>} The style object for the token element.
49
+ * @returns {string} The CSS styles for the token node.
51
50
  */
52
- getStyle(node) {
53
- return Object.assign(Object.assign({}, node.getStyles()), { backgroundColor: 'var(--v-bg-status-info, #CDD1D3)', padding: '0 2px', margin: '0 1px' });
51
+ injectRTEScopeStyles() {
52
+ return `span[token-key]{padding: 0 2px; margin: 0 1px; background-color: rgba(var(--v-bg-status-info, 205,209,211))}`;
54
53
  }
55
54
  /**
56
55
  * Handle the click event on the token element.
@@ -65,7 +65,7 @@ export class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer
65
65
  * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
66
66
  */
67
67
  handleDropdownClick(itemKey, editorContext) {
68
- const token = this.tokenList.find((t) => t.key === itemKey);
68
+ const token = this.getListItemByKey(this.tokenList, itemKey);
69
69
  const { rteRange } = editorContext;
70
70
  const { startNode } = rteRange;
71
71
  if (startNode && startNode.parent) {
@@ -1,3 +1,4 @@
1
+ import htmlElementToAnnotationGenerator from './slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator';
1
2
  /* istanbul ignore file */
2
3
  export { VegaRTEContent } from './dto/content-state';
3
4
  // block and node
@@ -16,23 +17,29 @@ export { RTETokenNodeRenderer } from './extensions/tokens/token-node-renderer';
16
17
  export { VegaRTETokenExtension } from './extensions/tokens/token-extension';
17
18
  export { RTELanguageToolbarButtonRenderer } from './extensions/languages/language-toolbar-button-renderer';
18
19
  export { VegaRTELanguageExtension } from './extensions/languages/language-extension';
20
+ export { VegaRTEFunctionExtension } from './extensions/functions/function-extension';
19
21
  // actions
20
- export { ModifyContentAction } from './dto/actions/modify-content-action.abstract';
22
+ export { ModifyContentAction, ModifyContentActionType } from './dto/actions/modify-content-action.abstract';
21
23
  export { AppendChildrenAction } from './dto/actions/append-child-nodes-action';
22
24
  export { RemoveChildrenAction } from './dto/actions/remove-child-action';
23
25
  export { InsertChildrenAfterAction } from './dto/actions/insert-children-after-block';
24
26
  export { InsertChildrenBeforeAction } from './dto/actions/insert-children-before-block';
25
27
  export { InsertNodeToNearestRootAction } from './dto/actions/insert-node-to-nearest-root-action';
26
28
  export { UpdateCursorPositionAction } from './dto/actions/update-cursor-position-action';
29
+ export { InsertNewParagraphAction } from './dto/actions/insert-new-paragraph-action';
27
30
  // annotations
28
31
  export { CustomAttributeAnnotation } from './dto/annotations/custom-attribute-annotation';
29
32
  export { CustomClassAnnotation } from './dto/annotations/custom-class-annotation';
30
33
  export { CustomStyleAnnotation } from './dto/annotations/custom-style-annotation';
34
+ export { RTEAnnotationStyle } from './dto/annotations/annotation-style';
31
35
  // modify content strategies
32
36
  export { ActionHandleStrategy } from './dto/action-handle-strategies/action-handle-strategy.abstract';
37
+ export { ActionHandlerInterceptor, } from './dto/action-handle-strategies/action-handle-interceptor.abstract';
33
38
  // rteRange
34
39
  export { RTERange } from './dto/range';
35
40
  // element to DTO strategy
36
41
  export { ElementToDTOStrategy } from './slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract';
42
+ export { BlockToRTEBlockStrategyAbstract } from './slimmers/controllers/helper/element-to-dto-strategy/block-to-rte-block-strategy.abstract';
43
+ export { htmlElementToAnnotationGenerator };
37
44
  // preset toolbar buttons
38
45
  export { VegaRTEPresetToolbarItems } from './constants/constant';
@@ -16,6 +16,7 @@ import { generateUUID } from '../../../../utils/misc';
16
16
  import { AppendChildrenAction } from '../../dto/actions/append-child-nodes-action';
17
17
  import { UpdateTextAction } from '../../dto/actions/update-text-action';
18
18
  import { RTECodeBlockNode } from '../../dto/nodes/code-block-node';
19
+ import { VegaRTEContent } from '../../dto/content-state';
19
20
  /**
20
21
  * The `DeleteSelectedNodesController` class provides methods to delete selected nodes.
21
22
  */
@@ -91,7 +92,14 @@ export class DeleteSelectedNodesController extends VegaSlimmer {
91
92
  // the image block will be deleted when the image is the only item
92
93
  if (startNode.parent.children.length === 1) {
93
94
  const paragraph = this.createEmptyParagraph();
94
- startNode.parent.parent.apply(new InsertChildrenBeforeAction(startNode.parent, paragraph));
95
+ let shouldDeleteBlock = startNode.parent;
96
+ // if the node grand parent is html block and the html block only has one child, we need insert the paragraph before the html block to jump out the html block
97
+ if (shouldDeleteBlock.parent &&
98
+ !(shouldDeleteBlock.parent instanceof VegaRTEContent) &&
99
+ shouldDeleteBlock.parent.children.length === 1) {
100
+ shouldDeleteBlock = shouldDeleteBlock.parent;
101
+ }
102
+ shouldDeleteBlock.parent.apply(new InsertChildrenBeforeAction(shouldDeleteBlock, paragraph));
95
103
  startNode.parent.apply(new RemoveChildrenAction(startNode));
96
104
  return paragraph.children[0];
97
105
  }
@@ -1,20 +1,8 @@
1
1
  import { isNonNullable } from '../../../../../../types/type-guard';
2
- import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
3
- import { RTETextNode } from '../../../../dto/nodes/text-node';
4
2
  /**
5
3
  * Abstract class to define strategies for processing HTML elements
6
4
  */
7
5
  export class ElementToDTOStrategy {
8
- /**
9
- * Convert element style attributes to text annotations.
10
- *
11
- * @param {HTMLElement} element - Current html element.
12
- * @param {HtmlElementToAnnotationGenerateOptions} options - Options for generating annotations.
13
- * @returns {VegaRTEAnnotations} - Generated annotations.
14
- */
15
- generateTextStyleAnnotations(element, options) {
16
- return htmlElementToAnnotationGenerator.generate(RTETextNode, element, options);
17
- }
18
6
  }
19
7
  /**
20
8
  * Class to represent the output of a strategy applied to HTML elements
@@ -57,7 +57,9 @@ export class InsertLineBreakHandler extends BaseHandler {
57
57
  if (currentBlock) {
58
58
  const lineBreakAction = new LineBreakSingleBlockAction(cursorNode, range.startOffset);
59
59
  currentBlock.apply(lineBreakAction);
60
- this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
60
+ if (lineBreakAction.lineBreakNode) {
61
+ this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
62
+ }
61
63
  }
62
64
  }
63
65
  /**
@@ -1,10 +1,8 @@
1
1
  import { BaseHandler } from './base-handler';
2
2
  import { AppendChildrenAction } from '../../../../dto/actions/append-child-nodes-action';
3
- import { InsertChildrenAfterAction } from '../../../../dto/actions/insert-children-after-block';
4
- import { SplitBlockWithNodeAction } from '../../../../dto/actions/split-block-with-node-action';
5
- import { InsertChildrenBeforeAction } from '../../../../dto/actions/insert-children-before-block';
6
3
  import ElementToDtoStrategyProcessor from '../element-to-dto-strategy/element-to-dto-strategy-processor';
7
4
  import { StylePreservator } from '../../../../../../helpers/csp/styles-preservator';
5
+ import { PasteContentAction } from '../../../../dto/actions/paste-content-action';
8
6
  /**
9
7
  * Handle user paste
10
8
  */
@@ -19,6 +17,7 @@ export class InsertPasteHandler extends BaseHandler {
19
17
  const { startContainer } = this.selectionController.getCurrentRange();
20
18
  if (this.isRootContainer(startContainer)) {
21
19
  this.insertBlocksToRoot(blocks);
20
+ // TODO: Need to check below logic, it seems not correct https://gethired.atlassian.net/browse/VD-7779
22
21
  }
23
22
  else if (this.isEmptyParagraph(startContainer)) {
24
23
  this.insertBlocksBeforeEmptyBlock(blocks);
@@ -43,12 +42,12 @@ export class InsertPasteHandler extends BaseHandler {
43
42
  insertBlocksToContent(blocks) {
44
43
  const cursorNode = this.removeSelectionRange();
45
44
  if (cursorNode && cursorNode.parent) {
46
- const currentBlock = cursorNode.parent;
47
45
  const { startOffset } = this.selectionController.getCurrentRange();
48
- const breakAction = new SplitBlockWithNodeAction(cursorNode, startOffset);
49
- currentBlock.apply(breakAction);
50
- currentBlock.parent.apply(new InsertChildrenAfterAction(currentBlock, ...blocks));
51
- this.switchCaretPositionToNextElement(breakAction.newBlock);
46
+ const pasteAction = new PasteContentAction(blocks, cursorNode, startOffset);
47
+ cursorNode.parent.apply(pasteAction);
48
+ if (pasteAction.futureFocusBlock) {
49
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
50
+ }
52
51
  }
53
52
  }
54
53
  /**
@@ -61,8 +60,11 @@ export class InsertPasteHandler extends BaseHandler {
61
60
  /* istanbul ignore next */
62
61
  const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parent;
63
62
  if (currentBlock) {
64
- currentBlock.parent.apply(new InsertChildrenBeforeAction(currentBlock, ...blocks));
65
- this.switchCaretPositionToNextElement(currentBlock);
63
+ const pasteAction = new PasteContentAction(blocks, currentBlock.children[0], 0, this.selectionController.getCurrentRange());
64
+ currentBlock.apply(pasteAction);
65
+ if (pasteAction.futureFocusBlock) {
66
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
67
+ }
66
68
  }
67
69
  }
68
70
  /**
@@ -10,7 +10,6 @@ import { MapToComponentField } from 'vega-slimmer/core';
10
10
  import { BoldAnnotationAction } from '../../../dto/actions/bold-annotation-action';
11
11
  import { NodeAnnotationTypeEnum } from '../../../dto/annotations/node-annotation.abstract';
12
12
  import { RTETextNode } from '../../../dto/nodes/text-node';
13
- import { RTECodeBlockNode } from '../../../dto/nodes/code-block-node';
14
13
  import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-slimmer.abstract';
15
14
  export class BoldToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
16
15
  constructor() {
@@ -40,9 +39,8 @@ export class BoldToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
40
39
  return (super.isDisabled() ||
41
40
  selectedNodes.some((node) => {
42
41
  var _a;
43
- return node instanceof RTECodeBlockNode ||
44
- ((_a = node.getAnnotationByType(NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
45
- node.getAnnotationByType(NodeAnnotationTypeEnum.IMAGE);
42
+ return ((_a = node.getAnnotationByType(NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
43
+ this.shouldDisabledToolbar(node, BoldAnnotationAction.name);
46
44
  }));
47
45
  }
48
46
  }
@@ -11,9 +11,9 @@ import ListUL from '../../../../assets/list-ul';
11
11
  import ListOL from '../../../../assets/list-ol';
12
12
  import { BulletsToolbarButtonSlimmer } from './bullets-toolbar-button-slimmer';
13
13
  import { NumbersToolbarButtonSlimmer } from './numbers-toolbar-button-slimmer';
14
- import { RTEImageNode } from '../../../../dto/nodes/image-node';
15
- import { RTECodeBlockNode } from '../../../../dto/nodes/code-block-node';
16
14
  import { VisualModeToolbarButtonSlimmer } from '../visual-mode-toolbar-button-slimmer.abstract';
15
+ import { ActionHandleStrategyRegistry } from '../../../../dto/action-handle-strategies/action-handle-strategy-registry';
16
+ import { ModifyContentActionType } from '../../../../dto/actions/modify-content-action.abstract';
17
17
  export class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
18
18
  constructor() {
19
19
  super({
@@ -47,9 +47,34 @@ export class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonS
47
47
  return false;
48
48
  }
49
49
  isDisabled() {
50
- const selectedNodes = this.selectionController.getSelectedNodes();
51
- return (super.isDisabled() ||
52
- selectedNodes.some((node) => node instanceof RTEImageNode || node instanceof RTECodeBlockNode));
50
+ return super.isDisabled() || this.shouldDisabledListToolbar();
51
+ }
52
+ shouldDisabledListToolbar() {
53
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
54
+ return selectedBlocks.some((block) => {
55
+ return (block &&
56
+ (this.unableToConvertListOrParagraph(block) || this.unableToInsertBlock(block.parent)));
57
+ });
58
+ }
59
+ /**
60
+ * Check if unable to insert blocks before or after the given block.
61
+ *
62
+ * @param {RTEBlock | VegaRTEContent} block - The block to check.
63
+ * @returns {boolean} - Boolean result.
64
+ */
65
+ unableToInsertBlock(block) {
66
+ return !(ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.INSERT_CHILDREN_AFTER, block) ||
67
+ ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.INSERT_CHILDREN_BEFORE, block));
68
+ }
69
+ /**
70
+ * Check if unable to convert the block to list or paragraph.
71
+ *
72
+ * @param {RTEBlock} block - The block to check.
73
+ * @returns {boolean} - Boolean result.
74
+ */
75
+ unableToConvertListOrParagraph(block) {
76
+ return (!ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.TRANSFORM_LIST_BLOCK, block) &&
77
+ !ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK, block.parent));
53
78
  }
54
79
  }
55
80
  (() => {
@@ -9,8 +9,6 @@ import TextSlash from '../../../assets/text-slash';
9
9
  import { RTETextNode } from '../../../dto/nodes/text-node';
10
10
  import { MapToComponentField } from 'vega-slimmer/core';
11
11
  import { ClearFormattingAnnotationAction } from '../../../dto/actions/clear-formatting-annotation-action';
12
- import { NodeAnnotationTypeEnum } from '../../../dto/annotations/node-annotation.abstract';
13
- import { RTECodeBlockNode } from '../../../dto/nodes/code-block-node';
14
12
  import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-slimmer.abstract';
15
13
  export class ClearStyleToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
16
14
  constructor() {
@@ -35,8 +33,7 @@ export class ClearStyleToolbarButtonSlimmer extends VisualModeToolbarButtonSlimm
35
33
  isDisabled() {
36
34
  const selectedNodes = this.selectionController.getSelectedNodes();
37
35
  return (super.isDisabled() ||
38
- selectedNodes.some((node) => node instanceof RTECodeBlockNode ||
39
- node.getAnnotationByType(NodeAnnotationTypeEnum.IMAGE)));
36
+ selectedNodes.some((node) => this.shouldDisabledToolbar(node, ClearFormattingAnnotationAction.name)));
40
37
  }
41
38
  }
42
39
  (() => {
@@ -9,6 +9,10 @@ import { VegaInternalIconManager } from '../../../../../helpers/icon/internal-ic
9
9
  import { MapToComponentField } from 'vega-slimmer/core';
10
10
  import { TransformToCodeBlockAction } from '../../../dto/actions/transform-to-code-block-action';
11
11
  import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-slimmer.abstract';
12
+ import { ModifyContentActionType } from '../../../dto/actions/modify-content-action.abstract';
13
+ import { RTECodeBlock } from '../../../dto/blocks/code-block';
14
+ import { ActionHandleStrategyRegistry } from '../../../dto/action-handle-strategies/action-handle-strategy-registry';
15
+ import { RTETextBlock } from '../../../dto/blocks/text-block';
12
16
  /**
13
17
  * The code block toolbar button slimmer.
14
18
  */
@@ -48,7 +52,12 @@ export class CodeBlockToolbarButtonSlimmer extends VisualModeToolbarButtonSlimme
48
52
  isDisabled() {
49
53
  const selectBlocks = this.selectionController.getSelectedBlocks();
50
54
  return (super.isDisabled() ||
51
- selectBlocks.some((block) => block.type === 'image' || block.type === 'list-item'));
55
+ selectBlocks.some((block) => !(block instanceof RTECodeBlock) && this.shouldDisabledCodeBlockToolbar(block)));
56
+ }
57
+ shouldDisabledCodeBlockToolbar(block) {
58
+ return (block &&
59
+ !(block instanceof RTETextBlock &&
60
+ ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.TRANSFORM_TO_CODE_BLOCK, block.parent)));
52
61
  }
53
62
  }
54
63
  (() => {
@@ -10,7 +10,6 @@ import { RTETextNode } from '../../../dto/nodes/text-node';
10
10
  import { NodeAnnotationTypeEnum } from '../../../dto/annotations/node-annotation.abstract';
11
11
  import { MapToComponentField } from 'vega-slimmer/core';
12
12
  import { CodeAnnotationAction } from '../../../dto/actions/code-annotation-action';
13
- import { RTECodeBlockNode } from '../../../dto/nodes/code-block-node';
14
13
  import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-slimmer.abstract';
15
14
  export class CodeToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
16
15
  constructor() {
@@ -37,9 +36,8 @@ export class CodeToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
37
36
  isDisabled() {
38
37
  const selectedNodes = this.selectionController.getSelectedNodes();
39
38
  return (super.isDisabled() ||
40
- selectedNodes.some((node) => node instanceof RTECodeBlockNode ||
41
- node.getAnnotationByType(NodeAnnotationTypeEnum.LINK) ||
42
- node.getAnnotationByType(NodeAnnotationTypeEnum.IMAGE)));
39
+ selectedNodes.some((node) => node.getAnnotationByType(NodeAnnotationTypeEnum.LINK) ||
40
+ this.shouldDisabledToolbar(node, CodeAnnotationAction.name)));
43
41
  }
44
42
  }
45
43
  (() => {