@talrace/ngx-noder 0.0.7 → 0.0.8

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 (647) hide show
  1. package/README.md +75 -66
  2. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +61 -0
  3. package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +7 -0
  4. package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +47 -0
  5. package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +32 -0
  6. package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +64 -0
  7. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +89 -0
  8. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +22 -0
  9. package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +111 -0
  10. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +37 -0
  11. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +49 -0
  12. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +90 -0
  13. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +81 -0
  14. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +28 -0
  15. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +22 -0
  16. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +53 -0
  17. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +18 -0
  18. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +27 -0
  19. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +71 -0
  20. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +94 -0
  21. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +24 -0
  22. package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +65 -0
  23. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +84 -0
  24. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +90 -0
  25. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +117 -0
  26. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +8 -0
  27. package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/numbering-templates.const.mjs +6 -6
  28. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +157 -0
  29. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +8 -0
  30. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +11 -0
  31. package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.mjs +1 -1
  32. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +6 -0
  33. package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +34 -0
  34. package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +26 -0
  35. package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +60 -0
  36. package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +55 -0
  37. package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +54 -0
  38. package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +84 -0
  39. package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +123 -0
  40. package/esm2022/lib/editor/components/edges/edge-element.model.mjs +9 -0
  41. package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +6 -0
  42. package/esm2022/lib/editor/components/edges/edge.component.mjs +99 -0
  43. package/esm2022/lib/editor/components/edges/edges.mjs +108 -0
  44. package/esm2022/lib/editor/components/edges/page-type.enum.mjs +7 -0
  45. package/esm2022/lib/editor/components/editor.component.mjs +112 -0
  46. package/esm2022/lib/editor/components/external-element/external-element.service.mjs +6 -0
  47. package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +4 -0
  48. package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +2 -0
  49. package/esm2022/lib/editor/components/external-element/external.component.mjs +41 -0
  50. package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +9 -0
  51. package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +11 -0
  52. package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +15 -0
  53. package/esm2022/lib/editor/components/image/components/image.component.mjs +88 -0
  54. package/esm2022/lib/editor/components/image/image-api.service.mjs +36 -0
  55. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +38 -0
  56. package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +2 -0
  57. package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +19 -0
  58. package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +12 -0
  59. package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +106 -0
  60. package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +2 -0
  61. package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +52 -0
  62. package/esm2022/lib/editor/components/image/size.mjs +2 -0
  63. package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +59 -0
  64. package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +18 -0
  65. package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +43 -0
  66. package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +2 -0
  67. package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +3 -0
  68. package/esm2022/lib/editor/components/shared/custom-content.mjs +2 -0
  69. package/esm2022/lib/editor/components/shared/services/component.service.mjs +64 -0
  70. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +163 -0
  71. package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +55 -0
  72. package/esm2022/lib/editor/components/tab/tab.component.mjs +44 -0
  73. package/esm2022/lib/editor/components/tab/tab.helper.mjs +6 -0
  74. package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +118 -0
  75. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +97 -0
  76. package/esm2022/lib/editor/components/table/components/table.component.mjs +401 -0
  77. package/esm2022/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.mjs +1 -1
  78. package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +8 -0
  79. package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +6 -0
  80. package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +18 -0
  81. package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +9 -0
  82. package/esm2022/lib/editor/components/table/models/row-data.model.mjs +8 -0
  83. package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +7 -0
  84. package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +74 -0
  85. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +366 -0
  86. package/esm2022/lib/editor/content/constants/display-values.const.mjs +8 -0
  87. package/esm2022/lib/editor/content/constants/document-info.const.mjs +13 -0
  88. package/esm2022/lib/editor/content/constants/editor.const.mjs +62 -0
  89. package/esm2022/lib/editor/content/contents.interface.mjs +2 -0
  90. package/esm2022/lib/editor/content/display-data/display-token.model.mjs +12 -0
  91. package/esm2022/lib/editor/content/display-data/document.mjs +134 -0
  92. package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +10 -0
  93. package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +11 -0
  94. package/esm2022/lib/editor/content/display-data/indent.model.mjs +9 -0
  95. package/esm2022/lib/editor/content/display-data/line-info.model.mjs +9 -0
  96. package/esm2022/lib/editor/content/display-data/lines.mjs +96 -0
  97. package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +226 -0
  98. package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +2 -0
  99. package/esm2022/lib/editor/content/display-data/paragraph.mjs +52 -0
  100. package/esm2022/lib/editor/content/display-data/text-line-info.mjs +34 -0
  101. package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +2 -0
  102. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +96 -0
  103. package/esm2022/lib/{+shared/editor → editor/content}/helpers/format.helper.mjs +1 -1
  104. package/esm2022/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.mjs +1 -1
  105. package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +9 -0
  106. package/esm2022/lib/editor/content/margin.model.mjs +16 -0
  107. package/esm2022/lib/editor/content/page-vertical-data.model.mjs +9 -0
  108. package/esm2022/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.mjs +1 -1
  109. package/esm2022/lib/editor/core/event-emitting.mjs +56 -0
  110. package/esm2022/lib/editor/display/cell.interface.mjs +2 -0
  111. package/esm2022/lib/editor/display/event.helper.mjs +18 -0
  112. package/esm2022/lib/editor/display/layers/cursor.layer.mjs +101 -0
  113. package/esm2022/lib/editor/display/layers/layer.config.mjs +2 -0
  114. package/esm2022/lib/editor/display/layers/pages.layer.mjs +97 -0
  115. package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +7 -0
  116. package/esm2022/lib/editor/display/layers/print.text.layer.mjs +7 -0
  117. package/esm2022/lib/editor/display/layers/selection.layer.mjs +113 -0
  118. package/esm2022/lib/editor/display/layers/text.layer.mjs +203 -0
  119. package/esm2022/lib/editor/display/print/print.helper.mjs +40 -0
  120. package/esm2022/lib/editor/display/print/print.renderer.mjs +67 -0
  121. package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +7 -0
  122. package/esm2022/lib/editor/display/render-changes.interface.mjs +2 -0
  123. package/esm2022/lib/editor/display/render-changes.model.mjs +25 -0
  124. package/esm2022/lib/editor/display/renderer.mjs +206 -0
  125. package/esm2022/lib/editor/display/rendering.helper.mjs +187 -0
  126. package/esm2022/lib/editor/display/renderloop.mjs +26 -0
  127. package/esm2022/lib/editor/display/virtual.renderer.mjs +317 -0
  128. package/esm2022/lib/editor/display/visible-range.interface.mjs +2 -0
  129. package/esm2022/lib/editor/editor.module.mjs +67 -0
  130. package/esm2022/lib/editor/execution/distance.model.mjs +10 -0
  131. package/esm2022/lib/editor/execution/edit.session.mjs +1117 -0
  132. package/esm2022/lib/editor/execution/editor.mjs +1346 -0
  133. package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +18 -0
  134. package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +42 -0
  135. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +64 -0
  136. package/esm2022/lib/editor/execution/helpers/page.helper.mjs +12 -0
  137. package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +41 -0
  138. package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +169 -0
  139. package/esm2022/lib/editor/execution/regulator.service.mjs +198 -0
  140. package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +19 -0
  141. package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +15 -0
  142. package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +8 -0
  143. package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +3 -0
  144. package/esm2022/lib/editor/execution/targeting/session.model.mjs +10 -0
  145. package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +2 -0
  146. package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +2 -0
  147. package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +88 -0
  148. package/esm2022/lib/editor/gadgets/history/operation-history.mjs +206 -0
  149. package/esm2022/lib/editor/gadgets/history/operation.type.mjs +2 -0
  150. package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +7 -0
  151. package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +9 -0
  152. package/esm2022/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.mjs +1 -1
  153. package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +82 -0
  154. package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +7 -0
  155. package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +18 -0
  156. package/esm2022/lib/editor/gadgets/scrollbar.mjs +81 -0
  157. package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +2 -0
  158. package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +2 -0
  159. package/esm2022/lib/editor/gadgets/search/search.mjs +231 -0
  160. package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +5 -0
  161. package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +20 -0
  162. package/esm2022/lib/editor/interaction/base.handler.mjs +19 -0
  163. package/esm2022/lib/editor/interaction/document.handler.mjs +27 -0
  164. package/esm2022/lib/editor/interaction/editor.service.mjs +325 -0
  165. package/esm2022/lib/editor/interaction/input.handler.mjs +149 -0
  166. package/esm2022/lib/{+shared/enums → editor/interaction}/mode.enum.mjs +1 -1
  167. package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +7 -0
  168. package/esm2022/lib/editor/interaction/mouse.handler.mjs +49 -0
  169. package/esm2022/lib/editor/interaction/text-input.mjs +53 -0
  170. package/esm2022/lib/editor/operations/commands.service.mjs +20 -0
  171. package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +32 -0
  172. package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +7 -0
  173. package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +9 -0
  174. package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +15 -0
  175. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +55 -0
  176. package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +19 -0
  177. package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
  178. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +28 -0
  179. package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
  180. package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +114 -0
  181. package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +16 -0
  182. package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +374 -0
  183. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +432 -0
  184. package/esm2022/lib/editor/operations/save-commands.helper.mjs +127 -0
  185. package/esm2022/lib/editor/operations/target-operations.helper.mjs +23 -0
  186. package/esm2022/lib/editor/positioning/alignments.const.mjs +8 -0
  187. package/esm2022/lib/editor/positioning/content.helper.mjs +36 -0
  188. package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +13 -0
  189. package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +2 -0
  190. package/esm2022/lib/editor/positioning/insert-index.interface.mjs +2 -0
  191. package/esm2022/lib/editor/positioning/line-width.helper.mjs +13 -0
  192. package/esm2022/lib/editor/positioning/position.helper.mjs +194 -0
  193. package/esm2022/lib/editor/positioning/range.mjs +94 -0
  194. package/esm2022/lib/editor/positioning/selection.mjs +307 -0
  195. package/esm2022/lib/editor/revision.helper.mjs +91 -0
  196. package/esm2022/lib/models/generated/cell.model.mjs +1 -1
  197. package/esm2022/lib/models/generated/command.model.mjs +5 -1
  198. package/esm2022/lib/models/generated/insert-paragraph.model.mjs +20 -0
  199. package/esm2022/lib/models/generated/replace.model.mjs +5 -1
  200. package/esm2022/public-api.mjs +37 -31
  201. package/fesm2022/talrace-ngx-noder.mjs +3398 -2731
  202. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  203. package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +27 -0
  204. package/lib/apart-components/add-link-dialog/validation.helper.d.ts +5 -0
  205. package/lib/apart-components/add-link-mobile/add-link-mobile.component.d.ts +19 -0
  206. package/lib/{+shared → apart-components}/confirm-dialog/confirm-dialog.component.d.ts +2 -1
  207. package/lib/{+shared → apart-components}/editor-search/editor-search-dialog.component.d.ts +6 -7
  208. package/lib/apart-components/editor-title/editor-title.component.d.ts +25 -0
  209. package/lib/apart-components/editor-title-mobile/editor-title-mobile.component.d.ts +6 -0
  210. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +49 -0
  211. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/color-picker/color-picker.component.d.ts +1 -1
  212. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/font.component.d.ts +2 -2
  213. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/font-size.component.d.ts +1 -1
  214. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/font-style.component.d.ts +1 -1
  215. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/format.component.d.ts +2 -2
  216. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/heading/heading.component.d.ts +1 -1
  217. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/numbering.component.d.ts +3 -3
  218. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/print/print.component.d.ts +1 -1
  219. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/undo-redo.component.d.ts +1 -1
  220. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/zoom/zoom.component.d.ts +1 -1
  221. package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +36 -0
  222. package/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.d.ts +14 -0
  223. package/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.d.ts +23 -0
  224. package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +26 -0
  225. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +40 -0
  226. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +32 -0
  227. package/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.d.ts +2 -0
  228. package/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.d.ts +6 -0
  229. package/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.d.ts +9 -0
  230. package/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.d.ts +14 -0
  231. package/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.d.ts +38 -0
  232. package/lib/{+shared/editor-toolbar/helpers → apart-components/editor-toolbar/shared}/toolbar-styles.helper.d.ts +2 -2
  233. package/lib/{+shared → apart-components}/insert-table/insert-table.component.d.ts +1 -1
  234. package/lib/apart-components/insert-table-mobile/insert-table-mobile.component.d.ts +30 -0
  235. package/lib/apart-components/text-format-mobile/text-format-mobile.component.d.ts +35 -0
  236. package/lib/{+shared/editor/core/models → editor/components/edges}/edge-element.model.d.ts +1 -1
  237. package/lib/editor/components/edges/edge.component.d.ts +44 -0
  238. package/lib/{+shared/editor/core → editor}/components/edges/edges.d.ts +7 -7
  239. package/lib/{+shared/editor → editor/components}/editor.component.d.ts +11 -11
  240. package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-sidenav.interface.d.ts +1 -1
  241. package/lib/{+shared/editor/custom-components → editor/components}/external-element/external.component.d.ts +4 -4
  242. package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-element.model.d.ts +2 -1
  243. package/lib/{+shared/editor/custom-components → editor/components}/image/components/image.component.d.ts +4 -4
  244. package/lib/editor/components/image/image-api.service.d.ts +17 -0
  245. package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/resizer.component.d.ts +2 -2
  246. package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-wrapper.d.ts +1 -1
  247. package/lib/{+shared/editor/custom-components → editor/components}/shared/abstract/base.component.d.ts +6 -4
  248. package/lib/editor/components/shared/abstract/destroy.component.d.ts +9 -0
  249. package/lib/{+shared/editor/custom-components/shared/helpers → editor/components/shared}/custom-component.hepler.d.ts +3 -3
  250. package/lib/editor/components/shared/custom-components.interface.d.ts +13 -0
  251. package/lib/editor/components/shared/custom-content.d.ts +5 -0
  252. package/lib/{+shared/editor/custom-components/shared/services/component → editor/components/shared/services}/component.service.d.ts +1 -1
  253. package/lib/editor/components/shared/services/custom-content.service.d.ts +33 -0
  254. package/lib/{+shared/editor/custom-components → editor/components}/tab/tab.component.d.ts +2 -2
  255. package/lib/{+shared/editor/custom-components → editor/components}/table/cell-resizer/cell-resizer.d.ts +2 -1
  256. package/lib/editor/components/table/components/table-cell.component.d.ts +45 -0
  257. package/lib/{+shared/editor/custom-components → editor/components}/table/components/table.component.d.ts +26 -11
  258. package/lib/{+shared/editor/custom-components → editor/components}/table/overlay-menu/overlay-menu.component.d.ts +2 -2
  259. package/lib/{+shared/editor/custom-components → editor/components}/table/selection/table-selection.d.ts +3 -3
  260. package/lib/{+shared/editor/core → editor/content}/constants/editor.const.d.ts +3 -3
  261. package/lib/editor/content/contents.interface.d.ts +22 -0
  262. package/lib/{+shared/editor/core/models → editor/content/display-data}/display-token.model.d.ts +1 -1
  263. package/lib/{+shared/editor/core → editor/content/display-data}/document.d.ts +9 -9
  264. package/lib/{+shared/editor/core/models → editor/content/display-data}/format-ext.model.d.ts +1 -1
  265. package/lib/{+shared/editor/execution/models → editor/content/display-data}/general-properties.model.d.ts +2 -1
  266. package/lib/{+shared/editor/core/models → editor/content/display-data}/line-info.model.d.ts +1 -0
  267. package/lib/{+shared/editor/core/layers → editor/content/display-data}/lines.d.ts +1 -1
  268. package/lib/editor/content/display-data/pages.wrap.d.ts +42 -0
  269. package/lib/{+shared/editor/core/paging → editor/content/display-data}/paragraph.d.ts +8 -5
  270. package/lib/{+shared/editor/core/paging → editor/content/display-data}/text-line-info.d.ts +4 -2
  271. package/lib/editor/content/helpers/content-style.helper.d.ts +11 -0
  272. package/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.d.ts +1 -1
  273. package/lib/editor/content/helpers/scaling.helper.d.ts +4 -0
  274. package/lib/{+shared/editor/core/paging → editor/content}/page-vertical-data.model.d.ts +1 -1
  275. package/lib/{+shared/editor/core/base → editor/core}/event-emitting.d.ts +0 -5
  276. package/lib/{+shared/editor/core → editor/display}/layers/cursor.layer.d.ts +7 -8
  277. package/lib/{+shared/editor/core/interfaces → editor/display/layers}/layer.config.d.ts +2 -2
  278. package/lib/{+shared/editor/core → editor/display}/layers/pages.layer.d.ts +5 -6
  279. package/lib/editor/display/layers/print.text.layer.d.ts +4 -0
  280. package/lib/{+shared/editor/core → editor/display}/layers/selection.layer.d.ts +5 -6
  281. package/lib/editor/display/layers/text.layer.d.ts +34 -0
  282. package/lib/{+shared/helpers → editor/display/print}/print.helper.d.ts +3 -3
  283. package/lib/editor/display/print/print.renderer.d.ts +23 -0
  284. package/lib/{+shared/editor/core/helpers → editor/display/print}/print.rendering.helper.d.ts +2 -2
  285. package/lib/{+shared/editor/core/models → editor/display}/render-changes.model.d.ts +1 -1
  286. package/lib/{+shared/editor/core → editor/display}/renderer.d.ts +10 -13
  287. package/lib/{+shared/editor/core/helpers → editor/display}/rendering.helper.d.ts +10 -10
  288. package/lib/{+shared/editor/core/layers → editor/display}/renderloop.d.ts +2 -2
  289. package/lib/{+shared/editor/core → editor/display}/virtual.renderer.d.ts +14 -29
  290. package/lib/editor/editor.module.d.ts +31 -0
  291. package/lib/{+shared/editor/core → editor/execution}/edit.session.d.ts +65 -63
  292. package/lib/{+shared/editor/core → editor/execution}/editor.d.ts +48 -42
  293. package/lib/editor/execution/helpers/delta.helper.d.ts +6 -0
  294. package/lib/{+shared/editor/core → editor/execution}/helpers/format-style.helper.d.ts +3 -5
  295. package/lib/{+shared/editor/core → editor/execution}/helpers/page.helper.d.ts +1 -1
  296. package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph-style.helper.d.ts +1 -1
  297. package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph.helper.d.ts +14 -8
  298. package/lib/{+shared/editor → editor}/execution/regulator.service.d.ts +16 -15
  299. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/cell-session-source.model.d.ts +3 -3
  300. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/edge-session-source.model.d.ts +3 -3
  301. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/main-session-source.model.d.ts +1 -1
  302. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session-source.model.d.ts +1 -1
  303. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session.model.d.ts +3 -3
  304. package/lib/{+shared/editor/core/helpers → editor/gadgets/font-metrics}/font-metrics.helper.d.ts +1 -1
  305. package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation-history.d.ts +9 -7
  306. package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation.type.d.ts +2 -1
  307. package/lib/{+shared/editor/core/models → editor/gadgets/numbering}/numbering-data.model.d.ts +1 -1
  308. package/lib/{+shared/editor/core/helpers → editor/gadgets/numbering}/numbering.helper.d.ts +8 -8
  309. package/lib/{+shared/editor/helpers → editor/gadgets/page-break}/break.helper.d.ts +2 -2
  310. package/lib/{+shared/editor/core/layers → editor/gadgets}/scrollbar.d.ts +9 -18
  311. package/lib/{+shared/editor/core → editor/gadgets/search}/search.d.ts +4 -4
  312. package/lib/editor/interaction/base.handler.d.ts +9 -0
  313. package/lib/editor/interaction/document.handler.d.ts +10 -0
  314. package/lib/{+shared/editor → editor}/interaction/editor.service.d.ts +24 -18
  315. package/lib/{+shared/editor → editor}/interaction/input.handler.d.ts +4 -5
  316. package/lib/{+shared/editor → editor}/interaction/mouse.handler.d.ts +1 -1
  317. package/lib/{+shared/editor → editor}/operations/enums/command-type.enum.d.ts +11 -10
  318. package/lib/{+shared/editor → editor}/operations/helpers/break-operations.helper.d.ts +2 -2
  319. package/lib/{+shared/editor → editor}/operations/helpers/format-operations.helper.d.ts +2 -2
  320. package/lib/editor/operations/helpers/image-operations.helper.d.ts +7 -0
  321. package/lib/{+shared/editor → editor}/operations/helpers/indexed-element-operations.helper.d.ts +1 -1
  322. package/lib/{+shared/editor → editor}/operations/helpers/link-operations.helper.d.ts +1 -1
  323. package/lib/{+shared/editor → editor}/operations/helpers/numbering-operations.helper.d.ts +3 -3
  324. package/lib/{+shared/editor → editor}/operations/helpers/paragraph-operations.helper.d.ts +3 -2
  325. package/lib/{+shared/editor → editor}/operations/helpers/tab-operations.helper.d.ts +1 -1
  326. package/lib/{+shared/editor → editor}/operations/helpers/table-operations.helper.d.ts +6 -6
  327. package/lib/{+shared/editor/operations/helpers → editor/operations}/operations-helper.helper.d.ts +21 -19
  328. package/lib/{+shared/editor/operations/helpers → editor/operations}/save-commands.helper.d.ts +28 -22
  329. package/lib/editor/operations/target-operations.helper.d.ts +6 -0
  330. package/lib/{+shared/editor/helpers → editor/positioning}/content.helper.d.ts +10 -5
  331. package/lib/editor/positioning/cursor-paragraph.d.ts +7 -0
  332. package/lib/{+shared/editor/core/interfaces → editor/positioning}/cursor-position.interface.d.ts +1 -1
  333. package/lib/{+shared/editor/core/helpers → editor/positioning}/line-width.helper.d.ts +2 -2
  334. package/lib/{+shared/editor/core/helpers → editor/positioning}/position.helper.d.ts +9 -9
  335. package/lib/{+shared/editor/core → editor/positioning}/range.d.ts +12 -12
  336. package/lib/{+shared/editor → editor}/positioning/selection.d.ts +10 -10
  337. package/lib/editor/revision.helper.d.ts +15 -0
  338. package/lib/models/generated/cell.model.d.ts +1 -0
  339. package/lib/models/generated/command.model.d.ts +2 -0
  340. package/lib/models/generated/insert-paragraph.model.d.ts +10 -0
  341. package/lib/models/generated/replace.model.d.ts +2 -0
  342. package/package.json +1 -1
  343. package/public-api.d.ts +36 -30
  344. package/src/_ngx-noder.theme.scss +20 -13
  345. package/src/assets/fonts/nc-iconfont.css +112 -106
  346. package/src/assets/fonts/nc-iconfont.eot +0 -0
  347. package/src/assets/fonts/nc-iconfont.svg +4 -1
  348. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  349. package/src/assets/fonts/nc-iconfont.woff +0 -0
  350. package/src/lib/{+shared → apart-components}/add-link-dialog/_add-link-dialog.theme.scss +4 -4
  351. package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +25 -0
  352. package/src/lib/apart-components/confirm-dialog/_theme.scss +30 -0
  353. package/src/lib/apart-components/editor-title/_editor-title.theme.scss +28 -0
  354. package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +42 -0
  355. package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +27 -0
  356. package/src/lib/apart-components/editor-toolbar/_theme.scss +25 -0
  357. package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +12 -0
  358. package/src/lib/apart-components/editor-toolbar/components/buttons/font/_font.theme.scss +12 -0
  359. package/src/lib/apart-components/editor-toolbar/components/buttons/font-size/_font-size.theme.scss +14 -0
  360. package/src/lib/apart-components/editor-toolbar/components/buttons/font-style/_font-style.theme.scss +21 -0
  361. package/src/lib/apart-components/editor-toolbar/components/buttons/format/_format.theme.scss +21 -0
  362. package/src/lib/apart-components/editor-toolbar/components/buttons/numbering/_numbering.theme.scss +70 -0
  363. package/src/lib/apart-components/editor-toolbar/components/buttons/undo-redo/_undo-redo.theme.scss +16 -0
  364. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns/_menu-dropdowns.theme.scss +26 -0
  365. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +33 -0
  366. package/src/lib/apart-components/editor-toolbar/components/toolbar-actions/_toolbar-actions.theme.scss +22 -0
  367. package/src/lib/{+shared → apart-components}/insert-table/_insert-table.theme.scss +10 -7
  368. package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +54 -0
  369. package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +86 -0
  370. package/src/lib/editor/_theme.scss +5 -0
  371. package/src/lib/editor/components/_editor.theme.scss +112 -0
  372. package/src/scss/_fonts.scss +3 -0
  373. package/src/scss/base-editor.scss +329 -0
  374. package/src/styles.scss +3 -58
  375. package/esm2022/lib/+shared/abstract/base-api.service.mjs +0 -99
  376. package/esm2022/lib/+shared/abstract/observer.component.mjs +0 -24
  377. package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +0 -28
  378. package/esm2022/lib/+shared/constants/default-file-name.const.mjs +0 -2
  379. package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +0 -3
  380. package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +0 -71
  381. package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +0 -6
  382. package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +0 -100
  383. package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +0 -104
  384. package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +0 -8
  385. package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +0 -6
  386. package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +0 -15
  387. package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +0 -8
  388. package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +0 -13
  389. package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +0 -2
  390. package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +0 -62
  391. package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +0 -5
  392. package/esm2022/lib/+shared/editor/core/document.mjs +0 -134
  393. package/esm2022/lib/+shared/editor/core/edit.session.mjs +0 -1102
  394. package/esm2022/lib/+shared/editor/core/editor.mjs +0 -1279
  395. package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +0 -7
  396. package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +0 -7
  397. package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +0 -7
  398. package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +0 -156
  399. package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +0 -18
  400. package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +0 -42
  401. package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +0 -18
  402. package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +0 -88
  403. package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +0 -72
  404. package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +0 -13
  405. package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +0 -83
  406. package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +0 -12
  407. package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +0 -41
  408. package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +0 -132
  409. package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +0 -191
  410. package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +0 -7
  411. package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +0 -186
  412. package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +0 -20
  413. package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +0 -2
  414. package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +0 -2
  415. package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +0 -2
  416. package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +0 -2
  417. package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +0 -2
  418. package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +0 -2
  419. package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +0 -2
  420. package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +0 -2
  421. package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +0 -2
  422. package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +0 -2
  423. package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +0 -2
  424. package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +0 -53
  425. package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +0 -103
  426. package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +0 -99
  427. package/esm2022/lib/+shared/editor/core/layers/lines.mjs +0 -96
  428. package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +0 -106
  429. package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +0 -7
  430. package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +0 -7
  431. package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +0 -7
  432. package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +0 -26
  433. package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +0 -100
  434. package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +0 -115
  435. package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +0 -124
  436. package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +0 -12
  437. package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +0 -10
  438. package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +0 -9
  439. package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +0 -10
  440. package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +0 -9
  441. package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +0 -9
  442. package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +0 -16
  443. package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +0 -9
  444. package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +0 -25
  445. package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +0 -9
  446. package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +0 -219
  447. package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +0 -52
  448. package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +0 -34
  449. package/esm2022/lib/+shared/editor/core/point.mjs +0 -13
  450. package/esm2022/lib/+shared/editor/core/print.renderer.mjs +0 -72
  451. package/esm2022/lib/+shared/editor/core/range.mjs +0 -94
  452. package/esm2022/lib/+shared/editor/core/renderer.mjs +0 -217
  453. package/esm2022/lib/+shared/editor/core/search.mjs +0 -231
  454. package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +0 -356
  455. package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +0 -35
  456. package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +0 -6
  457. package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +0 -4
  458. package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +0 -2
  459. package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +0 -41
  460. package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +0 -9
  461. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +0 -10
  462. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +0 -15
  463. package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +0 -87
  464. package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +0 -38
  465. package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +0 -2
  466. package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +0 -2
  467. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +0 -19
  468. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +0 -12
  469. package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +0 -106
  470. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +0 -2
  471. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +0 -52
  472. package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +0 -14
  473. package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +0 -57
  474. package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +0 -3
  475. package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +0 -43
  476. package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +0 -2
  477. package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +0 -64
  478. package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +0 -120
  479. package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +0 -55
  480. package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +0 -2
  481. package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +0 -43
  482. package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +0 -118
  483. package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +0 -95
  484. package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +0 -293
  485. package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +0 -8
  486. package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +0 -6
  487. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +0 -18
  488. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +0 -9
  489. package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +0 -8
  490. package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +0 -7
  491. package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +0 -74
  492. package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +0 -358
  493. package/esm2022/lib/+shared/editor/editor.component.mjs +0 -103
  494. package/esm2022/lib/+shared/editor/editor.module.mjs +0 -85
  495. package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +0 -19
  496. package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +0 -15
  497. package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +0 -11
  498. package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +0 -8
  499. package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +0 -3
  500. package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +0 -10
  501. package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +0 -193
  502. package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +0 -18
  503. package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +0 -30
  504. package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +0 -6
  505. package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +0 -309
  506. package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +0 -160
  507. package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +0 -49
  508. package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +0 -2
  509. package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +0 -2
  510. package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +0 -184
  511. package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +0 -2
  512. package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +0 -7
  513. package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +0 -31
  514. package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +0 -7
  515. package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +0 -9
  516. package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +0 -15
  517. package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +0 -56
  518. package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +0 -19
  519. package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
  520. package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +0 -28
  521. package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
  522. package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +0 -394
  523. package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +0 -83
  524. package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +0 -118
  525. package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +0 -16
  526. package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +0 -371
  527. package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +0 -23
  528. package/esm2022/lib/+shared/editor/positioning/selection.mjs +0 -307
  529. package/esm2022/lib/+shared/editor/store/editor.actions.mjs +0 -13
  530. package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +0 -314
  531. package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +0 -71
  532. package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +0 -32
  533. package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +0 -157
  534. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +0 -115
  535. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +0 -107
  536. package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +0 -8
  537. package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +0 -6
  538. package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +0 -45
  539. package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +0 -85
  540. package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +0 -80
  541. package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +0 -28
  542. package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +0 -23
  543. package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +0 -55
  544. package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +0 -53
  545. package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +0 -18
  546. package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +0 -27
  547. package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +0 -74
  548. package/esm2022/lib/+shared/helpers/print.helper.mjs +0 -40
  549. package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +0 -54
  550. package/esm2022/lib/+shared/services/commands.service.mjs +0 -20
  551. package/esm2022/lib/+shared/services/custom-icon.service.mjs +0 -34
  552. package/lib/+shared/abstract/base-api.service.d.ts +0 -23
  553. package/lib/+shared/abstract/observer.component.d.ts +0 -10
  554. package/lib/+shared/constants/default-file-name.const.d.ts +0 -1
  555. package/lib/+shared/constants/paginator-sizes.const.d.ts +0 -2
  556. package/lib/+shared/editor/core/components/edges/edge.component.d.ts +0 -45
  557. package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +0 -5
  558. package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +0 -14
  559. package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +0 -16
  560. package/lib/+shared/editor/core/helpers/delta.helper.d.ts +0 -6
  561. package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +0 -5
  562. package/lib/+shared/editor/core/layers/edges.layer.d.ts +0 -24
  563. package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +0 -4
  564. package/lib/+shared/editor/core/layers/print.text.layer.d.ts +0 -5
  565. package/lib/+shared/editor/core/layers/text.layer.d.ts +0 -22
  566. package/lib/+shared/editor/core/paging/pages.wrap.d.ts +0 -41
  567. package/lib/+shared/editor/core/point.d.ts +0 -7
  568. package/lib/+shared/editor/core/print.renderer.d.ts +0 -25
  569. package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +0 -14
  570. package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +0 -8
  571. package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +0 -13
  572. package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +0 -30
  573. package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +0 -5
  574. package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +0 -45
  575. package/lib/+shared/editor/editor.module.d.ts +0 -30
  576. package/lib/+shared/editor/interfaces/contents.interface.d.ts +0 -22
  577. package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +0 -7
  578. package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +0 -6
  579. package/lib/+shared/editor/store/editor.actions.d.ts +0 -11
  580. package/lib/+shared/editor-header/editor-header.component.d.ts +0 -101
  581. package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +0 -6
  582. package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +0 -44
  583. package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +0 -28
  584. package/src/lib/+shared/editor/_editor.theme.scss +0 -35
  585. package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +0 -10
  586. package/src/lib/+shared/editor-header/_editor-header.theme.scss +0 -106
  587. package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +0 -33
  588. package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +0 -29
  589. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/svg-icons.const.d.ts +0 -0
  590. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/alignment.enum.d.ts +0 -0
  591. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.d.ts +0 -0
  592. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-type.enum.d.ts +0 -0
  593. /package/lib/{+shared → apart-components/editor-toolbar/shared}/services/custom-icon.service.d.ts +0 -0
  594. /package/lib/{+shared/editor/core → editor}/components/edges/edge-type.enum.d.ts +0 -0
  595. /package/lib/{+shared/editor/core/enums → editor/components/edges}/page-type.enum.d.ts +0 -0
  596. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-element.service.d.ts +0 -0
  597. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-elements.const.d.ts +0 -0
  598. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/element-data.model.d.ts +0 -0
  599. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-sidenav.model.d.ts +0 -0
  600. /package/lib/{+shared/editor/custom-components → editor/components}/image/input-handler/image-input.handler.d.ts +0 -0
  601. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/coordinate.d.ts +0 -0
  602. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction-wrapper.d.ts +0 -0
  603. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction.enum.d.ts +0 -0
  604. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-delta.d.ts +0 -0
  605. /package/lib/{+shared/editor/custom-components/image/interfaces → editor/components/image}/size.d.ts +0 -0
  606. /package/lib/{+shared/editor/custom-components/shared/constants → editor/components/shared}/custom-content-markers.const.d.ts +0 -0
  607. /package/lib/{+shared/editor/custom-components/shared/services/overlay → editor/components/shared/services}/overlay.service.d.ts +0 -0
  608. /package/lib/{+shared/editor/helpers → editor/components/tab}/tab.helper.d.ts +0 -0
  609. /package/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.d.ts +0 -0
  610. /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/reisizer-side.enum.d.ts +0 -0
  611. /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/vertical-merge.enum.d.ts +0 -0
  612. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-data.model.d.ts +0 -0
  613. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-resizer-parameters.model.d.ts +0 -0
  614. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/row-data.model.d.ts +0 -0
  615. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/selection-range.model.d.ts +0 -0
  616. /package/lib/{+shared/editor/core → editor/content}/constants/display-values.const.d.ts +0 -0
  617. /package/lib/{+shared/editor/core → editor/content}/constants/document-info.const.d.ts +0 -0
  618. /package/lib/{+shared/editor/core/models → editor/content/display-data}/indent.model.d.ts +0 -0
  619. /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/paragraph-info.interface.d.ts +0 -0
  620. /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/toolbar-styles.interface.d.ts +0 -0
  621. /package/lib/{+shared/editor → editor/content}/helpers/format.helper.d.ts +0 -0
  622. /package/lib/{+shared/editor/core/models → editor/content}/margin.model.d.ts +0 -0
  623. /package/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.d.ts +0 -0
  624. /package/lib/{+shared/editor/core/interfaces → editor/display}/cell.interface.d.ts +0 -0
  625. /package/lib/{+shared/editor/core/helpers → editor/display}/event.helper.d.ts +0 -0
  626. /package/lib/{+shared/editor/core → editor/display}/layers/print.pages.layer.d.ts +0 -0
  627. /package/lib/{+shared/editor/core/interfaces → editor/display}/render-changes.interface.d.ts +0 -0
  628. /package/lib/{+shared/editor/core/interfaces → editor/display}/visible-range.interface.d.ts +0 -0
  629. /package/lib/{+shared/editor/core/models → editor/execution}/distance.model.d.ts +0 -0
  630. /package/lib/{+shared/editor/core → editor/execution}/helpers/dom.helper.d.ts +0 -0
  631. /package/lib/{+shared/editor/core/constants → editor/gadgets/font-metrics}/editor-version.const.d.ts +0 -0
  632. /package/lib/{+shared/editor/core/interfaces → editor/gadgets/font-metrics}/font-metric-size.interface.d.ts +0 -0
  633. /package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operations-history-info.model.d.ts +0 -0
  634. /package/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.d.ts +0 -0
  635. /package/lib/{+shared/editor/core/enums → editor/gadgets/page-break}/break-types.enum.d.ts +0 -0
  636. /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/replace.interface.d.ts +0 -0
  637. /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/search-iteration.interface.d.ts +0 -0
  638. /package/lib/{+shared/editor/core/constants → editor/gadgets/unicode}/unicode-chars.const.d.ts +0 -0
  639. /package/lib/{+shared/editor/core/helpers → editor/gadgets/unicode}/unicode.helper.d.ts +0 -0
  640. /package/lib/{+shared/enums → editor/interaction}/mode.enum.d.ts +0 -0
  641. /package/lib/{+shared/editor/core/enums → editor/interaction}/mouse-button.enum.d.ts +0 -0
  642. /package/lib/{+shared/editor/core/keyboard → editor/interaction}/text-input.d.ts +0 -0
  643. /package/lib/{+shared/services → editor/operations}/commands.service.d.ts +0 -0
  644. /package/lib/{+shared/editor → editor}/operations/enums/target-type.enum.d.ts +0 -0
  645. /package/lib/{+shared/editor → editor}/operations/helpers/content-operations.helper.d.ts +0 -0
  646. /package/lib/{+shared/editor/core/constants → editor/positioning}/alignments.const.d.ts +0 -0
  647. /package/lib/{+shared/editor/interfaces → editor/positioning}/insert-index.interface.d.ts +0 -0
@@ -0,0 +1,49 @@
1
+ import { fromEvent, throttleTime } from 'rxjs';
2
+ import { MouseButton } from './mouse-button.enum';
3
+ export class MouseHandler {
4
+ constructor(container, editor) {
5
+ this.clicks = 0;
6
+ this.containerWheel$ = fromEvent(container, 'wheel')
7
+ .pipe(throttleTime(20))
8
+ .subscribe((event) => editor.onMouseWheel(event));
9
+ this.containerMouseDown$ = fromEvent(container, 'mousedown').subscribe((event) => this.onMultiMouseDown(event, editor));
10
+ }
11
+ destroy() {
12
+ this.containerWheel$?.unsubscribe();
13
+ this.containerMouseDown$?.unsubscribe();
14
+ this.endMousePress();
15
+ }
16
+ startMousePress(editor) {
17
+ this.endMousePress();
18
+ this.documentMouseMove$ = fromEvent(document, 'mousemove')
19
+ .pipe(throttleTime(20))
20
+ .subscribe((event) => editor.onMousePressedMove(event.clientX, event.clientY));
21
+ this.documentMouseUp$ = fromEvent(document, 'mouseup').subscribe(() => this.endMousePress());
22
+ }
23
+ endMousePress() {
24
+ this.documentMouseMove$?.unsubscribe();
25
+ this.documentMouseUp$?.unsubscribe();
26
+ }
27
+ onMultiMouseDown(event, editor) {
28
+ if (event.button !== MouseButton.Left) {
29
+ editor.onMouseClick(event);
30
+ return;
31
+ }
32
+ this.clicks = event.detail > 1 && this.clicks < 4 ? this.clicks + 1 : 1;
33
+ switch (this.clicks) {
34
+ case 1:
35
+ editor.onLeftClick(event);
36
+ break;
37
+ case 2:
38
+ editor.onDoubleClick(event);
39
+ break;
40
+ case 3:
41
+ editor.onTripleClick(event);
42
+ break;
43
+ case 4:
44
+ editor.onQuadClick(event);
45
+ break;
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91c2UuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9pbnRlcmFjdGlvbi9tb3VzZS5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxPQUFPLFlBQVk7SUFXckIsWUFBWSxTQUFlLEVBQUUsTUFBYztRQVZuQyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBV2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQzthQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RCLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7YUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN0QixTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLE1BQWM7UUFDdEQsSUFBSyxLQUFLLENBQUMsTUFBc0IsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakIsS0FBSyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixNQUFNO1lBQ1YsS0FBSyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLE1BQU07U0FDYjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnLi4vZXhlY3V0aW9uL2VkaXRvcic7XG5pbXBvcnQgeyBNb3VzZUJ1dHRvbiB9IGZyb20gJy4vbW91c2UtYnV0dG9uLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgTW91c2VIYW5kbGVyIHtcbiAgICBwcml2YXRlIGNsaWNrcyA9IDA7XG5cbiAgICBkb2N1bWVudE1vdXNlTW92ZSQ6IFN1YnNjcmlwdGlvbjtcblxuICAgIGRvY3VtZW50TW91c2VVcCQ6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnRhaW5lcldoZWVsJDogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29udGFpbmVyTW91c2VEb3duJDogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyOiBOb2RlLCBlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldoZWVsJCA9IGZyb21FdmVudChjb250YWluZXIsICd3aGVlbCcpXG4gICAgICAgICAgICAucGlwZSh0aHJvdHRsZVRpbWUoMjApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IGVkaXRvci5vbk1vdXNlV2hlZWwoZXZlbnQpKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJNb3VzZURvd24kID0gZnJvbUV2ZW50KGNvbnRhaW5lciwgJ21vdXNlZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHRoaXMub25NdWx0aU1vdXNlRG93bihldmVudCwgZWRpdG9yKSk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaGVlbCQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyTW91c2VEb3duJD8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5lbmRNb3VzZVByZXNzKCk7XG4gICAgfVxuXG4gICAgc3RhcnRNb3VzZVByZXNzKGVkaXRvcjogRWRpdG9yKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW5kTW91c2VQcmVzcygpO1xuICAgICAgICB0aGlzLmRvY3VtZW50TW91c2VNb3ZlJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAucGlwZSh0aHJvdHRsZVRpbWUoMjApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IGVkaXRvci5vbk1vdXNlUHJlc3NlZE1vdmUoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50TW91c2VVcCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJykuc3Vic2NyaWJlKCgpID0+IHRoaXMuZW5kTW91c2VQcmVzcygpKTtcbiAgICB9XG5cbiAgICBlbmRNb3VzZVByZXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRvY3VtZW50TW91c2VNb3ZlJD8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudE1vdXNlVXAkPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NdWx0aU1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgZWRpdG9yOiBFZGl0b3IpOiB2b2lkIHtcbiAgICAgICAgaWYgKChldmVudC5idXR0b24gYXMgTW91c2VCdXR0b24pICE9PSBNb3VzZUJ1dHRvbi5MZWZ0KSB7XG4gICAgICAgICAgICBlZGl0b3Iub25Nb3VzZUNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xpY2tzID0gZXZlbnQuZGV0YWlsID4gMSAmJiB0aGlzLmNsaWNrcyA8IDQgPyB0aGlzLmNsaWNrcyArIDEgOiAxO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY2xpY2tzKSB7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgZWRpdG9yLm9uTGVmdENsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICBlZGl0b3Iub25Eb3VibGVDbGljayhldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgZWRpdG9yLm9uVHJpcGxlQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgIGVkaXRvci5vblF1YWRDbGljayhldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,53 @@
1
+ export class TextInput {
2
+ constructor(parentElement) {
3
+ this.lastValue = '';
4
+ this.lastSelectionStart = 0;
5
+ this.lastSelectionEnd = 0;
6
+ this.input = document.createElement('textarea');
7
+ this.input.className = 'noder-text-input';
8
+ this.input.id = 'textarea-input';
9
+ this.input.style.opacity = '0';
10
+ this.input.setAttribute('wrap', 'off');
11
+ this.input.setAttribute('autocomplete', 'off');
12
+ this.input.setAttribute('autocorrect', 'off');
13
+ this.input.setAttribute('autocapitalize', 'off');
14
+ this.input.setAttribute('spellcheck', 'false');
15
+ parentElement.insertBefore(this.input, parentElement.firstChild);
16
+ this.isFocused = document.activeElement === this.input;
17
+ }
18
+ getClipboardData(event) {
19
+ const mime = 'text/plain';
20
+ return event.clipboardData.getData(mime);
21
+ }
22
+ getInsertText() {
23
+ const data = this.input.value;
24
+ const selectionStart = this.input.selectionStart;
25
+ const selectionEnd = this.input.selectionEnd;
26
+ let extendLeft = this.lastSelectionStart;
27
+ let extendRight = this.lastValue.length - this.lastSelectionEnd;
28
+ let text = data;
29
+ let i = 0;
30
+ while (extendLeft > 0 && this.lastValue[i] === data[i]) {
31
+ i++;
32
+ extendLeft--;
33
+ }
34
+ text = text.slice(i);
35
+ i = 1;
36
+ while (extendRight > 0 &&
37
+ this.lastValue.length - i > this.lastSelectionStart - 1 &&
38
+ this.lastValue[this.lastValue.length - i] === data[data.length - i]) {
39
+ i++;
40
+ extendRight--;
41
+ }
42
+ let endIndex = text.length - i + 1;
43
+ if (endIndex < 0) {
44
+ endIndex = 0;
45
+ }
46
+ text = text.slice(0, endIndex);
47
+ this.lastValue = data;
48
+ this.lastSelectionStart = selectionStart;
49
+ this.lastSelectionEnd = selectionEnd;
50
+ return text;
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9pbnRlcmFjdGlvbi90ZXh0LWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0lBV2xCLFlBQVksYUFBMEI7UUFOOUIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVmLHVCQUFrQixHQUFHLENBQUMsQ0FBQztRQUV2QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFHekIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLGdCQUFnQixDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRS9DLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0QsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXFCO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxhQUFhO1FBQ1QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFFN0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3pDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BELENBQUMsRUFBRSxDQUFDO1lBQ0osVUFBVSxFQUFFLENBQUM7U0FDaEI7UUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sT0FDSSxXQUFXLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQztZQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUNyRTtZQUNFLENBQUMsRUFBRSxDQUFDO1lBQ0osV0FBVyxFQUFFLENBQUM7U0FDakI7UUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsUUFBUSxHQUFHLENBQUMsQ0FBQztTQUNoQjtRQUVELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7UUFFckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFRleHRJbnB1dCB7XG4gICAgaW5wdXQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG5cbiAgICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGxhc3RWYWx1ZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBsYXN0U2VsZWN0aW9uU3RhcnQgPSAwO1xuXG4gICAgcHJpdmF0ZSBsYXN0U2VsZWN0aW9uRW5kID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgICB0aGlzLmlucHV0LmNsYXNzTmFtZSA9ICdub2Rlci10ZXh0LWlucHV0JztcbiAgICAgICAgdGhpcy5pbnB1dC5pZCA9ICd0ZXh0YXJlYS1pbnB1dCc7XG4gICAgICAgIHRoaXMuaW5wdXQuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgICAgdGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoJ3dyYXAnLCAnb2ZmJyk7XG4gICAgICAgIHRoaXMuaW5wdXQuc2V0QXR0cmlidXRlKCdhdXRvY29tcGxldGUnLCAnb2ZmJyk7XG4gICAgICAgIHRoaXMuaW5wdXQuc2V0QXR0cmlidXRlKCdhdXRvY29ycmVjdCcsICdvZmYnKTtcbiAgICAgICAgdGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoJ2F1dG9jYXBpdGFsaXplJywgJ29mZicpO1xuICAgICAgICB0aGlzLmlucHV0LnNldEF0dHJpYnV0ZSgnc3BlbGxjaGVjaycsICdmYWxzZScpO1xuXG4gICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuaW5wdXQsIHBhcmVudEVsZW1lbnQuZmlyc3RDaGlsZCk7XG5cbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmlucHV0O1xuICAgIH1cblxuICAgIGdldENsaXBib2FyZERhdGEoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbWltZSA9ICd0ZXh0L3BsYWluJztcbiAgICAgICAgcmV0dXJuIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YShtaW1lKTtcbiAgICB9XG5cbiAgICBnZXRJbnNlcnRUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmlucHV0LnZhbHVlO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbkVuZCA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kO1xuXG4gICAgICAgIGxldCBleHRlbmRMZWZ0ID0gdGhpcy5sYXN0U2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGxldCBleHRlbmRSaWdodCA9IHRoaXMubGFzdFZhbHVlLmxlbmd0aCAtIHRoaXMubGFzdFNlbGVjdGlvbkVuZDtcbiAgICAgICAgbGV0IHRleHQgPSBkYXRhO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIHdoaWxlIChleHRlbmRMZWZ0ID4gMCAmJiB0aGlzLmxhc3RWYWx1ZVtpXSA9PT0gZGF0YVtpXSkge1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgZXh0ZW5kTGVmdC0tO1xuICAgICAgICB9XG5cbiAgICAgICAgdGV4dCA9IHRleHQuc2xpY2UoaSk7XG5cbiAgICAgICAgaSA9IDE7XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICAgIGV4dGVuZFJpZ2h0ID4gMCAmJlxuICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWUubGVuZ3RoIC0gaSA+IHRoaXMubGFzdFNlbGVjdGlvblN0YXJ0IC0gMSAmJlxuICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWVbdGhpcy5sYXN0VmFsdWUubGVuZ3RoIC0gaV0gPT09IGRhdGFbZGF0YS5sZW5ndGggLSBpXVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIGV4dGVuZFJpZ2h0LS07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZW5kSW5kZXggPSB0ZXh0Lmxlbmd0aCAtIGkgKyAxO1xuICAgICAgICBpZiAoZW5kSW5kZXggPCAwKSB7XG4gICAgICAgICAgICBlbmRJbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0ZXh0ID0gdGV4dC5zbGljZSgwLCBlbmRJbmRleCk7XG5cbiAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSBkYXRhO1xuICAgICAgICB0aGlzLmxhc3RTZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0O1xuICAgICAgICB0aGlzLmxhc3RTZWxlY3Rpb25FbmQgPSBzZWxlY3Rpb25FbmQ7XG5cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class CommandsService {
5
+ constructor() {
6
+ this._createCommand$ = new Subject();
7
+ }
8
+ createCommand(command) {
9
+ this._createCommand$.next(command);
10
+ }
11
+ get createCommand$() {
12
+ return this._createCommand$.asObservable();
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommandsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommandsService }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommandsService, decorators: [{
18
+ type: Injectable
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2NvbW1hbmRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZUFBZTtJQUQ1QjtRQVNZLG9CQUFlLEdBQTBCLElBQUksT0FBTyxFQUFnQixDQUFDO0tBQ2hGO0lBUkcsYUFBYSxDQUFDLE9BQXFCO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQzsrR0FQUSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENvbW1hbmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvY29tbWFuZC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21tYW5kc1NlcnZpY2Uge1xuICAgIGNyZWF0ZUNvbW1hbmQoY29tbWFuZDogQ29tbWFuZE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1hbmQkLm5leHQoY29tbWFuZCk7XG4gICAgfVxuXG4gICAgZ2V0IGNyZWF0ZUNvbW1hbmQkKCk6IE9ic2VydmFibGU8Q29tbWFuZE1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVDb21tYW5kJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY3JlYXRlQ29tbWFuZCQ6IFN1YmplY3Q8Q29tbWFuZE1vZGVsPiA9IG5ldyBTdWJqZWN0PENvbW1hbmRNb2RlbD4oKTtcbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ export var CommandType;
2
+ (function (CommandType) {
3
+ CommandType[CommandType["Delete"] = 0] = "Delete";
4
+ CommandType[CommandType["InsertText"] = 1] = "InsertText";
5
+ CommandType[CommandType["InsertStyledText"] = 2] = "InsertStyledText";
6
+ CommandType[CommandType["ReplaceByText"] = 3] = "ReplaceByText";
7
+ CommandType[CommandType["Restore"] = 4] = "Restore";
8
+ CommandType[CommandType["RestoreTextStyles"] = 5] = "RestoreTextStyles";
9
+ CommandType[CommandType["RestoreParagraphStyles"] = 6] = "RestoreParagraphStyles";
10
+ CommandType[CommandType["ApplyTextStyle"] = 7] = "ApplyTextStyle";
11
+ CommandType[CommandType["ApplyParagraphStyle"] = 8] = "ApplyParagraphStyle";
12
+ CommandType[CommandType["InsertElement"] = 9] = "InsertElement";
13
+ CommandType[CommandType["InsertBreak"] = 10] = "InsertBreak";
14
+ CommandType[CommandType["ApplyElementStyle"] = 11] = "ApplyElementStyle";
15
+ CommandType[CommandType["ApplyImageStyle"] = 12] = "ApplyImageStyle";
16
+ CommandType[CommandType["AddNumbering"] = 13] = "AddNumbering";
17
+ CommandType[CommandType["InsertTab"] = 14] = "InsertTab";
18
+ CommandType[CommandType["InsertTableColumns"] = 15] = "InsertTableColumns";
19
+ CommandType[CommandType["InsertTableRows"] = 16] = "InsertTableRows";
20
+ CommandType[CommandType["RemoveTableColumns"] = 17] = "RemoveTableColumns";
21
+ CommandType[CommandType["RemoveTableRows"] = 18] = "RemoveTableRows";
22
+ CommandType[CommandType["ResizeTableColumns"] = 19] = "ResizeTableColumns";
23
+ CommandType[CommandType["RestoreTable"] = 20] = "RestoreTable";
24
+ CommandType[CommandType["InsertTable"] = 21] = "InsertTable";
25
+ CommandType[CommandType["InsertImage"] = 22] = "InsertImage";
26
+ CommandType[CommandType["RemoveNumberings"] = 23] = "RemoveNumberings";
27
+ CommandType[CommandType["RestoreNumberings"] = 24] = "RestoreNumberings";
28
+ CommandType[CommandType["Replace"] = 25] = "Replace";
29
+ CommandType[CommandType["InsertLink"] = 26] = "InsertLink";
30
+ CommandType[CommandType["InsertParagraph"] = 27] = "InsertParagraph";
31
+ })(CommandType || (CommandType = {}));
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3Ivb3BlcmF0aW9ucy9lbnVtcy9jb21tYW5kLXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQTZCWDtBQTdCRCxXQUFZLFdBQVc7SUFDbkIsaURBQU0sQ0FBQTtJQUNOLHlEQUFVLENBQUE7SUFDVixxRUFBZ0IsQ0FBQTtJQUNoQiwrREFBYSxDQUFBO0lBQ2IsbURBQU8sQ0FBQTtJQUNQLHVFQUFpQixDQUFBO0lBQ2pCLGlGQUFzQixDQUFBO0lBQ3RCLGlFQUFjLENBQUE7SUFDZCwyRUFBbUIsQ0FBQTtJQUNuQiwrREFBYSxDQUFBO0lBQ2IsNERBQVcsQ0FBQTtJQUNYLHdFQUFpQixDQUFBO0lBQ2pCLG9FQUFlLENBQUE7SUFDZiw4REFBWSxDQUFBO0lBQ1osd0RBQVMsQ0FBQTtJQUNULDBFQUFrQixDQUFBO0lBQ2xCLG9FQUFlLENBQUE7SUFDZiwwRUFBa0IsQ0FBQTtJQUNsQixvRUFBZSxDQUFBO0lBQ2YsMEVBQWtCLENBQUE7SUFDbEIsOERBQVksQ0FBQTtJQUNaLDREQUFXLENBQUE7SUFDWCw0REFBVyxDQUFBO0lBQ1gsc0VBQWdCLENBQUE7SUFDaEIsd0VBQWlCLENBQUE7SUFDakIsb0RBQU8sQ0FBQTtJQUNQLDBEQUFVLENBQUE7SUFDVixvRUFBZSxDQUFBO0FBQ25CLENBQUMsRUE3QlcsV0FBVyxLQUFYLFdBQVcsUUE2QnRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ29tbWFuZFR5cGUge1xuICAgIERlbGV0ZSxcbiAgICBJbnNlcnRUZXh0LFxuICAgIEluc2VydFN0eWxlZFRleHQsXG4gICAgUmVwbGFjZUJ5VGV4dCxcbiAgICBSZXN0b3JlLFxuICAgIFJlc3RvcmVUZXh0U3R5bGVzLFxuICAgIFJlc3RvcmVQYXJhZ3JhcGhTdHlsZXMsXG4gICAgQXBwbHlUZXh0U3R5bGUsXG4gICAgQXBwbHlQYXJhZ3JhcGhTdHlsZSxcbiAgICBJbnNlcnRFbGVtZW50LFxuICAgIEluc2VydEJyZWFrLFxuICAgIEFwcGx5RWxlbWVudFN0eWxlLFxuICAgIEFwcGx5SW1hZ2VTdHlsZSxcbiAgICBBZGROdW1iZXJpbmcsXG4gICAgSW5zZXJ0VGFiLFxuICAgIEluc2VydFRhYmxlQ29sdW1ucyxcbiAgICBJbnNlcnRUYWJsZVJvd3MsXG4gICAgUmVtb3ZlVGFibGVDb2x1bW5zLFxuICAgIFJlbW92ZVRhYmxlUm93cyxcbiAgICBSZXNpemVUYWJsZUNvbHVtbnMsXG4gICAgUmVzdG9yZVRhYmxlLFxuICAgIEluc2VydFRhYmxlLFxuICAgIEluc2VydEltYWdlLFxuICAgIFJlbW92ZU51bWJlcmluZ3MsXG4gICAgUmVzdG9yZU51bWJlcmluZ3MsXG4gICAgUmVwbGFjZSxcbiAgICBJbnNlcnRMaW5rLFxuICAgIEluc2VydFBhcmFncmFwaFxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export var TargetType;
2
+ (function (TargetType) {
3
+ TargetType[TargetType["Document"] = 0] = "Document";
4
+ TargetType[TargetType["TableCell"] = 1] = "TableCell";
5
+ TargetType[TargetType["Edge"] = 2] = "Edge";
6
+ })(TargetType || (TargetType = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2VudW1zL3RhcmdldC10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNsQixtREFBUSxDQUFBO0lBQ1IscURBQVMsQ0FBQTtJQUNULDJDQUFJLENBQUE7QUFDUixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBUYXJnZXRUeXBlIHtcbiAgICBEb2N1bWVudCxcbiAgICBUYWJsZUNlbGwsXG4gICAgRWRnZVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { BreakModel } from '../../../models/generated/break.model';
2
+ import { IndexedElementOperationsHelper } from './indexed-element-operations.helper';
3
+ export class BreakOperationsHelper {
4
+ static insertContent(elements, index, breakType, length) {
5
+ const element = new BreakModel({ insertIndex: index, breakType });
6
+ IndexedElementOperationsHelper.insert(elements, element, length);
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWstb3BlcmF0aW9ucy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3Ivb3BlcmF0aW9ucy9oZWxwZXJzL2JyZWFrLW9wZXJhdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVyRixNQUFNLE9BQU8scUJBQXFCO0lBQzlCLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBc0IsRUFBRSxLQUFhLEVBQUUsU0FBcUIsRUFBRSxNQUFjO1FBQzdGLE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2JyZWFrLm1vZGVsJztcbmltcG9ydCB7IEJyZWFrVHlwZXMgfSBmcm9tICcuLi8uLi9nYWRnZXRzL3BhZ2UtYnJlYWsvYnJlYWstdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIgfSBmcm9tICcuL2luZGV4ZWQtZWxlbWVudC1vcGVyYXRpb25zLmhlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBCcmVha09wZXJhdGlvbnNIZWxwZXIge1xuICAgIHN0YXRpYyBpbnNlcnRDb250ZW50KGVsZW1lbnRzOiBCcmVha01vZGVsW10sIGluZGV4OiBudW1iZXIsIGJyZWFrVHlwZTogQnJlYWtUeXBlcywgbGVuZ3RoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IG5ldyBCcmVha01vZGVsKHsgaW5zZXJ0SW5kZXg6IGluZGV4LCBicmVha1R5cGUgfSk7XG4gICAgICAgIEluZGV4ZWRFbGVtZW50T3BlcmF0aW9uc0hlbHBlci5pbnNlcnQoZWxlbWVudHMsIGVsZW1lbnQsIGxlbmd0aCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ export class ContentOperationsHelper {
2
+ static removeContent(content, startIndex, endIndex) {
3
+ return `${content.slice(0, startIndex)}${content.slice(endIndex + 1, content.length)}`;
4
+ }
5
+ static insertContent(content, text, index) {
6
+ const before = content.slice(0, index);
7
+ const after = content.slice(index, content.length);
8
+ return `${before}${text}${after}`;
9
+ }
10
+ static replaceContent(content, startIndex, endIndex, text) {
11
+ const reduced = this.removeContent(content, startIndex, endIndex);
12
+ return this.insertContent(reduced, text, startIndex);
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1vcGVyYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2hlbHBlcnMvY29udGVudC1vcGVyYXRpb25zLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsUUFBZ0I7UUFDdEUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFlLEVBQUUsSUFBWSxFQUFFLEtBQWE7UUFDN0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQWUsRUFBRSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsSUFBWTtRQUNyRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbnRlbnRPcGVyYXRpb25zSGVscGVyIHtcbiAgICBzdGF0aWMgcmVtb3ZlQ29udGVudChjb250ZW50OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtjb250ZW50LnNsaWNlKDAsIHN0YXJ0SW5kZXgpfSR7Y29udGVudC5zbGljZShlbmRJbmRleCArIDEsIGNvbnRlbnQubGVuZ3RoKX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBpbnNlcnRDb250ZW50KGNvbnRlbnQ6IHN0cmluZywgdGV4dDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYmVmb3JlID0gY29udGVudC5zbGljZSgwLCBpbmRleCk7XG4gICAgICAgIGNvbnN0IGFmdGVyID0gY29udGVudC5zbGljZShpbmRleCwgY29udGVudC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gYCR7YmVmb3JlfSR7dGV4dH0ke2FmdGVyfWA7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlcGxhY2VDb250ZW50KGNvbnRlbnQ6IHN0cmluZywgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWR1Y2VkID0gdGhpcy5yZW1vdmVDb250ZW50KGNvbnRlbnQsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0Q29udGVudChyZWR1Y2VkLCB0ZXh0LCBzdGFydEluZGV4KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { FormatStyleHelper } from '../../execution/helpers/format-style.helper';
2
+ export class FormatOperationsHelper {
3
+ static removeContent(formats, startIndex, endIndex) {
4
+ const length = endIndex - startIndex + 1;
5
+ for (let i = formats.length - 1; i >= 0; i--) {
6
+ if (formats[i].startIndex >= startIndex && formats[i].endIndex <= endIndex) {
7
+ formats.splice(i, 1);
8
+ }
9
+ }
10
+ formats.forEach(x => {
11
+ if (x.startIndex >= startIndex && x.startIndex <= endIndex) {
12
+ x.startIndex = startIndex;
13
+ }
14
+ else if (x.startIndex > endIndex) {
15
+ x.startIndex -= length;
16
+ }
17
+ if (x.endIndex >= startIndex && x.endIndex <= endIndex) {
18
+ x.endIndex = startIndex - 1;
19
+ }
20
+ else if (x.endIndex > endIndex) {
21
+ x.endIndex -= length;
22
+ }
23
+ });
24
+ FormatStyleHelper.mergeFormats(formats, startIndex - 1, startIndex);
25
+ }
26
+ static insertContent(formats, index, textLength) {
27
+ formats.forEach(x => {
28
+ if (x.startIndex > index || (x.startIndex === index && index !== 0)) {
29
+ x.startIndex += textLength;
30
+ }
31
+ if (x.endIndex >= index - 1) {
32
+ x.endIndex += textLength;
33
+ }
34
+ });
35
+ }
36
+ static insertStyledContent(formats, index, textLength, style) {
37
+ this.insertContent(formats, index, textLength);
38
+ this.apply(formats, index, index + textLength - 1, style);
39
+ }
40
+ static restore(formats, index, textLength, textFormats) {
41
+ this.insertContent(formats, index, textLength);
42
+ this.restoreFormats(formats, textFormats);
43
+ }
44
+ static replaceContent(formats, startIndex, endIndex, textLength) {
45
+ this.removeContent(formats, startIndex, endIndex);
46
+ this.insertContent(formats, startIndex, textLength);
47
+ }
48
+ static restoreFormats(formats, textFormats) {
49
+ textFormats.forEach(x => this.apply(formats, x.startIndex, x.endIndex, x.textStyle));
50
+ }
51
+ static apply(formats, startIndex, endIndex, style) {
52
+ FormatStyleHelper.applyTextStyles(formats, startIndex, endIndex, style);
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LW9wZXJhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL29wZXJhdGlvbnMvaGVscGVycy9mb3JtYXQtb3BlcmF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFHaEYsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixNQUFNLENBQUMsYUFBYSxDQUFDLE9BQXNCLEVBQUUsVUFBa0IsRUFBRSxRQUFnQjtRQUM3RSxNQUFNLE1BQU0sR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsRUFBRTtnQkFDeEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDeEI7U0FDSjtRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLFFBQVEsRUFBRTtnQkFDeEQsQ0FBQyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7YUFDN0I7aUJBQU0sSUFBSSxDQUFDLENBQUMsVUFBVSxHQUFHLFFBQVEsRUFBRTtnQkFDaEMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUM7YUFDMUI7WUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO2dCQUNwRCxDQUFDLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7YUFDL0I7aUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRTtnQkFDOUIsQ0FBQyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILGlCQUFpQixDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFzQixFQUFFLEtBQWEsRUFBRSxVQUFrQjtRQUMxRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pFLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDO2FBQzlCO1lBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLENBQUMsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDO2FBQzVCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQXNCLEVBQUUsS0FBYSxFQUFFLFVBQWtCLEVBQUUsS0FBcUI7UUFDdkcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFzQixFQUFFLEtBQWEsRUFBRSxVQUFrQixFQUFFLFdBQTBCO1FBQ2hHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFzQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQjtRQUNsRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXNCLEVBQUUsV0FBMEI7UUFDcEUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFzQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxLQUFxQjtRQUM1RixpQkFBaUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWF0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2Zvcm1hdC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtYXRTdHlsZUhlbHBlciB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9oZWxwZXJzL2Zvcm1hdC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgRm9ybWF0T3BlcmF0aW9uc0hlbHBlciB7XG4gICAgc3RhdGljIHJlbW92ZUNvbnRlbnQoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGVuZEluZGV4IC0gc3RhcnRJbmRleCArIDE7XG4gICAgICAgIGZvciAobGV0IGkgPSBmb3JtYXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0c1tpXS5zdGFydEluZGV4ID49IHN0YXJ0SW5kZXggJiYgZm9ybWF0c1tpXS5lbmRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGZvcm1hdHMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0cy5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgaWYgKHguc3RhcnRJbmRleCA+PSBzdGFydEluZGV4ICYmIHguc3RhcnRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIHguc3RhcnRJbmRleCA9IHN0YXJ0SW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHguc3RhcnRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgeC5zdGFydEluZGV4IC09IGxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh4LmVuZEluZGV4ID49IHN0YXJ0SW5kZXggJiYgeC5lbmRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIHguZW5kSW5kZXggPSBzdGFydEluZGV4IC0gMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoeC5lbmRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgeC5lbmRJbmRleCAtPSBsZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIEZvcm1hdFN0eWxlSGVscGVyLm1lcmdlRm9ybWF0cyhmb3JtYXRzLCBzdGFydEluZGV4IC0gMSwgc3RhcnRJbmRleCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGluc2VydENvbnRlbnQoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgaW5kZXg6IG51bWJlciwgdGV4dExlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGZvcm1hdHMuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgIGlmICh4LnN0YXJ0SW5kZXggPiBpbmRleCB8fCAoeC5zdGFydEluZGV4ID09PSBpbmRleCAmJiBpbmRleCAhPT0gMCkpIHtcbiAgICAgICAgICAgICAgICB4LnN0YXJ0SW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh4LmVuZEluZGV4ID49IGluZGV4IC0gMSkge1xuICAgICAgICAgICAgICAgIHguZW5kSW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGluc2VydFN0eWxlZENvbnRlbnQoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgaW5kZXg6IG51bWJlciwgdGV4dExlbmd0aDogbnVtYmVyLCBzdHlsZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnNlcnRDb250ZW50KGZvcm1hdHMsIGluZGV4LCB0ZXh0TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5hcHBseShmb3JtYXRzLCBpbmRleCwgaW5kZXggKyB0ZXh0TGVuZ3RoIC0gMSwgc3R5bGUpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXN0b3JlKGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sIGluZGV4OiBudW1iZXIsIHRleHRMZW5ndGg6IG51bWJlciwgdGV4dEZvcm1hdHM6IEZvcm1hdE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnNlcnRDb250ZW50KGZvcm1hdHMsIGluZGV4LCB0ZXh0TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5yZXN0b3JlRm9ybWF0cyhmb3JtYXRzLCB0ZXh0Rm9ybWF0cyk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlcGxhY2VDb250ZW50KGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGV4dExlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ29udGVudChmb3JtYXRzLCBzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Q29udGVudChmb3JtYXRzLCBzdGFydEluZGV4LCB0ZXh0TGVuZ3RoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVzdG9yZUZvcm1hdHMoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgdGV4dEZvcm1hdHM6IEZvcm1hdE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGV4dEZvcm1hdHMuZm9yRWFjaCh4ID0+IHRoaXMuYXBwbHkoZm9ybWF0cywgeC5zdGFydEluZGV4LCB4LmVuZEluZGV4LCB4LnRleHRTdHlsZSkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBhcHBseShmb3JtYXRzOiBGb3JtYXRNb2RlbFtdLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHN0eWxlOiBUZXh0U3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBGb3JtYXRTdHlsZUhlbHBlci5hcHBseVRleHRTdHlsZXMoZm9ybWF0cywgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHN0eWxlKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { ImageModel } from '../../../models/generated/image.model';
2
+ import { IndexedElementOperationsHelper } from './indexed-element-operations.helper';
3
+ export class ImageOperationsHelper {
4
+ static apply(images, model) {
5
+ const image = images.find(x => x.insertIndex === model.insertIndex);
6
+ image.width = model.width;
7
+ image.height = model.height;
8
+ }
9
+ static insertContent(images, index, imageData) {
10
+ const image = new ImageModel({
11
+ height: imageData.height,
12
+ width: imageData.width,
13
+ content: imageData.content,
14
+ insertIndex: index
15
+ });
16
+ IndexedElementOperationsHelper.insert(images, image);
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utb3BlcmF0aW9ucy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3Ivb3BlcmF0aW9ucy9oZWxwZXJzL2ltYWdlLW9wZXJhdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVyRixNQUFNLE9BQU8scUJBQXFCO0lBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBb0IsRUFBRSxLQUEyQjtRQUMxRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFvQixFQUFFLEtBQWEsRUFBRSxTQUF5QjtRQUMvRSxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUN6QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztZQUMxQixXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFFSCw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGx5SW1hZ2VTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9hcHBseS1pbWFnZS1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBJbWFnZURhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW1hZ2UtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIgfSBmcm9tICcuL2luZGV4ZWQtZWxlbWVudC1vcGVyYXRpb25zLmhlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBJbWFnZU9wZXJhdGlvbnNIZWxwZXIge1xuICAgIHN0YXRpYyBhcHBseShpbWFnZXM6IEltYWdlTW9kZWxbXSwgbW9kZWw6IEFwcGx5SW1hZ2VTdHlsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gaW1hZ2VzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBtb2RlbC5pbnNlcnRJbmRleCk7XG4gICAgICAgIGltYWdlLndpZHRoID0gbW9kZWwud2lkdGg7XG4gICAgICAgIGltYWdlLmhlaWdodCA9IG1vZGVsLmhlaWdodDtcbiAgICB9XG5cbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChpbWFnZXM6IEltYWdlTW9kZWxbXSwgaW5kZXg6IG51bWJlciwgaW1hZ2VEYXRhOiBJbWFnZURhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZU1vZGVsKHtcbiAgICAgICAgICAgIGhlaWdodDogaW1hZ2VEYXRhLmhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiBpbWFnZURhdGEud2lkdGgsXG4gICAgICAgICAgICBjb250ZW50OiBpbWFnZURhdGEuY29udGVudCxcbiAgICAgICAgICAgIGluc2VydEluZGV4OiBpbmRleFxuICAgICAgICB9KTtcblxuICAgICAgICBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIuaW5zZXJ0KGltYWdlcywgaW1hZ2UpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ export class IndexedElementOperationsHelper {
2
+ static removeContent(elements, startIndex, endIndex) {
3
+ const length = endIndex - startIndex + 1;
4
+ for (let i = elements.length - 1; i >= 0; i--) {
5
+ if (elements[i].insertIndex >= startIndex && elements[i].insertIndex <= endIndex) {
6
+ elements.splice(i, 1);
7
+ }
8
+ }
9
+ elements.forEach(x => {
10
+ if (x.insertIndex > endIndex) {
11
+ x.insertIndex -= length;
12
+ }
13
+ });
14
+ }
15
+ static insert(elements, element, length = 1) {
16
+ this.insertContent(elements, element.insertIndex, length);
17
+ const index = elements.findIndex(x => x.insertIndex > element.insertIndex);
18
+ if (index < 0) {
19
+ elements.push(element);
20
+ }
21
+ else {
22
+ elements.splice(index, 0, element);
23
+ }
24
+ }
25
+ static insertContent(elements, index, length) {
26
+ elements.forEach(x => {
27
+ if (x.insertIndex >= index) {
28
+ x.insertIndex += length;
29
+ }
30
+ });
31
+ }
32
+ static restore(elements, index, contentLength, newElements) {
33
+ this.insertContent(elements, index, contentLength);
34
+ let indexInElements = elements.findIndex(x => x.insertIndex >= index);
35
+ indexInElements = indexInElements === -1 ? elements.length : indexInElements;
36
+ elements.splice(indexInElements, 0, ...newElements);
37
+ }
38
+ static replaceContent(elements, startIndex, endIndex, length) {
39
+ this.removeContent(elements, startIndex, endIndex);
40
+ this.insertContent(elements, startIndex, length);
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC1lbGVtZW50LW9wZXJhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL29wZXJhdGlvbnMvaGVscGVycy9pbmRleGVkLWVsZW1lbnQtb3BlcmF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFpQyxRQUFhLEVBQUUsVUFBa0IsRUFBRSxRQUFnQjtRQUNwRyxNQUFNLE1BQU0sR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLFVBQVUsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLFFBQVEsRUFBRTtnQkFDOUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLFFBQVEsRUFBRTtnQkFDMUIsQ0FBQyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7YUFDM0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFpQyxRQUFhLEVBQUUsT0FBVSxFQUFFLE1BQU0sR0FBRyxDQUFDO1FBQy9FLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNILFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFpQyxRQUFhLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDN0YsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxFQUFFO2dCQUN4QixDQUFDLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQWlDLFFBQWEsRUFBRSxLQUFhLEVBQUUsYUFBcUIsRUFBRSxXQUFnQjtRQUNoSCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkQsSUFBSSxlQUFlLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLENBQUM7UUFDdEUsZUFBZSxHQUFHLGVBQWUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBQzdFLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFpQyxRQUFhLEVBQUUsVUFBa0IsRUFBRSxRQUFnQixFQUFFLE1BQWM7UUFDckgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnNlcnRJbmRleEludGVyZmFjZSB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2luc2VydC1pbmRleC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgSW5kZXhlZEVsZW1lbnRPcGVyYXRpb25zSGVscGVyIHtcbiAgICBzdGF0aWMgcmVtb3ZlQ29udGVudDxUIGV4dGVuZHMgSW5zZXJ0SW5kZXhJbnRlcmZhY2U+KGVsZW1lbnRzOiBUW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBsZW5ndGggPSBlbmRJbmRleCAtIHN0YXJ0SW5kZXggKyAxO1xuICAgICAgICBmb3IgKGxldCBpID0gZWxlbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50c1tpXS5pbnNlcnRJbmRleCA+PSBzdGFydEluZGV4ICYmIGVsZW1lbnRzW2ldLmluc2VydEluZGV4IDw9IGVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgICBpZiAoeC5pbnNlcnRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgeC5pbnNlcnRJbmRleCAtPSBsZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBpbnNlcnQ8VCBleHRlbmRzIEluc2VydEluZGV4SW50ZXJmYWNlPihlbGVtZW50czogVFtdLCBlbGVtZW50OiBULCBsZW5ndGggPSAxKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zZXJ0Q29udGVudChlbGVtZW50cywgZWxlbWVudC5pbnNlcnRJbmRleCwgbGVuZ3RoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBlbGVtZW50cy5maW5kSW5kZXgoeCA9PiB4Lmluc2VydEluZGV4ID4gZWxlbWVudC5pbnNlcnRJbmRleCk7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50cy5zcGxpY2UoaW5kZXgsIDAsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGluc2VydENvbnRlbnQ8VCBleHRlbmRzIEluc2VydEluZGV4SW50ZXJmYWNlPihlbGVtZW50czogVFtdLCBpbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgaWYgKHguaW5zZXJ0SW5kZXggPj0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICB4Lmluc2VydEluZGV4ICs9IGxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlc3RvcmU8VCBleHRlbmRzIEluc2VydEluZGV4SW50ZXJmYWNlPihlbGVtZW50czogVFtdLCBpbmRleDogbnVtYmVyLCBjb250ZW50TGVuZ3RoOiBudW1iZXIsIG5ld0VsZW1lbnRzOiBUW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnNlcnRDb250ZW50KGVsZW1lbnRzLCBpbmRleCwgY29udGVudExlbmd0aCk7XG4gICAgICAgIGxldCBpbmRleEluRWxlbWVudHMgPSBlbGVtZW50cy5maW5kSW5kZXgoeCA9PiB4Lmluc2VydEluZGV4ID49IGluZGV4KTtcbiAgICAgICAgaW5kZXhJbkVsZW1lbnRzID0gaW5kZXhJbkVsZW1lbnRzID09PSAtMSA/IGVsZW1lbnRzLmxlbmd0aCA6IGluZGV4SW5FbGVtZW50cztcbiAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4SW5FbGVtZW50cywgMCwgLi4ubmV3RWxlbWVudHMpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXBsYWNlQ29udGVudDxUIGV4dGVuZHMgSW5zZXJ0SW5kZXhJbnRlcmZhY2U+KGVsZW1lbnRzOiBUW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVDb250ZW50KGVsZW1lbnRzLCBzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Q29udGVudChlbGVtZW50cywgc3RhcnRJbmRleCwgbGVuZ3RoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { LinkModel } from '../../../models/generated/link.model';
2
+ import { IndexedElementOperationsHelper } from './indexed-element-operations.helper';
3
+ export class LinkOperationsHelper {
4
+ static insertContent(links, link, insertIndex, endIndex) {
5
+ IndexedElementOperationsHelper.insertContent(links, insertIndex, 1);
6
+ const linkModel = new LinkModel({ insertIndex, link, endIndex });
7
+ const index = links.findIndex(x => x.insertIndex > linkModel.insertIndex);
8
+ if (index < 0) {
9
+ links.push(linkModel);
10
+ }
11
+ else {
12
+ links.splice(index, 0, linkModel);
13
+ }
14
+ }
15
+ static insertTextIntoLink(links, text, insertIndex) {
16
+ let link = links.find(x => x.insertIndex <= insertIndex && x.endIndex >= insertIndex - 1);
17
+ if (link) {
18
+ link.endIndex += text.length;
19
+ }
20
+ }
21
+ static removeTextFromLink(links, startIndex, endIndex) {
22
+ let link = links.find(x => x.insertIndex <= startIndex && x.endIndex >= endIndex - 1);
23
+ if (link) {
24
+ link.endIndex = endIndex - 1;
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1vcGVyYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2hlbHBlcnMvbGluay1vcGVyYXRpb25zLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFckYsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWtCLEVBQUUsSUFBWSxFQUFFLFdBQW1CLEVBQUUsUUFBZ0I7UUFDeEYsOEJBQThCLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDekI7YUFBTTtZQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBa0IsRUFBRSxJQUFZLEVBQUUsV0FBbUI7UUFDM0UsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksV0FBVyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFGLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFrQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0I7UUFDOUUsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlua01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9saW5rLm1vZGVsJztcbmltcG9ydCB7IEluZGV4ZWRFbGVtZW50T3BlcmF0aW9uc0hlbHBlciB9IGZyb20gJy4vaW5kZXhlZC1lbGVtZW50LW9wZXJhdGlvbnMuaGVscGVyJztcblxuZXhwb3J0IGNsYXNzIExpbmtPcGVyYXRpb25zSGVscGVyIHtcbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChsaW5rczogTGlua01vZGVsW10sIGxpbms6IHN0cmluZywgaW5zZXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIuaW5zZXJ0Q29udGVudChsaW5rcywgaW5zZXJ0SW5kZXgsIDEpO1xuICAgICAgICBjb25zdCBsaW5rTW9kZWwgPSBuZXcgTGlua01vZGVsKHsgaW5zZXJ0SW5kZXgsIGxpbmssIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCBpbmRleCA9IGxpbmtzLmZpbmRJbmRleCh4ID0+IHguaW5zZXJ0SW5kZXggPiBsaW5rTW9kZWwuaW5zZXJ0SW5kZXgpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBsaW5rcy5wdXNoKGxpbmtNb2RlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaW5rcy5zcGxpY2UoaW5kZXgsIDAsIGxpbmtNb2RlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgaW5zZXJ0VGV4dEludG9MaW5rKGxpbmtzOiBMaW5rTW9kZWxbXSwgdGV4dDogc3RyaW5nLCBpbnNlcnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGxldCBsaW5rID0gbGlua3MuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPD0gaW5zZXJ0SW5kZXggJiYgeC5lbmRJbmRleCA+PSBpbnNlcnRJbmRleCAtIDEpO1xuICAgICAgICBpZiAobGluaykge1xuICAgICAgICAgICAgbGluay5lbmRJbmRleCArPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZW1vdmVUZXh0RnJvbUxpbmsobGlua3M6IExpbmtNb2RlbFtdLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IGxpbmsgPSBsaW5rcy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA8PSBzdGFydEluZGV4ICYmIHguZW5kSW5kZXggPj0gZW5kSW5kZXggLSAxKTtcbiAgICAgICAgaWYgKGxpbmspIHtcbiAgICAgICAgICAgIGxpbmsuZW5kSW5kZXggPSBlbmRJbmRleCAtIDE7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { NumberingModel } from '../../../models/generated/numbering.model';
2
+ export class NumberingOperationsHelper {
3
+ static addNumbering(numberings, numberingId, levels) {
4
+ const newNumbering = new NumberingModel({ numberingId: numberingId, levels });
5
+ numberings.push(newNumbering);
6
+ }
7
+ static generateNumberingId(numberings) {
8
+ let result = 0;
9
+ for (const numbering of numberings) {
10
+ if (numbering.numberingId > result) {
11
+ result = numbering.numberingId;
12
+ }
13
+ }
14
+ return result + 1;
15
+ }
16
+ static restore(numberings, numberingsToRestore) {
17
+ for (let numberingToRestore of numberingsToRestore) {
18
+ const isNumberingAlreadyExist = numberings.some(x => x.numberingId === numberingToRestore.numberingId);
19
+ if (isNumberingAlreadyExist) {
20
+ continue;
21
+ }
22
+ const insertIndex = numberings.findIndex(x => x.numberingId > numberingToRestore.numberingId);
23
+ if (insertIndex === -1) {
24
+ numberings.push(numberingToRestore);
25
+ }
26
+ else {
27
+ numberings.splice(insertIndex, 0, numberingToRestore);
28
+ }
29
+ }
30
+ }
31
+ static deleteUnused(numberings, paragraphs, numberingIds) {
32
+ let unusedNumberingIds = this.filterUnusedIds(paragraphs, numberingIds);
33
+ this.delete(numberings, unusedNumberingIds);
34
+ }
35
+ static delete(numberings, numberingIds) {
36
+ for (let numberingId of numberingIds) {
37
+ const index = numberings.findIndex(x => x.numberingId === numberingId);
38
+ numberings.splice(index, 1);
39
+ }
40
+ }
41
+ static filterUnusedIds(paragraphs, numberingIds) {
42
+ const unusedNumberingIds = [...numberingIds];
43
+ let index = 0;
44
+ while (index < paragraphs.length && unusedNumberingIds.length !== 0) {
45
+ if (paragraphs[index].paragraphStyle.numberingId !== null &&
46
+ unusedNumberingIds.includes(paragraphs[index].paragraphStyle.numberingId)) {
47
+ const deleteIndex = unusedNumberingIds.indexOf(paragraphs[index].paragraphStyle.numberingId);
48
+ unusedNumberingIds.splice(deleteIndex, 1);
49
+ }
50
+ index++;
51
+ }
52
+ return unusedNumberingIds;
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLW9wZXJhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL29wZXJhdGlvbnMvaGVscGVycy9udW1iZXJpbmctb3BlcmF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRzNFLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUE0QixFQUFFLFdBQW1CLEVBQUUsTUFBNkI7UUFDaEcsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQTRCO1FBQ25ELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ2hDLElBQUksU0FBUyxDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUU7Z0JBQ2hDLE1BQU0sR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO2FBQ2xDO1NBQ0o7UUFFRCxPQUFPLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBNEIsRUFBRSxtQkFBcUM7UUFDOUUsS0FBSyxJQUFJLGtCQUFrQixJQUFJLG1CQUFtQixFQUFFO1lBQ2hELE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkcsSUFBSSx1QkFBdUIsRUFBRTtnQkFDekIsU0FBUzthQUNaO1lBRUQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUYsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDSCxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQzthQUN6RDtTQUNKO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBNEIsRUFBRSxVQUE0QixFQUFFLFlBQXNCO1FBQ2xHLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUE0QixFQUFFLFlBQXNCO1FBQzlELEtBQUssSUFBSSxXQUFXLElBQUksWUFBWSxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBNEIsRUFBRSxZQUFzQjtRQUMvRSxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztRQUM3QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakUsSUFDSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsS0FBSyxJQUFJO2dCQUNyRCxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFDM0U7Z0JBQ0UsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzdGLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDN0M7WUFFRCxLQUFLLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM5QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOdW1iZXJpbmdMZXZlbE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9udW1iZXJpbmctbGV2ZWwubW9kZWwnO1xuaW1wb3J0IHsgTnVtYmVyaW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE51bWJlcmluZ09wZXJhdGlvbnNIZWxwZXIge1xuICAgIHN0YXRpYyBhZGROdW1iZXJpbmcobnVtYmVyaW5nczogTnVtYmVyaW5nTW9kZWxbXSwgbnVtYmVyaW5nSWQ6IG51bWJlciwgbGV2ZWxzOiBOdW1iZXJpbmdMZXZlbE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3TnVtYmVyaW5nID0gbmV3IE51bWJlcmluZ01vZGVsKHsgbnVtYmVyaW5nSWQ6IG51bWJlcmluZ0lkLCBsZXZlbHMgfSk7XG4gICAgICAgIG51bWJlcmluZ3MucHVzaChuZXdOdW1iZXJpbmcpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZW5lcmF0ZU51bWJlcmluZ0lkKG51bWJlcmluZ3M6IE51bWJlcmluZ01vZGVsW10pOiBudW1iZXIge1xuICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBudW1iZXJpbmcgb2YgbnVtYmVyaW5ncykge1xuICAgICAgICAgICAgaWYgKG51bWJlcmluZy5udW1iZXJpbmdJZCA+IHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IG51bWJlcmluZy5udW1iZXJpbmdJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQgKyAxO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXN0b3JlKG51bWJlcmluZ3M6IE51bWJlcmluZ01vZGVsW10sIG51bWJlcmluZ3NUb1Jlc3RvcmU6IE51bWJlcmluZ01vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgbnVtYmVyaW5nVG9SZXN0b3JlIG9mIG51bWJlcmluZ3NUb1Jlc3RvcmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzTnVtYmVyaW5nQWxyZWFkeUV4aXN0ID0gbnVtYmVyaW5ncy5zb21lKHggPT4geC5udW1iZXJpbmdJZCA9PT0gbnVtYmVyaW5nVG9SZXN0b3JlLm51bWJlcmluZ0lkKTtcbiAgICAgICAgICAgIGlmIChpc051bWJlcmluZ0FscmVhZHlFeGlzdCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpbnNlcnRJbmRleCA9IG51bWJlcmluZ3MuZmluZEluZGV4KHggPT4geC5udW1iZXJpbmdJZCA+IG51bWJlcmluZ1RvUmVzdG9yZS5udW1iZXJpbmdJZCk7XG4gICAgICAgICAgICBpZiAoaW5zZXJ0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyaW5ncy5wdXNoKG51bWJlcmluZ1RvUmVzdG9yZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG51bWJlcmluZ3Muc3BsaWNlKGluc2VydEluZGV4LCAwLCBudW1iZXJpbmdUb1Jlc3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGRlbGV0ZVVudXNlZChudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdLCBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdLCBudW1iZXJpbmdJZHM6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIGxldCB1bnVzZWROdW1iZXJpbmdJZHMgPSB0aGlzLmZpbHRlclVudXNlZElkcyhwYXJhZ3JhcGhzLCBudW1iZXJpbmdJZHMpO1xuICAgICAgICB0aGlzLmRlbGV0ZShudW1iZXJpbmdzLCB1bnVzZWROdW1iZXJpbmdJZHMpO1xuICAgIH1cblxuICAgIHN0YXRpYyBkZWxldGUobnVtYmVyaW5nczogTnVtYmVyaW5nTW9kZWxbXSwgbnVtYmVyaW5nSWRzOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBudW1iZXJpbmdJZCBvZiBudW1iZXJpbmdJZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gbnVtYmVyaW5ncy5maW5kSW5kZXgoeCA9PiB4Lm51bWJlcmluZ0lkID09PSBudW1iZXJpbmdJZCk7XG4gICAgICAgICAgICBudW1iZXJpbmdzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmaWx0ZXJVbnVzZWRJZHMocGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSwgbnVtYmVyaW5nSWRzOiBudW1iZXJbXSk6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgdW51c2VkTnVtYmVyaW5nSWRzID0gWy4uLm51bWJlcmluZ0lkc107XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IHBhcmFncmFwaHMubGVuZ3RoICYmIHVudXNlZE51bWJlcmluZ0lkcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGhzW2luZGV4XS5wYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdJZCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHVudXNlZE51bWJlcmluZ0lkcy5pbmNsdWRlcyhwYXJhZ3JhcGhzW2luZGV4XS5wYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdJZClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gdW51c2VkTnVtYmVyaW5nSWRzLmluZGV4T2YocGFyYWdyYXBoc1tpbmRleF0ucGFyYWdyYXBoU3R5bGUubnVtYmVyaW5nSWQpO1xuICAgICAgICAgICAgICAgIHVudXNlZE51bWJlcmluZ0lkcy5zcGxpY2UoZGVsZXRlSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVudXNlZE51bWJlcmluZ0lkcztcbiAgICB9XG59XG4iXX0=