@heartlandone/vega 2.84.0 → 2.85.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 (313) hide show
  1. package/dist/cjs/{app-globals-ea063074.js → app-globals-54327b0a.js} +1 -1
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-58bbc5fc.js → child-nodes-event-prevent-slimmer-f3979a03.js} +1 -1
  3. package/dist/cjs/{event-emit-slimmer-ecca412d.js → event-emit-slimmer-80e1c8ca.js} +1 -1
  4. package/dist/cjs/{image-annotation-action-a6e1e9ed.js → image-annotation-action-025389a7.js} +1 -1
  5. package/dist/cjs/{immutable-map-edf24b54.js → immutable-map-d711339d.js} +16 -4
  6. package/dist/cjs/index.cjs.js +4 -4
  7. package/dist/cjs/{internal-vega-event-manager-6b74b3af.js → internal-vega-event-manager-7e0d966d.js} +2 -1
  8. package/dist/cjs/loader.cjs.js +5 -5
  9. package/dist/cjs/{token-extension-39f2b886.js → token-extension-4f6ed976.js} +263 -218
  10. package/dist/cjs/vega-accordion.cjs.entry.js +3 -3
  11. package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
  12. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  13. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  14. package/dist/cjs/vega-button-circle.cjs.entry.js +4 -4
  15. package/dist/cjs/vega-button-group_2.cjs.entry.js +4 -4
  16. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  17. package/dist/cjs/vega-button.cjs.entry.js +4 -4
  18. package/dist/cjs/vega-calendar_4.cjs.entry.js +4 -4
  19. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  20. package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
  21. package/dist/cjs/vega-chip.cjs.entry.js +4 -4
  22. package/dist/cjs/vega-code-block.cjs.entry.js +4 -4
  23. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
  24. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +188 -46
  25. package/dist/cjs/vega-color-swatch.cjs.entry.js +7 -7
  26. package/dist/cjs/vega-combo-box.cjs.entry.js +4 -4
  27. package/dist/cjs/vega-date-picker_2.cjs.entry.js +4 -4
  28. package/dist/cjs/vega-dialog_2.cjs.entry.js +4 -4
  29. package/dist/cjs/vega-dropdown_5.cjs.entry.js +4 -4
  30. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  31. package/dist/cjs/{vega-event-id-c08ce3d3.js → vega-event-id-d9994eb3.js} +2 -0
  32. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  33. package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
  34. package/dist/cjs/vega-form.cjs.entry.js +5 -5
  35. package/dist/cjs/vega-image-uploader.cjs.entry.js +4 -4
  36. package/dist/cjs/vega-input-credit-card.cjs.entry.js +4 -4
  37. package/dist/cjs/vega-input-numeric.cjs.entry.js +4 -4
  38. package/dist/cjs/vega-input-passcode.cjs.entry.js +4 -4
  39. package/dist/cjs/vega-input-phone-number.cjs.entry.js +4 -4
  40. package/dist/cjs/vega-input-range.cjs.entry.js +4 -4
  41. package/dist/cjs/vega-input-select.cjs.entry.js +4 -4
  42. package/dist/cjs/vega-input.cjs.entry.js +3 -3
  43. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  44. package/dist/cjs/vega-left-nav_5.cjs.entry.js +3 -3
  45. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  46. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
  47. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
  48. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  49. package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
  50. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
  51. package/dist/cjs/vega-radio_2.cjs.entry.js +4 -4
  52. package/dist/cjs/vega-rich-text-content.cjs.entry.js +2 -2
  53. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +5 -5
  54. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +3 -3
  55. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  56. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
  57. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
  58. package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
  59. package/dist/cjs/vega-signature-capture.cjs.entry.js +3 -3
  60. package/dist/cjs/vega-stepper.cjs.entry.js +4 -4
  61. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  62. package/dist/cjs/vega-table_11.cjs.entry.js +1172 -282
  63. package/dist/cjs/vega-textarea.cjs.entry.js +4 -4
  64. package/dist/cjs/vega-time-picker_2.cjs.entry.js +4 -4
  65. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  66. package/dist/cjs/vega.cjs.js +5 -5
  67. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.js +24 -5
  68. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.js +15 -0
  69. package/dist/collection/components/vega-color-swatch/vega-color-swatch.js +6 -6
  70. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +53 -51
  71. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +40 -10
  72. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +75 -62
  73. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +1 -0
  74. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-expand-row-controller.js +88 -4
  75. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-row-draggable-controller.js +132 -0
  76. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sort-controller.js +14 -0
  77. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-renderer.js +8 -5
  78. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-col-group-renderer.js +6 -2
  79. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +8 -2
  80. package/dist/collection/components/vega-table/utils.js +4 -3
  81. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.js +13 -1
  82. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-state-controller.js +7 -0
  83. package/dist/collection/components/vega-table/vega-table-expand-row/vega-table-expand-row.js +7 -0
  84. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.js +10 -3
  85. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.js +9 -2
  86. package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.js +4 -3
  87. package/dist/collection/components/vega-table/vega-table-head/vega-table-head.js +5 -0
  88. package/dist/collection/components/vega-table/vega-table-head-row/slimmers/controllers/vega-table-head-row-state-controller.js +10 -3
  89. package/dist/collection/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.js +12 -2
  90. package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.js +5 -4
  91. package/dist/collection/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-state-controller.js +22 -1
  92. package/dist/collection/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.js +19 -4
  93. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.css +6 -0
  94. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.js +11 -1
  95. package/dist/collection/components/vega-table/vega-table.css +5 -0
  96. package/dist/collection/components/vega-table/vega-table.js +135 -11
  97. package/dist/collection/constants/ui.js +1 -0
  98. package/dist/collection/global/icons/grip-dots-vertical.js +3 -0
  99. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -1
  100. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  101. package/dist/collection/helpers/immutable/immutable-map.js +16 -4
  102. package/dist/collection/helpers/slimmers/draggable-element-slimmer.js +508 -0
  103. package/dist/collection/helpers/slimmers/popover-nested-slot-projection-slimmer.js +118 -0
  104. package/dist/esm/{app-globals-d06de2a5.js → app-globals-b1999c09.js} +5 -5
  105. package/dist/esm/{aria-dialog-focusable-trap-slimmer-853a91de.js → aria-dialog-focusable-trap-slimmer-6eb79723.js} +1 -1
  106. package/dist/esm/{child-nodes-event-prevent-slimmer-f65e2452.js → child-nodes-event-prevent-slimmer-75f93d85.js} +1 -1
  107. package/dist/esm/{code-block-65c8804b.js → code-block-e43c8120.js} +1 -1
  108. package/dist/esm/{component-value-history-controller-slimmer.abstract-26c154f6.js → component-value-history-controller-slimmer.abstract-60c1910e.js} +3 -3
  109. package/dist/esm/{content-state-e676bdf0.js → content-state-d363f2ca.js} +2 -2
  110. package/dist/esm/{element-appender-slimmer-d4a82dc3.js → element-appender-slimmer-05f487d7.js} +1 -1
  111. package/dist/esm/{event-emit-slimmer-18711776.js → event-emit-slimmer-1c57093d.js} +1 -1
  112. package/dist/esm/{form-field-controller-slimmer-9a0f8c54.js → form-field-controller-slimmer-ae8478b5.js} +2 -2
  113. package/dist/esm/{image-annotation-action-2d87b66a.js → image-annotation-action-008ca25b.js} +3 -3
  114. package/dist/esm/{immutable-map-612922a2.js → immutable-map-4fe22b11.js} +16 -4
  115. package/dist/esm/index.js +9 -9
  116. package/dist/esm/{internal-vega-event-manager-bed71930.js → internal-vega-event-manager-7cdf3c28.js} +2 -1
  117. package/dist/esm/loader.js +9 -9
  118. package/dist/esm/{public-rules-a61ff09f.js → public-rules-1561e357.js} +4 -4
  119. package/dist/esm/{range-d9e55d00.js → range-784d5ec8.js} +1 -1
  120. package/dist/esm/{rich-text-editor-required-rule-6a4c853a.js → rich-text-editor-required-rule-8768bc8d.js} +1 -1
  121. package/dist/esm/{split-cell-operation-2e700c5c.js → split-cell-operation-35ce149b.js} +3 -3
  122. package/dist/esm/{string-input-formatter-slimmer-ad234bec.js → string-input-formatter-slimmer-4059080b.js} +2 -2
  123. package/dist/esm/{sub-state-notify-slimmer-1f907173.js → sub-state-notify-slimmer-63ecb465.js} +1 -1
  124. package/dist/esm/{sub-state-observer-slimmer-090c500a.js → sub-state-observer-slimmer-2adbbe00.js} +1 -1
  125. package/dist/esm/{token-extension-d3a46c04.js → token-extension-23b5ab65.js} +266 -221
  126. package/dist/esm/vega-accordion.entry.js +3 -3
  127. package/dist/esm/vega-app-header-button.entry.js +4 -4
  128. package/dist/esm/vega-banner.entry.js +3 -3
  129. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  130. package/dist/esm/vega-button-circle.entry.js +5 -5
  131. package/dist/esm/vega-button-group_2.entry.js +7 -7
  132. package/dist/esm/vega-button-link.entry.js +4 -4
  133. package/dist/esm/vega-button.entry.js +5 -5
  134. package/dist/esm/vega-calendar_4.entry.js +7 -7
  135. package/dist/esm/vega-carousel.entry.js +3 -3
  136. package/dist/esm/vega-checkbox_2.entry.js +7 -7
  137. package/dist/esm/vega-chip.entry.js +4 -4
  138. package/dist/esm/vega-code-block.entry.js +8 -8
  139. package/dist/esm/vega-color-picker.entry.js +6 -6
  140. package/dist/esm/vega-color-swatch-picker.entry.js +192 -50
  141. package/dist/esm/vega-color-swatch.entry.js +7 -7
  142. package/dist/esm/vega-combo-box.entry.js +7 -7
  143. package/dist/esm/vega-date-picker_2.entry.js +11 -11
  144. package/dist/esm/vega-dialog_2.entry.js +6 -6
  145. package/dist/esm/vega-dropdown_5.entry.js +9 -9
  146. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  147. package/dist/esm/{vega-event-id-5841d1d3.js → vega-event-id-a6ccca66.js} +2 -1
  148. package/dist/esm/vega-field-label.entry.js +3 -3
  149. package/dist/esm/vega-file-uploader.entry.js +6 -6
  150. package/dist/esm/vega-form.entry.js +9 -9
  151. package/dist/esm/vega-image-uploader.entry.js +7 -7
  152. package/dist/esm/vega-input-credit-card.entry.js +7 -7
  153. package/dist/esm/vega-input-numeric.entry.js +8 -8
  154. package/dist/esm/vega-input-passcode.entry.js +7 -7
  155. package/dist/esm/vega-input-phone-number.entry.js +7 -7
  156. package/dist/esm/vega-input-range.entry.js +7 -7
  157. package/dist/esm/vega-input-select.entry.js +7 -7
  158. package/dist/esm/vega-input.entry.js +8 -8
  159. package/dist/esm/{vega-internal-event-id-194bac82.js → vega-internal-event-id-db974a0d.js} +1 -1
  160. package/dist/esm/vega-item-toggle.entry.js +3 -3
  161. package/dist/esm/vega-left-nav_5.entry.js +6 -6
  162. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  163. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  164. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  165. package/dist/esm/vega-pagination.entry.js +5 -5
  166. package/dist/esm/vega-popover_2.entry.js +6 -6
  167. package/dist/esm/vega-progress-tracker_2.entry.js +6 -6
  168. package/dist/esm/vega-radio_2.entry.js +7 -7
  169. package/dist/esm/vega-rich-text-content.entry.js +7 -7
  170. package/dist/esm/vega-rich-text-editor_4.entry.js +15 -15
  171. package/dist/esm/vega-rich-text-table-properties_3.entry.js +7 -7
  172. package/dist/esm/vega-segment-control.entry.js +3 -3
  173. package/dist/esm/vega-selection-chip_2.entry.js +8 -8
  174. package/dist/esm/vega-selection-tile_2.entry.js +8 -8
  175. package/dist/esm/vega-sidenav_3.entry.js +6 -6
  176. package/dist/esm/vega-signature-capture.entry.js +6 -6
  177. package/dist/esm/vega-stepper.entry.js +7 -7
  178. package/dist/esm/vega-tab-group_2.entry.js +4 -4
  179. package/dist/esm/vega-table_11.entry.js +1175 -285
  180. package/dist/esm/vega-textarea.entry.js +7 -7
  181. package/dist/esm/vega-time-picker_2.entry.js +8 -8
  182. package/dist/esm/vega-toggle-switch.entry.js +6 -6
  183. package/dist/esm/vega-tooltip_2.entry.js +2 -2
  184. package/dist/esm/vega.js +9 -9
  185. package/dist/esm/{wait-for-component-did-render-30cde59c.js → wait-for-component-did-render-9a83d343.js} +1 -1
  186. package/dist/sri/vega-sri-manifest.json +275 -275
  187. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.d.ts +9 -0
  188. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.d.ts +6 -0
  189. package/dist/types/components/vega-color-swatch/vega-color-swatch.d.ts +4 -4
  190. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +15 -11
  191. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +15 -0
  192. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +25 -22
  193. package/dist/types/components/vega-table/interface.d.ts +2 -0
  194. package/dist/types/components/vega-table/slimmers/controllers/vega-table-expand-row-controller.d.ts +35 -0
  195. package/dist/types/components/vega-table/slimmers/controllers/vega-table-row-draggable-controller.d.ts +52 -0
  196. package/dist/types/components/vega-table/slimmers/controllers/vega-table-sort-controller.d.ts +4 -0
  197. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-renderer.d.ts +3 -1
  198. package/dist/types/components/vega-table/slimmers/renderers/vega-table-col-group-renderer.d.ts +2 -1
  199. package/dist/types/components/vega-table/utils.d.ts +3 -2
  200. package/dist/types/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.d.ts +5 -0
  201. package/dist/types/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-state-controller.d.ts +1 -0
  202. package/dist/types/components/vega-table/vega-table-expand-row/vega-table-expand-row.d.ts +2 -0
  203. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.d.ts +2 -1
  204. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.d.ts +3 -1
  205. package/dist/types/components/vega-table/vega-table-foot-row/vega-table-foot-row.d.ts +6 -2
  206. package/dist/types/components/vega-table/vega-table-head/vega-table-head.d.ts +1 -0
  207. package/dist/types/components/vega-table/vega-table-head-row/slimmers/controllers/vega-table-head-row-state-controller.d.ts +2 -1
  208. package/dist/types/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.d.ts +3 -1
  209. package/dist/types/components/vega-table/vega-table-head-row/vega-table-head-row.d.ts +6 -2
  210. package/dist/types/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-state-controller.d.ts +3 -0
  211. package/dist/types/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.d.ts +3 -0
  212. package/dist/types/components/vega-table/vega-table-row/vega-table-row.d.ts +8 -0
  213. package/dist/types/components/vega-table/vega-table.d.ts +40 -5
  214. package/dist/types/components.d.ts +33 -8
  215. package/dist/types/constants/ui.d.ts +1 -1
  216. package/dist/types/global/icons/grip-dots-vertical.d.ts +3 -0
  217. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  218. package/dist/types/helpers/immutable/immutable-map.d.ts +4 -1
  219. package/dist/types/helpers/slimmers/draggable-element-slimmer.d.ts +260 -0
  220. package/dist/types/helpers/slimmers/popover-nested-slot-projection-slimmer.d.ts +65 -0
  221. package/dist/types/types/components.type.d.ts +2 -0
  222. package/dist/types/types/public-api.d.ts +1 -0
  223. package/dist/types/types/ui.type.d.ts +40 -0
  224. package/dist/vega/index.esm.js +1 -1
  225. package/dist/vega/{p-d3ed7c27.entry.js → p-0b5b0fd2.entry.js} +1 -1
  226. package/dist/vega/p-13e7f906.entry.js +1 -0
  227. package/dist/vega/{p-7595ad55.js → p-1d30cab2.js} +1 -1
  228. package/dist/vega/{p-39b71df9.entry.js → p-23b38467.entry.js} +1 -1
  229. package/dist/vega/{p-8d833b44.entry.js → p-25572ea7.entry.js} +1 -1
  230. package/dist/vega/{p-03cf2df1.entry.js → p-2ae5acfc.entry.js} +1 -1
  231. package/dist/vega/{p-5bbb3e68.entry.js → p-2fb26f4f.entry.js} +1 -1
  232. package/dist/vega/{p-c0323a55.entry.js → p-35d77c9c.entry.js} +1 -1
  233. package/dist/vega/{p-032183c1.js → p-386895e9.js} +1 -1
  234. package/dist/vega/{p-5ac4649a.entry.js → p-3c456e91.entry.js} +1 -1
  235. package/dist/vega/{p-20f0060f.entry.js → p-3d92d2af.entry.js} +1 -1
  236. package/dist/vega/{p-4123559f.entry.js → p-3e64fa38.entry.js} +1 -1
  237. package/dist/vega/{p-f986f875.entry.js → p-411ea209.entry.js} +1 -1
  238. package/dist/vega/{p-7cf1e1f7.entry.js → p-423762ae.entry.js} +1 -1
  239. package/dist/vega/{p-0f31b00b.entry.js → p-4530f0e1.entry.js} +1 -1
  240. package/dist/vega/{p-27b1dc0f.entry.js → p-487ecdb0.entry.js} +1 -1
  241. package/dist/vega/{p-b28d4f7d.js → p-48e3be6a.js} +1 -1
  242. package/dist/vega/{p-753a7832.entry.js → p-4afafeb3.entry.js} +1 -1
  243. package/dist/vega/{p-5409275a.entry.js → p-56c1a8ac.entry.js} +1 -1
  244. package/dist/vega/{p-56c28943.js → p-5904616e.js} +1 -1
  245. package/dist/vega/{p-bc2786f9.entry.js → p-59c6dcf7.entry.js} +1 -1
  246. package/dist/vega/p-5e50dbb9.js +1 -0
  247. package/dist/vega/p-5f377954.js +1 -1
  248. package/dist/vega/{p-e5546af5.entry.js → p-606d7113.entry.js} +1 -1
  249. package/dist/vega/{p-5215e1d8.entry.js → p-64b566be.entry.js} +1 -1
  250. package/dist/vega/{p-84030271.entry.js → p-69c11b7b.entry.js} +1 -1
  251. package/dist/vega/{p-effa6495.js → p-6b5cb920.js} +1 -1
  252. package/dist/vega/{p-aa985d73.js → p-6c43d54a.js} +1 -1
  253. package/dist/vega/{p-0e15fa94.entry.js → p-6fadee27.entry.js} +1 -1
  254. package/dist/vega/{p-549bea2c.entry.js → p-73c6669e.entry.js} +1 -1
  255. package/dist/vega/{p-a5e6a3be.js → p-77300901.js} +1 -1
  256. package/dist/vega/{p-7dca19d3.entry.js → p-77754d62.entry.js} +1 -1
  257. package/dist/vega/{p-88f57353.entry.js → p-79c12a64.entry.js} +1 -1
  258. package/dist/vega/{p-f8c700dd.entry.js → p-7f74cd41.entry.js} +1 -1
  259. package/dist/vega/{p-80cb302f.entry.js → p-887b3e2d.entry.js} +1 -1
  260. package/dist/vega/{p-b48b3264.js → p-8d48940d.js} +1 -1
  261. package/dist/vega/{p-5f23c52d.entry.js → p-9763fbbe.entry.js} +1 -1
  262. package/dist/vega/{p-865fc90b.entry.js → p-98a6cd8e.entry.js} +1 -1
  263. package/dist/vega/p-9af0e2e7.js +1 -0
  264. package/dist/vega/{p-f6414a24.entry.js → p-9e2b7718.entry.js} +1 -1
  265. package/dist/vega/{p-e1b1f5f9.entry.js → p-9eb00537.entry.js} +1 -1
  266. package/dist/vega/{p-f0e855b2.entry.js → p-9f36abf9.entry.js} +1 -1
  267. package/dist/vega/{p-b88eab9a.entry.js → p-9fc8bd1f.entry.js} +1 -1
  268. package/dist/vega/{p-9308f874.entry.js → p-a050c24d.entry.js} +1 -1
  269. package/dist/vega/{p-6f790577.js → p-a07c5dae.js} +1 -1
  270. package/dist/vega/{p-aa4d419c.entry.js → p-a49c25c2.entry.js} +1 -1
  271. package/dist/vega/{p-1df2c29b.entry.js → p-a9528dbd.entry.js} +1 -1
  272. package/dist/vega/{p-0caf52e0.js → p-a9e10a64.js} +1 -1
  273. package/dist/vega/{p-6cada843.js → p-ae1aa4df.js} +1 -1
  274. package/dist/vega/{p-a0c3968b.js → p-af5cb9bc.js} +1 -1
  275. package/dist/vega/{p-d6c9ef6c.entry.js → p-afd1b519.entry.js} +1 -1
  276. package/dist/vega/{p-5490d499.entry.js → p-bc74d7e7.entry.js} +1 -1
  277. package/dist/vega/{p-a2d6d695.entry.js → p-bceee942.entry.js} +1 -1
  278. package/dist/vega/{p-c6837173.entry.js → p-c15a58b5.entry.js} +1 -1
  279. package/dist/vega/{p-6ba71ec4.entry.js → p-c2388937.entry.js} +1 -1
  280. package/dist/vega/{p-3ae5f50e.entry.js → p-c2e1f33d.entry.js} +1 -1
  281. package/dist/vega/p-c31a32f4.js +1 -0
  282. package/dist/vega/{p-11a2f834.js → p-c347e08a.js} +1 -1
  283. package/dist/vega/{p-91739ed3.entry.js → p-c51ebb14.entry.js} +1 -1
  284. package/dist/vega/{p-b80217fa.entry.js → p-c601b331.entry.js} +1 -1
  285. package/dist/vega/p-c74060a7.js +1 -0
  286. package/dist/vega/{p-d3864b94.entry.js → p-c8fe46fd.entry.js} +1 -1
  287. package/dist/vega/{p-d76e3b3c.entry.js → p-cf2838c7.entry.js} +1 -1
  288. package/dist/vega/{p-e4c5b8d1.entry.js → p-d37636a5.entry.js} +1 -1
  289. package/dist/vega/{p-19e10a87.entry.js → p-d402eb7b.entry.js} +1 -1
  290. package/dist/vega/{p-ce975c69.entry.js → p-da8bb883.entry.js} +1 -1
  291. package/dist/vega/{p-68a96fbb.entry.js → p-dffbbc3d.entry.js} +1 -1
  292. package/dist/vega/{p-c47c37f2.js → p-e27626f6.js} +1 -1
  293. package/dist/vega/{p-6236f592.entry.js → p-e47b2c4c.entry.js} +1 -1
  294. package/dist/vega/{p-74136508.entry.js → p-ecbb63a5.entry.js} +1 -1
  295. package/dist/vega/p-ed26f4c8.entry.js +1 -0
  296. package/dist/vega/{p-43aaeb30.entry.js → p-effb285f.entry.js} +1 -1
  297. package/dist/vega/p-f1c672e4.js +1 -0
  298. package/dist/vega/p-f54fb4e5.js +1 -0
  299. package/dist/vega/{p-748268e6.entry.js → p-f604f2c9.entry.js} +1 -1
  300. package/dist/vega/{p-e5cc839a.entry.js → p-fa91805b.entry.js} +1 -1
  301. package/dist/vega/{p-aa040383.js → p-fb05335d.js} +1 -1
  302. package/dist/vega/{p-9375fbce.js → p-fcb0d4d8.js} +1 -1
  303. package/dist/vega/{p-bdddddb7.js → p-fcce494e.js} +1 -1
  304. package/dist/vega/vega.esm.js +1 -1
  305. package/package.json +1 -1
  306. package/dist/vega/p-220f8ee7.js +0 -1
  307. package/dist/vega/p-38af89b9.js +0 -1
  308. package/dist/vega/p-7dbaed6c.entry.js +0 -1
  309. package/dist/vega/p-874bf8b2.js +0 -1
  310. package/dist/vega/p-99670c56.entry.js +0 -1
  311. package/dist/vega/p-9de25451.js +0 -1
  312. package/dist/vega/p-b78eaec4.js +0 -1
  313. package/dist/vega/p-dec5b448.js +0 -1
@@ -25,7 +25,6 @@ import { TablePopoverBaseRenderer } from './table-popover-base-renderer';
25
25
  export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
26
26
  constructor(colors, renderContext) {
27
27
  super(renderContext);
28
- this.tableColorSchema = [];
29
28
  this.popoverCloseType = 'none'; // 'save' | 'cancel' | 'change' | 'none'
30
29
  this.tablePropertiesHandlerMap = {
31
30
  save: new TablePropertiesSaveEventHandler(),
@@ -53,7 +52,7 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
53
52
  this.tablePropertiesHandlerMap[eventKey].handle(extensionContext, this.currentTableBlock, e.detail, this.currentFocusNode);
54
53
  }
55
54
  // Update popover position to follow the target after styles change
56
- if (eventKey === 'change' && this.popoverRef) {
55
+ if (eventKey === 'change') {
57
56
  void this.popoverRef.show(true);
58
57
  }
59
58
  };
@@ -73,7 +72,7 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
73
72
  this.cellPropertiesHandlerMap[eventKey].handle(extensionContext, e.detail, this.currentFocusNode);
74
73
  }
75
74
  // Update popover position to follow the target after styles change
76
- if (eventKey === 'change' && this.popoverRef) {
75
+ if (eventKey === 'change') {
77
76
  void this.popoverRef.show(true);
78
77
  }
79
78
  };
@@ -125,55 +124,58 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
125
124
  await this.popoverRef.hide();
126
125
  }
127
126
  /**
128
- * Renders a vega-popover whose target and content are provided dynamically by callers.
127
+ * Re-targets the shared popovers to the given table.
129
128
  *
130
- * @param {VegaRTECreateElementFunction} h - The create element function.
131
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
132
- * @param {RTETableBlock} renderData - Current table block being rendered.
133
- * @returns {VegaRTERenderResult} The rendered popover host.
129
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
130
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
134
131
  */
135
- render(h, getTableRef, renderData) {
132
+ reTarget(tableBlock, getTableRef) {
136
133
  this.getTableRef = getTableRef;
137
- this.currentTableBlock = renderData;
138
- return h('vega-popover', {
139
- trigger: 'click',
140
- isScreenPosition: true,
141
- class: 'rte-table-dynamic-popover',
142
- // eslint-disable-next-line jsdoc/require-jsdoc
143
- ref: (popover) => {
144
- this.popoverRef = popover;
145
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => {
146
- const extensionContext = this.getTableExtensionContext();
147
- if (this.popoverCloseType === 'change' && extensionContext) {
148
- extensionContext.flushValue(extensionContext.host.value);
149
- }
150
- });
151
- },
152
- }, [
153
- h('div', {
154
- slot: 'popover',
155
- class: 'rte-table-dynamic-popover-content',
156
- }, [
157
- h('vega-rich-text-table-properties', {
158
- // eslint-disable-next-line jsdoc/require-jsdoc
159
- ref: (el) => (this.tablePropertiesFormRef = el),
160
- colors: this.tableColorSchema,
161
- type: TableSettingType.TABLE,
162
- onVegaCancel: this.handleTablePropertiesUpdate,
163
- onVegaChange: this.handleTablePropertiesUpdate,
164
- onVegaSave: this.handleTablePropertiesUpdate,
165
- }),
166
- h('vega-rich-text-table-properties', {
167
- // eslint-disable-next-line jsdoc/require-jsdoc
168
- ref: (el) => (this.cellPropertiesFormRef = el),
169
- colors: this.tableColorSchema,
170
- type: TableSettingType.CELL,
171
- onVegaCancel: this.handleCellPropertiesUpdate,
172
- onVegaChange: this.handleCellPropertiesUpdate,
173
- onVegaSave: this.handleCellPropertiesUpdate,
174
- }),
175
- ]),
176
- ]);
134
+ this.currentTableBlock = tableBlock;
135
+ }
136
+ /**
137
+ * Builds the popover DOM and appends it to the given container.
138
+ *
139
+ * @returns {Nullable<HTMLElement>} The constructed popover element.
140
+ */
141
+ render() {
142
+ const safeDocument = tryGetDocument();
143
+ if (safeDocument) {
144
+ const popover = safeDocument.createElement('vega-popover');
145
+ popover.trigger = 'click';
146
+ popover.isScreenPosition = true;
147
+ popover.className = 'rte-table-dynamic-popover';
148
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => {
149
+ const extensionContext = this.getTableExtensionContext();
150
+ if (this.popoverCloseType === 'change' && extensionContext) {
151
+ extensionContext.flushValue(extensionContext.host.value);
152
+ }
153
+ });
154
+ const slotDiv = safeDocument.createElement('div');
155
+ slotDiv.setAttribute('slot', 'popover');
156
+ slotDiv.className = 'rte-table-dynamic-popover-content';
157
+ const tablePropsForm = safeDocument.createElement('vega-rich-text-table-properties');
158
+ tablePropsForm.colors = this.tableColorSchema;
159
+ tablePropsForm.type = TableSettingType.TABLE;
160
+ tablePropsForm.setAttribute('type', TableSettingType.TABLE);
161
+ tablePropsForm.addEventListener('vegaCancel', this.handleTablePropertiesUpdate);
162
+ tablePropsForm.addEventListener('vegaChange', this.handleTablePropertiesUpdate);
163
+ tablePropsForm.addEventListener('vegaSave', this.handleTablePropertiesUpdate);
164
+ const cellPropsForm = safeDocument.createElement('vega-rich-text-table-properties');
165
+ cellPropsForm.colors = this.tableColorSchema;
166
+ cellPropsForm.type = TableSettingType.CELL;
167
+ cellPropsForm.setAttribute('type', TableSettingType.CELL);
168
+ cellPropsForm.addEventListener('vegaCancel', this.handleCellPropertiesUpdate);
169
+ cellPropsForm.addEventListener('vegaChange', this.handleCellPropertiesUpdate);
170
+ cellPropsForm.addEventListener('vegaSave', this.handleCellPropertiesUpdate);
171
+ slotDiv.appendChild(tablePropsForm);
172
+ slotDiv.appendChild(cellPropsForm);
173
+ popover.appendChild(slotDiv);
174
+ this.popoverRef = popover;
175
+ this.tablePropertiesFormRef = tablePropsForm;
176
+ this.cellPropertiesFormRef = cellPropsForm;
177
+ return popover;
178
+ }
177
179
  }
178
180
  /**
179
181
  * Updates the visibility of the pre-rendered content blocks based on type.
@@ -183,13 +185,13 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
183
185
  updateContent(type) {
184
186
  this.popoverCloseType = 'none';
185
187
  const extensionContext = this.getTableExtensionContext();
186
- if (this.tablePropertiesFormRef && type === 'TABLE') {
188
+ if (type === 'TABLE') {
187
189
  this.tablePropertiesFormRef.classList.remove('vega-hidden');
188
190
  this.cellPropertiesFormRef.classList.add('vega-hidden');
189
191
  this.tablePropertiesFormRef.defaultValue =
190
192
  TablePropertiesEventHandler.generateTablePropertiesForm(this.currentTableBlock);
191
193
  }
192
- else if (this.cellPropertiesFormRef && type === 'CELL') {
194
+ else if (type === 'CELL') {
193
195
  this.cellPropertiesFormRef.classList.remove('vega-hidden');
194
196
  this.tablePropertiesFormRef.classList.add('vega-hidden');
195
197
  if (extensionContext) {
@@ -1,13 +1,11 @@
1
1
  import { VegaRTEExtensionRenderer } from '../../base-extension-renderer';
2
2
  import styles from '../table-block-styles.css';
3
3
  import { DeleteTableBlockAction } from '../actions/delete-table-block-action';
4
- import { TableSettingPopoverRenderer } from './table-setting-popover-renderer';
5
4
  import { RTETableExtensionAnnotationTypeEnum } from '../annotations/table-annotation';
6
- import { TableDynamicPopoverRenderer } from './table-dynamic-popover-renderer';
7
5
  import changeManager from '../../../../../helpers/change-manager/change-manager';
8
6
  import DomNodeSubjectFactory from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
9
7
  import { VegaInternalRTEExtensionTableCellsSelectionAnchor } from '../../../../../helpers/event-manager/event-id/vega-internal-event-id';
10
- import { RTETableColorManager } from '../utils/table-color-manager';
8
+ import { TableSettingPopoverRenderer } from './table-setting-popover-renderer';
11
9
  /**
12
10
  * Renderer for the RTETableBlock.
13
11
  */
@@ -16,12 +14,9 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
16
14
  * @inheritDoc
17
15
  */
18
16
  doRender(h, renderData, rteContext) {
19
- const tableSettingPopoverRenderer = new TableSettingPopoverRenderer(rteContext);
20
- const tableDynamicPopoverRenderer = new TableDynamicPopoverRenderer(RTETableColorManager.getTableColors(), rteContext);
21
17
  let tableRef;
22
18
  const table = this.renderTable(h, renderData, (ref) => (tableRef = ref));
23
- const tableSettingPopover = tableSettingPopoverRenderer.render(h, renderData, () => tableRef, tableDynamicPopoverRenderer);
24
- const tableDynamicPopover = tableDynamicPopoverRenderer.render(h, () => tableRef, renderData);
19
+ this.renderTableToolbar(rteContext);
25
20
  const tableAnnotation = renderData.getAnnotationByType(RTETableExtensionAnnotationTypeEnum.TABLE);
26
21
  const children = rteContext.editable
27
22
  ? [
@@ -32,17 +27,23 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
32
27
  this.handleTableRemove(renderData, tableRef);
33
28
  },
34
29
  // eslint-disable-next-line jsdoc/require-jsdoc
35
- onClick: (event) => tableSettingPopoverRenderer.handleTableClick(event, tableRef),
30
+ onClick: (event) => {
31
+ if (this.tableToolbar) {
32
+ this.tableToolbar.handleTableClick(event, renderData, () => tableRef);
33
+ }
34
+ },
36
35
  // eslint-disable-next-line jsdoc/require-jsdoc
37
36
  onMouseLeave: () => {
38
- tableSettingPopoverRenderer.syncSelectedCells();
37
+ if (this.tableToolbar) {
38
+ this.tableToolbar.syncSelectedCells();
39
+ }
39
40
  },
40
41
  }, [
41
42
  // Add an extra div as slot container, to make sure the cursor can move to before/end of the table.
42
43
  h('div', {
43
44
  contentEditable: true,
44
45
  ref: this.useRef(renderData),
45
- }, [table, tableSettingPopover, tableDynamicPopover]),
46
+ }, [table]),
46
47
  ]),
47
48
  ]
48
49
  : [table];
@@ -64,6 +65,12 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
64
65
  result.childrenContainerGetter = () => table;
65
66
  return result;
66
67
  }
68
+ /**
69
+ * Destroys the table toolbar popover.
70
+ */
71
+ destroy() {
72
+ this.destroyTableToolbar();
73
+ }
67
74
  /**
68
75
  * @inheritDoc
69
76
  */
@@ -113,4 +120,27 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
113
120
  }
114
121
  }
115
122
  }
123
+ /**
124
+ * Renders the table setting popover toolbar if the context is editable.
125
+ *
126
+ * @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
127
+ */
128
+ renderTableToolbar(rteContext) {
129
+ if (!rteContext.editable) {
130
+ this.destroyTableToolbar();
131
+ return;
132
+ }
133
+ if (!this.tableToolbar) {
134
+ this.tableToolbar = new TableSettingPopoverRenderer(rteContext);
135
+ this.tableToolbar.render();
136
+ }
137
+ }
138
+ /**
139
+ * Destroys the table setting popover toolbar if it exists.
140
+ */
141
+ destroyTableToolbar() {
142
+ var _a;
143
+ (_a = this.tableToolbar) === null || _a === void 0 ? void 0 : _a.destroy();
144
+ this.tableToolbar = null;
145
+ }
116
146
  }
@@ -6,16 +6,19 @@ import { RowOperationEventHandler } from '../setting-event-handlers/row-operatio
6
6
  import { CaptionOperationEventHandler } from '../setting-event-handlers/caption-operation';
7
7
  import { ColumnOperationEventHandler } from '../setting-event-handlers/column-operation';
8
8
  import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
9
- import { VegaPopoverHide, VegaPopoverShow, } from '../../../../../helpers/event-manager/event-id/vega-event-id';
9
+ import { VegaPopoverShow } from '../../../../../helpers/event-manager/event-id/vega-event-id';
10
+ import { TableDynamicPopoverRenderer } from './table-dynamic-popover-renderer';
10
11
  import { MergeCellsOperationEventHandler } from '../setting-event-handlers/merge-cells-operation';
11
12
  import { SplitCellOperationEventHandler } from '../setting-event-handlers/split-cell-operation';
12
13
  import { TablePopoverBaseRenderer } from './table-popover-base-renderer';
14
+ import { RTETableColorManager } from '../utils/table-color-manager';
15
+ import { tryGetDocument } from '../../../../../utils/try-get-document';
13
16
  /**
14
- * Centralizes the popover rendering and interaction logic for table settings.
17
+ * Shared popover renderer for table settings.
15
18
  */
16
19
  export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
17
- constructor() {
18
- super(...arguments);
20
+ constructor(renderContext) {
21
+ super(renderContext);
19
22
  this.settingHandlers = [
20
23
  new RowOperationEventHandler(),
21
24
  new CaptionOperationEventHandler(),
@@ -24,38 +27,38 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
24
27
  new SplitCellOperationEventHandler(),
25
28
  ];
26
29
  /**
27
- * Show table setting popover when table is clicked.
28
- * Only the popover belonging to the nearest table will be shown,
29
- * which avoids outer tables showing their popover when an inner (nested) table is clicked.
30
+ * Re-targets and shows the table setting popover for the clicked table.
30
31
  *
31
- * @param {MouseEvent} event - The MouseEvent that triggered the table action
32
- * @param {HTMLElement} trigger - The element that can triggered the popover open.
32
+ * @param {MouseEvent} event - The MouseEvent that triggered the click.
33
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
34
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
33
35
  */
34
- this.handleTableClick = (event, trigger) => {
36
+ this.handleTableClick = (event, tableBlock, getTableRef) => {
35
37
  const target = event.target;
36
38
  const ownTrigger = target.closest('table');
37
- if (trigger !== ownTrigger) {
38
- void this.popoverRef.hide();
39
- void this.tableDynamicPopover.hide();
39
+ if (ownTrigger !== getTableRef()) {
40
40
  return;
41
41
  }
42
+ // Prevent the click from bubbling to ancestor tables. When this is a nested
43
+ // table click, the ancestor table still has the popover's stale click
44
+ // listener attached (from when it was the popover's target), which would
45
+ // toggle the popover off immediately after we show it.
46
+ event.stopPropagation();
47
+ this.reTarget(tableBlock, getTableRef);
42
48
  void this.tableDynamicPopover.hide();
43
- if (!this.popoverShow) {
44
- remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), ownTrigger);
45
- void this.popoverRef.show();
46
- }
49
+ remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), ownTrigger);
50
+ void this.popoverRef.show(true);
47
51
  };
48
52
  /**
49
53
  * Sync the selected cells from the table selection to the table setting component.
50
54
  */
51
55
  this.syncSelectedCells = () => {
52
56
  if (this.tableSettingRef) {
53
- const selectedCells = this.getTableSelectedCells();
54
- this.tableSettingRef.selectedCells = selectedCells;
57
+ this.tableSettingRef.selectedCells = this.getTableSelectedCells();
55
58
  }
56
59
  };
57
60
  /**
58
- * Receive setting menu click events.
61
+ * Handles setting menu click events.
59
62
  *
60
63
  * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
61
64
  */
@@ -63,7 +66,7 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
63
66
  const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
64
67
  if (handler) {
65
68
  const extensionContext = this.getTableExtensionContext();
66
- extensionContext && handler.execute(event.detail, extensionContext, this.tableData);
69
+ extensionContext && handler.execute(event.detail, extensionContext, this.tableBlock);
67
70
  if (event.detail[0] === TableSettingType.CAPTION) {
68
71
  this.updateTableSettingCaption();
69
72
  }
@@ -78,59 +81,69 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
78
81
  */
79
82
  this.handleTableSettingPopoverShow = () => {
80
83
  this.syncSelectedCells();
81
- this.popoverShow = true;
82
84
  };
85
+ this.tableDynamicPopover = new TableDynamicPopoverRenderer(RTETableColorManager.getTableColors(), renderContext);
83
86
  }
84
87
  /**
85
- * Render the popover host and inject the table-setting component with refs wired up.
86
- *
87
- * @param {VegaRTECreateElementFunction} h - The create element function.
88
- * @param {RTETableBlock} renderData - The table block to render.
89
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
90
- * @param {TableDynamicPopoverRenderer} tableDynamicPopover - Renderer used to show
91
- * the secondary table popover (for example, table-properties-specific settings).
92
- * @returns {VegaRTERenderResult} The rendered popover structure.
88
+ * Destroys the dynamic popover renderer and removes the container from the DOM.
93
89
  */
94
- render(h, renderData, getTableRef, tableDynamicPopover) {
95
- this.tableData = renderData;
96
- this.tableDynamicPopover = tableDynamicPopover;
97
- return h('vega-popover', {
98
- trigger: 'click',
99
- isScreenPosition: true,
100
- class: 'rte-table-setting-popover',
101
- // eslint-disable-next-line jsdoc/require-jsdoc
102
- ref: (popover) => {
103
- this.popoverRef = popover;
104
- if (this.popoverRef) {
105
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
106
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => (this.popoverShow = false));
107
- }
108
- },
109
- }, [
110
- h('div', { slot: 'popover' }, [
111
- h('vega-rich-text-table-setting', {
112
- // eslint-disable-next-line jsdoc/require-jsdoc
113
- ref: (ref) => {
114
- this.tableSettingRef = ref;
115
- if (ref) {
116
- ref.target = getTableRef();
117
- }
118
- },
119
- selectedCells: this.getTableSelectedCells(),
120
- onVegaClick: this.handleSettingMenuClick,
121
- }),
122
- ]),
123
- ]);
90
+ destroy() {
91
+ this.tableDynamicPopover.destroy();
92
+ if (this.popoverContainer) {
93
+ this.popoverContainer.remove();
94
+ }
95
+ }
96
+ /**
97
+ * Builds the popover DOM and appends it to the RTE host. Idempotent: subsequent calls are no-ops.
98
+ */
99
+ render() {
100
+ const safeDocument = tryGetDocument();
101
+ if (safeDocument && this.renderContext) {
102
+ this.popoverContainer = safeDocument.createElement('div');
103
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
104
+ this.renderContext.host.appendChild(this.popoverContainer);
105
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
106
+ const tableCellPopover = this.tableDynamicPopover.render();
107
+ const popover = safeDocument.createElement('vega-popover');
108
+ popover.trigger = 'click';
109
+ popover.isScreenPosition = true;
110
+ popover.className = 'rte-table-setting-popover';
111
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
112
+ const slotDiv = safeDocument.createElement('div');
113
+ slotDiv.setAttribute('slot', 'popover');
114
+ const tableSetting = safeDocument.createElement('vega-rich-text-table-setting');
115
+ tableSetting.addEventListener('vegaClick', this.handleSettingMenuClick);
116
+ slotDiv.appendChild(tableSetting);
117
+ popover.appendChild(slotDiv);
118
+ this.popoverContainer.appendChild(popover);
119
+ this.popoverContainer.appendChild(tableCellPopover);
120
+ this.popoverRef = popover;
121
+ this.tableSettingRef = tableSetting;
122
+ }
124
123
  }
125
124
  /**
126
- * Updates the table setting component caption state to match the given table data.
125
+ * Updates the table setting component caption state to match the current table data.
127
126
  */
128
127
  updateTableSettingCaption() {
129
- const hasCaption = this.tableData.hasCaption();
128
+ const hasCaption = this.tableBlock.hasCaption();
130
129
  if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
131
130
  this.tableSettingRef.hasCaption = hasCaption;
132
131
  }
133
132
  }
133
+ /**
134
+ * Re-targets the shared popovers to the given table.
135
+ *
136
+ * @param {RTETableBlock} tableBlock - The clicked table's block data.
137
+ * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
138
+ */
139
+ reTarget(tableBlock, getTableRef) {
140
+ if (this.tableSettingRef) {
141
+ this.tableBlock = tableBlock;
142
+ this.tableSettingRef.target = getTableRef();
143
+ this.tableSettingRef.selectedCells = this.getTableSelectedCells();
144
+ this.tableDynamicPopover.reTarget(tableBlock, getTableRef);
145
+ }
146
+ }
134
147
  /**
135
148
  * Collects and returns the currently selected table cells.
136
149
  *
@@ -138,6 +138,7 @@ export class VegaRTETableExtension extends VegaRTEExtension {
138
138
  * @inheritDoc
139
139
  */
140
140
  destroyExtension() {
141
+ this.tableBlockRenderer.destroy();
141
142
  this.tableSelection.destroy();
142
143
  }
143
144
  }
@@ -26,7 +26,7 @@ export class VegaTableExpandRowController extends VegaSlimmer {
26
26
  * @param {string} rowKey - The row key of the row
27
27
  */
28
28
  this.toggleExpandRow = (rowKey) => {
29
- this.rowExpandable && this.handleToggleExpandRow(rowKey, !this.isExpanded(rowKey));
29
+ this.isRowExpandable(rowKey) && this.handleToggleExpandRow(rowKey, !this.isExpanded(rowKey));
30
30
  };
31
31
  /**
32
32
  * Open expandable row by rowKey
@@ -34,7 +34,7 @@ export class VegaTableExpandRowController extends VegaSlimmer {
34
34
  * @param {string} rowKey - The row key of the row
35
35
  */
36
36
  this.openExpandRow = (rowKey) => {
37
- this.rowExpandable && this.handleToggleExpandRow(rowKey, true);
37
+ this.isRowExpandable(rowKey) && this.handleToggleExpandRow(rowKey, true);
38
38
  };
39
39
  /**
40
40
  * Close expanded row by rowKey
@@ -42,13 +42,22 @@ export class VegaTableExpandRowController extends VegaSlimmer {
42
42
  * @param {string} rowKey - The row key of the row
43
43
  */
44
44
  this.closeExpandRow = (rowKey) => {
45
- this.rowExpandable && this.handleToggleExpandRow(rowKey, false);
45
+ this.isRowExpandable(rowKey) && this.handleToggleExpandRow(rowKey, false);
46
46
  };
47
47
  /**
48
48
  * Close all expanded row
49
49
  */
50
50
  this.closeAllExpandRow = () => {
51
- this.rowExpandable && this.handleCloseAllExpandRow();
51
+ this.hasExpandableRow && this.handleCloseAllExpandRow();
52
+ };
53
+ /**
54
+ * Whether the row is expandable
55
+ *
56
+ * @param {VegaTableDataSourceItem} row - The row data
57
+ * @returns {boolean} Return true if the row is expandable
58
+ */
59
+ this.isExpandableRow = (row) => {
60
+ return this.expandableRows.includes(this.vegaTableDataSourceController.getRecordKey(row));
52
61
  };
53
62
  /**
54
63
  * Whether the row is expandable
@@ -159,6 +168,12 @@ export class VegaTableExpandRowController extends VegaSlimmer {
159
168
  ChangeManager.unregister(TABLE_EXPAND_ROW, this.expandObserver);
160
169
  remoteInvocationRegistry.unRegister(domNodeSubjectFactory.getSubject(this.host, VegaInternalTableRowExpand));
161
170
  }
171
+ /**
172
+ * Component lifecycle - componentWillLoad
173
+ */
174
+ componentWillLoad() {
175
+ this.setExpandableRows();
176
+ }
162
177
  /**
163
178
  * Component lifecycle - componentDidLoad
164
179
  */
@@ -169,8 +184,16 @@ export class VegaTableExpandRowController extends VegaSlimmer {
169
184
  * The callback to handle [watchRowExpandable]{@link VegaTable.watchRowExpandable}
170
185
  */
171
186
  watchRowExpandable() {
187
+ this.setExpandableRows();
172
188
  this.handleCloseAllExpandRow();
173
189
  }
190
+ /**
191
+ * Set the expandable rows based on the rowExpandable prop
192
+ */
193
+ watchCurrentData() {
194
+ this.setExpandableRows();
195
+ this.clearUnusedExpandRowSlot();
196
+ }
174
197
  /**
175
198
  * Initializes row expand observer
176
199
  */
@@ -201,6 +224,52 @@ export class VegaTableExpandRowController extends VegaSlimmer {
201
224
  return (input['host']['tagName'] === 'VEGA-TABLE-ROW' &&
202
225
  this.host === findParent(input['host'], 'vega-table'));
203
226
  }
227
+ /**
228
+ * Sets expandable rows and hasExpandableRow based on rowExpandable and currentData
229
+ */
230
+ setExpandableRows() {
231
+ if (typeof this.rowExpandable === 'boolean') {
232
+ this.expandableRows = this.rowExpandable
233
+ ? this.currentData.map((item) => this.vegaTableDataSourceController.getRecordKey(item))
234
+ : [];
235
+ this.hasExpandableRow = this.rowExpandable;
236
+ }
237
+ else if (typeof this.rowExpandable === 'function') {
238
+ const result = [];
239
+ this.currentData.forEach((item) => {
240
+ const rowKey = this.vegaTableDataSourceController.getRecordKey(item);
241
+ if (this.rowExpandable(rowKey)) {
242
+ result.push(rowKey);
243
+ }
244
+ });
245
+ this.expandableRows = result;
246
+ this.hasExpandableRow = result.length > 0;
247
+ }
248
+ else {
249
+ this.expandableRows = [];
250
+ this.hasExpandableRow = false;
251
+ }
252
+ }
253
+ /**
254
+ * Whether the row is expandable by rowKey
255
+ *
256
+ * @param {string} rowKey - The row key of the row
257
+ * @returns {boolean} Return true if the row is expandable
258
+ */
259
+ isRowExpandable(rowKey) {
260
+ return this.expandableRows.includes(rowKey);
261
+ }
262
+ /**
263
+ * Clear the expand row slot which is not expandable anymore to avoid confusion,
264
+ * this can be triggered by the change of rowExpandable or currentData
265
+ */
266
+ clearUnusedExpandRowSlot() {
267
+ this.expandedRowKeySet.toArray().forEach((rowKey) => {
268
+ if (!this.isRowExpandable(rowKey)) {
269
+ this.expandedRowKeySet.delete(rowKey);
270
+ }
271
+ });
272
+ }
204
273
  }
205
274
  VegaTableExpandRowController.expandRowSlotNamePrefix = 'vega-table-expand-row-';
206
275
  __decorate([
@@ -209,9 +278,18 @@ __decorate([
209
278
  __decorate([
210
279
  MapToComponentField()
211
280
  ], VegaTableExpandRowController.prototype, "expandedRowKeySet", void 0);
281
+ __decorate([
282
+ MapToComponentField({ writable: true })
283
+ ], VegaTableExpandRowController.prototype, "expandableRows", void 0);
284
+ __decorate([
285
+ MapToComponentField({ writable: true })
286
+ ], VegaTableExpandRowController.prototype, "hasExpandableRow", void 0);
212
287
  __decorate([
213
288
  MapToComponentField()
214
289
  ], VegaTableExpandRowController.prototype, "rowExpandable", void 0);
290
+ __decorate([
291
+ MapToComponentField()
292
+ ], VegaTableExpandRowController.prototype, "currentData", void 0);
215
293
  __decorate([
216
294
  MapToComponentField()
217
295
  ], VegaTableExpandRowController.prototype, "rowExpandEventEmitter", void 0);
@@ -224,6 +302,9 @@ __decorate([
224
302
  __decorate([
225
303
  MapToComponentMethod('disconnectedCallback')
226
304
  ], VegaTableExpandRowController.prototype, "disconnectedCallback", null);
305
+ __decorate([
306
+ MapToComponentMethod('componentWillLoad')
307
+ ], VegaTableExpandRowController.prototype, "componentWillLoad", null);
227
308
  __decorate([
228
309
  MapToComponentMethod('componentDidLoad')
229
310
  ], VegaTableExpandRowController.prototype, "componentDidLoad", null);
@@ -242,3 +323,6 @@ __decorate([
242
323
  __decorate([
243
324
  MapToComponentMethod('watchRowExpandable')
244
325
  ], VegaTableExpandRowController.prototype, "watchRowExpandable", null);
326
+ __decorate([
327
+ MapToComponentMethod('watchCurrentData')
328
+ ], VegaTableExpandRowController.prototype, "watchCurrentData", null);