@globalpayments/vega 2.77.0 → 2.78.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 (445) hide show
  1. package/dist/cjs/{app-globals-04e7024b.js → app-globals-55e26945.js} +6 -6
  2. package/dist/cjs/{aria-attributes-value-mapper-f58c73f8.js → aria-attributes-value-mapper-9a41b9cf.js} +10 -3
  3. package/dist/cjs/{breakpoints-751d433a.js → breakpoints-a8ff22f0.js} +1 -1
  4. package/dist/cjs/{child-nodes-event-prevent-slimmer-cc6d2919.js → child-nodes-event-prevent-slimmer-dd0bb8b6.js} +1 -1
  5. package/dist/cjs/{code-block-f1480ec3.js → code-block-1a5fafed.js} +2 -2
  6. package/dist/cjs/{component-value-history-controller-slimmer.abstract-a9264cc8.js → component-value-history-controller-slimmer.abstract-42683f23.js} +4 -4
  7. package/dist/cjs/{date-required-rule-912469e0.js → date-required-rule-ad536cb5.js} +1 -1
  8. package/dist/cjs/{design-token-c49717c8.js → design-token-45ebd5e4.js} +3 -3
  9. package/dist/cjs/{dto-renderer-manager-809c947b.js → dto-renderer-manager-7557d562.js} +3 -3
  10. package/dist/cjs/{element-appender-slimmer-38583ca9.js → element-appender-slimmer-16ec8591.js} +181 -22
  11. package/dist/cjs/{event-emit-slimmer-062cdcb8.js → event-emit-slimmer-c84121c8.js} +1 -1
  12. package/dist/cjs/{form-field-controller-slimmer-102f37c7.js → form-field-controller-slimmer-73f5849e.js} +4 -4
  13. package/dist/cjs/{image-annotation-action-8d9fa20c.js → image-annotation-action-f275863e.js} +3 -3
  14. package/dist/cjs/index.cjs.js +18 -18
  15. package/dist/cjs/{inject-keyboard-manager-0f5bd568.js → inject-keyboard-manager-6667c0f1.js} +1 -1
  16. package/dist/cjs/{internal-translation-controller-053eb0f1.js → internal-translation-controller-24df468f.js} +16 -0
  17. package/dist/cjs/{internal-vega-event-manager-f7ecf3d4.js → internal-vega-event-manager-cc0f511c.js} +2 -2
  18. package/dist/cjs/{keyboard-manager-055e9f67.js → keyboard-manager-7de7ecfd.js} +1 -1
  19. package/dist/cjs/{keyboard-manager-slimmer-0cc0c1c7.js → keyboard-manager-slimmer-b44f0dc9.js} +1 -1
  20. package/dist/cjs/loader.cjs.js +14 -14
  21. package/dist/cjs/{month-view-generator-6a6dd527.js → month-view-generator-36c42772.js} +1 -1
  22. package/dist/cjs/{page-resize-observer-slimmer-7f065ee1.js → page-resize-observer-slimmer-e050cd26.js} +1 -1
  23. package/dist/cjs/{public-rules-922849f3.js → public-rules-6c6cb4ac.js} +9 -9
  24. package/dist/cjs/{range-8aa49b08.js → range-e298d4aa.js} +1 -1
  25. package/dist/cjs/{responsive-format-facade-acc39a40.js → responsive-format-facade-bddac47c.js} +3 -3
  26. package/dist/cjs/{rich-text-editor-required-rule-22225840.js → rich-text-editor-required-rule-6346a888.js} +1 -1
  27. package/dist/cjs/{string-format-strategy.abstract-f2575647.js → string-format-strategy.abstract-814d66c4.js} +1 -1
  28. package/dist/cjs/{string-input-formatter-slimmer-0a334fc6.js → string-input-formatter-slimmer-749e3cfe.js} +3 -3
  29. package/dist/cjs/{string-mask-strategy-dda58395.js → string-mask-strategy-d00871c2.js} +2 -2
  30. package/dist/cjs/{style-formatter-028af284.js → style-formatter-94c1a1ff.js} +2 -2
  31. package/dist/cjs/{sub-state-notify-slimmer-58121111.js → sub-state-notify-slimmer-ac1dae32.js} +1 -1
  32. package/dist/cjs/{sub-state-observer-slimmer-1dfbc4c3.js → sub-state-observer-slimmer-e692d849.js} +1 -1
  33. package/dist/cjs/{time-required-rule-d6fa7aa8.js → time-required-rule-f1f3c8c2.js} +1 -1
  34. package/dist/cjs/{token-extension-ffcaeae0.js → token-extension-1e98ddf3.js} +7 -7
  35. package/dist/cjs/{translation-slimmer-4533bd67.js → translation-slimmer-3fa03d81.js} +1 -1
  36. package/dist/cjs/{type-guard-407ba0b8.js → type-guard-a0d9ff1f.js} +37 -2
  37. package/dist/cjs/{ui-32e69595.js → ui-024696c0.js} +8 -1
  38. package/dist/cjs/{valid-credit-card-number-rule-41a8b51b.js → valid-credit-card-number-rule-cba7d66a.js} +1 -1
  39. package/dist/cjs/vega-accordion.cjs.entry.js +9 -9
  40. package/dist/cjs/vega-app-header-button.cjs.entry.js +31 -13
  41. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-box.cjs.entry.js +8 -8
  43. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  44. package/dist/cjs/vega-button-circle.cjs.entry.js +12 -12
  45. package/dist/cjs/vega-button-group_2.cjs.entry.js +7 -7
  46. package/dist/cjs/vega-button-link.cjs.entry.js +20 -4
  47. package/dist/cjs/vega-button.cjs.entry.js +11 -11
  48. package/dist/cjs/vega-calendar_4.cjs.entry.js +15 -15
  49. package/dist/cjs/vega-card.cjs.entry.js +6 -6
  50. package/dist/cjs/vega-carousel.cjs.entry.js +9 -9
  51. package/dist/cjs/vega-checkbox_2.cjs.entry.js +11 -11
  52. package/dist/cjs/vega-chip.cjs.entry.js +11 -11
  53. package/dist/cjs/vega-code-block.cjs.entry.js +16 -15
  54. package/dist/cjs/vega-color-picker.cjs.entry.js +10 -10
  55. package/dist/cjs/vega-combo-box.cjs.entry.js +14 -14
  56. package/dist/cjs/vega-date-picker_2.cjs.entry.js +113 -32
  57. package/dist/cjs/vega-dialog_2.cjs.entry.js +11 -11
  58. package/dist/cjs/vega-divider.cjs.entry.js +7 -7
  59. package/dist/cjs/vega-dropdown_5.cjs.entry.js +41 -17
  60. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  61. package/dist/cjs/{vega-event-id-ee01d8dd.js → vega-event-id-c08ce3d3.js} +2 -0
  62. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  63. package/dist/cjs/vega-file-uploader.cjs.entry.js +11 -11
  64. package/dist/cjs/vega-flag-icon.cjs.entry.js +6 -6
  65. package/dist/cjs/vega-flex.cjs.entry.js +9 -9
  66. package/dist/cjs/vega-font.cjs.entry.js +7 -7
  67. package/dist/cjs/vega-form.cjs.entry.js +13 -13
  68. package/dist/cjs/vega-grid.cjs.entry.js +6 -6
  69. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  70. package/dist/cjs/vega-image-uploader.cjs.entry.js +14 -14
  71. package/dist/cjs/vega-input-credit-card.cjs.entry.js +16 -16
  72. package/dist/cjs/vega-input-numeric.cjs.entry.js +102 -42
  73. package/dist/cjs/vega-input-passcode.cjs.entry.js +109 -36
  74. package/dist/cjs/vega-input-phone-number.cjs.entry.js +91 -41
  75. package/dist/cjs/vega-input-range.cjs.entry.js +27 -12
  76. package/dist/cjs/vega-input-select.cjs.entry.js +17 -17
  77. package/dist/cjs/vega-input.cjs.entry.js +414 -187
  78. package/dist/cjs/{vega-internal-event-id-f2465f1b.js → vega-internal-event-id-e0aeac45.js} +2 -0
  79. package/dist/cjs/vega-item-toggle.cjs.entry.js +4 -4
  80. package/dist/cjs/vega-left-nav_5.cjs.entry.js +15 -16
  81. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +6 -6
  82. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  83. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +4 -4
  84. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +4 -4
  85. package/dist/cjs/vega-pagination.cjs.entry.js +12 -12
  86. package/dist/cjs/vega-popover_2.cjs.entry.js +15 -15
  87. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +12 -12
  88. package/dist/cjs/vega-radio_2.cjs.entry.js +14 -14
  89. package/dist/cjs/vega-rich-text-content.cjs.entry.js +17 -11
  90. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +589 -396
  91. package/dist/cjs/vega-segment-control.cjs.entry.js +6 -6
  92. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +14 -14
  93. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +12 -12
  94. package/dist/cjs/vega-sidenav_3.cjs.entry.js +12 -12
  95. package/dist/cjs/vega-signature-capture.cjs.entry.js +14 -14
  96. package/dist/cjs/vega-stepper.cjs.entry.js +12 -12
  97. package/dist/cjs/vega-tab-group_2.cjs.entry.js +7 -7
  98. package/dist/cjs/vega-table_11.cjs.entry.js +14 -14
  99. package/dist/cjs/vega-text.cjs.entry.js +3 -3
  100. package/dist/cjs/vega-textarea.cjs.entry.js +110 -42
  101. package/dist/cjs/vega-time-picker_2.cjs.entry.js +18 -18
  102. package/dist/cjs/vega-toggle-switch.cjs.entry.js +10 -10
  103. package/dist/cjs/vega-tooltip_2.cjs.entry.js +11 -11
  104. package/dist/cjs/vega.cjs.js +14 -14
  105. package/dist/cjs/{wait-for-component-did-render-70a01bf9.js → wait-for-component-did-render-cbebfc33.js} +1 -1
  106. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +44 -2
  107. package/dist/collection/components/vega-button-link/vega-button-link.js +16 -1
  108. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-preview-popover-renderer.js +1 -1
  109. package/dist/collection/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.js +1 -1
  110. package/dist/collection/components/vega-code-block/slimmers/renderers/vega-code-block-content-renderer.js +4 -0
  111. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +64 -0
  112. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.js +3 -0
  113. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +3 -3
  114. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +19 -1
  115. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +3 -2
  116. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +3 -2
  117. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +12 -0
  118. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +25 -0
  119. package/dist/collection/components/vega-flex/vega-flex.css +32 -0
  120. package/dist/collection/components/vega-flex/vega-flex.js +1 -1
  121. package/dist/collection/components/vega-grid/vega-grid.js +2 -2
  122. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.js +1 -3
  123. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.js +1 -5
  124. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +1 -4
  125. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +5 -2
  126. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-prefix-slot-renderer.js +1 -1
  127. package/dist/collection/components/vega-input/vega-input.js +382 -101
  128. package/dist/collection/components/vega-input-credit-card/vega-input-credit-card.js +1 -1
  129. package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +175 -49
  130. package/dist/collection/components/vega-input-passcode/slimmers/controllers/vega-input-passcode-keyboard-controller.js +2 -0
  131. package/dist/collection/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.js +30 -2
  132. package/dist/collection/components/vega-input-passcode/vega-input-passcode.js +123 -35
  133. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +145 -56
  134. package/dist/collection/components/vega-input-range/slimmers/renderers/vega-input-range-input-renderer.js +15 -0
  135. package/dist/collection/components/vega-input-select/vega-input-select.js +6 -5
  136. package/dist/collection/components/vega-nav/vega-left-nav-link/slimmers/renderers/vega-left-nav-link-renderer.js +2 -3
  137. package/dist/collection/components/vega-popover/vega-popover-content-box/vega-popover-content-box.css +5 -0
  138. package/dist/collection/components/vega-radio/vega-radio-group/vega-radio-group.js +1 -1
  139. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +7 -1
  140. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-image-controller.js +7 -4
  141. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +113 -12
  142. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +2 -2
  143. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +4 -17
  144. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +102 -0
  145. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +49 -1
  146. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/slimmers/renderers/vega-rich-text-image-editor-renderer.js +1 -1
  147. package/dist/collection/components/vega-stepper/vega-stepper.js +1 -1
  148. package/dist/collection/components/vega-textarea/vega-textarea.js +183 -52
  149. package/dist/collection/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.css +5 -0
  150. package/dist/collection/constants/ui.js +9 -1
  151. package/dist/collection/helpers/calendar/test/utils.test.js +54 -1
  152. package/dist/collection/helpers/calendar/utils.js +35 -0
  153. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -2
  154. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  155. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
  156. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +27 -0
  157. package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js +50 -0
  158. package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +10 -3
  159. package/dist/collection/helpers/slimmers/mutation-observer/data-tab-index-value-mapper.js +80 -0
  160. package/dist/collection/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.js +55 -3
  161. package/dist/collection/helpers/slimmers/mutation-observer/test/data-tab-index-value-mapper.test.js +120 -0
  162. package/dist/collection/helpers/slimmers/position-calculation/base-position-calculation-strategy.js +123 -9
  163. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +14 -4
  164. package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +13 -4
  165. package/dist/collection/helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.js +7 -6
  166. package/dist/collection/helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.js +162 -7
  167. package/dist/collection/helpers/translation/locales/en.js +16 -0
  168. package/dist/collection/helpers/translation/tests/internal-translation-controller.test.js +17 -0
  169. package/dist/collection/helpers/translation/tests/translation.test.js +14 -0
  170. package/dist/collection/helpers/ui/test/element-appender.test.js +7 -5
  171. package/dist/collection/utils/e2e-utils.js +6 -0
  172. package/dist/esm/{app-globals-32055795.js → app-globals-3b97bb20.js} +6 -6
  173. package/dist/esm/{aria-attributes-value-mapper-d4fef46a.js → aria-attributes-value-mapper-2c632641.js} +10 -3
  174. package/dist/esm/{breakpoints-56e5407b.js → breakpoints-13353e09.js} +1 -1
  175. package/dist/esm/{child-nodes-event-prevent-slimmer-331312b8.js → child-nodes-event-prevent-slimmer-4feabae0.js} +1 -1
  176. package/dist/esm/{code-block-b6247a45.js → code-block-d65bab61.js} +2 -2
  177. package/dist/esm/{component-value-history-controller-slimmer.abstract-2bb8533d.js → component-value-history-controller-slimmer.abstract-556fcf2a.js} +4 -4
  178. package/dist/esm/{date-required-rule-e771e7d9.js → date-required-rule-4ffd9cae.js} +1 -1
  179. package/dist/esm/{design-token-5bc034e1.js → design-token-b518a2aa.js} +3 -3
  180. package/dist/esm/{dto-renderer-manager-6fd22ab7.js → dto-renderer-manager-73df5cbe.js} +3 -3
  181. package/dist/esm/{element-appender-slimmer-9ea377d0.js → element-appender-slimmer-36b7a572.js} +181 -22
  182. package/dist/esm/{event-emit-slimmer-ffaecb9a.js → event-emit-slimmer-f879fd58.js} +1 -1
  183. package/dist/esm/{form-field-controller-slimmer-5817d14d.js → form-field-controller-slimmer-9a880420.js} +4 -4
  184. package/dist/esm/{image-annotation-action-6701b4c9.js → image-annotation-action-eb3dcad5.js} +3 -3
  185. package/dist/esm/index.js +18 -18
  186. package/dist/esm/{inject-keyboard-manager-78730062.js → inject-keyboard-manager-e5481833.js} +1 -1
  187. package/dist/esm/{internal-translation-controller-911515f9.js → internal-translation-controller-0787a7a7.js} +16 -0
  188. package/dist/esm/{internal-vega-event-manager-32a3d848.js → internal-vega-event-manager-3aebbe55.js} +2 -2
  189. package/dist/esm/{keyboard-manager-38934f94.js → keyboard-manager-4dfc625f.js} +1 -1
  190. package/dist/esm/{keyboard-manager-slimmer-9984d922.js → keyboard-manager-slimmer-87bf68f1.js} +1 -1
  191. package/dist/esm/loader.js +14 -14
  192. package/dist/esm/{month-view-generator-eaf9029c.js → month-view-generator-94134ec5.js} +1 -1
  193. package/dist/esm/{page-resize-observer-slimmer-d6af0d86.js → page-resize-observer-slimmer-e0505250.js} +1 -1
  194. package/dist/esm/{public-rules-25cc3a39.js → public-rules-49912d52.js} +9 -9
  195. package/dist/esm/{range-663f44dc.js → range-0a22b512.js} +1 -1
  196. package/dist/esm/{responsive-format-facade-aa705823.js → responsive-format-facade-b3799ff9.js} +3 -3
  197. package/dist/esm/{rich-text-editor-required-rule-a238b862.js → rich-text-editor-required-rule-d86e3a51.js} +1 -1
  198. package/dist/esm/{string-format-strategy.abstract-713fba36.js → string-format-strategy.abstract-e40a0df7.js} +1 -1
  199. package/dist/esm/{string-input-formatter-slimmer-5b413ff9.js → string-input-formatter-slimmer-076764fc.js} +3 -3
  200. package/dist/esm/{string-mask-strategy-6beaf664.js → string-mask-strategy-df1f5707.js} +2 -2
  201. package/dist/esm/{style-formatter-28138f5c.js → style-formatter-95255392.js} +2 -2
  202. package/dist/esm/{sub-state-notify-slimmer-5133f1a8.js → sub-state-notify-slimmer-f4b3b0b9.js} +1 -1
  203. package/dist/esm/{sub-state-observer-slimmer-478c9f41.js → sub-state-observer-slimmer-058feaf0.js} +1 -1
  204. package/dist/esm/{time-required-rule-e4138a76.js → time-required-rule-b4af75ae.js} +1 -1
  205. package/dist/esm/{token-extension-73e4460a.js → token-extension-ffd98170.js} +7 -7
  206. package/dist/esm/{translation-slimmer-2394b173.js → translation-slimmer-e788cae4.js} +1 -1
  207. package/dist/esm/{type-guard-f50e34d6.js → type-guard-f69d2935.js} +37 -3
  208. package/dist/esm/{ui-28fd4193.js → ui-41f725b7.js} +8 -1
  209. package/dist/esm/{valid-credit-card-number-rule-22ce81db.js → valid-credit-card-number-rule-c023326d.js} +1 -1
  210. package/dist/esm/vega-accordion.entry.js +9 -9
  211. package/dist/esm/vega-app-header-button.entry.js +31 -13
  212. package/dist/esm/vega-banner.entry.js +3 -3
  213. package/dist/esm/vega-box.entry.js +8 -8
  214. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  215. package/dist/esm/vega-button-circle.entry.js +12 -12
  216. package/dist/esm/vega-button-group_2.entry.js +7 -7
  217. package/dist/esm/vega-button-link.entry.js +20 -4
  218. package/dist/esm/vega-button.entry.js +11 -11
  219. package/dist/esm/vega-calendar_4.entry.js +15 -15
  220. package/dist/esm/vega-card.entry.js +6 -6
  221. package/dist/esm/vega-carousel.entry.js +9 -9
  222. package/dist/esm/vega-checkbox_2.entry.js +11 -11
  223. package/dist/esm/vega-chip.entry.js +11 -11
  224. package/dist/esm/vega-code-block.entry.js +16 -15
  225. package/dist/esm/vega-color-picker.entry.js +10 -10
  226. package/dist/esm/vega-combo-box.entry.js +14 -14
  227. package/dist/esm/vega-date-picker_2.entry.js +114 -33
  228. package/dist/esm/vega-dialog_2.entry.js +11 -11
  229. package/dist/esm/vega-divider.entry.js +7 -7
  230. package/dist/esm/vega-dropdown_5.entry.js +42 -18
  231. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  232. package/dist/esm/{vega-event-id-38aa77a0.js → vega-event-id-fdc58a67.js} +2 -1
  233. package/dist/esm/vega-field-label.entry.js +3 -3
  234. package/dist/esm/vega-file-uploader.entry.js +11 -11
  235. package/dist/esm/vega-flag-icon.entry.js +6 -6
  236. package/dist/esm/vega-flex.entry.js +9 -9
  237. package/dist/esm/vega-font.entry.js +7 -7
  238. package/dist/esm/vega-form.entry.js +13 -13
  239. package/dist/esm/vega-grid.entry.js +6 -6
  240. package/dist/esm/vega-icon.entry.js +6 -6
  241. package/dist/esm/vega-image-uploader.entry.js +14 -14
  242. package/dist/esm/vega-input-credit-card.entry.js +16 -16
  243. package/dist/esm/vega-input-numeric.entry.js +102 -42
  244. package/dist/esm/vega-input-passcode.entry.js +109 -36
  245. package/dist/esm/vega-input-phone-number.entry.js +91 -41
  246. package/dist/esm/vega-input-range.entry.js +27 -12
  247. package/dist/esm/vega-input-select.entry.js +17 -17
  248. package/dist/esm/vega-input.entry.js +414 -187
  249. package/dist/esm/{vega-internal-event-id-799d012e.js → vega-internal-event-id-12783594.js} +2 -1
  250. package/dist/esm/vega-item-toggle.entry.js +4 -4
  251. package/dist/esm/vega-left-nav_5.entry.js +15 -16
  252. package/dist/esm/vega-loader-wrapper_2.entry.js +6 -6
  253. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  254. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  255. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +4 -4
  256. package/dist/esm/vega-pagination.entry.js +12 -12
  257. package/dist/esm/vega-popover_2.entry.js +15 -15
  258. package/dist/esm/vega-progress-tracker_2.entry.js +12 -12
  259. package/dist/esm/vega-radio_2.entry.js +14 -14
  260. package/dist/esm/vega-rich-text-content.entry.js +17 -11
  261. package/dist/esm/vega-rich-text-editor_4.entry.js +589 -396
  262. package/dist/esm/vega-segment-control.entry.js +6 -6
  263. package/dist/esm/vega-selection-chip_2.entry.js +14 -14
  264. package/dist/esm/vega-selection-tile_2.entry.js +12 -12
  265. package/dist/esm/vega-sidenav_3.entry.js +12 -12
  266. package/dist/esm/vega-signature-capture.entry.js +14 -14
  267. package/dist/esm/vega-stepper.entry.js +12 -12
  268. package/dist/esm/vega-tab-group_2.entry.js +7 -7
  269. package/dist/esm/vega-table_11.entry.js +14 -14
  270. package/dist/esm/vega-text.entry.js +3 -3
  271. package/dist/esm/vega-textarea.entry.js +110 -42
  272. package/dist/esm/vega-time-picker_2.entry.js +18 -18
  273. package/dist/esm/vega-toggle-switch.entry.js +10 -10
  274. package/dist/esm/vega-tooltip_2.entry.js +11 -11
  275. package/dist/esm/vega.js +14 -14
  276. package/dist/esm/{wait-for-component-did-render-b08ef07b.js → wait-for-component-did-render-4d0a3428.js} +1 -1
  277. package/dist/sri/vega-sri-manifest.json +341 -341
  278. package/dist/types/components/vega-app-header-button/types.d.ts +18 -0
  279. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +8 -1
  280. package/dist/types/components/vega-button-link/vega-button-link.d.ts +2 -0
  281. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.d.ts +21 -0
  282. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.d.ts +1 -0
  283. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +7 -0
  284. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +11 -0
  285. package/dist/types/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.d.ts +0 -1
  286. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +0 -1
  287. package/dist/types/components/vega-input/vega-input.d.ts +321 -79
  288. package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +117 -42
  289. package/dist/types/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.d.ts +14 -0
  290. package/dist/types/components/vega-input-passcode/vega-input-passcode.d.ts +82 -28
  291. package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +99 -34
  292. package/dist/types/components/vega-input-range/slimmers/renderers/vega-input-range-input-renderer.d.ts +8 -0
  293. package/dist/types/components/vega-input-select/vega-input-select.d.ts +2 -2
  294. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/insert-image-controller.d.ts +7 -1
  295. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +30 -2
  296. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -1
  297. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +1 -3
  298. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.d.ts +37 -0
  299. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +16 -0
  300. package/dist/types/components/vega-textarea/vega-textarea.d.ts +123 -41
  301. package/dist/types/components.d.ts +429 -219
  302. package/dist/types/constants/ui.d.ts +2 -2
  303. package/dist/types/helpers/calendar/utils.d.ts +17 -0
  304. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  305. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
  306. package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +12 -0
  307. package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +2 -1
  308. package/dist/types/helpers/slimmers/mutation-observer/data-tab-index-value-mapper.d.ts +35 -0
  309. package/dist/types/helpers/slimmers/mutation-observer/test/data-tab-index-value-mapper.test.d.ts +1 -0
  310. package/dist/types/helpers/slimmers/position-calculation/base-position-calculation-strategy.d.ts +60 -3
  311. package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +3 -2
  312. package/dist/types/helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.d.ts +1 -1
  313. package/dist/types/helpers/translation/interface.d.ts +17 -1
  314. package/dist/types/types/components.type.d.ts +1 -0
  315. package/dist/types/types/type-guard.d.ts +3 -3
  316. package/dist/types/types/ui.type.d.ts +3 -2
  317. package/dist/types/utils/e2e-utils.d.ts +2 -0
  318. package/dist/vega/index.esm.js +1 -1
  319. package/dist/vega/{p-9441f2ba.entry.js → p-0009e0bc.entry.js} +1 -1
  320. package/dist/vega/{p-2d69632d.js → p-02976501.js} +1 -1
  321. package/dist/vega/{p-bf6fc19f.entry.js → p-03280f85.entry.js} +1 -1
  322. package/dist/vega/{p-f3e6483c.js → p-03b1e442.js} +1 -1
  323. package/dist/vega/{p-33f9ad94.entry.js → p-0681ffee.entry.js} +1 -1
  324. package/dist/vega/{p-3ce2b05c.entry.js → p-093aa0cb.entry.js} +1 -1
  325. package/dist/vega/{p-ffd48e37.entry.js → p-1828f9e6.entry.js} +1 -1
  326. package/dist/vega/{p-f428086c.entry.js → p-19883e27.entry.js} +1 -1
  327. package/dist/vega/p-1e015382.js +1 -0
  328. package/dist/vega/{p-7425cedc.entry.js → p-1ff45314.entry.js} +1 -1
  329. package/dist/vega/{p-9339c6c4.js → p-24b4c64f.js} +1 -1
  330. package/dist/vega/{p-5833f33b.entry.js → p-2e7ec8e0.entry.js} +1 -1
  331. package/dist/vega/{p-1a3236e7.entry.js → p-309b5016.entry.js} +1 -1
  332. package/dist/vega/{p-857069a5.entry.js → p-3592a26d.entry.js} +1 -1
  333. package/dist/vega/{p-560d2f48.entry.js → p-383e235a.entry.js} +1 -1
  334. package/dist/vega/p-3992038a.js +1 -0
  335. package/dist/vega/{p-02c9796a.js → p-3a537cd0.js} +1 -1
  336. package/dist/vega/{p-daa60a59.entry.js → p-3b7ad04b.entry.js} +1 -1
  337. package/dist/vega/{p-5485c387.entry.js → p-3d4b8066.entry.js} +1 -1
  338. package/dist/vega/{p-7d7aaff9.entry.js → p-3e484d99.entry.js} +1 -1
  339. package/dist/vega/{p-c165232c.entry.js → p-3fd3861c.entry.js} +1 -1
  340. package/dist/vega/{p-d78f6ede.js → p-4079e932.js} +1 -1
  341. package/dist/vega/{p-5eb7f382.js → p-43df17a1.js} +1 -1
  342. package/dist/vega/{p-db5fa164.entry.js → p-473ceda5.entry.js} +1 -1
  343. package/dist/vega/{p-67745549.entry.js → p-474b97cf.entry.js} +1 -1
  344. package/dist/vega/{p-242fbcad.entry.js → p-47c202eb.entry.js} +1 -1
  345. package/dist/vega/p-4e0344bc.entry.js +1 -0
  346. package/dist/vega/{p-e6cf2ace.entry.js → p-4efe9cd8.entry.js} +1 -1
  347. package/dist/vega/{p-36a09524.entry.js → p-536ad3d7.entry.js} +1 -1
  348. package/dist/vega/{p-22056609.entry.js → p-53e0b2bd.entry.js} +1 -1
  349. package/dist/vega/p-57180993.entry.js +1 -0
  350. package/dist/vega/{p-e827d56d.js → p-5b238c6d.js} +1 -1
  351. package/dist/vega/{p-464559e3.js → p-5ba34330.js} +1 -1
  352. package/dist/vega/p-5e1d0f21.entry.js +1 -0
  353. package/dist/vega/{p-a786259a.js → p-5ed5aa26.js} +1 -1
  354. package/dist/vega/p-5f377954.js +1 -1
  355. package/dist/vega/{p-d64fab3d.js → p-5f81beae.js} +1 -1
  356. package/dist/vega/{p-34bcf4ed.entry.js → p-6a8ac66d.entry.js} +1 -1
  357. package/dist/vega/{p-4bffdb28.js → p-6b3776ec.js} +1 -1
  358. package/dist/vega/{p-2b142818.entry.js → p-6b4021f0.entry.js} +1 -1
  359. package/dist/vega/{p-2a10e2e5.js → p-6cf28c27.js} +1 -1
  360. package/dist/vega/{p-0037068c.entry.js → p-71cd1d9e.entry.js} +1 -1
  361. package/dist/vega/{p-4aa52ed2.entry.js → p-7440325c.entry.js} +1 -1
  362. package/dist/vega/p-764425e4.entry.js +1 -0
  363. package/dist/vega/p-77908e45.entry.js +1 -0
  364. package/dist/vega/{p-a0b66c25.js → p-7ade785e.js} +1 -1
  365. package/dist/vega/{p-f2b0b58a.js → p-7db5e003.js} +1 -1
  366. package/dist/vega/{p-021d4ae4.js → p-7db918f4.js} +1 -1
  367. package/dist/vega/{p-0572c393.entry.js → p-7f398d23.entry.js} +1 -1
  368. package/dist/vega/p-7f665911.entry.js +1 -0
  369. package/dist/vega/p-840f156e.entry.js +1 -0
  370. package/dist/vega/{p-95528b47.js → p-87379d3c.js} +1 -1
  371. package/dist/vega/p-87ed06cd.entry.js +1 -0
  372. package/dist/vega/{p-a8792e3d.js → p-882a220c.js} +1 -1
  373. package/dist/vega/{p-6b6f0fb4.js → p-898bcb24.js} +1 -1
  374. package/dist/vega/{p-d07f5d5a.entry.js → p-8fbb677e.entry.js} +1 -1
  375. package/dist/vega/p-9493d87a.js +1 -0
  376. package/dist/vega/{p-81b044b9.js → p-951c0172.js} +1 -1
  377. package/dist/vega/p-95919581.entry.js +1 -0
  378. package/dist/vega/{p-7c39ce96.js → p-95d1b547.js} +1 -1
  379. package/dist/vega/{p-50d074ed.entry.js → p-99c8f9a4.entry.js} +1 -1
  380. package/dist/vega/{p-e632475e.js → p-9c713bc0.js} +1 -1
  381. package/dist/vega/{p-3afc025e.entry.js → p-9dc77b66.entry.js} +1 -1
  382. package/dist/vega/{p-415ffa35.js → p-9f467a59.js} +1 -1
  383. package/dist/vega/p-a113fd15.entry.js +1 -0
  384. package/dist/vega/{p-4742feef.entry.js → p-a253e791.entry.js} +1 -1
  385. package/dist/vega/{p-0d4cb1c7.entry.js → p-a3272850.entry.js} +1 -1
  386. package/dist/vega/{p-b1773281.entry.js → p-a432708d.entry.js} +1 -1
  387. package/dist/vega/p-a57a7ab8.entry.js +1 -0
  388. package/dist/vega/{p-6d219c44.entry.js → p-a58bd510.entry.js} +1 -1
  389. package/dist/vega/{p-4ea30592.js → p-a957e15f.js} +1 -1
  390. package/dist/vega/{p-bff57aa4.js → p-abb81b7b.js} +1 -1
  391. package/dist/vega/{p-100b44c3.entry.js → p-ae6ed091.entry.js} +1 -1
  392. package/dist/vega/{p-03004a05.entry.js → p-b5e31243.entry.js} +1 -1
  393. package/dist/vega/{p-49845a91.js → p-b88ca09b.js} +1 -1
  394. package/dist/vega/{p-c2d2faa0.js → p-b901d624.js} +1 -1
  395. package/dist/vega/p-ba475520.entry.js +1 -0
  396. package/dist/vega/p-bdb5180c.js +1 -0
  397. package/dist/vega/p-bf04ff19.js +1 -0
  398. package/dist/vega/{p-1a51bf6f.js → p-c208a3b7.js} +1 -1
  399. package/dist/vega/{p-3c05abd9.entry.js → p-c25577ae.entry.js} +1 -1
  400. package/dist/vega/{p-1f3cd061.entry.js → p-c2560608.entry.js} +1 -1
  401. package/dist/vega/{p-0e679d8c.js → p-c2df94f6.js} +1 -1
  402. package/dist/vega/{p-cfecc1cb.entry.js → p-c3eec160.entry.js} +1 -1
  403. package/dist/vega/p-c6031d3f.entry.js +1 -0
  404. package/dist/vega/{p-70df91fb.entry.js → p-c87cf96a.entry.js} +1 -1
  405. package/dist/vega/{p-592296d7.entry.js → p-cc243e62.entry.js} +1 -1
  406. package/dist/vega/{p-cccd7648.entry.js → p-cd3d177b.entry.js} +1 -1
  407. package/dist/vega/{p-be1a210b.js → p-d0687ec0.js} +1 -1
  408. package/dist/vega/{p-b201f379.js → p-d25db724.js} +1 -1
  409. package/dist/vega/{p-aa1174dc.js → p-d42dbe39.js} +1 -1
  410. package/dist/vega/{p-9fb877c1.entry.js → p-d5570331.entry.js} +1 -1
  411. package/dist/vega/p-d5797747.js +1 -0
  412. package/dist/vega/{p-1a011d47.entry.js → p-d7434f44.entry.js} +1 -1
  413. package/dist/vega/p-db92453f.entry.js +1 -0
  414. package/dist/vega/{p-0a3a285b.entry.js → p-e5be807b.entry.js} +1 -1
  415. package/dist/vega/p-e6f0097f.js +1 -0
  416. package/dist/vega/{p-e8775a56.entry.js → p-e7a8b61e.entry.js} +1 -1
  417. package/dist/vega/{p-d2ee5711.entry.js → p-f46f6679.entry.js} +1 -1
  418. package/dist/vega/{p-1fa0c7da.entry.js → p-f49e8cc5.entry.js} +1 -1
  419. package/dist/vega/p-f5b6059d.entry.js +1 -0
  420. package/dist/vega/p-fb40a829.js +1 -0
  421. package/dist/vega/vega.esm.js +1 -1
  422. package/package.json +3 -2
  423. package/dist/vega/p-010ff53d.entry.js +0 -1
  424. package/dist/vega/p-168bb296.entry.js +0 -1
  425. package/dist/vega/p-40f39194.js +0 -1
  426. package/dist/vega/p-43ff48c0.entry.js +0 -1
  427. package/dist/vega/p-4aa94940.entry.js +0 -1
  428. package/dist/vega/p-4bee4202.entry.js +0 -1
  429. package/dist/vega/p-5cfce62d.entry.js +0 -1
  430. package/dist/vega/p-60f77f5f.entry.js +0 -1
  431. package/dist/vega/p-641cdb5c.entry.js +0 -1
  432. package/dist/vega/p-ab834f06.js +0 -1
  433. package/dist/vega/p-ac82b9f9.entry.js +0 -1
  434. package/dist/vega/p-b54dc37c.entry.js +0 -1
  435. package/dist/vega/p-b597393b.entry.js +0 -1
  436. package/dist/vega/p-b5f18f4b.entry.js +0 -1
  437. package/dist/vega/p-b7f3221f.js +0 -1
  438. package/dist/vega/p-c292ade4.entry.js +0 -1
  439. package/dist/vega/p-c3d2f316.js +0 -1
  440. package/dist/vega/p-cc5eaa1b.js +0 -1
  441. package/dist/vega/p-d1cfe972.entry.js +0 -1
  442. package/dist/vega/p-dad3ba5f.js +0 -1
  443. package/dist/vega/p-de64f6e6.js +0 -1
  444. package/dist/vega/p-e7fbef97.js +0 -1
  445. package/dist/vega/p-fc9ac6e9.entry.js +0 -1
@@ -9,26 +9,27 @@ const component = require('./component-1e352960.js');
9
9
  const accessibility = require('./accessibility-bfa227f6.js');
10
10
  const changeManager = require('./change-manager-a297e4d2.js');
11
11
  const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-c62823de.js');
12
- const vegaInternalEventId = require('./vega-internal-event-id-f2465f1b.js');
13
- const dtoRendererManager = require('./dto-renderer-manager-809c947b.js');
14
- const typeGuard = require('./type-guard-407ba0b8.js');
12
+ const vegaInternalEventId = require('./vega-internal-event-id-e0aeac45.js');
13
+ const dtoRendererManager = require('./dto-renderer-manager-7557d562.js');
14
+ const typeGuard = require('./type-guard-a0d9ff1f.js');
15
15
  const internalIconManager = require('./internal-icon-manager-c989189a.js');
16
- const codeBlock = require('./code-block-f1480ec3.js');
17
- const imageAnnotationAction = require('./image-annotation-action-8d9fa20c.js');
18
- const vegaEventId = require('./vega-event-id-ee01d8dd.js');
16
+ const codeBlock = require('./code-block-1a5fafed.js');
17
+ const imageAnnotationAction = require('./image-annotation-action-f275863e.js');
18
+ const vegaEventId = require('./vega-event-id-c08ce3d3.js');
19
19
  const misc = require('./misc-3d30df91.js');
20
- const waitForComponentDidRender = require('./wait-for-component-did-render-70a01bf9.js');
21
- const formFieldControllerSlimmer = require('./form-field-controller-slimmer-102f37c7.js');
22
- const eventEmitSlimmer = require('./event-emit-slimmer-062cdcb8.js');
23
- const subStateNotifySlimmer = require('./sub-state-notify-slimmer-58121111.js');
24
- const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-a9264cc8.js');
20
+ const waitForComponentDidRender = require('./wait-for-component-did-render-cbebfc33.js');
21
+ const tryGetDocument = require('./try-get-document-c0ebd39a.js');
22
+ const formFieldControllerSlimmer = require('./form-field-controller-slimmer-73f5849e.js');
23
+ const eventEmitSlimmer = require('./event-emit-slimmer-c84121c8.js');
24
+ const subStateNotifySlimmer = require('./sub-state-notify-slimmer-ac1dae32.js');
25
+ const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-42683f23.js');
25
26
  const staticSubjectTitle = require('./static-subject-title-5829a298.js');
26
27
  const observer = require('./observer-f49483e8.js');
27
28
  const timer = require('./timer-5f33058b.js');
28
29
  const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-8a87ec08.js');
29
- const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-22225840.js');
30
- const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-cc6d2919.js');
31
- const translationSlimmer = require('./translation-slimmer-4533bd67.js');
30
+ const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-6346a888.js');
31
+ const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-dd0bb8b6.js');
32
+ const translationSlimmer = require('./translation-slimmer-3fa03d81.js');
32
33
  const darkModeStyleController = require('./dark-mode-style-controller-3a04af3d.js');
33
34
  const array = require('./array-249289f2.js');
34
35
  const chevronDown = require('./chevron-down-9847bf78.js');
@@ -38,199 +39,31 @@ const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.
38
39
  require('./string-39438062.js');
39
40
  require('./object-e2e28e3d.js');
40
41
  require('./breakpoints-ebde4837.js');
41
- require('./ui-32e69595.js');
42
+ require('./ui-024696c0.js');
42
43
  require('./typography-4560e7f1.js');
43
- require('./internal-translation-controller-053eb0f1.js');
44
+ require('./internal-translation-controller-24df468f.js');
44
45
  require('./icon-manager-c12c6ea9.js');
45
46
  require('./create-public-api-runtime-metrics-slimmer-9cb09fb2.js');
46
47
  require('./dynamic-slimmer-f31fdfd7.js');
47
48
  require('./index-592b4052.js');
48
- require('./try-get-document-c0ebd39a.js');
49
- require('./page-resize-observer-slimmer-7f065ee1.js');
50
- require('./breakpoints-751d433a.js');
49
+ require('./page-resize-observer-slimmer-e050cd26.js');
50
+ require('./breakpoints-a8ff22f0.js');
51
51
  require('./internal-form-field-validation-rule.abstract-07cdff46.js');
52
52
  require('./mutation-observer-slimmer-749d5020.js');
53
53
  require('./mutation-observer-filters-38cebc6d.js');
54
- require('./sub-state-observer-slimmer-1dfbc4c3.js');
55
- require('./internal-vega-event-manager-f7ecf3d4.js');
56
- require('./range-8aa49b08.js');
54
+ require('./sub-state-observer-slimmer-e692d849.js');
55
+ require('./internal-vega-event-manager-cc0f511c.js');
56
+ require('./range-e298d4aa.js');
57
57
  require('./synchronize-task-queue-1ee80e94.js');
58
- require('./keyboard-manager-slimmer-0cc0c1c7.js');
59
- require('./keyboard-manager-055e9f67.js');
58
+ require('./keyboard-manager-slimmer-b44f0dc9.js');
59
+ require('./keyboard-manager-7de7ecfd.js');
60
60
  require('./vega-env-manager-23b8b23c.js');
61
61
  require('./feature-flag-controller-9129ef52.js');
62
62
  require('./index-f054eb5d.js');
63
63
  require('./vega-nonce-manager-df69d3ed.js');
64
64
  require('./number-4816603d.js');
65
65
 
66
- /**
67
- * Class to format HTML code with proper indentation and style cleanup.
68
- */
69
- class CodeFormatter {
70
- constructor() {
71
- /**
72
- * Formats a given HTML source string by applying indentation and cleaning up styles.
73
- * Content inside preserve tags (pre) is preserved as-is without formatting.
74
- *
75
- * @param {string} source - The HTML source string to format.
76
- * @param {CodeFormatOptions} options - Formatting options.
77
- * @returns {string} The formatted HTML string.
78
- */
79
- this.format = (source, options = {}) => {
80
- const { tabWidth = 4, useTabs = true } = options;
81
- const indentUnit = useTabs ? '\t' : ' ';
82
- const INDENT = indentUnit.repeat(tabWidth);
83
- const tagRegex = /(<\/?[^>]+>)/g;
84
- // Split source into tokens using tag boundaries while filtering out empty strings
85
- const tokens = source.split(tagRegex).filter((t) => t.length > 0);
86
- let indentLevel = 0;
87
- let output = '';
88
- let preserveDepth = 0;
89
- for (let i = 0; i < tokens.length; i++) {
90
- let token = tokens[i];
91
- const tagName = CodeFormatter.getTagName(token);
92
- // Track if we're entering or exiting preserve tags
93
- if (CodeFormatter.PRESERVE_CONTENT_TAGS.has(tagName)) {
94
- if (token.startsWith('</')) {
95
- preserveDepth = Math.max(0, preserveDepth - 1);
96
- }
97
- else if (token.startsWith('<')) {
98
- preserveDepth++;
99
- }
100
- }
101
- // If inside preserve tag, output as-is without formatting
102
- if (preserveDepth > 0) {
103
- output += token;
104
- continue;
105
- }
106
- // Decrease indentation for closing tags (after exiting preserve tags)
107
- if (token.startsWith('</')) {
108
- indentLevel = Math.max(0, indentLevel - 1);
109
- }
110
- const indent = INDENT.repeat(indentLevel);
111
- if (token.startsWith('<')) {
112
- // Clean and normalize inline style attributes
113
- token = token.replace(/style\s*=\s*"([^"]*)"/g, (_, styleContent) => {
114
- return `style="${this.formatStyle(styleContent)}"`;
115
- });
116
- const isInline = CodeFormatter.INLINE_TAGS.has(tagName);
117
- // Inline tag grouping: e.g., <strong>Text</strong> or <span></span> stays on one line
118
- // Check for empty tags: <tag></tag> (closing tag immediately follows opening tag)
119
- if (isInline && i + 1 < tokens.length && tokens[i + 1] === `</${tagName}>`) {
120
- // Empty inline tag: <span></span>
121
- output += `${indent}${token}${tokens[i + 1]}\n`;
122
- i += 1;
123
- }
124
- else if (isInline && i + 2 < tokens.length && tokens[i + 2] === `</${tagName}>`) {
125
- // Group consecutive inline tags with content
126
- let inlineGroup = `${token}${tokens[i + 1]}${tokens[i + 2]}`;
127
- i += 2;
128
- // Keep merging consecutive inline tag pairs
129
- while (i + 3 < tokens.length &&
130
- tokens[i + 1].startsWith('<') &&
131
- CodeFormatter.INLINE_TAGS.has(CodeFormatter.getTagName(tokens[i + 1])) &&
132
- tokens[i + 3] === `</${CodeFormatter.getTagName(tokens[i + 1])}>`) {
133
- inlineGroup += `${tokens[i + 1]}${tokens[i + 2]}${tokens[i + 3]}`;
134
- i += 3;
135
- }
136
- output += `${indent}${inlineGroup}\n`;
137
- }
138
- else {
139
- output += `${indent}${token}\n`;
140
- // Increase indentation for non-void opening tags
141
- if (!token.startsWith('</') &&
142
- !token.endsWith('/>') &&
143
- !CodeFormatter.VOID_TAGS.has(tagName)) {
144
- indentLevel++;
145
- }
146
- }
147
- }
148
- else {
149
- // Add plain text content with current indentation
150
- const text = token;
151
- if (text.length > 0) {
152
- output += `${INDENT.repeat(indentLevel)}${text}\n`;
153
- }
154
- }
155
- }
156
- return output.trim();
157
- };
158
- }
159
- /**
160
- * Extracts the tag name from an HTML tag string.
161
- *
162
- * @param {string} tag - A raw HTML tag string
163
- * @returns {string} The lowercase tag name, or an empty string if no match is found.
164
- */
165
- static getTagName(tag) {
166
- var _a;
167
- const match = tag.match(/^<\/?([a-z0-9]+)/i);
168
- return (_a = match === null || match === void 0 ? void 0 : match[1].toLowerCase()) !== null && _a !== void 0 ? _a : '';
169
- }
170
- /**
171
- * Formats a CSS style string by trimming white space and ensuring consistent semicolon spacing.
172
- *
173
- * @param {string} style - The CSS style string to format.
174
- * @returns {string} The formatted style string.
175
- */
176
- formatStyle(style) {
177
- return style
178
- .split(';')
179
- .map((s) => s.trim())
180
- .filter(Boolean)
181
- .join('; ');
182
- }
183
- }
184
- /**
185
- * Inline/phrasing elements that should be kept on a single line with their content.
186
- * These tags are formatted as: <tag>content</tag> on one line.
187
- */
188
- CodeFormatter.INLINE_TAGS = new Set([
189
- 'span',
190
- 'strong',
191
- 'em',
192
- 'a',
193
- 'b',
194
- 'i',
195
- 'u',
196
- 'small',
197
- 'abbr',
198
- 'code',
199
- 'b',
200
- 'u',
201
- 's',
202
- 'mark',
203
- 'time',
204
- 'del',
205
- 'ins',
206
- ]);
207
- /**
208
- * Void/self-closing elements that don't have closing tags.
209
- * Used to avoid increasing indentation for these elements.
210
- */
211
- CodeFormatter.VOID_TAGS = new Set([
212
- 'area',
213
- 'base',
214
- 'br',
215
- 'col',
216
- 'embed',
217
- 'hr',
218
- 'img',
219
- 'input',
220
- 'link',
221
- 'meta',
222
- 'param',
223
- 'source',
224
- 'track',
225
- 'wbr',
226
- ]);
227
- /**
228
- * Tags whose content should be preserved as-is without formatting.
229
- */
230
- CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
231
- const CodeFormatter$1 = new CodeFormatter();
232
-
233
- var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
66
+ var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
234
67
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
235
68
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
236
69
  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;
@@ -265,16 +98,6 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
265
98
  this.richTextContentFocus = () => {
266
99
  void this.richTextContentRef.vegaFocus();
267
100
  };
268
- this.renderSourceViewContent = () => {
269
- if (!this.allowSourceEdit)
270
- return;
271
- const sourceViewValue = this.sourceView ? CodeFormatter$1.format(this.value.toHtml()) : '';
272
- return (index.h("div", { class: {
273
- 'source-view-container': true,
274
- 'vega-hidden': !this.sourceView,
275
- } },
276
- index.h("vega-code-block", { ref: (ref) => (this.sourceCodeBlockRef = ref), disabled: this.disabled, value: { language: 'html', code: sourceViewValue } })));
277
- };
278
101
  }
279
102
  /**
280
103
  * Component lifecycle - [componentDidRender]{@link VegaRichTextEditor.componentDidRender}
@@ -316,11 +139,6 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
316
139
  return this.richTextContentRef.shadowRoot.querySelector('.rich-text-content');
317
140
  }
318
141
  }
319
- getSourceCode() {
320
- if (this.sourceCodeBlockRef) {
321
- return this.sourceCodeBlockRef.value.code;
322
- }
323
- }
324
142
  render() {
325
143
  return index.h(index.Host, null, this.renderRichTextEditor());
326
144
  }
@@ -338,56 +156,59 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
338
156
  renderContent() {
339
157
  return (index.h(index.Fragment, null,
340
158
  this.renderTextContent(),
341
- this.renderSourceViewContent()));
159
+ this.richTextEditorSourceViewRenderer.render()));
342
160
  }
343
161
  }
344
- __decorate$C([
162
+ __decorate$D([
345
163
  globalSlimmerRegistry.MapToComponentField()
346
164
  ], VegaRichTextEditorRenderer.prototype, "host", void 0);
347
- __decorate$C([
165
+ __decorate$D([
348
166
  globalSlimmerRegistry.MapToComponentField()
349
167
  ], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
350
- __decorate$C([
168
+ __decorate$D([
351
169
  globalSlimmerRegistry.MapToComponentField()
352
170
  ], VegaRichTextEditorRenderer.prototype, "label", void 0);
353
- __decorate$C([
171
+ __decorate$D([
354
172
  globalSlimmerRegistry.MapToComponentField()
355
173
  ], VegaRichTextEditorRenderer.prototype, "required", void 0);
356
- __decorate$C([
174
+ __decorate$D([
357
175
  globalSlimmerRegistry.MapToComponentField()
358
176
  ], VegaRichTextEditorRenderer.prototype, "hint", void 0);
359
- __decorate$C([
177
+ __decorate$D([
360
178
  globalSlimmerRegistry.MapToComponentField()
361
179
  ], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
362
- __decorate$C([
180
+ __decorate$D([
363
181
  globalSlimmerRegistry.MapToComponentField()
364
182
  ], VegaRichTextEditorRenderer.prototype, "rows", void 0);
365
- __decorate$C([
183
+ __decorate$D([
366
184
  globalSlimmerRegistry.MapToComponentField()
367
185
  ], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
368
- __decorate$C([
186
+ __decorate$D([
369
187
  globalSlimmerRegistry.MapToComponentField()
370
188
  ], VegaRichTextEditorRenderer.prototype, "value", void 0);
371
- __decorate$C([
189
+ __decorate$D([
372
190
  globalSlimmerRegistry.MapToComponentField()
373
191
  ], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
374
- __decorate$C([
192
+ __decorate$D([
375
193
  globalSlimmerRegistry.MapToComponentField()
376
194
  ], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
377
- __decorate$C([
195
+ __decorate$D([
378
196
  globalSlimmerRegistry.MapToComponentField()
379
197
  ], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
380
- __decorate$C([
198
+ __decorate$D([
381
199
  globalSlimmerRegistry.MapToComponentField()
382
200
  ], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
383
- __decorate$C([
201
+ __decorate$D([
384
202
  globalSlimmerRegistry.MapToComponentField()
385
203
  ], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
386
- __decorate$C([
204
+ __decorate$D([
205
+ globalSlimmerRegistry.MapToComponentField()
206
+ ], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
207
+ __decorate$D([
387
208
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
388
209
  ], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
389
210
 
390
- var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
211
+ var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
391
212
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
392
213
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
393
214
  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;
@@ -483,67 +304,67 @@ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
483
304
  return [renderedItems, totalVisibleCount];
484
305
  }
485
306
  }
486
- __decorate$B([
307
+ __decorate$C([
487
308
  globalSlimmerRegistry.MapToComponentField()
488
309
  ], ToolbarRenderer.prototype, "toolbarItems", void 0);
489
- __decorate$B([
310
+ __decorate$C([
490
311
  globalSlimmerRegistry.MapToComponentField()
491
312
  ], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
492
- __decorate$B([
313
+ __decorate$C([
493
314
  globalSlimmerRegistry.MapToComponentField()
494
315
  ], ToolbarRenderer.prototype, "host", void 0);
495
- __decorate$B([
316
+ __decorate$C([
496
317
  globalSlimmerRegistry.MapToComponentField()
497
318
  ], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
498
- __decorate$B([
319
+ __decorate$C([
499
320
  globalSlimmerRegistry.MapToComponentField()
500
321
  ], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
501
- __decorate$B([
322
+ __decorate$C([
502
323
  globalSlimmerRegistry.MapToComponentField()
503
324
  ], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
504
- __decorate$B([
325
+ __decorate$C([
505
326
  globalSlimmerRegistry.MapToComponentField()
506
327
  ], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
507
- __decorate$B([
328
+ __decorate$C([
508
329
  globalSlimmerRegistry.MapToComponentField()
509
330
  ], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
510
- __decorate$B([
331
+ __decorate$C([
511
332
  globalSlimmerRegistry.MapToComponentField()
512
333
  ], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
513
- __decorate$B([
334
+ __decorate$C([
514
335
  globalSlimmerRegistry.MapToComponentField()
515
336
  ], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
516
- __decorate$B([
337
+ __decorate$C([
517
338
  globalSlimmerRegistry.MapToComponentField()
518
339
  ], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
519
- __decorate$B([
340
+ __decorate$C([
520
341
  globalSlimmerRegistry.MapToComponentField()
521
342
  ], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
522
- __decorate$B([
343
+ __decorate$C([
523
344
  globalSlimmerRegistry.MapToComponentField()
524
345
  ], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
525
- __decorate$B([
346
+ __decorate$C([
526
347
  globalSlimmerRegistry.MapToComponentField()
527
348
  ], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
528
- __decorate$B([
349
+ __decorate$C([
529
350
  globalSlimmerRegistry.MapToComponentField()
530
351
  ], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
531
- __decorate$B([
352
+ __decorate$C([
532
353
  globalSlimmerRegistry.MapToComponentField()
533
354
  ], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
534
- __decorate$B([
355
+ __decorate$C([
535
356
  globalSlimmerRegistry.MapToComponentField()
536
357
  ], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
537
- __decorate$B([
358
+ __decorate$C([
538
359
  globalSlimmerRegistry.MapToComponentField()
539
360
  ], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
540
- __decorate$B([
361
+ __decorate$C([
541
362
  globalSlimmerRegistry.MapToComponentField()
542
363
  ], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
543
- __decorate$B([
364
+ __decorate$C([
544
365
  globalSlimmerRegistry.MapToComponentField()
545
366
  ], ToolbarRenderer.prototype, "selectionController", void 0);
546
- __decorate$B([
367
+ __decorate$C([
547
368
  globalSlimmerRegistry.MapToComponentField()
548
369
  ], ToolbarRenderer.prototype, "sourceView", void 0);
549
370
 
@@ -551,7 +372,7 @@ const bold = {
551
372
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>`,
552
373
  };
553
374
 
554
- var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
375
+ var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
555
376
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
556
377
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
557
378
  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;
@@ -593,7 +414,7 @@ class BoldToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
593
414
  (() => {
594
415
  internalIconManager.VegaInternalIconManager.register({ bold });
595
416
  })();
596
- __decorate$A([
417
+ __decorate$B([
597
418
  globalSlimmerRegistry.MapToComponentField()
598
419
  ], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
599
420
 
@@ -601,7 +422,7 @@ const italic = {
601
422
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>`,
602
423
  };
603
424
 
604
- var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
425
+ var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
605
426
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
606
427
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
607
428
  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;
@@ -641,7 +462,7 @@ class ItalicToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbar
641
462
  (() => {
642
463
  internalIconManager.VegaInternalIconManager.register({ italic });
643
464
  })();
644
- __decorate$z([
465
+ __decorate$A([
645
466
  globalSlimmerRegistry.MapToComponentField()
646
467
  ], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
647
468
 
@@ -649,7 +470,7 @@ const underline = {
649
470
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>`,
650
471
  };
651
472
 
652
- var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
473
+ var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
653
474
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
654
475
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
655
476
  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;
@@ -692,7 +513,7 @@ class UnderlineToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
692
513
  (() => {
693
514
  internalIconManager.VegaInternalIconManager.register({ underline });
694
515
  })();
695
- __decorate$y([
516
+ __decorate$z([
696
517
  globalSlimmerRegistry.MapToComponentField()
697
518
  ], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
698
519
 
@@ -700,7 +521,7 @@ const textSize = {
700
521
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M64 128V96h96l0 320H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H224l0-320h96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H192 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM384 304V288h64l0 128H432c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H512l0-128h64v16c0 17.7 14.3 32 32 32s32-14.3 32-32V272c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v32c0 17.7 14.3 32 32 32s32-14.3 32-32z"/></svg>`,
701
522
  };
702
523
 
703
- var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
524
+ var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
704
525
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
705
526
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
706
527
  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;
@@ -811,10 +632,10 @@ TextStylesToolbarButtonSlimmer.items = [
811
632
  label: 'Paragraph',
812
633
  },
813
634
  ];
814
- __decorate$x([
635
+ __decorate$y([
815
636
  globalSlimmerRegistry.MapToComponentField()
816
637
  ], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
817
- __decorate$x([
638
+ __decorate$y([
818
639
  globalSlimmerRegistry.MapToComponentField()
819
640
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
820
641
 
@@ -822,7 +643,7 @@ const TextSlash = {
822
643
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
823
644
  };
824
645
 
825
- var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
646
+ var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
826
647
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
827
648
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
828
649
  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;
@@ -859,7 +680,7 @@ class ClearStyleToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
859
680
  'text-slash': TextSlash,
860
681
  });
861
682
  })();
862
- __decorate$w([
683
+ __decorate$x([
863
684
  globalSlimmerRegistry.MapToComponentField()
864
685
  ], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
865
686
 
@@ -867,7 +688,7 @@ const codeSimple = {
867
688
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6zm146.7 0L498.7 256 361.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3z"/></svg>`,
868
689
  };
869
690
 
870
- var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
691
+ var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
871
692
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
872
693
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
873
694
  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;
@@ -905,7 +726,7 @@ class CodeToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
905
726
  (() => {
906
727
  internalIconManager.VegaInternalIconManager.register({ 'code-simple': codeSimple });
907
728
  })();
908
- __decorate$v([
729
+ __decorate$w([
909
730
  globalSlimmerRegistry.MapToComponentField()
910
731
  ], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
911
732
 
@@ -913,7 +734,7 @@ const strikethrough = {
913
734
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path fill="currentColor" d="M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21c-3.031 17.59-10.88 29.34-24.72 36.99c-35.44 19.75-108.5 11.96-186-19.68c-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37c29.62 0 58.81-5.156 83.72-18.96c30.81-17.09 50.44-45.46 56.72-82.11c3.998-23.27 2.168-42.58-3.488-59.05H332.2zM488 239.9l-176.5-.0309c-15.85-5.613-31.83-10.34-46.7-14.62c-85.47-24.62-110.9-39.05-103.7-81.33c2.5-14.53 10.16-25.96 22.72-34.03c20.47-13.15 64.06-23.84 155.4 .3438c17.09 4.531 34.59-5.654 39.13-22.74c4.531-17.09-5.656-34.59-22.75-39.12c-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1C89.26 184.5 107.9 217.3 137.2 239.9L24 239.9c-13.25 0-24 10.75-24 23.1c0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1C512 250.7 501.3 239.9 488 239.9z"/></svg>`,
914
735
  };
915
736
 
916
- var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
737
+ var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
917
738
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
918
739
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
919
740
  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;
@@ -956,7 +777,7 @@ class StrikethroughToolbarButtonSlimmer extends imageAnnotationAction.VisualMode
956
777
  (() => {
957
778
  internalIconManager.VegaInternalIconManager.register({ strikethrough });
958
779
  })();
959
- __decorate$u([
780
+ __decorate$v([
960
781
  globalSlimmerRegistry.MapToComponentField()
961
782
  ], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
962
783
 
@@ -964,7 +785,7 @@ const link = {
964
785
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M562.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L405.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C189.5 251.2 196 330 246 380c56.5 56.5 148 56.5 204.5 0L562.8 267.7zM43.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C57 372 57 321 88.5 289.5L200.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C416.5 260.8 410 182 360 132c-56.5-56.5-148-56.5-204.5 0L43.2 244.3z"/></svg>`,
965
786
  };
966
787
 
967
- var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
788
+ var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
968
789
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
969
790
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
970
791
  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;
@@ -1047,7 +868,7 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
1047
868
  (() => {
1048
869
  internalIconManager.VegaInternalIconManager.register({ link: link });
1049
870
  })();
1050
- __decorate$t([
871
+ __decorate$u([
1051
872
  globalSlimmerRegistry.MapToComponentField()
1052
873
  ], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
1053
874
 
@@ -1055,7 +876,7 @@ const indent = {
1055
876
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>`,
1056
877
  };
1057
878
 
1058
- var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
879
+ var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1059
880
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1060
881
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1061
882
  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;
@@ -1089,7 +910,7 @@ class MoreIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
1089
910
  (() => {
1090
911
  internalIconManager.VegaInternalIconManager.register({ indent: indent });
1091
912
  })();
1092
- __decorate$s([
913
+ __decorate$t([
1093
914
  globalSlimmerRegistry.MapToComponentField()
1094
915
  ], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1095
916
 
@@ -1097,7 +918,7 @@ const outdent = {
1097
918
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M6 64C6 46.3 20.3 32 38 32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38C20.3 96 6 81.7 6 64zM198 192c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32zm32 96H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32s14.3-32 32-32zM6 448c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L6.2 268.6z"/></svg>`,
1098
919
  };
1099
920
 
1100
- var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
921
+ var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1101
922
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1102
923
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1103
924
  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;
@@ -1132,7 +953,7 @@ class LessIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
1132
953
  (() => {
1133
954
  internalIconManager.VegaInternalIconManager.register({ outdent: outdent });
1134
955
  })();
1135
- __decorate$r([
956
+ __decorate$s([
1136
957
  globalSlimmerRegistry.MapToComponentField()
1137
958
  ], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1138
959
 
@@ -1153,7 +974,7 @@ class ImageUpdateUrlAction extends codeBlock.ModifyContentAction {
1153
974
  }
1154
975
  }
1155
976
 
1156
- var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
977
+ var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1157
978
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1158
979
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1159
980
  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;
@@ -1165,8 +986,28 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1165
986
  icon: 'image',
1166
987
  tooltip: { text: 'Image' },
1167
988
  });
1168
- this.onClick = () => {
1169
- this.inputElementRef.click();
989
+ this.insertURLImage = async () => {
990
+ const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
991
+ this.applyImageNode(url, 'url');
992
+ await this.insertURLModalRef.modal('hide');
993
+ };
994
+ this.handleDropdownItemClick = async (payload) => {
995
+ const safeDocument = tryGetDocument.tryGetDocument();
996
+ switch (payload.detail) {
997
+ case 'upload':
998
+ this.uploadInputRef.click();
999
+ break;
1000
+ case 'url':
1001
+ this.currentRange = this.selectionController.getCurrentRange();
1002
+ this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1003
+ this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1004
+ safeDocument && safeDocument.body.append(this.insertURLModalRef);
1005
+ this.insertURLInputRef.value = '';
1006
+ await this.insertURLModalRef.modal('show');
1007
+ await this.insertURLInputRef.doFocus();
1008
+ break;
1009
+ }
1010
+ await this.dropdownRef.hide();
1170
1011
  };
1171
1012
  /**
1172
1013
  * The below method is e2e-test covered in
@@ -1179,13 +1020,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1179
1020
  if (!input.files.length) {
1180
1021
  return;
1181
1022
  }
1182
- const node = this.insertImageController.insertImageToCaretPosition(URL.createObjectURL(input.files[0]));
1183
- if (!this.updateNodeURLMap) {
1184
- this.updateNodeURLMap = new Map();
1185
- }
1186
- this.updateNodeURLMap.set(node, (url) => {
1187
- node.apply(new ImageUpdateUrlAction(url));
1188
- });
1023
+ const node = this.applyImageNode(URL.createObjectURL(input.files[0]), 'upload');
1189
1024
  const payload = {
1190
1025
  file: input.files[0],
1191
1026
  sendBackUploadedURLCallback: this.updateNodeURLMap.get(node),
@@ -1196,8 +1031,14 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1196
1031
  }
1197
1032
  renderBtnWrapper(renderBtn) {
1198
1033
  return (index.h("vega-box", null,
1199
- renderBtn({ showArrowIcon: false }),
1200
- index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.inputElementRef = node), accept: "image/*", onChange: this.fileInputChange })));
1034
+ index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
1035
+ this.dropdownRef = ref;
1036
+ this.addDropdownObserver(ref);
1037
+ } },
1038
+ renderBtn({ showArrowIcon: true }),
1039
+ index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
1040
+ this.renderUploadInput(),
1041
+ this.renderInsertURLModal()));
1201
1042
  }
1202
1043
  isSelected() {
1203
1044
  return false;
@@ -1209,17 +1050,92 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1209
1050
  selectedNodes.some((node) => node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.LINK)) ||
1210
1051
  this.shouldDisabledToolbar(selectedBlock, codeBlock.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
1211
1052
  }
1053
+ renderDropdownContent() {
1054
+ return (index.h(index.Fragment, null, ImageToolbarButtonSlimmer.items.map((item) => {
1055
+ return (index.h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
1056
+ })));
1057
+ }
1058
+ renderUploadInput() {
1059
+ return (index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
1060
+ }
1061
+ renderInsertURLModal() {
1062
+ return (index.h("vega-modal", { size: 500, backdropColor: "semi", ref: (node) => (this.insertURLModalRef = node) },
1063
+ index.h("div", { slot: "modal-title" }, this.translationSlimmer.t('Image via URL')),
1064
+ index.h("div", { slot: "modal-content" },
1065
+ index.h("vega-input", { placeholder: this.translationSlimmer.t('URL'), ref: (ref) => (this.insertURLInputRef = ref),
1066
+ /* istanbul ignore next */
1067
+ // eslint-disable-next-line react/jsx-no-bind
1068
+ onKeyDown: async (event) => {
1069
+ event.key === 'Enter' && (await this.insertURLImage());
1070
+ } })),
1071
+ index.h("vega-flex", { slot: "modal-footer", gap: "size-8", alignItems: "center", justifyContent: "end" },
1072
+ index.h("vega-button", { label: this.translationSlimmer.t('Cancel'), variant: "secondary", ref: (ref) => {
1073
+ this.addModalCancelObserver(ref);
1074
+ } }),
1075
+ index.h("vega-button", { label: this.translationSlimmer.t('Insert'), ref: (ref) => {
1076
+ this.addModalInsertObserver(ref);
1077
+ } }))));
1078
+ }
1079
+ addDropdownObserver(dropdownRef) {
1080
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(dropdownRef, vegaEventId.VegaDropdownClick, this.handleDropdownItemClick);
1081
+ }
1082
+ addModalCancelObserver(buttonRef) {
1083
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, vegaEventId.VegaClick, async () => {
1084
+ await this.insertURLModalRef.modal('hide');
1085
+ });
1086
+ }
1087
+ addModalInsertObserver(buttonRef) {
1088
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, vegaEventId.VegaClick, this.insertURLImage);
1089
+ }
1090
+ /**
1091
+ * The below method is e2e-test covered in
1092
+ * @see{module:should-update-url-properly-when-upload-images}
1093
+ */
1094
+ /* istanbul ignore next */
1095
+ applyImageNode(url, type) {
1096
+ const node = type === 'url'
1097
+ ? this.insertImageController.insertImageToCaretPosition(url, this.currentSelectedBlocks, this.currentSelectedNodes, this.currentRange)
1098
+ : this.insertImageController.insertImageToCaretPosition(url);
1099
+ if (!this.updateNodeURLMap) {
1100
+ this.updateNodeURLMap = new Map();
1101
+ }
1102
+ this.updateNodeURLMap.set(node, (url) => {
1103
+ node.apply(new ImageUpdateUrlAction(url));
1104
+ });
1105
+ return node;
1106
+ }
1107
+ normalizeSafeImageUrl(url) {
1108
+ try {
1109
+ const parsedUrl = new URL(url);
1110
+ if (parsedUrl.protocol === 'javascript:') {
1111
+ return '';
1112
+ }
1113
+ // eslint-disable-next-line no-empty
1114
+ }
1115
+ catch (_error) { }
1116
+ return url;
1117
+ }
1212
1118
  }
1213
1119
  (() => {
1214
1120
  internalIconManager.VegaInternalIconManager.register({ image: image });
1215
1121
  })();
1216
- __decorate$q([
1122
+ ImageToolbarButtonSlimmer.items = [
1123
+ {
1124
+ key: 'upload',
1125
+ label: 'Upload from computer',
1126
+ },
1127
+ {
1128
+ key: 'url',
1129
+ label: 'Insert via URL',
1130
+ },
1131
+ ];
1132
+ __decorate$r([
1217
1133
  globalSlimmerRegistry.MapToComponentField()
1218
1134
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
1219
- __decorate$q([
1135
+ __decorate$r([
1220
1136
  globalSlimmerRegistry.MapToComponentField()
1221
1137
  ], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
1222
- __decorate$q([
1138
+ __decorate$r([
1223
1139
  globalSlimmerRegistry.MapToComponentField()
1224
1140
  ], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
1225
1141
 
@@ -1256,7 +1172,7 @@ class TransformParagraphAction extends codeBlock.ModifyContentAction {
1256
1172
  }
1257
1173
  }
1258
1174
 
1259
- var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1175
+ var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1260
1176
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1261
1177
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1262
1178
  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;
@@ -1315,14 +1231,14 @@ class BulletsToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1315
1231
  }
1316
1232
  }
1317
1233
  }
1318
- __decorate$p([
1234
+ __decorate$q([
1319
1235
  globalSlimmerRegistry.MapToComponentField()
1320
1236
  ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1321
- __decorate$p([
1237
+ __decorate$q([
1322
1238
  globalSlimmerRegistry.MapToComponentField()
1323
1239
  ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1324
1240
 
1325
- var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1241
+ var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1326
1242
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1327
1243
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1328
1244
  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;
@@ -1379,14 +1295,14 @@ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1379
1295
  }
1380
1296
  }
1381
1297
  }
1382
- __decorate$o([
1298
+ __decorate$p([
1383
1299
  globalSlimmerRegistry.MapToComponentField()
1384
1300
  ], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1385
- __decorate$o([
1301
+ __decorate$p([
1386
1302
  globalSlimmerRegistry.MapToComponentField()
1387
1303
  ], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1388
1304
 
1389
- var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1305
+ var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1390
1306
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1391
1307
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1392
1308
  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;
@@ -1461,16 +1377,16 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1461
1377
  'list-ol': ListOL,
1462
1378
  });
1463
1379
  })();
1464
- __decorate$n([
1380
+ __decorate$o([
1465
1381
  globalSlimmerRegistry.MapToComponentField()
1466
1382
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1467
- __decorate$n([
1383
+ __decorate$o([
1468
1384
  globalSlimmerRegistry.InjectVegaSlimmer()
1469
1385
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
1470
- __decorate$n([
1386
+ __decorate$o([
1471
1387
  globalSlimmerRegistry.InjectVegaSlimmer()
1472
1388
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
1473
- __decorate$n([
1389
+ __decorate$o([
1474
1390
  globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1475
1391
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
1476
1392
 
@@ -1478,7 +1394,7 @@ const AlignLeft = {
1478
1394
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>`,
1479
1395
  };
1480
1396
 
1481
- var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1397
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1482
1398
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1483
1399
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1484
1400
  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;
@@ -1513,10 +1429,10 @@ class LeftAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
1513
1429
  'align-left': AlignLeft,
1514
1430
  });
1515
1431
  })();
1516
- __decorate$m([
1432
+ __decorate$n([
1517
1433
  globalSlimmerRegistry.MapToComponentField()
1518
1434
  ], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1519
- __decorate$m([
1435
+ __decorate$n([
1520
1436
  globalSlimmerRegistry.MapToComponentField()
1521
1437
  ], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1522
1438
 
@@ -1524,7 +1440,7 @@ const AlignCenter = {
1524
1440
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"/></svg>`,
1525
1441
  };
1526
1442
 
1527
- var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1443
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1528
1444
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1529
1445
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1530
1446
  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;
@@ -1559,10 +1475,10 @@ class CenterAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTo
1559
1475
  'align-center': AlignCenter,
1560
1476
  });
1561
1477
  })();
1562
- __decorate$l([
1478
+ __decorate$m([
1563
1479
  globalSlimmerRegistry.MapToComponentField()
1564
1480
  ], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1565
- __decorate$l([
1481
+ __decorate$m([
1566
1482
  globalSlimmerRegistry.MapToComponentField()
1567
1483
  ], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1568
1484
 
@@ -1570,7 +1486,7 @@ const AlignRight = {
1570
1486
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>`,
1571
1487
  };
1572
1488
 
1573
- var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1489
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1574
1490
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1575
1491
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1576
1492
  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;
@@ -1605,10 +1521,10 @@ class RightAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
1605
1521
  'align-right': AlignRight,
1606
1522
  });
1607
1523
  })();
1608
- __decorate$k([
1524
+ __decorate$l([
1609
1525
  globalSlimmerRegistry.MapToComponentField()
1610
1526
  ], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1611
- __decorate$k([
1527
+ __decorate$l([
1612
1528
  globalSlimmerRegistry.MapToComponentField()
1613
1529
  ], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1614
1530
 
@@ -1616,7 +1532,7 @@ const AlignJustify = {
1616
1532
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z"/></svg>`,
1617
1533
  };
1618
1534
 
1619
- var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1535
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1620
1536
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1621
1537
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1622
1538
  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;
@@ -1651,14 +1567,14 @@ class JustifyAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeT
1651
1567
  'align-justify': AlignJustify,
1652
1568
  });
1653
1569
  })();
1654
- __decorate$j([
1570
+ __decorate$k([
1655
1571
  globalSlimmerRegistry.MapToComponentField()
1656
1572
  ], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1657
- __decorate$j([
1573
+ __decorate$k([
1658
1574
  globalSlimmerRegistry.MapToComponentField()
1659
1575
  ], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1660
1576
 
1661
- var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1577
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1662
1578
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1663
1579
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1664
1580
  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;
@@ -1716,22 +1632,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
1716
1632
  .some((block) => this.shouldDisabledToolbar(block, codeBlock.HorizontalAlignmentAnnotationAction.name)));
1717
1633
  }
1718
1634
  }
1719
- __decorate$i([
1635
+ __decorate$j([
1720
1636
  globalSlimmerRegistry.MapToComponentField()
1721
1637
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1722
- __decorate$i([
1638
+ __decorate$j([
1723
1639
  globalSlimmerRegistry.InjectVegaSlimmer()
1724
1640
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
1725
- __decorate$i([
1641
+ __decorate$j([
1726
1642
  globalSlimmerRegistry.InjectVegaSlimmer()
1727
1643
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
1728
- __decorate$i([
1644
+ __decorate$j([
1729
1645
  globalSlimmerRegistry.InjectVegaSlimmer()
1730
1646
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
1731
- __decorate$i([
1647
+ __decorate$j([
1732
1648
  globalSlimmerRegistry.InjectVegaSlimmer()
1733
1649
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
1734
- __decorate$i([
1650
+ __decorate$j([
1735
1651
  globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1736
1652
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
1737
1653
 
@@ -1772,7 +1688,7 @@ class RTEEditorState {
1772
1688
  }
1773
1689
  }
1774
1690
 
1775
- var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1691
+ var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1776
1692
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1777
1693
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1778
1694
  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;
@@ -1858,37 +1774,37 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
1858
1774
  }
1859
1775
  }
1860
1776
  ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
1861
- __decorate$h([
1777
+ __decorate$i([
1862
1778
  globalSlimmerRegistry.MapToComponentField()
1863
1779
  ], ValueController.prototype, "host", void 0);
1864
- __decorate$h([
1780
+ __decorate$i([
1865
1781
  globalSlimmerRegistry.MapToComponentField({ writable: true })
1866
1782
  ], ValueController.prototype, "value", void 0);
1867
- __decorate$h([
1783
+ __decorate$i([
1868
1784
  globalSlimmerRegistry.MapToComponentField()
1869
1785
  ], ValueController.prototype, "changeEventEmitter", void 0);
1870
- __decorate$h([
1786
+ __decorate$i([
1871
1787
  globalSlimmerRegistry.MapToComponentField()
1872
1788
  ], ValueController.prototype, "valueController", void 0);
1873
- __decorate$h([
1789
+ __decorate$i([
1874
1790
  globalSlimmerRegistry.MapToComponentField()
1875
1791
  ], ValueController.prototype, "historyController", void 0);
1876
- __decorate$h([
1792
+ __decorate$i([
1877
1793
  globalSlimmerRegistry.MapToComponentField()
1878
1794
  ], ValueController.prototype, "selectionController", void 0);
1879
- __decorate$h([
1795
+ __decorate$i([
1880
1796
  globalSlimmerRegistry.MapToComponentField()
1881
1797
  ], ValueController.prototype, "sourceEditConfig", void 0);
1882
- __decorate$h([
1798
+ __decorate$i([
1883
1799
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
1884
1800
  ], ValueController.prototype, "connectedCallback", null);
1885
- __decorate$h([
1801
+ __decorate$i([
1886
1802
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1887
1803
  ], ValueController.prototype, "disconnectedCallback", null);
1888
- __decorate$h([
1804
+ __decorate$i([
1889
1805
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
1890
1806
  ], ValueController.prototype, "componentWillLoad", null);
1891
- __decorate$h([
1807
+ __decorate$i([
1892
1808
  globalSlimmerRegistry.MapToComponentMethod('watchValueUpdate')
1893
1809
  ], ValueController.prototype, "watchValueUpdate", null);
1894
1810
 
@@ -2554,7 +2470,7 @@ class InsertPasteHandler extends BaseHandler {
2554
2470
  }
2555
2471
  }
2556
2472
 
2557
- var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2473
+ var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2558
2474
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2559
2475
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2560
2476
  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;
@@ -2681,28 +2597,28 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
2681
2597
  return false;
2682
2598
  }
2683
2599
  }
2684
- __decorate$g([
2600
+ __decorate$h([
2685
2601
  globalSlimmerRegistry.MapToComponentField()
2686
2602
  ], UserInputController.prototype, "host", void 0);
2687
- __decorate$g([
2603
+ __decorate$h([
2688
2604
  globalSlimmerRegistry.MapToComponentField()
2689
2605
  ], UserInputController.prototype, "value", void 0);
2690
- __decorate$g([
2606
+ __decorate$h([
2691
2607
  globalSlimmerRegistry.MapToComponentField()
2692
2608
  ], UserInputController.prototype, "valueController", void 0);
2693
- __decorate$g([
2609
+ __decorate$h([
2694
2610
  globalSlimmerRegistry.MapToComponentField()
2695
2611
  ], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
2696
- __decorate$g([
2612
+ __decorate$h([
2697
2613
  globalSlimmerRegistry.MapToComponentField()
2698
2614
  ], UserInputController.prototype, "selectionController", void 0);
2699
- __decorate$g([
2615
+ __decorate$h([
2700
2616
  globalSlimmerRegistry.MapToComponentField()
2701
2617
  ], UserInputController.prototype, "insertCompositionTextController", void 0);
2702
- __decorate$g([
2618
+ __decorate$h([
2703
2619
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
2704
2620
  ], UserInputController.prototype, "addActionListener", null);
2705
- __decorate$g([
2621
+ __decorate$h([
2706
2622
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2707
2623
  ], UserInputController.prototype, "removeActionListener", null);
2708
2624
 
@@ -2722,7 +2638,7 @@ class InsertImageToBlockAction extends codeBlock.ModifyContentAction {
2722
2638
  }
2723
2639
  }
2724
2640
 
2725
- var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2641
+ var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2726
2642
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2727
2643
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2728
2644
  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;
@@ -2734,10 +2650,13 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
2734
2650
  * Insert a image to current state
2735
2651
  *
2736
2652
  * @param {string} imageUrl The image url
2653
+ * @param {RTEBlock[]} selectedBlocks The current selected blocks, if not provided, will get from selectionController
2654
+ * @param {RTENode[]} selectedNodes The current selected nodes, if not provided, will get from selectionController
2655
+ * @param {RTERange} currentRange The current selected range, if not provided, will get from selectionController
2737
2656
  * @returns {RTEImageNode} RTEImageNode
2738
2657
  */
2739
- insertImageToCaretPosition(imageUrl) {
2740
- const selectedBlocks = this.selectionController.getSelectedBlocks();
2658
+ insertImageToCaretPosition(imageUrl, selectedBlocks, selectedNodes, currentRange) {
2659
+ selectedBlocks || (selectedBlocks = this.selectionController.getSelectedBlocks());
2741
2660
  const imageBlock = new dtoRendererManager.RTEImageBlock(misc.generateUUID());
2742
2661
  const newImageNode = new dtoRendererManager.RTEImageNode(misc.generateUUID(), imageUrl, imageBlock);
2743
2662
  newImageNode.apply(new imageAnnotationAction.ImageAnnotationAction('md', ''));
@@ -2747,8 +2666,8 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
2747
2666
  void this.valueController.flushChanges(this.value);
2748
2667
  }
2749
2668
  else {
2750
- const { startOffset } = this.selectionController.getCurrentRange();
2751
- const selectedNodes = this.selectionController.getSelectedNodes();
2669
+ const { startOffset } = currentRange || this.selectionController.getCurrentRange();
2670
+ selectedNodes || (selectedNodes = this.selectionController.getSelectedNodes());
2752
2671
  selectedBlocks[0].apply(new InsertImageToBlockAction(selectedNodes[0], startOffset, imageBlock));
2753
2672
  }
2754
2673
  this.updateCaretPosition(newImageNode);
@@ -2811,26 +2730,26 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
2811
2730
  }
2812
2731
  }
2813
2732
  }
2814
- __decorate$f([
2733
+ __decorate$g([
2815
2734
  globalSlimmerRegistry.MapToComponentField()
2816
2735
  ], InsertImageController.prototype, "selectionController", void 0);
2817
- __decorate$f([
2736
+ __decorate$g([
2818
2737
  globalSlimmerRegistry.MapToComponentField()
2819
2738
  ], InsertImageController.prototype, "value", void 0);
2820
- __decorate$f([
2739
+ __decorate$g([
2821
2740
  globalSlimmerRegistry.MapToComponentField()
2822
2741
  ], InsertImageController.prototype, "valueController", void 0);
2823
- __decorate$f([
2742
+ __decorate$g([
2824
2743
  globalSlimmerRegistry.MapToComponentField()
2825
2744
  ], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
2826
- __decorate$f([
2745
+ __decorate$g([
2827
2746
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
2828
2747
  ], InsertImageController.prototype, "registerObserver", null);
2829
- __decorate$f([
2748
+ __decorate$g([
2830
2749
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2831
2750
  ], InsertImageController.prototype, "unRegisterObserver", null);
2832
2751
 
2833
- var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2752
+ var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2834
2753
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2835
2754
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2836
2755
  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;
@@ -2896,20 +2815,20 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
2896
2815
  this.selectionController.setSelectionRange(range);
2897
2816
  }
2898
2817
  }
2899
- __decorate$e([
2818
+ __decorate$f([
2900
2819
  globalSlimmerRegistry.MapToComponentField()
2901
2820
  ], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
2902
- __decorate$e([
2821
+ __decorate$f([
2903
2822
  globalSlimmerRegistry.MapToComponentField()
2904
2823
  ], FocusController.prototype, "selectionController", void 0);
2905
- __decorate$e([
2824
+ __decorate$f([
2906
2825
  globalSlimmerRegistry.MapToComponentField()
2907
2826
  ], FocusController.prototype, "valueController", void 0);
2908
- __decorate$e([
2827
+ __decorate$f([
2909
2828
  globalSlimmerRegistry.MapToComponentField()
2910
2829
  ], FocusController.prototype, "value", void 0);
2911
2830
 
2912
- var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2831
+ var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2913
2832
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2914
2833
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2915
2834
  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;
@@ -2949,14 +2868,14 @@ class TextNodeColorController extends globalSlimmerRegistry.VegaSlimmer {
2949
2868
  return true;
2950
2869
  }
2951
2870
  }
2952
- __decorate$d([
2871
+ __decorate$e([
2953
2872
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
2954
2873
  ], TextNodeColorController.prototype, "connectedCallback", null);
2955
- __decorate$d([
2874
+ __decorate$e([
2956
2875
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2957
2876
  ], TextNodeColorController.prototype, "disconnectResizeObserver", null);
2958
2877
 
2959
- var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2878
+ var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2960
2879
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2961
2880
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2962
2881
  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;
@@ -3166,35 +3085,35 @@ class InsertCompositionTextController extends globalSlimmerRegistry.VegaSlimmer
3166
3085
  this.editableElementRef.dispatchEvent(inputEvent);
3167
3086
  }
3168
3087
  }
3169
- __decorate$c([
3088
+ __decorate$d([
3170
3089
  globalSlimmerRegistry.MapToComponentField()
3171
3090
  ], InsertCompositionTextController.prototype, "selectionController", void 0);
3172
- __decorate$c([
3091
+ __decorate$d([
3173
3092
  globalSlimmerRegistry.MapToComponentField()
3174
3093
  ], InsertCompositionTextController.prototype, "host", void 0);
3175
- __decorate$c([
3094
+ __decorate$d([
3176
3095
  globalSlimmerRegistry.MapToComponentField()
3177
3096
  ], InsertCompositionTextController.prototype, "value", void 0);
3178
- __decorate$c([
3097
+ __decorate$d([
3179
3098
  globalSlimmerRegistry.MapToComponentField()
3180
3099
  ], InsertCompositionTextController.prototype, "valueController", void 0);
3181
- __decorate$c([
3100
+ __decorate$d([
3182
3101
  globalSlimmerRegistry.MapToComponentField()
3183
3102
  ], InsertCompositionTextController.prototype, "userInputController", void 0);
3184
- __decorate$c([
3103
+ __decorate$d([
3185
3104
  globalSlimmerRegistry.MapToComponentField()
3186
3105
  ], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
3187
- __decorate$c([
3106
+ __decorate$d([
3188
3107
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3189
3108
  ], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
3190
- __decorate$c([
3109
+ __decorate$d([
3191
3110
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3192
3111
  ], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
3193
- __decorate$c([
3112
+ __decorate$d([
3194
3113
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
3195
3114
  ], InsertCompositionTextController.prototype, "reConnectObserver", null);
3196
3115
 
3197
- var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3116
+ var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3198
3117
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3199
3118
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3200
3119
  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;
@@ -3403,23 +3322,23 @@ class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
3403
3322
  }
3404
3323
  }
3405
3324
  }
3406
- __decorate$b([
3325
+ __decorate$c([
3407
3326
  globalSlimmerRegistry.MapToComponentField()
3408
3327
  ], DeleteSelectedNodesController.prototype, "host", void 0);
3409
- __decorate$b([
3328
+ __decorate$c([
3410
3329
  globalSlimmerRegistry.MapToComponentField()
3411
3330
  ], DeleteSelectedNodesController.prototype, "selectionController", void 0);
3412
- __decorate$b([
3331
+ __decorate$c([
3413
3332
  globalSlimmerRegistry.MapToComponentField()
3414
3333
  ], DeleteSelectedNodesController.prototype, "value", void 0);
3415
- __decorate$b([
3334
+ __decorate$c([
3416
3335
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
3417
3336
  ], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
3418
- __decorate$b([
3337
+ __decorate$c([
3419
3338
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3420
3339
  ], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
3421
3340
 
3422
- var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3341
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3423
3342
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3424
3343
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3425
3344
  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;
@@ -3495,22 +3414,22 @@ class HistoryController extends componentValueHistoryControllerSlimmer_abstract.
3495
3414
  await this.valueController.flushChanges(content, false);
3496
3415
  }
3497
3416
  }
3498
- __decorate$a([
3417
+ __decorate$b([
3499
3418
  globalSlimmerRegistry.MapToComponentField()
3500
3419
  ], HistoryController.prototype, "host", void 0);
3501
- __decorate$a([
3420
+ __decorate$b([
3502
3421
  globalSlimmerRegistry.MapToComponentField()
3503
3422
  ], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
3504
- __decorate$a([
3423
+ __decorate$b([
3505
3424
  globalSlimmerRegistry.MapToComponentField()
3506
3425
  ], HistoryController.prototype, "valueController", void 0);
3507
- __decorate$a([
3426
+ __decorate$b([
3508
3427
  globalSlimmerRegistry.MapToComponentField()
3509
3428
  ], HistoryController.prototype, "value", void 0);
3510
- __decorate$a([
3429
+ __decorate$b([
3511
3430
  globalSlimmerRegistry.MapToComponentField()
3512
3431
  ], HistoryController.prototype, "selectionController", void 0);
3513
- __decorate$a([
3432
+ __decorate$b([
3514
3433
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3515
3434
  ], HistoryController.prototype, "registerInitState", null);
3516
3435
 
@@ -3531,7 +3450,7 @@ class TransformToCodeBlockAction extends codeBlock.ModifyContentAction {
3531
3450
  }
3532
3451
  }
3533
3452
 
3534
- var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3453
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3535
3454
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3536
3455
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3537
3456
  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;
@@ -3587,13 +3506,13 @@ class CodeBlockToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
3587
3506
  (() => {
3588
3507
  internalIconManager.VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
3589
3508
  })();
3590
- __decorate$9([
3509
+ __decorate$a([
3591
3510
  globalSlimmerRegistry.MapToComponentField()
3592
3511
  ], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
3593
- __decorate$9([
3512
+ __decorate$a([
3594
3513
  globalSlimmerRegistry.MapToComponentField()
3595
3514
  ], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
3596
- __decorate$9([
3515
+ __decorate$a([
3597
3516
  globalSlimmerRegistry.MapToComponentField()
3598
3517
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
3599
3518
 
@@ -3664,7 +3583,7 @@ const displayCode = {
3664
3583
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M512 48c8.8 0 16 7.2 16 16V352c0 8.8-7.2 16-16 16H336.5c-.3 0-.6 0-.8 0H240.4c-.3 0-.6 0-.8 0H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H512zM64 416H211.7l-8 48H152c-13.3 0-24 10.7-24 24s10.7 24 24 24h72H352h72c13.3 0 24-10.7 24-24s-10.7-24-24-24H372.3l-8-48H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64zm188.3 48l8-48h55.3l8 48H252.3zM249 177c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM361 143c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"/></svg>`,
3665
3584
  };
3666
3585
 
3667
- var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3586
+ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3668
3587
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3669
3588
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3670
3589
  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;
@@ -3697,7 +3616,7 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
3697
3616
  return super.isDisabled();
3698
3617
  }
3699
3618
  async saveSourceCode() {
3700
- const sourceViewValue = this.vegaRichTextEditorRenderer.getSourceCode();
3619
+ const sourceViewValue = this.richTextEditorSourceViewRenderer.getSourceCode();
3701
3620
  if (!sourceViewValue && this.value.isEmpty()) {
3702
3621
  return;
3703
3622
  }
@@ -3711,26 +3630,26 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
3711
3630
  (() => {
3712
3631
  internalIconManager.VegaInternalIconManager.register({ 'display-code': displayCode });
3713
3632
  })();
3714
- __decorate$8([
3633
+ __decorate$9([
3715
3634
  globalSlimmerRegistry.MapToComponentField({ writable: true })
3716
3635
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
3717
- __decorate$8([
3636
+ __decorate$9([
3718
3637
  globalSlimmerRegistry.MapToComponentField()
3719
3638
  ], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
3720
- __decorate$8([
3639
+ __decorate$9([
3721
3640
  globalSlimmerRegistry.MapToComponentField()
3722
3641
  ], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
3723
- __decorate$8([
3642
+ __decorate$9([
3724
3643
  globalSlimmerRegistry.MapToComponentField()
3725
- ], SourceEditToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
3726
- __decorate$8([
3644
+ ], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
3645
+ __decorate$9([
3727
3646
  globalSlimmerRegistry.MapToComponentField()
3728
3647
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
3729
- __decorate$8([
3648
+ __decorate$9([
3730
3649
  globalSlimmerRegistry.MapToComponentField()
3731
3650
  ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
3732
3651
 
3733
- var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3652
+ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3734
3653
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3735
3654
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3736
3655
  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;
@@ -3804,28 +3723,292 @@ class RTEExtensionController extends globalSlimmerRegistry.VegaSlimmer {
3804
3723
  }
3805
3724
  }
3806
3725
  }
3807
- __decorate$7([
3726
+ __decorate$8([
3808
3727
  globalSlimmerRegistry.MapToComponentField()
3809
3728
  ], RTEExtensionController.prototype, "extensions", void 0);
3810
- __decorate$7([
3729
+ __decorate$8([
3811
3730
  globalSlimmerRegistry.MapToComponentField()
3812
3731
  ], RTEExtensionController.prototype, "host", void 0);
3813
- __decorate$7([
3732
+ __decorate$8([
3814
3733
  globalSlimmerRegistry.MapToComponentField()
3815
3734
  ], RTEExtensionController.prototype, "sourceView", void 0);
3816
- __decorate$7([
3735
+ __decorate$8([
3817
3736
  globalSlimmerRegistry.MapToComponentField()
3818
3737
  ], RTEExtensionController.prototype, "valueController", void 0);
3819
- __decorate$7([
3738
+ __decorate$8([
3820
3739
  globalSlimmerRegistry.MapToComponentField()
3821
3740
  ], RTEExtensionController.prototype, "selectionController", void 0);
3822
- __decorate$7([
3741
+ __decorate$8([
3823
3742
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3824
3743
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
3825
- __decorate$7([
3744
+ __decorate$8([
3826
3745
  globalSlimmerRegistry.MapToComponentMethod('watchExtensions')
3827
3746
  ], RTEExtensionController.prototype, "handleExtensionsChange", null);
3828
3747
 
3748
+ /**
3749
+ * Class to format HTML code with proper indentation and style cleanup.
3750
+ */
3751
+ class CodeFormatter {
3752
+ constructor() {
3753
+ /**
3754
+ * Formats a given HTML source string by applying indentation and cleaning up styles.
3755
+ * Content inside preserve tags (pre) is preserved as-is without formatting.
3756
+ *
3757
+ * @param {string} source - The HTML source string to format.
3758
+ * @param {CodeFormatOptions} options - Formatting options.
3759
+ * @returns {string} The formatted HTML string.
3760
+ */
3761
+ this.format = (source, options = {}) => {
3762
+ const { tabWidth = 4, useTabs = true } = options;
3763
+ const indentUnit = useTabs ? '\t' : ' ';
3764
+ const INDENT = indentUnit.repeat(tabWidth);
3765
+ const tagRegex = /(<\/?[^>]+>)/g;
3766
+ // Split source into tokens using tag boundaries while filtering out empty strings
3767
+ const tokens = source.split(tagRegex).filter((t) => t.length > 0);
3768
+ let indentLevel = 0;
3769
+ let output = '';
3770
+ let preserveDepth = 0;
3771
+ for (let i = 0; i < tokens.length; i++) {
3772
+ let token = tokens[i];
3773
+ const tagName = CodeFormatter.getTagName(token);
3774
+ // Track if we're entering or exiting preserve tags
3775
+ if (CodeFormatter.PRESERVE_CONTENT_TAGS.has(tagName)) {
3776
+ if (token.startsWith('</')) {
3777
+ preserveDepth = Math.max(0, preserveDepth - 1);
3778
+ }
3779
+ else if (token.startsWith('<')) {
3780
+ preserveDepth++;
3781
+ }
3782
+ }
3783
+ // If inside preserve tag, output as-is without formatting
3784
+ if (preserveDepth > 0) {
3785
+ output += token;
3786
+ continue;
3787
+ }
3788
+ // Decrease indentation for closing tags (after exiting preserve tags)
3789
+ if (token.startsWith('</')) {
3790
+ indentLevel = Math.max(0, indentLevel - 1);
3791
+ }
3792
+ const indent = INDENT.repeat(indentLevel);
3793
+ if (token.startsWith('<')) {
3794
+ // Clean and normalize inline style attributes
3795
+ token = token.replace(/style\s*=\s*"([^"]*)"/g, (_, styleContent) => {
3796
+ return `style="${this.formatStyle(styleContent)}"`;
3797
+ });
3798
+ const isInline = CodeFormatter.INLINE_TAGS.has(tagName);
3799
+ // Inline tag grouping: e.g., <strong>Text</strong> or <span></span> stays on one line
3800
+ // Check for empty tags: <tag></tag> (closing tag immediately follows opening tag)
3801
+ if (isInline && i + 1 < tokens.length && tokens[i + 1] === `</${tagName}>`) {
3802
+ // Empty inline tag: <span></span>
3803
+ output += `${indent}${token}${tokens[i + 1]}\n`;
3804
+ i += 1;
3805
+ }
3806
+ else if (isInline && i + 2 < tokens.length && tokens[i + 2] === `</${tagName}>`) {
3807
+ // Group consecutive inline tags with content
3808
+ let inlineGroup = `${token}${tokens[i + 1]}${tokens[i + 2]}`;
3809
+ i += 2;
3810
+ // Keep merging consecutive inline tag pairs
3811
+ while (i + 3 < tokens.length &&
3812
+ tokens[i + 1].startsWith('<') &&
3813
+ CodeFormatter.INLINE_TAGS.has(CodeFormatter.getTagName(tokens[i + 1])) &&
3814
+ tokens[i + 3] === `</${CodeFormatter.getTagName(tokens[i + 1])}>`) {
3815
+ inlineGroup += `${tokens[i + 1]}${tokens[i + 2]}${tokens[i + 3]}`;
3816
+ i += 3;
3817
+ }
3818
+ output += `${indent}${inlineGroup}\n`;
3819
+ }
3820
+ else {
3821
+ output += `${indent}${token}\n`;
3822
+ // Increase indentation for non-void opening tags
3823
+ if (!token.startsWith('</') &&
3824
+ !token.endsWith('/>') &&
3825
+ !CodeFormatter.VOID_TAGS.has(tagName)) {
3826
+ indentLevel++;
3827
+ }
3828
+ }
3829
+ }
3830
+ else {
3831
+ // Add plain text content with current indentation
3832
+ const text = token;
3833
+ if (text.length > 0) {
3834
+ output += `${INDENT.repeat(indentLevel)}${text}\n`;
3835
+ }
3836
+ }
3837
+ }
3838
+ return output.trim();
3839
+ };
3840
+ }
3841
+ /**
3842
+ * Extracts the tag name from an HTML tag string.
3843
+ *
3844
+ * @param {string} tag - A raw HTML tag string
3845
+ * @returns {string} The lowercase tag name, or an empty string if no match is found.
3846
+ */
3847
+ static getTagName(tag) {
3848
+ var _a;
3849
+ const match = tag.match(/^<\/?([a-z0-9]+)/i);
3850
+ return (_a = match === null || match === void 0 ? void 0 : match[1].toLowerCase()) !== null && _a !== void 0 ? _a : '';
3851
+ }
3852
+ /**
3853
+ * Formats a CSS style string by trimming white space and ensuring consistent semicolon spacing.
3854
+ *
3855
+ * @param {string} style - The CSS style string to format.
3856
+ * @returns {string} The formatted style string.
3857
+ */
3858
+ formatStyle(style) {
3859
+ return style
3860
+ .split(';')
3861
+ .map((s) => s.trim())
3862
+ .filter(Boolean)
3863
+ .join('; ');
3864
+ }
3865
+ }
3866
+ /**
3867
+ * Inline/phrasing elements that should be kept on a single line with their content.
3868
+ * These tags are formatted as: <tag>content</tag> on one line.
3869
+ */
3870
+ CodeFormatter.INLINE_TAGS = new Set([
3871
+ 'span',
3872
+ 'strong',
3873
+ 'em',
3874
+ 'a',
3875
+ 'b',
3876
+ 'i',
3877
+ 'u',
3878
+ 'small',
3879
+ 'abbr',
3880
+ 'code',
3881
+ 'b',
3882
+ 'u',
3883
+ 's',
3884
+ 'mark',
3885
+ 'time',
3886
+ 'del',
3887
+ 'ins',
3888
+ ]);
3889
+ /**
3890
+ * Void/self-closing elements that don't have closing tags.
3891
+ * Used to avoid increasing indentation for these elements.
3892
+ */
3893
+ CodeFormatter.VOID_TAGS = new Set([
3894
+ 'area',
3895
+ 'base',
3896
+ 'br',
3897
+ 'col',
3898
+ 'embed',
3899
+ 'hr',
3900
+ 'img',
3901
+ 'input',
3902
+ 'link',
3903
+ 'meta',
3904
+ 'param',
3905
+ 'source',
3906
+ 'track',
3907
+ 'wbr',
3908
+ ]);
3909
+ /**
3910
+ * Tags whose content should be preserved as-is without formatting.
3911
+ */
3912
+ CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
3913
+ const CodeFormatter$1 = new CodeFormatter();
3914
+
3915
+ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3916
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3917
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3918
+ 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;
3919
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3920
+ };
3921
+ /**
3922
+ * The renderer for the source view of the rich text editor. It renders a code block for editing the source code of the rich text editor content.
3923
+ */
3924
+ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSlimmer {
3925
+ constructor() {
3926
+ super(...arguments);
3927
+ this.prevRecord = '';
3928
+ /**
3929
+ * Handle the blur event of the code block. When the code block loses focus, emit the source code change event with the current source code.
3930
+ */
3931
+ this.handleCodeBlockBlur = () => {
3932
+ var _a;
3933
+ // If source view is closed while blurring, it means the user switch back to normal mode, so we can skip emitting the change event.
3934
+ if (this.sourceView) {
3935
+ const sourceCode = this.getSourceCode();
3936
+ const newValue = dtoRendererManager.VegaRTEContent.fromHtml(sourceCode, {
3937
+ autoMatchFormat: (_a = this.sourceEditConfig.autoMatchFormat) !== null && _a !== void 0 ? _a : true,
3938
+ });
3939
+ const newSourceCode = newValue.toHtml();
3940
+ if (newSourceCode !== this.prevRecord) {
3941
+ this.sourceCodeChangeEventEmitter.emit(newSourceCode);
3942
+ this.prevRecord = newSourceCode;
3943
+ }
3944
+ }
3945
+ };
3946
+ }
3947
+ /**
3948
+ * Clean up the code block blur observer when the component is disconnected to prevent memory leaks.
3949
+ */
3950
+ clearCodeBlockBlurObserver() {
3951
+ if (this.sourceCodeBlockRef) {
3952
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.sourceCodeBlockRef, vegaInternalEventId.VegaInternalCodeBlockBlur);
3953
+ }
3954
+ }
3955
+ /**
3956
+ * Get the source code from the source view's code block.
3957
+ *
3958
+ * @returns {Nullable<string>} The source code, or null if the code block reference is not set.
3959
+ */
3960
+ getSourceCode() {
3961
+ if (this.sourceCodeBlockRef) {
3962
+ return this.sourceCodeBlockRef.value.code;
3963
+ }
3964
+ }
3965
+ /**
3966
+ * Render the source view, which is a code block for editing the source code of the rich text editor content.
3967
+ *
3968
+ * @returns {Nullable<HTMLElement>} The rendered source view element, or null if source editing is not allowed.
3969
+ */
3970
+ render() {
3971
+ if (!this.allowSourceEdit)
3972
+ return;
3973
+ const sourceCode = this.value.toHtml();
3974
+ const sourceViewValue = this.sourceView ? CodeFormatter$1.format(sourceCode) : '';
3975
+ // Record the source view value when rendering, which will be used to compare with the current source view value when blurring the code block to determine whether to emit the source code change event.
3976
+ this.prevRecord = sourceCode;
3977
+ return (index.h("div", { class: {
3978
+ 'source-view-container': true,
3979
+ 'vega-hidden': !this.sourceView,
3980
+ } },
3981
+ index.h("vega-code-block", { ref: (ref) => {
3982
+ this.sourceCodeBlockRef = ref;
3983
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaInternalEventId.VegaInternalCodeBlockBlur, this.handleCodeBlockBlur);
3984
+ }, disabled: this.disabled, value: { language: 'html', code: sourceViewValue } })));
3985
+ }
3986
+ }
3987
+ __decorate$7([
3988
+ globalSlimmerRegistry.MapToComponentField()
3989
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "host", void 0);
3990
+ __decorate$7([
3991
+ globalSlimmerRegistry.MapToComponentField()
3992
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "allowSourceEdit", void 0);
3993
+ __decorate$7([
3994
+ globalSlimmerRegistry.MapToComponentField()
3995
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceView", void 0);
3996
+ __decorate$7([
3997
+ globalSlimmerRegistry.MapToComponentField()
3998
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "value", void 0);
3999
+ __decorate$7([
4000
+ globalSlimmerRegistry.MapToComponentField()
4001
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "disabled", void 0);
4002
+ __decorate$7([
4003
+ globalSlimmerRegistry.MapToComponentField()
4004
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceEditConfig", void 0);
4005
+ __decorate$7([
4006
+ globalSlimmerRegistry.MapToComponentField()
4007
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceCodeChangeEventEmitter", void 0);
4008
+ __decorate$7([
4009
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4010
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "clearCodeBlockBlurObserver", null);
4011
+
3829
4012
  const vegaRichTextEditorCss = ":host{display:block}:host vega-field-label{margin-bottom:8px}:host vega-text{margin-bottom:16px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container{display:flex;box-sizing:content-box;position:relative;box-sizing:content-box;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));border-radius:8px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));margin-top:12px;overflow:auto;resize:vertical;padding-top:12px;padding-right:16px;padding-bottom:32px;padding-left:16px}:host .rich-text-editor-container:hover{border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1))}:host .rich-text-editor-container:focus-within{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:3px;border:1px solid rgba(var(--v-border-color-input-field-focus, 19, 98, 226, 1))}:host .rich-text-editor-container.disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));cursor:not-allowed}:host .rich-text-editor-container.disabled:hover,:host .rich-text-editor-container.disabled:focus-within{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1))}:host .rich-text-editor-container.disabled:focus-within{outline:none}:host .rich-text-editor-container.disabled vega-rich-text-content{pointer-events:none;opacity:0.35}:host .rich-text-editor-container.error{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1))}:host .rich-text-editor-container.error:hover{border:1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1))}:host .rich-text-editor-container.error:focus-within{outline:2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));outline-offset:3px;border:1px solid rgba(var(--v-border-color-input-field-danger-focus, 233, 71, 104, 1))}:host .rich-text-editor-container .text-editor-counter{position:absolute;bottom:8px;right:8px;display:flex;padding-left:4px;padding-right:4px;padding-top:2px;padding-bottom:2px;border-radius:4px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-inverted-primary, 252, 252, 252, 1));background-color:rgba(var(--v-bg-textarea-count, 4, 4, 28, 0.6))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container .text-editor-counter.counter-exceed-max-length{background-color:rgba(var(--v-bg-textarea-counter-exceed-max-length, 214, 46, 81))}.toolbar-btn-group{display:flex;justify-content:center;align-items:center}.toolbar-btn-group>*:not(:first-child):not(:last-child) ::part(rich-text-editor-toolbar-button){border-radius:0px}.toolbar-btn-group>*:first-child:not(:last-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0px;border-bottom-right-radius:0px}.toolbar-btn-group>*:last-child:not(:first-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:0px;border-bottom-left-radius:0px;border-top-right-radius:4px;border-bottom-right-radius:4px}.toolbar-btn-group>*:not(:first-child) ::part(rich-text-editor-toolbar-button){margin-left:-1px}.toolbar-btn-group .toolbar-btn-color-preview-box{display:flex;border:1px solid rgba(var(--v-border-chip, 205, 209, 211, 1));box-sizing:border-box;border-radius:4px;width:16px;height:16px;justify-content:center;align-items:center;margin-left:6px}.toolbar-btn-group .toolbar-btn-color-preview-box.disabled{opacity:0.35}.toolbar-btn-group .toolbar-btn-link-wrapper{position:relative}.toolbar-btn-group .toolbar-btn-link-wrapper vega-rich-text-link-editor{position:absolute;bottom:0;left:0;right:0}.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-error, 189, 41, 71, 1));display:block;margin-top:12px}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}.vega-hidden{display:none !important}.source-view-container{margin-top:12px}.source-view-container vega-code-block::part(editor-toolbar){display:none}";
3830
4013
 
3831
4014
  var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3845,6 +4028,8 @@ const VegaRichTextEditor = class {
3845
4028
  this.change = index.createEvent(this, "change", 7);
3846
4029
  this.vegaImageInserted = index.createEvent(this, "vegaImageInserted", 7);
3847
4030
  this.imageInserted = index.createEvent(this, "imageInserted", 7);
4031
+ this.vegaSourceCodeChange = index.createEvent(this, "vegaSourceCodeChange", 7);
4032
+ this.sourceCodeChange = index.createEvent(this, "sourceCodeChange", 7);
3848
4033
  this.globalSlimmers = {};
3849
4034
  this.translationSlimmer = new translationSlimmer.TranslationSlimmer();
3850
4035
  this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
@@ -3897,6 +4082,8 @@ const VegaRichTextEditor = class {
3897
4082
  this.historyController = new HistoryController();
3898
4083
  this.internalCodeBlockSelectionController = new InternalCodeBlockSelectionController();
3899
4084
  this.rteExtensionController = new RTEExtensionController();
4085
+ this.sourceCodeChangeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, vegaEventId.VegaSourceCodeChange);
4086
+ this.richTextEditorSourceViewRenderer = new VegaRichTextEditorSourceViewRenderer();
3900
4087
  this.richTextContentEditable = true;
3901
4088
  this.selectionMap = new Map();
3902
4089
  this.isInDarkMode = darkModeStyleController.VegaInternalThemeManager.isDarkMode();
@@ -4150,6 +4337,12 @@ __decorate$6([
4150
4337
  __decorate$6([
4151
4338
  globalSlimmerRegistry.InjectVegaSlimmer()
4152
4339
  ], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
4340
+ __decorate$6([
4341
+ globalSlimmerRegistry.InjectVegaSlimmer()
4342
+ ], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
4343
+ __decorate$6([
4344
+ globalSlimmerRegistry.InjectVegaSlimmer()
4345
+ ], VegaRichTextEditor.prototype, "richTextEditorSourceViewRenderer", void 0);
4153
4346
  VegaRichTextEditor.style = vegaRichTextEditorCss;
4154
4347
 
4155
4348
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -4317,7 +4510,7 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
4317
4510
  };
4318
4511
  }
4319
4512
  render() {
4320
- return (index.h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
4513
+ return (index.h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
4321
4514
  this.popoverRef = ref;
4322
4515
  domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverShow, () => {
4323
4516
  this.selected = true;