@heartlandone/vega 2.73.0 → 2.74.0-RTE-table-preview

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 (702) hide show
  1. package/dist/cjs/align-left-4a76df69.js +22 -0
  2. package/dist/cjs/{app-globals-cc162173.js → app-globals-be2e868e.js} +18 -17
  3. package/dist/cjs/{code-block-823cd481.js → code-block-22ee2550.js} +35 -4
  4. package/dist/cjs/{component-value-history-controller-slimmer.abstract-e2e0c6f3.js → component-value-history-controller-slimmer.abstract-3486cbc0.js} +26 -5
  5. package/dist/cjs/{dto-renderer-manager-bd2bd447.js → content-state-0be6fda3.js} +33 -60
  6. package/dist/cjs/{design-token-11656685.js → design-token-505997df.js} +1 -1
  7. package/dist/cjs/dto-renderer-manager-ae5fcbba.js +58 -0
  8. package/dist/cjs/{element-appender-slimmer-12f40b8b.js → element-appender-slimmer-26420c09.js} +6 -6
  9. package/dist/cjs/{form-field-controller-slimmer-6e3e14fd.js → form-field-controller-slimmer-56c551ea.js} +2 -2
  10. package/dist/cjs/{image-annotation-action-7408a4b3.js → image-annotation-action-462fd073.js} +3 -3
  11. package/dist/cjs/index-58ea899e.js +4 -0
  12. package/dist/cjs/{index-638a0f0d.js → index-fc538f17.js} +1 -1
  13. package/dist/cjs/index.cjs.js +43 -38
  14. package/dist/cjs/{language-extension-716015a5.js → language-extension-414149c2.js} +8 -8
  15. package/dist/cjs/loader.cjs.js +13 -8
  16. package/dist/cjs/{public-rules-2950f1fc.js → public-rules-2d18cf41.js} +4 -4
  17. package/dist/cjs/{range-c3c48132.js → range-439a0c0c.js} +1 -1
  18. package/dist/cjs/{responsive-format-facade-96c5f598.js → responsive-format-facade-0ececeb3.js} +3 -3
  19. package/dist/cjs/{rich-text-editor-required-rule-4aab05a3.js → rich-text-editor-required-rule-5a4f3626.js} +2 -2
  20. package/dist/cjs/{string-input-formatter-slimmer-338bbd73.js → string-input-formatter-slimmer-a8f4a9b1.js} +2 -2
  21. package/dist/cjs/{style-formatter-9c42d41b.js → style-formatter-142500c0.js} +1 -1
  22. package/dist/cjs/styles.constants-3aff0b56.js +1306 -0
  23. package/dist/cjs/{sub-state-notify-slimmer-1efa69c4.js → sub-state-notify-slimmer-011866d9.js} +1 -1
  24. package/dist/cjs/{sub-state-observer-slimmer-6afa62f5.js → sub-state-observer-slimmer-23d43f1e.js} +1 -1
  25. package/dist/cjs/table-extension-2a20da57.js +6018 -0
  26. package/dist/cjs/vega-accordion.cjs.entry.js +10 -6
  27. package/dist/cjs/vega-app-header-button.cjs.entry.js +10 -6
  28. package/dist/cjs/vega-box.cjs.entry.js +11 -7
  29. package/dist/cjs/vega-button-circle.cjs.entry.js +10 -6
  30. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  31. package/dist/cjs/vega-button.cjs.entry.js +9 -5
  32. package/dist/cjs/vega-calendar_4.cjs.entry.js +3 -3
  33. package/dist/cjs/vega-card.cjs.entry.js +10 -6
  34. package/dist/cjs/vega-carousel.cjs.entry.js +9 -5
  35. package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
  36. package/dist/cjs/vega-chip.cjs.entry.js +10 -6
  37. package/dist/cjs/vega-code-block.cjs.entry.js +4 -4
  38. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
  39. package/dist/cjs/vega-combo-box.cjs.entry.js +3 -3
  40. package/dist/cjs/vega-date-picker_2.cjs.entry.js +15 -11
  41. package/dist/cjs/vega-dialog_2.cjs.entry.js +17 -13
  42. package/dist/cjs/vega-divider.cjs.entry.js +10 -6
  43. package/dist/cjs/vega-dropdown_5.cjs.entry.js +24 -11
  44. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  45. package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
  46. package/dist/cjs/vega-flag-icon.cjs.entry.js +10 -6
  47. package/dist/cjs/vega-flex.cjs.entry.js +11 -7
  48. package/dist/cjs/vega-font.cjs.entry.js +10 -6
  49. package/dist/cjs/vega-form.cjs.entry.js +4 -4
  50. package/dist/cjs/vega-grid.cjs.entry.js +10 -6
  51. package/dist/cjs/vega-icon.cjs.entry.js +10 -6
  52. package/dist/cjs/vega-image-uploader.cjs.entry.js +12 -8
  53. package/dist/cjs/vega-input-credit-card.cjs.entry.js +3 -3
  54. package/dist/cjs/vega-input-numeric.cjs.entry.js +4 -4
  55. package/dist/cjs/vega-input-passcode.cjs.entry.js +3 -3
  56. package/dist/cjs/vega-input-phone-number.cjs.entry.js +10 -6
  57. package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
  58. package/dist/cjs/vega-input-select.cjs.entry.js +181 -50
  59. package/dist/cjs/vega-input.cjs.entry.js +5 -5
  60. package/dist/cjs/{vega-internal-event-id-f2465f1b.js → vega-internal-event-id-73334b4b.js} +4 -0
  61. package/dist/cjs/vega-left-nav_5.cjs.entry.js +17 -13
  62. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +11 -7
  63. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +1 -1
  64. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
  65. package/dist/cjs/vega-pagination.cjs.entry.js +9 -5
  66. package/dist/cjs/vega-popover_2.cjs.entry.js +11 -7
  67. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +11 -7
  68. package/dist/cjs/vega-radio_2.cjs.entry.js +3 -3
  69. package/dist/cjs/vega-rich-text-content.cjs.entry.js +10 -9
  70. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +70 -54
  71. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +1313 -0
  72. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +12 -8
  73. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
  74. package/dist/cjs/vega-sidenav_3.cjs.entry.js +15 -11
  75. package/dist/cjs/vega-signature-capture.cjs.entry.js +12 -8
  76. package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
  77. package/dist/cjs/vega-table_11.cjs.entry.js +16 -13
  78. package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
  79. package/dist/cjs/vega-time-picker_2.cjs.entry.js +12 -8
  80. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  81. package/dist/cjs/vega-tooltip_2.cjs.entry.js +10 -6
  82. package/dist/cjs/vega.cjs.js +13 -8
  83. package/dist/collection/collection-manifest.json +10 -0
  84. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +6 -3
  85. package/dist/collection/components/vega-dropdown/vega-dropdown.js +31 -0
  86. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.js +89 -0
  87. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +4 -0
  88. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +4 -0
  89. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +33 -13
  90. package/dist/collection/components/vega-input-select/vega-input-select.js +27 -7
  91. package/dist/collection/components/vega-popover/slimmers/controllers/vega-popover-appender-controller.js +1 -0
  92. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy.abstract.js +10 -0
  93. package/dist/collection/components/vega-rich-text-editor/dto/annotations/plain-text-annotation.js +1 -1
  94. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +24 -2
  95. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +18 -2
  96. package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js +2 -1
  97. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +18 -1
  98. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-children-remove-interceptor.js +42 -0
  99. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-content-delete-interceptor.js +26 -0
  100. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-row-insert-interceptor.js +23 -0
  101. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-block-strategy.js +25 -0
  102. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-column-strategy.js +57 -0
  103. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-row-strategy.js +57 -0
  104. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-block-strategy.js +54 -0
  105. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-column-strategy.js +42 -0
  106. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-row-strategy.js +117 -0
  107. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/select-table-column-strategy.js +22 -0
  108. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/table-column-strategy.abstract.js +19 -0
  109. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-row-strategy.js +133 -0
  110. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-table-column-strategy.js +99 -0
  111. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/update-table-cell-properties-strategy.js +23 -0
  112. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/update-table-properties-strategy.js +29 -0
  113. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/delete-table-block-action.js +13 -0
  114. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/delete-table-column-action.js +13 -0
  115. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/delete-table-row-action.js +18 -0
  116. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/insert-table-block-action.js +13 -0
  117. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/insert-table-column-action.js +19 -0
  118. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/insert-table-row-action.js +26 -0
  119. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/select-table-column-action.js +13 -0
  120. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-annotations-action.js +18 -0
  121. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-caption-action.js +13 -0
  122. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-cell-annotations-action.js +18 -0
  123. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-head-cell-annotations-action.js +18 -0
  124. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/toggle-header-row-action.js +13 -0
  125. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/toggle-header-table-column-action.js +15 -0
  126. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/update-table-properties-action.js +38 -0
  127. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler-base.js +97 -0
  128. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler.js +69 -0
  129. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotation-handler/table-cell-annotation-handler.js +82 -0
  130. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotation-handler/table-head-cell-annotation-handler.js +14 -0
  131. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.js +91 -0
  132. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.js +57 -0
  133. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.js +121 -0
  134. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-head-cell-annotation.js +40 -0
  135. package/dist/collection/components/vega-rich-text-editor/extensions/table/constants/styles.constants.js +21 -0
  136. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +119 -0
  137. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-body-block.js +56 -0
  138. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.js +69 -0
  139. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.js +66 -0
  140. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-block.js +60 -0
  141. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.js +53 -0
  142. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-row-block.js +60 -0
  143. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/caption-to-caption-block-strategy.js +50 -0
  144. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/table-to-table-block-strategy.js +42 -0
  145. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/tbody-to-table-body-block-strategy.js +42 -0
  146. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/td-to-table-cell-block-strategy.js +71 -0
  147. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/thead-to-table-head-block-strategy.js +42 -0
  148. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/tr-to-table-row-block-strategy.js +42 -0
  149. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-body-renderer.js +15 -0
  150. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.js +22 -0
  151. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.js +74 -0
  152. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +254 -0
  153. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-head-cell-renderer.js +12 -0
  154. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-head-renderer.js +15 -0
  155. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +149 -0
  156. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-row-renderer.js +15 -0
  157. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +148 -0
  158. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/caption-operation.js +78 -0
  159. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties-cancel-event-handler.js +17 -0
  160. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties-change-event-handler.js +15 -0
  161. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties-save-event-handler.js +19 -0
  162. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties.js +131 -0
  163. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/column-operation.js +109 -0
  164. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/row-operation.js +132 -0
  165. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/setting-event-handler.abstract.js +44 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties-cancel-event-handler.js +19 -0
  167. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties-change-event-handler.js +20 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties-save-event-handler.js +20 -0
  169. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties.js +50 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +152 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-icon.js +3 -0
  172. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-selection.js +371 -0
  173. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +234 -0
  174. package/dist/collection/components/vega-rich-text-editor/extensions/table/utils/utils.js +102 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/align-bottom.js +3 -0
  176. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/align-middle.js +3 -0
  177. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/align-top.js +3 -0
  178. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/objects-align-center-horizontal.js +3 -0
  179. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/objects-align-left.js +3 -0
  180. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/objects-align-right.js +3 -0
  181. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/controllers/vega-rich-text-table-properties-color-controller.js +27 -0
  182. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-cell-properties-form-field-renderer.js +106 -0
  183. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.js +259 -0
  184. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-field-renderer.js +58 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-renderer.js +93 -0
  186. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.css +148 -0
  187. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.js +241 -0
  188. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/controllers/selection-widget-keyboard-controller.js +36 -0
  189. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/renderers/selection-widget-renderer.js +83 -0
  190. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/vega-rich-text-table-selection-widget.css +41 -0
  191. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/vega-rich-text-table-selection-widget.js +80 -0
  192. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/assets/icon.js +20 -0
  193. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.js +27 -0
  194. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.js +26 -0
  195. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +86 -0
  196. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +101 -0
  197. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.js +26 -0
  198. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.js +75 -0
  199. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.js +50 -0
  200. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.css +20 -0
  201. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.js +215 -0
  202. package/dist/collection/components/vega-rich-text-editor/public-api.js +1 -0
  203. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +21 -1
  204. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator.js +10 -0
  205. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +23 -2
  206. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +6 -2
  207. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +6 -0
  208. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +257 -0
  209. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/annotation-handler/annotation-handler-registration.test.js +164 -0
  210. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/annotation-handler/table-annotation-handler.test.js +293 -0
  211. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/annotation-handler/table-cell-annotation-handler.test.js +295 -0
  212. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/annotation-handler/table-head-cell-annotation-handler.test.js +415 -0
  213. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/caption-operation.test.js +99 -0
  214. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-annotation.test.js +89 -0
  215. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-caption-annotations.test.js +79 -0
  216. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-cell-annotation.test.js +128 -0
  217. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-dto.test.js +517 -0
  218. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-element-to-dto-strategies.test.js +1450 -0
  219. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-test-utils.js +172 -0
  220. package/dist/collection/components/vega-rich-text-editor/test/spec-utils.js +5 -2
  221. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.css +4 -0
  222. package/dist/collection/global/scripts/before-vega-load.js +2 -0
  223. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +2 -0
  224. package/dist/collection/utils/spec-utils.js +4 -3
  225. package/dist/esm/align-left-7f959adf.js +17 -0
  226. package/dist/esm/{app-globals-949d2e18.js → app-globals-8b873b6f.js} +7 -6
  227. package/dist/esm/{child-nodes-event-prevent-slimmer-e6f98de5.js → child-nodes-event-prevent-slimmer-a6afdb1e.js} +1 -1
  228. package/dist/esm/{code-block-666674d7.js → code-block-76b29be1.js} +37 -6
  229. package/dist/esm/{component-value-history-controller-slimmer.abstract-171dda08.js → component-value-history-controller-slimmer.abstract-e1b0e163.js} +27 -6
  230. package/dist/esm/{dto-renderer-manager-49ae5d56.js → content-state-03f1d302.js} +32 -61
  231. package/dist/esm/{design-token-9b510e59.js → design-token-8fedb532.js} +1 -1
  232. package/dist/esm/{dom-node-subject-observer-factory-1aaa1159.js → dom-node-subject-observer-factory-e998eba4.js} +1 -1
  233. package/dist/esm/dto-renderer-manager-12bc9121.js +56 -0
  234. package/dist/esm/{element-appender-slimmer-b9890dcb.js → element-appender-slimmer-7b9326e2.js} +4 -4
  235. package/dist/esm/{event-emit-slimmer-2d791d0e.js → event-emit-slimmer-bbf6668c.js} +2 -2
  236. package/dist/esm/{form-field-controller-slimmer-257928c1.js → form-field-controller-slimmer-a0cff4d3.js} +3 -3
  237. package/dist/esm/{image-annotation-action-b3eea6a2.js → image-annotation-action-47cdc068.js} +3 -3
  238. package/dist/esm/index-090d31ca.js +4 -0
  239. package/dist/esm/{index-0d487fae.js → index-da7e5fe5.js} +2 -2
  240. package/dist/esm/index.js +17 -13
  241. package/dist/esm/{internal-vega-event-manager-fdee2a0a.js → internal-vega-event-manager-e799c54a.js} +1 -1
  242. package/dist/esm/{language-extension-b3f836d4.js → language-extension-de6e6caf.js} +2 -2
  243. package/dist/esm/loader.js +15 -10
  244. package/dist/esm/polyfills/core-js.js +0 -0
  245. package/dist/esm/polyfills/dom.js +0 -0
  246. package/dist/esm/polyfills/es5-html-element.js +0 -0
  247. package/dist/esm/polyfills/index.js +0 -0
  248. package/dist/esm/polyfills/system.js +0 -0
  249. package/dist/esm/{public-rules-b164e40e.js → public-rules-c48cc5c9.js} +5 -5
  250. package/dist/esm/{range-9cc1422b.js → range-af6150a8.js} +1 -1
  251. package/dist/esm/{responsive-format-facade-94897ae8.js → responsive-format-facade-16da4623.js} +3 -3
  252. package/dist/esm/{rich-text-editor-required-rule-2131f21c.js → rich-text-editor-required-rule-7255832e.js} +1 -1
  253. package/dist/esm/{string-input-formatter-slimmer-3a42d9b8.js → string-input-formatter-slimmer-82f85b0b.js} +3 -3
  254. package/dist/esm/{style-formatter-bb5aec96.js → style-formatter-6ca58f6b.js} +1 -1
  255. package/dist/esm/styles.constants-0dd6f7fa.js +1277 -0
  256. package/dist/esm/{sub-state-notify-slimmer-71b9bbd5.js → sub-state-notify-slimmer-4060c333.js} +2 -2
  257. package/dist/esm/{sub-state-observer-slimmer-41a1b380.js → sub-state-observer-slimmer-bfa5e63e.js} +2 -2
  258. package/dist/esm/table-extension-c83b7a56.js +5998 -0
  259. package/dist/esm/vega-accordion.entry.js +13 -9
  260. package/dist/esm/vega-app-header-button.entry.js +14 -10
  261. package/dist/esm/vega-banner.entry.js +3 -3
  262. package/dist/esm/vega-box.entry.js +13 -9
  263. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  264. package/dist/esm/vega-button-circle.entry.js +14 -10
  265. package/dist/esm/vega-button-group_2.entry.js +7 -7
  266. package/dist/esm/vega-button-link.entry.js +4 -4
  267. package/dist/esm/vega-button.entry.js +13 -9
  268. package/dist/esm/vega-calendar_4.entry.js +7 -7
  269. package/dist/esm/vega-card.entry.js +12 -8
  270. package/dist/esm/vega-carousel.entry.js +12 -8
  271. package/dist/esm/vega-checkbox_2.entry.js +7 -7
  272. package/dist/esm/vega-chip.entry.js +14 -10
  273. package/dist/esm/vega-code-block.entry.js +8 -8
  274. package/dist/esm/vega-color-picker.entry.js +6 -6
  275. package/dist/esm/vega-combo-box.entry.js +7 -7
  276. package/dist/esm/vega-date-picker_2.entry.js +19 -15
  277. package/dist/esm/vega-dialog_2.entry.js +14 -10
  278. package/dist/esm/vega-divider.entry.js +12 -8
  279. package/dist/esm/vega-dropdown_5.entry.js +28 -15
  280. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  281. package/dist/esm/vega-field-label.entry.js +3 -3
  282. package/dist/esm/vega-file-uploader.entry.js +6 -6
  283. package/dist/esm/vega-flag-icon.entry.js +12 -8
  284. package/dist/esm/vega-flex.entry.js +13 -9
  285. package/dist/esm/vega-font.entry.js +12 -8
  286. package/dist/esm/vega-form.entry.js +8 -8
  287. package/dist/esm/vega-grid.entry.js +12 -8
  288. package/dist/esm/vega-icon.entry.js +12 -8
  289. package/dist/esm/vega-image-uploader.entry.js +15 -11
  290. package/dist/esm/vega-input-credit-card.entry.js +7 -7
  291. package/dist/esm/vega-input-numeric.entry.js +8 -8
  292. package/dist/esm/vega-input-passcode.entry.js +7 -7
  293. package/dist/esm/vega-input-phone-number.entry.js +14 -10
  294. package/dist/esm/vega-input-range.entry.js +7 -7
  295. package/dist/esm/vega-input-select.entry.js +185 -54
  296. package/dist/esm/vega-input.entry.js +8 -8
  297. package/dist/esm/{vega-internal-event-id-4a06d705.js → vega-internal-event-id-3edc9b4e.js} +3 -1
  298. package/dist/esm/vega-item-toggle.entry.js +3 -3
  299. package/dist/esm/vega-left-nav_5.entry.js +16 -12
  300. package/dist/esm/vega-loader-wrapper_2.entry.js +11 -7
  301. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  302. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  303. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  304. package/dist/esm/vega-pagination.entry.js +13 -9
  305. package/dist/esm/vega-popover_2.entry.js +14 -10
  306. package/dist/esm/vega-progress-tracker_2.entry.js +14 -10
  307. package/dist/esm/vega-radio_2.entry.js +7 -7
  308. package/dist/esm/vega-rich-text-content.entry.js +8 -7
  309. package/dist/esm/vega-rich-text-editor_4.entry.js +53 -37
  310. package/dist/esm/vega-rich-text-table-properties_3.entry.js +1307 -0
  311. package/dist/esm/vega-segment-control.entry.js +3 -3
  312. package/dist/esm/vega-selection-chip_2.entry.js +16 -12
  313. package/dist/esm/vega-selection-tile_2.entry.js +8 -8
  314. package/dist/esm/vega-sidenav_3.entry.js +14 -10
  315. package/dist/esm/vega-signature-capture.entry.js +15 -11
  316. package/dist/esm/vega-stepper.entry.js +7 -7
  317. package/dist/esm/vega-tab-group_2.entry.js +4 -4
  318. package/dist/esm/vega-table_11.entry.js +14 -11
  319. package/dist/esm/vega-textarea.entry.js +7 -7
  320. package/dist/esm/vega-time-picker_2.entry.js +16 -12
  321. package/dist/esm/vega-toggle-switch.entry.js +6 -6
  322. package/dist/esm/vega-tooltip_2.entry.js +12 -8
  323. package/dist/esm/vega.js +15 -10
  324. package/dist/sri/vega-sri-manifest.json +696 -296
  325. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +1 -0
  326. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +8 -1
  327. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.d.ts +29 -0
  328. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +1 -0
  329. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -0
  330. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +1 -1
  331. package/dist/types/components/vega-input-select/types.d.ts +5 -0
  332. package/dist/types/components/vega-input-select/vega-input-select.d.ts +12 -4
  333. package/dist/types/components/vega-popover/slimmers/controllers/vega-popover-appender-controller.d.ts +1 -0
  334. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy.abstract.d.ts +7 -0
  335. package/dist/types/components/vega-rich-text-editor/dto/annotations/annotation.abstract.d.ts +2 -5
  336. package/dist/types/components/vega-rich-text-editor/dto/annotations/block-annotation.abstract.d.ts +3 -3
  337. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +10 -6
  338. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +8 -1
  339. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +15 -2
  340. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-children-remove-interceptor.d.ts +25 -0
  341. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-content-delete-interceptor.d.ts +20 -0
  342. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-row-insert-interceptor.d.ts +19 -0
  343. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-block-strategy.d.ts +14 -0
  344. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-column-strategy.d.ts +31 -0
  345. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-row-strategy.d.ts +28 -0
  346. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-block-strategy.d.ts +27 -0
  347. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-column-strategy.d.ts +19 -0
  348. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-row-strategy.d.ts +27 -0
  349. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/select-table-column-strategy.d.ts +12 -0
  350. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/table-column-strategy.abstract.d.ts +20 -0
  351. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-row-strategy.d.ts +41 -0
  352. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-table-column-strategy.d.ts +45 -0
  353. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/update-table-cell-properties-strategy.d.ts +13 -0
  354. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/update-table-properties-strategy.d.ts +12 -0
  355. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/delete-table-block-action.d.ts +12 -0
  356. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/delete-table-column-action.d.ts +15 -0
  357. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/delete-table-row-action.d.ts +17 -0
  358. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/insert-table-block-action.d.ts +20 -0
  359. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/insert-table-column-action.d.ts +23 -0
  360. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/insert-table-row-action.d.ts +23 -0
  361. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/select-table-column-action.d.ts +18 -0
  362. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-annotations-action.d.ts +16 -0
  363. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-caption-action.d.ts +14 -0
  364. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-cell-annotations-action.d.ts +14 -0
  365. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-head-cell-annotations-action.d.ts +15 -0
  366. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/toggle-header-row-action.d.ts +12 -0
  367. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/toggle-header-table-column-action.d.ts +16 -0
  368. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/update-table-properties-action.d.ts +18 -0
  369. package/dist/types/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler-base.d.ts +43 -0
  370. package/dist/types/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler.d.ts +26 -0
  371. package/dist/types/components/vega-rich-text-editor/extensions/table/annotation-handler/table-cell-annotation-handler.d.ts +42 -0
  372. package/dist/types/components/vega-rich-text-editor/extensions/table/annotation-handler/table-head-cell-annotation-handler.d.ts +13 -0
  373. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.d.ts +64 -0
  374. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.d.ts +26 -0
  375. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.d.ts +67 -0
  376. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-head-cell-annotation.d.ts +22 -0
  377. package/dist/types/components/vega-rich-text-editor/extensions/table/constants/styles.constants.d.ts +3 -0
  378. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +79 -0
  379. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-body-block.d.ts +42 -0
  380. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.d.ts +41 -0
  381. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.d.ts +45 -0
  382. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-block.d.ts +42 -0
  383. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.d.ts +34 -0
  384. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-row-block.d.ts +44 -0
  385. package/dist/types/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/caption-to-caption-block-strategy.d.ts +29 -0
  386. package/dist/types/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/table-to-table-block-strategy.d.ts +26 -0
  387. package/dist/types/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/tbody-to-table-body-block-strategy.d.ts +26 -0
  388. package/dist/types/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/td-to-table-cell-block-strategy.d.ts +27 -0
  389. package/dist/types/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/thead-to-table-head-block-strategy.d.ts +26 -0
  390. package/dist/types/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/tr-to-table-row-block-strategy.d.ts +26 -0
  391. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-body-renderer.d.ts +12 -0
  392. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.d.ts +13 -0
  393. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.d.ts +37 -0
  394. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +88 -0
  395. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-head-cell-renderer.d.ts +12 -0
  396. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-head-renderer.d.ts +12 -0
  397. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +61 -0
  398. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-row-renderer.d.ts +12 -0
  399. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +66 -0
  400. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/caption-operation.d.ts +36 -0
  401. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties-cancel-event-handler.d.ts +17 -0
  402. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties-change-event-handler.d.ts +15 -0
  403. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties-save-event-handler.d.ts +17 -0
  404. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/cell-properties.d.ts +62 -0
  405. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/column-operation.d.ts +55 -0
  406. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/row-operation.d.ts +61 -0
  407. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/setting-event-handler.abstract.d.ts +47 -0
  408. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties-cancel-event-handler.d.ts +19 -0
  409. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties-change-event-handler.d.ts +17 -0
  410. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties-save-event-handler.d.ts +17 -0
  411. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/table-properties.d.ts +33 -0
  412. package/dist/types/components/vega-rich-text-editor/extensions/table/table-extension.d.ts +36 -0
  413. package/dist/types/components/vega-rich-text-editor/extensions/table/table-icon.d.ts +3 -0
  414. package/dist/types/components/vega-rich-text-editor/extensions/table/table-selection.d.ts +149 -0
  415. package/dist/types/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.d.ts +86 -0
  416. package/dist/types/components/vega-rich-text-editor/extensions/table/utils/utils.d.ts +53 -0
  417. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/align-bottom.d.ts +3 -0
  418. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/align-middle.d.ts +3 -0
  419. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/align-top.d.ts +3 -0
  420. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/objects-align-center-horizontal.d.ts +3 -0
  421. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/objects-align-left.d.ts +3 -0
  422. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/assets/objects-align-right.d.ts +3 -0
  423. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/controllers/vega-rich-text-table-properties-color-controller.d.ts +14 -0
  424. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-cell-properties-form-field-renderer.d.ts +49 -0
  425. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.d.ts +99 -0
  426. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-field-renderer.d.ts +27 -0
  427. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-renderer.d.ts +33 -0
  428. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.d.ts +57 -0
  429. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/controllers/selection-widget-keyboard-controller.d.ts +15 -0
  430. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/renderers/selection-widget-renderer.d.ts +31 -0
  431. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/vega-rich-text-table-selection-widget.d.ts +27 -0
  432. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/assets/icon.d.ts +2 -0
  433. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.d.ts +11 -0
  434. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.d.ts +11 -0
  435. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.d.ts +28 -0
  436. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.d.ts +36 -0
  437. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.d.ts +11 -0
  438. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.d.ts +36 -0
  439. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.d.ts +11 -0
  440. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.d.ts +55 -0
  441. package/dist/types/components/vega-rich-text-editor/interface.d.ts +39 -2
  442. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
  443. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +4 -0
  444. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator.d.ts +9 -0
  445. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +19 -6
  446. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +1 -0
  447. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
  448. package/dist/types/components/vega-rich-text-editor/test/extensions/table/annotation-handler/annotation-handler-registration.test.d.ts +1 -0
  449. package/dist/types/components/vega-rich-text-editor/test/extensions/table/annotation-handler/table-annotation-handler.test.d.ts +1 -0
  450. package/dist/types/components/vega-rich-text-editor/test/extensions/table/annotation-handler/table-cell-annotation-handler.test.d.ts +1 -0
  451. package/dist/types/components/vega-rich-text-editor/test/extensions/table/annotation-handler/table-head-cell-annotation-handler.test.d.ts +1 -0
  452. package/dist/types/components/vega-rich-text-editor/test/extensions/table/caption-operation.test.d.ts +1 -0
  453. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-annotation.test.d.ts +1 -0
  454. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-caption-annotations.test.d.ts +1 -0
  455. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-cell-annotation.test.d.ts +1 -0
  456. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-dto.test.d.ts +1 -0
  457. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-element-to-dto-strategies.test.d.ts +1 -0
  458. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-test-utils.d.ts +11 -0
  459. package/dist/types/components/vega-rich-text-editor/test/spec-utils.d.ts +4 -0
  460. package/dist/types/components.d.ts +155 -6
  461. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +2 -0
  462. package/dist/types/types/components.type.d.ts +5 -0
  463. package/dist/types/utils/spec-utils.d.ts +2 -3
  464. package/dist/vega/app-globals-955a2b3b.js +427 -0
  465. package/dist/vega/child-nodes-event-prevent-slimmer-a604a6dd.js +156 -0
  466. package/dist/vega/design-token-56b26205.js +402 -0
  467. package/dist/vega/element-appender-slimmer-8355fb28.js +1508 -0
  468. package/dist/vega/event-emit-slimmer-7a14f5e9.js +265 -0
  469. package/dist/vega/index.esm.js +57 -1
  470. package/dist/vega/internal-vega-event-manager-8c62c88e.js +458 -0
  471. package/dist/vega/p-068ee55e.entry.js +1 -0
  472. package/dist/vega/p-088f4613.entry.js +1 -0
  473. package/dist/vega/{p-3162a7fd.entry.js → p-08b4d097.entry.js} +1 -1
  474. package/dist/vega/p-0e4cecbd.entry.js +1 -0
  475. package/dist/vega/p-10ffb765.js +1 -0
  476. package/dist/vega/{p-ead1da57.entry.js → p-12a97dad.entry.js} +1 -1
  477. package/dist/vega/p-151b1deb.js +1 -0
  478. package/dist/vega/{p-30e7544c.js → p-16af7681.js} +1 -1
  479. package/dist/vega/p-1b44db34.js +1 -0
  480. package/dist/vega/p-1bda4016.entry.js +1 -0
  481. package/dist/vega/{p-6e84e451.entry.js → p-1f4a814e.entry.js} +1 -1
  482. package/dist/vega/{p-2ae5ad30.entry.js → p-206245d2.entry.js} +1 -1
  483. package/dist/vega/p-213be5e9.entry.js +1 -0
  484. package/dist/vega/{p-7a8c4cf8.entry.js → p-216f3436.entry.js} +1 -1
  485. package/dist/vega/p-224a4f3f.entry.js +1 -0
  486. package/dist/vega/p-22c76be7.entry.js +1 -0
  487. package/dist/vega/p-22da15d7.entry.js +1 -0
  488. package/dist/vega/{p-2409a475.entry.js → p-24766b9d.entry.js} +1 -1
  489. package/dist/vega/p-29a9c8f5.entry.js +1 -0
  490. package/dist/vega/p-34a994a1.entry.js +1 -0
  491. package/dist/vega/p-39d56e3d.js +1 -0
  492. package/dist/vega/{p-c7194674.entry.js → p-3bc7e162.entry.js} +1 -1
  493. package/dist/vega/p-40660c09.js +1 -0
  494. package/dist/vega/p-50a506ea.entry.js +1 -0
  495. package/dist/vega/{p-f2c8c363.js → p-5367eaab.js} +1 -1
  496. package/dist/vega/p-550ce71a.entry.js +1 -0
  497. package/dist/vega/p-5d2704c1.entry.js +1 -0
  498. package/dist/vega/p-5f377954.js +1 -1
  499. package/dist/vega/p-61ae4e9c.entry.js +1 -0
  500. package/dist/vega/{p-2971b17a.js → p-63246470.js} +1 -1
  501. package/dist/vega/p-6665d083.entry.js +1 -0
  502. package/dist/vega/p-69af3422.entry.js +1 -0
  503. package/dist/vega/p-6d9731c1.entry.js +1 -0
  504. package/dist/vega/p-6f08e3e1.entry.js +1 -0
  505. package/dist/vega/p-7172332a.entry.js +1 -0
  506. package/dist/vega/{p-9d8e2939.entry.js → p-73688c4e.entry.js} +1 -1
  507. package/dist/vega/p-73689ec0.entry.js +1 -0
  508. package/dist/vega/{p-9fb71d8c.entry.js → p-780cbfb0.entry.js} +1 -1
  509. package/dist/vega/p-79e8236a.entry.js +1 -0
  510. package/dist/vega/{p-8fba7f9a.js → p-7ca9f6f1.js} +1 -1
  511. package/dist/vega/{p-f6cd7a08.entry.js → p-813b2915.entry.js} +1 -1
  512. package/dist/vega/{p-e88f2dc3.js → p-8162980c.js} +1 -1
  513. package/dist/vega/p-82ec9721.entry.js +1 -0
  514. package/dist/vega/{p-7f9acdf7.entry.js → p-86caa739.entry.js} +1 -1
  515. package/dist/vega/p-8a4d8139.entry.js +1 -0
  516. package/dist/vega/{p-be0b67b8.entry.js → p-8ac453cb.entry.js} +1 -1
  517. package/dist/vega/p-98b78c75.entry.js +1 -0
  518. package/dist/vega/{p-76e6c13a.js → p-99e3dcab.js} +1 -1
  519. package/dist/vega/{p-44bc9ea9.entry.js → p-9aac9879.entry.js} +1 -1
  520. package/dist/vega/p-a007b493.entry.js +1 -0
  521. package/dist/vega/p-a439e59b.entry.js +1 -0
  522. package/dist/vega/p-a4d0ab07.js +1 -0
  523. package/dist/vega/{p-f38a4be2.entry.js → p-a6e03df4.entry.js} +1 -1
  524. package/dist/vega/{p-4957f07a.entry.js → p-a924c1e2.entry.js} +1 -1
  525. package/dist/vega/p-ab0e013c.entry.js +1 -0
  526. package/dist/vega/p-abf871cd.entry.js +1 -0
  527. package/dist/vega/{p-9dfe2bbc.js → p-ac4bd1f8.js} +1 -1
  528. package/dist/vega/{p-3566ad76.js → p-b91c2c9d.js} +1 -1
  529. package/dist/vega/{p-184d8443.js → p-c00adad9.js} +1 -1
  530. package/dist/vega/{p-697eb0e1.js → p-c335088c.js} +1 -1
  531. package/dist/vega/{p-623c3911.entry.js → p-c3d388b5.entry.js} +1 -1
  532. package/dist/vega/p-c674b07c.js +1 -0
  533. package/dist/vega/p-c6d98c60.entry.js +1 -0
  534. package/dist/vega/p-c78fe943.js +1 -0
  535. package/dist/vega/{p-7f86b3c8.js → p-c8ad47c9.js} +1 -1
  536. package/dist/vega/{p-96797fee.entry.js → p-c9541fc2.entry.js} +1 -1
  537. package/dist/vega/{p-a58bdbad.entry.js → p-d07d04e0.entry.js} +1 -1
  538. package/dist/vega/p-d1349401.entry.js +1 -0
  539. package/dist/vega/{p-c0036e71.js → p-d2033624.js} +1 -1
  540. package/dist/vega/{p-74a77cad.js → p-d466baf7.js} +1 -1
  541. package/dist/vega/p-d4719c14.entry.js +1 -0
  542. package/dist/vega/{p-82dbff54.entry.js → p-d4e35d2e.entry.js} +1 -1
  543. package/dist/vega/p-d55365b9.entry.js +1 -0
  544. package/dist/vega/p-db482ee1.js +1 -0
  545. package/dist/vega/p-dc2813eb.entry.js +1 -0
  546. package/dist/vega/{p-676eaf3f.entry.js → p-dd5d917b.entry.js} +1 -1
  547. package/dist/vega/{p-5be29f14.js → p-ddf81373.js} +1 -1
  548. package/dist/vega/p-e0cefd90.entry.js +1 -0
  549. package/dist/vega/p-e13c163c.entry.js +1 -0
  550. package/dist/vega/{p-a5d4d168.entry.js → p-e788598a.entry.js} +1 -1
  551. package/dist/vega/{p-6b9d2996.entry.js → p-e797bf8d.entry.js} +1 -1
  552. package/dist/vega/p-f4b46f6b.entry.js +1 -0
  553. package/dist/vega/p-f519cdc3.entry.js +1 -0
  554. package/dist/vega/{p-9b673fd4.entry.js → p-f6eab527.entry.js} +1 -1
  555. package/dist/vega/{p-c7f292dd.entry.js → p-fa34ace2.entry.js} +1 -1
  556. package/dist/vega/p-fbfb4c70.entry.js +1 -0
  557. package/dist/vega/p-fcabf0dc.js +1 -0
  558. package/dist/vega/{p-8bd496b4.js → p-ff57c872.js} +1 -1
  559. package/dist/vega/p-ff921d10.js +1 -0
  560. package/dist/vega/p-ff9a0e6e.js +1 -0
  561. package/dist/vega/public-api-8dd022fa.js +6043 -0
  562. package/dist/vega/public-api-baaf7593.js +4 -0
  563. package/dist/vega/responsive-format-facade-98596535.js +913 -0
  564. package/dist/vega/style-formatter-0ae102e9.js +32 -0
  565. package/dist/vega/vega-accordion.entry.js +291 -0
  566. package/dist/vega/vega-app-header-button.entry.js +452 -0
  567. package/dist/vega/vega-banner.entry.js +351 -0
  568. package/dist/vega/vega-box.entry.js +353 -0
  569. package/dist/vega/vega-breadcrumb.entry.js +249 -0
  570. package/dist/vega/vega-button-circle.entry.js +245 -0
  571. package/dist/vega/vega-button-group.entry.js +203 -0
  572. package/dist/vega/vega-button-link.entry.js +226 -0
  573. package/dist/vega/vega-button.entry.js +259 -0
  574. package/dist/vega/vega-calendar.entry.js +3884 -0
  575. package/dist/vega/vega-card.entry.js +226 -0
  576. package/dist/vega/vega-carousel.entry.js +540 -0
  577. package/dist/vega/vega-checkbox-group.entry.js +266 -0
  578. package/dist/vega/vega-checkbox.entry.js +335 -0
  579. package/dist/vega/vega-chip.entry.js +321 -0
  580. package/dist/vega/vega-code-block.entry.js +4372 -0
  581. package/dist/vega/vega-color-picker.entry.js +258 -0
  582. package/dist/vega/vega-combo-box.entry.js +748 -0
  583. package/dist/vega/vega-date-picker-calendar.entry.js +1381 -0
  584. package/dist/vega/vega-date-picker.entry.js +1646 -0
  585. package/dist/vega/vega-dialog.entry.js +158 -0
  586. package/dist/vega/vega-divider.entry.js +179 -0
  587. package/dist/vega/vega-dropdown-content-box.entry.js +57 -0
  588. package/dist/vega/vega-dropdown-item.entry.js +352 -0
  589. package/dist/vega/vega-dropdown.entry.js +2136 -0
  590. package/dist/vega/vega-field-label.entry.js +182 -0
  591. package/dist/vega/vega-file-uploader.entry.js +751 -0
  592. package/dist/vega/vega-flag-icon.entry.js +216 -0
  593. package/dist/vega/vega-flex.entry.js +224 -0
  594. package/dist/vega/vega-font.entry.js +327 -0
  595. package/dist/vega/vega-form.entry.js +1008 -0
  596. package/dist/vega/vega-grid.entry.js +129 -0
  597. package/dist/vega/vega-icon.entry.js +256 -0
  598. package/dist/vega/vega-image-uploader.entry.js +977 -0
  599. package/dist/vega/vega-input-credit-card.entry.js +549 -0
  600. package/dist/vega/vega-input-numeric.entry.js +471 -0
  601. package/dist/vega/vega-input-passcode.entry.js +728 -0
  602. package/dist/vega/vega-input-phone-number.entry.js +9143 -0
  603. package/dist/vega/vega-input-range.entry.js +693 -0
  604. package/dist/vega/vega-input-select.entry.js +1268 -0
  605. package/dist/vega/vega-input.entry.js +1735 -0
  606. package/dist/vega/vega-item-toggle.entry.js +190 -0
  607. package/dist/vega/vega-left-nav-group.entry.js +433 -0
  608. package/dist/vega/vega-left-nav-link.entry.js +317 -0
  609. package/dist/vega/vega-left-nav-section.entry.js +97 -0
  610. package/dist/vega/vega-left-nav.entry.js +654 -0
  611. package/dist/vega/vega-loading-indicator.entry.js +209 -0
  612. package/dist/vega/vega-modal.entry.js +1287 -0
  613. package/dist/vega/vega-nav-card.entry.js +163 -0
  614. package/dist/vega/vega-pagination-page-selector-mobile.entry.js +214 -0
  615. package/dist/vega/vega-pagination.entry.js +629 -0
  616. package/dist/vega/vega-popover-content-box.entry.js +101 -0
  617. package/dist/vega/vega-popover.entry.js +362 -0
  618. package/dist/vega/vega-progress-tracker.entry.js +757 -0
  619. package/dist/vega/vega-radio-group.entry.js +496 -0
  620. package/dist/vega/vega-radio.entry.js +272 -0
  621. package/dist/vega/vega-rich-text-editor-toolbar-button.entry.js +169 -0
  622. package/dist/vega/vega-rich-text-editor.entry.js +4107 -0
  623. package/dist/vega/vega-rich-text-image-editor.entry.js +216 -0
  624. package/dist/vega/vega-rich-text-link-editor.entry.js +238 -0
  625. package/dist/vega/vega-rich-text-table-properties.entry.js +641 -0
  626. package/dist/vega/vega-rich-text-table-setting.entry.js +525 -0
  627. package/dist/vega/vega-segment-control.entry.js +350 -0
  628. package/dist/vega/vega-selection-chip-group.entry.js +447 -0
  629. package/dist/vega/vega-selection-chip.entry.js +443 -0
  630. package/dist/vega/vega-selection-tile-group.entry.js +438 -0
  631. package/dist/vega/vega-selection-tile.entry.js +409 -0
  632. package/dist/vega/vega-sidenav-link.entry.js +160 -0
  633. package/dist/vega/vega-sidenav.entry.js +766 -0
  634. package/dist/vega/vega-signature-capture.entry.js +589 -0
  635. package/dist/vega/vega-stepper.entry.js +292 -0
  636. package/dist/vega/vega-tab-group-panel.entry.js +79 -0
  637. package/dist/vega/vega-tab-group.entry.js +1281 -0
  638. package/dist/vega/vega-table-body.entry.js +48 -0
  639. package/dist/vega/vega-table-cell.entry.js +243 -0
  640. package/dist/vega/vega-table-foot-cell.entry.js +169 -0
  641. package/dist/vega/vega-table-foot-row.entry.js +219 -0
  642. package/dist/vega/vega-table-foot.entry.js +136 -0
  643. package/dist/vega/vega-table-head-cell.entry.js +339 -0
  644. package/dist/vega/vega-table-head-row.entry.js +416 -0
  645. package/dist/vega/vega-table-head.entry.js +113 -0
  646. package/dist/vega/vega-table-row.entry.js +666 -0
  647. package/dist/vega/vega-table.entry.js +3707 -0
  648. package/dist/vega/vega-textarea.entry.js +329 -0
  649. package/dist/vega/vega-time-picker.entry.js +2039 -0
  650. package/dist/vega/vega-toggle-switch.entry.js +194 -0
  651. package/dist/vega/vega-tooltip.entry.js +339 -0
  652. package/dist/vega/vega.esm.js +172 -1
  653. package/package.json +1 -1
  654. package/style/vega-icons.css +17266 -0
  655. package/dist/cjs/function-extension-78ec27e0.js +0 -2927
  656. package/dist/esm/function-extension-8b06c6f8.js +0 -2908
  657. package/dist/vega/p-03e16a05.entry.js +0 -1
  658. package/dist/vega/p-0ad59141.entry.js +0 -1
  659. package/dist/vega/p-0ba0f83d.entry.js +0 -1
  660. package/dist/vega/p-114c6df8.entry.js +0 -1
  661. package/dist/vega/p-1e019406.js +0 -1
  662. package/dist/vega/p-1faef917.entry.js +0 -1
  663. package/dist/vega/p-21cba83b.entry.js +0 -1
  664. package/dist/vega/p-21e7808a.entry.js +0 -1
  665. package/dist/vega/p-2b20a215.entry.js +0 -1
  666. package/dist/vega/p-2bc4f7d9.entry.js +0 -1
  667. package/dist/vega/p-2e0deef6.js +0 -1
  668. package/dist/vega/p-2f592078.entry.js +0 -1
  669. package/dist/vega/p-38ed3d59.entry.js +0 -1
  670. package/dist/vega/p-3938880f.entry.js +0 -1
  671. package/dist/vega/p-398220f5.entry.js +0 -1
  672. package/dist/vega/p-40561fa0.entry.js +0 -1
  673. package/dist/vega/p-42a283b5.entry.js +0 -1
  674. package/dist/vega/p-524ffc12.entry.js +0 -1
  675. package/dist/vega/p-59fa3f68.js +0 -1
  676. package/dist/vega/p-5b71c85e.js +0 -1
  677. package/dist/vega/p-5f09868d.entry.js +0 -1
  678. package/dist/vega/p-6e701542.entry.js +0 -1
  679. package/dist/vega/p-70b2906a.entry.js +0 -1
  680. package/dist/vega/p-721b2981.entry.js +0 -1
  681. package/dist/vega/p-75d91ee9.entry.js +0 -1
  682. package/dist/vega/p-79a544d6.js +0 -1
  683. package/dist/vega/p-7b337fd4.entry.js +0 -1
  684. package/dist/vega/p-7be3aefc.entry.js +0 -1
  685. package/dist/vega/p-94cf46ca.entry.js +0 -1
  686. package/dist/vega/p-a125cfec.entry.js +0 -1
  687. package/dist/vega/p-a3c4fa30.entry.js +0 -1
  688. package/dist/vega/p-aab0deab.js +0 -1
  689. package/dist/vega/p-adc615a4.entry.js +0 -1
  690. package/dist/vega/p-b007d0d5.entry.js +0 -1
  691. package/dist/vega/p-b406a846.entry.js +0 -1
  692. package/dist/vega/p-bd60c72e.entry.js +0 -1
  693. package/dist/vega/p-bf61d136.js +0 -1
  694. package/dist/vega/p-c2ac6b47.entry.js +0 -1
  695. package/dist/vega/p-c4700277.entry.js +0 -1
  696. package/dist/vega/p-ce2ffff7.js +0 -1
  697. package/dist/vega/p-d01fe83d.entry.js +0 -1
  698. package/dist/vega/p-db62b038.entry.js +0 -1
  699. package/dist/vega/p-dd72ad9e.js +0 -1
  700. package/dist/vega/p-e39aa2ea.entry.js +0 -1
  701. package/dist/vega/p-f3831dc9.entry.js +0 -1
  702. package/dist/vega/p-f427d88c.entry.js +0 -1
@@ -0,0 +1,371 @@
1
+ import { RTETableCellBlock } from './dto/table-cell-block';
2
+ import { RTETableBlock } from './dto/table-block';
3
+ import { RTENode } from '../../dto/nodes/node.abstract';
4
+ import stateEntityRenderingRegistry from '../../slimmers/controllers/state-entity-rendering-registry';
5
+ import { debounce } from '../../../../utils/timer';
6
+ import { tryGetDocument } from '../../../../utils/try-get-document';
7
+ import { findParent } from '../../../../utils/ui';
8
+ import { getParentBlockByType } from './utils/utils';
9
+ import { isNonNullable } from '../../../../types/type-guard';
10
+ import changeManager from '../../../../helpers/change-manager/change-manager';
11
+ import DomNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
12
+ import { VegaInternalRTEExtensionTableCellSelectionChange } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
13
+ /**
14
+ * Table selection helper used for mouse drag selection of cells.
15
+ */
16
+ export class RTETableSelection {
17
+ constructor() {
18
+ /**
19
+ * Indicates whether the user is currently performing a drag selection.
20
+ */
21
+ this.dragging = false;
22
+ /**
23
+ * Anchor cell where the drag selection started.
24
+ */
25
+ this.anchorCell = null;
26
+ /**
27
+ * Collection of currently selected cells.
28
+ */
29
+ this.selectedCells = new Set();
30
+ this.syncRTESelectionWithDebounce = debounce(this.syncRTESelection, 100, this);
31
+ this.handleSelectionChangeWithDebounce = debounce(this.handleSelectionChange, 10, this);
32
+ /**
33
+ * Recursively filter and collect selected table cell blocks within the given node.
34
+ *
35
+ * @param {Range} range - The current selection range.
36
+ * @param {Node} node - The current node to check for selection.
37
+ * @returns {RTETableCellBlock[]} A list of selected table cell blocks.
38
+ */
39
+ this.filterSelectedCell = (range, node) => {
40
+ const selectedCells = new Set();
41
+ if (range.intersectsNode(node)) {
42
+ if (node.nodeType === Node.TEXT_NODE) {
43
+ const focusedNodeDto = stateEntityRenderingRegistry.getEntityByDOM(node.parentElement);
44
+ if (focusedNodeDto) {
45
+ const cell = getParentBlockByType(focusedNodeDto.parent, RTETableCellBlock);
46
+ if (cell) {
47
+ selectedCells.add(cell);
48
+ return Array.from(selectedCells);
49
+ }
50
+ }
51
+ }
52
+ node.childNodes.forEach((child) => this.filterSelectedCell(range, child).forEach((cell) => {
53
+ selectedCells.add(cell);
54
+ }));
55
+ }
56
+ return Array.from(selectedCells);
57
+ };
58
+ /**
59
+ * Update the styles of the selected cells.
60
+ *
61
+ * @param {RTETableCellBlock} cell - The cell to update style for.
62
+ * @param {number} total - The total number of selected cells.
63
+ */
64
+ this.updateSelectedStyles = (cell, total) => {
65
+ const selectedClass = total === 1 ? 'v-rte-table-cell-focused' : 'v-rte-table-cell-selected';
66
+ const cellRef = stateEntityRenderingRegistry.getDOMByEntity(cell);
67
+ if (cellRef) {
68
+ cellRef.classList.add(selectedClass);
69
+ }
70
+ };
71
+ /**
72
+ * Handles the document mouse up event to finish drag selection.
73
+ */
74
+ this.handleDocMouseUp = () => {
75
+ this.endDrag();
76
+ const safeDocument = tryGetDocument();
77
+ if (safeDocument) {
78
+ safeDocument.removeEventListener('mouseup', this.handleDocMouseUp);
79
+ }
80
+ };
81
+ /**
82
+ * Resets the table selection when clicking outside the table.
83
+ */
84
+ this.handleContentClick = () => {
85
+ this.clearSelection();
86
+ const editorContent =
87
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
88
+ this.context.host.shadowRoot.querySelector('.rich-text-editor-container');
89
+ if (editorContent) {
90
+ editorContent.removeEventListener('mousedown', this.handleContentClick, true);
91
+ }
92
+ };
93
+ }
94
+ /**
95
+ * Compute all cells inside the rectangle defined by the start and end cells.
96
+ *
97
+ * Note: this only performs the calculation and does not modify the internal `selectedCells` set,
98
+ * so callers can decide how to apply the result.
99
+ *
100
+ * @param {RTETableCellBlock | RTETableHeadCellBlock} anchor - Drag start cell (anchor cell).
101
+ * @param {RTETableCellBlock | RTETableHeadCellBlock} focus - Current drag focus cell.
102
+ * @returns {(RTETableCellBlock | RTETableHeadCellBlock)[]} All cells in the rectangular selection area.
103
+ */
104
+ static computeRectRange(anchor, focus) {
105
+ // Collect all row blocks (from both head and body) under the same table,
106
+ // then compute the rectangle over this flattened row list.
107
+ const anchorRow = anchor.parent;
108
+ const focusRow = focus.parent;
109
+ const anchorSection = anchorRow.parent;
110
+ const focusSection = focusRow.parent;
111
+ const anchorTable = anchorSection.parent;
112
+ const focusTable = focusSection.parent;
113
+ // If they are not in the same table at all, just return empty.
114
+ if (anchorTable !== focusTable) {
115
+ return [];
116
+ }
117
+ // Flatten head rows (if any) + body rows into a single ordered list.
118
+ const allRows = [];
119
+ const tableChildren = anchorTable.children;
120
+ tableChildren.forEach((section) => {
121
+ section.children.forEach((row) => allRows.push(row));
122
+ });
123
+ const anchorRowIndex = allRows.indexOf(anchorRow);
124
+ const focusRowIndex = allRows.indexOf(focusRow);
125
+ const startRow = Math.min(anchorRowIndex, focusRowIndex);
126
+ const endRow = Math.max(anchorRowIndex, focusRowIndex);
127
+ const anchorColIndex = anchorRow.children.indexOf(anchor);
128
+ const focusColIndex = focusRow.children.indexOf(focus);
129
+ const startCol = Math.min(anchorColIndex, focusColIndex);
130
+ const endCol = Math.max(anchorColIndex, focusColIndex);
131
+ const result = [];
132
+ for (let r = startRow; r <= endRow; r++) {
133
+ const row = allRows[r];
134
+ for (let c = startCol; c <= endCol; c++) {
135
+ const cell = row.children[c];
136
+ if (cell) {
137
+ result.push(cell);
138
+ }
139
+ }
140
+ }
141
+ return result;
142
+ }
143
+ /**
144
+ * Clean up event listeners.
145
+ */
146
+ destroy() {
147
+ this.removeSelectionChangeListener();
148
+ }
149
+ /**
150
+ * Inject the extension context and set up selection change listener.
151
+ *
152
+ * @param {RTEExtensionContext} context - The extension context.
153
+ */
154
+ init(context) {
155
+ this.context = context;
156
+ this.addSelectionChangeListener();
157
+ }
158
+ /**
159
+ * Set the selected cells to the given list, replacing any existing selection.
160
+ *
161
+ * @param {RTETableCellBlock} cells - The cells to select.
162
+ */
163
+ setSelectedCells(cells) {
164
+ const firstCell = Array.from(this.selectedCells)[0] || cells[0];
165
+ this.updateSelectedCells(cells);
166
+ this.emitCellSelectionChange(firstCell, cells);
167
+ }
168
+ /**
169
+ * Get all currently selected cells.
170
+ *
171
+ * @returns {(RTETableCellBlock | RTETableHeadCellBlock)[]} A flat list of selected cells.
172
+ */
173
+ getSelectedCells() {
174
+ return Array.from(this.selectedCells);
175
+ }
176
+ /**
177
+ * Handle mouse down on a cell: start drag selection from the given cell.
178
+ *
179
+ * @param {HTMLElement} cellRef - The cell where the drag starts.
180
+ */
181
+ focusCell(cellRef) {
182
+ const cellBlock = stateEntityRenderingRegistry.getEntityByDOM(cellRef);
183
+ if (cellBlock) {
184
+ this.anchorCell = cellBlock;
185
+ this.setSelectedCells([cellBlock]);
186
+ this.addListeners();
187
+ }
188
+ }
189
+ /**
190
+ * Handle drag over a cell (typically called on `mouseenter` while dragging).
191
+ * Maintains a rectangular selection between the anchor cell and the current cell.
192
+ *
193
+ * @param {RTETableCellBlock | RTETableHeadCellBlock} cell - The cell currently under the drag.
194
+ */
195
+ dragOver(cell) {
196
+ if (!this.anchorCell) {
197
+ return;
198
+ }
199
+ // Always compute the rectangle strictly from the original anchorCell
200
+ // (the cell where startDrag was first called) to the current cell.
201
+ const rectCells = RTETableSelection.computeRectRange(this.anchorCell, cell);
202
+ if (rectCells.length > 1) {
203
+ this.startDrag();
204
+ }
205
+ if (this.dragging) {
206
+ this.preventTextSelection(rectCells);
207
+ this.updateSelectedCells(rectCells, { debounceSync: true });
208
+ }
209
+ }
210
+ /**
211
+ * Handle mouse up: stop drag selection.
212
+ */
213
+ endDrag() {
214
+ this.dragging = false;
215
+ // Reset anchor after drag ends so the next drag can start from a new cell.
216
+ this.anchorCell = null;
217
+ }
218
+ /**
219
+ * Emit table-cell selection change notify for the owning table.
220
+ *
221
+ * @param {RTETableCellBlock} firstCell - First cell of the table.
222
+ * @param {RTETableCellBlock[]} cells - The current selected table cells.
223
+ */
224
+ emitCellSelectionChange(firstCell, cells) {
225
+ const table = getParentBlockByType(firstCell, RTETableBlock);
226
+ if (table) {
227
+ const tableRef = stateEntityRenderingRegistry.getDOMByEntity(table);
228
+ if (tableRef) {
229
+ changeManager.notify(DomNodeSubjectFactory.getSubject(tableRef, VegaInternalRTEExtensionTableCellSelectionChange), {
230
+ host: tableRef,
231
+ detail: cells,
232
+ });
233
+ }
234
+ }
235
+ }
236
+ /**
237
+ * Clear the current selection state without changing the drag flag.
238
+ */
239
+ clearSelection() {
240
+ this.selectedCells.forEach((cell) => {
241
+ const cellRef = stateEntityRenderingRegistry.getDOMByEntity(cell);
242
+ if (cellRef) {
243
+ cellRef.classList.remove('v-rte-table-cell-selected', 'v-rte-table-cell-focused');
244
+ }
245
+ });
246
+ this.selectedCells.clear();
247
+ }
248
+ /**
249
+ * Add a selectionchange listener to the document to handle cell click selection.
250
+ */
251
+ addSelectionChangeListener() {
252
+ const safeDocument = tryGetDocument();
253
+ if (safeDocument) {
254
+ safeDocument.addEventListener('selectionchange', this.handleSelectionChangeWithDebounce);
255
+ }
256
+ }
257
+ /**
258
+ * Remove the selectionchange listener from the document.
259
+ */
260
+ removeSelectionChangeListener() {
261
+ const safeDocument = tryGetDocument();
262
+ if (safeDocument) {
263
+ safeDocument.removeEventListener('selectionchange', this.handleSelectionChangeWithDebounce);
264
+ }
265
+ }
266
+ /**
267
+ * Handle selection change events from the document for the cell click selection.
268
+ */
269
+ handleSelectionChange() {
270
+ if (this.dragging) {
271
+ this.syncRTESelectionWithDebounce();
272
+ return;
273
+ }
274
+ const selection = this.context.getSelection();
275
+ if (selection.rangeCount > 0) {
276
+ const range = selection.getRangeAt(0);
277
+ const commonAncestorContainer = range.commonAncestorContainer;
278
+ const rangeInTable = !!findParent(commonAncestorContainer, `table`);
279
+ if (rangeInTable) {
280
+ const selectedCells = this.filterSelectedCell(range, commonAncestorContainer);
281
+ this.setSelectedCells(selectedCells);
282
+ }
283
+ }
284
+ }
285
+ /**
286
+ * Mark the beginning of a drag operation.
287
+ */
288
+ startDrag() {
289
+ this.dragging = true;
290
+ }
291
+ /**
292
+ * Add the given cells to the current selection set.
293
+ *
294
+ * @param {RTETableCellBlock[]} cells - The cells to add to the selection.
295
+ * @param {{ debounceSync?: boolean }} [options] - Options for updating selection.
296
+ * @param {boolean} [options.debounceSync] - Whether to debounce the RTE selection sync.
297
+ */
298
+ updateSelectedCells(cells, { debounceSync } = {}) {
299
+ this.clearSelection();
300
+ cells.forEach((cell) => {
301
+ this.selectedCells.add(cell);
302
+ this.updateSelectedStyles(cell, cells.length);
303
+ });
304
+ if (debounceSync) {
305
+ this.syncRTESelectionWithDebounce();
306
+ }
307
+ else {
308
+ this.syncRTESelection();
309
+ }
310
+ }
311
+ /**
312
+ * Synchronizes the rich text editor selection with the selected table cells.
313
+ */
314
+ syncRTESelection() {
315
+ const cells = Array.from(this.selectedCells);
316
+ const nodes = cells
317
+ .flatMap((cell) => {
318
+ return cell.children.flatMap((block) => {
319
+ return block.children.flatMap((node) => {
320
+ // TODO: Nested table deletion will track in https://gethired.atlassian.net/browse/VD-7860
321
+ if (node instanceof RTENode) {
322
+ return node;
323
+ }
324
+ });
325
+ });
326
+ })
327
+ .filter(isNonNullable);
328
+ if (cells.length > 1) {
329
+ this.context.setSelectedNodes(nodes, {
330
+ startNode: nodes[0],
331
+ endNode: nodes[nodes.length - 1],
332
+ startOffset: 0,
333
+ endOffset: nodes[nodes.length - 1].getRangeEndOffset(),
334
+ });
335
+ }
336
+ }
337
+ /**
338
+ * Prevents text selection during drag operations.
339
+ *
340
+ * @param {RTETableCellBlock[]} selectedCells - The currently selected table cells.
341
+ */
342
+ preventTextSelection(selectedCells) {
343
+ const selection = this.context.getSelection();
344
+ selection.removeAllRanges();
345
+ if (selectedCells.length > 0) {
346
+ const startContainer = stateEntityRenderingRegistry.getDOMByEntity(selectedCells[0]);
347
+ if (startContainer) {
348
+ const newRange = new Range();
349
+ newRange.setStart(startContainer, 0);
350
+ newRange.setEnd(startContainer, 0);
351
+ selection.addRange(newRange);
352
+ }
353
+ }
354
+ }
355
+ /**
356
+ * Adds a mouse up listener to the document to finish drag selection.
357
+ *
358
+ */
359
+ addListeners() {
360
+ const safeDocument = tryGetDocument();
361
+ if (safeDocument) {
362
+ safeDocument.addEventListener('mouseup', this.handleDocMouseUp);
363
+ }
364
+ const editorContent =
365
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
366
+ this.context.host.shadowRoot.querySelector('.rich-text-editor-container');
367
+ if (editorContent) {
368
+ editorContent.addEventListener('mousedown', this.handleContentClick, true);
369
+ }
370
+ }
371
+ }
@@ -0,0 +1,234 @@
1
+ import { VegaRTEToolbarButtonRenderer } from '../base-toolbar-button-renderer';
2
+ import { methodPlaceholder } from 'vega-slimmer/core';
3
+ import { VegaInternalIconManager } from '../../../../helpers/icon/internal-icon-manager';
4
+ import { INSERT_TABLE_BLOCK, InsertTableBlockAction } from './actions/insert-table-block-action';
5
+ import { UpdateCursorPositionAction } from '../../dto/actions/update-cursor-position-action';
6
+ import tableIcon from './table-icon';
7
+ import { DomNodeSubjectObserverFactory } from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
8
+ import { VegaPopoverShow } from '../../../../helpers/event-manager/event-id/vega-event-id';
9
+ import { ActionHandleStrategyRegistry } from '../../dto/action-handle-strategies/action-handle-strategy-registry';
10
+ import { ModifyContentActionType } from '../../dto/actions/modify-content-action.abstract';
11
+ /**
12
+ * Function toolbar button renderer class.
13
+ */
14
+ export class RTETableToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.hoveredRows = 1;
18
+ this.hoveredCols = 1;
19
+ }
20
+ /**
21
+ * Injects the extension context
22
+ *
23
+ * @param {RTETableExtensionContext} context - extension context
24
+ */
25
+ injectExtensionContext(context) {
26
+ this.extensionContext = context;
27
+ }
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ render(h, editorContext) {
32
+ return this.renderTablePicker(h, super.renderButton(h, editorContext, {
33
+ showArrowIcon: true,
34
+ icon: 'rte-table',
35
+ }));
36
+ }
37
+ /**
38
+ * Overrides the isDisabled method to determine if the button should be disabled.
39
+ *
40
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
41
+ * @returns {boolean} - true if the button should be disabled, false otherwise.
42
+ */
43
+ isDisabled(editorContext) {
44
+ let result = super.isDisabled(editorContext);
45
+ if (this.extensionContext) {
46
+ const { host, getSelectedNodes } = this.extensionContext;
47
+ const focusNode = getSelectedNodes()[0];
48
+ let enableInsert = true;
49
+ if (focusNode) {
50
+ enableInsert =
51
+ ActionHandleStrategyRegistry.canHandle(INSERT_TABLE_BLOCK, focusNode.parent) &&
52
+ ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.INSERT_CHILDREN_AFTER, focusNode.parent.parent);
53
+ }
54
+ result = host.disabled || !enableInsert;
55
+ }
56
+ return result;
57
+ }
58
+ /**
59
+ * @inheritDoc
60
+ */
61
+ handleButtonClick() {
62
+ methodPlaceholder();
63
+ }
64
+ /* istanbul ignore next */
65
+ /**
66
+ * @inheritDoc
67
+ */
68
+ handleDropdownClick() {
69
+ methodPlaceholder();
70
+ }
71
+ /**
72
+ * Renders the table size picker popover.
73
+ *
74
+ * @param {VegaRTECreateElementFunction} h - Create element function.
75
+ * @param {VegaRTERenderResult} children - The children elements to render inside the popover.
76
+ * @returns {VegaRTERenderResult} - The render result for the table size picker popover.
77
+ */
78
+ renderTablePicker(h, children) {
79
+ return h('vega-popover', {
80
+ trigger: 'click',
81
+ alignment: 'start',
82
+ placement: 'bottom',
83
+ showArrow: false,
84
+ // eslint-disable-next-line jsdoc/require-jsdoc
85
+ ref: (ref) => {
86
+ if (ref) {
87
+ this.tablePickerPopoverRef = ref;
88
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
89
+ this.resetPicker();
90
+ });
91
+ }
92
+ },
93
+ }, [
94
+ h('div', { slot: 'popover' }, [this.generatePickerStyles(h), this.generateTableSizeGrid(h)]),
95
+ h('div', { slot: 'popover-content' }, children),
96
+ ]);
97
+ }
98
+ /**
99
+ * Generates the table size picker grid.
100
+ *
101
+ * @param {VegaRTECreateElementFunction} h - Create element function.
102
+ * @returns {VegaRTERenderResult} - The render result for the table size picker.
103
+ */
104
+ generateTableSizeGrid(h) {
105
+ const rows = 10;
106
+ const cols = 10;
107
+ const gridCells = [];
108
+ for (let r = 1; r <= rows; r++) {
109
+ for (let c = 1; c <= cols; c++) {
110
+ gridCells.push(h('button', {
111
+ 'class': `rte-table-picker__cell`,
112
+ 'data-row': r,
113
+ 'data-col': c,
114
+ 'onMouseenter': this.handlePickerCellHover.bind(this, r, c),
115
+ 'onClick': this.handlePickerClick.bind(this, r, c),
116
+ }, []));
117
+ }
118
+ }
119
+ return h('div', { class: 'rte-table-picker' }, [
120
+ h('div', {
121
+ class: 'rte-table-picker__grid',
122
+ // eslint-disable-next-line jsdoc/require-jsdoc
123
+ ref: (ref) => {
124
+ if (ref) {
125
+ this.tablePickerGridRef = ref;
126
+ }
127
+ },
128
+ style: {
129
+ gridTemplateColumns: `repeat(${cols}, 16px)`,
130
+ gridTemplateRows: `repeat(${rows}, 16px)`,
131
+ },
132
+ }, gridCells),
133
+ h('div', {
134
+ class: 'rte-table-picker__hint',
135
+ }, h('vega-hint', {
136
+ // eslint-disable-next-line jsdoc/require-jsdoc
137
+ ref: (ref) => {
138
+ if (ref) {
139
+ this.selectedHintRef = ref;
140
+ }
141
+ },
142
+ }, [`${this.hoveredRows} × ${this.hoveredCols}`])),
143
+ ]);
144
+ }
145
+ /**
146
+ * Generates the styles for the table size picker.
147
+ *
148
+ * @param {VegaRTECreateElementFunction} h - Create element function.
149
+ * @returns {VegaRTERenderResult} - The render result for the styles.
150
+ */
151
+ generatePickerStyles(h) {
152
+ return h('style', {}, [
153
+ // eslint-disable-next-line spellcheck/spell-checker
154
+ `
155
+ .rte-table-picker__grid { display: grid; gap: 2px; }
156
+ .rte-table-picker__cell {
157
+ box-sizing: border-box;
158
+ border: 1px solid #ccc;
159
+ background-color: transparent;
160
+ cursor: pointer;
161
+ }
162
+ .rte-table-picker__cell:hover {
163
+ background-color: #cae1fc;
164
+ }
165
+ .rte-table-picker__cell.active {
166
+ background-color: #cae1fc;
167
+ }
168
+ .rte-table-picker__hint {
169
+ text-align: center;
170
+ }
171
+ `,
172
+ ]);
173
+ }
174
+ /**
175
+ * Creates a table block with the specified number of rows and columns.
176
+ *
177
+ * @param {number} row - The number of rows for the table.
178
+ * @param {number} column - The number of columns for the table.
179
+ */
180
+ createTable(row, column) {
181
+ const { host, getSelectedNodes } = this.extensionContext;
182
+ const focusNode = getSelectedNodes()[0];
183
+ const action = new InsertTableBlockAction(row, column);
184
+ if (!focusNode) {
185
+ host.value.apply(action);
186
+ }
187
+ else if (focusNode.parent) {
188
+ focusNode.parent.apply(action);
189
+ }
190
+ if (action.nextFocusNode) {
191
+ host.value.apply(new UpdateCursorPositionAction(action.nextFocusNode, 1));
192
+ }
193
+ }
194
+ /**
195
+ * Handles the click event on a picker cell.
196
+ *
197
+ * @param {number} r - The number of rows selected.
198
+ * @param {number} c - The number of columns selected.
199
+ */
200
+ handlePickerClick(r, c) {
201
+ this.createTable(r, c);
202
+ void this.tablePickerPopoverRef.hide();
203
+ }
204
+ /**
205
+ * Handles the hover event on a picker cell.
206
+ *
207
+ * @param {number} r - The number of rows being hovered over.
208
+ * @param {number} c - The number of columns being hovered over.
209
+ */
210
+ handlePickerCellHover(r, c) {
211
+ this.hoveredRows = r;
212
+ this.hoveredCols = c;
213
+ Array.from(this.tablePickerGridRef.children).forEach((cell) => {
214
+ const rIndex = Number(cell.dataset.row);
215
+ const cIndex = Number(cell.dataset.col);
216
+ if (rIndex <= this.hoveredRows && cIndex <= this.hoveredCols) {
217
+ cell.classList.add('active');
218
+ }
219
+ else {
220
+ cell.classList.remove('active');
221
+ }
222
+ });
223
+ this.selectedHintRef.textContent = `${this.hoveredRows} × ${this.hoveredCols}`;
224
+ }
225
+ /**
226
+ * Resets the table picker to its initial state.
227
+ */
228
+ resetPicker() {
229
+ this.handlePickerCellHover(1, 1);
230
+ }
231
+ }
232
+ (() => {
233
+ VegaInternalIconManager.register({ 'rte-table': tableIcon });
234
+ })();
@@ -0,0 +1,102 @@
1
+ import { generateUUID } from '../../../../../utils/misc';
2
+ import { RTENode } from '../../../dto/nodes/node.abstract';
3
+ import { RTETableBodyBlock } from '../dto/table-body-block';
4
+ import { RTETableHeadBlock } from '../dto/table-head-block';
5
+ /**
6
+ * Recursively searches for a parent block of a specific type.
7
+ *
8
+ * @typedef T - Generic type extending RTEBlock.
9
+ * @param {RTEBlock} block - The starting block to search from.
10
+ * @param {ClassType<unknown>} dtoClass - The class type to match the parent block against.
11
+ * @returns {T | null} - The found parent block of the specified type, or null if not found.
12
+ */
13
+ export function getParentBlockByType(block, dtoClass) {
14
+ if (block) {
15
+ if (block instanceof dtoClass) {
16
+ return block;
17
+ }
18
+ else {
19
+ return getParentBlockByType(block.parent, dtoClass);
20
+ }
21
+ }
22
+ return null;
23
+ }
24
+ /**
25
+ * Generate the table body with the specified number of rows and columns.
26
+ *
27
+ * @param {number} rowCount - The number of rows in the table body.
28
+ * @param {number} columnCount - The number of columns in the table body.
29
+ * @returns {VegaRTETableBodyBlock} The generated table body block.
30
+ */
31
+ export function generateTableBody(rowCount, columnCount) {
32
+ return {
33
+ id: generateUUID(),
34
+ type: 'table-body',
35
+ children: Array.from({ length: rowCount }, () => generateTableRow(columnCount)),
36
+ };
37
+ }
38
+ /**
39
+ * Create a table row block with the specified number of columns and cell type.
40
+ *
41
+ * @param {number} columnCount - The number of columns in the row.
42
+ * @returns {VegaRTETableRowBlock} The created table row block.
43
+ */
44
+ export function generateTableRow(columnCount) {
45
+ return {
46
+ id: generateUUID(),
47
+ type: 'table-row',
48
+ children: Array.from({ length: columnCount }, () => getDefaultCellBlockTemplate('table-cell')),
49
+ };
50
+ }
51
+ /**
52
+ * Get all table rows from a table block (including rows from all table bodies and headers).
53
+ *
54
+ * @param {RTETableBlock} tableBlock - The table block.
55
+ * @returns {RTETableRowBlock[]} Array of all table row blocks.
56
+ */
57
+ export function getAllTableRows(tableBlock) {
58
+ return tableBlock.children
59
+ .filter((child) => child instanceof RTETableBodyBlock || child instanceof RTETableHeadBlock)
60
+ .flatMap((body) => body.children);
61
+ }
62
+ /**
63
+ * Find the first node within a block recursively.
64
+ *
65
+ * @param {Nullable<RTEBlock>} block - The block to find the first node in.
66
+ * @returns {Nullable<RTENode>} The focusable node within the block.
67
+ */
68
+ export function getFirstNode(block) {
69
+ if (!block || !block.children || !block.children[0])
70
+ return null;
71
+ const firstNode = block.children[0];
72
+ if (firstNode instanceof RTENode) {
73
+ return firstNode;
74
+ }
75
+ return getFirstNode(firstNode);
76
+ }
77
+ /**
78
+ * Get the default cell block template.
79
+ *
80
+ * @param {string} cellType - The type of the cell block.
81
+ * @returns {VegaRTETableCellBlock} The default cell block template.
82
+ */
83
+ export function getDefaultCellBlockTemplate(cellType) {
84
+ const id = generateUUID();
85
+ return {
86
+ id,
87
+ type: cellType,
88
+ children: [
89
+ {
90
+ id: `${id}-p`,
91
+ type: 'paragraph',
92
+ nodes: [
93
+ {
94
+ id: `${id}-p-t`,
95
+ type: 'text',
96
+ text: '',
97
+ },
98
+ ],
99
+ },
100
+ ],
101
+ };
102
+ }