@talrace/ngx-noder 0.0.2

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 (515) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +274 -0
  3. package/esm2022/lib/+shared/abstract/base-api.service.mjs +99 -0
  4. package/esm2022/lib/+shared/abstract/observer.component.mjs +24 -0
  5. package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +28 -0
  6. package/esm2022/lib/+shared/constants/default-file-name.const.mjs +2 -0
  7. package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +3 -0
  8. package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +71 -0
  9. package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +6 -0
  10. package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +100 -0
  11. package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +104 -0
  12. package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +8 -0
  13. package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +6 -0
  14. package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +15 -0
  15. package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +8 -0
  16. package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +13 -0
  17. package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +2 -0
  18. package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +62 -0
  19. package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +5 -0
  20. package/esm2022/lib/+shared/editor/core/document.mjs +134 -0
  21. package/esm2022/lib/+shared/editor/core/edit.session.mjs +1102 -0
  22. package/esm2022/lib/+shared/editor/core/editor.mjs +1279 -0
  23. package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +7 -0
  24. package/esm2022/lib/+shared/editor/core/enums/hrule.enum.mjs +7 -0
  25. package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +7 -0
  26. package/esm2022/lib/+shared/editor/core/enums/numbering-marker-type.enum.mjs +12 -0
  27. package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +7 -0
  28. package/esm2022/lib/+shared/editor/core/enums/vertical-alignment.enum.mjs +11 -0
  29. package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +156 -0
  30. package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +18 -0
  31. package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +42 -0
  32. package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +18 -0
  33. package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +88 -0
  34. package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +72 -0
  35. package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +13 -0
  36. package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +83 -0
  37. package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +12 -0
  38. package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +41 -0
  39. package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +132 -0
  40. package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +191 -0
  41. package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +7 -0
  42. package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +186 -0
  43. package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +20 -0
  44. package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +2 -0
  45. package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +2 -0
  46. package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +2 -0
  47. package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +2 -0
  48. package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +2 -0
  49. package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +2 -0
  50. package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +2 -0
  51. package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +2 -0
  52. package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +2 -0
  53. package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +2 -0
  54. package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +2 -0
  55. package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +53 -0
  56. package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +103 -0
  57. package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +99 -0
  58. package/esm2022/lib/+shared/editor/core/layers/lines.mjs +96 -0
  59. package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +106 -0
  60. package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +7 -0
  61. package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +7 -0
  62. package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +7 -0
  63. package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +26 -0
  64. package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +100 -0
  65. package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +115 -0
  66. package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +124 -0
  67. package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +12 -0
  68. package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +10 -0
  69. package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +9 -0
  70. package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +10 -0
  71. package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +9 -0
  72. package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +9 -0
  73. package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +16 -0
  74. package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +9 -0
  75. package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +25 -0
  76. package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +9 -0
  77. package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +219 -0
  78. package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +52 -0
  79. package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +34 -0
  80. package/esm2022/lib/+shared/editor/core/point.mjs +13 -0
  81. package/esm2022/lib/+shared/editor/core/print.renderer.mjs +72 -0
  82. package/esm2022/lib/+shared/editor/core/range.mjs +94 -0
  83. package/esm2022/lib/+shared/editor/core/renderer.mjs +217 -0
  84. package/esm2022/lib/+shared/editor/core/search.mjs +231 -0
  85. package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +356 -0
  86. package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +35 -0
  87. package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +6 -0
  88. package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +4 -0
  89. package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +2 -0
  90. package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +41 -0
  91. package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +9 -0
  92. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +10 -0
  93. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +15 -0
  94. package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +87 -0
  95. package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +38 -0
  96. package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +2 -0
  97. package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +2 -0
  98. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +19 -0
  99. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +12 -0
  100. package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +106 -0
  101. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +2 -0
  102. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +52 -0
  103. package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +14 -0
  104. package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +57 -0
  105. package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +3 -0
  106. package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +43 -0
  107. package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +2 -0
  108. package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +64 -0
  109. package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +120 -0
  110. package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +55 -0
  111. package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +2 -0
  112. package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +43 -0
  113. package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +118 -0
  114. package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +95 -0
  115. package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +293 -0
  116. package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +8 -0
  117. package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +6 -0
  118. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +18 -0
  119. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +9 -0
  120. package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +8 -0
  121. package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +7 -0
  122. package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +74 -0
  123. package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +358 -0
  124. package/esm2022/lib/+shared/editor/editor.component.mjs +103 -0
  125. package/esm2022/lib/+shared/editor/editor.module.mjs +85 -0
  126. package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +19 -0
  127. package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +15 -0
  128. package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +11 -0
  129. package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +8 -0
  130. package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +3 -0
  131. package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +10 -0
  132. package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +193 -0
  133. package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +18 -0
  134. package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +30 -0
  135. package/esm2022/lib/+shared/editor/helpers/format.helper.mjs +23 -0
  136. package/esm2022/lib/+shared/editor/helpers/indexed-element.helper.mjs +6 -0
  137. package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +6 -0
  138. package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +309 -0
  139. package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +160 -0
  140. package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +49 -0
  141. package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +2 -0
  142. package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +2 -0
  143. package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +184 -0
  144. package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +2 -0
  145. package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +7 -0
  146. package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +31 -0
  147. package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +7 -0
  148. package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +9 -0
  149. package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +15 -0
  150. package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +56 -0
  151. package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +19 -0
  152. package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
  153. package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +28 -0
  154. package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
  155. package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +394 -0
  156. package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +83 -0
  157. package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +118 -0
  158. package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +16 -0
  159. package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +371 -0
  160. package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +23 -0
  161. package/esm2022/lib/+shared/editor/positioning/selection.mjs +307 -0
  162. package/esm2022/lib/+shared/editor/store/editor.actions.mjs +13 -0
  163. package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +314 -0
  164. package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +71 -0
  165. package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +32 -0
  166. package/esm2022/lib/+shared/editor-toolbar/constants/numbering-templates.const.mjs +1148 -0
  167. package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +157 -0
  168. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +115 -0
  169. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +107 -0
  170. package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +8 -0
  171. package/esm2022/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.mjs +16 -0
  172. package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +6 -0
  173. package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +45 -0
  174. package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +85 -0
  175. package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +80 -0
  176. package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +28 -0
  177. package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +23 -0
  178. package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +55 -0
  179. package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +53 -0
  180. package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +18 -0
  181. package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +27 -0
  182. package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +74 -0
  183. package/esm2022/lib/+shared/enums/mode.enum.mjs +7 -0
  184. package/esm2022/lib/+shared/helpers/print.helper.mjs +40 -0
  185. package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +54 -0
  186. package/esm2022/lib/+shared/services/commands.service.mjs +20 -0
  187. package/esm2022/lib/+shared/services/custom-icon.service.mjs +34 -0
  188. package/esm2022/lib/models/generated/add-numbering.model.mjs +8 -0
  189. package/esm2022/lib/models/generated/apply-element-style.model.mjs +8 -0
  190. package/esm2022/lib/models/generated/apply-image-style.model.mjs +8 -0
  191. package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +12 -0
  192. package/esm2022/lib/models/generated/apply-text-style.model.mjs +12 -0
  193. package/esm2022/lib/models/generated/borders-style.model.mjs +8 -0
  194. package/esm2022/lib/models/generated/break.model.mjs +8 -0
  195. package/esm2022/lib/models/generated/cell.model.mjs +12 -0
  196. package/esm2022/lib/models/generated/column-section.model.mjs +8 -0
  197. package/esm2022/lib/models/generated/column.model.mjs +8 -0
  198. package/esm2022/lib/models/generated/command.model.mjs +116 -0
  199. package/esm2022/lib/models/generated/delete.model.mjs +8 -0
  200. package/esm2022/lib/models/generated/document-name.model.mjs +8 -0
  201. package/esm2022/lib/models/generated/document.model.mjs +8 -0
  202. package/esm2022/lib/models/generated/docx.model.mjs +12 -0
  203. package/esm2022/lib/models/generated/edge-target.model.mjs +8 -0
  204. package/esm2022/lib/models/generated/edge.model.mjs +8 -0
  205. package/esm2022/lib/models/generated/element.model.mjs +8 -0
  206. package/esm2022/lib/models/generated/file-source.model.mjs +8 -0
  207. package/esm2022/lib/models/generated/format.model.mjs +12 -0
  208. package/esm2022/lib/models/generated/heading.model.mjs +16 -0
  209. package/esm2022/lib/models/generated/image-data.model.mjs +8 -0
  210. package/esm2022/lib/models/generated/image.model.mjs +12 -0
  211. package/esm2022/lib/models/generated/insert-break.model.mjs +8 -0
  212. package/esm2022/lib/models/generated/insert-element.model.mjs +12 -0
  213. package/esm2022/lib/models/generated/insert-image.model.mjs +12 -0
  214. package/esm2022/lib/models/generated/insert-link.model.mjs +12 -0
  215. package/esm2022/lib/models/generated/insert-styled-text.model.mjs +12 -0
  216. package/esm2022/lib/models/generated/insert-tab.model.mjs +8 -0
  217. package/esm2022/lib/models/generated/insert-table-columns.model.mjs +8 -0
  218. package/esm2022/lib/models/generated/insert-table-rows.model.mjs +8 -0
  219. package/esm2022/lib/models/generated/insert-table.model.mjs +8 -0
  220. package/esm2022/lib/models/generated/insert-text.model.mjs +8 -0
  221. package/esm2022/lib/models/generated/last-document-revision.model.mjs +12 -0
  222. package/esm2022/lib/models/generated/link-data.model.mjs +8 -0
  223. package/esm2022/lib/models/generated/link.model.mjs +8 -0
  224. package/esm2022/lib/models/generated/margins.model.mjs +8 -0
  225. package/esm2022/lib/models/generated/numbering-level.model.mjs +12 -0
  226. package/esm2022/lib/models/generated/numbering.model.mjs +8 -0
  227. package/esm2022/lib/models/generated/operation.model.mjs +12 -0
  228. package/esm2022/lib/models/generated/page-numbers.model.mjs +8 -0
  229. package/esm2022/lib/models/generated/paragraph-style.model.mjs +8 -0
  230. package/esm2022/lib/models/generated/paragraph.model.mjs +12 -0
  231. package/esm2022/lib/models/generated/remove-numberings.model.mjs +8 -0
  232. package/esm2022/lib/models/generated/remove-table-columns.model.mjs +8 -0
  233. package/esm2022/lib/models/generated/remove-table-rows.model.mjs +8 -0
  234. package/esm2022/lib/models/generated/replace-by-text.model.mjs +8 -0
  235. package/esm2022/lib/models/generated/replace.model.mjs +40 -0
  236. package/esm2022/lib/models/generated/resize-table-columns.model.mjs +8 -0
  237. package/esm2022/lib/models/generated/restore-numberings.model.mjs +8 -0
  238. package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +8 -0
  239. package/esm2022/lib/models/generated/restore-table.model.mjs +12 -0
  240. package/esm2022/lib/models/generated/restore-text-styles.model.mjs +8 -0
  241. package/esm2022/lib/models/generated/restore.model.mjs +8 -0
  242. package/esm2022/lib/models/generated/revision.model.mjs +12 -0
  243. package/esm2022/lib/models/generated/row.model.mjs +8 -0
  244. package/esm2022/lib/models/generated/tab.model.mjs +8 -0
  245. package/esm2022/lib/models/generated/table-cell.model.mjs +8 -0
  246. package/esm2022/lib/models/generated/table.model.mjs +12 -0
  247. package/esm2022/lib/models/generated/target.model.mjs +16 -0
  248. package/esm2022/lib/models/generated/text-style.model.mjs +8 -0
  249. package/esm2022/public-api.mjs +43 -0
  250. package/esm2022/talrace-ngx-noder.mjs +5 -0
  251. package/fesm2022/talrace-ngx-noder.mjs +13736 -0
  252. package/fesm2022/talrace-ngx-noder.mjs.map +1 -0
  253. package/index.d.ts +5 -0
  254. package/lib/+shared/abstract/base-api.service.d.ts +23 -0
  255. package/lib/+shared/abstract/observer.component.d.ts +10 -0
  256. package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +16 -0
  257. package/lib/+shared/constants/default-file-name.const.d.ts +1 -0
  258. package/lib/+shared/constants/paginator-sizes.const.d.ts +2 -0
  259. package/lib/+shared/editor/core/base/event-emitting.d.ts +17 -0
  260. package/lib/+shared/editor/core/components/edges/edge-type.enum.d.ts +4 -0
  261. package/lib/+shared/editor/core/components/edges/edge.component.d.ts +45 -0
  262. package/lib/+shared/editor/core/components/edges/edges.d.ts +26 -0
  263. package/lib/+shared/editor/core/constants/alignments.const.d.ts +7 -0
  264. package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +5 -0
  265. package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +14 -0
  266. package/lib/+shared/editor/core/constants/display-values.const.d.ts +7 -0
  267. package/lib/+shared/editor/core/constants/document-info.const.d.ts +12 -0
  268. package/lib/+shared/editor/core/constants/editor-version.const.d.ts +1 -0
  269. package/lib/+shared/editor/core/constants/editor.const.d.ts +16 -0
  270. package/lib/+shared/editor/core/constants/unicode-chars.const.d.ts +1 -0
  271. package/lib/+shared/editor/core/document.d.ts +56 -0
  272. package/lib/+shared/editor/core/edit.session.d.ts +159 -0
  273. package/lib/+shared/editor/core/editor.d.ts +206 -0
  274. package/lib/+shared/editor/core/enums/break-types.enum.d.ts +5 -0
  275. package/lib/+shared/editor/core/enums/hrule.enum.d.ts +5 -0
  276. package/lib/+shared/editor/core/enums/mouse-button.enum.d.ts +5 -0
  277. package/lib/+shared/editor/core/enums/numbering-marker-type.enum.d.ts +10 -0
  278. package/lib/+shared/editor/core/enums/page-type.enum.d.ts +5 -0
  279. package/lib/+shared/editor/core/enums/vertical-alignment.enum.d.ts +9 -0
  280. package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +16 -0
  281. package/lib/+shared/editor/core/helpers/delta.helper.d.ts +6 -0
  282. package/lib/+shared/editor/core/helpers/dom.helper.d.ts +10 -0
  283. package/lib/+shared/editor/core/helpers/event.helper.d.ts +4 -0
  284. package/lib/+shared/editor/core/helpers/font-metrics.helper.d.ts +32 -0
  285. package/lib/+shared/editor/core/helpers/format-style.helper.d.ts +11 -0
  286. package/lib/+shared/editor/core/helpers/line-width.helper.d.ts +5 -0
  287. package/lib/+shared/editor/core/helpers/numbering.helper.d.ts +19 -0
  288. package/lib/+shared/editor/core/helpers/page.helper.d.ts +4 -0
  289. package/lib/+shared/editor/core/helpers/paragraph-style.helper.d.ts +6 -0
  290. package/lib/+shared/editor/core/helpers/paragraph.helper.d.ts +27 -0
  291. package/lib/+shared/editor/core/helpers/position.helper.d.ts +34 -0
  292. package/lib/+shared/editor/core/helpers/print.rendering.helper.d.ts +6 -0
  293. package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +26 -0
  294. package/lib/+shared/editor/core/helpers/unicode.helper.d.ts +4 -0
  295. package/lib/+shared/editor/core/interfaces/cell.interface.d.ts +5 -0
  296. package/lib/+shared/editor/core/interfaces/cursor-position.interface.d.ts +11 -0
  297. package/lib/+shared/editor/core/interfaces/font-metric-size.interface.d.ts +11 -0
  298. package/lib/+shared/editor/core/interfaces/layer.config.d.ts +13 -0
  299. package/lib/+shared/editor/core/interfaces/paragraph-info.interface.d.ts +7 -0
  300. package/lib/+shared/editor/core/interfaces/render-changes.interface.d.ts +10 -0
  301. package/lib/+shared/editor/core/interfaces/replace.interface.d.ts +4 -0
  302. package/lib/+shared/editor/core/interfaces/search-iteration.interface.d.ts +4 -0
  303. package/lib/+shared/editor/core/interfaces/toolbar-styles.interface.d.ts +18 -0
  304. package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +5 -0
  305. package/lib/+shared/editor/core/interfaces/visible-range.interface.d.ts +11 -0
  306. package/lib/+shared/editor/core/keyboard/text-input.d.ts +10 -0
  307. package/lib/+shared/editor/core/layers/cursor.layer.d.ts +24 -0
  308. package/lib/+shared/editor/core/layers/edges.layer.d.ts +24 -0
  309. package/lib/+shared/editor/core/layers/lines.d.ts +21 -0
  310. package/lib/+shared/editor/core/layers/pages.layer.d.ts +27 -0
  311. package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +4 -0
  312. package/lib/+shared/editor/core/layers/print.pages.layer.d.ts +4 -0
  313. package/lib/+shared/editor/core/layers/print.text.layer.d.ts +5 -0
  314. package/lib/+shared/editor/core/layers/renderloop.d.ts +8 -0
  315. package/lib/+shared/editor/core/layers/scrollbar.d.ts +41 -0
  316. package/lib/+shared/editor/core/layers/selection.layer.d.ts +19 -0
  317. package/lib/+shared/editor/core/layers/text.layer.d.ts +22 -0
  318. package/lib/+shared/editor/core/models/display-token.model.d.ts +27 -0
  319. package/lib/+shared/editor/core/models/distance.model.d.ts +6 -0
  320. package/lib/+shared/editor/core/models/edge-element.model.d.ts +7 -0
  321. package/lib/+shared/editor/core/models/format-ext.model.d.ts +5 -0
  322. package/lib/+shared/editor/core/models/indent.model.d.ts +7 -0
  323. package/lib/+shared/editor/core/models/line-info.model.d.ts +14 -0
  324. package/lib/+shared/editor/core/models/margin.model.d.ts +9 -0
  325. package/lib/+shared/editor/core/models/numbering-data.model.d.ts +11 -0
  326. package/lib/+shared/editor/core/models/render-changes.model.d.ts +14 -0
  327. package/lib/+shared/editor/core/paging/page-vertical-data.model.d.ts +8 -0
  328. package/lib/+shared/editor/core/paging/pages.wrap.d.ts +41 -0
  329. package/lib/+shared/editor/core/paging/paragraph.d.ts +44 -0
  330. package/lib/+shared/editor/core/paging/text-line-info.d.ts +17 -0
  331. package/lib/+shared/editor/core/point.d.ts +7 -0
  332. package/lib/+shared/editor/core/print.renderer.d.ts +25 -0
  333. package/lib/+shared/editor/core/range.d.ts +32 -0
  334. package/lib/+shared/editor/core/renderer.d.ts +60 -0
  335. package/lib/+shared/editor/core/search.d.ts +32 -0
  336. package/lib/+shared/editor/core/virtual.renderer.d.ts +93 -0
  337. package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +14 -0
  338. package/lib/+shared/editor/custom-components/external-element/external-element.service.d.ts +7 -0
  339. package/lib/+shared/editor/custom-components/external-element/external-elements.const.d.ts +5 -0
  340. package/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.d.ts +5 -0
  341. package/lib/+shared/editor/custom-components/external-element/external.component.d.ts +17 -0
  342. package/lib/+shared/editor/custom-components/external-element/models/element-data.model.d.ts +7 -0
  343. package/lib/+shared/editor/custom-components/external-element/models/external-element.model.d.ts +20 -0
  344. package/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.d.ts +7 -0
  345. package/lib/+shared/editor/custom-components/image/components/image.component.d.ts +31 -0
  346. package/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.d.ts +13 -0
  347. package/lib/+shared/editor/custom-components/image/interfaces/size.d.ts +4 -0
  348. package/lib/+shared/editor/custom-components/image/resizer/coordinate.d.ts +4 -0
  349. package/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.d.ts +9 -0
  350. package/lib/+shared/editor/custom-components/image/resizer/direction.enum.d.ts +10 -0
  351. package/lib/+shared/editor/custom-components/image/resizer/resizer.component.d.ts +26 -0
  352. package/lib/+shared/editor/custom-components/image/resizer/size-delta.d.ts +4 -0
  353. package/lib/+shared/editor/custom-components/image/resizer/size-wrapper.d.ts +19 -0
  354. package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +8 -0
  355. package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +24 -0
  356. package/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.d.ts +2 -0
  357. package/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.d.ts +8 -0
  358. package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +13 -0
  359. package/lib/+shared/editor/custom-components/shared/services/component/component.service.d.ts +21 -0
  360. package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +30 -0
  361. package/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.d.ts +18 -0
  362. package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +5 -0
  363. package/lib/+shared/editor/custom-components/tab/tab.component.d.ts +15 -0
  364. package/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.d.ts +31 -0
  365. package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +45 -0
  366. package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +55 -0
  367. package/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.d.ts +6 -0
  368. package/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.d.ts +4 -0
  369. package/lib/+shared/editor/custom-components/table/models/cell-data.model.d.ts +11 -0
  370. package/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.d.ts +9 -0
  371. package/lib/+shared/editor/custom-components/table/models/row-data.model.d.ts +7 -0
  372. package/lib/+shared/editor/custom-components/table/models/selection-range.model.d.ts +17 -0
  373. package/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.d.ts +37 -0
  374. package/lib/+shared/editor/custom-components/table/selection/table-selection.d.ts +74 -0
  375. package/lib/+shared/editor/editor.component.d.ts +43 -0
  376. package/lib/+shared/editor/editor.module.d.ts +30 -0
  377. package/lib/+shared/editor/execution/models/cell-session-source.model.d.ts +11 -0
  378. package/lib/+shared/editor/execution/models/edge-session-source.model.d.ts +11 -0
  379. package/lib/+shared/editor/execution/models/general-properties.model.d.ts +7 -0
  380. package/lib/+shared/editor/execution/models/main-session-source.model.d.ts +5 -0
  381. package/lib/+shared/editor/execution/models/session-source.model.d.ts +5 -0
  382. package/lib/+shared/editor/execution/models/session.model.d.ts +12 -0
  383. package/lib/+shared/editor/execution/regulator.service.d.ts +45 -0
  384. package/lib/+shared/editor/helpers/break.helper.d.ts +7 -0
  385. package/lib/+shared/editor/helpers/content.helper.d.ts +9 -0
  386. package/lib/+shared/editor/helpers/format.helper.d.ts +4 -0
  387. package/lib/+shared/editor/helpers/indexed-element.helper.d.ts +4 -0
  388. package/lib/+shared/editor/helpers/tab.helper.d.ts +3 -0
  389. package/lib/+shared/editor/interaction/editor.service.d.ts +194 -0
  390. package/lib/+shared/editor/interaction/input.handler.d.ts +25 -0
  391. package/lib/+shared/editor/interaction/mouse.handler.d.ts +14 -0
  392. package/lib/+shared/editor/interfaces/contents.interface.d.ts +22 -0
  393. package/lib/+shared/editor/interfaces/insert-index.interface.d.ts +3 -0
  394. package/lib/+shared/editor/operation-history/operation-history.d.ts +65 -0
  395. package/lib/+shared/editor/operation-history/operation.type.d.ts +24 -0
  396. package/lib/+shared/editor/operation-history/operations-history-info.model.d.ts +5 -0
  397. package/lib/+shared/editor/operations/enums/command-type.enum.d.ts +29 -0
  398. package/lib/+shared/editor/operations/enums/target-type.enum.d.ts +5 -0
  399. package/lib/+shared/editor/operations/helpers/break-operations.helper.d.ts +5 -0
  400. package/lib/+shared/editor/operations/helpers/content-operations.helper.d.ts +5 -0
  401. package/lib/+shared/editor/operations/helpers/format-operations.helper.d.ts +11 -0
  402. package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +7 -0
  403. package/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.d.ts +8 -0
  404. package/lib/+shared/editor/operations/helpers/link-operations.helper.d.ts +6 -0
  405. package/lib/+shared/editor/operations/helpers/numbering-operations.helper.d.ts +11 -0
  406. package/lib/+shared/editor/operations/helpers/operations-helper.helper.d.ts +52 -0
  407. package/lib/+shared/editor/operations/helpers/paragraph-operations.helper.d.ts +13 -0
  408. package/lib/+shared/editor/operations/helpers/save-commands.helper.d.ts +43 -0
  409. package/lib/+shared/editor/operations/helpers/tab-operations.helper.d.ts +4 -0
  410. package/lib/+shared/editor/operations/helpers/table-operations.helper.d.ts +30 -0
  411. package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +6 -0
  412. package/lib/+shared/editor/positioning/selection.d.ts +50 -0
  413. package/lib/+shared/editor/store/editor.actions.d.ts +11 -0
  414. package/lib/+shared/editor-header/editor-header.component.d.ts +101 -0
  415. package/lib/+shared/editor-search/editor-search-dialog.component.d.ts +24 -0
  416. package/lib/+shared/editor-toolbar/color-picker/color-picker.component.d.ts +12 -0
  417. package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +6 -0
  418. package/lib/+shared/editor-toolbar/constants/svg-icons.const.d.ts +12 -0
  419. package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +44 -0
  420. package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +28 -0
  421. package/lib/+shared/editor-toolbar/enums/alignment.enum.d.ts +6 -0
  422. package/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.d.ts +14 -0
  423. package/lib/+shared/editor-toolbar/enums/numbering-type.enum.d.ts +4 -0
  424. package/lib/+shared/editor-toolbar/font/font.component.d.ts +13 -0
  425. package/lib/+shared/editor-toolbar/font-size/font-size.component.d.ts +24 -0
  426. package/lib/+shared/editor-toolbar/font-style/font-style.component.d.ts +24 -0
  427. package/lib/+shared/editor-toolbar/format/format.component.d.ts +12 -0
  428. package/lib/+shared/editor-toolbar/heading/heading.component.d.ts +8 -0
  429. package/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.d.ts +6 -0
  430. package/lib/+shared/editor-toolbar/numbering/numbering.component.d.ts +18 -0
  431. package/lib/+shared/editor-toolbar/print/print.component.d.ts +7 -0
  432. package/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.d.ts +10 -0
  433. package/lib/+shared/editor-toolbar/zoom/zoom.component.d.ts +22 -0
  434. package/lib/+shared/enums/mode.enum.d.ts +5 -0
  435. package/lib/+shared/helpers/print.helper.d.ts +9 -0
  436. package/lib/+shared/insert-table/insert-table.component.d.ts +21 -0
  437. package/lib/+shared/services/commands.service.d.ts +10 -0
  438. package/lib/+shared/services/custom-icon.service.d.ts +11 -0
  439. package/lib/models/generated/add-numbering.model.d.ts +7 -0
  440. package/lib/models/generated/apply-element-style.model.d.ts +6 -0
  441. package/lib/models/generated/apply-image-style.model.d.ts +6 -0
  442. package/lib/models/generated/apply-paragraph-style.model.d.ts +7 -0
  443. package/lib/models/generated/apply-text-style.model.d.ts +7 -0
  444. package/lib/models/generated/borders-style.model.d.ts +8 -0
  445. package/lib/models/generated/break.model.d.ts +5 -0
  446. package/lib/models/generated/cell.model.d.ts +32 -0
  447. package/lib/models/generated/column-section.model.d.ts +7 -0
  448. package/lib/models/generated/column.model.d.ts +5 -0
  449. package/lib/models/generated/command.model.d.ts +60 -0
  450. package/lib/models/generated/delete.model.d.ts +5 -0
  451. package/lib/models/generated/document-name.model.d.ts +5 -0
  452. package/lib/models/generated/document.model.d.ts +7 -0
  453. package/lib/models/generated/docx.model.d.ts +43 -0
  454. package/lib/models/generated/edge-target.model.d.ts +5 -0
  455. package/lib/models/generated/edge.model.d.ts +24 -0
  456. package/lib/models/generated/element.model.d.ts +9 -0
  457. package/lib/models/generated/file-source.model.d.ts +4 -0
  458. package/lib/models/generated/format.model.d.ts +7 -0
  459. package/lib/models/generated/heading.model.d.ts +12 -0
  460. package/lib/models/generated/image-data.model.d.ts +6 -0
  461. package/lib/models/generated/image.model.d.ts +31 -0
  462. package/lib/models/generated/insert-break.model.d.ts +6 -0
  463. package/lib/models/generated/insert-element.model.d.ts +5 -0
  464. package/lib/models/generated/insert-image.model.d.ts +6 -0
  465. package/lib/models/generated/insert-link.model.d.ts +7 -0
  466. package/lib/models/generated/insert-styled-text.model.d.ts +7 -0
  467. package/lib/models/generated/insert-tab.model.d.ts +4 -0
  468. package/lib/models/generated/insert-table-columns.model.d.ts +7 -0
  469. package/lib/models/generated/insert-table-rows.model.d.ts +7 -0
  470. package/lib/models/generated/insert-table.model.d.ts +8 -0
  471. package/lib/models/generated/insert-text.model.d.ts +5 -0
  472. package/lib/models/generated/last-document-revision.model.d.ts +9 -0
  473. package/lib/models/generated/link-data.model.d.ts +5 -0
  474. package/lib/models/generated/link.model.d.ts +7 -0
  475. package/lib/models/generated/margins.model.d.ts +7 -0
  476. package/lib/models/generated/numbering-level.model.d.ts +14 -0
  477. package/lib/models/generated/numbering.model.d.ts +7 -0
  478. package/lib/models/generated/operation.model.d.ts +8 -0
  479. package/lib/models/generated/page-numbers.model.d.ts +8 -0
  480. package/lib/models/generated/paragraph-style.model.d.ts +18 -0
  481. package/lib/models/generated/paragraph.model.d.ts +6 -0
  482. package/lib/models/generated/remove-numberings.model.d.ts +5 -0
  483. package/lib/models/generated/remove-table-columns.model.d.ts +6 -0
  484. package/lib/models/generated/remove-table-rows.model.d.ts +6 -0
  485. package/lib/models/generated/replace-by-text.model.d.ts +6 -0
  486. package/lib/models/generated/replace.model.d.ts +19 -0
  487. package/lib/models/generated/resize-table-columns.model.d.ts +9 -0
  488. package/lib/models/generated/restore-numberings.model.d.ts +7 -0
  489. package/lib/models/generated/restore-paragraph-styles.model.d.ts +5 -0
  490. package/lib/models/generated/restore-table.model.d.ts +6 -0
  491. package/lib/models/generated/restore-text-styles.model.d.ts +5 -0
  492. package/lib/models/generated/restore.model.d.ts +22 -0
  493. package/lib/models/generated/revision.model.d.ts +9 -0
  494. package/lib/models/generated/row.model.d.ts +9 -0
  495. package/lib/models/generated/tab.model.d.ts +6 -0
  496. package/lib/models/generated/table-cell.model.d.ts +6 -0
  497. package/lib/models/generated/table.model.d.ts +18 -0
  498. package/lib/models/generated/target.model.d.ts +9 -0
  499. package/lib/models/generated/text-style.model.d.ts +14 -0
  500. package/package.json +35 -0
  501. package/public-api.d.ts +42 -0
  502. package/src/_ngx-noder.theme.scss +22 -0
  503. package/src/assets/fonts/nc-iconfont.css +333 -0
  504. package/src/assets/fonts/nc-iconfont.eot +0 -0
  505. package/src/assets/fonts/nc-iconfont.svg +110 -0
  506. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  507. package/src/assets/fonts/nc-iconfont.woff +0 -0
  508. package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +21 -0
  509. package/src/lib/+shared/editor/_editor.theme.scss +35 -0
  510. package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +10 -0
  511. package/src/lib/+shared/editor-header/_editor-header.theme.scss +106 -0
  512. package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +33 -0
  513. package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +29 -0
  514. package/src/lib/+shared/insert-table/_insert-table.theme.scss +22 -0
  515. package/src/styles.scss +58 -0
@@ -0,0 +1,115 @@
1
+ import { Point } from '../point';
2
+ import { PositionHelper } from '../helpers/position.helper';
3
+ import { Range } from '../range';
4
+ export class SelectionLayer {
5
+ constructor(parentEl, cssClass) {
6
+ this.marker = null;
7
+ this.element = document.createElement('div');
8
+ this.element.className = `ace-layer ace-selection-layer ${cssClass}`;
9
+ parentEl.appendChild(this.element);
10
+ }
11
+ setSession(session) {
12
+ this.session = session;
13
+ }
14
+ renderSelection(css) {
15
+ let selectionElement = this.selectionIndex !== -1 ? this.element.childNodes[this.selectionIndex] : null;
16
+ if (!selectionElement) {
17
+ selectionElement = document.createElement('div');
18
+ this.element.appendChild(selectionElement);
19
+ this.selectionIndex = -1;
20
+ }
21
+ else {
22
+ this.selectionIndex++;
23
+ }
24
+ selectionElement.style.cssText = css;
25
+ selectionElement.className = 'ace-selection';
26
+ }
27
+ update(config) {
28
+ if (!config) {
29
+ return;
30
+ }
31
+ this.config = config;
32
+ this.selectionIndex = 0;
33
+ if (this.marker) {
34
+ let range = this.marker.clipRows(config.contentRange.start, config.contentRange.end);
35
+ if (!range.isEmpty) {
36
+ range = range.toScreenRange(this.session);
37
+ if (range.isSingleLine) {
38
+ this.drawSingleLineMarker(range);
39
+ }
40
+ else {
41
+ this.drawMultiLineMarker(range);
42
+ }
43
+ }
44
+ }
45
+ if (this.selectionIndex !== -1) {
46
+ while (this.selectionIndex < this.element.childElementCount) {
47
+ this.element.removeChild(this.element.lastChild);
48
+ }
49
+ }
50
+ }
51
+ getTop(row) {
52
+ const paragraphs = this.session.pagesWrap.paragraphs;
53
+ const paragraphInfo = PositionHelper.getParagraphInfoByRow(paragraphs, row);
54
+ return paragraphs[paragraphInfo.paragraphIndex].distanceFromTop + paragraphInfo.lineTopOffset - this.session.scrollTop;
55
+ }
56
+ // Draws a multi line marker, where lines span the full width
57
+ drawMultiLineMarker(range) {
58
+ // from selection start to the end of the line
59
+ const start = range.start.row;
60
+ const end = range.end.row;
61
+ const paragraphs = this.session.pagesWrap.paragraphs;
62
+ const visibleParagraphs = paragraphs.filter(x => x.lastScreenLine >= start && x.firstScreenLine <= end);
63
+ const textLinesInfo = visibleParagraphs.map(x => x.textLinesInfo.filter(l => start <= l.screenLine && l.screenLine <= end)).flat();
64
+ const paragraphInfo = PositionHelper.getParagraphInfoByRow(paragraphs, start);
65
+ let top = paragraphs[paragraphInfo.paragraphIndex].distanceFromTop + paragraphInfo.lineTopOffset - this.session.scrollTop;
66
+ const padding = this.session.pagesWrap.documentMargin.left;
67
+ for (let i = 0; i < textLinesInfo.length; i++) {
68
+ const lineInfo = textLinesInfo[i];
69
+ if (i !== 0) {
70
+ top += lineInfo.firstLinePageOffset;
71
+ top += lineInfo.offsetBefore;
72
+ }
73
+ let style;
74
+ if (i === 0) {
75
+ const rangeInfo = this.getRangeInfo(this.session, range);
76
+ style = this.getMarkerStyle(lineInfo.height, lineInfo.width - rangeInfo.leftPos + lineInfo.paddingLeft + padding, top, rangeInfo.leftPos);
77
+ }
78
+ else if (i === textLinesInfo.length - 1) {
79
+ const lastRowRange = new Range(new Point(range.end.row, 0), range.end);
80
+ const rangeInfo = this.getRangeInfo(this.session, lastRowRange);
81
+ style = this.getMarkerStyle(lineInfo.height, rangeInfo.screenWidth, top, padding + lineInfo.paddingLeft);
82
+ }
83
+ else {
84
+ style = this.getMarkerStyle(lineInfo.height, lineInfo.width, top, padding + lineInfo.paddingLeft);
85
+ }
86
+ this.renderSelection(style);
87
+ top += lineInfo.height + lineInfo.offsetAfter + lineInfo.endPageOffset;
88
+ }
89
+ }
90
+ // Draws a marker which covers part or whole width of a single screen line
91
+ drawSingleLineMarker(range) {
92
+ const rangeInfo = this.getRangeInfo(this.session, range);
93
+ const paragraphInfo = PositionHelper.getParagraphInfoByRow(this.session.pagesWrap.paragraphs, range.start.row);
94
+ const height = rangeInfo.screenHeight || paragraphInfo.lineHeight;
95
+ const width = rangeInfo.screenWidth;
96
+ const top = this.getTop(range.start.row);
97
+ const left = rangeInfo.leftPos;
98
+ this.renderSelection(this.getMarkerStyle(height, width, top, left));
99
+ }
100
+ getRangeInfo(session, range) {
101
+ const start = range.start;
102
+ const end = range.end;
103
+ const startPos = PositionHelper.screenToPixel(session, start.row, start.column);
104
+ const endPos = PositionHelper.screenToPixel(session, end.row, end.column);
105
+ return {
106
+ screenWidth: Math.abs(endPos.pageX - startPos.pageX),
107
+ screenHeight: Math.abs(endPos.pageY - startPos.pageY),
108
+ leftPos: startPos.pageX
109
+ };
110
+ }
111
+ getMarkerStyle(height, width, top, left) {
112
+ return `height:${height}px;width:${width}px;top:${top}px;left:${left}px`;
113
+ }
114
+ }
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9sYXllcnMvc2VsZWN0aW9uLmxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakMsTUFBTSxPQUFPLGNBQWM7SUFXdkIsWUFBWSxRQUFxQixFQUFFLFFBQWdCO1FBTm5ELFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBT3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxpQ0FBaUMsUUFBUSxFQUFFLENBQUM7UUFDckUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFvQjtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNySCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbkIsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMs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TSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBWTtRQUNuRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEYsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUUsT0FBTztZQUNILFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwRCxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1NBQzFCLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsR0FBVyxFQUFFLElBQVk7UUFDM0UsT0FBTyxVQUFVLE1BQU0sWUFBWSxLQUFLLFVBQVUsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDO0lBQzdFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IElMYXllckNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vcG9pbnQnO1xuaW1wb3J0IHsgUG9zaXRpb25IZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3Bvc2l0aW9uLmhlbHBlcic7XG5pbXBvcnQgeyBSYW5nZSB9IGZyb20gJy4uL3JhbmdlJztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkxheWVyIHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIHNlc3Npb246IEVkaXRTZXNzaW9uO1xuXG4gICAgbWFya2VyOiBSYW5nZSB8IG51bGwgPSBudWxsO1xuXG4gICAgc2VsZWN0aW9uSW5kZXg6IG51bWJlcjtcblxuICAgIGNvbmZpZzogSUxheWVyQ29uZmlnO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50RWw6IEhUTUxFbGVtZW50LCBjc3NDbGFzczogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gYGFjZS1sYXllciBhY2Utc2VsZWN0aW9uLWxheWVyICR7Y3NzQ2xhc3N9YDtcbiAgICAgICAgcGFyZW50RWwuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBzZXRTZXNzaW9uKHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247XG4gICAgfVxuXG4gICAgcmVuZGVyU2VsZWN0aW9uKGNzczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCBzZWxlY3Rpb25FbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25JbmRleCAhPT0gLTEgPyA8SFRNTEVsZW1lbnQ+dGhpcy5lbGVtZW50LmNoaWxkTm9kZXNbdGhpcy5zZWxlY3Rpb25JbmRleF0gOiBudWxsO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbkVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChzZWxlY3Rpb25FbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uSW5kZXggPSAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uSW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGlvbkVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IGNzcztcbiAgICAgICAgc2VsZWN0aW9uRWxlbWVudC5jbGFzc05hbWUgPSAnYWNlLXNlbGVjdGlvbic7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25JbmRleCA9IDA7XG5cbiAgICAgICAgaWYgKHRoaXMubWFya2VyKSB7XG4gICAgICAgICAgICBsZXQgcmFuZ2UgPSB0aGlzLm1hcmtlci5jbGlwUm93cyhjb25maWcuY29udGVudFJhbmdlLnN0YXJ0LCBjb25maWcuY29udGVudFJhbmdlLmVuZCk7XG4gICAgICAgICAgICBpZiAoIXJhbmdlLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICByYW5nZSA9IHJhbmdlLnRvU2NyZWVuUmFuZ2UodGhpcy5zZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBpZiAocmFuZ2UuaXNTaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd1NpbmdsZUxpbmVNYXJrZXIocmFuZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd011bHRpTGluZU1hcmtlcihyYW5nZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5zZWxlY3Rpb25JbmRleCA8IHRoaXMuZWxlbWVudC5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQubGFzdENoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRvcChyb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaHMgPSB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLnBhcmFncmFwaHM7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZm8gPSBQb3NpdGlvbkhlbHBlci5nZXRQYXJhZ3JhcGhJbmZvQnlSb3cocGFyYWdyYXBocywgcm93KTtcblxuICAgICAgICByZXR1cm4gcGFyYWdyYXBoc1twYXJhZ3JhcGhJbmZvLnBhcmFncmFwaEluZGV4XS5kaXN0YW5jZUZyb21Ub3AgKyBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLSB0aGlzLnNlc3Npb24uc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8vIERyYXdzIGEgbXVsdGkgbGluZSBtYXJrZXIsIHdoZXJlIGxpbmVzIHNwYW4gdGhlIGZ1bGwgd2lkdGhcbiAgICBkcmF3TXVsdGlMaW5lTWFya2VyKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICAvLyBmcm9tIHNlbGVjdGlvbiBzdGFydCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2Uuc3RhcnQucm93O1xuICAgICAgICBjb25zdCBlbmQgPSByYW5nZS5lbmQucm93O1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhzID0gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzO1xuICAgICAgICBjb25zdCB2aXNpYmxlUGFyYWdyYXBocyA9IHBhcmFncmFwaHMuZmlsdGVyKHggPT4geC5sYXN0U2NyZWVuTGluZSA+PSBzdGFydCAmJiB4LmZpcnN0U2NyZWVuTGluZSA8PSBlbmQpO1xuICAgICAgICBjb25zdCB0ZXh0TGluZXNJbmZvID0gdmlzaWJsZVBhcmFncmFwaHMubWFwKHggPT4geC50ZXh0TGluZXNJbmZvLmZpbHRlcihsID0+IHN0YXJ0IDw9IGwuc2NyZWVuTGluZSAmJiBsLnNjcmVlbkxpbmUgPD0gZW5kKSkuZmxhdCgpO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhJbmZvID0gUG9zaXRpb25IZWxwZXIuZ2V0UGFyYWdyYXBoSW5mb0J5Um93KHBhcmFncmFwaHMsIHN0YXJ0KTtcbiAgICAgICAgbGV0IHRvcCA9IHBhcmFncmFwaHNbcGFyYWdyYXBoSW5mby5wYXJhZ3JhcGhJbmRleF0uZGlzdGFuY2VGcm9tVG9wICsgcGFyYWdyYXBoSW5mby5saW5lVG9wT2Zmc2V0IC0gdGhpcy5zZXNzaW9uLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuZG9jdW1lbnRNYXJnaW4ubGVmdDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0TGluZXNJbmZvLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lSW5mbyA9IHRleHRMaW5lc0luZm9baV07XG4gICAgICAgICAgICBpZiAoaSAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHRvcCArPSBsaW5lSW5mby5maXJzdExpbmVQYWdlT2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRvcCArPSBsaW5lSW5mby5vZmZzZXRCZWZvcmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBzdHlsZTogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZUluZm8gPSB0aGlzLmdldFJhbmdlSW5mbyh0aGlzLnNlc3Npb24sIHJhbmdlKTtcbiAgICAgICAgICAgICAgICBzdHlsZSA9IHRoaXMuZ2V0TWFya2VyU3R5bGUoXG4gICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLmhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgbGluZUluZm8ud2lkdGggLSByYW5nZUluZm8ubGVmdFBvcyArIGxpbmVJbmZvLnBhZGRpbmdMZWZ0ICsgcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAgICAgICByYW5nZUluZm8ubGVmdFBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT09IHRleHRMaW5lc0luZm8ubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RSb3dSYW5nZSA9IG5ldyBSYW5nZShuZXcgUG9pbnQocmFuZ2UuZW5kLnJvdywgMCksIHJhbmdlLmVuZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VJbmZvID0gdGhpcy5nZXRSYW5nZUluZm8odGhpcy5zZXNzaW9uLCBsYXN0Um93UmFuZ2UpO1xuICAgICAgICAgICAgICAgIHN0eWxlID0gdGhpcy5nZXRNYXJrZXJTdHlsZShsaW5lSW5mby5oZWlnaHQsIHJhbmdlSW5mby5zY3JlZW5XaWR0aCwgdG9wLCBwYWRkaW5nICsgbGluZUluZm8ucGFkZGluZ0xlZnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHlsZSA9IHRoaXMuZ2V0TWFya2VyU3R5bGUobGluZUluZm8uaGVpZ2h0LCBsaW5lSW5mby53aWR0aCwgdG9wLCBwYWRkaW5nICsgbGluZUluZm8ucGFkZGluZ0xlZnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlbmRlclNlbGVjdGlvbihzdHlsZSk7XG4gICAgICAgICAgICB0b3AgKz0gbGluZUluZm8uaGVpZ2h0ICsgbGluZUluZm8ub2Zmc2V0QWZ0ZXIgKyBsaW5lSW5mby5lbmRQYWdlT2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJhd3MgYSBtYXJrZXIgd2hpY2ggY292ZXJzIHBhcnQgb3Igd2hvbGUgd2lkdGggb2YgYSBzaW5nbGUgc2NyZWVuIGxpbmVcbiAgICBkcmF3U2luZ2xlTGluZU1hcmtlcihyYW5nZTogUmFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmFuZ2VJbmZvID0gdGhpcy5nZXRSYW5nZUluZm8odGhpcy5zZXNzaW9uLCByYW5nZSk7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZm8gPSBQb3NpdGlvbkhlbHBlci5nZXRQYXJhZ3JhcGhJbmZvQnlSb3codGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzLCByYW5nZS5zdGFydC5yb3cpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSByYW5nZUluZm8uc2NyZWVuSGVpZ2h0IHx8IHBhcmFncmFwaEluZm8ubGluZUhlaWdodDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSByYW5nZUluZm8uc2NyZWVuV2lkdGg7XG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMuZ2V0VG9wKHJhbmdlLnN0YXJ0LnJvdyk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSByYW5nZUluZm8ubGVmdFBvcztcbiAgICAgICAgdGhpcy5yZW5kZXJTZWxlY3Rpb24odGhpcy5nZXRNYXJrZXJTdHlsZShoZWlnaHQsIHdpZHRoLCB0b3AsIGxlZnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJhbmdlSW5mbyhzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcmFuZ2U6IFJhbmdlKTogeyBzY3JlZW5XaWR0aDogbnVtYmVyOyBzY3JlZW5IZWlnaHQ6IG51bWJlcjsgbGVmdFBvczogbnVtYmVyIH0ge1xuICAgICAgICBjb25zdCBzdGFydCA9IHJhbmdlLnN0YXJ0O1xuICAgICAgICBjb25zdCBlbmQgPSByYW5nZS5lbmQ7XG4gICAgICAgIGNvbnN0IHN0YXJ0UG9zID0gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9QaXhlbChzZXNzaW9uLCBzdGFydC5yb3csIHN0YXJ0LmNvbHVtbik7XG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IFBvc2l0aW9uSGVscGVyLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgZW5kLnJvdywgZW5kLmNvbHVtbik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoOiBNYXRoLmFicyhlbmRQb3MucGFnZVggLSBzdGFydFBvcy5wYWdlWCksXG4gICAgICAgICAgICBzY3JlZW5IZWlnaHQ6IE1hdGguYWJzKGVuZFBvcy5wYWdlWSAtIHN0YXJ0UG9zLnBhZ2VZKSxcbiAgICAgICAgICAgIGxlZnRQb3M6IHN0YXJ0UG9zLnBhZ2VYXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXJrZXJTdHlsZShoZWlnaHQ6IG51bWJlciwgd2lkdGg6IG51bWJlciwgdG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgaGVpZ2h0OiR7aGVpZ2h0fXB4O3dpZHRoOiR7d2lkdGh9cHg7dG9wOiR7dG9wfXB4O2xlZnQ6JHtsZWZ0fXB4YDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,124 @@
1
+ import { DistanceModel } from '../models/distance.model';
2
+ import { DomHelper } from '../helpers/dom.helper';
3
+ import { EventEmitting } from '../base/event-emitting';
4
+ import { FormatExtModel } from '../models/format-ext.model';
5
+ import { FormatStyleHelper } from '../helpers/format-style.helper';
6
+ import { Lines } from './lines';
7
+ import { ParagraphHelper } from '../helpers/paragraph.helper';
8
+ import { RenderingHelper } from '../helpers/rendering.helper';
9
+ export class TextLayer extends EventEmitting {
10
+ constructor(parentElement, renderingHelper = RenderingHelper) {
11
+ super();
12
+ this.renderingHelper = renderingHelper;
13
+ this.pagesCountChangedHandler = (event) => {
14
+ this.lines.setSizes(event.pagesCount, event.pageHeight);
15
+ };
16
+ this.element = document.createElement('div');
17
+ this.element.className = 'ace-layer ace-text-layer';
18
+ parentElement.appendChild(this.element);
19
+ this.lines = new Lines(this.element);
20
+ }
21
+ setSession(session) {
22
+ if (this.session) {
23
+ this.session.pagesWrap.removeEventListener('pagesCountChanged', this.pagesCountChangedHandler);
24
+ }
25
+ this.session = session;
26
+ if (session) {
27
+ this.session.pagesWrap.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
28
+ this.element.style.width = `${this.session.pagesWrap.contentWidth}px`;
29
+ this.element.style.margin = `0 ${this.session.pagesWrap.documentMargin.right}px 0 ${this.session.pagesWrap.documentMargin.left}px`;
30
+ }
31
+ }
32
+ update(config) {
33
+ DomHelper.translate(this.element, 0, -config.scrollTop);
34
+ this.config = config;
35
+ while (this.lines.length) {
36
+ this.lines.pop();
37
+ }
38
+ this.lines.push(this.renderTextParagraph(config.contentRange));
39
+ }
40
+ scrollLines(config) {
41
+ const oldConfig = this.config;
42
+ this.config = config;
43
+ DomHelper.translate(this.element, 0, -config.scrollTop);
44
+ const oldLastRow = oldConfig ? oldConfig.contentRange.end : -1;
45
+ if (!oldConfig || oldLastRow < config.contentRange.start || config.contentRange.end < oldConfig.contentRange.start) {
46
+ return this.update(config);
47
+ }
48
+ if (oldConfig.contentRange.start < config.contentRange.start) {
49
+ for (let row = config.contentRange.start - oldConfig.contentRange.start; row > 0; row--) {
50
+ this.lines.shift();
51
+ }
52
+ }
53
+ if (oldConfig.contentRange.end > config.contentRange.end) {
54
+ for (let row = oldConfig.contentRange.end - config.contentRange.end; row > 0; row--) {
55
+ this.lines.pop();
56
+ }
57
+ }
58
+ if (oldConfig.contentRange.start > config.contentRange.start) {
59
+ const lines = this.renderTextParagraph(new DistanceModel({ start: config.contentRange.start, end: oldConfig.contentRange.start - 1 }));
60
+ this.lines.unshift(lines);
61
+ }
62
+ if (oldConfig.contentRange.end < config.contentRange.end) {
63
+ const lines = this.renderTextParagraph(new DistanceModel({ start: oldConfig.contentRange.end + 1, end: config.contentRange.end }));
64
+ this.lines.push(lines);
65
+ }
66
+ }
67
+ destroy() {
68
+ this.session.pagesWrap.removeEventListener('pagesCountChanged', this.pagesCountChangedHandler);
69
+ }
70
+ getParagraphTop(paragraphs, row) {
71
+ return this.session.pagesWrap.getParagraphTop(paragraphs, row);
72
+ }
73
+ renderTextParagraph(rowsDistance) {
74
+ const fragment = [];
75
+ for (let row = rowsDistance.start; row <= rowsDistance.end; row++) {
76
+ const paragraphs = this.session.pagesWrap.paragraphs;
77
+ const paragraphCell = this.lines.createCell(row);
78
+ paragraphCell.element.className = 'ace-line-group';
79
+ DomHelper.removeChildren(paragraphCell.element);
80
+ const paragraphHeight = this.session.pagesWrap.getParagraphHeight(paragraphs, row);
81
+ const paragraphTop = this.getParagraphTop(paragraphs, row);
82
+ DomHelper.setStyle(paragraphCell.element.style, 'height', `${paragraphHeight}px`);
83
+ DomHelper.setStyle(paragraphCell.element.style, 'top', `${paragraphTop}px`);
84
+ const paragraph = paragraphs[row];
85
+ if (paragraph.numberingData.numberingId !== null) {
86
+ const numberingElement = this.renderingHelper.renderNumberingMarker(paragraph, this.element);
87
+ numberingElement.className = 'numberingMarker';
88
+ paragraphCell.element.appendChild(numberingElement);
89
+ }
90
+ this.renderTextLines(paragraphCell.element, row);
91
+ fragment.push(paragraphCell);
92
+ }
93
+ return fragment;
94
+ }
95
+ renderTextLines(parent, row) {
96
+ const linesContainerElement = this.renderingHelper.createDivContainer('lines-container');
97
+ const currentParagraph = this.session.pagesWrap.paragraphs[row];
98
+ const paragraphHeight = ParagraphHelper.getParagraphHeight(currentParagraph.textLinesInfo);
99
+ DomHelper.setStyle(linesContainerElement.style, 'height', `${paragraphHeight}px`);
100
+ parent.appendChild(linesContainerElement);
101
+ const startIndex = this.session.document.positionToIndex(this.session.document.lines, { row, column: 0 });
102
+ const endIndex = this.session.document.positionToIndex(this.session.document.lines, { row: row + 1, column: 0 }) - 1;
103
+ const formats = FormatStyleHelper.getFormatsAtRange(this.session.model.formats, startIndex, endIndex);
104
+ const splits = this.session.wrapData[row];
105
+ const formatsExt = formats.map(format => new FormatExtModel({
106
+ ...format,
107
+ content: this.session.model.content.substring(format.startIndex, format.endIndex + 1)
108
+ }));
109
+ if (splits?.length) {
110
+ const distance = new DistanceModel({ start: startIndex, end: endIndex });
111
+ this.renderingHelper.renderContentWrappedLine({ currentElement: this.element, parentNode: linesContainerElement }, splits, currentParagraph, formatsExt, distance, this.session.customContentService, this.session.customComponents, this.session.model.breaks);
112
+ }
113
+ else {
114
+ const numberingOffsetLeft = currentParagraph.numberingData.numberingId === null
115
+ ? 0
116
+ : currentParagraph.numberingData.width + currentParagraph.numberingData.paddingLeft;
117
+ const lastLineEl = this.renderingHelper.createLineElement(currentParagraph.textLinesInfo[0], numberingOffsetLeft);
118
+ linesContainerElement.appendChild(lastLineEl);
119
+ const rowDistance = new DistanceModel({ start: startIndex, end: endIndex });
120
+ this.renderingHelper.renderContentSimpleLine({ currentElement: this.element, parentNode: lastLineEl }, formatsExt, rowDistance, this.session.customContentService, this.session.customComponents, this.session.model.breaks);
121
+ }
122
+ }
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvbGF5ZXJzL3RleHQubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7SUFTeEMsWUFBbUIsYUFBMEIsRUFBVSxrQkFBa0IsZUFBZTtRQUNwRixLQUFLLEVBQUUsQ0FBQztRQUQyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUE2SmhGLDZCQUF3QixHQUFHLENBQUMsS0FBaUQsRUFBRSxFQUFFO1lBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQztRQTVKRSxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsMEJBQTBCLENBQUM7UUFDcEQsYUFBYSxDQUFD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QU0sbUJBQW1CLEdBQ3JCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssSUFBSTtnQkFDL0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUM1RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2xILHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FDeEMsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQ3hELFVBQVUsRUFDVixXQUFXLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUM1QixDQUFDO1NBQ0w7SUFDTCxDQUFDO0NBS0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jZWxsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXN0YW5jZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Rpc3RhbmNlLm1vZGVsJztcbmltcG9ydCB7IERvbUhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0aW5nIH0gZnJvbSAnLi4vYmFzZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBGb3JtYXRFeHRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9mb3JtYXQtZXh0Lm1vZGVsJztcbmltcG9ydCB7IEZvcm1hdFN0eWxlSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyJztcbmltcG9ydCB7IElMYXllckNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IExpbmVzIH0gZnJvbSAnLi9saW5lcyc7XG5pbXBvcnQgeyBQYXJhZ3JhcGggfSBmcm9tICcuLi9wYWdpbmcvcGFyYWdyYXBoJztcbmltcG9ydCB7IFBhcmFncmFwaEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvcGFyYWdyYXBoLmhlbHBlcic7XG5pbXBvcnQgeyBSZW5kZXJpbmdIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3JlbmRlcmluZy5oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgVGV4dExheWVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBsaW5lczogTGluZXM7XG5cbiAgICBzZXNzaW9uOiBFZGl0U2Vzc2lvbjtcblxuICAgIGNvbmZpZzogSUxheWVyQ29uZmlnO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcml2YXRlIHJlbmRlcmluZ0hlbHBlciA9IFJlbmRlcmluZ0hlbHBlcikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gJ2FjZS1sYXllciBhY2UtdGV4dC1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTtcblxuICAgICAgICB0aGlzLmxpbmVzID0gbmV3IExpbmVzKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgc2V0U2Vzc2lvbihzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BhZ2VzQ291bnRDaGFuZ2VkJywgdGhpcy5wYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjtcbiAgICAgICAgaWYgKHNlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmNvbnRlbnRXaWR0aH1weGA7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubWFyZ2luID0gYDAgJHt0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmRvY3VtZW50TWFyZ2luLnJpZ2h0fXB4IDAgJHt0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmRvY3VtZW50TWFyZ2luLmxlZnR9cHhgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICAgICAgd2hpbGUgKHRoaXMubGluZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmVzLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saW5lcy5wdXNoKHRoaXMucmVuZGVyVGV4dFBhcmFncmFwaChjb25maWcuY29udGVudFJhbmdlKSk7XG4gICAgfVxuXG4gICAgc2Nyb2xsTGluZXMoY29uZmlnOiBJTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkQ29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgY29uc3Qgb2xkTGFzdFJvdyA9IG9sZENvbmZpZyA/IG9sZENvbmZpZy5jb250ZW50UmFuZ2UuZW5kIDogLTE7XG5cbiAgICAgICAgaWYgKCFvbGRDb25maWcgfHwgb2xkTGFzdFJvdyA8IGNvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQgfHwgY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgPCBvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0IDwgY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCAtIG9sZENvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQ7IHJvdyA+IDA7IHJvdy0tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9sZENvbmZpZy5jb250ZW50UmFuZ2UuZW5kID4gY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQpIHtcbiAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IG9sZENvbmZpZy5jb250ZW50UmFuZ2UuZW5kIC0gY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQ7IHJvdyA+IDA7IHJvdy0tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0ID4gY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLnJlbmRlclRleHRQYXJhZ3JhcGgoXG4gICAgICAgICAgICAgICAgbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCwgZW5kOiBvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0IC0gMSB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMubGluZXMudW5zaGlmdChsaW5lcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgPCBjb25maWcuY29udGVudFJhbmdlLmVuZCkge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLnJlbmRlclRleHRQYXJhZ3JhcGgoXG4gICAgICAgICAgICAgICAgbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogb2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgKyAxLCBlbmQ6IGNvbmZpZy5jb250ZW50UmFuZ2UuZW5kIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5saW5lcy5wdXNoKGxpbmVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFBhcmFncmFwaFRvcChwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhbXSwgcm93OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5nZXRQYXJhZ3JhcGhUb3AocGFyYWdyYXBocywgcm93KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlclRleHRQYXJhZ3JhcGgocm93c0Rpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogQ2VsbFtdIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQ6IENlbGxbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCByb3cgPSByb3dzRGlzdGFuY2Uuc3RhcnQ7IHJvdyA8PSByb3dzRGlzdGFuY2UuZW5kOyByb3crKykge1xuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBocyA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAucGFyYWdyYXBocztcblxuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoQ2VsbCA9IHRoaXMubGluZXMuY3JlYXRlQ2VsbChyb3cpO1xuICAgICAgICAgICAgcGFyYWdyYXBoQ2VsbC5lbGVtZW50LmNsYXNzTmFtZSA9ICdhY2UtbGluZS1ncm91cCc7XG4gICAgICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ2hpbGRyZW4ocGFyYWdyYXBoQ2VsbC5lbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFncmFwaEhlaWdodCA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuZ2V0UGFyYWdyYXBoSGVpZ2h0KHBhcmFncmFwaHMsIHJvdyk7XG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGhUb3AgPSB0aGlzLmdldFBhcmFncmFwaFRvcChwYXJhZ3JhcGhzLCByb3cpO1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHBhcmFncmFwaENlbGwuZWxlbWVudC5zdHlsZSwgJ2hlaWdodCcsIGAke3BhcmFncmFwaEhlaWdodH1weGApO1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHBhcmFncmFwaENlbGwuZWxlbWVudC5zdHlsZSwgJ3RvcCcsIGAke3BhcmFncmFwaFRvcH1weGApO1xuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gcGFyYWdyYXBoc1tyb3ddO1xuICAgICAgICAgICAgaWYgKHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLm51bWJlcmluZ0lkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyaW5nRWxlbWVudCA9IHRoaXMucmVuZGVyaW5nSGVscGVyLnJlbmRlck51bWJlcmluZ01hcmtlcihwYXJhZ3JhcGgsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgbnVtYmVyaW5nRWxlbWVudC5jbGFzc05hbWUgPSAnbnVtYmVyaW5nTWFya2VyJztcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDZWxsLmVsZW1lbnQuYXBwZW5kQ2hpbGQobnVtYmVyaW5nRWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyVGV4dExpbmVzKHBhcmFncmFwaENlbGwuZWxlbWVudCwgcm93KTtcbiAgICAgICAgICAgIGZyYWdtZW50LnB1c2gocGFyYWdyYXBoQ2VsbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJUZXh0TGluZXMocGFyZW50OiBOb2RlLCByb3c6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBsaW5lc0NvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnJlbmRlcmluZ0hlbHBlci5jcmVhdGVEaXZDb250YWluZXIoJ2xpbmVzLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBjdXJyZW50UGFyYWdyYXBoID0gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzW3Jvd107XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEhlaWdodCA9IFBhcmFncmFwaEhlbHBlci5nZXRQYXJhZ3JhcGhIZWlnaHQoY3VycmVudFBhcmFncmFwaC50ZXh0TGluZXNJbmZvKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKGxpbmVzQ29udGFpbmVyRWxlbWVudC5zdHlsZSwgJ2hlaWdodCcsIGAke3BhcmFncmFwaEhlaWdodH1weGApO1xuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQobGluZXNDb250YWluZXJFbGVtZW50KTtcblxuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy5zZXNzaW9uLmRvY3VtZW50LnBvc2l0aW9uVG9JbmRleCh0aGlzLnNlc3Npb24uZG9jdW1lbnQubGluZXMsIHsgcm93LCBjb2x1bW46IDAgfSk7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5zZXNzaW9uLmRvY3VtZW50LnBvc2l0aW9uVG9JbmRleCh0aGlzLnNlc3Npb24uZG9jdW1lbnQubGluZXMsIHsgcm93OiByb3cgKyAxLCBjb2x1bW46IDAgfSkgLSAxO1xuICAgICAgICBjb25zdCBmb3JtYXRzID0gRm9ybWF0U3R5bGVIZWxwZXIuZ2V0Rm9ybWF0c0F0UmFuZ2UodGhpcy5zZXNzaW9uLm1vZGVsLmZvcm1hdHMsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICAgICAgY29uc3Qgc3BsaXRzID0gdGhpcy5zZXNzaW9uLndyYXBEYXRhW3Jvd107XG4gICAgICAgIGNvbnN0IGZvcm1hdHNFeHQgPSBmb3JtYXRzLm1hcChcbiAgICAgICAgICAgIGZvcm1hdCA9PlxuICAgICAgICAgICAgICAgIG5ldyBGb3JtYXRFeHRNb2RlbCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZvcm1hdCxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5zZXNzaW9uLm1vZGVsLmNvbnRlbnQuc3Vic3RyaW5nKGZvcm1hdC5zdGFydEluZGV4LCBmb3JtYXQuZW5kSW5kZXggKyAxKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzcGxpdHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBzdGFydEluZGV4LCBlbmQ6IGVuZEluZGV4IH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJpbmdIZWxwZXIucmVuZGVyQ29udGVudFdyYXBwZWRMaW5lKFxuICAgICAgICAgICAgICAgIHsgY3VycmVudEVsZW1lbnQ6IHRoaXMuZWxlbWVudCwgcGFyZW50Tm9kZTogbGluZXNDb250YWluZXJFbGVtZW50IH0sXG4gICAgICAgICAgICAgICAgc3BsaXRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGgsXG4gICAgICAgICAgICAgICAgZm9ybWF0c0V4dCxcbiAgICAgICAgICAgICAgICBkaXN0YW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLm1vZGVsLmJyZWFrc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlcmluZ09mZnNldExlZnQgPVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5udW1iZXJpbmdJZCA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEud2lkdGggKyBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEucGFkZGluZ0xlZnQ7XG4gICAgICAgICAgICBjb25zdCBsYXN0TGluZUVsID0gdGhpcy5yZW5kZXJpbmdIZWxwZXIuY3JlYXRlTGluZUVsZW1lbnQoY3VycmVudFBhcmFncmFwaC50ZXh0TGluZXNJbmZvWzBdLCBudW1iZXJpbmdPZmZzZXRMZWZ0KTtcbiAgICAgICAgICAgIGxpbmVzQ29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZChsYXN0TGluZUVsKTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0Rpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogc3RhcnRJbmRleCwgZW5kOiBlbmRJbmRleCB9KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyaW5nSGVscGVyLnJlbmRlckNvbnRlbnRTaW1wbGVMaW5lKFxuICAgICAgICAgICAgICAgIHsgY3VycmVudEVsZW1lbnQ6IHRoaXMuZWxlbWVudCwgcGFyZW50Tm9kZTogbGFzdExpbmVFbCB9LFxuICAgICAgICAgICAgICAgIGZvcm1hdHNFeHQsXG4gICAgICAgICAgICAgICAgcm93RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5tb2RlbC5icmVha3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlciA9IChldmVudDogeyBwYWdlc0NvdW50OiBudW1iZXI7IHBhZ2VIZWlnaHQ6IG51bWJlciB9KSA9PiB7XG4gICAgICAgIHRoaXMubGluZXMuc2V0U2l6ZXMoZXZlbnQucGFnZXNDb3VudCwgZXZlbnQucGFnZUhlaWdodCk7XG4gICAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export class DisplayToken {
2
+ get breaksLine() {
3
+ return this.isPageBreak || this.isLineBreak;
4
+ }
5
+ constructor(fields) {
6
+ if (!fields) {
7
+ return;
8
+ }
9
+ Object.assign(this, fields);
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10b2tlbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvbW9kZWxzL2Rpc3BsYXktdG9rZW4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7SUF3QnJCLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFtQixNQUE4QjtRQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZvbnRNZXRyaWNTaXplIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mb250LW1ldHJpYy1zaXplLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBEaXNwbGF5VG9rZW4gaW1wbGVtZW50cyBJRm9udE1ldHJpY1NpemUge1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgYmFzZWxpbmU6IG51bWJlcjtcbiAgICBjb250ZW50OiBudW1iZXI7XG4gICAgZm9udDogbnVtYmVyO1xuICAgIGxpbmU6IG51bWJlcjtcbiAgICBsaW5lU3BhY2luZzogbnVtYmVyO1xuICAgIG11bHRpcGxpZXI6IG51bWJlcjtcbiAgICBhc2NlbnQ6IG51bWJlcjtcbiAgICBkZXNjZW50OiBudW1iZXI7XG4gICAgZGlzcGxheVZhbHVlOiBudW1iZXI7XG4gICAgYWxpZ246IG51bWJlcjtcbiAgICBpbmRlbnRGaXJzdExpbmU6IG51bWJlcjtcbiAgICBpbmRlbnRIYW5naW5nOiBudW1iZXI7XG4gICAgaW5kZW50TGVmdDogbnVtYmVyO1xuICAgIGluZGVudFJpZ2h0OiBudW1iZXI7XG4gICAgaW5kZW50QmVmb3JlOiBudW1iZXI7XG4gICAgaW5kZW50QWZ0ZXI6IG51bWJlcjtcbiAgICBpc1BhZ2VCcmVhazogYm9vbGVhbjtcbiAgICBpc0xpbmVCcmVhazogYm9vbGVhbjtcbiAgICBpc1RhYjogYm9vbGVhbjtcbiAgICBpc1RhYmxlOiBib29sZWFuO1xuXG4gICAgZ2V0IGJyZWFrc0xpbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFnZUJyZWFrIHx8IHRoaXMuaXNMaW5lQnJlYWs7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8RGlzcGxheVRva2VuPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export class DistanceModel {
2
+ constructor(fields) {
3
+ if (!fields) {
4
+ return;
5
+ }
6
+ Object.assign(this, fields);
7
+ this.selectionEnd = this.end > 0 ? this.end - 1 : 0;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdGFuY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL21vZGVscy9kaXN0YW5jZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sYUFBYTtJQUt0QixZQUFZLE1BQStCO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEaXN0YW5jZU1vZGVsIHtcbiAgICBlbmQ6IG51bWJlcjtcbiAgICBzZWxlY3Rpb25FbmQ6IG51bWJlcjtcbiAgICBzdGFydDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoZmllbGRzPzogUGFydGlhbDxEaXN0YW5jZU1vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkVuZCA9IHRoaXMuZW5kID4gMCA/IHRoaXMuZW5kIC0gMSA6IDA7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export class EdgeElementModel {
2
+ constructor(fields) {
3
+ if (!fields) {
4
+ return;
5
+ }
6
+ Object.assign(this, fields);
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1lbGVtZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9tb2RlbHMvZWRnZS1lbGVtZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFLekIsWUFBWSxNQUFrQztRQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYWdlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBFZGdlRWxlbWVudE1vZGVsIHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwYWdlOiBudW1iZXI7XG4gICAgcGFnZVR5cGU6IFBhZ2VUeXBlO1xuXG4gICAgY29uc3RydWN0b3IoZmllbGRzPzogUGFydGlhbDxFZGdlRWxlbWVudE1vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { FormatModel } from '../../../../models/generated/format.model';
2
+ export class FormatExtModel extends FormatModel {
3
+ constructor(fields) {
4
+ super(fields);
5
+ if (fields) {
6
+ Object.assign(this, fields);
7
+ }
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWV4dC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvbW9kZWxzL2Zvcm1hdC1leHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhFLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQUczQyxZQUFZLE1BQWdDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVkLElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1hdEV4dE1vZGVsIGV4dGVuZHMgRm9ybWF0TW9kZWwge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8Rm9ybWF0RXh0TW9kZWw+KSB7XG4gICAgICAgIHN1cGVyKGZpZWxkcyk7XG5cbiAgICAgICAgaWYgKGZpZWxkcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export class IndentModel {
2
+ constructor(firstLine, hanging, left, right) {
3
+ this.firstLine = firstLine;
4
+ this.hanging = hanging;
5
+ this.left = left;
6
+ this.right = right;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9tb2RlbHMvaW5kZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW1CLFNBQWlCLEVBQVMsT0FBZSxFQUFTLElBQVksRUFBUyxLQUFhO1FBQXBGLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDO0NBQzlHIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEluZGVudE1vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlyc3RMaW5lOiBudW1iZXIsIHB1YmxpYyBoYW5naW5nOiBudW1iZXIsIHB1YmxpYyBsZWZ0OiBudW1iZXIsIHB1YmxpYyByaWdodDogbnVtYmVyKSB7fVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export class LineInfoModel {
2
+ constructor(fields) {
3
+ if (!fields) {
4
+ return;
5
+ }
6
+ Object.assign(this, fields);
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pbmZvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9tb2RlbHMvbGluZS1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxhQUFhO0lBWXRCLFlBQVksTUFBK0I7UUFDdkMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZGVudE1vZGVsIH0gZnJvbSAnLi9pbmRlbnQubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGluZUluZm9Nb2RlbCB7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBhbGlnbjogbnVtYmVyO1xuICAgIGluZGVudDogSW5kZW50TW9kZWw7XG4gICAgb2Zmc2V0QmVmb3JlOiBudW1iZXI7XG4gICAgb2Zmc2V0QWZ0ZXI6IG51bWJlcjtcbiAgICBsaW5lU3BhY2luZzogbnVtYmVyO1xuICAgIGlzQWZ0ZXJQYWdlQnJlYWs6IGJvb2xlYW47XG4gICAgaXNFbmRlZEJ5UGFnZUJyZWFrOiBib29sZWFuO1xuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoZmllbGRzPzogUGFydGlhbDxMaW5lSW5mb01vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { DocumentInfo } from '../constants/document-info.const';
2
+ export class MarginModel {
3
+ constructor(fields) {
4
+ this.left = DocumentInfo.paddingLeft;
5
+ this.right = DocumentInfo.paddingRight;
6
+ this.top = DocumentInfo.paddingTop;
7
+ this.bottom = DocumentInfo.paddingBottom;
8
+ this.header = DocumentInfo.paddingHeader;
9
+ this.footer = DocumentInfo.paddingFooter;
10
+ if (!fields) {
11
+ return;
12
+ }
13
+ Object.assign(this, fields);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyZ2luLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9tb2RlbHMvbWFyZ2luLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVoRSxNQUFNLE9BQU8sV0FBVztJQVFwQixZQUFZLE1BQTZCO1FBUHpDLFNBQUksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ2hDLFVBQUssR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ2xDLFFBQUcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDO1FBR2hDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudEluZm8gfSBmcm9tICcuLi9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5cbmV4cG9ydCBjbGFzcyBNYXJnaW5Nb2RlbCB7XG4gICAgbGVmdCA9IERvY3VtZW50SW5mby5wYWRkaW5nTGVmdDtcbiAgICByaWdodCA9IERvY3VtZW50SW5mby5wYWRkaW5nUmlnaHQ7XG4gICAgdG9wID0gRG9jdW1lbnRJbmZvLnBhZGRpbmdUb3A7XG4gICAgYm90dG9tID0gRG9jdW1lbnRJbmZvLnBhZGRpbmdCb3R0b207XG4gICAgaGVhZGVyID0gRG9jdW1lbnRJbmZvLnBhZGRpbmdIZWFkZXI7XG4gICAgZm9vdGVyID0gRG9jdW1lbnRJbmZvLnBhZGRpbmdGb290ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihmaWVsZHM/OiBQYXJ0aWFsPE1hcmdpbk1vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export class NumberingDataModel {
2
+ constructor(fields) {
3
+ if (!fields) {
4
+ return;
5
+ }
6
+ Object.assign(this, fields);
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL21vZGVscy9udW1iZXJpbmctZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBUzNCLFlBQVksTUFBb0M7UUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE51bWJlcmluZ0RhdGFNb2RlbCB7XG4gICAgbnVtYmVyaW5nSWQ6IG51bWJlcjtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIG1hcmtlcjogc3RyaW5nO1xuICAgIG1hcmtlclRleHRTdHlsZTogVGV4dFN0eWxlTW9kZWw7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBwYWRkaW5nTGVmdDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoZmllbGRzPzogUGFydGlhbDxOdW1iZXJpbmdEYXRhTW9kZWw+KSB7XG4gICAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,25 @@
1
+ export class RenderChangesModel {
2
+ get any() {
3
+ return this.cursor || this.full || this.lines || this.marker || this.selection || this.scroll || this.size || this.text;
4
+ }
5
+ constructor(fields) {
6
+ this.cursor = false;
7
+ this.full = false;
8
+ this.lines = false;
9
+ this.marker = false;
10
+ this.selection = false;
11
+ this.scroll = false;
12
+ this.size = false;
13
+ this.text = false;
14
+ if (!fields) {
15
+ return;
16
+ }
17
+ Object.assign(this, fields);
18
+ }
19
+ apply(changes) {
20
+ for (let key of Object.keys(this)) {
21
+ this[key] ||= changes[key];
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWNoYW5nZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL21vZGVscy9yZW5kZXItY2hhbmdlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBVTNCLElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVILENBQUM7SUFFRCxZQUFZLE1BQW9DO1FBYmhELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsU0FBSSxHQUFHLEtBQUssQ0FBQztRQU9ULElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQXVCO1FBQ3pCLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVJlbmRlckNoYW5nZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlbmRlci1jaGFuZ2VzLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBSZW5kZXJDaGFuZ2VzTW9kZWwgaW1wbGVtZW50cyBJUmVuZGVyQ2hhbmdlcyB7XG4gICAgY3Vyc29yID0gZmFsc2U7XG4gICAgZnVsbCA9IGZhbHNlO1xuICAgIGxpbmVzID0gZmFsc2U7XG4gICAgbWFya2VyID0gZmFsc2U7XG4gICAgc2VsZWN0aW9uID0gZmFsc2U7XG4gICAgc2Nyb2xsID0gZmFsc2U7XG4gICAgc2l6ZSA9IGZhbHNlO1xuICAgIHRleHQgPSBmYWxzZTtcblxuICAgIGdldCBhbnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnNvciB8fCB0aGlzLmZ1bGwgfHwgdGhpcy5saW5lcyB8fCB0aGlzLm1hcmtlciB8fCB0aGlzLnNlbGVjdGlvbiB8fCB0aGlzLnNjcm9sbCB8fCB0aGlzLnNpemUgfHwgdGhpcy50ZXh0O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8UmVuZGVyQ2hhbmdlc01vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cblxuICAgIGFwcGx5KGNoYW5nZXM6IElSZW5kZXJDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzKSkge1xuICAgICAgICAgICAgdGhpc1trZXldIHx8PSBjaGFuZ2VzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export class PageVerticalDataModel {
2
+ constructor(fields) {
3
+ if (!fields) {
4
+ return;
5
+ }
6
+ Object.assign(this, fields);
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS12ZXJ0aWNhbC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9wYWdpbmcvcGFnZS12ZXJ0aWNhbC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFNOUIsWUFBWSxNQUF1QztRQUMvQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYWdlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBQYWdlVmVydGljYWxEYXRhTW9kZWwge1xuICAgIG1hcmdpbkJvdHRvbTogbnVtYmVyO1xuICAgIG1hcmdpblRvcDogbnVtYmVyO1xuICAgIGNvbnRlbnRIZWlnaHQ6IG51bWJlcjtcbiAgICBwYWdlVHlwZTogUGFnZVR5cGU7XG5cbiAgICBjb25zdHJ1Y3RvcihmaWVsZHM/OiBQYXJ0aWFsPFBhZ2VWZXJ0aWNhbERhdGFNb2RlbD4pIHtcbiAgICAgICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTtcbiAgICB9XG59XG4iXX0=