@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
@@ -7,25 +7,25 @@ const createPublicApiRuntimeMetricsSlimmer = require('./create-public-api-runtim
7
7
  const internalVegaZIndexManager = require('./internal-vega-z-index-manager-f03ddb37.js');
8
8
  const dynamicSlimmer = require('./dynamic-slimmer-f31fdfd7.js');
9
9
  const pageResizeObserverSlimmer = require('./page-resize-observer-slimmer-273d62ef.js');
10
- const internalVegaEventManager = require('./internal-vega-event-manager-6b74b3af.js');
10
+ const internalVegaEventManager = require('./internal-vega-event-manager-7e0d966d.js');
11
11
  const internalTranslationController = require('./internal-translation-controller-8360a89c.js');
12
- const contentState = require('./content-state-89fafb3b.js');
13
- const codeBlock = require('./code-block-6da521e6.js');
12
+ const contentState = require('./content-state-efd3b1a7.js');
13
+ const codeBlock = require('./code-block-c6c70464.js');
14
14
  const typeGuard = require('./type-guard-2e97fc56.js');
15
15
  const dtoRendererManager = require('./dto-renderer-manager-7eb5c5ce.js');
16
16
  const baseRenderer = require('./base-renderer-0a3b62b7.js');
17
17
  const internalIconManager = require('./internal-icon-manager-c989189a.js');
18
18
  const vegaNonceManager = require('./vega-nonce-manager-df69d3ed.js');
19
19
  const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-9110cb94.js');
20
- const vegaEventId = require('./vega-event-id-c08ce3d3.js');
21
- const splitCellOperation = require('./split-cell-operation-532fb9f0.js');
22
- const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
20
+ const vegaEventId = require('./vega-event-id-d9994eb3.js');
21
+ const splitCellOperation = require('./split-cell-operation-6a59c9b0.js');
22
+ const changeManager = require('./change-manager-a297e4d2.js');
23
23
  const vegaInternalEventId = require('./vega-internal-event-id-87014e4f.js');
24
+ const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
24
25
  const darkModeStyleController = require('./dark-mode-style-controller-bd765afb.js');
25
26
  const tryGetDocument = require('./try-get-document-c0ebd39a.js');
26
27
  const pixel = require('./pixel-98f2a10c.js');
27
28
  const object = require('./object-b53e9416.js');
28
- const changeManager = require('./change-manager-a297e4d2.js');
29
29
  const timer = require('./timer-5f33058b.js');
30
30
 
31
31
  const VegaLoaderRuntimeMetricsPayloadDefinition = [
@@ -1487,6 +1487,8 @@ class VegaRTEToolbarButtonRenderer {
1487
1487
  }
1488
1488
  /**
1489
1489
  * Renders a common toolbar button with optional icon, label, and arrow icon.
1490
+ * When a tooltip is provided via `buttonProps.tooltip`, the button is wrapped
1491
+ * in a `vega-tooltip` element, matching the behavior of default toolbar buttons.
1490
1492
  *
1491
1493
  * @param {VegaRTECreateElementFunction} h - Create element function.
1492
1494
  * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
@@ -1494,9 +1496,9 @@ class VegaRTEToolbarButtonRenderer {
1494
1496
  * @returns {VegaRTERenderResult} - The render result for the button.
1495
1497
  */
1496
1498
  renderButton(h, editorContext, buttonProps) {
1497
- const { icon, label, showArrowIcon } = buttonProps;
1499
+ const { icon, label, showArrowIcon, tooltip } = buttonProps;
1498
1500
  const isDisabled = this.isDisabled(editorContext);
1499
- return h('vega-rich-text-editor-toolbar-button', {
1501
+ const button = h('vega-rich-text-editor-toolbar-button', {
1500
1502
  disabled: isDisabled,
1501
1503
  icon: icon,
1502
1504
  hidden: this.isHidden(editorContext),
@@ -1517,6 +1519,10 @@ class VegaRTEToolbarButtonRenderer {
1517
1519
  })
1518
1520
  : null,
1519
1521
  ].filter(typeGuard.isNonNullable));
1522
+ if (tooltip === null || tooltip === void 0 ? void 0 : tooltip.text) {
1523
+ return h('vega-tooltip', { text: tooltip.text, placement: ['bottom', 'top'] }, [button]);
1524
+ }
1525
+ return button;
1520
1526
  }
1521
1527
  /**
1522
1528
  * Renders the button label.
@@ -1620,7 +1626,11 @@ class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
1620
1626
  */
1621
1627
  render(createElement, editorContext) {
1622
1628
  return this.renderDropdown(createElement, editorContext, {}, [
1623
- this.renderButton(createElement, editorContext, { label: 'Tokens', showArrowIcon: true }),
1629
+ this.renderButton(createElement, editorContext, {
1630
+ label: 'Tokens',
1631
+ showArrowIcon: true,
1632
+ tooltip: { text: 'Insert token' },
1633
+ }),
1624
1634
  this.renderDropdownListTemplate(createElement, this.tokenList),
1625
1635
  ]);
1626
1636
  }
@@ -1861,6 +1871,7 @@ class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
1861
1871
  this.renderButton(createElement, editorContext, {
1862
1872
  label: this.getLanguageLabelByKey(this.selectedLanguage),
1863
1873
  showArrowIcon: true,
1874
+ tooltip: { text: 'Select language' },
1864
1875
  }),
1865
1876
  ]);
1866
1877
  }
@@ -2395,6 +2406,7 @@ class FunctionToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
2395
2406
  this.renderButton(h, editorContext, {
2396
2407
  label: 'Functions',
2397
2408
  showArrowIcon: true,
2409
+ tooltip: { text: 'Insert function' },
2398
2410
  }),
2399
2411
  this.renderDropdownListTemplate(h, FunctionToolbarButtonRenderer.FUNCTION_LIST),
2400
2412
  ]);
@@ -3095,162 +3107,6 @@ class CaptionOperationEventHandler extends splitCellOperation.SettingEventHandle
3095
3107
  }
3096
3108
  }
3097
3109
 
3098
- /**
3099
- * Base renderer for table-related popovers, providing common functionalities such as accessing the table extension context.
3100
- */
3101
- class TablePopoverBaseRenderer {
3102
- constructor(renderContext) {
3103
- this.renderContext = renderContext;
3104
- }
3105
- /**
3106
- * Retrieves the table extension context associated with the current render context.
3107
- *
3108
- * @returns {Nullable<RTETableExtensionContext>} The table extension context if available, otherwise null.
3109
- */
3110
- getTableExtensionContext() {
3111
- return this.renderContext
3112
- ? RTEExtensionContextManager$1.getExtensionContext(this.renderContext.host)
3113
- : null;
3114
- }
3115
- }
3116
-
3117
- /**
3118
- * Centralizes the popover rendering and interaction logic for table settings.
3119
- */
3120
- class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
3121
- constructor() {
3122
- super(...arguments);
3123
- this.settingHandlers = [
3124
- new splitCellOperation.RowOperationEventHandler(),
3125
- new CaptionOperationEventHandler(),
3126
- new splitCellOperation.ColumnOperationEventHandler(),
3127
- new splitCellOperation.MergeCellsOperationEventHandler(),
3128
- new splitCellOperation.SplitCellOperationEventHandler(),
3129
- ];
3130
- /**
3131
- * Show table setting popover when table is clicked.
3132
- * Only the popover belonging to the nearest table will be shown,
3133
- * which avoids outer tables showing their popover when an inner (nested) table is clicked.
3134
- *
3135
- * @param {MouseEvent} event - The MouseEvent that triggered the table action
3136
- * @param {HTMLElement} trigger - The element that can triggered the popover open.
3137
- */
3138
- this.handleTableClick = (event, trigger) => {
3139
- const target = event.target;
3140
- const ownTrigger = target.closest('table');
3141
- if (trigger !== ownTrigger) {
3142
- void this.popoverRef.hide();
3143
- void this.tableDynamicPopover.hide();
3144
- return;
3145
- }
3146
- void this.tableDynamicPopover.hide();
3147
- if (!this.popoverShow) {
3148
- remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.popoverRef, vegaInternalEventId.VegaInternalPopoverUpdateTarget), ownTrigger);
3149
- void this.popoverRef.show();
3150
- }
3151
- };
3152
- /**
3153
- * Sync the selected cells from the table selection to the table setting component.
3154
- */
3155
- this.syncSelectedCells = () => {
3156
- if (this.tableSettingRef) {
3157
- const selectedCells = this.getTableSelectedCells();
3158
- this.tableSettingRef.selectedCells = selectedCells;
3159
- }
3160
- };
3161
- /**
3162
- * Receive setting menu click events.
3163
- *
3164
- * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
3165
- */
3166
- this.handleSettingMenuClick = (event) => {
3167
- const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
3168
- if (handler) {
3169
- const extensionContext = this.getTableExtensionContext();
3170
- extensionContext && handler.execute(event.detail, extensionContext, this.tableData);
3171
- if (event.detail[0] === splitCellOperation.TableSettingType.CAPTION) {
3172
- this.updateTableSettingCaption();
3173
- }
3174
- }
3175
- if (event.detail[0] === splitCellOperation.TableSettingType.TABLE || event.detail[0] === splitCellOperation.TableSettingType.CELL) {
3176
- void this.popoverRef.hide();
3177
- void this.tableDynamicPopover.show(event.detail[0]);
3178
- }
3179
- };
3180
- /**
3181
- * Handles the popover show event to sync the selected table cells to the table setting component.
3182
- */
3183
- this.handleTableSettingPopoverShow = () => {
3184
- this.syncSelectedCells();
3185
- this.popoverShow = true;
3186
- };
3187
- }
3188
- /**
3189
- * Render the popover host and inject the table-setting component with refs wired up.
3190
- *
3191
- * @param {VegaRTECreateElementFunction} h - The create element function.
3192
- * @param {RTETableBlock} renderData - The table block to render.
3193
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
3194
- * @param {TableDynamicPopoverRenderer} tableDynamicPopover - Renderer used to show
3195
- * the secondary table popover (for example, table-properties-specific settings).
3196
- * @returns {VegaRTERenderResult} The rendered popover structure.
3197
- */
3198
- render(h, renderData, getTableRef, tableDynamicPopover) {
3199
- this.tableData = renderData;
3200
- this.tableDynamicPopover = tableDynamicPopover;
3201
- return h('vega-popover', {
3202
- trigger: 'click',
3203
- isScreenPosition: true,
3204
- class: 'rte-table-setting-popover',
3205
- // eslint-disable-next-line jsdoc/require-jsdoc
3206
- ref: (popover) => {
3207
- this.popoverRef = popover;
3208
- if (this.popoverRef) {
3209
- domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, vegaEventId.VegaPopoverShow, this.handleTableSettingPopoverShow);
3210
- domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, vegaEventId.VegaPopoverHide, () => (this.popoverShow = false));
3211
- }
3212
- },
3213
- }, [
3214
- h('div', { slot: 'popover' }, [
3215
- h('vega-rich-text-table-setting', {
3216
- // eslint-disable-next-line jsdoc/require-jsdoc
3217
- ref: (ref) => {
3218
- this.tableSettingRef = ref;
3219
- if (ref) {
3220
- ref.target = getTableRef();
3221
- }
3222
- },
3223
- selectedCells: this.getTableSelectedCells(),
3224
- onVegaClick: this.handleSettingMenuClick,
3225
- }),
3226
- ]),
3227
- ]);
3228
- }
3229
- /**
3230
- * Updates the table setting component caption state to match the given table data.
3231
- */
3232
- updateTableSettingCaption() {
3233
- const hasCaption = this.tableData.hasCaption();
3234
- if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
3235
- this.tableSettingRef.hasCaption = hasCaption;
3236
- }
3237
- }
3238
- /**
3239
- * Collects and returns the currently selected table cells.
3240
- *
3241
- * @returns {RTETableCellBlock[]} The array of currently selected table cell blocks.
3242
- */
3243
- getTableSelectedCells() {
3244
- let selectedCells = [];
3245
- const extensionContext = this.getTableExtensionContext();
3246
- if (extensionContext && extensionContext.tableSelection) {
3247
- const { tableSelection } = extensionContext;
3248
- selectedCells = tableSelection.getSelectedCells();
3249
- }
3250
- return selectedCells;
3251
- }
3252
- }
3253
-
3254
3110
  /**
3255
3111
  * Event handler for row operations in a table.
3256
3112
  */
@@ -3617,6 +3473,25 @@ class CellPropertiesCancelEventHandler extends CellPropertiesEventHandler {
3617
3473
  }
3618
3474
  }
3619
3475
 
3476
+ /**
3477
+ * Base renderer for table-related popovers, providing common functionalities such as accessing the table extension context.
3478
+ */
3479
+ class TablePopoverBaseRenderer {
3480
+ constructor(renderContext) {
3481
+ this.renderContext = renderContext;
3482
+ }
3483
+ /**
3484
+ * Retrieves the table extension context associated with the current render context.
3485
+ *
3486
+ * @returns {Nullable<RTETableExtensionContext>} The table extension context if available, otherwise null.
3487
+ */
3488
+ getTableExtensionContext() {
3489
+ return this.renderContext
3490
+ ? RTEExtensionContextManager$1.getExtensionContext(this.renderContext.host)
3491
+ : null;
3492
+ }
3493
+ }
3494
+
3620
3495
  /**
3621
3496
  * Renderer for a generic, dynamically positioned popover used within table-related extensions.
3622
3497
  *
@@ -3626,7 +3501,6 @@ class CellPropertiesCancelEventHandler extends CellPropertiesEventHandler {
3626
3501
  class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3627
3502
  constructor(colors, renderContext) {
3628
3503
  super(renderContext);
3629
- this.tableColorSchema = [];
3630
3504
  this.popoverCloseType = 'none'; // 'save' | 'cancel' | 'change' | 'none'
3631
3505
  this.tablePropertiesHandlerMap = {
3632
3506
  save: new TablePropertiesSaveEventHandler(),
@@ -3654,7 +3528,7 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3654
3528
  this.tablePropertiesHandlerMap[eventKey].handle(extensionContext, this.currentTableBlock, e.detail, this.currentFocusNode);
3655
3529
  }
3656
3530
  // Update popover position to follow the target after styles change
3657
- if (eventKey === 'change' && this.popoverRef) {
3531
+ if (eventKey === 'change') {
3658
3532
  void this.popoverRef.show(true);
3659
3533
  }
3660
3534
  };
@@ -3674,7 +3548,7 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3674
3548
  this.cellPropertiesHandlerMap[eventKey].handle(extensionContext, e.detail, this.currentFocusNode);
3675
3549
  }
3676
3550
  // Update popover position to follow the target after styles change
3677
- if (eventKey === 'change' && this.popoverRef) {
3551
+ if (eventKey === 'change') {
3678
3552
  void this.popoverRef.show(true);
3679
3553
  }
3680
3554
  };
@@ -3726,55 +3600,58 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3726
3600
  await this.popoverRef.hide();
3727
3601
  }
3728
3602
  /**
3729
- * Renders a vega-popover whose target and content are provided dynamically by callers.
3603
+ * Re-targets the shared popovers to the given table.
3730
3604
  *
3731
- * @param {VegaRTECreateElementFunction} h - The create element function.
3732
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
3733
- * @param {RTETableBlock} renderData - Current table block being rendered.
3734
- * @returns {VegaRTERenderResult} The rendered popover host.
3605
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
3606
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
3735
3607
  */
3736
- render(h, getTableRef, renderData) {
3608
+ reTarget(tableBlock, getTableRef) {
3737
3609
  this.getTableRef = getTableRef;
3738
- this.currentTableBlock = renderData;
3739
- return h('vega-popover', {
3740
- trigger: 'click',
3741
- isScreenPosition: true,
3742
- class: 'rte-table-dynamic-popover',
3743
- // eslint-disable-next-line jsdoc/require-jsdoc
3744
- ref: (popover) => {
3745
- this.popoverRef = popover;
3746
- domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, vegaEventId.VegaPopoverHide, () => {
3747
- const extensionContext = this.getTableExtensionContext();
3748
- if (this.popoverCloseType === 'change' && extensionContext) {
3749
- extensionContext.flushValue(extensionContext.host.value);
3750
- }
3751
- });
3752
- },
3753
- }, [
3754
- h('div', {
3755
- slot: 'popover',
3756
- class: 'rte-table-dynamic-popover-content',
3757
- }, [
3758
- h('vega-rich-text-table-properties', {
3759
- // eslint-disable-next-line jsdoc/require-jsdoc
3760
- ref: (el) => (this.tablePropertiesFormRef = el),
3761
- colors: this.tableColorSchema,
3762
- type: splitCellOperation.TableSettingType.TABLE,
3763
- onVegaCancel: this.handleTablePropertiesUpdate,
3764
- onVegaChange: this.handleTablePropertiesUpdate,
3765
- onVegaSave: this.handleTablePropertiesUpdate,
3766
- }),
3767
- h('vega-rich-text-table-properties', {
3768
- // eslint-disable-next-line jsdoc/require-jsdoc
3769
- ref: (el) => (this.cellPropertiesFormRef = el),
3770
- colors: this.tableColorSchema,
3771
- type: splitCellOperation.TableSettingType.CELL,
3772
- onVegaCancel: this.handleCellPropertiesUpdate,
3773
- onVegaChange: this.handleCellPropertiesUpdate,
3774
- onVegaSave: this.handleCellPropertiesUpdate,
3775
- }),
3776
- ]),
3777
- ]);
3610
+ this.currentTableBlock = tableBlock;
3611
+ }
3612
+ /**
3613
+ * Builds the popover DOM and appends it to the given container.
3614
+ *
3615
+ * @returns {Nullable<HTMLElement>} The constructed popover element.
3616
+ */
3617
+ render() {
3618
+ const safeDocument = tryGetDocument.tryGetDocument();
3619
+ if (safeDocument) {
3620
+ const popover = safeDocument.createElement('vega-popover');
3621
+ popover.trigger = 'click';
3622
+ popover.isScreenPosition = true;
3623
+ popover.className = 'rte-table-dynamic-popover';
3624
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, vegaEventId.VegaPopoverHide, () => {
3625
+ const extensionContext = this.getTableExtensionContext();
3626
+ if (this.popoverCloseType === 'change' && extensionContext) {
3627
+ extensionContext.flushValue(extensionContext.host.value);
3628
+ }
3629
+ });
3630
+ const slotDiv = safeDocument.createElement('div');
3631
+ slotDiv.setAttribute('slot', 'popover');
3632
+ slotDiv.className = 'rte-table-dynamic-popover-content';
3633
+ const tablePropsForm = safeDocument.createElement('vega-rich-text-table-properties');
3634
+ tablePropsForm.colors = this.tableColorSchema;
3635
+ tablePropsForm.type = splitCellOperation.TableSettingType.TABLE;
3636
+ tablePropsForm.setAttribute('type', splitCellOperation.TableSettingType.TABLE);
3637
+ tablePropsForm.addEventListener('vegaCancel', this.handleTablePropertiesUpdate);
3638
+ tablePropsForm.addEventListener('vegaChange', this.handleTablePropertiesUpdate);
3639
+ tablePropsForm.addEventListener('vegaSave', this.handleTablePropertiesUpdate);
3640
+ const cellPropsForm = safeDocument.createElement('vega-rich-text-table-properties');
3641
+ cellPropsForm.colors = this.tableColorSchema;
3642
+ cellPropsForm.type = splitCellOperation.TableSettingType.CELL;
3643
+ cellPropsForm.setAttribute('type', splitCellOperation.TableSettingType.CELL);
3644
+ cellPropsForm.addEventListener('vegaCancel', this.handleCellPropertiesUpdate);
3645
+ cellPropsForm.addEventListener('vegaChange', this.handleCellPropertiesUpdate);
3646
+ cellPropsForm.addEventListener('vegaSave', this.handleCellPropertiesUpdate);
3647
+ slotDiv.appendChild(tablePropsForm);
3648
+ slotDiv.appendChild(cellPropsForm);
3649
+ popover.appendChild(slotDiv);
3650
+ this.popoverRef = popover;
3651
+ this.tablePropertiesFormRef = tablePropsForm;
3652
+ this.cellPropertiesFormRef = cellPropsForm;
3653
+ return popover;
3654
+ }
3778
3655
  }
3779
3656
  /**
3780
3657
  * Updates the visibility of the pre-rendered content blocks based on type.
@@ -3784,13 +3661,13 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3784
3661
  updateContent(type) {
3785
3662
  this.popoverCloseType = 'none';
3786
3663
  const extensionContext = this.getTableExtensionContext();
3787
- if (this.tablePropertiesFormRef && type === 'TABLE') {
3664
+ if (type === 'TABLE') {
3788
3665
  this.tablePropertiesFormRef.classList.remove('vega-hidden');
3789
3666
  this.cellPropertiesFormRef.classList.add('vega-hidden');
3790
3667
  this.tablePropertiesFormRef.defaultValue =
3791
3668
  TablePropertiesEventHandler.generateTablePropertiesForm(this.currentTableBlock);
3792
3669
  }
3793
- else if (this.cellPropertiesFormRef && type === 'CELL') {
3670
+ else if (type === 'CELL') {
3794
3671
  this.cellPropertiesFormRef.classList.remove('vega-hidden');
3795
3672
  this.tablePropertiesFormRef.classList.add('vega-hidden');
3796
3673
  if (extensionContext) {
@@ -3863,6 +3740,153 @@ class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
3863
3740
  }
3864
3741
  }
3865
3742
 
3743
+ /**
3744
+ * Shared popover renderer for table settings.
3745
+ */
3746
+ class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
3747
+ constructor(renderContext) {
3748
+ super(renderContext);
3749
+ this.settingHandlers = [
3750
+ new splitCellOperation.RowOperationEventHandler(),
3751
+ new CaptionOperationEventHandler(),
3752
+ new splitCellOperation.ColumnOperationEventHandler(),
3753
+ new splitCellOperation.MergeCellsOperationEventHandler(),
3754
+ new splitCellOperation.SplitCellOperationEventHandler(),
3755
+ ];
3756
+ /**
3757
+ * Re-targets and shows the table setting popover for the clicked table.
3758
+ *
3759
+ * @param {MouseEvent} event - The MouseEvent that triggered the click.
3760
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
3761
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
3762
+ */
3763
+ this.handleTableClick = (event, tableBlock, getTableRef) => {
3764
+ const target = event.target;
3765
+ const ownTrigger = target.closest('table');
3766
+ if (ownTrigger !== getTableRef()) {
3767
+ return;
3768
+ }
3769
+ // Prevent the click from bubbling to ancestor tables. When this is a nested
3770
+ // table click, the ancestor table still has the popover's stale click
3771
+ // listener attached (from when it was the popover's target), which would
3772
+ // toggle the popover off immediately after we show it.
3773
+ event.stopPropagation();
3774
+ this.reTarget(tableBlock, getTableRef);
3775
+ void this.tableDynamicPopover.hide();
3776
+ remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.popoverRef, vegaInternalEventId.VegaInternalPopoverUpdateTarget), ownTrigger);
3777
+ void this.popoverRef.show(true);
3778
+ };
3779
+ /**
3780
+ * Sync the selected cells from the table selection to the table setting component.
3781
+ */
3782
+ this.syncSelectedCells = () => {
3783
+ if (this.tableSettingRef) {
3784
+ this.tableSettingRef.selectedCells = this.getTableSelectedCells();
3785
+ }
3786
+ };
3787
+ /**
3788
+ * Handles setting menu click events.
3789
+ *
3790
+ * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
3791
+ */
3792
+ this.handleSettingMenuClick = (event) => {
3793
+ const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
3794
+ if (handler) {
3795
+ const extensionContext = this.getTableExtensionContext();
3796
+ extensionContext && handler.execute(event.detail, extensionContext, this.tableBlock);
3797
+ if (event.detail[0] === splitCellOperation.TableSettingType.CAPTION) {
3798
+ this.updateTableSettingCaption();
3799
+ }
3800
+ }
3801
+ if (event.detail[0] === splitCellOperation.TableSettingType.TABLE || event.detail[0] === splitCellOperation.TableSettingType.CELL) {
3802
+ void this.popoverRef.hide();
3803
+ void this.tableDynamicPopover.show(event.detail[0]);
3804
+ }
3805
+ };
3806
+ /**
3807
+ * Handles the popover show event to sync the selected table cells to the table setting component.
3808
+ */
3809
+ this.handleTableSettingPopoverShow = () => {
3810
+ this.syncSelectedCells();
3811
+ };
3812
+ this.tableDynamicPopover = new TableDynamicPopoverRenderer(splitCellOperation.RTETableColorManager.getTableColors(), renderContext);
3813
+ }
3814
+ /**
3815
+ * Destroys the dynamic popover renderer and removes the container from the DOM.
3816
+ */
3817
+ destroy() {
3818
+ this.tableDynamicPopover.destroy();
3819
+ if (this.popoverContainer) {
3820
+ this.popoverContainer.remove();
3821
+ }
3822
+ }
3823
+ /**
3824
+ * Builds the popover DOM and appends it to the RTE host. Idempotent: subsequent calls are no-ops.
3825
+ */
3826
+ render() {
3827
+ const safeDocument = tryGetDocument.tryGetDocument();
3828
+ if (safeDocument && this.renderContext) {
3829
+ this.popoverContainer = safeDocument.createElement('div');
3830
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3831
+ this.renderContext.host.appendChild(this.popoverContainer);
3832
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3833
+ const tableCellPopover = this.tableDynamicPopover.render();
3834
+ const popover = safeDocument.createElement('vega-popover');
3835
+ popover.trigger = 'click';
3836
+ popover.isScreenPosition = true;
3837
+ popover.className = 'rte-table-setting-popover';
3838
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, vegaEventId.VegaPopoverShow, this.handleTableSettingPopoverShow);
3839
+ const slotDiv = safeDocument.createElement('div');
3840
+ slotDiv.setAttribute('slot', 'popover');
3841
+ const tableSetting = safeDocument.createElement('vega-rich-text-table-setting');
3842
+ tableSetting.addEventListener('vegaClick', this.handleSettingMenuClick);
3843
+ slotDiv.appendChild(tableSetting);
3844
+ popover.appendChild(slotDiv);
3845
+ this.popoverContainer.appendChild(popover);
3846
+ this.popoverContainer.appendChild(tableCellPopover);
3847
+ this.popoverRef = popover;
3848
+ this.tableSettingRef = tableSetting;
3849
+ }
3850
+ }
3851
+ /**
3852
+ * Updates the table setting component caption state to match the current table data.
3853
+ */
3854
+ updateTableSettingCaption() {
3855
+ const hasCaption = this.tableBlock.hasCaption();
3856
+ if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
3857
+ this.tableSettingRef.hasCaption = hasCaption;
3858
+ }
3859
+ }
3860
+ /**
3861
+ * Re-targets the shared popovers to the given table.
3862
+ *
3863
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
3864
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
3865
+ */
3866
+ reTarget(tableBlock, getTableRef) {
3867
+ if (this.tableSettingRef) {
3868
+ this.tableBlock = tableBlock;
3869
+ this.tableSettingRef.target = getTableRef();
3870
+ this.tableSettingRef.selectedCells = this.getTableSelectedCells();
3871
+ this.tableDynamicPopover.reTarget(tableBlock, getTableRef);
3872
+ }
3873
+ }
3874
+ /**
3875
+ * Collects and returns the currently selected table cells.
3876
+ *
3877
+ * @returns {RTETableCellBlock[]} The array of currently selected table cell blocks.
3878
+ */
3879
+ getTableSelectedCells() {
3880
+ let selectedCells = [];
3881
+ const extensionContext = this.getTableExtensionContext();
3882
+ if (extensionContext && extensionContext.tableSelection) {
3883
+ const { tableSelection } = extensionContext;
3884
+ selectedCells = tableSelection.getSelectedCells();
3885
+ }
3886
+ return selectedCells;
3887
+ }
3888
+ }
3889
+
3866
3890
  /**
3867
3891
  * Renderer for the RTETableBlock.
3868
3892
  */
@@ -3871,12 +3895,9 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3871
3895
  * @inheritDoc
3872
3896
  */
3873
3897
  doRender(h, renderData, rteContext) {
3874
- const tableSettingPopoverRenderer = new TableSettingPopoverRenderer(rteContext);
3875
- const tableDynamicPopoverRenderer = new TableDynamicPopoverRenderer(splitCellOperation.RTETableColorManager.getTableColors(), rteContext);
3876
3898
  let tableRef;
3877
3899
  const table = this.renderTable(h, renderData, (ref) => (tableRef = ref));
3878
- const tableSettingPopover = tableSettingPopoverRenderer.render(h, renderData, () => tableRef, tableDynamicPopoverRenderer);
3879
- const tableDynamicPopover = tableDynamicPopoverRenderer.render(h, () => tableRef, renderData);
3900
+ this.renderTableToolbar(rteContext);
3880
3901
  const tableAnnotation = renderData.getAnnotationByType(splitCellOperation.RTETableExtensionAnnotationTypeEnum.TABLE);
3881
3902
  const children = rteContext.editable
3882
3903
  ? [
@@ -3887,17 +3908,23 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3887
3908
  this.handleTableRemove(renderData, tableRef);
3888
3909
  },
3889
3910
  // eslint-disable-next-line jsdoc/require-jsdoc
3890
- onClick: (event) => tableSettingPopoverRenderer.handleTableClick(event, tableRef),
3911
+ onClick: (event) => {
3912
+ if (this.tableToolbar) {
3913
+ this.tableToolbar.handleTableClick(event, renderData, () => tableRef);
3914
+ }
3915
+ },
3891
3916
  // eslint-disable-next-line jsdoc/require-jsdoc
3892
3917
  onMouseLeave: () => {
3893
- tableSettingPopoverRenderer.syncSelectedCells();
3918
+ if (this.tableToolbar) {
3919
+ this.tableToolbar.syncSelectedCells();
3920
+ }
3894
3921
  },
3895
3922
  }, [
3896
3923
  // Add an extra div as slot container, to make sure the cursor can move to before/end of the table.
3897
3924
  h('div', {
3898
3925
  contentEditable: true,
3899
3926
  ref: this.useRef(renderData),
3900
- }, [table, tableSettingPopover, tableDynamicPopover]),
3927
+ }, [table]),
3901
3928
  ]),
3902
3929
  ]
3903
3930
  : [table];
@@ -3919,6 +3946,12 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3919
3946
  result.childrenContainerGetter = () => table;
3920
3947
  return result;
3921
3948
  }
3949
+ /**
3950
+ * Destroys the table toolbar popover.
3951
+ */
3952
+ destroy() {
3953
+ this.destroyTableToolbar();
3954
+ }
3922
3955
  /**
3923
3956
  * @inheritDoc
3924
3957
  */
@@ -3968,6 +4001,29 @@ class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3968
4001
  }
3969
4002
  }
3970
4003
  }
4004
+ /**
4005
+ * Renders the table setting popover toolbar if the context is editable.
4006
+ *
4007
+ * @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
4008
+ */
4009
+ renderTableToolbar(rteContext) {
4010
+ if (!rteContext.editable) {
4011
+ this.destroyTableToolbar();
4012
+ return;
4013
+ }
4014
+ if (!this.tableToolbar) {
4015
+ this.tableToolbar = new TableSettingPopoverRenderer(rteContext);
4016
+ this.tableToolbar.render();
4017
+ }
4018
+ }
4019
+ /**
4020
+ * Destroys the table setting popover toolbar if it exists.
4021
+ */
4022
+ destroyTableToolbar() {
4023
+ var _a;
4024
+ (_a = this.tableToolbar) === null || _a === void 0 ? void 0 : _a.destroy();
4025
+ this.tableToolbar = null;
4026
+ }
3971
4027
  }
3972
4028
 
3973
4029
  /**
@@ -4301,6 +4357,7 @@ class RTETableToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
4301
4357
  return createTablePopoverRenderer.render(h, super.renderButton(h, editorContext, {
4302
4358
  showArrowIcon: true,
4303
4359
  icon: 'rte-table',
4360
+ tooltip: { text: 'Insert table' },
4304
4361
  }));
4305
4362
  }
4306
4363
  /**
@@ -7481,6 +7538,7 @@ class VegaRTETableExtension extends VegaRTEExtension {
7481
7538
  * @inheritDoc
7482
7539
  */
7483
7540
  destroyExtension() {
7541
+ this.tableBlockRenderer.destroy();
7484
7542
  this.tableSelection.destroy();
7485
7543
  }
7486
7544
  }