@globalpayments/vega 2.70.0 → 2.75.1

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 (624) hide show
  1. package/dist/cjs/{app-globals-837be7a6.js → app-globals-35614ce8.js} +8 -7
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-f8840f1b.js → child-nodes-event-prevent-slimmer-aca87dac.js} +1 -1
  3. package/dist/cjs/click-outside-only-to-dismiss-strategy-407f6d1e.js +32 -0
  4. package/dist/cjs/{code-block-bb4cbafa.js → code-block-c1d2e6a8.js} +15 -67
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-cf7b4bda.js → component-value-history-controller-slimmer.abstract-787c67dc.js} +5 -5
  6. package/dist/cjs/{date-required-rule-4e1f84fd.js → date-required-rule-30ee62d0.js} +3 -3
  7. package/dist/cjs/{design-token-00fe8d2f.js → design-token-bb39e07e.js} +6 -7
  8. package/dist/cjs/{dom-node-subject-observer-factory-f040608b.js → dom-node-subject-observer-factory-b5e71bf6.js} +9 -1
  9. package/dist/cjs/{dto-renderer-manager-c917dade.js → dto-renderer-manager-03e1a038.js} +219 -28
  10. package/dist/cjs/{element-appender-slimmer-f8e89f37.js → element-appender-slimmer-daa8b9f5.js} +205 -43
  11. package/dist/cjs/{event-emit-slimmer-7afe8d78.js → event-emit-slimmer-2dacabbd.js} +2 -2
  12. package/dist/cjs/{form-field-controller-slimmer-f865d397.js → form-field-controller-slimmer-aef2fb1e.js} +3 -3
  13. package/dist/cjs/{function-extension-28a4d781.js → function-extension-cfbbc57e.js} +40 -19
  14. package/dist/cjs/{image-annotation-action-8843adbf.js → image-annotation-action-3fa501b7.js} +3 -3
  15. package/dist/cjs/index-58ea899e.js +4 -4
  16. package/dist/cjs/{index-4b896e76.js → index-95fca64f.js} +2 -2
  17. package/dist/cjs/index.cjs.js +17 -19
  18. package/dist/cjs/{inject-keyboard-manager-13c66257.js → inject-keyboard-manager-d21b4387.js} +1 -1
  19. package/dist/cjs/{internal-vega-event-manager-45d451de.js → internal-vega-event-manager-6befeb34.js} +16 -4
  20. package/dist/cjs/{keyboard-manager-af0d08a6.js → keyboard-manager-3dea6b28.js} +1 -1
  21. package/dist/cjs/{keyboard-manager-slimmer-62f072cd.js → keyboard-manager-slimmer-0d45f944.js} +1 -1
  22. package/dist/cjs/{language-extension-99c6fb40.js → language-extension-8c4a56ff.js} +2 -2
  23. package/dist/cjs/loader.cjs.js +13 -13
  24. package/dist/cjs/month-view-generator-49cc5fc2.js +102 -0
  25. package/dist/cjs/{public-rules-759c745b.js → public-rules-dc2a8d62.js} +15 -15
  26. package/dist/cjs/{range-0b597850.js → range-79b668e7.js} +1 -1
  27. package/dist/cjs/{responsive-format-facade-1d9c13a9.js → responsive-format-facade-d5dba942.js} +4 -4
  28. package/dist/cjs/{rich-text-editor-required-rule-92d0640e.js → rich-text-editor-required-rule-ba312af9.js} +1 -1
  29. package/dist/cjs/sanitize-fb222510.js +131 -0
  30. package/dist/cjs/{string-format-strategy.abstract-07a95352.js → string-format-strategy.abstract-63514c60.js} +1 -1
  31. package/dist/cjs/{string-input-formatter-slimmer-8236b5e1.js → string-input-formatter-slimmer-f3e0bbc7.js} +4 -4
  32. package/dist/cjs/{string-mask-strategy-6bdad95e.js → string-mask-strategy-d23ac21a.js} +2 -2
  33. package/dist/cjs/{style-formatter-1daa8371.js → style-formatter-49693da7.js} +2 -2
  34. package/dist/cjs/{sub-state-notify-slimmer-78682046.js → sub-state-notify-slimmer-468e19aa.js} +2 -2
  35. package/dist/cjs/{sub-state-observer-slimmer-73aecfff.js → sub-state-observer-slimmer-5d0b8ac3.js} +2 -2
  36. package/dist/cjs/{time-required-rule-ccf178e7.js → time-required-rule-c96ecdc9.js} +3 -3
  37. package/dist/cjs/{type-guard-f12b5bae.js → type-guard-a0f026d8.js} +1236 -1
  38. package/dist/cjs/{valid-credit-card-number-rule-ce5c9147.js → valid-credit-card-number-rule-c854bed9.js} +1 -1
  39. package/dist/cjs/vega-accordion.cjs.entry.js +11 -12
  40. package/dist/cjs/vega-app-header-button.cjs.entry.js +35 -18
  41. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-box.cjs.entry.js +15 -16
  43. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  44. package/dist/cjs/vega-button-circle.cjs.entry.js +15 -16
  45. package/dist/cjs/vega-button-group_2.cjs.entry.js +60 -10
  46. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  47. package/dist/cjs/vega-button.cjs.entry.js +15 -15
  48. package/dist/cjs/vega-calendar_4.cjs.entry.js +87 -909
  49. package/dist/cjs/vega-card.cjs.entry.js +14 -15
  50. package/dist/cjs/vega-carousel.cjs.entry.js +14 -14
  51. package/dist/cjs/vega-checkbox_2.cjs.entry.js +7 -7
  52. package/dist/cjs/vega-chip.cjs.entry.js +16 -17
  53. package/dist/cjs/vega-code-block.cjs.entry.js +13 -13
  54. package/dist/cjs/vega-color-picker.cjs.entry.js +6 -6
  55. package/dist/cjs/vega-combo-box.cjs.entry.js +15 -14
  56. package/dist/cjs/vega-date-picker_2.cjs.entry.js +1795 -1559
  57. package/dist/cjs/vega-dialog_2.cjs.entry.js +17 -18
  58. package/dist/cjs/vega-divider.cjs.entry.js +10 -11
  59. package/dist/cjs/vega-dropdown_5.cjs.entry.js +53 -36
  60. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  61. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  62. package/dist/cjs/vega-file-uploader.cjs.entry.js +6 -6
  63. package/dist/cjs/vega-flag-icon.cjs.entry.js +10 -11
  64. package/dist/cjs/vega-flex.cjs.entry.js +15 -16
  65. package/dist/cjs/vega-font.cjs.entry.js +14 -15
  66. package/dist/cjs/vega-form.cjs.entry.js +9 -9
  67. package/dist/cjs/vega-grid.cjs.entry.js +14 -15
  68. package/dist/cjs/vega-icon.cjs.entry.js +14 -15
  69. package/dist/cjs/vega-image-uploader.cjs.entry.js +15 -15
  70. package/dist/cjs/vega-input-credit-card.cjs.entry.js +14 -14
  71. package/dist/cjs/vega-input-numeric.cjs.entry.js +13 -13
  72. package/dist/cjs/vega-input-passcode.cjs.entry.js +16 -13
  73. package/dist/cjs/vega-input-phone-number.cjs.entry.js +14 -14
  74. package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
  75. package/dist/cjs/vega-input-select.cjs.entry.js +189 -56
  76. package/dist/cjs/vega-input.cjs.entry.js +877 -283
  77. package/dist/cjs/{vega-internal-event-id-6d4a2c53.js → vega-internal-event-id-f2465f1b.js} +12 -4
  78. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  79. package/dist/cjs/vega-left-nav_5.cjs.entry.js +14 -15
  80. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +9 -9
  81. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  82. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +4 -4
  83. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  84. package/dist/cjs/vega-pagination.cjs.entry.js +13 -13
  85. package/dist/cjs/vega-popover_2.cjs.entry.js +20 -20
  86. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +903 -0
  87. package/dist/cjs/vega-radio_2.cjs.entry.js +10 -10
  88. package/dist/cjs/vega-rich-text-content.cjs.entry.js +9 -8
  89. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +89 -29
  90. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  91. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +16 -16
  92. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +8 -8
  93. package/dist/cjs/vega-sidenav_3.cjs.entry.js +12 -12
  94. package/dist/cjs/vega-signature-capture.cjs.entry.js +13 -14
  95. package/dist/cjs/vega-stepper.cjs.entry.js +7 -7
  96. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  97. package/dist/cjs/vega-table_11.cjs.entry.js +12 -12
  98. package/dist/cjs/vega-textarea.cjs.entry.js +7 -7
  99. package/dist/cjs/vega-time-picker_2.cjs.entry.js +41 -41
  100. package/dist/cjs/vega-toggle-switch.cjs.entry.js +6 -6
  101. package/dist/cjs/vega-tooltip_2.cjs.entry.js +14 -14
  102. package/dist/cjs/vega.cjs.js +13 -13
  103. package/dist/collection/collection-manifest.json +7 -5
  104. package/dist/collection/components/vega-app-header-button/slimmers/renderers/vega-app-header-button-dropdown-renderer.js +13 -1
  105. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +46 -3
  106. package/dist/collection/components/vega-button/vega-button.css +4 -0
  107. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.js +7 -0
  108. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +25 -2
  109. package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +31 -2
  110. package/dist/collection/components/vega-button-group/vega-button-group.js +37 -0
  111. package/dist/collection/components/vega-button-link/vega-button-link.css +4 -0
  112. package/dist/collection/components/vega-calendar/vega-calendar.js +1 -1
  113. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +2 -1
  114. package/dist/collection/components/vega-date-picker/assets/icons.js +4 -1
  115. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +150 -0
  116. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-format-controller.js +3 -1
  117. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-keyboard-controller.js +1 -1
  118. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-value-controller.js +10 -26
  119. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +107 -445
  120. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-input-renderer-base.abstract.js +5 -1
  121. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.js +24 -17
  122. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js +15 -20
  123. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-single-input-renderer.js +6 -17
  124. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/constants.js +14 -0
  125. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/dto/calendar-selection.js +126 -0
  126. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-allow-repick-controller.js +70 -0
  127. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.js +204 -0
  128. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-min-max-date-controller.js +56 -0
  129. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.js +191 -0
  130. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-state-base.abstract.js +54 -0
  131. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-today-controller.js +37 -0
  132. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +109 -0
  133. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +80 -0
  134. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +164 -0
  135. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +124 -0
  136. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +996 -278
  137. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +672 -3
  138. package/dist/collection/components/vega-date-picker/vega-date-picker.css +0 -11
  139. package/dist/collection/components/vega-date-picker/vega-date-picker.js +23 -40
  140. package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
  141. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +3 -15
  142. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +5 -1
  143. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +7 -0
  144. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +6 -3
  145. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +3 -2
  146. package/dist/collection/components/vega-dropdown/vega-dropdown.js +50 -4
  147. package/dist/collection/components/vega-field-label/vega-field-label.js +1 -1
  148. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.js +77 -7
  149. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.js +51 -0
  150. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-value-controller.js +79 -0
  151. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.js +100 -0
  152. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +184 -0
  153. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +142 -0
  154. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-renderer.js +83 -0
  155. package/dist/collection/components/vega-input/vega-input.css +8 -0
  156. package/dist/collection/components/vega-input/vega-input.js +247 -160
  157. package/dist/collection/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.js +4 -1
  158. package/dist/collection/components/vega-input-phone-number/slimmers/renderers/phone-number-input-renderer.js +1 -1
  159. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.js +89 -0
  160. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +4 -0
  161. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +4 -0
  162. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +38 -13
  163. package/dist/collection/components/vega-input-select/vega-input-select.js +28 -8
  164. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.js +3 -2
  165. package/dist/collection/components/vega-modal/vega-modal.js +4 -4
  166. package/dist/collection/components/vega-popover/vega-popover.js +14 -4
  167. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.js +75 -0
  168. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.js +88 -0
  169. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.js +153 -0
  170. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-steps-controller.js +125 -0
  171. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-render-mode-controller.js +40 -0
  172. package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +94 -0
  173. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/slimmers/controllers/vega-progress-tracker-step-state-controller.js +43 -0
  174. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.css +79 -0
  175. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.js +84 -0
  176. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.css +69 -153
  177. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +88 -85
  178. package/dist/collection/components/vega-rich-text-editor/dto/annotations/plain-text-annotation.js +1 -1
  179. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-annotation.js +11 -63
  180. package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +16 -0
  181. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +21 -24
  182. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.js +5 -1
  183. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +12 -1
  184. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +16 -10
  185. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +1 -1
  186. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +1 -1
  187. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner-processor.interface.js +1 -0
  188. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.js +59 -0
  189. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.js +4 -0
  190. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.js +21 -0
  191. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.js +21 -0
  192. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.js +77 -0
  193. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +6 -2
  194. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +6 -0
  195. package/dist/collection/components/vega-rich-text-editor/test/dto/annotation-style.test.js +2 -1
  196. package/dist/collection/components/vega-rich-text-editor/test/dto/annotations.test.js +9 -0
  197. package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/html-block.test.js +39 -0
  198. package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/text-block.test.js +1 -1
  199. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +186 -16
  200. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.js +186 -0
  201. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.js +22 -0
  202. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.js +22 -0
  203. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.js +26 -0
  204. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
  205. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +2 -1
  206. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +2 -1
  207. package/dist/collection/constants/regex.js +1 -0
  208. package/dist/collection/constants/ui.js +5 -0
  209. package/dist/collection/helpers/calendar/calendar-date.js +273 -1
  210. package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +9 -0
  211. package/dist/collection/helpers/calendar/calendar-period/month-period.js +16 -4
  212. package/dist/collection/helpers/calendar/test/calendar-date.test.js +73 -0
  213. package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +9 -0
  214. package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +41 -0
  215. package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +11 -0
  216. package/dist/collection/helpers/code-format/code-formatter.js +57 -7
  217. package/dist/collection/helpers/code-format/test/code-formatter.test.js +48 -0
  218. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +16 -4
  219. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +5 -1
  220. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +8 -2
  221. package/dist/collection/helpers/event-manager/test/component-event-id-map.test.js +3 -1
  222. package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +3 -1
  223. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +62 -33
  224. package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js +3 -2
  225. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.js +28 -0
  226. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.js +33 -0
  227. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.js +42 -0
  228. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.js +22 -0
  229. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.js +1 -0
  230. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +7 -0
  231. package/dist/collection/helpers/ui/element-appender.js +35 -5
  232. package/dist/collection/types/test/type-guard.test.js +8 -1
  233. package/dist/collection/types/type-guard.js +21 -0
  234. package/dist/collection/utils/date.js +14 -3
  235. package/dist/collection/utils/e2e-utils.js +8 -2
  236. package/dist/collection/utils/sanitize.js +126 -0
  237. package/dist/collection/utils/test/date.test.js +2 -0
  238. package/dist/collection/utils/test/sanitize.test.js +65 -0
  239. package/dist/esm/{app-globals-fd4b7d97.js → app-globals-2ac60ff5.js} +8 -7
  240. package/dist/esm/{child-nodes-event-prevent-slimmer-76331524.js → child-nodes-event-prevent-slimmer-e662bee2.js} +1 -1
  241. package/dist/esm/click-outside-only-to-dismiss-strategy-3d286c1b.js +30 -0
  242. package/dist/esm/{code-block-ecb4491b.js → code-block-8ee34ab6.js} +16 -68
  243. package/dist/esm/{component-value-history-controller-slimmer.abstract-5d618b88.js → component-value-history-controller-slimmer.abstract-a61bf821.js} +5 -5
  244. package/dist/esm/{date-required-rule-8944f3bf.js → date-required-rule-47ecc28f.js} +1 -1
  245. package/dist/esm/{design-token-2d77e8f5.js → design-token-007efbaa.js} +4 -5
  246. package/dist/esm/{dom-node-subject-observer-factory-dca87b70.js → dom-node-subject-observer-factory-064ee2b2.js} +6 -2
  247. package/dist/esm/{dto-renderer-manager-d862ae78.js → dto-renderer-manager-ee1a5864.js} +219 -28
  248. package/dist/esm/{element-appender-slimmer-6791c332.js → element-appender-slimmer-35e26b5a.js} +207 -45
  249. package/dist/esm/{event-emit-slimmer-4e28e9f8.js → event-emit-slimmer-09827cec.js} +2 -2
  250. package/dist/esm/{form-field-controller-slimmer-bf071b75.js → form-field-controller-slimmer-5d9dc384.js} +4 -4
  251. package/dist/esm/{function-extension-8d39db56.js → function-extension-e8c0e43e.js} +41 -20
  252. package/dist/esm/{image-annotation-action-d0af138c.js → image-annotation-action-285d432e.js} +3 -3
  253. package/dist/esm/index-090d31ca.js +4 -4
  254. package/dist/esm/{index-c943d263.js → index-51a7da7f.js} +2 -2
  255. package/dist/esm/index.js +19 -21
  256. package/dist/esm/{inject-keyboard-manager-ffd351b9.js → inject-keyboard-manager-83d76ff5.js} +1 -1
  257. package/dist/esm/{internal-vega-event-manager-516aa721.js → internal-vega-event-manager-efb6786e.js} +16 -4
  258. package/dist/esm/{keyboard-manager-5d8f3582.js → keyboard-manager-c92808d8.js} +1 -1
  259. package/dist/esm/{keyboard-manager-slimmer-f39214e4.js → keyboard-manager-slimmer-79c78ce8.js} +1 -1
  260. package/dist/esm/{language-extension-8f51f5ff.js → language-extension-29bf8acd.js} +2 -2
  261. package/dist/esm/loader.js +15 -15
  262. package/dist/esm/month-view-generator-16192182.js +98 -0
  263. package/dist/esm/{page-resize-observer-slimmer-0bf7fbf3.js → page-resize-observer-slimmer-8744cb44.js} +1 -1
  264. package/dist/esm/{public-rules-d10e76f4.js → public-rules-724873f5.js} +15 -15
  265. package/dist/esm/{range-f7b9e2fb.js → range-5257c062.js} +1 -1
  266. package/dist/esm/{responsive-format-facade-267935ae.js → responsive-format-facade-28ee2dbd.js} +6 -6
  267. package/dist/esm/{rich-text-editor-required-rule-774b822b.js → rich-text-editor-required-rule-873e2e67.js} +1 -1
  268. package/dist/esm/sanitize-fd0cb40d.js +129 -0
  269. package/dist/esm/{string-format-strategy.abstract-452f4398.js → string-format-strategy.abstract-fc60db79.js} +1 -1
  270. package/dist/esm/{string-input-formatter-slimmer-3acd240c.js → string-input-formatter-slimmer-ee32b1fd.js} +4 -4
  271. package/dist/esm/{string-mask-strategy-6232a1c1.js → string-mask-strategy-0b0accaa.js} +2 -2
  272. package/dist/esm/{style-formatter-3f88c491.js → style-formatter-314b37f3.js} +2 -2
  273. package/dist/esm/{sub-state-notify-slimmer-56380f02.js → sub-state-notify-slimmer-4453047a.js} +2 -2
  274. package/dist/esm/{sub-state-observer-slimmer-3504e2f2.js → sub-state-observer-slimmer-202ec7dc.js} +2 -2
  275. package/dist/esm/{time-required-rule-a01163b5.js → time-required-rule-5fa43804.js} +1 -1
  276. package/dist/esm/{type-guard-12f7654b.js → type-guard-c65a227d.js} +1215 -2
  277. package/dist/esm/{ui-8424715a.js → ui-28fd4193.js} +1 -1
  278. package/dist/esm/{valid-credit-card-number-rule-81443274.js → valid-credit-card-number-rule-666c415d.js} +1 -1
  279. package/dist/esm/vega-accordion.entry.js +13 -14
  280. package/dist/esm/vega-app-header-button.entry.js +37 -20
  281. package/dist/esm/vega-banner.entry.js +3 -3
  282. package/dist/esm/vega-box.entry.js +17 -18
  283. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  284. package/dist/esm/vega-button-circle.entry.js +17 -18
  285. package/dist/esm/vega-button-group_2.entry.js +60 -10
  286. package/dist/esm/vega-button-link.entry.js +5 -5
  287. package/dist/esm/vega-button.entry.js +17 -17
  288. package/dist/esm/vega-calendar_4.entry.js +46 -868
  289. package/dist/esm/vega-card.entry.js +16 -17
  290. package/dist/esm/vega-carousel.entry.js +16 -16
  291. package/dist/esm/vega-checkbox_2.entry.js +9 -9
  292. package/dist/esm/vega-chip.entry.js +18 -19
  293. package/dist/esm/vega-code-block.entry.js +14 -14
  294. package/dist/esm/vega-color-picker.entry.js +8 -8
  295. package/dist/esm/vega-combo-box.entry.js +17 -16
  296. package/dist/esm/vega-date-picker_2.entry.js +1786 -1550
  297. package/dist/esm/vega-dialog_2.entry.js +19 -20
  298. package/dist/esm/vega-divider.entry.js +12 -13
  299. package/dist/esm/vega-dropdown_5.entry.js +55 -38
  300. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  301. package/dist/esm/vega-field-label.entry.js +3 -3
  302. package/dist/esm/vega-file-uploader.entry.js +8 -8
  303. package/dist/esm/vega-flag-icon.entry.js +12 -13
  304. package/dist/esm/vega-flex.entry.js +17 -18
  305. package/dist/esm/vega-font.entry.js +16 -17
  306. package/dist/esm/vega-form.entry.js +11 -11
  307. package/dist/esm/vega-grid.entry.js +16 -17
  308. package/dist/esm/vega-icon.entry.js +16 -17
  309. package/dist/esm/vega-image-uploader.entry.js +17 -17
  310. package/dist/esm/vega-input-credit-card.entry.js +16 -16
  311. package/dist/esm/vega-input-numeric.entry.js +15 -15
  312. package/dist/esm/vega-input-passcode.entry.js +18 -15
  313. package/dist/esm/vega-input-phone-number.entry.js +16 -16
  314. package/dist/esm/vega-input-range.entry.js +9 -9
  315. package/dist/esm/vega-input-select.entry.js +191 -58
  316. package/dist/esm/vega-input.entry.js +880 -286
  317. package/dist/esm/{vega-internal-event-id-5c3e5f7f.js → vega-internal-event-id-4a06d705.js} +7 -3
  318. package/dist/esm/vega-item-toggle.entry.js +4 -4
  319. package/dist/esm/vega-left-nav_5.entry.js +16 -17
  320. package/dist/esm/vega-loader-wrapper_2.entry.js +11 -11
  321. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  322. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  323. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  324. package/dist/esm/vega-pagination.entry.js +15 -15
  325. package/dist/esm/vega-popover_2.entry.js +22 -22
  326. package/dist/esm/vega-progress-tracker_2.entry.js +898 -0
  327. package/dist/esm/vega-radio_2.entry.js +12 -12
  328. package/dist/esm/vega-rich-text-content.entry.js +10 -9
  329. package/dist/esm/vega-rich-text-editor_4.entry.js +91 -31
  330. package/dist/esm/vega-segment-control.entry.js +5 -5
  331. package/dist/esm/vega-selection-chip_2.entry.js +18 -18
  332. package/dist/esm/vega-selection-tile_2.entry.js +10 -10
  333. package/dist/esm/vega-sidenav_3.entry.js +14 -14
  334. package/dist/esm/vega-signature-capture.entry.js +15 -16
  335. package/dist/esm/vega-stepper.entry.js +9 -9
  336. package/dist/esm/vega-tab-group_2.entry.js +6 -6
  337. package/dist/esm/vega-table_11.entry.js +14 -14
  338. package/dist/esm/vega-text.entry.js +2 -2
  339. package/dist/esm/vega-textarea.entry.js +9 -9
  340. package/dist/esm/vega-time-picker_2.entry.js +22 -22
  341. package/dist/esm/vega-toggle-switch.entry.js +8 -8
  342. package/dist/esm/vega-tooltip_2.entry.js +16 -16
  343. package/dist/esm/vega.js +15 -15
  344. package/dist/sri/vega-sri-manifest.json +337 -337
  345. package/dist/types/components/vega-app-header-button/slimmers/renderers/vega-app-header-button-dropdown-renderer.d.ts +7 -0
  346. package/dist/types/components/vega-app-header-button/types.d.ts +2 -0
  347. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +14 -0
  348. package/dist/types/components/vega-button-group/types.d.ts +2 -1
  349. package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.d.ts +1 -0
  350. package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.d.ts +11 -0
  351. package/dist/types/components/vega-button-group/vega-button-group-item/vega-button-group-item.d.ts +7 -0
  352. package/dist/types/components/vega-button-group/vega-button-group.d.ts +8 -0
  353. package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
  354. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.d.ts +60 -0
  355. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-value-controller.d.ts +3 -4
  356. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +29 -124
  357. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-input-renderer-base.abstract.d.ts +1 -0
  358. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.d.ts +5 -5
  359. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.d.ts +2 -3
  360. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-single-input-renderer.d.ts +1 -4
  361. package/dist/types/components/vega-date-picker/types.d.ts +9 -0
  362. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/constants.d.ts +1 -0
  363. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/dto/calendar-selection.d.ts +62 -0
  364. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-allow-repick-controller.d.ts +31 -0
  365. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.d.ts +78 -0
  366. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-min-max-date-controller.d.ts +20 -0
  367. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.d.ts +75 -0
  368. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-state-base.abstract.d.ts +29 -0
  369. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-today-controller.d.ts +15 -0
  370. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.d.ts +20 -0
  371. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +19 -0
  372. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +33 -0
  373. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +27 -0
  374. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +184 -0
  375. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +6 -14
  376. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +0 -4
  377. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +2 -0
  378. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +1 -0
  379. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +14 -2
  380. package/dist/types/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.d.ts +33 -6
  381. package/dist/types/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.d.ts +27 -0
  382. package/dist/types/components/vega-input/slimmers/controllers/vega-input-value-controller.d.ts +32 -0
  383. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.d.ts +27 -0
  384. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +58 -0
  385. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.d.ts +40 -0
  386. package/dist/types/components/vega-input/slimmers/renderers/vega-input-renderer.d.ts +21 -0
  387. package/dist/types/components/vega-input/types.d.ts +4 -0
  388. package/dist/types/components/vega-input/vega-input.d.ts +67 -34
  389. package/dist/types/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.d.ts +1 -0
  390. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.d.ts +29 -0
  391. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +1 -0
  392. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -0
  393. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +1 -1
  394. package/dist/types/components/vega-input-select/types.d.ts +5 -0
  395. package/dist/types/components/vega-input-select/vega-input-select.d.ts +12 -4
  396. package/dist/types/components/vega-modal/vega-modal.d.ts +7 -1
  397. package/dist/types/components/vega-popover/vega-popover.d.ts +2 -1
  398. package/dist/types/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.d.ts +55 -0
  399. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.d.ts +27 -0
  400. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.d.ts +63 -0
  401. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-steps-controller.d.ts +39 -0
  402. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-render-mode-controller.d.ts +21 -0
  403. package/dist/types/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.d.ts +21 -0
  404. package/dist/types/components/vega-progress-tracker/type.d.ts +1 -0
  405. package/dist/types/components/vega-progress-tracker/vega-progress-tracker-step/slimmers/controllers/vega-progress-tracker-step-state-controller.d.ts +12 -0
  406. package/dist/types/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.d.ts +22 -0
  407. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +24 -10
  408. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-annotation.d.ts +7 -0
  409. package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +10 -0
  410. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +8 -1
  411. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +7 -0
  412. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +1 -1
  413. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +7 -0
  414. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +2 -2
  415. package/dist/types/components/vega-rich-text-editor/interface.d.ts +6 -1
  416. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner-processor.interface.d.ts +13 -0
  417. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.d.ts +35 -0
  418. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.d.ts +4 -0
  419. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.d.ts +19 -0
  420. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.d.ts +19 -0
  421. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.d.ts +59 -0
  422. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +1 -0
  423. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
  424. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.d.ts +1 -0
  425. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.d.ts +1 -0
  426. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.d.ts +1 -0
  427. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.d.ts +1 -0
  428. package/dist/types/components.d.ts +312 -21
  429. package/dist/types/constants/regex.d.ts +1 -0
  430. package/dist/types/constants/ui.d.ts +1 -1
  431. package/dist/types/helpers/calendar/calendar-date.d.ts +86 -2
  432. package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +7 -0
  433. package/dist/types/helpers/code-format/code-formatter.d.ts +14 -0
  434. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +5 -1
  435. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +8 -2
  436. package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +4 -9
  437. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.d.ts +21 -0
  438. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.d.ts +21 -0
  439. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.d.ts +22 -0
  440. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.d.ts +18 -0
  441. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.d.ts +37 -0
  442. package/dist/types/helpers/ui/element-appender.d.ts +14 -0
  443. package/dist/types/types/components.type.d.ts +7 -0
  444. package/dist/types/types/type-guard.d.ts +16 -0
  445. package/dist/types/types/ui.type.d.ts +9 -0
  446. package/dist/types/utils/date.d.ts +11 -2
  447. package/dist/types/utils/e2e-utils.d.ts +7 -0
  448. package/dist/types/utils/sanitize.d.ts +71 -0
  449. package/dist/types/utils/test/sanitize.test.d.ts +1 -0
  450. package/dist/vega/index.esm.js +1 -1
  451. package/dist/vega/{p-7b42da4f.entry.js → p-011b94b1.entry.js} +1 -1
  452. package/dist/vega/p-012753b5.entry.js +1 -0
  453. package/dist/vega/p-024331ce.entry.js +1 -0
  454. package/dist/vega/{p-4a467973.js → p-0575d22e.js} +1 -1
  455. package/dist/vega/{p-9e59345f.entry.js → p-08a90cc6.entry.js} +1 -1
  456. package/dist/vega/p-0ede1fea.entry.js +1 -0
  457. package/dist/vega/{p-7d9cd9c8.js → p-10ac8b57.js} +1 -1
  458. package/dist/vega/{p-b9798158.js → p-1298b126.js} +1 -1
  459. package/dist/vega/{p-3c865f86.entry.js → p-17c55205.entry.js} +1 -1
  460. package/dist/vega/{p-a6010b93.entry.js → p-1e0d8228.entry.js} +1 -1
  461. package/dist/vega/p-1f83cebf.js +1 -0
  462. package/dist/vega/p-3353b3d7.js +1 -0
  463. package/dist/vega/p-365b1b35.entry.js +1 -0
  464. package/dist/vega/p-3ae9ee3d.entry.js +1 -0
  465. package/dist/vega/p-3af92370.entry.js +1 -0
  466. package/dist/vega/{p-fde50319.js → p-3bf66be2.js} +1 -1
  467. package/dist/vega/{p-235bf01b.entry.js → p-3c5a28e4.entry.js} +1 -1
  468. package/dist/vega/p-3e5f362f.js +1 -0
  469. package/dist/vega/{p-74168615.js → p-40f39194.js} +1 -1
  470. package/dist/vega/{p-1bb0c934.js → p-430be941.js} +1 -1
  471. package/dist/vega/p-43f585f7.entry.js +1 -0
  472. package/dist/vega/p-45296fd4.entry.js +1 -0
  473. package/dist/vega/{p-67f159c3.js → p-476a173a.js} +1 -1
  474. package/dist/vega/p-491618a6.entry.js +1 -0
  475. package/dist/vega/p-4a537391.entry.js +1 -0
  476. package/dist/vega/p-4aa893ef.entry.js +1 -0
  477. package/dist/vega/{p-cbabb07a.entry.js → p-4c47e8bb.entry.js} +1 -1
  478. package/dist/vega/p-4da75f2b.js +1 -0
  479. package/dist/vega/p-509eb52e.entry.js +1 -0
  480. package/dist/vega/p-5110ba73.entry.js +1 -0
  481. package/dist/vega/p-556f9a21.entry.js +1 -0
  482. package/dist/vega/p-55b54ba0.entry.js +1 -0
  483. package/dist/vega/p-5b71c85e.js +1 -0
  484. package/dist/vega/p-5ea2e43c.entry.js +1 -0
  485. package/dist/vega/p-5efc6fe1.entry.js +1 -0
  486. package/dist/vega/p-5f377954.js +1 -1
  487. package/dist/vega/{p-9ce249a9.js → p-60851f9d.js} +1 -1
  488. package/dist/vega/{p-54e56f0d.entry.js → p-64cd1931.entry.js} +1 -1
  489. package/dist/vega/{p-de97c6d9.js → p-66fa700b.js} +1 -1
  490. package/dist/vega/{p-8c6b6ad7.entry.js → p-67fcf6f2.entry.js} +1 -1
  491. package/dist/vega/p-68df4288.js +1 -0
  492. package/dist/vega/p-691ba1ae.js +1 -0
  493. package/dist/vega/{p-61d9cdf9.entry.js → p-6a2205a1.entry.js} +1 -1
  494. package/dist/vega/{p-35cd469a.entry.js → p-6a4277df.entry.js} +1 -1
  495. package/dist/vega/{p-1f26de89.js → p-6e136980.js} +1 -1
  496. package/dist/vega/p-6f8be8ea.js +1 -0
  497. package/dist/vega/p-6fa8e231.entry.js +1 -0
  498. package/dist/vega/p-7045e84c.entry.js +1 -0
  499. package/dist/vega/{p-85f9a980.js → p-7288f8c4.js} +1 -1
  500. package/dist/vega/{p-2f09c6aa.js → p-749f96a4.js} +1 -1
  501. package/dist/vega/{p-a0467b83.js → p-77edf50c.js} +1 -1
  502. package/dist/vega/p-7aaece55.entry.js +1 -0
  503. package/dist/vega/p-7ec6a104.entry.js +1 -0
  504. package/dist/vega/{p-52efaadb.entry.js → p-81134e9e.entry.js} +1 -1
  505. package/dist/vega/p-8187878e.js +1 -0
  506. package/dist/vega/p-89d685a8.js +1 -0
  507. package/dist/vega/{p-c0223a17.entry.js → p-8c0eb12f.entry.js} +1 -1
  508. package/dist/vega/p-8d0ca805.js +1 -0
  509. package/dist/vega/p-8d701832.entry.js +1 -0
  510. package/dist/vega/{p-3e040167.entry.js → p-8e42a14c.entry.js} +1 -1
  511. package/dist/vega/p-8ed0faa2.entry.js +1 -0
  512. package/dist/vega/{p-3925c16b.js → p-920719ad.js} +1 -1
  513. package/dist/vega/{p-18e8c54a.entry.js → p-94394df7.entry.js} +1 -1
  514. package/dist/vega/p-99aa554b.entry.js +1 -0
  515. package/dist/vega/{p-69aec6af.entry.js → p-9a2446f1.entry.js} +1 -1
  516. package/dist/vega/{p-924b4e24.js → p-a2aeb646.js} +1 -1
  517. package/dist/vega/p-a475d525.entry.js +1 -0
  518. package/dist/vega/{p-c2f21426.entry.js → p-a530797f.entry.js} +1 -1
  519. package/dist/vega/{p-652626b6.entry.js → p-a85ad369.entry.js} +1 -1
  520. package/dist/vega/p-ac5e9955.entry.js +1 -0
  521. package/dist/vega/p-aedf7146.js +1 -0
  522. package/dist/vega/p-b1f869fb.js +1 -0
  523. package/dist/vega/p-b4ea3fad.js +1 -0
  524. package/dist/vega/p-badad9ed.js +1 -0
  525. package/dist/vega/{p-98fb9eaa.entry.js → p-bb4a558d.entry.js} +1 -1
  526. package/dist/vega/p-bb8339ed.entry.js +1 -0
  527. package/dist/vega/{p-75b5894f.entry.js → p-be930e85.entry.js} +1 -1
  528. package/dist/vega/p-bf2bd6d0.entry.js +1 -0
  529. package/dist/vega/p-c2488ed6.js +1 -0
  530. package/dist/vega/{p-0f7dec29.entry.js → p-c379a5a5.entry.js} +1 -1
  531. package/dist/vega/{p-db57dddc.js → p-c9b6b5a9.js} +1 -1
  532. package/dist/vega/{p-7c1d08db.entry.js → p-ca3472c1.entry.js} +1 -1
  533. package/dist/vega/{p-35252108.js → p-cc43bffb.js} +1 -1
  534. package/dist/vega/p-cf5b80f9.entry.js +1 -0
  535. package/dist/vega/{p-8fae8f9e.js → p-d0e31633.js} +1 -1
  536. package/dist/vega/{p-bfb86c3e.entry.js → p-db60a38e.entry.js} +1 -1
  537. package/dist/vega/{p-71f9c4d4.js → p-dd11f735.js} +1 -1
  538. package/dist/vega/{p-19522949.js → p-e16b3adf.js} +1 -1
  539. package/dist/vega/p-e93545fd.js +1 -0
  540. package/dist/vega/{p-e6351dab.entry.js → p-e9c4fd24.entry.js} +1 -1
  541. package/dist/vega/{p-91d71ae9.entry.js → p-eb60cfe1.entry.js} +1 -1
  542. package/dist/vega/p-ec192283.entry.js +1 -0
  543. package/dist/vega/{p-c6ae78f2.entry.js → p-f2a3a1ec.entry.js} +1 -1
  544. package/dist/vega/p-f2cdd212.entry.js +1 -0
  545. package/dist/vega/p-f3c3ff26.entry.js +1 -0
  546. package/dist/vega/{p-b27fcac4.entry.js → p-f4c05b4a.entry.js} +1 -1
  547. package/dist/vega/{p-dde03224.entry.js → p-f52a0155.entry.js} +1 -1
  548. package/dist/vega/p-f8641214.entry.js +1 -0
  549. package/dist/vega/{p-330c224f.entry.js → p-f89443aa.entry.js} +1 -1
  550. package/dist/vega/{p-58769a72.entry.js → p-f8f7cf48.entry.js} +1 -1
  551. package/dist/vega/p-fe12eff6.js +1 -0
  552. package/dist/vega/vega.esm.js +1 -1
  553. package/package.json +2 -3
  554. package/dist/cjs/date-0a6bb035.js +0 -95
  555. package/dist/cjs/mobilefriendly-aa2e50e9.js +0 -13
  556. package/dist/cjs/state-background-color-formatter-aa5570f6.js +0 -85
  557. package/dist/cjs/vega-progress-tracker.cjs.entry.js +0 -252
  558. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.js +0 -282
  559. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.js +0 -35
  560. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-mobile-controller.js +0 -53
  561. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-month-year-change-event-controller.js +0 -139
  562. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-zindex-controller.js +0 -49
  563. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.js +0 -341
  564. package/dist/esm/date-c55b97f0.js +0 -87
  565. package/dist/esm/mobilefriendly-c5d0573d.js +0 -11
  566. package/dist/esm/state-background-color-formatter-0f01d27a.js +0 -82
  567. package/dist/esm/vega-progress-tracker.entry.js +0 -248
  568. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.d.ts +0 -96
  569. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.d.ts +0 -12
  570. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-mobile-controller.d.ts +0 -18
  571. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-month-year-change-event-controller.d.ts +0 -46
  572. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-zindex-controller.d.ts +0 -15
  573. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.d.ts +0 -97
  574. package/dist/vega/p-08835909.js +0 -1
  575. package/dist/vega/p-0cdb38d3.js +0 -1
  576. package/dist/vega/p-0e5297b9.entry.js +0 -1
  577. package/dist/vega/p-0feceaac.entry.js +0 -1
  578. package/dist/vega/p-115b42e6.entry.js +0 -1
  579. package/dist/vega/p-1372b984.js +0 -1
  580. package/dist/vega/p-1739a877.entry.js +0 -1
  581. package/dist/vega/p-1a59703b.entry.js +0 -1
  582. package/dist/vega/p-1e92737c.entry.js +0 -1
  583. package/dist/vega/p-257ff60b.entry.js +0 -1
  584. package/dist/vega/p-25a3fad7.entry.js +0 -1
  585. package/dist/vega/p-2622f0a8.entry.js +0 -1
  586. package/dist/vega/p-26c4f07c.entry.js +0 -1
  587. package/dist/vega/p-2e6ce1e9.entry.js +0 -1
  588. package/dist/vega/p-2ec7e020.entry.js +0 -1
  589. package/dist/vega/p-308aa2e3.js +0 -1
  590. package/dist/vega/p-33f3f306.js +0 -1
  591. package/dist/vega/p-366825fa.entry.js +0 -1
  592. package/dist/vega/p-37020002.entry.js +0 -1
  593. package/dist/vega/p-379f1b40.entry.js +0 -1
  594. package/dist/vega/p-38cb2b40.js +0 -1
  595. package/dist/vega/p-447c7590.js +0 -1
  596. package/dist/vega/p-4e13a26f.js +0 -1
  597. package/dist/vega/p-5972c101.entry.js +0 -1
  598. package/dist/vega/p-5d827fe5.js +0 -1
  599. package/dist/vega/p-5e708ad5.entry.js +0 -1
  600. package/dist/vega/p-65a9af84.entry.js +0 -1
  601. package/dist/vega/p-67eb405d.entry.js +0 -1
  602. package/dist/vega/p-71ddccf2.entry.js +0 -1
  603. package/dist/vega/p-785d9ac3.entry.js +0 -1
  604. package/dist/vega/p-796d840c.entry.js +0 -1
  605. package/dist/vega/p-7a590741.entry.js +0 -1
  606. package/dist/vega/p-824a06ba.js +0 -1
  607. package/dist/vega/p-8350506e.js +0 -1
  608. package/dist/vega/p-867a4970.js +0 -1
  609. package/dist/vega/p-880569ec.entry.js +0 -1
  610. package/dist/vega/p-8ac2f43f.entry.js +0 -1
  611. package/dist/vega/p-8ff96b8c.entry.js +0 -13
  612. package/dist/vega/p-9794fd88.entry.js +0 -1
  613. package/dist/vega/p-a10b9f2e.js +0 -12
  614. package/dist/vega/p-a630ce73.entry.js +0 -1
  615. package/dist/vega/p-b1faebe0.js +0 -1
  616. package/dist/vega/p-b5ba0c11.js +0 -1
  617. package/dist/vega/p-b8b9ed2c.js +0 -1
  618. package/dist/vega/p-bcc396c2.entry.js +0 -1
  619. package/dist/vega/p-bccee21e.js +0 -1
  620. package/dist/vega/p-c224b44c.js +0 -1
  621. package/dist/vega/p-ea96635b.entry.js +0 -1
  622. package/dist/vega/p-f21b893b.entry.js +0 -1
  623. package/dist/vega/p-fb320b50.entry.js +0 -1
  624. package/dist/vega/p-ff470366.entry.js +0 -1
@@ -53,6 +53,12 @@ export class RTEHtmlBlock extends RTEBlock {
53
53
  toHtml() {
54
54
  const BlockTag = this.htmlTag;
55
55
  const attrStr = super.generateAttributeString();
56
+ // Handle void/self-closing tags (hr, input, col, etc.)
57
+ // Uses HTML5 syntax without self-closing slash for consistency with img and br tags
58
+ if (RTEHtmlBlock.VOID_TAGS.has(this.htmlTag)) {
59
+ return `<${BlockTag}${attrStr}>`;
60
+ }
61
+ // Handle normal tags with children
56
62
  return [
57
63
  `<${BlockTag}${attrStr}>`,
58
64
  this.children.map((block) => block.toHtml()).join(''),
@@ -66,3 +72,13 @@ export class RTEHtmlBlock extends RTEBlock {
66
72
  return Object.assign(Object.assign({}, super.toJSON()), { id: this.id, type: this.type, htmlTag: this.htmlTag, children: this.children.map((child) => child.toJSON()) });
67
73
  }
68
74
  }
75
+ /**
76
+ * Void/self-closing tags that don't have closing tags and don't contain children.
77
+ * These tags should be rendered as <tag> or <tag/> instead of <tag></tag>.
78
+ *
79
+ * Based on canHandleTags from html-block-strategy.ts, the following are void tags:
80
+ * - HR: horizontal rule
81
+ * - INPUT: form input
82
+ * - COL: table column
83
+ */
84
+ RTEHtmlBlock.VOID_TAGS = new Set(['hr', 'input', 'col']);
@@ -21,6 +21,7 @@ import { VegaInternalRichTextEditorFlushChanges } from '../../../helpers/event-m
21
21
  import './setup';
22
22
  import { StylePreservator } from '../../../helpers/csp/styles-preservator';
23
23
  import { LogUtility } from '../../../utils/log';
24
+ import { HTMLContentCleaner } from '../slimmers/controllers/html-cleaner';
24
25
  /**
25
26
  * Class representing the content state of the rich text editor.
26
27
  */
@@ -53,22 +54,27 @@ export class VegaRTEContent {
53
54
  /**
54
55
  * Create an empty content state
55
56
  *
57
+ * @param {VegaRTETransformOptions} options - Optional transformation options.
56
58
  * @returns {VegaRTEContent} An empty content state
57
59
  */
58
- static createEmptyContent() {
60
+ static createEmptyContent(options = { autoMatchFormat: true }) {
59
61
  return VegaRTEContent.fromJSON([
60
62
  {
61
63
  id: generateUUID(),
62
64
  type: 'paragraph',
65
+ annotations: {
66
+ internalWrapper: !options.autoMatchFormat,
67
+ },
63
68
  nodes: [
64
69
  {
65
70
  id: generateUUID(),
71
+ annotations: { plainText: !options.autoMatchFormat },
66
72
  type: 'text',
67
73
  text: '',
68
74
  },
69
75
  ],
70
76
  },
71
- ]);
77
+ ], options);
72
78
  }
73
79
  /**
74
80
  * Converts HTML content to a VegaRTEContent instance.
@@ -78,28 +84,8 @@ export class VegaRTEContent {
78
84
  * @returns {VegaRTEContent} The converted content state.
79
85
  */
80
86
  static fromHtml(html, options = { autoMatchFormat: true, skipCustomAnnotations: false }) {
81
- /**
82
- * remove redundant spaces between tags, for example:
83
- * case1:
84
- * '<p>\n\t <span>test</span>\n\t </p>' will be formatted into '<p><span>test</span></p>'
85
- * '<p>
86
- * test
87
- * </p>' will be formatted into '<p>test</p>'
88
- *
89
- * case2:
90
- * <h1>
91
- * _test&*....
92
- * </h1> will be formatted into <h1>_test&*....</h1>
93
- *
94
- * The blank space between individual tags should be preserved:
95
- * <span> </span>
96
- */
97
- const formattedHtml = html
98
- .replace(/>\s+<\/?/g, (match) => {
99
- return match.endsWith('</') ? match : '><';
100
- })
101
- .replace(/(>)[\n\t]+(?=[a-zA-Z0-9_\W])/g, '$1')
102
- .replace(/([a-zA-Z0-9_\W])[\n\t]+(?=<)/g, '$1');
87
+ const cleaner = new HTMLContentCleaner();
88
+ const formattedHtml = cleaner.clean(html);
103
89
  const context = StylePreservator.preserve(formattedHtml);
104
90
  const safeHtml = context.getProcessedHtml();
105
91
  const body = new DOMParser().parseFromString(safeHtml, 'text/html').body;
@@ -141,8 +127,19 @@ export class VegaRTEContent {
141
127
  if (options) {
142
128
  LogUtility.warn(`The 'options' parameter in toHtml method is deprecated and will be removed in the future.`);
143
129
  }
130
+ if (this.isEmpty()) {
131
+ return '';
132
+ }
144
133
  return this.children.map((block) => block.toHtml()).join('');
145
134
  }
135
+ /**
136
+ * Checks if the content state is empty.
137
+ *
138
+ * @returns {boolean} True if the content state is empty, false otherwise.
139
+ */
140
+ isEmpty() {
141
+ return this.children.length === 0 || (this.children.length === 1 && !this.children[0].isNotEmpty());
142
+ }
146
143
  /**
147
144
  * Internal method to add the block item, remove the block item
148
145
  *
@@ -1,6 +1,7 @@
1
1
  import { generateUUID } from '../../../../utils/misc';
2
2
  import { ActionHandleStrategy } from '../../dto/action-handle-strategies/action-handle-strategy.abstract';
3
3
  import { InsertNodeToNearestRootAction } from '../../dto/actions/insert-node-to-nearest-root-action';
4
+ import { CustomAttributeAnnotation } from '../../dto/annotations/custom-attribute-annotation';
4
5
  import { RTETokenNode } from './token-node';
5
6
  /**
6
7
  * Strategy to handle the insertion of a token node into the nearest root block.
@@ -12,7 +13,10 @@ export class InsertTokenNodeStrategy extends ActionHandleStrategy {
12
13
  handleAction(action, block) {
13
14
  const { rteRange, token } = action;
14
15
  if (rteRange && rteRange.startNode) {
15
- const tokenNode = new RTETokenNode(generateUUID(), token.key, token.label, block);
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ const { key, label, customAttrs = { wrapped: 'true' } } = token;
18
+ const tokenNode = new RTETokenNode(generateUUID(), key, label, block);
19
+ tokenNode.annotationMap.set('CUSTOM_ATTRIBUTE', new CustomAttributeAnnotation(customAttrs));
16
20
  block.apply(new InsertNodeToNearestRootAction(rteRange, tokenNode));
17
21
  action.actionHandleResult = true;
18
22
  }
@@ -10,6 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { generateUUID } from '../../../../utils/misc';
13
+ import { cleanObject } from '../../../../utils/object';
13
14
  import { RTETextNode } from '../../dto/nodes/text-node';
14
15
  import htmlElementToAnnotationGenerator from '../../slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator';
15
16
  import { ElementToDTOStrategy } from '../../slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract';
@@ -45,7 +46,7 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
45
46
  type: 'token',
46
47
  token: tokenKey,
47
48
  text,
48
- annotations: Object.assign({}, restAnnotations),
49
+ annotations: Object.assign(Object.assign({}, restAnnotations), { customAttribute: this.createCustomAttrs(customAttribute) }),
49
50
  };
50
51
  }
51
52
  /**
@@ -59,4 +60,14 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
59
60
  shouldProceedToElementChildren() {
60
61
  return false;
61
62
  }
63
+ /**
64
+ * Creates custom attributes record from the given custom attribute object, clean some fixed attributes.
65
+ *
66
+ * @param {Record<string, string>} customAttribute - The custom attribute object
67
+ * @returns {Record<string, string>} The processed custom attributes
68
+ */
69
+ createCustomAttrs(customAttribute) {
70
+ const result = Object.assign(Object.assign({}, customAttribute), { 'contenteditable': null, 'template-token-key': null, 'token-key': null, 'wrapped': customAttribute.wrapped === 'false' ? 'false' : 'true' });
71
+ return cleanObject(result);
72
+ }
62
73
  }
@@ -18,22 +18,14 @@ export class RTETokenNodeRenderer extends VegaRTEExtensionRenderer {
18
18
  */
19
19
  doRender(createElement, node, editorContent) {
20
20
  const { id, token } = node;
21
- return createElement('span', {
22
- 'key': id,
23
- 'template-token-key': token,
24
- 'token-key': token,
25
- 'contenteditable': 'false',
26
- 'style': node.getStyles(),
27
- 'class': `token ${node.getClasses()}`,
28
- 'ref': this.useRef(node),
21
+ return createElement('span', Object.assign(Object.assign({ 'key': id, 'template-token-key': token, 'token-key': token, 'contenteditable': 'false', 'style': node.getStyles(), 'class': `token ${node.getClasses()}` }, this.additionalAttributes(node)), { 'ref': this.useRef(node),
29
22
  // eslint-disable-next-line jsdoc/require-jsdoc
30
23
  'onClick': (event) => {
31
24
  event.preventDefault();
32
25
  if (editorContent && editorContent.editable !== false) {
33
26
  this.handleTokenElementClick(event, node);
34
27
  }
35
- },
36
- }, node.text);
28
+ } }), node.text);
37
29
  }
38
30
  /**
39
31
  * Sets the RTE extension context.
@@ -63,4 +55,18 @@ export class RTETokenNodeRenderer extends VegaRTEExtensionRenderer {
63
55
  this.extensionContext.host.value.apply(new UpdateCursorPositionAction(node, undefined, true));
64
56
  }
65
57
  }
58
+ /**
59
+ * Additional attributes for the token node.
60
+ *
61
+ * @param {RTETokenNode} node - The token node.
62
+ * @returns {Record<string, string>} Additional attributes
63
+ */
64
+ additionalAttributes(node) {
65
+ const annotation = node.getCustomAttributesAnnotation();
66
+ let result = { wrapped: 'true' };
67
+ if (annotation) {
68
+ result = Object.assign(Object.assign({}, result), annotation.render());
69
+ }
70
+ return result;
71
+ }
66
72
  }
@@ -51,6 +51,6 @@ export class RTETokenNode extends RTETextNode {
51
51
  * @returns {string} - The HTML representation of the token node.
52
52
  */
53
53
  toHtml() {
54
- return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}" ${super.generateAttributeString()}>${this.text}</span>`;
54
+ return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}"${super.generateAttributeString()}>${this.text}</span>`;
55
55
  }
56
56
  }
@@ -90,7 +90,7 @@ __decorate([
90
90
  MapToComponentField()
91
91
  ], RTEExtensionController.prototype, "selectionController", void 0);
92
92
  __decorate([
93
- MapToComponentMethod('connectedCallback')
93
+ MapToComponentMethod('componentDidLoad')
94
94
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
95
95
  __decorate([
96
96
  MapToComponentMethod('watchExtensions')
@@ -0,0 +1,59 @@
1
+ import { RemoveWhitespaceBetweenTagsProcessor } from './processors/remove-whitespace-between-tags-processor';
2
+ import { RemoveWhitespaceAfterOpeningTagProcessor } from './processors/remove-whitespace-after-opening-tag-processor';
3
+ import { RemoveWhitespaceBeforeClosingTagProcessor } from './processors/remove-whitespace-before-closing-tag-processor';
4
+ /**
5
+ * Main HTML content cleaner that orchestrates multiple cleaning processors.
6
+ *
7
+ * This class implements a chain of responsibility pattern where each processor
8
+ * handles a specific aspect of HTML cleaning. The processors are applied in sequence
9
+ * and the entire chain is repeated until no more changes occur.
10
+ *
11
+ * Processors (in order):
12
+ * 1. RemoveWhitespaceBetweenTagsProcessor - Removes whitespace between non-matching tags
13
+ * 2. RemoveWhitespaceAfterOpeningTagProcessor - Removes \n and \t after opening tags
14
+ * 3. RemoveWhitespaceBeforeClosingTagProcessor - Removes \n and \t before closing tags
15
+ */
16
+ export class HTMLContentCleaner {
17
+ constructor() {
18
+ this.processors = [
19
+ new RemoveWhitespaceBetweenTagsProcessor(),
20
+ new RemoveWhitespaceAfterOpeningTagProcessor(),
21
+ new RemoveWhitespaceBeforeClosingTagProcessor(),
22
+ ];
23
+ }
24
+ /**
25
+ * Cleans HTML by applying all processors in the chain repeatedly until no changes occur.
26
+ *
27
+ * The cleaning process:
28
+ * 1. Applies each processor in sequence
29
+ * 2. Compares the result with the input
30
+ * 3. If changes were made, repeats the process
31
+ * 4. Returns the final cleaned HTML
32
+ *
33
+ * Examples of transformations:
34
+ * - `<p>\n\t <span>test</span>\n\t </p>` → `<p><span>test</span></p>`
35
+ * - `<p>\n\tHello</p>` → `<p>Hello</p>`
36
+ * - `<p>Hello\n\t</p>` → `<p>Hello</p>`
37
+ * - `<span> </span>` → `<span> </span>` (preserved - matching tags)
38
+ * - `<p>Hello World</p>` → `<p>Hello World</p>` (preserved - regular spaces)
39
+ *
40
+ * @param {string} html - The HTML string to clean.
41
+ * @returns {string} The cleaned HTML string.
42
+ */
43
+ clean(html) {
44
+ if (!html || html.trim().length === 0) {
45
+ return html;
46
+ }
47
+ let result = html;
48
+ let previousResult;
49
+ // Keep processing until no more changes occur
50
+ do {
51
+ previousResult = result;
52
+ // Apply each processor in the chain
53
+ for (const processor of this.processors) {
54
+ result = processor.process(result);
55
+ }
56
+ } while (result !== previousResult);
57
+ return result;
58
+ }
59
+ }
@@ -0,0 +1,4 @@
1
+ export { HTMLContentCleaner } from './html-content-cleaner';
2
+ export { RemoveWhitespaceBetweenTagsProcessor } from './processors/remove-whitespace-between-tags-processor';
3
+ export { RemoveWhitespaceAfterOpeningTagProcessor } from './processors/remove-whitespace-after-opening-tag-processor';
4
+ export { RemoveWhitespaceBeforeClosingTagProcessor } from './processors/remove-whitespace-before-closing-tag-processor';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Removes `\n` and `\t` characters after opening tags (before text content).
3
+ *
4
+ * Transforms patterns like `>[\n\t]+(text)` to `>(text)`.
5
+ *
6
+ * Examples:
7
+ * - `<p>\n\tHello` → `<p>Hello`
8
+ * - `<div>\n\n\tWorld` → `<div>World`
9
+ */
10
+ export class RemoveWhitespaceAfterOpeningTagProcessor {
11
+ /**
12
+ * Process the HTML string to remove `\n` and `\t` after opening tags.
13
+ *
14
+ * @param {string} html - The HTML string to process.
15
+ * @returns {string} The processed HTML string.
16
+ */
17
+ process(html) {
18
+ // Pattern: `>[\n\t]+(text)` → `>(text)`
19
+ return html.replace(/(>)[\n\t]+(?=.)/g, '$1');
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Removes `\n` and `\t` characters before closing tags (after text content).
3
+ *
4
+ * Transforms patterns like `(text)[\n\t]+<` to `(text)<`.
5
+ *
6
+ * Examples:
7
+ * - `World\n\t</p>` → `World</p>`
8
+ * - `Hello\n</div>` → `Hello</div>`
9
+ */
10
+ export class RemoveWhitespaceBeforeClosingTagProcessor {
11
+ /**
12
+ * Process the HTML string to remove `\n` and `\t` before closing tags.
13
+ *
14
+ * @param {string} html - The HTML string to process.
15
+ * @returns {string} The processed HTML string.
16
+ */
17
+ process(html) {
18
+ // Pattern: `(text)[\n\t]+<` → `(text)<`
19
+ return html.replace(/(.?)[\n\t]+(?=<)/g, '$1');
20
+ }
21
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Removes whitespace between tags, except preserves ALL whitespace between matching opening/closing tag pairs.
3
+ *
4
+ * This processor scans for patterns of `<tag>(whitespace)<tag>` and:
5
+ * - If the first tag is an opening tag and the second tag is its matching closing tag (e.g., `<span> </span>`),
6
+ * preserves ALL the whitespace between them (including spaces, tabs, newlines)
7
+ * - Otherwise, removes all the whitespace between the tags
8
+ *
9
+ * Examples:
10
+ * - `</p>\n\t<div>` → `</p><div>` (different tags: closing p, opening div - whitespace removed)
11
+ * - `<div>\n\t<span>` → `<div><span>` (different tags: opening div, opening span - whitespace removed)
12
+ * - `<span> </span>` → `<span> </span>` (matching tags: opening span, closing span - space preserved)
13
+ * - `<span> </span>` → `<span> </span>` (matching tags - multiple spaces preserved)
14
+ * - `<span>\n\t</span>` → `<span>\n\t</span>` (matching tags - \n\t preserved)
15
+ * - `<code> </code>` → `<code> </code>` (matching tags - space preserved)
16
+ * - `</div> <p>` → `</div><p>` (different tags: closing div, opening p - whitespace removed)
17
+ */
18
+ export class RemoveWhitespaceBetweenTagsProcessor {
19
+ /**
20
+ * Process the HTML string to remove whitespace between non-matching tags.
21
+ *
22
+ * @param {string} html - The HTML string to process.
23
+ * @returns {string} The processed HTML string.
24
+ */
25
+ process(html) {
26
+ return html.replace(/(<[^>]+>)(\s+)(<[^>]+>)/g, (_match, tag1, whitespace, tag2) => {
27
+ const openingTagName = this.extractOpeningTagName(tag1);
28
+ const closingTagName = this.extractClosingTagName(tag2);
29
+ // Preserve all whitespace if tags match (e.g., <span> </span>)
30
+ if (openingTagName && closingTagName && openingTagName === closingTagName) {
31
+ return `${tag1}${whitespace}${tag2}`;
32
+ }
33
+ // Remove whitespace for non-matching tags
34
+ return `${tag1}${tag2}`;
35
+ });
36
+ }
37
+ /**
38
+ * Extracts the tag name from an opening HTML tag.
39
+ *
40
+ * Supports standard HTML tags (div, span, h1, etc.) and custom elements with hyphens (my-component).
41
+ *
42
+ * Examples:
43
+ * - `<span>` → `span`
44
+ * - `<div class="test">` → `div`
45
+ * - `<my-component id="123">` → `my-component`
46
+ * - `</span>` → `null` (not an opening tag)
47
+ *
48
+ * @param {string} tag - The tag string to extract from (e.g., '<span>', '<div class="test">').
49
+ * @returns {string | null} The tag name or null if not an opening tag.
50
+ * @private
51
+ */
52
+ extractOpeningTagName(tag) {
53
+ // Pattern: <(tag name) where tag name starts with letter, followed by letters/numbers/hyphens
54
+ const match = tag.match(/<(\w[\w-]*)/);
55
+ return match ? match[1] : null;
56
+ }
57
+ /**
58
+ * Extracts the tag name from a closing HTML tag.
59
+ *
60
+ * Supports standard HTML tags (div, span, h1, etc.) and custom elements with hyphens (my-component).
61
+ *
62
+ * Examples:
63
+ * - `</span>` → `span`
64
+ * - `</div>` → `div`
65
+ * - `</my-component>` → `my-component`
66
+ * - `<span>` → `null` (not a closing tag)
67
+ *
68
+ * @param {string} tag - The tag string to extract from (e.g., '</span>', '</div>').
69
+ * @returns {string | null} The tag name or null if not a closing tag.
70
+ * @private
71
+ */
72
+ extractClosingTagName(tag) {
73
+ // Pattern: </(tag name) where tag name starts with letter, followed by letters/numbers/hyphens
74
+ const match = tag.match(/<\/(\w[\w-]*)/);
75
+ return match ? match[1] : null;
76
+ }
77
+ }
@@ -50,11 +50,12 @@ export class ValueController extends VegaSlimmer {
50
50
  * Watches the value of the editor and updates the internal value.
51
51
  */
52
52
  watchValueUpdate() {
53
+ const autoMatchFormat = this.sourceEditConfig.autoMatchFormat;
53
54
  if (this.value && !(this.value instanceof VegaRTEContent)) {
54
- this.value = VegaRTEContent.fromJSON(this.value);
55
+ this.value = VegaRTEContent.fromJSON(this.value, { autoMatchFormat });
55
56
  }
56
57
  else if (!this.value || this.value.children.length === 0) {
57
- this.value = VegaRTEContent.createEmptyContent();
58
+ this.value = VegaRTEContent.createEmptyContent({ autoMatchFormat });
58
59
  }
59
60
  else {
60
61
  this.changeEventEmitter.emit(this.value);
@@ -114,6 +115,9 @@ __decorate([
114
115
  __decorate([
115
116
  MapToComponentField()
116
117
  ], ValueController.prototype, "selectionController", void 0);
118
+ __decorate([
119
+ MapToComponentField()
120
+ ], ValueController.prototype, "sourceEditConfig", void 0);
117
121
  __decorate([
118
122
  MapToComponentMethod('connectedCallback')
119
123
  ], ValueController.prototype, "connectedCallback", null);
@@ -37,6 +37,9 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
37
37
  }
38
38
  async saveSourceCode() {
39
39
  const sourceViewValue = this.vegaRichTextEditorRenderer.getSourceCode();
40
+ if (!sourceViewValue && this.value.isEmpty()) {
41
+ return;
42
+ }
40
43
  if (typeof sourceViewValue === 'string') {
41
44
  await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
42
45
  autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
@@ -62,3 +65,6 @@ __decorate([
62
65
  __decorate([
63
66
  MapToComponentField()
64
67
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
68
+ __decorate([
69
+ MapToComponentField()
70
+ ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
@@ -17,7 +17,7 @@ describe('annotation-style', () => {
17
17
  });
18
18
  const blockAnnotationStyle = new RTEAnnotationStyle(textBlock);
19
19
  expect(blockAnnotationStyle.toCssText()).toEqual('color: red;font-size: 16px;');
20
- expect(blockAnnotationStyle.toCssText({ standalone: true })).toEqual('font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: center;color: red;');
20
+ expect(blockAnnotationStyle.toCssText({ standalone: true })).toEqual('font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: center;color: red;');
21
21
  expect(blockAnnotationStyle.toCssText(null, null, {})).toEqual('');
22
22
  expect(blockAnnotationStyle.toCssText(null, null, { color: 'red' })).toEqual('color: red;');
23
23
  expect(blockAnnotationStyle.toCssText(null, null, { backgroundColor: 'blue', fontWeight: 'bold' })).toEqual('background-color: blue;font-weight: bold;');
@@ -56,6 +56,7 @@ describe('annotation-style', () => {
56
56
  fontSize: '16px',
57
57
  fontWeight: '500',
58
58
  lineHeight: '22px',
59
+ minHeight: '22px',
59
60
  marginBottom: '0px',
60
61
  marginTop: '0px',
61
62
  textAlign: 'center',
@@ -47,6 +47,7 @@ describe('annotations', () => {
47
47
  fontSize: '16px',
48
48
  fontWeight: '500',
49
49
  lineHeight: '22px',
50
+ minHeight: '22px',
50
51
  marginBottom: '0px',
51
52
  marginTop: '0px',
52
53
  });
@@ -55,18 +56,21 @@ describe('annotations', () => {
55
56
  fontSize: '36px',
56
57
  fontWeight: '500',
57
58
  lineHeight: '40px',
59
+ minHeight: '40px',
58
60
  });
59
61
  expect(new TextStyleAnnotation('subtitle').renderStyle({ standalone: true })).toEqual({
60
62
  fontFamily: 'Inter',
61
63
  fontSize: '28px',
62
64
  fontWeight: '500',
63
65
  lineHeight: '32px',
66
+ minHeight: '32px',
64
67
  });
65
68
  expect(new TextStyleAnnotation('heading-1').renderStyle({ standalone: true })).toEqual({
66
69
  fontFamily: 'Inter',
67
70
  fontSize: '22px',
68
71
  fontWeight: '500',
69
72
  lineHeight: '24px',
73
+ minHeight: '24px',
70
74
  marginBottom: '0px',
71
75
  marginTop: '0px',
72
76
  });
@@ -75,6 +79,7 @@ describe('annotations', () => {
75
79
  fontSize: '20px',
76
80
  fontWeight: '500',
77
81
  lineHeight: '24px',
82
+ minHeight: '24px',
78
83
  marginBottom: '0px',
79
84
  marginTop: '0px',
80
85
  });
@@ -83,6 +88,7 @@ describe('annotations', () => {
83
88
  fontSize: '18px',
84
89
  fontWeight: '500',
85
90
  lineHeight: '22px',
91
+ minHeight: '22px',
86
92
  marginBottom: '0px',
87
93
  marginTop: '0px',
88
94
  });
@@ -91,6 +97,7 @@ describe('annotations', () => {
91
97
  fontSize: '16px',
92
98
  fontWeight: '500',
93
99
  lineHeight: '22px',
100
+ minHeight: '22px',
94
101
  marginBottom: '0px',
95
102
  marginTop: '0px',
96
103
  });
@@ -99,6 +106,7 @@ describe('annotations', () => {
99
106
  fontSize: '14px',
100
107
  fontWeight: '500',
101
108
  lineHeight: '22px',
109
+ minHeight: '22px',
102
110
  marginBottom: '0px',
103
111
  marginTop: '0px',
104
112
  });
@@ -107,6 +115,7 @@ describe('annotations', () => {
107
115
  fontSize: '12px',
108
116
  fontWeight: '500',
109
117
  lineHeight: '22px',
118
+ minHeight: '22px',
110
119
  marginBottom: '0px',
111
120
  marginTop: '0px',
112
121
  });
@@ -39,6 +39,45 @@ describe('HTMLBlock', () => {
39
39
  ],
40
40
  }, { autoMatchFormat: false }).toHtml()).toMatchSnapshot();
41
41
  });
42
+ it('toHtml should handle self-closing hr tag correctly', () => {
43
+ const hrBlock = RTEHtmlBlock.from({
44
+ id: 'hr-1',
45
+ type: 'html-block',
46
+ htmlTag: 'hr',
47
+ children: [],
48
+ }, { autoMatchFormat: false });
49
+ expect(hrBlock.toHtml()).toBe('<hr>');
50
+ });
51
+ it('toHtml should handle self-closing hr tag with attributes correctly', () => {
52
+ const hrBlock = RTEHtmlBlock.from({
53
+ id: 'hr-1',
54
+ type: 'html-block',
55
+ htmlTag: 'hr',
56
+ annotations: { customClass: ['divider'] },
57
+ children: [],
58
+ }, { autoMatchFormat: false });
59
+ expect(hrBlock.toHtml()).toBe('<hr class="divider">');
60
+ });
61
+ it('toHtml should handle self-closing input tag correctly', () => {
62
+ const inputBlock = RTEHtmlBlock.from({
63
+ id: 'input-1',
64
+ type: 'html-block',
65
+ htmlTag: 'input',
66
+ annotations: { customAttribute: { type: 'text', placeholder: 'Enter text' } },
67
+ children: [],
68
+ }, { autoMatchFormat: false });
69
+ expect(inputBlock.toHtml()).toBe('<input type="text" placeholder="Enter text">');
70
+ });
71
+ it('toHtml should handle self-closing col tag correctly', () => {
72
+ const colBlock = RTEHtmlBlock.from({
73
+ id: 'col-1',
74
+ type: 'html-block',
75
+ htmlTag: 'col',
76
+ annotations: { customAttribute: { span: '2' } },
77
+ children: [],
78
+ }, { autoMatchFormat: false });
79
+ expect(colBlock.toHtml()).toBe('<col span="2">');
80
+ });
42
81
  });
43
82
  describe('public methods', () => {
44
83
  let htmlBlock;
@@ -187,7 +187,7 @@ describe('text block', () => {
187
187
  },
188
188
  ],
189
189
  };
190
- expect(RTETextBlock.from(textBlock).toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><a href="www.google.com" target="_blank" style="color: rgba(var(--v-text-link, 19, 98, 226, 1));"><span>This is a text.</span></a></p>`);
190
+ expect(RTETextBlock.from(textBlock).toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><a href="www.google.com" target="_blank" style="color: rgba(var(--v-text-link, 19, 98, 226, 1));"><span>This is a text.</span></a></p>`);
191
191
  expect(RTETextBlock.from(textBlock, { autoMatchFormat: false }).toHtml()).toEqual(`<p><a href="www.google.com"><span>This is a text.</span></a></p>`);
192
192
  });
193
193
  });