@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
@@ -5,26 +5,27 @@ import { s as sanitizeVegaComponent } from './component-7d906393.js';
5
5
  import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0fab.js';
6
6
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
7
7
  import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-82f346e3.js';
8
- import { p as VegaInternalComponentDidRender, a as VegaInternalRichTextEditorFlushChanges, G as VegaInternalRichTextEditDeleteSelectedNodes, H as VegaInternalRichTextImageClick, I as VegaInternalRichTextImageDeleteButtonClicked, y as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-799d012e.js';
9
- import { R as RTEDTORendererManager, f as RTEImageNode, d as RTEListItemBlock, V as VegaRTEContent, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, i as ElementToDtoStrategyProcessor, c as RTEImageBlock } from './dto-renderer-manager-6fd22ab7.js';
10
- import { i as isNonNullable } from './type-guard-f50e34d6.js';
8
+ import { p as VegaInternalComponentDidRender, a as VegaInternalRichTextEditorFlushChanges, H as VegaInternalRichTextEditDeleteSelectedNodes, I as VegaInternalRichTextImageClick, J as VegaInternalRichTextImageDeleteButtonClicked, v as VegaInternalCodeBlockBlur, z as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-12783594.js';
9
+ import { R as RTEDTORendererManager, f as RTEImageNode, d as RTEListItemBlock, V as VegaRTEContent, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, i as ElementToDtoStrategyProcessor, c as RTEImageBlock } from './dto-renderer-manager-73df5cbe.js';
10
+ import { i as isNonNullable } from './type-guard-f69d2935.js';
11
11
  import { V as VegaInternalIconManager } from './internal-icon-manager-bd80b3bb.js';
12
- import { b as RTETextNode, a1 as BoldAnnotationAction, y as NodeAnnotationTypeEnum, a2 as ItalicAnnotationAction, a3 as UnderlineAnnotationAction, d as RTETextBlock, T as TextStyleAnnotationAction, a4 as TextStyleAnnotation, a5 as BoldAnnotation, u as BlockAnnotationTypeEnum, a6 as ClearFormattingAnnotationAction, a7 as CodeAnnotationAction, a8 as StrikethroughAnnotationAction, _ as SelectionChangeAction, W as LinkAnnotationAction, a9 as IndentAnnotationAction, M as ModifyContentAction, k as ModifyContentActionType, a0 as RTECodeBlockNode, A as ActionHandleStrategyRegistry, H as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, g as AppendChildrenAction, Z as ZERO_WIDTH_SPACE, U as UpdateTextAction, i as InsertChildrenBeforeAction, J as SplitBlockWithNodeAction, r as RemoveChildrenAction, G as ReplaceChildNodesAction, x as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems } from './code-block-b6247a45.js';
13
- import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, T as TextNodeRenderingRegistry, b as ToolbarButtonSlimmer, a as TextColorToolbarButtonSlimmer } from './image-annotation-action-6701b4c9.js';
14
- import { V as VegaDropdownClick, f as VegaChange, X as VegaImageInserted, a as VegaClick, T as VegaPopoverShow, U as VegaPopoverHide } from './vega-event-id-38aa77a0.js';
12
+ import { b as RTETextNode, a1 as BoldAnnotationAction, y as NodeAnnotationTypeEnum, a2 as ItalicAnnotationAction, a3 as UnderlineAnnotationAction, d as RTETextBlock, T as TextStyleAnnotationAction, a4 as TextStyleAnnotation, a5 as BoldAnnotation, u as BlockAnnotationTypeEnum, a6 as ClearFormattingAnnotationAction, a7 as CodeAnnotationAction, a8 as StrikethroughAnnotationAction, _ as SelectionChangeAction, W as LinkAnnotationAction, a9 as IndentAnnotationAction, M as ModifyContentAction, k as ModifyContentActionType, a0 as RTECodeBlockNode, A as ActionHandleStrategyRegistry, H as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, g as AppendChildrenAction, Z as ZERO_WIDTH_SPACE, U as UpdateTextAction, i as InsertChildrenBeforeAction, J as SplitBlockWithNodeAction, r as RemoveChildrenAction, G as ReplaceChildNodesAction, x as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems } from './code-block-d65bab61.js';
13
+ import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, T as TextNodeRenderingRegistry, b as ToolbarButtonSlimmer, a as TextColorToolbarButtonSlimmer } from './image-annotation-action-eb3dcad5.js';
14
+ import { V as VegaDropdownClick, f as VegaChange, a as VegaClick, X as VegaImageInserted, Y as VegaSourceCodeChange, T as VegaPopoverShow, U as VegaPopoverHide } from './vega-event-id-fdc58a67.js';
15
15
  import { g as generateUUID } from './misc-9fdbcfbb.js';
16
- import { w as waitForComponentDidRender } from './wait-for-component-did-render-b08ef07b.js';
17
- import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-5817d14d.js';
18
- import { c as createEventEmitSlimmer } from './event-emit-slimmer-ffaecb9a.js';
19
- import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-5133f1a8.js';
20
- import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, A as AutoRunWhenReRenderTaskQueueSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-2bb8533d.js';
16
+ import { w as waitForComponentDidRender } from './wait-for-component-did-render-4d0a3428.js';
17
+ import { t as tryGetDocument } from './try-get-document-bef0f526.js';
18
+ import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-9a880420.js';
19
+ import { c as createEventEmitSlimmer } from './event-emit-slimmer-f879fd58.js';
20
+ import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-f4b3b0b9.js';
21
+ import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, A as AutoRunWhenReRenderTaskQueueSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-556fcf2a.js';
21
22
  import { F as FORM_ELEMENT_VALUE_CHANGE, D as DARK_MODE_CHANGE } from './static-subject-title-52f93124.js';
22
23
  import { O as Observer } from './observer-3959f9dd.js';
23
24
  import { d as debounce } from './timer-9321173b.js';
24
25
  import { D as DarkModeStateControllerSlimmer } from './dark-mode-state-controller-slimmer-f2b4f8ed.js';
25
- import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-a238b862.js';
26
- import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-331312b8.js';
27
- import { T as TranslationSlimmer } from './translation-slimmer-2394b173.js';
26
+ import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-d86e3a51.js';
27
+ import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-4feabae0.js';
28
+ import { T as TranslationSlimmer } from './translation-slimmer-e788cae4.js';
28
29
  import { V as VegaInternalThemeManager } from './dark-mode-style-controller-82e5c1c6.js';
29
30
  import { i as isArrayEqual } from './array-7888f339.js';
30
31
  import { c as chevronDown } from './chevron-down-4a75d28e.js';
@@ -34,199 +35,31 @@ import { r as remoteInvocationRegistry } from './remote-invocation-registry-d692
34
35
  import './string-a953eafc.js';
35
36
  import './object-66c37948.js';
36
37
  import './breakpoints-d9faf11c.js';
37
- import './ui-28fd4193.js';
38
+ import './ui-41f725b7.js';
38
39
  import './typography-396de03f.js';
39
- import './internal-translation-controller-911515f9.js';
40
+ import './internal-translation-controller-0787a7a7.js';
40
41
  import './icon-manager-539d7cf7.js';
41
42
  import './create-public-api-runtime-metrics-slimmer-aaadaa08.js';
42
43
  import './dynamic-slimmer-90b8af32.js';
43
44
  import './index-3b327f29.js';
44
- import './try-get-document-bef0f526.js';
45
- import './page-resize-observer-slimmer-d6af0d86.js';
46
- import './breakpoints-56e5407b.js';
45
+ import './page-resize-observer-slimmer-e0505250.js';
46
+ import './breakpoints-13353e09.js';
47
47
  import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
48
48
  import './mutation-observer-slimmer-58ebc13c.js';
49
49
  import './mutation-observer-filters-1a054fb0.js';
50
- import './sub-state-observer-slimmer-478c9f41.js';
51
- import './internal-vega-event-manager-32a3d848.js';
52
- import './range-663f44dc.js';
50
+ import './sub-state-observer-slimmer-058feaf0.js';
51
+ import './internal-vega-event-manager-3aebbe55.js';
52
+ import './range-0a22b512.js';
53
53
  import './synchronize-task-queue-ac8acc3b.js';
54
- import './keyboard-manager-slimmer-9984d922.js';
55
- import './keyboard-manager-38934f94.js';
54
+ import './keyboard-manager-slimmer-87bf68f1.js';
55
+ import './keyboard-manager-4dfc625f.js';
56
56
  import './vega-env-manager-8f8dc473.js';
57
57
  import './feature-flag-controller-30f7b625.js';
58
58
  import './index-bfc6dfa2.js';
59
59
  import './vega-nonce-manager-497e5eb5.js';
60
60
  import './number-4398f2e1.js';
61
61
 
62
- /**
63
- * Class to format HTML code with proper indentation and style cleanup.
64
- */
65
- class CodeFormatter {
66
- constructor() {
67
- /**
68
- * Formats a given HTML source string by applying indentation and cleaning up styles.
69
- * Content inside preserve tags (pre) is preserved as-is without formatting.
70
- *
71
- * @param {string} source - The HTML source string to format.
72
- * @param {CodeFormatOptions} options - Formatting options.
73
- * @returns {string} The formatted HTML string.
74
- */
75
- this.format = (source, options = {}) => {
76
- const { tabWidth = 4, useTabs = true } = options;
77
- const indentUnit = useTabs ? '\t' : ' ';
78
- const INDENT = indentUnit.repeat(tabWidth);
79
- const tagRegex = /(<\/?[^>]+>)/g;
80
- // Split source into tokens using tag boundaries while filtering out empty strings
81
- const tokens = source.split(tagRegex).filter((t) => t.length > 0);
82
- let indentLevel = 0;
83
- let output = '';
84
- let preserveDepth = 0;
85
- for (let i = 0; i < tokens.length; i++) {
86
- let token = tokens[i];
87
- const tagName = CodeFormatter.getTagName(token);
88
- // Track if we're entering or exiting preserve tags
89
- if (CodeFormatter.PRESERVE_CONTENT_TAGS.has(tagName)) {
90
- if (token.startsWith('</')) {
91
- preserveDepth = Math.max(0, preserveDepth - 1);
92
- }
93
- else if (token.startsWith('<')) {
94
- preserveDepth++;
95
- }
96
- }
97
- // If inside preserve tag, output as-is without formatting
98
- if (preserveDepth > 0) {
99
- output += token;
100
- continue;
101
- }
102
- // Decrease indentation for closing tags (after exiting preserve tags)
103
- if (token.startsWith('</')) {
104
- indentLevel = Math.max(0, indentLevel - 1);
105
- }
106
- const indent = INDENT.repeat(indentLevel);
107
- if (token.startsWith('<')) {
108
- // Clean and normalize inline style attributes
109
- token = token.replace(/style\s*=\s*"([^"]*)"/g, (_, styleContent) => {
110
- return `style="${this.formatStyle(styleContent)}"`;
111
- });
112
- const isInline = CodeFormatter.INLINE_TAGS.has(tagName);
113
- // Inline tag grouping: e.g., <strong>Text</strong> or <span></span> stays on one line
114
- // Check for empty tags: <tag></tag> (closing tag immediately follows opening tag)
115
- if (isInline && i + 1 < tokens.length && tokens[i + 1] === `</${tagName}>`) {
116
- // Empty inline tag: <span></span>
117
- output += `${indent}${token}${tokens[i + 1]}\n`;
118
- i += 1;
119
- }
120
- else if (isInline && i + 2 < tokens.length && tokens[i + 2] === `</${tagName}>`) {
121
- // Group consecutive inline tags with content
122
- let inlineGroup = `${token}${tokens[i + 1]}${tokens[i + 2]}`;
123
- i += 2;
124
- // Keep merging consecutive inline tag pairs
125
- while (i + 3 < tokens.length &&
126
- tokens[i + 1].startsWith('<') &&
127
- CodeFormatter.INLINE_TAGS.has(CodeFormatter.getTagName(tokens[i + 1])) &&
128
- tokens[i + 3] === `</${CodeFormatter.getTagName(tokens[i + 1])}>`) {
129
- inlineGroup += `${tokens[i + 1]}${tokens[i + 2]}${tokens[i + 3]}`;
130
- i += 3;
131
- }
132
- output += `${indent}${inlineGroup}\n`;
133
- }
134
- else {
135
- output += `${indent}${token}\n`;
136
- // Increase indentation for non-void opening tags
137
- if (!token.startsWith('</') &&
138
- !token.endsWith('/>') &&
139
- !CodeFormatter.VOID_TAGS.has(tagName)) {
140
- indentLevel++;
141
- }
142
- }
143
- }
144
- else {
145
- // Add plain text content with current indentation
146
- const text = token;
147
- if (text.length > 0) {
148
- output += `${INDENT.repeat(indentLevel)}${text}\n`;
149
- }
150
- }
151
- }
152
- return output.trim();
153
- };
154
- }
155
- /**
156
- * Extracts the tag name from an HTML tag string.
157
- *
158
- * @param {string} tag - A raw HTML tag string
159
- * @returns {string} The lowercase tag name, or an empty string if no match is found.
160
- */
161
- static getTagName(tag) {
162
- var _a;
163
- const match = tag.match(/^<\/?([a-z0-9]+)/i);
164
- return (_a = match === null || match === void 0 ? void 0 : match[1].toLowerCase()) !== null && _a !== void 0 ? _a : '';
165
- }
166
- /**
167
- * Formats a CSS style string by trimming white space and ensuring consistent semicolon spacing.
168
- *
169
- * @param {string} style - The CSS style string to format.
170
- * @returns {string} The formatted style string.
171
- */
172
- formatStyle(style) {
173
- return style
174
- .split(';')
175
- .map((s) => s.trim())
176
- .filter(Boolean)
177
- .join('; ');
178
- }
179
- }
180
- /**
181
- * Inline/phrasing elements that should be kept on a single line with their content.
182
- * These tags are formatted as: <tag>content</tag> on one line.
183
- */
184
- CodeFormatter.INLINE_TAGS = new Set([
185
- 'span',
186
- 'strong',
187
- 'em',
188
- 'a',
189
- 'b',
190
- 'i',
191
- 'u',
192
- 'small',
193
- 'abbr',
194
- 'code',
195
- 'b',
196
- 'u',
197
- 's',
198
- 'mark',
199
- 'time',
200
- 'del',
201
- 'ins',
202
- ]);
203
- /**
204
- * Void/self-closing elements that don't have closing tags.
205
- * Used to avoid increasing indentation for these elements.
206
- */
207
- CodeFormatter.VOID_TAGS = new Set([
208
- 'area',
209
- 'base',
210
- 'br',
211
- 'col',
212
- 'embed',
213
- 'hr',
214
- 'img',
215
- 'input',
216
- 'link',
217
- 'meta',
218
- 'param',
219
- 'source',
220
- 'track',
221
- 'wbr',
222
- ]);
223
- /**
224
- * Tags whose content should be preserved as-is without formatting.
225
- */
226
- CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
227
- const CodeFormatter$1 = new CodeFormatter();
228
-
229
- var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
62
+ var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
230
63
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
231
64
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
232
65
  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;
@@ -261,16 +94,6 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
261
94
  this.richTextContentFocus = () => {
262
95
  void this.richTextContentRef.vegaFocus();
263
96
  };
264
- this.renderSourceViewContent = () => {
265
- if (!this.allowSourceEdit)
266
- return;
267
- const sourceViewValue = this.sourceView ? CodeFormatter$1.format(this.value.toHtml()) : '';
268
- return (h("div", { class: {
269
- 'source-view-container': true,
270
- 'vega-hidden': !this.sourceView,
271
- } },
272
- h("vega-code-block", { ref: (ref) => (this.sourceCodeBlockRef = ref), disabled: this.disabled, value: { language: 'html', code: sourceViewValue } })));
273
- };
274
97
  }
275
98
  /**
276
99
  * Component lifecycle - [componentDidRender]{@link VegaRichTextEditor.componentDidRender}
@@ -312,11 +135,6 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
312
135
  return this.richTextContentRef.shadowRoot.querySelector('.rich-text-content');
313
136
  }
314
137
  }
315
- getSourceCode() {
316
- if (this.sourceCodeBlockRef) {
317
- return this.sourceCodeBlockRef.value.code;
318
- }
319
- }
320
138
  render() {
321
139
  return h(Host, null, this.renderRichTextEditor());
322
140
  }
@@ -334,56 +152,59 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
334
152
  renderContent() {
335
153
  return (h(Fragment, null,
336
154
  this.renderTextContent(),
337
- this.renderSourceViewContent()));
155
+ this.richTextEditorSourceViewRenderer.render()));
338
156
  }
339
157
  }
340
- __decorate$C([
158
+ __decorate$D([
341
159
  MapToComponentField()
342
160
  ], VegaRichTextEditorRenderer.prototype, "host", void 0);
343
- __decorate$C([
161
+ __decorate$D([
344
162
  MapToComponentField()
345
163
  ], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
346
- __decorate$C([
164
+ __decorate$D([
347
165
  MapToComponentField()
348
166
  ], VegaRichTextEditorRenderer.prototype, "label", void 0);
349
- __decorate$C([
167
+ __decorate$D([
350
168
  MapToComponentField()
351
169
  ], VegaRichTextEditorRenderer.prototype, "required", void 0);
352
- __decorate$C([
170
+ __decorate$D([
353
171
  MapToComponentField()
354
172
  ], VegaRichTextEditorRenderer.prototype, "hint", void 0);
355
- __decorate$C([
173
+ __decorate$D([
356
174
  MapToComponentField()
357
175
  ], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
358
- __decorate$C([
176
+ __decorate$D([
359
177
  MapToComponentField()
360
178
  ], VegaRichTextEditorRenderer.prototype, "rows", void 0);
361
- __decorate$C([
179
+ __decorate$D([
362
180
  MapToComponentField()
363
181
  ], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
364
- __decorate$C([
182
+ __decorate$D([
365
183
  MapToComponentField()
366
184
  ], VegaRichTextEditorRenderer.prototype, "value", void 0);
367
- __decorate$C([
185
+ __decorate$D([
368
186
  MapToComponentField()
369
187
  ], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
370
- __decorate$C([
188
+ __decorate$D([
371
189
  MapToComponentField()
372
190
  ], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
373
- __decorate$C([
191
+ __decorate$D([
374
192
  MapToComponentField()
375
193
  ], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
376
- __decorate$C([
194
+ __decorate$D([
377
195
  MapToComponentField()
378
196
  ], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
379
- __decorate$C([
197
+ __decorate$D([
380
198
  MapToComponentField()
381
199
  ], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
382
- __decorate$C([
200
+ __decorate$D([
201
+ MapToComponentField()
202
+ ], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
203
+ __decorate$D([
383
204
  MapToComponentMethod('componentDidRender')
384
205
  ], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
385
206
 
386
- var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
207
+ var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
387
208
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
388
209
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
389
210
  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;
@@ -479,67 +300,67 @@ class ToolbarRenderer extends VegaSlimmer {
479
300
  return [renderedItems, totalVisibleCount];
480
301
  }
481
302
  }
482
- __decorate$B([
303
+ __decorate$C([
483
304
  MapToComponentField()
484
305
  ], ToolbarRenderer.prototype, "toolbarItems", void 0);
485
- __decorate$B([
306
+ __decorate$C([
486
307
  MapToComponentField()
487
308
  ], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
488
- __decorate$B([
309
+ __decorate$C([
489
310
  MapToComponentField()
490
311
  ], ToolbarRenderer.prototype, "host", void 0);
491
- __decorate$B([
312
+ __decorate$C([
492
313
  MapToComponentField()
493
314
  ], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
494
- __decorate$B([
315
+ __decorate$C([
495
316
  MapToComponentField()
496
317
  ], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
497
- __decorate$B([
318
+ __decorate$C([
498
319
  MapToComponentField()
499
320
  ], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
500
- __decorate$B([
321
+ __decorate$C([
501
322
  MapToComponentField()
502
323
  ], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
503
- __decorate$B([
324
+ __decorate$C([
504
325
  MapToComponentField()
505
326
  ], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
506
- __decorate$B([
327
+ __decorate$C([
507
328
  MapToComponentField()
508
329
  ], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
509
- __decorate$B([
330
+ __decorate$C([
510
331
  MapToComponentField()
511
332
  ], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
512
- __decorate$B([
333
+ __decorate$C([
513
334
  MapToComponentField()
514
335
  ], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
515
- __decorate$B([
336
+ __decorate$C([
516
337
  MapToComponentField()
517
338
  ], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
518
- __decorate$B([
339
+ __decorate$C([
519
340
  MapToComponentField()
520
341
  ], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
521
- __decorate$B([
342
+ __decorate$C([
522
343
  MapToComponentField()
523
344
  ], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
524
- __decorate$B([
345
+ __decorate$C([
525
346
  MapToComponentField()
526
347
  ], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
527
- __decorate$B([
348
+ __decorate$C([
528
349
  MapToComponentField()
529
350
  ], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
530
- __decorate$B([
351
+ __decorate$C([
531
352
  MapToComponentField()
532
353
  ], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
533
- __decorate$B([
354
+ __decorate$C([
534
355
  MapToComponentField()
535
356
  ], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
536
- __decorate$B([
357
+ __decorate$C([
537
358
  MapToComponentField()
538
359
  ], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
539
- __decorate$B([
360
+ __decorate$C([
540
361
  MapToComponentField()
541
362
  ], ToolbarRenderer.prototype, "selectionController", void 0);
542
- __decorate$B([
363
+ __decorate$C([
543
364
  MapToComponentField()
544
365
  ], ToolbarRenderer.prototype, "sourceView", void 0);
545
366
 
@@ -547,7 +368,7 @@ const bold = {
547
368
  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>`,
548
369
  };
549
370
 
550
- var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
371
+ var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
551
372
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
552
373
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
553
374
  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;
@@ -589,7 +410,7 @@ class BoldToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
589
410
  (() => {
590
411
  VegaInternalIconManager.register({ bold });
591
412
  })();
592
- __decorate$A([
413
+ __decorate$B([
593
414
  MapToComponentField()
594
415
  ], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
595
416
 
@@ -597,7 +418,7 @@ const italic = {
597
418
  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>`,
598
419
  };
599
420
 
600
- var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
421
+ var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
601
422
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
602
423
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
603
424
  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;
@@ -637,7 +458,7 @@ class ItalicToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
637
458
  (() => {
638
459
  VegaInternalIconManager.register({ italic });
639
460
  })();
640
- __decorate$z([
461
+ __decorate$A([
641
462
  MapToComponentField()
642
463
  ], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
643
464
 
@@ -645,7 +466,7 @@ const underline = {
645
466
  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>`,
646
467
  };
647
468
 
648
- var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
469
+ var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
649
470
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
650
471
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
651
472
  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;
@@ -688,7 +509,7 @@ class UnderlineToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
688
509
  (() => {
689
510
  VegaInternalIconManager.register({ underline });
690
511
  })();
691
- __decorate$y([
512
+ __decorate$z([
692
513
  MapToComponentField()
693
514
  ], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
694
515
 
@@ -696,7 +517,7 @@ const textSize = {
696
517
  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>`,
697
518
  };
698
519
 
699
- var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
520
+ var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
700
521
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
701
522
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
702
523
  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;
@@ -807,10 +628,10 @@ TextStylesToolbarButtonSlimmer.items = [
807
628
  label: 'Paragraph',
808
629
  },
809
630
  ];
810
- __decorate$x([
631
+ __decorate$y([
811
632
  MapToComponentField()
812
633
  ], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
813
- __decorate$x([
634
+ __decorate$y([
814
635
  MapToComponentField()
815
636
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
816
637
 
@@ -818,7 +639,7 @@ const TextSlash = {
818
639
  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>`,
819
640
  };
820
641
 
821
- var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
642
+ var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
822
643
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
823
644
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
824
645
  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;
@@ -855,7 +676,7 @@ class ClearStyleToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
855
676
  'text-slash': TextSlash,
856
677
  });
857
678
  })();
858
- __decorate$w([
679
+ __decorate$x([
859
680
  MapToComponentField()
860
681
  ], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
861
682
 
@@ -863,7 +684,7 @@ const codeSimple = {
863
684
  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>`,
864
685
  };
865
686
 
866
- var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
687
+ var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
867
688
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
868
689
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
869
690
  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;
@@ -901,7 +722,7 @@ class CodeToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
901
722
  (() => {
902
723
  VegaInternalIconManager.register({ 'code-simple': codeSimple });
903
724
  })();
904
- __decorate$v([
725
+ __decorate$w([
905
726
  MapToComponentField()
906
727
  ], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
907
728
 
@@ -909,7 +730,7 @@ const strikethrough = {
909
730
  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>`,
910
731
  };
911
732
 
912
- var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
733
+ var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
913
734
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
914
735
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
915
736
  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;
@@ -952,7 +773,7 @@ class StrikethroughToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
952
773
  (() => {
953
774
  VegaInternalIconManager.register({ strikethrough });
954
775
  })();
955
- __decorate$u([
776
+ __decorate$v([
956
777
  MapToComponentField()
957
778
  ], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
958
779
 
@@ -960,7 +781,7 @@ const link = {
960
781
  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>`,
961
782
  };
962
783
 
963
- var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
784
+ var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
964
785
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
965
786
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
966
787
  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;
@@ -1043,7 +864,7 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1043
864
  (() => {
1044
865
  VegaInternalIconManager.register({ link: link });
1045
866
  })();
1046
- __decorate$t([
867
+ __decorate$u([
1047
868
  MapToComponentField()
1048
869
  ], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
1049
870
 
@@ -1051,7 +872,7 @@ const indent = {
1051
872
  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>`,
1052
873
  };
1053
874
 
1054
- var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
875
+ var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1055
876
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1056
877
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1057
878
  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;
@@ -1085,7 +906,7 @@ class MoreIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1085
906
  (() => {
1086
907
  VegaInternalIconManager.register({ indent: indent });
1087
908
  })();
1088
- __decorate$s([
909
+ __decorate$t([
1089
910
  MapToComponentField()
1090
911
  ], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1091
912
 
@@ -1093,7 +914,7 @@ const outdent = {
1093
914
  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>`,
1094
915
  };
1095
916
 
1096
- var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
917
+ var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1097
918
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1098
919
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1099
920
  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;
@@ -1128,7 +949,7 @@ class LessIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1128
949
  (() => {
1129
950
  VegaInternalIconManager.register({ outdent: outdent });
1130
951
  })();
1131
- __decorate$r([
952
+ __decorate$s([
1132
953
  MapToComponentField()
1133
954
  ], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1134
955
 
@@ -1149,7 +970,7 @@ class ImageUpdateUrlAction extends ModifyContentAction {
1149
970
  }
1150
971
  }
1151
972
 
1152
- var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
973
+ var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1153
974
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1154
975
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1155
976
  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;
@@ -1161,8 +982,28 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1161
982
  icon: 'image',
1162
983
  tooltip: { text: 'Image' },
1163
984
  });
1164
- this.onClick = () => {
1165
- this.inputElementRef.click();
985
+ this.insertURLImage = async () => {
986
+ const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
987
+ this.applyImageNode(url, 'url');
988
+ await this.insertURLModalRef.modal('hide');
989
+ };
990
+ this.handleDropdownItemClick = async (payload) => {
991
+ const safeDocument = tryGetDocument();
992
+ switch (payload.detail) {
993
+ case 'upload':
994
+ this.uploadInputRef.click();
995
+ break;
996
+ case 'url':
997
+ this.currentRange = this.selectionController.getCurrentRange();
998
+ this.currentSelectedNodes = this.selectionController.getSelectedNodes();
999
+ this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1000
+ safeDocument && safeDocument.body.append(this.insertURLModalRef);
1001
+ this.insertURLInputRef.value = '';
1002
+ await this.insertURLModalRef.modal('show');
1003
+ await this.insertURLInputRef.doFocus();
1004
+ break;
1005
+ }
1006
+ await this.dropdownRef.hide();
1166
1007
  };
1167
1008
  /**
1168
1009
  * The below method is e2e-test covered in
@@ -1175,13 +1016,7 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1175
1016
  if (!input.files.length) {
1176
1017
  return;
1177
1018
  }
1178
- const node = this.insertImageController.insertImageToCaretPosition(URL.createObjectURL(input.files[0]));
1179
- if (!this.updateNodeURLMap) {
1180
- this.updateNodeURLMap = new Map();
1181
- }
1182
- this.updateNodeURLMap.set(node, (url) => {
1183
- node.apply(new ImageUpdateUrlAction(url));
1184
- });
1019
+ const node = this.applyImageNode(URL.createObjectURL(input.files[0]), 'upload');
1185
1020
  const payload = {
1186
1021
  file: input.files[0],
1187
1022
  sendBackUploadedURLCallback: this.updateNodeURLMap.get(node),
@@ -1192,8 +1027,14 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1192
1027
  }
1193
1028
  renderBtnWrapper(renderBtn) {
1194
1029
  return (h("vega-box", null,
1195
- renderBtn({ showArrowIcon: false }),
1196
- h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.inputElementRef = node), accept: "image/*", onChange: this.fileInputChange })));
1030
+ h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
1031
+ this.dropdownRef = ref;
1032
+ this.addDropdownObserver(ref);
1033
+ } },
1034
+ renderBtn({ showArrowIcon: true }),
1035
+ h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
1036
+ this.renderUploadInput(),
1037
+ this.renderInsertURLModal()));
1197
1038
  }
1198
1039
  isSelected() {
1199
1040
  return false;
@@ -1205,17 +1046,92 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1205
1046
  selectedNodes.some((node) => node.getAnnotationByType(NodeAnnotationTypeEnum.LINK)) ||
1206
1047
  this.shouldDisabledToolbar(selectedBlock, ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
1207
1048
  }
1049
+ renderDropdownContent() {
1050
+ return (h(Fragment, null, ImageToolbarButtonSlimmer.items.map((item) => {
1051
+ return (h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
1052
+ })));
1053
+ }
1054
+ renderUploadInput() {
1055
+ return (h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
1056
+ }
1057
+ renderInsertURLModal() {
1058
+ return (h("vega-modal", { size: 500, backdropColor: "semi", ref: (node) => (this.insertURLModalRef = node) },
1059
+ h("div", { slot: "modal-title" }, this.translationSlimmer.t('Image via URL')),
1060
+ h("div", { slot: "modal-content" },
1061
+ h("vega-input", { placeholder: this.translationSlimmer.t('URL'), ref: (ref) => (this.insertURLInputRef = ref),
1062
+ /* istanbul ignore next */
1063
+ // eslint-disable-next-line react/jsx-no-bind
1064
+ onKeyDown: async (event) => {
1065
+ event.key === 'Enter' && (await this.insertURLImage());
1066
+ } })),
1067
+ h("vega-flex", { slot: "modal-footer", gap: "size-8", alignItems: "center", justifyContent: "end" },
1068
+ h("vega-button", { label: this.translationSlimmer.t('Cancel'), variant: "secondary", ref: (ref) => {
1069
+ this.addModalCancelObserver(ref);
1070
+ } }),
1071
+ h("vega-button", { label: this.translationSlimmer.t('Insert'), ref: (ref) => {
1072
+ this.addModalInsertObserver(ref);
1073
+ } }))));
1074
+ }
1075
+ addDropdownObserver(dropdownRef) {
1076
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(dropdownRef, VegaDropdownClick, this.handleDropdownItemClick);
1077
+ }
1078
+ addModalCancelObserver(buttonRef) {
1079
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, VegaClick, async () => {
1080
+ await this.insertURLModalRef.modal('hide');
1081
+ });
1082
+ }
1083
+ addModalInsertObserver(buttonRef) {
1084
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, VegaClick, this.insertURLImage);
1085
+ }
1086
+ /**
1087
+ * The below method is e2e-test covered in
1088
+ * @see{module:should-update-url-properly-when-upload-images}
1089
+ */
1090
+ /* istanbul ignore next */
1091
+ applyImageNode(url, type) {
1092
+ const node = type === 'url'
1093
+ ? this.insertImageController.insertImageToCaretPosition(url, this.currentSelectedBlocks, this.currentSelectedNodes, this.currentRange)
1094
+ : this.insertImageController.insertImageToCaretPosition(url);
1095
+ if (!this.updateNodeURLMap) {
1096
+ this.updateNodeURLMap = new Map();
1097
+ }
1098
+ this.updateNodeURLMap.set(node, (url) => {
1099
+ node.apply(new ImageUpdateUrlAction(url));
1100
+ });
1101
+ return node;
1102
+ }
1103
+ normalizeSafeImageUrl(url) {
1104
+ try {
1105
+ const parsedUrl = new URL(url);
1106
+ if (parsedUrl.protocol === 'javascript:') {
1107
+ return '';
1108
+ }
1109
+ // eslint-disable-next-line no-empty
1110
+ }
1111
+ catch (_error) { }
1112
+ return url;
1113
+ }
1208
1114
  }
1209
1115
  (() => {
1210
1116
  VegaInternalIconManager.register({ image: image });
1211
1117
  })();
1212
- __decorate$q([
1118
+ ImageToolbarButtonSlimmer.items = [
1119
+ {
1120
+ key: 'upload',
1121
+ label: 'Upload from computer',
1122
+ },
1123
+ {
1124
+ key: 'url',
1125
+ label: 'Insert via URL',
1126
+ },
1127
+ ];
1128
+ __decorate$r([
1213
1129
  MapToComponentField()
1214
1130
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
1215
- __decorate$q([
1131
+ __decorate$r([
1216
1132
  MapToComponentField()
1217
1133
  ], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
1218
- __decorate$q([
1134
+ __decorate$r([
1219
1135
  MapToComponentField()
1220
1136
  ], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
1221
1137
 
@@ -1252,7 +1168,7 @@ class TransformParagraphAction extends ModifyContentAction {
1252
1168
  }
1253
1169
  }
1254
1170
 
1255
- var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1171
+ var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1256
1172
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1257
1173
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1258
1174
  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;
@@ -1311,14 +1227,14 @@ class BulletsToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1311
1227
  }
1312
1228
  }
1313
1229
  }
1314
- __decorate$p([
1230
+ __decorate$q([
1315
1231
  MapToComponentField()
1316
1232
  ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1317
- __decorate$p([
1233
+ __decorate$q([
1318
1234
  MapToComponentField()
1319
1235
  ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1320
1236
 
1321
- var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1237
+ var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1322
1238
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1323
1239
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1324
1240
  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;
@@ -1375,14 +1291,14 @@ class NumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1375
1291
  }
1376
1292
  }
1377
1293
  }
1378
- __decorate$o([
1294
+ __decorate$p([
1379
1295
  MapToComponentField()
1380
1296
  ], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1381
- __decorate$o([
1297
+ __decorate$p([
1382
1298
  MapToComponentField()
1383
1299
  ], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1384
1300
 
1385
- var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1301
+ var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1386
1302
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1387
1303
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1388
1304
  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;
@@ -1457,16 +1373,16 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
1457
1373
  'list-ol': ListOL,
1458
1374
  });
1459
1375
  })();
1460
- __decorate$n([
1376
+ __decorate$o([
1461
1377
  MapToComponentField()
1462
1378
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1463
- __decorate$n([
1379
+ __decorate$o([
1464
1380
  InjectVegaSlimmer()
1465
1381
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
1466
- __decorate$n([
1382
+ __decorate$o([
1467
1383
  InjectVegaSlimmer()
1468
1384
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
1469
- __decorate$n([
1385
+ __decorate$o([
1470
1386
  MapToComponentMethod('componentWillRender')
1471
1387
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
1472
1388
 
@@ -1474,7 +1390,7 @@ const AlignLeft = {
1474
1390
  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>`,
1475
1391
  };
1476
1392
 
1477
- var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1393
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1478
1394
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1479
1395
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1480
1396
  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;
@@ -1509,10 +1425,10 @@ class LeftAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1509
1425
  'align-left': AlignLeft,
1510
1426
  });
1511
1427
  })();
1512
- __decorate$m([
1428
+ __decorate$n([
1513
1429
  MapToComponentField()
1514
1430
  ], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1515
- __decorate$m([
1431
+ __decorate$n([
1516
1432
  MapToComponentField()
1517
1433
  ], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1518
1434
 
@@ -1520,7 +1436,7 @@ const AlignCenter = {
1520
1436
  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>`,
1521
1437
  };
1522
1438
 
1523
- var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1439
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1524
1440
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1525
1441
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1526
1442
  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;
@@ -1555,10 +1471,10 @@ class CenterAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1555
1471
  'align-center': AlignCenter,
1556
1472
  });
1557
1473
  })();
1558
- __decorate$l([
1474
+ __decorate$m([
1559
1475
  MapToComponentField()
1560
1476
  ], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1561
- __decorate$l([
1477
+ __decorate$m([
1562
1478
  MapToComponentField()
1563
1479
  ], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1564
1480
 
@@ -1566,7 +1482,7 @@ const AlignRight = {
1566
1482
  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>`,
1567
1483
  };
1568
1484
 
1569
- var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1485
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1570
1486
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1571
1487
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1572
1488
  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;
@@ -1601,10 +1517,10 @@ class RightAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1601
1517
  'align-right': AlignRight,
1602
1518
  });
1603
1519
  })();
1604
- __decorate$k([
1520
+ __decorate$l([
1605
1521
  MapToComponentField()
1606
1522
  ], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1607
- __decorate$k([
1523
+ __decorate$l([
1608
1524
  MapToComponentField()
1609
1525
  ], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1610
1526
 
@@ -1612,7 +1528,7 @@ const AlignJustify = {
1612
1528
  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>`,
1613
1529
  };
1614
1530
 
1615
- var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1531
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1616
1532
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1617
1533
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1618
1534
  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;
@@ -1647,14 +1563,14 @@ class JustifyAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1647
1563
  'align-justify': AlignJustify,
1648
1564
  });
1649
1565
  })();
1650
- __decorate$j([
1566
+ __decorate$k([
1651
1567
  MapToComponentField()
1652
1568
  ], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1653
- __decorate$j([
1569
+ __decorate$k([
1654
1570
  MapToComponentField()
1655
1571
  ], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1656
1572
 
1657
- var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1573
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1658
1574
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1659
1575
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1660
1576
  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;
@@ -1712,22 +1628,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
1712
1628
  .some((block) => this.shouldDisabledToolbar(block, HorizontalAlignmentAnnotationAction.name)));
1713
1629
  }
1714
1630
  }
1715
- __decorate$i([
1631
+ __decorate$j([
1716
1632
  MapToComponentField()
1717
1633
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1718
- __decorate$i([
1634
+ __decorate$j([
1719
1635
  InjectVegaSlimmer()
1720
1636
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
1721
- __decorate$i([
1637
+ __decorate$j([
1722
1638
  InjectVegaSlimmer()
1723
1639
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
1724
- __decorate$i([
1640
+ __decorate$j([
1725
1641
  InjectVegaSlimmer()
1726
1642
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
1727
- __decorate$i([
1643
+ __decorate$j([
1728
1644
  InjectVegaSlimmer()
1729
1645
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
1730
- __decorate$i([
1646
+ __decorate$j([
1731
1647
  MapToComponentMethod('componentWillRender')
1732
1648
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
1733
1649
 
@@ -1768,7 +1684,7 @@ class RTEEditorState {
1768
1684
  }
1769
1685
  }
1770
1686
 
1771
- var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1687
+ var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1772
1688
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1773
1689
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1774
1690
  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;
@@ -1854,37 +1770,37 @@ class ValueController extends VegaSlimmer {
1854
1770
  }
1855
1771
  }
1856
1772
  ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
1857
- __decorate$h([
1773
+ __decorate$i([
1858
1774
  MapToComponentField()
1859
1775
  ], ValueController.prototype, "host", void 0);
1860
- __decorate$h([
1776
+ __decorate$i([
1861
1777
  MapToComponentField({ writable: true })
1862
1778
  ], ValueController.prototype, "value", void 0);
1863
- __decorate$h([
1779
+ __decorate$i([
1864
1780
  MapToComponentField()
1865
1781
  ], ValueController.prototype, "changeEventEmitter", void 0);
1866
- __decorate$h([
1782
+ __decorate$i([
1867
1783
  MapToComponentField()
1868
1784
  ], ValueController.prototype, "valueController", void 0);
1869
- __decorate$h([
1785
+ __decorate$i([
1870
1786
  MapToComponentField()
1871
1787
  ], ValueController.prototype, "historyController", void 0);
1872
- __decorate$h([
1788
+ __decorate$i([
1873
1789
  MapToComponentField()
1874
1790
  ], ValueController.prototype, "selectionController", void 0);
1875
- __decorate$h([
1791
+ __decorate$i([
1876
1792
  MapToComponentField()
1877
1793
  ], ValueController.prototype, "sourceEditConfig", void 0);
1878
- __decorate$h([
1794
+ __decorate$i([
1879
1795
  MapToComponentMethod('connectedCallback')
1880
1796
  ], ValueController.prototype, "connectedCallback", null);
1881
- __decorate$h([
1797
+ __decorate$i([
1882
1798
  MapToComponentMethod('disconnectedCallback')
1883
1799
  ], ValueController.prototype, "disconnectedCallback", null);
1884
- __decorate$h([
1800
+ __decorate$i([
1885
1801
  MapToComponentMethod('componentWillLoad')
1886
1802
  ], ValueController.prototype, "componentWillLoad", null);
1887
- __decorate$h([
1803
+ __decorate$i([
1888
1804
  MapToComponentMethod('watchValueUpdate')
1889
1805
  ], ValueController.prototype, "watchValueUpdate", null);
1890
1806
 
@@ -2550,7 +2466,7 @@ class InsertPasteHandler extends BaseHandler {
2550
2466
  }
2551
2467
  }
2552
2468
 
2553
- var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2469
+ var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2554
2470
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2555
2471
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2556
2472
  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;
@@ -2677,28 +2593,28 @@ class UserInputController extends VegaSlimmer {
2677
2593
  return false;
2678
2594
  }
2679
2595
  }
2680
- __decorate$g([
2596
+ __decorate$h([
2681
2597
  MapToComponentField()
2682
2598
  ], UserInputController.prototype, "host", void 0);
2683
- __decorate$g([
2599
+ __decorate$h([
2684
2600
  MapToComponentField()
2685
2601
  ], UserInputController.prototype, "value", void 0);
2686
- __decorate$g([
2602
+ __decorate$h([
2687
2603
  MapToComponentField()
2688
2604
  ], UserInputController.prototype, "valueController", void 0);
2689
- __decorate$g([
2605
+ __decorate$h([
2690
2606
  MapToComponentField()
2691
2607
  ], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
2692
- __decorate$g([
2608
+ __decorate$h([
2693
2609
  MapToComponentField()
2694
2610
  ], UserInputController.prototype, "selectionController", void 0);
2695
- __decorate$g([
2611
+ __decorate$h([
2696
2612
  MapToComponentField()
2697
2613
  ], UserInputController.prototype, "insertCompositionTextController", void 0);
2698
- __decorate$g([
2614
+ __decorate$h([
2699
2615
  MapToComponentMethod('componentDidLoad')
2700
2616
  ], UserInputController.prototype, "addActionListener", null);
2701
- __decorate$g([
2617
+ __decorate$h([
2702
2618
  MapToComponentMethod('disconnectedCallback')
2703
2619
  ], UserInputController.prototype, "removeActionListener", null);
2704
2620
 
@@ -2718,7 +2634,7 @@ class InsertImageToBlockAction extends ModifyContentAction {
2718
2634
  }
2719
2635
  }
2720
2636
 
2721
- var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2637
+ var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2722
2638
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2723
2639
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2724
2640
  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;
@@ -2730,10 +2646,13 @@ class InsertImageController extends VegaSlimmer {
2730
2646
  * Insert a image to current state
2731
2647
  *
2732
2648
  * @param {string} imageUrl The image url
2649
+ * @param {RTEBlock[]} selectedBlocks The current selected blocks, if not provided, will get from selectionController
2650
+ * @param {RTENode[]} selectedNodes The current selected nodes, if not provided, will get from selectionController
2651
+ * @param {RTERange} currentRange The current selected range, if not provided, will get from selectionController
2733
2652
  * @returns {RTEImageNode} RTEImageNode
2734
2653
  */
2735
- insertImageToCaretPosition(imageUrl) {
2736
- const selectedBlocks = this.selectionController.getSelectedBlocks();
2654
+ insertImageToCaretPosition(imageUrl, selectedBlocks, selectedNodes, currentRange) {
2655
+ selectedBlocks || (selectedBlocks = this.selectionController.getSelectedBlocks());
2737
2656
  const imageBlock = new RTEImageBlock(generateUUID());
2738
2657
  const newImageNode = new RTEImageNode(generateUUID(), imageUrl, imageBlock);
2739
2658
  newImageNode.apply(new ImageAnnotationAction('md', ''));
@@ -2743,8 +2662,8 @@ class InsertImageController extends VegaSlimmer {
2743
2662
  void this.valueController.flushChanges(this.value);
2744
2663
  }
2745
2664
  else {
2746
- const { startOffset } = this.selectionController.getCurrentRange();
2747
- const selectedNodes = this.selectionController.getSelectedNodes();
2665
+ const { startOffset } = currentRange || this.selectionController.getCurrentRange();
2666
+ selectedNodes || (selectedNodes = this.selectionController.getSelectedNodes());
2748
2667
  selectedBlocks[0].apply(new InsertImageToBlockAction(selectedNodes[0], startOffset, imageBlock));
2749
2668
  }
2750
2669
  this.updateCaretPosition(newImageNode);
@@ -2807,26 +2726,26 @@ class InsertImageController extends VegaSlimmer {
2807
2726
  }
2808
2727
  }
2809
2728
  }
2810
- __decorate$f([
2729
+ __decorate$g([
2811
2730
  MapToComponentField()
2812
2731
  ], InsertImageController.prototype, "selectionController", void 0);
2813
- __decorate$f([
2732
+ __decorate$g([
2814
2733
  MapToComponentField()
2815
2734
  ], InsertImageController.prototype, "value", void 0);
2816
- __decorate$f([
2735
+ __decorate$g([
2817
2736
  MapToComponentField()
2818
2737
  ], InsertImageController.prototype, "valueController", void 0);
2819
- __decorate$f([
2738
+ __decorate$g([
2820
2739
  MapToComponentField()
2821
2740
  ], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
2822
- __decorate$f([
2741
+ __decorate$g([
2823
2742
  MapToComponentMethod('componentDidLoad')
2824
2743
  ], InsertImageController.prototype, "registerObserver", null);
2825
- __decorate$f([
2744
+ __decorate$g([
2826
2745
  MapToComponentMethod('disconnectedCallback')
2827
2746
  ], InsertImageController.prototype, "unRegisterObserver", null);
2828
2747
 
2829
- var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2748
+ var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2830
2749
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2831
2750
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2832
2751
  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;
@@ -2892,20 +2811,20 @@ class FocusController extends VegaSlimmer {
2892
2811
  this.selectionController.setSelectionRange(range);
2893
2812
  }
2894
2813
  }
2895
- __decorate$e([
2814
+ __decorate$f([
2896
2815
  MapToComponentField()
2897
2816
  ], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
2898
- __decorate$e([
2817
+ __decorate$f([
2899
2818
  MapToComponentField()
2900
2819
  ], FocusController.prototype, "selectionController", void 0);
2901
- __decorate$e([
2820
+ __decorate$f([
2902
2821
  MapToComponentField()
2903
2822
  ], FocusController.prototype, "valueController", void 0);
2904
- __decorate$e([
2823
+ __decorate$f([
2905
2824
  MapToComponentField()
2906
2825
  ], FocusController.prototype, "value", void 0);
2907
2826
 
2908
- var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2827
+ var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2909
2828
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2910
2829
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2911
2830
  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;
@@ -2945,14 +2864,14 @@ class TextNodeColorController extends VegaSlimmer {
2945
2864
  return true;
2946
2865
  }
2947
2866
  }
2948
- __decorate$d([
2867
+ __decorate$e([
2949
2868
  MapToComponentMethod('connectedCallback')
2950
2869
  ], TextNodeColorController.prototype, "connectedCallback", null);
2951
- __decorate$d([
2870
+ __decorate$e([
2952
2871
  MapToComponentMethod('disconnectedCallback')
2953
2872
  ], TextNodeColorController.prototype, "disconnectResizeObserver", null);
2954
2873
 
2955
- var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2874
+ var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2956
2875
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2957
2876
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2958
2877
  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;
@@ -3162,35 +3081,35 @@ class InsertCompositionTextController extends VegaSlimmer {
3162
3081
  this.editableElementRef.dispatchEvent(inputEvent);
3163
3082
  }
3164
3083
  }
3165
- __decorate$c([
3084
+ __decorate$d([
3166
3085
  MapToComponentField()
3167
3086
  ], InsertCompositionTextController.prototype, "selectionController", void 0);
3168
- __decorate$c([
3087
+ __decorate$d([
3169
3088
  MapToComponentField()
3170
3089
  ], InsertCompositionTextController.prototype, "host", void 0);
3171
- __decorate$c([
3090
+ __decorate$d([
3172
3091
  MapToComponentField()
3173
3092
  ], InsertCompositionTextController.prototype, "value", void 0);
3174
- __decorate$c([
3093
+ __decorate$d([
3175
3094
  MapToComponentField()
3176
3095
  ], InsertCompositionTextController.prototype, "valueController", void 0);
3177
- __decorate$c([
3096
+ __decorate$d([
3178
3097
  MapToComponentField()
3179
3098
  ], InsertCompositionTextController.prototype, "userInputController", void 0);
3180
- __decorate$c([
3099
+ __decorate$d([
3181
3100
  MapToComponentField()
3182
3101
  ], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
3183
- __decorate$c([
3102
+ __decorate$d([
3184
3103
  MapToComponentMethod('componentDidLoad')
3185
3104
  ], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
3186
- __decorate$c([
3105
+ __decorate$d([
3187
3106
  MapToComponentMethod('disconnectedCallback')
3188
3107
  ], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
3189
- __decorate$c([
3108
+ __decorate$d([
3190
3109
  MapToComponentMethod('componentDidRender')
3191
3110
  ], InsertCompositionTextController.prototype, "reConnectObserver", null);
3192
3111
 
3193
- var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3112
+ var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3194
3113
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3195
3114
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3196
3115
  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;
@@ -3399,23 +3318,23 @@ class DeleteSelectedNodesController extends VegaSlimmer {
3399
3318
  }
3400
3319
  }
3401
3320
  }
3402
- __decorate$b([
3321
+ __decorate$c([
3403
3322
  MapToComponentField()
3404
3323
  ], DeleteSelectedNodesController.prototype, "host", void 0);
3405
- __decorate$b([
3324
+ __decorate$c([
3406
3325
  MapToComponentField()
3407
3326
  ], DeleteSelectedNodesController.prototype, "selectionController", void 0);
3408
- __decorate$b([
3327
+ __decorate$c([
3409
3328
  MapToComponentField()
3410
3329
  ], DeleteSelectedNodesController.prototype, "value", void 0);
3411
- __decorate$b([
3330
+ __decorate$c([
3412
3331
  MapToComponentMethod('connectedCallback')
3413
3332
  ], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
3414
- __decorate$b([
3333
+ __decorate$c([
3415
3334
  MapToComponentMethod('disconnectedCallback')
3416
3335
  ], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
3417
3336
 
3418
- var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3337
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3419
3338
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3420
3339
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3421
3340
  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;
@@ -3491,22 +3410,22 @@ class HistoryController extends ComponentValueHistoryControllerSlimmer {
3491
3410
  await this.valueController.flushChanges(content, false);
3492
3411
  }
3493
3412
  }
3494
- __decorate$a([
3413
+ __decorate$b([
3495
3414
  MapToComponentField()
3496
3415
  ], HistoryController.prototype, "host", void 0);
3497
- __decorate$a([
3416
+ __decorate$b([
3498
3417
  MapToComponentField()
3499
3418
  ], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
3500
- __decorate$a([
3419
+ __decorate$b([
3501
3420
  MapToComponentField()
3502
3421
  ], HistoryController.prototype, "valueController", void 0);
3503
- __decorate$a([
3422
+ __decorate$b([
3504
3423
  MapToComponentField()
3505
3424
  ], HistoryController.prototype, "value", void 0);
3506
- __decorate$a([
3425
+ __decorate$b([
3507
3426
  MapToComponentField()
3508
3427
  ], HistoryController.prototype, "selectionController", void 0);
3509
- __decorate$a([
3428
+ __decorate$b([
3510
3429
  MapToComponentMethod('componentDidLoad')
3511
3430
  ], HistoryController.prototype, "registerInitState", null);
3512
3431
 
@@ -3527,7 +3446,7 @@ class TransformToCodeBlockAction extends ModifyContentAction {
3527
3446
  }
3528
3447
  }
3529
3448
 
3530
- var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3449
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3531
3450
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3532
3451
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3533
3452
  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;
@@ -3583,13 +3502,13 @@ class CodeBlockToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
3583
3502
  (() => {
3584
3503
  VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
3585
3504
  })();
3586
- __decorate$9([
3505
+ __decorate$a([
3587
3506
  MapToComponentField()
3588
3507
  ], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
3589
- __decorate$9([
3508
+ __decorate$a([
3590
3509
  MapToComponentField()
3591
3510
  ], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
3592
- __decorate$9([
3511
+ __decorate$a([
3593
3512
  MapToComponentField()
3594
3513
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
3595
3514
 
@@ -3660,7 +3579,7 @@ const displayCode = {
3660
3579
  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>`,
3661
3580
  };
3662
3581
 
3663
- var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3582
+ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3664
3583
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3665
3584
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3666
3585
  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;
@@ -3693,7 +3612,7 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
3693
3612
  return super.isDisabled();
3694
3613
  }
3695
3614
  async saveSourceCode() {
3696
- const sourceViewValue = this.vegaRichTextEditorRenderer.getSourceCode();
3615
+ const sourceViewValue = this.richTextEditorSourceViewRenderer.getSourceCode();
3697
3616
  if (!sourceViewValue && this.value.isEmpty()) {
3698
3617
  return;
3699
3618
  }
@@ -3707,26 +3626,26 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
3707
3626
  (() => {
3708
3627
  VegaInternalIconManager.register({ 'display-code': displayCode });
3709
3628
  })();
3710
- __decorate$8([
3629
+ __decorate$9([
3711
3630
  MapToComponentField({ writable: true })
3712
3631
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
3713
- __decorate$8([
3632
+ __decorate$9([
3714
3633
  MapToComponentField()
3715
3634
  ], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
3716
- __decorate$8([
3635
+ __decorate$9([
3717
3636
  MapToComponentField()
3718
3637
  ], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
3719
- __decorate$8([
3638
+ __decorate$9([
3720
3639
  MapToComponentField()
3721
- ], SourceEditToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
3722
- __decorate$8([
3640
+ ], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
3641
+ __decorate$9([
3723
3642
  MapToComponentField()
3724
3643
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
3725
- __decorate$8([
3644
+ __decorate$9([
3726
3645
  MapToComponentField()
3727
3646
  ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
3728
3647
 
3729
- var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3648
+ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3730
3649
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3731
3650
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3732
3651
  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;
@@ -3800,28 +3719,292 @@ class RTEExtensionController extends VegaSlimmer {
3800
3719
  }
3801
3720
  }
3802
3721
  }
3803
- __decorate$7([
3722
+ __decorate$8([
3804
3723
  MapToComponentField()
3805
3724
  ], RTEExtensionController.prototype, "extensions", void 0);
3806
- __decorate$7([
3725
+ __decorate$8([
3807
3726
  MapToComponentField()
3808
3727
  ], RTEExtensionController.prototype, "host", void 0);
3809
- __decorate$7([
3728
+ __decorate$8([
3810
3729
  MapToComponentField()
3811
3730
  ], RTEExtensionController.prototype, "sourceView", void 0);
3812
- __decorate$7([
3731
+ __decorate$8([
3813
3732
  MapToComponentField()
3814
3733
  ], RTEExtensionController.prototype, "valueController", void 0);
3815
- __decorate$7([
3734
+ __decorate$8([
3816
3735
  MapToComponentField()
3817
3736
  ], RTEExtensionController.prototype, "selectionController", void 0);
3818
- __decorate$7([
3737
+ __decorate$8([
3819
3738
  MapToComponentMethod('componentDidLoad')
3820
3739
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
3821
- __decorate$7([
3740
+ __decorate$8([
3822
3741
  MapToComponentMethod('watchExtensions')
3823
3742
  ], RTEExtensionController.prototype, "handleExtensionsChange", null);
3824
3743
 
3744
+ /**
3745
+ * Class to format HTML code with proper indentation and style cleanup.
3746
+ */
3747
+ class CodeFormatter {
3748
+ constructor() {
3749
+ /**
3750
+ * Formats a given HTML source string by applying indentation and cleaning up styles.
3751
+ * Content inside preserve tags (pre) is preserved as-is without formatting.
3752
+ *
3753
+ * @param {string} source - The HTML source string to format.
3754
+ * @param {CodeFormatOptions} options - Formatting options.
3755
+ * @returns {string} The formatted HTML string.
3756
+ */
3757
+ this.format = (source, options = {}) => {
3758
+ const { tabWidth = 4, useTabs = true } = options;
3759
+ const indentUnit = useTabs ? '\t' : ' ';
3760
+ const INDENT = indentUnit.repeat(tabWidth);
3761
+ const tagRegex = /(<\/?[^>]+>)/g;
3762
+ // Split source into tokens using tag boundaries while filtering out empty strings
3763
+ const tokens = source.split(tagRegex).filter((t) => t.length > 0);
3764
+ let indentLevel = 0;
3765
+ let output = '';
3766
+ let preserveDepth = 0;
3767
+ for (let i = 0; i < tokens.length; i++) {
3768
+ let token = tokens[i];
3769
+ const tagName = CodeFormatter.getTagName(token);
3770
+ // Track if we're entering or exiting preserve tags
3771
+ if (CodeFormatter.PRESERVE_CONTENT_TAGS.has(tagName)) {
3772
+ if (token.startsWith('</')) {
3773
+ preserveDepth = Math.max(0, preserveDepth - 1);
3774
+ }
3775
+ else if (token.startsWith('<')) {
3776
+ preserveDepth++;
3777
+ }
3778
+ }
3779
+ // If inside preserve tag, output as-is without formatting
3780
+ if (preserveDepth > 0) {
3781
+ output += token;
3782
+ continue;
3783
+ }
3784
+ // Decrease indentation for closing tags (after exiting preserve tags)
3785
+ if (token.startsWith('</')) {
3786
+ indentLevel = Math.max(0, indentLevel - 1);
3787
+ }
3788
+ const indent = INDENT.repeat(indentLevel);
3789
+ if (token.startsWith('<')) {
3790
+ // Clean and normalize inline style attributes
3791
+ token = token.replace(/style\s*=\s*"([^"]*)"/g, (_, styleContent) => {
3792
+ return `style="${this.formatStyle(styleContent)}"`;
3793
+ });
3794
+ const isInline = CodeFormatter.INLINE_TAGS.has(tagName);
3795
+ // Inline tag grouping: e.g., <strong>Text</strong> or <span></span> stays on one line
3796
+ // Check for empty tags: <tag></tag> (closing tag immediately follows opening tag)
3797
+ if (isInline && i + 1 < tokens.length && tokens[i + 1] === `</${tagName}>`) {
3798
+ // Empty inline tag: <span></span>
3799
+ output += `${indent}${token}${tokens[i + 1]}\n`;
3800
+ i += 1;
3801
+ }
3802
+ else if (isInline && i + 2 < tokens.length && tokens[i + 2] === `</${tagName}>`) {
3803
+ // Group consecutive inline tags with content
3804
+ let inlineGroup = `${token}${tokens[i + 1]}${tokens[i + 2]}`;
3805
+ i += 2;
3806
+ // Keep merging consecutive inline tag pairs
3807
+ while (i + 3 < tokens.length &&
3808
+ tokens[i + 1].startsWith('<') &&
3809
+ CodeFormatter.INLINE_TAGS.has(CodeFormatter.getTagName(tokens[i + 1])) &&
3810
+ tokens[i + 3] === `</${CodeFormatter.getTagName(tokens[i + 1])}>`) {
3811
+ inlineGroup += `${tokens[i + 1]}${tokens[i + 2]}${tokens[i + 3]}`;
3812
+ i += 3;
3813
+ }
3814
+ output += `${indent}${inlineGroup}\n`;
3815
+ }
3816
+ else {
3817
+ output += `${indent}${token}\n`;
3818
+ // Increase indentation for non-void opening tags
3819
+ if (!token.startsWith('</') &&
3820
+ !token.endsWith('/>') &&
3821
+ !CodeFormatter.VOID_TAGS.has(tagName)) {
3822
+ indentLevel++;
3823
+ }
3824
+ }
3825
+ }
3826
+ else {
3827
+ // Add plain text content with current indentation
3828
+ const text = token;
3829
+ if (text.length > 0) {
3830
+ output += `${INDENT.repeat(indentLevel)}${text}\n`;
3831
+ }
3832
+ }
3833
+ }
3834
+ return output.trim();
3835
+ };
3836
+ }
3837
+ /**
3838
+ * Extracts the tag name from an HTML tag string.
3839
+ *
3840
+ * @param {string} tag - A raw HTML tag string
3841
+ * @returns {string} The lowercase tag name, or an empty string if no match is found.
3842
+ */
3843
+ static getTagName(tag) {
3844
+ var _a;
3845
+ const match = tag.match(/^<\/?([a-z0-9]+)/i);
3846
+ return (_a = match === null || match === void 0 ? void 0 : match[1].toLowerCase()) !== null && _a !== void 0 ? _a : '';
3847
+ }
3848
+ /**
3849
+ * Formats a CSS style string by trimming white space and ensuring consistent semicolon spacing.
3850
+ *
3851
+ * @param {string} style - The CSS style string to format.
3852
+ * @returns {string} The formatted style string.
3853
+ */
3854
+ formatStyle(style) {
3855
+ return style
3856
+ .split(';')
3857
+ .map((s) => s.trim())
3858
+ .filter(Boolean)
3859
+ .join('; ');
3860
+ }
3861
+ }
3862
+ /**
3863
+ * Inline/phrasing elements that should be kept on a single line with their content.
3864
+ * These tags are formatted as: <tag>content</tag> on one line.
3865
+ */
3866
+ CodeFormatter.INLINE_TAGS = new Set([
3867
+ 'span',
3868
+ 'strong',
3869
+ 'em',
3870
+ 'a',
3871
+ 'b',
3872
+ 'i',
3873
+ 'u',
3874
+ 'small',
3875
+ 'abbr',
3876
+ 'code',
3877
+ 'b',
3878
+ 'u',
3879
+ 's',
3880
+ 'mark',
3881
+ 'time',
3882
+ 'del',
3883
+ 'ins',
3884
+ ]);
3885
+ /**
3886
+ * Void/self-closing elements that don't have closing tags.
3887
+ * Used to avoid increasing indentation for these elements.
3888
+ */
3889
+ CodeFormatter.VOID_TAGS = new Set([
3890
+ 'area',
3891
+ 'base',
3892
+ 'br',
3893
+ 'col',
3894
+ 'embed',
3895
+ 'hr',
3896
+ 'img',
3897
+ 'input',
3898
+ 'link',
3899
+ 'meta',
3900
+ 'param',
3901
+ 'source',
3902
+ 'track',
3903
+ 'wbr',
3904
+ ]);
3905
+ /**
3906
+ * Tags whose content should be preserved as-is without formatting.
3907
+ */
3908
+ CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
3909
+ const CodeFormatter$1 = new CodeFormatter();
3910
+
3911
+ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3912
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3913
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3914
+ 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;
3915
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3916
+ };
3917
+ /**
3918
+ * 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.
3919
+ */
3920
+ class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
3921
+ constructor() {
3922
+ super(...arguments);
3923
+ this.prevRecord = '';
3924
+ /**
3925
+ * 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.
3926
+ */
3927
+ this.handleCodeBlockBlur = () => {
3928
+ var _a;
3929
+ // If source view is closed while blurring, it means the user switch back to normal mode, so we can skip emitting the change event.
3930
+ if (this.sourceView) {
3931
+ const sourceCode = this.getSourceCode();
3932
+ const newValue = VegaRTEContent.fromHtml(sourceCode, {
3933
+ autoMatchFormat: (_a = this.sourceEditConfig.autoMatchFormat) !== null && _a !== void 0 ? _a : true,
3934
+ });
3935
+ const newSourceCode = newValue.toHtml();
3936
+ if (newSourceCode !== this.prevRecord) {
3937
+ this.sourceCodeChangeEventEmitter.emit(newSourceCode);
3938
+ this.prevRecord = newSourceCode;
3939
+ }
3940
+ }
3941
+ };
3942
+ }
3943
+ /**
3944
+ * Clean up the code block blur observer when the component is disconnected to prevent memory leaks.
3945
+ */
3946
+ clearCodeBlockBlurObserver() {
3947
+ if (this.sourceCodeBlockRef) {
3948
+ DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.sourceCodeBlockRef, VegaInternalCodeBlockBlur);
3949
+ }
3950
+ }
3951
+ /**
3952
+ * Get the source code from the source view's code block.
3953
+ *
3954
+ * @returns {Nullable<string>} The source code, or null if the code block reference is not set.
3955
+ */
3956
+ getSourceCode() {
3957
+ if (this.sourceCodeBlockRef) {
3958
+ return this.sourceCodeBlockRef.value.code;
3959
+ }
3960
+ }
3961
+ /**
3962
+ * Render the source view, which is a code block for editing the source code of the rich text editor content.
3963
+ *
3964
+ * @returns {Nullable<HTMLElement>} The rendered source view element, or null if source editing is not allowed.
3965
+ */
3966
+ render() {
3967
+ if (!this.allowSourceEdit)
3968
+ return;
3969
+ const sourceCode = this.value.toHtml();
3970
+ const sourceViewValue = this.sourceView ? CodeFormatter$1.format(sourceCode) : '';
3971
+ // 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.
3972
+ this.prevRecord = sourceCode;
3973
+ return (h("div", { class: {
3974
+ 'source-view-container': true,
3975
+ 'vega-hidden': !this.sourceView,
3976
+ } },
3977
+ h("vega-code-block", { ref: (ref) => {
3978
+ this.sourceCodeBlockRef = ref;
3979
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaInternalCodeBlockBlur, this.handleCodeBlockBlur);
3980
+ }, disabled: this.disabled, value: { language: 'html', code: sourceViewValue } })));
3981
+ }
3982
+ }
3983
+ __decorate$7([
3984
+ MapToComponentField()
3985
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "host", void 0);
3986
+ __decorate$7([
3987
+ MapToComponentField()
3988
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "allowSourceEdit", void 0);
3989
+ __decorate$7([
3990
+ MapToComponentField()
3991
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceView", void 0);
3992
+ __decorate$7([
3993
+ MapToComponentField()
3994
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "value", void 0);
3995
+ __decorate$7([
3996
+ MapToComponentField()
3997
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "disabled", void 0);
3998
+ __decorate$7([
3999
+ MapToComponentField()
4000
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceEditConfig", void 0);
4001
+ __decorate$7([
4002
+ MapToComponentField()
4003
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceCodeChangeEventEmitter", void 0);
4004
+ __decorate$7([
4005
+ MapToComponentMethod('disconnectedCallback')
4006
+ ], VegaRichTextEditorSourceViewRenderer.prototype, "clearCodeBlockBlurObserver", null);
4007
+
3825
4008
  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}";
3826
4009
 
3827
4010
  var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3841,6 +4024,8 @@ const VegaRichTextEditor = class {
3841
4024
  this.change = createEvent(this, "change", 7);
3842
4025
  this.vegaImageInserted = createEvent(this, "vegaImageInserted", 7);
3843
4026
  this.imageInserted = createEvent(this, "imageInserted", 7);
4027
+ this.vegaSourceCodeChange = createEvent(this, "vegaSourceCodeChange", 7);
4028
+ this.sourceCodeChange = createEvent(this, "sourceCodeChange", 7);
3844
4029
  this.globalSlimmers = {};
3845
4030
  this.translationSlimmer = new TranslationSlimmer();
3846
4031
  this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
@@ -3893,6 +4078,8 @@ const VegaRichTextEditor = class {
3893
4078
  this.historyController = new HistoryController();
3894
4079
  this.internalCodeBlockSelectionController = new InternalCodeBlockSelectionController();
3895
4080
  this.rteExtensionController = new RTEExtensionController();
4081
+ this.sourceCodeChangeEventEmitter = createEventEmitSlimmer(VegaRichTextEditor, VegaSourceCodeChange);
4082
+ this.richTextEditorSourceViewRenderer = new VegaRichTextEditorSourceViewRenderer();
3896
4083
  this.richTextContentEditable = true;
3897
4084
  this.selectionMap = new Map();
3898
4085
  this.isInDarkMode = VegaInternalThemeManager.isDarkMode();
@@ -4146,6 +4333,12 @@ __decorate$6([
4146
4333
  __decorate$6([
4147
4334
  InjectVegaSlimmer()
4148
4335
  ], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
4336
+ __decorate$6([
4337
+ InjectVegaSlimmer()
4338
+ ], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
4339
+ __decorate$6([
4340
+ InjectVegaSlimmer()
4341
+ ], VegaRichTextEditor.prototype, "richTextEditorSourceViewRenderer", void 0);
4149
4342
  VegaRichTextEditor.style = vegaRichTextEditorCss;
4150
4343
 
4151
4344
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -4313,7 +4506,7 @@ class VegaRichTextImageEditorRenderer extends VegaSlimmer {
4313
4506
  };
4314
4507
  }
4315
4508
  render() {
4316
- return (h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
4509
+ return (h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
4317
4510
  this.popoverRef = ref;
4318
4511
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
4319
4512
  this.selected = true;