@globalpayments/vega 2.38.0 → 2.39.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 (262) hide show
  1. package/dist/cjs/{app-globals-7087f121.js → app-globals-dd3e7925.js} +2 -3
  2. package/dist/cjs/content-state-c5b47ca1.js +6644 -0
  3. package/dist/cjs/{image-annotation-action-7d82f7e1.js → image-annotation-action-75b9c0d3.js} +5 -6
  4. package/dist/cjs/index.cjs.js +13 -14
  5. package/dist/cjs/loader.cjs.js +8 -9
  6. package/dist/cjs/vega-date-picker_2.cjs.entry.js +1 -1
  7. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  8. package/dist/cjs/vega-input-phone-number.cjs.entry.js +31 -7
  9. package/dist/cjs/vega-popover_2.cjs.entry.js +14 -0
  10. package/dist/cjs/vega-rich-text-content.cjs.entry.js +18 -19
  11. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +75 -79
  12. package/dist/cjs/vega.cjs.js +8 -9
  13. package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +18 -2
  14. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +7 -4
  15. package/dist/collection/components/vega-popover/slimmers/controllers/vega-popover-appender-controller.js +4 -0
  16. package/dist/collection/components/vega-popover/vega-popover.js +37 -0
  17. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +52 -0
  18. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy.abstract.js +63 -0
  19. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-link-group-strategy.js +21 -0
  20. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-text-style-strategy.js +32 -0
  21. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/image-set-annotation-map-strategy.js +13 -0
  22. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.js +134 -0
  23. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-update-annotation-map-strategy.js +47 -0
  24. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-blocks-strategy.js +19 -0
  25. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-nodes-strategy.js +21 -0
  26. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-image-strategy.js +54 -0
  27. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +152 -0
  28. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-content-strategy.js +99 -0
  29. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-after-strategy.js +15 -0
  30. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-before-strategy.js +38 -0
  31. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-image-into-text-strategy.js +31 -0
  32. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.js +57 -0
  33. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-with-blocks-strategy.js +60 -0
  34. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-new-paragraph-strategy.js +55 -0
  35. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-nodes-after-node-strategy.js +14 -0
  36. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-nodes-before-node-strategy.js +14 -0
  37. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.js +25 -0
  38. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-child-block-strategy.js +15 -0
  39. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-node-strategy.js +21 -0
  40. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-node-with-nodes-strategy.js +28 -0
  41. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-nodes-strategy.js +17 -0
  42. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-image-node-strategy.js +48 -0
  43. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-text-node-strategy.js +43 -0
  44. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-transform-to-list-strategy.js +26 -0
  45. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-block-insert-image-strategy.js +32 -0
  46. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-line-break-strategy.js +21 -0
  47. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-line-break-with-blocks-strategy.js +55 -0
  48. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-new-paragraph-strategy.js +44 -0
  49. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-update-url-strategy.js +12 -0
  50. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-insert-image-strategy.js +22 -0
  51. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-delete-text-content-strategy.js +20 -0
  52. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-image-strategy.js +15 -0
  53. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-new-paragraph-strategy.js +92 -0
  54. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-nest-list-strategy.js +22 -0
  55. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-node-strategy.js +19 -0
  56. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.js +15 -0
  57. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.js +27 -0
  58. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.js +36 -0
  59. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.js +63 -0
  60. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-replace-selected-text-strategy.js +46 -0
  61. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-update-text-strategy.js +20 -0
  62. package/dist/collection/components/vega-rich-text-editor/dto/actions/image-update-url-action.js +13 -0
  63. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -1
  64. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +3 -215
  65. package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +31 -244
  66. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +17 -155
  67. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +33 -184
  68. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +40 -352
  69. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +13 -23
  70. package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +14 -6
  71. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +23 -182
  72. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +2 -1
  73. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.js +41 -0
  74. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-insert-line-break-with-blocks-strategy.test.js +24 -0
  75. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/content-state-strategy-registry.test.js +14 -0
  76. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-block-strategy-register.test.js +30 -0
  77. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-set-annotation-map-strategy.test.js +11 -0
  78. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-update-url-strategy.test.js +16 -0
  79. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-block-strategy-register.test.js +20 -0
  80. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-item-strategy-register.test.js +31 -0
  81. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-split-text-strategy.test.js +31 -0
  82. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-update-annotation-map-strategy.test.js +17 -0
  83. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/text-block-strategy-register.test.js +55 -0
  84. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/update-selected-text-strategy.test.js +23 -0
  85. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +2 -2
  86. package/dist/collection/helpers/validator/rules/valid-phone-number-rule.js +7 -2
  87. package/dist/collection/helpers/validator/test/rules/valid-phone-number-rule.test.js +8 -0
  88. package/dist/esm/{app-globals-4cca4a96.js → app-globals-c954167a.js} +2 -3
  89. package/dist/esm/content-state-2edba4ec.js +6600 -0
  90. package/dist/esm/{form-field-controller-slimmer-3535e76a.js → form-field-controller-slimmer-7a9f2b2e.js} +1 -1
  91. package/dist/esm/{image-annotation-action-3da42221.js → image-annotation-action-b6668f48.js} +1 -2
  92. package/dist/esm/{index-6e05b241.js → index-d172bafa.js} +1 -1
  93. package/dist/esm/index.js +5 -6
  94. package/dist/esm/loader.js +9 -10
  95. package/dist/esm/{string-input-formatter-slimmer-d4132497.js → string-input-formatter-slimmer-418b54f0.js} +2 -2
  96. package/dist/esm/{sub-state-notify-slimmer-51151fc3.js → sub-state-notify-slimmer-b36fd081.js} +1 -1
  97. package/dist/esm/{sub-state-observer-slimmer-d77a1c46.js → sub-state-observer-slimmer-09452523.js} +1 -1
  98. package/dist/esm/vega-button-group_2.entry.js +3 -3
  99. package/dist/esm/vega-calendar_3.entry.js +3 -3
  100. package/dist/esm/vega-checkbox_2.entry.js +2 -2
  101. package/dist/esm/vega-color-picker.entry.js +2 -2
  102. package/dist/esm/vega-combo-box.entry.js +2 -2
  103. package/dist/esm/vega-date-picker_2.entry.js +5 -5
  104. package/dist/esm/vega-dropdown_5.entry.js +3 -3
  105. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  106. package/dist/esm/vega-file-uploader.entry.js +2 -2
  107. package/dist/esm/vega-form.entry.js +2 -2
  108. package/dist/esm/vega-image-uploader.entry.js +2 -2
  109. package/dist/esm/vega-input-credit-card.entry.js +2 -2
  110. package/dist/esm/vega-input-numeric.entry.js +3 -3
  111. package/dist/esm/vega-input-phone-number.entry.js +33 -9
  112. package/dist/esm/vega-input-range.entry.js +2 -2
  113. package/dist/esm/vega-input-select.entry.js +2 -2
  114. package/dist/esm/vega-input.entry.js +5 -5
  115. package/dist/esm/{vega-internal-event-id-d0690d0d.js → vega-internal-event-id-f269c42f.js} +1 -1
  116. package/dist/esm/vega-left-nav_5.entry.js +3 -3
  117. package/dist/esm/vega-popover_2.entry.js +15 -1
  118. package/dist/esm/vega-radio_2.entry.js +2 -2
  119. package/dist/esm/vega-rich-text-content.entry.js +6 -7
  120. package/dist/esm/vega-rich-text-editor_4.entry.js +21 -25
  121. package/dist/esm/vega-selection-chip_2.entry.js +4 -4
  122. package/dist/esm/vega-selection-tile_2.entry.js +4 -4
  123. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  124. package/dist/esm/vega-signature-capture.entry.js +2 -2
  125. package/dist/esm/vega-stepper.entry.js +2 -2
  126. package/dist/esm/vega-table_8.entry.js +3 -3
  127. package/dist/esm/vega-textarea.entry.js +2 -2
  128. package/dist/esm/vega-time-picker_2.entry.js +2 -2
  129. package/dist/esm/vega-toggle-switch.entry.js +2 -2
  130. package/dist/esm/vega.js +9 -10
  131. package/dist/types/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.d.ts +7 -0
  132. package/dist/types/components/vega-popover/slimmers/controllers/vega-popover-appender-controller.d.ts +1 -0
  133. package/dist/types/components/vega-popover/vega-popover.d.ts +10 -0
  134. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +37 -0
  135. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy.abstract.d.ts +66 -0
  136. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-link-group-strategy.d.ts +15 -0
  137. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-text-style-strategy.d.ts +15 -0
  138. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/image-set-annotation-map-strategy.d.ts +13 -0
  139. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.d.ts +47 -0
  140. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-update-annotation-map-strategy.d.ts +15 -0
  141. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-blocks-strategy.d.ts +13 -0
  142. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-nodes-strategy.d.ts +16 -0
  143. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-image-strategy.d.ts +19 -0
  144. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.d.ts +61 -0
  145. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-content-strategy.d.ts +19 -0
  146. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-after-strategy.d.ts +13 -0
  147. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-before-strategy.d.ts +23 -0
  148. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-image-into-text-strategy.d.ts +15 -0
  149. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.d.ts +30 -0
  150. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-with-blocks-strategy.d.ts +36 -0
  151. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-new-paragraph-strategy.d.ts +29 -0
  152. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-nodes-after-node-strategy.d.ts +13 -0
  153. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-nodes-before-node-strategy.d.ts +13 -0
  154. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.d.ts +16 -0
  155. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-child-block-strategy.d.ts +13 -0
  156. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-node-strategy.d.ts +17 -0
  157. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-node-with-nodes-strategy.d.ts +20 -0
  158. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-nodes-strategy.d.ts +16 -0
  159. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-image-node-strategy.d.ts +30 -0
  160. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-text-node-strategy.d.ts +24 -0
  161. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-transform-to-list-strategy.d.ts +15 -0
  162. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-block-insert-image-strategy.d.ts +12 -0
  163. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-line-break-strategy.d.ts +15 -0
  164. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-line-break-with-blocks-strategy.d.ts +27 -0
  165. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-new-paragraph-strategy.d.ts +21 -0
  166. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-update-url-strategy.d.ts +12 -0
  167. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-insert-image-strategy.d.ts +15 -0
  168. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-delete-text-content-strategy.d.ts +15 -0
  169. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-image-strategy.d.ts +15 -0
  170. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-new-paragraph-strategy.d.ts +38 -0
  171. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-nest-list-strategy.d.ts +15 -0
  172. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-node-strategy.d.ts +15 -0
  173. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.d.ts +12 -0
  174. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.d.ts +15 -0
  175. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.d.ts +12 -0
  176. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.d.ts +19 -0
  177. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-replace-selected-text-strategy.d.ts +20 -0
  178. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-update-text-strategy.d.ts +15 -0
  179. package/dist/types/components/vega-rich-text-editor/dto/actions/image-update-url-action.d.ts +11 -0
  180. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -2
  181. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +1 -79
  182. package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +3 -77
  183. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +0 -38
  184. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +3 -58
  185. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +5 -93
  186. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +1 -2
  187. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +0 -43
  188. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.d.ts +1 -0
  189. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-insert-line-break-with-blocks-strategy.test.d.ts +1 -0
  190. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/content-state-strategy-registry.test.d.ts +1 -0
  191. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-block-strategy-register.test.d.ts +1 -0
  192. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-set-annotation-map-strategy.test.d.ts +1 -0
  193. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-update-url-strategy.test.d.ts +1 -0
  194. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-block-strategy-register.test.d.ts +1 -0
  195. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-item-strategy-register.test.d.ts +1 -0
  196. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-split-text-strategy.test.d.ts +1 -0
  197. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-update-annotation-map-strategy.test.d.ts +1 -0
  198. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/text-block-strategy-register.test.d.ts +1 -0
  199. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/update-selected-text-strategy.test.d.ts +1 -0
  200. package/dist/types/components.d.ts +14 -0
  201. package/dist/types/helpers/validator/rules/valid-phone-number-rule.d.ts +3 -1
  202. package/dist/vega/index.esm.js +1 -1
  203. package/dist/vega/{p-ba077ca8.entry.js → p-073beb31.entry.js} +1 -1
  204. package/dist/vega/{p-6419e13e.entry.js → p-0b697841.entry.js} +1 -1
  205. package/dist/vega/p-0cc1ad76.js +1 -0
  206. package/dist/vega/{p-29d6ec6c.js → p-239bae84.js} +1 -1
  207. package/dist/vega/{p-7198d675.entry.js → p-24ac5151.entry.js} +1 -1
  208. package/dist/vega/{p-cb4fd6e1.entry.js → p-257b1bc2.entry.js} +1 -1
  209. package/dist/vega/{p-ba2833c0.entry.js → p-3c85a11b.entry.js} +1 -1
  210. package/dist/vega/{p-b517ed15.js → p-49bf2b3a.js} +1 -1
  211. package/dist/vega/p-4a8db510.entry.js +1 -0
  212. package/dist/vega/p-4b19706c.entry.js +1 -0
  213. package/dist/vega/{p-bf4996d5.entry.js → p-4e436842.entry.js} +1 -1
  214. package/dist/vega/{p-12fe63c1.entry.js → p-59834ea4.entry.js} +1 -1
  215. package/dist/vega/{p-50eabdca.entry.js → p-59cfed37.entry.js} +1 -1
  216. package/dist/vega/p-5f377954.js +1 -1
  217. package/dist/vega/p-60e1ebe1.entry.js +1 -0
  218. package/dist/vega/{p-23fd9401.entry.js → p-629bd266.entry.js} +1 -1
  219. package/dist/vega/p-6408d3dc.entry.js +1 -0
  220. package/dist/vega/{p-3e8f9fcf.entry.js → p-64e0c944.entry.js} +1 -1
  221. package/dist/vega/{p-b9a0f136.entry.js → p-64e49394.entry.js} +1 -1
  222. package/dist/vega/p-6e5db02b.js +1 -0
  223. package/dist/vega/{p-9689ad99.entry.js → p-74ff73d6.entry.js} +1 -1
  224. package/dist/vega/{p-b809f3d7.entry.js → p-8120e7a1.entry.js} +1 -1
  225. package/dist/vega/p-894c067a.entry.js +1 -0
  226. package/dist/vega/{p-e9785742.entry.js → p-989b36a2.entry.js} +1 -1
  227. package/dist/vega/{p-a2a34239.entry.js → p-9ee23f34.entry.js} +1 -1
  228. package/dist/vega/{p-34bd9204.js → p-a9e1123a.js} +1 -1
  229. package/dist/vega/{p-267cde46.entry.js → p-b071be5c.entry.js} +1 -1
  230. package/dist/vega/{p-1b67c443.entry.js → p-b6bffdf3.entry.js} +1 -1
  231. package/dist/vega/{p-20326c64.js → p-bd0116f9.js} +1 -1
  232. package/dist/vega/{p-a7e078ac.entry.js → p-bf6d3c00.entry.js} +1 -1
  233. package/dist/vega/{p-ecaf4cfa.entry.js → p-c00fde35.entry.js} +1 -1
  234. package/dist/vega/{p-7baa4fae.entry.js → p-c2e96537.entry.js} +1 -1
  235. package/dist/vega/{p-3cb90bdf.entry.js → p-ce94a9c5.entry.js} +1 -1
  236. package/dist/vega/{p-904b489a.entry.js → p-d03945cb.entry.js} +1 -1
  237. package/dist/vega/p-d2e6090a.js +1 -0
  238. package/dist/vega/{p-348e95ba.js → p-d2ff56d8.js} +1 -1
  239. package/dist/vega/p-e0d3ca2d.js +1 -0
  240. package/dist/vega/{p-ee2e4bff.entry.js → p-ea78ddfa.entry.js} +1 -1
  241. package/dist/vega/{p-e9a5bd12.entry.js → p-f1ebe86b.entry.js} +1 -1
  242. package/dist/vega/{p-497f2f86.entry.js → p-fc49a98e.entry.js} +1 -1
  243. package/dist/vega/vega.esm.js +1 -1
  244. package/package.json +1 -1
  245. package/dist/cjs/content-state-f97d3278.js +0 -2990
  246. package/dist/cjs/node-annotation.abstract-4f6df9cf.js +0 -3223
  247. package/dist/collection/components/vega-rich-text-editor/dto/actions/clear-child-nodes-action.js +0 -12
  248. package/dist/collection/components/vega-rich-text-editor/dto/helper/block-base-operator.js +0 -47
  249. package/dist/esm/content-state-ccf5f960.js +0 -2954
  250. package/dist/esm/node-annotation.abstract-b2e36bc4.js +0 -3214
  251. package/dist/types/components/vega-rich-text-editor/dto/actions/clear-child-nodes-action.d.ts +0 -9
  252. package/dist/types/components/vega-rich-text-editor/dto/helper/block-base-operator.d.ts +0 -24
  253. package/dist/vega/p-0461e318.js +0 -1
  254. package/dist/vega/p-1d93b3a9.js +0 -1
  255. package/dist/vega/p-2fecbcf9.entry.js +0 -1
  256. package/dist/vega/p-52a8a4f8.js +0 -1
  257. package/dist/vega/p-7edcb8d0.entry.js +0 -1
  258. package/dist/vega/p-9728d571.entry.js +0 -1
  259. package/dist/vega/p-a7f40a65.entry.js +0 -1
  260. package/dist/vega/p-a8b16ff2.js +0 -1
  261. package/dist/vega/p-aed80794.entry.js +0 -1
  262. package/dist/vega/p-f86ec91b.js +0 -1
@@ -1,16 +1,21 @@
1
1
  import { RTEBlock } from './block.abstract';
2
2
  import { RTEImageNode } from '../nodes/image-node';
3
3
  import { ModifyContentActionType } from '../actions/modify-content-action.abstract';
4
- import { RemoveChildAction } from '../actions/remove-child-action';
5
4
  import { isNonNullable } from '../../../../types/type-guard';
6
- import { AppendChildNodesAction } from '../actions/append-child-nodes-action';
7
- import { ReplaceChildNodesAction } from '../actions/replace-child-nodes-action';
8
5
  import { generateUUID } from '../../../../utils/misc';
9
- import { InsertBlocksAfterAction } from '../actions/insert-blocks-after-block';
10
- import { SplitBlockWithNodeAction } from '../actions/split-block-with-node-action';
11
- import { RTETextBlock } from './text-block';
12
- import { InsertBlocksBeforeAction } from '../actions/insert-blocks-before-block';
13
- import { RTETextNode } from '../nodes/text-node';
6
+ import { ActionHandleStrategyRegistry } from '../action-handle-strategies/action-handle-strategy-registry';
7
+ import { BlockDeleteImageStrategy } from '../action-handle-strategies/modify-content-strategies/block-delete-image-strategy';
8
+ import { BlockMergeNodesStrategy } from '../action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy';
9
+ import { BlockRemoveNodeStrategy } from '../action-handle-strategies/modify-content-strategies/block-remove-node-strategy';
10
+ import { BlockAppendNodesStrategy } from '../action-handle-strategies/modify-content-strategies/block-append-nodes-strategy';
11
+ import { BlockReplaceNodesStrategy } from '../action-handle-strategies/modify-content-strategies/block-replace-nodes-strategy';
12
+ import { BlockSplitWithImageNodeStrategy } from '../action-handle-strategies/modify-content-strategies/block-split-with-image-node-strategy';
13
+ import { ImageInsertNewParagraphStrategy } from '../action-handle-strategies/modify-content-strategies/image-insert-new-paragraph-strategy';
14
+ import { ImageInsertLineBreakStrategy } from '../action-handle-strategies/modify-content-strategies/image-insert-line-break-strategy';
15
+ import { ImageInsertLineBreakWithBlocksStrategy } from '../action-handle-strategies/modify-content-strategies/image-insert-line-break-with-blocks-strategy';
16
+ import { ImageBlockInsertImageStrategy } from '../action-handle-strategies/modify-content-strategies/image-block-insert-image-strategy';
17
+ import { BlockInsertNodesBeforeNodeStrategy } from '../action-handle-strategies/modify-content-strategies/block-insert-nodes-before-node-strategy';
18
+ import { BlockInsertNodesAfterNodeStrategy } from '../action-handle-strategies/modify-content-strategies/block-insert-nodes-after-node-strategy';
14
19
  /**
15
20
  * Image block
16
21
  */
@@ -59,243 +64,25 @@ export class RTEImageBlock extends RTEBlock {
59
64
  return this.nodes[this.nodes.length - 1];
60
65
  }
61
66
  /**
62
- * Apply a modify action to block
67
+ * Create a new image block.
63
68
  *
64
- * @param {ModifyContentAction} action - Modify action
69
+ * @returns {RTEImageBlock} - The empty image block.
65
70
  */
66
- doModifyActionApply(action) {
67
- switch (action.type) {
68
- case ModifyContentActionType.DELETE_CHILD:
69
- this.removeChildNode(action);
70
- break;
71
- case ModifyContentActionType.CLEAR_CHILD_NODES:
72
- this.nodes = [];
73
- break;
74
- case ModifyContentActionType.APPEND_CHILD_NODES:
75
- this.appendChildNodes(action.entityToBeAppended);
76
- break;
77
- case ModifyContentActionType.REPLACE_CHILD_NODES:
78
- this.nodes = [];
79
- this.appendChildNodes(action.newChildNodes);
80
- break;
81
- case ModifyContentActionType.SPLIT_BLOCK_WITH_NODE:
82
- action.newBlock = this.splitImageNodes(action.splitPointNode, action.startOffsetOfNode);
83
- break;
84
- case ModifyContentActionType.MERGE_TWO_BLOCKS_NODES:
85
- this.mergeTwoBlocksNodes(action.blockNeedToBeMerged);
86
- break;
87
- case ModifyContentActionType.BREAK_SINGLE_BLOCK:
88
- action.newBlock = this.breakSingleBlock(action.startContainerNode, action.startOffset);
89
- break;
90
- case ModifyContentActionType.LINE_BREAK_SINGLE_BLOCK:
91
- action.lineBreakNode = this.lineBreakSingleBlock(action.startContainerNode, action.startOffset);
92
- break;
93
- case ModifyContentActionType.LINE_BREAK_MULTIPLE_BLOCKS:
94
- action.lineBreakNode = this.lineBreakMultipleBlocks(action.selectedBlocks);
95
- break;
96
- case ModifyContentActionType.DELETE_BLOCK_CONTENT:
97
- this.deleteNodeContent(action);
98
- break;
99
- case ModifyContentActionType.INSERT_IMAGE_TO_BLOCK:
100
- this.insertImage(action);
101
- break;
102
- case ModifyContentActionType.INSERT_NODES_AFTER:
103
- this.replaceNodeWithNodes(action.referNode, [
104
- action.referNode,
105
- ...action.nodesToBeInserted,
106
- ]);
107
- break;
108
- case ModifyContentActionType.INSERT_NODES_BEFORE:
109
- this.replaceNodeWithNodes(action.referNode, [
110
- ...action.nodesToBeInserted,
111
- action.referNode,
112
- ]);
113
- break;
114
- }
115
- }
116
- /**
117
- * Removes a specified child node from a list of nodes and triggers a parent action if the list becomes empty.
118
- *
119
- * @param {RemoveChildAction} action - Action to be performed when removing a child node from the list of nodes.
120
- */
121
- removeChildNode(action) {
122
- this.nodes = this.nodes.filter((node) => node !== action.entityToBeRemoved);
123
- if (this.nodes.length === 0) {
124
- this.parent.apply(new RemoveChildAction(this));
125
- }
126
- }
127
- /**
128
- * The image offset should be 0 or 1
129
- * <vega-rich-text-image-editor><img /></vega-rich-text-image-editor>
130
- *
131
- * @param {RTEImageNode} imageNode The split point image node
132
- * @param {number} imageOffset The cursor point 0 | 1
133
- * @returns {Nullable<RTEBlock>} The new block after split
134
- */
135
- splitImageNodes(imageNode, imageOffset) {
136
- const nodesSplitIndex = this.nodes.indexOf(imageNode);
137
- if (nodesSplitIndex > -1) {
138
- const beforeNodes = this.nodes.slice(0, nodesSplitIndex + imageOffset);
139
- const afterNodes = this.nodes.slice(nodesSplitIndex + imageOffset);
140
- this.apply(new ReplaceChildNodesAction(beforeNodes));
141
- const newBlock = this.cloneWithNodes(afterNodes);
142
- this.parent.apply(new InsertBlocksAfterAction(this, newBlock));
143
- return newBlock;
144
- }
145
- }
146
- /**
147
- * Creates a new RTEImageBlock instance with the provided RTEImageNode instances appended to it.
148
- *
149
- * @param {RTEImageNode[]} nodes - An array of RTEImageNode objects that will be used to create a new RTEImageBlock instance.
150
- * @returns {RTEImageBlock} A new `RTEImageBlock` object with the provided `nodes` appended to it.
151
- */
152
- cloneWithNodes(nodes) {
153
- const block = new RTEImageBlock(generateUUID());
154
- block.nodes = [];
155
- block.apply(new AppendChildNodesAction(nodes));
156
- return block;
157
- }
158
- /**
159
- * Used to split a block of text at a specific position and insert a new paragraph block.
160
- *
161
- * @param {RTEImageNode} splitNode - The node that needs to be split into separate blocks.
162
- * @param {number} startOffsetOfNode - The index or position within the `splitNode` where the block should be broken or split.
163
- * @returns {Nullable<RTEBlock>} Returns either a new paragraph block or the new block created after splitting the original block.
164
- */
165
- breakSingleBlock(splitNode, startOffsetOfNode) {
166
- const newParagraph = RTETextBlock.from({
167
- id: generateUUID(),
168
- type: 'paragraph',
169
- nodes: [{ id: generateUUID(), type: 'text', text: '' }],
170
- });
171
- if (this.isCaretPositionAtEnd(splitNode, startOffsetOfNode)) {
172
- this.parent.apply(new InsertBlocksAfterAction(this, newParagraph));
173
- }
174
- else if (this.isCaretPositionAtStart(splitNode, startOffsetOfNode)) {
175
- this.parent.apply(new InsertBlocksBeforeAction(this, newParagraph));
176
- }
177
- else {
178
- const splitBlockAction = new SplitBlockWithNodeAction(splitNode, startOffsetOfNode);
179
- this.apply(splitBlockAction);
180
- return splitBlockAction.newBlock;
181
- }
182
- return newParagraph;
183
- }
184
- /**
185
- * Breaks a single block of text at a specified offset and returns the first node of the new paragraph if created.
186
- *
187
- * @param {RTEImageNode} splitNode - It represents a node in a rich text editor that contains an image.
188
- * @param {number} startOffset - The index at which the line break should occur within the `RTEImageNode` block.
189
- * @returns {Nullable<RTETextNode>} Returning the first node of the `newParagraph` block if `newParagraph` is not null.
190
- */
191
- lineBreakSingleBlock(splitNode, startOffset) {
192
- const newParagraph = this.breakSingleBlock(splitNode, startOffset);
193
- if (newParagraph) {
194
- return newParagraph['nodes'][0];
195
- }
196
- }
197
- /**
198
- * Checks if the caret position is at the start of a specified RTEImageNode.
199
- *
200
- * @param {RTEImageNode} node - `RTEImageNode` - a node representing an image in a rich text editor.
201
- * @param {number} startOffset - The position within the text node where the caret is located.
202
- * @returns {boolean} a boolean value, which indicates whether the caret position is at the start of the RTEImageNode.
203
- */
204
- isCaretPositionAtStart(node, startOffset) {
205
- return node === this.nodes[0] && startOffset === 0;
206
- }
207
- /**
208
- * Checks if the caret position is at the end of a given RTEImageNode.
209
- *
210
- * @param {RTEImageNode} node - `node` is a RTEImageNode
211
- * @param {number} startOffset - The position within the `RTEImageNode` where the caret is located.
212
- * @returns {boolean}Returns a boolean value indicating whether the caret position is at the end of the `RTEImageNode`.
213
- */
214
- isCaretPositionAtEnd(node, startOffset) {
215
- const lastNode = this.nodes[this.nodes.length - 1];
216
- return node === lastNode && startOffset === 1;
217
- }
218
- /**
219
- * Inserts a new paragraph block with a line break after a selected block of text in a rich text editor.
220
- *
221
- * @param {RTEBlock[]} selectedBlocks - An array of RTEBlock objects that represent the blocks that have been selected for a specific action in the Rich Text Editor.
222
- * @returns {Nullable<RTETextNode>} Returns a Nullable RTETextNode.
223
- */
224
- lineBreakMultipleBlocks(selectedBlocks) {
225
- const newParagraph = RTETextBlock.from({
226
- id: generateUUID(),
227
- type: 'paragraph',
228
- nodes: [{ id: generateUUID(), type: 'text', text: '\n' }],
229
- });
230
- this.parent.apply(new InsertBlocksAfterAction(this, newParagraph));
231
- const afterNodes = this.concatBlocksNodes(selectedBlocks.slice(1));
232
- if (afterNodes.length === 0 || (afterNodes[0] && afterNodes[0].text === '')) {
233
- afterNodes.push(new RTETextNode(generateUUID(), '\n', newParagraph));
234
- }
235
- newParagraph.apply(new AppendChildNodesAction(afterNodes));
236
- return newParagraph['nodes'][0];
237
- }
238
- /**
239
- * Deletes content from a block node based on specific conditions.
240
- *
241
- * @param {DeleteBlockContentAction} action - Delete block content action
242
- */
243
- deleteNodeContent(action) {
244
- const startContainerNode = action
245
- .startContainerNode, startOffset = action.startOffset;
246
- let previousNode = this.getPreviousNode(startContainerNode);
247
- let nextNode = null;
248
- if (startOffset === 1) {
249
- const parentBlock = startContainerNode.parentBlock;
250
- if (this.isContentFirstNode(startContainerNode)) {
251
- nextNode = this.getNextNode(startContainerNode);
252
- }
253
- if (parentBlock.nodes.length === 1) {
254
- parentBlock.parent.apply(new RemoveChildAction(parentBlock));
255
- }
256
- else {
257
- startContainerNode.parentBlock.apply(new RemoveChildAction(startContainerNode));
258
- }
259
- }
260
- else {
261
- const shouldRemoveNode = previousNode;
262
- if (shouldRemoveNode && shouldRemoveNode instanceof RTEImageNode) {
263
- previousNode = this.getPreviousNode(shouldRemoveNode);
264
- shouldRemoveNode.parentBlock.apply(new RemoveChildAction(shouldRemoveNode));
265
- if (!previousNode) {
266
- action.nextNode = startContainerNode;
267
- }
268
- }
269
- }
270
- if (previousNode) {
271
- action.previousNode = previousNode;
272
- }
273
- else if (nextNode) {
274
- action.nextNode = nextNode;
275
- }
276
- }
277
- /**
278
- * Image will always create new image block
279
- *
280
- * @param {InsertImageToBlockAction} action insert image to current block
281
- */
282
- insertImage(action) {
283
- const splitNode = action.splitPointNode;
284
- const startOffsetOfNode = action.startOffsetOfNode;
285
- const newImageNodes = action.imageBlockToBeInserted.nodes;
286
- const newImageBlock = action.imageBlockToBeInserted;
287
- if (this.nodes.length < 1) {
288
- this.apply(new AppendChildNodesAction(newImageNodes));
289
- }
290
- else if (this.isCaretPositionAtEnd(splitNode, startOffsetOfNode)) {
291
- this.parent.apply(new InsertBlocksAfterAction(this, newImageBlock));
292
- }
293
- else if (this.isCaretPositionAtStart(splitNode, startOffsetOfNode)) {
294
- this.parent.apply(new InsertBlocksBeforeAction(this, newImageBlock));
295
- }
296
- else {
297
- this.apply(new SplitBlockWithNodeAction(splitNode, startOffsetOfNode));
298
- this.parent.apply(new InsertBlocksAfterAction(this, newImageBlock));
299
- }
71
+ createNewImageBlock() {
72
+ return new RTEImageBlock(generateUUID());
300
73
  }
301
74
  }
75
+ (() => {
76
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_BLOCK_CONTENT, RTEImageBlock.name, new BlockDeleteImageStrategy());
77
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.MERGE_TWO_BLOCKS_NODES, RTEImageBlock.name, new BlockMergeNodesStrategy());
78
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_CHILD, RTEImageBlock.name, new BlockRemoveNodeStrategy());
79
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.APPEND_CHILD_NODES, RTEImageBlock.name, new BlockAppendNodesStrategy());
80
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.REPLACE_CHILD_NODES, RTEImageBlock.name, new BlockReplaceNodesStrategy());
81
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.SPLIT_BLOCK_WITH_NODE, RTEImageBlock.name, new BlockSplitWithImageNodeStrategy());
82
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.BREAK_SINGLE_BLOCK, RTEImageBlock.name, new ImageInsertNewParagraphStrategy());
83
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.LINE_BREAK_SINGLE_BLOCK, RTEImageBlock.name, new ImageInsertLineBreakStrategy());
84
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.LINE_BREAK_MULTIPLE_BLOCKS, RTEImageBlock.name, new ImageInsertLineBreakWithBlocksStrategy());
85
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_IMAGE_TO_BLOCK, RTEImageBlock.name, new ImageBlockInsertImageStrategy());
86
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_NODES_BEFORE, RTEImageBlock.name, new BlockInsertNodesBeforeNodeStrategy());
87
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_NODES_AFTER, RTEImageBlock.name, new BlockInsertNodesAfterNodeStrategy());
88
+ })();
@@ -1,14 +1,14 @@
1
1
  import { RTEBlock } from './block.abstract';
2
2
  import { RTEListItemBlock } from './list-item-block';
3
3
  import { ModifyContentActionType } from '../actions/modify-content-action.abstract';
4
- import { RemoveChildAction } from '../actions/remove-child-action';
5
- import { InsertBlocksAfterAction } from '../actions/insert-blocks-after-block';
6
- import { generateUUID } from '../../../../utils/misc';
7
- import { RTETextBlock } from './text-block';
8
- import { AppendChildNodesAction } from '../actions/append-child-nodes-action';
9
- import { InsertBlocksBeforeAction } from '../actions/insert-blocks-before-block';
10
- import { SyncUpSelectionAction } from '../actions/sync-up-selection-action';
11
- import { RemoveNestListAction } from '../actions/remove-nest-list-action';
4
+ import { ActionHandleStrategyRegistry } from '../action-handle-strategies/action-handle-strategy-registry';
5
+ import { BlockInsertBlocksBeforeStrategy } from '../action-handle-strategies/modify-content-strategies/block-insert-blocks-before-strategy';
6
+ import { BlockInsertBlocksAfterStrategy } from '../action-handle-strategies/modify-content-strategies/block-insert-blocks-after-strategy';
7
+ import { BlockAppendBlocksStrategy } from '../action-handle-strategies/modify-content-strategies/block-append-blocks-strategy';
8
+ import { ListRemoveListItemStrategy } from '../action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy';
9
+ import { ListTransformToListStrategy } from '../action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy';
10
+ import { ListTransformToParagraphStrategy } from '../action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy';
11
+ import { ListInsertImageStrategy } from '../action-handle-strategies/modify-content-strategies/list-insert-image-strategy';
12
12
  /**
13
13
  * List block
14
14
  */
@@ -53,151 +53,13 @@ export class RTEListBlock extends RTEBlock {
53
53
  getLastNode() {
54
54
  return this.blocks[this.blocks.length - 1].getLastNode();
55
55
  }
56
- /**
57
- * Apply a modify action to block
58
- *
59
- * @param {ModifyContentAction} action - Modify action
60
- */
61
- doModifyActionApply(action) {
62
- switch (action.type) {
63
- case ModifyContentActionType.DELETE_CHILD:
64
- this.removeListItemBlock(action.entityToBeRemoved);
65
- break;
66
- case ModifyContentActionType.INSERT_BLOCKS_AFTER:
67
- this.replaceBlockWithBlocks(action.referBlock, [
68
- action.referBlock,
69
- ...action.blocksToBeInserted,
70
- ]);
71
- break;
72
- case ModifyContentActionType.INSERT_BLOCKS_BEFORE:
73
- this.replaceBlockWithBlocks(action.referBlock, [
74
- ...action.blocksToBeInserted,
75
- action.referBlock,
76
- ]);
77
- break;
78
- case ModifyContentActionType.APPEND_CHILD_NODES:
79
- this.appendChildBlocks(action.entityToBeAppended);
80
- break;
81
- case ModifyContentActionType.TRANSFORM_LIST_BLOCK:
82
- this.convertToList(action);
83
- break;
84
- case ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK:
85
- this.convertToParagraph(action);
86
- break;
87
- case ModifyContentActionType.INSERT_IMAGE_TO_BLOCK:
88
- this.insertImage(action);
89
- break;
90
- }
91
- }
92
- /**
93
- * Converts a RTEListItemBlock to a RTETextBlock representing a paragraph.
94
- *
95
- * @param {RTEListItemBlock} block - The block that will be covered
96
- * @returns {RTETextBlock} Returns a `RTETextBlock`.
97
- */
98
- toParagraph(block) {
99
- const textBlock = new RTETextBlock(generateUUID(), 'paragraph');
100
- textBlock.apply(new AppendChildNodesAction(block['nodes']));
101
- textBlock['annotationMap'] = block['annotationMap'];
102
- return textBlock;
103
- }
104
- /**
105
- * Covert block to List
106
- *
107
- * @param {TransformListAction} action - Modify action
108
- */
109
- convertToList(action) {
110
- const selectedBlocks = action.selectedBlocks;
111
- const bulletList = this.parent.createList(action.listType);
112
- const isSameList = selectedBlocks.every((block) => block.parent === this);
113
- if (isSameList) {
114
- // Select one or more list items belonging to the same list, and all items in this list should be updated
115
- bulletList.apply(new AppendChildNodesAction(this.blocks));
116
- this.parent.apply(new InsertBlocksAfterAction(this, bulletList));
117
- this.parent.apply(new RemoveChildAction(this));
118
- selectedBlocks.forEach((block) => block.nodes.map((node) => node.apply(new SyncUpSelectionAction())));
119
- }
120
- else {
121
- const listItems = action.selectedBlocks.map((block) => this.parent.toListItem(block));
122
- bulletList.apply(new AppendChildNodesAction(listItems));
123
- this.parent.apply(new InsertBlocksAfterAction(this, bulletList));
124
- action.selectedBlocks.forEach((block) => {
125
- block.parent.apply(new RemoveChildAction(block));
126
- });
127
- if (this.blocks.length === 0) {
128
- this.parent.apply(new RemoveChildAction(this));
129
- }
130
- }
131
- }
132
- /**
133
- * Covert block to paragraph
134
- *
135
- * @param {TransformListAction} action - Modify action
136
- */
137
- convertToParagraph(action) {
138
- let isSelectedFirstBlock = false;
139
- let isSelectedLastBlock = false;
140
- const selectedBlocks = action.selectedBlocks;
141
- const currentParagraph = selectedBlocks.map((block) => {
142
- block.nodes.map((node) => node.apply(new SyncUpSelectionAction()));
143
- if (block === this.blocks[0])
144
- isSelectedFirstBlock = true;
145
- if (block === this.blocks[this.blocks.length - 1])
146
- isSelectedLastBlock = true;
147
- return this.toParagraph(block);
148
- });
149
- if (isSelectedFirstBlock) {
150
- this.parent.apply(new InsertBlocksBeforeAction(this, ...currentParagraph));
151
- }
152
- else if (isSelectedLastBlock) {
153
- this.parent.apply(new InsertBlocksAfterAction(this, ...currentParagraph));
154
- }
155
- else {
156
- const startIndex = this.blocks.indexOf(selectedBlocks[0]);
157
- const lastIndex = this.blocks.indexOf(selectedBlocks[selectedBlocks.length - 1]);
158
- const firstBulletList = this.parent.createList(this.type);
159
- firstBulletList.apply(new AppendChildNodesAction(this.blocks.slice(0, startIndex)));
160
- const lastBulletList = this.parent.createList(this.type);
161
- lastBulletList.apply(new AppendChildNodesAction(this.blocks.slice(lastIndex + 1)));
162
- this.parent.apply(new InsertBlocksBeforeAction(this, firstBulletList, ...currentParagraph, lastBulletList));
163
- this.parent.apply(new RemoveChildAction(this));
164
- }
165
- selectedBlocks.map((block) => {
166
- this.apply(new RemoveChildAction(block));
167
- });
168
- if (this.blocks.length === 0) {
169
- this.parent.apply(new RemoveChildAction(this));
170
- }
171
- }
172
- /**
173
- * Inserts an image block into a rich text editor block based on the parent block type.
174
- *
175
- * @param {InsertImageToBlockAction} action - Modify action
176
- */
177
- insertImage(action) {
178
- const imageBlock = action.imageBlockToBeInserted;
179
- if (this.parent['type'] !== 'list-item') {
180
- this.parent.apply(new InsertBlocksAfterAction(this, imageBlock));
181
- }
182
- else {
183
- this.parent.apply(action);
184
- }
185
- }
186
- /**
187
- * Removes a specified block and handles the removal of nested lists if necessary.
188
- *
189
- * @param {RTEBlock} blockToBeRemoved - block that will be removed
190
- */
191
- removeListItemBlock(blockToBeRemoved) {
192
- super.removeChildBlock(blockToBeRemoved);
193
- if (this.blocks.length === 0 && this.parent) {
194
- // The parent is a list item mean the current block is a nest list, so we need to use RemoveNestListAction to remove the item
195
- if (this.parent instanceof RTEListItemBlock) {
196
- this.parent.apply(new RemoveNestListAction(this));
197
- }
198
- else {
199
- this.parent.apply(new RemoveChildAction(this));
200
- }
201
- }
202
- }
203
56
  }
57
+ (() => {
58
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_CHILD, RTEListBlock.name, new ListRemoveListItemStrategy());
59
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_BLOCKS_BEFORE, RTEListBlock.name, new BlockInsertBlocksBeforeStrategy());
60
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_BLOCKS_AFTER, RTEListBlock.name, new BlockInsertBlocksAfterStrategy());
61
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.APPEND_CHILD_NODES, RTEListBlock.name, new BlockAppendBlocksStrategy());
62
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.TRANSFORM_LIST_BLOCK, RTEListBlock.name, new ListTransformToListStrategy());
63
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK, RTEListBlock.name, new ListTransformToParagraphStrategy());
64
+ ActionHandleStrategyRegistry.register(ModifyContentActionType.INSERT_IMAGE_TO_BLOCK, RTEListBlock.name, new ListInsertImageStrategy());
65
+ })();