@heartlandone/vega 2.35.0-RTE-preview → 2.36.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 (256) hide show
  1. package/dist/cjs/{app-globals-fb3693cc.js → app-globals-13d4a0be.js} +3 -4
  2. package/dist/cjs/{list-block-91116257.js → content-state-2336e368.js} +130 -4
  3. package/dist/cjs/{element-appender-slimmer-700b7004.js → element-appender-slimmer-77f9c4a0.js} +11 -3
  4. package/dist/cjs/{form-field-controller-slimmer-7ef32059.js → form-field-controller-slimmer-8d4d2723.js} +56 -25
  5. package/dist/cjs/{image-annotation-action-d3e1699c.js → image-annotation-action-4135ca69.js} +12 -12
  6. package/dist/cjs/index.cjs.js +5 -6
  7. package/dist/cjs/loader.cjs.js +5 -6
  8. package/dist/cjs/{node-annotation.abstract-e5d3a859.js → node-annotation.abstract-c3c07af5.js} +1 -1
  9. package/dist/cjs/{sub-state-notify-slimmer-c2e08e06.js → sub-state-notify-slimmer-994eb848.js} +1 -1
  10. package/dist/cjs/{sub-state-observer-slimmer-b97e46b5.js → sub-state-observer-slimmer-080a4bea.js} +1 -1
  11. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  12. package/dist/cjs/vega-calendar_3.cjs.entry.js +3 -3
  13. package/dist/cjs/vega-checkbox_2.cjs.entry.js +2 -2
  14. package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
  15. package/dist/cjs/vega-combo-box.cjs.entry.js +2 -2
  16. package/dist/cjs/vega-date-picker_2.cjs.entry.js +532 -115
  17. package/dist/cjs/vega-dropdown_5.cjs.entry.js +68 -19
  18. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  19. package/dist/cjs/vega-file-uploader.cjs.entry.js +120 -40
  20. package/dist/cjs/vega-font.cjs.entry.js +8 -1
  21. package/dist/cjs/vega-form.cjs.entry.js +11 -6
  22. package/dist/cjs/vega-image-uploader.cjs.entry.js +2 -2
  23. package/dist/cjs/vega-input-credit-card.cjs.entry.js +2 -2
  24. package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
  25. package/dist/cjs/vega-input-phone-number.cjs.entry.js +51 -5
  26. package/dist/cjs/vega-input-range.cjs.entry.js +2 -2
  27. package/dist/cjs/vega-input-select.cjs.entry.js +2 -2
  28. package/dist/cjs/vega-input.cjs.entry.js +3 -3
  29. package/dist/cjs/{vega-internal-event-id-85b68849.js → vega-internal-event-id-b12071ea.js} +2 -0
  30. package/dist/cjs/vega-left-nav_5.cjs.entry.js +3 -3
  31. package/dist/cjs/vega-pagination.cjs.entry.js +3 -3
  32. package/dist/cjs/vega-popover_2.cjs.entry.js +2 -2
  33. package/dist/cjs/vega-radio_2.cjs.entry.js +2 -2
  34. package/dist/cjs/vega-rich-text-content.cjs.entry.js +134 -110
  35. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +182 -118
  36. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
  37. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
  38. package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
  39. package/dist/cjs/vega-signature-capture.cjs.entry.js +2 -2
  40. package/dist/cjs/vega-stepper.cjs.entry.js +2 -2
  41. package/dist/cjs/vega-tab-group_2.cjs.entry.js +35 -24
  42. package/dist/cjs/vega-table_8.cjs.entry.js +3 -3
  43. package/dist/cjs/vega-textarea.cjs.entry.js +2 -2
  44. package/dist/cjs/vega-time-picker_2.cjs.entry.js +3 -3
  45. package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
  46. package/dist/cjs/vega-tooltip_2.cjs.entry.js +1 -1
  47. package/dist/cjs/vega.cjs.js +5 -6
  48. package/dist/collection/components/vega-date-picker/assets/icons.js +3 -0
  49. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.js +23 -1
  50. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.js +316 -0
  51. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +60 -2
  52. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js +16 -4
  53. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +24 -0
  54. package/dist/collection/components/vega-date-picker/vega-date-picker.js +59 -0
  55. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +56 -14
  56. package/dist/collection/components/vega-dropdown/vega-dropdown.js +37 -0
  57. package/dist/collection/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-file-limit-controller.js +35 -0
  58. package/dist/collection/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.js +36 -7
  59. package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +41 -0
  60. package/dist/collection/components/vega-font/slimmers/renderers/vega-font-renderer.js +8 -1
  61. package/dist/collection/components/vega-form/vega-form.js +13 -4
  62. package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +38 -3
  63. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +35 -0
  64. package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
  65. package/dist/collection/components/vega-pagination/internal/vega-pagination-page-size-selector.js +2 -2
  66. package/dist/collection/components/vega-pagination/vega-pagination.js +24 -1
  67. package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +33 -19
  68. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +11 -4
  69. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-renderer.abstract.js +8 -10
  70. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +104 -0
  71. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.js +9 -7
  72. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +9 -7
  73. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +10 -12
  74. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +9 -104
  75. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +14 -13
  76. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.js +8 -10
  77. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +9 -11
  78. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.js +2 -0
  79. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-not-li-child-to-rte-list-item-block.js +49 -0
  80. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +15 -1
  81. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +4 -2
  82. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-page-index-controller.js +22 -22
  83. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-selected-target-controller.js +9 -1
  84. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-direction-button-renderer.js +4 -1
  85. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
  86. package/dist/collection/helpers/slimmers/field-error-controller-silmmer.js +8 -2
  87. package/dist/collection/helpers/slimmers/field-error-ui-controller-slimmer.js +10 -16
  88. package/dist/collection/helpers/slimmers/form-field-message-translator.js +17 -0
  89. package/dist/collection/helpers/slimmers/form-field-valid-invoke-slimmer.js +6 -3
  90. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +1 -1
  91. package/dist/collection/helpers/ui/element-appender.js +10 -2
  92. package/dist/collection/helpers/validator/form-field-controller.js +11 -3
  93. package/dist/collection/helpers/validator/rules/rich-text-editor-required-rule.js +4 -3
  94. package/dist/collection/helpers/validator/test/rules/rich-text-editor-required-rule.test.js +43 -0
  95. package/dist/collection/helpers/validator/validation-rule-handler/form-field-validation-rule-handler-chain.js +7 -2
  96. package/dist/esm/{app-globals-5b154b6d.js → app-globals-9ded4406.js} +2 -3
  97. package/dist/esm/{list-block-ba82c846.js → content-state-42a06d75.js} +130 -3
  98. package/dist/esm/{element-appender-slimmer-d71e3109.js → element-appender-slimmer-f3eceb79.js} +11 -3
  99. package/dist/esm/{form-field-controller-slimmer-af969d03.js → form-field-controller-slimmer-6ef5641b.js} +57 -26
  100. package/dist/esm/{image-annotation-action-a8e00f28.js → image-annotation-action-8a12e0bd.js} +2 -2
  101. package/dist/esm/index.js +3 -4
  102. package/dist/esm/loader.js +5 -6
  103. package/dist/esm/{node-annotation.abstract-d7d52bce.js → node-annotation.abstract-af11b11b.js} +1 -1
  104. package/dist/esm/polyfills/core-js.js +0 -0
  105. package/dist/esm/polyfills/dom.js +0 -0
  106. package/dist/esm/polyfills/es5-html-element.js +0 -0
  107. package/dist/esm/polyfills/index.js +0 -0
  108. package/dist/esm/polyfills/system.js +0 -0
  109. package/dist/esm/{sub-state-notify-slimmer-48bad548.js → sub-state-notify-slimmer-7d5a295a.js} +1 -1
  110. package/dist/esm/{sub-state-observer-slimmer-403cc4e7.js → sub-state-observer-slimmer-901c7953.js} +1 -1
  111. package/dist/esm/vega-button-group_2.entry.js +3 -3
  112. package/dist/esm/vega-calendar_3.entry.js +3 -3
  113. package/dist/esm/vega-checkbox_2.entry.js +2 -2
  114. package/dist/esm/vega-color-picker.entry.js +2 -2
  115. package/dist/esm/vega-combo-box.entry.js +2 -2
  116. package/dist/esm/vega-date-picker_2.entry.js +533 -116
  117. package/dist/esm/vega-dropdown_5.entry.js +68 -19
  118. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  119. package/dist/esm/vega-file-uploader.entry.js +120 -40
  120. package/dist/esm/vega-font.entry.js +8 -1
  121. package/dist/esm/vega-form.entry.js +11 -6
  122. package/dist/esm/vega-image-uploader.entry.js +2 -2
  123. package/dist/esm/vega-input-credit-card.entry.js +2 -2
  124. package/dist/esm/vega-input-numeric.entry.js +3 -3
  125. package/dist/esm/vega-input-phone-number.entry.js +51 -5
  126. package/dist/esm/vega-input-range.entry.js +2 -2
  127. package/dist/esm/vega-input-select.entry.js +2 -2
  128. package/dist/esm/vega-input.entry.js +3 -3
  129. package/dist/esm/{vega-internal-event-id-4af5c6e9.js → vega-internal-event-id-458939b6.js} +2 -1
  130. package/dist/esm/vega-left-nav_5.entry.js +3 -3
  131. package/dist/esm/vega-pagination.entry.js +3 -3
  132. package/dist/esm/vega-popover_2.entry.js +2 -2
  133. package/dist/esm/vega-radio_2.entry.js +2 -2
  134. package/dist/esm/vega-rich-text-content.entry.js +132 -108
  135. package/dist/esm/vega-rich-text-editor_4.entry.js +76 -12
  136. package/dist/esm/vega-selection-chip_2.entry.js +4 -4
  137. package/dist/esm/vega-selection-tile_2.entry.js +4 -4
  138. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  139. package/dist/esm/vega-signature-capture.entry.js +2 -2
  140. package/dist/esm/vega-stepper.entry.js +2 -2
  141. package/dist/esm/vega-tab-group_2.entry.js +35 -24
  142. package/dist/esm/vega-table_8.entry.js +3 -3
  143. package/dist/esm/vega-textarea.entry.js +2 -2
  144. package/dist/esm/vega-time-picker_2.entry.js +3 -3
  145. package/dist/esm/vega-toggle-switch.entry.js +2 -2
  146. package/dist/esm/vega-tooltip_2.entry.js +1 -1
  147. package/dist/esm/vega.js +5 -6
  148. package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
  149. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.d.ts +4 -18
  150. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.d.ts +85 -0
  151. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +9 -0
  152. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.d.ts +2 -0
  153. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +21 -2
  154. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +20 -0
  155. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +10 -0
  156. package/dist/types/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-file-limit-controller.d.ts +18 -0
  157. package/dist/types/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.d.ts +15 -0
  158. package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +12 -0
  159. package/dist/types/components/vega-form/types.d.ts +1 -0
  160. package/dist/types/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.d.ts +19 -0
  161. package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +9 -0
  162. package/dist/types/components/vega-input-select/types.d.ts +1 -0
  163. package/dist/types/components/vega-pagination/internal/vega-pagination-page-size-selector.d.ts +2 -0
  164. package/dist/types/components/vega-pagination/types.d.ts +6 -0
  165. package/dist/types/components/vega-pagination/vega-pagination.d.ts +9 -1
  166. package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +4 -0
  167. package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +4 -1
  168. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-renderer.abstract.d.ts +13 -7
  169. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +14 -0
  170. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.d.ts +6 -4
  171. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.d.ts +6 -4
  172. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.d.ts +5 -5
  173. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.d.ts +7 -11
  174. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.d.ts +4 -4
  175. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.d.ts +6 -7
  176. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +5 -6
  177. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-not-li-child-to-rte-list-item-block.d.ts +31 -0
  178. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +4 -0
  179. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +3 -1
  180. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-page-index-controller.d.ts +6 -6
  181. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-selected-target-controller.d.ts +1 -0
  182. package/dist/types/components.d.ts +70 -5
  183. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
  184. package/dist/types/helpers/slimmers/field-error-controller-silmmer.d.ts +7 -2
  185. package/dist/types/helpers/slimmers/field-error-ui-controller-slimmer.d.ts +2 -7
  186. package/dist/types/helpers/slimmers/form-field-message-translator.d.ts +12 -0
  187. package/dist/types/helpers/ui/element-appender.d.ts +4 -0
  188. package/dist/types/helpers/validator/form-field-controller.d.ts +5 -2
  189. package/dist/types/helpers/validator/rules/rich-text-editor-required-rule.d.ts +1 -1
  190. package/dist/types/helpers/validator/validation-rule-handler/form-field-validation-rule-handler-chain.d.ts +2 -2
  191. package/dist/types/helpers/validator/validator.d.ts +1 -1
  192. package/dist/types/types/components.type.d.ts +2 -1
  193. package/dist/vega/index.esm.js +1 -1
  194. package/dist/vega/p-032ed643.entry.js +13 -0
  195. package/dist/vega/{p-a0e90d5d.entry.js → p-13ce8d87.entry.js} +1 -1
  196. package/dist/vega/{p-f84fd31c.js → p-26af2a8b.js} +1 -1
  197. package/dist/vega/{p-dcdac4d0.entry.js → p-2ff936da.entry.js} +1 -1
  198. package/dist/vega/p-3126edd6.entry.js +1 -0
  199. package/dist/vega/{p-45c88f7f.entry.js → p-317c72e4.entry.js} +1 -1
  200. package/dist/vega/{p-4f0b56fc.js → p-349dd552.js} +1 -1
  201. package/dist/vega/p-36ad5ee1.entry.js +1 -0
  202. package/dist/vega/p-42465abc.entry.js +1 -0
  203. package/dist/vega/{p-6d43b123.entry.js → p-43b6aced.entry.js} +1 -1
  204. package/dist/vega/{p-fe388812.entry.js → p-441c9c90.entry.js} +1 -1
  205. package/dist/vega/{p-926596cc.js → p-446c691b.js} +1 -1
  206. package/dist/vega/{p-465fa96d.entry.js → p-4d307520.entry.js} +1 -1
  207. package/dist/vega/p-524ff1a3.entry.js +1 -0
  208. package/dist/vega/p-558450ba.entry.js +1 -0
  209. package/dist/vega/{p-c02f650e.entry.js → p-589530e4.entry.js} +1 -1
  210. package/dist/vega/{p-71eeb279.entry.js → p-5ae1a322.entry.js} +1 -1
  211. package/dist/vega/p-5f377954.js +1 -1
  212. package/dist/vega/p-61cffe6a.entry.js +1 -0
  213. package/dist/vega/{p-84113217.entry.js → p-6bf28253.entry.js} +1 -1
  214. package/dist/vega/{p-0bd9b1d9.entry.js → p-6df81ec2.entry.js} +1 -1
  215. package/dist/vega/p-75bca1c6.js +1 -0
  216. package/dist/vega/{p-b64981de.entry.js → p-7b72dc7a.entry.js} +1 -1
  217. package/dist/vega/{p-b9a09a76.js → p-83d87df5.js} +1 -1
  218. package/dist/vega/{p-b450bf46.entry.js → p-8a77ff64.entry.js} +1 -1
  219. package/dist/vega/{p-6661a462.entry.js → p-906991ec.entry.js} +1 -1
  220. package/dist/vega/{p-f6b89936.entry.js → p-96389073.entry.js} +1 -1
  221. package/dist/vega/{p-f31bb1fd.js → p-983c7d9b.js} +1 -1
  222. package/dist/vega/{p-91aa058f.entry.js → p-9ec7d6c4.entry.js} +1 -1
  223. package/dist/vega/{p-8067bd31.entry.js → p-a213b305.entry.js} +1 -1
  224. package/dist/vega/{p-e923637d.entry.js → p-a956561e.entry.js} +1 -1
  225. package/dist/vega/{p-625771d7.entry.js → p-b0c6cc78.entry.js} +1 -1
  226. package/dist/vega/p-b1524c6c.js +1 -0
  227. package/dist/vega/{p-1dd9f841.entry.js → p-bd2cdf10.entry.js} +1 -1
  228. package/dist/vega/p-c06e55d6.js +1 -0
  229. package/dist/vega/{p-19556584.entry.js → p-cea7506a.entry.js} +1 -1
  230. package/dist/vega/{p-0da2de05.entry.js → p-cff45d92.entry.js} +1 -1
  231. package/dist/vega/p-d3d4bf51.entry.js +1 -0
  232. package/dist/vega/{p-3a6c9b9d.entry.js → p-df4142dd.entry.js} +1 -1
  233. package/dist/vega/p-df9dbe2d.entry.js +1 -0
  234. package/dist/vega/p-ebb30774.entry.js +1 -0
  235. package/dist/vega/{p-e04d4ba3.entry.js → p-eed64b78.entry.js} +1 -1
  236. package/dist/vega/{p-1b3e0a9f.entry.js → p-f7fdf737.entry.js} +1 -1
  237. package/dist/vega/p-fe9644a0.js +1 -0
  238. package/dist/vega/vega.esm.js +1 -1
  239. package/package.json +1 -1
  240. package/dist/cjs/content-state-3e4467a3.js +0 -134
  241. package/dist/esm/content-state-f39c4bbf.js +0 -132
  242. package/dist/vega/p-0283712e.entry.js +0 -13
  243. package/dist/vega/p-0ee10fd7.js +0 -1
  244. package/dist/vega/p-2f32a9ba.js +0 -1
  245. package/dist/vega/p-36db2554.entry.js +0 -1
  246. package/dist/vega/p-42df8a42.js +0 -1
  247. package/dist/vega/p-6d23c08b.entry.js +0 -1
  248. package/dist/vega/p-843b13e6.entry.js +0 -1
  249. package/dist/vega/p-85365f8b.js +0 -1
  250. package/dist/vega/p-8be7b62c.entry.js +0 -1
  251. package/dist/vega/p-96f0ef53.entry.js +0 -1
  252. package/dist/vega/p-c88acd87.entry.js +0 -1
  253. package/dist/vega/p-dbec03ed.entry.js +0 -1
  254. package/dist/vega/p-de13b747.entry.js +0 -1
  255. package/dist/vega/p-f357cf46.js +0 -1
  256. package/dist/vega/p-ff50c204.entry.js +0 -1
@@ -4,22 +4,30 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  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;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
7
+ import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
8
8
  import { h, Host } from '@stencil/core';
9
9
  import { VegaDarkModeStyleController } from '../../../../helpers/theme/controllers/dark-mode-style-controller';
10
10
  import { TextColorToolbarButtonSlimmer } from '../../../vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer';
11
- import { RTETextBlock } from '../../../vega-rich-text-editor/dto/blocks/text-block';
12
- import { RTETextBlockRenderer } from '../../../vega-rich-text-editor/dto/renderers/blocks/text-block-renderer';
13
- import { RTEImageBlock } from '../../../vega-rich-text-editor/dto/blocks/image-block';
14
- import { RTEImageBlockRenderer } from '../../../vega-rich-text-editor/dto/renderers/blocks/image-block-renderer';
15
- import { RTEListBlock } from '../../../vega-rich-text-editor/dto/blocks/list-block';
16
- import { RTEListBlockRenderer } from '../../../vega-rich-text-editor/dto/renderers/blocks/list-block-renderer';
17
- import { RTEListItemBlock } from '../../../vega-rich-text-editor/dto/blocks/list-item-block';
11
+ import RTETextBlockRenderer from '../../../vega-rich-text-editor/dto/renderers/blocks/text-block-renderer';
12
+ import RTEImageBlockRenderer from '../../../vega-rich-text-editor/dto/renderers/blocks/image-block-renderer';
13
+ import RTEListBlockRenderer from '../../../vega-rich-text-editor/dto/renderers/blocks/list-block-renderer';
14
+ import { VegaRTEContent } from '../../../vega-rich-text-editor/dto/content-state';
18
15
  export class VegaRichTextContentRenderer extends VegaSlimmer {
19
16
  constructor() {
20
17
  super();
18
+ this.blockRenderers = [
19
+ RTETextBlockRenderer,
20
+ RTEImageBlockRenderer,
21
+ RTEListBlockRenderer,
22
+ ];
21
23
  VegaDarkModeStyleController.registerCustomDarkModeColor(TextColorToolbarButtonSlimmer.formatDarkModeColor());
22
24
  }
25
+ componentWillLoad() {
26
+ this.setRTEContent();
27
+ }
28
+ watchValueUpdate() {
29
+ this.setRTEContent();
30
+ }
23
31
  /**
24
32
  * Get the rich text content element
25
33
  *
@@ -31,6 +39,11 @@ export class VegaRichTextContentRenderer extends VegaSlimmer {
31
39
  render() {
32
40
  return h(Host, null, this.renderRichTextContent());
33
41
  }
42
+ setRTEContent() {
43
+ if (this.content && !(this.content instanceof VegaRTEContent)) {
44
+ this.content = VegaRTEContent.fromJSON(this.content);
45
+ }
46
+ }
34
47
  renderRichTextContent() {
35
48
  const showPlaceholder = this.shouldShowPlaceholder();
36
49
  return (h("div", { ref: (el) => (this.richTextContentRef = el), class: { 'showPlaceholder': showPlaceholder, 'rich-text-content': true }, "data-placeholder": this.placeholder, contenteditable: this.contentEditable }, this.renderContent()));
@@ -39,19 +52,14 @@ export class VegaRichTextContentRenderer extends VegaSlimmer {
39
52
  var _a;
40
53
  const renderContext = { editable: this.contentEditable };
41
54
  return (_a = this.content) === null || _a === void 0 ? void 0 : _a.blocks.map((block) => {
42
- return this.getBlockRenderer(block, renderContext).render();
55
+ const blockRenderer = this.getBlockRenderer(block);
56
+ if (blockRenderer) {
57
+ return blockRenderer.render(block, renderContext);
58
+ }
43
59
  });
44
60
  }
45
- getBlockRenderer(block, renderContext) {
46
- if (block instanceof RTETextBlock && !(block instanceof RTEListItemBlock)) {
47
- return new RTETextBlockRenderer(block, renderContext);
48
- }
49
- else if (block instanceof RTEListBlock) {
50
- return new RTEListBlockRenderer(block, renderContext);
51
- }
52
- else if (block instanceof RTEImageBlock) {
53
- return new RTEImageBlockRenderer(block, renderContext);
54
- }
61
+ getBlockRenderer(block) {
62
+ return this.blockRenderers.find((renderer) => renderer.canHandle(block));
55
63
  }
56
64
  shouldShowPlaceholder() {
57
65
  var _a;
@@ -78,3 +86,9 @@ __decorate([
78
86
  __decorate([
79
87
  MapToComponentField({ writable: true })
80
88
  ], VegaRichTextContentRenderer.prototype, "content", void 0);
89
+ __decorate([
90
+ MapToComponentMethod('componentWillLoad')
91
+ ], VegaRichTextContentRenderer.prototype, "componentWillLoad", null);
92
+ __decorate([
93
+ MapToComponentMethod('watchValueUpdate')
94
+ ], VegaRichTextContentRenderer.prototype, "watchValueUpdate", null);
@@ -4,8 +4,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  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;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, Element, Method, Prop, State } from '@stencil/core';
8
- import { InjectVegaGlobalSlimmer, InjectVegaSlimmer } from 'vega-slimmer/core';
7
+ import { Component, Element, Method, Prop, State, Watch } from '@stencil/core';
8
+ import { InjectVegaGlobalSlimmer, InjectVegaSlimmer, methodPlaceholder, } from 'vega-slimmer/core';
9
9
  import { sanitizeVegaComponent } from '../../utils/component';
10
10
  import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
11
11
  import { VegaRichTextContentRenderer } from './slimmers/renderers/vega-rich-text-content-renderer';
@@ -28,6 +28,9 @@ export class VegaRichTextContent {
28
28
  */
29
29
  this.contentEditable = false;
30
30
  }
31
+ watchValueUpdate() {
32
+ methodPlaceholder();
33
+ }
31
34
  /**
32
35
  * Invoke this method to focus on rich text content editable div
33
36
  *
@@ -54,7 +57,7 @@ export class VegaRichTextContent {
54
57
  static get properties() { return {
55
58
  "content": {
56
59
  "type": "unknown",
57
- "mutable": false,
60
+ "mutable": true,
58
61
  "complexType": {
59
62
  "original": "VegaRTEContent",
60
63
  "resolved": "VegaRTEContent",
@@ -72,7 +75,7 @@ export class VegaRichTextContent {
72
75
  "name": "vegaVersion",
73
76
  "text": "2.34.0"
74
77
  }],
75
- "text": "Specifies the text or formatted information displayed by the rich text content."
78
+ "text": "Specifies the text or formatted information displayed by the rich text content, which can be either VegaRTEContent or VegaRTEContentBlock.\nIt is recommended to use the VegaRTEContent type.\nOnly in exceptional cases should the original data in the VegaRTEContentBlock type be used."
76
79
  }
77
80
  }
78
81
  }; }
@@ -109,6 +112,10 @@ export class VegaRichTextContent {
109
112
  }
110
113
  }; }
111
114
  static get elementRef() { return "host"; }
115
+ static get watchers() { return [{
116
+ "propName": "content",
117
+ "methodName": "watchValueUpdate"
118
+ }]; }
112
119
  }
113
120
  __decorate([
114
121
  InjectVegaGlobalSlimmer()
@@ -2,22 +2,19 @@ import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-en
2
2
  import { BlockAnnotation } from '../../annotations/block-annotation.abstract';
3
3
  import { isNonNullable } from '../../../../../types/type-guard';
4
4
  export class RTEBlockRenderer {
5
- constructor(block, renderContext) {
6
- this.block = block;
7
- this.renderContext = renderContext;
8
- }
9
- registerRef(ref) {
5
+ registerRef(ref, block) {
10
6
  if (ref) {
11
- stateEntityRenderingRegistry.register(ref, this.block);
7
+ stateEntityRenderingRegistry.register(ref, block);
12
8
  }
13
9
  }
14
10
  /**
15
11
  * Get styles from annotations
16
12
  *
13
+ * @param {RTEBlock} block - RTE block entity
17
14
  * @returns {AnnotationStyle} - Annotation style
18
15
  */
19
- getStyles() {
20
- return Array.from(this.block.annotationMap.values())
16
+ getStyles(block) {
17
+ return Array.from(block.annotationMap.values())
21
18
  .filter((annotation) => annotation instanceof BlockAnnotation)
22
19
  .map((annotation) => annotation.render())
23
20
  .filter(isNonNullable)
@@ -26,10 +23,11 @@ export class RTEBlockRenderer {
26
23
  /**
27
24
  * Get classes from annotations
28
25
  *
26
+ * @param {RTEBlock} block - RTE block entity
29
27
  * @returns {AnnotationStyle} - Annotation style
30
28
  */
31
- getClasses() {
32
- return Array.from(this.block.annotationMap.values())
29
+ getClasses(block) {
30
+ return Array.from(block.annotationMap.values())
33
31
  .map((annotation) => { var _a; return (_a = annotation.renderClass) === null || _a === void 0 ? void 0 : _a.call(annotation); })
34
32
  .filter(isNonNullable)
35
33
  .reduce((pre, cur) => [pre, cur].join(' '), '');
@@ -0,0 +1,104 @@
1
+ import { h } from '@stencil/core';
2
+ import { InternalAnnotationTypeEnum } from '../../annotations/annotation.abstract';
3
+ import { RTEBlockRenderer } from './block-renderer.abstract';
4
+ import RTETextNodeRenderer from '../nodes/text-node-renderer';
5
+ import { NodeAnnotationTypeEnum } from '../../annotations/node-annotation.abstract';
6
+ import { isNonNullable } from '../../../../../types/type-guard';
7
+ import { generateUUID } from '../../../../../utils/misc';
8
+ import { LinkAnnotationAction } from '../../actions/link-annotation-action';
9
+ import { createEnterKeyHandlerToTriggerClick } from '../../../../../utils/accessibility';
10
+ import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
11
+ import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-event-id';
12
+ /**
13
+ * Abstract class for rendering blocks that contain text nodes with support for rendering text with link styles.
14
+ */
15
+ export class RTEBlockTextNodesRenderer extends RTEBlockRenderer {
16
+ renderNodes(block, renderContext) {
17
+ const linkGroupAnnotation = block.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
18
+ return linkGroupAnnotation
19
+ ? this.renderLinkNodes(block.nodes, renderContext)
20
+ : block.nodes.map((node) => RTETextNodeRenderer.render(node));
21
+ }
22
+ renderLinkNodes(nodes, { editable }) {
23
+ const blockNodes = this.groupNodesByLink(nodes);
24
+ return blockNodes.flatMap((item) => {
25
+ if (this.isLinkGroup(item)) {
26
+ const linkAnnotation = item[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK);
27
+ return editable
28
+ ? this.renderLinkEditorWrapper(item, linkAnnotation)
29
+ : this.renderLink(item, linkAnnotation);
30
+ }
31
+ return RTETextNodeRenderer.render(item);
32
+ });
33
+ }
34
+ groupNodesByLink(nodes) {
35
+ return nodes.reduce((acc, node) => {
36
+ const nodeLinkAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.LINK);
37
+ const lastGroup = acc[acc.length - 1];
38
+ if (isNonNullable(nodeLinkAnnotation)) {
39
+ if (lastGroup &&
40
+ this.isLinkGroup(lastGroup) &&
41
+ lastGroup[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK).toEqual(nodeLinkAnnotation)) {
42
+ lastGroup.push(node);
43
+ }
44
+ else {
45
+ acc.push([node]);
46
+ }
47
+ }
48
+ else {
49
+ acc.push(node);
50
+ }
51
+ return acc;
52
+ }, []);
53
+ }
54
+ isLinkGroup(item) {
55
+ return Array.isArray(item);
56
+ }
57
+ renderLinkEditorWrapper(linkNodes, linkAnnotation) {
58
+ const { href } = linkAnnotation.link;
59
+ const textFromNodes = linkNodes.map((node) => node.text).join('');
60
+ const handleChange = ({ detail, }) => {
61
+ switch (detail.action) {
62
+ case 'link': {
63
+ const { url, text } = detail.payload;
64
+ const textChanged = text !== textFromNodes;
65
+ const groupKey = generateUUID();
66
+ linkNodes.forEach((node) => {
67
+ const linkAnnotationAction = new LinkAnnotationAction({
68
+ link: { href: url, groupKey: groupKey },
69
+ newText: textChanged ? text : undefined,
70
+ needMergeNode: textChanged && linkNodes.length > 1,
71
+ doSplit: false,
72
+ });
73
+ node.apply(linkAnnotationAction);
74
+ });
75
+ return;
76
+ }
77
+ case 'unlink': {
78
+ linkNodes.forEach((node) => node.deleteAnnotationByType(NodeAnnotationTypeEnum.LINK));
79
+ return;
80
+ }
81
+ }
82
+ };
83
+ let linkWrapperRef;
84
+ return (h("span", { class: "link-editor-wrapper", role: "link", tabIndex: 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (ref) => {
85
+ if (ref) {
86
+ linkWrapperRef = ref;
87
+ }
88
+ } },
89
+ this.renderLink(linkNodes, linkAnnotation),
90
+ h("vega-rich-text-link-editor", { record: {
91
+ text: textFromNodes,
92
+ url: href,
93
+ }, ref: (ref) => {
94
+ if (ref) {
95
+ ref.target = linkWrapperRef;
96
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, handleChange);
97
+ }
98
+ } })));
99
+ }
100
+ renderLink(linkNodes, linkAnnotation) {
101
+ const { href } = linkAnnotation.link;
102
+ return (h("a", { class: "v-rte--link", href: href, target: "_blank" }, linkNodes.map((node) => RTETextNodeRenderer.render(node))));
103
+ }
104
+ }
@@ -1,13 +1,15 @@
1
1
  import { h } from '@stencil/core';
2
+ import { RTEImageBlock } from '../../blocks/image-block';
2
3
  import { RTEBlockRenderer } from './block-renderer.abstract';
3
- import { RTEImageNodeRenderer } from '../nodes/image-node-renderer';
4
- export class RTEImageBlockRenderer extends RTEBlockRenderer {
5
- constructor(block, renderContext) {
6
- super(block, renderContext);
4
+ import RTEImageNodeRenderer from '../nodes/image-node-renderer';
5
+ class RTEImageBlockRenderer extends RTEBlockRenderer {
6
+ canHandle(block) {
7
+ return block instanceof RTEImageBlock;
7
8
  }
8
- render() {
9
- return (h("div", { style: Object.assign({}, super.getStyles()), ref: (ref) => super.registerRef(ref), class: super.getClasses() }, this.block.nodes.map((node) => {
10
- return new RTEImageNodeRenderer(node, this.renderContext).render();
9
+ render(block, renderContext) {
10
+ return (h("div", { style: Object.assign({}, super.getStyles(block)), ref: (ref) => super.registerRef(ref, block), class: super.getClasses(block) }, block.nodes.map((node) => {
11
+ return RTEImageNodeRenderer.render(node, renderContext);
11
12
  })));
12
13
  }
13
14
  }
15
+ export default new RTEImageBlockRenderer();
@@ -1,12 +1,14 @@
1
1
  import { h } from '@stencil/core';
2
2
  import { RTEBlockRenderer } from './block-renderer.abstract';
3
- import { RTEListItemBlockRenderer } from './list-item-block-renderer';
4
- export class RTEListBlockRenderer extends RTEBlockRenderer {
5
- constructor(block, renderContext) {
6
- super(block, renderContext);
3
+ import { RTEListBlock } from '../../blocks/list-block';
4
+ import RTEListItemBlockRenderer from './list-item-block-renderer';
5
+ class RTEListBlockRenderer extends RTEBlockRenderer {
6
+ canHandle(block) {
7
+ return block instanceof RTEListBlock;
7
8
  }
8
- render() {
9
- const BlockTag = this.block.type === 'number-list' ? 'ol' : 'ul';
10
- return (h(BlockTag, { ref: (ref) => super.registerRef(ref) }, this.block.blocks.map((listItemBlock) => new RTEListItemBlockRenderer(listItemBlock, this.renderContext).render())));
9
+ render(block, renderContext) {
10
+ const BlockTag = block.type === 'number-list' ? 'ol' : 'ul';
11
+ return (h(BlockTag, { ref: (ref) => super.registerRef(ref, block) }, block.blocks.map((listItemBlock) => RTEListItemBlockRenderer.render(listItemBlock, renderContext))));
11
12
  }
12
13
  }
14
+ export default new RTEListBlockRenderer();
@@ -1,16 +1,14 @@
1
1
  import { h } from '@stencil/core';
2
- import { RTETextBlockRenderer } from './text-block-renderer';
3
- import { RTEListBlockRenderer } from './list-block-renderer';
4
- export class RTEListItemBlockRenderer extends RTETextBlockRenderer {
5
- constructor(block, renderContext) {
6
- super(block, renderContext);
2
+ import RTEListBlockRenderer from './list-block-renderer';
3
+ import { RTEBlockTextNodesRenderer } from './block-text-nodes-renderer.abstract';
4
+ class RTEListItemBlockRenderer extends RTEBlockTextNodesRenderer {
5
+ render(block, renderContext) {
6
+ return (h("li", { ref: (ref) => super.registerRef(ref, block), style: super.getStyles(block), class: super.getClasses(block) },
7
+ super.renderNodes(block, renderContext),
8
+ this.renderChildren(block.children, renderContext)));
7
9
  }
8
- render() {
9
- return (h("li", { ref: (ref) => super.registerRef(ref), style: super.getStyles(), class: super.getClasses() },
10
- super.renderNodes(),
11
- this.renderChildren(this.block.children)));
12
- }
13
- renderChildren(children) {
14
- return children === null || children === void 0 ? void 0 : children.map((block) => new RTEListBlockRenderer(block, this.renderContext).render());
10
+ renderChildren(children, renderContext) {
11
+ return children === null || children === void 0 ? void 0 : children.map((block) => RTEListBlockRenderer.render(block, renderContext));
15
12
  }
16
13
  }
14
+ export default new RTEListItemBlockRenderer();
@@ -1,27 +1,13 @@
1
1
  import { h } from '@stencil/core';
2
- import { InternalAnnotationTypeEnum } from '../../annotations/annotation.abstract';
3
- import { RTEBlockRenderer } from './block-renderer.abstract';
4
- import { RTETextNodeRenderer } from '../nodes/text-node-renderer';
5
- import { NodeAnnotationTypeEnum } from '../../annotations/node-annotation.abstract';
6
- import { isNonNullable } from '../../../../../types/type-guard';
7
- import { generateUUID } from '../../../../../utils/misc';
8
- import { LinkAnnotationAction } from '../../actions/link-annotation-action';
9
- import { createEnterKeyHandlerToTriggerClick } from '../../../../../utils/accessibility';
10
- import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
11
- import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-event-id';
12
- export class RTETextBlockRenderer extends RTEBlockRenderer {
13
- constructor(block, renderContext) {
14
- super(block, renderContext);
2
+ import { RTETextBlock } from '../../blocks/text-block';
3
+ import { RTEBlockTextNodesRenderer } from './block-text-nodes-renderer.abstract';
4
+ class RTETextBlockRenderer extends RTEBlockTextNodesRenderer {
5
+ canHandle(block) {
6
+ return block instanceof RTETextBlock;
15
7
  }
16
- render() {
17
- const BlockTag = this.getBlockTagByType(this.block.type);
18
- return (h(BlockTag, { ref: (ref) => super.registerRef(ref), style: super.getStyles(), class: super.getClasses() }, this.renderNodes()));
19
- }
20
- renderNodes() {
21
- const linkGroupAnnotation = this.block.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
22
- return linkGroupAnnotation
23
- ? this.renderLinkNodes(this.block.nodes, this.renderContext)
24
- : this.block.nodes.map((node) => new RTETextNodeRenderer(node, this.renderContext).render());
8
+ render(block, renderContext) {
9
+ const BlockTag = this.getBlockTagByType(block.type);
10
+ return (h(BlockTag, { ref: (ref) => super.registerRef(ref, block), style: super.getStyles(block), class: super.getClasses(block) }, super.renderNodes(block, renderContext)));
25
11
  }
26
12
  getBlockTagByType(type) {
27
13
  switch (type) {
@@ -38,86 +24,5 @@ export class RTETextBlockRenderer extends RTEBlockRenderer {
38
24
  return 'p';
39
25
  }
40
26
  }
41
- renderLinkNodes(nodes, { editable }) {
42
- const blockNodes = this.groupNodesByLink(nodes);
43
- return blockNodes.flatMap((item) => {
44
- if (this.isLinkGroup(item)) {
45
- const linkAnnotation = item[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK);
46
- return editable
47
- ? this.renderLinkEditorWrapper(item, linkAnnotation)
48
- : this.renderLink(item, linkAnnotation);
49
- }
50
- return new RTETextNodeRenderer(item).render();
51
- });
52
- }
53
- groupNodesByLink(nodes) {
54
- return nodes.reduce((acc, node) => {
55
- const nodeLinkAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.LINK);
56
- const lastGroup = acc[acc.length - 1];
57
- if (isNonNullable(nodeLinkAnnotation)) {
58
- if (lastGroup &&
59
- this.isLinkGroup(lastGroup) &&
60
- lastGroup[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK).toEqual(nodeLinkAnnotation)) {
61
- lastGroup.push(node);
62
- }
63
- else {
64
- acc.push([node]);
65
- }
66
- }
67
- else {
68
- acc.push(node);
69
- }
70
- return acc;
71
- }, []);
72
- }
73
- isLinkGroup(item) {
74
- return Array.isArray(item);
75
- }
76
- renderLinkEditorWrapper(linkNodes, linkAnnotation) {
77
- const { href } = linkAnnotation.link;
78
- const textFromNodes = linkNodes.map((node) => node.text).join('');
79
- const handleChange = ({ detail, }) => {
80
- switch (detail.action) {
81
- case 'link': {
82
- const { url, text } = detail.payload;
83
- const textChanged = text !== textFromNodes;
84
- const groupKey = generateUUID();
85
- linkNodes.forEach((node) => {
86
- const linkAnnotationAction = new LinkAnnotationAction({
87
- link: { href: url, groupKey: groupKey },
88
- newText: textChanged ? text : undefined,
89
- needMergeNode: textChanged && linkNodes.length > 1,
90
- doSplit: false,
91
- });
92
- node.apply(linkAnnotationAction);
93
- });
94
- return;
95
- }
96
- case 'unlink': {
97
- linkNodes.forEach((node) => node.deleteAnnotationByType(NodeAnnotationTypeEnum.LINK));
98
- return;
99
- }
100
- }
101
- };
102
- let linkWrapperRef;
103
- return (h("span", { class: "link-editor-wrapper", role: "link", tabIndex: 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (ref) => {
104
- if (ref) {
105
- linkWrapperRef = ref;
106
- }
107
- } },
108
- this.renderLink(linkNodes, linkAnnotation),
109
- h("vega-rich-text-link-editor", { record: {
110
- text: textFromNodes,
111
- url: href,
112
- }, ref: (ref) => {
113
- if (ref) {
114
- ref.target = linkWrapperRef;
115
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, handleChange);
116
- }
117
- } })));
118
- }
119
- renderLink(linkNodes, linkAnnotation) {
120
- const { href } = linkAnnotation.link;
121
- return (h("a", { class: "v-rte--link", href: href, target: "_blank" }, linkNodes.map((node) => new RTETextNodeRenderer(node).render())));
122
- }
123
27
  }
28
+ export default new RTETextBlockRenderer();
@@ -6,15 +6,15 @@ import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-en
6
6
  import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
7
7
  import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-event-id';
8
8
  import { RTENodeRenderer } from './node-renderer.abstract';
9
- export class RTEImageNodeRenderer extends RTENodeRenderer {
10
- constructor(node, renderContext) {
11
- super(node, renderContext);
12
- this.handleChange = ({ detail, }) => {
9
+ class RTEImageNodeRenderer extends RTENodeRenderer {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.handleChange = ({ detail }, node) => {
13
13
  switch (detail.action) {
14
14
  case 'edit': {
15
15
  const size = detail.payload.size;
16
16
  const alt = detail.payload.alt;
17
- this.node.apply(new ImageAnnotationAction(size, alt));
17
+ node.apply(new ImageAnnotationAction(size, alt));
18
18
  break;
19
19
  }
20
20
  /*
@@ -28,21 +28,22 @@ export class RTEImageNodeRenderer extends RTENodeRenderer {
28
28
  bubbles: true,
29
29
  });
30
30
  setTimeout(() => {
31
- stateEntityRenderingRegistry.getDOMByEntity(this.node).dispatchEvent(event);
31
+ stateEntityRenderingRegistry.getDOMByEntity(node).dispatchEvent(event);
32
32
  }, 50);
33
33
  break;
34
34
  }
35
35
  }
36
36
  };
37
37
  }
38
- render() {
39
- const imageAnnotation = this.node.getAnnotationByType(NodeAnnotationTypeEnum.IMAGE);
38
+ render(node, renderContext) {
39
+ const imageAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.IMAGE);
40
40
  const { size, alt } = imageAnnotation || new ImageAnnotation('md', '');
41
- return this.renderContext.editable ? (h("vega-rich-text-image-editor", { style: super.getStyles(), size: size, alt: alt, ref: (ref) => {
42
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, this.handleChange);
43
- } }, this.renderImage(alt))) : (this.renderImage(alt));
41
+ return renderContext.editable ? (h("vega-rich-text-image-editor", { style: super.getStyles(node), size: size, alt: alt, ref: (ref) => {
42
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, (e) => this.handleChange(e, node));
43
+ } }, this.renderImage(alt, node, renderContext))) : (this.renderImage(alt, node, renderContext));
44
44
  }
45
- renderImage(alt) {
46
- return (h("img", { style: this.renderContext.editable ? { width: '100%' } : super.getStyles(), alt: alt, src: this.node.url, ref: (ref) => super.registerRef(ref) }));
45
+ renderImage(alt, node, renderContext) {
46
+ return (h("img", { style: renderContext.editable ? { width: '100%' } : super.getStyles(node), alt: alt, src: node.url, ref: (ref) => super.registerRef(ref, node) }));
47
47
  }
48
48
  }
49
+ export default new RTEImageNodeRenderer();
@@ -1,22 +1,19 @@
1
1
  import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-entity-rendering-registry';
2
2
  import { NodeAnnotation } from '../../annotations/node-annotation.abstract';
3
3
  export class RTENodeRenderer {
4
- constructor(node, renderContext) {
5
- this.node = node;
6
- this.renderContext = renderContext;
7
- }
8
- registerRef(ref) {
4
+ registerRef(ref, node) {
9
5
  if (ref) {
10
- stateEntityRenderingRegistry.register(ref, this.node);
6
+ stateEntityRenderingRegistry.register(ref, node);
11
7
  }
12
8
  }
13
9
  /**
14
10
  * Get styles from annotations
15
11
  *
12
+ * @param {RTENode} node - The DTO node
16
13
  * @returns {AnnotationStyle} - Annotation style
17
14
  */
18
- getStyles() {
19
- return Array.from(this.node.annotationMap.values())
15
+ getStyles(node) {
16
+ return Array.from(node.annotationMap.values())
20
17
  .filter((annotation) => annotation instanceof NodeAnnotation)
21
18
  .map((annotation) => annotation.render())
22
19
  .filter(Boolean)
@@ -25,10 +22,11 @@ export class RTENodeRenderer {
25
22
  /**
26
23
  * Get classes from annotations
27
24
  *
25
+ * @param {RTENode} node - The DTO node
28
26
  * @returns {AnnotationStyle} - Annotation style
29
27
  */
30
- getClasses() {
31
- return Array.from(this.node.annotationMap.values())
28
+ getClasses(node) {
29
+ return Array.from(node.annotationMap.values())
32
30
  .filter((annotation) => annotation instanceof NodeAnnotation)
33
31
  .map((annotation) => { var _a; return (_a = annotation.renderClass) === null || _a === void 0 ? void 0 : _a.call(annotation); })
34
32
  .filter(Boolean)
@@ -3,24 +3,22 @@ import { RTENodeRenderer } from './node-renderer.abstract';
3
3
  import { NodeAnnotationTypeEnum } from '../../annotations/node-annotation.abstract';
4
4
  import { ZERO_WIDTH_SPACE } from '../../../constants/constant';
5
5
  import TextNodeElementRenderingRegistry from '../../../slimmers/controllers/text-node-rendering-registry';
6
- export class RTETextNodeRenderer extends RTENodeRenderer {
7
- constructor(node, renderContext) {
8
- super(node, renderContext);
9
- }
10
- render() {
11
- const codeAnnotation = this.node.annotationMap.get(NodeAnnotationTypeEnum.CODE);
6
+ class RTETextNodeRenderer extends RTENodeRenderer {
7
+ render(node) {
8
+ const codeAnnotation = node.annotationMap.get(NodeAnnotationTypeEnum.CODE);
12
9
  if (codeAnnotation === null || codeAnnotation === void 0 ? void 0 : codeAnnotation.code) {
13
- return (h("code", { style: super.getStyles(), class: super.getClasses(), ref: (ref) => this.registerRef(ref) }, this.node.text || ZERO_WIDTH_SPACE));
10
+ return (h("code", { style: super.getStyles(node), class: super.getClasses(node), ref: (ref) => this.registerRef(ref, node) }, node.text || ZERO_WIDTH_SPACE));
14
11
  }
15
- return (h("span", { style: super.getStyles(), class: super.getClasses(), ref: (ref) => this.registerRef(ref) }, this.node.text || ZERO_WIDTH_SPACE));
12
+ return (h("span", { style: super.getStyles(node), class: super.getClasses(node), ref: (ref) => this.registerRef(ref, node) }, node.text || ZERO_WIDTH_SPACE));
16
13
  }
17
- registerRef(ref) {
18
- super.registerRef(ref);
14
+ registerRef(ref, node) {
15
+ super.registerRef(ref, node);
19
16
  if (ref) {
20
- const textColorAnnotation = this.node.getAnnotationByType('TEXT_COLOR');
17
+ const textColorAnnotation = node.getAnnotationByType('TEXT_COLOR');
21
18
  if (textColorAnnotation) {
22
19
  TextNodeElementRenderingRegistry.register(ref, textColorAnnotation);
23
20
  }
24
21
  }
25
22
  }
26
23
  }
24
+ export default new RTETextNodeRenderer();
@@ -7,12 +7,14 @@ import { ImgToRTEImageBlockStrategy } from './img-to-rte-image-block-strategy';
7
7
  import { VegaImageToRTEImageBlockStrategy } from './vega-image-to-rte-image-block-strategy';
8
8
  import { OlToRTEListBlockStrategy } from './ol-to-rte-list-block-strategy';
9
9
  import { SpanImageToRTEImageBlockStrategy } from './span-img-to-rte-image-block-strategy';
10
+ import { ULNotLiChildToRTEListItemBlockStrategy } from './ul-not-li-child-to-rte-list-item-block';
10
11
  /** Element to DTO processor */
11
12
  export class ElementToDtoStrategyProcessor {
12
13
  constructor() {
13
14
  this.elementStrategies = [
14
15
  new UlToRTEListBlockStrategy(),
15
16
  new OlToRTEListBlockStrategy(),
17
+ new ULNotLiChildToRTEListItemBlockStrategy(),
16
18
  new LiToRTEListItemBlockStrategy(),
17
19
  new InlineBlockToRTETextBlockStrategy(),
18
20
  new ImgToRTEImageBlockStrategy(),