@heartlandone/vega 2.84.0 → 2.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/dist/cjs/{app-globals-ea063074.js → app-globals-3080f55a.js} +5 -5
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-58bbc5fc.js → child-nodes-event-prevent-slimmer-f3979a03.js} +1 -1
  3. package/dist/cjs/{code-block-6da521e6.js → code-block-c6c70464.js} +6 -0
  4. package/dist/cjs/{component-value-history-controller-slimmer.abstract-f3f35f94.js → component-value-history-controller-slimmer.abstract-a523b747.js} +2 -2
  5. package/dist/cjs/{content-state-89fafb3b.js → content-state-efd3b1a7.js} +1 -1
  6. package/dist/cjs/{event-emit-slimmer-ecca412d.js → event-emit-slimmer-80e1c8ca.js} +1 -1
  7. package/dist/cjs/{image-annotation-action-a6e1e9ed.js → image-annotation-action-93bace08.js} +3 -3
  8. package/dist/cjs/{immutable-map-edf24b54.js → immutable-map-d711339d.js} +16 -4
  9. package/dist/cjs/index.cjs.js +9 -9
  10. package/dist/cjs/{internal-vega-event-manager-6b74b3af.js → internal-vega-event-manager-7e0d966d.js} +2 -1
  11. package/dist/cjs/loader.cjs.js +8 -8
  12. package/dist/cjs/{public-rules-fc52d624.js → public-rules-3cd0f182.js} +3 -3
  13. package/dist/cjs/{range-93cc8ab1.js → range-c9bde0b4.js} +1 -1
  14. package/dist/cjs/{rich-text-editor-required-rule-fd3711fb.js → rich-text-editor-required-rule-d1f0509c.js} +1 -1
  15. package/dist/cjs/{split-cell-operation-532fb9f0.js → split-cell-operation-6a59c9b0.js} +2 -2
  16. package/dist/cjs/{token-extension-39f2b886.js → token-extension-d7d2ead6.js} +282 -224
  17. package/dist/cjs/vega-accordion.cjs.entry.js +3 -3
  18. package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
  19. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  20. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  21. package/dist/cjs/vega-button-circle.cjs.entry.js +4 -4
  22. package/dist/cjs/vega-button-group_2.cjs.entry.js +4 -4
  23. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  24. package/dist/cjs/vega-button.cjs.entry.js +4 -4
  25. package/dist/cjs/vega-calendar_4.cjs.entry.js +8 -7
  26. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  27. package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
  28. package/dist/cjs/vega-chip.cjs.entry.js +4 -4
  29. package/dist/cjs/vega-code-block.cjs.entry.js +7 -7
  30. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
  31. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +188 -46
  32. package/dist/cjs/vega-color-swatch.cjs.entry.js +7 -7
  33. package/dist/cjs/vega-combo-box.cjs.entry.js +4 -4
  34. package/dist/cjs/vega-date-picker_2.cjs.entry.js +17 -5
  35. package/dist/cjs/vega-dialog_2.cjs.entry.js +5 -5
  36. package/dist/cjs/vega-dropdown_5.cjs.entry.js +4 -4
  37. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  38. package/dist/cjs/{vega-event-id-c08ce3d3.js → vega-event-id-d9994eb3.js} +2 -0
  39. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  40. package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
  41. package/dist/cjs/vega-form.cjs.entry.js +5 -5
  42. package/dist/cjs/vega-image-uploader.cjs.entry.js +4 -4
  43. package/dist/cjs/vega-input-credit-card.cjs.entry.js +4 -4
  44. package/dist/cjs/vega-input-numeric.cjs.entry.js +4 -4
  45. package/dist/cjs/vega-input-passcode.cjs.entry.js +4 -4
  46. package/dist/cjs/vega-input-phone-number.cjs.entry.js +15 -5
  47. package/dist/cjs/vega-input-range.cjs.entry.js +4 -4
  48. package/dist/cjs/vega-input-select.cjs.entry.js +4 -4
  49. package/dist/cjs/vega-input.cjs.entry.js +3 -3
  50. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  51. package/dist/cjs/vega-left-nav_5.cjs.entry.js +15 -13
  52. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  53. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
  54. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
  55. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  56. package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
  57. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
  58. package/dist/cjs/vega-radio_2.cjs.entry.js +4 -4
  59. package/dist/cjs/vega-rich-text-content.cjs.entry.js +4 -4
  60. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +10 -10
  61. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +6 -6
  62. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  63. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
  64. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +161 -28
  65. package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
  66. package/dist/cjs/vega-signature-capture.cjs.entry.js +3 -3
  67. package/dist/cjs/vega-stepper.cjs.entry.js +4 -4
  68. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  69. package/dist/cjs/vega-table_11.cjs.entry.js +1172 -282
  70. package/dist/cjs/vega-textarea.cjs.entry.js +4 -4
  71. package/dist/cjs/vega-time-picker_2.cjs.entry.js +9 -15
  72. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  73. package/dist/cjs/vega.cjs.js +8 -8
  74. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +2 -2
  75. package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +2 -1
  76. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.js +24 -5
  77. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.js +15 -0
  78. package/dist/collection/components/vega-color-swatch/vega-color-swatch.js +6 -6
  79. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +3 -0
  80. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +17 -1
  81. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +31 -1
  82. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +10 -0
  83. package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +1 -1
  84. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.js +10 -8
  85. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.js +2 -2
  86. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -0
  87. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +8 -2
  88. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +1 -0
  89. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +1 -0
  90. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +53 -51
  91. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +40 -10
  92. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +75 -62
  93. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +1 -0
  94. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +1 -0
  95. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +5 -1
  96. package/dist/collection/components/vega-selection-tile/slimmers/renderers/vega-selection-tile-renderer.js +71 -10
  97. package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/slimmers/renderers/vega-selection-tile-group-renderer.js +39 -11
  98. package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.css +1 -3
  99. package/dist/collection/components/vega-selection-tile/vega-selection-tile.css +23 -18
  100. package/dist/collection/components/vega-selection-tile/vega-selection-tile.js +45 -1
  101. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-expand-row-controller.js +88 -4
  102. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-row-draggable-controller.js +132 -0
  103. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sort-controller.js +14 -0
  104. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-renderer.js +8 -5
  105. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-col-group-renderer.js +6 -2
  106. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +8 -2
  107. package/dist/collection/components/vega-table/utils.js +4 -3
  108. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.js +13 -1
  109. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-state-controller.js +7 -0
  110. package/dist/collection/components/vega-table/vega-table-expand-row/vega-table-expand-row.js +7 -0
  111. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.js +10 -3
  112. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.js +9 -2
  113. package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.js +4 -3
  114. package/dist/collection/components/vega-table/vega-table-head/vega-table-head.js +5 -0
  115. package/dist/collection/components/vega-table/vega-table-head-row/slimmers/controllers/vega-table-head-row-state-controller.js +10 -3
  116. package/dist/collection/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.js +12 -2
  117. package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.js +5 -4
  118. package/dist/collection/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-state-controller.js +22 -1
  119. package/dist/collection/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.js +19 -4
  120. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.css +6 -0
  121. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.js +11 -1
  122. package/dist/collection/components/vega-table/vega-table.css +5 -0
  123. package/dist/collection/components/vega-table/vega-table.js +135 -11
  124. package/dist/collection/components/vega-time-picker/vega-time-picker.js +6 -12
  125. package/dist/collection/constants/ui.js +1 -0
  126. package/dist/collection/global/icons/grip-dots-vertical.js +3 -0
  127. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -1
  128. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  129. package/dist/collection/helpers/immutable/immutable-map.js +16 -4
  130. package/dist/collection/helpers/slimmers/draggable-element-slimmer.js +508 -0
  131. package/dist/collection/helpers/slimmers/popover-nested-slot-projection-slimmer.js +118 -0
  132. package/dist/esm/{app-globals-d06de2a5.js → app-globals-37536ac9.js} +5 -5
  133. package/dist/esm/{aria-dialog-focusable-trap-slimmer-853a91de.js → aria-dialog-focusable-trap-slimmer-6eb79723.js} +1 -1
  134. package/dist/esm/{child-nodes-event-prevent-slimmer-f65e2452.js → child-nodes-event-prevent-slimmer-75f93d85.js} +1 -1
  135. package/dist/esm/{code-block-65c8804b.js → code-block-10be3916.js} +7 -1
  136. package/dist/esm/{component-value-history-controller-slimmer.abstract-26c154f6.js → component-value-history-controller-slimmer.abstract-82d51b7a.js} +3 -3
  137. package/dist/esm/{content-state-e676bdf0.js → content-state-afeb700d.js} +2 -2
  138. package/dist/esm/{element-appender-slimmer-d4a82dc3.js → element-appender-slimmer-05f487d7.js} +1 -1
  139. package/dist/esm/{event-emit-slimmer-18711776.js → event-emit-slimmer-1c57093d.js} +1 -1
  140. package/dist/esm/{form-field-controller-slimmer-9a0f8c54.js → form-field-controller-slimmer-ae8478b5.js} +2 -2
  141. package/dist/esm/{image-annotation-action-2d87b66a.js → image-annotation-action-bad7c565.js} +3 -3
  142. package/dist/esm/{immutable-map-612922a2.js → immutable-map-4fe22b11.js} +16 -4
  143. package/dist/esm/index.js +9 -9
  144. package/dist/esm/{internal-vega-event-manager-bed71930.js → internal-vega-event-manager-7cdf3c28.js} +2 -1
  145. package/dist/esm/loader.js +9 -9
  146. package/dist/esm/{public-rules-a61ff09f.js → public-rules-f54e6f39.js} +4 -4
  147. package/dist/esm/{range-d9e55d00.js → range-f32f9185.js} +1 -1
  148. package/dist/esm/{rich-text-editor-required-rule-6a4c853a.js → rich-text-editor-required-rule-627fd7e4.js} +1 -1
  149. package/dist/esm/{split-cell-operation-2e700c5c.js → split-cell-operation-90c30861.js} +3 -3
  150. package/dist/esm/{string-input-formatter-slimmer-ad234bec.js → string-input-formatter-slimmer-4059080b.js} +2 -2
  151. package/dist/esm/{sub-state-notify-slimmer-1f907173.js → sub-state-notify-slimmer-63ecb465.js} +1 -1
  152. package/dist/esm/{sub-state-observer-slimmer-090c500a.js → sub-state-observer-slimmer-2adbbe00.js} +1 -1
  153. package/dist/esm/{token-extension-d3a46c04.js → token-extension-728c0678.js} +282 -224
  154. package/dist/esm/vega-accordion.entry.js +3 -3
  155. package/dist/esm/vega-app-header-button.entry.js +4 -4
  156. package/dist/esm/vega-banner.entry.js +3 -3
  157. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  158. package/dist/esm/vega-button-circle.entry.js +5 -5
  159. package/dist/esm/vega-button-group_2.entry.js +7 -7
  160. package/dist/esm/vega-button-link.entry.js +4 -4
  161. package/dist/esm/vega-button.entry.js +5 -5
  162. package/dist/esm/vega-calendar_4.entry.js +11 -10
  163. package/dist/esm/vega-carousel.entry.js +3 -3
  164. package/dist/esm/vega-checkbox_2.entry.js +7 -7
  165. package/dist/esm/vega-chip.entry.js +4 -4
  166. package/dist/esm/vega-code-block.entry.js +8 -8
  167. package/dist/esm/vega-color-picker.entry.js +6 -6
  168. package/dist/esm/vega-color-swatch-picker.entry.js +192 -50
  169. package/dist/esm/vega-color-swatch.entry.js +7 -7
  170. package/dist/esm/vega-combo-box.entry.js +7 -7
  171. package/dist/esm/vega-date-picker_2.entry.js +24 -12
  172. package/dist/esm/vega-dialog_2.entry.js +7 -7
  173. package/dist/esm/vega-dropdown_5.entry.js +9 -9
  174. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  175. package/dist/esm/{vega-event-id-5841d1d3.js → vega-event-id-a6ccca66.js} +2 -1
  176. package/dist/esm/vega-field-label.entry.js +3 -3
  177. package/dist/esm/vega-file-uploader.entry.js +6 -6
  178. package/dist/esm/vega-form.entry.js +9 -9
  179. package/dist/esm/vega-image-uploader.entry.js +7 -7
  180. package/dist/esm/vega-input-credit-card.entry.js +7 -7
  181. package/dist/esm/vega-input-numeric.entry.js +8 -8
  182. package/dist/esm/vega-input-passcode.entry.js +7 -7
  183. package/dist/esm/vega-input-phone-number.entry.js +18 -8
  184. package/dist/esm/vega-input-range.entry.js +7 -7
  185. package/dist/esm/vega-input-select.entry.js +7 -7
  186. package/dist/esm/vega-input.entry.js +8 -8
  187. package/dist/esm/{vega-internal-event-id-194bac82.js → vega-internal-event-id-db974a0d.js} +1 -1
  188. package/dist/esm/vega-item-toggle.entry.js +3 -3
  189. package/dist/esm/vega-left-nav_5.entry.js +18 -16
  190. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  191. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  192. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  193. package/dist/esm/vega-pagination.entry.js +5 -5
  194. package/dist/esm/vega-popover_2.entry.js +6 -6
  195. package/dist/esm/vega-progress-tracker_2.entry.js +6 -6
  196. package/dist/esm/vega-radio_2.entry.js +7 -7
  197. package/dist/esm/vega-rich-text-content.entry.js +7 -7
  198. package/dist/esm/vega-rich-text-editor_4.entry.js +15 -15
  199. package/dist/esm/vega-rich-text-table-properties_3.entry.js +7 -7
  200. package/dist/esm/vega-segment-control.entry.js +3 -3
  201. package/dist/esm/vega-selection-chip_2.entry.js +8 -8
  202. package/dist/esm/vega-selection-tile_2.entry.js +165 -32
  203. package/dist/esm/vega-sidenav_3.entry.js +6 -6
  204. package/dist/esm/vega-signature-capture.entry.js +6 -6
  205. package/dist/esm/vega-stepper.entry.js +7 -7
  206. package/dist/esm/vega-tab-group_2.entry.js +4 -4
  207. package/dist/esm/vega-table_11.entry.js +1175 -285
  208. package/dist/esm/vega-textarea.entry.js +7 -7
  209. package/dist/esm/vega-time-picker_2.entry.js +13 -19
  210. package/dist/esm/vega-toggle-switch.entry.js +6 -6
  211. package/dist/esm/vega-tooltip_2.entry.js +2 -2
  212. package/dist/esm/vega.js +9 -9
  213. package/dist/esm/{wait-for-component-did-render-30cde59c.js → wait-for-component-did-render-9a83d343.js} +1 -1
  214. package/dist/sri/vega-sri-manifest.json +276 -276
  215. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.d.ts +9 -0
  216. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.d.ts +6 -0
  217. package/dist/types/components/vega-color-swatch/vega-color-swatch.d.ts +4 -4
  218. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +1 -0
  219. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +8 -0
  220. package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +2 -0
  221. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.d.ts +2 -1
  222. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +2 -0
  223. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +15 -11
  224. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +15 -0
  225. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +25 -22
  226. package/dist/types/components/vega-rich-text-editor/interface.d.ts +5 -0
  227. package/dist/types/components/vega-selection-tile/slimmers/renderers/vega-selection-tile-renderer.d.ts +12 -0
  228. package/dist/types/components/vega-selection-tile/vega-selection-tile-group/slimmers/renderers/vega-selection-tile-group-renderer.d.ts +0 -1
  229. package/dist/types/components/vega-selection-tile/vega-selection-tile.d.ts +2 -0
  230. package/dist/types/components/vega-table/interface.d.ts +2 -0
  231. package/dist/types/components/vega-table/slimmers/controllers/vega-table-expand-row-controller.d.ts +35 -0
  232. package/dist/types/components/vega-table/slimmers/controllers/vega-table-row-draggable-controller.d.ts +52 -0
  233. package/dist/types/components/vega-table/slimmers/controllers/vega-table-sort-controller.d.ts +4 -0
  234. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-renderer.d.ts +3 -1
  235. package/dist/types/components/vega-table/slimmers/renderers/vega-table-col-group-renderer.d.ts +2 -1
  236. package/dist/types/components/vega-table/utils.d.ts +3 -2
  237. package/dist/types/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.d.ts +5 -0
  238. package/dist/types/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-state-controller.d.ts +1 -0
  239. package/dist/types/components/vega-table/vega-table-expand-row/vega-table-expand-row.d.ts +2 -0
  240. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.d.ts +2 -1
  241. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.d.ts +3 -1
  242. package/dist/types/components/vega-table/vega-table-foot-row/vega-table-foot-row.d.ts +6 -2
  243. package/dist/types/components/vega-table/vega-table-head/vega-table-head.d.ts +1 -0
  244. package/dist/types/components/vega-table/vega-table-head-row/slimmers/controllers/vega-table-head-row-state-controller.d.ts +2 -1
  245. package/dist/types/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.d.ts +3 -1
  246. package/dist/types/components/vega-table/vega-table-head-row/vega-table-head-row.d.ts +6 -2
  247. package/dist/types/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-state-controller.d.ts +3 -0
  248. package/dist/types/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.d.ts +3 -0
  249. package/dist/types/components/vega-table/vega-table-row/vega-table-row.d.ts +8 -0
  250. package/dist/types/components/vega-table/vega-table.d.ts +40 -5
  251. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +5 -11
  252. package/dist/types/components.d.ts +47 -12
  253. package/dist/types/constants/ui.d.ts +1 -1
  254. package/dist/types/global/icons/grip-dots-vertical.d.ts +3 -0
  255. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  256. package/dist/types/helpers/immutable/immutable-map.d.ts +4 -1
  257. package/dist/types/helpers/slimmers/draggable-element-slimmer.d.ts +260 -0
  258. package/dist/types/helpers/slimmers/popover-nested-slot-projection-slimmer.d.ts +65 -0
  259. package/dist/types/types/components.type.d.ts +2 -0
  260. package/dist/types/types/public-api.d.ts +2 -0
  261. package/dist/types/types/ui.type.d.ts +40 -0
  262. package/dist/vega/index.esm.js +1 -1
  263. package/dist/vega/{p-d3ed7c27.entry.js → p-0b5b0fd2.entry.js} +1 -1
  264. package/dist/vega/p-13e7f906.entry.js +1 -0
  265. package/dist/vega/{p-39b71df9.entry.js → p-23b38467.entry.js} +1 -1
  266. package/dist/vega/{p-8d833b44.entry.js → p-25572ea7.entry.js} +1 -1
  267. package/dist/vega/{p-03cf2df1.entry.js → p-268e84e0.entry.js} +1 -1
  268. package/dist/vega/p-2edc066c.entry.js +1 -0
  269. package/dist/vega/{p-5bbb3e68.entry.js → p-2fb26f4f.entry.js} +1 -1
  270. package/dist/vega/{p-032183c1.js → p-33234385.js} +1 -1
  271. package/dist/vega/{p-c0323a55.entry.js → p-35d77c9c.entry.js} +1 -1
  272. package/dist/vega/{p-5ac4649a.entry.js → p-3c456e91.entry.js} +1 -1
  273. package/dist/vega/{p-27b1dc0f.entry.js → p-3d0ba2c6.entry.js} +1 -1
  274. package/dist/vega/{p-20f0060f.entry.js → p-3d92d2af.entry.js} +1 -1
  275. package/dist/vega/{p-4123559f.entry.js → p-3e64fa38.entry.js} +1 -1
  276. package/dist/vega/{p-f986f875.entry.js → p-411ea209.entry.js} +1 -1
  277. package/dist/vega/{p-7cf1e1f7.entry.js → p-423762ae.entry.js} +1 -1
  278. package/dist/vega/{p-0f31b00b.entry.js → p-4530f0e1.entry.js} +1 -1
  279. package/dist/vega/{p-b28d4f7d.js → p-48e3be6a.js} +1 -1
  280. package/dist/vega/{p-753a7832.entry.js → p-4afafeb3.entry.js} +1 -1
  281. package/dist/vega/{p-c6837173.entry.js → p-4c90d013.entry.js} +1 -1
  282. package/dist/vega/p-5087fa1e.entry.js +1 -0
  283. package/dist/vega/{p-7595ad55.js → p-51b2b3de.js} +1 -1
  284. package/dist/vega/{p-bc2786f9.entry.js → p-59c6dcf7.entry.js} +1 -1
  285. package/dist/vega/p-5e50dbb9.js +1 -0
  286. package/dist/vega/p-5f377954.js +1 -1
  287. package/dist/vega/{p-e5546af5.entry.js → p-606d7113.entry.js} +1 -1
  288. package/dist/vega/{p-6f790577.js → p-6817b9bd.js} +1 -1
  289. package/dist/vega/{p-84030271.entry.js → p-69c11b7b.entry.js} +1 -1
  290. package/dist/vega/{p-effa6495.js → p-6b5cb920.js} +1 -1
  291. package/dist/vega/{p-aa985d73.js → p-6c43d54a.js} +1 -1
  292. package/dist/vega/{p-0e15fa94.entry.js → p-6fadee27.entry.js} +1 -1
  293. package/dist/vega/{p-549bea2c.entry.js → p-73c6669e.entry.js} +1 -1
  294. package/dist/vega/{p-9375fbce.js → p-7730bace.js} +1 -1
  295. package/dist/vega/{p-88f57353.entry.js → p-79c12a64.entry.js} +1 -1
  296. package/dist/vega/{p-f8c700dd.entry.js → p-7f74cd41.entry.js} +1 -1
  297. package/dist/vega/p-818da356.js +1 -0
  298. package/dist/vega/{p-aa040383.js → p-84eb3b9c.js} +1 -1
  299. package/dist/vega/{p-b48b3264.js → p-8d48940d.js} +1 -1
  300. package/dist/vega/{p-a5e6a3be.js → p-93afdfc3.js} +1 -1
  301. package/dist/vega/{p-865fc90b.entry.js → p-98a6cd8e.entry.js} +1 -1
  302. package/dist/vega/p-9af0e2e7.js +1 -0
  303. package/dist/vega/{p-f6414a24.entry.js → p-9e2b7718.entry.js} +1 -1
  304. package/dist/vega/{p-e1b1f5f9.entry.js → p-9eb00537.entry.js} +1 -1
  305. package/dist/vega/{p-f0e855b2.entry.js → p-9f36abf9.entry.js} +1 -1
  306. package/dist/vega/{p-b88eab9a.entry.js → p-9fc8bd1f.entry.js} +1 -1
  307. package/dist/vega/{p-9308f874.entry.js → p-a050c24d.entry.js} +1 -1
  308. package/dist/vega/{p-aa4d419c.entry.js → p-a49c25c2.entry.js} +1 -1
  309. package/dist/vega/{p-1df2c29b.entry.js → p-a9528dbd.entry.js} +1 -1
  310. package/dist/vega/{p-0caf52e0.js → p-a9e10a64.js} +1 -1
  311. package/dist/vega/p-a9f34735.entry.js +1 -0
  312. package/dist/vega/{p-3ae5f50e.entry.js → p-aaf44879.entry.js} +1 -1
  313. package/dist/vega/{p-6cada843.js → p-ae1aa4df.js} +1 -1
  314. package/dist/vega/p-af00e6e2.entry.js +1 -0
  315. package/dist/vega/{p-a0c3968b.js → p-af5cb9bc.js} +1 -1
  316. package/dist/vega/{p-d6c9ef6c.entry.js → p-afd1b519.entry.js} +1 -1
  317. package/dist/vega/{p-5490d499.entry.js → p-bc74d7e7.entry.js} +1 -1
  318. package/dist/vega/{p-6ba71ec4.entry.js → p-c2388937.entry.js} +1 -1
  319. package/dist/vega/p-c31a32f4.js +1 -0
  320. package/dist/vega/{p-11a2f834.js → p-c347e08a.js} +1 -1
  321. package/dist/vega/{p-91739ed3.entry.js → p-c51ebb14.entry.js} +1 -1
  322. package/dist/vega/{p-b80217fa.entry.js → p-c601b331.entry.js} +1 -1
  323. package/dist/vega/{p-d3864b94.entry.js → p-c8fe46fd.entry.js} +1 -1
  324. package/dist/vega/p-ce61d23f.entry.js +1 -0
  325. package/dist/vega/{p-d76e3b3c.entry.js → p-cf2838c7.entry.js} +1 -1
  326. package/dist/vega/{p-e4c5b8d1.entry.js → p-d37636a5.entry.js} +1 -1
  327. package/dist/vega/{p-19e10a87.entry.js → p-d402eb7b.entry.js} +1 -1
  328. package/dist/vega/{p-dec5b448.js → p-d4e519a0.js} +1 -1
  329. package/dist/vega/{p-ce975c69.entry.js → p-da8bb883.entry.js} +1 -1
  330. package/dist/vega/{p-68a96fbb.entry.js → p-dffbbc3d.entry.js} +1 -1
  331. package/dist/vega/{p-bdddddb7.js → p-e1709e59.js} +1 -1
  332. package/dist/vega/{p-c47c37f2.js → p-e27626f6.js} +1 -1
  333. package/dist/vega/{p-6236f592.entry.js → p-e47b2c4c.entry.js} +1 -1
  334. package/dist/vega/{p-7dca19d3.entry.js → p-e95cb28f.entry.js} +1 -1
  335. package/dist/vega/{p-74136508.entry.js → p-ecbb63a5.entry.js} +1 -1
  336. package/dist/vega/p-ed26f4c8.entry.js +1 -0
  337. package/dist/vega/{p-43aaeb30.entry.js → p-effb285f.entry.js} +1 -1
  338. package/dist/vega/p-f1c672e4.js +1 -0
  339. package/dist/vega/{p-56c28943.js → p-f5f5a0d9.js} +1 -1
  340. package/dist/vega/{p-748268e6.entry.js → p-f604f2c9.entry.js} +1 -1
  341. package/dist/vega/{p-e5cc839a.entry.js → p-fa91805b.entry.js} +1 -1
  342. package/dist/vega/vega.esm.js +1 -1
  343. package/package.json +1 -1
  344. package/dist/vega/p-220f8ee7.js +0 -1
  345. package/dist/vega/p-38af89b9.js +0 -1
  346. package/dist/vega/p-5215e1d8.entry.js +0 -1
  347. package/dist/vega/p-5409275a.entry.js +0 -1
  348. package/dist/vega/p-5f23c52d.entry.js +0 -1
  349. package/dist/vega/p-7dbaed6c.entry.js +0 -1
  350. package/dist/vega/p-80cb302f.entry.js +0 -1
  351. package/dist/vega/p-874bf8b2.js +0 -1
  352. package/dist/vega/p-99670c56.entry.js +0 -1
  353. package/dist/vega/p-9de25451.js +0 -1
  354. package/dist/vega/p-a2d6d695.entry.js +0 -1
  355. package/dist/vega/p-b78eaec4.js +0 -1
@@ -5,25 +5,25 @@ import { I as InjectVegaTelemetrySlimmer, c as createPublicAPIRuntimeMetricsSlim
5
5
  import { I as InternalVegaZIndexManager } from './internal-vega-z-index-manager-7d2b54c3.js';
6
6
  import { c as createDynamicSlimmer } from './dynamic-slimmer-90b8af32.js';
7
7
  import { P as PageResizeObserverSlimmer } from './page-resize-observer-slimmer-e24d36c5.js';
8
- import { i as internalVegaEventManager } from './internal-vega-event-manager-bed71930.js';
8
+ import { i as internalVegaEventManager } from './internal-vega-event-manager-7cdf3c28.js';
9
9
  import { V as VegaInternalTranslation } from './internal-translation-controller-d7dee4a0.js';
10
- import { R as RTEDTOActionStrategyManager, E as ElementToDTOClassStrategyManager, h as htmlElementToAnnotationGenerator, U as UpdateCursorPositionAction, V as VegaRTEContent, B as BlockToRTEBlockStrategyAbstract, a as ElementToDTOStrategy, I as InsertNewParagraphAction, b as RTEImageBlock, c as InsertChildrenBeforeStrategy, P as PasteContentStrategy, A as AnnotationGeneratorStrategyAbstract, d as RTEListItemBlock } from './content-state-e676bdf0.js';
11
- import { s as stateEntityRenderingRegistry, A as ActionHandleStrategyRegistry, a as ActionHandlerInterceptorRegistry, R as RTEFilterStylesStrategyRegistry, b as RTEDTOClassManager, M as ModifyContentAction, c as RTETextNode, d as RTEBlock, e as RTETextBlock, f as RTEAnnotationStyle, g as ActionHandleStrategy, I as InsertChildrenAfterAction, h as AppendChildrenAction, i as RTENode, j as InsertChildrenBeforeAction, k as InternalAnnotationTypeEnum, l as ModifyContentActionType, B as BlockAnnotation, m as AnnotationAction, n as RemoveChildrenAction, C as CommonAnnotationTypeEnum, o as CustomAttributeAnnotation, p as RTEFilterStylesStrategy } from './code-block-65c8804b.js';
10
+ import { R as RTEDTOActionStrategyManager, E as ElementToDTOClassStrategyManager, h as htmlElementToAnnotationGenerator, U as UpdateCursorPositionAction, V as VegaRTEContent, B as BlockToRTEBlockStrategyAbstract, a as ElementToDTOStrategy, I as InsertNewParagraphAction, b as RTEImageBlock, c as InsertChildrenBeforeStrategy, P as PasteContentStrategy, A as AnnotationGeneratorStrategyAbstract, d as RTEListItemBlock } from './content-state-afeb700d.js';
11
+ import { s as stateEntityRenderingRegistry, A as ActionHandleStrategyRegistry, a as ActionHandlerInterceptorRegistry, R as RTEFilterStylesStrategyRegistry, b as RTEDTOClassManager, M as ModifyContentAction, c as RTETextNode, d as RTEBlock, e as RTETextBlock, f as RTEAnnotationStyle, g as ActionHandleStrategy, I as InsertChildrenAfterAction, h as AppendChildrenAction, i as RTENode, j as InsertChildrenBeforeAction, k as InternalAnnotationTypeEnum, l as ModifyContentActionType, B as BlockAnnotation, m as AnnotationAction, n as RemoveChildrenAction, C as CommonAnnotationTypeEnum, o as CustomAttributeAnnotation, p as RTEFilterStylesStrategy } from './code-block-10be3916.js';
12
12
  import { i as isNonNullable } from './type-guard-adc244fd.js';
13
13
  import { R as RTEDTORendererManager } from './dto-renderer-manager-abc7eb5f.js';
14
14
  import { V as VegaRTEBaseRenderer } from './base-renderer-101f6d04.js';
15
15
  import { V as VegaInternalIconManager } from './internal-icon-manager-bd80b3bb.js';
16
16
  import { v as vegaNonceManager } from './vega-nonce-manager-497e5eb5.js';
17
17
  import { D as DomNodeSubjectObserverFactory, d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-aca0116e.js';
18
- import { V as VegaDropdownClick, a as VegaClick, b as VegaPopoverShow, c as VegaPopoverHide } from './vega-event-id-5841d1d3.js';
19
- import { R as RTETableExtensionAnnotationTypeEnum, a as RTE_TABLE_HEAD_DEFAULT_BACKGROUND_COLOR, S as SettingEventHandler, T as TableSettingType, b as RowOperationEventHandler, C as ColumnOperationEventHandler, M as MergeCellsOperationEventHandler, c as SplitCellOperationEventHandler, d as RTETableAnnotation, e as RTETableCellAnnotation, f as RTETableHeadCellBlock, g as RTETableColorManager, h as RTETableBlock, i as generateTableBody, j as RTETableCellBlock, k as RTETableHeadBlock, l as RTETableBodyBlock, m as getParentBlockByType, n as RTETableHeadCellAnnotation, o as TableColumnStrategy, p as getAllTableRows, q as buildTableGrid, s as setSpanAttributes, r as findCellBlockById, t as getDefaultCellBlockTemplate, I as InsertTableColumnDirection, u as buildCellStartColumnMap, v as getTableColumnCount, w as getFirstNode, x as getCellSpan, y as createNewCell, z as MergeCellsOperationType, A as RTETableRowBlock, B as getActualColumnPosition, D as InsertTableRowDirection, E as RTE_TABLE_DEFAULT_COLORS, F as INSERT_TABLE_ROW_INTO_DIFFERENT_SECTION, G as INSERT_TABLE_ROW_INTO_SAME_SECTION, H as DELETE_TABLE_ROW, J as TOGGLE_HEADER_ROW, K as INSERT_TABLE_COLUMN, L as DELETE_TABLE_COLUMN, N as TOGGLE_HEADER_TABLE_COLUMN, O as ToggleHeaderTableColumnStrategy, P as SPLIT_TABLE_CELL, Q as REPLACE_TABLE_CELL, U as SPLIT_CELL_HORIZONTALLY, W as SPLIT_CELL_VERTICALLY, X as SELECT_TABLE_COLUMN, Y as MERGE_CELLS } from './split-cell-operation-2e700c5c.js';
18
+ import { V as VegaDropdownClick, a as VegaClick, b as VegaPopoverHide, c as VegaPopoverShow } from './vega-event-id-a6ccca66.js';
19
+ import { R as RTETableExtensionAnnotationTypeEnum, a as RTE_TABLE_HEAD_DEFAULT_BACKGROUND_COLOR, S as SettingEventHandler, T as TableSettingType, b as RTETableAnnotation, c as RTETableCellAnnotation, d as RTETableHeadCellBlock, e as RowOperationEventHandler, C as ColumnOperationEventHandler, M as MergeCellsOperationEventHandler, f as SplitCellOperationEventHandler, g as RTETableColorManager, h as RTETableBlock, i as generateTableBody, j as RTETableCellBlock, k as RTETableHeadBlock, l as RTETableBodyBlock, m as getParentBlockByType, n as RTETableHeadCellAnnotation, o as TableColumnStrategy, p as getAllTableRows, q as buildTableGrid, s as setSpanAttributes, r as findCellBlockById, t as getDefaultCellBlockTemplate, I as InsertTableColumnDirection, u as buildCellStartColumnMap, v as getTableColumnCount, w as getFirstNode, x as getCellSpan, y as createNewCell, z as MergeCellsOperationType, A as RTETableRowBlock, B as getActualColumnPosition, D as InsertTableRowDirection, E as RTE_TABLE_DEFAULT_COLORS, F as INSERT_TABLE_ROW_INTO_DIFFERENT_SECTION, G as INSERT_TABLE_ROW_INTO_SAME_SECTION, H as DELETE_TABLE_ROW, J as TOGGLE_HEADER_ROW, K as INSERT_TABLE_COLUMN, L as DELETE_TABLE_COLUMN, N as TOGGLE_HEADER_TABLE_COLUMN, O as ToggleHeaderTableColumnStrategy, P as SPLIT_TABLE_CELL, Q as REPLACE_TABLE_CELL, U as SPLIT_CELL_HORIZONTALLY, W as SPLIT_CELL_VERTICALLY, X as SELECT_TABLE_COLUMN, Y as MERGE_CELLS } from './split-cell-operation-90c30861.js';
20
+ import { C as ChangeManager } from './change-manager-6a7eb88c.js';
21
+ import { V as VegaInternalRTEExtensionTableCellsSelectionAnchor, a as VegaInternalPopoverUpdateTarget, b as VegaInternalRTEExtensionTableCellSelectionChange } from './vega-internal-event-id-db974a0d.js';
20
22
  import { r as remoteInvocationRegistry } from './remote-invocation-registry-d69245c2.js';
21
- import { V as VegaInternalPopoverUpdateTarget, a as VegaInternalRTEExtensionTableCellsSelectionAnchor, b as VegaInternalRTEExtensionTableCellSelectionChange } from './vega-internal-event-id-194bac82.js';
22
23
  import { V as VegaInternalThemeManager } from './dark-mode-style-controller-e9a6b097.js';
23
24
  import { t as tryGetDocument } from './try-get-document-bef0f526.js';
24
25
  import { p as parseToPixelString } from './pixel-f32c07ce.js';
25
26
  import { c as cleanObject } from './object-0c277f57.js';
26
- import { C as ChangeManager } from './change-manager-6a7eb88c.js';
27
27
  import { d as debounce } from './timer-9321173b.js';
28
28
 
29
29
  const VegaLoaderRuntimeMetricsPayloadDefinition = [
@@ -1485,6 +1485,8 @@ class VegaRTEToolbarButtonRenderer {
1485
1485
  }
1486
1486
  /**
1487
1487
  * Renders a common toolbar button with optional icon, label, and arrow icon.
1488
+ * When a tooltip is provided via `buttonProps.tooltip`, the button is wrapped
1489
+ * in a `vega-tooltip` element, matching the behavior of default toolbar buttons.
1488
1490
  *
1489
1491
  * @param {VegaRTECreateElementFunction} h - Create element function.
1490
1492
  * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
@@ -1492,9 +1494,9 @@ class VegaRTEToolbarButtonRenderer {
1492
1494
  * @returns {VegaRTERenderResult} - The render result for the button.
1493
1495
  */
1494
1496
  renderButton(h, editorContext, buttonProps) {
1495
- const { icon, label, showArrowIcon } = buttonProps;
1497
+ const { icon, label, showArrowIcon, tooltip } = buttonProps;
1496
1498
  const isDisabled = this.isDisabled(editorContext);
1497
- return h('vega-rich-text-editor-toolbar-button', {
1499
+ const button = h('vega-rich-text-editor-toolbar-button', {
1498
1500
  disabled: isDisabled,
1499
1501
  icon: icon,
1500
1502
  hidden: this.isHidden(editorContext),
@@ -1515,6 +1517,10 @@ class VegaRTEToolbarButtonRenderer {
1515
1517
  })
1516
1518
  : null,
1517
1519
  ].filter(isNonNullable));
1520
+ if (tooltip === null || tooltip === void 0 ? void 0 : tooltip.text) {
1521
+ return h('vega-tooltip', { text: tooltip.text, placement: ['bottom', 'top'] }, [button]);
1522
+ }
1523
+ return button;
1518
1524
  }
1519
1525
  /**
1520
1526
  * Renders the button label.
@@ -1618,7 +1624,11 @@ class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
1618
1624
  */
1619
1625
  render(createElement, editorContext) {
1620
1626
  return this.renderDropdown(createElement, editorContext, {}, [
1621
- this.renderButton(createElement, editorContext, { label: 'Tokens', showArrowIcon: true }),
1627
+ this.renderButton(createElement, editorContext, {
1628
+ label: 'Tokens',
1629
+ showArrowIcon: true,
1630
+ tooltip: { text: 'Insert token' },
1631
+ }),
1622
1632
  this.renderDropdownListTemplate(createElement, this.tokenList),
1623
1633
  ]);
1624
1634
  }
@@ -1859,6 +1869,7 @@ class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
1859
1869
  this.renderButton(createElement, editorContext, {
1860
1870
  label: this.getLanguageLabelByKey(this.selectedLanguage),
1861
1871
  showArrowIcon: true,
1872
+ tooltip: { text: 'Select language' },
1862
1873
  }),
1863
1874
  ]);
1864
1875
  }
@@ -2393,6 +2404,7 @@ class FunctionToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
2393
2404
  this.renderButton(h, editorContext, {
2394
2405
  label: 'Functions',
2395
2406
  showArrowIcon: true,
2407
+ tooltip: { text: 'Insert function' },
2396
2408
  }),
2397
2409
  this.renderDropdownListTemplate(h, FunctionToolbarButtonRenderer.FUNCTION_LIST),
2398
2410
  ]);
@@ -3093,162 +3105,6 @@ class CaptionOperationEventHandler extends SettingEventHandler {
3093
3105
  }
3094
3106
  }
3095
3107
 
3096
- /**
3097
- * Base renderer for table-related popovers, providing common functionalities such as accessing the table extension context.
3098
- */
3099
- class TablePopoverBaseRenderer {
3100
- constructor(renderContext) {
3101
- this.renderContext = renderContext;
3102
- }
3103
- /**
3104
- * Retrieves the table extension context associated with the current render context.
3105
- *
3106
- * @returns {Nullable<RTETableExtensionContext>} The table extension context if available, otherwise null.
3107
- */
3108
- getTableExtensionContext() {
3109
- return this.renderContext
3110
- ? RTEExtensionContextManager$1.getExtensionContext(this.renderContext.host)
3111
- : null;
3112
- }
3113
- }
3114
-
3115
- /**
3116
- * Centralizes the popover rendering and interaction logic for table settings.
3117
- */
3118
- class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
3119
- constructor() {
3120
- super(...arguments);
3121
- this.settingHandlers = [
3122
- new RowOperationEventHandler(),
3123
- new CaptionOperationEventHandler(),
3124
- new ColumnOperationEventHandler(),
3125
- new MergeCellsOperationEventHandler(),
3126
- new SplitCellOperationEventHandler(),
3127
- ];
3128
- /**
3129
- * Show table setting popover when table is clicked.
3130
- * Only the popover belonging to the nearest table will be shown,
3131
- * which avoids outer tables showing their popover when an inner (nested) table is clicked.
3132
- *
3133
- * @param {MouseEvent} event - The MouseEvent that triggered the table action
3134
- * @param {HTMLElement} trigger - The element that can triggered the popover open.
3135
- */
3136
- this.handleTableClick = (event, trigger) => {
3137
- const target = event.target;
3138
- const ownTrigger = target.closest('table');
3139
- if (trigger !== ownTrigger) {
3140
- void this.popoverRef.hide();
3141
- void this.tableDynamicPopover.hide();
3142
- return;
3143
- }
3144
- void this.tableDynamicPopover.hide();
3145
- if (!this.popoverShow) {
3146
- remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), ownTrigger);
3147
- void this.popoverRef.show();
3148
- }
3149
- };
3150
- /**
3151
- * Sync the selected cells from the table selection to the table setting component.
3152
- */
3153
- this.syncSelectedCells = () => {
3154
- if (this.tableSettingRef) {
3155
- const selectedCells = this.getTableSelectedCells();
3156
- this.tableSettingRef.selectedCells = selectedCells;
3157
- }
3158
- };
3159
- /**
3160
- * Receive setting menu click events.
3161
- *
3162
- * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
3163
- */
3164
- this.handleSettingMenuClick = (event) => {
3165
- const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
3166
- if (handler) {
3167
- const extensionContext = this.getTableExtensionContext();
3168
- extensionContext && handler.execute(event.detail, extensionContext, this.tableData);
3169
- if (event.detail[0] === TableSettingType.CAPTION) {
3170
- this.updateTableSettingCaption();
3171
- }
3172
- }
3173
- if (event.detail[0] === TableSettingType.TABLE || event.detail[0] === TableSettingType.CELL) {
3174
- void this.popoverRef.hide();
3175
- void this.tableDynamicPopover.show(event.detail[0]);
3176
- }
3177
- };
3178
- /**
3179
- * Handles the popover show event to sync the selected table cells to the table setting component.
3180
- */
3181
- this.handleTableSettingPopoverShow = () => {
3182
- this.syncSelectedCells();
3183
- this.popoverShow = true;
3184
- };
3185
- }
3186
- /**
3187
- * Render the popover host and inject the table-setting component with refs wired up.
3188
- *
3189
- * @param {VegaRTECreateElementFunction} h - The create element function.
3190
- * @param {RTETableBlock} renderData - The table block to render.
3191
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
3192
- * @param {TableDynamicPopoverRenderer} tableDynamicPopover - Renderer used to show
3193
- * the secondary table popover (for example, table-properties-specific settings).
3194
- * @returns {VegaRTERenderResult} The rendered popover structure.
3195
- */
3196
- render(h, renderData, getTableRef, tableDynamicPopover) {
3197
- this.tableData = renderData;
3198
- this.tableDynamicPopover = tableDynamicPopover;
3199
- return h('vega-popover', {
3200
- trigger: 'click',
3201
- isScreenPosition: true,
3202
- class: 'rte-table-setting-popover',
3203
- // eslint-disable-next-line jsdoc/require-jsdoc
3204
- ref: (popover) => {
3205
- this.popoverRef = popover;
3206
- if (this.popoverRef) {
3207
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
3208
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => (this.popoverShow = false));
3209
- }
3210
- },
3211
- }, [
3212
- h('div', { slot: 'popover' }, [
3213
- h('vega-rich-text-table-setting', {
3214
- // eslint-disable-next-line jsdoc/require-jsdoc
3215
- ref: (ref) => {
3216
- this.tableSettingRef = ref;
3217
- if (ref) {
3218
- ref.target = getTableRef();
3219
- }
3220
- },
3221
- selectedCells: this.getTableSelectedCells(),
3222
- onVegaClick: this.handleSettingMenuClick,
3223
- }),
3224
- ]),
3225
- ]);
3226
- }
3227
- /**
3228
- * Updates the table setting component caption state to match the given table data.
3229
- */
3230
- updateTableSettingCaption() {
3231
- const hasCaption = this.tableData.hasCaption();
3232
- if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
3233
- this.tableSettingRef.hasCaption = hasCaption;
3234
- }
3235
- }
3236
- /**
3237
- * Collects and returns the currently selected table cells.
3238
- *
3239
- * @returns {RTETableCellBlock[]} The array of currently selected table cell blocks.
3240
- */
3241
- getTableSelectedCells() {
3242
- let selectedCells = [];
3243
- const extensionContext = this.getTableExtensionContext();
3244
- if (extensionContext && extensionContext.tableSelection) {
3245
- const { tableSelection } = extensionContext;
3246
- selectedCells = tableSelection.getSelectedCells();
3247
- }
3248
- return selectedCells;
3249
- }
3250
- }
3251
-
3252
3108
  /**
3253
3109
  * Event handler for row operations in a table.
3254
3110
  */
@@ -3615,6 +3471,25 @@ class CellPropertiesCancelEventHandler extends CellPropertiesEventHandler {
3615
3471
  }
3616
3472
  }
3617
3473
 
3474
+ /**
3475
+ * Base renderer for table-related popovers, providing common functionalities such as accessing the table extension context.
3476
+ */
3477
+ class TablePopoverBaseRenderer {
3478
+ constructor(renderContext) {
3479
+ this.renderContext = renderContext;
3480
+ }
3481
+ /**
3482
+ * Retrieves the table extension context associated with the current render context.
3483
+ *
3484
+ * @returns {Nullable<RTETableExtensionContext>} The table extension context if available, otherwise null.
3485
+ */
3486
+ getTableExtensionContext() {
3487
+ return this.renderContext
3488
+ ? RTEExtensionContextManager$1.getExtensionContext(this.renderContext.host)
3489
+ : null;
3490
+ }
3491
+ }
3492
+
3618
3493
  /**
3619
3494
  * Renderer for a generic, dynamically positioned popover used within table-related extensions.
3620
3495
  *
@@ -3624,7 +3499,6 @@ class CellPropertiesCancelEventHandler extends CellPropertiesEventHandler {
3624
3499
  class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3625
3500
  constructor(colors, renderContext) {
3626
3501
  super(renderContext);
3627
- this.tableColorSchema = [];
3628
3502
  this.popoverCloseType = 'none'; // 'save' | 'cancel' | 'change' | 'none'
3629
3503
  this.tablePropertiesHandlerMap = {
3630
3504
  save: new TablePropertiesSaveEventHandler(),
@@ -3652,7 +3526,7 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3652
3526
  this.tablePropertiesHandlerMap[eventKey].handle(extensionContext, this.currentTableBlock, e.detail, this.currentFocusNode);
3653
3527
  }
3654
3528
  // Update popover position to follow the target after styles change
3655
- if (eventKey === 'change' && this.popoverRef) {
3529
+ if (eventKey === 'change') {
3656
3530
  void this.popoverRef.show(true);
3657
3531
  }
3658
3532
  };
@@ -3672,7 +3546,7 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3672
3546
  this.cellPropertiesHandlerMap[eventKey].handle(extensionContext, e.detail, this.currentFocusNode);
3673
3547
  }
3674
3548
  // Update popover position to follow the target after styles change
3675
- if (eventKey === 'change' && this.popoverRef) {
3549
+ if (eventKey === 'change') {
3676
3550
  void this.popoverRef.show(true);
3677
3551
  }
3678
3552
  };
@@ -3724,55 +3598,58 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3724
3598
  await this.popoverRef.hide();
3725
3599
  }
3726
3600
  /**
3727
- * Renders a vega-popover whose target and content are provided dynamically by callers.
3601
+ * Re-targets the shared popovers to the given table.
3728
3602
  *
3729
- * @param {VegaRTECreateElementFunction} h - The create element function.
3730
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
3731
- * @param {RTETableBlock} renderData - Current table block being rendered.
3732
- * @returns {VegaRTERenderResult} The rendered popover host.
3603
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
3604
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
3733
3605
  */
3734
- render(h, getTableRef, renderData) {
3606
+ reTarget(tableBlock, getTableRef) {
3735
3607
  this.getTableRef = getTableRef;
3736
- this.currentTableBlock = renderData;
3737
- return h('vega-popover', {
3738
- trigger: 'click',
3739
- isScreenPosition: true,
3740
- class: 'rte-table-dynamic-popover',
3741
- // eslint-disable-next-line jsdoc/require-jsdoc
3742
- ref: (popover) => {
3743
- this.popoverRef = popover;
3744
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => {
3745
- const extensionContext = this.getTableExtensionContext();
3746
- if (this.popoverCloseType === 'change' && extensionContext) {
3747
- extensionContext.flushValue(extensionContext.host.value);
3748
- }
3749
- });
3750
- },
3751
- }, [
3752
- h('div', {
3753
- slot: 'popover',
3754
- class: 'rte-table-dynamic-popover-content',
3755
- }, [
3756
- h('vega-rich-text-table-properties', {
3757
- // eslint-disable-next-line jsdoc/require-jsdoc
3758
- ref: (el) => (this.tablePropertiesFormRef = el),
3759
- colors: this.tableColorSchema,
3760
- type: TableSettingType.TABLE,
3761
- onVegaCancel: this.handleTablePropertiesUpdate,
3762
- onVegaChange: this.handleTablePropertiesUpdate,
3763
- onVegaSave: this.handleTablePropertiesUpdate,
3764
- }),
3765
- h('vega-rich-text-table-properties', {
3766
- // eslint-disable-next-line jsdoc/require-jsdoc
3767
- ref: (el) => (this.cellPropertiesFormRef = el),
3768
- colors: this.tableColorSchema,
3769
- type: TableSettingType.CELL,
3770
- onVegaCancel: this.handleCellPropertiesUpdate,
3771
- onVegaChange: this.handleCellPropertiesUpdate,
3772
- onVegaSave: this.handleCellPropertiesUpdate,
3773
- }),
3774
- ]),
3775
- ]);
3608
+ this.currentTableBlock = tableBlock;
3609
+ }
3610
+ /**
3611
+ * Builds the popover DOM and appends it to the given container.
3612
+ *
3613
+ * @returns {Nullable<HTMLElement>} The constructed popover element.
3614
+ */
3615
+ render() {
3616
+ const safeDocument = tryGetDocument();
3617
+ if (safeDocument) {
3618
+ const popover = safeDocument.createElement('vega-popover');
3619
+ popover.trigger = 'click';
3620
+ popover.isScreenPosition = true;
3621
+ popover.className = 'rte-table-dynamic-popover';
3622
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => {
3623
+ const extensionContext = this.getTableExtensionContext();
3624
+ if (this.popoverCloseType === 'change' && extensionContext) {
3625
+ extensionContext.flushValue(extensionContext.host.value);
3626
+ }
3627
+ });
3628
+ const slotDiv = safeDocument.createElement('div');
3629
+ slotDiv.setAttribute('slot', 'popover');
3630
+ slotDiv.className = 'rte-table-dynamic-popover-content';
3631
+ const tablePropsForm = safeDocument.createElement('vega-rich-text-table-properties');
3632
+ tablePropsForm.colors = this.tableColorSchema;
3633
+ tablePropsForm.type = TableSettingType.TABLE;
3634
+ tablePropsForm.setAttribute('type', TableSettingType.TABLE);
3635
+ tablePropsForm.addEventListener('vegaCancel', this.handleTablePropertiesUpdate);
3636
+ tablePropsForm.addEventListener('vegaChange', this.handleTablePropertiesUpdate);
3637
+ tablePropsForm.addEventListener('vegaSave', this.handleTablePropertiesUpdate);
3638
+ const cellPropsForm = safeDocument.createElement('vega-rich-text-table-properties');
3639
+ cellPropsForm.colors = this.tableColorSchema;
3640
+ cellPropsForm.type = TableSettingType.CELL;
3641
+ cellPropsForm.setAttribute('type', TableSettingType.CELL);
3642
+ cellPropsForm.addEventListener('vegaCancel', this.handleCellPropertiesUpdate);
3643
+ cellPropsForm.addEventListener('vegaChange', this.handleCellPropertiesUpdate);
3644
+ cellPropsForm.addEventListener('vegaSave', this.handleCellPropertiesUpdate);
3645
+ slotDiv.appendChild(tablePropsForm);
3646
+ slotDiv.appendChild(cellPropsForm);
3647
+ popover.appendChild(slotDiv);
3648
+ this.popoverRef = popover;
3649
+ this.tablePropertiesFormRef = tablePropsForm;
3650
+ this.cellPropertiesFormRef = cellPropsForm;
3651
+ return popover;
3652
+ }
3776
3653
  }
3777
3654
  /**
3778
3655
  * Updates the visibility of the pre-rendered content blocks based on type.
@@ -3782,13 +3659,13 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3782
3659
  updateContent(type) {
3783
3660
  this.popoverCloseType = 'none';
3784
3661
  const extensionContext = this.getTableExtensionContext();
3785
- if (this.tablePropertiesFormRef && type === 'TABLE') {
3662
+ if (type === 'TABLE') {
3786
3663
  this.tablePropertiesFormRef.classList.remove('vega-hidden');
3787
3664
  this.cellPropertiesFormRef.classList.add('vega-hidden');
3788
3665
  this.tablePropertiesFormRef.defaultValue =
3789
3666
  TablePropertiesEventHandler.generateTablePropertiesForm(this.currentTableBlock);
3790
3667
  }
3791
- else if (this.cellPropertiesFormRef && type === 'CELL') {
3668
+ else if (type === 'CELL') {
3792
3669
  this.cellPropertiesFormRef.classList.remove('vega-hidden');
3793
3670
  this.tablePropertiesFormRef.classList.add('vega-hidden');
3794
3671
  if (extensionContext) {
@@ -3861,6 +3738,153 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3861
3738
  }
3862
3739
  }
3863
3740
 
3741
+ /**
3742
+ * Shared popover renderer for table settings.
3743
+ */
3744
+ class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
3745
+ constructor(renderContext) {
3746
+ super(renderContext);
3747
+ this.settingHandlers = [
3748
+ new RowOperationEventHandler(),
3749
+ new CaptionOperationEventHandler(),
3750
+ new ColumnOperationEventHandler(),
3751
+ new MergeCellsOperationEventHandler(),
3752
+ new SplitCellOperationEventHandler(),
3753
+ ];
3754
+ /**
3755
+ * Re-targets and shows the table setting popover for the clicked table.
3756
+ *
3757
+ * @param {MouseEvent} event - The MouseEvent that triggered the click.
3758
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
3759
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
3760
+ */
3761
+ this.handleTableClick = (event, tableBlock, getTableRef) => {
3762
+ const target = event.target;
3763
+ const ownTrigger = target.closest('table');
3764
+ if (ownTrigger !== getTableRef()) {
3765
+ return;
3766
+ }
3767
+ // Prevent the click from bubbling to ancestor tables. When this is a nested
3768
+ // table click, the ancestor table still has the popover's stale click
3769
+ // listener attached (from when it was the popover's target), which would
3770
+ // toggle the popover off immediately after we show it.
3771
+ event.stopPropagation();
3772
+ this.reTarget(tableBlock, getTableRef);
3773
+ void this.tableDynamicPopover.hide();
3774
+ remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), ownTrigger);
3775
+ void this.popoverRef.show(true);
3776
+ };
3777
+ /**
3778
+ * Sync the selected cells from the table selection to the table setting component.
3779
+ */
3780
+ this.syncSelectedCells = () => {
3781
+ if (this.tableSettingRef) {
3782
+ this.tableSettingRef.selectedCells = this.getTableSelectedCells();
3783
+ }
3784
+ };
3785
+ /**
3786
+ * Handles setting menu click events.
3787
+ *
3788
+ * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
3789
+ */
3790
+ this.handleSettingMenuClick = (event) => {
3791
+ const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
3792
+ if (handler) {
3793
+ const extensionContext = this.getTableExtensionContext();
3794
+ extensionContext && handler.execute(event.detail, extensionContext, this.tableBlock);
3795
+ if (event.detail[0] === TableSettingType.CAPTION) {
3796
+ this.updateTableSettingCaption();
3797
+ }
3798
+ }
3799
+ if (event.detail[0] === TableSettingType.TABLE || event.detail[0] === TableSettingType.CELL) {
3800
+ void this.popoverRef.hide();
3801
+ void this.tableDynamicPopover.show(event.detail[0]);
3802
+ }
3803
+ };
3804
+ /**
3805
+ * Handles the popover show event to sync the selected table cells to the table setting component.
3806
+ */
3807
+ this.handleTableSettingPopoverShow = () => {
3808
+ this.syncSelectedCells();
3809
+ };
3810
+ this.tableDynamicPopover = new TableDynamicPopoverRenderer(RTETableColorManager.getTableColors(), renderContext);
3811
+ }
3812
+ /**
3813
+ * Destroys the dynamic popover renderer and removes the container from the DOM.
3814
+ */
3815
+ destroy() {
3816
+ this.tableDynamicPopover.destroy();
3817
+ if (this.popoverContainer) {
3818
+ this.popoverContainer.remove();
3819
+ }
3820
+ }
3821
+ /**
3822
+ * Builds the popover DOM and appends it to the RTE host. Idempotent: subsequent calls are no-ops.
3823
+ */
3824
+ render() {
3825
+ const safeDocument = tryGetDocument();
3826
+ if (safeDocument && this.renderContext) {
3827
+ this.popoverContainer = safeDocument.createElement('div');
3828
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3829
+ this.renderContext.host.appendChild(this.popoverContainer);
3830
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3831
+ const tableCellPopover = this.tableDynamicPopover.render();
3832
+ const popover = safeDocument.createElement('vega-popover');
3833
+ popover.trigger = 'click';
3834
+ popover.isScreenPosition = true;
3835
+ popover.className = 'rte-table-setting-popover';
3836
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
3837
+ const slotDiv = safeDocument.createElement('div');
3838
+ slotDiv.setAttribute('slot', 'popover');
3839
+ const tableSetting = safeDocument.createElement('vega-rich-text-table-setting');
3840
+ tableSetting.addEventListener('vegaClick', this.handleSettingMenuClick);
3841
+ slotDiv.appendChild(tableSetting);
3842
+ popover.appendChild(slotDiv);
3843
+ this.popoverContainer.appendChild(popover);
3844
+ this.popoverContainer.appendChild(tableCellPopover);
3845
+ this.popoverRef = popover;
3846
+ this.tableSettingRef = tableSetting;
3847
+ }
3848
+ }
3849
+ /**
3850
+ * Updates the table setting component caption state to match the current table data.
3851
+ */
3852
+ updateTableSettingCaption() {
3853
+ const hasCaption = this.tableBlock.hasCaption();
3854
+ if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
3855
+ this.tableSettingRef.hasCaption = hasCaption;
3856
+ }
3857
+ }
3858
+ /**
3859
+ * Re-targets the shared popovers to the given table.
3860
+ *
3861
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
3862
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
3863
+ */
3864
+ reTarget(tableBlock, getTableRef) {
3865
+ if (this.tableSettingRef) {
3866
+ this.tableBlock = tableBlock;
3867
+ this.tableSettingRef.target = getTableRef();
3868
+ this.tableSettingRef.selectedCells = this.getTableSelectedCells();
3869
+ this.tableDynamicPopover.reTarget(tableBlock, getTableRef);
3870
+ }
3871
+ }
3872
+ /**
3873
+ * Collects and returns the currently selected table cells.
3874
+ *
3875
+ * @returns {RTETableCellBlock[]} The array of currently selected table cell blocks.
3876
+ */
3877
+ getTableSelectedCells() {
3878
+ let selectedCells = [];
3879
+ const extensionContext = this.getTableExtensionContext();
3880
+ if (extensionContext && extensionContext.tableSelection) {
3881
+ const { tableSelection } = extensionContext;
3882
+ selectedCells = tableSelection.getSelectedCells();
3883
+ }
3884
+ return selectedCells;
3885
+ }
3886
+ }
3887
+
3864
3888
  /**
3865
3889
  * Renderer for the RTETableBlock.
3866
3890
  */
@@ -3869,12 +3893,9 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3869
3893
  * @inheritDoc
3870
3894
  */
3871
3895
  doRender(h, renderData, rteContext) {
3872
- const tableSettingPopoverRenderer = new TableSettingPopoverRenderer(rteContext);
3873
- const tableDynamicPopoverRenderer = new TableDynamicPopoverRenderer(RTETableColorManager.getTableColors(), rteContext);
3874
3896
  let tableRef;
3875
3897
  const table = this.renderTable(h, renderData, (ref) => (tableRef = ref));
3876
- const tableSettingPopover = tableSettingPopoverRenderer.render(h, renderData, () => tableRef, tableDynamicPopoverRenderer);
3877
- const tableDynamicPopover = tableDynamicPopoverRenderer.render(h, () => tableRef, renderData);
3898
+ this.renderTableToolbar(rteContext);
3878
3899
  const tableAnnotation = renderData.getAnnotationByType(RTETableExtensionAnnotationTypeEnum.TABLE);
3879
3900
  const children = rteContext.editable
3880
3901
  ? [
@@ -3885,17 +3906,23 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3885
3906
  this.handleTableRemove(renderData, tableRef);
3886
3907
  },
3887
3908
  // eslint-disable-next-line jsdoc/require-jsdoc
3888
- onClick: (event) => tableSettingPopoverRenderer.handleTableClick(event, tableRef),
3909
+ onClick: (event) => {
3910
+ if (this.tableToolbar) {
3911
+ this.tableToolbar.handleTableClick(event, renderData, () => tableRef);
3912
+ }
3913
+ },
3889
3914
  // eslint-disable-next-line jsdoc/require-jsdoc
3890
3915
  onMouseLeave: () => {
3891
- tableSettingPopoverRenderer.syncSelectedCells();
3916
+ if (this.tableToolbar) {
3917
+ this.tableToolbar.syncSelectedCells();
3918
+ }
3892
3919
  },
3893
3920
  }, [
3894
3921
  // Add an extra div as slot container, to make sure the cursor can move to before/end of the table.
3895
3922
  h('div', {
3896
3923
  contentEditable: true,
3897
3924
  ref: this.useRef(renderData),
3898
- }, [table, tableSettingPopover, tableDynamicPopover]),
3925
+ }, [table]),
3899
3926
  ]),
3900
3927
  ]
3901
3928
  : [table];
@@ -3917,6 +3944,12 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3917
3944
  result.childrenContainerGetter = () => table;
3918
3945
  return result;
3919
3946
  }
3947
+ /**
3948
+ * Destroys the table toolbar popover.
3949
+ */
3950
+ destroy() {
3951
+ this.destroyTableToolbar();
3952
+ }
3920
3953
  /**
3921
3954
  * @inheritDoc
3922
3955
  */
@@ -3966,6 +3999,29 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3966
3999
  }
3967
4000
  }
3968
4001
  }
4002
+ /**
4003
+ * Renders the table setting popover toolbar if the context is editable.
4004
+ *
4005
+ * @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
4006
+ */
4007
+ renderTableToolbar(rteContext) {
4008
+ if (!rteContext.editable) {
4009
+ this.destroyTableToolbar();
4010
+ return;
4011
+ }
4012
+ if (!this.tableToolbar) {
4013
+ this.tableToolbar = new TableSettingPopoverRenderer(rteContext);
4014
+ this.tableToolbar.render();
4015
+ }
4016
+ }
4017
+ /**
4018
+ * Destroys the table setting popover toolbar if it exists.
4019
+ */
4020
+ destroyTableToolbar() {
4021
+ var _a;
4022
+ (_a = this.tableToolbar) === null || _a === void 0 ? void 0 : _a.destroy();
4023
+ this.tableToolbar = null;
4024
+ }
3969
4025
  }
3970
4026
 
3971
4027
  /**
@@ -4299,6 +4355,7 @@ class RTETableToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
4299
4355
  return createTablePopoverRenderer.render(h, super.renderButton(h, editorContext, {
4300
4356
  showArrowIcon: true,
4301
4357
  icon: 'rte-table',
4358
+ tooltip: { text: 'Insert table' },
4302
4359
  }));
4303
4360
  }
4304
4361
  /**
@@ -7479,6 +7536,7 @@ class VegaRTETableExtension extends VegaRTEExtension {
7479
7536
  * @inheritDoc
7480
7537
  */
7481
7538
  destroyExtension() {
7539
+ this.tableBlockRenderer.destroy();
7482
7540
  this.tableSelection.destroy();
7483
7541
  }
7484
7542
  }