@heartlandone/vega 2.71.0-RTE-table-preview → 2.72.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 (1777) hide show
  1. package/dist/cjs/app-globals-c6be6013.js +432 -0
  2. package/dist/cjs/child-nodes-event-prevent-slimmer-871855df.js +158 -0
  3. package/dist/cjs/code-block-a7c8825f.js +4422 -0
  4. package/dist/cjs/component-value-history-controller-slimmer.abstract-868de3c4.js +736 -0
  5. package/dist/cjs/date-required-rule-99cca681.js +92 -0
  6. package/dist/cjs/design-token-d9c4dff6.js +402 -0
  7. package/dist/cjs/dom-node-subject-observer-factory-1c8f7880.js +305 -0
  8. package/dist/cjs/dto-renderer-manager-f3820a6b.js +3928 -0
  9. package/dist/cjs/element-appender-slimmer-3dc36dfa.js +1508 -0
  10. package/dist/cjs/event-emit-slimmer-f7255138.js +267 -0
  11. package/dist/cjs/form-field-controller-slimmer-57525f26.js +1267 -0
  12. package/dist/cjs/function-extension-d4fc3b7a.js +2927 -0
  13. package/dist/cjs/image-annotation-action-64414e40.js +312 -0
  14. package/dist/cjs/index-58ea899e.js +4 -8
  15. package/dist/cjs/index-c7fbf32b.js +43 -0
  16. package/dist/cjs/index.cjs.js +33 -38
  17. package/dist/cjs/inject-keyboard-manager-a6101379.js +37 -0
  18. package/dist/cjs/internal-vega-event-manager-0e1ba774.js +487 -0
  19. package/dist/cjs/keyboard-manager-d8adb0ed.js +140 -0
  20. package/dist/cjs/keyboard-manager-slimmer-15e65357.js +39 -0
  21. package/dist/cjs/language-extension-d23e5369.js +210 -0
  22. package/dist/cjs/loader.cjs.js +13 -15
  23. package/dist/cjs/month-view-generator-706c5477.js +102 -0
  24. package/dist/cjs/public-rules-0847e6fa.js +47 -0
  25. package/dist/cjs/range-14190f6b.js +178 -0
  26. package/dist/cjs/remote-invocation-registry-fc22fdd0.js +65 -0
  27. package/dist/cjs/responsive-format-facade-77d357fb.js +925 -0
  28. package/dist/cjs/rich-text-editor-required-rule-65d85060.js +64 -0
  29. package/dist/cjs/string-format-strategy.abstract-a8264fca.js +60 -0
  30. package/dist/cjs/string-input-formatter-slimmer-4332d1c7.js +230 -0
  31. package/dist/cjs/string-mask-strategy-4e7d3780.js +172 -0
  32. package/dist/cjs/style-formatter-4fd65f6f.js +34 -0
  33. package/dist/cjs/sub-state-notify-slimmer-9fe1ab65.js +81 -0
  34. package/dist/cjs/sub-state-observer-slimmer-2f6f4d28.js +134 -0
  35. package/dist/cjs/time-required-rule-9d39a620.js +141 -0
  36. package/dist/cjs/type-guard-69d2cf01.js +1965 -0
  37. package/dist/cjs/valid-credit-card-number-rule-9f40d1d9.js +173 -0
  38. package/dist/cjs/vega-accordion.cjs.entry.js +11 -14
  39. package/dist/cjs/vega-app-header-button.cjs.entry.js +16 -19
  40. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  41. package/dist/cjs/vega-box.cjs.entry.js +15 -18
  42. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  43. package/dist/cjs/vega-button-circle.cjs.entry.js +15 -18
  44. package/dist/cjs/vega-button-group_2.cjs.entry.js +60 -10
  45. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  46. package/dist/cjs/vega-button.cjs.entry.js +15 -17
  47. package/dist/cjs/vega-calendar_4.cjs.entry.js +87 -909
  48. package/dist/cjs/vega-card.cjs.entry.js +14 -17
  49. package/dist/cjs/vega-carousel.cjs.entry.js +14 -16
  50. package/dist/cjs/vega-checkbox_2.cjs.entry.js +7 -7
  51. package/dist/cjs/vega-chip.cjs.entry.js +16 -19
  52. package/dist/cjs/vega-code-block.cjs.entry.js +13 -13
  53. package/dist/cjs/vega-color-picker.cjs.entry.js +6 -6
  54. package/dist/cjs/vega-combo-box.cjs.entry.js +13 -13
  55. package/dist/cjs/vega-date-picker_2.cjs.entry.js +1757 -1569
  56. package/dist/cjs/vega-dialog_2.cjs.entry.js +19 -22
  57. package/dist/cjs/vega-divider.cjs.entry.js +10 -13
  58. package/dist/cjs/vega-dropdown_5.cjs.entry.js +20 -32
  59. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  60. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  61. package/dist/cjs/vega-file-uploader.cjs.entry.js +6 -6
  62. package/dist/cjs/vega-flag-icon.cjs.entry.js +10 -13
  63. package/dist/cjs/vega-flex.cjs.entry.js +15 -18
  64. package/dist/cjs/vega-font.cjs.entry.js +14 -17
  65. package/dist/cjs/vega-form.cjs.entry.js +9 -9
  66. package/dist/cjs/vega-grid.cjs.entry.js +14 -17
  67. package/dist/cjs/vega-icon.cjs.entry.js +14 -17
  68. package/dist/cjs/vega-image-uploader.cjs.entry.js +16 -18
  69. package/dist/cjs/vega-input-credit-card.cjs.entry.js +14 -14
  70. package/dist/cjs/vega-input-numeric.cjs.entry.js +13 -13
  71. package/dist/cjs/vega-input-passcode.cjs.entry.js +12 -12
  72. package/dist/cjs/vega-input-phone-number.cjs.entry.js +17 -18
  73. package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
  74. package/dist/cjs/vega-input-select.cjs.entry.js +15 -16
  75. package/dist/cjs/vega-input.cjs.entry.js +11 -11
  76. package/dist/cjs/vega-internal-event-id-a5ef414b.js +112 -0
  77. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  78. package/dist/cjs/vega-left-nav_5.cjs.entry.js +18 -21
  79. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +11 -13
  80. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  81. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +4 -4
  82. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  83. package/dist/cjs/vega-pagination.cjs.entry.js +12 -14
  84. package/dist/cjs/vega-popover_2.cjs.entry.js +20 -22
  85. package/dist/cjs/vega-progress-tracker.cjs.entry.js +313 -73
  86. package/dist/cjs/vega-radio_2.cjs.entry.js +10 -10
  87. package/dist/cjs/vega-rich-text-content.cjs.entry.js +9 -8
  88. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +4648 -0
  89. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  90. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +16 -18
  91. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +8 -8
  92. package/dist/cjs/vega-sidenav_3.cjs.entry.js +16 -18
  93. package/dist/cjs/vega-signature-capture.cjs.entry.js +13 -16
  94. package/dist/cjs/vega-stepper.cjs.entry.js +7 -7
  95. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  96. package/dist/cjs/vega-table_11.cjs.entry.js +38 -39
  97. package/dist/cjs/vega-textarea.cjs.entry.js +7 -7
  98. package/dist/cjs/vega-time-picker_2.cjs.entry.js +38 -41
  99. package/dist/cjs/vega-toggle-switch.cjs.entry.js +6 -6
  100. package/dist/cjs/vega-tooltip_2.cjs.entry.js +14 -16
  101. package/dist/cjs/vega.cjs.js +13 -15
  102. package/dist/collection/collection-manifest.json +8 -16
  103. package/dist/collection/components/vega-button/vega-button.css +4 -0
  104. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.js +7 -0
  105. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +25 -2
  106. package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +31 -2
  107. package/dist/collection/components/vega-button-group/vega-button-group.js +37 -0
  108. package/dist/collection/components/vega-button-link/vega-button-link.css +4 -0
  109. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +149 -0
  110. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-format-controller.js +3 -1
  111. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-keyboard-controller.js +1 -1
  112. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-value-controller.js +10 -26
  113. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +107 -445
  114. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-input-renderer-base.abstract.js +5 -1
  115. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.js +24 -17
  116. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js +15 -20
  117. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-single-input-renderer.js +6 -17
  118. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/constants.js +14 -0
  119. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/dto/calendar-selection.js +126 -0
  120. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-allow-repick-controller.js +70 -0
  121. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.js +204 -0
  122. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-min-max-date-controller.js +56 -0
  123. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.js +191 -0
  124. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-state-base.abstract.js +54 -0
  125. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-today-controller.js +37 -0
  126. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +76 -0
  127. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +192 -0
  128. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +168 -0
  129. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +669 -278
  130. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +667 -3
  131. package/dist/collection/components/vega-date-picker/vega-date-picker.css +0 -11
  132. package/dist/collection/components/vega-date-picker/vega-date-picker.js +23 -40
  133. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +3 -15
  134. package/dist/collection/components/vega-input/vega-input.js +1 -1
  135. package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
  136. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.js +154 -0
  137. package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +101 -0
  138. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.css +68 -77
  139. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +71 -86
  140. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-annotation.js +11 -63
  141. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +1 -15
  142. package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js +1 -2
  143. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +0 -8
  144. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.js +5 -1
  145. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +12 -1
  146. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +16 -10
  147. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +1 -1
  148. package/dist/collection/components/vega-rich-text-editor/public-api.js +0 -1
  149. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +0 -20
  150. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +2 -23
  151. package/dist/collection/components/vega-rich-text-editor/test/dto/annotation-style.test.js +2 -1
  152. package/dist/collection/components/vega-rich-text-editor/test/dto/annotations.test.js +9 -0
  153. package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/text-block.test.js +1 -1
  154. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +15 -15
  155. package/dist/collection/components/vega-rich-text-editor/test/spec-utils.js +2 -5
  156. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.css +0 -4
  157. package/dist/collection/constants/regex.js +1 -0
  158. package/dist/collection/constants/ui.js +3 -0
  159. package/dist/collection/global/scripts/before-vega-load.js +0 -2
  160. package/dist/collection/helpers/calendar/calendar-date.js +273 -1
  161. package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +9 -0
  162. package/dist/collection/helpers/calendar/calendar-period/month-period.js +16 -4
  163. package/dist/collection/helpers/calendar/test/calendar-date.test.js +73 -0
  164. package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +9 -0
  165. package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +41 -0
  166. package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +11 -0
  167. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +3 -2
  168. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +3 -1
  169. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +5 -2
  170. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +2 -1
  171. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +7 -0
  172. package/dist/collection/helpers/ui/element-appender.js +35 -5
  173. package/dist/collection/types/type-guard.js +10 -0
  174. package/dist/collection/utils/date.js +14 -3
  175. package/dist/collection/utils/e2e-utils.js +8 -2
  176. package/dist/collection/utils/spec-utils.js +3 -4
  177. package/dist/collection/utils/test/date.test.js +2 -0
  178. package/dist/esm/app-globals-3d7e8bad.js +430 -0
  179. package/dist/esm/child-nodes-event-prevent-slimmer-6f7ae2c7.js +156 -0
  180. package/dist/esm/code-block-8fb548ff.js +4364 -0
  181. package/dist/esm/component-value-history-controller-slimmer.abstract-05f3ff05.js +730 -0
  182. package/dist/esm/date-required-rule-a9980386.js +90 -0
  183. package/dist/esm/design-token-ee017ea0.js +388 -0
  184. package/dist/esm/dom-node-subject-observer-factory-479cc5ef.js +248 -0
  185. package/dist/esm/dto-renderer-manager-d185c7ba.js +3910 -0
  186. package/dist/esm/element-appender-slimmer-00bc1a3c.js +1506 -0
  187. package/dist/esm/event-emit-slimmer-76fbfe1f.js +265 -0
  188. package/dist/esm/form-field-controller-slimmer-14379261.js +1265 -0
  189. package/dist/esm/function-extension-3f886d01.js +2908 -0
  190. package/dist/esm/image-annotation-action-3ce95526.js +306 -0
  191. package/dist/esm/index-03a016ed.js +40 -0
  192. package/dist/esm/index-090d31ca.js +4 -8
  193. package/dist/esm/index.js +18 -22
  194. package/dist/esm/inject-keyboard-manager-9241968c.js +35 -0
  195. package/dist/esm/internal-vega-event-manager-e44672ed.js +483 -0
  196. package/dist/esm/keyboard-manager-89acac79.js +138 -0
  197. package/dist/esm/keyboard-manager-slimmer-e303cb7d.js +37 -0
  198. package/dist/esm/language-extension-36c79ea1.js +207 -0
  199. package/dist/esm/loader.js +15 -17
  200. package/dist/esm/month-view-generator-4bec99fd.js +98 -0
  201. package/dist/esm/page-resize-observer-slimmer-8744cb44.js +171 -0
  202. package/dist/esm/polyfills/core-js.js +0 -0
  203. package/dist/esm/polyfills/dom.js +0 -0
  204. package/dist/esm/polyfills/es5-html-element.js +0 -0
  205. package/dist/esm/polyfills/index.js +0 -0
  206. package/dist/esm/polyfills/system.js +0 -0
  207. package/dist/esm/public-rules-0f5a36c2.js +32 -0
  208. package/dist/esm/range-f10f4c85.js +176 -0
  209. package/dist/esm/remote-invocation-registry-d69245c2.js +63 -0
  210. package/dist/esm/responsive-format-facade-6df7d17a.js +921 -0
  211. package/dist/esm/rich-text-editor-required-rule-d0cde24f.js +62 -0
  212. package/dist/esm/string-format-strategy.abstract-75540c16.js +58 -0
  213. package/dist/esm/string-input-formatter-slimmer-af085f0a.js +228 -0
  214. package/dist/esm/string-mask-strategy-4a18ed1a.js +170 -0
  215. package/dist/esm/style-formatter-e6879600.js +32 -0
  216. package/dist/esm/sub-state-notify-slimmer-430e150c.js +79 -0
  217. package/dist/esm/sub-state-observer-slimmer-17bb0328.js +132 -0
  218. package/dist/esm/time-required-rule-8ec1faf5.js +138 -0
  219. package/dist/esm/type-guard-b48aec98.js +1894 -0
  220. package/dist/esm/ui-28fd4193.js +38 -0
  221. package/dist/esm/valid-credit-card-number-rule-96eaf9b1.js +171 -0
  222. package/dist/esm/vega-accordion.entry.js +13 -16
  223. package/dist/esm/vega-app-header-button.entry.js +18 -21
  224. package/dist/esm/vega-banner.entry.js +3 -3
  225. package/dist/esm/vega-box.entry.js +17 -20
  226. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  227. package/dist/esm/vega-button-circle.entry.js +17 -20
  228. package/dist/esm/vega-button-group_2.entry.js +60 -10
  229. package/dist/esm/vega-button-link.entry.js +5 -5
  230. package/dist/esm/vega-button.entry.js +17 -19
  231. package/dist/esm/vega-calendar_4.entry.js +46 -868
  232. package/dist/esm/vega-card.entry.js +16 -19
  233. package/dist/esm/vega-carousel.entry.js +16 -18
  234. package/dist/esm/vega-checkbox_2.entry.js +9 -9
  235. package/dist/esm/vega-chip.entry.js +18 -21
  236. package/dist/esm/vega-code-block.entry.js +14 -14
  237. package/dist/esm/vega-color-picker.entry.js +8 -8
  238. package/dist/esm/vega-combo-box.entry.js +15 -15
  239. package/dist/esm/vega-date-picker_2.entry.js +1744 -1556
  240. package/dist/esm/vega-dialog_2.entry.js +15 -18
  241. package/dist/esm/vega-divider.entry.js +12 -15
  242. package/dist/esm/vega-dropdown_5.entry.js +20 -32
  243. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  244. package/dist/esm/vega-field-label.entry.js +3 -3
  245. package/dist/esm/vega-file-uploader.entry.js +8 -8
  246. package/dist/esm/vega-flag-icon.entry.js +12 -15
  247. package/dist/esm/vega-flex.entry.js +17 -20
  248. package/dist/esm/vega-font.entry.js +16 -19
  249. package/dist/esm/vega-form.entry.js +11 -11
  250. package/dist/esm/vega-grid.entry.js +16 -19
  251. package/dist/esm/vega-icon.entry.js +16 -19
  252. package/dist/esm/vega-image-uploader.entry.js +17 -19
  253. package/dist/esm/vega-input-credit-card.entry.js +16 -16
  254. package/dist/esm/vega-input-numeric.entry.js +15 -15
  255. package/dist/esm/vega-input-passcode.entry.js +14 -14
  256. package/dist/esm/vega-input-phone-number.entry.js +16 -17
  257. package/dist/esm/vega-input-range.entry.js +9 -9
  258. package/dist/esm/vega-input-select.entry.js +16 -17
  259. package/dist/esm/vega-input.entry.js +13 -13
  260. package/dist/esm/vega-internal-event-id-71c67c39.js +66 -0
  261. package/dist/esm/vega-item-toggle.entry.js +4 -4
  262. package/dist/esm/vega-left-nav_5.entry.js +16 -19
  263. package/dist/esm/vega-loader-wrapper_2.entry.js +11 -13
  264. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  265. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  266. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  267. package/dist/esm/vega-pagination.entry.js +14 -16
  268. package/dist/esm/vega-popover_2.entry.js +20 -22
  269. package/dist/esm/vega-progress-tracker.entry.js +315 -75
  270. package/dist/esm/vega-radio_2.entry.js +12 -12
  271. package/dist/esm/vega-rich-text-content.entry.js +10 -9
  272. package/dist/esm/vega-rich-text-editor_4.entry.js +4641 -0
  273. package/dist/esm/vega-segment-control.entry.js +5 -5
  274. package/dist/esm/vega-selection-chip_2.entry.js +18 -20
  275. package/dist/esm/vega-selection-tile_2.entry.js +10 -10
  276. package/dist/esm/vega-sidenav_3.entry.js +14 -16
  277. package/dist/esm/vega-signature-capture.entry.js +15 -18
  278. package/dist/esm/vega-stepper.entry.js +9 -9
  279. package/dist/esm/vega-tab-group_2.entry.js +6 -6
  280. package/dist/esm/vega-table_11.entry.js +15 -16
  281. package/dist/esm/vega-text.entry.js +2 -2
  282. package/dist/esm/vega-textarea.entry.js +9 -9
  283. package/dist/esm/vega-time-picker_2.entry.js +19 -22
  284. package/dist/esm/vega-toggle-switch.entry.js +8 -8
  285. package/dist/esm/vega-tooltip_2.entry.js +16 -18
  286. package/dist/esm/vega.js +15 -17
  287. package/dist/sri/vega-sri-manifest.json +335 -347
  288. package/dist/types/components/vega-button-group/types.d.ts +2 -1
  289. package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.d.ts +1 -0
  290. package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.d.ts +11 -0
  291. package/dist/types/components/vega-button-group/vega-button-group-item/vega-button-group-item.d.ts +7 -0
  292. package/dist/types/components/vega-button-group/vega-button-group.d.ts +8 -0
  293. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.d.ts +60 -0
  294. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-value-controller.d.ts +3 -4
  295. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +29 -124
  296. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-input-renderer-base.abstract.d.ts +1 -0
  297. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.d.ts +5 -5
  298. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.d.ts +2 -3
  299. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-single-input-renderer.d.ts +1 -4
  300. package/dist/types/components/vega-date-picker/types.d.ts +9 -0
  301. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/constants.d.ts +1 -0
  302. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/dto/calendar-selection.d.ts +62 -0
  303. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-allow-repick-controller.d.ts +31 -0
  304. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.d.ts +78 -0
  305. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-min-max-date-controller.d.ts +20 -0
  306. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.d.ts +75 -0
  307. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-state-base.abstract.d.ts +29 -0
  308. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-today-controller.d.ts +15 -0
  309. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +18 -0
  310. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +40 -0
  311. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +32 -0
  312. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +182 -0
  313. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +6 -14
  314. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +0 -4
  315. package/dist/types/components/vega-input/vega-input.d.ts +1 -1
  316. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.d.ts +65 -0
  317. package/dist/types/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.d.ts +19 -0
  318. package/dist/types/components/vega-progress-tracker/type.d.ts +1 -0
  319. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +14 -10
  320. package/dist/types/components/vega-rich-text-editor/dto/annotations/annotation.abstract.d.ts +5 -2
  321. package/dist/types/components/vega-rich-text-editor/dto/annotations/block-annotation.abstract.d.ts +3 -3
  322. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-annotation.d.ts +7 -0
  323. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +6 -10
  324. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +0 -5
  325. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +7 -0
  326. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +1 -1
  327. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +7 -0
  328. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +2 -2
  329. package/dist/types/components/vega-rich-text-editor/interface.d.ts +8 -21
  330. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +0 -1
  331. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +0 -4
  332. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +6 -19
  333. package/dist/types/components/vega-rich-text-editor/test/spec-utils.d.ts +0 -4
  334. package/dist/types/components.d.ts +199 -71
  335. package/dist/types/constants/regex.d.ts +1 -0
  336. package/dist/types/constants/ui.d.ts +1 -1
  337. package/dist/types/helpers/calendar/calendar-date.d.ts +86 -2
  338. package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +7 -0
  339. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +3 -1
  340. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +5 -2
  341. package/dist/types/helpers/ui/element-appender.d.ts +14 -0
  342. package/dist/types/types/components.type.d.ts +4 -1
  343. package/dist/types/types/type-guard.d.ts +8 -0
  344. package/dist/types/utils/date.d.ts +11 -2
  345. package/dist/types/utils/e2e-utils.d.ts +7 -0
  346. package/dist/types/utils/spec-utils.d.ts +1 -2
  347. package/dist/vega/index.esm.js +1 -1
  348. package/dist/vega/p-06ab90c4.entry.js +1 -0
  349. package/dist/vega/p-09cd025a.entry.js +1 -0
  350. package/dist/vega/p-0b696b0e.entry.js +1 -0
  351. package/dist/vega/p-0f5453a7.entry.js +1 -0
  352. package/dist/vega/p-10ac8b57.js +1 -0
  353. package/dist/vega/p-154f39e4.entry.js +1 -0
  354. package/dist/vega/p-161b9c5b.js +1 -0
  355. package/dist/vega/p-169b7252.entry.js +1 -0
  356. package/dist/vega/p-17f3897a.js +1 -0
  357. package/dist/vega/p-1832e051.js +1 -0
  358. package/dist/vega/p-19728819.js +1 -0
  359. package/dist/vega/p-1e0d8228.entry.js +1 -0
  360. package/dist/vega/p-207cfa6a.js +1 -0
  361. package/dist/vega/p-213310e1.entry.js +1 -0
  362. package/dist/vega/p-27e641a0.entry.js +1 -0
  363. package/dist/vega/p-2872565e.js +1 -0
  364. package/dist/vega/p-294b0b76.js +1 -0
  365. package/dist/vega/p-2c744c20.js +1 -0
  366. package/dist/vega/p-314bf1d5.entry.js +1 -0
  367. package/dist/vega/p-34f624d6.entry.js +1 -0
  368. package/dist/vega/p-39b8dda9.entry.js +1 -0
  369. package/dist/vega/p-3af9421b.entry.js +1 -0
  370. package/dist/vega/p-3d128c07.js +1 -0
  371. package/dist/vega/p-3d85411d.js +1 -0
  372. package/dist/vega/p-3eb0d55c.entry.js +1 -0
  373. package/dist/vega/p-3fbfffa1.entry.js +9 -0
  374. package/dist/vega/p-40f39194.js +1 -0
  375. package/dist/vega/p-41026b90.js +1 -0
  376. package/dist/vega/p-4cc49d2b.entry.js +1 -0
  377. package/dist/vega/p-4ea28b2b.entry.js +1 -0
  378. package/dist/vega/p-4f56da1d.entry.js +1 -0
  379. package/dist/vega/p-563b67a0.entry.js +1 -0
  380. package/dist/vega/p-59e02528.js +1 -0
  381. package/dist/vega/p-5ac6bf4e.entry.js +1 -0
  382. package/dist/vega/p-5c379abd.entry.js +1 -0
  383. package/dist/vega/p-5c71a548.js +1 -0
  384. package/dist/vega/p-5f377954.js +1 -1
  385. package/dist/vega/p-5fdbff48.js +1 -0
  386. package/dist/vega/p-62e45daf.entry.js +1 -0
  387. package/dist/vega/p-65749591.entry.js +1 -0
  388. package/dist/vega/p-6c1ef2ed.js +1 -0
  389. package/dist/vega/p-6ee95368.entry.js +1 -0
  390. package/dist/vega/p-707d542e.js +1 -0
  391. package/dist/vega/p-7089cafe.entry.js +1 -0
  392. package/dist/vega/p-74f3516e.entry.js +1 -0
  393. package/dist/vega/p-77e64f26.js +1 -0
  394. package/dist/vega/p-7a5b3ad3.entry.js +1 -0
  395. package/dist/vega/p-7c22e766.entry.js +1 -0
  396. package/dist/vega/p-8233c5b6.entry.js +1 -0
  397. package/dist/vega/p-82bd84f9.js +1 -0
  398. package/dist/vega/p-86b1e8dd.entry.js +1 -0
  399. package/dist/vega/p-87960572.entry.js +1 -0
  400. package/dist/vega/p-883192ed.js +1 -0
  401. package/dist/vega/p-8c5acc0b.entry.js +1 -0
  402. package/dist/vega/p-94a58223.entry.js +1 -0
  403. package/dist/vega/p-95059e57.entry.js +1 -0
  404. package/dist/vega/p-990b11a7.entry.js +1 -0
  405. package/dist/vega/p-9a83a6b0.js +1 -0
  406. package/dist/vega/p-a23f6ed1.entry.js +1 -0
  407. package/dist/vega/p-a4ec6575.js +1 -0
  408. package/dist/vega/p-a7633138.entry.js +1 -0
  409. package/dist/vega/p-a8dad05d.js +1 -0
  410. package/dist/vega/p-a9268981.entry.js +1 -0
  411. package/dist/vega/p-afb834d8.js +1 -0
  412. package/dist/vega/p-b05ec86a.entry.js +1 -0
  413. package/dist/vega/p-b1ad3107.entry.js +1 -0
  414. package/dist/vega/p-b2eea369.js +1 -0
  415. package/dist/vega/p-b3d29c1e.entry.js +1 -0
  416. package/dist/vega/p-b6c92e7a.entry.js +1 -0
  417. package/dist/vega/p-b842f649.js +1 -0
  418. package/dist/vega/p-b8a7a54b.js +1 -0
  419. package/dist/vega/p-b96b7f33.entry.js +1 -0
  420. package/dist/vega/p-bc1cbd6c.js +1 -0
  421. package/dist/vega/p-bc7df5e7.entry.js +1 -0
  422. package/dist/vega/p-bca97027.entry.js +1 -0
  423. package/dist/vega/p-beed225e.entry.js +1 -0
  424. package/dist/vega/p-c1db0a81.entry.js +1 -0
  425. package/dist/vega/p-c4b010be.entry.js +1 -0
  426. package/dist/vega/p-c4b30117.entry.js +1 -0
  427. package/dist/vega/p-c5cf9a89.entry.js +1 -0
  428. package/dist/vega/p-cb7211c3.js +1 -0
  429. package/dist/vega/p-cb72ebb5.js +1 -0
  430. package/dist/vega/p-cbefc113.entry.js +1 -0
  431. package/dist/vega/p-d1d0f08a.js +1 -0
  432. package/dist/vega/p-d4413277.entry.js +1 -0
  433. package/dist/vega/p-d991fb11.js +1 -0
  434. package/dist/vega/p-de70aac1.js +1 -0
  435. package/dist/vega/p-e1e306c3.entry.js +1 -0
  436. package/dist/vega/p-e49c6368.js +1 -0
  437. package/dist/vega/p-e8d0e71c.js +1 -0
  438. package/dist/vega/p-e9838fb4.entry.js +1 -0
  439. package/dist/vega/p-ea0b6e85.entry.js +1 -0
  440. package/dist/vega/p-ec412511.entry.js +1 -0
  441. package/dist/vega/p-ec4c21d1.entry.js +1 -0
  442. package/dist/vega/p-eebe9176.js +1 -0
  443. package/dist/vega/p-efa4ee14.entry.js +1 -0
  444. package/dist/vega/p-f9facf79.entry.js +1 -0
  445. package/dist/vega/p-fa63b926.entry.js +1 -0
  446. package/dist/vega/p-fc6fca08.entry.js +1 -0
  447. package/dist/vega/p-fcb3ff5b.entry.js +1 -0
  448. package/dist/vega/vega.esm.js +1 -1
  449. package/package.json +1 -2
  450. package/dist/cjs/app-globals-246e5160.js +0 -432
  451. package/dist/cjs/child-nodes-event-prevent-slimmer-f8840f1b.js +0 -158
  452. package/dist/cjs/code-block-36fb0e69.js +0 -4488
  453. package/dist/cjs/column-operation-aa0673f6.js +0 -1325
  454. package/dist/cjs/component-value-history-controller-slimmer.abstract-eec38ad7.js +0 -757
  455. package/dist/cjs/date-0a6bb035.js +0 -95
  456. package/dist/cjs/date-required-rule-4e1f84fd.js +0 -92
  457. package/dist/cjs/design-token-6f95b09f.js +0 -403
  458. package/dist/cjs/dom-node-subject-observer-factory-f040608b.js +0 -301
  459. package/dist/cjs/dto-renderer-manager-fbc93cb5.js +0 -3930
  460. package/dist/cjs/element-appender-slimmer-ec537994.js +0 -1470
  461. package/dist/cjs/event-emit-slimmer-7afe8d78.js +0 -267
  462. package/dist/cjs/form-field-controller-slimmer-f865d397.js +0 -1267
  463. package/dist/cjs/image-annotation-action-ae1310ef.js +0 -312
  464. package/dist/cjs/index-4b896e76.js +0 -43
  465. package/dist/cjs/inject-keyboard-manager-13c66257.js +0 -37
  466. package/dist/cjs/internal-vega-event-manager-45d451de.js +0 -486
  467. package/dist/cjs/keyboard-manager-af0d08a6.js +0 -140
  468. package/dist/cjs/keyboard-manager-slimmer-62f072cd.js +0 -39
  469. package/dist/cjs/language-extension-2df8cfd3.js +0 -210
  470. package/dist/cjs/mobilefriendly-aa2e50e9.js +0 -13
  471. package/dist/cjs/public-rules-6432194e.js +0 -47
  472. package/dist/cjs/range-d24916d7.js +0 -178
  473. package/dist/cjs/responsive-format-facade-0b610205.js +0 -925
  474. package/dist/cjs/rich-text-editor-required-rule-eb34a576.js +0 -64
  475. package/dist/cjs/state-background-color-formatter-aa5570f6.js +0 -85
  476. package/dist/cjs/string-format-strategy.abstract-07a95352.js +0 -60
  477. package/dist/cjs/string-input-formatter-slimmer-8236b5e1.js +0 -230
  478. package/dist/cjs/string-mask-strategy-6bdad95e.js +0 -172
  479. package/dist/cjs/style-formatter-1450a252.js +0 -34
  480. package/dist/cjs/sub-state-notify-slimmer-78682046.js +0 -81
  481. package/dist/cjs/sub-state-observer-slimmer-73aecfff.js +0 -134
  482. package/dist/cjs/table-extension-3b713932.js +0 -4815
  483. package/dist/cjs/time-required-rule-ccf178e7.js +0 -141
  484. package/dist/cjs/type-guard-f12b5bae.js +0 -742
  485. package/dist/cjs/valid-credit-card-number-rule-ce5c9147.js +0 -173
  486. package/dist/cjs/vega-internal-event-id-6d4a2c53.js +0 -110
  487. package/dist/cjs/vega-rich-text-editor_5.cjs.entry.js +0 -5135
  488. package/dist/cjs/vega-rich-text-table-selection-widget.cjs.entry.js +0 -179
  489. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.js +0 -282
  490. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.js +0 -35
  491. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-mobile-controller.js +0 -53
  492. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-month-year-change-event-controller.js +0 -139
  493. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-zindex-controller.js +0 -49
  494. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.js +0 -341
  495. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-children-remove-interceptor.js +0 -42
  496. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-content-delete-interceptor.js +0 -25
  497. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-row-insert-interceptor.js +0 -23
  498. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-block-strategy.js +0 -25
  499. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-column-strategy.js +0 -57
  500. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-row-strategy.js +0 -57
  501. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-block-strategy.js +0 -54
  502. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-column-strategy.js +0 -42
  503. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-row-strategy.js +0 -117
  504. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/select-table-column-strategy.js +0 -22
  505. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/table-column-strategy.abstract.js +0 -19
  506. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-row-strategy.js +0 -133
  507. package/dist/collection/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-table-column-strategy.js +0 -99
  508. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/delete-table-block-action.js +0 -13
  509. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/delete-table-column-action.js +0 -13
  510. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/delete-table-row-action.js +0 -18
  511. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/insert-table-block-action.js +0 -13
  512. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/insert-table-column-action.js +0 -19
  513. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/insert-table-row-action.js +0 -26
  514. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/select-table-column-action.js +0 -13
  515. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-annotations-action.js +0 -18
  516. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-caption-action.js +0 -13
  517. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/table-cell-annotations-action.js +0 -18
  518. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/toggle-header-row-action.js +0 -13
  519. package/dist/collection/components/vega-rich-text-editor/extensions/table/actions/toggle-header-table-column-action.js +0 -15
  520. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.js +0 -91
  521. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.js +0 -57
  522. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.js +0 -120
  523. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-head-cell-annotation.js +0 -40
  524. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +0 -117
  525. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-body-block.js +0 -55
  526. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.js +0 -65
  527. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.js +0 -63
  528. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-block.js +0 -59
  529. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.js +0 -46
  530. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-row-block.js +0 -59
  531. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-body-renderer.js +0 -15
  532. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.js +0 -22
  533. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.js +0 -74
  534. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +0 -99
  535. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-head-cell-renderer.js +0 -12
  536. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-head-renderer.js +0 -15
  537. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +0 -103
  538. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-row-renderer.js +0 -15
  539. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +0 -145
  540. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/caption-operation.js +0 -78
  541. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/column-operation.js +0 -109
  542. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/row-operation.js +0 -132
  543. package/dist/collection/components/vega-rich-text-editor/extensions/table/setting-event-handlers/setting-event-handler.abstract.js +0 -44
  544. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +0 -118
  545. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-icon.js +0 -3
  546. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-selection.js +0 -348
  547. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +0 -229
  548. package/dist/collection/components/vega-rich-text-editor/extensions/table/utils/utils.js +0 -102
  549. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/controllers/selection-widget-keyboard-controller.js +0 -36
  550. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/renderers/selection-widget-renderer.js +0 -83
  551. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/vega-rich-text-table-selection-widget.css +0 -41
  552. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/vega-rich-text-table-selection-widget.js +0 -80
  553. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/assets/icon.js +0 -20
  554. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.js +0 -27
  555. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.js +0 -26
  556. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +0 -86
  557. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +0 -101
  558. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.js +0 -26
  559. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.js +0 -75
  560. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.js +0 -50
  561. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.css +0 -20
  562. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.js +0 -166
  563. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/caption-operation.test.js +0 -99
  564. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-annotation.test.js +0 -89
  565. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-caption-annotations.test.js +0 -79
  566. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-cell-annotation.test.js +0 -128
  567. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-dto.test.js +0 -517
  568. package/dist/collection/components/vega-rich-text-editor/test/extensions/table/table-test-utils.js +0 -172
  569. package/dist/esm/app-globals-e3ba8241.js +0 -430
  570. package/dist/esm/child-nodes-event-prevent-slimmer-66a11e63.js +0 -156
  571. package/dist/esm/code-block-f2f0cff5.js +0 -4430
  572. package/dist/esm/column-operation-9805e482.js +0 -1300
  573. package/dist/esm/component-value-history-controller-slimmer.abstract-400e0bd2.js +0 -751
  574. package/dist/esm/date-c55b97f0.js +0 -87
  575. package/dist/esm/date-required-rule-8944f3bf.js +0 -90
  576. package/dist/esm/design-token-6f4086a9.js +0 -389
  577. package/dist/esm/dom-node-subject-observer-factory-4401eb10.js +0 -246
  578. package/dist/esm/dto-renderer-manager-8b93cc6f.js +0 -3910
  579. package/dist/esm/element-appender-slimmer-cc465622.js +0 -1468
  580. package/dist/esm/event-emit-slimmer-7fade5b2.js +0 -265
  581. package/dist/esm/form-field-controller-slimmer-d88dc81a.js +0 -1265
  582. package/dist/esm/image-annotation-action-f62cfec3.js +0 -306
  583. package/dist/esm/index-e7660797.js +0 -40
  584. package/dist/esm/inject-keyboard-manager-ffd351b9.js +0 -35
  585. package/dist/esm/internal-vega-event-manager-c171f709.js +0 -482
  586. package/dist/esm/keyboard-manager-5d8f3582.js +0 -138
  587. package/dist/esm/keyboard-manager-slimmer-f39214e4.js +0 -37
  588. package/dist/esm/language-extension-87abdcf0.js +0 -207
  589. package/dist/esm/mobilefriendly-c5d0573d.js +0 -11
  590. package/dist/esm/page-resize-observer-slimmer-0bf7fbf3.js +0 -171
  591. package/dist/esm/public-rules-b6ad63e6.js +0 -32
  592. package/dist/esm/range-686c5d0c.js +0 -176
  593. package/dist/esm/responsive-format-facade-603dddd7.js +0 -921
  594. package/dist/esm/rich-text-editor-required-rule-4d14da42.js +0 -62
  595. package/dist/esm/state-background-color-formatter-0f01d27a.js +0 -82
  596. package/dist/esm/string-format-strategy.abstract-452f4398.js +0 -58
  597. package/dist/esm/string-input-formatter-slimmer-47305317.js +0 -228
  598. package/dist/esm/string-mask-strategy-6232a1c1.js +0 -170
  599. package/dist/esm/style-formatter-d76a67cb.js +0 -32
  600. package/dist/esm/sub-state-notify-slimmer-0a927f34.js +0 -79
  601. package/dist/esm/sub-state-observer-slimmer-33e0dd73.js +0 -132
  602. package/dist/esm/table-extension-5da1a8db.js +0 -4795
  603. package/dist/esm/time-required-rule-a01163b5.js +0 -138
  604. package/dist/esm/type-guard-12f7654b.js +0 -692
  605. package/dist/esm/ui-8424715a.js +0 -38
  606. package/dist/esm/valid-credit-card-number-rule-81443274.js +0 -171
  607. package/dist/esm/vega-internal-event-id-49fef150.js +0 -65
  608. package/dist/esm/vega-rich-text-editor_5.entry.js +0 -5127
  609. package/dist/esm/vega-rich-text-table-selection-widget.entry.js +0 -175
  610. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.d.ts +0 -96
  611. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.d.ts +0 -12
  612. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-mobile-controller.d.ts +0 -18
  613. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-month-year-change-event-controller.d.ts +0 -46
  614. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-zindex-controller.d.ts +0 -15
  615. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.d.ts +0 -97
  616. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-children-remove-interceptor.d.ts +0 -25
  617. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-cell-content-delete-interceptor.d.ts +0 -20
  618. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-interceptors/prevent-row-insert-interceptor.d.ts +0 -19
  619. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-block-strategy.d.ts +0 -14
  620. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-column-strategy.d.ts +0 -31
  621. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/delete-table-row-strategy.d.ts +0 -28
  622. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-block-strategy.d.ts +0 -27
  623. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-column-strategy.d.ts +0 -19
  624. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/insert-table-row-strategy.d.ts +0 -27
  625. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/select-table-column-strategy.d.ts +0 -12
  626. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/table-column-strategy.abstract.d.ts +0 -20
  627. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-row-strategy.d.ts +0 -41
  628. package/dist/types/components/vega-rich-text-editor/extensions/table/action-handler-strategies/toggle-header-table-column-strategy.d.ts +0 -45
  629. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/delete-table-block-action.d.ts +0 -12
  630. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/delete-table-column-action.d.ts +0 -15
  631. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/delete-table-row-action.d.ts +0 -17
  632. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/insert-table-block-action.d.ts +0 -20
  633. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/insert-table-column-action.d.ts +0 -23
  634. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/insert-table-row-action.d.ts +0 -23
  635. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/select-table-column-action.d.ts +0 -18
  636. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-annotations-action.d.ts +0 -16
  637. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-caption-action.d.ts +0 -14
  638. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/table-cell-annotations-action.d.ts +0 -16
  639. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/toggle-header-row-action.d.ts +0 -12
  640. package/dist/types/components/vega-rich-text-editor/extensions/table/actions/toggle-header-table-column-action.d.ts +0 -16
  641. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.d.ts +0 -64
  642. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.d.ts +0 -26
  643. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.d.ts +0 -66
  644. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-head-cell-annotation.d.ts +0 -22
  645. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +0 -78
  646. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-body-block.d.ts +0 -42
  647. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.d.ts +0 -41
  648. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.d.ts +0 -45
  649. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-block.d.ts +0 -42
  650. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.d.ts +0 -30
  651. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-row-block.d.ts +0 -44
  652. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-body-renderer.d.ts +0 -12
  653. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.d.ts +0 -13
  654. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.d.ts +0 -37
  655. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +0 -51
  656. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-head-cell-renderer.d.ts +0 -12
  657. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-head-renderer.d.ts +0 -12
  658. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +0 -39
  659. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-row-renderer.d.ts +0 -12
  660. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +0 -65
  661. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/caption-operation.d.ts +0 -36
  662. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/column-operation.d.ts +0 -55
  663. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/row-operation.d.ts +0 -61
  664. package/dist/types/components/vega-rich-text-editor/extensions/table/setting-event-handlers/setting-event-handler.abstract.d.ts +0 -46
  665. package/dist/types/components/vega-rich-text-editor/extensions/table/table-extension.d.ts +0 -31
  666. package/dist/types/components/vega-rich-text-editor/extensions/table/table-icon.d.ts +0 -3
  667. package/dist/types/components/vega-rich-text-editor/extensions/table/table-selection.d.ts +0 -142
  668. package/dist/types/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.d.ts +0 -85
  669. package/dist/types/components/vega-rich-text-editor/extensions/table/utils/utils.d.ts +0 -53
  670. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/controllers/selection-widget-keyboard-controller.d.ts +0 -15
  671. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/renderers/selection-widget-renderer.d.ts +0 -31
  672. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/vega-rich-text-table-selection-widget.d.ts +0 -27
  673. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/assets/icon.d.ts +0 -2
  674. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.d.ts +0 -11
  675. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.d.ts +0 -11
  676. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.d.ts +0 -28
  677. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.d.ts +0 -36
  678. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.d.ts +0 -11
  679. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.d.ts +0 -36
  680. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.d.ts +0 -11
  681. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.d.ts +0 -46
  682. package/dist/types/components/vega-rich-text-editor/test/extensions/table/caption-operation.test.d.ts +0 -1
  683. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-annotation.test.d.ts +0 -1
  684. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-caption-annotations.test.d.ts +0 -1
  685. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-cell-annotation.test.d.ts +0 -1
  686. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-dto.test.d.ts +0 -1
  687. package/dist/types/components/vega-rich-text-editor/test/extensions/table/table-test-utils.d.ts +0 -11
  688. package/dist/vega/p-0492fb42.entry.js +0 -1
  689. package/dist/vega/p-06840396.entry.js +0 -1
  690. package/dist/vega/p-06bc02cb.entry.js +0 -1
  691. package/dist/vega/p-070c3970.js +0 -1
  692. package/dist/vega/p-07c1a2a2.entry.js +0 -1
  693. package/dist/vega/p-08835909.js +0 -1
  694. package/dist/vega/p-10e142f1.js +0 -1
  695. package/dist/vega/p-12faf818.entry.js +0 -1
  696. package/dist/vega/p-1546855d.entry.js +0 -1
  697. package/dist/vega/p-18711501.js +0 -1
  698. package/dist/vega/p-194e32a2.js +0 -1
  699. package/dist/vega/p-19522949.js +0 -1
  700. package/dist/vega/p-197affbe.entry.js +0 -1
  701. package/dist/vega/p-1a282bfa.entry.js +0 -9
  702. package/dist/vega/p-1e5c2206.entry.js +0 -1
  703. package/dist/vega/p-1fb466db.js +0 -1
  704. package/dist/vega/p-24e66056.entry.js +0 -1
  705. package/dist/vega/p-26bde99c.entry.js +0 -1
  706. package/dist/vega/p-2762e4a7.entry.js +0 -1
  707. package/dist/vega/p-2b079386.entry.js +0 -1
  708. package/dist/vega/p-2c88b9c9.js +0 -1
  709. package/dist/vega/p-2de37a60.entry.js +0 -1
  710. package/dist/vega/p-2f866855.entry.js +0 -1
  711. package/dist/vega/p-3185b22d.entry.js +0 -1
  712. package/dist/vega/p-33cb78bd.entry.js +0 -1
  713. package/dist/vega/p-35609e2d.entry.js +0 -1
  714. package/dist/vega/p-36753b56.entry.js +0 -1
  715. package/dist/vega/p-37fd6859.entry.js +0 -1
  716. package/dist/vega/p-388953e4.entry.js +0 -1
  717. package/dist/vega/p-3925c16b.js +0 -1
  718. package/dist/vega/p-3ae691a0.entry.js +0 -1
  719. package/dist/vega/p-3ce90ecd.entry.js +0 -1
  720. package/dist/vega/p-4115d58a.entry.js +0 -1
  721. package/dist/vega/p-4a895707.js +0 -1
  722. package/dist/vega/p-502b7062.entry.js +0 -1
  723. package/dist/vega/p-532ff2d2.entry.js +0 -13
  724. package/dist/vega/p-5e1e91db.entry.js +0 -1
  725. package/dist/vega/p-5f53c228.entry.js +0 -1
  726. package/dist/vega/p-61519b5c.entry.js +0 -1
  727. package/dist/vega/p-62bf35fd.entry.js +0 -1
  728. package/dist/vega/p-64994265.entry.js +0 -1
  729. package/dist/vega/p-651ac54f.entry.js +0 -1
  730. package/dist/vega/p-67f159c3.js +0 -1
  731. package/dist/vega/p-70c898c6.entry.js +0 -1
  732. package/dist/vega/p-71f9c4d4.js +0 -1
  733. package/dist/vega/p-71fc7286.js +0 -1
  734. package/dist/vega/p-74168615.js +0 -1
  735. package/dist/vega/p-78d6dead.js +0 -1
  736. package/dist/vega/p-7d083222.entry.js +0 -1
  737. package/dist/vega/p-7d397c32.js +0 -1
  738. package/dist/vega/p-7d9cd9c8.js +0 -1
  739. package/dist/vega/p-7edd4b79.js +0 -1
  740. package/dist/vega/p-824a06ba.js +0 -1
  741. package/dist/vega/p-84d34816.js +0 -1
  742. package/dist/vega/p-853abdfd.entry.js +0 -1
  743. package/dist/vega/p-867a4970.js +0 -1
  744. package/dist/vega/p-8da8c2cf.entry.js +0 -1
  745. package/dist/vega/p-8daadaf3.entry.js +0 -1
  746. package/dist/vega/p-8eefbd15.entry.js +0 -1
  747. package/dist/vega/p-8fae8f9e.js +0 -1
  748. package/dist/vega/p-9112f67d.js +0 -1
  749. package/dist/vega/p-924b4e24.js +0 -1
  750. package/dist/vega/p-932c3efc.entry.js +0 -1
  751. package/dist/vega/p-9443c292.js +0 -1
  752. package/dist/vega/p-96c941d5.entry.js +0 -1
  753. package/dist/vega/p-9939e407.entry.js +0 -1
  754. package/dist/vega/p-99c52315.entry.js +0 -1
  755. package/dist/vega/p-99c6df1e.entry.js +0 -1
  756. package/dist/vega/p-9ce249a9.js +0 -1
  757. package/dist/vega/p-9f6632cc.entry.js +0 -1
  758. package/dist/vega/p-a10b9f2e.js +0 -12
  759. package/dist/vega/p-a6010b93.entry.js +0 -1
  760. package/dist/vega/p-a996636d.js +0 -1
  761. package/dist/vega/p-ae0edda4.entry.js +0 -1
  762. package/dist/vega/p-afe7bb0b.entry.js +0 -1
  763. package/dist/vega/p-b06ceb0f.entry.js +0 -1
  764. package/dist/vega/p-b1faebe0.js +0 -1
  765. package/dist/vega/p-b390be9d.entry.js +0 -1
  766. package/dist/vega/p-b555b253.js +0 -1
  767. package/dist/vega/p-baaf9264.js +0 -1
  768. package/dist/vega/p-bbc12975.js +0 -1
  769. package/dist/vega/p-bc749d3f.entry.js +0 -1
  770. package/dist/vega/p-c0b986af.js +0 -1
  771. package/dist/vega/p-c11c0d61.js +0 -1
  772. package/dist/vega/p-c4f6e01c.entry.js +0 -1
  773. package/dist/vega/p-c6ee2d47.entry.js +0 -1
  774. package/dist/vega/p-c8b76028.entry.js +0 -1
  775. package/dist/vega/p-cad733c8.js +0 -1
  776. package/dist/vega/p-d54a1453.entry.js +0 -1
  777. package/dist/vega/p-d94f149a.entry.js +0 -1
  778. package/dist/vega/p-de44727f.entry.js +0 -1
  779. package/dist/vega/p-e2a0f7ae.js +0 -1
  780. package/dist/vega/p-e6879699.entry.js +0 -1
  781. package/dist/vega/p-ec7bc15a.js +0 -1
  782. package/dist/vega/p-f14578ee.entry.js +0 -1
  783. package/dist/vega/p-f2de3d76.entry.js +0 -1
  784. package/dist/vega/p-f2f6f24d.entry.js +0 -1
  785. package/dist/vega/p-f41ef9e2.entry.js +0 -1
  786. package/dist/vega/p-f782a531.js +0 -1
  787. package/dist/vega/p-fc6617cb.entry.js +0 -1
  788. package/dist/vega/p-fc79b3c3.entry.js +0 -1
  789. package/dist/vega/p-ff67a25f.js +0 -1
  790. package/style/vega_min.css +0 -1
  791. package/style/visual-screenshots (1)/builds/master.json +0 -13385
  792. package/style/visual-screenshots (1)/compare.html +0 -26
  793. package/style/visual-screenshots (1)/connector.js +0 -10
  794. package/style/visual-screenshots (1)/images/00c9dbc329ca6b1ad78ea743b91ee0bc.png +0 -0
  795. package/style/visual-screenshots (1)/images/00deb6ff94de798b3fcc6414aedc040c.png +0 -0
  796. package/style/visual-screenshots (1)/images/014c955d050d2ebb917fd03590730572.png +0 -0
  797. package/style/visual-screenshots (1)/images/0182583c546dba469600a0251240cf21.png +0 -0
  798. package/style/visual-screenshots (1)/images/01a0575c0db1270ea83316b5c6c20601.png +0 -0
  799. package/style/visual-screenshots (1)/images/027defd97df9a5b4a7653be56ccdb0ac.png +0 -0
  800. package/style/visual-screenshots (1)/images/02ba6083bbf1c0e01a725f1f9f92aff9.png +0 -0
  801. package/style/visual-screenshots (1)/images/036795373db4daaf365beee11d8c25a7.png +0 -0
  802. package/style/visual-screenshots (1)/images/04a8eee512eeb23c1c2b87cda93a6776.png +0 -0
  803. package/style/visual-screenshots (1)/images/04bb561662f78f189085275de6678f41.png +0 -0
  804. package/style/visual-screenshots (1)/images/04eef932b78ca112212112ce585f27ab.png +0 -0
  805. package/style/visual-screenshots (1)/images/050cba57fa9a35e3803c85fbb59b4024.png +0 -0
  806. package/style/visual-screenshots (1)/images/051edd1219d1ddca517459b788cc9d2b.png +0 -0
  807. package/style/visual-screenshots (1)/images/0528ddc76f74747fa440e96db6907a43.png +0 -0
  808. package/style/visual-screenshots (1)/images/05395d74d64a1da223fb94b2874f2d66.png +0 -0
  809. package/style/visual-screenshots (1)/images/0545ef2f0796fa5f1d878254825adaf4.png +0 -0
  810. package/style/visual-screenshots (1)/images/0582c1933e54f696b632a1e1659073b2.png +0 -0
  811. package/style/visual-screenshots (1)/images/059772f121132ead0d6fa0a48168338b.png +0 -0
  812. package/style/visual-screenshots (1)/images/05feee4ecb06f066f3dafb653f33b6fb.png +0 -0
  813. package/style/visual-screenshots (1)/images/0640963c7a9fddb30a953c2624ba42eb.png +0 -0
  814. package/style/visual-screenshots (1)/images/065795600809ccab42d0f13ba71eb633.png +0 -0
  815. package/style/visual-screenshots (1)/images/0666dfce480647c3cb8857d2bb059847.png +0 -0
  816. package/style/visual-screenshots (1)/images/0700cef6f6f83545e2e7d3ecedc042d4.png +0 -0
  817. package/style/visual-screenshots (1)/images/0723f0263fa389ae876735ff57f46681.png +0 -0
  818. package/style/visual-screenshots (1)/images/073c1445dacdaac8c0aa6480212492f9.png +0 -0
  819. package/style/visual-screenshots (1)/images/073d4f053baf4c24d6af8de20eeae2aa.png +0 -0
  820. package/style/visual-screenshots (1)/images/076e14b0ccac0c02052e66256be50d47.png +0 -0
  821. package/style/visual-screenshots (1)/images/0775b2b66ba608e1677bb4bd032f707e.png +0 -0
  822. package/style/visual-screenshots (1)/images/078f2e93590c93c74f514e02ac05e4a3.png +0 -0
  823. package/style/visual-screenshots (1)/images/080f0f2d3f06372a9302e80f14aeb74e.png +0 -0
  824. package/style/visual-screenshots (1)/images/08872613981eb5e038fd62286300c583.png +0 -0
  825. package/style/visual-screenshots (1)/images/08cfa8c87053192e64e3b0b448d0dfaa.png +0 -0
  826. package/style/visual-screenshots (1)/images/08fc2250530bdc6b684a493406e75dcb.png +0 -0
  827. package/style/visual-screenshots (1)/images/0918181ef6fad9b51bbf411785719c7f.png +0 -0
  828. package/style/visual-screenshots (1)/images/091c16a1900c15eaf442677f7b7712a4.png +0 -0
  829. package/style/visual-screenshots (1)/images/09271a89642f3deb1534537363d82adf.png +0 -0
  830. package/style/visual-screenshots (1)/images/0968ada1c88a12c121d7e4cd9d1a4c31.png +0 -0
  831. package/style/visual-screenshots (1)/images/098cf2d4feb36daa5935d431b4cc2af9.png +0 -0
  832. package/style/visual-screenshots (1)/images/098ee2f12b7cd94ed7e3d9678dca8d9d.png +0 -0
  833. package/style/visual-screenshots (1)/images/09afb7f891103d16ca4e69cced183010.png +0 -0
  834. package/style/visual-screenshots (1)/images/0a8740f45dfa3ef686362af82744d0f8.png +0 -0
  835. package/style/visual-screenshots (1)/images/0aecce7dd5c65d8a1cd2bc3007aa039c.png +0 -0
  836. package/style/visual-screenshots (1)/images/0afce1548cbbf477be056364879ed645.png +0 -0
  837. package/style/visual-screenshots (1)/images/0b0e6917a067495e267dea6d4f1d2c89.png +0 -0
  838. package/style/visual-screenshots (1)/images/0b422eacde0c1264cc993d15ce94f3f2.png +0 -0
  839. package/style/visual-screenshots (1)/images/0b462aed27368fadffaf4042b4bf124f.png +0 -0
  840. package/style/visual-screenshots (1)/images/0bd41559a47131117d6b5d48f9384e2b.png +0 -0
  841. package/style/visual-screenshots (1)/images/0cdf8442f9e597e7782a97d05b9f0167.png +0 -0
  842. package/style/visual-screenshots (1)/images/0ce13d831ed54f898c0ddc60c7a3bfe9.png +0 -0
  843. package/style/visual-screenshots (1)/images/0d7e570e1a0f76d5114975280c8e36dc.png +0 -0
  844. package/style/visual-screenshots (1)/images/0dd901512ef46e6320b55ebb543c7a38.png +0 -0
  845. package/style/visual-screenshots (1)/images/0de77d7c6aedecc1948bf82730e77f9b.png +0 -0
  846. package/style/visual-screenshots (1)/images/0e588e87d0e0617c6fefe1e8203ceaf5.png +0 -0
  847. package/style/visual-screenshots (1)/images/0eb8a80ddc22191daad2b765098af978.png +0 -0
  848. package/style/visual-screenshots (1)/images/0ee82b520727d5a484ae47df46170f6b.png +0 -0
  849. package/style/visual-screenshots (1)/images/0ef7219055c2204179e5a87ce6393ecd.png +0 -0
  850. package/style/visual-screenshots (1)/images/0f20d9909852d49d83662e354d774330.png +0 -0
  851. package/style/visual-screenshots (1)/images/0fe5e32a6e5d62baa9eb9e9ef32b8ac0.png +0 -0
  852. package/style/visual-screenshots (1)/images/101fe127c73e1204c7b0a9532ddf5f33.png +0 -0
  853. package/style/visual-screenshots (1)/images/10dc76469583d7bb071c415b4c2500f5.png +0 -0
  854. package/style/visual-screenshots (1)/images/111ceb449af342ffefc9bf18313e9f2d.png +0 -0
  855. package/style/visual-screenshots (1)/images/116f44589ef708d63b88f72c07020d65.png +0 -0
  856. package/style/visual-screenshots (1)/images/11809d0dd4f56bd7e75c1ee424ea6049.png +0 -0
  857. package/style/visual-screenshots (1)/images/11e8c569dc91a4263915d38d41797b7c.png +0 -0
  858. package/style/visual-screenshots (1)/images/11f644637e7bf9e488c92e597243b372.png +0 -0
  859. package/style/visual-screenshots (1)/images/11f85d78db6278a0b9309de5e1971968.png +0 -0
  860. package/style/visual-screenshots (1)/images/126484246367b441a4874bf1c80eb701.png +0 -0
  861. package/style/visual-screenshots (1)/images/12b7614a6bca5fba19b2c207c9399eec.png +0 -0
  862. package/style/visual-screenshots (1)/images/12f9db657f5f215db4fd81d60e61ac05.png +0 -0
  863. package/style/visual-screenshots (1)/images/12fd30dca14bdb10e138bf9957cb67d6.png +0 -0
  864. package/style/visual-screenshots (1)/images/12ff293bb7a3fb35ba9e71b36d1ede58.png +0 -0
  865. package/style/visual-screenshots (1)/images/132fad75fe05d0c78d642c7d18b36364.png +0 -0
  866. package/style/visual-screenshots (1)/images/133df50a253039a25dc23c11be89ceb7.png +0 -0
  867. package/style/visual-screenshots (1)/images/13b9e970f1e6fc8dde0c10722f66bb73.png +0 -0
  868. package/style/visual-screenshots (1)/images/13d533f8842a49a2a160723a46eb8a32.png +0 -0
  869. package/style/visual-screenshots (1)/images/14391d1ca80560f5e01b72b0a32a2e43.png +0 -0
  870. package/style/visual-screenshots (1)/images/14b81ce49feb5c4033d2b6bf9ce8b584.png +0 -0
  871. package/style/visual-screenshots (1)/images/16548b7507dad1afa018cf73f656e123.png +0 -0
  872. package/style/visual-screenshots (1)/images/16bbd810a35c9542672c143620dd124b.png +0 -0
  873. package/style/visual-screenshots (1)/images/17f1ac08aef0b15a2a93576bd0c69a8b.png +0 -0
  874. package/style/visual-screenshots (1)/images/1823fb8764090e5f139555434673b999.png +0 -0
  875. package/style/visual-screenshots (1)/images/184a290d2680a6b9ed5fd3e875866f6c.png +0 -0
  876. package/style/visual-screenshots (1)/images/1853b22c2e9f57c3c0465f1ad677fd02.png +0 -0
  877. package/style/visual-screenshots (1)/images/1917b4c75462018e96fd444a55f92fdb.png +0 -0
  878. package/style/visual-screenshots (1)/images/19cb20f82a883631ec08e6fce09c9346.png +0 -0
  879. package/style/visual-screenshots (1)/images/19d6ef3f0f09ad264bd4565a890f4de3.png +0 -0
  880. package/style/visual-screenshots (1)/images/19f0f11a1678b49278906815b94aa63b.png +0 -0
  881. package/style/visual-screenshots (1)/images/1a334e822ac119215ecd18f1289048cf.png +0 -0
  882. package/style/visual-screenshots (1)/images/1a396fba8af913178a057a63bc2812ef.png +0 -0
  883. package/style/visual-screenshots (1)/images/1a4712761391165e44e0399e574800c7.png +0 -0
  884. package/style/visual-screenshots (1)/images/1a6407989995cf5d9451432c30bd8af5.png +0 -0
  885. package/style/visual-screenshots (1)/images/1a66f2485b63b12007df9713afc7abbd.png +0 -0
  886. package/style/visual-screenshots (1)/images/1a9961bc790f0e542d0e1df7ec61162c.png +0 -0
  887. package/style/visual-screenshots (1)/images/1aad56b95fdc16ee9739410e31f4b04b.png +0 -0
  888. package/style/visual-screenshots (1)/images/1ab773baf811c86dcc3fd48c486b948e.png +0 -0
  889. package/style/visual-screenshots (1)/images/1acd824e815dd8290f73aa3eac0e9aa7.png +0 -0
  890. package/style/visual-screenshots (1)/images/1b7e059b6e4adb5f3a15dc7737195bef.png +0 -0
  891. package/style/visual-screenshots (1)/images/1b83910bbcff965492bf79d17f7f3952.png +0 -0
  892. package/style/visual-screenshots (1)/images/1b8acd3ed0bb87d0b41963d3c4566324.png +0 -0
  893. package/style/visual-screenshots (1)/images/1bcb2ad6de61cbc5cb2bfbc40dcf3c75.png +0 -0
  894. package/style/visual-screenshots (1)/images/1c01fa461439431ed056e345914504aa.png +0 -0
  895. package/style/visual-screenshots (1)/images/1c1622f4ff1c0169e2efe5af5fab7238.png +0 -0
  896. package/style/visual-screenshots (1)/images/1c2ae0a43c9aea9e17e639f2486ad76c.png +0 -0
  897. package/style/visual-screenshots (1)/images/1c2c279749b3bab613be5efd8411a9fb.png +0 -0
  898. package/style/visual-screenshots (1)/images/1cdb0dbdb6a4398f94988e3d40162f2c.png +0 -0
  899. package/style/visual-screenshots (1)/images/1cfacd6c8ac80ee3c4a7f8584bd1441c.png +0 -0
  900. package/style/visual-screenshots (1)/images/1d1444203dac3cbe71c951d381126d03.png +0 -0
  901. package/style/visual-screenshots (1)/images/1d73f593bed08ad694e2b573a39ae06f.png +0 -0
  902. package/style/visual-screenshots (1)/images/1dac4a7712234a30253ab6f9160d50a6.png +0 -0
  903. package/style/visual-screenshots (1)/images/1ebaf53fb8db94bb9a8154e86a3e5ed2.png +0 -0
  904. package/style/visual-screenshots (1)/images/1ec0c1febc3f0dd1786eea003e0dee38.png +0 -0
  905. package/style/visual-screenshots (1)/images/1ec3bebcdac3683aad4e93ea70ee4a1e.png +0 -0
  906. package/style/visual-screenshots (1)/images/1f7f87a3bfb22d7b6d5489170a691439.png +0 -0
  907. package/style/visual-screenshots (1)/images/217dca423214acf6733443967bd4bb91.png +0 -0
  908. package/style/visual-screenshots (1)/images/21a4579340bd071933dc4222aca885e8.png +0 -0
  909. package/style/visual-screenshots (1)/images/21e702dbfac3ae3c84ad5cf4a3a5fd33.png +0 -0
  910. package/style/visual-screenshots (1)/images/2205a5e15323173cf82e53036b89f3d2.png +0 -0
  911. package/style/visual-screenshots (1)/images/2239056187956d81a9a7a3ff086123ec.png +0 -0
  912. package/style/visual-screenshots (1)/images/22a392ca2f7b01e9145de8a1d16d8ac1.png +0 -0
  913. package/style/visual-screenshots (1)/images/2395e15caf0facec892a787fbf1baa61.png +0 -0
  914. package/style/visual-screenshots (1)/images/2430226e2b211252d8793d0b24bd105b.png +0 -0
  915. package/style/visual-screenshots (1)/images/249af52548a661890ebb3990c81e7bec.png +0 -0
  916. package/style/visual-screenshots (1)/images/24adff266f0ccc120bbab22610a7afef.png +0 -0
  917. package/style/visual-screenshots (1)/images/250d4d8b44fd5e3f83114560684c7a33.png +0 -0
  918. package/style/visual-screenshots (1)/images/2517969a2f9a119f248ef574ce68957a.png +0 -0
  919. package/style/visual-screenshots (1)/images/251e0de35a82707d6372ae27e6a28f19.png +0 -0
  920. package/style/visual-screenshots (1)/images/25596d87f964d9e9e48bcdcb815d97b0.png +0 -0
  921. package/style/visual-screenshots (1)/images/257aafcb25e5c45c1fdb794c500845af.png +0 -0
  922. package/style/visual-screenshots (1)/images/25eeda071a6e8ec33338f621edfccce7.png +0 -0
  923. package/style/visual-screenshots (1)/images/260117a8a096031e2d4a00137e1fb6e7.png +0 -0
  924. package/style/visual-screenshots (1)/images/2609faace1c9661a650574dcc408030d.png +0 -0
  925. package/style/visual-screenshots (1)/images/2613cd2759c32063cc30bd0bd33358dc.png +0 -0
  926. package/style/visual-screenshots (1)/images/2694ff3a617c6cf218bdd37a19c83b8a.png +0 -0
  927. package/style/visual-screenshots (1)/images/26e2f8a3530bb0e0ea2384f2bdc9a81a.png +0 -0
  928. package/style/visual-screenshots (1)/images/2729771eeefd444ff898c491f1273357.png +0 -0
  929. package/style/visual-screenshots (1)/images/27f11a528d6b5f15d45f2c420edc00fb.png +0 -0
  930. package/style/visual-screenshots (1)/images/2818dab1bc771c7ed5eb71d561228863.png +0 -0
  931. package/style/visual-screenshots (1)/images/28cf1d93f7722430ee1437df8a14127f.png +0 -0
  932. package/style/visual-screenshots (1)/images/2939e1e89e29a3b71f5be665edf472c2.png +0 -0
  933. package/style/visual-screenshots (1)/images/2a3e1613614fa6bf58ebcb820d6fc84f.png +0 -0
  934. package/style/visual-screenshots (1)/images/2a8fce144b32ae297bcc8650d13cdb1c.png +0 -0
  935. package/style/visual-screenshots (1)/images/2aa7766d32787734fc8a534acc98bf77.png +0 -0
  936. package/style/visual-screenshots (1)/images/2ae27049402468e5e2baf2b664365f8a.png +0 -0
  937. package/style/visual-screenshots (1)/images/2b1b3ff73541c559ff4f0f22f70db3d1.png +0 -0
  938. package/style/visual-screenshots (1)/images/2b3af1d887b41d5123e82575fbfa3958.png +0 -0
  939. package/style/visual-screenshots (1)/images/2b8c160de3305bb7deef1bd108bd0850.png +0 -0
  940. package/style/visual-screenshots (1)/images/2b8df5a2aa5bea6bb21551b1ea4a5fe3.png +0 -0
  941. package/style/visual-screenshots (1)/images/2bb42f7f640cb97e6ddd996cc4bdf0da.png +0 -0
  942. package/style/visual-screenshots (1)/images/2c0ab17426c134629732d0a71b6a0745.png +0 -0
  943. package/style/visual-screenshots (1)/images/2c20e396014f9b12f047545579b878ca.png +0 -0
  944. package/style/visual-screenshots (1)/images/2c2c8816739b979c0a3dbdcbea9c8f98.png +0 -0
  945. package/style/visual-screenshots (1)/images/2c532e1252a0775b10aed847a4f06e4a.png +0 -0
  946. package/style/visual-screenshots (1)/images/2cdd6aee7de3219ce296baef83119f45.png +0 -0
  947. package/style/visual-screenshots (1)/images/2cebfc565448f890d0a3fa2de61cfd61.png +0 -0
  948. package/style/visual-screenshots (1)/images/2d76b6c335af030ecc073359d3565529.png +0 -0
  949. package/style/visual-screenshots (1)/images/2d7f41ff4f3900f029adbcdbdfdef905.png +0 -0
  950. package/style/visual-screenshots (1)/images/2d8b857c7a81cd7e90b75c9fcb974e09.png +0 -0
  951. package/style/visual-screenshots (1)/images/2e1f9e506e8e09a191c0d86899e8975a.png +0 -0
  952. package/style/visual-screenshots (1)/images/2e8755615c5b55dfeb5ced872b9b89f6.png +0 -0
  953. package/style/visual-screenshots (1)/images/2efe3ccdf954982fb10f12ceb79cc902.png +0 -0
  954. package/style/visual-screenshots (1)/images/2f2a4fe573c824c9c651ae5fb24e26f6.png +0 -0
  955. package/style/visual-screenshots (1)/images/2f426e5f71eae6eaf7bb54b4aafa88d6.png +0 -0
  956. package/style/visual-screenshots (1)/images/2f4e9578c9f11b5c8e2d034824689dce.png +0 -0
  957. package/style/visual-screenshots (1)/images/2f5ec86f7334a79914c09ee94eae2f8d.png +0 -0
  958. package/style/visual-screenshots (1)/images/2f76ed17b978cfa3e663760d5c651b0f.png +0 -0
  959. package/style/visual-screenshots (1)/images/2f8832e36833e875c53bdf68ac53de11.png +0 -0
  960. package/style/visual-screenshots (1)/images/2fe54d475ff814eaf2b323bfa6990a25.png +0 -0
  961. package/style/visual-screenshots (1)/images/30423ab0c5ce8c26a9b4e30fb4ad50b5.png +0 -0
  962. package/style/visual-screenshots (1)/images/3079876e71da7c207489af4b38314ca3.png +0 -0
  963. package/style/visual-screenshots (1)/images/30ac31802c8421ee59c2b0e64fdd40d1.png +0 -0
  964. package/style/visual-screenshots (1)/images/30efef6537f882daf60ba808d25ab35c.png +0 -0
  965. package/style/visual-screenshots (1)/images/3111d7bc39ef23e1d19a8022f2f78d4f.png +0 -0
  966. package/style/visual-screenshots (1)/images/3155c15ead85acf928e71fc4958b1e65.png +0 -0
  967. package/style/visual-screenshots (1)/images/317b0753146b2d6c57ef618e2d6c9aff.png +0 -0
  968. package/style/visual-screenshots (1)/images/31bb19c3949134774cce7f0af132f001.png +0 -0
  969. package/style/visual-screenshots (1)/images/32009df7a0440dc1227d6c59fcdc22a8.png +0 -0
  970. package/style/visual-screenshots (1)/images/3205ce4d4ec27524cb360e23cb250a2e.png +0 -0
  971. package/style/visual-screenshots (1)/images/3221fe82f718cdb8d3a013e35e75d966.png +0 -0
  972. package/style/visual-screenshots (1)/images/322755f4d634ab3e62663c98413cf4bb.png +0 -0
  973. package/style/visual-screenshots (1)/images/3263cb4ecdc16ecec1cf03d96c1d83d1.png +0 -0
  974. package/style/visual-screenshots (1)/images/329d69f11e6409b7e7855c3e576057f6.png +0 -0
  975. package/style/visual-screenshots (1)/images/32b3faa4eb5356a1ac8b30c722b7f282.png +0 -0
  976. package/style/visual-screenshots (1)/images/332160dde332162d8e3b9e12dd376546.png +0 -0
  977. package/style/visual-screenshots (1)/images/33519a891e6922542f2b3fc18ab26670.png +0 -0
  978. package/style/visual-screenshots (1)/images/33a7eaf167f347d52bc910511d2fc029.png +0 -0
  979. package/style/visual-screenshots (1)/images/33b0ac3141f5f2ea19f81d742269bcab.png +0 -0
  980. package/style/visual-screenshots (1)/images/343327cf17cc3b6a5e451c4d86577491.png +0 -0
  981. package/style/visual-screenshots (1)/images/3474b54aac010b234998e46521894bde.png +0 -0
  982. package/style/visual-screenshots (1)/images/34a84ed26a53ffb27dbcdabeaf10c665.png +0 -0
  983. package/style/visual-screenshots (1)/images/34efd6c9f4e5031eeb8c1f1a51bd3eaa.png +0 -0
  984. package/style/visual-screenshots (1)/images/3531a86fca237cc6d8764eb9eeb8e394.png +0 -0
  985. package/style/visual-screenshots (1)/images/3598a332200dbe7f32ab86015e6cd61e.png +0 -0
  986. package/style/visual-screenshots (1)/images/35a2ea7b24e787bdea1313703512d37f.png +0 -0
  987. package/style/visual-screenshots (1)/images/35ea4500d8a65ff3e52c0404ded68018.png +0 -0
  988. package/style/visual-screenshots (1)/images/363f015a5323e01c8f7c421607ba7a85.png +0 -0
  989. package/style/visual-screenshots (1)/images/365a47a407c464a973116590d1280542.png +0 -0
  990. package/style/visual-screenshots (1)/images/3666d49f301336a1d92abe8c48811dd0.png +0 -0
  991. package/style/visual-screenshots (1)/images/36a3aa27abb0e8fb45cbe4e842bb793b.png +0 -0
  992. package/style/visual-screenshots (1)/images/36be2d1cc4bbea216ebfa024f2b5d9d3.png +0 -0
  993. package/style/visual-screenshots (1)/images/36d5ce3a43f8a8bbaddb83a756174e09.png +0 -0
  994. package/style/visual-screenshots (1)/images/3715717d75b5ec943086b9392d05747a.png +0 -0
  995. package/style/visual-screenshots (1)/images/3718308a2535e0badb74e0ed39da3e98.png +0 -0
  996. package/style/visual-screenshots (1)/images/376d9c365f202b555efc6152eb4dbb7a.png +0 -0
  997. package/style/visual-screenshots (1)/images/37ff2d44fb6261e53203d05e1d130b48.png +0 -0
  998. package/style/visual-screenshots (1)/images/3829933c4a23d7033a63119484708ab4.png +0 -0
  999. package/style/visual-screenshots (1)/images/38c924efe546ddde14e0cb343a2ed551.png +0 -0
  1000. package/style/visual-screenshots (1)/images/390f5b1f49dc988e023255d1878b769a.png +0 -0
  1001. package/style/visual-screenshots (1)/images/394ab2b92eacbc9f634b3d0618b877d0.png +0 -0
  1002. package/style/visual-screenshots (1)/images/3961f21e98b5d1f616215c9588f0c8ea.png +0 -0
  1003. package/style/visual-screenshots (1)/images/396af4eab814a3a2dc1429581b3452b3.png +0 -0
  1004. package/style/visual-screenshots (1)/images/3a3ec2d1cafe6685d14ef24be74aace4.png +0 -0
  1005. package/style/visual-screenshots (1)/images/3ae1c7c33ebd96fe70ad90acc7b1d693.png +0 -0
  1006. package/style/visual-screenshots (1)/images/3b19874ff7c8b2b92d6e200634b760c5.png +0 -0
  1007. package/style/visual-screenshots (1)/images/3b4f2951c9cbd00ad924a358e0f24304.png +0 -0
  1008. package/style/visual-screenshots (1)/images/3bc5adf4dec1f65342d09fa825073ee7.png +0 -0
  1009. package/style/visual-screenshots (1)/images/3be29fbf67e05c10ef9effda5b0d1b9c.png +0 -0
  1010. package/style/visual-screenshots (1)/images/3bfdd784ff28564271d8067439c72fb2.png +0 -0
  1011. package/style/visual-screenshots (1)/images/3c101349056155ee16f6d40d67566bb2.png +0 -0
  1012. package/style/visual-screenshots (1)/images/3c24263abc9fe6f48efe83953f33d38f.png +0 -0
  1013. package/style/visual-screenshots (1)/images/3c4b7cb9bc584cc8d417763e4e332cad.png +0 -0
  1014. package/style/visual-screenshots (1)/images/3cb9028699d3dc4a5ff9ed62acf26f38.png +0 -0
  1015. package/style/visual-screenshots (1)/images/3d5e1f1170e3c54f19f3966925138df0.png +0 -0
  1016. package/style/visual-screenshots (1)/images/3d7ee9ac11ff5492525a094beaa220b1.png +0 -0
  1017. package/style/visual-screenshots (1)/images/3d82c97ab6d96c4026d0f3ca072b02ae.png +0 -0
  1018. package/style/visual-screenshots (1)/images/3ec93ead42526589356ac0b756d043ec.png +0 -0
  1019. package/style/visual-screenshots (1)/images/3f1b42c8f0cb41c374b0893eb31f2fda.png +0 -0
  1020. package/style/visual-screenshots (1)/images/3ff96bd3c1034fe2a3af47eb4f729eeb.png +0 -0
  1021. package/style/visual-screenshots (1)/images/400b3fe6558f8ae340d796c834456f82.png +0 -0
  1022. package/style/visual-screenshots (1)/images/404d5c7fe65c1df1162feb7af57adadd.png +0 -0
  1023. package/style/visual-screenshots (1)/images/4060b53b47c6e063d1770980ecb101b2.png +0 -0
  1024. package/style/visual-screenshots (1)/images/40dd05574156c243449caad139d9b9a2.png +0 -0
  1025. package/style/visual-screenshots (1)/images/40f479e6d12eaa5687a4ac9784aa717e.png +0 -0
  1026. package/style/visual-screenshots (1)/images/40f48b85da52ec3ef05fa4696c72f7ff.png +0 -0
  1027. package/style/visual-screenshots (1)/images/4169f0823fcd903e16d7c3f9344cc491.png +0 -0
  1028. package/style/visual-screenshots (1)/images/419a4e8e4b8708b8e6ff45f643a7cf5d.png +0 -0
  1029. package/style/visual-screenshots (1)/images/41c7990e66fbed660d2b55e76fd2ea25.png +0 -0
  1030. package/style/visual-screenshots (1)/images/423ae4e26846f800ea31ed24d79e7472.png +0 -0
  1031. package/style/visual-screenshots (1)/images/427c562ebb511d853cd3437eb8c73c0f.png +0 -0
  1032. package/style/visual-screenshots (1)/images/428ec68c1c5771403f8939976018c14e.png +0 -0
  1033. package/style/visual-screenshots (1)/images/4291cb1eaed75fba4800f0033b689208.png +0 -0
  1034. package/style/visual-screenshots (1)/images/42ed1e77d86bf5e0d7a8f90acf2ab6b2.png +0 -0
  1035. package/style/visual-screenshots (1)/images/4313e10ac1318b7526eed35c0d704f05.png +0 -0
  1036. package/style/visual-screenshots (1)/images/438f453be7d1213a8e2872e4608a410c.png +0 -0
  1037. package/style/visual-screenshots (1)/images/439f69b339c6f6ca820a4b62382ca877.png +0 -0
  1038. package/style/visual-screenshots (1)/images/43f6607e4b8ff0d5f6c4c5d323c96677.png +0 -0
  1039. package/style/visual-screenshots (1)/images/44caefac207b436ffeffdef86eaae21a.png +0 -0
  1040. package/style/visual-screenshots (1)/images/44eaf11aa4495c9d8d76941a1254dcb0.png +0 -0
  1041. package/style/visual-screenshots (1)/images/453742c5e578099953f9bff69e3982ef.png +0 -0
  1042. package/style/visual-screenshots (1)/images/459214ef33a21425f776796767256e3c.png +0 -0
  1043. package/style/visual-screenshots (1)/images/45a13beb6b9356d7b1b4690370914252.png +0 -0
  1044. package/style/visual-screenshots (1)/images/45a569fd48a72db5047a02e192c35363.png +0 -0
  1045. package/style/visual-screenshots (1)/images/45c1ac110c0dc20d35d2c2be1e469e49.png +0 -0
  1046. package/style/visual-screenshots (1)/images/466d83d9df37025413fcc77e2528d150.png +0 -0
  1047. package/style/visual-screenshots (1)/images/46ffc37786e06461d5ffc3c101841ea6.png +0 -0
  1048. package/style/visual-screenshots (1)/images/4708081357611e1ad1adb36ea5f91ebe.png +0 -0
  1049. package/style/visual-screenshots (1)/images/4799a82b4f5b3242bcf158dc12aeb8da.png +0 -0
  1050. package/style/visual-screenshots (1)/images/47a4ae1ed1de0348708e630718bf58e0.png +0 -0
  1051. package/style/visual-screenshots (1)/images/47cd6b92f4697a387f4392729f019da0.png +0 -0
  1052. package/style/visual-screenshots (1)/images/47d36e03c0973961a65d47f31bbce64d.png +0 -0
  1053. package/style/visual-screenshots (1)/images/48812bb1c24cf4529f36152c045aefe4.png +0 -0
  1054. package/style/visual-screenshots (1)/images/48b348f52bcf73e7b84273b59414d9c0.png +0 -0
  1055. package/style/visual-screenshots (1)/images/48ccc273160dcf8a8eee6caa44dacdd1.png +0 -0
  1056. package/style/visual-screenshots (1)/images/4946b39b68b5cf6879cab368a43dde2d.png +0 -0
  1057. package/style/visual-screenshots (1)/images/494f07c31c273d35487cbacefb179211.png +0 -0
  1058. package/style/visual-screenshots (1)/images/495c33cb81b92e71a59064b036deacb3.png +0 -0
  1059. package/style/visual-screenshots (1)/images/4988de5d9c64f2451adb83cc9781f31d.png +0 -0
  1060. package/style/visual-screenshots (1)/images/4a5c84ab5b32f8b3652f31aca7f82547.png +0 -0
  1061. package/style/visual-screenshots (1)/images/4abedbcd1f3c2b3cb5af44393cc4edd3.png +0 -0
  1062. package/style/visual-screenshots (1)/images/4ac246764de2e6eaea78d1eee8fa0680.png +0 -0
  1063. package/style/visual-screenshots (1)/images/4b49f29e64109f5d844bae574d9368e9.png +0 -0
  1064. package/style/visual-screenshots (1)/images/4ba5027ab476151e2ba4f16cade9a316.png +0 -0
  1065. package/style/visual-screenshots (1)/images/4be038b7049b5639096cdf45dc0166d5.png +0 -0
  1066. package/style/visual-screenshots (1)/images/4be0509c9e49770d5d3ab93a9d824c0c.png +0 -0
  1067. package/style/visual-screenshots (1)/images/4c007d54467c97735191d53b1b89700a.png +0 -0
  1068. package/style/visual-screenshots (1)/images/4c04913dd6ac89f9c03580ffcfc9dce2.png +0 -0
  1069. package/style/visual-screenshots (1)/images/4c39dc9b5530f8cfa389453f323f2562.png +0 -0
  1070. package/style/visual-screenshots (1)/images/4cf7eb7fbbfcbad4194ef321b793a243.png +0 -0
  1071. package/style/visual-screenshots (1)/images/4d34a53adeaf6b96b5f910e0e57f91f7.png +0 -0
  1072. package/style/visual-screenshots (1)/images/4d3538775024b65cc11c656ee312bfb7.png +0 -0
  1073. package/style/visual-screenshots (1)/images/4d614a3bd7821f52b699427abf3440e2.png +0 -0
  1074. package/style/visual-screenshots (1)/images/4d85b89464845f56b18d7e329f1394a4.png +0 -0
  1075. package/style/visual-screenshots (1)/images/4d9140a7a2defdf17daec4df653cccb8.png +0 -0
  1076. package/style/visual-screenshots (1)/images/4e52657b6cd66fa0e8da6225c3923833.png +0 -0
  1077. package/style/visual-screenshots (1)/images/4eb94875d887dfece7a7e2cc00425848.png +0 -0
  1078. package/style/visual-screenshots (1)/images/4f3481e7bcab3c6a115931bdc7bde793.png +0 -0
  1079. package/style/visual-screenshots (1)/images/4f736b3787086298b179837d13ea2e27.png +0 -0
  1080. package/style/visual-screenshots (1)/images/4f7e9c28d6d15df090c3857fe8172a90.png +0 -0
  1081. package/style/visual-screenshots (1)/images/4f831bf4925c85ef517fd84fed27cefc.png +0 -0
  1082. package/style/visual-screenshots (1)/images/4f8cc269620de9911fba4dff6724c7a5.png +0 -0
  1083. package/style/visual-screenshots (1)/images/4f9cf3ca13066408925b4d1cdc856337.png +0 -0
  1084. package/style/visual-screenshots (1)/images/4fe4b5357ee618b9ca1265408d74ad97.png +0 -0
  1085. package/style/visual-screenshots (1)/images/5018ce083222fefeb9e4686ed2e1edaf.png +0 -0
  1086. package/style/visual-screenshots (1)/images/5022d94c55bd146ad125a05b5c9f15dd.png +0 -0
  1087. package/style/visual-screenshots (1)/images/503a0b5aa58f32f0892efbb58b46b996.png +0 -0
  1088. package/style/visual-screenshots (1)/images/50a9c832d93ea3ba546abb94fd08af87.png +0 -0
  1089. package/style/visual-screenshots (1)/images/5118ecf3e50d06897080ed1b2bafcef3.png +0 -0
  1090. package/style/visual-screenshots (1)/images/5158dd83988845a3839627ad959dbb01.png +0 -0
  1091. package/style/visual-screenshots (1)/images/51923db19fef9e029f0893a8a2003614.png +0 -0
  1092. package/style/visual-screenshots (1)/images/51f5169578f81f7fb04205fa02f761c6.png +0 -0
  1093. package/style/visual-screenshots (1)/images/52525fe087784b1fdffe1cfc03eed02d.png +0 -0
  1094. package/style/visual-screenshots (1)/images/5266c70656af2dd7ea757c126c555489.png +0 -0
  1095. package/style/visual-screenshots (1)/images/5273adef332dbb60fac11c48a989c42d.png +0 -0
  1096. package/style/visual-screenshots (1)/images/52cfe294a3f7300731ce4dbe4717bdea.png +0 -0
  1097. package/style/visual-screenshots (1)/images/5328d69dc10bb02003c30fed0e25a64b.png +0 -0
  1098. package/style/visual-screenshots (1)/images/53e6290d0b3f1294543ba28828558bae.png +0 -0
  1099. package/style/visual-screenshots (1)/images/53eeaa26642fb7b44a83b9bf5d285b1a.png +0 -0
  1100. package/style/visual-screenshots (1)/images/540524e243acf3f3f5bfa8c392ffba52.png +0 -0
  1101. package/style/visual-screenshots (1)/images/5436543a753e26c1c2224e9b8ed3f30c.png +0 -0
  1102. package/style/visual-screenshots (1)/images/54c4e2aa7af0622b71ab1b91e0216497.png +0 -0
  1103. package/style/visual-screenshots (1)/images/54cf609aa15fa2609c3079a322e9f60a.png +0 -0
  1104. package/style/visual-screenshots (1)/images/54e4e6b63e13d2f360b1bd0d1ade4ebd.png +0 -0
  1105. package/style/visual-screenshots (1)/images/5505895e66a4d80a8eb40be714de2da1.png +0 -0
  1106. package/style/visual-screenshots (1)/images/554637773a92e812811d95933b06d047.png +0 -0
  1107. package/style/visual-screenshots (1)/images/55b1e1c7415f8f22ab377f2e4fd5a91d.png +0 -0
  1108. package/style/visual-screenshots (1)/images/55c30ec12d513e3c365e94ef76330703.png +0 -0
  1109. package/style/visual-screenshots (1)/images/5737582ac302d9b30b549c875dc0e823.png +0 -0
  1110. package/style/visual-screenshots (1)/images/5838b2544ecf964a999cab746d5bd97d.png +0 -0
  1111. package/style/visual-screenshots (1)/images/58b847761ee38a8c47f208aeb558e0a9.png +0 -0
  1112. package/style/visual-screenshots (1)/images/58cae6127379fa56b766c6c3528a286a.png +0 -0
  1113. package/style/visual-screenshots (1)/images/58cd807e8212d20223020a0c6404765b.png +0 -0
  1114. package/style/visual-screenshots (1)/images/5909df37c419a947f3725ea71a9680c3.png +0 -0
  1115. package/style/visual-screenshots (1)/images/590d2d0fa1c7e1204816f4badda94716.png +0 -0
  1116. package/style/visual-screenshots (1)/images/592abe77a6d530f6d9c77c1fe68d1315.png +0 -0
  1117. package/style/visual-screenshots (1)/images/593cacdf991a89066c6887dda6214279.png +0 -0
  1118. package/style/visual-screenshots (1)/images/597612a74ca61e8e3cee1183251cac24.png +0 -0
  1119. package/style/visual-screenshots (1)/images/59b59b3d221c4be96d27770926f6eb7c.png +0 -0
  1120. package/style/visual-screenshots (1)/images/59d0c2dc9de3c7ca52811e6d03005db0.png +0 -0
  1121. package/style/visual-screenshots (1)/images/59e20e58e24364f8ea8e94f2708de92f.png +0 -0
  1122. package/style/visual-screenshots (1)/images/5a0638a95840412ad0883e0e14dd22f4.png +0 -0
  1123. package/style/visual-screenshots (1)/images/5a251791db123f6cf0fc8207cd34d605.png +0 -0
  1124. package/style/visual-screenshots (1)/images/5a8cf1ada7ead3e071e59c233e45d826.png +0 -0
  1125. package/style/visual-screenshots (1)/images/5a98898f2c6c913e34e6370769a2e419.png +0 -0
  1126. package/style/visual-screenshots (1)/images/5aa02d6e18a0fa7b46ad23263f5372f9.png +0 -0
  1127. package/style/visual-screenshots (1)/images/5ab4fc80d22b19429b70cd3a6ab8bb05.png +0 -0
  1128. package/style/visual-screenshots (1)/images/5acd13c49bb19fc300b6a7c2460945db.png +0 -0
  1129. package/style/visual-screenshots (1)/images/5add1e2e0f9c785f9e969cce0b11e0a6.png +0 -0
  1130. package/style/visual-screenshots (1)/images/5aeed5c2ec2ca7b5ae286bae76bb6f72.png +0 -0
  1131. package/style/visual-screenshots (1)/images/5b2591966426d8c77601565dfa914b5c.png +0 -0
  1132. package/style/visual-screenshots (1)/images/5b424b673e5f6814bbcc687a2f5ba7ff.png +0 -0
  1133. package/style/visual-screenshots (1)/images/5bd4d4b7e0890bcb1d81ede114ee4b72.png +0 -0
  1134. package/style/visual-screenshots (1)/images/5beea7f2f00f4db6f09fcf15bd6b73de.png +0 -0
  1135. package/style/visual-screenshots (1)/images/5c02af94f4d5ed86c881612dcfb31b02.png +0 -0
  1136. package/style/visual-screenshots (1)/images/5c0c0f1dbdb3aca383c35ec0cb67c599.png +0 -0
  1137. package/style/visual-screenshots (1)/images/5c520e4228567e2374f5d96b7f15c0d9.png +0 -0
  1138. package/style/visual-screenshots (1)/images/5cb10edf424ba13d586e83e60ac14a2d.png +0 -0
  1139. package/style/visual-screenshots (1)/images/5cca63b3d493de7befd4382f24a2aabd.png +0 -0
  1140. package/style/visual-screenshots (1)/images/5d5ef2d78f31c874edb28ebdfbfbd8f9.png +0 -0
  1141. package/style/visual-screenshots (1)/images/5d8110526b6ba5e9621d0f2fa57aa132.png +0 -0
  1142. package/style/visual-screenshots (1)/images/5d8f7a0eff0b6d546331f921490f25b9.png +0 -0
  1143. package/style/visual-screenshots (1)/images/5eab49b89384ab1f74be37d4e905021a.png +0 -0
  1144. package/style/visual-screenshots (1)/images/5ebfae0149ca72238011292fa3e486cb.png +0 -0
  1145. package/style/visual-screenshots (1)/images/5ecd509cfe196a8262a7e85d3d4c64b0.png +0 -0
  1146. package/style/visual-screenshots (1)/images/5f153464c343cd768216633b852073e7.png +0 -0
  1147. package/style/visual-screenshots (1)/images/5f69e3fcc20bdb527e040185048788e4.png +0 -0
  1148. package/style/visual-screenshots (1)/images/5fb4421e5a6d1eaef21a54bb431bdacb.png +0 -0
  1149. package/style/visual-screenshots (1)/images/5fd1665ddd85bf70339a29ddf3a98915.png +0 -0
  1150. package/style/visual-screenshots (1)/images/602fb4d5d2c9707f008b0d6a1a0487a7.png +0 -0
  1151. package/style/visual-screenshots (1)/images/604007e0cd1142f4e425d57ad9a1c5ef.png +0 -0
  1152. package/style/visual-screenshots (1)/images/605d581f35cd72dc9d7083dcc8066af1.png +0 -0
  1153. package/style/visual-screenshots (1)/images/6188b93026521a32345a4319fb10271e.png +0 -0
  1154. package/style/visual-screenshots (1)/images/621e7fcf64cbb08d121b599a81acb46a.png +0 -0
  1155. package/style/visual-screenshots (1)/images/626302e61eedc90d62298f66f46b8ec0.png +0 -0
  1156. package/style/visual-screenshots (1)/images/6289549bdd1f3ba4ee0ffa76fa3a8636.png +0 -0
  1157. package/style/visual-screenshots (1)/images/62a7d5f3d5afe23177d5dbab5f1e4c79.png +0 -0
  1158. package/style/visual-screenshots (1)/images/6355a9180ed5c4dd8df56c9ead71b0c8.png +0 -0
  1159. package/style/visual-screenshots (1)/images/63981d8aaadcbe9b9e73af3669b3c180.png +0 -0
  1160. package/style/visual-screenshots (1)/images/63bd485372b912309753349358f50eda.png +0 -0
  1161. package/style/visual-screenshots (1)/images/6415c0bc3637ea962fb1761ae69b5dda.png +0 -0
  1162. package/style/visual-screenshots (1)/images/64174556b9d8b4d18b7b8cfd531987a7.png +0 -0
  1163. package/style/visual-screenshots (1)/images/64443c554e8813c1fff9032b53c52b76.png +0 -0
  1164. package/style/visual-screenshots (1)/images/6478d52ea2380b15c4b549d9a1f77bac.png +0 -0
  1165. package/style/visual-screenshots (1)/images/649745ba63be2d7bf9d4f766d7b8ca38.png +0 -0
  1166. package/style/visual-screenshots (1)/images/64f2a771825679d512c73923c1bd5184.png +0 -0
  1167. package/style/visual-screenshots (1)/images/65147f30150f68dd99a34e3de9adb4a2.png +0 -0
  1168. package/style/visual-screenshots (1)/images/651e96edc124365985fcf260c7695452.png +0 -0
  1169. package/style/visual-screenshots (1)/images/6542deed80a8908b2ba2e40b482a5829.png +0 -0
  1170. package/style/visual-screenshots (1)/images/6548c65bf55806aa5acde87bc4d2017e.png +0 -0
  1171. package/style/visual-screenshots (1)/images/65be34b043114b668dad4ce359310ad3.png +0 -0
  1172. package/style/visual-screenshots (1)/images/65f1fc5ed87fb18c756988c6719c3b05.png +0 -0
  1173. package/style/visual-screenshots (1)/images/6618ae614b5a59f18f1f9f627b81f0ba.png +0 -0
  1174. package/style/visual-screenshots (1)/images/6710405c63cd71667e3533429bc8ac74.png +0 -0
  1175. package/style/visual-screenshots (1)/images/675177ec55467292992f6c641b44352e.png +0 -0
  1176. package/style/visual-screenshots (1)/images/679ff4b5301290556ec91463a47cf018.png +0 -0
  1177. package/style/visual-screenshots (1)/images/67d9619b97865d42f5617413a025f62a.png +0 -0
  1178. package/style/visual-screenshots (1)/images/686cdd39835b173225bd0b6ce4448b88.png +0 -0
  1179. package/style/visual-screenshots (1)/images/6874ed35cef726f65cda16ed1d544b35.png +0 -0
  1180. package/style/visual-screenshots (1)/images/68a92328d49b056ca74e3abe51c91d76.png +0 -0
  1181. package/style/visual-screenshots (1)/images/68b78b4cec15c23fa5e7d0148bead95f.png +0 -0
  1182. package/style/visual-screenshots (1)/images/68bca5cfcf4cb2cf91bbae3869730a14.png +0 -0
  1183. package/style/visual-screenshots (1)/images/68c9260329ceafbae03b1cf59a2dc832.png +0 -0
  1184. package/style/visual-screenshots (1)/images/698a7f9c8600bee3c0154879e8642fb8.png +0 -0
  1185. package/style/visual-screenshots (1)/images/698be3296b927df039453c078d8c5e90.png +0 -0
  1186. package/style/visual-screenshots (1)/images/69995300e1755ca4f61767ebb603e28d.png +0 -0
  1187. package/style/visual-screenshots (1)/images/69b579e4e3d21f8d7c6bb64fa7dec383.png +0 -0
  1188. package/style/visual-screenshots (1)/images/69c6368a387225497235ea4cabbbe05d.png +0 -0
  1189. package/style/visual-screenshots (1)/images/69cdde73ed1979a49fa379514fb747ea.png +0 -0
  1190. package/style/visual-screenshots (1)/images/69d4879c64376442acf44968fb02d9a6.png +0 -0
  1191. package/style/visual-screenshots (1)/images/6a152f420237560d826a59b1ba95c6e8.png +0 -0
  1192. package/style/visual-screenshots (1)/images/6a1e34197166e3475343c3ba9a4ce398.png +0 -0
  1193. package/style/visual-screenshots (1)/images/6a2d5d8d6ff350c3b22a97e221506c72.png +0 -0
  1194. package/style/visual-screenshots (1)/images/6a7102578dc5e69e6eed2dd81169959d.png +0 -0
  1195. package/style/visual-screenshots (1)/images/6a76062bfc3391871480fbaed258138f.png +0 -0
  1196. package/style/visual-screenshots (1)/images/6a98dfe1e3633e72cf1fc24d6f6b641b.png +0 -0
  1197. package/style/visual-screenshots (1)/images/6abbbe132416f98c6a1cb3a1897cc551.png +0 -0
  1198. package/style/visual-screenshots (1)/images/6b443b374cbe7fd349b21cd82a439dd6.png +0 -0
  1199. package/style/visual-screenshots (1)/images/6bb098fcece5553a617d03e539e2b14d.png +0 -0
  1200. package/style/visual-screenshots (1)/images/6bcde51c95aafa27fed83fd83b8f0397.png +0 -0
  1201. package/style/visual-screenshots (1)/images/6c156cba7e8245e73aefe4afbd35276d.png +0 -0
  1202. package/style/visual-screenshots (1)/images/6c569ef8ad97932e1a82ac1ed9e30960.png +0 -0
  1203. package/style/visual-screenshots (1)/images/6c91461ed0c3153c9c403d1ab687dbe5.png +0 -0
  1204. package/style/visual-screenshots (1)/images/6cae73cd2745b0af1530ae4e9cb9ebfa.png +0 -0
  1205. package/style/visual-screenshots (1)/images/6d470bf081f9dfcf72f63d5ef93e627e.png +0 -0
  1206. package/style/visual-screenshots (1)/images/6d6fcb40cbe35f57b4a2caced4ab52c1.png +0 -0
  1207. package/style/visual-screenshots (1)/images/6d8758b4434c1abb115eb61256323a84.png +0 -0
  1208. package/style/visual-screenshots (1)/images/6d8bd755e87330765b74bce670116692.png +0 -0
  1209. package/style/visual-screenshots (1)/images/6e42402b7dd8bc3a23292b766284e384.png +0 -0
  1210. package/style/visual-screenshots (1)/images/6e9e15b49f9bd7e2b60f666b85f4c3b7.png +0 -0
  1211. package/style/visual-screenshots (1)/images/6ecd70c7e06430c86fd514a412dcc6f4.png +0 -0
  1212. package/style/visual-screenshots (1)/images/6f3b3334cd7e0046e583348aa29babcf.png +0 -0
  1213. package/style/visual-screenshots (1)/images/6f5da1c8d233cf9d5e8e88fd2ef3ec0a.png +0 -0
  1214. package/style/visual-screenshots (1)/images/6fa2cf8bec030e4a0749e769ba026482.png +0 -0
  1215. package/style/visual-screenshots (1)/images/6fe1a8093050cb06ea5b1c3334503e24.png +0 -0
  1216. package/style/visual-screenshots (1)/images/7005941c708d4fec5abcdc7e6e10bab8.png +0 -0
  1217. package/style/visual-screenshots (1)/images/700ade8610923958d3f90d68dfa4e05b.png +0 -0
  1218. package/style/visual-screenshots (1)/images/7038ca0faeb969aa8e7e62cd4f626e6f.png +0 -0
  1219. package/style/visual-screenshots (1)/images/706755c17ed932b4bef33524f6daa4f5.png +0 -0
  1220. package/style/visual-screenshots (1)/images/706dfb70e1074e2aad57ab8526b0f360.png +0 -0
  1221. package/style/visual-screenshots (1)/images/70a28845b5c345c56575b55667b70da1.png +0 -0
  1222. package/style/visual-screenshots (1)/images/70b41db21992f19bda5e6b0f70c1fc09.png +0 -0
  1223. package/style/visual-screenshots (1)/images/70bdf7355dba6c76a2d79bde106e6d1d.png +0 -0
  1224. package/style/visual-screenshots (1)/images/70be87330902c743947ed9e77285f871.png +0 -0
  1225. package/style/visual-screenshots (1)/images/70c8dce297f073384a4e8079bff68adf.png +0 -0
  1226. package/style/visual-screenshots (1)/images/7129b9342de7f5e37c6eeeb9e174e2de.png +0 -0
  1227. package/style/visual-screenshots (1)/images/715b51ef2b67f378bba07e7ad9343754.png +0 -0
  1228. package/style/visual-screenshots (1)/images/71efbcd39c9d1ace0e25003ceb0db23e.png +0 -0
  1229. package/style/visual-screenshots (1)/images/7245e631025f99f3554df69b14a843fa.png +0 -0
  1230. package/style/visual-screenshots (1)/images/7268f09b0b1a0e124434eca4bbd818fa.png +0 -0
  1231. package/style/visual-screenshots (1)/images/7329d3d684fa7430845616c496c3e3d5.png +0 -0
  1232. package/style/visual-screenshots (1)/images/73ff7a530dde350815d23ff6a24031a0.png +0 -0
  1233. package/style/visual-screenshots (1)/images/743a4ff37dbc8c26ed1379fad764407d.png +0 -0
  1234. package/style/visual-screenshots (1)/images/745ce91134a9c726aee22be8e5dfcd28.png +0 -0
  1235. package/style/visual-screenshots (1)/images/7476eb8a4b6b6c21d7366cd7b839cd8e.png +0 -0
  1236. package/style/visual-screenshots (1)/images/74a5d110629e8bed44951ecc69d46e37.png +0 -0
  1237. package/style/visual-screenshots (1)/images/74d2a451e8fe666e4cdd4ee104e3fbcb.png +0 -0
  1238. package/style/visual-screenshots (1)/images/76dcdcc9887459636f81578fa8e72f0d.png +0 -0
  1239. package/style/visual-screenshots (1)/images/772fd7072ade47ddd50f5daf9fe78b06.png +0 -0
  1240. package/style/visual-screenshots (1)/images/77555003b57945e07b81f4bbc8da45a5.png +0 -0
  1241. package/style/visual-screenshots (1)/images/7845c6559ae2b8cfa3eec51d52e628c1.png +0 -0
  1242. package/style/visual-screenshots (1)/images/784772bde66cc378572a46b681b6cafe.png +0 -0
  1243. package/style/visual-screenshots (1)/images/791f88fcb8a69681a876b21c6059e038.png +0 -0
  1244. package/style/visual-screenshots (1)/images/7a14e2ed34311c3ddd03ab2b7e8b57e5.png +0 -0
  1245. package/style/visual-screenshots (1)/images/7a5376f8127ccbce92efa2dc7d6e434a.png +0 -0
  1246. package/style/visual-screenshots (1)/images/7b05dd84aacb821c812f835a0580c001.png +0 -0
  1247. package/style/visual-screenshots (1)/images/7b11547ab77114942b3590f5274ccb36.png +0 -0
  1248. package/style/visual-screenshots (1)/images/7b6676b606f3fd4fa89d824c97473517.png +0 -0
  1249. package/style/visual-screenshots (1)/images/7b6e5af31520f5e8813017dd4f98c8d6.png +0 -0
  1250. package/style/visual-screenshots (1)/images/7b89bf68bb12f5cee6947bd5af2520d7.png +0 -0
  1251. package/style/visual-screenshots (1)/images/7b90db4c1dcaeed7cf71f5bae65d327a.png +0 -0
  1252. package/style/visual-screenshots (1)/images/7bb540ca4abee17cdffe6944c8ff0948.png +0 -0
  1253. package/style/visual-screenshots (1)/images/7c01812ede9c4d58571ccf59904bb1b1.png +0 -0
  1254. package/style/visual-screenshots (1)/images/7c096666a0954392e0d657c8759963eb.png +0 -0
  1255. package/style/visual-screenshots (1)/images/7c7593da4f5a9d04f800284023edb554.png +0 -0
  1256. package/style/visual-screenshots (1)/images/7c82ecbc586641289f31f0cc27b017cd.png +0 -0
  1257. package/style/visual-screenshots (1)/images/7c8e1def6b12da12f07536140e2b88b3.png +0 -0
  1258. package/style/visual-screenshots (1)/images/7c916534306207f114d952bfe9340e5e.png +0 -0
  1259. package/style/visual-screenshots (1)/images/7d3331d3cf93defe00a04cd10c57c6c6.png +0 -0
  1260. package/style/visual-screenshots (1)/images/7da3d1c71e1e4b088f77e751a940b6a2.png +0 -0
  1261. package/style/visual-screenshots (1)/images/7da65ded5bfe4c858e0c24ff1e1aa22d.png +0 -0
  1262. package/style/visual-screenshots (1)/images/7daca2b5b705d27e8d5090f7dbb8acac.png +0 -0
  1263. package/style/visual-screenshots (1)/images/7e8b4c9c2ac796fd5c5c730a430ef2e4.png +0 -0
  1264. package/style/visual-screenshots (1)/images/7f06654399aca40b333099bec24468af.png +0 -0
  1265. package/style/visual-screenshots (1)/images/7f8ae3d8e54291115e892c51d485df16.png +0 -0
  1266. package/style/visual-screenshots (1)/images/7fb8ddb922c39be025d60076f51efcbd.png +0 -0
  1267. package/style/visual-screenshots (1)/images/7fc57b3e4c1d14d0a86891a6c80ff12f.png +0 -0
  1268. package/style/visual-screenshots (1)/images/8062b189081773e44a640a8d067046a0.png +0 -0
  1269. package/style/visual-screenshots (1)/images/8083c957effa18fb290a5b0bdf2ad6cb.png +0 -0
  1270. package/style/visual-screenshots (1)/images/80bbb318ca9792a3f16de017ea346d0c.png +0 -0
  1271. package/style/visual-screenshots (1)/images/81c89f3dbeafdd793458d9339c7c607b.png +0 -0
  1272. package/style/visual-screenshots (1)/images/81d7507828e5d8d66f7e161f74e45405.png +0 -0
  1273. package/style/visual-screenshots (1)/images/82045c605de46b4aa7f386601ddb8884.png +0 -0
  1274. package/style/visual-screenshots (1)/images/8245fbfd4b80b96b0254563f86b726ba.png +0 -0
  1275. package/style/visual-screenshots (1)/images/82497fc1570674a5421e926475feac1b.png +0 -0
  1276. package/style/visual-screenshots (1)/images/8252196c9f384ba181cc026acd29d928.png +0 -0
  1277. package/style/visual-screenshots (1)/images/82706af2011a1e7149813131c420a1fa.png +0 -0
  1278. package/style/visual-screenshots (1)/images/82a37a51e30a418ac408149f02adbbee.png +0 -0
  1279. package/style/visual-screenshots (1)/images/83080cdc524b169211c70c9dfdb6fd9e.png +0 -0
  1280. package/style/visual-screenshots (1)/images/830ba1a526dd905bce415b056de3ddb9.png +0 -0
  1281. package/style/visual-screenshots (1)/images/833dc08e69770233fa3915653b3dfb4d.png +0 -0
  1282. package/style/visual-screenshots (1)/images/8375d9df6b63faa9f30eda79e8c80a83.png +0 -0
  1283. package/style/visual-screenshots (1)/images/839c2b39bcaa6830906b9da5d890c1ae.png +0 -0
  1284. package/style/visual-screenshots (1)/images/8431110776be033ec282fd895a9ae813.png +0 -0
  1285. package/style/visual-screenshots (1)/images/851318a57f46c9da1144fe8faf984da4.png +0 -0
  1286. package/style/visual-screenshots (1)/images/8514c1d4ee26054ee07d11a0fe33f0db.png +0 -0
  1287. package/style/visual-screenshots (1)/images/855d767000e9a4a272a2e753628a8474.png +0 -0
  1288. package/style/visual-screenshots (1)/images/85d83f9f94a1adc9dcb60e0c13db29c1.png +0 -0
  1289. package/style/visual-screenshots (1)/images/86236e1f7726cc775fdfbd9d967b892e.png +0 -0
  1290. package/style/visual-screenshots (1)/images/865d7994dfb71cc52f659c784ab77089.png +0 -0
  1291. package/style/visual-screenshots (1)/images/867dba1a3a0e5d10d9852a57eaf4f7f2.png +0 -0
  1292. package/style/visual-screenshots (1)/images/868a694b756597afd5cbd8991ed9fa6e.png +0 -0
  1293. package/style/visual-screenshots (1)/images/86fd1791a257ca240a96d32f587a6798.png +0 -0
  1294. package/style/visual-screenshots (1)/images/8731210b8a1307c635c914344026cd7c.png +0 -0
  1295. package/style/visual-screenshots (1)/images/874d6a50e723c879a585b73e4e54229b.png +0 -0
  1296. package/style/visual-screenshots (1)/images/8753b744d14e6bf1be2fd926a564c3e9.png +0 -0
  1297. package/style/visual-screenshots (1)/images/87eeecd4041819cac6f766c67f879a0d.png +0 -0
  1298. package/style/visual-screenshots (1)/images/8816c9e1431fdfd5465d5a40c052309b.png +0 -0
  1299. package/style/visual-screenshots (1)/images/885b77ceaf7e7a8908fd5b147c5a5217.png +0 -0
  1300. package/style/visual-screenshots (1)/images/8923cdd532219aac9e71558dbd1186f9.png +0 -0
  1301. package/style/visual-screenshots (1)/images/894bd3d4137d2ca7f4f71b2d53de379c.png +0 -0
  1302. package/style/visual-screenshots (1)/images/8a801b5532051d67612de96df713f59a.png +0 -0
  1303. package/style/visual-screenshots (1)/images/8aca19545cb02a7fd00f5d84a1fc4ee1.png +0 -0
  1304. package/style/visual-screenshots (1)/images/8ae35388a8ed4604acc175b6953b1a12.png +0 -0
  1305. package/style/visual-screenshots (1)/images/8b12f8f1234a0fdcd5cb800f5fdd4704.png +0 -0
  1306. package/style/visual-screenshots (1)/images/8b674a86e1db9dda1dedaa07cc25a569.png +0 -0
  1307. package/style/visual-screenshots (1)/images/8b7cd1fafd046cdd7200189a3a8e424f.png +0 -0
  1308. package/style/visual-screenshots (1)/images/8ba1ee43c2d10f779da98898000d6d6f.png +0 -0
  1309. package/style/visual-screenshots (1)/images/8bfc88f25acf24bb557f3790231b9cc5.png +0 -0
  1310. package/style/visual-screenshots (1)/images/8c0bc63f7d57338b59338292b4d20e1c.png +0 -0
  1311. package/style/visual-screenshots (1)/images/8c2a062564d8b55e5686d80995c0132e.png +0 -0
  1312. package/style/visual-screenshots (1)/images/8c98ce176a13df14843cbb6423fd6440.png +0 -0
  1313. package/style/visual-screenshots (1)/images/8cc5eded9abb67747e8a18cefb51df6d.png +0 -0
  1314. package/style/visual-screenshots (1)/images/8d31ec4d9f7bbc9f753f70f2e2fe7781.png +0 -0
  1315. package/style/visual-screenshots (1)/images/8d4761d0c860b4bdc923c78a60c6c7db.png +0 -0
  1316. package/style/visual-screenshots (1)/images/8d8c786a27f502d297333e0f65e5fe7e.png +0 -0
  1317. package/style/visual-screenshots (1)/images/8da3dcbc2a7e12489844a3d5e034ce78.png +0 -0
  1318. package/style/visual-screenshots (1)/images/8e4e5baa65c536003c41d48d4a9d468c.png +0 -0
  1319. package/style/visual-screenshots (1)/images/8e8f3e052eed01419d45167ec3d31705.png +0 -0
  1320. package/style/visual-screenshots (1)/images/8ec5450454d067c364839f82e25a956d.png +0 -0
  1321. package/style/visual-screenshots (1)/images/8ed1408bb2065b8a868349005c1f140d.png +0 -0
  1322. package/style/visual-screenshots (1)/images/8f1c9b14d29c9264c5491f98fa9de9e8.png +0 -0
  1323. package/style/visual-screenshots (1)/images/8f5f36e9fcfb73d98fc44d844ead6bcd.png +0 -0
  1324. package/style/visual-screenshots (1)/images/8f69a3e8bb80e42b327daa0413f484a3.png +0 -0
  1325. package/style/visual-screenshots (1)/images/8fbd2b83ca71d26193f78355c1a7469d.png +0 -0
  1326. package/style/visual-screenshots (1)/images/9026dfe577f38e5be6fec9dafa010056.png +0 -0
  1327. package/style/visual-screenshots (1)/images/906cf5fcfc43ec7f7a1743b1fbba08d0.png +0 -0
  1328. package/style/visual-screenshots (1)/images/909185691877d3ab730fbc98e563b5cc.png +0 -0
  1329. package/style/visual-screenshots (1)/images/9093d74b6c429faa6d6098bb3b42122e.png +0 -0
  1330. package/style/visual-screenshots (1)/images/90b4a73410a4a0f48bf9d2803fc71b38.png +0 -0
  1331. package/style/visual-screenshots (1)/images/90c068953b90c743da83a12da5204a0e.png +0 -0
  1332. package/style/visual-screenshots (1)/images/914841508f534fc579907f3ff4e94eda.png +0 -0
  1333. package/style/visual-screenshots (1)/images/926a60a1ac5968259e786e8c4c8c9d26.png +0 -0
  1334. package/style/visual-screenshots (1)/images/93f5b096a1eb89744a98d090479f90c9.png +0 -0
  1335. package/style/visual-screenshots (1)/images/946bbf46e754018058a8a17e5781b37c.png +0 -0
  1336. package/style/visual-screenshots (1)/images/94a53d14a1e5f3fcb2f22b91642dc2cb.png +0 -0
  1337. package/style/visual-screenshots (1)/images/94f93fc2109c3efac0cc508846fc09c6.png +0 -0
  1338. package/style/visual-screenshots (1)/images/953979d501129c69e5cc0e1fd9acedf9.png +0 -0
  1339. package/style/visual-screenshots (1)/images/9554d90e572ac282fec64cefe1d65eae.png +0 -0
  1340. package/style/visual-screenshots (1)/images/95a3854979faaf7e3da15b81212fdddd.png +0 -0
  1341. package/style/visual-screenshots (1)/images/95d64ce8dc7d7f80747dbb433cbd69b2.png +0 -0
  1342. package/style/visual-screenshots (1)/images/95f250a29638c7a592e162fe065bc851.png +0 -0
  1343. package/style/visual-screenshots (1)/images/962f28dd09eac1fa2811894bf4be9b70.png +0 -0
  1344. package/style/visual-screenshots (1)/images/964706df4434f4e905f967de3d3dc125.png +0 -0
  1345. package/style/visual-screenshots (1)/images/9681d81d32fb1f90ca44c3f69b9f0921.png +0 -0
  1346. package/style/visual-screenshots (1)/images/97660bd70cc5e96d6258c1ed95c0935c.png +0 -0
  1347. package/style/visual-screenshots (1)/images/976ebf4299d8ca702219b1e74419f704.png +0 -0
  1348. package/style/visual-screenshots (1)/images/97cf49835bd0c2bf7811a7bdf3be89bc.png +0 -0
  1349. package/style/visual-screenshots (1)/images/97e8a0e95dcff699c46f9b1b88b87d8a.png +0 -0
  1350. package/style/visual-screenshots (1)/images/9807fabc447e7dae30fbbe6754e02c0d.png +0 -0
  1351. package/style/visual-screenshots (1)/images/98ee9e5fb88515a8dbf5fe0e091c993a.png +0 -0
  1352. package/style/visual-screenshots (1)/images/9997cd9e92d50b13a900ecb22fc74e83.png +0 -0
  1353. package/style/visual-screenshots (1)/images/9a0b82d87e48b2c9e146bfbd4b51a177.png +0 -0
  1354. package/style/visual-screenshots (1)/images/9a41a04f72770185eb42d3941627c6a1.png +0 -0
  1355. package/style/visual-screenshots (1)/images/9a5b6ff3d85a26850b93d3129de94bbc.png +0 -0
  1356. package/style/visual-screenshots (1)/images/9a9397907d86e4bdce381d4017ec5c33.png +0 -0
  1357. package/style/visual-screenshots (1)/images/9ae63f1d387740d15676acf9a5bc48b8.png +0 -0
  1358. package/style/visual-screenshots (1)/images/9b00734aa8cbf1a9acd3fbf08c137b0a.png +0 -0
  1359. package/style/visual-screenshots (1)/images/9b07449ac15dc7e1d1deb9b825be0924.png +0 -0
  1360. package/style/visual-screenshots (1)/images/9b18a6ddb96cbd44795e2bbc536f4f2a.png +0 -0
  1361. package/style/visual-screenshots (1)/images/9b4014c74037f975344b9ac678229e65.png +0 -0
  1362. package/style/visual-screenshots (1)/images/9b5118241eb4c97880a8a53129b9ea63.png +0 -0
  1363. package/style/visual-screenshots (1)/images/9b594e815378bc9a2ef6cd6251dc9d6b.png +0 -0
  1364. package/style/visual-screenshots (1)/images/9bc0a1284fc2c56e95ff22ae764e02c0.png +0 -0
  1365. package/style/visual-screenshots (1)/images/9bdf5a8be0ecbe48e58b74552e4c5888.png +0 -0
  1366. package/style/visual-screenshots (1)/images/9ce93b76501e11f52d1d6c27c6d3afb7.png +0 -0
  1367. package/style/visual-screenshots (1)/images/9d272894b4135cdb24bd6dd6d23dd421.png +0 -0
  1368. package/style/visual-screenshots (1)/images/9d3806b2870669edff4fea8574250bf7.png +0 -0
  1369. package/style/visual-screenshots (1)/images/9d6ec965e5a23731bd189dfbb3c80e84.png +0 -0
  1370. package/style/visual-screenshots (1)/images/9da4037f79a0f2ad50f8adc04687eb12.png +0 -0
  1371. package/style/visual-screenshots (1)/images/9dcd7eda71b2347d026409b2342b3e39.png +0 -0
  1372. package/style/visual-screenshots (1)/images/9de702c3bb72425b0e61d0b4d5a30b82.png +0 -0
  1373. package/style/visual-screenshots (1)/images/9e08fce5233bbc69e681eb1ef349acc0.png +0 -0
  1374. package/style/visual-screenshots (1)/images/9ea6570856b521aa566047e92d0f8305.png +0 -0
  1375. package/style/visual-screenshots (1)/images/9ebdf4d34c2713e0f0cedb0c778b2c35.png +0 -0
  1376. package/style/visual-screenshots (1)/images/9ec5435fc1248519bcc369f282c010c9.png +0 -0
  1377. package/style/visual-screenshots (1)/images/9ee6d0e821a1f9c789514aef157a40ee.png +0 -0
  1378. package/style/visual-screenshots (1)/images/9f1bfd0ae43a5c83303dcf205dc86aac.png +0 -0
  1379. package/style/visual-screenshots (1)/images/9f268b6848b910b5d9c8094077405609.png +0 -0
  1380. package/style/visual-screenshots (1)/images/9f3bdce5cba7a4c333f3e4e32697ed1e.png +0 -0
  1381. package/style/visual-screenshots (1)/images/9fa64b6dd5e2432e5ac5be0125de88c5.png +0 -0
  1382. package/style/visual-screenshots (1)/images/a00ff5334e96e86b5de74ca70e158365.png +0 -0
  1383. package/style/visual-screenshots (1)/images/a0273543e221b5e74f2f92eedff87bbf.png +0 -0
  1384. package/style/visual-screenshots (1)/images/a0860b4739ea0bf437f0fa1dc983edcc.png +0 -0
  1385. package/style/visual-screenshots (1)/images/a09b998ff83fe0c8ba190c43be2c8281.png +0 -0
  1386. package/style/visual-screenshots (1)/images/a0a9b6948dfa55de2c2391e66f116bef.png +0 -0
  1387. package/style/visual-screenshots (1)/images/a0d9fd7c91a3666c82a8a1d1473647ff.png +0 -0
  1388. package/style/visual-screenshots (1)/images/a122b735ee40793efef3ad06ff66c62a.png +0 -0
  1389. package/style/visual-screenshots (1)/images/a1595ea5cac31981a01027ab16de609d.png +0 -0
  1390. package/style/visual-screenshots (1)/images/a19c2ba30b43cb891f2536ebda33b5b9.png +0 -0
  1391. package/style/visual-screenshots (1)/images/a19daa3bfb03b36036e5954c38b3c09b.png +0 -0
  1392. package/style/visual-screenshots (1)/images/a1c13afc2158133f6f248eeec0c213c9.png +0 -0
  1393. package/style/visual-screenshots (1)/images/a234da24efdb5886b5017293c9ec4983.png +0 -0
  1394. package/style/visual-screenshots (1)/images/a267c84cc70ffcfd9f9098872b4d0e33.png +0 -0
  1395. package/style/visual-screenshots (1)/images/a29ab04f7b14796a43ec1004d07e1191.png +0 -0
  1396. package/style/visual-screenshots (1)/images/a331b266be3fe60d1510fc44c8462f8b.png +0 -0
  1397. package/style/visual-screenshots (1)/images/a3b55159499c5529bdb159350ea483f8.png +0 -0
  1398. package/style/visual-screenshots (1)/images/a3d54f0bbe60534633595f92c0af0606.png +0 -0
  1399. package/style/visual-screenshots (1)/images/a3f82ac3c6348fa4452a198cb503860d.png +0 -0
  1400. package/style/visual-screenshots (1)/images/a481b24ed810261cbae6bce62a1fd6da.png +0 -0
  1401. package/style/visual-screenshots (1)/images/a4da8641e0ebce45d567a27b1b9d71c9.png +0 -0
  1402. package/style/visual-screenshots (1)/images/a4e17fa06168594ff442f3d84ca346e0.png +0 -0
  1403. package/style/visual-screenshots (1)/images/a4ec66bb6e0a2bf7d26898a7ec6fa6cb.png +0 -0
  1404. package/style/visual-screenshots (1)/images/a4f5b46346578f27b509ab8ba9062b2a.png +0 -0
  1405. package/style/visual-screenshots (1)/images/a524cc5916040ea0985aa14f5039cd08.png +0 -0
  1406. package/style/visual-screenshots (1)/images/a56c0004f5f488bc5f4f8812479ff919.png +0 -0
  1407. package/style/visual-screenshots (1)/images/a5760e6af3aac912f3c69d88eabc9571.png +0 -0
  1408. package/style/visual-screenshots (1)/images/a5823b26b36bef69818dc786e72722c7.png +0 -0
  1409. package/style/visual-screenshots (1)/images/a59e098a82b3b2b4a8e6e6e0ae9a82ee.png +0 -0
  1410. package/style/visual-screenshots (1)/images/a5b60fb10746df7698e43bccb21df11b.png +0 -0
  1411. package/style/visual-screenshots (1)/images/a5e9bd136ccd404fa0c0a275e757246f.png +0 -0
  1412. package/style/visual-screenshots (1)/images/a62e4c8295a725e4a66cc2ec4408c4bd.png +0 -0
  1413. package/style/visual-screenshots (1)/images/a6492327cb0dabcd2d74dbd1816f422d.png +0 -0
  1414. package/style/visual-screenshots (1)/images/a6cfa33b833e8507b5f3cbfa260ee54f.png +0 -0
  1415. package/style/visual-screenshots (1)/images/a75a60a4aa5b275fd399051abf56d08e.png +0 -0
  1416. package/style/visual-screenshots (1)/images/a770465023ed9653c5209e93264e927e.png +0 -0
  1417. package/style/visual-screenshots (1)/images/a83dbd9419c386d226bee5eda2e6673b.png +0 -0
  1418. package/style/visual-screenshots (1)/images/a87075c6eb331fcab77dedffee6c8321.png +0 -0
  1419. package/style/visual-screenshots (1)/images/a8b8f7209998b3d0a72b9719083dc02a.png +0 -0
  1420. package/style/visual-screenshots (1)/images/a9a1de0b8dd7b6ccab5b47f73dd7f842.png +0 -0
  1421. package/style/visual-screenshots (1)/images/a9c7c835f865512a77038fc5c15de21b.png +0 -0
  1422. package/style/visual-screenshots (1)/images/aa30e7b644de69d60faa5380ca95c5a1.png +0 -0
  1423. package/style/visual-screenshots (1)/images/aa4abb72226bb8321d4b9258f9857b71.png +0 -0
  1424. package/style/visual-screenshots (1)/images/aa51db31d331669430896690342d81dc.png +0 -0
  1425. package/style/visual-screenshots (1)/images/aa9b522302f4dd7150ecbfbb275320e6.png +0 -0
  1426. package/style/visual-screenshots (1)/images/aaa1b0619e13093f63d4156375b60010.png +0 -0
  1427. package/style/visual-screenshots (1)/images/ab5d93b635bae2b5fe23f583eac012ce.png +0 -0
  1428. package/style/visual-screenshots (1)/images/abb03b840550301215bf11bcfc214de4.png +0 -0
  1429. package/style/visual-screenshots (1)/images/ac03f528e1ea478ed33ba9fb5322e3fb.png +0 -0
  1430. package/style/visual-screenshots (1)/images/ac1974812f40ea59d34307ac02a5f70c.png +0 -0
  1431. package/style/visual-screenshots (1)/images/ac2cf23c673a4453be9f71a678bf457e.png +0 -0
  1432. package/style/visual-screenshots (1)/images/ac4258921c4fac19bf9d885fe18d1783.png +0 -0
  1433. package/style/visual-screenshots (1)/images/ac5b064d25b63e5ecd63a91d495dfe5b.png +0 -0
  1434. package/style/visual-screenshots (1)/images/ac8524eb52a8b18d3727f9755658f457.png +0 -0
  1435. package/style/visual-screenshots (1)/images/acd224f13e0e43e4d81990ea06b683f1.png +0 -0
  1436. package/style/visual-screenshots (1)/images/acd8684a795357b531129eb92d03dbf0.png +0 -0
  1437. package/style/visual-screenshots (1)/images/ace6a74377e1fd6f83aa5dba48c8f4ee.png +0 -0
  1438. package/style/visual-screenshots (1)/images/ad0b716887153cae4ebdd7a50e332ad1.png +0 -0
  1439. package/style/visual-screenshots (1)/images/ad74bf7ecefe38d32f843eac59d05bcf.png +0 -0
  1440. package/style/visual-screenshots (1)/images/adad3039bbf24803cc0c800fa1ab52b2.png +0 -0
  1441. package/style/visual-screenshots (1)/images/add742b5f9addb0c591ef066157dd0d7.png +0 -0
  1442. package/style/visual-screenshots (1)/images/adf3ec3a8e97c3b33e77394946ad2434.png +0 -0
  1443. package/style/visual-screenshots (1)/images/adfd03e01df5610028a7b8c22de1d1b5.png +0 -0
  1444. package/style/visual-screenshots (1)/images/ae308ee925b5ad76aea7d7c989003c6c.png +0 -0
  1445. package/style/visual-screenshots (1)/images/ae5ba79ab620185002de1e0e2869fea8.png +0 -0
  1446. package/style/visual-screenshots (1)/images/aed0d8ffabcb9d4680499b39bb909cfb.png +0 -0
  1447. package/style/visual-screenshots (1)/images/af5ce31cf5f312b6bda76f748fabb52f.png +0 -0
  1448. package/style/visual-screenshots (1)/images/af77365d82e0f07b3957f3c77dfa5810.png +0 -0
  1449. package/style/visual-screenshots (1)/images/afc1be11da46a18bb8982a85c65fb4b0.png +0 -0
  1450. package/style/visual-screenshots (1)/images/b011549fe677ebb17fa307dbc03d36d9.png +0 -0
  1451. package/style/visual-screenshots (1)/images/b0bff9f5d7141b079b666e5fb16abd22.png +0 -0
  1452. package/style/visual-screenshots (1)/images/b0dbbbef7ff3804d58ce28e9685b88e0.png +0 -0
  1453. package/style/visual-screenshots (1)/images/b0dfa6af25989c4c3d2e9aef64daab17.png +0 -0
  1454. package/style/visual-screenshots (1)/images/b10bf8e372bca5d68241320f75bc1748.png +0 -0
  1455. package/style/visual-screenshots (1)/images/b10ed3d6ec38c9c253a4446e106e75ea.png +0 -0
  1456. package/style/visual-screenshots (1)/images/b141a65b0038d524dd290c00eddace3d.png +0 -0
  1457. package/style/visual-screenshots (1)/images/b16111054dc7e5c31d822180d54ea0e6.png +0 -0
  1458. package/style/visual-screenshots (1)/images/b1776e0a89f070ea680f256ed27ebf1e.png +0 -0
  1459. package/style/visual-screenshots (1)/images/b27ff00e501d23c43b509c1a0168ef39.png +0 -0
  1460. package/style/visual-screenshots (1)/images/b2aa4c06bcefcb7c92204acdd30d3197.png +0 -0
  1461. package/style/visual-screenshots (1)/images/b2fef056d1f15f4ba8619f31541dd0e5.png +0 -0
  1462. package/style/visual-screenshots (1)/images/b35f5b3650f7806ab3390e0ba67df1a4.png +0 -0
  1463. package/style/visual-screenshots (1)/images/b3dd87d68dcdfd82fa97cdf4e39c2b27.png +0 -0
  1464. package/style/visual-screenshots (1)/images/b3e5876c63e8256843b4090dc4b441ad.png +0 -0
  1465. package/style/visual-screenshots (1)/images/b3f19d58a18bfd34f92764ec41877c3c.png +0 -0
  1466. package/style/visual-screenshots (1)/images/b43533c13c416aad326bc67d0f44929e.png +0 -0
  1467. package/style/visual-screenshots (1)/images/b4382971635528760348cbe2b70605fe.png +0 -0
  1468. package/style/visual-screenshots (1)/images/b45844d5501be7c8431cc1306e3f3ae5.png +0 -0
  1469. package/style/visual-screenshots (1)/images/b468a14b6c8e54db94b61c71b9662af0.png +0 -0
  1470. package/style/visual-screenshots (1)/images/b4a02c9fc04ef4dc159e7beccd7ccfa7.png +0 -0
  1471. package/style/visual-screenshots (1)/images/b4b41ceb35d80f9f629859558b75b19e.png +0 -0
  1472. package/style/visual-screenshots (1)/images/b4edb5a1c390edd5c541c18e1a4ab68f.png +0 -0
  1473. package/style/visual-screenshots (1)/images/b513f66c5fdbab3a28e7db1b23bfb8c2.png +0 -0
  1474. package/style/visual-screenshots (1)/images/b5160b2c865a5e7b7d8b1e1abbf8d002.png +0 -0
  1475. package/style/visual-screenshots (1)/images/b52890091cf696f0150eae61232cb1dd.png +0 -0
  1476. package/style/visual-screenshots (1)/images/b56bb2b3dd4141b8e698820a515b8798.png +0 -0
  1477. package/style/visual-screenshots (1)/images/b5af14253c4cc74f16ddb0b6164f185c.png +0 -0
  1478. package/style/visual-screenshots (1)/images/b63069789fa7ac11755ea759d30a64a5.png +0 -0
  1479. package/style/visual-screenshots (1)/images/b651f7f296cf9f30e419d94a8c4895cf.png +0 -0
  1480. package/style/visual-screenshots (1)/images/b65482e30ffb8bec6c85103dcb71113d.png +0 -0
  1481. package/style/visual-screenshots (1)/images/b65b4bdb5c82820722ea76182517bc74.png +0 -0
  1482. package/style/visual-screenshots (1)/images/b65b9d44dcba156ab3152a6ee2592277.png +0 -0
  1483. package/style/visual-screenshots (1)/images/b68552f8eb800b1891a49bf1cd4d987d.png +0 -0
  1484. package/style/visual-screenshots (1)/images/b68eacd41b21135a2c2431a3ddc2dae5.png +0 -0
  1485. package/style/visual-screenshots (1)/images/b6a9a44405f5e4034c95f55ee8aed681.png +0 -0
  1486. package/style/visual-screenshots (1)/images/b6d2d0f7d50094fd163351d07a5e9251.png +0 -0
  1487. package/style/visual-screenshots (1)/images/b6ec4162d1414d4011b787dd127bad96.png +0 -0
  1488. package/style/visual-screenshots (1)/images/b6fe711492d73a1ad83be68fd782b5be.png +0 -0
  1489. package/style/visual-screenshots (1)/images/b702cca4b4fe43f208a58f37e4a7d0c8.png +0 -0
  1490. package/style/visual-screenshots (1)/images/b74e84ef684b263e0390552911c7b630.png +0 -0
  1491. package/style/visual-screenshots (1)/images/b76dc3cd48583a70f3f99348e259a192.png +0 -0
  1492. package/style/visual-screenshots (1)/images/b79d300707e6efd85959e1727354cda9.png +0 -0
  1493. package/style/visual-screenshots (1)/images/b7f774a62a166681f5e34f4f92e7df96.png +0 -0
  1494. package/style/visual-screenshots (1)/images/b85b4a6d8172ec3d4fe3875d1d5be438.png +0 -0
  1495. package/style/visual-screenshots (1)/images/b8fd7356a98d56ee49951392bc0a19f5.png +0 -0
  1496. package/style/visual-screenshots (1)/images/b9239778dee867ed3f14d2f3ffecd8d5.png +0 -0
  1497. package/style/visual-screenshots (1)/images/b936ab1e543d95bd0c818b0d2ddade05.png +0 -0
  1498. package/style/visual-screenshots (1)/images/b9afd9043e717ea55cd0a7c2e8768ec0.png +0 -0
  1499. package/style/visual-screenshots (1)/images/b9b032bae3f927fc7492af0717480a7c.png +0 -0
  1500. package/style/visual-screenshots (1)/images/ba1fea1b865b3beef1a1135bd779a706.png +0 -0
  1501. package/style/visual-screenshots (1)/images/ba2cbf010b08ef17e500a9a6f09756eb.png +0 -0
  1502. package/style/visual-screenshots (1)/images/ba900133c62ae20a043c8145deb72e61.png +0 -0
  1503. package/style/visual-screenshots (1)/images/bab341bf211ffe1d1cdcff9735458a37.png +0 -0
  1504. package/style/visual-screenshots (1)/images/bb54094e275897982cdadf3573cae164.png +0 -0
  1505. package/style/visual-screenshots (1)/images/bb551e3ba230869e0f7f74597ebdc929.png +0 -0
  1506. package/style/visual-screenshots (1)/images/bb5dc88ef581957bcde4779c0b6f96be.png +0 -0
  1507. package/style/visual-screenshots (1)/images/bb671a54edc0e2807e0ee792010765ce.png +0 -0
  1508. package/style/visual-screenshots (1)/images/bb6a7307e19bf9e4c588df181c01cf82.png +0 -0
  1509. package/style/visual-screenshots (1)/images/bb9c61c2c52257e6ac08122fc873e0a5.png +0 -0
  1510. package/style/visual-screenshots (1)/images/bb9d4ba104d323a504b867a9e7c26fa7.png +0 -0
  1511. package/style/visual-screenshots (1)/images/bbfc81ede881c3480dedc09c932b357c.png +0 -0
  1512. package/style/visual-screenshots (1)/images/bc69c3fc828d0ccd43620f5d7789f687.png +0 -0
  1513. package/style/visual-screenshots (1)/images/bc6a45c5e234c06fe2909be16df5cd68.png +0 -0
  1514. package/style/visual-screenshots (1)/images/bc7fbfc8cfa6fbaf42c181a83bc8f12e.png +0 -0
  1515. package/style/visual-screenshots (1)/images/bc812929e7194062888770b42ea680fa.png +0 -0
  1516. package/style/visual-screenshots (1)/images/bcf29c250245fcd6d4cd80fbb2076fe6.png +0 -0
  1517. package/style/visual-screenshots (1)/images/bd0adcbbc6b9f54fd8dc2c45f91118cf.png +0 -0
  1518. package/style/visual-screenshots (1)/images/bd2c0d240faaa73548693dd8792bd334.png +0 -0
  1519. package/style/visual-screenshots (1)/images/bd3c8aca71ef1e1bfcf54c9bdf7ec0c1.png +0 -0
  1520. package/style/visual-screenshots (1)/images/bd742a3ba78f04988baceee07b34b4c8.png +0 -0
  1521. package/style/visual-screenshots (1)/images/bde82fcc550d92789d65c593e33b9fa1.png +0 -0
  1522. package/style/visual-screenshots (1)/images/be0d5c5d87ffd9eb20686d37ded21477.png +0 -0
  1523. package/style/visual-screenshots (1)/images/be2d1a5e2a20ec9e70974dfd8ad15c05.png +0 -0
  1524. package/style/visual-screenshots (1)/images/be343f108940ac377accd7cd07cdd1e7.png +0 -0
  1525. package/style/visual-screenshots (1)/images/be40fd335f837d2f5a1d803b3aed4c94.png +0 -0
  1526. package/style/visual-screenshots (1)/images/bea6a7939bf5c8f3034f9f36d3aa83a0.png +0 -0
  1527. package/style/visual-screenshots (1)/images/bed34ed4f9077f51952b51283f4b473b.png +0 -0
  1528. package/style/visual-screenshots (1)/images/bedd63152750246fbfff2f3b8694840a.png +0 -0
  1529. package/style/visual-screenshots (1)/images/bf112e6d28f4ea8ab3c84b88d685cb92.png +0 -0
  1530. package/style/visual-screenshots (1)/images/bf1e7977779e36731e8cf90de8a2c018.png +0 -0
  1531. package/style/visual-screenshots (1)/images/bfbf13672d796f88652747c1c627c225.png +0 -0
  1532. package/style/visual-screenshots (1)/images/c14ed538a5d1e19c581b8a480a410873.png +0 -0
  1533. package/style/visual-screenshots (1)/images/c1a6e457a74e6f1e39d8056a575c6b61.png +0 -0
  1534. package/style/visual-screenshots (1)/images/c1bf639cb4ef73d3097a86bbe242e67b.png +0 -0
  1535. package/style/visual-screenshots (1)/images/c1e92e74a76d59360620dd36a44b48d7.png +0 -0
  1536. package/style/visual-screenshots (1)/images/c25a03ca4b6a75b60ca989c922a8c0ea.png +0 -0
  1537. package/style/visual-screenshots (1)/images/c29a6ce74d404486b42547c80ac64827.png +0 -0
  1538. package/style/visual-screenshots (1)/images/c2a8fd8eb01504bdf199bc631948fd65.png +0 -0
  1539. package/style/visual-screenshots (1)/images/c2b2a82c12745e02edc5a4296e64952e.png +0 -0
  1540. package/style/visual-screenshots (1)/images/c2e70eb9bba973017e04fde58f20439f.png +0 -0
  1541. package/style/visual-screenshots (1)/images/c31b279c27c044ff8023b74161774d65.png +0 -0
  1542. package/style/visual-screenshots (1)/images/c3de791621e788d6d096d488fdbf7eb7.png +0 -0
  1543. package/style/visual-screenshots (1)/images/c4347eb0e8a14227ad18be6b9de1cbc7.png +0 -0
  1544. package/style/visual-screenshots (1)/images/c45a7afc0498379e5b620ff4394e1759.png +0 -0
  1545. package/style/visual-screenshots (1)/images/c4bd15f6119ec6a9f86c7311605b8e9a.png +0 -0
  1546. package/style/visual-screenshots (1)/images/c5d033ba89e8621d33f0c1251f26cb94.png +0 -0
  1547. package/style/visual-screenshots (1)/images/c5f4925f4e800c08c097ac6cb57973c4.png +0 -0
  1548. package/style/visual-screenshots (1)/images/c645ca1d792395177ed9f550dc65ef98.png +0 -0
  1549. package/style/visual-screenshots (1)/images/c66f1911986c1798aa132cfda4c757c1.png +0 -0
  1550. package/style/visual-screenshots (1)/images/c6835996ac4b2b3f962a7c89245faa9e.png +0 -0
  1551. package/style/visual-screenshots (1)/images/c7295480cd7fd4a11a50458bb4bfc9c3.png +0 -0
  1552. package/style/visual-screenshots (1)/images/c76344aa17e7856258e6a7aba903caab.png +0 -0
  1553. package/style/visual-screenshots (1)/images/c7bbfb83d1e415c898256cc0fdcce3ca.png +0 -0
  1554. package/style/visual-screenshots (1)/images/c7c0f8a05585087c37d8209208bbcb54.png +0 -0
  1555. package/style/visual-screenshots (1)/images/c7de1a12552658b7fe3ce32a7f7ffb3e.png +0 -0
  1556. package/style/visual-screenshots (1)/images/c914e1a43cca34efae86f296ac56fdee.png +0 -0
  1557. package/style/visual-screenshots (1)/images/c9861de44663e597f55adc84ea88e5fc.png +0 -0
  1558. package/style/visual-screenshots (1)/images/c99d35eeb0dc348c34f4c8a9fe1c5f1d.png +0 -0
  1559. package/style/visual-screenshots (1)/images/ca32c8781f959efc16e24eeda14cc2d5.png +0 -0
  1560. package/style/visual-screenshots (1)/images/ca9c87751da7c73377da05d1cbf34974.png +0 -0
  1561. package/style/visual-screenshots (1)/images/cab16e07722c54b790e38a8b9995af8f.png +0 -0
  1562. package/style/visual-screenshots (1)/images/cb4e5d44970f3d22cfd664c95d5c23c6.png +0 -0
  1563. package/style/visual-screenshots (1)/images/cb99b0bf33401c42eebea1020004a1a8.png +0 -0
  1564. package/style/visual-screenshots (1)/images/cba574213771f455a9bd90fdd5711b82.png +0 -0
  1565. package/style/visual-screenshots (1)/images/cc30aaecf3c497e88d6e7aecae1b7583.png +0 -0
  1566. package/style/visual-screenshots (1)/images/cc690d6b70d361022b64cfd7e15aced7.png +0 -0
  1567. package/style/visual-screenshots (1)/images/ccc7eefe88ff7124ce9b7256a2754224.png +0 -0
  1568. package/style/visual-screenshots (1)/images/cd0ec559f03f247915ac7f28d051477f.png +0 -0
  1569. package/style/visual-screenshots (1)/images/cda5b907bdad7cc13b55cb525ff72402.png +0 -0
  1570. package/style/visual-screenshots (1)/images/ce19129cba94fa6ccfd2ab5416d93033.png +0 -0
  1571. package/style/visual-screenshots (1)/images/ce3c54aab036c6395dd8817abc6acfc6.png +0 -0
  1572. package/style/visual-screenshots (1)/images/ce4c143e3f25acaecf95fc6c74091386.png +0 -0
  1573. package/style/visual-screenshots (1)/images/ce639e1186fedb84b5d709bf36126612.png +0 -0
  1574. package/style/visual-screenshots (1)/images/ceca1dbf2a40a6524da989acf8c45825.png +0 -0
  1575. package/style/visual-screenshots (1)/images/cecd8cd95992457e1748c3bb0dd14f35.png +0 -0
  1576. package/style/visual-screenshots (1)/images/ced9cb27f2fe15debe7cae42e1b6347d.png +0 -0
  1577. package/style/visual-screenshots (1)/images/cf8ad194e11dfdb8aea6017def809c6f.png +0 -0
  1578. package/style/visual-screenshots (1)/images/cf95c3fcdb08ca9fd096c2aa90538a9f.png +0 -0
  1579. package/style/visual-screenshots (1)/images/d055162ca44e10714f581c72517de67a.png +0 -0
  1580. package/style/visual-screenshots (1)/images/d0907dbf3bbf9051d9ab0090a74eb8a2.png +0 -0
  1581. package/style/visual-screenshots (1)/images/d0dbadb5f8a71fe6a666cf4741ba583e.png +0 -0
  1582. package/style/visual-screenshots (1)/images/d0fc1daaab9d8154ac99b9923aca965e.png +0 -0
  1583. package/style/visual-screenshots (1)/images/d10379d630b08ba69cdbadef68160b74.png +0 -0
  1584. package/style/visual-screenshots (1)/images/d1dec19c84cc7d9d44d9bdbdc4ed0113.png +0 -0
  1585. package/style/visual-screenshots (1)/images/d1ecf153cbe7e6e5ab9df3ba963ac56a.png +0 -0
  1586. package/style/visual-screenshots (1)/images/d2085cde486b22d26ed3ed7dd092ac67.png +0 -0
  1587. package/style/visual-screenshots (1)/images/d21f0611ffb064596292ba09f7ae0aa7.png +0 -0
  1588. package/style/visual-screenshots (1)/images/d26da906f6e40a9f2de474ef00ffe192.png +0 -0
  1589. package/style/visual-screenshots (1)/images/d32bdba3c211974c488f05e49fdbd38e.png +0 -0
  1590. package/style/visual-screenshots (1)/images/d3f2e40808a135432120eec842002667.png +0 -0
  1591. package/style/visual-screenshots (1)/images/d3f4fb7a3520050add88a228446786c0.png +0 -0
  1592. package/style/visual-screenshots (1)/images/d42695727875489f5c823fc6a7637fc0.png +0 -0
  1593. package/style/visual-screenshots (1)/images/d43099f8107adb7d25c029fd861236c7.png +0 -0
  1594. package/style/visual-screenshots (1)/images/d465de97945852f83e9cfec896fda7fd.png +0 -0
  1595. package/style/visual-screenshots (1)/images/d4cb357a97d0069493f671c36973b023.png +0 -0
  1596. package/style/visual-screenshots (1)/images/d507e6178365edabfc44712f507b1ad4.png +0 -0
  1597. package/style/visual-screenshots (1)/images/d5c0ef8532ff82ac36069cd1a325ef27.png +0 -0
  1598. package/style/visual-screenshots (1)/images/d5d677892ed26746228c30990678ac38.png +0 -0
  1599. package/style/visual-screenshots (1)/images/d5ea4a9c77534f236c32e8f31e078587.png +0 -0
  1600. package/style/visual-screenshots (1)/images/d5f1ba6ddf9bbc40e86be0e2b82118af.png +0 -0
  1601. package/style/visual-screenshots (1)/images/d6069a71d1cf53673964d866460d32c8.png +0 -0
  1602. package/style/visual-screenshots (1)/images/d6242fd259465d2ba316d672684afcf7.png +0 -0
  1603. package/style/visual-screenshots (1)/images/d6b1c4c2db737fef0105bc33cda83309.png +0 -0
  1604. package/style/visual-screenshots (1)/images/d6c65a3c2f45d3f68984a0be5f3490bb.png +0 -0
  1605. package/style/visual-screenshots (1)/images/d6f1781682597261b255669cebe81e42.png +0 -0
  1606. package/style/visual-screenshots (1)/images/d7d9fb5a7dfc870527fb24b3642a56e3.png +0 -0
  1607. package/style/visual-screenshots (1)/images/d7deed321c78b937b9aac780d75a67e6.png +0 -0
  1608. package/style/visual-screenshots (1)/images/d8291cc7ad6e1607c344ed2ed1368ea3.png +0 -0
  1609. package/style/visual-screenshots (1)/images/d8560f2f2aeb2cf5601aac513f502b55.png +0 -0
  1610. package/style/visual-screenshots (1)/images/d8ba46aafe0f9c6e1a513c118e4ed9bc.png +0 -0
  1611. package/style/visual-screenshots (1)/images/d95148fef77af3db17d99a9e6d582f37.png +0 -0
  1612. package/style/visual-screenshots (1)/images/d9579cafca730bedcd047d6b5e00d6a4.png +0 -0
  1613. package/style/visual-screenshots (1)/images/d98fa9b6727f84959b2953eb2fb4bbd9.png +0 -0
  1614. package/style/visual-screenshots (1)/images/d9ccd1f0853f04288d98faaa99ffd839.png +0 -0
  1615. package/style/visual-screenshots (1)/images/d9d48b2652b1aec6a09d29ff489a2559.png +0 -0
  1616. package/style/visual-screenshots (1)/images/d9d72a2b10b10048726ee220b48fa527.png +0 -0
  1617. package/style/visual-screenshots (1)/images/d9d8147e7f3bb24b517f342fcccde022.png +0 -0
  1618. package/style/visual-screenshots (1)/images/d9df19d7691aa789d2a8bc95bf35da2c.png +0 -0
  1619. package/style/visual-screenshots (1)/images/da1074f521e0588e392120962859f25f.png +0 -0
  1620. package/style/visual-screenshots (1)/images/da3533dfa11d516896891b192864e447.png +0 -0
  1621. package/style/visual-screenshots (1)/images/dae067c3ccb9466b05711591ecd99896.png +0 -0
  1622. package/style/visual-screenshots (1)/images/db652f7540592f22fce8d51c2db86e93.png +0 -0
  1623. package/style/visual-screenshots (1)/images/db68bc1a1dabafb95a485a230f9a8891.png +0 -0
  1624. package/style/visual-screenshots (1)/images/db9207243bf814e40de5d4f04ca70316.png +0 -0
  1625. package/style/visual-screenshots (1)/images/db9f75240f51bca9b761494cedeccff2.png +0 -0
  1626. package/style/visual-screenshots (1)/images/dbc774ff92faa624b4987219fa52042d.png +0 -0
  1627. package/style/visual-screenshots (1)/images/dc0de0f379b7b76e387beb9d57e912eb.png +0 -0
  1628. package/style/visual-screenshots (1)/images/dd3dcde1007bc96a7e41eeb1436699a5.png +0 -0
  1629. package/style/visual-screenshots (1)/images/dda39199ff0717086ab54dd718ad525f.png +0 -0
  1630. package/style/visual-screenshots (1)/images/ddcd258c6ad4c8489c1b51df313691e9.png +0 -0
  1631. package/style/visual-screenshots (1)/images/ddcf43a676ca66b76dd293e2217bff54.png +0 -0
  1632. package/style/visual-screenshots (1)/images/ddf8772071d057082129df7ddb91cb63.png +0 -0
  1633. package/style/visual-screenshots (1)/images/de538ffe7bb41fe54ed51f548dbe2fba.png +0 -0
  1634. package/style/visual-screenshots (1)/images/df18d193dd77c73ceb593e100945b30d.png +0 -0
  1635. package/style/visual-screenshots (1)/images/df7a11e9552448272332cb2a6d8194b8.png +0 -0
  1636. package/style/visual-screenshots (1)/images/df8a111e64e1601833438a267e53d53e.png +0 -0
  1637. package/style/visual-screenshots (1)/images/dfb1101ae11b4e4cbcd14e109f2c2810.png +0 -0
  1638. package/style/visual-screenshots (1)/images/dfd25ea8862f0ef09292b87930278f8b.png +0 -0
  1639. package/style/visual-screenshots (1)/images/e010fa0f10828dfec180f664eb3b904e.png +0 -0
  1640. package/style/visual-screenshots (1)/images/e019e72c9310bf80c7d8a060b05b9c37.png +0 -0
  1641. package/style/visual-screenshots (1)/images/e0fad740e1ea1190ae5bafcc312b7345.png +0 -0
  1642. package/style/visual-screenshots (1)/images/e129f142d3b5053ef5be1eb5b2c3e892.png +0 -0
  1643. package/style/visual-screenshots (1)/images/e166d553d849e0c78ef876004aad7a5f.png +0 -0
  1644. package/style/visual-screenshots (1)/images/e16f3ba70a3637f3220f043e2135e130.png +0 -0
  1645. package/style/visual-screenshots (1)/images/e1e5fe1fd5d6ee275513f269c86d6305.png +0 -0
  1646. package/style/visual-screenshots (1)/images/e23bd037d12d40a0719647cc0e872a58.png +0 -0
  1647. package/style/visual-screenshots (1)/images/e2a3a5bb4365d8f726c66cdd0502df93.png +0 -0
  1648. package/style/visual-screenshots (1)/images/e2c01035d03336301a1d9b296c8d9ab3.png +0 -0
  1649. package/style/visual-screenshots (1)/images/e2d8e8137e7670d15c4607f1d656477f.png +0 -0
  1650. package/style/visual-screenshots (1)/images/e302c8e4a9ea160a0a19968825d55dab.png +0 -0
  1651. package/style/visual-screenshots (1)/images/e34b18aac8583e91e021b41bbfd7fd5f.png +0 -0
  1652. package/style/visual-screenshots (1)/images/e356cf56ccaa076bbc8d34dc8f793843.png +0 -0
  1653. package/style/visual-screenshots (1)/images/e35d22101819324c038cd263e9c8f518.png +0 -0
  1654. package/style/visual-screenshots (1)/images/e3805efcd137ad98512fa1c3f8d54a1d.png +0 -0
  1655. package/style/visual-screenshots (1)/images/e39ce053c84fc3a5528ac4b5641ac9cf.png +0 -0
  1656. package/style/visual-screenshots (1)/images/e3a3c7767a5eb9522dea438bff6728cc.png +0 -0
  1657. package/style/visual-screenshots (1)/images/e3aab7603407b6e1b444b0eac170a7ec.png +0 -0
  1658. package/style/visual-screenshots (1)/images/e43a752514e8b393cb628520b605b584.png +0 -0
  1659. package/style/visual-screenshots (1)/images/e442163823ed8edcc7160818be69b398.png +0 -0
  1660. package/style/visual-screenshots (1)/images/e4b10dde183f07a84513d76d429a6958.png +0 -0
  1661. package/style/visual-screenshots (1)/images/e4d50b654335e71fc4967b82c344dbfe.png +0 -0
  1662. package/style/visual-screenshots (1)/images/e51ca2c2a84b03fc98f79f02fe7068aa.png +0 -0
  1663. package/style/visual-screenshots (1)/images/e58ef5ed950fbb2b1079d74d45b7c881.png +0 -0
  1664. package/style/visual-screenshots (1)/images/e5ade203143dc82491aa076121660e52.png +0 -0
  1665. package/style/visual-screenshots (1)/images/e605ecbc474952712389539463a04aa7.png +0 -0
  1666. package/style/visual-screenshots (1)/images/e6262e247906000955ae8374d655a906.png +0 -0
  1667. package/style/visual-screenshots (1)/images/e6595c721f80b610721aaeeb5e2f75a6.png +0 -0
  1668. package/style/visual-screenshots (1)/images/e6709d9c191735263eb3b486e7a72f85.png +0 -0
  1669. package/style/visual-screenshots (1)/images/e6d314422345a30bf6c0ef3e18e583a0.png +0 -0
  1670. package/style/visual-screenshots (1)/images/e6d939c8648a17c13549f5f2adb346e7.png +0 -0
  1671. package/style/visual-screenshots (1)/images/e6dbee568bfdc18e352b077e374ff82f.png +0 -0
  1672. package/style/visual-screenshots (1)/images/e703bac13e2532ce5533d2a57a8a5fa6.png +0 -0
  1673. package/style/visual-screenshots (1)/images/e716cb5e49fdadf37afefab471babf94.png +0 -0
  1674. package/style/visual-screenshots (1)/images/e7441187368963e6b130042df812ef91.png +0 -0
  1675. package/style/visual-screenshots (1)/images/e7c2f6b6c968145071f9cb8636dfbc3e.png +0 -0
  1676. package/style/visual-screenshots (1)/images/e7e9cbbc3d0dd144406d6a315ec0ddc0.png +0 -0
  1677. package/style/visual-screenshots (1)/images/e7fa6277441b9b69cc3b5306e16b7cf1.png +0 -0
  1678. package/style/visual-screenshots (1)/images/e83fb6530e1c56b78ecf6b7ecf9093b4.png +0 -0
  1679. package/style/visual-screenshots (1)/images/e84d5f9378fbad753243b00f534b5a2b.png +0 -0
  1680. package/style/visual-screenshots (1)/images/e874c84e2c3efc6531e1ed444ef48e0c.png +0 -0
  1681. package/style/visual-screenshots (1)/images/e880df04bcd581fdc14320972bb587c7.png +0 -0
  1682. package/style/visual-screenshots (1)/images/e888e0e6d4a78e02b76328fa84356ca8.png +0 -0
  1683. package/style/visual-screenshots (1)/images/e8ae475c96c0350cab5788186441a468.png +0 -0
  1684. package/style/visual-screenshots (1)/images/e8b5543222dd07074f913c0ee347cc2a.png +0 -0
  1685. package/style/visual-screenshots (1)/images/e92d837bf473dd88b1644ce81eeb8271.png +0 -0
  1686. package/style/visual-screenshots (1)/images/e9690ff4793f30325dfc007d07f11515.png +0 -0
  1687. package/style/visual-screenshots (1)/images/e9a4edf0d472871407e3de2a94491d38.png +0 -0
  1688. package/style/visual-screenshots (1)/images/e9da22cdb0b57bbbb78d72fa243613f1.png +0 -0
  1689. package/style/visual-screenshots (1)/images/e9f7a5fc6028e6009408ba7587604837.png +0 -0
  1690. package/style/visual-screenshots (1)/images/ea87140d4d01e99436eb8517e1a59744.png +0 -0
  1691. package/style/visual-screenshots (1)/images/eb1e5e278264b3344fd8251f8e3a567c.png +0 -0
  1692. package/style/visual-screenshots (1)/images/eb270de24170c48625abe27e1add013b.png +0 -0
  1693. package/style/visual-screenshots (1)/images/eb321262ddafb26c0121bd595505ffd4.png +0 -0
  1694. package/style/visual-screenshots (1)/images/eb89e9322f47193680a195eedec9ca1f.png +0 -0
  1695. package/style/visual-screenshots (1)/images/eb8ba90ad716449ab1fbe18715131465.png +0 -0
  1696. package/style/visual-screenshots (1)/images/ebea496ec420dde6eb11929ef25c9d4e.png +0 -0
  1697. package/style/visual-screenshots (1)/images/ec06a26e681c9d07ecb4aa29d4e551f4.png +0 -0
  1698. package/style/visual-screenshots (1)/images/ec418171a7341bd39a64ee5e1405de5c.png +0 -0
  1699. package/style/visual-screenshots (1)/images/ec801a1f7ded7e4f72b3b83d56ef137b.png +0 -0
  1700. package/style/visual-screenshots (1)/images/eceac800e5e5ec35a7ac973102588b9a.png +0 -0
  1701. package/style/visual-screenshots (1)/images/ed32af8a6de2ef712782d8c700d5ea9c.png +0 -0
  1702. package/style/visual-screenshots (1)/images/ed996049ed03540673123208a1939af9.png +0 -0
  1703. package/style/visual-screenshots (1)/images/edea0089834ada9ac7c1955bbc7b60e8.png +0 -0
  1704. package/style/visual-screenshots (1)/images/ee0321657e33c16d1cafb4124cc8b84e.png +0 -0
  1705. package/style/visual-screenshots (1)/images/ee2e3f6e90b8c2a479d187d5c33257d9.png +0 -0
  1706. package/style/visual-screenshots (1)/images/ee5c6318a17593c06dc4893c84e64535.png +0 -0
  1707. package/style/visual-screenshots (1)/images/ee880fd8c1965895a4c79cf4c744feac.png +0 -0
  1708. package/style/visual-screenshots (1)/images/eed96dc07ed46b9585a3fa2f9655268f.png +0 -0
  1709. package/style/visual-screenshots (1)/images/efcf97ad2d48fcce21b8052fb8e1f02d.png +0 -0
  1710. package/style/visual-screenshots (1)/images/f02927c03369f309483a9c4ddf1dd918.png +0 -0
  1711. package/style/visual-screenshots (1)/images/f033f0f98be280ace4c6d4b0366bb46f.png +0 -0
  1712. package/style/visual-screenshots (1)/images/f039bdda30367e329cf997e85fe4c5e8.png +0 -0
  1713. package/style/visual-screenshots (1)/images/f04add34ff27aa15ee72e77d143d3ed8.png +0 -0
  1714. package/style/visual-screenshots (1)/images/f05fc5650db3e0ecc2baf3860da0d195.png +0 -0
  1715. package/style/visual-screenshots (1)/images/f095476fc0248cf27fa814706177534f.png +0 -0
  1716. package/style/visual-screenshots (1)/images/f0ca029abc93f4e8105da3e5ab56e1c4.png +0 -0
  1717. package/style/visual-screenshots (1)/images/f136123d6a6e67a75080296043b5e5de.png +0 -0
  1718. package/style/visual-screenshots (1)/images/f14f173c0407db4e2e0d465809e3035f.png +0 -0
  1719. package/style/visual-screenshots (1)/images/f1c37fd272da405acfb07e2bcd9e2e86.png +0 -0
  1720. package/style/visual-screenshots (1)/images/f1d9cb85975d8f2259098078a9801e0f.png +0 -0
  1721. package/style/visual-screenshots (1)/images/f1ec44ad9bd197b6cf6709425b1f493c.png +0 -0
  1722. package/style/visual-screenshots (1)/images/f2357c90c5bc52def3fac87e0ec9997a.png +0 -0
  1723. package/style/visual-screenshots (1)/images/f27d1e0db5abfe19d41b8158d4d2e864.png +0 -0
  1724. package/style/visual-screenshots (1)/images/f28b1b0716ee2f45646a13b5b5c25ece.png +0 -0
  1725. package/style/visual-screenshots (1)/images/f2a9936c632f6d5df93af4b94ca90234.png +0 -0
  1726. package/style/visual-screenshots (1)/images/f2e3472901c35c71c0182432ed609d7f.png +0 -0
  1727. package/style/visual-screenshots (1)/images/f3492d235f8072e4adf1060958453ee6.png +0 -0
  1728. package/style/visual-screenshots (1)/images/f3e92ee96aa91f49801ea4202f6081ac.png +0 -0
  1729. package/style/visual-screenshots (1)/images/f43bdfc49eaa4bc64a3d388173c76744.png +0 -0
  1730. package/style/visual-screenshots (1)/images/f43fae61c6f1cfb638fd3741f3742d5b.png +0 -0
  1731. package/style/visual-screenshots (1)/images/f44444b4e7bcd9cc38987cfbca3c88bc.png +0 -0
  1732. package/style/visual-screenshots (1)/images/f457b6c69704125d620b062e0a63c81d.png +0 -0
  1733. package/style/visual-screenshots (1)/images/f49bdba18143e37cebfccebb84983aaa.png +0 -0
  1734. package/style/visual-screenshots (1)/images/f4a592740204a611f064fd861eea879f.png +0 -0
  1735. package/style/visual-screenshots (1)/images/f4b874f85d61abcdb5d4dac56574e983.png +0 -0
  1736. package/style/visual-screenshots (1)/images/f4d48a8d20e7217ab3bd4eb920e2e90b.png +0 -0
  1737. package/style/visual-screenshots (1)/images/f4fa32cbd842631dda4967bb7b0805f4.png +0 -0
  1738. package/style/visual-screenshots (1)/images/f5a634ee1f8883b9a9910709b1a70dd9.png +0 -0
  1739. package/style/visual-screenshots (1)/images/f5f154f17b8ddd7fe6584229e3e433dc.png +0 -0
  1740. package/style/visual-screenshots (1)/images/f5f5aa0c94bc0096ca632bde832e4ac0.png +0 -0
  1741. package/style/visual-screenshots (1)/images/f611a4b1de325f7426c8b29b43cfae35.png +0 -0
  1742. package/style/visual-screenshots (1)/images/f63233f9dc04d7dcfd4ff56369f0b130.png +0 -0
  1743. package/style/visual-screenshots (1)/images/f692554ff308ca1cd0fbe7a22b3b22ca.png +0 -0
  1744. package/style/visual-screenshots (1)/images/f75eda47bbe4bbe2ea30a65b7856a44b.png +0 -0
  1745. package/style/visual-screenshots (1)/images/f781be55c666aac6c83ca4d07e9c42ca.png +0 -0
  1746. package/style/visual-screenshots (1)/images/f7bf00972a29fdf599c8217b28de96d6.png +0 -0
  1747. package/style/visual-screenshots (1)/images/f86fea7ffab0866bda8a3b414f7cd3b7.png +0 -0
  1748. package/style/visual-screenshots (1)/images/f87eb71c300ab4b2d498be9a55ee1618.png +0 -0
  1749. package/style/visual-screenshots (1)/images/f8b36602184f5158860506fe64079c89.png +0 -0
  1750. package/style/visual-screenshots (1)/images/f8ee607f6421ba60f973b9bff376ae28.png +0 -0
  1751. package/style/visual-screenshots (1)/images/f9080ba22d397d83f09047ebdfe84239.png +0 -0
  1752. package/style/visual-screenshots (1)/images/f9145ef284d04f6336229ff666af70e3.png +0 -0
  1753. package/style/visual-screenshots (1)/images/f93aaf6c9ea9f70abb350f5255767c3f.png +0 -0
  1754. package/style/visual-screenshots (1)/images/f95685e60e185b4b3da22bb8bf70e7e2.png +0 -0
  1755. package/style/visual-screenshots (1)/images/f97ab81b758db662a2eb1617a6efe217.png +0 -0
  1756. package/style/visual-screenshots (1)/images/fa7325e4f52bb809c79c2f8df2699b93.png +0 -0
  1757. package/style/visual-screenshots (1)/images/fa793989f4717dd55b1c603086785688.png +0 -0
  1758. package/style/visual-screenshots (1)/images/faab9362d2ff082b2ec255bd3f87f52c.png +0 -0
  1759. package/style/visual-screenshots (1)/images/fad9c13edad825e537ef70d1f5ac9ffc.png +0 -0
  1760. package/style/visual-screenshots (1)/images/faf67bf2491d228a3147ca1b197ce7c0.png +0 -0
  1761. package/style/visual-screenshots (1)/images/fb0bba6fa80d2f1d58b9fe1a3cae80fd.png +0 -0
  1762. package/style/visual-screenshots (1)/images/fb21968682604e963f859ce4a3063449.png +0 -0
  1763. package/style/visual-screenshots (1)/images/fb2756dae46b9f5078e264cd3419bb7f.png +0 -0
  1764. package/style/visual-screenshots (1)/images/fc344f5b8408cc30060f888515927391.png +0 -0
  1765. package/style/visual-screenshots (1)/images/fca29f7a114d6e4df2ca093e1d9cf90a.png +0 -0
  1766. package/style/visual-screenshots (1)/images/fced6958bf1d22d95b4609bb6cb90c07.png +0 -0
  1767. package/style/visual-screenshots (1)/images/fd92b9e1229dbd6160436f5b92cd21b0.png +0 -0
  1768. package/style/visual-screenshots (1)/images/fdf7376c972f3c4f40789c0f217c0480.png +0 -0
  1769. package/style/visual-screenshots (1)/images/fe13a66e7e5ede78792937bf010f022c.png +0 -0
  1770. package/style/visual-screenshots (1)/images/fe2c4234c413f4ad2d054fd091242f8e.png +0 -0
  1771. package/style/visual-screenshots (1)/images/fe4603d37d7b7abc55ebda66bb81b8d9.png +0 -0
  1772. package/style/visual-screenshots (1)/images/fe9188d474135ba66971a9ea60921c3d.png +0 -0
  1773. package/style/visual-screenshots (1)/images/febb9b60ded19124b91a836fcbc37936.png +0 -0
  1774. package/style/visual-screenshots (1)/images/fedb6514016e34df2fcb29eef107d385.png +0 -0
  1775. package/style/visual-screenshots (1)/images/ff5d801d62c71a38028c2d406af30b8f.png +0 -0
  1776. package/style/visual-screenshots (1)/images/ffa3e2813a91c22ec33346792ba47461.png +0 -0
  1777. package/style/visual-screenshots (1)/images/ffb7b8ff61c2ce675eaeaa8104a3f178.png +0 -0
@@ -0,0 +1,4648 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-58ea899e.js');
6
+ const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
7
+ const componentUsageRuntimeMetrics = require('./component-usage-runtime-metrics-d10ace87.js');
8
+ const component = require('./component-1e352960.js');
9
+ const accessibility = require('./accessibility-bfa227f6.js');
10
+ const changeManager = require('./change-manager-a297e4d2.js');
11
+ const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-1c8f7880.js');
12
+ const vegaInternalEventId = require('./vega-internal-event-id-a5ef414b.js');
13
+ const dtoRendererManager = require('./dto-renderer-manager-f3820a6b.js');
14
+ const typeGuard = require('./type-guard-69d2cf01.js');
15
+ const internalIconManager = require('./internal-icon-manager-32f9ed63.js');
16
+ const codeBlock = require('./code-block-a7c8825f.js');
17
+ const imageAnnotationAction = require('./image-annotation-action-64414e40.js');
18
+ const createPublicApiRuntimeMetricsSlimmer = require('./create-public-api-runtime-metrics-slimmer-e2e274e1.js');
19
+ const index$1 = require('./index-c7fbf32b.js');
20
+ const formFieldControllerSlimmer = require('./form-field-controller-slimmer-57525f26.js');
21
+ const eventEmitSlimmer = require('./event-emit-slimmer-f7255138.js');
22
+ const subStateNotifySlimmer = require('./sub-state-notify-slimmer-9fe1ab65.js');
23
+ const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-868de3c4.js');
24
+ const staticSubjectTitle = require('./static-subject-title-5829a298.js');
25
+ const observer = require('./observer-f49483e8.js');
26
+ const timer = require('./timer-5f33058b.js');
27
+ const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-8a87ec08.js');
28
+ const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-65d85060.js');
29
+ const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-871855df.js');
30
+ const translationSlimmer = require('./translation-slimmer-f0ebe710.js');
31
+ const darkModeStyleController = require('./dark-mode-style-controller-c21172aa.js');
32
+ const array = require('./array-249289f2.js');
33
+ const chevronDown = require('./chevron-down-9847bf78.js');
34
+ const trashCan = require('./trash-can-46a5e19a.js');
35
+ const ui = require('./ui-9e181079.js');
36
+ const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
37
+ require('./string-39438062.js');
38
+ require('./object-e2e28e3d.js');
39
+ require('./breakpoints-ebde4837.js');
40
+ require('./ui-32e69595.js');
41
+ require('./typography-4560e7f1.js');
42
+ require('./translation-5f9f9c0c.js');
43
+ require('./dynamic-slimmer-f31fdfd7.js');
44
+ require('./wait-for-vega-handler-5469ff80.js');
45
+ require('./page-resize-observer-slimmer-11937d6f.js');
46
+ require('./try-get-document-c0ebd39a.js');
47
+ require('./internal-form-field-validation-rule.abstract-07cdff46.js');
48
+ require('./mutation-observer-slimmer-749d5020.js');
49
+ require('./mutation-observer-filters-38cebc6d.js');
50
+ require('./sub-state-observer-slimmer-2f6f4d28.js');
51
+ require('./internal-vega-event-manager-0e1ba774.js');
52
+ require('./range-14190f6b.js');
53
+ require('./synchronize-task-queue-1ee80e94.js');
54
+ require('./keyboard-manager-slimmer-15e65357.js');
55
+ require('./keyboard-manager-d8adb0ed.js');
56
+ require('./vega-env-manager-23b8b23c.js');
57
+ require('./feature-flag-controller-ce2162c8.js');
58
+ require('./index-4d7bce1a.js');
59
+ require('./_commonjsHelpers-537d719a.js');
60
+ require('./vega-nonce-manager-df69d3ed.js');
61
+ require('./number-4816603d.js');
62
+
63
+ /**
64
+ * Class to format HTML code with proper indentation and style cleanup.
65
+ */
66
+ class CodeFormatter {
67
+ constructor() {
68
+ /**
69
+ * Formats a given HTML source string by applying indentation and cleaning up styles.
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
+ for (let i = 0; i < tokens.length; i++) {
85
+ let token = tokens[i];
86
+ // Decrease indentation for closing tags
87
+ if (token.startsWith('</')) {
88
+ indentLevel = Math.max(0, indentLevel - 1);
89
+ }
90
+ const indent = INDENT.repeat(indentLevel);
91
+ if (token.startsWith('<')) {
92
+ // Clean and normalize inline style attributes
93
+ token = token.replace(/style\s*=\s*"([^"]*)"/g, (_, styleContent) => {
94
+ return `style="${this.formatStyle(styleContent)}"`;
95
+ });
96
+ const tagName = CodeFormatter.getTagName(token);
97
+ const isInline = CodeFormatter.INLINE_TAGS.has(tagName);
98
+ // Inline tag grouping: e.g., <strong>Text</strong> stays on one line
99
+ if (isInline && i + 2 < tokens.length && tokens[i + 2] === `</${tagName}>`) {
100
+ // Group consecutive inline tags
101
+ let inlineGroup = `${token}${tokens[i + 1]}${tokens[i + 2]}`;
102
+ i += 2;
103
+ // Keep merging consecutive inline tag pairs
104
+ while (i + 2 < tokens.length &&
105
+ tokens[i + 1].startsWith('<') &&
106
+ CodeFormatter.INLINE_TAGS.has(CodeFormatter.getTagName(tokens[i + 1])) &&
107
+ tokens[i + 3] === `</${CodeFormatter.getTagName(tokens[i + 1])}>`) {
108
+ inlineGroup += `${tokens[i + 1]}${tokens[i + 2]}${tokens[i + 3]}`;
109
+ i += 3;
110
+ }
111
+ output += `${indent}${inlineGroup}\n`;
112
+ }
113
+ else {
114
+ output += `${indent}${token}\n`;
115
+ // Increase indentation for non-void opening tags
116
+ if (!token.startsWith('</') &&
117
+ !token.endsWith('/>') &&
118
+ !/^<br|^<img|^<meta|^<input|^<hr/i.test(token)) {
119
+ indentLevel++;
120
+ }
121
+ }
122
+ }
123
+ else {
124
+ // Add plain text content with current indentation
125
+ const text = token;
126
+ if (text.length > 0) {
127
+ output += `${INDENT.repeat(indentLevel)}${text}\n`;
128
+ }
129
+ }
130
+ }
131
+ return output.trim();
132
+ };
133
+ }
134
+ /**
135
+ * Extracts the tag name from an HTML tag string.
136
+ *
137
+ * @param {string} tag - A raw HTML tag string
138
+ * @returns {string} The lowercase tag name, or an empty string if no match is found.
139
+ */
140
+ static getTagName(tag) {
141
+ var _a;
142
+ const match = tag.match(/^<\/?([a-z0-9]+)/i);
143
+ return (_a = match === null || match === void 0 ? void 0 : match[1].toLowerCase()) !== null && _a !== void 0 ? _a : '';
144
+ }
145
+ /**
146
+ * Formats a CSS style string by trimming white space and ensuring consistent semicolon spacing.
147
+ *
148
+ * @param {string} style - The CSS style string to format.
149
+ * @returns {string} The formatted style string.
150
+ */
151
+ formatStyle(style) {
152
+ return style
153
+ .split(';')
154
+ .map((s) => s.trim())
155
+ .filter(Boolean)
156
+ .join('; ');
157
+ }
158
+ }
159
+ CodeFormatter.INLINE_TAGS = new Set([
160
+ 'span',
161
+ 'strong',
162
+ 'em',
163
+ 'a',
164
+ 'b',
165
+ 'i',
166
+ 'u',
167
+ 'small',
168
+ 'abbr',
169
+ 'code',
170
+ 'b',
171
+ 'u',
172
+ 's',
173
+ 'mark',
174
+ 'time',
175
+ 'del',
176
+ 'ins',
177
+ ]);
178
+ const CodeFormatter$1 = new CodeFormatter();
179
+
180
+ var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
181
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
182
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
183
+ 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;
184
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
185
+ };
186
+ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
187
+ constructor() {
188
+ super(...arguments);
189
+ this.renderHintMessage = () => {
190
+ return index.h("vega-text", null, this.hint);
191
+ };
192
+ this.renderTextContent = () => {
193
+ return (index.h("div", { class: {
194
+ 'rich-text-editor-container': true,
195
+ 'disabled': this.disabled,
196
+ 'vega-hidden': this.sourceView,
197
+ }, style: { minHeight: `${this.rows * 24}px` }, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: accessibility.createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
198
+ index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions }),
199
+ this.renderCharacterCounter()));
200
+ };
201
+ this.renderCharacterCounter = () => {
202
+ return (index.h("div", { class: {
203
+ 'text-editor-counter': true,
204
+ 'counter-exceed-max-length': false,
205
+ }, style: { display: 'none' } },
206
+ index.h("span", null, "0"),
207
+ index.h("span", null, "/100")));
208
+ };
209
+ this.renderErrorMessage = () => {
210
+ return index.h("div", { class: "vega-error vega-hidden" });
211
+ };
212
+ this.richTextContentFocus = () => {
213
+ void this.richTextContentRef.vegaFocus();
214
+ };
215
+ this.renderSourceViewContent = () => {
216
+ if (!this.allowSourceEdit)
217
+ return;
218
+ const sourceViewValue = this.sourceView ? CodeFormatter$1.format(this.value.toHtml()) : '';
219
+ return (index.h("div", { class: {
220
+ 'source-view-container': true,
221
+ 'vega-hidden': !this.sourceView,
222
+ } },
223
+ index.h("vega-code-block", { ref: (ref) => (this.sourceCodeBlockRef = ref), disabled: this.disabled, value: { language: 'html', code: sourceViewValue } })));
224
+ };
225
+ }
226
+ /**
227
+ * Component lifecycle - [componentDidRender]{@link VegaRichTextEditor.componentDidRender}
228
+ */
229
+ componentDidRender() {
230
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
231
+ }
232
+ /**
233
+ * Returns the HTMLElement reference of the rich text container.
234
+ *
235
+ * @returns {HTMLDivElement} An HTMLElement representing the rich text container is being returned.
236
+ */
237
+ getRichTextContainerRef() {
238
+ return this.richTextContainerRef;
239
+ }
240
+ /**
241
+ * Returns the HTMLElement reference of the rich text content area.
242
+ *
243
+ * @returns {Nullable<HTMLVegaRichTextContentElement>} An HTMLVegaRichTextContentElement is being returned.
244
+ */
245
+ getRichTextContentRef() {
246
+ return this.richTextContentRef;
247
+ }
248
+ /**
249
+ * Returns the HTMLElement reference of the rich text outermost layer.
250
+ *
251
+ * @returns {HTMLVegaFlexElement} An HTMLVegaFlexElement is being returned.
252
+ */
253
+ getRichTextWrapperRef() {
254
+ return this.richTextWrapperRef;
255
+ }
256
+ /**
257
+ * Returns the rich text editor component editable element
258
+ *
259
+ * @returns {Nullable<HTMLDivElement>} The div element which has property contenteditable
260
+ */
261
+ getRTEEditableElementRef() {
262
+ if (this.richTextContentRef && this.richTextContentRef.shadowRoot) {
263
+ return this.richTextContentRef.shadowRoot.querySelector('.rich-text-content');
264
+ }
265
+ }
266
+ getSourceCode() {
267
+ if (this.sourceCodeBlockRef) {
268
+ return this.sourceCodeBlockRef.value.code;
269
+ }
270
+ }
271
+ render() {
272
+ return index.h(index.Host, null, this.renderRichTextEditor());
273
+ }
274
+ renderRichTextEditor() {
275
+ return (index.h("vega-flex", { direction: "col", gap: "0", ref: (flex) => (this.richTextWrapperRef = flex) },
276
+ this.renderLabel(),
277
+ this.hint && this.renderHintMessage(),
278
+ this.toolbarRenderer.render(),
279
+ this.renderContent(),
280
+ this.renderErrorMessage()));
281
+ }
282
+ renderLabel() {
283
+ return (this.label && (index.h("vega-field-label", { onClick: this.richTextContentFocus, isFieldRequired: this.required, disabled: this.disabled, label: this.label })));
284
+ }
285
+ renderContent() {
286
+ return (index.h(index.Fragment, null,
287
+ this.renderTextContent(),
288
+ this.renderSourceViewContent()));
289
+ }
290
+ }
291
+ __decorate$C([
292
+ globalSlimmerRegistry.MapToComponentField()
293
+ ], VegaRichTextEditorRenderer.prototype, "host", void 0);
294
+ __decorate$C([
295
+ globalSlimmerRegistry.MapToComponentField()
296
+ ], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
297
+ __decorate$C([
298
+ globalSlimmerRegistry.MapToComponentField()
299
+ ], VegaRichTextEditorRenderer.prototype, "label", void 0);
300
+ __decorate$C([
301
+ globalSlimmerRegistry.MapToComponentField()
302
+ ], VegaRichTextEditorRenderer.prototype, "required", void 0);
303
+ __decorate$C([
304
+ globalSlimmerRegistry.MapToComponentField()
305
+ ], VegaRichTextEditorRenderer.prototype, "hint", void 0);
306
+ __decorate$C([
307
+ globalSlimmerRegistry.MapToComponentField()
308
+ ], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
309
+ __decorate$C([
310
+ globalSlimmerRegistry.MapToComponentField()
311
+ ], VegaRichTextEditorRenderer.prototype, "rows", void 0);
312
+ __decorate$C([
313
+ globalSlimmerRegistry.MapToComponentField()
314
+ ], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
315
+ __decorate$C([
316
+ globalSlimmerRegistry.MapToComponentField()
317
+ ], VegaRichTextEditorRenderer.prototype, "value", void 0);
318
+ __decorate$C([
319
+ globalSlimmerRegistry.MapToComponentField()
320
+ ], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
321
+ __decorate$C([
322
+ globalSlimmerRegistry.MapToComponentField()
323
+ ], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
324
+ __decorate$C([
325
+ globalSlimmerRegistry.MapToComponentField()
326
+ ], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
327
+ __decorate$C([
328
+ globalSlimmerRegistry.MapToComponentField()
329
+ ], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
330
+ __decorate$C([
331
+ globalSlimmerRegistry.MapToComponentField()
332
+ ], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
333
+ __decorate$C([
334
+ globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
335
+ ], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
336
+
337
+ var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
338
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
339
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
340
+ 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;
341
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
342
+ };
343
+ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
344
+ constructor() {
345
+ super(...arguments);
346
+ this.getToolbarBtnRenderer = (type) => {
347
+ switch (type) {
348
+ case 'clearStyle':
349
+ return this.clearStyleToolbarButtonSlimmer;
350
+ case 'bold':
351
+ return this.boldToolbarButtonSlimmer;
352
+ case 'textStyles':
353
+ return this.textStylesToolbarButtonSlimmer;
354
+ case 'italic':
355
+ return this.italicToolbarButtonSlimmer;
356
+ case 'underline':
357
+ return this.underlineToolbarButtonSlimmer;
358
+ case 'textColor':
359
+ return this.textColorToolbarButtonSlimmer;
360
+ case 'moreIndent':
361
+ return this.moreIndentToolbarButtonSlimmer;
362
+ case 'lessIndent':
363
+ return this.lessIndentToolbarButtonSlimmer;
364
+ case 'code':
365
+ return this.codeToolbarButtonSlimmer;
366
+ case 'strikethrough':
367
+ return this.strikethroughToolbarButtonSlimmer;
368
+ case 'link':
369
+ return this.linkToolbarButtonSlimmer;
370
+ case 'image':
371
+ return this.imageToolbarButtonSlimmer;
372
+ case 'bulletsNumbers':
373
+ return this.bulletsNumbersToolbarButtonSlimmer;
374
+ case 'horizontalAlignment':
375
+ return this.horizontalAlignmentToolbarButtonSlimmer;
376
+ case 'codeBlock':
377
+ return this.codeBlockToolbarButtonSlimmer;
378
+ }
379
+ };
380
+ }
381
+ render() {
382
+ const [renderedItems, totalVisibleCount] = this.renderToolbarItems();
383
+ return (index.h("vega-flex", { gap: "size-8", alignItems: "center", flexWrap: "wrap" },
384
+ this.allowSourceEdit && (index.h(index.Fragment, null,
385
+ index.h("div", { class: "toolbar-btn-group" }, this.sourceEditToolbarButtonSlimmer.render()),
386
+ this.toolbarItems.length > 0 && totalVisibleCount > 0 && this.renderVegaDivider())),
387
+ renderedItems));
388
+ }
389
+ renderVegaDivider() {
390
+ return (index.h("vega-box", { height: "size-32" },
391
+ index.h("vega-divider", { direction: "vertical" })));
392
+ }
393
+ /**
394
+ * Renders the toolbar items based on the configured toolbar groups and items.
395
+ *
396
+ * @returns {[HTMLElement[], number]} A tuple containing the rendered toolbar items and the count of displayed items.
397
+ */
398
+ renderToolbarItems() {
399
+ let totalVisibleCount = 0;
400
+ const renderedItems = this.toolbarItems.map((group) => {
401
+ let visibleCountPerGroup = 0;
402
+ const groupElement = group
403
+ .map((item) => {
404
+ const presetRenderer = this.getToolbarBtnRenderer(item);
405
+ const customRenderer = dtoRendererManager.RTEDTORendererManager.getRTEToolbarButtonRenderer(item);
406
+ if (presetRenderer) {
407
+ if (!presetRenderer.isHidden()) {
408
+ totalVisibleCount++;
409
+ visibleCountPerGroup++;
410
+ }
411
+ return presetRenderer.render();
412
+ }
413
+ else if (customRenderer) {
414
+ const renderContext = {
415
+ sourceEditMode: this.sourceView,
416
+ host: this.host,
417
+ rteRange: this.selectionController.getCurrentRange(),
418
+ };
419
+ if (!customRenderer.isHidden(renderContext)) {
420
+ totalVisibleCount++;
421
+ visibleCountPerGroup++;
422
+ }
423
+ return customRenderer.render(index.h, renderContext);
424
+ }
425
+ return null;
426
+ })
427
+ .filter(typeGuard.isNonNullable);
428
+ return (index.h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 } }, groupElement));
429
+ });
430
+ return [renderedItems, totalVisibleCount];
431
+ }
432
+ }
433
+ __decorate$B([
434
+ globalSlimmerRegistry.MapToComponentField()
435
+ ], ToolbarRenderer.prototype, "toolbarItems", void 0);
436
+ __decorate$B([
437
+ globalSlimmerRegistry.MapToComponentField()
438
+ ], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
439
+ __decorate$B([
440
+ globalSlimmerRegistry.MapToComponentField()
441
+ ], ToolbarRenderer.prototype, "host", void 0);
442
+ __decorate$B([
443
+ globalSlimmerRegistry.MapToComponentField()
444
+ ], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
445
+ __decorate$B([
446
+ globalSlimmerRegistry.MapToComponentField()
447
+ ], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
448
+ __decorate$B([
449
+ globalSlimmerRegistry.MapToComponentField()
450
+ ], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
451
+ __decorate$B([
452
+ globalSlimmerRegistry.MapToComponentField()
453
+ ], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
454
+ __decorate$B([
455
+ globalSlimmerRegistry.MapToComponentField()
456
+ ], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
457
+ __decorate$B([
458
+ globalSlimmerRegistry.MapToComponentField()
459
+ ], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
460
+ __decorate$B([
461
+ globalSlimmerRegistry.MapToComponentField()
462
+ ], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
463
+ __decorate$B([
464
+ globalSlimmerRegistry.MapToComponentField()
465
+ ], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
466
+ __decorate$B([
467
+ globalSlimmerRegistry.MapToComponentField()
468
+ ], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
469
+ __decorate$B([
470
+ globalSlimmerRegistry.MapToComponentField()
471
+ ], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
472
+ __decorate$B([
473
+ globalSlimmerRegistry.MapToComponentField()
474
+ ], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
475
+ __decorate$B([
476
+ globalSlimmerRegistry.MapToComponentField()
477
+ ], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
478
+ __decorate$B([
479
+ globalSlimmerRegistry.MapToComponentField()
480
+ ], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
481
+ __decorate$B([
482
+ globalSlimmerRegistry.MapToComponentField()
483
+ ], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
484
+ __decorate$B([
485
+ globalSlimmerRegistry.MapToComponentField()
486
+ ], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
487
+ __decorate$B([
488
+ globalSlimmerRegistry.MapToComponentField()
489
+ ], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
490
+ __decorate$B([
491
+ globalSlimmerRegistry.MapToComponentField()
492
+ ], ToolbarRenderer.prototype, "selectionController", void 0);
493
+ __decorate$B([
494
+ globalSlimmerRegistry.MapToComponentField()
495
+ ], ToolbarRenderer.prototype, "sourceView", void 0);
496
+
497
+ const bold = {
498
+ 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>`,
499
+ };
500
+
501
+ var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
502
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
503
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
504
+ 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;
505
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
506
+ };
507
+ class BoldToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
508
+ constructor() {
509
+ super({
510
+ icon: 'bold',
511
+ tooltip: {
512
+ text: 'Bold',
513
+ },
514
+ });
515
+ }
516
+ onClick() {
517
+ const bold = this.isSelected();
518
+ this.selectionController
519
+ .getSelectedNodes()
520
+ .filter((node) => node instanceof codeBlock.RTETextNode)
521
+ .forEach((node) => node.apply(new codeBlock.BoldAnnotationAction(!bold)));
522
+ }
523
+ isSelected() {
524
+ const selectedNodes = this.selectionController
525
+ .getSelectedNodes()
526
+ .filter((node) => node instanceof codeBlock.RTETextNode);
527
+ return (selectedNodes.length > 0 &&
528
+ selectedNodes.every((node) => { var _a; return (_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.BOLD)) === null || _a === void 0 ? void 0 : _a.bold; }));
529
+ }
530
+ isDisabled() {
531
+ const selectedNodes = this.selectionController.getSelectedNodes();
532
+ return (super.isDisabled() ||
533
+ selectedNodes.some((node) => {
534
+ var _a;
535
+ return ((_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
536
+ this.shouldDisabledToolbar(node, codeBlock.BoldAnnotationAction.name);
537
+ }));
538
+ }
539
+ }
540
+ (() => {
541
+ internalIconManager.VegaInternalIconManager.register({ bold });
542
+ })();
543
+ __decorate$A([
544
+ globalSlimmerRegistry.MapToComponentField()
545
+ ], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
546
+
547
+ const italic = {
548
+ 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>`,
549
+ };
550
+
551
+ var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
552
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
553
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
554
+ 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;
555
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
556
+ };
557
+ class ItalicToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
558
+ constructor() {
559
+ super({
560
+ icon: 'italic',
561
+ tooltip: { text: 'Italic' },
562
+ });
563
+ }
564
+ isSelected() {
565
+ const selectedNodes = this.selectionController
566
+ .getSelectedNodes()
567
+ .filter((node) => node instanceof codeBlock.RTETextNode);
568
+ return (selectedNodes.length > 0 &&
569
+ selectedNodes.every((node) => { var _a; return (_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.ITALIC)) === null || _a === void 0 ? void 0 : _a.italic; }));
570
+ }
571
+ onClick() {
572
+ const italic = this.isSelected();
573
+ this.selectionController
574
+ .getSelectedNodes()
575
+ .filter((node) => node instanceof codeBlock.RTETextNode)
576
+ .forEach((node) => node.apply(new codeBlock.ItalicAnnotationAction(!italic)));
577
+ }
578
+ isDisabled() {
579
+ const selectedNodes = this.selectionController.getSelectedNodes();
580
+ return (super.isDisabled() ||
581
+ selectedNodes.some((node) => {
582
+ var _a;
583
+ return ((_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
584
+ this.shouldDisabledToolbar(node, codeBlock.ItalicAnnotationAction.name);
585
+ }));
586
+ }
587
+ }
588
+ (() => {
589
+ internalIconManager.VegaInternalIconManager.register({ italic });
590
+ })();
591
+ __decorate$z([
592
+ globalSlimmerRegistry.MapToComponentField()
593
+ ], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
594
+
595
+ const underline = {
596
+ 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>`,
597
+ };
598
+
599
+ var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
600
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
601
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
602
+ 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;
603
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
604
+ };
605
+ class UnderlineToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
606
+ constructor() {
607
+ super({
608
+ icon: 'underline',
609
+ tooltip: { text: 'Underline' },
610
+ });
611
+ }
612
+ isSelected() {
613
+ const selectedNodes = this.selectionController
614
+ .getSelectedNodes()
615
+ .filter((node) => node instanceof codeBlock.RTETextNode);
616
+ return (selectedNodes.length > 0 &&
617
+ selectedNodes.every((node) => {
618
+ var _a;
619
+ return (_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.UNDERLINE)) === null || _a === void 0 ? void 0 : _a.underline;
620
+ }));
621
+ }
622
+ onClick() {
623
+ const selected = this.isSelected();
624
+ this.selectionController
625
+ .getSelectedNodes()
626
+ .filter((node) => node instanceof codeBlock.RTETextNode)
627
+ .forEach((node) => node.apply(new codeBlock.UnderlineAnnotationAction(!selected)));
628
+ }
629
+ isDisabled() {
630
+ const selectedNodes = this.selectionController.getSelectedNodes();
631
+ return (super.isDisabled() ||
632
+ selectedNodes.some((node) => {
633
+ var _a;
634
+ return ((_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
635
+ this.shouldDisabledToolbar(node, codeBlock.UnderlineAnnotationAction.name);
636
+ }));
637
+ }
638
+ }
639
+ (() => {
640
+ internalIconManager.VegaInternalIconManager.register({ underline });
641
+ })();
642
+ __decorate$y([
643
+ globalSlimmerRegistry.MapToComponentField()
644
+ ], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
645
+
646
+ const textSize = {
647
+ 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>`,
648
+ };
649
+
650
+ var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
651
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
652
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
653
+ 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;
654
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
655
+ };
656
+ class TextStylesToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
657
+ constructor() {
658
+ super({
659
+ icon: 'text-size',
660
+ tooltip: { text: 'Text Styles' },
661
+ });
662
+ this.handleDropdownItemClick = (payload) => {
663
+ const selectedType = payload.detail;
664
+ const boldByDefault = TextStylesToolbarButtonSlimmer.items.find((item) => item.key === selectedType).bold;
665
+ const selectedTextBlocks = this.selectionController
666
+ .getSelectedBlocks()
667
+ .filter((block) => block instanceof codeBlock.RTETextBlock);
668
+ if (selectedTextBlocks.length > 0) {
669
+ selectedTextBlocks.forEach((item) => {
670
+ item.apply(new codeBlock.TextStyleAnnotationAction(selectedType, boldByDefault));
671
+ });
672
+ }
673
+ else {
674
+ void this.focusController.focusOnLastTextNode({ newLine: true }).then(() => {
675
+ this.selectionController
676
+ .getSelectedBlocks()
677
+ .filter((node) => node instanceof codeBlock.RTETextBlock)
678
+ .forEach((item) => {
679
+ item.apply(new codeBlock.TextStyleAnnotationAction(selectedType, boldByDefault));
680
+ });
681
+ });
682
+ }
683
+ };
684
+ }
685
+ renderBtnWrapper(renderBtn) {
686
+ return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
687
+ this.addDropdownObserver(ref);
688
+ } },
689
+ renderBtn({ showArrowIcon: true }),
690
+ index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())));
691
+ }
692
+ renderDropdownContent() {
693
+ return (index.h(index.Fragment, null, TextStylesToolbarButtonSlimmer.items.map((item) => {
694
+ const textStyleAnnotation = new codeBlock.TextStyleAnnotation(item.key);
695
+ const boldAnnotation = new codeBlock.BoldAnnotation(item.bold);
696
+ return (index.h("vega-dropdown-item", { key: item.key, itemKey: item.key },
697
+ index.h("vega-box", { padding: { right: 'size-20' } },
698
+ index.h("div", { style: Object.assign(Object.assign({}, textStyleAnnotation.renderStyle({ standalone: true })), boldAnnotation.renderStyle({ standalone: true })) }, this.translationSlimmer.t(item.label)))));
699
+ })));
700
+ }
701
+ isSelected() {
702
+ return false;
703
+ }
704
+ isDisabled() {
705
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
706
+ return (super.isDisabled() ||
707
+ selectedBlocks.some((node) => this.shouldDisabledToolbar(node, codeBlock.TextStyleAnnotationAction.name)));
708
+ }
709
+ addDropdownObserver(dropdownRef) {
710
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(dropdownRef, domNodeSubjectObserverFactory.VegaDropdownClick, this.handleDropdownItemClick);
711
+ }
712
+ getSelectedSourceKey() {
713
+ var _a;
714
+ const currentSelectedBlocks = this.selectionController
715
+ .getSelectedBlocks()
716
+ .filter((block) => block instanceof codeBlock.RTETextBlock);
717
+ const isSameType = currentSelectedBlocks.length > 0 &&
718
+ currentSelectedBlocks.every((block) => block.type === currentSelectedBlocks[0].type);
719
+ if (isSameType) {
720
+ const blockAnnotation = currentSelectedBlocks[0].getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.TEXT_STYLE);
721
+ return (_a = blockAnnotation === null || blockAnnotation === void 0 ? void 0 : blockAnnotation.textStyle) !== null && _a !== void 0 ? _a : '';
722
+ }
723
+ return '';
724
+ }
725
+ }
726
+ (() => {
727
+ internalIconManager.VegaInternalIconManager.register({
728
+ 'text-size': textSize,
729
+ });
730
+ })();
731
+ TextStylesToolbarButtonSlimmer.items = [
732
+ {
733
+ key: 'title',
734
+ label: 'Title',
735
+ bold: true,
736
+ },
737
+ {
738
+ key: 'subtitle',
739
+ label: 'Subtitle',
740
+ },
741
+ {
742
+ key: 'heading-1',
743
+ label: 'Heading 1',
744
+ bold: true,
745
+ },
746
+ {
747
+ key: 'heading-2',
748
+ label: 'Heading 2',
749
+ bold: true,
750
+ },
751
+ {
752
+ key: 'heading-3',
753
+ label: 'Heading 3',
754
+ bold: true,
755
+ },
756
+ {
757
+ key: 'paragraph',
758
+ label: 'Paragraph',
759
+ },
760
+ ];
761
+ __decorate$x([
762
+ globalSlimmerRegistry.MapToComponentField()
763
+ ], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
764
+ __decorate$x([
765
+ globalSlimmerRegistry.MapToComponentField()
766
+ ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
767
+
768
+ const TextSlash = {
769
+ 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>`,
770
+ };
771
+
772
+ var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
773
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
774
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
775
+ 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;
776
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
777
+ };
778
+ class ClearStyleToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
779
+ constructor() {
780
+ super({
781
+ icon: 'text-slash',
782
+ tooltip: {
783
+ text: 'Clear Style',
784
+ },
785
+ });
786
+ }
787
+ isSelected() {
788
+ return false;
789
+ }
790
+ onClick() {
791
+ this.selectionController
792
+ .getSelectedNodes()
793
+ .filter((node) => node instanceof codeBlock.RTETextNode)
794
+ .forEach((node) => {
795
+ node.apply(new codeBlock.ClearFormattingAnnotationAction());
796
+ });
797
+ }
798
+ isDisabled() {
799
+ const selectedNodes = this.selectionController.getSelectedNodes();
800
+ return (super.isDisabled() ||
801
+ selectedNodes.some((node) => this.shouldDisabledToolbar(node, codeBlock.ClearFormattingAnnotationAction.name)));
802
+ }
803
+ }
804
+ (() => {
805
+ internalIconManager.VegaInternalIconManager.register({
806
+ 'text-slash': TextSlash,
807
+ });
808
+ })();
809
+ __decorate$w([
810
+ globalSlimmerRegistry.MapToComponentField()
811
+ ], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
812
+
813
+ const codeSimple = {
814
+ 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>`,
815
+ };
816
+
817
+ var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
818
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
819
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
820
+ 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;
821
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
822
+ };
823
+ class CodeToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
824
+ constructor() {
825
+ super({
826
+ icon: 'code-simple',
827
+ tooltip: { text: 'Code' },
828
+ });
829
+ }
830
+ onClick() {
831
+ const selected = this.isSelected();
832
+ this.selectionController
833
+ .getSelectedNodes()
834
+ .filter((node) => node instanceof codeBlock.RTETextNode)
835
+ .forEach((node) => node.apply(new codeBlock.CodeAnnotationAction(!selected)));
836
+ }
837
+ isSelected() {
838
+ const selectedNodes = this.selectionController.getSelectedNodes();
839
+ return (selectedNodes.length > 0 &&
840
+ selectedNodes
841
+ .filter((node) => node instanceof codeBlock.RTETextNode)
842
+ .map((node) => node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.CODE))
843
+ .every((annotation) => annotation && annotation.code));
844
+ }
845
+ isDisabled() {
846
+ const selectedNodes = this.selectionController.getSelectedNodes();
847
+ return (super.isDisabled() ||
848
+ selectedNodes.some((node) => node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.LINK) ||
849
+ this.shouldDisabledToolbar(node, codeBlock.CodeAnnotationAction.name)));
850
+ }
851
+ }
852
+ (() => {
853
+ internalIconManager.VegaInternalIconManager.register({ 'code-simple': codeSimple });
854
+ })();
855
+ __decorate$v([
856
+ globalSlimmerRegistry.MapToComponentField()
857
+ ], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
858
+
859
+ const strikethrough = {
860
+ 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>`,
861
+ };
862
+
863
+ var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
864
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
865
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
866
+ 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;
867
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
868
+ };
869
+ class StrikethroughToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
870
+ constructor() {
871
+ super({
872
+ icon: 'strikethrough',
873
+ tooltip: { text: 'Strikethrough' },
874
+ });
875
+ }
876
+ isSelected() {
877
+ const selectedNodes = this.selectionController
878
+ .getSelectedNodes()
879
+ .filter((node) => node instanceof codeBlock.RTETextNode);
880
+ return (selectedNodes.length > 0 &&
881
+ selectedNodes.every((node) => {
882
+ var _a;
883
+ return (_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.STRIKETHROUGH)) === null || _a === void 0 ? void 0 : _a.strikethrough;
884
+ }));
885
+ }
886
+ onClick() {
887
+ const selected = this.isSelected();
888
+ this.selectionController
889
+ .getSelectedNodes()
890
+ .filter((node) => node instanceof codeBlock.RTETextNode)
891
+ .forEach((node) => node.apply(new codeBlock.StrikethroughAnnotationAction(!selected)));
892
+ }
893
+ isDisabled() {
894
+ const selectedNodes = this.selectionController.getSelectedNodes();
895
+ return (super.isDisabled() ||
896
+ selectedNodes.some((node) => {
897
+ var _a;
898
+ return ((_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
899
+ this.shouldDisabledToolbar(node, codeBlock.StrikethroughAnnotationAction.name);
900
+ }));
901
+ }
902
+ }
903
+ (() => {
904
+ internalIconManager.VegaInternalIconManager.register({ strikethrough });
905
+ })();
906
+ __decorate$u([
907
+ globalSlimmerRegistry.MapToComponentField()
908
+ ], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
909
+
910
+ const link = {
911
+ 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>`,
912
+ };
913
+
914
+ var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
915
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
916
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
917
+ 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;
918
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
919
+ };
920
+ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
921
+ constructor() {
922
+ super({
923
+ icon: 'link',
924
+ tooltip: {
925
+ text: 'Link',
926
+ },
927
+ });
928
+ this.handleLinkEditorChange = ({ detail, }) => {
929
+ switch (detail.action) {
930
+ case 'link': {
931
+ const { url, text } = detail.payload;
932
+ const textChanged = text !== this.currentSelectedText;
933
+ const groupKey = createPublicApiRuntimeMetricsSlimmer.generateUUID();
934
+ this.currentSelectedNodes.forEach((node) => {
935
+ node.apply(new codeBlock.SelectionChangeAction(this.currentRange)).apply(new codeBlock.LinkAnnotationAction({
936
+ link: { href: url, groupKey: groupKey },
937
+ newText: textChanged ? text : undefined,
938
+ needMergeNode: textChanged && this.currentSelectedNodes.length > 1,
939
+ type: 'link',
940
+ }));
941
+ });
942
+ return;
943
+ }
944
+ }
945
+ };
946
+ }
947
+ renderBtnWrapper(renderBtn) {
948
+ return (index.h("div", { class: "toolbar-btn-link-wrapper", ref: (ref) => (this.linkBtnWrapperRef = ref) },
949
+ renderBtn(),
950
+ index.h("vega-rich-text-link-editor", { resetStatusAfterHide: false, status: "linkEdit", ref: (ref) => {
951
+ if (ref) {
952
+ this.linkEditorRef = ref;
953
+ }
954
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaChange, this.handleLinkEditorChange);
955
+ } })));
956
+ }
957
+ isSelected() {
958
+ return false;
959
+ }
960
+ isDisabled() {
961
+ const selectedNodes = this.selectionController.getSelectedNodes();
962
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
963
+ return (super.isDisabled() ||
964
+ selectedBlocks.length > 1 ||
965
+ selectedNodes.some((node) => {
966
+ var _a;
967
+ return this.shouldDisabledToolbar(node, codeBlock.LinkAnnotationAction.name) ||
968
+ node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.LINK) ||
969
+ ((_a = node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code);
970
+ }));
971
+ }
972
+ onClick() {
973
+ this.currentRange = this.selectionController.getCurrentRange().toNativeRange();
974
+ this.currentSelectedNodes = this.selectionController.getSelectedNodes();
975
+ if (this.currentRange) {
976
+ this.currentSelectedText = this.currentRange.toString();
977
+ if (this.currentSelectedNodes.length > 0) {
978
+ this.linkEditorRef.record = {
979
+ text: this.currentSelectedText,
980
+ url: '',
981
+ };
982
+ }
983
+ }
984
+ // Set target prop and call show method at the first time to make sure showing later than overrides method call focusController.focusOnLastTextNode()
985
+ // Element appender will control the show and hide logic except for the first time.
986
+ if (!this.linkEditorRef.target) {
987
+ this.linkEditorRef.target = this.linkBtnWrapperRef;
988
+ void index$1.waitForComponentDidRender(this.linkEditorRef).then(() => {
989
+ void this.linkEditorRef.show();
990
+ });
991
+ }
992
+ }
993
+ }
994
+ (() => {
995
+ internalIconManager.VegaInternalIconManager.register({ link: link });
996
+ })();
997
+ __decorate$t([
998
+ globalSlimmerRegistry.MapToComponentField()
999
+ ], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
1000
+
1001
+ const indent = {
1002
+ 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>`,
1003
+ };
1004
+
1005
+ var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1006
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1007
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1008
+ 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;
1009
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1010
+ };
1011
+ class MoreIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1012
+ constructor() {
1013
+ super({
1014
+ icon: 'indent',
1015
+ tooltip: {
1016
+ text: 'More Indent',
1017
+ },
1018
+ });
1019
+ }
1020
+ isSelected() {
1021
+ return false;
1022
+ }
1023
+ isDisabled() {
1024
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1025
+ return (super.isDisabled() ||
1026
+ selectedBlocks.some((node) => this.shouldDisabledToolbar(node, codeBlock.IndentAnnotationAction.name)));
1027
+ }
1028
+ onClick() {
1029
+ this.selectionController.getSelectedBlocks().forEach((item) => {
1030
+ var _a, _b;
1031
+ const indent = (_b = (_a = item.getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.INDENT)) === null || _a === void 0 ? void 0 : _a.indent) !== null && _b !== void 0 ? _b : 0;
1032
+ item.apply(new codeBlock.IndentAnnotationAction(indent + 1));
1033
+ });
1034
+ }
1035
+ }
1036
+ (() => {
1037
+ internalIconManager.VegaInternalIconManager.register({ indent: indent });
1038
+ })();
1039
+ __decorate$s([
1040
+ globalSlimmerRegistry.MapToComponentField()
1041
+ ], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1042
+
1043
+ const outdent = {
1044
+ 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>`,
1045
+ };
1046
+
1047
+ var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1048
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1049
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1050
+ 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;
1051
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1052
+ };
1053
+ class LessIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1054
+ constructor() {
1055
+ super({
1056
+ icon: 'outdent',
1057
+ tooltip: {
1058
+ text: 'Less Indent',
1059
+ },
1060
+ });
1061
+ }
1062
+ isSelected() {
1063
+ return false;
1064
+ }
1065
+ isDisabled() {
1066
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1067
+ return (super.isDisabled() ||
1068
+ selectedBlocks.some((node) => this.shouldDisabledToolbar(node, codeBlock.IndentAnnotationAction.name)));
1069
+ }
1070
+ onClick() {
1071
+ this.selectionController.getSelectedBlocks().forEach((item) => {
1072
+ var _a, _b;
1073
+ const indent = (_b = (_a = item.getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.INDENT)) === null || _a === void 0 ? void 0 : _a.indent) !== null && _b !== void 0 ? _b : 0;
1074
+ const newIndent = indent > 1 ? indent - 1 : 0;
1075
+ item.apply(new codeBlock.IndentAnnotationAction(newIndent));
1076
+ });
1077
+ }
1078
+ }
1079
+ (() => {
1080
+ internalIconManager.VegaInternalIconManager.register({ outdent: outdent });
1081
+ })();
1082
+ __decorate$r([
1083
+ globalSlimmerRegistry.MapToComponentField()
1084
+ ], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1085
+
1086
+ const image = {
1087
+ 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="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>`,
1088
+ };
1089
+
1090
+ /**
1091
+ * Update the image node property url after the image uploaded.
1092
+ *
1093
+ * @example currentImageNode.apply(new ImageUpdateUrlAction(url))
1094
+ */
1095
+ class ImageUpdateUrlAction extends codeBlock.ModifyContentAction {
1096
+ constructor(newUrl) {
1097
+ super();
1098
+ this.type = codeBlock.ModifyContentActionType.UPDATE_IMAGE_NODE_URL;
1099
+ this.url = newUrl;
1100
+ }
1101
+ }
1102
+
1103
+ var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1104
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1105
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1106
+ 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;
1107
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1108
+ };
1109
+ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1110
+ constructor() {
1111
+ super({
1112
+ icon: 'image',
1113
+ tooltip: { text: 'Image' },
1114
+ });
1115
+ this.onClick = () => {
1116
+ this.inputElementRef.click();
1117
+ };
1118
+ /**
1119
+ * The below method is e2e-test covered in
1120
+ * @see{module:should-update-url-properly-when-upload-images}
1121
+ */
1122
+ /* istanbul ignore next */
1123
+ this.fileInputChange = (e) => {
1124
+ e.stopPropagation();
1125
+ const input = e.target;
1126
+ if (!input.files.length) {
1127
+ return;
1128
+ }
1129
+ const node = this.insertImageController.insertImageToCaretPosition(URL.createObjectURL(input.files[0]));
1130
+ if (!this.updateNodeURLMap) {
1131
+ this.updateNodeURLMap = new Map();
1132
+ }
1133
+ this.updateNodeURLMap.set(node, (url) => {
1134
+ node.apply(new ImageUpdateUrlAction(url));
1135
+ });
1136
+ const payload = {
1137
+ file: input.files[0],
1138
+ sendBackUploadedURLCallback: this.updateNodeURLMap.get(node),
1139
+ };
1140
+ this.imageInsertedEventEmitter.emit(payload);
1141
+ input.value = '';
1142
+ };
1143
+ }
1144
+ renderBtnWrapper(renderBtn) {
1145
+ return (index.h("vega-box", null,
1146
+ renderBtn({ showArrowIcon: false }),
1147
+ index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.inputElementRef = node), accept: "image/*", onChange: this.fileInputChange })));
1148
+ }
1149
+ isSelected() {
1150
+ return false;
1151
+ }
1152
+ isDisabled() {
1153
+ const selectedNodes = this.selectionController.getSelectedNodes();
1154
+ const selectedBlock = this.selectionController.getSelectedBlocks()[0];
1155
+ return (super.isDisabled() ||
1156
+ selectedNodes.some((node) => node.getAnnotationByType(codeBlock.NodeAnnotationTypeEnum.LINK)) ||
1157
+ this.shouldDisabledToolbar(selectedBlock, codeBlock.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
1158
+ }
1159
+ }
1160
+ (() => {
1161
+ internalIconManager.VegaInternalIconManager.register({ image: image });
1162
+ })();
1163
+ __decorate$q([
1164
+ globalSlimmerRegistry.MapToComponentField()
1165
+ ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
1166
+ __decorate$q([
1167
+ globalSlimmerRegistry.MapToComponentField()
1168
+ ], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
1169
+ __decorate$q([
1170
+ globalSlimmerRegistry.MapToComponentField()
1171
+ ], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
1172
+
1173
+ const ListUL = {
1174
+ 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="M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"/></svg>`,
1175
+ };
1176
+
1177
+ const ListOL = {
1178
+ 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="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>`,
1179
+ };
1180
+
1181
+ /**
1182
+ * Action to toggle bullet annotation
1183
+ */
1184
+ class TransformListAction extends codeBlock.ModifyContentAction {
1185
+ constructor(listType, selectedBlocks) {
1186
+ super();
1187
+ this.type = codeBlock.ModifyContentActionType.TRANSFORM_LIST_BLOCK;
1188
+ this.isFlushable = true;
1189
+ this.listType = listType;
1190
+ this.selectedBlocks = selectedBlocks;
1191
+ }
1192
+ }
1193
+
1194
+ /**
1195
+ * Action to toggle bullet annotation
1196
+ */
1197
+ class TransformParagraphAction extends codeBlock.ModifyContentAction {
1198
+ constructor(selectedBlocks) {
1199
+ super();
1200
+ this.type = codeBlock.ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK;
1201
+ this.isFlushable = true;
1202
+ this.selectedBlocks = selectedBlocks;
1203
+ }
1204
+ }
1205
+
1206
+ var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1207
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1208
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1209
+ 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;
1210
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1211
+ };
1212
+ class BulletsToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1213
+ constructor() {
1214
+ super({
1215
+ icon: 'list-ul',
1216
+ tooltip: {
1217
+ text: 'Bullets',
1218
+ },
1219
+ });
1220
+ }
1221
+ isSelected() {
1222
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1223
+ return this.isListType(selectedBlocks);
1224
+ }
1225
+ onClick() {
1226
+ if (this.isSelected()) {
1227
+ this.deselectBulletList();
1228
+ }
1229
+ else {
1230
+ this.selectBulletList();
1231
+ }
1232
+ void this.popoverRef.hide();
1233
+ }
1234
+ isDisabled() {
1235
+ const selectedNodes = this.selectionController.getSelectedNodes();
1236
+ return (super.isDisabled() ||
1237
+ selectedNodes.some((node) => node instanceof dtoRendererManager.RTEImageNode || node instanceof codeBlock.RTECodeBlockNode));
1238
+ }
1239
+ isListType(selectedBlocks, type = 'bullet-list') {
1240
+ return (selectedBlocks.length > 0 &&
1241
+ selectedBlocks.every((block) => block instanceof dtoRendererManager.RTEListItemBlock && block.parent.type === type));
1242
+ }
1243
+ /**
1244
+ * Deselect bullet list item to convert it to default paragraph
1245
+ */
1246
+ deselectBulletList() {
1247
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1248
+ if (selectedBlocks[0]) {
1249
+ selectedBlocks[0].parent.apply(new TransformParagraphAction(selectedBlocks));
1250
+ }
1251
+ }
1252
+ /**
1253
+ * Select texts or list items or texts and list items to convert it to bullet list
1254
+ */
1255
+ selectBulletList() {
1256
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1257
+ if (selectedBlocks[0]) {
1258
+ const selectedFirstBlock = selectedBlocks[0].type === 'list-item'
1259
+ ? selectedBlocks[0].parent
1260
+ : selectedBlocks[0];
1261
+ selectedFirstBlock.apply(new TransformListAction('bullet-list', selectedBlocks));
1262
+ }
1263
+ }
1264
+ }
1265
+ __decorate$p([
1266
+ globalSlimmerRegistry.MapToComponentField()
1267
+ ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1268
+ __decorate$p([
1269
+ globalSlimmerRegistry.MapToComponentField()
1270
+ ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1271
+
1272
+ var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1273
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1274
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1275
+ 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;
1276
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1277
+ };
1278
+ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1279
+ constructor() {
1280
+ super({
1281
+ icon: 'list-ol',
1282
+ tooltip: { text: 'Numbers' },
1283
+ });
1284
+ }
1285
+ isSelected() {
1286
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1287
+ return this.isListType(selectedBlocks);
1288
+ }
1289
+ onClick() {
1290
+ if (this.isSelected()) {
1291
+ this.deselectNumberList();
1292
+ }
1293
+ else {
1294
+ this.selectNumberList();
1295
+ }
1296
+ void this.popoverRef.hide();
1297
+ }
1298
+ isDisabled() {
1299
+ const selectedNodes = this.selectionController.getSelectedNodes();
1300
+ return (super.isDisabled() ||
1301
+ selectedNodes.some((node) => node instanceof dtoRendererManager.RTEImageNode || node instanceof codeBlock.RTECodeBlockNode));
1302
+ }
1303
+ isListType(selectedBlocks, type = 'number-list') {
1304
+ return (selectedBlocks.length > 0 &&
1305
+ selectedBlocks.every((block) => block instanceof dtoRendererManager.RTEListItemBlock && block.parent.type === type));
1306
+ }
1307
+ /**
1308
+ * Deselect bullet list item to convert it to default paragraph
1309
+ */
1310
+ deselectNumberList() {
1311
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1312
+ if (selectedBlocks[0]) {
1313
+ selectedBlocks[0].parent.apply(new TransformParagraphAction(selectedBlocks));
1314
+ }
1315
+ }
1316
+ /**
1317
+ * Select texts or list items or texts and list items to convert it to bullet list
1318
+ */
1319
+ selectNumberList() {
1320
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1321
+ if (selectedBlocks[0]) {
1322
+ const selectedFirstBlock = selectedBlocks[0].type === 'list-item'
1323
+ ? selectedBlocks[0].parent
1324
+ : selectedBlocks[0];
1325
+ selectedFirstBlock.apply(new TransformListAction('number-list', selectedBlocks));
1326
+ }
1327
+ }
1328
+ }
1329
+ __decorate$o([
1330
+ globalSlimmerRegistry.MapToComponentField()
1331
+ ], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1332
+ __decorate$o([
1333
+ globalSlimmerRegistry.MapToComponentField()
1334
+ ], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1335
+
1336
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1337
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1338
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1339
+ 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;
1340
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1341
+ };
1342
+ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1343
+ constructor() {
1344
+ super({
1345
+ icon: 'list-ul',
1346
+ tooltip: {
1347
+ text: 'Bullets',
1348
+ },
1349
+ });
1350
+ this.bulletsToolbarButtonSlimmer = new BulletsToolbarButtonSlimmer();
1351
+ this.numbersToolbarButtonSlimmer = new NumbersToolbarButtonSlimmer();
1352
+ }
1353
+ componentWillRender() {
1354
+ if (this.numbersToolbarButtonSlimmer.isSelected()) {
1355
+ super.setIcon('list-ol');
1356
+ }
1357
+ else {
1358
+ super.setIcon('list-ul');
1359
+ }
1360
+ }
1361
+ renderBtnWrapper(renderBtn) {
1362
+ return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", ref: (ref) => (this.popoverRef = ref) },
1363
+ index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1364
+ index.h("div", { slot: "popover" }, this.renderContent())));
1365
+ }
1366
+ renderContent() {
1367
+ return (index.h("vega-flex", { gap: "size-8", "justify-content": "center" },
1368
+ index.h("div", null, this.bulletsToolbarButtonSlimmer.render()),
1369
+ index.h("div", null, this.numbersToolbarButtonSlimmer.render())));
1370
+ }
1371
+ isSelected() {
1372
+ return false;
1373
+ }
1374
+ isDisabled() {
1375
+ return super.isDisabled() || this.shouldDisabledListToolbar();
1376
+ }
1377
+ shouldDisabledListToolbar() {
1378
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1379
+ return selectedBlocks.some((block) => {
1380
+ return (block &&
1381
+ (this.unableToConvertListOrParagraph(block) || this.unableToInsertBlock(block.parent)));
1382
+ });
1383
+ }
1384
+ /**
1385
+ * Check if unable to insert blocks before or after the given block.
1386
+ *
1387
+ * @param {RTEBlock | VegaRTEContent} block - The block to check.
1388
+ * @returns {boolean} - Boolean result.
1389
+ */
1390
+ unableToInsertBlock(block) {
1391
+ return !(codeBlock.ActionHandleStrategyRegistry.canHandle(codeBlock.ModifyContentActionType.INSERT_CHILDREN_AFTER, block) ||
1392
+ codeBlock.ActionHandleStrategyRegistry.canHandle(codeBlock.ModifyContentActionType.INSERT_CHILDREN_BEFORE, block));
1393
+ }
1394
+ /**
1395
+ * Check if unable to convert the block to list or paragraph.
1396
+ *
1397
+ * @param {RTEBlock} block - The block to check.
1398
+ * @returns {boolean} - Boolean result.
1399
+ */
1400
+ unableToConvertListOrParagraph(block) {
1401
+ return (!codeBlock.ActionHandleStrategyRegistry.canHandle(codeBlock.ModifyContentActionType.TRANSFORM_LIST_BLOCK, block) &&
1402
+ !codeBlock.ActionHandleStrategyRegistry.canHandle(codeBlock.ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK, block.parent));
1403
+ }
1404
+ }
1405
+ (() => {
1406
+ internalIconManager.VegaInternalIconManager.register({
1407
+ 'list-ul': ListUL,
1408
+ 'list-ol': ListOL,
1409
+ });
1410
+ })();
1411
+ __decorate$n([
1412
+ globalSlimmerRegistry.MapToComponentField()
1413
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1414
+ __decorate$n([
1415
+ globalSlimmerRegistry.InjectVegaSlimmer()
1416
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
1417
+ __decorate$n([
1418
+ globalSlimmerRegistry.InjectVegaSlimmer()
1419
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
1420
+ __decorate$n([
1421
+ globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1422
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
1423
+
1424
+ const AlignLeft = {
1425
+ 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>`,
1426
+ };
1427
+
1428
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1429
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1430
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1431
+ 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;
1432
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1433
+ };
1434
+ class LeftAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1435
+ constructor() {
1436
+ super({
1437
+ icon: 'align-left',
1438
+ tooltip: {
1439
+ text: 'Left Align',
1440
+ },
1441
+ });
1442
+ }
1443
+ isSelected() {
1444
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1445
+ return (selectedBlocks.length > 0 &&
1446
+ selectedBlocks.every((block) => {
1447
+ var _a;
1448
+ return ((_a = block.getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'left';
1449
+ }));
1450
+ }
1451
+ onClick() {
1452
+ this.selectionController
1453
+ .getSelectedBlocks()
1454
+ .forEach((item) => item.apply(new codeBlock.HorizontalAlignmentAnnotationAction('left')));
1455
+ void this.popoverRef.hide();
1456
+ }
1457
+ }
1458
+ (() => {
1459
+ internalIconManager.VegaInternalIconManager.register({
1460
+ 'align-left': AlignLeft,
1461
+ });
1462
+ })();
1463
+ __decorate$m([
1464
+ globalSlimmerRegistry.MapToComponentField()
1465
+ ], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1466
+ __decorate$m([
1467
+ globalSlimmerRegistry.MapToComponentField()
1468
+ ], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1469
+
1470
+ const AlignCenter = {
1471
+ 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>`,
1472
+ };
1473
+
1474
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1475
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1476
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1477
+ 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;
1478
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1479
+ };
1480
+ class CenterAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1481
+ constructor() {
1482
+ super({
1483
+ icon: 'align-center',
1484
+ tooltip: {
1485
+ text: 'Center Align',
1486
+ },
1487
+ });
1488
+ }
1489
+ isSelected() {
1490
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1491
+ return (selectedBlocks.length > 0 &&
1492
+ selectedBlocks.every((block) => {
1493
+ var _a;
1494
+ return ((_a = block.getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'center';
1495
+ }));
1496
+ }
1497
+ onClick() {
1498
+ this.selectionController
1499
+ .getSelectedBlocks()
1500
+ .forEach((item) => item.apply(new codeBlock.HorizontalAlignmentAnnotationAction('center')));
1501
+ void this.popoverRef.hide();
1502
+ }
1503
+ }
1504
+ (() => {
1505
+ internalIconManager.VegaInternalIconManager.register({
1506
+ 'align-center': AlignCenter,
1507
+ });
1508
+ })();
1509
+ __decorate$l([
1510
+ globalSlimmerRegistry.MapToComponentField()
1511
+ ], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1512
+ __decorate$l([
1513
+ globalSlimmerRegistry.MapToComponentField()
1514
+ ], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1515
+
1516
+ const AlignRight = {
1517
+ 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>`,
1518
+ };
1519
+
1520
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1521
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1522
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1523
+ 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;
1524
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1525
+ };
1526
+ class RightAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1527
+ constructor() {
1528
+ super({
1529
+ icon: 'align-right',
1530
+ tooltip: {
1531
+ text: 'Right Align',
1532
+ },
1533
+ });
1534
+ }
1535
+ isSelected() {
1536
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1537
+ return (selectedBlocks.length > 0 &&
1538
+ selectedBlocks.every((block) => {
1539
+ var _a;
1540
+ return ((_a = block.getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'right';
1541
+ }));
1542
+ }
1543
+ onClick() {
1544
+ this.selectionController
1545
+ .getSelectedBlocks()
1546
+ .forEach((item) => item.apply(new codeBlock.HorizontalAlignmentAnnotationAction('right')));
1547
+ void this.popoverRef.hide();
1548
+ }
1549
+ }
1550
+ (() => {
1551
+ internalIconManager.VegaInternalIconManager.register({
1552
+ 'align-right': AlignRight,
1553
+ });
1554
+ })();
1555
+ __decorate$k([
1556
+ globalSlimmerRegistry.MapToComponentField()
1557
+ ], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1558
+ __decorate$k([
1559
+ globalSlimmerRegistry.MapToComponentField()
1560
+ ], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1561
+
1562
+ const AlignJustify = {
1563
+ 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>`,
1564
+ };
1565
+
1566
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1567
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1568
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1569
+ 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;
1570
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1571
+ };
1572
+ class JustifyAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1573
+ constructor() {
1574
+ super({
1575
+ icon: 'align-justify',
1576
+ tooltip: {
1577
+ text: 'Justified',
1578
+ },
1579
+ });
1580
+ }
1581
+ isSelected() {
1582
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1583
+ return (selectedBlocks.length > 0 &&
1584
+ selectedBlocks.every((block) => {
1585
+ var _a;
1586
+ return ((_a = block.getAnnotationByType(codeBlock.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'justify';
1587
+ }));
1588
+ }
1589
+ onClick() {
1590
+ this.selectionController
1591
+ .getSelectedBlocks()
1592
+ .forEach((item) => item.apply(new codeBlock.HorizontalAlignmentAnnotationAction('justify')));
1593
+ void this.popoverRef.hide();
1594
+ }
1595
+ }
1596
+ (() => {
1597
+ internalIconManager.VegaInternalIconManager.register({
1598
+ 'align-justify': AlignJustify,
1599
+ });
1600
+ })();
1601
+ __decorate$j([
1602
+ globalSlimmerRegistry.MapToComponentField()
1603
+ ], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1604
+ __decorate$j([
1605
+ globalSlimmerRegistry.MapToComponentField()
1606
+ ], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1607
+
1608
+ var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1609
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1610
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1611
+ 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;
1612
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1613
+ };
1614
+ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1615
+ constructor() {
1616
+ super({
1617
+ icon: 'align-left',
1618
+ tooltip: {
1619
+ text: 'Left Align',
1620
+ },
1621
+ });
1622
+ this.leftAlignToolbarButtonSlimmer = new LeftAlignToolbarButtonSlimmer();
1623
+ this.centerAlignToolbarButtonSlimmer = new CenterAlignToolbarButtonSlimmer();
1624
+ this.rightAlignToolbarButtonSlimmer = new RightAlignToolbarButtonSlimmer();
1625
+ this.justifiedToolbarButtonSlimmer = new JustifyAlignToolbarButtonSlimmer();
1626
+ }
1627
+ componentWillRender() {
1628
+ if (this.leftAlignToolbarButtonSlimmer.isSelected()) {
1629
+ super.setIcon('align-left');
1630
+ }
1631
+ else if (this.centerAlignToolbarButtonSlimmer.isSelected()) {
1632
+ super.setIcon('align-center');
1633
+ }
1634
+ else if (this.rightAlignToolbarButtonSlimmer.isSelected()) {
1635
+ super.setIcon('align-right');
1636
+ }
1637
+ else if (this.justifiedToolbarButtonSlimmer.isSelected()) {
1638
+ super.setIcon('align-justify');
1639
+ }
1640
+ else {
1641
+ super.setIcon('align-left');
1642
+ }
1643
+ }
1644
+ renderBtnWrapper(renderBtn) {
1645
+ return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", ref: (ref) => (this.popoverRef = ref) },
1646
+ index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1647
+ index.h("div", { slot: "popover" }, this.renderContent())));
1648
+ }
1649
+ renderContent() {
1650
+ return (index.h("vega-flex", { gap: "size-8", "justify-content": "center" },
1651
+ index.h("div", null, this.leftAlignToolbarButtonSlimmer.render()),
1652
+ index.h("div", null, this.centerAlignToolbarButtonSlimmer.render()),
1653
+ index.h("div", null, this.rightAlignToolbarButtonSlimmer.render()),
1654
+ index.h("div", null, this.justifiedToolbarButtonSlimmer.render())));
1655
+ }
1656
+ isSelected() {
1657
+ return false;
1658
+ }
1659
+ isDisabled() {
1660
+ return (super.isDisabled() ||
1661
+ this.selectionController
1662
+ .getSelectedBlocks()
1663
+ .some((block) => this.shouldDisabledToolbar(block, codeBlock.HorizontalAlignmentAnnotationAction.name)));
1664
+ }
1665
+ }
1666
+ __decorate$i([
1667
+ globalSlimmerRegistry.MapToComponentField()
1668
+ ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1669
+ __decorate$i([
1670
+ globalSlimmerRegistry.InjectVegaSlimmer()
1671
+ ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
1672
+ __decorate$i([
1673
+ globalSlimmerRegistry.InjectVegaSlimmer()
1674
+ ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
1675
+ __decorate$i([
1676
+ globalSlimmerRegistry.InjectVegaSlimmer()
1677
+ ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
1678
+ __decorate$i([
1679
+ globalSlimmerRegistry.InjectVegaSlimmer()
1680
+ ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
1681
+ __decorate$i([
1682
+ globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1683
+ ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
1684
+
1685
+ /**
1686
+ * Represents the state of the RTE
1687
+ */
1688
+ class RTEEditorState {
1689
+ constructor(content, selection) {
1690
+ this.content = content.clone(true);
1691
+ this.selection = selection.clone();
1692
+ this.refreshSelectionNodes();
1693
+ }
1694
+ /**
1695
+ * Clones the editor state, updating the content and selection based on the provided content.
1696
+ *
1697
+ * @returns {RTEEditorState} A new instance of RTEEditorState with the updated content and selection.
1698
+ */
1699
+ clone() {
1700
+ return new RTEEditorState(this.content, this.selection);
1701
+ }
1702
+ /**
1703
+ * Refreshes the selection nodes in the editor state.
1704
+ */
1705
+ refreshSelectionNodes() {
1706
+ const { startNode: oldStartNode, endNode: oldEndNode, startOffset, endOffset, } = this.selection.range;
1707
+ if (oldStartNode && oldEndNode) {
1708
+ const startNode = this.content.findNodeById(oldStartNode.id);
1709
+ const endNode = this.content.findNodeById(oldEndNode.id);
1710
+ if (startNode && endNode) {
1711
+ this.selection.range.updateRTERange({
1712
+ startNode,
1713
+ endNode,
1714
+ startOffset,
1715
+ endOffset,
1716
+ });
1717
+ }
1718
+ }
1719
+ }
1720
+ }
1721
+
1722
+ var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1723
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1724
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1725
+ 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;
1726
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1727
+ };
1728
+ /**
1729
+ * The value controller is responsible for updating the value of the rich text editor.
1730
+ */
1731
+ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
1732
+ /**
1733
+ * Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.connectedCallback}
1734
+ */
1735
+ connectedCallback() {
1736
+ const flushChangesWithDebounce = timer.debounce(() => {
1737
+ void this.valueController.flushChanges(this.value);
1738
+ }, ValueController.VALUE_CHANGE_DEBOUNCE_TIME, this);
1739
+ this.flushChangeObserver = new observer.Observer(this.isAcceptableFlushChange.bind(this), flushChangesWithDebounce);
1740
+ changeManager.ChangeManager.register(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges), this.flushChangeObserver);
1741
+ }
1742
+ /**
1743
+ * Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.disconnectedCallback}
1744
+ */
1745
+ disconnectedCallback() {
1746
+ changeManager.ChangeManager.unregister(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges), this.flushChangeObserver);
1747
+ }
1748
+ /**
1749
+ * Component lifecycle - [componentWillLoad]{@link VegaRichTextEditor.componentWillLoad}
1750
+ */
1751
+ componentWillLoad() {
1752
+ if (this.value && !(this.value instanceof dtoRendererManager.VegaRTEContent)) {
1753
+ this.value = dtoRendererManager.VegaRTEContent.fromJSON(this.value);
1754
+ }
1755
+ this.registerEditorRefAndContent();
1756
+ }
1757
+ /**
1758
+ * Watches the value of the editor and updates the internal value.
1759
+ */
1760
+ watchValueUpdate() {
1761
+ if (this.value && !(this.value instanceof dtoRendererManager.VegaRTEContent)) {
1762
+ this.value = dtoRendererManager.VegaRTEContent.fromJSON(this.value);
1763
+ }
1764
+ else if (!this.value || this.value.children.length === 0) {
1765
+ this.value = dtoRendererManager.VegaRTEContent.createEmptyContent();
1766
+ }
1767
+ else {
1768
+ this.changeEventEmitter.emit(this.value);
1769
+ changeManager.ChangeManager.notify(staticSubjectTitle.FORM_ELEMENT_VALUE_CHANGE, {
1770
+ host: this.host,
1771
+ detail: this.value,
1772
+ });
1773
+ }
1774
+ this.registerEditorRefAndContent();
1775
+ }
1776
+ /**
1777
+ * Updates the value of the editor and restore the selection.
1778
+ *
1779
+ * @param {VegaRTEContent} newValue The new value to set.
1780
+ * @param {boolean} recordHistory - Whether to record the change in history.
1781
+ */
1782
+ async flushChanges(newValue, recordHistory = true) {
1783
+ this.value = newValue.clone();
1784
+ if (recordHistory) {
1785
+ this.historyController.registerHistory(new RTEEditorState(this.value, new componentValueHistoryControllerSlimmer_abstract.RTESelectionState(this.selectionController.getCurrentRange())));
1786
+ }
1787
+ await index$1.waitForComponentDidRender(this.host);
1788
+ }
1789
+ /**
1790
+ * Determines whether the observer should accept changes.
1791
+ *
1792
+ * @returns {boolean} Always returns true in the current implementation.
1793
+ */
1794
+ isAcceptableFlushChange() {
1795
+ return true;
1796
+ }
1797
+ /**
1798
+ * Register the host element and the current content.
1799
+ */
1800
+ registerEditorRefAndContent() {
1801
+ if (this.host && this.host.value) {
1802
+ codeBlock.stateEntityRenderingRegistry.register(this.host, this.host.value);
1803
+ }
1804
+ }
1805
+ }
1806
+ ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
1807
+ __decorate$h([
1808
+ globalSlimmerRegistry.MapToComponentField()
1809
+ ], ValueController.prototype, "host", void 0);
1810
+ __decorate$h([
1811
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
1812
+ ], ValueController.prototype, "value", void 0);
1813
+ __decorate$h([
1814
+ globalSlimmerRegistry.MapToComponentField()
1815
+ ], ValueController.prototype, "changeEventEmitter", void 0);
1816
+ __decorate$h([
1817
+ globalSlimmerRegistry.MapToComponentField()
1818
+ ], ValueController.prototype, "valueController", void 0);
1819
+ __decorate$h([
1820
+ globalSlimmerRegistry.MapToComponentField()
1821
+ ], ValueController.prototype, "historyController", void 0);
1822
+ __decorate$h([
1823
+ globalSlimmerRegistry.MapToComponentField()
1824
+ ], ValueController.prototype, "selectionController", void 0);
1825
+ __decorate$h([
1826
+ globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
1827
+ ], ValueController.prototype, "connectedCallback", null);
1828
+ __decorate$h([
1829
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1830
+ ], ValueController.prototype, "disconnectedCallback", null);
1831
+ __decorate$h([
1832
+ globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
1833
+ ], ValueController.prototype, "componentWillLoad", null);
1834
+ __decorate$h([
1835
+ globalSlimmerRegistry.MapToComponentMethod('watchValueUpdate')
1836
+ ], ValueController.prototype, "watchValueUpdate", null);
1837
+
1838
+ /**
1839
+ * The rich text content controller
1840
+ */
1841
+ class RichTextContentController {
1842
+ constructor(editor) {
1843
+ this.editor = editor;
1844
+ }
1845
+ /**
1846
+ * Sync rich text content editable with disabled property
1847
+ *
1848
+ */
1849
+ syncRichTextContentEditable() {
1850
+ this.editor.richTextContentEditable = !this.editor.disabled;
1851
+ }
1852
+ }
1853
+
1854
+ const ROOT_CONTAINER_CLASS_NAME = 'rich-text-content';
1855
+ /** This code snippet is defining an abstract class named `BaseHandler` with an abstract method `execute`. */
1856
+ class BaseHandler {
1857
+ /**
1858
+ * The function `execute` initializes the current state and selection, and then handles an event if provided.
1859
+ *
1860
+ * @param {VegaRTEContent} currentState - The current state of the VegaRTE content.
1861
+ * @param {SelectionController} selectionController - Manages the selection of items in the user interface.
1862
+ * @param {HTMLElement} richTextEditor - The current rich text editor component
1863
+ * @param {InputEvent} [event] - It is used to pass an input event to the method for handling.
1864
+ */
1865
+ execute(currentState, selectionController, richTextEditor, event) {
1866
+ this.initCurrentStateAndSelection(currentState, selectionController);
1867
+ this.setCurrentRichTextEditor(richTextEditor);
1868
+ this.handleEvent(event);
1869
+ }
1870
+ /**
1871
+ * The function `isRootContainer` checks if an HTML element is a root container with a class of 'rich-text-content'.
1872
+ *
1873
+ * @param {HTMLElement} element - HTMLElement
1874
+ * @returns {boolean} The boolean value
1875
+ */
1876
+ isRootContainer(element) {
1877
+ return (element &&
1878
+ element.nodeType === Node.ELEMENT_NODE &&
1879
+ element.classList.contains(ROOT_CONTAINER_CLASS_NAME));
1880
+ }
1881
+ /**
1882
+ * Checks if a given HTML element represents an empty paragraph containing only a line break element.
1883
+ *
1884
+ * @param {HTMLElement} node - An HTMLElement node that represents a paragraph element in the HTML document.
1885
+ * @returns {boolean} boolean result
1886
+ */
1887
+ isEmptyParagraph(node) {
1888
+ return node && node.childNodes && node.childNodes.length === 0;
1889
+ }
1890
+ /**
1891
+ * Removes selected nodes within a range in a rich text editor content.
1892
+ * The method is only used for different nodes are selected
1893
+ *
1894
+ * @param {boolean} [mergeNode] Merge start node and end node or not, default value is false.
1895
+ * @returns {RTENode} The range start node, usually the start node is the first item of selectedNodes, if the selectedNodes is all removed, the start node will be a new text node.
1896
+ */
1897
+ removeSelectionRange(mergeNode = false) {
1898
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.richTextEditorRef, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes), { host: this.richTextEditorRef, detail: mergeNode });
1899
+ const range = this.selectionController.getCurrentRange();
1900
+ const selectedNodes = this.selectionController.getSelectedNodes();
1901
+ return range.startNode || selectedNodes[0];
1902
+ }
1903
+ /**
1904
+ * Creates a new paragraph with an empty text node and returns it.
1905
+ *
1906
+ * @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
1907
+ */
1908
+ createEmptyParagraph() {
1909
+ const paragraph = new codeBlock.RTETextBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID(), 'paragraph');
1910
+ const textNode = new codeBlock.RTETextNode(`${paragraph.id}1`, '', paragraph);
1911
+ paragraph.apply(new codeBlock.AppendChildrenAction([textNode]));
1912
+ return paragraph;
1913
+ }
1914
+ /**
1915
+ * The function initializes the current state and selection controller in TypeScript.
1916
+ *
1917
+ * @param {VegaRTEContent} currentState - The current state of a Vega runtime environment content.
1918
+ * @param {SelectionController} selectionController - It is used to manage the selection of content within the VegaRTE editor.
1919
+ */
1920
+ initCurrentStateAndSelection(currentState, selectionController) {
1921
+ this.currentState = currentState;
1922
+ this.selectionController = selectionController;
1923
+ }
1924
+ /**
1925
+ * Queries the rich text editor element from the input event target.
1926
+ *
1927
+ * @param {HTMLElement} richTextEditor - The current rich text editor component
1928
+ */
1929
+ setCurrentRichTextEditor(richTextEditor) {
1930
+ this.richTextEditorRef = richTextEditor;
1931
+ }
1932
+ }
1933
+
1934
+ /**
1935
+ * Replace the text node selected content to new text
1936
+ *
1937
+ * @example selectedNode.apply(new ReplaceSelectedTextAction(insertText))
1938
+ */
1939
+ class ReplaceSelectedTextAction extends codeBlock.ModifyContentAction {
1940
+ constructor(text, currentRange) {
1941
+ super();
1942
+ this.type = codeBlock.ModifyContentActionType.REPLACE_SELECTED_TEXT;
1943
+ this.textToBeInsert = '';
1944
+ this.textToBeInsert = text;
1945
+ this.currentRange = currentRange;
1946
+ }
1947
+ }
1948
+
1949
+ /**
1950
+ * Action to type character into a decorator node
1951
+ *
1952
+ * @example decoratorNode.parent.apply(new InsertTextToDecoratorNodeAction(decoratorNode, '', 0 | 1))
1953
+ */
1954
+ class InsertTextToDecoratorNodeAction extends codeBlock.ModifyContentAction {
1955
+ constructor(decoratorNode, text, offset) {
1956
+ super();
1957
+ this.type = codeBlock.ModifyContentActionType.INSERT_TEXT_TO_DECORATOR_NODE;
1958
+ this.text = '';
1959
+ this.offset = 0;
1960
+ this.decoratorNode = decoratorNode;
1961
+ this.text = text;
1962
+ this.offset = offset;
1963
+ }
1964
+ }
1965
+
1966
+ /** Handles inserting text into a VegaRTEContent based on the current selection and input event. User input character will trigger this callback */
1967
+ class InsertTextHandler extends BaseHandler {
1968
+ /**
1969
+ * Update the state value when user type character
1970
+ *
1971
+ * @param {InputEvent} event - The input event object
1972
+ */
1973
+ handleEvent(event) {
1974
+ const text = event.data;
1975
+ const currentRange = this.selectionController.getCurrentRange();
1976
+ const { startContainer, startOffset } = currentRange;
1977
+ const selectedNodes = this.selectionController.getSelectedNodes();
1978
+ if (selectedNodes.length < 2) {
1979
+ if (!selectedNodes.length && this.isRootContainer(startContainer)) {
1980
+ const cursorNode = this.insertTextToRoot(text);
1981
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, text.length);
1982
+ }
1983
+ else if (selectedNodes[0] instanceof codeBlock.RTETextNode) {
1984
+ if (selectedNodes[0].isContentEditable()) {
1985
+ let nextOffset = startOffset + text.length;
1986
+ let updateFlag = false;
1987
+ let cursorNode = selectedNodes[0];
1988
+ if (cursorNode.text === '\n') {
1989
+ cursorNode = this.insertTextToLineBreakNode(cursorNode, text);
1990
+ updateFlag = true;
1991
+ }
1992
+ else {
1993
+ if (startContainer.nodeValue === codeBlock.ZERO_WIDTH_SPACE &&
1994
+ startOffset === codeBlock.ZERO_WIDTH_SPACE.length &&
1995
+ cursorNode.isEmpty()) {
1996
+ startContainer.nodeValue = '';
1997
+ nextOffset = nextOffset - codeBlock.ZERO_WIDTH_SPACE.length;
1998
+ }
1999
+ if (cursorNode instanceof codeBlock.RTETextNode) {
2000
+ updateFlag = true;
2001
+ cursorNode.apply(new ReplaceSelectedTextAction(text, currentRange));
2002
+ }
2003
+ }
2004
+ updateFlag &&
2005
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, Math.min(nextOffset, cursorNode['text'].length));
2006
+ }
2007
+ else {
2008
+ selectedNodes[0].parent.apply(new InsertTextToDecoratorNodeAction(selectedNodes[0], text, startOffset));
2009
+ }
2010
+ }
2011
+ }
2012
+ else {
2013
+ // The selected nodes is multiple nodes
2014
+ const cursorNode = this.removeSelectionRange(true);
2015
+ if (cursorNode instanceof codeBlock.RTETextNode) {
2016
+ cursorNode.apply(new ReplaceSelectedTextAction(text, currentRange));
2017
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, Math.min(startOffset + text.length, cursorNode.text.length));
2018
+ }
2019
+ }
2020
+ }
2021
+ /**
2022
+ * Insert the text in root element when root container is empty, should create text block and text node
2023
+ *
2024
+ * @param {string} text The insert text
2025
+ * @returns {RTETextNode} The new create text node
2026
+ */
2027
+ insertTextToRoot(text) {
2028
+ if (this.currentState &&
2029
+ this.currentState.children[0] &&
2030
+ this.currentState.children[0] instanceof codeBlock.RTETextBlock) {
2031
+ const firstNode = this.currentState.children[0].children[0];
2032
+ firstNode.apply(new codeBlock.UpdateTextAction(text));
2033
+ return firstNode;
2034
+ }
2035
+ }
2036
+ /**
2037
+ * Insert text to a line break node need a special logic if the line break has a next text node.
2038
+ *
2039
+ * @param {RTETextNode} lineBreakNode The current line break node, the text value is \n
2040
+ * @param {string} text The text need to insert
2041
+ * @returns {Nullable<RTETextNode>} The new text node or the current line break node
2042
+ */
2043
+ insertTextToLineBreakNode(lineBreakNode, text) {
2044
+ const { startOffset, endOffset } = this.selectionController.getCurrentRange();
2045
+ const textBlock = lineBreakNode.parent;
2046
+ if (textBlock instanceof codeBlock.RTETextBlock) {
2047
+ const index = textBlock.children.indexOf(lineBreakNode);
2048
+ if (startOffset === 0 && startOffset === endOffset && textBlock.children[index + 1]) {
2049
+ const newTextNode = lineBreakNode.cloneWithText(text);
2050
+ textBlock.apply(new codeBlock.InsertChildrenBeforeAction(lineBreakNode, newTextNode));
2051
+ return newTextNode;
2052
+ }
2053
+ else {
2054
+ lineBreakNode.apply(new codeBlock.UpdateTextAction(text));
2055
+ return lineBreakNode;
2056
+ }
2057
+ }
2058
+ }
2059
+ }
2060
+
2061
+ /** Insert a paragraph in a rich text editor based on the current selection and event. User type enter will trigger this callback */
2062
+ class InsertParagraphHandler extends BaseHandler {
2063
+ /**
2064
+ * Create new paragraph node and add node to state value
2065
+ */
2066
+ handleEvent() {
2067
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2068
+ if (selectedBlocks.length) {
2069
+ if (selectedBlocks.length < 2) {
2070
+ this.breakSingleBlock();
2071
+ }
2072
+ else {
2073
+ this.breakMultipleBlocks();
2074
+ }
2075
+ }
2076
+ }
2077
+ /**
2078
+ * Handles breaking blocks in an RTE editor based on the current selection and position.
2079
+ */
2080
+ breakMultipleBlocks() {
2081
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2082
+ const range = this.selectionController.getCurrentRange();
2083
+ const cursorNode = this.removeSelectionRange();
2084
+ // If the start or end block contains a list item block, it needs to be processed separately
2085
+ if ((selectedBlocks.length && selectedBlocks[0].type === 'list-item') ||
2086
+ selectedBlocks[selectedBlocks.length - 1].type === 'list-item') {
2087
+ const firstBlock = cursorNode.parent;
2088
+ const lastBlock = selectedBlocks[selectedBlocks.length - 1];
2089
+ /**
2090
+ * First block is list item
2091
+ * --before--
2092
+ * ul
2093
+ * - li
2094
+ * p
2095
+ * - span
2096
+ * --after--
2097
+ * ul
2098
+ * - li
2099
+ * - li
2100
+ */
2101
+ /**
2102
+ * End block is list item
2103
+ * --before--
2104
+ * p
2105
+ * - span
2106
+ * ul
2107
+ * - li
2108
+ * --after--
2109
+ * p
2110
+ * - span
2111
+ * p
2112
+ * - span
2113
+ */
2114
+ if (firstBlock.type !== lastBlock.type &&
2115
+ range.startContainer.nodeType === range.endContainer.nodeType) {
2116
+ firstBlock.apply(new dtoRendererManager.MergeTwoBlocksNodesAction(lastBlock));
2117
+ const splitAction = new codeBlock.SplitBlockWithNodeAction(cursorNode, cursorNode['text'].length);
2118
+ firstBlock.apply(splitAction);
2119
+ this.switchCaretPositionToNextElement(splitAction.newBlock);
2120
+ return;
2121
+ }
2122
+ }
2123
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
2124
+ }
2125
+ /**
2126
+ * Handles breaking a single block in an RTE editor based on the current selection and position.
2127
+ */
2128
+ breakSingleBlock() {
2129
+ const cursorNode = this.removeSelectionRange();
2130
+ const currentBlock = cursorNode.parent;
2131
+ const { startOffset } = this.selectionController.getCurrentRange();
2132
+ if (currentBlock) {
2133
+ const breakAction = new dtoRendererManager.InsertNewParagraphAction(cursorNode, startOffset);
2134
+ currentBlock.apply(breakAction);
2135
+ this.switchCaretPositionToNextElement(breakAction.newBlock);
2136
+ }
2137
+ }
2138
+ /**
2139
+ * Moves the caret to the next block element in a rich text editor.
2140
+ *
2141
+ * @param {RTEBlock} newBlock - Represents a new create block element in a rich text editor.
2142
+ */
2143
+ switchCaretPositionToNextElement(newBlock) {
2144
+ if (newBlock && newBlock.children) {
2145
+ this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2146
+ }
2147
+ }
2148
+ }
2149
+
2150
+ /**
2151
+ * Split the block with a split point node
2152
+ *
2153
+ * @example block.apply(new SplitBlockWithNodeAction(node, offset))
2154
+ */
2155
+ class LineBreakSingleBlockAction extends codeBlock.ModifyContentAction {
2156
+ constructor(startContainerNode, startOffset) {
2157
+ super();
2158
+ this.type = codeBlock.ModifyContentActionType.LINE_BREAK_SINGLE_BLOCK;
2159
+ this.startContainerNode = startContainerNode;
2160
+ this.startOffset = startOffset;
2161
+ }
2162
+ }
2163
+
2164
+ /**
2165
+ * Split the block with a split point node
2166
+ *
2167
+ * @example block.apply(new SplitBlockWithNodeAction(node, offset))
2168
+ */
2169
+ class lineBreakMultipleBlocksAction extends codeBlock.ModifyContentAction {
2170
+ constructor(selectedBlocks) {
2171
+ super();
2172
+ this.type = codeBlock.ModifyContentActionType.LINE_BREAK_MULTIPLE_BLOCKS;
2173
+ this.selectedBlocks = selectedBlocks;
2174
+ }
2175
+ }
2176
+
2177
+ /** User press shift + enter will tigger this callback */
2178
+ class InsertLineBreakHandler extends BaseHandler {
2179
+ /**
2180
+ * Create new line break node and add node to state value
2181
+ */
2182
+ handleEvent() {
2183
+ const range = this.selectionController.getCurrentRange();
2184
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2185
+ if (this.isRootContainer(range.startContainer)) {
2186
+ this.breakNewBlock();
2187
+ }
2188
+ if (selectedBlocks.length) {
2189
+ if (selectedBlocks.length < 2) {
2190
+ this.breakSingleBlock();
2191
+ }
2192
+ else {
2193
+ this.breakMultipleBlocks();
2194
+ }
2195
+ }
2196
+ }
2197
+ /**
2198
+ * Insert the \n in text element when root container is empty, should create text block and text node
2199
+ * <p>
2200
+ * <span></span>
2201
+ * <span></span>
2202
+ * </p>
2203
+ */
2204
+ breakNewBlock() {
2205
+ if (this.currentState &&
2206
+ this.currentState.children[0] &&
2207
+ this.currentState.children[0] instanceof codeBlock.RTETextBlock) {
2208
+ const lineBreakAction = new LineBreakSingleBlockAction(this.currentState.children[0].children[0], 0);
2209
+ this.currentState.children[0].apply(lineBreakAction);
2210
+ this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
2211
+ }
2212
+ }
2213
+ /**
2214
+ * If the selected node is a text node
2215
+ * <p>
2216
+ * <span>text</span>
2217
+ * </p>
2218
+ * Insert a line break and the selected node will be split into three text nodes
2219
+ * <p>
2220
+ * <span>te</span>
2221
+ * <br>
2222
+ * <span>xt</span>
2223
+ * </p>
2224
+ */
2225
+ breakSingleBlock() {
2226
+ const range = this.selectionController.getCurrentRange();
2227
+ const cursorNode = this.removeSelectionRange();
2228
+ const currentBlock = cursorNode.parent;
2229
+ if (currentBlock) {
2230
+ const lineBreakAction = new LineBreakSingleBlockAction(cursorNode, range.startOffset);
2231
+ currentBlock.apply(lineBreakAction);
2232
+ if (lineBreakAction.lineBreakNode) {
2233
+ this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
2234
+ }
2235
+ }
2236
+ }
2237
+ /**
2238
+ * Handles breaking blocks in an RTE editor based on the current selection and position.
2239
+ */
2240
+ breakMultipleBlocks() {
2241
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2242
+ const cursorNode = this.removeSelectionRange();
2243
+ const lineBreakAction = new lineBreakMultipleBlocksAction(selectedBlocks);
2244
+ cursorNode.parent.apply(lineBreakAction);
2245
+ this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
2246
+ }
2247
+ /**
2248
+ * Moves the caret to the next node element in a rich text editor.
2249
+ *
2250
+ * @param {RTENode} lineBreakNode - Represents a node element in a rich text editor.
2251
+ */
2252
+ switchCaretPositionToSpecifiedNode(lineBreakNode) {
2253
+ this.selectionController.enqueueSelectionRangeFutureState(this.getNextRTENode(lineBreakNode), 0);
2254
+ }
2255
+ /**
2256
+ * Returns the next sibling node of a given block element in a rich text editor.
2257
+ *
2258
+ * @param {RTENode} lineBreakNode - The `lineBreakNode` parameter is of type `RTENode`, which is used to represent the new line break element in a rich text editor.
2259
+ * @returns {RTENode} The next sibling node of the current line break element, or the current node if next node is not exists.
2260
+ */
2261
+ getNextRTENode(lineBreakNode) {
2262
+ const index = lineBreakNode.parent.children.indexOf(lineBreakNode);
2263
+ const nextNode = lineBreakNode.parent.children[index + 1];
2264
+ return nextNode || lineBreakNode;
2265
+ }
2266
+ }
2267
+
2268
+ /**
2269
+ * Delete text or image when press delete
2270
+ *
2271
+ * @example currentBlock.apply(new DeleteBlockContentAction(startContainerNode, startOffset))
2272
+ */
2273
+ class DeleteBlockContentAction extends codeBlock.ModifyContentAction {
2274
+ constructor(startContainerNode, startOffset) {
2275
+ super();
2276
+ this.type = codeBlock.ModifyContentActionType.DELETE_BLOCK_CONTENT;
2277
+ this.startContainerNode = startContainerNode;
2278
+ this.startOffset = startOffset;
2279
+ }
2280
+ }
2281
+
2282
+ /** Handles the deletion of content within a VegaRTE editor. User press backspace or delete will trigger this method */
2283
+ class DeleteContentHandler extends BaseHandler {
2284
+ /**
2285
+ * Delete the selected node from the current state.
2286
+ */
2287
+ handleEvent() {
2288
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2289
+ if (selectedBlocks.length < 2) {
2290
+ this.deleteContentWithSingleBlock();
2291
+ }
2292
+ else {
2293
+ this.deleteContentWithMultipleNodes();
2294
+ }
2295
+ }
2296
+ /**
2297
+ * Handles the deletion of content within a single block in an RTE editor.
2298
+ */
2299
+ deleteContentWithSingleBlock() {
2300
+ const range = this.selectionController.getCurrentRange();
2301
+ const { startOffset, endOffset, startContainer, endContainer } = range;
2302
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2303
+ const selectedNodes = this.selectionController.getSelectedNodes();
2304
+ if (startOffset !== endOffset || startContainer !== endContainer) {
2305
+ this.deleteContentWithMultipleNodes();
2306
+ }
2307
+ else if (selectedBlocks[0]) {
2308
+ const deleteAction = new DeleteBlockContentAction(selectedNodes[0], startOffset);
2309
+ selectedBlocks[0].apply(deleteAction);
2310
+ if (deleteAction.previousNode) {
2311
+ const nextOffset = deleteAction.previousNode === selectedNodes[0]
2312
+ ? Math.max(0, startOffset - 1)
2313
+ : deleteAction.previousNode.getRangeEndOffset();
2314
+ this.selectionController.enqueueSelectionRangeFutureState(deleteAction.previousNode, nextOffset);
2315
+ }
2316
+ else if (deleteAction.nextNode) {
2317
+ this.selectionController.enqueueSelectionRangeFutureState(deleteAction.nextNode, 0);
2318
+ }
2319
+ else if (this.currentState.children.length === 0) {
2320
+ // Add a empty paragraph if delete all content to make sure the caret position
2321
+ this.insertDefaultParagraph();
2322
+ }
2323
+ }
2324
+ }
2325
+ /**
2326
+ * Deletes the content within multiple nodes selected by the user.
2327
+ */
2328
+ deleteContentWithMultipleNodes() {
2329
+ const selectedNodes = this.selectionController.getSelectedNodes();
2330
+ const cursorNode = this.removeSelectionRange(true);
2331
+ const lastSelectedNode = selectedNodes[selectedNodes.length - 1];
2332
+ if (selectedNodes.length > 1 &&
2333
+ lastSelectedNode instanceof codeBlock.RTETextNode &&
2334
+ lastSelectedNode.isEmpty()) {
2335
+ lastSelectedNode.parent.apply(new codeBlock.RemoveChildrenAction(lastSelectedNode));
2336
+ }
2337
+ this.convertFirstBlockToParagraph(cursorNode.parent);
2338
+ }
2339
+ /**
2340
+ * If the first block is not paragraph, convert the block to paragraph after delete all text
2341
+ *
2342
+ * @param {RTEBlock} block - The first block instance
2343
+ */
2344
+ convertFirstBlockToParagraph(block) {
2345
+ const firstBlock = this.currentState.children[0];
2346
+ if (firstBlock === block &&
2347
+ block instanceof codeBlock.RTETextBlock &&
2348
+ block.children.length === 1 &&
2349
+ block.children[0].isEmpty() &&
2350
+ block.type !== 'paragraph') {
2351
+ const paragraph = this.createEmptyParagraph();
2352
+ paragraph.apply(new codeBlock.ReplaceChildNodesAction(block.children));
2353
+ block.parent.apply(new codeBlock.InsertChildrenBeforeAction(block, paragraph));
2354
+ block.parent.apply(new codeBlock.RemoveChildrenAction(block));
2355
+ }
2356
+ }
2357
+ /**
2358
+ * Creates a new paragraph element with a text node and appends it to the current state.
2359
+ */
2360
+ insertDefaultParagraph() {
2361
+ const paragraph = this.createEmptyParagraph();
2362
+ this.currentState.apply(new codeBlock.AppendChildrenAction([paragraph]));
2363
+ this.selectionController.enqueueSelectionRangeFutureState(paragraph.children[0], 1);
2364
+ }
2365
+ }
2366
+
2367
+ /**
2368
+ * Action to paste new content into current block.
2369
+ *
2370
+ * @example functionBlock.apply(new PasteContentAction(blocksToBeInserted, startNode, startOffset))
2371
+ * @example host.value.apply(new PasteContentAction(blocksToBeInserted, startNode, startOffset))
2372
+ */
2373
+ class PasteContentAction extends codeBlock.ModifyContentAction {
2374
+ constructor(blocksToBeInserted, startNode, startOffset, rteRange) {
2375
+ super();
2376
+ this.type = codeBlock.ModifyContentActionType.PASTE_CONTENT;
2377
+ this.blocksToBeInserted = blocksToBeInserted;
2378
+ this.startNode = startNode;
2379
+ this.startOffset = startOffset;
2380
+ this.rteRange = rteRange;
2381
+ }
2382
+ }
2383
+
2384
+ /**
2385
+ * Handle user paste
2386
+ */
2387
+ class InsertPasteHandler extends BaseHandler {
2388
+ /**
2389
+ * Update the state value when user paste html elements.
2390
+ *
2391
+ * @param {InputEvent} event - Paste event.
2392
+ */
2393
+ handleEvent(event) {
2394
+ const blocks = this.parsePastedElements(event);
2395
+ const { startContainer } = this.selectionController.getCurrentRange();
2396
+ if (this.isRootContainer(startContainer)) {
2397
+ this.insertBlocksToRoot(blocks);
2398
+ // TODO: Need to check below logic, it seems not correct https://gethired.atlassian.net/browse/VD-7779
2399
+ }
2400
+ else if (this.isEmptyParagraph(startContainer)) {
2401
+ this.insertBlocksBeforeEmptyBlock(blocks);
2402
+ }
2403
+ else {
2404
+ this.insertBlocksToContent(blocks);
2405
+ }
2406
+ }
2407
+ /**
2408
+ * Insert the blocks to root
2409
+ *
2410
+ * @param { RTEContentBlock[]} blocks - blocks
2411
+ */
2412
+ insertBlocksToRoot(blocks) {
2413
+ this.currentState.apply(new codeBlock.AppendChildrenAction(blocks));
2414
+ }
2415
+ /**
2416
+ * Insert the blocks to content
2417
+ *
2418
+ * @param { RTEContentBlock[]} blocks - blocks
2419
+ */
2420
+ insertBlocksToContent(blocks) {
2421
+ const cursorNode = this.removeSelectionRange();
2422
+ if (cursorNode && cursorNode.parent) {
2423
+ const { startOffset } = this.selectionController.getCurrentRange();
2424
+ const pasteAction = new PasteContentAction(blocks, cursorNode, startOffset);
2425
+ cursorNode.parent.apply(pasteAction);
2426
+ if (pasteAction.futureFocusBlock) {
2427
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2428
+ }
2429
+ }
2430
+ }
2431
+ /**
2432
+ * Insert the blocks before to current block
2433
+ *
2434
+ * @param { RTEContentBlock[]} blocks - blocks
2435
+ */
2436
+ insertBlocksBeforeEmptyBlock(blocks) {
2437
+ const cursorNode = this.removeSelectionRange();
2438
+ /* istanbul ignore next */
2439
+ const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parent;
2440
+ if (currentBlock) {
2441
+ const pasteAction = new PasteContentAction(blocks, currentBlock.children[0], 0, this.selectionController.getCurrentRange());
2442
+ currentBlock.apply(pasteAction);
2443
+ if (pasteAction.futureFocusBlock) {
2444
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2445
+ }
2446
+ }
2447
+ }
2448
+ /**
2449
+ * Format and parse elements from user paste with simple style preservation.
2450
+ *
2451
+ * @param {InputEvent} event - Paste event.
2452
+ * @returns {RTEContentBlock[]} - RTEContentBlock.
2453
+ */
2454
+ parsePastedElements(event) {
2455
+ let pastedHTML = event.dataTransfer.getData('text/html');
2456
+ if (!pastedHTML) {
2457
+ const pastedText = event.dataTransfer.getData('text/plain');
2458
+ pastedHTML = this.parsePlainText(pastedText);
2459
+ }
2460
+ const context = dtoRendererManager.StylePreservator.preserve(pastedHTML);
2461
+ const safeHtml = context.getProcessedHtml();
2462
+ const parser = new DOMParser();
2463
+ const parsedDoc = parser.parseFromString(safeHtml, 'text/html');
2464
+ const htmlElements = Array.from(parsedDoc.body.childNodes);
2465
+ context.restore(htmlElements);
2466
+ return dtoRendererManager.ElementToDtoStrategyProcessor.process(htmlElements)
2467
+ .filter(Boolean)
2468
+ .map((output) => output.toDto())
2469
+ .filter(Boolean);
2470
+ }
2471
+ /**
2472
+ * Moves the caret to the next block element in a rich text editor.
2473
+ *
2474
+ * @param {RTEBlock} newBlock - Represents a new create block element in a rich text editor.
2475
+ */
2476
+ switchCaretPositionToNextElement(newBlock) {
2477
+ if (newBlock && newBlock.children) {
2478
+ this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2479
+ }
2480
+ }
2481
+ /**
2482
+ * Parses the content of a plain text and formats it into HTML.
2483
+ *
2484
+ * @param {string} content - The content of plain text.
2485
+ * @returns {string} - The formatted HTML string.
2486
+ */
2487
+ parsePlainText(content) {
2488
+ const lines = content.split('\n');
2489
+ return lines
2490
+ .map((line) => {
2491
+ if (line === '') {
2492
+ return '<p>\n</p>';
2493
+ }
2494
+ return `<p>${line}</p>`;
2495
+ })
2496
+ .join('');
2497
+ }
2498
+ }
2499
+
2500
+ var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2501
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2502
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2503
+ 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;
2504
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2505
+ };
2506
+ /** Used to monitoring the user input actions by event listener */
2507
+ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
2508
+ constructor() {
2509
+ super(...arguments);
2510
+ this.insertTextHandler = new InsertTextHandler();
2511
+ this.insertParagraphHandler = new InsertParagraphHandler();
2512
+ this.insertLineBreakHandler = new InsertLineBreakHandler();
2513
+ this.deleteContentHandler = new DeleteContentHandler();
2514
+ this.insertPasteHandler = new InsertPasteHandler();
2515
+ /**
2516
+ * When a user performs an input action within the editable element, this function is triggered.
2517
+ *
2518
+ * @param {InputEvent} e the before input event object
2519
+ */
2520
+ this.handleUserInputAction = (e) => {
2521
+ const inputType = e.inputType;
2522
+ e.preventDefault();
2523
+ this.initValueIfEmpty();
2524
+ // The insertCompositionText type input event can not be prevented, so we process the current action by insertCompositionTextController.
2525
+ // If the focus node is a non-editable element, we do not process the input event.
2526
+ if (inputType === 'insertCompositionText' || this.isFocusNodeNonEditable()) {
2527
+ return;
2528
+ }
2529
+ this.insertCompositionTextController.removeObserver();
2530
+ let updateFlag = false;
2531
+ switch (inputType) {
2532
+ case 'insertParagraph':
2533
+ updateFlag = true;
2534
+ this.insertParagraphHandler.execute(this.value, this.selectionController, this.host, e);
2535
+ break;
2536
+ case 'insertText':
2537
+ updateFlag = true;
2538
+ this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
2539
+ break;
2540
+ case 'insertLineBreak':
2541
+ updateFlag = true;
2542
+ this.insertLineBreakHandler.execute(this.value, this.selectionController, this.host, e);
2543
+ break;
2544
+ case 'deleteContentBackward':
2545
+ updateFlag = true;
2546
+ this.deleteContentHandler.execute(this.value, this.selectionController, this.host, e);
2547
+ break;
2548
+ case 'insertFromPaste':
2549
+ updateFlag = true;
2550
+ this.insertPasteHandler.execute(this.value, this.selectionController, this.host, e);
2551
+ break;
2552
+ }
2553
+ if (updateFlag) {
2554
+ void this.valueController.flushChanges(this.value);
2555
+ }
2556
+ };
2557
+ }
2558
+ /**
2559
+ * Adds event listener to an editable HTML element to handle user input actions.
2560
+ */
2561
+ addActionListener() {
2562
+ const editableElement = this.getEditableElementRef();
2563
+ if (editableElement) {
2564
+ editableElement.addEventListener('beforeinput', this.handleUserInputAction);
2565
+ editableElement.addEventListener('drop', this.preventDropEvent);
2566
+ }
2567
+ }
2568
+ /**
2569
+ * Removes event listener for user input actions from an editable HTML div element.
2570
+ */
2571
+ removeActionListener() {
2572
+ const editableElement = this.getEditableElementRef();
2573
+ if (editableElement) {
2574
+ editableElement.removeEventListener('beforeinput', this.handleUserInputAction);
2575
+ editableElement.removeEventListener('drop', this.preventDropEvent);
2576
+ }
2577
+ }
2578
+ /**
2579
+ * The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
2580
+ *
2581
+ * @returns {Nullable<HTMLDivElement>} A reference to an HTMLDivElement element that is editable.
2582
+ */
2583
+ getEditableElementRef() {
2584
+ if (!this.editableElementRef) {
2585
+ this.editableElementRef = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
2586
+ }
2587
+ return this.editableElementRef;
2588
+ }
2589
+ /**
2590
+ * Prevents the default behavior of a drag event.
2591
+ *
2592
+ * @param {DragEvent} e - drop event object
2593
+ */
2594
+ preventDropEvent(e) {
2595
+ e.preventDefault();
2596
+ }
2597
+ /**
2598
+ * Initializes the value to an empty array if it is currently empty.
2599
+ */
2600
+ initValueIfEmpty() {
2601
+ if (!this.value) {
2602
+ const id = createPublicApiRuntimeMetricsSlimmer.generateUUID();
2603
+ const defaultParagraph = [
2604
+ { id, type: 'paragraph', nodes: [{ id: `${id}1`, type: 'text', text: '' }] },
2605
+ ];
2606
+ void this.valueController.flushChanges(dtoRendererManager.VegaRTEContent.fromJSON(defaultParagraph));
2607
+ }
2608
+ }
2609
+ /**
2610
+ * The code block placeholder element is non-editable, so we need to check if the focus node is a code block placeholder element.
2611
+ *
2612
+ * @returns {boolean} - Returns true if the focus node is a code block placeholder element, otherwise false.
2613
+ */
2614
+ isFocusNodeNonEditable() {
2615
+ const { startContainer, endContainer } = this.selectionController.getCurrentRange();
2616
+ const selectedNodes = this.selectionController.getSelectedNodes();
2617
+ if (startContainer && startContainer === endContainer && selectedNodes.length === 0) {
2618
+ const focusElement = startContainer.nodeType === Node.ELEMENT_NODE
2619
+ ? startContainer
2620
+ : startContainer.parentElement;
2621
+ return (focusElement &&
2622
+ focusElement.classList.contains(codeBlock.RTECodeBlock.CODE_BLOCK_PLACEHOLDER_CLASS_NAME));
2623
+ }
2624
+ return false;
2625
+ }
2626
+ }
2627
+ __decorate$g([
2628
+ globalSlimmerRegistry.MapToComponentField()
2629
+ ], UserInputController.prototype, "host", void 0);
2630
+ __decorate$g([
2631
+ globalSlimmerRegistry.MapToComponentField()
2632
+ ], UserInputController.prototype, "value", void 0);
2633
+ __decorate$g([
2634
+ globalSlimmerRegistry.MapToComponentField()
2635
+ ], UserInputController.prototype, "valueController", void 0);
2636
+ __decorate$g([
2637
+ globalSlimmerRegistry.MapToComponentField()
2638
+ ], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
2639
+ __decorate$g([
2640
+ globalSlimmerRegistry.MapToComponentField()
2641
+ ], UserInputController.prototype, "selectionController", void 0);
2642
+ __decorate$g([
2643
+ globalSlimmerRegistry.MapToComponentField()
2644
+ ], UserInputController.prototype, "insertCompositionTextController", void 0);
2645
+ __decorate$g([
2646
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
2647
+ ], UserInputController.prototype, "addActionListener", null);
2648
+ __decorate$g([
2649
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2650
+ ], UserInputController.prototype, "removeActionListener", null);
2651
+
2652
+ /**
2653
+ * Insert the image to current block. if the block is not image block, this will split the block to two blocks
2654
+ *
2655
+ * @example block.apply(new InsertImageToBlockAction(node, offset, imageNode))
2656
+ */
2657
+ class InsertImageToBlockAction extends codeBlock.ModifyContentAction {
2658
+ constructor(splitPointNode, startOffsetOfNode, imageBlockToBeInserted) {
2659
+ super();
2660
+ this.isFlushable = true;
2661
+ this.type = codeBlock.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK;
2662
+ this.splitPointNode = splitPointNode;
2663
+ this.startOffsetOfNode = startOffsetOfNode;
2664
+ this.imageBlockToBeInserted = imageBlockToBeInserted;
2665
+ }
2666
+ }
2667
+
2668
+ var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2669
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2670
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2671
+ 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;
2672
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2673
+ };
2674
+ /** Used to control the insert image tool button actions */
2675
+ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
2676
+ /**
2677
+ * Insert a image to current state
2678
+ *
2679
+ * @param {string} imageUrl The image url
2680
+ * @returns {RTEImageNode} RTEImageNode
2681
+ */
2682
+ insertImageToCaretPosition(imageUrl) {
2683
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
2684
+ const imageBlock = new dtoRendererManager.RTEImageBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID());
2685
+ const newImageNode = new dtoRendererManager.RTEImageNode(createPublicApiRuntimeMetricsSlimmer.generateUUID(), imageUrl, imageBlock);
2686
+ newImageNode.apply(new imageAnnotationAction.ImageAnnotationAction('md', ''));
2687
+ imageBlock.apply(new codeBlock.AppendChildrenAction([newImageNode]));
2688
+ if (selectedBlocks.length < 1 || this.value.children.length < 1) {
2689
+ this.value.apply(new codeBlock.AppendChildrenAction([imageBlock]));
2690
+ void this.valueController.flushChanges(this.value);
2691
+ }
2692
+ else {
2693
+ const { startOffset } = this.selectionController.getCurrentRange();
2694
+ const selectedNodes = this.selectionController.getSelectedNodes();
2695
+ selectedBlocks[0].apply(new InsertImageToBlockAction(selectedNodes[0], startOffset, imageBlock));
2696
+ }
2697
+ this.updateCaretPosition(newImageNode);
2698
+ return newImageNode;
2699
+ }
2700
+ /**
2701
+ * Add image selected observer
2702
+ */
2703
+ registerObserver() {
2704
+ this.registerImageSelectedObserver();
2705
+ }
2706
+ /**
2707
+ * remove the observer when component removed
2708
+ */
2709
+ unRegisterObserver() {
2710
+ this.removeImageSelectedObserver();
2711
+ }
2712
+ /**
2713
+ * Updates the caret position to the parent element of a new image node.
2714
+ *
2715
+ * @param {RTEImageNode} newImageNode - An image node in a rich text editor.
2716
+ */
2717
+ updateCaretPosition(newImageNode) {
2718
+ this.selectionController.enqueueSelectionRangeFutureState(newImageNode, 1);
2719
+ }
2720
+ /**
2721
+ * The current selected node should be current image node after click image.
2722
+ */
2723
+ registerImageSelectedObserver() {
2724
+ const richTextContentRef = this.vegaRichTextEditorRenderer.getRichTextContentRef();
2725
+ if (richTextContentRef) {
2726
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(richTextContentRef, vegaInternalEventId.VegaInternalRichTextImageClick, (payload) => {
2727
+ const range = this.selectionController.getCurrentRange();
2728
+ if (!range || range.startContainer !== payload.host || range.startOffset !== 0) {
2729
+ const imageNode = codeBlock.stateEntityRenderingRegistry.getEntityByDOM(payload.host.querySelector('img'));
2730
+ this.selectionController.enqueueSelectionRangeFutureState(imageNode, 0, imageNode, 0, true);
2731
+ }
2732
+ });
2733
+ /*
2734
+ * The below method is e2e-test covered in
2735
+ * @see{module:vega-rich-text-editor-image-click-delete-button}
2736
+ */
2737
+ /* istanbul ignore next */
2738
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(richTextContentRef, vegaInternalEventId.VegaInternalRichTextImageDeleteButtonClicked, (payload) => {
2739
+ const range = this.selectionController.getCurrentRange();
2740
+ if (!range || range.startContainer !== payload.host || range.startOffset !== 1) {
2741
+ this.selectionController.enqueueSelectionRangeFutureState(payload.host, 1, payload.host, 1, true);
2742
+ }
2743
+ });
2744
+ }
2745
+ }
2746
+ /**
2747
+ * remove the observer after component delete
2748
+ */
2749
+ removeImageSelectedObserver() {
2750
+ const richTextContentRef = this.vegaRichTextEditorRenderer.getRichTextContentRef();
2751
+ if (richTextContentRef) {
2752
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(richTextContentRef, vegaInternalEventId.VegaInternalRichTextImageClick);
2753
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(richTextContentRef, vegaInternalEventId.VegaInternalRichTextImageDeleteButtonClicked);
2754
+ }
2755
+ }
2756
+ }
2757
+ __decorate$f([
2758
+ globalSlimmerRegistry.MapToComponentField()
2759
+ ], InsertImageController.prototype, "selectionController", void 0);
2760
+ __decorate$f([
2761
+ globalSlimmerRegistry.MapToComponentField()
2762
+ ], InsertImageController.prototype, "value", void 0);
2763
+ __decorate$f([
2764
+ globalSlimmerRegistry.MapToComponentField()
2765
+ ], InsertImageController.prototype, "valueController", void 0);
2766
+ __decorate$f([
2767
+ globalSlimmerRegistry.MapToComponentField()
2768
+ ], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
2769
+ __decorate$f([
2770
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
2771
+ ], InsertImageController.prototype, "registerObserver", null);
2772
+ __decorate$f([
2773
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2774
+ ], InsertImageController.prototype, "unRegisterObserver", null);
2775
+
2776
+ var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2777
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2778
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2779
+ 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;
2780
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2781
+ };
2782
+ /**
2783
+ * Focus controller for RTE
2784
+ */
2785
+ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
2786
+ constructor() {
2787
+ super(...arguments);
2788
+ /**
2789
+ * Do a focus on the last text node of the last block
2790
+ *
2791
+ * @param {RTEContentBlock} lastBlock - The last block of the content
2792
+ */
2793
+ this.doFocusOnLastTextNode = async (lastBlock) => {
2794
+ const lastNode = lastBlock.getLastNode();
2795
+ const dom = codeBlock.stateEntityRenderingRegistry.getDOMByEntity(lastNode);
2796
+ if (dom) {
2797
+ if (!lastNode.isContentEditable()) {
2798
+ this.setCaretRangeToNodeEnd(dom.parentElement, lastNode.getRangeEndOffset());
2799
+ }
2800
+ else {
2801
+ this.setCaretRangeToNodeEnd(dom.firstChild, dom.firstChild.nodeValue.length);
2802
+ }
2803
+ await this.vegaRichTextEditorRenderer.getRichTextContentRef().vegaFocus();
2804
+ }
2805
+ };
2806
+ }
2807
+ /**
2808
+ * Focus on the last text node of the last block.
2809
+ *
2810
+ * @param {{ newLine?: boolean }} options - The options of the method
2811
+ * @param {boolean} options.newLine - Should a new line be added before the last text node
2812
+ * @returns {Promise<void>} - A promise that resolves when the focus is set
2813
+ */
2814
+ async focusOnLastTextNode(options) {
2815
+ const lastBlock = this.value.children[this.value.children.length - 1];
2816
+ if (!(lastBlock instanceof codeBlock.RTETextBlock) || (options === null || options === void 0 ? void 0 : options.newLine)) {
2817
+ const newTextBlock = codeBlock.RTETextBlock.from({
2818
+ id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
2819
+ type: 'paragraph',
2820
+ nodes: [{ id: createPublicApiRuntimeMetricsSlimmer.generateUUID(), type: 'text', text: '' }],
2821
+ });
2822
+ lastBlock.parent.apply(new codeBlock.InsertChildrenAfterAction(lastBlock, newTextBlock));
2823
+ await this.valueController.flushChanges(this.value);
2824
+ await this.doFocusOnLastTextNode(newTextBlock);
2825
+ }
2826
+ else {
2827
+ await this.doFocusOnLastTextNode(lastBlock);
2828
+ }
2829
+ }
2830
+ /**
2831
+ * Move the caret to the end of the node
2832
+ *
2833
+ * @param {Node} targetNode - The node to move the caret to
2834
+ * @param {number} offset - The offset to move the caret to
2835
+ */
2836
+ setCaretRangeToNodeEnd(targetNode, offset) {
2837
+ const range = new Range();
2838
+ range.setStart(targetNode, offset);
2839
+ this.selectionController.setSelectionRange(range);
2840
+ }
2841
+ }
2842
+ __decorate$e([
2843
+ globalSlimmerRegistry.MapToComponentField()
2844
+ ], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
2845
+ __decorate$e([
2846
+ globalSlimmerRegistry.MapToComponentField()
2847
+ ], FocusController.prototype, "selectionController", void 0);
2848
+ __decorate$e([
2849
+ globalSlimmerRegistry.MapToComponentField()
2850
+ ], FocusController.prototype, "valueController", void 0);
2851
+ __decorate$e([
2852
+ globalSlimmerRegistry.MapToComponentField()
2853
+ ], FocusController.prototype, "value", void 0);
2854
+
2855
+ var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2856
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2857
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2858
+ 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;
2859
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2860
+ };
2861
+ /**
2862
+ * Controller for the text node color
2863
+ */
2864
+ class TextNodeColorController extends globalSlimmerRegistry.VegaSlimmer {
2865
+ /**
2866
+ * Component lifecycle - [connectedCallback]
2867
+ * Register an observer to watch for dark mode updates, which will update the color of text node .
2868
+ */
2869
+ connectedCallback() {
2870
+ this.observer = new observer.Observer(this.isAcceptObserver.bind(this), (isDark) => {
2871
+ const textNodeElements = imageAnnotationAction.TextNodeRenderingRegistry.getTextNodeElements();
2872
+ textNodeElements.forEach((textColorAnnotation, element) => {
2873
+ element.style.color = isDark
2874
+ ? textColorAnnotation.textColor.dark
2875
+ : textColorAnnotation.textColor.light;
2876
+ });
2877
+ });
2878
+ changeManager.ChangeManager.register(staticSubjectTitle.DARK_MODE_CHANGE, this.observer);
2879
+ }
2880
+ /**
2881
+ * cancel dark mode observer when disconnectedCallback
2882
+ */
2883
+ disconnectResizeObserver() {
2884
+ changeManager.ChangeManager.unregister(staticSubjectTitle.DARK_MODE_CHANGE, this.observer);
2885
+ }
2886
+ /**
2887
+ * Determines whether the observer should accept changes.
2888
+ *
2889
+ * @returns {boolean} Always returns true in the current implementation.
2890
+ */
2891
+ isAcceptObserver() {
2892
+ return true;
2893
+ }
2894
+ }
2895
+ __decorate$d([
2896
+ globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
2897
+ ], TextNodeColorController.prototype, "connectedCallback", null);
2898
+ __decorate$d([
2899
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2900
+ ], TextNodeColorController.prototype, "disconnectResizeObserver", null);
2901
+
2902
+ var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2903
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2904
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2905
+ 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;
2906
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2907
+ };
2908
+ /** Handles inserting composition text into a VegaRTEContent based on the current selection and input event. User input character will trigger this callback */
2909
+ class InsertCompositionTextController extends globalSlimmerRegistry.VegaSlimmer {
2910
+ constructor() {
2911
+ super(...arguments);
2912
+ this.insertCompositionTextEndFlag = true;
2913
+ this.observerOptions = {
2914
+ characterData: true,
2915
+ characterDataOldValue: true,
2916
+ subtree: true,
2917
+ childList: true,
2918
+ };
2919
+ /**
2920
+ * The current method is called when the insert text is update by the Pinyin input or the word correction plugin.
2921
+ *
2922
+ * @param {MutationRecord[]} records - The mutation record object array.
2923
+ */
2924
+ this.updateTextFromDom = (records) => {
2925
+ let updateFlag = false;
2926
+ if (this.insertCompositionTextEndFlag !== false) {
2927
+ records.forEach((record) => {
2928
+ const { target, oldValue } = record;
2929
+ if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
2930
+ const richTextNode = codeBlock.stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
2931
+ const newValue = target.textContent;
2932
+ if (richTextNode instanceof codeBlock.RTETextNode &&
2933
+ richTextNode.isContentEditable() &&
2934
+ richTextNode.parent instanceof codeBlock.RTETextBlock) {
2935
+ updateFlag = this.updateCurrentNodeText(richTextNode, newValue, oldValue);
2936
+ }
2937
+ else if (newValue) {
2938
+ // The text element should removed if insert text to the image block.
2939
+ target.parentElement.removeChild(target);
2940
+ updateFlag = true;
2941
+ }
2942
+ }
2943
+ });
2944
+ }
2945
+ if (updateFlag) {
2946
+ void this.valueController.flushChanges(this.value);
2947
+ }
2948
+ };
2949
+ /**
2950
+ * Processes mutation records related to character data and updates the text content of a rich text node accordingly.
2951
+ *
2952
+ * @param {MutationRecord[]} records - Each `MutationRecord` object represents a single mutation that occurred in the DOM.
2953
+ */
2954
+ this.handleObserver = (records) => {
2955
+ if (records.every((record) => record.type === 'characterData')) {
2956
+ this.updateTextFromDom(records);
2957
+ }
2958
+ };
2959
+ /**
2960
+ * An event handler function that is triggered when the composition of text input starts. In this case,
2961
+ * it sets the `insertCompositionTextEndFlag` property of the `UserInputController` class to `false`.
2962
+ */
2963
+ this.handleCompositionStart = () => {
2964
+ this.insertCompositionTextEndFlag = false;
2965
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes), { host: this.host, detail: true });
2966
+ };
2967
+ /**
2968
+ * An event handler function that is triggered when the composition of text input ends. In this case,
2969
+ * it sets the `insertCompositionTextEndFlag` property of the `UserInputController` class to `true`.
2970
+ *
2971
+ * @param {CompositionEvent} event The composition event instance
2972
+ */
2973
+ this.handleCompositionEnd = (event) => {
2974
+ this.insertCompositionTextEndFlag = true;
2975
+ const insertData = event.data;
2976
+ if (insertData) {
2977
+ this.dispatchInsertTextEvent(insertData);
2978
+ }
2979
+ };
2980
+ }
2981
+ /**
2982
+ * The function `initMutationObserver` initializes a MutationObserver on an editable HTML element if it exists.
2983
+ */
2984
+ initMutationObserver() {
2985
+ if (this.mutationObserver) {
2986
+ const editableElement = this.getEditableElementRef();
2987
+ if (editableElement) {
2988
+ this.mutationObserver.disconnect();
2989
+ this.mutationObserver.observe(editableElement, this.observerOptions);
2990
+ }
2991
+ }
2992
+ }
2993
+ /**
2994
+ * Disconnects the mutation observer if it exists.
2995
+ */
2996
+ removeObserver() {
2997
+ if (this.mutationObserver) {
2998
+ this.mutationObserver.disconnect();
2999
+ }
3000
+ }
3001
+ /**
3002
+ * The method is to get the composition text insert end or not.
3003
+ *
3004
+ * @returns {boolean} The false is main that insert composition text process is end.
3005
+ */
3006
+ isComposing() {
3007
+ return !this.insertCompositionTextEndFlag;
3008
+ }
3009
+ /**
3010
+ * Adds event listener to an editable HTML element to handle composition text insert actions.
3011
+ */
3012
+ addCompositionTextEventListener() {
3013
+ const editableElement = this.getEditableElementRef();
3014
+ if (editableElement) {
3015
+ editableElement.addEventListener('compositionstart', this.handleCompositionStart);
3016
+ editableElement.addEventListener('compositionend', this.handleCompositionEnd);
3017
+ }
3018
+ this.mutationObserver = new MutationObserver(this.handleObserver);
3019
+ this.initMutationObserver();
3020
+ }
3021
+ /**
3022
+ * Removes event listener to an editable HTML element to handle composition text insert actions.
3023
+ */
3024
+ removeCompositionTextEventListener() {
3025
+ const editableElement = this.getEditableElementRef();
3026
+ if (editableElement) {
3027
+ editableElement.removeEventListener('compositionstart', this.handleCompositionStart);
3028
+ editableElement.removeEventListener('compositionend', this.handleCompositionEnd);
3029
+ }
3030
+ this.removeObserver();
3031
+ }
3032
+ /**
3033
+ * re-connect the observer after the props change and component did render
3034
+ */
3035
+ reConnectObserver() {
3036
+ this.initMutationObserver();
3037
+ }
3038
+ /**
3039
+ * Insert text to a line break node need a special logic if the line break has a next text node.
3040
+ *
3041
+ * @param {RTETextNode} currentNode The current line break node, the text value is \n
3042
+ */
3043
+ appendLineBreakNode(currentNode) {
3044
+ const textBlock = currentNode.parent;
3045
+ const index = textBlock.children.indexOf(currentNode);
3046
+ if (textBlock.children[index + 1]) {
3047
+ const newTextNode = currentNode.cloneWithText('\n');
3048
+ textBlock.apply(new codeBlock.InsertChildrenBeforeAction(textBlock.children[index + 1], newTextNode));
3049
+ }
3050
+ }
3051
+ /**
3052
+ * Updates the text content of a rich text node and handles line breaks.
3053
+ *
3054
+ * @param {RTETextNode} richTextNode - The current rich text node.
3055
+ * @param {string} newValue - The target element textContent
3056
+ * @param {Nullable<string>} oldValue - The target element old textContent
3057
+ * @returns {Nullable<boolean>} The node text is updated or not
3058
+ */
3059
+ updateCurrentNodeText(richTextNode, newValue, oldValue) {
3060
+ const insertText = this.removeZeroWidthSpace(newValue.replace(/(\n)$/, ''));
3061
+ if (richTextNode.text !== insertText) {
3062
+ const { startOffset } = this.selectionController.getCurrentRange();
3063
+ const currentIsLineBreakNode = richTextNode.text === '\n';
3064
+ richTextNode.apply(new codeBlock.UpdateTextAction(insertText));
3065
+ if (currentIsLineBreakNode) {
3066
+ this.appendLineBreakNode(richTextNode);
3067
+ }
3068
+ const lengthGap = oldValue ? oldValue.length - newValue.length : 0;
3069
+ const newOffset = Math.min(insertText.length, startOffset - lengthGap);
3070
+ this.selectionController.enqueueSelectionRangeFutureState(richTextNode, Math.max(0, newOffset));
3071
+ return true;
3072
+ }
3073
+ }
3074
+ /**
3075
+ * The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
3076
+ *
3077
+ * @returns {Nullable<HTMLDivElement>} A reference to an HTMLDivElement element that is editable.
3078
+ */
3079
+ getEditableElementRef() {
3080
+ if (!this.editableElementRef) {
3081
+ this.editableElementRef = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
3082
+ }
3083
+ return this.editableElementRef;
3084
+ }
3085
+ /**
3086
+ * Remove the ZERO_WIDTH_SPACE from the text.
3087
+ *
3088
+ * @param {string} text The input text that could include ZERO_WIDTH_SPACE.
3089
+ * @returns {string} The result text.
3090
+ */
3091
+ removeZeroWidthSpace(text) {
3092
+ if (text.startsWith(codeBlock.ZERO_WIDTH_SPACE)) {
3093
+ return text.slice(codeBlock.ZERO_WIDTH_SPACE.length);
3094
+ }
3095
+ else if (text.endsWith(codeBlock.ZERO_WIDTH_SPACE)) {
3096
+ return text.slice(0, text.length - codeBlock.ZERO_WIDTH_SPACE.length);
3097
+ }
3098
+ return text;
3099
+ }
3100
+ /**
3101
+ * Dispatch a insert text event to handle the composition text insert logic.
3102
+ *
3103
+ * @param {string} text - The text need to insert.
3104
+ */
3105
+ dispatchInsertTextEvent(text) {
3106
+ const inputEvent = new CustomEvent('beforeinput');
3107
+ inputEvent['data'] = text;
3108
+ inputEvent['inputType'] = 'insertText';
3109
+ this.editableElementRef.dispatchEvent(inputEvent);
3110
+ }
3111
+ }
3112
+ __decorate$c([
3113
+ globalSlimmerRegistry.MapToComponentField()
3114
+ ], InsertCompositionTextController.prototype, "selectionController", void 0);
3115
+ __decorate$c([
3116
+ globalSlimmerRegistry.MapToComponentField()
3117
+ ], InsertCompositionTextController.prototype, "host", void 0);
3118
+ __decorate$c([
3119
+ globalSlimmerRegistry.MapToComponentField()
3120
+ ], InsertCompositionTextController.prototype, "value", void 0);
3121
+ __decorate$c([
3122
+ globalSlimmerRegistry.MapToComponentField()
3123
+ ], InsertCompositionTextController.prototype, "valueController", void 0);
3124
+ __decorate$c([
3125
+ globalSlimmerRegistry.MapToComponentField()
3126
+ ], InsertCompositionTextController.prototype, "userInputController", void 0);
3127
+ __decorate$c([
3128
+ globalSlimmerRegistry.MapToComponentField()
3129
+ ], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
3130
+ __decorate$c([
3131
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3132
+ ], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
3133
+ __decorate$c([
3134
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3135
+ ], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
3136
+ __decorate$c([
3137
+ globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
3138
+ ], InsertCompositionTextController.prototype, "reConnectObserver", null);
3139
+
3140
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3141
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3142
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3143
+ 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;
3144
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3145
+ };
3146
+ /**
3147
+ * The `DeleteSelectedNodesController` class provides methods to delete selected nodes.
3148
+ */
3149
+ class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
3150
+ constructor() {
3151
+ super(...arguments);
3152
+ /**
3153
+ * Deletes the selected nodes.
3154
+ *
3155
+ * @param {NotifyObserverPayload<boolean>} payload The notify payload
3156
+ * @param {boolean} payload.detail The delete process need merge start node and end node or not, default value is true.
3157
+ */
3158
+ this.deleteActionProcess = (payload) => {
3159
+ const range = this.selectionController.getCurrentRange();
3160
+ const { startContainer, endContainer, startOffset, endOffset } = range;
3161
+ if (startContainer !== endContainer || startOffset !== endOffset) {
3162
+ const cursorNode = this.removeSelectionRange();
3163
+ const mergeStartAndEndFlag = payload && payload.detail ? payload.detail : false;
3164
+ if (mergeStartAndEndFlag) {
3165
+ this.mergeRangeStartAndEnd(startContainer, endContainer);
3166
+ }
3167
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
3168
+ }
3169
+ };
3170
+ }
3171
+ /**
3172
+ * Adds the observer to the host element.
3173
+ */
3174
+ addDeleteObserver() {
3175
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(this.host, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes, this.deleteActionProcess);
3176
+ }
3177
+ /**
3178
+ * Removes the observer from the host element.
3179
+ */
3180
+ removeDeleteObserver() {
3181
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.host, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes);
3182
+ }
3183
+ /**
3184
+ * Removes selected nodes within a range in a rich text editor content.
3185
+ * The method is only used for different nodes are selected
3186
+ *
3187
+ * @returns {RTENode} The range start node, usually the start node is the first item of selectedNodes, if the selectedNodes is all removed, the start node will be a new text node.
3188
+ */
3189
+ removeSelectionRange() {
3190
+ const range = this.selectionController.getCurrentRange();
3191
+ const selectedNodes = this.selectionController.getSelectedNodes();
3192
+ const { endOffset, startOffset } = range;
3193
+ const startNode = selectedNodes[0];
3194
+ const endNode = selectedNodes[selectedNodes.length - 1];
3195
+ if (selectedNodes.length > 1) {
3196
+ // Remove all selected nodes except start node and end node(the end image node will be removed), the start node need to get the index of the block
3197
+ const shouldRemovedItems = selectedNodes.filter((item) => {
3198
+ if (item.isContentEditable()) {
3199
+ return item !== startNode && item !== endNode;
3200
+ }
3201
+ else {
3202
+ return (item !== startNode &&
3203
+ (item !== endNode || this.isEndNodeFullyInTheRange(endNode, endOffset, item)));
3204
+ }
3205
+ });
3206
+ shouldRemovedItems.forEach((item) => {
3207
+ item.parent.apply(new codeBlock.RemoveChildrenAction(item));
3208
+ });
3209
+ }
3210
+ this.removeRangeStartAndEndSelectedText();
3211
+ /**
3212
+ * if the range start node is image and the item is selected, so we need remove the image item, the image block will be removed if the item is the only item.
3213
+ * but before remove the image block, we need insert a paragraph to make sure the start block and start node could be get correct before insert text or break paragraph action.
3214
+ * the code block node should do the same logic.
3215
+ */
3216
+ if (!startNode.isContentEditable() &&
3217
+ this.isStartNodeFullyInTheRange(startNode, endNode, startOffset, endOffset)) {
3218
+ // the image block will be deleted when the image is the only item
3219
+ if (startNode.parent.children.length === 1) {
3220
+ const paragraph = this.createEmptyParagraph();
3221
+ let shouldDeleteBlock = startNode.parent;
3222
+ // if the node grand parent is html block and the html block only has one child, we need insert the paragraph before the html block to jump out the html block
3223
+ if (shouldDeleteBlock.parent &&
3224
+ !(shouldDeleteBlock.parent instanceof dtoRendererManager.VegaRTEContent) &&
3225
+ shouldDeleteBlock.parent.children.length === 1) {
3226
+ shouldDeleteBlock = shouldDeleteBlock.parent;
3227
+ }
3228
+ shouldDeleteBlock.parent.apply(new codeBlock.InsertChildrenBeforeAction(shouldDeleteBlock, paragraph));
3229
+ startNode.parent.apply(new codeBlock.RemoveChildrenAction(startNode));
3230
+ return paragraph.children[0];
3231
+ }
3232
+ else if (startNode === startNode.parent.children[0]) {
3233
+ // the start node should be the next image item if the image is first item
3234
+ startNode.parent.apply(new codeBlock.RemoveChildrenAction(startNode));
3235
+ return startNode.parent.children[0];
3236
+ }
3237
+ }
3238
+ return startNode;
3239
+ }
3240
+ /**
3241
+ * Removes the selected text at the start and end of a range in a Rich Text Editor.
3242
+ */
3243
+ removeRangeStartAndEndSelectedText() {
3244
+ const selectedNodes = this.selectionController.getSelectedNodes();
3245
+ const currentRange = this.selectionController.getCurrentRange();
3246
+ if (selectedNodes[0] instanceof codeBlock.RTETextNode && selectedNodes[0].isContentEditable()) {
3247
+ selectedNodes[0].apply(new ReplaceSelectedTextAction('', currentRange));
3248
+ }
3249
+ const endNode = selectedNodes[selectedNodes.length - 1];
3250
+ if (selectedNodes.length > 1 && endNode instanceof codeBlock.RTETextNode && endNode.isContentEditable()) {
3251
+ selectedNodes[selectedNodes.length - 1].apply(new ReplaceSelectedTextAction('', currentRange));
3252
+ }
3253
+ }
3254
+ /**
3255
+ * Creates a new paragraph with an empty text node and returns it.
3256
+ *
3257
+ * @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
3258
+ */
3259
+ createEmptyParagraph() {
3260
+ const paragraph = new codeBlock.RTETextBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID(), 'paragraph');
3261
+ const textNode = new codeBlock.RTETextNode(`${paragraph.id}1`, '', paragraph);
3262
+ paragraph.apply(new codeBlock.AppendChildrenAction([textNode]));
3263
+ return paragraph;
3264
+ }
3265
+ /**
3266
+ * Merges text nodes in a rich text editor.
3267
+ *
3268
+ * @param {Node} startContainer - Start text node element
3269
+ * @param {Node} endContainer - End text node element
3270
+ */
3271
+ mergeRangeStartAndEnd(startContainer, endContainer) {
3272
+ if (startContainer !== endContainer) {
3273
+ if (startContainer.nodeType === Node.TEXT_NODE && endContainer.nodeType === Node.TEXT_NODE) {
3274
+ const selectedNodes = this.selectionController.getSelectedNodes();
3275
+ const startRTENode = selectedNodes[0];
3276
+ const endRTENode = selectedNodes[selectedNodes.length - 1];
3277
+ if (startRTENode && startRTENode.parent && endRTENode && endRTENode.parent) {
3278
+ const endBlock = endRTENode.parent;
3279
+ if (this.shouldMergeTextNode(startRTENode, endRTENode)) {
3280
+ startRTENode.apply(new codeBlock.UpdateTextAction(startRTENode.text + endRTENode.text));
3281
+ if (startRTENode.parent === endRTENode.parent) {
3282
+ startRTENode.parent.apply(new codeBlock.RemoveChildrenAction(endRTENode));
3283
+ }
3284
+ else {
3285
+ endRTENode.parent.apply(new codeBlock.RemoveChildrenAction(endRTENode.parent.children[0]));
3286
+ }
3287
+ }
3288
+ if (startRTENode instanceof codeBlock.RTETextNode &&
3289
+ endRTENode instanceof codeBlock.RTETextNode &&
3290
+ startRTENode.parent !== endRTENode.parent) {
3291
+ startRTENode.parent.apply(new codeBlock.AppendChildrenAction(endBlock.children));
3292
+ endBlock.children = [];
3293
+ }
3294
+ if (endBlock.children.length < 1) {
3295
+ endBlock.parent.apply(new codeBlock.RemoveChildrenAction(endBlock));
3296
+ }
3297
+ }
3298
+ }
3299
+ }
3300
+ }
3301
+ /**
3302
+ * Compares the annotations of two RTETextNodes to determine if they can be merged.
3303
+ *
3304
+ * @param {RTETextNode} nodeA - node A
3305
+ * @param {RTETextNode} nodeB - node B
3306
+ * @returns {boolean} true or false
3307
+ */
3308
+ shouldMergeTextNode(nodeA, nodeB) {
3309
+ const { annotations: annotationsA } = nodeA.toJSON();
3310
+ const { annotations: annotationsB } = nodeB.toJSON();
3311
+ return (nodeA instanceof codeBlock.RTETextNode &&
3312
+ nodeB instanceof codeBlock.RTETextNode &&
3313
+ JSON.stringify(annotationsA) === JSON.stringify(annotationsB));
3314
+ }
3315
+ /**
3316
+ * Check the decorator node is fully in the range end.
3317
+ *
3318
+ * @param {RTENode} rangeEndNode - The end node of the range
3319
+ * @param {number} endOffset - The end offset of the range
3320
+ * @param {RTENode<RTEBlock>} checkedNode - The checked decorator node
3321
+ * @returns {boolean} - Whether the end node is fully within the range
3322
+ */
3323
+ isEndNodeFullyInTheRange(rangeEndNode, endOffset, checkedNode) {
3324
+ if (checkedNode instanceof codeBlock.RTECodeBlockNode) {
3325
+ return true;
3326
+ }
3327
+ else {
3328
+ return checkedNode === rangeEndNode && endOffset !== 0;
3329
+ }
3330
+ }
3331
+ /**
3332
+ * Check if the start decorator node is fully in the range.
3333
+ *
3334
+ * @param {RTENode<RTEBlock>} rangeStartNode - The start node of the range
3335
+ * @param {RTENode} rangeEndNode - The end node of the range
3336
+ * @param {number} startOffset - The start offset of the range
3337
+ * @param {number} endOffset - The end offset of the range
3338
+ * @returns {boolean} - Whether the start node is fully within the range
3339
+ */
3340
+ isStartNodeFullyInTheRange(rangeStartNode, rangeEndNode, startOffset, endOffset) {
3341
+ if (rangeStartNode instanceof codeBlock.RTECodeBlockNode) {
3342
+ return true;
3343
+ }
3344
+ else {
3345
+ return startOffset === 0 && (rangeEndNode !== rangeStartNode || endOffset !== 0);
3346
+ }
3347
+ }
3348
+ }
3349
+ __decorate$b([
3350
+ globalSlimmerRegistry.MapToComponentField()
3351
+ ], DeleteSelectedNodesController.prototype, "host", void 0);
3352
+ __decorate$b([
3353
+ globalSlimmerRegistry.MapToComponentField()
3354
+ ], DeleteSelectedNodesController.prototype, "selectionController", void 0);
3355
+ __decorate$b([
3356
+ globalSlimmerRegistry.MapToComponentField()
3357
+ ], DeleteSelectedNodesController.prototype, "value", void 0);
3358
+ __decorate$b([
3359
+ globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
3360
+ ], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
3361
+ __decorate$b([
3362
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3363
+ ], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
3364
+
3365
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3366
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3367
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3368
+ 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;
3369
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3370
+ };
3371
+ /**
3372
+ * History controller for RTE.
3373
+ */
3374
+ class HistoryController extends componentValueHistoryControllerSlimmer_abstract.ComponentValueHistoryControllerSlimmer {
3375
+ constructor() {
3376
+ super(...arguments);
3377
+ /**
3378
+ * Gets the effective target elements for the RTE history.
3379
+ *
3380
+ * @returns {HTMLElement[]} - An array of effective target elements.
3381
+ */
3382
+ this.getEffectiveTargets = () => {
3383
+ return [this.vegaRichTextEditorRenderer.getRTEEditableElementRef()];
3384
+ };
3385
+ /**
3386
+ * Gets the ineffective target elements for the RTE history.
3387
+ *
3388
+ * @returns {HTMLElement[]} - An array of ineffective target elements.
3389
+ */
3390
+ this.getIneffectiveTargets = () => {
3391
+ const editorElementRef = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
3392
+ let result = [];
3393
+ if (editorElementRef) {
3394
+ result = Array.from(editorElementRef.querySelectorAll('.code-block-container'));
3395
+ }
3396
+ return result;
3397
+ };
3398
+ }
3399
+ /**
3400
+ * Component lifecycle - [componentDidLoad]
3401
+ */
3402
+ registerInitState() {
3403
+ if (this.value) {
3404
+ this.registerHistory(new RTEEditorState(this.value, new componentValueHistoryControllerSlimmer_abstract.RTESelectionState(this.selectionController.getCurrentRange())), true);
3405
+ }
3406
+ }
3407
+ /**
3408
+ * Restores the previous state from the undo stack.
3409
+ */
3410
+ async undo() {
3411
+ if (this.undoStack.length > 1) {
3412
+ const clonedState = this.undoStack.pop().clone();
3413
+ this.redoStack.push(clonedState);
3414
+ const prev = this.undoStack[this.undoStack.length - 1];
3415
+ if (prev) {
3416
+ await this.restoreState(prev);
3417
+ }
3418
+ }
3419
+ }
3420
+ /**
3421
+ * Restores the next state from the redo stack.
3422
+ */
3423
+ async redo() {
3424
+ if (this.redoStack.length > 0) {
3425
+ const clonedState = this.redoStack.pop().clone();
3426
+ this.undoStack.push(clonedState);
3427
+ await this.restoreState(clonedState);
3428
+ }
3429
+ }
3430
+ /**
3431
+ * Restores the editor state based on the provided history state.
3432
+ *
3433
+ * @param {RTEEditorState} state - The state to restore to.
3434
+ */
3435
+ async restoreState(state) {
3436
+ const { content, selection } = state.clone();
3437
+ this.selectionController.setSelectionState(selection);
3438
+ await this.valueController.flushChanges(content, false);
3439
+ }
3440
+ }
3441
+ __decorate$a([
3442
+ globalSlimmerRegistry.MapToComponentField()
3443
+ ], HistoryController.prototype, "host", void 0);
3444
+ __decorate$a([
3445
+ globalSlimmerRegistry.MapToComponentField()
3446
+ ], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
3447
+ __decorate$a([
3448
+ globalSlimmerRegistry.MapToComponentField()
3449
+ ], HistoryController.prototype, "valueController", void 0);
3450
+ __decorate$a([
3451
+ globalSlimmerRegistry.MapToComponentField()
3452
+ ], HistoryController.prototype, "value", void 0);
3453
+ __decorate$a([
3454
+ globalSlimmerRegistry.MapToComponentField()
3455
+ ], HistoryController.prototype, "selectionController", void 0);
3456
+ __decorate$a([
3457
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3458
+ ], HistoryController.prototype, "registerInitState", null);
3459
+
3460
+ const rectangleCode = {
3461
+ 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="M320.1 175L384.1 239C394.3 248.4 394.3 263.6 384.1 272.1L320.1 336.1C311.6 346.3 296.4 346.3 287 336.1C277.7 327.6 277.7 312.4 287 303L334.1 256L287 208.1C277.7 199.6 277.7 184.4 287 175C296.4 165.7 311.6 165.7 320.1 175V175zM177.9 256L224.1 303C234.3 312.4 234.3 327.6 224.1 336.1C215.6 346.3 200.4 346.3 191 336.1L127 272.1C117.7 263.6 117.7 248.4 127 239L191 175C200.4 165.7 215.6 165.7 224.1 175C234.3 184.4 234.3 199.6 224.1 208.1L177.9 256zM448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM448 80H64C55.16 80 48 87.16 48 96V416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V96C464 87.16 456.8 80 448 80z"/></svg>`,
3462
+ };
3463
+
3464
+ /**
3465
+ * Transform the selected blocks to a code block.
3466
+ *
3467
+ * @example firstBlock.parent.apply(new TransformToCodeBlockAction(selectedBlocks))
3468
+ */
3469
+ class TransformToCodeBlockAction extends codeBlock.ModifyContentAction {
3470
+ constructor(selectedBlocks) {
3471
+ super();
3472
+ this.type = codeBlock.ModifyContentActionType.TRANSFORM_TO_CODE_BLOCK;
3473
+ this.selectedBlocks = selectedBlocks;
3474
+ }
3475
+ }
3476
+
3477
+ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3478
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3479
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3480
+ 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;
3481
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3482
+ };
3483
+ /**
3484
+ * The code block toolbar button slimmer.
3485
+ */
3486
+ class CodeBlockToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
3487
+ constructor() {
3488
+ super({
3489
+ icon: 'rectangle-code',
3490
+ tooltip: { text: 'Code Block' },
3491
+ });
3492
+ }
3493
+ /**
3494
+ * The selected blocks should convert to a code block.
3495
+ */
3496
+ onClick() {
3497
+ const selected = this.isSelected();
3498
+ if (!selected) {
3499
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
3500
+ const parentBlock = selectedBlocks[0].parent;
3501
+ const transformToCodeBlockAction = new TransformToCodeBlockAction(selectedBlocks);
3502
+ parentBlock.apply(transformToCodeBlockAction);
3503
+ void this.valueController.flushChanges(this.value);
3504
+ this.selectionController.enqueueSelectionRangeFutureState(transformToCodeBlockAction.newCodeBlock.children[0], 0);
3505
+ }
3506
+ }
3507
+ /**
3508
+ * The button will be selected if the selected blocks all code block.
3509
+ *
3510
+ * @returns {boolean} - The code block should selected or not.
3511
+ */
3512
+ isSelected() {
3513
+ const selectBlocks = this.selectionController.getSelectedBlocks();
3514
+ if (selectBlocks.length && selectBlocks.every((block) => block.type === 'code-block')) {
3515
+ return true;
3516
+ }
3517
+ return false;
3518
+ }
3519
+ isDisabled() {
3520
+ const selectBlocks = this.selectionController.getSelectedBlocks();
3521
+ return (super.isDisabled() ||
3522
+ selectBlocks.some((block) => !(block instanceof codeBlock.RTECodeBlock) && this.shouldDisabledCodeBlockToolbar(block)));
3523
+ }
3524
+ shouldDisabledCodeBlockToolbar(block) {
3525
+ return (block &&
3526
+ !(block instanceof codeBlock.RTETextBlock &&
3527
+ codeBlock.ActionHandleStrategyRegistry.canHandle(codeBlock.ModifyContentActionType.TRANSFORM_TO_CODE_BLOCK, block.parent)));
3528
+ }
3529
+ }
3530
+ (() => {
3531
+ internalIconManager.VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
3532
+ })();
3533
+ __decorate$9([
3534
+ globalSlimmerRegistry.MapToComponentField()
3535
+ ], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
3536
+ __decorate$9([
3537
+ globalSlimmerRegistry.MapToComponentField()
3538
+ ], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
3539
+ __decorate$9([
3540
+ globalSlimmerRegistry.MapToComponentField()
3541
+ ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
3542
+
3543
+ /**
3544
+ * The rich text internal code block selection controller.
3545
+ */
3546
+ class InternalCodeBlockSelectionController extends componentValueHistoryControllerSlimmer_abstract.AutoRunWhenReRenderTaskQueueSlimmer {
3547
+ constructor() {
3548
+ super(1);
3549
+ this.focusNodeOffset = 0;
3550
+ /**
3551
+ * The method invoke after the component re-render.
3552
+ */
3553
+ this.doTask = async () => {
3554
+ await this.focusTheCodeBlock(this.shouldFocusNode);
3555
+ };
3556
+ }
3557
+ /**
3558
+ * Update the internal code block selection.
3559
+ *
3560
+ * @param {RTECodeBlockNode} startNode - The internal code block node DTO.
3561
+ * @param {number} startOffset - The content offset.
3562
+ * @param {boolean} immediatelyRun - Whether to invoke the method immediately.
3563
+ */
3564
+ enqueueSelectionRangeFutureState(startNode, startOffset, immediatelyRun) {
3565
+ this.shouldFocusNode = startNode;
3566
+ this.focusNodeOffset = startOffset;
3567
+ super.enqueueTheTaskIntoQueue(immediatelyRun);
3568
+ }
3569
+ /**
3570
+ * Check the code block is actually selected or not. Because the Code block is a shadow dom, so can't detect the content selected state.
3571
+ * We add two placeholder spans at the begin and end position, we could check the placeholder spans selected state to make sure the code block is selected or not.
3572
+ *
3573
+ *
3574
+ * @example
3575
+ * <div>
3576
+ * <span></span>
3577
+ * <vega-code-block></vega-code-block>
3578
+ * <span><span>
3579
+ * </div>
3580
+ * @param {RTECodeBlock} codeBlock - The code block DTO.
3581
+ * @param {Range} range - The range instance.
3582
+ * @returns {boolean} - The boolean result.
3583
+ */
3584
+ isCodeBlockSelected(codeBlock$1, range) {
3585
+ const codeBlockNode = codeBlock$1.children[0];
3586
+ const entityDom = codeBlock.stateEntityRenderingRegistry.getDOMByEntity(codeBlockNode);
3587
+ return (codeBlock$1.isSelected() ||
3588
+ (entityDom &&
3589
+ range.intersectsNode(entityDom.nextSibling) &&
3590
+ range.intersectsNode(entityDom.previousSibling)));
3591
+ }
3592
+ /**
3593
+ * Focus the code block component.
3594
+ *
3595
+ * @param {RTECodeBlockNode} node - The code block node DTO.
3596
+ */
3597
+ async focusTheCodeBlock(node) {
3598
+ await Promise.resolve();
3599
+ const entityDom = codeBlock.stateEntityRenderingRegistry.getDOMByEntity(node);
3600
+ if (entityDom) {
3601
+ void entityDom.doFocus();
3602
+ }
3603
+ }
3604
+ }
3605
+
3606
+ const displayCode = {
3607
+ 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>`,
3608
+ };
3609
+
3610
+ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3611
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3612
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3613
+ 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;
3614
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3615
+ };
3616
+ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
3617
+ constructor() {
3618
+ super({
3619
+ icon: 'display-code',
3620
+ tooltip: {
3621
+ text: 'Edit Source',
3622
+ },
3623
+ autoFocusOnClick: false,
3624
+ });
3625
+ }
3626
+ async onClick() {
3627
+ const isSelected = this.sourceView;
3628
+ if (isSelected) {
3629
+ await this.saveSourceCode();
3630
+ }
3631
+ else {
3632
+ this.selectionController.setSelectionRange(new Range());
3633
+ }
3634
+ this.sourceView = !isSelected;
3635
+ }
3636
+ isSelected() {
3637
+ return this.sourceView;
3638
+ }
3639
+ isDisabled() {
3640
+ return super.isDisabled();
3641
+ }
3642
+ async saveSourceCode() {
3643
+ const sourceViewValue = this.vegaRichTextEditorRenderer.getSourceCode();
3644
+ if (typeof sourceViewValue === 'string') {
3645
+ await this.valueController.flushChanges(dtoRendererManager.VegaRTEContent.fromHtml(sourceViewValue, {
3646
+ autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
3647
+ }));
3648
+ }
3649
+ }
3650
+ }
3651
+ (() => {
3652
+ internalIconManager.VegaInternalIconManager.register({ 'display-code': displayCode });
3653
+ })();
3654
+ __decorate$8([
3655
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
3656
+ ], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
3657
+ __decorate$8([
3658
+ globalSlimmerRegistry.MapToComponentField()
3659
+ ], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
3660
+ __decorate$8([
3661
+ globalSlimmerRegistry.MapToComponentField()
3662
+ ], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
3663
+ __decorate$8([
3664
+ globalSlimmerRegistry.MapToComponentField()
3665
+ ], SourceEditToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
3666
+ __decorate$8([
3667
+ globalSlimmerRegistry.MapToComponentField()
3668
+ ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
3669
+
3670
+ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3671
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3672
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3673
+ 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;
3674
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3675
+ };
3676
+ /**
3677
+ * Inject the editor context to the extensions.
3678
+ */
3679
+ class RTEExtensionController extends globalSlimmerRegistry.VegaSlimmer {
3680
+ constructor() {
3681
+ super(...arguments);
3682
+ /**
3683
+ * Flush the editor value to the host. Auto focus the last node if autoFocusLastNode is true.
3684
+ *
3685
+ * @param {VegaRTEContent} value - The content value to flush.
3686
+ * @param {boolean} autoFocusLastNode - Whether to auto-focus the last node after flushing.
3687
+ */
3688
+ this.flushValue = (value, autoFocusLastNode = false) => {
3689
+ if (this.host && value) {
3690
+ void this.valueController.flushChanges(value, true);
3691
+ if (autoFocusLastNode) {
3692
+ const lastNode = this.host.value.getLastNode();
3693
+ if (lastNode) {
3694
+ this.selectionController.enqueueSelectionRangeFutureState(lastNode, lastNode.getRangeEndOffset());
3695
+ }
3696
+ }
3697
+ }
3698
+ };
3699
+ /**
3700
+ * Check if the editor is in source edit mode.
3701
+ *
3702
+ * @returns {boolean} - Whether the editor is in source edit mode.
3703
+ */
3704
+ this.isSourceEditMode = () => {
3705
+ return this.sourceView;
3706
+ };
3707
+ /**
3708
+ * Get the currently selected nodes in the editor.
3709
+ *
3710
+ * @returns {RTENode[]} - An array of currently selected RTENode objects.
3711
+ */
3712
+ this.getSelectedNodes = () => {
3713
+ return this.selectionController.getSelectedNodes();
3714
+ };
3715
+ }
3716
+ /**
3717
+ * Initializes the extension context for all registered extensions.
3718
+ * This method is called when the component is connected and whenever the extensions property changes.
3719
+ */
3720
+ initialExtensionContext() {
3721
+ if (this.extensions && this.host) {
3722
+ for (const extension of this.extensions) {
3723
+ extension.initialExtension({
3724
+ host: this.host,
3725
+ flushValue: this.flushValue,
3726
+ isSourceEditMode: this.isSourceEditMode,
3727
+ getSelectedNodes: this.getSelectedNodes,
3728
+ });
3729
+ }
3730
+ }
3731
+ }
3732
+ /**
3733
+ * Update extension context when extensions property changes.
3734
+ *
3735
+ * @param {VegaRTEExtension[]} newValue - New extensions array.
3736
+ * @param {VegaRTEExtension[]} oldValue - Old extensions array.
3737
+ */
3738
+ handleExtensionsChange(newValue, oldValue) {
3739
+ if (!array.isArrayEqual(newValue, oldValue, false, (a, b) => a === b ? 0 : 1)) {
3740
+ this.initialExtensionContext();
3741
+ }
3742
+ }
3743
+ }
3744
+ __decorate$7([
3745
+ globalSlimmerRegistry.MapToComponentField()
3746
+ ], RTEExtensionController.prototype, "extensions", void 0);
3747
+ __decorate$7([
3748
+ globalSlimmerRegistry.MapToComponentField()
3749
+ ], RTEExtensionController.prototype, "host", void 0);
3750
+ __decorate$7([
3751
+ globalSlimmerRegistry.MapToComponentField()
3752
+ ], RTEExtensionController.prototype, "sourceView", void 0);
3753
+ __decorate$7([
3754
+ globalSlimmerRegistry.MapToComponentField()
3755
+ ], RTEExtensionController.prototype, "valueController", void 0);
3756
+ __decorate$7([
3757
+ globalSlimmerRegistry.MapToComponentField()
3758
+ ], RTEExtensionController.prototype, "selectionController", void 0);
3759
+ __decorate$7([
3760
+ globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
3761
+ ], RTEExtensionController.prototype, "initialExtensionContext", null);
3762
+ __decorate$7([
3763
+ globalSlimmerRegistry.MapToComponentMethod('watchExtensions')
3764
+ ], RTEExtensionController.prototype, "handleExtensionsChange", null);
3765
+
3766
+ 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}";
3767
+
3768
+ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3769
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3770
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
3771
+ r = Reflect.decorate(decorators, target, key, desc);
3772
+ else
3773
+ for (var i = decorators.length - 1; i >= 0; i--)
3774
+ if (d = decorators[i])
3775
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3776
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3777
+ };
3778
+ const VegaRichTextEditor = class {
3779
+ constructor(hostRef) {
3780
+ index.registerInstance(this, hostRef);
3781
+ this.vegaChange = index.createEvent(this, "vegaChange", 7);
3782
+ this.change = index.createEvent(this, "change", 7);
3783
+ this.vegaImageInserted = index.createEvent(this, "vegaImageInserted", 7);
3784
+ this.imageInserted = index.createEvent(this, "imageInserted", 7);
3785
+ this.globalSlimmers = {};
3786
+ this.translationSlimmer = new translationSlimmer.TranslationSlimmer();
3787
+ this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
3788
+ this.formFieldController = new formFieldControllerSlimmer.FormFieldControllerSlimmer({
3789
+ propertyRules: [
3790
+ {
3791
+ propertyName: 'required',
3792
+ ruleFactory: (isRequired) => isRequired ? new richTextEditorRequiredRule.RichTextEditorRequiredRule() : null,
3793
+ },
3794
+ ],
3795
+ validationRulesName: 'validationRules',
3796
+ defaultValue: null,
3797
+ attributeGetter: (propertyName) => this[propertyName],
3798
+ inputContainerGetter: () => this.vegaRichTextEditorRenderer.getRichTextContainerRef(),
3799
+ touchableAreaGetter: () => [this.vegaRichTextEditorRenderer.getRichTextContentRef()],
3800
+ });
3801
+ this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectObserverFactory.VegaChange);
3802
+ this.vegaRichTextEditorRenderer = new VegaRichTextEditorRenderer();
3803
+ this.valueController = new ValueController();
3804
+ this.selectionController = new componentValueHistoryControllerSlimmer_abstract.SelectionController();
3805
+ this.focusController = new FocusController();
3806
+ this.darkModeStateControllerSlimmer = new darkModeStateControllerSlimmer.DarkModeStateControllerSlimmer();
3807
+ this.toolbarRenderer = new ToolbarRenderer();
3808
+ this.clearStyleToolbarButtonSlimmer = new ClearStyleToolbarButtonSlimmer();
3809
+ this.boldToolbarButtonSlimmer = new BoldToolbarButtonSlimmer();
3810
+ this.italicToolbarButtonSlimmer = new ItalicToolbarButtonSlimmer();
3811
+ this.underlineToolbarButtonSlimmer = new UnderlineToolbarButtonSlimmer();
3812
+ this.textColorToolbarButtonSlimmer = new imageAnnotationAction.TextColorToolbarButtonSlimmer();
3813
+ this.textStylesToolbarButtonSlimmer = new TextStylesToolbarButtonSlimmer();
3814
+ this.codeToolbarButtonSlimmer = new CodeToolbarButtonSlimmer();
3815
+ this.strikethroughToolbarButtonSlimmer = new StrikethroughToolbarButtonSlimmer();
3816
+ this.imageToolbarButtonSlimmer = new ImageToolbarButtonSlimmer();
3817
+ this.linkToolbarButtonSlimmer = new LinkToolbarButtonSlimmer();
3818
+ this.moreIndentToolbarButtonSlimmer = new MoreIndentToolbarButtonSlimmer();
3819
+ this.lessIndentToolbarButtonSlimmer = new LessIndentToolbarButtonSlimmer();
3820
+ this.bulletsNumbersToolbarButtonSlimmer = new BulletsNumbersToolbarButtonSlimmer();
3821
+ this.horizontalAlignmentToolbarButtonSlimmer = new HorizontalAlignmentToolbarButtonSlimmer();
3822
+ this.codeBlockToolbarButtonSlimmer = new CodeBlockToolbarButtonSlimmer();
3823
+ this.sourceEditToolbarButtonSlimmer = new SourceEditToolbarButtonSlimmer();
3824
+ this.placeholderNotifySlimmer = subStateNotifySlimmer.createSubStateNotifySlimmer(VegaRichTextEditor, 'placeholder', 'watchPlaceholder');
3825
+ this.disabledNotifySlimmer = subStateNotifySlimmer.createSubStateNotifySlimmer(VegaRichTextEditor, 'richTextContentEditable', 'watchRichTextContentEditable');
3826
+ this.richTextContentController = new RichTextContentController(this);
3827
+ this.userInputController = new UserInputController();
3828
+ this.insertImageController = new InsertImageController();
3829
+ this.insertCompositionTextController = new InsertCompositionTextController();
3830
+ this.imageInsertedEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectObserverFactory.VegaImageInserted);
3831
+ this.changeEventPreventSlimmer = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectObserverFactory.VegaChange], () => this.vegaRichTextEditorRenderer.getRichTextWrapperRef());
3832
+ this.textNodeColorController = new TextNodeColorController();
3833
+ this.deleteSelectedNodesController = new DeleteSelectedNodesController();
3834
+ this.historyController = new HistoryController();
3835
+ this.internalCodeBlockSelectionController = new InternalCodeBlockSelectionController();
3836
+ this.rteExtensionController = new RTEExtensionController();
3837
+ this.richTextContentEditable = true;
3838
+ this.selectionMap = new Map();
3839
+ this.isInDarkMode = darkModeStyleController.VegaInternalThemeManager.isDarkMode();
3840
+ this.sourceView = false;
3841
+ /**
3842
+ * Specifies the label for the rich text editor.
3843
+ *
3844
+ * It provides descriptive text that helps identify the
3845
+ * purpose or content expected in the rich text editor.
3846
+ *
3847
+ * @vegaVersion 2.34.0
3848
+ */
3849
+ this.label = '';
3850
+ /**
3851
+ * Determines whether the rich text editor field is required.
3852
+ *
3853
+ * @vegaVersion 2.34.0
3854
+ */
3855
+ this.required = false;
3856
+ /**
3857
+ * Specifies a placeholder string that displays as a
3858
+ * temporary hint or example within the rich text editor.
3859
+ *
3860
+ * It indicates the expected format or pattern of
3861
+ * the input within the rich text editor.
3862
+ *
3863
+ * @vegaVersion 2.34.0
3864
+ */
3865
+ this.placeholder = '';
3866
+ /**
3867
+ * Specifies whether the rich text editor is disabled.
3868
+ *
3869
+ * @vegaVersion 2.34.0
3870
+ */
3871
+ this.disabled = false;
3872
+ /**
3873
+ * Provides a supplementary prompt message that assists users in
3874
+ * understanding the expected value within the rich text editor.
3875
+ *
3876
+ * @vegaVersion 2.34.0
3877
+ */
3878
+ this.hint = '';
3879
+ /**
3880
+ * Specifies editable section rows for the rich text editor
3881
+ *
3882
+ * @vegaVersion 2.34.0
3883
+ */
3884
+ this.rows = 4;
3885
+ /**
3886
+ * Specifies the value of the rich text editor, which can be either VegaRTEContent or VegaRTEContentBlock.
3887
+ * It is recommended to use the VegaRTEContent type.
3888
+ * Only in exceptional cases should the original data in the VegaRTEContentBlock type be used.
3889
+ *
3890
+ * @vegaVersion 2.34.0
3891
+ * @defaultValue [{id:'UUID', type:'paragraph', nodes:[{id: 'UUID',type: 'text',text:''}]}]
3892
+ */
3893
+ // eslint-disable-next-line @stencil/strict-mutable
3894
+ this.value = dtoRendererManager.VegaRTEContent.createEmptyContent();
3895
+ /**
3896
+ * Specifies the built-in toolbar items available in the rich-text editor.
3897
+ *
3898
+ * @vegaVersion 2.34.0
3899
+ */
3900
+ this.toolbarItems = codeBlock.VegaRTEPresetToolbarItems;
3901
+ /**
3902
+ * Determines whether to allow source edit mode in the rich text editor.
3903
+ *
3904
+ * @vegaVersion 2.59.0
3905
+ */
3906
+ this.allowSourceEdit = false;
3907
+ /**
3908
+ * Specifies the configuration options for source edit mode.
3909
+ * It includes settings such as autoMatchFormat, which controls whether the editor automatically matches formatting when switching to source edit mode.
3910
+ *
3911
+ * @vegaVersion 2.59.0
3912
+ */
3913
+ this.sourceEditConfig = { autoMatchFormat: true };
3914
+ /**
3915
+ * Specifies the validation status of the rich text editor component.
3916
+ *
3917
+ * @vegaVersion 2.34.0
3918
+ */
3919
+ /* eslint-disable-next-line @stencil/strict-mutable */
3920
+ this.isValid = null;
3921
+ /**
3922
+ * Determines whether automatic validation should be implemented for
3923
+ * the rich text editor.
3924
+ *
3925
+ * @vegaVersion 2.34.0
3926
+ */
3927
+ this.autoValidation = true;
3928
+ /**
3929
+ * Defines custom validation rules for the rich text editor.
3930
+ *
3931
+ * @vegaVersion 2.34.0
3932
+ */
3933
+ this.validationRules = [];
3934
+ /**
3935
+ * Specifies the configuration for the rich text editor extensions.
3936
+ *
3937
+ * @vegaVersion 2.62.0
3938
+ */
3939
+ this.extensions = [];
3940
+ }
3941
+ watchRichTextContentEditable() {
3942
+ }
3943
+ watchPlaceholder() {
3944
+ }
3945
+ watchDisabled() {
3946
+ this.richTextContentController.syncRichTextContentEditable();
3947
+ }
3948
+ watchValueUpdate() {
3949
+ }
3950
+ watchValidationRules() {
3951
+ }
3952
+ watchExtensions() {
3953
+ }
3954
+ componentWillLoad() {
3955
+ this.richTextContentController.syncRichTextContentEditable();
3956
+ }
3957
+ render() {
3958
+ return component.sanitizeVegaComponent(this.vegaRichTextEditorRenderer.render(), this.host);
3959
+ }
3960
+ get host() { return index.getElement(this); }
3961
+ static get watchers() { return {
3962
+ "richTextContentEditable": ["watchRichTextContentEditable"],
3963
+ "placeholder": ["watchPlaceholder"],
3964
+ "disabled": ["watchDisabled"],
3965
+ "value": ["watchValueUpdate"],
3966
+ "validationRules": ["watchValidationRules"],
3967
+ "extensions": ["watchExtensions"]
3968
+ }; }
3969
+ };
3970
+ __decorate$6([
3971
+ componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
3972
+ ], VegaRichTextEditor.prototype, "globalSlimmers", void 0);
3973
+ __decorate$6([
3974
+ globalSlimmerRegistry.InjectVegaSlimmer()
3975
+ ], VegaRichTextEditor.prototype, "translationSlimmer", void 0);
3976
+ __decorate$6([
3977
+ globalSlimmerRegistry.InjectVegaSlimmer()
3978
+ ], VegaRichTextEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
3979
+ __decorate$6([
3980
+ globalSlimmerRegistry.InjectVegaSlimmer()
3981
+ ], VegaRichTextEditor.prototype, "formFieldController", void 0);
3982
+ __decorate$6([
3983
+ globalSlimmerRegistry.InjectVegaSlimmer()
3984
+ ], VegaRichTextEditor.prototype, "changeEventEmitter", void 0);
3985
+ __decorate$6([
3986
+ globalSlimmerRegistry.InjectVegaSlimmer()
3987
+ ], VegaRichTextEditor.prototype, "vegaRichTextEditorRenderer", void 0);
3988
+ __decorate$6([
3989
+ globalSlimmerRegistry.InjectVegaSlimmer()
3990
+ ], VegaRichTextEditor.prototype, "valueController", void 0);
3991
+ __decorate$6([
3992
+ globalSlimmerRegistry.InjectVegaSlimmer()
3993
+ ], VegaRichTextEditor.prototype, "selectionController", void 0);
3994
+ __decorate$6([
3995
+ globalSlimmerRegistry.InjectVegaSlimmer()
3996
+ ], VegaRichTextEditor.prototype, "focusController", void 0);
3997
+ __decorate$6([
3998
+ globalSlimmerRegistry.InjectVegaSlimmer()
3999
+ ], VegaRichTextEditor.prototype, "darkModeStateControllerSlimmer", void 0);
4000
+ __decorate$6([
4001
+ globalSlimmerRegistry.InjectVegaSlimmer()
4002
+ ], VegaRichTextEditor.prototype, "toolbarRenderer", void 0);
4003
+ __decorate$6([
4004
+ globalSlimmerRegistry.InjectVegaSlimmer()
4005
+ ], VegaRichTextEditor.prototype, "clearStyleToolbarButtonSlimmer", void 0);
4006
+ __decorate$6([
4007
+ globalSlimmerRegistry.InjectVegaSlimmer()
4008
+ ], VegaRichTextEditor.prototype, "boldToolbarButtonSlimmer", void 0);
4009
+ __decorate$6([
4010
+ globalSlimmerRegistry.InjectVegaSlimmer()
4011
+ ], VegaRichTextEditor.prototype, "italicToolbarButtonSlimmer", void 0);
4012
+ __decorate$6([
4013
+ globalSlimmerRegistry.InjectVegaSlimmer()
4014
+ ], VegaRichTextEditor.prototype, "underlineToolbarButtonSlimmer", void 0);
4015
+ __decorate$6([
4016
+ globalSlimmerRegistry.InjectVegaSlimmer()
4017
+ ], VegaRichTextEditor.prototype, "textColorToolbarButtonSlimmer", void 0);
4018
+ __decorate$6([
4019
+ globalSlimmerRegistry.InjectVegaSlimmer()
4020
+ ], VegaRichTextEditor.prototype, "textStylesToolbarButtonSlimmer", void 0);
4021
+ __decorate$6([
4022
+ globalSlimmerRegistry.InjectVegaSlimmer()
4023
+ ], VegaRichTextEditor.prototype, "codeToolbarButtonSlimmer", void 0);
4024
+ __decorate$6([
4025
+ globalSlimmerRegistry.InjectVegaSlimmer()
4026
+ ], VegaRichTextEditor.prototype, "strikethroughToolbarButtonSlimmer", void 0);
4027
+ __decorate$6([
4028
+ globalSlimmerRegistry.InjectVegaSlimmer()
4029
+ ], VegaRichTextEditor.prototype, "imageToolbarButtonSlimmer", void 0);
4030
+ __decorate$6([
4031
+ globalSlimmerRegistry.InjectVegaSlimmer()
4032
+ ], VegaRichTextEditor.prototype, "linkToolbarButtonSlimmer", void 0);
4033
+ __decorate$6([
4034
+ globalSlimmerRegistry.InjectVegaSlimmer()
4035
+ ], VegaRichTextEditor.prototype, "moreIndentToolbarButtonSlimmer", void 0);
4036
+ __decorate$6([
4037
+ globalSlimmerRegistry.InjectVegaSlimmer()
4038
+ ], VegaRichTextEditor.prototype, "lessIndentToolbarButtonSlimmer", void 0);
4039
+ __decorate$6([
4040
+ globalSlimmerRegistry.InjectVegaSlimmer()
4041
+ ], VegaRichTextEditor.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
4042
+ __decorate$6([
4043
+ globalSlimmerRegistry.InjectVegaSlimmer()
4044
+ ], VegaRichTextEditor.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
4045
+ __decorate$6([
4046
+ globalSlimmerRegistry.InjectVegaSlimmer()
4047
+ ], VegaRichTextEditor.prototype, "codeBlockToolbarButtonSlimmer", void 0);
4048
+ __decorate$6([
4049
+ globalSlimmerRegistry.InjectVegaSlimmer()
4050
+ ], VegaRichTextEditor.prototype, "sourceEditToolbarButtonSlimmer", void 0);
4051
+ __decorate$6([
4052
+ globalSlimmerRegistry.InjectVegaSlimmer()
4053
+ ], VegaRichTextEditor.prototype, "placeholderNotifySlimmer", void 0);
4054
+ __decorate$6([
4055
+ globalSlimmerRegistry.InjectVegaSlimmer()
4056
+ ], VegaRichTextEditor.prototype, "disabledNotifySlimmer", void 0);
4057
+ __decorate$6([
4058
+ globalSlimmerRegistry.InjectVegaSlimmer()
4059
+ ], VegaRichTextEditor.prototype, "richTextContentController", void 0);
4060
+ __decorate$6([
4061
+ globalSlimmerRegistry.InjectVegaSlimmer()
4062
+ ], VegaRichTextEditor.prototype, "userInputController", void 0);
4063
+ __decorate$6([
4064
+ globalSlimmerRegistry.InjectVegaSlimmer()
4065
+ ], VegaRichTextEditor.prototype, "insertImageController", void 0);
4066
+ __decorate$6([
4067
+ globalSlimmerRegistry.InjectVegaSlimmer()
4068
+ ], VegaRichTextEditor.prototype, "insertCompositionTextController", void 0);
4069
+ __decorate$6([
4070
+ globalSlimmerRegistry.InjectVegaSlimmer()
4071
+ ], VegaRichTextEditor.prototype, "imageInsertedEventEmitter", void 0);
4072
+ __decorate$6([
4073
+ globalSlimmerRegistry.InjectVegaSlimmer()
4074
+ ], VegaRichTextEditor.prototype, "changeEventPreventSlimmer", void 0);
4075
+ __decorate$6([
4076
+ globalSlimmerRegistry.InjectVegaSlimmer()
4077
+ ], VegaRichTextEditor.prototype, "textNodeColorController", void 0);
4078
+ __decorate$6([
4079
+ globalSlimmerRegistry.InjectVegaSlimmer()
4080
+ ], VegaRichTextEditor.prototype, "deleteSelectedNodesController", void 0);
4081
+ __decorate$6([
4082
+ globalSlimmerRegistry.InjectVegaSlimmer()
4083
+ ], VegaRichTextEditor.prototype, "historyController", void 0);
4084
+ __decorate$6([
4085
+ globalSlimmerRegistry.InjectVegaSlimmer()
4086
+ ], VegaRichTextEditor.prototype, "internalCodeBlockSelectionController", void 0);
4087
+ __decorate$6([
4088
+ globalSlimmerRegistry.InjectVegaSlimmer()
4089
+ ], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
4090
+ VegaRichTextEditor.style = vegaRichTextEditorCss;
4091
+
4092
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4093
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4094
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4095
+ 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;
4096
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4097
+ };
4098
+ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.VegaSlimmer {
4099
+ constructor() {
4100
+ super(...arguments);
4101
+ this.handleClick = (e) => {
4102
+ if (this.disabled) {
4103
+ e.preventDefault();
4104
+ }
4105
+ else {
4106
+ this.clickEventEmitter.emit(undefined, e);
4107
+ }
4108
+ };
4109
+ }
4110
+ render() {
4111
+ return (index.h("button", { part: "rich-text-editor-toolbar-button", class: {
4112
+ 'rich-text-editor-toolbar-btn': true,
4113
+ 'rich-text-editor-toolbar-button-disabled': this.disabled,
4114
+ 'rich-text-editor-toolbar-button-hidden': this.hidden,
4115
+ 'rich-text-editor-toolbar-button-selected': this.selected,
4116
+ }, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
4117
+ index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
4118
+ this.icon && (index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) })),
4119
+ this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey('chevron-down') }))),
4120
+ index.h("slot", null)));
4121
+ }
4122
+ }
4123
+ (() => {
4124
+ internalIconManager.VegaInternalIconManager.register({
4125
+ 'chevron-down': chevronDown.chevronDown,
4126
+ });
4127
+ })();
4128
+ __decorate$5([
4129
+ globalSlimmerRegistry.MapToComponentField()
4130
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "disabled", void 0);
4131
+ __decorate$5([
4132
+ globalSlimmerRegistry.MapToComponentField()
4133
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "hidden", void 0);
4134
+ __decorate$5([
4135
+ globalSlimmerRegistry.MapToComponentField()
4136
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "selected", void 0);
4137
+ __decorate$5([
4138
+ globalSlimmerRegistry.MapToComponentField()
4139
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
4140
+ __decorate$5([
4141
+ globalSlimmerRegistry.MapToComponentField()
4142
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
4143
+ __decorate$5([
4144
+ globalSlimmerRegistry.MapToComponentField()
4145
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "iconColor", void 0);
4146
+ __decorate$5([
4147
+ globalSlimmerRegistry.MapToComponentField()
4148
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "clickEventEmitter", void 0);
4149
+
4150
+ const vegaRichTextEditorToolbarButtonCss = ":host{display:inline-block}:host ::slotted(vega-font.v-font-field-label-sm){line-height:16px}.rich-text-editor-toolbar-btn{display:flex;justify-content:center;align-items:center;border-radius:4px;border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));padding-top:8px;padding-bottom:8px;padding-left:12px;padding-right:12px;cursor:pointer;position:relative;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1))}.rich-text-editor-toolbar-btn:hover{background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1));z-index:1}.rich-text-editor-toolbar-btn:active{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));z-index:1}.rich-text-editor-toolbar-btn:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:-1px;z-index:2}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-selected{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));z-index:1}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-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}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-disabled vega-icon{color:rgba(var(--v-text-disabled, 176, 180, 181, 1))}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-hidden{display:none}";
4151
+
4152
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4153
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4154
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4155
+ r = Reflect.decorate(decorators, target, key, desc);
4156
+ else
4157
+ for (var i = decorators.length - 1; i >= 0; i--)
4158
+ if (d = decorators[i])
4159
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4160
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4161
+ };
4162
+ const VegaRichTextEditorToolbarButton = class {
4163
+ constructor(hostRef) {
4164
+ index.registerInstance(this, hostRef);
4165
+ this.vegaClick = index.createEvent(this, "vegaClick", 7);
4166
+ this.click = index.createEvent(this, "click", 7);
4167
+ this.globalSlimmers = {};
4168
+ this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
4169
+ this.clickEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditorToolbarButton, domNodeSubjectObserverFactory.VegaClick);
4170
+ this.eventPrevent = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectObserverFactory.VegaClick], () => this.host, {
4171
+ useCapture: true,
4172
+ customPreventHandle: (e) => {
4173
+ if (this.disabled) {
4174
+ e.stopImmediatePropagation();
4175
+ }
4176
+ },
4177
+ });
4178
+ this.renderer = new VegaRichTextEditorToolbarButtonRenderer();
4179
+ /**
4180
+ * Specifies whether the rich text editor toolbar button element is disabled.
4181
+ *
4182
+ * @vegaVersion 2.34.0
4183
+ */
4184
+ this.disabled = false;
4185
+ /**
4186
+ * Specifies whether the rich text editor toolbar button element is hidden.
4187
+ *
4188
+ * @vegaVersion 2.59.0
4189
+ */
4190
+ this.hidden = false;
4191
+ /**
4192
+ * Specifies whether the rich text editor toolbar button element is selected.
4193
+ *
4194
+ * @vegaVersion 2.34.0
4195
+ */
4196
+ this.selected = false;
4197
+ /**
4198
+ * Specifies whether the rich text editor toolbar button element is showArrowIcon.
4199
+ *
4200
+ * @vegaVersion 2.34.0
4201
+ */
4202
+ this.showArrowIcon = false;
4203
+ /**
4204
+ * Specifies whether the toolbar button in the rich text editor is represented by an icon.
4205
+ *
4206
+ * @vegaVersion 2.34.0
4207
+ */
4208
+ this.icon = '';
4209
+ /**
4210
+ * Specifies the color of the toolbar button icon in the rich text editor.
4211
+ *
4212
+ * @vegaVersion 2.34.0
4213
+ */
4214
+ this.iconColor = 'text-primary';
4215
+ }
4216
+ render() {
4217
+ return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
4218
+ }
4219
+ get host() { return index.getElement(this); }
4220
+ };
4221
+ __decorate$4([
4222
+ componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
4223
+ ], VegaRichTextEditorToolbarButton.prototype, "globalSlimmers", void 0);
4224
+ __decorate$4([
4225
+ globalSlimmerRegistry.InjectVegaSlimmer()
4226
+ ], VegaRichTextEditorToolbarButton.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
4227
+ __decorate$4([
4228
+ globalSlimmerRegistry.InjectVegaSlimmer()
4229
+ ], VegaRichTextEditorToolbarButton.prototype, "clickEventEmitter", void 0);
4230
+ __decorate$4([
4231
+ globalSlimmerRegistry.InjectVegaSlimmer()
4232
+ ], VegaRichTextEditorToolbarButton.prototype, "eventPrevent", void 0);
4233
+ __decorate$4([
4234
+ globalSlimmerRegistry.InjectVegaSlimmer()
4235
+ ], VegaRichTextEditorToolbarButton.prototype, "renderer", void 0);
4236
+ VegaRichTextEditorToolbarButton.style = vegaRichTextEditorToolbarButtonCss;
4237
+
4238
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4239
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4240
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4241
+ 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;
4242
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4243
+ };
4244
+ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
4245
+ constructor() {
4246
+ super(...arguments);
4247
+ this.handleKeyDown = (e) => {
4248
+ if (e.key === 'Enter') {
4249
+ void this.formRef.getValue().then(({ alt }) => {
4250
+ this.changeEventEmitter.emit({ action: 'edit', payload: { size: this.size, alt: alt } });
4251
+ });
4252
+ void this.popoverRef.hide();
4253
+ }
4254
+ };
4255
+ }
4256
+ render() {
4257
+ return (index.h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
4258
+ this.popoverRef = ref;
4259
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaPopoverShow, () => {
4260
+ this.selected = true;
4261
+ this.notifyImageSelected();
4262
+ void this.formRef.setValue({
4263
+ alt: this.alt,
4264
+ });
4265
+ });
4266
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaPopoverHide, () => {
4267
+ this.currentPage = 1;
4268
+ this.selected = false;
4269
+ void this.formRef.reset();
4270
+ });
4271
+ } },
4272
+ index.h("div", { slot: "popover-content" },
4273
+ index.h("slot", null)),
4274
+ index.h("div", { slot: "popover" },
4275
+ this.renderImageEditor(),
4276
+ this.renderAltTextEditor())));
4277
+ }
4278
+ findParentContainerRef() {
4279
+ this.parentContainerRef = ui.findParent(this.host, 'vega-rich-text-content');
4280
+ }
4281
+ renderImageEditor() {
4282
+ return (index.h("vega-box", { display: this.currentPage === 1 ? 'block' : 'none' },
4283
+ index.h("vega-flex", { gap: "size-12", alignItems: "center" },
4284
+ index.h("vega-font", { variant: "font-field-label-sm", color: "text-primary" },
4285
+ this.translationSlimmer.t('Size'),
4286
+ ":"),
4287
+ index.h("vega-segment-control", { size: "small", segments: [
4288
+ { key: 'sm', text: this.translationSlimmer.t('Sm') },
4289
+ { key: 'md', text: this.translationSlimmer.t('Md') },
4290
+ { key: 'lg', text: this.translationSlimmer.t('Lg') },
4291
+ ], selected: this.size, ref: (ref) => {
4292
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaChange, (e) => {
4293
+ // The below line is covered in `history.spec#should register history, and undo/redo for image size change`
4294
+ // Prevent handling vegaChange triggered by DOM ref reuse (e.g., undo/redo) when the image editor is not visible.
4295
+ if (!this.selected)
4296
+ return;
4297
+ const size = e.detail;
4298
+ this.size = size;
4299
+ this.changeEventEmitter.emit({
4300
+ action: 'edit',
4301
+ payload: { size: size, alt: this.alt },
4302
+ });
4303
+ });
4304
+ } }),
4305
+ index.h("vega-button-group", { variant: "tertiary", size: "small", ref: (ref) => {
4306
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaClick, (payload) => {
4307
+ if (payload.detail === 'Alt Text') {
4308
+ this.currentPage = 2;
4309
+ }
4310
+ else {
4311
+ this.notifyImageDeleteButtonClicked();
4312
+ this.changeEventEmitter.emit({ action: 'delete' });
4313
+ void this.popoverRef.hide();
4314
+ }
4315
+ });
4316
+ } },
4317
+ index.h("vega-button-group-item", { label: this.translationSlimmer.t('Alt Text'), itemKey: "Alt Text" }),
4318
+ index.h("vega-button-group-item", { label: this.translationSlimmer.t('Delete Image'), icon: internalIconManager.VegaInternalIconManager.getIconKey('trash-can'), iconOnly: true, itemKey: "trash-can" })))));
4319
+ }
4320
+ renderAltTextEditor() {
4321
+ return (index.h("vega-box", { display: this.currentPage === 2 ? 'block' : 'none' },
4322
+ index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
4323
+ index.h("vega-input", { "data-vega-form": "alt", style: { width: '315px' }, label: this.translationSlimmer.t('Alt Text'), ref: (ref) => {
4324
+ void ref.doFocus();
4325
+ }, onKeyDown: this.handleKeyDown }))));
4326
+ }
4327
+ notifyImageSelected() {
4328
+ if (this.parentContainerRef) {
4329
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.parentContainerRef, vegaInternalEventId.VegaInternalRichTextImageClick), { host: this.host });
4330
+ }
4331
+ }
4332
+ /*
4333
+ * The below method is e2e-test covered in
4334
+ * {module:vega-rich-text-editor-image-click-delete-button}
4335
+ */
4336
+ /* istanbul ignore next */
4337
+ notifyImageDeleteButtonClicked() {
4338
+ if (this.parentContainerRef) {
4339
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.parentContainerRef, vegaInternalEventId.VegaInternalRichTextImageDeleteButtonClicked), { host: this.host });
4340
+ }
4341
+ }
4342
+ }
4343
+ (() => {
4344
+ internalIconManager.VegaInternalIconManager.register({ 'trash-can': trashCan.trashCan });
4345
+ })();
4346
+ __decorate$3([
4347
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
4348
+ ], VegaRichTextImageEditorRenderer.prototype, "currentPage", void 0);
4349
+ __decorate$3([
4350
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
4351
+ ], VegaRichTextImageEditorRenderer.prototype, "selected", void 0);
4352
+ __decorate$3([
4353
+ globalSlimmerRegistry.MapToComponentField()
4354
+ ], VegaRichTextImageEditorRenderer.prototype, "host", void 0);
4355
+ __decorate$3([
4356
+ globalSlimmerRegistry.MapToComponentField()
4357
+ ], VegaRichTextImageEditorRenderer.prototype, "alt", void 0);
4358
+ __decorate$3([
4359
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
4360
+ ], VegaRichTextImageEditorRenderer.prototype, "size", void 0);
4361
+ __decorate$3([
4362
+ globalSlimmerRegistry.MapToComponentField()
4363
+ ], VegaRichTextImageEditorRenderer.prototype, "changeEventEmitter", void 0);
4364
+ __decorate$3([
4365
+ globalSlimmerRegistry.MapToComponentField()
4366
+ ], VegaRichTextImageEditorRenderer.prototype, "translationSlimmer", void 0);
4367
+ __decorate$3([
4368
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4369
+ ], VegaRichTextImageEditorRenderer.prototype, "findParentContainerRef", null);
4370
+
4371
+ const vegaRichTextImageEditorCss = ":host{display:inline-block}:host(.rte-image-selected){outline:2px solid rgba(var(--v-border-color-tile-selected, 19, 98, 226, 1));outline-offset:-2px}";
4372
+
4373
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4374
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4375
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4376
+ r = Reflect.decorate(decorators, target, key, desc);
4377
+ else
4378
+ for (var i = decorators.length - 1; i >= 0; i--)
4379
+ if (d = decorators[i])
4380
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4381
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4382
+ };
4383
+ const VegaRichTextImageEditor = class {
4384
+ constructor(hostRef) {
4385
+ index.registerInstance(this, hostRef);
4386
+ this.vegaChange = index.createEvent(this, "vegaChange", 7);
4387
+ this.change = index.createEvent(this, "change", 7);
4388
+ this.globalSlimmers = {};
4389
+ this.translationSlimmer = new translationSlimmer.TranslationSlimmer();
4390
+ this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
4391
+ this.renderer = new VegaRichTextImageEditorRenderer();
4392
+ this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextImageEditor, domNodeSubjectObserverFactory.VegaChange);
4393
+ this.currentPage = 1;
4394
+ this.selected = false;
4395
+ /**
4396
+ * Specifies the value of image alt
4397
+ *
4398
+ * @vegaVersion 2.34.0
4399
+ */
4400
+ this.alt = '';
4401
+ /**
4402
+ * Specifies the size of the image to the container
4403
+ *
4404
+ * @vegaVersion 2.34.0
4405
+ */
4406
+ /* eslint-disable-next-line @stencil/strict-mutable */
4407
+ this.size = 'md';
4408
+ }
4409
+ render() {
4410
+ return component.sanitizeVegaComponent(index.h(index.Host, { class: { 'rte-image-selected': this.selected } }, this.renderer.render()), this.host);
4411
+ }
4412
+ get host() { return index.getElement(this); }
4413
+ };
4414
+ __decorate$2([
4415
+ componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
4416
+ ], VegaRichTextImageEditor.prototype, "globalSlimmers", void 0);
4417
+ __decorate$2([
4418
+ globalSlimmerRegistry.InjectVegaSlimmer()
4419
+ ], VegaRichTextImageEditor.prototype, "translationSlimmer", void 0);
4420
+ __decorate$2([
4421
+ globalSlimmerRegistry.InjectVegaSlimmer()
4422
+ ], VegaRichTextImageEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
4423
+ __decorate$2([
4424
+ globalSlimmerRegistry.InjectVegaSlimmer()
4425
+ ], VegaRichTextImageEditor.prototype, "renderer", void 0);
4426
+ __decorate$2([
4427
+ globalSlimmerRegistry.InjectVegaSlimmer()
4428
+ ], VegaRichTextImageEditor.prototype, "changeEventEmitter", void 0);
4429
+ VegaRichTextImageEditor.style = vegaRichTextImageEditorCss;
4430
+
4431
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4432
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4433
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4434
+ 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;
4435
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4436
+ };
4437
+ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
4438
+ constructor() {
4439
+ super(...arguments);
4440
+ this.handleKeyDown = (e) => {
4441
+ if (e.key === 'Enter') {
4442
+ void this.formRef.getValue().then(({ text, url }) => {
4443
+ if (url.length > 0) {
4444
+ this.changeEventEmitter.emit({
4445
+ action: 'link',
4446
+ payload: { text: text || url, url },
4447
+ });
4448
+ void this.popoverRef.hide();
4449
+ }
4450
+ });
4451
+ }
4452
+ };
4453
+ }
4454
+ /**
4455
+ * Component lifecycle - [componentDidLoad]{@link VegaRichTextLinkEditor.componentDidLoad}
4456
+ */
4457
+ componentDidLoad() {
4458
+ this.updatePopoverTarget();
4459
+ }
4460
+ /**
4461
+ * Component lifecycle - [componentDidRender]{@link VegaRichTextLinkEditor.componentDidRender}
4462
+ */
4463
+ componentDidRender() {
4464
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
4465
+ }
4466
+ watchStatusChange() {
4467
+ if (this.status === 'linkEdit') {
4468
+ setTimeout(() => {
4469
+ void this.urlInputRef.doFocus();
4470
+ });
4471
+ }
4472
+ }
4473
+ watchTargetChange() {
4474
+ this.updatePopoverTarget();
4475
+ }
4476
+ getPopoverRef() {
4477
+ return this.popoverRef;
4478
+ }
4479
+ render() {
4480
+ return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
4481
+ this.popoverRef = ref;
4482
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaPopoverShow, () => {
4483
+ var _a, _b;
4484
+ if (this.status === 'linkEdit') {
4485
+ void this.urlInputRef.doFocus();
4486
+ }
4487
+ void this.formRef.setValue({
4488
+ text: (_a = this.record) === null || _a === void 0 ? void 0 : _a.text,
4489
+ url: (_b = this.record) === null || _b === void 0 ? void 0 : _b.url,
4490
+ });
4491
+ });
4492
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectObserverFactory.VegaPopoverHide, () => {
4493
+ void this.formRef.reset();
4494
+ if (this.resetStatusAfterHide) {
4495
+ this.status = 'editOrUnlinkSelection';
4496
+ }
4497
+ });
4498
+ } },
4499
+ index.h("span", { slot: "popover-content" },
4500
+ index.h("slot", null)),
4501
+ index.h("div", { slot: "popover" },
4502
+ this.renderLinkUnlinkContent(),
4503
+ this.renderLinkEditContent())));
4504
+ }
4505
+ renderLinkUnlinkContent() {
4506
+ return (index.h("vega-box", { display: this.status === 'editOrUnlinkSelection' ? 'block' : 'none' },
4507
+ index.h("vega-button-group", { size: "small", variant: "tertiary", ref: (node) => {
4508
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, domNodeSubjectObserverFactory.VegaClick, ({ detail }) => {
4509
+ switch (detail) {
4510
+ case 'edit': {
4511
+ this.status = 'linkEdit';
4512
+ return;
4513
+ }
4514
+ case 'unlink': {
4515
+ this.changeEventEmitter.emit({ action: 'unlink' });
4516
+ void this.popoverRef.hide();
4517
+ }
4518
+ }
4519
+ });
4520
+ } },
4521
+ index.h("vega-button-group-item", { label: this.translationSlimmer.t('Edit'), itemKey: "edit" }),
4522
+ index.h("vega-button-group-item", { label: this.translationSlimmer.t('Unlink'), itemKey: "unlink" }))));
4523
+ }
4524
+ renderLinkEditContent() {
4525
+ return (index.h("vega-box", { display: this.status === 'linkEdit' ? 'block' : 'none' },
4526
+ index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
4527
+ index.h("vega-flex", { style: { width: '419px' }, direction: "col", gap: "size-16" },
4528
+ index.h("vega-input", { "data-vega-form": "url", ref: (ref) => {
4529
+ this.urlInputRef = ref;
4530
+ }, size: "small", label: this.translationSlimmer.t('URL'), onKeyDown: this.handleKeyDown }),
4531
+ index.h("vega-input", { size: "small", label: this.translationSlimmer.t('Text'), "data-vega-form": "text", onKeyDown: this.handleKeyDown })))));
4532
+ }
4533
+ updatePopoverTarget() {
4534
+ remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.popoverRef, vegaInternalEventId.VegaInternalPopoverUpdateTarget), this.target);
4535
+ }
4536
+ }
4537
+ __decorate$1([
4538
+ globalSlimmerRegistry.MapToComponentField()
4539
+ ], VegaRichTextLinkEditorRenderer.prototype, "host", void 0);
4540
+ __decorate$1([
4541
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
4542
+ ], VegaRichTextLinkEditorRenderer.prototype, "status", void 0);
4543
+ __decorate$1([
4544
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
4545
+ ], VegaRichTextLinkEditorRenderer.prototype, "record", void 0);
4546
+ __decorate$1([
4547
+ globalSlimmerRegistry.MapToComponentField()
4548
+ ], VegaRichTextLinkEditorRenderer.prototype, "changeEventEmitter", void 0);
4549
+ __decorate$1([
4550
+ globalSlimmerRegistry.MapToComponentField()
4551
+ ], VegaRichTextLinkEditorRenderer.prototype, "resetStatusAfterHide", void 0);
4552
+ __decorate$1([
4553
+ globalSlimmerRegistry.MapToComponentField()
4554
+ ], VegaRichTextLinkEditorRenderer.prototype, "translationSlimmer", void 0);
4555
+ __decorate$1([
4556
+ globalSlimmerRegistry.MapToComponentField()
4557
+ ], VegaRichTextLinkEditorRenderer.prototype, "target", void 0);
4558
+ __decorate$1([
4559
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4560
+ ], VegaRichTextLinkEditorRenderer.prototype, "componentDidLoad", null);
4561
+ __decorate$1([
4562
+ globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
4563
+ ], VegaRichTextLinkEditorRenderer.prototype, "componentDidRender", null);
4564
+ __decorate$1([
4565
+ globalSlimmerRegistry.MapToComponentMethod('watchStatusChange')
4566
+ ], VegaRichTextLinkEditorRenderer.prototype, "watchStatusChange", null);
4567
+ __decorate$1([
4568
+ globalSlimmerRegistry.MapToComponentMethod('watchTargetChange')
4569
+ ], VegaRichTextLinkEditorRenderer.prototype, "watchTargetChange", null);
4570
+
4571
+ const vegaRichTextLinkEditorCss = ":host{display:contents}:host vega-popover{display:inline}";
4572
+
4573
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4574
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4575
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4576
+ r = Reflect.decorate(decorators, target, key, desc);
4577
+ else
4578
+ for (var i = decorators.length - 1; i >= 0; i--)
4579
+ if (d = decorators[i])
4580
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4581
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4582
+ };
4583
+ const VegaRichTextLinkEditor = class {
4584
+ constructor(hostRef) {
4585
+ index.registerInstance(this, hostRef);
4586
+ this.vegaChange = index.createEvent(this, "vegaChange", 7);
4587
+ this.change = index.createEvent(this, "change", 7);
4588
+ this.globalSlimmers = {};
4589
+ this.translationSlimmer = new translationSlimmer.TranslationSlimmer();
4590
+ this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
4591
+ this.renderer = new VegaRichTextLinkEditorRenderer();
4592
+ this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextLinkEditor, domNodeSubjectObserverFactory.VegaChange);
4593
+ /**
4594
+ * Specifies the status of the link editor
4595
+ *
4596
+ * @vegaVersion 2.34.0
4597
+ */
4598
+ // eslint-disable-next-line @stencil/strict-mutable
4599
+ this.status = 'editOrUnlinkSelection';
4600
+ /**
4601
+ * Specifies whether the status will be reset after hide the popover
4602
+ *
4603
+ * @vegaVersion 2.34.0
4604
+ */
4605
+ this.resetStatusAfterHide = true;
4606
+ }
4607
+ watchStatusChange() {
4608
+ }
4609
+ watchTargetChange() {
4610
+ }
4611
+ /**
4612
+ * Provide a method to show the link editor popover
4613
+ *
4614
+ * @vegaVersion 2.34.0
4615
+ */
4616
+ async show() {
4617
+ await this.renderer.getPopoverRef().show();
4618
+ }
4619
+ render() {
4620
+ return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
4621
+ }
4622
+ get host() { return index.getElement(this); }
4623
+ static get watchers() { return {
4624
+ "status": ["watchStatusChange"],
4625
+ "target": ["watchTargetChange"]
4626
+ }; }
4627
+ };
4628
+ __decorate([
4629
+ componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
4630
+ ], VegaRichTextLinkEditor.prototype, "globalSlimmers", void 0);
4631
+ __decorate([
4632
+ globalSlimmerRegistry.InjectVegaSlimmer()
4633
+ ], VegaRichTextLinkEditor.prototype, "translationSlimmer", void 0);
4634
+ __decorate([
4635
+ globalSlimmerRegistry.InjectVegaSlimmer()
4636
+ ], VegaRichTextLinkEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
4637
+ __decorate([
4638
+ globalSlimmerRegistry.InjectVegaSlimmer()
4639
+ ], VegaRichTextLinkEditor.prototype, "renderer", void 0);
4640
+ __decorate([
4641
+ globalSlimmerRegistry.InjectVegaSlimmer()
4642
+ ], VegaRichTextLinkEditor.prototype, "changeEventEmitter", void 0);
4643
+ VegaRichTextLinkEditor.style = vegaRichTextLinkEditorCss;
4644
+
4645
+ exports.vega_rich_text_editor = VegaRichTextEditor;
4646
+ exports.vega_rich_text_editor_toolbar_button = VegaRichTextEditorToolbarButton;
4647
+ exports.vega_rich_text_image_editor = VegaRichTextImageEditor;
4648
+ exports.vega_rich_text_link_editor = VegaRichTextLinkEditor;