@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
@@ -1,4795 +0,0 @@
1
- import { I as InjectVegaTelemetrySlimmer, c as createPublicAPIRuntimeMetricsSlimmer, g as generateUUID } from './create-public-api-runtime-metrics-slimmer-bedf3a1e.js';
2
- import { a as arrayToClassString, g as getDeviceType, D as DeviceType, f as findParent } from './ui-bb99c0c2.js';
3
- import { L as LogUtility, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
4
- import { c as createDynamicSlimmer } from './dynamic-slimmer-90b8af32.js';
5
- import { P as PageResizeObserverSlimmer } from './page-resize-observer-slimmer-0bf7fbf3.js';
6
- import { V as VegaInternalThemeManager } from './dark-mode-style-controller-de88a117.js';
7
- import { i as internalVegaEventManager } from './internal-vega-event-manager-c171f709.js';
8
- import { c as convertToNumber } from './number-4398f2e1.js';
9
- import { R as RTEDTORendererManager, a as RTEDTOActionStrategyManager, E as ElementToDTOClassStrategyManager, U as UpdateCursorPositionAction, b as ElementToDTOStrategy, h as htmlElementToAnnotationGenerator, c as RTEListItemBlock, V as VegaRTEContent, B as BlockToRTEBlockStrategyAbstract, I as InsertNewParagraphAction, d as RTEImageBlock, e as InsertChildrenBeforeStrategy, P as PasteContentStrategy } from './dto-renderer-manager-8b93cc6f.js';
10
- import { s as stateEntityRenderingRegistry, A as ActionHandleStrategyRegistry, a as ActionHandlerInterceptorRegistry, R as RTEDTOClassManager, M as ModifyContentAction, b as RTETextNode, c as ModifyContentActionType, d as ActionHandleStrategy, e as RTETextBlock, f as RTEBlock, g as RTEAnnotationStyle, I as InsertChildrenAfterAction, h as AppendChildrenAction, i as RTENode, j as InsertChildrenBeforeAction, k as InternalAnnotationTypeEnum, B as BlockAnnotation, l as RemoveChildrenAction } from './code-block-f2f0cff5.js';
11
- import { a as VegaInternalIconManager } from './internal-icon-manager-f0486245.js';
12
- import { R as RTETableExtensionAnnotationTypeEnum, S as SettingEventHandler, T as TableSettingType, a as RowOperationEventHandler, C as ColumnOperationEventHandler, r as remoteInvocationRegistry, b as RTETableBlock, g as generateTableBody, c as RTETableCellBlock, d as RTETableRowBlock, I as InsertTableRowDirection, e as RTETableBodyBlock, f as RTETableHeadBlock, h as getParentBlockByType, i as RTETableHeadCellBlock, j as TableColumnStrategy, k as getAllTableRows, l as InsertTableColumnDirection, m as getDefaultCellBlockTemplate, n as getFirstNode, o as INSERT_TABLE_ROW, D as DELETE_TABLE_ROW, p as TOGGLE_HEADER_ROW, q as INSERT_TABLE_COLUMN, s as DELETE_TABLE_COLUMN, t as TOGGLE_HEADER_TABLE_COLUMN, u as ToggleHeaderTableColumnStrategy, v as SELECT_TABLE_COLUMN } from './column-operation-9805e482.js';
13
- import { i as isNonNullable } from './type-guard-12f7654b.js';
14
- import { V as VegaRTEBaseRenderer } from './base-renderer-101f6d04.js';
15
- import { D as DomNodeSubjectObserverFactory, V as VegaDropdownClick, a as VegaClick, d as domNodeSubjectFactory, b as VegaPopoverShow, c as VegaPopoverHide } from './dom-node-subject-observer-factory-4401eb10.js';
16
- import { V as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-49fef150.js';
17
- import { d as debounce } from './timer-9321173b.js';
18
- import { t as tryGetDocument } from './try-get-document-bef0f526.js';
19
-
20
- const VegaLoaderRuntimeMetricsPayloadDefinition = [
21
- {
22
- payloadKey: 'IS_LOAD_METHOD_CALLED',
23
- payloadDescription: 'Indicate if the method load of public API VegaLoaderController is called',
24
- /**
25
- * Indicate whether the method is collected when the method been called .
26
- *
27
- * @param {string} scope - The class name of public api
28
- * @param {string} methodName - The method name called by the public api
29
- * @returns {boolean} A boolean value
30
- */
31
- canAccept: (scope, methodName) => scope === 'VegaLoaderController' && methodName === 'load',
32
- /**
33
- * The function checks if the method name is load.
34
- *
35
- * @returns {boolean} A boolean value
36
- */
37
- payloadValue: () => {
38
- return true;
39
- },
40
- },
41
- {
42
- payloadKey: 'IS_CLOSE_METHOD_CALLED',
43
- payloadDescription: 'Indicate if the method close of public API VegaLoaderController is called',
44
- /**
45
- * Indicate whether the method is collected when the method been called .
46
- *
47
- * @param {string} scope - The class name of public api
48
- * @param {string} methodName - The method name called by the public api
49
- * @returns {boolean} A boolean value
50
- */
51
- canAccept: (scope, methodName) => scope === 'VegaLoaderController' && methodName === 'close',
52
- /**
53
- * The function checks if the method name is close.
54
- *
55
- * @returns {boolean} A boolean value
56
- */
57
- payloadValue: () => {
58
- return true;
59
- },
60
- },
61
- ];
62
-
63
- var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
64
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
65
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
66
- 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;
67
- return c > 3 && r && Object.defineProperty(target, key, r), r;
68
- };
69
- /**
70
- * Vega loader controller to control the loading indicator
71
- */
72
- class VegaLoaderController {
73
- constructor() {
74
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(VegaLoaderController, ['load', 'close'], VegaLoaderRuntimeMetricsPayloadDefinition);
75
- }
76
- /**
77
- * Create a loading indicator and append it to the container
78
- *
79
- * @param {VegaLoaderIndicatorOptions} options - VegaLoaderOptions = {} options of the method
80
- * @returns {Nullable<string>} The uuid of the loader.
81
- * @vegaVersion 1.16.0
82
- */
83
- load(options = {}) {
84
- let containerSelector = options.containerSelector || 'body';
85
- let containerElement = document.querySelector(containerSelector);
86
- if (containerElement &&
87
- VegaLoaderController.SPECIAL_ELEMENT_TO_WRAP_FULL_BODY.includes(containerElement.tagName)) {
88
- containerSelector = 'body';
89
- containerElement = document.querySelector('body');
90
- }
91
- if (!containerElement) {
92
- LogUtility.error('Container is not found by selector: ', containerSelector);
93
- return null;
94
- }
95
- const loadingIndicator = this.createLoadingIndicator(options.indicatorOptions);
96
- const loader = this.createLoader(containerSelector);
97
- loader.append(loadingIndicator);
98
- return this.appendLoader(loader, containerElement);
99
- }
100
- /**
101
- * Close the loader by id
102
- *
103
- * @param {string} id - The id of the loader.
104
- * @vegaVersion 1.16.0
105
- */
106
- close(id) {
107
- const loader = this.findLoader(id);
108
- if (loader) {
109
- if (loader.dataset.container) {
110
- const container = document.querySelector(loader.dataset.container);
111
- if (container) {
112
- if (container.dataset['vegaLoaderOriginPosition']) {
113
- container.style.position = container.dataset['vegaLoaderOriginPosition'];
114
- }
115
- }
116
- }
117
- loader.remove();
118
- }
119
- }
120
- /**
121
- * Find loader by id, if the id include '>>>' it will find inside shadowRoot
122
- *
123
- * @param {string} id - The id of the loader.
124
- * @returns {Nullable<HTMLElement>} The loader found by id.
125
- */
126
- findLoader(id) {
127
- var _a, _b;
128
- let loader;
129
- if (id.includes('>>>')) {
130
- const [containerSelector, loaderSelector] = id.split('>>>');
131
- loader = (_b = (_a = document.querySelector(containerSelector)) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.getElementById(loaderSelector);
132
- }
133
- else {
134
- loader = document.getElementById(id);
135
- }
136
- return loader;
137
- }
138
- /**
139
- * Create a loader for loading indicator
140
- *
141
- * @param {string} containerSelector The container which you want to append
142
- * @returns {HTMLElement} a wrapper for loader
143
- */
144
- createLoader(containerSelector) {
145
- const loader = document.createElement('vega-loader-wrapper');
146
- loader.className = arrayToClassString([
147
- containerSelector === 'body' ? 'fixed-wrapper' : 'absolute-wrapper',
148
- ]);
149
- loader.dataset['container'] = containerSelector;
150
- loader.id = `vega-loader-${generateUUID()}`;
151
- return loader;
152
- }
153
- /**
154
- * Create a loading indicator
155
- *
156
- * @param {VegaLoaderIndicatorOptions} indicatorOptions the props of vega loading indicator
157
- * @returns {HTMLVegaLoadingIndicatorElement} vega-loading-indicator component template
158
- */
159
- createLoadingIndicator(indicatorOptions = {}) {
160
- const loadingIndicator = document.createElement('vega-loading-indicator');
161
- Object.assign(loadingIndicator, indicatorOptions);
162
- return loadingIndicator;
163
- }
164
- /**
165
- * Append the loader to the container
166
- *
167
- * @param {HTMLElement} loader A loader with loading indicator
168
- * @param {string} containerElement The container which you want to append the loader to
169
- * @returns {string} The uuid of the loader.
170
- */
171
- appendLoader(loader, containerElement) {
172
- containerElement.dataset['vegaLoaderOriginPosition'] = containerElement.style.position;
173
- containerElement.style.position = 'relative';
174
- if (containerElement.shadowRoot) {
175
- containerElement.shadowRoot.append(loader);
176
- return `${loader.dataset['container']}>>>${loader.id}`;
177
- }
178
- else {
179
- containerElement.append(loader);
180
- return loader.id;
181
- }
182
- }
183
- }
184
- VegaLoaderController.SPECIAL_ELEMENT_TO_WRAP_FULL_BODY = ['VEGA-MODAL'];
185
- __decorate$6([
186
- InjectVegaTelemetrySlimmer()
187
- ], VegaLoaderController.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
188
- const VegaLoader = new VegaLoaderController();
189
-
190
- const BASE_BASIC_Z_INDEX = 10000;
191
- const TOP_BASIC_Z_INDEX = 11000;
192
- /**
193
- * Base level is for custom element such as modal, tooltip, dropdown, sidenav and header.
194
- * the z-index of current showing element is highly than already show.
195
- * Top level is for element that always display to top, such as notification.
196
- */
197
- class InternalVegaZIndexManager {
198
- constructor() {
199
- this.baseBasicZIndex = BASE_BASIC_Z_INDEX;
200
- this.topBasicZIndex = TOP_BASIC_Z_INDEX;
201
- this.levelEntry = {
202
- base: {
203
- zIndex: this.baseBasicZIndex,
204
- elements: [],
205
- },
206
- top: {
207
- zIndex: this.topBasicZIndex,
208
- elements: [],
209
- },
210
- };
211
- }
212
- /**
213
- * "If the element is not already the current element, then increment the z-index and set the element
214
- * to the current element."
215
- *
216
- * The function is a little more complicated than that, but not much. The function takes an element and
217
- * a level. The level is optional and defaults to 'base'. The level is used to keep track of the
218
- * z-index for each level. The function uses a private variable, levelStatus, to keep track of the
219
- * current element and z-index for each level
220
- *
221
- * @param {HTMLElement} element - The element to set the z-index of.
222
- * @param {ZIndexLevelType} [level=base] - The level of the element.
223
- * @returns {void}
224
- */
225
- setZIndex(element, level = 'base') {
226
- if (element === null)
227
- return;
228
- this.removeZIndex(element, level);
229
- const zIndexEntry = this.levelEntry[level];
230
- if (element && zIndexEntry) {
231
- if (level === 'base' && this.isBaseLevelOver()) {
232
- LogUtility.warn(`The max 'z-index' of base level is '11000', but the current 'z-index' is over, Please optimize the use of 'z-index', otherwise there will be some performance overhead.`);
233
- this.increaseTopEntry();
234
- }
235
- zIndexEntry.elements.push(element);
236
- zIndexEntry.zIndex += 1;
237
- element.style.zIndex = zIndexEntry.zIndex.toString();
238
- }
239
- }
240
- /**
241
- * It removes the element from the level's array of elements, and then decrements the z-index of all
242
- * elements after the removed element
243
- *
244
- * @param {HTMLElement} element - HTMLElement - The element to move
245
- * @param {ZIndexLevelType} [level=base] - Level = 'base'
246
- * @returns {void}
247
- */
248
- removeZIndex(element, level = 'base') {
249
- if (element === null)
250
- return;
251
- const zIndexEntry = this.levelEntry[level];
252
- if (element && zIndexEntry) {
253
- let startAt = -1;
254
- zIndexEntry.elements.forEach((e, index) => {
255
- if (e === element)
256
- startAt = index;
257
- if (startAt >= 0 && index > startAt) {
258
- e.style.zIndex = `${convertToNumber(e.style.zIndex) - 1}`;
259
- }
260
- });
261
- if (startAt >= 0) {
262
- element.style.removeProperty('z-index');
263
- zIndexEntry.elements.splice(startAt, 1);
264
- zIndexEntry.zIndex -= 1;
265
- }
266
- }
267
- }
268
- /**
269
- * The function "overrideZIndexBasicValues" updates the base and top basic z-index values based on the
270
- * input provided.
271
- *
272
- * @param {ZIndexBasicValues} input - The input parameter is of type ZIndexBasicValues, which is an
273
- * object with two properties: base and top. Both properties are optional and can be either a number or
274
- * undefined.
275
- */
276
- overrideZIndexBasicValues(input) {
277
- const basicValues = this.formatZIndexBasicValues(input);
278
- if (this.validBasicValues(basicValues)) {
279
- this.updateBasicValues(basicValues);
280
- }
281
- }
282
- /**
283
- * The function `formatZIndexBasicValues` takes an input object and returns a new object with additional
284
- * properties `base` and `top` added to it.
285
- *
286
- * @param {ZIndexBasicValues} input - The input parameter is of type ZIndexBasicValues. It is an object
287
- * that contains properties for base and top.
288
- * @returns {ZIndexBasicValues} - an object that combines the properties of the input object `input` with the properties
289
- * `base` and `top`. The values of `base` and `top` are taken from the `this.baseBasicZIndex` and
290
- * `this.topBasicZIndex` variables respectively.
291
- */
292
- formatZIndexBasicValues(input) {
293
- return Object.assign({
294
- base: this.baseBasicZIndex,
295
- top: this.topBasicZIndex,
296
- }, input);
297
- }
298
- /**
299
- * The function checks if the input values for base and top levels of a z-index are valid.
300
- *
301
- * @param {ZIndexBasicValues} input - The input parameter is an object of type ZIndexBasicValues. It
302
- * has two properties: base and top. Both properties should be of type number.
303
- * @returns {boolean} a boolean value.
304
- */
305
- validBasicValues(input) {
306
- if (typeof input.base !== 'number' || typeof input.top !== 'number') {
307
- LogUtility.error('Change z-index basic value failed, both base level and top level should be of type number!');
308
- return false;
309
- }
310
- else if (input.base >= input.top) {
311
- LogUtility.error('Change z-index basic value failed, the base level should be smaller than the top level!');
312
- return false;
313
- }
314
- return true;
315
- }
316
- /**
317
- * The function updates the z-index values of elements based on the input values.
318
- *
319
- * @param {ZIndexBasicValues} input - The input parameter is an object of type ZIndexBasicValues. It
320
- * has two properties: base and top, both of which are optional and can be of type number.
321
- */
322
- updateBasicValues(input) {
323
- // update basic z-index value
324
- this.baseBasicZIndex = input.base;
325
- this.topBasicZIndex = input.top;
326
- // update base level entry
327
- const baseLevel = this.levelEntry.base;
328
- baseLevel.elements.forEach((element, index) => {
329
- element.style.zIndex = `${this.baseBasicZIndex + index + 1}`;
330
- });
331
- baseLevel.zIndex = this.baseBasicZIndex + baseLevel.elements.length;
332
- // update top level entry
333
- const topLevel = this.levelEntry.top;
334
- topLevel.elements.forEach((element, index) => {
335
- element.style.zIndex = `${this.topBasicZIndex + index + 1}`;
336
- });
337
- topLevel.zIndex = this.topBasicZIndex + topLevel.elements.length;
338
- }
339
- /**
340
- * It increases the z-index of all the elements in the top entry by 1
341
- *
342
- * @returns {void}
343
- */
344
- increaseTopEntry() {
345
- const topEntry = this.levelEntry['top'];
346
- topEntry.elements.forEach((element) => {
347
- element.style.zIndex = `${convertToNumber(element.style.zIndex) + 1}`;
348
- });
349
- topEntry.zIndex += 1;
350
- }
351
- /**
352
- * If the z-index of the level is over 1000 greater than the basic z-index of the level, then return
353
- * true.
354
- *
355
- * @returns {boolean} - The zIndexEntry.zIndex - this.getBasicZIndexByLevel(level) >= 1000 is being returned.
356
- */
357
- isBaseLevelOver() {
358
- const baseEntry = this.levelEntry['base'];
359
- return baseEntry.zIndex >= this.topBasicZIndex;
360
- }
361
- }
362
- const InternalVegaZIndexManager$1 = new InternalVegaZIndexManager();
363
-
364
- const VegaNotifyRuntimeMetricsPayloadDefinition = [
365
- {
366
- payloadKey: 'IS_OPEN_METHOD_CALLED',
367
- payloadDescription: 'Indicate if the method open of public API VegaNotifyController is called',
368
- /**
369
- * Indicate whether the method is collected when the method been called .
370
- *
371
- * @param {string} scope - The class name of public api
372
- * @param {string} methodName - The method name called by the public api
373
- * @returns {boolean} A boolean value
374
- */
375
- canAccept: (scope, methodName) => scope === 'VegaNotifyController' && methodName === 'open',
376
- /**
377
- * The function checks if the method name is open.
378
- *
379
- * @returns {boolean} A boolean value
380
- */
381
- payloadValue: () => {
382
- return true;
383
- },
384
- },
385
- {
386
- payloadKey: 'IS_CLOSE_METHOD_CALLED',
387
- payloadDescription: 'Indicate if the method close of public API VegaNotifyController is called',
388
- /**
389
- * Indicate whether the method is collected when the method been called .
390
- *
391
- * @param {string} scope - The class name of public api
392
- * @param {string} methodName - The method name called by the public api
393
- * @returns {boolean} A boolean value
394
- */
395
- canAccept: (scope, methodName) => scope === 'VegaNotifyController' && methodName === 'close',
396
- /**
397
- * The function checks if the method name is close.
398
- *
399
- * @returns {boolean} A boolean value
400
- */
401
- payloadValue: () => {
402
- return true;
403
- },
404
- },
405
- {
406
- payloadKey: 'IS_CLOSEALL_METHOD_CALLED',
407
- payloadDescription: 'Indicate if the method closeAll of public API VegaNotifyController is called',
408
- /**
409
- * Indicate whether the method is collected when the method been called .
410
- *
411
- * @param {string} scope - The class name of public api
412
- * @param {string} methodName - The method name called by the public api
413
- * @returns {boolean} A boolean value
414
- */
415
- canAccept: (scope, methodName) => scope === 'VegaNotifyController' && methodName === 'closeAll',
416
- /**
417
- * The function checks if the method name is closeAll.
418
- *
419
- * @returns {boolean} A boolean value
420
- */
421
- payloadValue: () => {
422
- return true;
423
- },
424
- },
425
- ];
426
-
427
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
428
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
429
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
430
- 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;
431
- return c > 3 && r && Object.defineProperty(target, key, r), r;
432
- };
433
- /**
434
- * The page notification controller
435
- */
436
- class VegaNotifyController {
437
- constructor() {
438
- this.resizeObserverSlimmer = createDynamicSlimmer(VegaNotifyController, PageResizeObserverSlimmer, [], [{ mapFrom: 'connectResizeObserver', mapTo: 'connectResizeObserver' }], [
439
- {
440
- // eslint-disable-next-line jsdoc/require-jsdoc
441
- callback: (entries) => {
442
- var _a;
443
- const currentVisible = entries[0].contentRect.height > 0;
444
- if (!currentVisible && ((_a = this.container) === null || _a === void 0 ? void 0 : _a.classList.contains('hydrated'))) {
445
- InternalVegaZIndexManager$1.removeZIndex(this.container, 'top');
446
- this.container.remove();
447
- this.container = null;
448
- }
449
- },
450
- // eslint-disable-next-line jsdoc/require-jsdoc
451
- target: () => this.container,
452
- },
453
- ]);
454
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(VegaNotifyController, ['open', 'close', 'closeAll'], VegaNotifyRuntimeMetricsPayloadDefinition);
455
- }
456
- /**
457
- * It creates a new notification element, adds it to the container, and returns the notification's ID
458
- *
459
- * @param {VegaNotifyOption} options - VegaNotifyProps
460
- * @returns {Promise<string>} The ID of the notification.
461
- * @vegaVersion 1.17.0
462
- */
463
- async open(options) {
464
- const pageNotification = this.createPageNotification(options);
465
- this.getContainer().append(pageNotification);
466
- return pageNotification.id;
467
- }
468
- /**
469
- * It closes all notifications
470
- *
471
- * @vegaVersion 1.17.0
472
- */
473
- async closeAll() {
474
- this.container &&
475
- Array.from(this.container.children).forEach((item) => {
476
- void item.close();
477
- });
478
- }
479
- /**
480
- * It closes the notification with the given id
481
- *
482
- * @param {string} id - The id of the notification to close.
483
- * @vegaVersion 1.17.0
484
- */
485
- async close(id) {
486
- // eslint-disable-next-line no-restricted-globals
487
- await document.getElementById(id).close();
488
- }
489
- /**
490
- * The function "connectResizeObserver" is used to connect a resize observer.
491
- *
492
- * @vegaVersion 1.17.0
493
- */
494
- connectResizeObserver() {
495
- }
496
- /**
497
- * It creates a new page notification element, sets its properties, and returns it
498
- *
499
- * @param {VegaNotifyOption} props - VegaNotifyProps - the properties of the notification
500
- * @returns {HTMLVegaPageNotificationElement} A function that takes in a props object and returns a pageNotification element.
501
- */
502
- createPageNotification(props) {
503
- const pageNotification =
504
- // eslint-disable-next-line no-restricted-globals
505
- document.createElement('vega-page-notification');
506
- Object.keys(props).forEach((propName) => {
507
- props[propName] !== undefined && (pageNotification[propName] = props[propName]);
508
- });
509
- pageNotification.style.marginBottom = getDeviceType() === DeviceType.MOBILE ? '12px' : '16px';
510
- pageNotification.id = `vega-page-notification-${generateUUID()}`;
511
- return pageNotification;
512
- }
513
- /**
514
- * It creates a div element, sets its z-index to be on top of everything else, adds a class to it, and
515
- * then adds it to the body of the page
516
- *
517
- * @returns {HTMLVegaPageNotificationListElement} The container is being returned.
518
- */
519
- getContainer() {
520
- if (this.container) {
521
- return this.container;
522
- }
523
- // eslint-disable-next-line no-restricted-globals
524
- this.container = document.createElement('vega-page-notification-list');
525
- InternalVegaZIndexManager$1.setZIndex(this.container, 'top');
526
- if (getDeviceType() === DeviceType.MOBILE) {
527
- this.container.classList.add('vega-page-notification-list-bottom');
528
- }
529
- else {
530
- this.container.classList.add('vega-page-notification-list-topRight');
531
- }
532
- // eslint-disable-next-line no-restricted-globals
533
- document.body.append(this.container);
534
- this.connectResizeObserver();
535
- return this.container;
536
- }
537
- }
538
- __decorate$5([
539
- InjectVegaSlimmer()
540
- ], VegaNotifyController.prototype, "resizeObserverSlimmer", void 0);
541
- __decorate$5([
542
- InjectVegaTelemetrySlimmer()
543
- ], VegaNotifyController.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
544
- const VegaNotify = new VegaNotifyController();
545
-
546
- const ThemeManagerRuntimeMetricsPayloadDefinition = [
547
- {
548
- payloadKey: 'IS_OVERRIDECOLORS_METHOD_CALLED',
549
- payloadDescription: 'Indicate if the method overrideColors of public API ThemeManager is called',
550
- /**
551
- * Indicate whether the method is collected when the method been called .
552
- *
553
- * @param {string} scope - The class name of public api
554
- * @param {string} methodName - The method name called by the public api
555
- * @returns {boolean} A boolean value
556
- */
557
- canAccept: (scope, methodName) => scope === 'ThemeManager' && methodName === 'overrideColors',
558
- /**
559
- * The function checks if the method is be called.
560
- *
561
- * @returns {boolean} A boolean value
562
- */
563
- payloadValue: () => {
564
- return true;
565
- },
566
- },
567
- {
568
- payloadKey: 'IS_RESET_METHOD_CALLED',
569
- payloadDescription: 'Indicate if the method reset of public API ThemeManager is called',
570
- /**
571
- * Indicate whether the method is collected when the method been called .
572
- *
573
- * @param {string} scope - The class name of public api
574
- * @param {string} methodName - The method name called by the public api
575
- * @returns {boolean} A boolean value
576
- */
577
- canAccept: (scope, methodName) => scope === 'ThemeManager' && methodName === 'reset',
578
- /**
579
- * The function checks if the method is be called.
580
- *
581
- * @returns {boolean} A boolean value
582
- */
583
- payloadValue: () => {
584
- return true;
585
- },
586
- },
587
- {
588
- payloadKey: 'IS_TOGGLEDARKMODE_METHOD_CALLED',
589
- payloadDescription: 'Indicate if the method toggleDarkMode of public API ThemeManager is called',
590
- /**
591
- * Indicate whether the method is collected when the method been called .
592
- *
593
- * @param {string} scope - The class name of public api
594
- * @param {string} methodName - The method name called by the public api
595
- * @returns {boolean} A boolean value
596
- */
597
- canAccept: (scope, methodName) => scope === 'ThemeManager' && methodName === 'toggleDarkMode',
598
- /**
599
- * The function checks if the method is be called.
600
- *
601
- * @returns {boolean} A boolean value
602
- */
603
- payloadValue: () => {
604
- return true;
605
- },
606
- },
607
- {
608
- payloadKey: 'IS_ISDARKMODE_METHOD_CALLED',
609
- payloadDescription: 'Indicate if the method isDarkMode of public API ThemeManager is called',
610
- /**
611
- * Indicate whether the method is collected when the method been called .
612
- *
613
- * @param {string} scope - The class name of public api
614
- * @param {string} methodName - The method name called by the public api
615
- * @returns {boolean} A boolean value
616
- */
617
- canAccept: (scope, methodName) => scope === 'ThemeManager' && methodName === 'isDarkMode',
618
- /**
619
- * The function checks if the method is be called.
620
- *
621
- * @returns {boolean} A boolean value
622
- */
623
- payloadValue: () => {
624
- return true;
625
- },
626
- },
627
- {
628
- payloadKey: 'IS_APPLY_BRANDING_METHOD_CALLED',
629
- payloadDescription: 'Indicate if the method applyBranding of public API ThemeManager is called',
630
- /**
631
- * Indicate whether the method is collected when the method been called .
632
- *
633
- * @param {string} scope - The class name of public api
634
- * @param {string} methodName - The method name called by the public api
635
- * @returns {boolean} A boolean value
636
- */
637
- canAccept: (scope, methodName) => scope === 'ThemeManager' && methodName === 'applyBranding',
638
- /**
639
- * The function checks if the method is be called.
640
- *
641
- * @returns {boolean} A boolean value
642
- */
643
- payloadValue: () => {
644
- return true;
645
- },
646
- },
647
- ];
648
-
649
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
650
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
651
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
652
- 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;
653
- return c > 3 && r && Object.defineProperty(target, key, r), r;
654
- };
655
- /**
656
- * Vega components theme manager
657
- */
658
- class ThemeManager {
659
- constructor() {
660
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(ThemeManager, ['overrideColors', 'reset', 'toggleDarkMode', 'isDarkMode', 'applyBranding'], ThemeManagerRuntimeMetricsPayloadDefinition);
661
- }
662
- /**
663
- * It takes the colors you passed in, parses them into the correct format, and then applies them to the theme
664
- *
665
- * @param {VegaThemeOverrideColors} overrideColors - OverrideColors - This is the object that you pass to the function.
666
- * @vegaVersion 1.20.0
667
- */
668
- async overrideColors(overrideColors) {
669
- void VegaInternalThemeManager.overrideColors(overrideColors);
670
- }
671
- /**
672
- * It removes all the custom override theme styles from the DOM
673
- *
674
- * @vegaVersion 1.20.0
675
- */
676
- async reset() {
677
- void VegaInternalThemeManager.reset();
678
- }
679
- /**
680
- * This function toggles the dark mode of a webpage by adding or removing a 'dark' class to the HTML element.
681
- *
682
- * @param {boolean | undefined} darkMode - A boolean or undefined value that determines whether to enable or disable dark mode.
683
- * If it is true, dark mode is enabled.
684
- * If it is false, dark mode is disabled.
685
- * @vegaVersion 1.32.0
686
- */
687
- toggleDarkMode(darkMode) {
688
- VegaInternalThemeManager.toggleDarkMode(darkMode);
689
- }
690
- /**
691
- * The function checks if the HTML element has a class of "dark" and returns a boolean value accordingly.
692
- *
693
- * @returns {boolean} A boolean value indicating whether the HTML element has a class of "dark", which is
694
- * typically used to indicate that the website is in dark mode.
695
- * @vegaVersion 1.32.0
696
- */
697
- isDarkMode() {
698
- return VegaInternalThemeManager.isDarkMode();
699
- }
700
- /**
701
- * This function switches the Vega theme to a brand theme based on the provided options.
702
- *
703
- * @param {BrandOptions} options - The options includes 'gp', 'genius' and 'heartland' options
704
- * @vegaVersion 2.47.0
705
- */
706
- applyBranding(options) {
707
- VegaInternalThemeManager.applyBranding(options);
708
- }
709
- }
710
- __decorate$4([
711
- InjectVegaTelemetrySlimmer()
712
- ], ThemeManager.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
713
- const VegaThemeManager = new ThemeManager();
714
-
715
- const VegaDialogRuntimeMetricsPayloadDefinition = [
716
- {
717
- payloadKey: 'IS_OPEN_METHOD_CALLED',
718
- payloadDescription: 'Indicate if the method open of public API VegaDialogController is called',
719
- /**
720
- * Indicate whether the method is collected when the method been called .
721
- *
722
- * @param {string} scope - The class name of public api
723
- * @param {string} methodName - The method name called by the public api
724
- * @returns {boolean} A boolean value
725
- */
726
- canAccept: (scope, methodName) => scope === 'VegaDialogController' && methodName === 'open',
727
- /**
728
- * The function checks if the method name is open.
729
- *
730
- * @returns {boolean} A boolean value
731
- */
732
- payloadValue: () => {
733
- return true;
734
- },
735
- },
736
- ];
737
-
738
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
739
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
740
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
741
- 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;
742
- return c > 3 && r && Object.defineProperty(target, key, r), r;
743
- };
744
- var __rest$1 = (undefined && undefined.__rest) || function (s, e) {
745
- var t = {};
746
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
747
- t[p] = s[p];
748
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
749
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
750
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
751
- t[p[i]] = s[p[i]];
752
- }
753
- return t;
754
- };
755
- /**
756
- * The dialog controller
757
- */
758
- class VegaDialogController {
759
- constructor() {
760
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(VegaDialogController, ['open'], VegaDialogRuntimeMetricsPayloadDefinition);
761
- }
762
- /**
763
- *
764
- * It creates a new `vega-dialog` element, sets its properties, appends it to the DOM, and opens it
765
- *
766
- * @param {VegaDialogOption} options - VegaDialogOption
767
- * @returns {HTMLVegaDialogElement} The dialog reference.
768
- * @vegaVersion 1.24.0
769
- */
770
- open(options) {
771
- // eslint-disable-next-line no-restricted-globals
772
- const dialog = document.createElement('vega-dialog');
773
- const { isVerticallyCenter, isVerticallyCentered, showCloseButton, size, title, handleClose } = options, dialogProps = __rest$1(options, ["isVerticallyCenter", "isVerticallyCentered", "showCloseButton", "size", "title", "handleClose"]);
774
- dialog.id = `vega-dialog-${generateUUID()}`;
775
- dialog.dialogTitle = title;
776
- dialog.modalProps = { isVerticallyCenter, isVerticallyCentered, showCloseButton, size, handleClose };
777
- Object.keys(dialogProps).forEach((propName) => {
778
- if (dialogProps[propName] !== undefined) {
779
- dialog[propName] = dialogProps[propName];
780
- }
781
- });
782
- // eslint-disable-next-line no-restricted-globals
783
- document.body.append(dialog);
784
- return dialog;
785
- }
786
- }
787
- __decorate$3([
788
- InjectVegaTelemetrySlimmer()
789
- ], VegaDialogController.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
790
- const VegaDialog = new VegaDialogController();
791
-
792
- /* istanbul ignore next */
793
- const VegaEventManagerRuntimeMetricsPayloadDefinition = [
794
- {
795
- payloadKey: 'IS_SETSEMANTICS_METHOD_CALLED',
796
- payloadDescription: 'Indicate if the method setSemantics of public API VegaEventManager is called',
797
- /**
798
- * Indicate whether the method is collected when the method been called .
799
- *
800
- * @param {string} scope - The class name of public api
801
- * @param {string} methodName - The method name called by the public api
802
- * @returns {boolean} A boolean value
803
- */
804
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
805
- /**
806
- * The function checks if the method is been called.
807
- *
808
- * @returns {boolean} A boolean value
809
- */
810
- payloadValue: () => {
811
- return true;
812
- },
813
- },
814
- {
815
- payloadKey: 'IS_GETSEMANTICS_METHOD_CALLED',
816
- payloadDescription: 'Indicate if the method getSemantics of public API VegaEventManager is called',
817
- /**
818
- * Indicate whether the method is collected when the method been called .
819
- *
820
- * @param {string} scope - The class name of public api
821
- * @param {string} methodName - The method name called by the public api
822
- * @returns {boolean} A boolean value
823
- */
824
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'getSemantics',
825
- /**
826
- * The function checks if the method is been called.
827
- *
828
- * @returns {boolean} A boolean value
829
- */
830
- payloadValue: () => {
831
- return true;
832
- },
833
- },
834
- {
835
- payloadKey: 'IS_GETENABLEDEVENTIDSBYCOMPONENT_METHOD_CALLED',
836
- payloadDescription: 'Indicate if the method getEnabledEventIdsByComponent of public API VegaEventManager is called',
837
- /**
838
- * Indicate whether the method is collected when the method been called .
839
- *
840
- * @param {string} scope - The class name of public api
841
- * @param {string} methodName - The method name called by the public api
842
- * @returns {boolean} A boolean value
843
- */
844
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'getEnabledEventIdsByComponent',
845
- /**
846
- * The function checks if the method is been called.
847
- *
848
- * @returns {boolean} A boolean value
849
- */
850
- payloadValue: () => {
851
- return true;
852
- },
853
- },
854
- {
855
- payloadKey: 'globalEventIsNative',
856
- payloadDescription: 'Indicate if the vega components will emit events without the vega prefix',
857
- /**
858
- * Indicate whether the method is collected when the method been called .
859
- *
860
- * @param {string} scope - The class name of public api
861
- * @param {string} methodName - The method name called by the public api
862
- * @returns {boolean} A boolean value
863
- */
864
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
865
- /**
866
- * The function checks if the method is been called.
867
- *
868
- * @param {unknown[]} args - The args parameter is an object
869
- * @returns {boolean} A boolean value
870
- */
871
- payloadValue: (args) => {
872
- const config = args;
873
- return !!(config.global && config.global.namespace === 'native');
874
- },
875
- },
876
- {
877
- payloadKey: 'eventOfSpecificComponentsIsNative',
878
- payloadDescription: 'Indicate if the vega components will emit events with the vega prefix, but special components will emit events without vega prefix',
879
- /**
880
- * Indicate whether the method is collected when the method been called .
881
- *
882
- * @param {string} scope - The class name of public api
883
- * @param {string} methodName - The method name called by the public api
884
- * @returns {boolean} A boolean value
885
- */
886
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
887
- /**
888
- * The function checks if the method is been called.
889
- *
890
- * @param {unknown[]} args - The args parameter is an object
891
- * @returns {boolean} A boolean value
892
- */
893
- payloadValue: (args) => {
894
- const config = args;
895
- if (config.components) {
896
- const specialComponents = Object.keys(config.components);
897
- return !!(specialComponents.length > 0 &&
898
- config.components[specialComponents[0]].namespace === 'native');
899
- }
900
- return false;
901
- },
902
- },
903
- {
904
- payloadKey: 'eventOfSpecificComponentsIsVega',
905
- payloadDescription: 'Indicate if the vega components will emit events without the vega prefix, but special components will emit events with vega prefix',
906
- /**
907
- * Indicate whether the method is collected when the method been called .
908
- *
909
- * @param {string} scope - The class name of public api
910
- * @param {string} methodName - The method name called by the public api
911
- * @returns {boolean} A boolean value
912
- */
913
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
914
- /**
915
- * The function checks if the method is been called.
916
- *
917
- * @param {unknown[]} args - The args parameter is an object
918
- * @returns {boolean} A boolean value
919
- */
920
- payloadValue: (args) => {
921
- const config = args;
922
- if (config.global && config.components) {
923
- const specialComponents = Object.keys(config.components);
924
- return !!(config.global.namespace === 'native' &&
925
- specialComponents.length > 0 &&
926
- config.components[specialComponents[0]].namespace === 'vega');
927
- }
928
- return false;
929
- },
930
- },
931
- {
932
- payloadKey: 'globalJqueryDelegatedEventIsTrue',
933
- payloadDescription: 'Indicate if the use jQuery with event delegation',
934
- /**
935
- * Indicate whether the method is collected when the method been called .
936
- *
937
- * @param {string} scope - The class name of public api
938
- * @param {string} methodName - The method name called by the public api
939
- * @returns {boolean} A boolean value
940
- */
941
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
942
- /**
943
- * The function checks if the method is been called.
944
- *
945
- * @param {unknown[]} args - The args parameter is an object
946
- * @returns {boolean} A boolean value
947
- */
948
- payloadValue: (args) => {
949
- const config = args;
950
- return !!(config.global && config.global.jqueryDelegatedEvent === true);
951
- },
952
- },
953
- {
954
- payloadKey: 'jqueryDelegatedEventIsCustomStrategy',
955
- payloadDescription: 'Indicate if the use jQuery with event delegation',
956
- /**
957
- * Indicate whether the method is collected when the method been called .
958
- *
959
- * @param {string} scope - The class name of public api
960
- * @param {string} methodName - The method name called by the public api
961
- * @returns {boolean} A boolean value
962
- */
963
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
964
- /**
965
- * The function checks if the method is been called.
966
- *
967
- * @param {unknown[]} args - The args parameter is an object
968
- * @returns {boolean} A boolean value
969
- */
970
- payloadValue: (args) => {
971
- const config = args;
972
- return !!(config.global &&
973
- Array.isArray(config.global.jqueryDelegatedEvent) &&
974
- config.global.jqueryDelegatedEvent.length > 0);
975
- },
976
- },
977
- {
978
- payloadKey: 'jqueryDelegatedEventOfSpecialComponentsIsTrue',
979
- payloadDescription: 'Indicate if the use jQuery with event delegation',
980
- /**
981
- * Indicate whether the method is collected when the method been called .
982
- *
983
- * @param {string} scope - The class name of public api
984
- * @param {string} methodName - The method name called by the public api
985
- * @returns {boolean} A boolean value
986
- */
987
- canAccept: (scope, methodName) => scope === 'VegaEventManager' && methodName === 'setSemantics',
988
- /**
989
- * The function checks if the method is been called.
990
- *
991
- * @param {unknown[]} args - The args parameter is an object
992
- * @returns {boolean} A boolean value
993
- */
994
- payloadValue: (args) => {
995
- const config = args;
996
- if (config.components) {
997
- const specialComponents = Object.keys(config.components);
998
- return !!(specialComponents.length > 0 &&
999
- config.components[specialComponents[0]].jqueryDelegatedEvent === true);
1000
- }
1001
- return false;
1002
- },
1003
- },
1004
- ];
1005
-
1006
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1007
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1008
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1009
- 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;
1010
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1011
- };
1012
- /**
1013
- * The VegaEventManager class provides methods for setting and retrieving event semantics configuration,
1014
- * as well as getting the corresponding native event name for a given event.
1015
- */
1016
- class VegaEventManager {
1017
- constructor() {
1018
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(VegaEventManager, ['setSemantics', 'getSemantics', 'getEnabledEventIdsByComponent'], VegaEventManagerRuntimeMetricsPayloadDefinition);
1019
- }
1020
- /**
1021
- * The function sets the semantics configuration for event management.
1022
- *
1023
- * @param {EventSemanticsConfig} config - The config parameter is an object that contains the
1024
- * configuration settings for the event semantics. It may include properties such as the event type,
1025
- * event source, event target, event data, and any other relevant information for setting up the
1026
- * semantics of the event.
1027
- * @vegaVersion 2.0.0
1028
- */
1029
- setSemantics(config) {
1030
- internalVegaEventManager.setSemantics(config);
1031
- }
1032
- /**
1033
- * The function "getSemantics" returns the event semantics of an HTML element.
1034
- *
1035
- * @param {HTMLElement} host - The host parameter is an HTMLElement, which represents an HTML element
1036
- * in the DOM (Document Object Model). It can be any valid HTML element such as a div, span, button,
1037
- * etc.
1038
- * @returns {EventSemantics} an object of type EventSemantics.
1039
- * @vegaVersion 2.0.0
1040
- */
1041
- getSemantics(host) {
1042
- return internalVegaEventManager.getSemantics(host);
1043
- }
1044
- /**
1045
- * The function "getEnabledEventIdsByComponent" returns the all eventIds in component.
1046
- *
1047
- * @param {VegaComponentName} componentName - The component name,
1048
- * etc.
1049
- * @returns {Nullable<VegaEventID[]>} All eventIds.
1050
- * @vegaVersion 2.0.0
1051
- */
1052
- getEnabledEventIdsByComponent(componentName) {
1053
- return internalVegaEventManager.getEnabledEventIdsByComponent(componentName);
1054
- }
1055
- }
1056
- __decorate$2([
1057
- InjectVegaTelemetrySlimmer()
1058
- ], VegaEventManager.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
1059
- const VegaEventManager$1 = new VegaEventManager();
1060
-
1061
- const ZIndexManagerRuntimeMetricsPayloadDefinition = [
1062
- {
1063
- payloadKey: 'IS_OVERRIDEZINDEXBASICVALUES_METHOD_CALLED',
1064
- payloadDescription: 'Indicate if the method overrideZIndexBasicValues of public API ZIndexManager is called',
1065
- /**
1066
- * Indicate whether the method is collected when the method been called .
1067
- *
1068
- * @param {string} scope - The class name of public api
1069
- * @param {string} methodName - The method name called by the public api
1070
- * @returns {boolean} A boolean value
1071
- */
1072
- canAccept: (scope, methodName) => scope === 'VegaZIndexManager' && methodName === 'overrideZIndexBasicValues',
1073
- /**
1074
- * The function checks if the method name is load.
1075
- *
1076
- * @returns {boolean} A boolean value
1077
- */
1078
- payloadValue: () => {
1079
- return true;
1080
- },
1081
- },
1082
- {
1083
- payloadKey: 'zIndexBasicValuesGreatThanTenThousand',
1084
- payloadDescription: 'Indicate if the basic z-index value is great than ten thousand',
1085
- /**
1086
- * Indicate whether the method is collected when the method been called .
1087
- *
1088
- * @param {string} scope - The class name of public api
1089
- * @param {string} methodName - The method name called by the public api
1090
- * @returns {boolean} A boolean value
1091
- */
1092
- canAccept: (scope, methodName) => scope === 'VegaZIndexManager' && methodName === 'overrideZIndexBasicValues',
1093
- /**
1094
- * The function checks if the method name is load.
1095
- *
1096
- * @param {unknown[]} args - The parameter of slimmer method
1097
- * @returns {boolean} A boolean value
1098
- */
1099
- payloadValue: (args) => {
1100
- return args['base'] > 10000;
1101
- },
1102
- },
1103
- ];
1104
-
1105
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1106
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1107
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1108
- 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;
1109
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1110
- };
1111
- /**
1112
- * The VegaZIndexManager class calls a method in the ZIndexManager class to
1113
- * change z-index values based on the input.
1114
- */
1115
- class VegaZIndexManager {
1116
- constructor() {
1117
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(VegaZIndexManager, ['overrideZIndexBasicValues'], ZIndexManagerRuntimeMetricsPayloadDefinition);
1118
- }
1119
- /**
1120
- * The function "overrideZIndexBasicValues" calls a method in the "ZIndexManager" class to change the
1121
- * z-index values based on the input.
1122
- *
1123
- * @param {ZIndexBasicValues} input - The input parameter is of type ZIndexBasicValues.
1124
- * @vegaVersion 2.3.0
1125
- */
1126
- overrideZIndexBasicValues(input) {
1127
- InternalVegaZIndexManager$1.overrideZIndexBasicValues(input);
1128
- }
1129
- }
1130
- __decorate$1([
1131
- InjectVegaTelemetrySlimmer()
1132
- ], VegaZIndexManager.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
1133
- const VegaZIndexManager$1 = new VegaZIndexManager();
1134
-
1135
- const VegaSkeletonRuntimeMetricsPayloadDefinition = [
1136
- {
1137
- payloadKey: 'IS_LOAD_METHOD_CALLED',
1138
- payloadDescription: 'Indicate if the method load of public API VegaSkeletonLoaderController is called',
1139
- /**
1140
- * Indicate whether the method is collected when the method been called .
1141
- *
1142
- * @param {string} scope - The class name of public api
1143
- * @param {string} methodName - The method name called by the public api
1144
- * @returns {boolean} A boolean value
1145
- */
1146
- canAccept: (scope, methodName) => scope === 'VegaSkeletonLoaderController' && methodName === 'load',
1147
- /**
1148
- * The function checks if the method name is load.
1149
- *
1150
- * @returns {boolean} A boolean value
1151
- */
1152
- payloadValue: () => {
1153
- return true;
1154
- },
1155
- },
1156
- {
1157
- payloadKey: 'IS_UNLOAD_METHOD_CALLED',
1158
- payloadDescription: 'Indicate if the method unLoad of public API VegaSkeletonLoaderController is called',
1159
- /**
1160
- * Indicate whether the method is collected when the method been called .
1161
- *
1162
- * @param {string} scope - The class name of public api
1163
- * @param {string} methodName - The method name called by the public api
1164
- * @returns {boolean} A boolean value
1165
- */
1166
- canAccept: (scope, methodName) => scope === 'VegaSkeletonLoaderController' && methodName === 'unLoad',
1167
- /**
1168
- * The function checks if the method name is unLoad.
1169
- *
1170
- * @returns {boolean} A boolean value
1171
- */
1172
- payloadValue: () => {
1173
- return true;
1174
- },
1175
- },
1176
- {
1177
- payloadKey: 'IS_UNLOADALL_METHOD_CALLED',
1178
- payloadDescription: 'Indicate if the method unLoadAll of public API VegaSkeletonLoaderController is called',
1179
- /**
1180
- * Indicate whether the method is collected when the method been called .
1181
- *
1182
- * @param {string} scope - The class name of public api
1183
- * @param {string} methodName - The method name called by the public api
1184
- * @returns {boolean} A boolean value
1185
- */
1186
- canAccept: (scope, methodName) => scope === 'VegaSkeletonLoaderController' && methodName === 'unLoadAll',
1187
- /**
1188
- * The function checks if the method name is unLoadAll.
1189
- *
1190
- * @returns {boolean} A boolean value
1191
- */
1192
- payloadValue: () => {
1193
- return true;
1194
- },
1195
- },
1196
- ];
1197
-
1198
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1199
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1200
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1201
- 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;
1202
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1203
- };
1204
- /**
1205
- * Vega Skeleton Loader Controller to show skeletons in the target elements
1206
- */
1207
- class VegaSkeletonLoaderController {
1208
- constructor() {
1209
- this.vegaPublicAPIRuntimeMetricsSlimmer = createPublicAPIRuntimeMetricsSlimmer(VegaSkeletonLoaderController, ['load', 'unLoad', 'unLoadAll'], VegaSkeletonRuntimeMetricsPayloadDefinition);
1210
- this.loaderMap = new Map();
1211
- }
1212
- /**
1213
- * Load the skeletons in the target elements
1214
- *
1215
- * @param { VegaSkeletonLoaderConfig } config - Configuration for the loading function
1216
- * @param {string} config.target - Target elements to show the skeletons.
1217
- * @param {VegaSkeletonLoaderConfig.type} [config.type = 'text'] - Type of the skeleton.
1218
- * @param {VegaSkeletonLoaderConfig.width} config.width - Width of the skeleton.
1219
- * @param {VegaSkeletonLoaderConfig.height} config.height - Height of the skeleton.
1220
- * @param {VegaSkeletonLoaderConfig.items} config.items - Configuration for multiple skeleton items.
1221
- * @param {VegaSkeletonLoaderConfig.layout} config.layout - Layout of the skeleton items.
1222
- * @returns { string } - Key of the loaded skeleton items.
1223
- * @vegaVersion 2.16.0
1224
- */
1225
- load({ target, type = 'text', width, height, items, layout }) {
1226
- // eslint-disable-next-line no-restricted-globals
1227
- const targets = Array.from(document.body.querySelectorAll(target));
1228
- const key = `vega-skeleton-loader-${generateUUID()}`;
1229
- const loaderItems = [];
1230
- targets.forEach((target) => {
1231
- const skeletonsLoaders = !items
1232
- ? [this.createSkeleton({ type, width, height })]
1233
- : items.map(this.createSkeleton);
1234
- const itemsWithKey = (layout ? [this.wrapLayout(skeletonsLoaders, layout)] : skeletonsLoaders).map((item) => {
1235
- item.dataset[VegaSkeletonLoaderController.LOADER_DATA_SET_KEY] = key;
1236
- return item;
1237
- });
1238
- loaderItems.push(...itemsWithKey);
1239
- target.append(...itemsWithKey);
1240
- });
1241
- this.loaderMap.set(key, loaderItems);
1242
- return key;
1243
- }
1244
- /**
1245
- * Remove the skeletons from the dom.
1246
- *
1247
- * @param {string} key - The key returned from {@link VegaSkeletonLoaderController.load}.
1248
- * @vegaVersion 2.16.0
1249
- */
1250
- unLoad(key) {
1251
- if (this.loaderMap.has(key)) {
1252
- this.loaderMap.get(key).forEach((item) => item.remove());
1253
- this.loaderMap.delete(key);
1254
- }
1255
- }
1256
- /**
1257
- * Remove all the skeletons from the dom.
1258
- *
1259
- * @vegaVersion 2.16.0
1260
- */
1261
- unLoadAll() {
1262
- for (const items of this.loaderMap.values()) {
1263
- items.forEach((item) => item.remove());
1264
- }
1265
- this.loaderMap.clear();
1266
- }
1267
- /**
1268
- * Create a skeleton item. The skeleton animated always be true
1269
- *
1270
- * @param {VegaSkeletonLoaderItem} config - Configuration for the skeleton item.
1271
- * @returns {HTMLVegaSkeletonElement} - Skeleton item.
1272
- */
1273
- createSkeleton(config) {
1274
- const { type, width, height } = config;
1275
- // eslint-disable-next-line no-restricted-globals
1276
- const skeleton = document.createElement('vega-skeleton');
1277
- Object.assign(skeleton, { animated: true, type, width, height });
1278
- return skeleton;
1279
- }
1280
- /**
1281
- * Wrap the flex layout for the skeletons.
1282
- *
1283
- * @param {HTMLElement[]} skeletons - Skeleton elements of the loader.
1284
- * @param {VegaSkeletonLoaderLayout} layout - Flex properties for the layout.
1285
- * @returns {HTMLVegaFlexElement} - Container wrapping the skeletons in the specified flex layout.
1286
- */
1287
- wrapLayout(skeletons, layout) {
1288
- // eslint-disable-next-line no-restricted-globals
1289
- const skeletonContainer = document.createElement('vega-flex');
1290
- Object.assign(skeletonContainer, Object.assign({ className: 'vega-skeleton-loader-template-container' }, layout.props));
1291
- Object.assign(skeletonContainer.style, layout.style);
1292
- skeletonContainer.append(...skeletons);
1293
- return skeletonContainer;
1294
- }
1295
- }
1296
- VegaSkeletonLoaderController.LOADER_DATA_SET_KEY = 'vegaSkeletonLoaderKey';
1297
- __decorate([
1298
- InjectVegaTelemetrySlimmer()
1299
- ], VegaSkeletonLoaderController.prototype, "vegaPublicAPIRuntimeMetricsSlimmer", void 0);
1300
- const VegaSkeletonLoader = new VegaSkeletonLoaderController();
1301
-
1302
- /**
1303
- * Base renderer for Vega Rich Text Editor.
1304
- */
1305
- class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
1306
- /**
1307
- * Returns the styles to be injected into the RTE scope.
1308
- * Override this method to provide custom styles for the custom blocks or nodes.
1309
- *
1310
- * @returns {string} - The styles as a string.
1311
- */
1312
- injectRTEScopeStyles() {
1313
- return '';
1314
- }
1315
- /**
1316
- * Renders the given data as a DOM element.
1317
- *
1318
- * @param {RTEBlock | RTENode} renderData - The data to render, which can be a block or a node.
1319
- * @param {RTERenderContext} rteContext - The rte editor context.
1320
- * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1321
- * @returns {VegaRTERenderResult} - The rendered DOM element.
1322
- */
1323
- render(renderData, rteContext, createElement) {
1324
- var _a;
1325
- const element = this.doRender(createElement, renderData, rteContext);
1326
- this.fallbackRegisterRef(element, renderData);
1327
- this.appendChildren(((_a = element.childrenContainerGetter) === null || _a === void 0 ? void 0 : _a.call(element)) || element, renderData, rteContext, createElement);
1328
- return element;
1329
- }
1330
- /**
1331
- * Register the reference of the element in the rendering registry.
1332
- *
1333
- * @param {RTEBlock | RTENode} renderData - The data to register with the element.
1334
- * @returns {VegaRTEUseRef} - The function to register the element.
1335
- */
1336
- useRef(renderData) {
1337
- renderData[VegaRTEExtensionRenderer.REGISTER_REF_FLAG] = true;
1338
- return function (element) {
1339
- if (element) {
1340
- stateEntityRenderingRegistry.register(element, renderData);
1341
- }
1342
- };
1343
- }
1344
- /**
1345
- * Get a registered renderer by its key.
1346
- *
1347
- * @param {string} key - The key of the renderer.
1348
- * @returns {Nullable<BaseRenderer>} - The registered renderer or null if not found.
1349
- */
1350
- getDTORenderer(key) {
1351
- return RTEDTORendererManager.getRTERenderer(key);
1352
- }
1353
- /**
1354
- * Auto render the block children if the block element is not exist
1355
- *
1356
- * @param {VegaRTERenderResult} parentElement - The parent element to append children to.
1357
- * @param {RTEBlock | RTENode} renderData - The data to render children for.
1358
- * @param {RTERenderContext} rteContext - The render context.
1359
- * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1360
- */
1361
- appendChildren(parentElement, renderData, rteContext, createElement) {
1362
- if (Array.isArray(renderData['children']) &&
1363
- renderData['children'].length &&
1364
- !parentElement['$children$']) {
1365
- parentElement['$children$'] = renderData['children']
1366
- .map((child) => {
1367
- return this.renderChildren(child, rteContext, createElement);
1368
- })
1369
- .filter(isNonNullable);
1370
- }
1371
- }
1372
- /**
1373
- * Render the children node.
1374
- *
1375
- * @param {RTENode | RTEBlock} renderData - The node to render children for.
1376
- * @param {RTERenderContext} rteContext - The render context.
1377
- * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1378
- * @returns {Nullable<VegaRTERenderResult>} - The rendered DOM element.
1379
- */
1380
- renderChildren(renderData, rteContext, createElement) {
1381
- const renderer = this.getDTORenderer(renderData.type);
1382
- if (renderer) {
1383
- return renderer.render(renderData, rteContext, createElement);
1384
- }
1385
- }
1386
- /**
1387
- * Fallback register reference for the element.
1388
- *
1389
- * @param {VegaRTERenderResult} element - The rendered DOM element.
1390
- * @param {RTEBlock | RTENode} renderData - The data to register with the element.
1391
- */
1392
- fallbackRegisterRef(element, renderData) {
1393
- if (!renderData[VegaRTEExtensionRenderer.REGISTER_REF_FLAG] &&
1394
- element['$attrs$'] &&
1395
- !element['$attrs$']['ref']) {
1396
- // eslint-disable-next-line jsdoc/require-jsdoc
1397
- element['$attrs$']['ref'] = this.useRef(renderData);
1398
- }
1399
- }
1400
- }
1401
- VegaRTEExtensionRenderer.REGISTER_REF_FLAG = '__registeredRef__';
1402
-
1403
- /**
1404
- * Abstract class for Vega Rich Text Editor extensions.
1405
- */
1406
- class VegaRTEExtension {
1407
- constructor() {
1408
- /**
1409
- * The context of the RTE extension, which may include references to the host editor and other relevant information.
1410
- */
1411
- this.extensionContext = null;
1412
- this.hasCustomStylesRenderers = new Set();
1413
- }
1414
- /**
1415
- * Registers an action handle strategy for a specific node or block class.
1416
- *
1417
- * @param {string} nodeOrBlockClassName - The name of the node or block class.
1418
- * @param {string} actionType - The type of the action.
1419
- * @param {ActionHandleStrategy<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The strategy to register.
1420
- */
1421
- static registerActionHandleStrategy(nodeOrBlockClassName, actionType, strategy) {
1422
- ActionHandleStrategyRegistry.register(actionType, nodeOrBlockClassName, strategy);
1423
- }
1424
- /**
1425
- * Registers an action handler interceptor for a specific node or block class.
1426
- *
1427
- * @param {string} nodeOrBlockClassName - The name of the node or block class.
1428
- * @param {string} actionType - The type of the action.
1429
- * @param {ActionHandlerInterceptor<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The interceptor to register.
1430
- */
1431
- static registerActionHandlerInterceptor(nodeOrBlockClassName, actionType, strategy) {
1432
- ActionHandlerInterceptorRegistry.register(actionType, nodeOrBlockClassName, strategy);
1433
- }
1434
- /**
1435
- * Initializes the RTE extension with the provided context.
1436
- *
1437
- * @param {RTEExtensionContext} context - The context of the RTE extension.
1438
- */
1439
- initialExtension(context) {
1440
- this.extensionContext = context;
1441
- }
1442
- /**
1443
- * Callback method invoked when the extension is destroyed.
1444
- * Override this method to perform any necessary cleanup.
1445
- */
1446
- destroyExtension() {
1447
- }
1448
- /**
1449
- * Collect custom styles for the extension renderers.
1450
- * If custom nodes have special styles, override this method to provide the styles.
1451
- *
1452
- * @returns {string} - The custom styles as a string.
1453
- */
1454
- collectExtensionRendererStyles() {
1455
- let styles = '';
1456
- if (this.hasCustomStylesRenderers.size > 0) {
1457
- this.hasCustomStylesRenderers.forEach((renderer) => {
1458
- styles += `${renderer.injectRTEScopeStyles()}\n`;
1459
- });
1460
- }
1461
- return styles;
1462
- }
1463
- /**
1464
- * Register a node type with the extension.
1465
- *
1466
- * @param {string} type - The type of the node or block. The type should be a string that uniquely identifies the node or block.
1467
- * @param {ClassType<RTEBlock | RTENode>} DTOClass - The DTO class to register.
1468
- */
1469
- registerNode(type, DTOClass) {
1470
- RTEDTOClassManager.registerRTEDTOClass(type, DTOClass);
1471
- }
1472
- /**
1473
- * Register a renderer for a node type with the extension.
1474
- *
1475
- * @param {string} type - The type of the node or block. The type should be a string that uniquely identifies the node or block.
1476
- * @param {BaseRenderer} renderer - The renderer to register.
1477
- */
1478
- registerRenderer(type, renderer) {
1479
- RTEDTORendererManager.registerRTEDTORenderer(type, renderer);
1480
- if (renderer instanceof VegaRTEExtensionRenderer && renderer.injectRTEScopeStyles()) {
1481
- this.hasCustomStylesRenderers.add(renderer);
1482
- }
1483
- }
1484
- /**
1485
- * Register a toolbar button renderer for the extension.
1486
- *
1487
- * @param {string} type - The type of the toolbar button.
1488
- * @param {VegaRTEToolbarButtonRenderer} renderer - The renderer to register.
1489
- */
1490
- registerToolbarButtonRenderer(type, renderer) {
1491
- RTEDTORendererManager.registerRTEToolbarButtonRenderer(type, renderer);
1492
- }
1493
- /**
1494
- * This is a helper method that utilizes RTEUtils to register common strategies.
1495
- * Call the method with the class name of the block to make it support basic strategies like:
1496
- * - Delete children
1497
- * - Append the children
1498
- * - Delete the block children content
1499
- *
1500
- * @param {string} blockClassName - The class name of the block to register strategies for.
1501
- */
1502
- registerBlockBasicStrategies(blockClassName) {
1503
- RTEDTOActionStrategyManager.registerBlockBasicStrategies(blockClassName);
1504
- }
1505
- /**
1506
- * Unregister a strategy for a specific action type and block class if not need.
1507
- *
1508
- * @param {string} actionType - The special action type or the action class name.
1509
- * @param {string} blockClassName - The class name of the block to unregister the strategy for.
1510
- */
1511
- unRegisterStrategy(actionType, blockClassName) {
1512
- ActionHandleStrategyRegistry.unregister(actionType, blockClassName);
1513
- }
1514
- /**
1515
- * Unregister a strategy for a specific action type and block class if not need.
1516
- *
1517
- * @param {string} actionType - The special action type or the action class name.
1518
- * @param {string} blockClassName - The class name of the block to unregister the strategy for.
1519
- * @param {ActionHandlerInterceptor<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The interceptor to unregister.
1520
- */
1521
- unRegisterInterceptor(actionType, blockClassName, strategy) {
1522
- ActionHandlerInterceptorRegistry.unregister(actionType, blockClassName, strategy);
1523
- }
1524
- /**
1525
- * Register an element to block DTO class strategy.
1526
- *
1527
- * @param {ElementToDTOStrategy} strategy - The strategy to register.
1528
- */
1529
- registerElementToBlockDTOClassStrategy(strategy) {
1530
- ElementToDTOClassStrategyManager.registerElementToBlockStrategy(strategy);
1531
- }
1532
- /**
1533
- * Register an element to node DTO class strategy.
1534
- *
1535
- * @param {ElementToDTOStrategy} strategy - The strategy to register.
1536
- */
1537
- registerElementToNodeDTOClassStrategy(strategy) {
1538
- ElementToDTOClassStrategyManager.registerElementToNodeStrategy(strategy);
1539
- }
1540
- /**
1541
- * Get the registered element to node DTO class strategies.
1542
- *
1543
- * @returns {ElementToDTOStrategy[]} - The registered element to node DTO class strategies.
1544
- */
1545
- getElementToNodeDTOClassStrategies() {
1546
- return ElementToDTOClassStrategyManager.getElementToNodeStrategies();
1547
- }
1548
- }
1549
-
1550
- /**
1551
- * Base class for rendering extension toolbar button in the rich text editor.
1552
- * The renderer provides common functionalities for rendering toolbar buttons, including:
1553
- * - Rendering a button with an icon, label, and optional arrow icon.
1554
- * - Rendering a dropdown with a list of items.
1555
- * - Rendering dropdown items.
1556
- * - Rendering template for dropdown list.
1557
- * - Determining if the button should be disabled based on the editor context.
1558
- * - Handling button and dropdown click events.
1559
- * Override the methods to customize the rendering and behavior of the button.
1560
- */
1561
- class VegaRTEToolbarButtonRenderer {
1562
- /**
1563
- * Checks if the button should be hidden.
1564
- *
1565
- * @param {VegaRTEToolbarRenderContext} editorContext The render context for the editor.
1566
- * @returns {boolean} True if the button is hidden, false otherwise.
1567
- */
1568
- isHidden(editorContext) {
1569
- return editorContext.sourceEditMode;
1570
- }
1571
- /**
1572
- * Renders a dropdown component with the specified properties and children.
1573
- *
1574
- * @param {VegaRTECreateElementFunction} h - Create element function.
1575
- * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1576
- * @param {RTEToolbarDropdownProps} dropdownProps - The properties for the dropdown.
1577
- * @param {VegaRTERenderResult[]} children - The children elements for the dropdown.
1578
- * @returns {VegaRTERenderResult} - The render result for the dropdown.
1579
- */
1580
- renderDropdown(h, editorContext, dropdownProps, children) {
1581
- return h('vega-dropdown', Object.assign({ trigger: 'click', searchable: false, maxWidth: '200', itemDisplayRule: 'ellipsis',
1582
- // eslint-disable-next-line jsdoc/require-jsdoc
1583
- ref: (el) => {
1584
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, (input) => this.handleDropdownClick(input.detail, editorContext));
1585
- } }, dropdownProps), children);
1586
- }
1587
- /**
1588
- * Renders the dropdown list template.
1589
- *
1590
- * @param {VegaRTECreateElementFunction} h - Create element function.
1591
- * @param {(RTEDropdownListItem | RTEDropdownListGroup)[]} itemList - The list of dropdown items.
1592
- * @returns {VegaRTERenderResult} - The render result for the dropdown list.
1593
- */
1594
- renderDropdownListTemplate(h, itemList) {
1595
- return h('div', {
1596
- slot: 'items',
1597
- onMouseDown: this.preventDefault,
1598
- }, itemList.map((item) => {
1599
- return 'children' in item
1600
- ? this.renderDropdownGroup(h, item)
1601
- : this.renderDropdownItem(h, item);
1602
- }));
1603
- }
1604
- /**
1605
- * Renders a dropdown item for the toolbar button.
1606
- *
1607
- * @param {VegaRTECreateElementFunction} h - Create element function.
1608
- * @param {RTEDropdownListItem} item - The dropdown item.
1609
- * @returns {VegaRTERenderResult} - The render result for the dropdown item.
1610
- */
1611
- renderDropdownItem(h, item) {
1612
- return h('vega-dropdown-item', {
1613
- key: item.key,
1614
- itemKey: item.key,
1615
- label: item.label,
1616
- prefixIcon: item.icon,
1617
- });
1618
- }
1619
- /**
1620
- * Renders a dropdown item for the toolbar button.
1621
- *
1622
- * @param {VegaRTECreateElementFunction} h - Create element function.
1623
- * @param {RTEDropdownListGroup} item - The dropdown group.
1624
- * @returns {VegaRTERenderResult} - The render result for the dropdown item.
1625
- */
1626
- renderDropdownGroup(h, item) {
1627
- return h('vega-dropdown-group', {
1628
- key: item.key,
1629
- label: item.label,
1630
- divide: false,
1631
- }, item.children.map((child) => {
1632
- return 'children' in child
1633
- ? this.renderDropdownGroup(h, child)
1634
- : this.renderDropdownItem(h, child);
1635
- }));
1636
- }
1637
- /**
1638
- * Renders a common toolbar button with optional icon, label, and arrow icon.
1639
- *
1640
- * @param {VegaRTECreateElementFunction} h - Create element function.
1641
- * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1642
- * @param {RTEToolbarButtonProps} buttonProps - The properties for the button.
1643
- * @returns {VegaRTERenderResult} - The render result for the button.
1644
- */
1645
- renderButton(h, editorContext, buttonProps) {
1646
- const { icon, label, showArrowIcon } = buttonProps;
1647
- const isDisabled = this.isDisabled(editorContext);
1648
- return h('vega-rich-text-editor-toolbar-button', {
1649
- disabled: isDisabled,
1650
- icon: icon,
1651
- hidden: this.isHidden(editorContext),
1652
- selected: this.isSelected(editorContext),
1653
- // eslint-disable-next-line jsdoc/require-jsdoc
1654
- ref: (el) => {
1655
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaClick, () => this.handleButtonClick(editorContext));
1656
- },
1657
- onMouseDown: this.preventDefault,
1658
- }, [
1659
- this.renderButtonLabel(h, editorContext, label),
1660
- showArrowIcon
1661
- ? h('vega-icon', {
1662
- size: 'size-8',
1663
- color: isDisabled ? 'text-disabled' : 'text-secondary',
1664
- style: { marginLeft: '8px' },
1665
- icon: VegaInternalIconManager.getIconKey('chevron-down'),
1666
- })
1667
- : null,
1668
- ].filter(isNonNullable));
1669
- }
1670
- /**
1671
- * Renders the button label.
1672
- *
1673
- * @param {VegaRTECreateElementFunction} h - Create element function.
1674
- * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1675
- * @param {Nullable<string>} label - The button label if exist.
1676
- * @returns {Nullable<VegaRTERenderResult>} - The render result for the button.
1677
- */
1678
- renderButtonLabel(h, editorContext, label) {
1679
- if (label) {
1680
- const isDisabled = this.isDisabled(editorContext);
1681
- return h('vega-font', {
1682
- variant: 'font-field-label-sm',
1683
- color: isDisabled ? 'text-disabled' : 'text-primary',
1684
- }, label);
1685
- }
1686
- return null;
1687
- }
1688
- /**
1689
- * Determines if the button should be disabled based on the editor context.
1690
- *
1691
- * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1692
- * @returns {boolean} - True if the button should be disabled, false otherwise.
1693
- */
1694
- isDisabled(editorContext) {
1695
- return editorContext.host.disabled;
1696
- }
1697
- /**
1698
- * Checks if the button should be selected.
1699
- *
1700
- * @param {VegaRTEToolbarRenderContext} _editorContext The render context for the editor.
1701
- * @returns {boolean} True if the button is selected, false otherwise.
1702
- */
1703
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1704
- isSelected(_editorContext) {
1705
- return false;
1706
- }
1707
- /**
1708
- * Prevents the default action of the click event. This is to avoid losing focus from the editor when the button is clicked.
1709
- *
1710
- * @param {MouseEvent} e The mouse event to prevent default action for.
1711
- */
1712
- preventDefault(e) {
1713
- e.preventDefault();
1714
- }
1715
- /**
1716
- * Recursively searches for a dropdown list item by its key.
1717
- *
1718
- * @param {(RTEDropdownListItem | RTEDropdownListGroup)[]} itemList The list of dropdown items or groups to search through.
1719
- * @param {string} key The key of the item to find.
1720
- * @returns {Nullable<RTEDropdownListItem>} The dropdown list item if found, otherwise null.
1721
- */
1722
- getListItemByKey(itemList, key) {
1723
- for (const item of itemList) {
1724
- if ('children' in item) {
1725
- const foundItem = this.getListItemByKey(item.children, key);
1726
- if (foundItem) {
1727
- return foundItem;
1728
- }
1729
- }
1730
- else if (item.key === key) {
1731
- return item;
1732
- }
1733
- }
1734
- return null;
1735
- }
1736
- }
1737
-
1738
- /**
1739
- * Action to insert a token node at a specified range in the Rich Text Editor.
1740
- *
1741
- * @example block.apply(new InsertTokenNodeAction(rteRange, tokenNode));
1742
- */
1743
- class InsertTokenNodeAction extends ModifyContentAction {
1744
- constructor(rteRange, token) {
1745
- super();
1746
- this.type = 'INSERT_TOKEN_NODE';
1747
- this.rteRange = null;
1748
- this.actionHandleResult = false;
1749
- this.rteRange = rteRange;
1750
- this.token = token;
1751
- }
1752
- }
1753
-
1754
- /**
1755
- * Renderer for the token toolbar button in the Vega Rich Text Editor.
1756
- */
1757
- class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
1758
- constructor(tokenList) {
1759
- super();
1760
- this.tokenList = [];
1761
- this.extensionContext = null;
1762
- this.tokenList = tokenList;
1763
- }
1764
- /**
1765
- * Sets the RTE extension context.
1766
- *
1767
- * @param {RTEExtensionContext} context - The context of the RTE extension.
1768
- */
1769
- injectExtensionContext(context) {
1770
- this.extensionContext = context;
1771
- }
1772
- /**
1773
- * Renders the token toolbar button.
1774
- *
1775
- * @param {VegaRTECreateElementFunction} createElement Function to create elements in the rich text editor.
1776
- * @param {VegaRTEToolbarRenderContext} editorContext The render context for the editor.
1777
- * @returns {VegaRTERenderResult} Token toolbar button.
1778
- */
1779
- render(createElement, editorContext) {
1780
- return this.renderDropdown(createElement, editorContext, {}, [
1781
- this.renderButton(createElement, editorContext, { label: 'Tokens', showArrowIcon: true }),
1782
- this.renderDropdownListTemplate(createElement, this.tokenList),
1783
- ]);
1784
- }
1785
- /**
1786
- * Checks if the token toolbar button is disabled.
1787
- *
1788
- * @returns {boolean} True if the button is disabled, false otherwise.
1789
- */
1790
- isDisabled() {
1791
- if (this.extensionContext) {
1792
- const { host, getSelectedNodes } = this.extensionContext;
1793
- const [startNode] = getSelectedNodes();
1794
- return startNode
1795
- ? host.disabled ||
1796
- !ActionHandleStrategyRegistry.canHandle('INSERT_TOKEN_NODE', startNode.parent)
1797
- : host.disabled;
1798
- }
1799
- return false;
1800
- }
1801
- /* istanbul ignore next */
1802
- /**
1803
- * Handles the button click event. No need this method for token button.
1804
- *
1805
- * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1806
- */
1807
- handleButtonClick(editorContext) {
1808
- }
1809
- /**
1810
- * Handles the token item click event from the dropdown.
1811
- *
1812
- * @param {string} itemKey - The key of the clicked token item.
1813
- * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
1814
- */
1815
- handleDropdownClick(itemKey, editorContext) {
1816
- const token = this.getListItemByKey(this.tokenList, itemKey);
1817
- const { rteRange } = editorContext;
1818
- const { startNode } = rteRange;
1819
- if (startNode && startNode.parent) {
1820
- const action = new InsertTokenNodeAction(rteRange, token);
1821
- startNode.parent.apply(action);
1822
- if (action.actionHandleResult) {
1823
- this.flushEditorUI();
1824
- }
1825
- }
1826
- }
1827
- /**
1828
- * Refreshes the editor UI.
1829
- */
1830
- flushEditorUI() {
1831
- if (this.extensionContext) {
1832
- const { host, flushValue } = this.extensionContext;
1833
- flushValue(host.value);
1834
- }
1835
- }
1836
- }
1837
-
1838
- /**
1839
- * Token node for the Vega Rich Text Editor.
1840
- */
1841
- class RTETokenNode extends RTETextNode {
1842
- constructor(id, token, text, parentBlock, annotations) {
1843
- super(id, text, parentBlock, annotations);
1844
- this.type = 'token';
1845
- this.token = token;
1846
- this.text = text;
1847
- }
1848
- /**
1849
- * @inheritDoc
1850
- */
1851
- static from(value, parent) {
1852
- const node = new RTETokenNode(value.id, value.token, value.text, parent);
1853
- if (value.annotations) {
1854
- node.annotationMap = this.generateTextAnnotationMap(value.annotations);
1855
- }
1856
- return node;
1857
- }
1858
- /**
1859
- * Converts the token node to a JSON representation.
1860
- *
1861
- * @returns {VegaRTETokenNode} - The JSON representation of the token node.
1862
- */
1863
- toJSON() {
1864
- const json = super.toJSON();
1865
- return Object.assign({ id: this.id, type: this.type, text: this.text, token: this.token }, (json.annotations ? { annotations: json.annotations } : {}));
1866
- }
1867
- /**
1868
- * Determines if the token node is content editable.
1869
- *
1870
- * @returns {boolean} - Always returns false for token nodes.
1871
- */
1872
- isContentEditable() {
1873
- return false;
1874
- }
1875
- /**
1876
- * Clones the token node.
1877
- *
1878
- * @param {RTETextBlock} parent - The parent block for the cloned node.
1879
- * @returns {RTETokenNode} - The cloned token node.
1880
- */
1881
- clone(parent) {
1882
- return new RTETokenNode(this.id, this.token, this.text, parent, this.annotationMap);
1883
- }
1884
- /**
1885
- * Converts the token node to an HTML representation.
1886
- *
1887
- * @returns {string} - The HTML representation of the token node.
1888
- */
1889
- toHtml() {
1890
- return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}" ${super.generateAttributeString()}>${this.text}</span>`;
1891
- }
1892
- }
1893
-
1894
- /**
1895
- * Token node renderer for the rich text editor.
1896
- */
1897
- class RTETokenNodeRenderer extends VegaRTEExtensionRenderer {
1898
- constructor() {
1899
- super(...arguments);
1900
- this.extensionContext = null;
1901
- }
1902
- /**
1903
- * Renders the token node as a DOM element.
1904
- *
1905
- * @param {VegaRTECreateElementFunction} createElement - The function to create a DOM element.
1906
- * @param {RTETokenNode} node - The token node to render.
1907
- * @param {RTERenderContext} editorContent - The editor content context.
1908
- * @returns {VegaRTERenderResult} - The rendered DOM element.
1909
- */
1910
- doRender(createElement, node, editorContent) {
1911
- const { id, token } = node;
1912
- return createElement('span', {
1913
- 'key': id,
1914
- 'template-token-key': token,
1915
- 'token-key': token,
1916
- 'contenteditable': 'false',
1917
- 'style': node.getStyles(),
1918
- 'class': `token ${node.getClasses()}`,
1919
- 'ref': this.useRef(node),
1920
- // eslint-disable-next-line jsdoc/require-jsdoc
1921
- 'onClick': (event) => {
1922
- event.preventDefault();
1923
- if (editorContent && editorContent.editable !== false) {
1924
- this.handleTokenElementClick(event, node);
1925
- }
1926
- },
1927
- }, node.text);
1928
- }
1929
- /**
1930
- * Sets the RTE extension context.
1931
- *
1932
- * @param {RTEExtensionContext} context - The context of the RTE extension.
1933
- */
1934
- injectExtensionContext(context) {
1935
- this.extensionContext = context;
1936
- }
1937
- /**
1938
- * Override to inject RTE scope styles for the token node.
1939
- *
1940
- * @returns {string} The CSS styles for the token node.
1941
- */
1942
- injectRTEScopeStyles() {
1943
- return `span[token-key]{padding: 0 2px; margin: 0 1px; background-color: rgba(var(--v-bg-status-info, 205,209,211))}`;
1944
- }
1945
- /**
1946
- * Handle the click event on the token element.
1947
- *
1948
- * @param {MouseEvent} event - The click event.
1949
- * @param {RTETokenNode} node - The token node that was clicked.
1950
- */
1951
- handleTokenElementClick(event, node) {
1952
- event.preventDefault();
1953
- if (this.extensionContext) {
1954
- this.extensionContext.host.value.apply(new UpdateCursorPositionAction(node, undefined, true));
1955
- }
1956
- }
1957
- }
1958
-
1959
- /**
1960
- * Insert a new children to the nearest position of the parent container
1961
- *
1962
- * @example parent.apply(new InsertNodeToNearestRoot(rteRange, nodeToBeInserted))
1963
- */
1964
- class InsertNodeToNearestRootAction extends ModifyContentAction {
1965
- constructor(rteRange, nodeToBeInserted) {
1966
- super();
1967
- this.type = ModifyContentActionType.INSERT_NODE_TO_NEAREST_ROOT;
1968
- this.rteRange = rteRange;
1969
- this.nodeToBeInserted = nodeToBeInserted;
1970
- }
1971
- }
1972
-
1973
- /**
1974
- * Strategy to handle the insertion of a token node into the nearest root block.
1975
- */
1976
- class InsertTokenNodeStrategy extends ActionHandleStrategy {
1977
- /**
1978
- * @inheritDoc
1979
- */
1980
- handleAction(action, block) {
1981
- const { rteRange, token } = action;
1982
- if (rteRange && rteRange.startNode) {
1983
- const tokenNode = new RTETokenNode(generateUUID(), token.key, token.label, block);
1984
- block.apply(new InsertNodeToNearestRootAction(rteRange, tokenNode));
1985
- action.actionHandleResult = true;
1986
- }
1987
- }
1988
- }
1989
-
1990
- var __rest = (undefined && undefined.__rest) || function (s, e) {
1991
- var t = {};
1992
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1993
- t[p] = s[p];
1994
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
1995
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1996
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1997
- t[p[i]] = s[p[i]];
1998
- }
1999
- return t;
2000
- };
2001
- /**
2002
- * Strategy to convert <span class="token" token-key="...">...</span> to a token node
2003
- */
2004
- class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
2005
- /**
2006
- * @inheritDoc
2007
- */
2008
- canHandle(elementsArray, currentIndex) {
2009
- const element = elementsArray[currentIndex];
2010
- if (element.nodeName === 'SPAN' &&
2011
- element.classList.contains('token') &&
2012
- element.hasAttribute('token-key')) {
2013
- return 1;
2014
- }
2015
- return 0;
2016
- }
2017
- /**
2018
- * @inheritDoc
2019
- */
2020
- handle(elementsArray) {
2021
- const element = elementsArray[0];
2022
- const tokenKey = element.getAttribute('token-key');
2023
- const text = element.textContent;
2024
- const annotations = htmlElementToAnnotationGenerator.generate(RTETextNode, element);
2025
- // Exclude customAttribute and customClass from annotations
2026
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2027
- const restAnnotations = __rest(annotations, ["customAttribute", "customClass"]);
2028
- return {
2029
- id: generateUUID(),
2030
- type: 'token',
2031
- token: tokenKey,
2032
- text,
2033
- annotations: Object.assign({}, restAnnotations),
2034
- };
2035
- }
2036
- /**
2037
- * @inheritDoc
2038
- */
2039
- // eslint-disable-next-line @typescript-eslint/no-empty-function
2040
- appendChildBlocks() { }
2041
- /**
2042
- * @inheritDoc
2043
- */
2044
- shouldProceedToElementChildren() {
2045
- return false;
2046
- }
2047
- }
2048
-
2049
- const spanToTokenNodeStrategy = new SpanToTokenNodeStrategy();
2050
- /**
2051
- * Vega Rich Text Editor Token Extension
2052
- */
2053
- class VegaRTETokenExtension extends VegaRTEExtension {
2054
- constructor(tokenList = []) {
2055
- super();
2056
- this.tokenRenderer = new RTETokenNodeRenderer();
2057
- this.registerNode('token', RTETokenNode);
2058
- this.registerRenderer('token', this.tokenRenderer);
2059
- this.tokenToolbarButtonRenderer = new RTETokenToolbarButtonRenderer(tokenList);
2060
- this.registerToolbarButtonRenderer('token', this.tokenToolbarButtonRenderer);
2061
- this.registerElementToNodeDTOClassStrategy(spanToTokenNodeStrategy);
2062
- }
2063
- /**
2064
- * @inheritDoc
2065
- */
2066
- initialExtension(context) {
2067
- super.initialExtension(context);
2068
- this.tokenRenderer.injectExtensionContext(context);
2069
- if (this.tokenToolbarButtonRenderer) {
2070
- this.tokenToolbarButtonRenderer.injectExtensionContext(context);
2071
- }
2072
- }
2073
- }
2074
- (() => {
2075
- const insertTokenNodeStrategy = new InsertTokenNodeStrategy();
2076
- VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, 'INSERT_TOKEN_NODE', insertTokenNodeStrategy);
2077
- VegaRTEExtension.registerActionHandleStrategy(RTEListItemBlock.name, 'INSERT_TOKEN_NODE', insertTokenNodeStrategy);
2078
- })();
2079
-
2080
- const INSERT_FUNCTION_BLOCK = 'INSERT_FUNCTION_BLOCK';
2081
- /**
2082
- * Action to insert a function block into the rich text editor.
2083
- *
2084
- * @example focusedBlock.apply(new InsertFunctionBlockAction('IF'))
2085
- * @example host.value.apply(new InsertFunctionBlockAction('IF'))
2086
- */
2087
- class InsertFunctionBlockAction extends ModifyContentAction {
2088
- constructor(functionType) {
2089
- super();
2090
- this.type = INSERT_FUNCTION_BLOCK;
2091
- this.functionType = functionType;
2092
- }
2093
- }
2094
-
2095
- /**
2096
- * RTE Function Block
2097
- */
2098
- class RTEFunctionBlock extends RTEBlock {
2099
- constructor(id) {
2100
- super(id);
2101
- this.type = 'function-block';
2102
- this.children = [];
2103
- }
2104
- /**
2105
- * Creates an RTEFunctionBlock from a VegaFunctionBlock.
2106
- *
2107
- * @param {VegaFunctionBlock} block - The custom block to convert.
2108
- * @param {VegaRTETransformOptions} [options] - Optional transformation options.
2109
- * @returns {RTEFunctionBlock} The resulting RTEFunctionBlock.
2110
- */
2111
- static from(block, options) {
2112
- const functionBlock = new RTEFunctionBlock(block.id);
2113
- const defaultAnnotation = { customClass: ['statement'] };
2114
- let { annotations } = block;
2115
- annotations = annotations
2116
- ? Object.assign(Object.assign({}, annotations), defaultAnnotation) : defaultAnnotation;
2117
- super.convertAnnotationsToMap(functionBlock.annotationMap, annotations);
2118
- functionBlock.children = this.generateBlockChildren(block.children, options, functionBlock);
2119
- return functionBlock;
2120
- }
2121
- /**
2122
- * Converts the RTEFunctionBlock and its children to an HTML string.
2123
- *
2124
- * @returns {string} The HTML string representation of the function block.
2125
- */
2126
- toHtml() {
2127
- const childrenHtml = this.children
2128
- .map((child) => {
2129
- if (child instanceof RTETextBlock) {
2130
- const attrStr = this.getFunctionContentStyle(child);
2131
- return `<div class="statementelement"${attrStr}>${child.getChildrenHtml()}</div>`;
2132
- }
2133
- else {
2134
- return child.toHtml();
2135
- }
2136
- })
2137
- .join('');
2138
- return `<div class="statement">${childrenHtml}</div>`;
2139
- }
2140
- /**
2141
- * @inheritDoc
2142
- */
2143
- clone(parent) {
2144
- const clonedBlock = new RTEFunctionBlock(generateUUID());
2145
- clonedBlock.parent = parent;
2146
- clonedBlock.children = this.children.map((child) => {
2147
- const clonedChild = child.clone(clonedBlock);
2148
- return clonedChild;
2149
- });
2150
- clonedBlock.annotationMap = super.cloneAnnotations();
2151
- return clonedBlock;
2152
- }
2153
- /**
2154
- * @inheritDoc
2155
- */
2156
- getLastNode() {
2157
- return this.children[this.children.length - 1].getLastNode();
2158
- }
2159
- /**
2160
- * @inheritDoc
2161
- */
2162
- isNotEmpty() {
2163
- return this.children.length > 0;
2164
- }
2165
- /**
2166
- * @inheritDoc
2167
- */
2168
- toJSON() {
2169
- return Object.assign(Object.assign({}, super.toJSON()), { id: this.id, type: this.type, children: this.children.map((child) => child.toJSON()) });
2170
- }
2171
- /**
2172
- * Get the style string for function content block, excluding default paragraph styles.
2173
- *
2174
- * @param {RTETextBlock} block - The text block to extract styles from
2175
- * @returns {string} - The style attribute string
2176
- */
2177
- getFunctionContentStyle(block) {
2178
- const blockAnnotationStyle = new RTEAnnotationStyle(block);
2179
- let styles = blockAnnotationStyle.toCssText({ standalone: true });
2180
- const textStyleAnnotation = block.getAnnotationByType('TEXT_STYLE');
2181
- if (textStyleAnnotation && textStyleAnnotation.textStyle === 'paragraph') {
2182
- const defaultParagraphStyles = blockAnnotationStyle.toCssText(undefined, undefined, textStyleAnnotation.renderStyle({ standalone: true }));
2183
- styles = styles.replace(defaultParagraphStyles, '').trim();
2184
- }
2185
- return styles ? ` style="${styles}"` : '';
2186
- }
2187
- }
2188
-
2189
- /**
2190
- * Strategy to handle the insertion of a function block into the rich text editor.
2191
- */
2192
- class InsertFunctionBlockStrategy extends ActionHandleStrategy {
2193
- /**
2194
- * @inheritDoc
2195
- */
2196
- handleAction(action, target) {
2197
- const { functionType } = action;
2198
- const functionBlock = this.getFunctionBlock(functionType);
2199
- const emptyParagraph = this.createNewParagraph('');
2200
- const referenceBlock = this.getReferenceBlock(target);
2201
- if (referenceBlock) {
2202
- referenceBlock.parent.apply(new InsertChildrenAfterAction(referenceBlock, functionBlock, emptyParagraph));
2203
- }
2204
- else {
2205
- target.apply(new AppendChildrenAction([functionBlock, emptyParagraph]));
2206
- }
2207
- if (emptyParagraph) {
2208
- action.nextFocusNode = emptyParagraph.children[0];
2209
- }
2210
- }
2211
- /**
2212
- * Get a function block based on the specified type.
2213
- *
2214
- * @param {string} type - The type of function block to create.
2215
- * @returns {RTEFunctionBlock} The function block instance.
2216
- */
2217
- getFunctionBlock(type) {
2218
- const id = generateUUID();
2219
- return RTEFunctionBlock.from({
2220
- id: id,
2221
- type: 'function-block',
2222
- children: [
2223
- {
2224
- id: `${id}-1`,
2225
- type: 'logic-control-block',
2226
- statementText: type.toUpperCase(),
2227
- },
2228
- {
2229
- id: `${id}-2`,
2230
- annotations: {
2231
- customClass: ['statementelement'],
2232
- },
2233
- type: 'paragraph',
2234
- nodes: [
2235
- {
2236
- id: `${id}-2-1`,
2237
- type: 'text',
2238
- text: ' ',
2239
- },
2240
- ],
2241
- },
2242
- {
2243
- id: `${id}-3`,
2244
- type: 'logic-control-block',
2245
- statementText: 'SHOW',
2246
- },
2247
- {
2248
- id: `${id}-4`,
2249
- annotations: {
2250
- customClass: ['statementelement'],
2251
- },
2252
- type: 'paragraph',
2253
- nodes: [
2254
- {
2255
- id: `${id}-4-1`,
2256
- type: 'text',
2257
- text: ' ',
2258
- },
2259
- ],
2260
- },
2261
- ],
2262
- });
2263
- }
2264
- /**
2265
- * We need to get the correct block if the current target is a function block element to avoid nesting function blocks.
2266
- *
2267
- * @param {RTEBlock | VegaRTEContent} currentTarget - The current target block or content.
2268
- * @returns {Nullable<RTEBlock>} The reference block.
2269
- */
2270
- getReferenceBlock(currentTarget) {
2271
- if (!(currentTarget instanceof VegaRTEContent)) {
2272
- const parentBlock = currentTarget.parent;
2273
- if (parentBlock instanceof RTEFunctionBlock) {
2274
- return parentBlock;
2275
- }
2276
- else {
2277
- return currentTarget;
2278
- }
2279
- }
2280
- }
2281
- }
2282
-
2283
- /**
2284
- * Class representing a logic control node in the rich text editor.
2285
- */
2286
- class RTELogicControlNode extends RTENode {
2287
- constructor(id, text, parent) {
2288
- super(id);
2289
- this.type = 'logic-control-node';
2290
- this.text = '';
2291
- this.text = text;
2292
- this.parent = parent;
2293
- }
2294
- /**
2295
- * Clone the current node instance.
2296
- *
2297
- * @returns {RTELogicControlNode} - A new instance of RTELogicControlNode.
2298
- */
2299
- clone() {
2300
- return new RTELogicControlNode(this.id, this.text, this.parent);
2301
- }
2302
- /**
2303
- * Convert the node to its HTML representation.
2304
- *
2305
- * @returns {string} - The HTML string of the logic control node.
2306
- */
2307
- toHtml() {
2308
- return this.text;
2309
- }
2310
- /**
2311
- * Convert the node to a JSON representation.
2312
- *
2313
- * @returns {unknown} - The JSON object of the statement syntax node.
2314
- */
2315
- toJSON() {
2316
- return {
2317
- id: this.id,
2318
- type: this.type,
2319
- text: this.text,
2320
- };
2321
- }
2322
- /**
2323
- * Get the end offset of the node's range.
2324
- *
2325
- * @returns {number} - The end offset of the node's range.
2326
- */
2327
- getRangeEndOffset() {
2328
- return 1;
2329
- }
2330
- /**
2331
- * Get the container element for the node's range.
2332
- *
2333
- * @returns {Nullable<Node>} - The container node for the range.
2334
- */
2335
- getRangeContainer() {
2336
- const element = stateEntityRenderingRegistry.getDOMByEntity(this);
2337
- if (element) {
2338
- return element.parentElement;
2339
- }
2340
- }
2341
- /**
2342
- * Get the content editable state of the node.
2343
- *
2344
- * @returns {boolean} - The content editable state of the node.
2345
- */
2346
- isContentEditable() {
2347
- return false;
2348
- }
2349
- }
2350
-
2351
- /**
2352
- * Class representing a logic control block in the rich text editor.
2353
- */
2354
- class RTELogicControlBlock extends RTEBlock {
2355
- constructor(id, statementText, parent) {
2356
- super(id);
2357
- this.type = 'logic-control-block';
2358
- this.children = [];
2359
- this.statementText = '';
2360
- this.statementText = statementText;
2361
- this.children = [new RTELogicControlNode(`${id}-node-1`, statementText, this)];
2362
- if (parent) {
2363
- this.parent = parent;
2364
- }
2365
- }
2366
- /**
2367
- * Create a logic control block from a JSON representation.
2368
- *
2369
- * @param {VegaRTELogicControlBlock} json - The JSON object representing the logic control block.
2370
- * @returns {RTELogicControlBlock} - The created logic control block.
2371
- */
2372
- static from(json) {
2373
- const block = new RTELogicControlBlock(json.id, json.statementText);
2374
- return block;
2375
- }
2376
- /**
2377
- * Check the block is not empty.
2378
- *
2379
- * @returns {boolean} - Always true for logic control block.
2380
- */
2381
- isNotEmpty() {
2382
- return true;
2383
- }
2384
- /**
2385
- * Get the last node of the block.
2386
- *
2387
- * @returns {RTELogicControlNode} - The last node in the block.
2388
- */
2389
- getLastNode() {
2390
- return this.children[this.children.length - 1];
2391
- }
2392
- /**
2393
- * Convert the block to its HTML representation.
2394
- *
2395
- * @returns {string} - The HTML string of the logic control block.
2396
- */
2397
- toHtml() {
2398
- return `<div class='statementsyntax' contenteditable='false'>${this.statementText}</div>`;
2399
- }
2400
- /**
2401
- * Clone the current block instance.
2402
- *
2403
- * @param { RTEFunctionBlock } parent - The parent function block for the cloned instance.
2404
- * @returns {RTELogicControlBlock} - A new instance of RTEStatementSyntaxBlock.
2405
- */
2406
- clone(parent) {
2407
- return new RTELogicControlBlock(this.id, this.statementText, parent);
2408
- }
2409
- /**
2410
- * Get the JSON representation of the block.
2411
- *
2412
- * @returns {VegaRTELogicControlBlock} - The JSON object of the logic control block.
2413
- */
2414
- toJSON() {
2415
- return {
2416
- id: this.id,
2417
- type: this.type,
2418
- statementText: this.statementText,
2419
- };
2420
- }
2421
- }
2422
-
2423
- /**
2424
- * Function toolbar button renderer class.
2425
- */
2426
- class FunctionToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
2427
- /**
2428
- * Injects the extension context
2429
- *
2430
- * @param {RTEExtensionContext} context - extension context
2431
- */
2432
- injectExtensionContext(context) {
2433
- this.extensionContext = context;
2434
- }
2435
- /**
2436
- * @inheritDoc
2437
- */
2438
- render(h, editorContext) {
2439
- return this.renderDropdown(h, editorContext, {}, [
2440
- this.renderButton(h, editorContext, {
2441
- label: 'Functions',
2442
- showArrowIcon: true,
2443
- }),
2444
- this.renderDropdownListTemplate(h, FunctionToolbarButtonRenderer.FUNCTION_LIST),
2445
- ]);
2446
- }
2447
- /**
2448
- * Overrides the isDisabled method to determine if the button should be disabled.
2449
- *
2450
- * @returns {boolean} - true if the button should be disabled, false otherwise.
2451
- */
2452
- isDisabled() {
2453
- if (this.extensionContext) {
2454
- const { host, getSelectedNodes } = this.extensionContext;
2455
- const focusNode = getSelectedNodes()[0];
2456
- let enableInsert = true;
2457
- if (focusNode) {
2458
- enableInsert = ActionHandleStrategyRegistry.canHandle(INSERT_FUNCTION_BLOCK, focusNode.parent);
2459
- }
2460
- return host.disabled || !enableInsert;
2461
- }
2462
- return false;
2463
- }
2464
- /* istanbul ignore next */
2465
- // eslint-disable-next-line jsdoc/require-jsdoc
2466
- handleButtonClick() {
2467
- throw new Error('Method not implemented.');
2468
- }
2469
- /**
2470
- * Handles dropdown click event
2471
- *
2472
- * @param {RTEExtensionFunctionType} itemKey - key of the clicked item
2473
- */
2474
- handleDropdownClick(itemKey) {
2475
- const { host, getSelectedNodes } = this.extensionContext;
2476
- const focusNode = getSelectedNodes()[0];
2477
- const action = new InsertFunctionBlockAction(itemKey);
2478
- if (!focusNode) {
2479
- host.value.apply(action);
2480
- }
2481
- else if (focusNode.parent) {
2482
- focusNode.parent.apply(action);
2483
- }
2484
- if (action.nextFocusNode) {
2485
- host.value.apply(new UpdateCursorPositionAction(action.nextFocusNode, 1));
2486
- }
2487
- }
2488
- }
2489
- FunctionToolbarButtonRenderer.FUNCTION_LIST = [
2490
- { key: 'IF', label: 'Conditional' },
2491
- { key: 'FOREACH', label: 'Foreach' },
2492
- ];
2493
-
2494
- /**
2495
- * Renders a logic control block in the rich text editor.
2496
- */
2497
- class RTELogicControlBlockRenderer extends VegaRTEExtensionRenderer {
2498
- /**
2499
- * @inheritDoc
2500
- */
2501
- doRender(h, renderData) {
2502
- return h('div', {
2503
- key: renderData.id,
2504
- class: 'statementsyntax',
2505
- ref: this.useRef(renderData),
2506
- }, h('span', {
2507
- key: `${renderData.id}-1`,
2508
- contenteditable: 'false',
2509
- ref: this.useRef(renderData.children[0]),
2510
- }, renderData.statementText));
2511
- }
2512
- }
2513
-
2514
- /**
2515
- * Strategy to convert a div with class 'statementsyntax' into an RTELogicControlBlock DTO.
2516
- */
2517
- class DivToLogicControlBlockStrategy extends BlockToRTEBlockStrategyAbstract {
2518
- constructor() {
2519
- super(...arguments);
2520
- this.blockClassName = 'statementsyntax';
2521
- }
2522
- /**
2523
- * @inheritDoc
2524
- */
2525
- canHandle(elementsArray, currentIndex) {
2526
- const element = elementsArray[currentIndex];
2527
- return element &&
2528
- element.nodeType === Node.ELEMENT_NODE &&
2529
- element.classList.contains(this.blockClassName) &&
2530
- this.isFunctionBlockChild(element)
2531
- ? 1
2532
- : 0;
2533
- }
2534
- /**
2535
- * @inheritDoc
2536
- */
2537
- handle(elementsArray) {
2538
- const element = elementsArray[0];
2539
- return RTELogicControlBlock.from({
2540
- id: generateUUID(),
2541
- type: 'logic-control-block',
2542
- statementText: element.innerText,
2543
- });
2544
- }
2545
- /**
2546
- * The logic control block does not have child blocks to append. so this method is intentionally left empty.
2547
- */
2548
- // eslint-disable-next-line @typescript-eslint/no-empty-function
2549
- appendChildBlocks() { }
2550
- /**
2551
- * @inheritDoc
2552
- */
2553
- shouldProceedToElementChildren() {
2554
- return false;
2555
- }
2556
- /**
2557
- * Checks if the given element is a child of a function block
2558
- *
2559
- * @param {HTMLElement} element - The HTML element to check
2560
- * @returns {boolean} True if the element is a child of a function block, false otherwise
2561
- */
2562
- isFunctionBlockChild(element) {
2563
- return !!(element.parentElement && element.parentElement.classList.contains('statement'));
2564
- }
2565
- }
2566
-
2567
- /**
2568
- * Strategy to convert a div with class 'statement' into an function block.
2569
- */
2570
- class DivToFunctionBlockStrategy extends ElementToDTOStrategy {
2571
- /**
2572
- * @inheritDoc
2573
- */
2574
- canHandle(elementsArray, currentIndex) {
2575
- const element = elementsArray[currentIndex];
2576
- return element &&
2577
- element.tagName === 'DIV' &&
2578
- element.classList.contains('statement') &&
2579
- element.childNodes.length &&
2580
- element.querySelector('.statementsyntax')
2581
- ? 1
2582
- : 0;
2583
- }
2584
- /**
2585
- * @inheritDoc
2586
- */
2587
- handle() {
2588
- return RTEFunctionBlock.from({
2589
- id: generateUUID(),
2590
- type: 'function-block',
2591
- annotations: {
2592
- customClass: ['statement'],
2593
- },
2594
- children: [],
2595
- });
2596
- }
2597
- /**
2598
- * @inheritDoc
2599
- */
2600
- appendChildBlocks(currentBlock, childBlocks) {
2601
- currentBlock.children = childBlocks.map((block) => {
2602
- block.parent = currentBlock;
2603
- return block;
2604
- });
2605
- }
2606
- /**
2607
- * @inheritDoc
2608
- */
2609
- shouldProceedToElementChildren() {
2610
- return true;
2611
- }
2612
- }
2613
-
2614
- /**
2615
- * Strategy to convert a div with class 'statementelement' into an function block.
2616
- */
2617
- class DivToFunctionContentStrategy extends DivToLogicControlBlockStrategy {
2618
- constructor() {
2619
- super(...arguments);
2620
- this.blockClassName = 'statementelement';
2621
- }
2622
- /**
2623
- * @inheritDoc
2624
- */
2625
- handle(elementsArray, options) {
2626
- const element = elementsArray[0];
2627
- const annotations = htmlElementToAnnotationGenerator.generate(RTETextBlock, element);
2628
- const nodes = Array.from(elementsArray[0].childNodes);
2629
- return RTETextBlock.from({
2630
- id: generateUUID(),
2631
- type: 'paragraph',
2632
- annotations: Object.assign({ customClass: [this.blockClassName] }, annotations),
2633
- nodes: this.generateChildNodes(nodes, undefined, options),
2634
- });
2635
- }
2636
- }
2637
-
2638
- const functionBlockStylesCss = "div.statement{padding:2px 4px;background:rgba(var(--v-bg-accent3-secondary, 255, 239, 200));border:1px solid rgba(var(--v-bg-accent3-primary, 255, 220, 131));border-radius:4px;display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;gap:4px}div.statement .statementsyntax{padding:3px 0;line-height:22px}.rich-text-content div.statement .statementsyntax,.rich-text-content div.statement .statementelement{display:inline-block}div.statement+div.statement{margin-top:2px}div.statement .statementsyntax span{color:rgb(38, 42, 255);font-weight:bold}div.statement .statementelement{padding:2px 4px;background:rgba(var(--v-bg-secondary, 245, 247, 247));border:1px solid rgba(var(--v-border-color-input-field, 171, 198, 216));border-radius:4px;margin:0;min-width:8px}";
2639
-
2640
- /**
2641
- * Renderer for Function Block
2642
- */
2643
- class RTEFunctionBlockRenderer extends VegaRTEExtensionRenderer {
2644
- /**
2645
- * @inheritDoc
2646
- */
2647
- doRender(createElement, renderData) {
2648
- return createElement('div', {
2649
- key: renderData.id,
2650
- class: this.getElementClassName(renderData),
2651
- ref: this.useRef(renderData),
2652
- });
2653
- }
2654
- /**
2655
- * Defines the function block styles to be injected into the RTE scope.
2656
- *
2657
- * @returns {string} - The styles as a string.
2658
- */
2659
- injectRTEScopeStyles() {
2660
- return functionBlockStylesCss;
2661
- }
2662
- /**
2663
- * Gets the class name for the function block element.
2664
- *
2665
- * @param {RTEFunctionBlock} block - The function block.
2666
- * @returns {string} The class name for the function block element.
2667
- */
2668
- getElementClassName(block) {
2669
- let classes = block.getClasses();
2670
- if (classes.indexOf('statement') < 0) {
2671
- classes = 'statement ' + classes;
2672
- }
2673
- return classes.trim();
2674
- }
2675
- }
2676
-
2677
- /**
2678
- * Abstract class for action handler interceptors, which can intercept actions before they are handled.
2679
- */
2680
- class ActionHandlerInterceptor {
2681
- }
2682
-
2683
- /**
2684
- * Prevent special type input in function block.
2685
- */
2686
- class PreventNewParagraphInterceptor extends ActionHandlerInterceptor {
2687
- /**
2688
- * Checks the target block parent whether is function block.
2689
- *
2690
- * @param {InsertNewParagraphAction} _action - the action to be intercepted
2691
- * @param {RTETextBlock} target - the target block
2692
- * @returns {boolean} - true if the target block parent is function block, false otherwise
2693
- */
2694
- canIntercept(_action, target) {
2695
- return target.parent && target.parent instanceof RTEFunctionBlock;
2696
- }
2697
- /**
2698
- * Insert a new paragraph behind of the function block instead of the target block.
2699
- *
2700
- * @param {ActionHandlerExecution} _execution - the original execution function
2701
- * @param {ModifyContentAction} _action - the action to be intercepted
2702
- * @param {RTETextBlock} target - the target block
2703
- */
2704
- intercept(_execution, _action, target) {
2705
- const insertParagraphAction = new InsertNewParagraphAction(target.children[0], 0);
2706
- insertParagraphAction.isFlushable = true;
2707
- target.parent.apply(insertParagraphAction);
2708
- }
2709
- }
2710
-
2711
- /**
2712
- * Insert a new paragraph behind of current function block strategy.
2713
- */
2714
- class FunctionBlockInsertParagraphStrategy extends ActionHandleStrategy {
2715
- /**
2716
- * @inheritDoc
2717
- */
2718
- handleAction(action, target) {
2719
- const newParagraph = this.createNewParagraph('');
2720
- if (newParagraph) {
2721
- target.parent.apply(new InsertChildrenAfterAction(target, newParagraph));
2722
- action.newBlock = newParagraph;
2723
- this.focusToNextLine(newParagraph);
2724
- }
2725
- }
2726
- /**
2727
- * Focus to next paragraph.
2728
- *
2729
- * @param {RTETextBlock} block - The paragraph need to focus.
2730
- */
2731
- focusToNextLine(block) {
2732
- const root = this.getRootContent(block);
2733
- if (root) {
2734
- root.apply(new UpdateCursorPositionAction(block.children[0], 1));
2735
- }
2736
- }
2737
- }
2738
-
2739
- const PASTE_PLAIN_TEXT = 'PASTE_PLAIN_TEXT';
2740
- /**
2741
- * Action to paste plain text content into function block.
2742
- *
2743
- * @example functionBlock.apply(new PastePlainTextAction('content', range))
2744
- * @example host.value.apply(new PastePlainTextAction('content', range))
2745
- */
2746
- class PastePlainTextAction extends ModifyContentAction {
2747
- constructor(blocksToBeInserted, startNode, startOffset) {
2748
- super();
2749
- this.type = PASTE_PLAIN_TEXT;
2750
- this.blocksToBeInserted = blocksToBeInserted;
2751
- this.startNode = startNode;
2752
- this.startOffset = startOffset;
2753
- }
2754
- }
2755
-
2756
- /**
2757
- * Prevent special type input in function block.
2758
- */
2759
- class PreventPasteContentInterceptor extends PreventNewParagraphInterceptor {
2760
- /**
2761
- * Paste plain text into text block.
2762
- *
2763
- * @param {ActionHandlerExecution} _execution - the original execution function
2764
- * @param {ModifyContentAction} action - the action to be intercepted
2765
- * @param {RTETextBlock} target - the target block
2766
- */
2767
- intercept(_execution, action, target) {
2768
- const { blocksToBeInserted, rteRange } = action;
2769
- let { startNode, startOffset } = action;
2770
- // Set the start offset from rteRange if available, this is to handle the paste issue https://gethired.atlassian.net/browse/VD-7779
2771
- if (rteRange) {
2772
- startNode = rteRange.startNode;
2773
- startOffset = rteRange.startOffset;
2774
- }
2775
- const pastePlainTextAction = new PastePlainTextAction(blocksToBeInserted, startNode, startOffset);
2776
- target.apply(pastePlainTextAction);
2777
- }
2778
- }
2779
-
2780
- /**
2781
- * Strategy to handle the paste content into function block.
2782
- */
2783
- class PastePlainTextStrategy extends ActionHandleStrategy {
2784
- /**
2785
- * @inheritDoc
2786
- */
2787
- handleAction(action, target) {
2788
- const { blocksToBeInserted, startNode, startOffset } = action;
2789
- if (startNode instanceof RTETextNode) {
2790
- const textNodes = blocksToBeInserted.flatMap((block) => {
2791
- if (block instanceof RTETextBlock) {
2792
- this.copyLinkGroupAnnotations(target.annotationMap, block.annotationMap);
2793
- return block.children;
2794
- }
2795
- return [];
2796
- });
2797
- if (textNodes.length > 0) {
2798
- if (startOffset > 0) {
2799
- target.apply(new InsertChildrenAfterAction(startNode, ...textNodes));
2800
- }
2801
- else {
2802
- target.apply(new InsertChildrenBeforeAction(startNode, ...textNodes));
2803
- }
2804
- this.focusToNextLine(textNodes[textNodes.length - 1], textNodes[textNodes.length - 1].getRangeEndOffset());
2805
- }
2806
- }
2807
- }
2808
- /**
2809
- * Focus to next paragraph.
2810
- *
2811
- * @param {RTETextNode} node - The text node need to focus.
2812
- * @param {number} startOffset - The offset need to focus.
2813
- */
2814
- focusToNextLine(node, startOffset) {
2815
- const root = this.getRootContent(node);
2816
- if (root) {
2817
- root.apply(new UpdateCursorPositionAction(node, startOffset));
2818
- }
2819
- }
2820
- /**
2821
- * Copy link group annotations from copied block to target block.
2822
- *
2823
- * @param {BlockAnnotations} blockAnnotationMap - The target block annotation map.
2824
- * @param {BlockAnnotations} copiedAnnotationMap - The copied block annotation map.
2825
- */
2826
- copyLinkGroupAnnotations(blockAnnotationMap, copiedAnnotationMap) {
2827
- if (copiedAnnotationMap && copiedAnnotationMap.has(InternalAnnotationTypeEnum.LINK_GROUP)) {
2828
- const copiedLinkGroupAnnotation = copiedAnnotationMap.get(InternalAnnotationTypeEnum.LINK_GROUP);
2829
- if (!blockAnnotationMap.has(InternalAnnotationTypeEnum.LINK_GROUP)) {
2830
- blockAnnotationMap.set(InternalAnnotationTypeEnum.LINK_GROUP, copiedAnnotationMap.get(InternalAnnotationTypeEnum.LINK_GROUP));
2831
- }
2832
- else {
2833
- copiedLinkGroupAnnotation.linkGroups.forEach((nodes, groupKey) => {
2834
- const existingAnnotation = blockAnnotationMap.get(InternalAnnotationTypeEnum.LINK_GROUP);
2835
- existingAnnotation.linkGroups.set(groupKey, nodes);
2836
- });
2837
- }
2838
- }
2839
- }
2840
- }
2841
-
2842
- const convertLogicControlBlockStrategy = new DivToLogicControlBlockStrategy();
2843
- const convertFunctionContentStrategy = new DivToFunctionContentStrategy();
2844
- const convertFunctionBlockStrategy = new DivToFunctionBlockStrategy();
2845
- /**
2846
- * Function extension class for Vega Rich Text Editor.
2847
- */
2848
- class VegaRTEFunctionExtension extends VegaRTEExtension {
2849
- constructor() {
2850
- super();
2851
- this.toolbarButtonRenderer = new FunctionToolbarButtonRenderer();
2852
- this.registerBlockBasicStrategies(RTELogicControlBlock.name);
2853
- this.registerBlockBasicStrategies(RTEFunctionBlock.name);
2854
- this.preventFunctionBlockDefaultInsertNewParagraph();
2855
- this.registerNode('logic-control-block', RTELogicControlBlock);
2856
- this.registerRenderer('logic-control-block', new RTELogicControlBlockRenderer());
2857
- this.registerNode('function-block', RTEFunctionBlock);
2858
- this.registerRenderer('function-block', new RTEFunctionBlockRenderer());
2859
- this.registerToolbarButtonRenderer('functions', this.toolbarButtonRenderer);
2860
- this.registerElementToBlockDTOClassStrategy(convertLogicControlBlockStrategy);
2861
- this.registerElementToBlockDTOClassStrategy(convertFunctionContentStrategy);
2862
- this.registerElementToBlockDTOClassStrategy(convertFunctionBlockStrategy);
2863
- }
2864
- /**
2865
- * Initializes the extension with the given context
2866
- *
2867
- * @param {RTEExtensionContext} context - extension context
2868
- */
2869
- initialExtension(context) {
2870
- super.initialExtension(context);
2871
- if (this.toolbarButtonRenderer) {
2872
- this.toolbarButtonRenderer.injectExtensionContext(context);
2873
- }
2874
- }
2875
- /**
2876
- * Remove the appen children strategies to prevent default insert new paragraph logic in function block
2877
- */
2878
- preventFunctionBlockDefaultInsertNewParagraph() {
2879
- this.unRegisterStrategy(ModifyContentActionType.INSERT_NEW_PARAGRAPH, RTELogicControlBlock.name);
2880
- this.unRegisterStrategy(ModifyContentActionType.APPEND_CHILDREN, RTEFunctionBlock.name);
2881
- this.unRegisterStrategy(ModifyContentActionType.INSERT_CHILDREN_AFTER, RTEFunctionBlock.name);
2882
- this.unRegisterStrategy(ModifyContentActionType.INSERT_CHILDREN_BEFORE, RTEFunctionBlock.name);
2883
- this.unRegisterStrategy(ModifyContentActionType.PASTE_CONTENT, RTELogicControlBlock.name);
2884
- VegaRTEExtension.registerActionHandleStrategy(RTEFunctionBlock.name, ModifyContentActionType.INSERT_NEW_PARAGRAPH, new FunctionBlockInsertParagraphStrategy());
2885
- }
2886
- }
2887
- (() => {
2888
- const insertFunctionBlockStrategy = new InsertFunctionBlockStrategy();
2889
- VegaRTEExtension.registerActionHandleStrategy(VegaRTEContent.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
2890
- VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
2891
- VegaRTEExtension.registerActionHandleStrategy(RTEImageBlock.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
2892
- VegaRTEExtension.registerActionHandleStrategy(RTELogicControlBlock.name, INSERT_FUNCTION_BLOCK, insertFunctionBlockStrategy);
2893
- VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, PASTE_PLAIN_TEXT, new PastePlainTextStrategy());
2894
- VegaRTEExtension.registerActionHandlerInterceptor(RTETextBlock.name, ModifyContentActionType.INSERT_NEW_PARAGRAPH, new PreventNewParagraphInterceptor());
2895
- VegaRTEExtension.registerActionHandlerInterceptor(RTETextBlock.name, ModifyContentActionType.PASTE_CONTENT, new PreventPasteContentInterceptor());
2896
- })();
2897
-
2898
- const tableBlockStylesCss = ".v-rte--extension-table-container{display:table}table.v-rte--extension-table{border-collapse:collapse}table.v-rte--extension-table th,table.v-rte--extension-table td{border:1px solid #ddd;padding:12px;text-align:left;vertical-align:middle;min-width:30px;position:relative}table.v-rte--extension-table th{background-color:#f2f2f2}.rte-table-setting-popover,.rte-table-dynamic-popover{display:block}table.v-rte--extension-table .v-rte-table-cell-focused::after,table.v-rte--extension-table .v-rte-table-cell-selected::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;background-color:rgba(158, 207, 250, 0.3)}table.v-rte--extension-table:has(.v-rte-table-cell-selected){caret-color:transparent}table.v-rte--extension-table:has(.v-rte-table-cell-selected) ::selection{background-color:transparent}table.v-rte--extension-table:has(.v-rte-table-cell-selected) ::-moz-selection{background-color:transparent}.v-rte--extension-table-caption{padding:8px;border:1px solid #ddd;border-bottom:none;background-color:#f7f7f7;position:relative;display:table-caption;caption-side:top;min-height:22px;text-align:center;word-break:break-word;overflow-wrap:break-word}.v-rte--extension-table-caption.showPlaceholder::before{position:absolute;left:0;right:0;content:attr(data-placeholder);font-family:'Inter', sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;color:rgba(var(--v-text-input-placeholder, 176, 180, 181, 1));text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-cell-properties-popover,.rte-table-properties-popover{display:none}";
2899
-
2900
- const DELETE_TABLE_BLOCK = 'DELETE_TABLE_BLOCK';
2901
- /**
2902
- * Action to delete a table block
2903
- */
2904
- class DeleteTableBlockAction extends ModifyContentAction {
2905
- constructor(target) {
2906
- super();
2907
- this.isFlushable = true;
2908
- this.type = DELETE_TABLE_BLOCK;
2909
- this.tableBlock = target;
2910
- }
2911
- }
2912
-
2913
- /**
2914
- * Class representing a table caption annotation in the rich text editor.
2915
- */
2916
- class RTETableCaptionAnnotation extends BlockAnnotation {
2917
- constructor() {
2918
- super(...arguments);
2919
- this.type = RTETableExtensionAnnotationTypeEnum.CAPTION;
2920
- }
2921
- /**
2922
- * @inheritDoc
2923
- */
2924
- clone() {
2925
- return new RTETableCaptionAnnotation();
2926
- }
2927
- /**
2928
- * @inheritDoc
2929
- */
2930
- renderClass(options) {
2931
- if (options === null || options === void 0 ? void 0 : options.standalone)
2932
- return null;
2933
- return 'v-rte--extension-table-caption';
2934
- }
2935
- /**
2936
- * @inheritDoc
2937
- */
2938
- renderStyle(options) {
2939
- if (!(options === null || options === void 0 ? void 0 : options.standalone))
2940
- return null;
2941
- return {
2942
- padding: '8px',
2943
- border: '1px solid #ddd',
2944
- borderBottom: 'none',
2945
- backgroundColor: '#f7f7f7',
2946
- position: 'relative',
2947
- textAlign: 'center',
2948
- minHeight: '22px',
2949
- };
2950
- }
2951
- /**
2952
- * @inheritDoc
2953
- */
2954
- toJSON() {
2955
- return {
2956
- caption: {
2957
- padding: '8px 12px',
2958
- border: '1px solid #ddd',
2959
- borderBottom: 'none',
2960
- backgroundColor: '#f7f7f7',
2961
- position: 'relative',
2962
- textAlign: 'center',
2963
- minHeight: '22px',
2964
- },
2965
- };
2966
- }
2967
- }
2968
-
2969
- /**
2970
- * Represents the optional caption block for a table.
2971
- */
2972
- class RTETableCaptionBlock extends RTEBlock {
2973
- constructor(id) {
2974
- super(id);
2975
- this.type = 'table-caption';
2976
- this.annotationMap.set(RTETableExtensionAnnotationTypeEnum.CAPTION, new RTETableCaptionAnnotation());
2977
- }
2978
- /**
2979
- * @inheritDoc
2980
- */
2981
- static from(block, options) {
2982
- const captionBlock = new RTETableCaptionBlock(block.id);
2983
- super.convertAnnotationsToMap(captionBlock.annotationMap, Object.assign({}, block.annotations));
2984
- captionBlock.children = super.generateBlockChildren(block.children, options, captionBlock);
2985
- return captionBlock;
2986
- }
2987
- /**
2988
- * @inheritDoc
2989
- */
2990
- clone(parent) {
2991
- const clonedBlock = new RTETableCaptionBlock(this.id);
2992
- clonedBlock.children = this.children.map((child) => child.clone(clonedBlock));
2993
- clonedBlock.parent = parent;
2994
- return clonedBlock;
2995
- }
2996
- /**
2997
- * @inheritDoc
2998
- */
2999
- getLastNode() {
3000
- return this.children[this.children.length - 1].getLastNode();
3001
- }
3002
- /**
3003
- * @inheritDoc
3004
- */
3005
- isNotEmpty() {
3006
- return this.children.length > 0 && this.children.some((child) => child.isNotEmpty());
3007
- }
3008
- /**
3009
- * @inheritDoc
3010
- */
3011
- toHtml() {
3012
- const childrenHtml = this.children.map((child) => child.toHtml()).join('');
3013
- const attrStr = super.generateAttributeString();
3014
- return `<caption${attrStr}>${childrenHtml}</caption>`;
3015
- }
3016
- /**
3017
- * @inheritDoc
3018
- */
3019
- toJSON() {
3020
- return Object.assign(Object.assign({}, super.toJSON()), { type: this.type, children: this.children.map((child) => child.toJSON()) });
3021
- }
3022
- }
3023
- (() => {
3024
- ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_CHILDREN_BEFORE, RTETableCaptionBlock.name, new InsertChildrenBeforeStrategy());
3025
- ActionHandleStrategyRegistry.register(ModifyContentActionType.PASTE_CONTENT, RTETableCaptionBlock.name, new PasteContentStrategy());
3026
- })();
3027
-
3028
- const TOGGLE_TABLE_CAPTION = 'TOGGLE_TABLE_CAPTION';
3029
- /**
3030
- * Action payload for toggling the optional table caption block.
3031
- */
3032
- class TableCaptionAction extends ModifyContentAction {
3033
- constructor(shouldEnable) {
3034
- super();
3035
- this.type = TOGGLE_TABLE_CAPTION;
3036
- this.isFlushable = true;
3037
- this.shouldEnable = shouldEnable;
3038
- }
3039
- }
3040
-
3041
- /**
3042
- * Event handler for row operations in a table.
3043
- */
3044
- class CaptionOperationEventHandler extends SettingEventHandler {
3045
- /**
3046
- * @inheritDoc
3047
- */
3048
- canHandle(action) {
3049
- return action[0] === TableSettingType.CAPTION;
3050
- }
3051
- /**
3052
- * Toggle caption state for the target table block when the caption menu item is clicked.
3053
- *
3054
- * @param {Array<string>} action - Table setting payload, e.g. ['CAPTION', 'rte-table-caption'].
3055
- * @param {RTEExtensionContext} _extensionContext - Current editor extension context (unused here).
3056
- * @param {RTETableBlock} tableBlock - Table block that owns the caption.
3057
- */
3058
- execute(action, _extensionContext, tableBlock) {
3059
- const shouldEnable = action[1] === 'rte-table-caption';
3060
- const toggleAction = new TableCaptionAction(shouldEnable);
3061
- const existingCaption = tableBlock.getCaption();
3062
- if (shouldEnable) {
3063
- const hydratedCaption = existingCaption && existingCaption.isNotEmpty()
3064
- ? existingCaption
3065
- : this.createCaptionBlock(existingCaption === null || existingCaption === void 0 ? void 0 : existingCaption.id);
3066
- if (!existingCaption || hydratedCaption !== existingCaption) {
3067
- tableBlock.setCaption(hydratedCaption);
3068
- }
3069
- toggleAction.nextFocusNode = hydratedCaption.getLastNode();
3070
- }
3071
- else {
3072
- if (existingCaption) {
3073
- tableBlock.setCaption(null);
3074
- toggleAction.nextFocusNode = tableBlock.getFirstNode();
3075
- }
3076
- }
3077
- this.syncCursorPosition(tableBlock, toggleAction.nextFocusNode);
3078
- }
3079
- /**
3080
- * Applies a cursor update action so the editor focuses on the resolved node.
3081
- *
3082
- * @param {RTETableBlock} block - Table block currently being toggled.
3083
- * @param {Nullable<RTENode>} focusNode - Target node that should receive the caret.
3084
- */
3085
- syncCursorPosition(block, focusNode) {
3086
- super.syncCursorPosition(block, focusNode);
3087
- }
3088
- /**
3089
- * Build a fresh caption block with a default paragraph + placeholder text.
3090
- *
3091
- * @param {string} id - table-caption id
3092
- * @returns {RTETableCaptionBlock} Newly created caption DTO ready for rendering.
3093
- */
3094
- createCaptionBlock(id) {
3095
- const captionData = {
3096
- id: id !== null && id !== void 0 ? id : generateUUID(),
3097
- type: 'table-caption',
3098
- children: [
3099
- {
3100
- id: generateUUID(),
3101
- type: 'paragraph',
3102
- nodes: [
3103
- {
3104
- id: generateUUID(),
3105
- type: 'text',
3106
- text: '',
3107
- },
3108
- ],
3109
- },
3110
- ],
3111
- };
3112
- return RTETableCaptionBlock.from(captionData);
3113
- }
3114
- }
3115
-
3116
- /**
3117
- * Centralizes the popover rendering and interaction logic for table settings.
3118
- */
3119
- class TableSettingPopoverRenderer {
3120
- constructor() {
3121
- this.settingHandlers = [
3122
- new RowOperationEventHandler(),
3123
- new CaptionOperationEventHandler(),
3124
- new ColumnOperationEventHandler(),
3125
- ];
3126
- /**
3127
- * Show table setting popover when table is clicked.
3128
- * Only the popover belonging to the nearest table will be shown,
3129
- * which avoids outer tables showing their popover when an inner (nested) table is clicked.
3130
- *
3131
- * @param {MouseEvent} event - The MouseEvent that triggered the table action
3132
- * @param {HTMLElement} trigger - The element that can triggered the popover open.
3133
- */
3134
- this.handleTableClick = (event, trigger) => {
3135
- const target = event.target;
3136
- const ownTrigger = target.closest('.v-rte--extension-table-popover-trigger');
3137
- if (trigger !== ownTrigger) {
3138
- void this.popoverRef.hide();
3139
- void this.tableDynamicPopover.hide();
3140
- return;
3141
- }
3142
- void this.tableDynamicPopover.hide();
3143
- if (!this.popoverShow) {
3144
- remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), ownTrigger);
3145
- void this.popoverRef.show();
3146
- }
3147
- };
3148
- /**
3149
- * Sync the selected cells from the table selection to the table setting component.
3150
- */
3151
- this.syncSelectedCells = () => {
3152
- if (this.tableSettingRef) {
3153
- const selectedCells = this.getTableSelectedCells();
3154
- this.tableSettingRef.selectedCells = selectedCells;
3155
- }
3156
- };
3157
- /**
3158
- * Receive setting menu click events.
3159
- *
3160
- * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
3161
- */
3162
- this.handleSettingMenuClick = (event) => {
3163
- const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
3164
- if (handler) {
3165
- handler.execute(event.detail, this.extensionContext, this.tableData);
3166
- if (event.detail[0] === TableSettingType.CAPTION) {
3167
- this.updateTableSettingCaption();
3168
- }
3169
- }
3170
- if (event.detail[0] === TableSettingType.TABLE_PROPERTIES ||
3171
- event.detail[0] === TableSettingType.CELL_PROPERTIES) {
3172
- void this.popoverRef.hide();
3173
- void this.tableDynamicPopover.show(event.detail[0]);
3174
- }
3175
- };
3176
- /**
3177
- * Handles the popover show event to sync the selected table cells to the table setting component.
3178
- */
3179
- this.handleTableSettingPopoverShow = () => {
3180
- this.syncSelectedCells();
3181
- this.popoverShow = true;
3182
- };
3183
- }
3184
- /**
3185
- * Injects the RTE extension context.
3186
- *
3187
- * @param {RTETableExtensionContext} context - The RTE extension context.
3188
- */
3189
- injectRTEExtensionContext(context) {
3190
- this.extensionContext = context;
3191
- }
3192
- /**
3193
- * Render the popover host and inject the table-setting component with refs wired up.
3194
- *
3195
- * @param {VegaRTECreateElementFunction} h - The create element function.
3196
- * @param {RTETableBlock} renderData - The table block to render.
3197
- * @param {TableDynamicPopoverRenderer} tableDynamicPopover - Renderer used to show
3198
- * the secondary table popover (for example, table-properties-specific settings).
3199
- * @returns {VegaRTERenderResult} The rendered popover structure.
3200
- */
3201
- render(h, renderData, tableDynamicPopover) {
3202
- this.tableData = renderData;
3203
- this.tableDynamicPopover = tableDynamicPopover;
3204
- return h('vega-popover', {
3205
- trigger: 'click',
3206
- isScreenPosition: true,
3207
- class: 'rte-table-setting-popover',
3208
- // eslint-disable-next-line jsdoc/require-jsdoc
3209
- ref: (popover) => {
3210
- this.popoverRef = popover;
3211
- if (this.popoverRef) {
3212
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
3213
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, () => (this.popoverShow = false));
3214
- }
3215
- },
3216
- }, [
3217
- h('div', { slot: 'popover' }, [
3218
- h('vega-rich-text-table-setting', {
3219
- // eslint-disable-next-line jsdoc/require-jsdoc
3220
- ref: (el) => {
3221
- this.tableSettingRef = el;
3222
- },
3223
- selectedCells: this.getTableSelectedCells(),
3224
- onVegaClick: this.handleSettingMenuClick,
3225
- }),
3226
- ]),
3227
- ]);
3228
- }
3229
- /**
3230
- * Updates the table setting component caption state to match the given table data.
3231
- */
3232
- updateTableSettingCaption() {
3233
- const hasCaption = this.tableData.hasCaption();
3234
- if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
3235
- this.tableSettingRef.hasCaption = hasCaption;
3236
- }
3237
- }
3238
- /**
3239
- * Collects and returns the currently selected table cells.
3240
- *
3241
- * @returns {RTETableCellBlock[]} The array of currently selected table cell blocks.
3242
- */
3243
- getTableSelectedCells() {
3244
- let selectedCells = [];
3245
- if (this.extensionContext && this.extensionContext.tableSelection) {
3246
- const { tableSelection } = this.extensionContext;
3247
- selectedCells = tableSelection.getSelectedCells();
3248
- }
3249
- return selectedCells;
3250
- }
3251
- }
3252
-
3253
- const CONTENT_CLASS_MAP = {
3254
- [TableSettingType.TABLE_PROPERTIES]: 'rte-table-properties-popover',
3255
- [TableSettingType.CELL_PROPERTIES]: 'rte-cell-properties-popover',
3256
- };
3257
- /**
3258
- * Renderer for a generic, dynamically positioned popover used within table-related extensions.
3259
- *
3260
- * - The popover target is based on the current cursor/selection position.
3261
- * - The popover content is rendered dynamic content.
3262
- */
3263
- class TableDynamicPopoverRenderer {
3264
- /**
3265
- * Shows the popover. Before showing, it will refresh the target so
3266
- * that the popover is positioned relative to the latest cursor position.
3267
- *
3268
- * @param {string} type - The table setting type determining which
3269
- * content variant to display (for example, table properties or cell properties).
3270
- */
3271
- async show(type) {
3272
- let target = this.getTableRef();
3273
- const cells = this.extensionContext.tableSelection.getSelectedCells();
3274
- if (type !== TableSettingType.TABLE_PROPERTIES && cells.length === 1) {
3275
- target = stateEntityRenderingRegistry.getDOMByEntity(cells[0]);
3276
- }
3277
- this.updateContent(type);
3278
- remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), target);
3279
- await this.popoverRef.show();
3280
- }
3281
- /**
3282
- * hide the popover.
3283
- */
3284
- async hide() {
3285
- await this.popoverRef.hide();
3286
- }
3287
- /**
3288
- * Injects the RTE extension context.
3289
- *
3290
- * @param {RTETableExtensionContext} context - The RTE extension context.
3291
- */
3292
- injectRTEExtensionContext(context) {
3293
- this.extensionContext = context;
3294
- }
3295
- /**
3296
- * Renders a vega-popover whose target and content are provided dynamically by callers.
3297
- *
3298
- * @param {VegaRTECreateElementFunction} h - The create element function.
3299
- * @param {() => HTMLElement} getTableRef - Current table DOM reference
3300
- * @returns {VegaRTERenderResult} The rendered popover host.
3301
- */
3302
- render(h, getTableRef) {
3303
- this.getTableRef = getTableRef;
3304
- return h('vega-popover', {
3305
- trigger: 'click',
3306
- isScreenPosition: true,
3307
- class: 'rte-table-dynamic-popover',
3308
- // eslint-disable-next-line jsdoc/require-jsdoc
3309
- ref: (popover) => {
3310
- this.popoverRef = popover;
3311
- },
3312
- }, [
3313
- h('div', {
3314
- slot: 'popover',
3315
- class: 'rte-table-dynamic-popover-content',
3316
- // eslint-disable-next-line jsdoc/require-jsdoc
3317
- ref: (ref) => (this.contentRef = ref),
3318
- }, [
3319
- h('div', {
3320
- class: CONTENT_CLASS_MAP[TableSettingType.TABLE_PROPERTIES],
3321
- }, 'table-properties'),
3322
- h('div', {
3323
- class: CONTENT_CLASS_MAP[TableSettingType.CELL_PROPERTIES],
3324
- }, 'cell-properties'),
3325
- ]),
3326
- ]);
3327
- }
3328
- /**
3329
- * Updates the visibility of the pre-rendered content blocks based on type.
3330
- *
3331
- * @param {string} type - The table setting type determining which content variant should be visible.
3332
- */
3333
- updateContent(type) {
3334
- if (type !== this.currentType) {
3335
- this.currentType = type;
3336
- this.contentRef.childNodes.forEach((child) => {
3337
- if (child.classList.contains(CONTENT_CLASS_MAP[this.currentType])) {
3338
- child.style.display = 'block';
3339
- }
3340
- else {
3341
- child.style.display = 'none';
3342
- }
3343
- });
3344
- }
3345
- }
3346
- }
3347
-
3348
- /**
3349
- * Renderer for the RTETableBlock.
3350
- */
3351
- class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
3352
- constructor() {
3353
- super(...arguments);
3354
- this.extensionContext = null;
3355
- }
3356
- /**
3357
- * @inheritDoc
3358
- */
3359
- doRender(h, renderData, rteContext) {
3360
- const tableSettingPopoverRenderer = new TableSettingPopoverRenderer();
3361
- const tableDynamicPopoverRenderer = new TableDynamicPopoverRenderer();
3362
- if (this.extensionContext) {
3363
- tableSettingPopoverRenderer.injectRTEExtensionContext(this.extensionContext);
3364
- tableDynamicPopoverRenderer.injectRTEExtensionContext(this.extensionContext);
3365
- }
3366
- let tableRef;
3367
- const table = this.renderTable(h, renderData);
3368
- const tableSettingPopover = tableSettingPopoverRenderer.render(h, renderData, tableDynamicPopoverRenderer);
3369
- const tableDynamicPopover = tableDynamicPopoverRenderer.render(h, () => tableRef);
3370
- const tableAnnotation = renderData.getAnnotationByType(RTETableExtensionAnnotationTypeEnum.TABLE);
3371
- const children = rteContext.editable
3372
- ? [
3373
- h('vega-rich-text-table-selection-widget', {
3374
- // eslint-disable-next-line jsdoc/require-jsdoc
3375
- onVegaRemove: (e) => {
3376
- e.stopPropagation();
3377
- this.handleTableRemove(renderData);
3378
- },
3379
- // eslint-disable-next-line jsdoc/require-jsdoc
3380
- onClick: (event) => tableSettingPopoverRenderer.handleTableClick(event, tableRef),
3381
- // eslint-disable-next-line jsdoc/require-jsdoc
3382
- onMouseLeave: () => {
3383
- tableSettingPopoverRenderer.syncSelectedCells();
3384
- },
3385
- }, [
3386
- h('vega-box', {
3387
- class: 'v-rte--extension-table-popover-trigger',
3388
- // eslint-disable-next-line jsdoc/require-jsdoc
3389
- ref: (ref) => (tableRef = ref),
3390
- }, [table, tableSettingPopover, tableDynamicPopover]),
3391
- ]),
3392
- ]
3393
- : [table];
3394
- const result = h('div', {
3395
- class: 'v-rte--extension-table-container',
3396
- style: Object.assign({}, (tableAnnotation && tableAnnotation.renderAlignmentStyle())),
3397
- }, children);
3398
- /**
3399
- * The getter for the children container.
3400
- *
3401
- * @returns {VegaRTERenderResult} - The children container render result.
3402
- */
3403
- result.childrenContainerGetter = () => table;
3404
- return result;
3405
- }
3406
- /**
3407
- * @inheritDoc
3408
- */
3409
- injectRTEScopeStyles() {
3410
- return tableBlockStylesCss;
3411
- }
3412
- /**
3413
- * Injects the RTE extension context.
3414
- *
3415
- * @param {RTETableExtensionContext} context - The RTE extension context.
3416
- */
3417
- injectExtensionContext(context) {
3418
- this.extensionContext = context;
3419
- }
3420
- /**
3421
- * Renders the table element.
3422
- *
3423
- * @param {VegaRTECreateElementFunction} h - The create element function.
3424
- * @param {RTETableBlock} renderData - The table block to render.
3425
- * @returns {VegaRTERenderResult} - The rendered table element.
3426
- */
3427
- renderTable(h, renderData) {
3428
- var _a;
3429
- return h('table', Object.assign(Object.assign({ key: renderData.id }, (_a = renderData.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.render()), { style: renderData.getStyles(), class: [RTETableBlockRenderer.EXTENSION_TABLE_CLASS, renderData.getClasses()].join(' '),
3430
- // eslint-disable-next-line jsdoc/require-jsdoc
3431
- ref: (ref) => {
3432
- this.useRef(renderData)(ref);
3433
- } }));
3434
- }
3435
- /**
3436
- * Handles the removal of the table block.
3437
- *
3438
- * @param {RTETableBlock} renderData - The table block to remove.
3439
- */
3440
- handleTableRemove(renderData) {
3441
- renderData.parent.apply(new DeleteTableBlockAction(renderData));
3442
- }
3443
- }
3444
- RTETableBlockRenderer.EXTENSION_TABLE_CLASS = 'v-rte--extension-table';
3445
-
3446
- /**
3447
- * Renders a logic control block in the rich text editor.
3448
- */
3449
- class RTETableHeadRenderer extends VegaRTEExtensionRenderer {
3450
- /**
3451
- * @inheritDoc
3452
- */
3453
- doRender(h, renderData) {
3454
- return h('thead', {
3455
- key: renderData.id,
3456
- ref: this.useRef(renderData),
3457
- });
3458
- }
3459
- }
3460
-
3461
- /**
3462
- * Renders a logic control block in the rich text editor.
3463
- */
3464
- class RTETableRowBlockRenderer extends VegaRTEExtensionRenderer {
3465
- /**
3466
- * @inheritDoc
3467
- */
3468
- doRender(h, renderData) {
3469
- return h('tr', {
3470
- key: renderData.id,
3471
- ref: this.useRef(renderData),
3472
- });
3473
- }
3474
- }
3475
-
3476
- /**
3477
- * Renders a table cell block in the rich text editor.
3478
- */
3479
- class RTETableCellRenderer extends VegaRTEExtensionRenderer {
3480
- /**
3481
- * @inheritDoc
3482
- */
3483
- doRender(h, renderData, rteContext) {
3484
- return this.renderByCellType(h, renderData, rteContext, 'td');
3485
- }
3486
- /**
3487
- * Injects the extension context
3488
- *
3489
- * @param {RTETableExtensionContext} context - extension context
3490
- */
3491
- injectExtensionContext(context) {
3492
- this.extensionContext = context;
3493
- }
3494
- /**
3495
- * Renders the table cell based on its type (td or th).
3496
- *
3497
- * @param {VegaRTECreateElementFunction} h - The create element function.
3498
- * @param {RTETableCellBlock} renderData - The table cell block to render.
3499
- * @param {RTERenderContext} rteContext - The rte editor context.
3500
- * @param {'td' | 'th'} elementType - The type of table cell element ('td' or 'th').
3501
- * @returns {VegaRTERenderResult} - The rendered table cell element.
3502
- */
3503
- renderByCellType(h, renderData, rteContext, elementType) {
3504
- var _a;
3505
- return h(elementType, Object.assign(Object.assign(Object.assign({ key: renderData.id, ref: this.useRef(renderData) }, (_a = renderData.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.render()), { style: renderData.getStyles(rteContext), class: renderData.getClasses() }), (rteContext.editable ? this.onSelectionListeners(renderData) : undefined)));
3506
- }
3507
- /**
3508
- * Returns the mouse event listeners for selection handling.
3509
- *
3510
- * @param {RTETableCellBlock} renderData - The table cell block to render.
3511
- * @returns {RTETableSelectionListenersType} - The mouse event listeners.
3512
- */
3513
- onSelectionListeners(renderData) {
3514
- return {
3515
- /**
3516
- * Handles the mouse down event to focus a cell.
3517
- *
3518
- * @param {MouseEvent} event - The mouse event.
3519
- */
3520
- onMouseDown: (event) => {
3521
- const targetParentTable = findParent(event.target, 'table');
3522
- const currentTable = findParent(event.currentTarget, 'table');
3523
- const inCurrentTable = currentTable === targetParentTable;
3524
- const cellRef = event.target.closest('td, th');
3525
- if (inCurrentTable && cellRef) {
3526
- this.extensionContext.tableSelection.focusCell(cellRef);
3527
- }
3528
- },
3529
- /**
3530
- * Handles the mouse move event to start selection.
3531
- *
3532
- * @param {MouseEvent} event - The mouse event.
3533
- */
3534
- onMouseMove: (event) => {
3535
- event.stopPropagation();
3536
- event.preventDefault();
3537
- this.extensionContext.tableSelection.dragOver(renderData);
3538
- },
3539
- /**
3540
- * Handles the mouse up event to end selection.
3541
- */
3542
- onMouseUp: () => {
3543
- this.extensionContext.tableSelection.endDrag();
3544
- },
3545
- };
3546
- }
3547
- }
3548
-
3549
- /**
3550
- * Renders a table body block in the rich text editor.
3551
- */
3552
- class RTETableBodyRenderer extends VegaRTEExtensionRenderer {
3553
- /**
3554
- * @inheritDoc
3555
- */
3556
- doRender(h, renderData) {
3557
- return h('tbody', {
3558
- key: renderData.id,
3559
- ref: this.useRef(renderData),
3560
- });
3561
- }
3562
- }
3563
-
3564
- /**
3565
- * Renders a head cell block in the rich text editor.
3566
- */
3567
- class RTETableHeadCellRenderer extends RTETableCellRenderer {
3568
- /**
3569
- * @inheritDoc
3570
- */
3571
- doRender(h, renderData, rteContext) {
3572
- return super.renderByCellType(h, renderData, rteContext, 'th');
3573
- }
3574
- }
3575
-
3576
- const INSERT_TABLE_BLOCK = 'INSERT_TABLE_BLOCK';
3577
- /**
3578
- * Action to insert a table block into the rich text editor.
3579
- */
3580
- class InsertTableBlockAction extends ModifyContentAction {
3581
- constructor(rowCount, columnCount) {
3582
- super();
3583
- this.type = INSERT_TABLE_BLOCK;
3584
- this.rowCount = rowCount;
3585
- this.columnCount = columnCount;
3586
- }
3587
- }
3588
-
3589
- const tableIcon = {
3590
- 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="M48 264V160H232V264H48zm0 48H232V432H64c-8.8 0-16-7.2-16-16V312zM280 432V312H464V416c0 8.8-7.2 16-16 16H280zM464 264H280V160H464V264zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>`,
3591
- };
3592
-
3593
- /**
3594
- * Function toolbar button renderer class.
3595
- */
3596
- class RTETableToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
3597
- constructor() {
3598
- super(...arguments);
3599
- this.hoveredRows = 1;
3600
- this.hoveredCols = 1;
3601
- }
3602
- /**
3603
- * Injects the extension context
3604
- *
3605
- * @param {RTETableExtensionContext} context - extension context
3606
- */
3607
- injectExtensionContext(context) {
3608
- this.extensionContext = context;
3609
- }
3610
- /**
3611
- * @inheritDoc
3612
- */
3613
- render(h, editorContext) {
3614
- return this.renderTablePicker(h, super.renderButton(h, editorContext, {
3615
- showArrowIcon: true,
3616
- icon: 'rte-table',
3617
- }));
3618
- }
3619
- /**
3620
- * Overrides the isDisabled method to determine if the button should be disabled.
3621
- *
3622
- * @returns {boolean} - true if the button should be disabled, false otherwise.
3623
- */
3624
- isDisabled() {
3625
- const { host, getSelectedNodes } = this.extensionContext;
3626
- const focusNode = getSelectedNodes()[0];
3627
- let enableInsert = true;
3628
- if (focusNode) {
3629
- enableInsert =
3630
- ActionHandleStrategyRegistry.canHandle(INSERT_TABLE_BLOCK, focusNode.parent) &&
3631
- ActionHandleStrategyRegistry.canHandle(ModifyContentActionType.INSERT_CHILDREN_AFTER, focusNode.parent.parent);
3632
- }
3633
- return host.disabled || !enableInsert;
3634
- }
3635
- /**
3636
- * @inheritDoc
3637
- */
3638
- handleButtonClick() {
3639
- }
3640
- /* istanbul ignore next */
3641
- /**
3642
- * @inheritDoc
3643
- */
3644
- handleDropdownClick() {
3645
- }
3646
- /**
3647
- * Renders the table size picker popover.
3648
- *
3649
- * @param {VegaRTECreateElementFunction} h - Create element function.
3650
- * @param {VegaRTERenderResult} children - The children elements to render inside the popover.
3651
- * @returns {VegaRTERenderResult} - The render result for the table size picker popover.
3652
- */
3653
- renderTablePicker(h, children) {
3654
- return h('vega-popover', {
3655
- trigger: 'click',
3656
- alignment: 'start',
3657
- placement: 'bottom',
3658
- showArrow: false,
3659
- // eslint-disable-next-line jsdoc/require-jsdoc
3660
- ref: (ref) => {
3661
- if (ref) {
3662
- this.tablePickerPopoverRef = ref;
3663
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
3664
- this.resetPicker();
3665
- });
3666
- }
3667
- },
3668
- }, [
3669
- h('div', { slot: 'popover' }, [this.generatePickerStyles(h), this.generateTableSizeGrid(h)]),
3670
- h('div', { slot: 'popover-content' }, children),
3671
- ]);
3672
- }
3673
- /**
3674
- * Generates the table size picker grid.
3675
- *
3676
- * @param {VegaRTECreateElementFunction} h - Create element function.
3677
- * @returns {VegaRTERenderResult} - The render result for the table size picker.
3678
- */
3679
- generateTableSizeGrid(h) {
3680
- const rows = 10;
3681
- const cols = 10;
3682
- const gridCells = [];
3683
- for (let r = 1; r <= rows; r++) {
3684
- for (let c = 1; c <= cols; c++) {
3685
- gridCells.push(h('button', {
3686
- 'class': `rte-table-picker__cell`,
3687
- 'data-row': r,
3688
- 'data-col': c,
3689
- 'onMouseenter': this.handlePickerCellHover.bind(this, r, c),
3690
- 'onClick': this.handlePickerClick.bind(this, r, c),
3691
- }, []));
3692
- }
3693
- }
3694
- return h('div', { class: 'rte-table-picker' }, [
3695
- h('div', {
3696
- class: 'rte-table-picker__grid',
3697
- // eslint-disable-next-line jsdoc/require-jsdoc
3698
- ref: (ref) => {
3699
- if (ref) {
3700
- this.tablePickerGridRef = ref;
3701
- }
3702
- },
3703
- style: {
3704
- gridTemplateColumns: `repeat(${cols}, 16px)`,
3705
- gridTemplateRows: `repeat(${rows}, 16px)`,
3706
- },
3707
- }, gridCells),
3708
- h('div', {
3709
- class: 'rte-table-picker__hint',
3710
- }, h('vega-hint', {
3711
- // eslint-disable-next-line jsdoc/require-jsdoc
3712
- ref: (ref) => {
3713
- if (ref) {
3714
- this.selectedHintRef = ref;
3715
- }
3716
- },
3717
- }, [`${this.hoveredRows} × ${this.hoveredCols}`])),
3718
- ]);
3719
- }
3720
- /**
3721
- * Generates the styles for the table size picker.
3722
- *
3723
- * @param {VegaRTECreateElementFunction} h - Create element function.
3724
- * @returns {VegaRTERenderResult} - The render result for the styles.
3725
- */
3726
- generatePickerStyles(h) {
3727
- return h('style', {}, [
3728
- // eslint-disable-next-line spellcheck/spell-checker
3729
- `
3730
- .rte-table-picker__grid { display: grid; gap: 2px; }
3731
- .rte-table-picker__cell {
3732
- box-sizing: border-box;
3733
- border: 1px solid #ccc;
3734
- background-color: transparent;
3735
- cursor: pointer;
3736
- }
3737
- .rte-table-picker__cell:hover {
3738
- background-color: #cae1fc;
3739
- }
3740
- .rte-table-picker__cell.active {
3741
- background-color: #cae1fc;
3742
- }
3743
- .rte-table-picker__hint {
3744
- text-align: center;
3745
- }
3746
- `,
3747
- ]);
3748
- }
3749
- /**
3750
- * Creates a table block with the specified number of rows and columns.
3751
- *
3752
- * @param {number} row - The number of rows for the table.
3753
- * @param {number} column - The number of columns for the table.
3754
- */
3755
- createTable(row, column) {
3756
- const { host, getSelectedNodes } = this.extensionContext;
3757
- const focusNode = getSelectedNodes()[0];
3758
- const action = new InsertTableBlockAction(row, column);
3759
- if (!focusNode) {
3760
- host.value.apply(action);
3761
- }
3762
- else if (focusNode.parent) {
3763
- focusNode.parent.apply(action);
3764
- }
3765
- if (action.nextFocusNode) {
3766
- host.value.apply(new UpdateCursorPositionAction(action.nextFocusNode, 1));
3767
- }
3768
- }
3769
- /**
3770
- * Handles the click event on a picker cell.
3771
- *
3772
- * @param {number} r - The number of rows selected.
3773
- * @param {number} c - The number of columns selected.
3774
- */
3775
- handlePickerClick(r, c) {
3776
- this.createTable(r, c);
3777
- void this.tablePickerPopoverRef.hide();
3778
- }
3779
- /**
3780
- * Handles the hover event on a picker cell.
3781
- *
3782
- * @param {number} r - The number of rows being hovered over.
3783
- * @param {number} c - The number of columns being hovered over.
3784
- */
3785
- handlePickerCellHover(r, c) {
3786
- this.hoveredRows = r;
3787
- this.hoveredCols = c;
3788
- Array.from(this.tablePickerGridRef.children).forEach((cell) => {
3789
- const rIndex = Number(cell.dataset.row);
3790
- const cIndex = Number(cell.dataset.col);
3791
- if (rIndex <= this.hoveredRows && cIndex <= this.hoveredCols) {
3792
- cell.classList.add('active');
3793
- }
3794
- else {
3795
- cell.classList.remove('active');
3796
- }
3797
- });
3798
- this.selectedHintRef.textContent = `${this.hoveredRows} × ${this.hoveredCols}`;
3799
- }
3800
- /**
3801
- * Resets the table picker to its initial state.
3802
- */
3803
- resetPicker() {
3804
- this.handlePickerCellHover(1, 1);
3805
- }
3806
- }
3807
- (() => {
3808
- VegaInternalIconManager.register({ 'rte-table': tableIcon });
3809
- })();
3810
-
3811
- /**
3812
- * Strategy to handle the insertion of a block into the rich text editor.
3813
- */
3814
- class InsertTableBlockStrategy extends ActionHandleStrategy {
3815
- /**
3816
- * @inheritDoc
3817
- */
3818
- handleAction(action, target) {
3819
- const tableBlock = this.createTableBlock(action.rowCount, action.columnCount);
3820
- const emptyParagraph = super.createNewParagraph('');
3821
- const referenceBlock = this.getReferenceBlock(target);
3822
- if (referenceBlock) {
3823
- referenceBlock.parent.apply(new InsertChildrenAfterAction(referenceBlock, tableBlock, emptyParagraph));
3824
- }
3825
- else {
3826
- target.apply(new AppendChildrenAction([tableBlock, emptyParagraph]));
3827
- }
3828
- action.nextFocusNode = tableBlock.getFirstNode();
3829
- }
3830
- /**
3831
- * Create a table block with the specified number of rows and columns.
3832
- *
3833
- * @param {number} row - The number of rows in the table.
3834
- * @param {number} column - The number of columns in the table.
3835
- * @returns {RTETableBlock} The created table block.
3836
- */
3837
- createTableBlock(row, column) {
3838
- const normalizedRowCount = Math.max(row, 1);
3839
- const normalizedColumnCount = Math.max(column, 1);
3840
- return RTETableBlock.from({
3841
- id: generateUUID(),
3842
- type: 'table-block',
3843
- children: [generateTableBody(normalizedRowCount, normalizedColumnCount)],
3844
- });
3845
- }
3846
- /**
3847
- * We need to get the correct block if the current target is a block element to avoid nesting blocks.
3848
- *
3849
- * @param {RTEBlock} currentTarget - The current target block or content.
3850
- * @returns {Nullable<RTEBlock>} The reference block.
3851
- */
3852
- getReferenceBlock(currentTarget) {
3853
- if (!(currentTarget instanceof VegaRTEContent)) {
3854
- return currentTarget;
3855
- }
3856
- }
3857
- }
3858
-
3859
- /**
3860
- * Interceptor to prevent deletion of a table cell if it is the cell with empty content.
3861
- */
3862
- class PreventCellContentDeleteInterceptor extends ActionHandlerInterceptor {
3863
- /**
3864
- * Prevent deletion if the target block is the only child of a table cell and is empty.
3865
- *
3866
- * @param {DeleteBlockContentAction} _action - the action to be intercepted
3867
- * @param {RTETextBlock} target - the target block
3868
- * @returns {boolean} - true if the deletion should be intercepted, false otherwise
3869
- */
3870
- canIntercept(_action, target) {
3871
- const cell = target.parent;
3872
- return cell instanceof RTETableCellBlock && cell.children.length === 1 && !target.isNotEmpty();
3873
- }
3874
- /**
3875
- * @inheritDoc
3876
- */
3877
- intercept() {
3878
- }
3879
- }
3880
-
3881
- /**
3882
- * Strategy to handle the deletion of a table block from the parent.
3883
- */
3884
- class DeleteTableBlockStrategy extends ActionHandleStrategy {
3885
- /**
3886
- * Deletes the specified table block and updates the cursor position.
3887
- *
3888
- * @param {DeleteTableBlockAction} action - The action containing the table block to delete.
3889
- */
3890
- handleAction(action) {
3891
- const tableBlock = action.tableBlock;
3892
- const parent = tableBlock.parent;
3893
- const root = super.getRootContent(tableBlock);
3894
- const newParagraph = super.createNewParagraph('');
3895
- parent.apply(new InsertChildrenAfterAction(tableBlock, newParagraph));
3896
- parent.apply(new RemoveChildrenAction(tableBlock));
3897
- if (root) {
3898
- root.apply(new UpdateCursorPositionAction(newParagraph.getLastNode()));
3899
- }
3900
- }
3901
- }
3902
-
3903
- /**
3904
- * Interceptor to prevent removal of all children from a cell, ensuring at least one child remains.
3905
- */
3906
- class PreventCellChildrenRemoveInterceptor extends ActionHandlerInterceptor {
3907
- /**
3908
- * Prevent removal if the target cell would be left empty after the action.
3909
- *
3910
- * @param {RemoveChildrenAction} action - the action to be intercepted
3911
- * @param {RTETableCellBlock | RTETableHeadCellBlock} target - the target cell block
3912
- * @returns {boolean} - true if the removal should be intercepted, false otherwise
3913
- */
3914
- canIntercept(action, target) {
3915
- return action.entityToBeRemoved && target.children.length === 1;
3916
- }
3917
- /**
3918
- * Add a new empty text node to the cell to prevent it from removal.
3919
- *
3920
- * @param {ActionHandlerExecution} _execution - the original execution function
3921
- * @param {RemoveChildrenAction} action - the action to be intercepted
3922
- * @param {RTETableCellBlock | RTETableHeadCellBlock} target - the target cell block
3923
- */
3924
- intercept(_execution, action, target) {
3925
- if (!(action.entityToBeRemoved instanceof RTETextBlock)) {
3926
- const newParagraph = RTETextBlock.from({
3927
- id: generateUUID(),
3928
- type: 'paragraph',
3929
- nodes: [{ id: generateUUID(), type: 'text', text: '' }],
3930
- });
3931
- target.children = [];
3932
- target.apply(new AppendChildrenAction([newParagraph]));
3933
- return;
3934
- }
3935
- action.entityToBeRemoved.apply(new AppendChildrenAction([
3936
- new RTETextNode(generateUUID(), '', action.entityToBeRemoved),
3937
- ]));
3938
- }
3939
- }
3940
-
3941
- /**
3942
- * Strategy class for handling the insertion of a new row into a table.
3943
- */
3944
- class InsertTableRowStrategy extends ActionHandleStrategy {
3945
- /**
3946
- * @inheritDoc
3947
- */
3948
- handleAction(action, target) {
3949
- const { insertDirection, selectedRows } = action;
3950
- // The reference block will control where to insert the new row
3951
- let refBlock = insertDirection === InsertTableRowDirection.ABOVE
3952
- ? selectedRows[0]
3953
- : selectedRows[selectedRows.length - 1];
3954
- // The row need to be inserted is a header row
3955
- if (this.shouldInsertHeaderRow(refBlock, insertDirection)) {
3956
- const headerBlock = RTETableRowBlock.from({
3957
- id: generateUUID(),
3958
- type: 'table-row',
3959
- children: refBlock.children.map((item) => {
3960
- return this.getDefaultCellBlockTemplate(item.type);
3961
- }),
3962
- });
3963
- if (insertDirection === InsertTableRowDirection.ABOVE) {
3964
- refBlock.parent.apply(new InsertChildrenBeforeAction(refBlock, headerBlock));
3965
- }
3966
- else {
3967
- refBlock.parent.apply(new InsertChildrenAfterAction(refBlock, headerBlock));
3968
- }
3969
- }
3970
- else {
3971
- let direction = insertDirection;
3972
- let tableBody = target.children.find((block) => block instanceof RTETableBodyBlock);
3973
- // Should insert into body if reference block is in head row and body exists
3974
- if (refBlock.parent instanceof RTETableHeadBlock && tableBody) {
3975
- refBlock = tableBody.children[0];
3976
- direction = InsertTableRowDirection.ABOVE;
3977
- }
3978
- const refBlockIsHeaderRow = refBlock.parent instanceof RTETableHeadBlock;
3979
- const rowBlock = RTETableRowBlock.from({
3980
- id: generateUUID(),
3981
- type: 'table-row',
3982
- children: refBlock.children.map((item) => {
3983
- return this.getDefaultCellBlockTemplate(refBlockIsHeaderRow ? 'table-cell' : item.type);
3984
- }),
3985
- });
3986
- if (!tableBody) {
3987
- tableBody = RTETableBodyBlock.from({
3988
- id: generateUUID(),
3989
- type: 'table-body',
3990
- children: [],
3991
- });
3992
- tableBody.apply(new AppendChildrenAction([rowBlock]));
3993
- target.apply(new AppendChildrenAction([tableBody]));
3994
- }
3995
- else {
3996
- if (direction === InsertTableRowDirection.ABOVE) {
3997
- tableBody.apply(new InsertChildrenBeforeAction(refBlock, rowBlock));
3998
- }
3999
- else {
4000
- tableBody.apply(new InsertChildrenAfterAction(refBlock, rowBlock));
4001
- }
4002
- }
4003
- }
4004
- }
4005
- /**
4006
- * Checks if a header row should be inserted based on the selected rows and position.
4007
- *
4008
- * @param {RTETableRowBlock} refBlock - The reference table row block.
4009
- * @param {InsertTableRowDirection} direction - The direction to insert the new row (above or below).
4010
- * @returns {boolean} True if a header row should be inserted, false otherwise.
4011
- */
4012
- shouldInsertHeaderRow(refBlock, direction) {
4013
- if (direction === InsertTableRowDirection.ABOVE) {
4014
- return refBlock.parent instanceof RTETableHeadBlock;
4015
- }
4016
- else {
4017
- const parentBlock = refBlock.parent;
4018
- return (parentBlock instanceof RTETableHeadBlock &&
4019
- parentBlock.children[parentBlock.children.length - 1] !== refBlock);
4020
- }
4021
- }
4022
- /**
4023
- * Get the default cell block template.
4024
- *
4025
- * @param {string} cellType - The type of the cell block.
4026
- * @returns {VegaRTETableCellBlock | VegaRTETableHeadCellBlock} The default cell block template.
4027
- */
4028
- getDefaultCellBlockTemplate(cellType) {
4029
- const id = generateUUID();
4030
- return {
4031
- id,
4032
- type: cellType,
4033
- children: [
4034
- {
4035
- id: `${id}-p`,
4036
- type: 'paragraph',
4037
- nodes: [
4038
- {
4039
- id: `${id}-p-t`,
4040
- type: 'text',
4041
- text: '',
4042
- },
4043
- ],
4044
- },
4045
- ],
4046
- };
4047
- }
4048
- }
4049
-
4050
- const TABLE_CAPTION_PLACEHOLDER_TEXT = 'Enter table caption';
4051
- /**
4052
- * Renderer for the optional table caption node.
4053
- */
4054
- class RTETableCaptionRenderer extends VegaRTEExtensionRenderer {
4055
- /**
4056
- * @inheritDoc
4057
- */
4058
- doRender(h, renderData) {
4059
- return h('caption', {
4060
- 'key': renderData.id,
4061
- 'ref': this.useRef(renderData),
4062
- 'style': renderData.getStyles(),
4063
- 'class': [renderData.getClasses(), renderData.isNotEmpty() ? null : 'showPlaceholder']
4064
- .filter(isNonNullable)
4065
- .join(' '),
4066
- 'data-placeholder': TABLE_CAPTION_PLACEHOLDER_TEXT,
4067
- });
4068
- }
4069
- }
4070
-
4071
- /**
4072
- * Strategy class for handling the deletion of table rows.
4073
- */
4074
- class DeleteTableRowStrategy extends ActionHandleStrategy {
4075
- /**
4076
- * @inheritDoc
4077
- */
4078
- handleAction(action, target) {
4079
- const { rowsToBeRemoved } = action;
4080
- const futureFocusRow = this.getFutureFocusRow(rowsToBeRemoved[0], rowsToBeRemoved[rowsToBeRemoved.length - 1], target);
4081
- rowsToBeRemoved.forEach((row) => {
4082
- this.removeRow(row);
4083
- });
4084
- if (futureFocusRow) {
4085
- const root = this.getRootContent(target);
4086
- if (root) {
4087
- const focusNode = futureFocusRow.getLastNode();
4088
- root.apply(new UpdateCursorPositionAction(focusNode, focusNode.getRangeEndOffset()));
4089
- }
4090
- }
4091
- }
4092
- /**
4093
- * Removes the specified row from its parent table section.
4094
- * // TODO: Add handling for when selected row has or in merge column.
4095
- *
4096
- * @param {RTETableRowBlock} rowToBeRemoved The row to be removed.
4097
- */
4098
- removeRow(rowToBeRemoved) {
4099
- rowToBeRemoved.parent.apply(new RemoveChildrenAction(rowToBeRemoved));
4100
- }
4101
- /**
4102
- * Get the future focus row after deletion.
4103
- *
4104
- * @param {RTETableRowBlock} startRow - The first row to be deleted.
4105
- * @param {RTETableRowBlock} endRow - The last row to be deleted.
4106
- * @param {RTETableBlock} table - The table containing the rows.
4107
- * @returns {Nullable<RTETableRowBlock>} The row to be focused after deletion.
4108
- */
4109
- getFutureFocusRow(startRow, endRow, table) {
4110
- const allRows = table.children
4111
- .filter((item) => item instanceof RTETableHeadBlock || item instanceof RTETableBodyBlock)
4112
- .flatMap((block) => block.children);
4113
- const startIndex = allRows.indexOf(startRow);
4114
- const endIndex = allRows.indexOf(endRow);
4115
- if (allRows[startIndex - 1]) {
4116
- return allRows[startIndex - 1];
4117
- }
4118
- else if (allRows[endIndex + 1]) {
4119
- return allRows[endIndex + 1];
4120
- }
4121
- }
4122
- }
4123
-
4124
- /**
4125
- * Table selection helper used for mouse drag selection of cells.
4126
- */
4127
- class RTETableSelection {
4128
- constructor() {
4129
- /**
4130
- * Indicates whether the user is currently performing a drag selection.
4131
- */
4132
- this.dragging = false;
4133
- /**
4134
- * Anchor cell where the drag selection started.
4135
- */
4136
- this.anchorCell = null;
4137
- /**
4138
- * Collection of currently selected cells.
4139
- */
4140
- this.selectedCells = new Set();
4141
- this.syncRTESelectionWithDebounce = debounce(this.syncRTESelection, 100, this);
4142
- this.handleSelectionChangeWithDebounce = debounce(this.handleSelectionChange, 10, this);
4143
- /**
4144
- * Recursively filter and collect selected table cell blocks within the given node.
4145
- *
4146
- * @param {Range} range - The current selection range.
4147
- * @param {Node} node - The current node to check for selection.
4148
- * @returns {RTETableCellBlock[]} A list of selected table cell blocks.
4149
- */
4150
- this.filterSelectedCell = (range, node) => {
4151
- const selectedCells = new Set();
4152
- if (range.intersectsNode(node)) {
4153
- if (node.nodeType === Node.TEXT_NODE) {
4154
- const focusedNodeDto = stateEntityRenderingRegistry.getEntityByDOM(node.parentElement);
4155
- if (focusedNodeDto) {
4156
- const cell = getParentBlockByType(focusedNodeDto.parent, RTETableCellBlock);
4157
- if (cell) {
4158
- selectedCells.add(cell);
4159
- return Array.from(selectedCells);
4160
- }
4161
- }
4162
- }
4163
- node.childNodes.forEach((child) => this.filterSelectedCell(range, child).forEach((cell) => {
4164
- selectedCells.add(cell);
4165
- }));
4166
- }
4167
- return Array.from(selectedCells);
4168
- };
4169
- /**
4170
- * Update the styles of the selected cells.
4171
- *
4172
- * @param {RTETableCellBlock} cell - The cell to update style for.
4173
- * @param {number} total - The total number of selected cells.
4174
- */
4175
- this.updateSelectedStyles = (cell, total) => {
4176
- const selectedClass = total === 1 ? 'v-rte-table-cell-focused' : 'v-rte-table-cell-selected';
4177
- const cellRef = stateEntityRenderingRegistry.getDOMByEntity(cell);
4178
- if (cellRef) {
4179
- cellRef.classList.add(selectedClass);
4180
- }
4181
- };
4182
- /**
4183
- * Handles the document mouse up event to finish drag selection.
4184
- */
4185
- this.handleDocMouseUp = () => {
4186
- this.endDrag();
4187
- const safeDocument = tryGetDocument();
4188
- if (safeDocument) {
4189
- safeDocument.removeEventListener('mouseup', this.handleDocMouseUp);
4190
- }
4191
- };
4192
- /**
4193
- * Resets the table selection when clicking outside the table.
4194
- */
4195
- this.handleContentClick = () => {
4196
- this.clearSelection();
4197
- const editorContent =
4198
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4199
- this.context.host.shadowRoot.querySelector('.rich-text-editor-container');
4200
- if (editorContent) {
4201
- editorContent.removeEventListener('mousedown', this.handleContentClick, true);
4202
- }
4203
- };
4204
- }
4205
- /**
4206
- * Compute all cells inside the rectangle defined by the start and end cells.
4207
- *
4208
- * Note: this only performs the calculation and does not modify the internal `selectedCells` set,
4209
- * so callers can decide how to apply the result.
4210
- *
4211
- * @param {RTETableCellBlock | RTETableHeadCellBlock} anchor - Drag start cell (anchor cell).
4212
- * @param {RTETableCellBlock | RTETableHeadCellBlock} focus - Current drag focus cell.
4213
- * @returns {(RTETableCellBlock | RTETableHeadCellBlock)[]} All cells in the rectangular selection area.
4214
- */
4215
- static computeRectRange(anchor, focus) {
4216
- // Collect all row blocks (from both head and body) under the same table,
4217
- // then compute the rectangle over this flattened row list.
4218
- const anchorRow = anchor.parent;
4219
- const focusRow = focus.parent;
4220
- const anchorSection = anchorRow.parent;
4221
- const focusSection = focusRow.parent;
4222
- const anchorTable = anchorSection.parent;
4223
- const focusTable = focusSection.parent;
4224
- // If they are not in the same table at all, just return empty.
4225
- if (anchorTable !== focusTable) {
4226
- return [];
4227
- }
4228
- // Flatten head rows (if any) + body rows into a single ordered list.
4229
- const allRows = [];
4230
- const tableChildren = anchorTable.children;
4231
- tableChildren.forEach((section) => {
4232
- section.children.forEach((row) => allRows.push(row));
4233
- });
4234
- const anchorRowIndex = allRows.indexOf(anchorRow);
4235
- const focusRowIndex = allRows.indexOf(focusRow);
4236
- const startRow = Math.min(anchorRowIndex, focusRowIndex);
4237
- const endRow = Math.max(anchorRowIndex, focusRowIndex);
4238
- const anchorColIndex = anchorRow.children.indexOf(anchor);
4239
- const focusColIndex = focusRow.children.indexOf(focus);
4240
- const startCol = Math.min(anchorColIndex, focusColIndex);
4241
- const endCol = Math.max(anchorColIndex, focusColIndex);
4242
- const result = [];
4243
- for (let r = startRow; r <= endRow; r++) {
4244
- const row = allRows[r];
4245
- for (let c = startCol; c <= endCol; c++) {
4246
- const cell = row.children[c];
4247
- if (cell) {
4248
- result.push(cell);
4249
- }
4250
- }
4251
- }
4252
- return result;
4253
- }
4254
- /**
4255
- * Clean up event listeners.
4256
- */
4257
- destroy() {
4258
- this.removeSelectionChangeListener();
4259
- }
4260
- /**
4261
- * Inject the extension context and set up selection change listener.
4262
- *
4263
- * @param {RTEExtensionContext} context - The extension context.
4264
- */
4265
- init(context) {
4266
- this.context = context;
4267
- this.addSelectionChangeListener();
4268
- }
4269
- /**
4270
- * Set the selected cells to the given list, replacing any existing selection.
4271
- *
4272
- * @param {RTETableCellBlock} cells - The cells to select.
4273
- */
4274
- setSelectedCells(cells) {
4275
- this.updateSelectedCells(cells);
4276
- }
4277
- /**
4278
- * Get all currently selected cells.
4279
- *
4280
- * @returns {(RTETableCellBlock | RTETableHeadCellBlock)[]} A flat list of selected cells.
4281
- */
4282
- getSelectedCells() {
4283
- return Array.from(this.selectedCells);
4284
- }
4285
- /**
4286
- * Handle mouse down on a cell: start drag selection from the given cell.
4287
- *
4288
- * @param {HTMLElement} cellRef - The cell where the drag starts.
4289
- */
4290
- focusCell(cellRef) {
4291
- const cellBlock = stateEntityRenderingRegistry.getEntityByDOM(cellRef);
4292
- if (cellBlock) {
4293
- this.anchorCell = cellBlock;
4294
- this.setSelectedCells([cellBlock]);
4295
- this.addListeners();
4296
- }
4297
- }
4298
- /**
4299
- * Handle drag over a cell (typically called on `mouseenter` while dragging).
4300
- * Maintains a rectangular selection between the anchor cell and the current cell.
4301
- *
4302
- * @param {RTETableCellBlock | RTETableHeadCellBlock} cell - The cell currently under the drag.
4303
- */
4304
- dragOver(cell) {
4305
- if (!this.anchorCell) {
4306
- return;
4307
- }
4308
- // Always compute the rectangle strictly from the original anchorCell
4309
- // (the cell where startDrag was first called) to the current cell.
4310
- const rectCells = RTETableSelection.computeRectRange(this.anchorCell, cell);
4311
- if (rectCells.length > 1) {
4312
- this.startDrag();
4313
- }
4314
- if (this.dragging) {
4315
- this.preventTextSelection(rectCells);
4316
- this.updateSelectedCells(rectCells, { debounceSync: true });
4317
- }
4318
- }
4319
- /**
4320
- * Handle mouse up: stop drag selection.
4321
- */
4322
- endDrag() {
4323
- this.dragging = false;
4324
- // Reset anchor after drag ends so the next drag can start from a new cell.
4325
- this.anchorCell = null;
4326
- }
4327
- /**
4328
- * Clear the current selection state without changing the drag flag.
4329
- */
4330
- clearSelection() {
4331
- this.selectedCells.forEach((cell) => {
4332
- const cellRef = stateEntityRenderingRegistry.getDOMByEntity(cell);
4333
- if (cellRef) {
4334
- cellRef.classList.remove('v-rte-table-cell-selected', 'v-rte-table-cell-focused');
4335
- }
4336
- });
4337
- this.selectedCells.clear();
4338
- }
4339
- /**
4340
- * Add a selectionchange listener to the document to handle cell click selection.
4341
- */
4342
- addSelectionChangeListener() {
4343
- const safeDocument = tryGetDocument();
4344
- if (safeDocument) {
4345
- safeDocument.addEventListener('selectionchange', this.handleSelectionChangeWithDebounce);
4346
- }
4347
- }
4348
- /**
4349
- * Remove the selectionchange listener from the document.
4350
- */
4351
- removeSelectionChangeListener() {
4352
- const safeDocument = tryGetDocument();
4353
- if (safeDocument) {
4354
- safeDocument.removeEventListener('selectionchange', this.handleSelectionChangeWithDebounce);
4355
- }
4356
- }
4357
- /**
4358
- * Handle selection change events from the document for the cell click selection.
4359
- */
4360
- handleSelectionChange() {
4361
- if (this.dragging) {
4362
- this.syncRTESelectionWithDebounce();
4363
- return;
4364
- }
4365
- const selection = this.context.getSelection();
4366
- if (selection.rangeCount > 0) {
4367
- const range = selection.getRangeAt(0);
4368
- const commonAncestorContainer = range.commonAncestorContainer;
4369
- const rangeInTable = !!findParent(commonAncestorContainer, `table.${RTETableBlockRenderer.EXTENSION_TABLE_CLASS}`);
4370
- if (rangeInTable) {
4371
- const selectedCells = this.filterSelectedCell(range, commonAncestorContainer);
4372
- this.setSelectedCells(selectedCells);
4373
- }
4374
- }
4375
- }
4376
- /**
4377
- * Mark the beginning of a drag operation.
4378
- */
4379
- startDrag() {
4380
- this.dragging = true;
4381
- }
4382
- /**
4383
- * Add the given cells to the current selection set.
4384
- *
4385
- * @param {RTETableCellBlock[]} cells - The cells to add to the selection.
4386
- * @param {{ debounceSync?: boolean }} [options] - Options for updating selection.
4387
- * @param {boolean} [options.debounceSync] - Whether to debounce the RTE selection sync.
4388
- */
4389
- updateSelectedCells(cells, { debounceSync } = {}) {
4390
- this.clearSelection();
4391
- cells.forEach((cell) => {
4392
- this.selectedCells.add(cell);
4393
- this.updateSelectedStyles(cell, cells.length);
4394
- });
4395
- if (debounceSync) {
4396
- this.syncRTESelectionWithDebounce();
4397
- }
4398
- else {
4399
- this.syncRTESelection();
4400
- }
4401
- }
4402
- /**
4403
- * Synchronizes the rich text editor selection with the selected table cells.
4404
- */
4405
- syncRTESelection() {
4406
- const cells = Array.from(this.selectedCells);
4407
- const nodes = cells
4408
- .flatMap((cell) => {
4409
- return cell.children.flatMap((block) => {
4410
- return block.children.flatMap((node) => {
4411
- // TODO: Nested table deletion will track in https://gethired.atlassian.net/browse/VD-7860
4412
- if (node instanceof RTENode) {
4413
- return node;
4414
- }
4415
- });
4416
- });
4417
- })
4418
- .filter(isNonNullable);
4419
- if (cells.length > 1) {
4420
- this.context.setSelectedNodes(nodes, {
4421
- startNode: nodes[0],
4422
- endNode: nodes[nodes.length - 1],
4423
- startOffset: 0,
4424
- endOffset: nodes[nodes.length - 1].getRangeEndOffset(),
4425
- });
4426
- }
4427
- }
4428
- /**
4429
- * Prevents text selection during drag operations.
4430
- *
4431
- * @param {RTETableCellBlock[]} selectedCells - The currently selected table cells.
4432
- */
4433
- preventTextSelection(selectedCells) {
4434
- const selection = this.context.getSelection();
4435
- selection.removeAllRanges();
4436
- if (selectedCells.length > 0) {
4437
- const startContainer = stateEntityRenderingRegistry.getDOMByEntity(selectedCells[0]);
4438
- if (startContainer) {
4439
- const newRange = new Range();
4440
- newRange.setStart(startContainer, 0);
4441
- newRange.setEnd(startContainer, 0);
4442
- selection.addRange(newRange);
4443
- }
4444
- }
4445
- }
4446
- /**
4447
- * Adds a mouse up listener to the document to finish drag selection.
4448
- *
4449
- */
4450
- addListeners() {
4451
- const safeDocument = tryGetDocument();
4452
- if (safeDocument) {
4453
- safeDocument.addEventListener('mouseup', this.handleDocMouseUp);
4454
- }
4455
- const editorContent =
4456
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4457
- this.context.host.shadowRoot.querySelector('.rich-text-editor-container');
4458
- if (editorContent) {
4459
- editorContent.addEventListener('mousedown', this.handleContentClick, true);
4460
- }
4461
- }
4462
- }
4463
-
4464
- /**
4465
- * Strategy class for handling converting selected rows to header rows or reverting them back to normal rows.
4466
- */
4467
- class ToggleHeaderRowStrategy extends ActionHandleStrategy {
4468
- /**
4469
- * @inheritDoc
4470
- */
4471
- handleAction(action, target) {
4472
- const { selectedRows } = action;
4473
- const headerRows = [];
4474
- const bodyRows = [];
4475
- for (const row of selectedRows) {
4476
- if (row.parent instanceof RTETableBodyBlock) {
4477
- bodyRows.push(row);
4478
- }
4479
- else {
4480
- headerRows.push(row);
4481
- }
4482
- }
4483
- if (bodyRows.length > 0) {
4484
- this.convertToHeaderRows(bodyRows, target);
4485
- }
4486
- else {
4487
- this.revertToBodyRows(headerRows, target);
4488
- }
4489
- const root = this.getRootContent(target);
4490
- if (root) {
4491
- const focusNode = selectedRows[0].getFirstNode();
4492
- focusNode && root.apply(new UpdateCursorPositionAction(focusNode, 0));
4493
- }
4494
- }
4495
- /**
4496
- * Converts normal rows to header rows.
4497
- *
4498
- * @param {RTETableRowBlock[]} rows - The table row blocks to convert.
4499
- * @param {RTETableBlock} table - The table block containing the rows.
4500
- */
4501
- convertToHeaderRows(rows, table) {
4502
- let tableHead = table.children.find((block) => block instanceof RTETableHeadBlock);
4503
- const tableBody = rows[0].parent;
4504
- if (!tableHead) {
4505
- tableHead = RTETableHeadBlock.from({
4506
- id: generateUUID(),
4507
- type: 'table-head',
4508
- children: [],
4509
- });
4510
- table.apply(new InsertChildrenBeforeAction(tableBody, tableHead));
4511
- }
4512
- const endIndex = tableBody.children.indexOf(rows[rows.length - 1]);
4513
- const shouldConvertRows = tableBody.children.slice(0, endIndex + 1);
4514
- for (let i = 0; i < shouldConvertRows.length; i++) {
4515
- const rowBlock = shouldConvertRows[i];
4516
- rowBlock.children = rowBlock.children.map((cell) => this.convertTdToTh(cell));
4517
- tableBody.apply(new RemoveChildrenAction(rowBlock));
4518
- }
4519
- tableHead.apply(new AppendChildrenAction(shouldConvertRows));
4520
- }
4521
- /**
4522
- * Converts header rows back to normal rows.
4523
- *
4524
- * @param {RTETableRowBlock[]} rows - The table row blocks to convert.
4525
- * @param {RTETableBlock} table - The table block containing the rows.
4526
- */
4527
- revertToBodyRows(rows, table) {
4528
- let tableBody = table.children.find((block) => block instanceof RTETableBodyBlock);
4529
- const tableHead = rows[0].parent;
4530
- if (!tableBody) {
4531
- tableBody = RTETableBodyBlock.from({
4532
- id: generateUUID(),
4533
- type: 'table-body',
4534
- children: [],
4535
- });
4536
- table.apply(new InsertChildrenAfterAction(tableHead, tableBody));
4537
- }
4538
- const firstBodyRow = tableBody.children[0];
4539
- const startIndex = tableHead.children.indexOf(rows[0]);
4540
- const shouldConvertRows = tableHead.children.slice(startIndex);
4541
- for (let i = 0; i < shouldConvertRows.length; i++) {
4542
- const rowBlock = shouldConvertRows[i];
4543
- tableHead.apply(new RemoveChildrenAction(rowBlock));
4544
- rowBlock.children = this.convertThToTd(rowBlock, firstBodyRow);
4545
- if (firstBodyRow) {
4546
- tableBody.apply(new InsertChildrenBeforeAction(firstBodyRow, rowBlock));
4547
- }
4548
- }
4549
- if (!firstBodyRow) {
4550
- tableBody.apply(new AppendChildrenAction(shouldConvertRows));
4551
- }
4552
- }
4553
- /**
4554
- * Converts a table data cell to a table header cell.
4555
- *
4556
- * @param {RTETableHeadCellBlock} cell - The table cell block to convert.
4557
- * @returns {RTETableHeadCellBlock} The converted table header cell block.
4558
- */
4559
- convertTdToTh(cell) {
4560
- if (cell instanceof RTETableHeadCellBlock) {
4561
- return cell;
4562
- }
4563
- const headCell = RTETableHeadCellBlock.from(cell.toJSON());
4564
- headCell.parent = cell.parent;
4565
- return headCell;
4566
- }
4567
- /**
4568
- * Converts table header cells to table body cells.
4569
- *
4570
- * @param {RTETableRowBlock} row - The table row block containing the cells.
4571
- * @param {Nullable<RTETableRowBlock>} referenceRow - The reference row for comparison.
4572
- * @returns {RTETableCellBlock[]} The converted table body cell blocks.
4573
- */
4574
- convertThToTd(row, referenceRow) {
4575
- return row.children.map((cell, index) => {
4576
- let bodyCell = cell;
4577
- if (!referenceRow || referenceRow.children[index].type !== cell.type) {
4578
- const cellJSON = cell.toJSON();
4579
- bodyCell = RTETableCellBlock.from(cellJSON);
4580
- }
4581
- bodyCell.parent = row;
4582
- return bodyCell;
4583
- });
4584
- }
4585
- }
4586
-
4587
- /**
4588
- * Strategy to handle the insertion of a table column into the RTETable.
4589
- */
4590
- class InsertTableColumnStrategy extends TableColumnStrategy {
4591
- /**
4592
- * @inheritDoc
4593
- */
4594
- handleAction(action, target) {
4595
- const insertDirection = action.insertDirection;
4596
- const [startCellIndex, endCellIndex] = this.getBoundaryCellIndexOfRow(action.tableCellInsertRange);
4597
- const allTableRows = getAllTableRows(target);
4598
- allTableRows.forEach((row) => {
4599
- if (insertDirection === InsertTableColumnDirection.LEFT) {
4600
- const newCell = this.generateTableCell(row.children[startCellIndex]);
4601
- row.apply(new InsertChildrenBeforeAction(row.children[startCellIndex], newCell));
4602
- }
4603
- else {
4604
- const newCell = this.generateTableCell(row.children[endCellIndex + 1] || row.children[endCellIndex]);
4605
- row.apply(new InsertChildrenAfterAction(row.children[endCellIndex], newCell));
4606
- }
4607
- });
4608
- }
4609
- /**
4610
- * Generate a new table cell based on the original cell type.
4611
- *
4612
- * @param {RTETableCellBlock | RTETableHeadCellBlock} originalCell The original table cell block to base the new cell on.
4613
- * @returns {RTETableCellBlock | RTETableHeadCellBlock} The newly generated table cell block.
4614
- */
4615
- generateTableCell(originalCell) {
4616
- if (originalCell instanceof RTETableHeadCellBlock) {
4617
- return RTETableHeadCellBlock.from(getDefaultCellBlockTemplate(originalCell.type));
4618
- }
4619
- return RTETableCellBlock.from(getDefaultCellBlockTemplate(originalCell.type));
4620
- }
4621
- }
4622
-
4623
- /**
4624
- * Strategy to handle the deletion of table column from the parent.
4625
- */
4626
- class DeleteTableColumnStrategy extends TableColumnStrategy {
4627
- /**
4628
- * Deletes the specified table column and updates the cursor position.
4629
- *
4630
- * @param {DeleteTableColumnAction} action - The action containing the table column to delete.
4631
- * @param {RTETableBlock} target - The target table block from which the column will be deleted.
4632
- */
4633
- handleAction(action, target) {
4634
- const [startCellIndex, endCellIndex] = this.getBoundaryCellIndexOfRow(action.tableCellDeleteRange);
4635
- const allTableRows = getAllTableRows(target);
4636
- // Find the next focusable cell before deletion
4637
- const nextFocusableCell = this.findNextFocusableCell(action.tableCellDeleteRange, [startCellIndex, endCellIndex]);
4638
- allTableRows.forEach((row) => {
4639
- this.deleteCellsInRow(row, startCellIndex, endCellIndex);
4640
- });
4641
- const root = this.getRootContent(target);
4642
- const nextFocusNode = getFirstNode(nextFocusableCell);
4643
- if (root && nextFocusNode) {
4644
- root.apply(new UpdateCursorPositionAction(nextFocusNode));
4645
- }
4646
- }
4647
- /**
4648
- * Find the next focusable cell either after the deleted range or before it.
4649
- *
4650
- * @param {RTETableCellBlock[]} tableCellBlockDeleteRange - The range of table cell blocks to be deleted.
4651
- * @param {number[]} indexRange - The start and end indices of the cells to be deleted.
4652
- * @returns {Nullable<RTETableCellBlock | RTETableHeadCellBlock>} The next focusable cell.
4653
- */
4654
- findNextFocusableCell(tableCellBlockDeleteRange, indexRange) {
4655
- const cellAfterEndOfRange = tableCellBlockDeleteRange[tableCellBlockDeleteRange.length - 1].parent.children[indexRange[indexRange.length - 1] + 1];
4656
- const cellBeforeStartOfRange = tableCellBlockDeleteRange[0].parent.children[indexRange[0] - 1];
4657
- return cellAfterEndOfRange !== null && cellAfterEndOfRange !== void 0 ? cellAfterEndOfRange : cellBeforeStartOfRange;
4658
- }
4659
- /**
4660
- * Deletes cells in a given row from start index to end index.
4661
- *
4662
- * @param {RTETableRowBlock} row - The table row block.
4663
- * @param {number} startCellIndex - The start index of the cell to delete.
4664
- * @param {number} endCellIndex - The end index of the cell to delete.
4665
- */
4666
- deleteCellsInRow(row, startCellIndex, endCellIndex) {
4667
- const needDeleteCells = [];
4668
- for (let index = startCellIndex; index <= endCellIndex; index++) {
4669
- needDeleteCells.push(row.children[index]);
4670
- }
4671
- needDeleteCells.forEach((cell) => {
4672
- row.apply(new RemoveChildrenAction(cell));
4673
- });
4674
- }
4675
- }
4676
-
4677
- /**
4678
- * Strategy to handle the selection of a table column.
4679
- */
4680
- class SelectTableColumnStrategy extends TableColumnStrategy {
4681
- /**
4682
- * @inheritDoc
4683
- */
4684
- handleAction(action, target) {
4685
- const [startCellIndex, endCellIndex] = this.getBoundaryCellIndexOfRow(action.tableCellSelectRange);
4686
- const allTableRows = getAllTableRows(target);
4687
- const allNeedSelectedCells = [];
4688
- allTableRows.forEach((row) => {
4689
- for (let cellIndex = startCellIndex; cellIndex <= endCellIndex; cellIndex++) {
4690
- const cellToSelect = row.children[cellIndex];
4691
- allNeedSelectedCells.push(cellToSelect);
4692
- }
4693
- });
4694
- action.selectCellCallback(allNeedSelectedCells);
4695
- }
4696
- }
4697
-
4698
- /**
4699
- * Interceptor to prevent insertion of non-cell blocks into a table row.
4700
- */
4701
- class PreventRowInsertInterceptor extends ActionHandlerInterceptor {
4702
- /**
4703
- * Prevent insertion if any of the children to be inserted is not a table cell block.
4704
- *
4705
- * @param {InsertChildrenBeforeAction} action - the action to be intercepted
4706
- * @returns {boolean} - true if the insertion should be intercepted, false otherwise
4707
- */
4708
- canIntercept(action) {
4709
- return action.childrenToBeInserted.some((item) => !(item instanceof RTETableCellBlock));
4710
- }
4711
- /**
4712
- * @inheritDoc
4713
- */
4714
- intercept() {
4715
- }
4716
- }
4717
-
4718
- /**
4719
- * Function extension class for Vega Rich Text Editor.
4720
- */
4721
- class VegaRTETableExtension extends VegaRTEExtension {
4722
- constructor() {
4723
- super();
4724
- this.toolbarButtonRenderer = new RTETableToolbarButtonRenderer();
4725
- this.tableBlockRenderer = new RTETableBlockRenderer();
4726
- this.tableRowBlockRenderer = new RTETableRowBlockRenderer();
4727
- this.tableCellRenderer = new RTETableCellRenderer();
4728
- this.tableHeadCellRenderer = new RTETableHeadCellRenderer();
4729
- this.tableSelection = new RTETableSelection();
4730
- this.registerToolbarButtonRenderer('table', this.toolbarButtonRenderer);
4731
- this.registerBlockBasicStrategies(RTETableBlock.name);
4732
- this.registerBlockBasicStrategies(RTETableHeadBlock.name);
4733
- this.registerBlockBasicStrategies(RTETableHeadCellBlock.name);
4734
- this.registerBlockBasicStrategies(RTETableRowBlock.name);
4735
- this.registerBlockBasicStrategies(RTETableCellBlock.name);
4736
- this.registerBlockBasicStrategies(RTETableBodyBlock.name);
4737
- this.registerRenderer('table-block', this.tableBlockRenderer);
4738
- this.registerRenderer('table-head', new RTETableHeadRenderer());
4739
- this.registerRenderer('table-head-cell', this.tableHeadCellRenderer);
4740
- this.registerRenderer('table-row', this.tableRowBlockRenderer);
4741
- this.registerRenderer('table-cell', this.tableCellRenderer);
4742
- this.registerRenderer('table-body', new RTETableBodyRenderer());
4743
- this.registerRenderer('table-caption', new RTETableCaptionRenderer());
4744
- this.registerNode('table-block', RTETableBlock);
4745
- this.registerNode('table-head', RTETableHeadBlock);
4746
- this.registerNode('table-head-cell', RTETableHeadCellBlock);
4747
- this.registerNode('table-row', RTETableRowBlock);
4748
- this.registerNode('table-cell', RTETableCellBlock);
4749
- this.registerNode('table-body', RTETableBodyBlock);
4750
- this.registerNode('table-caption', RTETableCaptionBlock);
4751
- }
4752
- /**
4753
- * Initializes the extension with the given context
4754
- *
4755
- * @param {RTEExtensionContext} context - extension context
4756
- */
4757
- initialExtension(context) {
4758
- super.initialExtension(context);
4759
- this.tableSelection.init(context);
4760
- const tableExtensionContext = Object.assign(Object.assign({}, context), { tableSelection: this.tableSelection });
4761
- this.toolbarButtonRenderer.injectExtensionContext(tableExtensionContext);
4762
- this.tableBlockRenderer.injectExtensionContext(tableExtensionContext);
4763
- this.tableCellRenderer.injectExtensionContext(tableExtensionContext);
4764
- this.tableHeadCellRenderer.injectExtensionContext(tableExtensionContext);
4765
- }
4766
- /**
4767
- * @inheritDoc
4768
- */
4769
- destroyExtension() {
4770
- this.tableSelection.destroy();
4771
- }
4772
- }
4773
- (() => {
4774
- const insertTableBlockStrategy = new InsertTableBlockStrategy();
4775
- const deleteTableBlockStrategy = new DeleteTableBlockStrategy();
4776
- VegaRTEExtension.registerActionHandleStrategy(VegaRTEContent.name, INSERT_TABLE_BLOCK, insertTableBlockStrategy);
4777
- VegaRTEExtension.registerActionHandleStrategy(VegaRTEContent.name, DELETE_TABLE_BLOCK, deleteTableBlockStrategy);
4778
- VegaRTEExtension.registerActionHandleStrategy(RTETableCellBlock.name, DELETE_TABLE_BLOCK, deleteTableBlockStrategy);
4779
- VegaRTEExtension.registerActionHandleStrategy(RTETableHeadCellBlock.name, DELETE_TABLE_BLOCK, deleteTableBlockStrategy);
4780
- VegaRTEExtension.registerActionHandleStrategy(RTETextBlock.name, INSERT_TABLE_BLOCK, insertTableBlockStrategy);
4781
- VegaRTEExtension.registerActionHandleStrategy(RTEImageBlock.name, INSERT_TABLE_BLOCK, insertTableBlockStrategy);
4782
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, INSERT_TABLE_ROW, new InsertTableRowStrategy());
4783
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, DELETE_TABLE_ROW, new DeleteTableRowStrategy());
4784
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, TOGGLE_HEADER_ROW, new ToggleHeaderRowStrategy());
4785
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, INSERT_TABLE_COLUMN, new InsertTableColumnStrategy());
4786
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, DELETE_TABLE_COLUMN, new DeleteTableColumnStrategy());
4787
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, TOGGLE_HEADER_TABLE_COLUMN, new ToggleHeaderTableColumnStrategy());
4788
- VegaRTEExtension.registerActionHandleStrategy(RTETableBlock.name, SELECT_TABLE_COLUMN, new SelectTableColumnStrategy());
4789
- VegaRTEExtension.registerActionHandlerInterceptor(RTETextBlock.name, ModifyContentActionType.DELETE_BLOCK_CONTENT, new PreventCellContentDeleteInterceptor());
4790
- VegaRTEExtension.registerActionHandlerInterceptor(RTETableRowBlock.name, ModifyContentActionType.INSERT_CHILDREN_BEFORE, new PreventRowInsertInterceptor());
4791
- VegaRTEExtension.registerActionHandlerInterceptor(RTETableCellBlock.name, ModifyContentActionType.DELETE_CHILDREN, new PreventCellChildrenRemoveInterceptor());
4792
- VegaRTEExtension.registerActionHandlerInterceptor(RTETableHeadCellBlock.name, ModifyContentActionType.DELETE_CHILDREN, new PreventCellChildrenRemoveInterceptor());
4793
- })();
4794
-
4795
- export { ActionHandlerInterceptor as A, InsertNodeToNearestRootAction as I, RTETokenToolbarButtonRenderer as R, VegaLoader as V, VegaNotify as a, VegaThemeManager as b, VegaDialog as c, VegaEventManager$1 as d, VegaZIndexManager$1 as e, VegaSkeletonLoader as f, VegaRTETokenExtension as g, VegaRTEFunctionExtension as h, VegaRTETableExtension as i, VegaRTEToolbarButtonRenderer as j, VegaRTEExtension as k, VegaRTEExtensionRenderer as l, RTETokenNode as m, RTETokenNodeRenderer as n, InternalVegaZIndexManager$1 as o };