@globalpayments/vega 2.97.0 → 2.98.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 (365) hide show
  1. package/dist/cjs/{app-globals-3f57f7b9.js → app-globals-b3f05631.js} +7 -7
  2. package/dist/cjs/{aria-dialog-focusable-trap-slimmer-73b4c0cb.js → aria-dialog-focusable-trap-slimmer-62147489.js} +1 -1
  3. package/dist/cjs/{code-block-28a7732e.js → code-block-d78c2b2c.js} +15 -8
  4. package/dist/cjs/{component-value-history-controller-slimmer.abstract-50cdba6e.js → component-value-history-controller-slimmer.abstract-beb00fea.js} +3 -3
  5. package/dist/cjs/constants-907d7d89.js +16 -0
  6. package/dist/cjs/{content-state-e2ab0f06.js → content-state-78a620a9.js} +2 -2
  7. package/dist/cjs/{element-appender-slimmer-ccb2e3c2.js → element-appender-slimmer-597e9e48.js} +1 -1
  8. package/dist/cjs/{form-field-controller-slimmer-58621b5e.js → form-field-controller-slimmer-a743be34.js} +2 -2
  9. package/dist/cjs/{image-annotation-action-b54dc669.js → image-annotation-action-85c4bd83.js} +2 -2
  10. package/dist/cjs/{image-extension-1e3eeaa3.js → image-extension-260fa69c.js} +2 -2
  11. package/dist/cjs/index.cjs.js +9 -9
  12. package/dist/cjs/{link-extension-71c27ff3.js → link-extension-220ff6a9.js} +2 -2
  13. package/dist/cjs/loader.cjs.js +9 -9
  14. package/dist/cjs/{public-rules-55e34d2e.js → public-rules-5657bce4.js} +4 -4
  15. package/dist/cjs/{range-eebe0e3c.js → range-c5afd53a.js} +1 -1
  16. package/dist/cjs/{rich-text-editor-required-rule-4fdee376.js → rich-text-editor-required-rule-385c1b61.js} +1 -1
  17. package/dist/cjs/{split-cell-operation-51097409.js → split-cell-operation-873d5db7.js} +2 -2
  18. package/dist/cjs/{string-input-formatter-slimmer-18d45942.js → string-input-formatter-slimmer-ef65cca7.js} +2 -2
  19. package/dist/cjs/{sub-state-notify-slimmer-18891389.js → sub-state-notify-slimmer-e264a120.js} +1 -1
  20. package/dist/cjs/{sub-state-observer-slimmer-eee2f0ae.js → sub-state-observer-slimmer-6033b824.js} +1 -1
  21. package/dist/cjs/{token-extension-608bbf7b.js → token-extension-78b5a026.js} +6 -6
  22. package/dist/cjs/vega-button-circle.cjs.entry.js +1 -1
  23. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  24. package/dist/cjs/vega-button.cjs.entry.js +1 -1
  25. package/dist/cjs/vega-calendar_5.cjs.entry.js +3 -3
  26. package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
  27. package/dist/cjs/vega-code-block.cjs.entry.js +8 -21
  28. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
  29. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +3 -3
  30. package/dist/cjs/vega-combo-box.cjs.entry.js +3 -3
  31. package/dist/cjs/vega-date-picker_2.cjs.entry.js +7 -7
  32. package/dist/cjs/vega-dialog_2.cjs.entry.js +2 -2
  33. package/dist/cjs/vega-dropdown_5.cjs.entry.js +24 -18
  34. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  35. package/dist/cjs/vega-file-uploader.cjs.entry.js +38 -5
  36. package/dist/cjs/vega-form.cjs.entry.js +3 -3
  37. package/dist/cjs/vega-image-uploader.cjs.entry.js +3 -3
  38. package/dist/cjs/vega-input-credit-card.cjs.entry.js +3 -3
  39. package/dist/cjs/vega-input-numeric.cjs.entry.js +4 -4
  40. package/dist/cjs/vega-input-passcode.cjs.entry.js +3 -3
  41. package/dist/cjs/vega-input-phone-number.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
  43. package/dist/cjs/vega-input-select.cjs.entry.js +3 -3
  44. package/dist/cjs/vega-input.cjs.entry.js +12 -7
  45. package/dist/cjs/{vega-internal-event-id-ecc5b87a.js → vega-internal-event-id-f4d33037.js} +2 -0
  46. package/dist/cjs/vega-left-nav_5.cjs.entry.js +3 -3
  47. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +1 -1
  48. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
  49. package/dist/cjs/vega-pagination.cjs.entry.js +1 -1
  50. package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
  51. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
  52. package/dist/cjs/vega-radio_2.cjs.entry.js +3 -3
  53. package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
  54. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +13 -13
  55. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +4 -4
  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 +3 -3
  61. package/dist/cjs/vega-table_11.cjs.entry.js +1140 -446
  62. package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
  63. package/dist/cjs/vega-time-picker_2.cjs.entry.js +4 -4
  64. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  65. package/dist/cjs/vega-tooltip_2.cjs.entry.js +2 -2
  66. package/dist/cjs/vega.cjs.js +9 -9
  67. package/dist/cjs/{wait-for-component-did-render-02ca4bee.js → wait-for-component-did-render-44d006ee.js} +1 -1
  68. package/dist/collection/components/vega-accordion/vega-accordion.js +2 -0
  69. package/dist/collection/components/vega-app-footer/vega-app-footer.js +2 -0
  70. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +2 -0
  71. package/dist/collection/components/vega-banner/vega-banner.js +2 -0
  72. package/dist/collection/components/vega-box/vega-box.js +2 -0
  73. package/dist/collection/components/vega-brand-logo/vega-brand-logo.js +2 -0
  74. package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +2 -0
  75. package/dist/collection/components/vega-button/vega-button.js +2 -0
  76. package/dist/collection/components/vega-button-circle/vega-button-circle.js +2 -0
  77. package/dist/collection/components/vega-button-group/vega-button-group.js +2 -0
  78. package/dist/collection/components/vega-button-link/vega-button-link.js +2 -0
  79. package/dist/collection/components/vega-calendar/vega-calendar.js +2 -0
  80. package/dist/collection/components/vega-card/vega-card.js +2 -0
  81. package/dist/collection/components/vega-carousel/vega-carousel.js +2 -0
  82. package/dist/collection/components/vega-checkbox/vega-checkbox.js +2 -0
  83. package/dist/collection/components/vega-chip/vega-chip.js +2 -0
  84. package/dist/collection/components/vega-code-block/slimmers/controllers/code-highlight-parser.abstract.js +4 -17
  85. package/dist/collection/components/vega-color-picker/vega-color-picker.js +2 -0
  86. package/dist/collection/components/vega-combo-box/vega-combo-box.js +2 -0
  87. package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +2 -0
  88. package/dist/collection/components/vega-date-picker/vega-date-picker.js +2 -0
  89. package/dist/collection/components/vega-divider/vega-divider.js +2 -0
  90. package/dist/collection/components/vega-dropdown/constants.js +10 -0
  91. package/dist/collection/components/vega-dropdown/vega-dropdown.js +45 -14
  92. package/dist/collection/components/vega-field-error/vega-field-error.js +2 -0
  93. package/dist/collection/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-file-list-renderer.js +22 -2
  94. package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +63 -6
  95. package/dist/collection/components/vega-flag-icon/vega-flag-icon.js +2 -0
  96. package/dist/collection/components/vega-flex/vega-flex.js +2 -0
  97. package/dist/collection/components/vega-font/vega-font.js +2 -0
  98. package/dist/collection/components/vega-form/vega-form.js +2 -0
  99. package/dist/collection/components/vega-grid/vega-grid.js +2 -0
  100. package/dist/collection/components/vega-icon/vega-icon.js +2 -0
  101. package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +2 -0
  102. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +7 -2
  103. package/dist/collection/components/vega-input/vega-input.js +2 -0
  104. package/dist/collection/components/vega-input-credit-card/vega-input-credit-card.js +2 -0
  105. package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +2 -0
  106. package/dist/collection/components/vega-input-passcode/vega-input-passcode.js +2 -0
  107. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +2 -0
  108. package/dist/collection/components/vega-input-range/vega-input-range.js +2 -0
  109. package/dist/collection/components/vega-input-select/vega-input-select.js +2 -0
  110. package/dist/collection/components/vega-item-toggle/vega-item-toggle.js +2 -0
  111. package/dist/collection/components/vega-loading-indicator/vega-loading-indicator.js +2 -0
  112. package/dist/collection/components/vega-modal/vega-modal.js +2 -0
  113. package/dist/collection/components/vega-page-notification/vega-page-notification.js +2 -0
  114. package/dist/collection/components/vega-pagination/vega-pagination.js +2 -0
  115. package/dist/collection/components/vega-popover/vega-popover.js +2 -0
  116. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +2 -0
  117. package/dist/collection/components/vega-radio/vega-radio.js +2 -0
  118. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +3 -0
  119. package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +2 -1
  120. package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +10 -6
  121. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +2 -0
  122. package/dist/collection/components/vega-section-title/vega-section-title.js +2 -0
  123. package/dist/collection/components/vega-segment-control/vega-segment-control.js +2 -0
  124. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +2 -0
  125. package/dist/collection/components/vega-selection-tile/vega-selection-tile.js +2 -0
  126. package/dist/collection/components/vega-sidenav/vega-sidenav.js +2 -0
  127. package/dist/collection/components/vega-signature-capture/vega-signature-capture.js +2 -0
  128. package/dist/collection/components/vega-skeleton/vega-skeleton.js +2 -0
  129. package/dist/collection/components/vega-stepper/vega-stepper.js +2 -0
  130. package/dist/collection/components/vega-tab-group/vega-tab-group.js +2 -0
  131. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-column-structure-model-controller.js +17 -7
  132. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-head-template-structure-controller.js +440 -0
  133. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-render-input-controller.js +11 -3
  134. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +207 -17
  135. package/dist/collection/components/vega-table/vega-table-foot/vega-table-foot.css +1 -0
  136. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +4 -1
  137. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.css +15 -0
  138. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +1 -1
  139. package/dist/collection/components/vega-table/vega-table-head-cell/slimmers/controllers/vega-table-head-cell-template-structure-controller.js +28 -0
  140. package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.css +1 -0
  141. package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.js +68 -4
  142. package/dist/collection/components/vega-table/vega-table.js +15 -0
  143. package/dist/collection/components/vega-textarea/vega-textarea.js +2 -0
  144. package/dist/collection/components/vega-time-picker/vega-time-picker.js +2 -0
  145. package/dist/collection/components/vega-toggle-switch/vega-toggle-switch.js +2 -0
  146. package/dist/collection/components/vega-tooltip/vega-tooltip.js +2 -0
  147. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
  148. package/dist/esm/{app-globals-d3991e53.js → app-globals-95c7110a.js} +7 -7
  149. package/dist/esm/{aria-dialog-focusable-trap-slimmer-9eae86c6.js → aria-dialog-focusable-trap-slimmer-f069f54d.js} +1 -1
  150. package/dist/esm/{code-block-8df86434.js → code-block-9c513169.js} +15 -8
  151. package/dist/esm/{component-value-history-controller-slimmer.abstract-e4b95997.js → component-value-history-controller-slimmer.abstract-9cef2a2a.js} +3 -3
  152. package/dist/esm/constants-4725f97f.js +13 -0
  153. package/dist/esm/{content-state-c63fbeda.js → content-state-25c81c08.js} +2 -2
  154. package/dist/esm/{element-appender-slimmer-24be8e94.js → element-appender-slimmer-8a06ecdd.js} +1 -1
  155. package/dist/esm/{form-field-controller-slimmer-d8628837.js → form-field-controller-slimmer-68fc5380.js} +2 -2
  156. package/dist/esm/{image-annotation-action-fcceff95.js → image-annotation-action-d7f2aecc.js} +2 -2
  157. package/dist/esm/{image-extension-3280bdb0.js → image-extension-fbd1ed6e.js} +2 -2
  158. package/dist/esm/index.js +9 -9
  159. package/dist/esm/{link-extension-f92c06ef.js → link-extension-e8ee103e.js} +2 -2
  160. package/dist/esm/loader.js +9 -9
  161. package/dist/esm/{public-rules-3695aaf7.js → public-rules-49de79c7.js} +4 -4
  162. package/dist/esm/{range-717d552d.js → range-b678c693.js} +1 -1
  163. package/dist/esm/{rich-text-editor-required-rule-2e39264a.js → rich-text-editor-required-rule-578e0958.js} +1 -1
  164. package/dist/esm/{split-cell-operation-6c26af91.js → split-cell-operation-1c8e7585.js} +2 -2
  165. package/dist/esm/{string-input-formatter-slimmer-68b2af39.js → string-input-formatter-slimmer-0006a107.js} +2 -2
  166. package/dist/esm/{sub-state-notify-slimmer-0f72ce74.js → sub-state-notify-slimmer-23b7d0e8.js} +1 -1
  167. package/dist/esm/{sub-state-observer-slimmer-64532d94.js → sub-state-observer-slimmer-722f6b92.js} +1 -1
  168. package/dist/esm/{token-extension-5082a4d2.js → token-extension-f2d009e3.js} +6 -6
  169. package/dist/esm/vega-button-circle.entry.js +1 -1
  170. package/dist/esm/vega-button-group_2.entry.js +3 -3
  171. package/dist/esm/vega-button.entry.js +1 -1
  172. package/dist/esm/vega-calendar_5.entry.js +3 -3
  173. package/dist/esm/vega-checkbox_2.entry.js +3 -3
  174. package/dist/esm/vega-code-block.entry.js +8 -21
  175. package/dist/esm/vega-color-picker.entry.js +3 -3
  176. package/dist/esm/vega-color-swatch-picker.entry.js +3 -3
  177. package/dist/esm/vega-combo-box.entry.js +3 -3
  178. package/dist/esm/vega-date-picker_2.entry.js +7 -7
  179. package/dist/esm/vega-dialog_2.entry.js +2 -2
  180. package/dist/esm/vega-dropdown_5.entry.js +20 -14
  181. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  182. package/dist/esm/vega-file-uploader.entry.js +38 -5
  183. package/dist/esm/vega-form.entry.js +3 -3
  184. package/dist/esm/vega-image-uploader.entry.js +3 -3
  185. package/dist/esm/vega-input-credit-card.entry.js +3 -3
  186. package/dist/esm/vega-input-numeric.entry.js +4 -4
  187. package/dist/esm/vega-input-passcode.entry.js +3 -3
  188. package/dist/esm/vega-input-phone-number.entry.js +3 -3
  189. package/dist/esm/vega-input-range.entry.js +3 -3
  190. package/dist/esm/vega-input-select.entry.js +3 -3
  191. package/dist/esm/vega-input.entry.js +12 -7
  192. package/dist/esm/{vega-internal-event-id-827eb1ce.js → vega-internal-event-id-86fce049.js} +2 -1
  193. package/dist/esm/vega-left-nav_5.entry.js +3 -3
  194. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +1 -1
  195. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -1
  196. package/dist/esm/vega-pagination.entry.js +1 -1
  197. package/dist/esm/vega-popover_2.entry.js +3 -3
  198. package/dist/esm/vega-progress-tracker_2.entry.js +3 -3
  199. package/dist/esm/vega-radio_2.entry.js +3 -3
  200. package/dist/esm/vega-rich-text-content.entry.js +7 -7
  201. package/dist/esm/vega-rich-text-editor_4.entry.js +13 -13
  202. package/dist/esm/vega-rich-text-table-properties_3.entry.js +4 -4
  203. package/dist/esm/vega-selection-chip_2.entry.js +4 -4
  204. package/dist/esm/vega-selection-tile_2.entry.js +4 -4
  205. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  206. package/dist/esm/vega-signature-capture.entry.js +3 -3
  207. package/dist/esm/vega-stepper.entry.js +3 -3
  208. package/dist/esm/vega-table_11.entry.js +1141 -447
  209. package/dist/esm/vega-textarea.entry.js +3 -3
  210. package/dist/esm/vega-time-picker_2.entry.js +4 -4
  211. package/dist/esm/vega-toggle-switch.entry.js +3 -3
  212. package/dist/esm/vega-tooltip_2.entry.js +2 -2
  213. package/dist/esm/vega.js +9 -9
  214. package/dist/esm/{wait-for-component-did-render-0c237cb8.js → wait-for-component-did-render-ff7062aa.js} +1 -1
  215. package/dist/sri/vega-sri-manifest.json +228 -224
  216. package/dist/types/components/vega-accordion/vega-accordion.d.ts +2 -0
  217. package/dist/types/components/vega-app-footer/vega-app-footer.d.ts +2 -0
  218. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +2 -0
  219. package/dist/types/components/vega-banner/vega-banner.d.ts +2 -0
  220. package/dist/types/components/vega-box/vega-box.d.ts +2 -0
  221. package/dist/types/components/vega-brand-logo/vega-brand-logo.d.ts +2 -0
  222. package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +2 -0
  223. package/dist/types/components/vega-button/vega-button.d.ts +2 -0
  224. package/dist/types/components/vega-button-circle/vega-button-circle.d.ts +2 -0
  225. package/dist/types/components/vega-button-group/vega-button-group.d.ts +2 -0
  226. package/dist/types/components/vega-button-link/vega-button-link.d.ts +2 -0
  227. package/dist/types/components/vega-calendar/vega-calendar.d.ts +2 -0
  228. package/dist/types/components/vega-card/vega-card.d.ts +2 -0
  229. package/dist/types/components/vega-carousel/vega-carousel.d.ts +2 -0
  230. package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +2 -0
  231. package/dist/types/components/vega-chip/vega-chip.d.ts +2 -0
  232. package/dist/types/components/vega-code-block/slimmers/controllers/code-highlight-parser.abstract.d.ts +2 -1
  233. package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +2 -0
  234. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +2 -0
  235. package/dist/types/components/vega-counter-badge/vega-counter-badge.d.ts +2 -0
  236. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +2 -0
  237. package/dist/types/components/vega-divider/vega-divider.d.ts +2 -0
  238. package/dist/types/components/vega-dropdown/constants.d.ts +12 -0
  239. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +9 -0
  240. package/dist/types/components/vega-field-error/vega-field-error.d.ts +2 -0
  241. package/dist/types/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-file-list-renderer.d.ts +10 -0
  242. package/dist/types/components/vega-file-uploader/types.d.ts +4 -0
  243. package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +15 -0
  244. package/dist/types/components/vega-flag-icon/vega-flag-icon.d.ts +2 -0
  245. package/dist/types/components/vega-flex/vega-flex.d.ts +2 -0
  246. package/dist/types/components/vega-font/vega-font.d.ts +2 -0
  247. package/dist/types/components/vega-form/vega-form.d.ts +2 -0
  248. package/dist/types/components/vega-grid/vega-grid.d.ts +2 -0
  249. package/dist/types/components/vega-icon/vega-icon.d.ts +2 -0
  250. package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +2 -0
  251. package/dist/types/components/vega-input/types.d.ts +11 -1
  252. package/dist/types/components/vega-input/vega-input.d.ts +2 -0
  253. package/dist/types/components/vega-input-credit-card/vega-input-credit-card.d.ts +2 -0
  254. package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +2 -0
  255. package/dist/types/components/vega-input-passcode/vega-input-passcode.d.ts +2 -0
  256. package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +2 -0
  257. package/dist/types/components/vega-input-range/vega-input-range.d.ts +2 -0
  258. package/dist/types/components/vega-input-select/vega-input-select.d.ts +2 -0
  259. package/dist/types/components/vega-item-toggle/vega-item-toggle.d.ts +2 -0
  260. package/dist/types/components/vega-loading-indicator/vega-loading-indicator.d.ts +2 -0
  261. package/dist/types/components/vega-modal/vega-modal.d.ts +2 -0
  262. package/dist/types/components/vega-page-notification/vega-page-notification.d.ts +2 -0
  263. package/dist/types/components/vega-pagination/vega-pagination.d.ts +2 -0
  264. package/dist/types/components/vega-popover/vega-popover.d.ts +2 -0
  265. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +2 -0
  266. package/dist/types/components/vega-radio/vega-radio.d.ts +2 -0
  267. package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +7 -0
  268. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +2 -0
  269. package/dist/types/components/vega-section-title/vega-section-title.d.ts +2 -0
  270. package/dist/types/components/vega-segment-control/vega-segment-control.d.ts +2 -0
  271. package/dist/types/components/vega-selection-chip/vega-selection-chip.d.ts +2 -0
  272. package/dist/types/components/vega-selection-tile/vega-selection-tile.d.ts +2 -0
  273. package/dist/types/components/vega-sidenav/vega-sidenav.d.ts +2 -0
  274. package/dist/types/components/vega-signature-capture/vega-signature-capture.d.ts +2 -0
  275. package/dist/types/components/vega-skeleton/vega-skeleton.d.ts +2 -0
  276. package/dist/types/components/vega-stepper/vega-stepper.d.ts +2 -0
  277. package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +2 -0
  278. package/dist/types/components/vega-table/slimmers/controllers/vega-table-column-structure-model-controller.d.ts +8 -4
  279. package/dist/types/components/vega-table/slimmers/controllers/vega-table-head-template-structure-controller.d.ts +168 -0
  280. package/dist/types/components/vega-table/slimmers/controllers/vega-table-render-input-controller.d.ts +8 -1
  281. package/dist/types/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.d.ts +76 -0
  282. package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +1 -0
  283. package/dist/types/components/vega-table/vega-table-head-cell/slimmers/controllers/vega-table-head-cell-template-structure-controller.d.ts +12 -0
  284. package/dist/types/components/vega-table/vega-table-head-cell/vega-table-head-cell.d.ts +19 -0
  285. package/dist/types/components/vega-table/vega-table.d.ts +6 -0
  286. package/dist/types/components/vega-textarea/vega-textarea.d.ts +2 -0
  287. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +2 -0
  288. package/dist/types/components/vega-toggle-switch/vega-toggle-switch.d.ts +2 -0
  289. package/dist/types/components/vega-tooltip/vega-tooltip.d.ts +2 -0
  290. package/dist/types/components.d.ts +54 -0
  291. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
  292. package/dist/vega/index.esm.js +1 -1
  293. package/dist/vega/{p-2eb8e167.entry.js → p-02d3ce79.entry.js} +1 -1
  294. package/dist/vega/{p-3488a3f1.entry.js → p-035e2f05.entry.js} +1 -1
  295. package/dist/vega/p-03eeadc1.entry.js +1 -0
  296. package/dist/vega/{p-d2cbcf5e.entry.js → p-085d1647.entry.js} +1 -1
  297. package/dist/vega/{p-36c89520.entry.js → p-0cbf09f7.entry.js} +1 -1
  298. package/dist/vega/{p-1d5e05d9.js → p-0eb29065.js} +1 -1
  299. package/dist/vega/{p-2ff4ae1c.js → p-10d30c03.js} +1 -1
  300. package/dist/vega/{p-4c3a08be.entry.js → p-17c69503.entry.js} +1 -1
  301. package/dist/vega/{p-9be02fa5.js → p-1abd3c17.js} +1 -1
  302. package/dist/vega/{p-98fc5821.entry.js → p-1aedbfd2.entry.js} +1 -1
  303. package/dist/vega/{p-c3646101.entry.js → p-1cff027b.entry.js} +1 -1
  304. package/dist/vega/{p-deaf037a.entry.js → p-2a245138.entry.js} +1 -1
  305. package/dist/vega/{p-a034dfc0.entry.js → p-2f07d719.entry.js} +1 -1
  306. package/dist/vega/{p-0499e65a.entry.js → p-36d9e782.entry.js} +1 -1
  307. package/dist/vega/{p-e9d09211.js → p-373541fa.js} +1 -1
  308. package/dist/vega/{p-703ac992.entry.js → p-3737b9e2.entry.js} +1 -1
  309. package/dist/vega/{p-e9b005df.js → p-3d0b4074.js} +1 -1
  310. package/dist/vega/p-4a2fe3a4.js +1 -0
  311. package/dist/vega/{p-040ea356.entry.js → p-4bfe3258.entry.js} +1 -1
  312. package/dist/vega/{p-21f608e8.entry.js → p-4cbfc01e.entry.js} +1 -1
  313. package/dist/vega/{p-21626b93.entry.js → p-4e065ef7.entry.js} +1 -1
  314. package/dist/vega/{p-c29934ef.js → p-4fd0cf01.js} +1 -1
  315. package/dist/vega/{p-3af5e87b.entry.js → p-52c69f9e.entry.js} +1 -1
  316. package/dist/vega/{p-e7e963ba.entry.js → p-544ce391.entry.js} +1 -1
  317. package/dist/vega/{p-8e7932bc.js → p-56493601.js} +1 -1
  318. package/dist/vega/{p-8611465f.entry.js → p-56598858.entry.js} +1 -1
  319. package/dist/vega/{p-e1029acc.js → p-56db3323.js} +1 -1
  320. package/dist/vega/p-571ec00b.js +1 -0
  321. package/dist/vega/{p-abbceebf.entry.js → p-585e4f1c.entry.js} +1 -1
  322. package/dist/vega/p-5b1f5e4a.entry.js +1 -0
  323. package/dist/vega/p-5f377954.js +1 -1
  324. package/dist/vega/{p-10d43a80.entry.js → p-6234852e.entry.js} +1 -1
  325. package/dist/vega/p-67eaf77e.js +1 -0
  326. package/dist/vega/{p-2540fd1c.entry.js → p-6d4518d7.entry.js} +1 -1
  327. package/dist/vega/p-6db1b9ac.js +1 -0
  328. package/dist/vega/{p-363ee8a5.entry.js → p-6f537797.entry.js} +1 -1
  329. package/dist/vega/{p-0809c651.js → p-6fd4f2c6.js} +1 -1
  330. package/dist/vega/p-72fd17a1.entry.js +1 -0
  331. package/dist/vega/{p-b594a11c.entry.js → p-7dcd2850.entry.js} +1 -1
  332. package/dist/vega/{p-5e37b041.js → p-7e8fdac4.js} +1 -1
  333. package/dist/vega/{p-d25c1a48.js → p-810c9c29.js} +1 -1
  334. package/dist/vega/{p-a2bd621e.js → p-83ad8988.js} +1 -1
  335. package/dist/vega/{p-26760c66.entry.js → p-8c56d74d.entry.js} +1 -1
  336. package/dist/vega/{p-09524fec.js → p-8d2501b2.js} +1 -1
  337. package/dist/vega/{p-1132a74e.entry.js → p-94975537.entry.js} +1 -1
  338. package/dist/vega/{p-9c4c474e.entry.js → p-95c18f79.entry.js} +1 -1
  339. package/dist/vega/p-9834d5d4.entry.js +1 -0
  340. package/dist/vega/{p-dad7d2ac.js → p-a090b2be.js} +1 -1
  341. package/dist/vega/{p-f1078e63.js → p-a81ad3bd.js} +1 -1
  342. package/dist/vega/{p-29e3eb12.js → p-c41a2d4a.js} +1 -1
  343. package/dist/vega/{p-8ed3b2b6.entry.js → p-c5fb8a69.entry.js} +1 -1
  344. package/dist/vega/{p-d3413a78.entry.js → p-c6d775b8.entry.js} +1 -1
  345. package/dist/vega/{p-046203cb.entry.js → p-c70748f7.entry.js} +1 -1
  346. package/dist/vega/{p-53fd3c41.entry.js → p-c98c2f5f.entry.js} +1 -1
  347. package/dist/vega/{p-aeb50cad.entry.js → p-ca3c1317.entry.js} +1 -1
  348. package/dist/vega/{p-f5095035.entry.js → p-cb81126a.entry.js} +1 -1
  349. package/dist/vega/{p-775ecfad.entry.js → p-cf4b3d40.entry.js} +1 -1
  350. package/dist/vega/{p-3980dfa8.entry.js → p-cfe268a8.entry.js} +1 -1
  351. package/dist/vega/{p-e3fdb65c.entry.js → p-d470fce2.entry.js} +1 -1
  352. package/dist/vega/{p-8ff92914.entry.js → p-da867019.entry.js} +1 -1
  353. package/dist/vega/{p-3f183b52.js → p-daba4af1.js} +1 -1
  354. package/dist/vega/{p-9664e914.entry.js → p-f62c5a20.entry.js} +1 -1
  355. package/dist/vega/{p-6b76b572.entry.js → p-f6c0e9e7.entry.js} +1 -1
  356. package/dist/vega/{p-56d19601.entry.js → p-fb9475ab.entry.js} +1 -1
  357. package/dist/vega/vega.esm.js +1 -1
  358. package/package.json +1 -1
  359. package/dist/vega/p-2bb60f89.js +0 -1
  360. package/dist/vega/p-2d7388c9.entry.js +0 -1
  361. package/dist/vega/p-3a68b729.js +0 -1
  362. package/dist/vega/p-81d4dfcb.entry.js +0 -1
  363. package/dist/vega/p-88a6c89a.js +0 -1
  364. package/dist/vega/p-ca270da3.entry.js +0 -1
  365. package/dist/vega/p-f95d8d10.entry.js +0 -1
@@ -0,0 +1,440 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { InjectVegaSlimmer, MapToComponentField, MapToComponentMethod, methodPlaceholder, VegaSlimmer, } from 'vega-slimmer/core';
8
+ import { TagNameAndAttributeMutationFilter } from '../../../../helpers/slimmers/mutation-observer/mutation-observer-filters';
9
+ import { MutationObserverSlimmer } from '../../../../helpers/slimmers/mutation-observer/mutation-observer-slimmer';
10
+ import { Observer } from '../../../../helpers/change-manager/observer/observer';
11
+ import changeManager from '../../../../helpers/change-manager/change-manager';
12
+ import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
13
+ import { VegaInternalTableHeadTemplateStructureChange, VegaInternalVegaTableRenderInputChange, } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
14
+ /**
15
+ * Derives column configuration from the authored `<vega-table-head>` markup.
16
+ *
17
+ * Currently produces grouped-column configuration; header-declared column concerns
18
+ * (e.g. pinning) are intended to live here as well.
19
+ */
20
+ export class VegaTableHeadTemplateStructureController extends VegaSlimmer {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.templateHeadObserver = new MutationObserverSlimmer({
24
+ // eslint-disable-next-line jsdoc/require-jsdoc
25
+ target: () => this.host,
26
+ options: {
27
+ childList: true,
28
+ subtree: true,
29
+ attributes: true,
30
+ attributeFilter: ['group-key', 'parent-group-key', 'pinned', 'col-span'],
31
+ },
32
+ mutationFilter: TagNameAndAttributeMutationFilter('VEGA-TABLE-HEAD', 'VEGA-TABLE-HEAD-ROW', 'VEGA-TABLE-HEAD-CELL'),
33
+ callback:
34
+ /* istanbul ignore next */
35
+ // eslint-disable-next-line jsdoc/require-jsdoc
36
+ () => this.handleTemplateHeadStructureChange(),
37
+ });
38
+ // Head node the explicit observer is currently bound to, so it can be rebound when replaced.
39
+ this.observedTemplateHead = null;
40
+ this.lastTemplateHeadStructureSnapshot = null;
41
+ }
42
+ /**
43
+ * Refresh template grouping before the mutation observer resumes after reconnecting.
44
+ */
45
+ connectedCallback() {
46
+ this.setTemplateGroupColumns();
47
+ this.lastTemplateHeadStructureSnapshot = this.getTemplateHeadStructureSnapshot();
48
+ this.registerTemplateHeadStructureObserver();
49
+ }
50
+ /**
51
+ * Used by {@link templateHeadObserver} to stop observing while the table is disconnected.
52
+ */
53
+ disconnectedCallback() {
54
+ this.unRegisterTemplateHeadStructureObserver();
55
+ methodPlaceholder();
56
+ }
57
+ /**
58
+ * Initialize template grouping before the column structure is built.
59
+ */
60
+ componentWillLoad() {
61
+ this.setTemplateGroupColumns();
62
+ this.lastTemplateHeadStructureSnapshot = this.getTemplateHeadStructureSnapshot();
63
+ }
64
+ /**
65
+ * Used by {@link templateHeadObserver}.
66
+ */
67
+ componentDidLoad() {
68
+ this.registerTemplateHeadMaps();
69
+ // Runtime changes are notified by the render-input watcher; initial load has no
70
+ // following componentDidRender, so it needs one synchronous notification here.
71
+ changeManager.notify(domNodeSubjectFactory.getSubject(this.host, VegaInternalVegaTableRenderInputChange), {});
72
+ }
73
+ /**
74
+ * Rebuild template grouping when render mode changes.
75
+ */
76
+ watchTemplateRenderMode() {
77
+ this.setTemplateGroupColumns();
78
+ this.lastTemplateHeadStructureSnapshot = this.getTemplateHeadStructureSnapshot();
79
+ }
80
+ /**
81
+ * Update the internal template grouping configuration.
82
+ */
83
+ setTemplateGroupColumns() {
84
+ this.templateGroupColumns = this.getTemplateGroupColumns();
85
+ }
86
+ /**
87
+ * Recompute template grouping and row/cell render-input mappings after template head changes.
88
+ *
89
+ * Map registration is done here directly instead of via watchColumnStructureModel because
90
+ * this controller is registered before the render-input controller. If map registration
91
+ * were deferred to the columnStructureModel watcher, render inputs would still be stale
92
+ * (render-input controller's watcher hasn't fired yet due to slimmer registration order).
93
+ */
94
+ handleTemplateHeadStructureChange() {
95
+ const nextSnapshot = this.getTemplateHeadStructureSnapshot();
96
+ if (this.isSameTemplateHeadStructure(nextSnapshot, this.lastTemplateHeadStructureSnapshot))
97
+ return;
98
+ this.lastTemplateHeadStructureSnapshot = nextSnapshot;
99
+ this.setTemplateGroupColumns();
100
+ this.registerTemplateHeadStructureObserver();
101
+ this.registerTemplateHeadMaps();
102
+ }
103
+ /**
104
+ * Collect a normalized snapshot for template-head hierarchy keys.
105
+ *
106
+ * This lets us ignore duplicated observer notifications that represent the same logical
107
+ * structure (e.g. reflected-attribute path and explicit watcher path firing for one update).
108
+ *
109
+ * @returns {Nullable<TemplateHeadStructureCell[]>} Snapshot of current template head structure.
110
+ */
111
+ getTemplateHeadStructureSnapshot() {
112
+ if (!this.isTemplateRenderMode)
113
+ return null;
114
+ const templateHead = this.getTemplateHead();
115
+ if (!templateHead)
116
+ return null;
117
+ const rows = Array.from(templateHead.children).filter((child) => child.tagName === 'VEGA-TABLE-HEAD-ROW');
118
+ return rows.flatMap((row, rowIndex) => {
119
+ const cells = Array.from(row.children).filter((child) => child.tagName === 'VEGA-TABLE-HEAD-CELL');
120
+ return cells.map((cell, cellIndex) => ({
121
+ rowIndex,
122
+ cellIndex,
123
+ key: this.getCellProperty(cell, 'groupKey', 'group-key'),
124
+ parentKey: this.getCellProperty(cell, 'parentGroupKey', 'parent-group-key'),
125
+ pinned: this.getCellProperty(cell, 'pinned', 'pinned'),
126
+ }));
127
+ });
128
+ }
129
+ /**
130
+ * Compare two structure snapshots by authored order and key values.
131
+ *
132
+ * @param {Nullable<TemplateHeadStructureCell[]>} nextSnapshot - Latest snapshot.
133
+ * @param {Nullable<TemplateHeadStructureCell[]>} prevSnapshot - Previous snapshot.
134
+ * @returns {boolean} True when snapshots represent the same logical structure.
135
+ */
136
+ isSameTemplateHeadStructure(nextSnapshot, prevSnapshot) {
137
+ if (nextSnapshot === prevSnapshot)
138
+ return true;
139
+ if (!nextSnapshot || !prevSnapshot)
140
+ return false;
141
+ if (nextSnapshot.length !== prevSnapshot.length)
142
+ return false;
143
+ return nextSnapshot.every((nextCell, index) => {
144
+ const prevCell = prevSnapshot[index];
145
+ return (nextCell.rowIndex === prevCell.rowIndex &&
146
+ nextCell.cellIndex === prevCell.cellIndex &&
147
+ nextCell.key === prevCell.key &&
148
+ nextCell.parentKey === prevCell.parentKey &&
149
+ nextCell.pinned === prevCell.pinned);
150
+ });
151
+ }
152
+ /**
153
+ * Register explicit head-cell structure-change observer for property-assignment updates.
154
+ */
155
+ registerTemplateHeadStructureObserver() {
156
+ const templateHead = this.getTemplateHead();
157
+ if (!templateHead || templateHead === this.observedTemplateHead)
158
+ return;
159
+ // Rebind when the authored head node was replaced so property-update notifications from the
160
+ // new head's subject are still observed.
161
+ this.unRegisterTemplateHeadStructureObserver();
162
+ if (!this.templateHeadStructureObserver) {
163
+ this.templateHeadStructureObserver = new Observer((input) => {
164
+ return Boolean(input && input.host);
165
+ }, () => this.handleTemplateHeadStructureChange());
166
+ }
167
+ changeManager.register(domNodeSubjectFactory.getSubject(templateHead, VegaInternalTableHeadTemplateStructureChange), this.templateHeadStructureObserver);
168
+ this.observedTemplateHead = templateHead;
169
+ }
170
+ /**
171
+ * Unregister explicit head-cell structure-change observer.
172
+ */
173
+ unRegisterTemplateHeadStructureObserver() {
174
+ const templateHead = this.observedTemplateHead;
175
+ if (!templateHead || !this.templateHeadStructureObserver)
176
+ return;
177
+ changeManager.unregister(domNodeSubjectFactory.getSubject(templateHead, VegaInternalTableHeadTemplateStructureChange), this.templateHeadStructureObserver);
178
+ this.observedTemplateHead = null;
179
+ }
180
+ /**
181
+ * Find authored template head element under table host.
182
+ *
183
+ * @typedef {import('../../../../types/components').HTMLVegaTableHeadElement} HTMLVegaTableHeadElement
184
+ * @returns {Nullable<HTMLVegaTableHeadElement>} Template head element if present.
185
+ */
186
+ getTemplateHead() {
187
+ return Array.from(this.host.children).find((child) => child.tagName === 'VEGA-TABLE-HEAD');
188
+ }
189
+ /**
190
+ * Register template head rows/cells with render-input maps using authored position.
191
+ *
192
+ * This mirrors data-source mode, where header renderer registers maps during JSX ref callbacks.
193
+ * Runtime changes are notified after the column model rebuilds, keeping maps ready without a
194
+ * second notification for the same template mutation.
195
+ */
196
+ registerTemplateHeadMaps() {
197
+ if (!this.isTemplateRenderMode)
198
+ return;
199
+ const templateHead = this.getTemplateHead();
200
+ if (!templateHead)
201
+ return;
202
+ // Clear all head mappings before rebuilding to prevent stale entries
203
+ // from persisting when template transitions from valid to invalid/unresolved.
204
+ this.vegaTableRenderInputController.clearHeadRenderInputMaps();
205
+ const renderInputs = this.vegaTableRenderInputController.getHeadRenderInputs() || [];
206
+ const renderInputByKey = new Map(renderInputs
207
+ .flatMap((model) => model.iterator())
208
+ .map((model) => [model.key, model]));
209
+ const templateRows = Array.from(templateHead.children).filter((child) => child.tagName === 'VEGA-TABLE-HEAD-ROW');
210
+ // Leaf render inputs in authored order, used to map headers without group keys by position.
211
+ const leafRenderInputs = this.vegaTableRenderInputController.getLeafRenderInputs() || [];
212
+ templateRows.forEach((templateRow) => {
213
+ const templateCells = Array.from(templateRow.children).filter((child) => child.tagName === 'VEGA-TABLE-HEAD-CELL');
214
+ // A header without group keys carries no grouping identity, so pinning is resolved by position:
215
+ // the authored cell index maps directly onto the leaf render input at the same index.
216
+ const rowHasKey = templateCells.some((templateCell) => Boolean(this.getCellProperty(templateCell, 'groupKey', 'group-key')));
217
+ const rowRenderInputs = templateCells.map((templateCell, cellIndex) => {
218
+ if (!rowHasKey)
219
+ return leafRenderInputs[cellIndex] || null;
220
+ const key = this.getCellProperty(templateCell, 'groupKey', 'group-key');
221
+ return renderInputByKey.get(key) || null;
222
+ });
223
+ // Register only when every authored cell has a matching render input.
224
+ // Partial mappings can corrupt row-level edge/span calculations.
225
+ if (rowRenderInputs.some((renderInput) => !renderInput))
226
+ return;
227
+ const resolvedRowRenderInputs = rowRenderInputs;
228
+ this.vegaTableRenderInputController.addHeadRowRenderInputMap(templateRow, resolvedRowRenderInputs);
229
+ templateCells.forEach((templateCell, cellIndex) => {
230
+ this.vegaTableRenderInputController.addHeadCellRenderInputMap(templateCell, resolvedRowRenderInputs[cellIndex]);
231
+ });
232
+ });
233
+ }
234
+ /**
235
+ * Convert a hand-authored template head into the public grouped-column model.
236
+ *
237
+ * Grouping needs authored keys: every cell must have a unique `groupKey`, and cells below the
238
+ * first row must declare `parentGroupKey` pointing to a cell in the immediately preceding row.
239
+ * Pinning, in contrast, is purely positional, so a header without group keys that only declares edge
240
+ * `pinned` is handled by {@link getFlatPinnedColumns} instead of being treated as unkeyed.
241
+ * Group labels are derived from cell text and default to an empty string because template
242
+ * markup remains responsible for the visible content.
243
+ *
244
+ * @returns {Nullable<VegaTableGroupColumnConfig[]>} Derived grouping configuration; null for a
245
+ * header without group keys with no edge pinning, or an empty array for malformed structured markup.
246
+ */
247
+ getTemplateGroupColumns() {
248
+ if (!this.isTemplateRenderMode)
249
+ return null;
250
+ const templateHead = this.getTemplateHead();
251
+ if (!templateHead)
252
+ return null;
253
+ const nodes = this.collectTemplateNodes(templateHead);
254
+ if (nodes.length === 0)
255
+ return null;
256
+ if (nodes.every((node) => !node.key))
257
+ return this.getFlatPinnedColumns(nodes);
258
+ if (nodes.some((node) => !node.key))
259
+ return [];
260
+ const nodesByKey = new Map(nodes.map((node) => [node.key, node]));
261
+ if (nodesByKey.size !== nodes.length)
262
+ return [];
263
+ if (!this.linkTemplateNodes(nodes, nodesByKey))
264
+ return [];
265
+ const topLevelNodes = nodes.filter((node) => node.rowIndex === 0);
266
+ this.dropNonEdgePinned(topLevelNodes);
267
+ return topLevelNodes.map((node) => this.toGroupColumnConfig(node));
268
+ }
269
+ /**
270
+ * Derive flat, position-keyed leaf columns for a header without group keys whose only column concern is
271
+ * edge pinning. Grouping requires authored keys, but pinning is positional, so a single-row
272
+ * header that declares `pinned` without any `group-key` still yields pinned leaf columns.
273
+ *
274
+ * Returns null when the header spans multiple rows (grouping cannot be inferred without keys) or
275
+ * declares no honorable edge pin, preserving the legacy behavior where a plain header without group keys
276
+ * derives no column model and simply renders its authored cells.
277
+ *
278
+ * @param {TemplateColumnNode[]} nodes - Template nodes in authored order (all row 0 when valid).
279
+ * @returns {Nullable<VegaTableGroupColumnConfig[]>} Position-keyed leaf configs, or null.
280
+ */
281
+ getFlatPinnedColumns(nodes) {
282
+ if (nodes.some((node) => node.rowIndex !== 0))
283
+ return null;
284
+ this.dropNonEdgePinned(nodes);
285
+ if (nodes.every((node) => !node.pinned))
286
+ return null;
287
+ // The authored index is the identity here; these keys are never used for head-cell lookup
288
+ // (registerTemplateHeadMaps maps headers without group keys by position, matching the positional body zip).
289
+ return nodes.map((node, index) => {
290
+ node.key = String(index);
291
+ return this.toGroupColumnConfig(node);
292
+ });
293
+ }
294
+ /**
295
+ * Drop `pinned` from top-level cells that are not at the physical edge.
296
+ *
297
+ * Data-source mode reorders columns to `[left, none, right]` via `orderChildrenByPinned`, so any
298
+ * pinned column ends up at an edge. Template mode renders authored cells in place and never
299
+ * reorders them, and sticky pinning only works when the pinned column already sits at the edge.
300
+ * So we honor `pinned` only for a contiguous leading run (left) and trailing run (right) of the
301
+ * authored top-level cells; a pinned cell anywhere in between would freeze mid-table and let the
302
+ * columns authored before it scroll underneath, so its pin is ignored.
303
+ *
304
+ * @param {TemplateColumnNode[]} topLevelNodes - Row-0 nodes in authored (physical) order.
305
+ */
306
+ dropNonEdgePinned(topLevelNodes) {
307
+ // End of the leading run of left-pinned cells (exclusive).
308
+ let leadingLeftEnd = 0;
309
+ while (leadingLeftEnd < topLevelNodes.length && topLevelNodes[leadingLeftEnd].pinned === 'left') {
310
+ leadingLeftEnd++;
311
+ }
312
+ // Start of the trailing run of right-pinned cells (exclusive lower bound).
313
+ let trailingRightStart = topLevelNodes.length - 1;
314
+ while (trailingRightStart >= 0 && topLevelNodes[trailingRightStart].pinned === 'right') {
315
+ trailingRightStart--;
316
+ }
317
+ topLevelNodes.forEach((node, index) => {
318
+ const isEdgeLeft = node.pinned === 'left' && index < leadingLeftEnd;
319
+ const isEdgeRight = node.pinned === 'right' && index > trailingRightStart;
320
+ if (!isEdgeLeft && !isEdgeRight)
321
+ node.pinned = undefined;
322
+ });
323
+ }
324
+ /**
325
+ * Flatten the authored template head rows into row-major template nodes.
326
+ *
327
+ * @param {HTMLElement} templateHead - Authored `<vega-table-head>` element.
328
+ * @returns {TemplateColumnNode[]} Template nodes in authored order.
329
+ */
330
+ collectTemplateNodes(templateHead) {
331
+ const rows = Array.from(templateHead.children).filter((child) => child.tagName === 'VEGA-TABLE-HEAD-ROW');
332
+ return rows.flatMap((row, rowIndex) => Array.from(row.children)
333
+ .filter((child) => child.tagName === 'VEGA-TABLE-HEAD-CELL')
334
+ .map((cell, cellIndex) => ({
335
+ cell,
336
+ key: this.getCellProperty(cell, 'groupKey', 'group-key'),
337
+ rowIndex,
338
+ cellIndex,
339
+ children: [],
340
+ pinned: this.getCellProperty(cell, 'pinned', 'pinned'),
341
+ })));
342
+ }
343
+ /**
344
+ * Validate parent references and link each node to its parent in place.
345
+ *
346
+ * Children must reference a cell in the immediately preceding row, be grouped by parent, and
347
+ * list parents left-to-right; first-row cells must not declare a parent.
348
+ *
349
+ * @param {TemplateColumnNode[]} nodes - Template nodes in authored order.
350
+ * @param {Map<string, TemplateColumnNode>} nodesByKey - Node lookup by group key.
351
+ * @returns {boolean} True when the hierarchy is well-formed.
352
+ */
353
+ linkTemplateNodes(nodes, nodesByKey) {
354
+ var _a;
355
+ const lastParentIndexByRow = new Map();
356
+ for (const node of nodes) {
357
+ const parentKey = this.getCellProperty(node.cell, 'parentGroupKey', 'parent-group-key');
358
+ if (node.rowIndex === 0) {
359
+ if (parentKey)
360
+ return false;
361
+ continue;
362
+ }
363
+ const parent = nodesByKey.get(parentKey);
364
+ if (!parent || parent.rowIndex !== node.rowIndex - 1)
365
+ return false;
366
+ // Children must be listed grouped by parent and parents left-to-right, so a parent's
367
+ // cell index can never move backwards within a row. This single check rejects both
368
+ // non-contiguous children and out-of-order parent groups.
369
+ if (parent.cellIndex < ((_a = lastParentIndexByRow.get(node.rowIndex)) !== null && _a !== void 0 ? _a : -1))
370
+ return false;
371
+ lastParentIndexByRow.set(node.rowIndex, parent.cellIndex);
372
+ parent.children.push(node);
373
+ }
374
+ return true;
375
+ }
376
+ /**
377
+ * Convert a template node tree into a grouped-column configuration.
378
+ *
379
+ * @param {TemplateColumnNode} node - Template node to convert.
380
+ * @returns {VegaTableGroupColumnConfig} Group or leaf configuration.
381
+ */
382
+ toGroupColumnConfig(node) {
383
+ // A childless top-level node carries its pinning through the group-model `pinned` field
384
+ // (which applies to top-level nodes), so `VegaTableColumnGroupingLeafModel` stays a plain
385
+ // `{ key }` reference and does not need a variant-only pinned property.
386
+ if (node.children.length === 0) {
387
+ return node.pinned
388
+ ? { key: node.key, label: (node.cell.textContent || '').trim(), pinned: node.pinned }
389
+ : { key: node.key };
390
+ }
391
+ return Object.assign(Object.assign({ key: node.key, label: (node.cell.textContent || '').trim() }, (node.pinned ? { pinned: node.pinned } : {})), { children: node.children.map((child) => this.toGroupColumnConfig(child)) });
392
+ }
393
+ /**
394
+ * Read a reflected template-cell property with an attribute fallback.
395
+ *
396
+ * The `pinned` variant returns only valid pinning values; invalid values return undefined.
397
+ *
398
+ * @param {HTMLElement} cell - Template head cell.
399
+ * @param {'groupKey' | 'parentGroupKey' | 'pinned'} property - Component property name.
400
+ * @param {'group-key' | 'parent-group-key' | 'pinned'} attribute - Reflected attribute name.
401
+ * @returns {string | undefined} Normalized property value.
402
+ */
403
+ getCellProperty(cell, property, attribute) {
404
+ const value = (cell[property] || cell.getAttribute(attribute) || '').trim();
405
+ if (property === 'pinned') {
406
+ return value === 'left' || value === 'right' ? value : undefined;
407
+ }
408
+ return value;
409
+ }
410
+ }
411
+ __decorate([
412
+ MapToComponentField()
413
+ ], VegaTableHeadTemplateStructureController.prototype, "host", void 0);
414
+ __decorate([
415
+ MapToComponentField()
416
+ ], VegaTableHeadTemplateStructureController.prototype, "isTemplateRenderMode", void 0);
417
+ __decorate([
418
+ MapToComponentField({ writable: true })
419
+ ], VegaTableHeadTemplateStructureController.prototype, "templateGroupColumns", void 0);
420
+ __decorate([
421
+ MapToComponentField()
422
+ ], VegaTableHeadTemplateStructureController.prototype, "vegaTableRenderInputController", void 0);
423
+ __decorate([
424
+ InjectVegaSlimmer()
425
+ ], VegaTableHeadTemplateStructureController.prototype, "templateHeadObserver", void 0);
426
+ __decorate([
427
+ MapToComponentMethod('connectedCallback')
428
+ ], VegaTableHeadTemplateStructureController.prototype, "connectedCallback", null);
429
+ __decorate([
430
+ MapToComponentMethod('disconnectedCallback')
431
+ ], VegaTableHeadTemplateStructureController.prototype, "disconnectedCallback", null);
432
+ __decorate([
433
+ MapToComponentMethod('componentWillLoad')
434
+ ], VegaTableHeadTemplateStructureController.prototype, "componentWillLoad", null);
435
+ __decorate([
436
+ MapToComponentMethod('componentDidLoad')
437
+ ], VegaTableHeadTemplateStructureController.prototype, "componentDidLoad", null);
438
+ __decorate([
439
+ MapToComponentMethod('watchTemplateRenderMode')
440
+ ], VegaTableHeadTemplateStructureController.prototype, "watchTemplateRenderMode", null);
@@ -107,6 +107,17 @@ export class VegaTableRenderInputController extends VegaSlimmer {
107
107
  addHeadCellRenderInputMap(headCell, renderInput) {
108
108
  this.headCellRenderInputMap.set(headCell, renderInput);
109
109
  }
110
+ /**
111
+ * Clear all head row and head cell render-input mappings.
112
+ *
113
+ * Used by template-mode lifecycle to invalidate stale grouped-header metadata
114
+ * before re-registering current mappings. In data-source mode the header renderer
115
+ * re-registers via ref callbacks each render, so stale entries are overwritten naturally.
116
+ */
117
+ clearHeadRenderInputMaps() {
118
+ this.headRowRenderInputMap.clear();
119
+ this.headCellRenderInputMap.clear();
120
+ }
110
121
  /**
111
122
  * Store body cell render input mapping for pinned cells (used to update sticky positions).
112
123
  *
@@ -174,9 +185,6 @@ __decorate([
174
185
  __decorate([
175
186
  MapToComponentField()
176
187
  ], VegaTableRenderInputController.prototype, "columnStructureModel", void 0);
177
- __decorate([
178
- MapToComponentField()
179
- ], VegaTableRenderInputController.prototype, "vegaTableColGroupRenderer", void 0);
180
188
  __decorate([
181
189
  MapToComponentMethod('connectedCallback')
182
190
  ], VegaTableRenderInputController.prototype, "connectedCallback", null);