@globalpayments/vega 2.38.0 → 2.40.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 (435) hide show
  1. package/dist/cjs/{app-globals-7087f121.js → app-globals-cdd0972c.js} +14 -4
  2. package/dist/cjs/check-box-required-rule-1ee54b9a.js +70 -0
  3. package/dist/cjs/content-state-c5b47ca1.js +6644 -0
  4. package/dist/cjs/date-required-rule-4e1f84fd.js +92 -0
  5. package/dist/cjs/{element-appender-slimmer-c6e0f4ca.js → element-appender-slimmer-4f0dc8c6.js} +9 -5
  6. package/dist/cjs/file-uploader-required-rule-313ec9e3.js +21 -0
  7. package/dist/cjs/{form-field-controller-slimmer-48c0ad0b.js → form-field-controller-slimmer-d92e8212.js} +28 -1
  8. package/dist/cjs/{image-annotation-action-7d82f7e1.js → image-annotation-action-75b9c0d3.js} +5 -6
  9. package/dist/cjs/index.cjs.js +35 -15
  10. package/dist/cjs/input-phone-number-required-rule-2668fdf1.js +65 -0
  11. package/dist/cjs/input-range-required-rule-5b9c2a95.js +63 -0
  12. package/dist/cjs/internal-form-field-validation-rule.abstract-07cdff46.js +15 -0
  13. package/dist/cjs/loader.cjs.js +10 -10
  14. package/dist/cjs/{min-number-rule-115c5a3b.js → min-number-rule-5bcccc8f.js} +7 -4
  15. package/dist/cjs/{min-string-length-rule-75f24a48.js → min-string-length-rule-af215976.js} +8 -4
  16. package/dist/cjs/public-rules-90b972e5.js +42 -0
  17. package/dist/cjs/{required-field-rule-7f9945fa.js → required-field-rule-d73c1d8c.js} +6 -3
  18. package/dist/cjs/rich-text-editor-required-rule-cacc5fe0.js +64 -0
  19. package/dist/cjs/time-required-rule-ccf178e7.js +141 -0
  20. package/dist/cjs/toggle-switch-required-rule-88a51b36.js +66 -0
  21. package/dist/cjs/{valid-credit-card-number-rule-4a9ae5d9.js → valid-credit-card-number-rule-4a1b00b8.js} +3 -2
  22. package/dist/cjs/vega-checkbox_2.cjs.entry.js +11 -79
  23. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -2
  24. package/dist/cjs/vega-combo-box.cjs.entry.js +3 -2
  25. package/dist/cjs/vega-date-picker_2.cjs.entry.js +9 -91
  26. package/dist/cjs/vega-dialog_2.cjs.entry.js +29 -1
  27. package/dist/cjs/vega-dropdown_5.cjs.entry.js +1 -1
  28. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  29. package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -19
  30. package/dist/cjs/vega-form.cjs.entry.js +2 -1
  31. package/dist/cjs/vega-image-uploader.cjs.entry.js +3 -2
  32. package/dist/cjs/vega-input-credit-card.cjs.entry.js +4 -3
  33. package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -2
  34. package/dist/cjs/vega-input-phone-number.cjs.entry.js +38 -70
  35. package/dist/cjs/vega-input-range.cjs.entry.js +6 -61
  36. package/dist/cjs/vega-input-select.cjs.entry.js +3 -2
  37. package/dist/cjs/vega-input.cjs.entry.js +7 -6
  38. package/dist/cjs/vega-popover_2.cjs.entry.js +15 -1
  39. package/dist/cjs/vega-radio_2.cjs.entry.js +3 -2
  40. package/dist/cjs/vega-rich-text-content.cjs.entry.js +18 -19
  41. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +79 -139
  42. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +3 -2
  43. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -2
  44. package/dist/cjs/vega-signature-capture.cjs.entry.js +3 -2
  45. package/dist/cjs/vega-stepper.cjs.entry.js +3 -2
  46. package/dist/cjs/vega-textarea.cjs.entry.js +4 -3
  47. package/dist/cjs/vega-time-picker_2.cjs.entry.js +11 -140
  48. package/dist/cjs/vega-toggle-switch.cjs.entry.js +4 -63
  49. package/dist/cjs/vega-tooltip_2.cjs.entry.js +53 -12
  50. package/dist/cjs/vega.cjs.js +10 -10
  51. package/dist/collection/components/vega-checkbox/vega-checkbox.css +82 -33
  52. package/dist/collection/components/vega-checkbox/vega-checkbox.js +8 -13
  53. package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +2 -2
  54. package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +18 -2
  55. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +7 -4
  56. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.js +9 -0
  57. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-scroll-controller.js +16 -0
  58. package/dist/collection/components/vega-modal/vega-modal.js +6 -0
  59. package/dist/collection/components/vega-popover/slimmers/controllers/vega-popover-appender-controller.js +4 -0
  60. package/dist/collection/components/vega-popover/vega-popover.js +37 -0
  61. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +52 -0
  62. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy.abstract.js +63 -0
  63. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-link-group-strategy.js +21 -0
  64. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-text-style-strategy.js +32 -0
  65. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/image-set-annotation-map-strategy.js +13 -0
  66. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.js +134 -0
  67. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-update-annotation-map-strategy.js +47 -0
  68. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-blocks-strategy.js +19 -0
  69. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-nodes-strategy.js +21 -0
  70. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-image-strategy.js +54 -0
  71. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +152 -0
  72. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-content-strategy.js +99 -0
  73. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-after-strategy.js +15 -0
  74. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-before-strategy.js +38 -0
  75. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-image-into-text-strategy.js +31 -0
  76. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.js +57 -0
  77. 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
  78. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-new-paragraph-strategy.js +55 -0
  79. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-nodes-after-node-strategy.js +14 -0
  80. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-nodes-before-node-strategy.js +14 -0
  81. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.js +25 -0
  82. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-child-block-strategy.js +15 -0
  83. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-node-strategy.js +21 -0
  84. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-node-with-nodes-strategy.js +28 -0
  85. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-nodes-strategy.js +17 -0
  86. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-image-node-strategy.js +48 -0
  87. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-text-node-strategy.js +43 -0
  88. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-transform-to-list-strategy.js +26 -0
  89. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-block-insert-image-strategy.js +32 -0
  90. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-line-break-strategy.js +21 -0
  91. 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
  92. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-new-paragraph-strategy.js +44 -0
  93. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-update-url-strategy.js +12 -0
  94. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-insert-image-strategy.js +22 -0
  95. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-delete-text-content-strategy.js +20 -0
  96. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-image-strategy.js +15 -0
  97. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-new-paragraph-strategy.js +92 -0
  98. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-nest-list-strategy.js +22 -0
  99. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-node-strategy.js +19 -0
  100. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.js +15 -0
  101. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.js +27 -0
  102. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.js +36 -0
  103. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.js +63 -0
  104. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-replace-selected-text-strategy.js +46 -0
  105. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-update-text-strategy.js +20 -0
  106. package/dist/collection/components/vega-rich-text-editor/dto/actions/image-update-url-action.js +13 -0
  107. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -1
  108. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +3 -215
  109. package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +31 -244
  110. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +17 -155
  111. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +33 -184
  112. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +40 -352
  113. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +13 -23
  114. package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +14 -6
  115. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +23 -182
  116. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +2 -1
  117. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.js +41 -0
  118. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-insert-line-break-with-blocks-strategy.test.js +24 -0
  119. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/content-state-strategy-registry.test.js +14 -0
  120. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-block-strategy-register.test.js +30 -0
  121. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-set-annotation-map-strategy.test.js +11 -0
  122. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-update-url-strategy.test.js +16 -0
  123. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-block-strategy-register.test.js +20 -0
  124. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-item-strategy-register.test.js +31 -0
  125. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-split-text-strategy.test.js +31 -0
  126. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-update-annotation-map-strategy.test.js +17 -0
  127. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/text-block-strategy-register.test.js +55 -0
  128. package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/update-selected-text-strategy.test.js +23 -0
  129. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +2 -2
  130. package/dist/collection/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.js +45 -11
  131. package/dist/collection/components/vega-tooltip/vega-tooltip.js +12 -0
  132. package/dist/collection/global/scripts/before-vega-load.js +11 -0
  133. package/dist/collection/helpers/slimmers/element-appender-slimmer.js +8 -5
  134. package/dist/collection/helpers/slimmers/test/element-appender-slimmer.test.js +2 -0
  135. package/dist/collection/helpers/ui/element-appender.js +1 -0
  136. package/dist/collection/helpers/ui/test/element-appender.test.js +1 -0
  137. package/dist/collection/helpers/validator/form-field-controller.js +28 -1
  138. package/dist/collection/helpers/validator/public-rules.js +10 -0
  139. package/dist/collection/helpers/validator/rules/check-box-required-rule.js +4 -3
  140. package/dist/collection/helpers/validator/rules/date-range-rule.js +2 -1
  141. package/dist/collection/helpers/validator/rules/date-required-rule.js +5 -3
  142. package/dist/collection/helpers/validator/rules/email-field-rule.js +3 -2
  143. package/dist/collection/helpers/validator/rules/{object-array-required-rule.js → file-uploader-required-rule.js} +1 -1
  144. package/dist/collection/helpers/validator/rules/input-phone-number-required-rule.js +5 -3
  145. package/dist/collection/helpers/validator/rules/input-range-min-and-max-rule.js +3 -1
  146. package/dist/collection/helpers/validator/rules/input-range-required-rule.js +5 -4
  147. package/dist/collection/helpers/validator/rules/internal-form-field-validation-rule.abstract.js +11 -0
  148. package/dist/collection/helpers/validator/rules/max-number-rule.js +4 -2
  149. package/dist/collection/helpers/validator/rules/max-string-length-rule.js +4 -2
  150. package/dist/collection/helpers/validator/rules/min-and-max-date-rule.js +3 -1
  151. package/dist/collection/helpers/validator/rules/min-number-rule.js +4 -2
  152. package/dist/collection/helpers/validator/rules/min-string-length-rule.js +4 -2
  153. package/dist/collection/helpers/validator/rules/required-field-rule.js +5 -3
  154. package/dist/collection/helpers/validator/rules/rich-text-editor-required-rule.js +4 -3
  155. package/dist/collection/helpers/validator/rules/time-range-required-rule.js +5 -3
  156. package/dist/collection/helpers/validator/rules/time-range-rule.js +3 -1
  157. package/dist/collection/helpers/validator/rules/time-required-rule.js +5 -3
  158. package/dist/collection/helpers/validator/rules/toggle-switch-required-rule.js +4 -3
  159. package/dist/collection/helpers/validator/rules/valid-credit-card-number-rule.js +3 -2
  160. package/dist/collection/helpers/validator/rules/valid-phone-number-rule.js +11 -4
  161. package/dist/collection/helpers/validator/test/rules/file-uploader-required-rule.test.js +7 -0
  162. package/dist/collection/helpers/validator/test/rules/public-rules.test.js +80 -0
  163. package/dist/collection/helpers/validator/test/rules/valid-phone-number-rule.test.js +8 -0
  164. package/dist/collection/index.js +1 -0
  165. package/dist/esm/{app-globals-4cca4a96.js → app-globals-88fa3549.js} +14 -4
  166. package/dist/esm/check-box-required-rule-cb0aa339.js +68 -0
  167. package/dist/esm/content-state-2edba4ec.js +6600 -0
  168. package/dist/esm/{date-732bc749.js → date-c55b97f0.js} +1 -1
  169. package/dist/esm/date-required-rule-8944f3bf.js +90 -0
  170. package/dist/esm/{element-appender-slimmer-f5e703f3.js → element-appender-slimmer-d9155ee0.js} +9 -5
  171. package/dist/esm/file-uploader-required-rule-ad886d01.js +19 -0
  172. package/dist/esm/{form-field-controller-slimmer-3535e76a.js → form-field-controller-slimmer-bb64dec7.js} +29 -2
  173. package/dist/esm/{image-annotation-action-3da42221.js → image-annotation-action-b6668f48.js} +1 -2
  174. package/dist/esm/{index-6e05b241.js → index-d172bafa.js} +1 -1
  175. package/dist/esm/index.js +17 -7
  176. package/dist/esm/input-phone-number-required-rule-be6a5572.js +63 -0
  177. package/dist/esm/input-range-required-rule-3ad74776.js +61 -0
  178. package/dist/esm/internal-form-field-validation-rule.abstract-f5b6bdbf.js +13 -0
  179. package/dist/esm/loader.js +11 -11
  180. package/dist/esm/{min-number-rule-31d48b22.js → min-number-rule-a6082418.js} +7 -4
  181. package/dist/esm/{min-string-length-rule-c6a69eeb.js → min-string-length-rule-c31c89f4.js} +8 -4
  182. package/dist/esm/public-rules-413f6a17.js +27 -0
  183. package/dist/esm/{required-field-rule-368b31fa.js → required-field-rule-ab4bdc47.js} +6 -3
  184. package/dist/esm/rich-text-editor-required-rule-75cc2db0.js +62 -0
  185. package/dist/esm/{string-input-formatter-slimmer-d4132497.js → string-input-formatter-slimmer-418b54f0.js} +2 -2
  186. package/dist/esm/{sub-state-notify-slimmer-51151fc3.js → sub-state-notify-slimmer-b36fd081.js} +1 -1
  187. package/dist/esm/{sub-state-observer-slimmer-d77a1c46.js → sub-state-observer-slimmer-09452523.js} +1 -1
  188. package/dist/esm/time-required-rule-a01163b5.js +138 -0
  189. package/dist/esm/toggle-switch-required-rule-b3cf4302.js +64 -0
  190. package/dist/esm/{valid-credit-card-number-rule-2aef3ad5.js → valid-credit-card-number-rule-cc497bec.js} +3 -2
  191. package/dist/esm/vega-button-group_2.entry.js +3 -3
  192. package/dist/esm/vega-calendar_3.entry.js +4 -4
  193. package/dist/esm/vega-checkbox_2.entry.js +12 -80
  194. package/dist/esm/vega-color-picker.entry.js +4 -3
  195. package/dist/esm/vega-combo-box.entry.js +4 -3
  196. package/dist/esm/vega-date-picker_2.entry.js +12 -94
  197. package/dist/esm/vega-dialog_2.entry.js +29 -1
  198. package/dist/esm/vega-dropdown_5.entry.js +4 -4
  199. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  200. package/dist/esm/vega-file-uploader.entry.js +6 -20
  201. package/dist/esm/vega-form.entry.js +3 -2
  202. package/dist/esm/vega-image-uploader.entry.js +4 -3
  203. package/dist/esm/vega-input-credit-card.entry.js +5 -4
  204. package/dist/esm/vega-input-numeric.entry.js +5 -4
  205. package/dist/esm/vega-input-phone-number.entry.js +38 -70
  206. package/dist/esm/vega-input-range.entry.js +6 -61
  207. package/dist/esm/vega-input-select.entry.js +4 -3
  208. package/dist/esm/vega-input.entry.js +11 -10
  209. package/dist/esm/{vega-internal-event-id-d0690d0d.js → vega-internal-event-id-f269c42f.js} +1 -1
  210. package/dist/esm/vega-left-nav_5.entry.js +3 -3
  211. package/dist/esm/vega-popover_2.entry.js +16 -2
  212. package/dist/esm/vega-radio_2.entry.js +4 -3
  213. package/dist/esm/vega-rich-text-content.entry.js +6 -7
  214. package/dist/esm/vega-rich-text-editor_4.entry.js +23 -83
  215. package/dist/esm/vega-selection-chip_2.entry.js +6 -5
  216. package/dist/esm/vega-selection-tile_2.entry.js +6 -5
  217. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  218. package/dist/esm/vega-signature-capture.entry.js +4 -3
  219. package/dist/esm/vega-stepper.entry.js +4 -3
  220. package/dist/esm/vega-table_8.entry.js +3 -3
  221. package/dist/esm/vega-textarea.entry.js +5 -4
  222. package/dist/esm/vega-time-picker_2.entry.js +8 -137
  223. package/dist/esm/vega-toggle-switch.entry.js +4 -63
  224. package/dist/esm/vega-tooltip_2.entry.js +53 -12
  225. package/dist/esm/vega.js +11 -11
  226. package/dist/types/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.d.ts +7 -0
  227. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.d.ts +4 -0
  228. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-scroll-controller.d.ts +5 -0
  229. package/dist/types/components/vega-modal/vega-modal.d.ts +1 -0
  230. package/dist/types/components/vega-popover/slimmers/controllers/vega-popover-appender-controller.d.ts +1 -0
  231. package/dist/types/components/vega-popover/vega-popover.d.ts +10 -0
  232. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +37 -0
  233. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy.abstract.d.ts +66 -0
  234. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-link-group-strategy.d.ts +15 -0
  235. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/block-update-text-style-strategy.d.ts +15 -0
  236. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/image-set-annotation-map-strategy.d.ts +13 -0
  237. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.d.ts +47 -0
  238. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-update-annotation-map-strategy.d.ts +15 -0
  239. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-blocks-strategy.d.ts +13 -0
  240. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-append-nodes-strategy.d.ts +16 -0
  241. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-image-strategy.d.ts +19 -0
  242. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.d.ts +61 -0
  243. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-content-strategy.d.ts +19 -0
  244. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-after-strategy.d.ts +13 -0
  245. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-blocks-before-strategy.d.ts +23 -0
  246. 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
  247. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.d.ts +30 -0
  248. 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
  249. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-new-paragraph-strategy.d.ts +29 -0
  250. 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
  251. 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
  252. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.d.ts +16 -0
  253. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-child-block-strategy.d.ts +13 -0
  254. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-remove-node-strategy.d.ts +17 -0
  255. 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
  256. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-replace-nodes-strategy.d.ts +16 -0
  257. 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
  258. 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
  259. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-transform-to-list-strategy.d.ts +15 -0
  260. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-block-insert-image-strategy.d.ts +12 -0
  261. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-line-break-strategy.d.ts +15 -0
  262. 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
  263. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-insert-new-paragraph-strategy.d.ts +21 -0
  264. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/image-update-url-strategy.d.ts +12 -0
  265. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-insert-image-strategy.d.ts +15 -0
  266. 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
  267. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-insert-image-strategy.d.ts +15 -0
  268. 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
  269. 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
  270. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-remove-node-strategy.d.ts +15 -0
  271. 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
  272. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.d.ts +15 -0
  273. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.d.ts +12 -0
  274. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.d.ts +19 -0
  275. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-replace-selected-text-strategy.d.ts +20 -0
  276. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/node-update-text-strategy.d.ts +15 -0
  277. package/dist/types/components/vega-rich-text-editor/dto/actions/image-update-url-action.d.ts +11 -0
  278. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -2
  279. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +1 -79
  280. package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +3 -77
  281. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +0 -38
  282. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +3 -58
  283. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +5 -93
  284. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +1 -2
  285. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +0 -43
  286. 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
  287. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/content-state-strategy-registry.test.d.ts +1 -0
  288. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-block-strategy-register.test.d.ts +1 -0
  289. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-set-annotation-map-strategy.test.d.ts +1 -0
  290. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/image-update-url-strategy.test.d.ts +1 -0
  291. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-block-strategy-register.test.d.ts +1 -0
  292. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/list-item-strategy-register.test.d.ts +1 -0
  293. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-split-text-strategy.test.d.ts +1 -0
  294. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/node-update-annotation-map-strategy.test.d.ts +1 -0
  295. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/text-block-strategy-register.test.d.ts +1 -0
  296. package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/update-selected-text-strategy.test.d.ts +1 -0
  297. package/dist/types/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.d.ts +18 -0
  298. package/dist/types/components/vega-tooltip/vega-tooltip.d.ts +4 -0
  299. package/dist/types/components.d.ts +14 -0
  300. package/dist/types/helpers/slimmers/element-appender-slimmer.d.ts +1 -0
  301. package/dist/types/helpers/slimmers/form-field-controller-slimmer.d.ts +2 -1
  302. package/dist/types/helpers/validator/form-field-controller.d.ts +10 -0
  303. package/dist/types/helpers/validator/public-rules.d.ts +10 -0
  304. package/dist/types/helpers/validator/rules/check-box-required-rule.d.ts +7 -6
  305. package/dist/types/helpers/validator/rules/date-range-rule.d.ts +3 -2
  306. package/dist/types/helpers/validator/rules/date-required-rule.d.ts +7 -6
  307. package/dist/types/helpers/validator/rules/email-field-rule.d.ts +4 -3
  308. package/dist/types/helpers/validator/rules/{object-array-required-rule.d.ts → file-uploader-required-rule.d.ts} +1 -1
  309. package/dist/types/helpers/validator/rules/input-phone-number-required-rule.d.ts +7 -6
  310. package/dist/types/helpers/validator/rules/input-range-min-and-max-rule.d.ts +3 -2
  311. package/dist/types/helpers/validator/rules/input-range-required-rule.d.ts +8 -7
  312. package/dist/types/helpers/validator/rules/internal-form-field-validation-rule.abstract.d.ts +19 -0
  313. package/dist/types/helpers/validator/rules/max-number-rule.d.ts +4 -3
  314. package/dist/types/helpers/validator/rules/max-string-length-rule.d.ts +4 -3
  315. package/dist/types/helpers/validator/rules/min-and-max-date-rule.d.ts +3 -2
  316. package/dist/types/helpers/validator/rules/min-number-rule.d.ts +4 -3
  317. package/dist/types/helpers/validator/rules/min-string-length-rule.d.ts +4 -3
  318. package/dist/types/helpers/validator/rules/required-field-rule.d.ts +7 -6
  319. package/dist/types/helpers/validator/rules/rich-text-editor-required-rule.d.ts +7 -6
  320. package/dist/types/helpers/validator/rules/time-range-required-rule.d.ts +7 -6
  321. package/dist/types/helpers/validator/rules/time-range-rule.d.ts +3 -2
  322. package/dist/types/helpers/validator/rules/time-required-rule.d.ts +7 -6
  323. package/dist/types/helpers/validator/rules/toggle-switch-required-rule.d.ts +5 -4
  324. package/dist/types/helpers/validator/rules/valid-credit-card-number-rule.d.ts +4 -3
  325. package/dist/types/helpers/validator/rules/valid-phone-number-rule.d.ts +7 -4
  326. package/dist/types/helpers/validator/test/rules/file-uploader-required-rule.test.d.ts +1 -0
  327. package/dist/types/helpers/validator/test/rules/public-rules.test.d.ts +1 -0
  328. package/dist/types/index.d.ts +1 -0
  329. package/dist/types/types/public-api.d.ts +1 -1
  330. package/dist/vega/index.esm.js +1 -1
  331. package/dist/vega/p-04c72f30.entry.js +1 -0
  332. package/dist/vega/{p-ba077ca8.entry.js → p-073beb31.entry.js} +1 -1
  333. package/dist/vega/p-07c2725a.js +1 -0
  334. package/dist/vega/{p-b5990090.js → p-08835909.js} +1 -1
  335. package/dist/vega/p-0b6d4561.entry.js +1 -0
  336. package/dist/vega/p-0bb860cc.js +1 -0
  337. package/dist/vega/p-0cc1ad76.js +1 -0
  338. package/dist/vega/p-113cd659.entry.js +1 -0
  339. package/dist/vega/{p-b9a0f136.entry.js → p-154d262e.entry.js} +1 -1
  340. package/dist/vega/p-17598aac.entry.js +1 -0
  341. package/dist/vega/p-23130825.entry.js +1 -0
  342. package/dist/vega/{p-29d6ec6c.js → p-239bae84.js} +1 -1
  343. package/dist/vega/{p-7198d675.entry.js → p-24ac5151.entry.js} +1 -1
  344. package/dist/vega/p-280cbcdb.js +1 -0
  345. package/dist/vega/p-3299c30b.entry.js +1 -0
  346. package/dist/vega/p-3fd9d39f.entry.js +1 -0
  347. package/dist/vega/p-42a949f5.entry.js +1 -0
  348. package/dist/vega/p-4bd1b877.entry.js +1 -0
  349. package/dist/vega/p-590fd123.js +1 -0
  350. package/dist/vega/p-5a7eabcc.js +1 -0
  351. package/dist/vega/p-5e56f3bd.js +1 -0
  352. package/dist/vega/p-5f377954.js +1 -1
  353. package/dist/vega/p-612c9374.entry.js +1 -0
  354. package/dist/vega/p-6408d3dc.entry.js +1 -0
  355. package/dist/vega/{p-a2a34239.entry.js → p-6585bddc.entry.js} +2 -2
  356. package/dist/vega/p-6603081a.entry.js +1 -0
  357. package/dist/vega/p-6e5db02b.js +1 -0
  358. package/dist/vega/p-6f90d444.js +1 -0
  359. package/dist/vega/p-7303fff2.entry.js +1 -0
  360. package/dist/vega/p-7b648a05.entry.js +1 -0
  361. package/dist/vega/p-7c0b4c36.js +1 -0
  362. package/dist/vega/p-81b21503.entry.js +1 -0
  363. package/dist/vega/p-8fae8f9e.js +1 -0
  364. package/dist/vega/p-924b4e24.js +1 -0
  365. package/dist/vega/{p-ee2e4bff.entry.js → p-94459733.entry.js} +1 -1
  366. package/dist/vega/p-a05ca459.entry.js +1 -0
  367. package/dist/vega/p-a3e80fb2.entry.js +1 -0
  368. package/dist/vega/p-a7a46358.entry.js +1 -0
  369. package/dist/vega/{p-34bd9204.js → p-a9e1123a.js} +1 -1
  370. package/dist/vega/p-abd7aeaa.js +1 -0
  371. package/dist/vega/{p-267cde46.entry.js → p-b071be5c.entry.js} +1 -1
  372. package/dist/vega/p-b24da503.entry.js +1 -0
  373. package/dist/vega/p-b44f3309.js +1 -0
  374. package/dist/vega/p-b9051ad2.js +1 -0
  375. package/dist/vega/{p-20326c64.js → p-bd0116f9.js} +1 -1
  376. package/dist/vega/{p-4ab0d645.js → p-c253d09c.js} +1 -1
  377. package/dist/vega/p-c56acdd5.entry.js +1 -0
  378. package/dist/vega/p-cdbbdcc2.js +1 -0
  379. package/dist/vega/p-d1a06058.entry.js +1 -0
  380. package/dist/vega/{p-348e95ba.js → p-d2ff56d8.js} +1 -1
  381. package/dist/vega/p-d51b04ce.entry.js +1 -0
  382. package/dist/vega/p-e0446879.js +1 -0
  383. package/dist/vega/p-e08b6542.entry.js +1 -0
  384. package/dist/vega/p-e0d3ca2d.js +1 -0
  385. package/dist/vega/{p-e9a5bd12.entry.js → p-f1ebe86b.entry.js} +1 -1
  386. package/dist/vega/p-f396c69a.js +1 -0
  387. package/dist/vega/p-fda6c178.entry.js +1 -0
  388. package/dist/vega/p-ffac4b8c.entry.js +1 -0
  389. package/dist/vega/vega.esm.js +1 -1
  390. package/package.json +1 -1
  391. package/dist/cjs/content-state-f97d3278.js +0 -2990
  392. package/dist/cjs/node-annotation.abstract-4f6df9cf.js +0 -3223
  393. package/dist/collection/components/vega-rich-text-editor/dto/actions/clear-child-nodes-action.js +0 -12
  394. package/dist/collection/components/vega-rich-text-editor/dto/helper/block-base-operator.js +0 -47
  395. package/dist/collection/helpers/validator/test/rules/object-array-required-rule.test.js +0 -7
  396. package/dist/esm/content-state-ccf5f960.js +0 -2954
  397. package/dist/esm/node-annotation.abstract-b2e36bc4.js +0 -3214
  398. package/dist/types/components/vega-rich-text-editor/dto/actions/clear-child-nodes-action.d.ts +0 -9
  399. package/dist/types/components/vega-rich-text-editor/dto/helper/block-base-operator.d.ts +0 -24
  400. package/dist/vega/p-0461e318.js +0 -1
  401. package/dist/vega/p-12fe63c1.entry.js +0 -1
  402. package/dist/vega/p-1b67c443.entry.js +0 -1
  403. package/dist/vega/p-1d93b3a9.js +0 -1
  404. package/dist/vega/p-23fd9401.entry.js +0 -1
  405. package/dist/vega/p-2fecbcf9.entry.js +0 -1
  406. package/dist/vega/p-3152031c.js +0 -1
  407. package/dist/vega/p-3cb90bdf.entry.js +0 -1
  408. package/dist/vega/p-3e8f9fcf.entry.js +0 -1
  409. package/dist/vega/p-497f2f86.entry.js +0 -1
  410. package/dist/vega/p-50eabdca.entry.js +0 -1
  411. package/dist/vega/p-52a8a4f8.js +0 -1
  412. package/dist/vega/p-6419e13e.entry.js +0 -1
  413. package/dist/vega/p-66b9e86d.entry.js +0 -1
  414. package/dist/vega/p-74958b1a.js +0 -1
  415. package/dist/vega/p-7baa4fae.entry.js +0 -1
  416. package/dist/vega/p-7edcb8d0.entry.js +0 -1
  417. package/dist/vega/p-904b489a.entry.js +0 -1
  418. package/dist/vega/p-9689ad99.entry.js +0 -1
  419. package/dist/vega/p-9728d571.entry.js +0 -1
  420. package/dist/vega/p-a7e078ac.entry.js +0 -1
  421. package/dist/vega/p-a7f40a65.entry.js +0 -1
  422. package/dist/vega/p-a8a809e1.entry.js +0 -1
  423. package/dist/vega/p-a8b16ff2.js +0 -1
  424. package/dist/vega/p-aed80794.entry.js +0 -1
  425. package/dist/vega/p-b517ed15.js +0 -1
  426. package/dist/vega/p-b809f3d7.entry.js +0 -1
  427. package/dist/vega/p-ba2833c0.entry.js +0 -1
  428. package/dist/vega/p-bf4996d5.entry.js +0 -1
  429. package/dist/vega/p-cb4fd6e1.entry.js +0 -1
  430. package/dist/vega/p-e9785742.entry.js +0 -1
  431. package/dist/vega/p-ecaf4cfa.entry.js +0 -1
  432. package/dist/vega/p-f41102cd.js +0 -1
  433. package/dist/vega/p-f5b0ce61.js +0 -1
  434. package/dist/vega/p-f86ec91b.js +0 -1
  435. /package/dist/types/{helpers/validator/test/rules/object-array-required-rule.test.d.ts → components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.d.ts} +0 -0
@@ -0,0 +1,99 @@
1
+ import { MergeTwoBlocksNodesAction } from '../../actions/merge-two-blocks-nodes-action';
2
+ import { RemoveChildAction } from '../../actions/remove-child-action';
3
+ import { UpdateTextAction } from '../../actions/update-text-action';
4
+ import { RTETextNode } from '../../nodes/text-node';
5
+ import { BlockDeleteNodeContentStrategy } from './block-delete-node-content-strategy';
6
+ /**
7
+ * The text block delete text content strategy.
8
+ */
9
+ export class BlockDeleteTextContentStrategy extends BlockDeleteNodeContentStrategy {
10
+ /**
11
+ * @inheritDoc
12
+ */
13
+ handleAction(action, target) {
14
+ this.deleteNodeContent(action, target);
15
+ }
16
+ /**
17
+ * Handle the delete text logic when press delete key.
18
+ *
19
+ * @param {DeleteBlockContentAction} action - ModifyContentAction
20
+ * @param {RTETextBlock} target - Current text block
21
+ */
22
+ deleteNodeContent(action, target) {
23
+ const startContainerNode = action.startContainerNode;
24
+ const startOffset = action.startOffset;
25
+ if (startOffset !== 0 && !startContainerNode.isEmpty()) {
26
+ const newText = startContainerNode.text.slice(0, startOffset - 1) +
27
+ startContainerNode.text.slice(startOffset);
28
+ startContainerNode.apply(new UpdateTextAction(newText));
29
+ if (newText) {
30
+ action.previousNode = startContainerNode;
31
+ return;
32
+ }
33
+ else {
34
+ const previousNode = this.getPreviousNode(startContainerNode);
35
+ // Remove the last character will not delete paragraph, the paragraph will removed after press delete again
36
+ if ((previousNode && previousNode.parentBlock === target && previousNode['text'] === '\n') ||
37
+ target.nodes.length === 1) {
38
+ action.previousNode = startContainerNode;
39
+ return;
40
+ }
41
+ else {
42
+ target.apply(new RemoveChildAction(startContainerNode));
43
+ action.previousNode = previousNode;
44
+ return;
45
+ }
46
+ }
47
+ }
48
+ else {
49
+ let previousNode = this.getPreviousNode(startContainerNode);
50
+ let nextNode = null;
51
+ if (target.nodes.length && previousNode && previousNode.parentBlock !== target) {
52
+ if (startContainerNode.isEmpty()) {
53
+ target.apply(new RemoveChildAction(startContainerNode));
54
+ }
55
+ previousNode.parentBlock.apply(new MergeTwoBlocksNodesAction(target));
56
+ }
57
+ else {
58
+ if (this.isContentFirstNode(startContainerNode) && startContainerNode.isEmpty()) {
59
+ nextNode = this.getNextNode(startContainerNode);
60
+ }
61
+ /**
62
+ * Remove line break
63
+ *
64
+ * @example caret at the first line
65
+ * \n
66
+ * test
67
+ */
68
+ if (startContainerNode.isEmpty()) {
69
+ target.apply(new RemoveChildAction(startContainerNode));
70
+ }
71
+ /**
72
+ * Remove line break
73
+ *
74
+ * @example caret at the begin of second line
75
+ * \n
76
+ * test
77
+ */
78
+ if (previousNode instanceof RTETextNode && previousNode.isEmpty()) {
79
+ const shouldRemoveNode = previousNode;
80
+ previousNode = this.getPreviousNode(previousNode);
81
+ shouldRemoveNode.parentBlock.apply(new RemoveChildAction(shouldRemoveNode));
82
+ if (!previousNode) {
83
+ nextNode = startContainerNode;
84
+ }
85
+ }
86
+ }
87
+ //Remove the paragraph block if the content is empty
88
+ if (target.nodes.length === 0) {
89
+ target.parent.apply(new RemoveChildAction(target));
90
+ }
91
+ if (previousNode) {
92
+ action.previousNode = previousNode;
93
+ }
94
+ else if (nextNode) {
95
+ action.nextNode = nextNode;
96
+ }
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,15 @@
1
+ import { BlockInsertBlocksBeforeStrategy } from './block-insert-blocks-before-strategy';
2
+ /**
3
+ * Insert block array at the behind of the block strategy.
4
+ */
5
+ export class BlockInsertBlocksAfterStrategy extends BlockInsertBlocksBeforeStrategy {
6
+ /**
7
+ * @inheritDoc
8
+ */
9
+ handleAction(action, target) {
10
+ this.replaceBlockWithBlocks(target, action.referBlock, [
11
+ action.referBlock,
12
+ ...action.blocksToBeInserted,
13
+ ]);
14
+ }
15
+ }
@@ -0,0 +1,38 @@
1
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
2
+ /**
3
+ * Insert block array at the front of the block strategy.
4
+ */
5
+ export class BlockInsertBlocksBeforeStrategy extends ActionHandleStrategy {
6
+ /**
7
+ * @inheritDoc
8
+ */
9
+ handleAction(action, target) {
10
+ this.replaceBlockWithBlocks(target, action.referBlock, [
11
+ ...action.blocksToBeInserted,
12
+ action.referBlock,
13
+ ]);
14
+ }
15
+ /**
16
+ * Replaces a specific block with an array of blocks within a RTEContentBlock array.
17
+ *
18
+ * @param {RTEListBlock|VegaRTEContent} target - The list block or the VegaRTEContent instance.
19
+ * @param {RTEBlock} referBlock - Used as a reference block to identify the block that needs to be replaced in the `blocks` array.
20
+ * @param {RTEBlock[]} blocks - An array of RTEBlock objects that you want to replace the `referBlock` with in the `blocks` array.
21
+ */
22
+ replaceBlockWithBlocks(target, referBlock, blocks) {
23
+ if (target.blocks) {
24
+ blocks.forEach((block) => {
25
+ block.parent = target;
26
+ });
27
+ const arrayFixed = target.blocks;
28
+ target.blocks = arrayFixed.flatMap((block) => {
29
+ if (block === referBlock) {
30
+ return blocks;
31
+ }
32
+ else {
33
+ return block;
34
+ }
35
+ });
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,31 @@
1
+ import { InsertBlocksAfterAction } from '../../actions/insert-blocks-after-block';
2
+ import { InsertBlocksBeforeAction } from '../../actions/insert-blocks-before-block';
3
+ import { SplitBlockWithNodeAction } from '../../actions/split-block-with-node-action';
4
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
5
+ /**
6
+ * Insert a image block into the text block at special position strategy.
7
+ */
8
+ export class BlockInsertImageIntoTextStrategy extends ActionHandleStrategy {
9
+ /**
10
+ * insertImage
11
+ *
12
+ * @param {InsertImageToBlockAction} action - Insert image action instance.
13
+ * @param {RTETextBlock} target - The text block.
14
+ */
15
+ handleAction(action, target) {
16
+ const splitNode = action.splitPointNode;
17
+ const startOffsetOfNode = action.startOffsetOfNode;
18
+ const newImageBlock = action.imageBlockToBeInserted;
19
+ if (this.isCaretPositionAtTextBlockEnd(target, splitNode, startOffsetOfNode)) {
20
+ target.parent.apply(new InsertBlocksAfterAction(target, newImageBlock));
21
+ }
22
+ else if (this.isCaretPositionAtTextBlockStart(target, splitNode, startOffsetOfNode)) {
23
+ target.parent.apply(new InsertBlocksBeforeAction(target, newImageBlock));
24
+ }
25
+ else {
26
+ const splitBlockAction = new SplitBlockWithNodeAction(splitNode, startOffsetOfNode);
27
+ target.apply(splitBlockAction);
28
+ target.parent.apply(new InsertBlocksAfterAction(target, newImageBlock));
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,57 @@
1
+ import { generateUUID } from '../../../../../utils/misc';
2
+ import { ReplaceChildNodesAction } from '../../actions/replace-child-nodes-action';
3
+ import { RTETextNode } from '../../nodes/text-node';
4
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
5
+ /**
6
+ * Insert a line break node into current text block at special position strategy.
7
+ */
8
+ export class BlockInsertLineBreakStrategy extends ActionHandleStrategy {
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ handleAction(action, target) {
13
+ action.lineBreakNode = this.lineBreakSingleBlock(action.startContainerNode, action.startOffset, target);
14
+ }
15
+ /**
16
+ * lineBreakSingleBlock
17
+ *
18
+ * @param {RTETextNode} splitNode -
19
+ * @param {number} startOffsetOfNode -
20
+ * @param {RTETextBlock} target -
21
+ * @returns {Nullable<RTETextNode>} Nullable<RTETextNode>
22
+ */
23
+ lineBreakSingleBlock(splitNode, startOffsetOfNode, target) {
24
+ if (splitNode) {
25
+ const lineBreakNode = new RTETextNode(generateUUID(), '\n', target);
26
+ const beforeText = splitNode.text.slice(0, startOffsetOfNode);
27
+ const afterText = splitNode.text.slice(startOffsetOfNode);
28
+ const nodesSplitIndex = target.nodes.indexOf(splitNode);
29
+ if (nodesSplitIndex > -1) {
30
+ const beforeNodes = target.nodes.slice(0, nodesSplitIndex);
31
+ const afterNodes = target.nodes.slice(nodesSplitIndex + 1);
32
+ if (beforeText) {
33
+ beforeNodes.push(splitNode.cloneWithText(beforeText));
34
+ }
35
+ if (afterText) {
36
+ afterNodes.unshift(splitNode.cloneWithText(afterText));
37
+ }
38
+ this.mergeLineBreakNodes(beforeNodes, lineBreakNode, afterNodes, target);
39
+ }
40
+ return lineBreakNode;
41
+ }
42
+ }
43
+ /**
44
+ * mergeLineBreakNodes
45
+ *
46
+ * @param {RTENode[]} beforeNodes -
47
+ * @param {RTETextNode} lineBreakNode -
48
+ * @param {RTENode[]} afterNodes -
49
+ * @param {RTETextBlock} target -
50
+ */
51
+ mergeLineBreakNodes(beforeNodes, lineBreakNode, afterNodes, target) {
52
+ if (afterNodes.length === 0 || (afterNodes[0] && afterNodes[0].text === '')) {
53
+ afterNodes.push(new RTETextNode(generateUUID(), '\n', target, beforeNodes[beforeNodes.length - 1] && beforeNodes[beforeNodes.length - 1].annotationMap));
54
+ }
55
+ target.apply(new ReplaceChildNodesAction([...beforeNodes, lineBreakNode, ...afterNodes]));
56
+ }
57
+ }
@@ -0,0 +1,60 @@
1
+ import { generateUUID } from '../../../../../utils/misc';
2
+ import { RemoveChildAction } from '../../actions/remove-child-action';
3
+ import { ReplaceChildNodesAction } from '../../actions/replace-child-nodes-action';
4
+ import { RTETextNode } from '../../nodes/text-node';
5
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
6
+ /**
7
+ * Insert a line break node into multiple blocks selection at special position strategy.
8
+ */
9
+ export class BlockInsertLineBreakWithBlocksStrategy extends ActionHandleStrategy {
10
+ /**
11
+ * @inheritDoc
12
+ */
13
+ handleAction(action, target) {
14
+ action.lineBreakNode = this.lineBreakMultipleBlocks(action.selectedBlocks, target);
15
+ }
16
+ /**
17
+ * lineBreakMultipleBlocks
18
+ *
19
+ * @param {RTEBlock[]} selectedBlocks -
20
+ * @param {RTETextBlock} target -
21
+ * @returns {Nullable<RTETextNode>} Nullable<RTETextNode>
22
+ */
23
+ lineBreakMultipleBlocks(selectedBlocks, target) {
24
+ const beforeNodes = target.nodes;
25
+ const lineBreakNode = new RTETextNode(generateUUID(), '\n', target);
26
+ const afterNodes = this.concatBlocksNodes(selectedBlocks.slice(1));
27
+ this.mergeLineBreakNodes(beforeNodes, lineBreakNode, afterNodes, target);
28
+ return lineBreakNode;
29
+ }
30
+ /**
31
+ * Concat the child nodes of multiple RTEBlocks if both are not images.
32
+ *
33
+ * @param {RTEBlock[]} blocks - multiple block of content in a rich text editor, such as a paragraph, heading, image, etc.
34
+ * @returns {RTENode[]} Array of connected block nodes
35
+ */
36
+ concatBlocksNodes(blocks) {
37
+ const nodes = [];
38
+ blocks.map((block) => {
39
+ if (block.type !== 'image') {
40
+ nodes.push(...block['nodes']);
41
+ block.parent.apply(new RemoveChildAction(block));
42
+ }
43
+ });
44
+ return nodes;
45
+ }
46
+ /**
47
+ * mergeLineBreakNodes
48
+ *
49
+ * @param {RTENode[]} beforeNodes -
50
+ * @param {RTETextNode} lineBreakNode -
51
+ * @param {RTENode[]} afterNodes -
52
+ * @param {RTETextBlock} target -
53
+ */
54
+ mergeLineBreakNodes(beforeNodes, lineBreakNode, afterNodes, target) {
55
+ if (afterNodes.length === 0 || (afterNodes[0] && afterNodes[0].text === '')) {
56
+ afterNodes.push(new RTETextNode(generateUUID(), '\n', target, beforeNodes[beforeNodes.length - 1] && beforeNodes[beforeNodes.length - 1].annotationMap));
57
+ }
58
+ target.apply(new ReplaceChildNodesAction([...beforeNodes, lineBreakNode, ...afterNodes]));
59
+ }
60
+ }
@@ -0,0 +1,55 @@
1
+ import { AppendChildNodesAction } from '../../actions/append-child-nodes-action';
2
+ import { InsertBlocksAfterAction } from '../../actions/insert-blocks-after-block';
3
+ import { InsertBlocksBeforeAction } from '../../actions/insert-blocks-before-block';
4
+ import { SplitBlockWithNodeAction } from '../../actions/split-block-with-node-action';
5
+ import { NodeAnnotationTypeEnum } from '../../annotations/node-annotation.abstract';
6
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
7
+ /**
8
+ * Insert new paragraph into current text block at special position.
9
+ */
10
+ export class BlockInsertNewParagraphStrategy extends ActionHandleStrategy {
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ handleAction(action, target) {
15
+ action.newBlock = this.breakSingleTextBlock(action.startContainerNode, action.startOffset, target);
16
+ }
17
+ /**
18
+ * breakSingleTextBlock
19
+ *
20
+ * @param {RTETextNode} splitNode -
21
+ * @param {number} startOffsetOfNode -
22
+ * @param {RTETextBlock} target -
23
+ * @returns {Nullable<RTEBlock>} Nullable<RTEBlock>
24
+ */
25
+ breakSingleTextBlock(splitNode, startOffsetOfNode, target) {
26
+ const newParagraph = this.copyInlineStyleToNewParagraph(splitNode, target);
27
+ if (this.isCaretPositionAtTextBlockEnd(target, splitNode, startOffsetOfNode)) {
28
+ target.parent.apply(new InsertBlocksAfterAction(target, newParagraph));
29
+ }
30
+ else if (this.isCaretPositionAtTextBlockStart(target, splitNode, startOffsetOfNode)) {
31
+ target.parent.apply(new InsertBlocksBeforeAction(target, newParagraph));
32
+ }
33
+ else {
34
+ const splitBlockAction = new SplitBlockWithNodeAction(splitNode, startOffsetOfNode);
35
+ target.apply(splitBlockAction);
36
+ return splitBlockAction.newBlock;
37
+ }
38
+ return newParagraph;
39
+ }
40
+ /**
41
+ * copyInlineStyleToNewParagraph
42
+ *
43
+ * @param {RTETextNode} needCopedNode - The text node.
44
+ * @param {RTETextBlock} target - The text block.
45
+ * @returns {RTETextBlock} - The new paragraph.
46
+ */
47
+ copyInlineStyleToNewParagraph(needCopedNode, target) {
48
+ const textNode = needCopedNode.cloneWithText('');
49
+ // The link annotation don't need inherited
50
+ textNode.annotationMap.delete(NodeAnnotationTypeEnum.LINK);
51
+ const newParagraph = target.createNewParagraph();
52
+ newParagraph.apply(new AppendChildNodesAction([textNode]));
53
+ return newParagraph;
54
+ }
55
+ }
@@ -0,0 +1,14 @@
1
+ import { BlockReplaceNodeWithNodesStrategy } from './block-replace-node-with-nodes-strategy';
2
+ /**
3
+ * Insert some text nodes at the behind of the node strategy.
4
+ */
5
+ export class BlockInsertNodesAfterNodeStrategy extends BlockReplaceNodeWithNodesStrategy {
6
+ /**
7
+ * @inheritDoc
8
+ */
9
+ handleAction(action, target) {
10
+ const referNode = action.referNode;
11
+ const nodes = [referNode, ...action.nodesToBeInserted];
12
+ this.replaceNodeWithNodes(target, referNode, nodes);
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ import { BlockReplaceNodeWithNodesStrategy } from './block-replace-node-with-nodes-strategy';
2
+ /**
3
+ * Insert some text nodes at the before of the node strategy.
4
+ */
5
+ export class BlockInsertNodesBeforeNodeStrategy extends BlockReplaceNodeWithNodesStrategy {
6
+ /**
7
+ * @inheritDoc
8
+ */
9
+ handleAction(action, target) {
10
+ const referNode = action.referNode;
11
+ const nodes = [...action.nodesToBeInserted, referNode];
12
+ this.replaceNodeWithNodes(target, referNode, nodes);
13
+ }
14
+ }
@@ -0,0 +1,25 @@
1
+ import { AppendChildNodesAction } from '../../actions/append-child-nodes-action';
2
+ import { RemoveChildAction } from '../../actions/remove-child-action';
3
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
4
+ /**
5
+ * Append the second block child nodes to the first block child nodes and remove the second block strategy.
6
+ */
7
+ export class BlockMergeNodesStrategy extends ActionHandleStrategy {
8
+ /**
9
+ * Merges the child nodes of two RTEBlocks if they have the same type or both are not images.
10
+ *
11
+ * @param {MergeTwoBlocksNodesAction} action - The merge block nodes action instance.
12
+ * @param {RTETextBlock | RTEImageBlock} target - The first text block or image block.
13
+ */
14
+ handleAction(action, target) {
15
+ const anotherBlock = action.blockNeedToBeMerged;
16
+ if (target.type === anotherBlock.type || (target.type !== 'image' && anotherBlock.type !== 'image')) {
17
+ let shouldMergeNodes = anotherBlock['nodes'];
18
+ if (anotherBlock['type'] !== 'image') {
19
+ shouldMergeNodes = anotherBlock['nodes'].filter((node) => node.text);
20
+ }
21
+ target.apply(new AppendChildNodesAction(shouldMergeNodes));
22
+ anotherBlock.parent.apply(new RemoveChildAction(anotherBlock));
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,15 @@
1
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
2
+ /**
3
+ * List block or VegaRTEContent remove child block strategy.
4
+ */
5
+ export class BlockRemoveChildBlockStrategy extends ActionHandleStrategy {
6
+ /**
7
+ * @inheritDoc
8
+ */
9
+ handleAction(action, target) {
10
+ const blockToBeRemoved = action.entityToBeRemoved;
11
+ if (target.blocks) {
12
+ target.blocks = target.blocks.filter((block) => block !== blockToBeRemoved);
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,21 @@
1
+ import { RemoveChildAction } from '../../actions/remove-child-action';
2
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
3
+ /**
4
+ * Remove the node from the text block or image block strategy.
5
+ */
6
+ export class BlockRemoveNodeStrategy extends ActionHandleStrategy {
7
+ /**
8
+ * Remove the text node from the parent text block or remove the image node from the parent image block.
9
+ * Remove the block if the block nodes is empty after delete the current node.
10
+ *
11
+ * @param {RemoveChildAction} action - The remove child action instance.
12
+ * @param {RTETextBlock | RTEImageBlock} target - The parent block of the node that will be removed.
13
+ */
14
+ handleAction(action, target) {
15
+ const arrayFixed = target.nodes;
16
+ target.nodes = arrayFixed.filter((node) => node !== action.entityToBeRemoved);
17
+ if (target.nodes.length === 0 && target.parent) {
18
+ target.parent.apply(new RemoveChildAction(target));
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,28 @@
1
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
2
+ /**
3
+ * Replace the node with new node array strategy.
4
+ */
5
+ export class BlockReplaceNodeWithNodesStrategy extends ActionHandleStrategy {
6
+ /**
7
+ * Replace the current node to the new node array.
8
+ *
9
+ * @param {RTEBlock} target - The image block or the text block.
10
+ * @param {RTENode} referNode - The text node or the image node.
11
+ * @param {RTENode[]} newNodes - The array of the text node or the image node.
12
+ */
13
+ replaceNodeWithNodes(target, referNode, newNodes) {
14
+ if (target['nodes']) {
15
+ newNodes.forEach((node) => {
16
+ node.parentBlock = target;
17
+ });
18
+ target['nodes'] = target['nodes'].flatMap((node) => {
19
+ if (node === referNode) {
20
+ return newNodes;
21
+ }
22
+ else {
23
+ return node;
24
+ }
25
+ });
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,17 @@
1
+ import { AppendChildNodesAction } from '../../actions/append-child-nodes-action';
2
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
3
+ /**
4
+ * Remove all nodes and append new nodes strategy.
5
+ */
6
+ export class BlockReplaceNodesStrategy extends ActionHandleStrategy {
7
+ /**
8
+ * Empty the text block or image block nodes and add new nodes.
9
+ *
10
+ * @param {ReplaceChildNodesAction} action - The replace child nodes action instance.
11
+ * @param {RTETextBlock | RTEImageBlock} target - The text block or the image block.
12
+ */
13
+ handleAction(action, target) {
14
+ target.nodes = [];
15
+ target.apply(new AppendChildNodesAction(action.newChildNodes));
16
+ }
17
+ }
@@ -0,0 +1,48 @@
1
+ import { AppendChildNodesAction } from '../../actions/append-child-nodes-action';
2
+ import { InsertBlocksAfterAction } from '../../actions/insert-blocks-after-block';
3
+ import { ReplaceChildNodesAction } from '../../actions/replace-child-nodes-action';
4
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
5
+ /**
6
+ * Split the current image block with a special position strategy.
7
+ */
8
+ export class BlockSplitWithImageNodeStrategy extends ActionHandleStrategy {
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ handleAction(action, target) {
13
+ action.newBlock = this.splitImageNodes(action.splitPointNode, action.startOffsetOfNode, target);
14
+ }
15
+ /**
16
+ * The image offset should be 0 or 1
17
+ * <vega-rich-text-image-editor><img /></vega-rich-text-image-editor>
18
+ *
19
+ * @param {RTEImageNode} imageNode The split point image node.
20
+ * @param {number} imageOffset The cursor point 0 | 1.
21
+ * @param {RTEImageBlock} target The image block.
22
+ * @returns {Nullable<RTEBlock>} The new block after split
23
+ */
24
+ splitImageNodes(imageNode, imageOffset, target) {
25
+ const nodesSplitIndex = target.nodes.indexOf(imageNode);
26
+ if (nodesSplitIndex > -1) {
27
+ const beforeNodes = target.nodes.slice(0, nodesSplitIndex + imageOffset);
28
+ const afterNodes = target.nodes.slice(nodesSplitIndex + imageOffset);
29
+ target.apply(new ReplaceChildNodesAction(beforeNodes));
30
+ const newBlock = this.cloneWithNodes(afterNodes, target);
31
+ target.parent.apply(new InsertBlocksAfterAction(target, newBlock));
32
+ return newBlock;
33
+ }
34
+ }
35
+ /**
36
+ * Creates a new RTEImageBlock instance with the provided RTEImageNode instances appended to it.
37
+ *
38
+ * @param {RTEImageNode[]} nodes - An array of RTEImageNode objects that will be used to create a new RTEImageBlock instance.
39
+ * @param {RTEImageBlock} target The image block.
40
+ * @returns {RTEImageBlock} A new `RTEImageBlock` object with the provided `nodes` appended to it.
41
+ */
42
+ cloneWithNodes(nodes, target) {
43
+ const block = target.createNewImageBlock();
44
+ block.nodes = [];
45
+ block.apply(new AppendChildNodesAction(nodes));
46
+ return block;
47
+ }
48
+ }
@@ -0,0 +1,43 @@
1
+ import { InsertBlocksAfterAction } from '../../actions/insert-blocks-after-block';
2
+ import { ReplaceChildNodesAction } from '../../actions/replace-child-nodes-action';
3
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
4
+ /**
5
+ * Split the current node with a special position strategy.
6
+ */
7
+ export class BlockSplitWithTextNodeStrategy extends ActionHandleStrategy {
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ handleAction(action, target) {
12
+ action.newBlock = this.splitTextNodeBlock(action.splitPointNode, action.startOffsetOfNode, target);
13
+ }
14
+ /**
15
+ * Splits a text node at a specified offset within a block of nodes and returns a new block with the split nodes.
16
+ *
17
+ * @param {RTETextNode} splitNode - The text node that will be split
18
+ * @param {number} startOffsetOfNode - The index at which will split the text content of the `splitNode`.
19
+ * @param {RTETextBlock} textBlock - The text block need to be splited.
20
+ * @returns {Nullable<RTEBlock>} return either an RTEBlock object or null.
21
+ */
22
+ splitTextNodeBlock(splitNode, startOffsetOfNode, textBlock) {
23
+ if (splitNode) {
24
+ const beforeText = splitNode.text.slice(0, startOffsetOfNode);
25
+ const afterText = splitNode.text.slice(startOffsetOfNode);
26
+ const nodesSplitIndex = textBlock.nodes.indexOf(splitNode);
27
+ if (nodesSplitIndex > -1) {
28
+ const beforeNodes = textBlock.nodes.slice(0, nodesSplitIndex);
29
+ const afterNodes = textBlock.nodes.slice(nodesSplitIndex + 1);
30
+ if (beforeText) {
31
+ beforeNodes.push(splitNode.cloneWithText(beforeText));
32
+ }
33
+ if (afterText) {
34
+ afterNodes.unshift(splitNode.cloneWithText(afterText));
35
+ }
36
+ textBlock.apply(new ReplaceChildNodesAction(beforeNodes));
37
+ const newBlock = textBlock.cloneWithNodes(afterNodes);
38
+ textBlock.parent.apply(new InsertBlocksAfterAction(textBlock, newBlock));
39
+ return newBlock;
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,26 @@
1
+ import { AppendChildNodesAction } from '../../actions/append-child-nodes-action';
2
+ import { InsertBlocksAfterAction } from '../../actions/insert-blocks-after-block';
3
+ import { RemoveChildAction } from '../../actions/remove-child-action';
4
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
5
+ /**
6
+ * Convert the selected blocks to list strategy.
7
+ */
8
+ export class BlockTransformToListStrategy extends ActionHandleStrategy {
9
+ /**
10
+ * This method will create a empty list block and append all selected blocks as list item block.
11
+ *
12
+ * @param {TransformListAction} action - The transform list action instance.
13
+ * @param {RTETextBlock} target - The first item of the selected block.
14
+ */
15
+ handleAction(action, target) {
16
+ const contentState = target.parent;
17
+ const bulletList = contentState.createList(action.listType);
18
+ const selectedBlocks = action.selectedBlocks;
19
+ const listItems = selectedBlocks.map((block) => contentState.toListItem(block));
20
+ bulletList.apply(new AppendChildNodesAction(listItems));
21
+ contentState.apply(new InsertBlocksAfterAction(action.selectedBlocks[0], bulletList));
22
+ selectedBlocks.forEach((block) => {
23
+ block.parent.apply(new RemoveChildAction(block));
24
+ });
25
+ }
26
+ }
@@ -0,0 +1,32 @@
1
+ import { AppendChildNodesAction } from '../../actions/append-child-nodes-action';
2
+ import { InsertBlocksAfterAction } from '../../actions/insert-blocks-after-block';
3
+ import { InsertBlocksBeforeAction } from '../../actions/insert-blocks-before-block';
4
+ import { SplitBlockWithNodeAction } from '../../actions/split-block-with-node-action';
5
+ import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
6
+ /**
7
+ * Insert a image node at the special position of image block.
8
+ */
9
+ export class ImageBlockInsertImageStrategy extends ActionHandleStrategy {
10
+ /**
11
+ * @inheritDoc
12
+ */
13
+ handleAction(action, target) {
14
+ const splitNode = action.splitPointNode;
15
+ const startOffsetOfNode = action.startOffsetOfNode;
16
+ const newImageBlock = action.imageBlockToBeInserted;
17
+ const newImageNodes = newImageBlock.nodes;
18
+ if (target.nodes.length < 1) {
19
+ target.apply(new AppendChildNodesAction(newImageNodes));
20
+ }
21
+ else if (this.isCaretPositionAtImageBlockEnd(target, splitNode, startOffsetOfNode)) {
22
+ target.parent.apply(new InsertBlocksAfterAction(target, newImageBlock));
23
+ }
24
+ else if (this.isCaretPositionAtImageBlockStart(target, splitNode, startOffsetOfNode)) {
25
+ target.parent.apply(new InsertBlocksBeforeAction(target, newImageBlock));
26
+ }
27
+ else {
28
+ target.apply(new SplitBlockWithNodeAction(splitNode, startOffsetOfNode));
29
+ target.parent.apply(new InsertBlocksAfterAction(target, newImageBlock));
30
+ }
31
+ }
32
+ }