@talrace/ngx-noder 0.0.18 → 0.0.20

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 (288) hide show
  1. package/fesm2022/talrace-ngx-noder.mjs +181 -181
  2. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  3. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +1 -1
  4. package/lib/editor/components/external-element/external.component.d.ts +1 -1
  5. package/lib/editor/components/shared/abstract/base.component.d.ts +1 -1
  6. package/lib/editor/components/shared/abstract/destroy.component.d.ts +1 -1
  7. package/package.json +1 -3
  8. package/src/lib/apart-components/add-link-dialog/_add-link-dialog.theme.scss +3 -6
  9. package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +4 -7
  10. package/src/lib/apart-components/confirm-dialog/_theme.scss +6 -9
  11. package/src/lib/apart-components/editor-title/_editor-title.theme.scss +6 -9
  12. package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +9 -12
  13. package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +5 -8
  14. package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +1 -3
  15. package/src/lib/apart-components/editor-toolbar/components/buttons/font/_font.theme.scss +1 -3
  16. package/src/lib/apart-components/editor-toolbar/components/buttons/font-size/_font-size.theme.scss +2 -5
  17. package/src/lib/apart-components/editor-toolbar/components/buttons/font-style/_font-style.theme.scss +3 -6
  18. package/src/lib/apart-components/editor-toolbar/components/buttons/format/_format.theme.scss +3 -6
  19. package/src/lib/apart-components/editor-toolbar/components/buttons/numbering/_numbering.theme.scss +15 -18
  20. package/src/lib/apart-components/editor-toolbar/components/buttons/undo-redo/_undo-redo.theme.scss +2 -4
  21. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns/_menu-dropdowns.theme.scss +5 -8
  22. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +6 -9
  23. package/src/lib/apart-components/editor-toolbar/components/toolbar-actions/_toolbar-actions.theme.scss +3 -6
  24. package/src/lib/apart-components/insert-table/_insert-table.theme.scss +6 -9
  25. package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +12 -15
  26. package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +22 -25
  27. package/src/lib/editor/components/_editor.theme.scss +25 -28
  28. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +0 -73
  29. package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +0 -7
  30. package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +0 -49
  31. package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +0 -34
  32. package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +0 -75
  33. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +0 -95
  34. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +0 -24
  35. package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +0 -117
  36. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +0 -37
  37. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +0 -49
  38. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +0 -90
  39. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +0 -81
  40. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +0 -28
  41. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +0 -53
  42. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +0 -18
  43. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +0 -27
  44. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +0 -71
  45. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +0 -107
  46. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +0 -25
  47. package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +0 -65
  48. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +0 -86
  49. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +0 -90
  50. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +0 -122
  51. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +0 -8
  52. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.mjs +0 -1148
  53. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +0 -157
  54. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +0 -8
  55. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +0 -11
  56. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-template-type.enum.mjs +0 -16
  57. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +0 -6
  58. package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +0 -34
  59. package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +0 -26
  60. package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +0 -60
  61. package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +0 -48
  62. package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +0 -54
  63. package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +0 -86
  64. package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +0 -134
  65. package/esm2022/lib/editor/components/edges/edge-element.model.mjs +0 -38
  66. package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +0 -6
  67. package/esm2022/lib/editor/components/edges/edge.component.mjs +0 -141
  68. package/esm2022/lib/editor/components/edges/edges.mjs +0 -120
  69. package/esm2022/lib/editor/components/edges/page-type.enum.mjs +0 -7
  70. package/esm2022/lib/editor/components/editor.component.mjs +0 -112
  71. package/esm2022/lib/editor/components/external-element/external-element.service.mjs +0 -6
  72. package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +0 -4
  73. package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +0 -2
  74. package/esm2022/lib/editor/components/external-element/external.component.mjs +0 -41
  75. package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +0 -9
  76. package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +0 -11
  77. package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +0 -15
  78. package/esm2022/lib/editor/components/image/components/image.component.mjs +0 -88
  79. package/esm2022/lib/editor/components/image/image-api.service.mjs +0 -36
  80. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +0 -46
  81. package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +0 -2
  82. package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +0 -19
  83. package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +0 -12
  84. package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +0 -106
  85. package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +0 -2
  86. package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +0 -52
  87. package/esm2022/lib/editor/components/image/size.mjs +0 -2
  88. package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +0 -60
  89. package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +0 -18
  90. package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +0 -43
  91. package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +0 -2
  92. package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +0 -3
  93. package/esm2022/lib/editor/components/shared/custom-content.mjs +0 -2
  94. package/esm2022/lib/editor/components/shared/services/component.service.mjs +0 -52
  95. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +0 -123
  96. package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +0 -55
  97. package/esm2022/lib/editor/components/tab/tab.component.mjs +0 -44
  98. package/esm2022/lib/editor/components/tab/tab.helper.mjs +0 -6
  99. package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +0 -118
  100. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +0 -99
  101. package/esm2022/lib/editor/components/table/components/table.component.mjs +0 -412
  102. package/esm2022/lib/editor/components/table/enums/hrule.enum.mjs +0 -7
  103. package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +0 -8
  104. package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +0 -6
  105. package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +0 -17
  106. package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +0 -9
  107. package/esm2022/lib/editor/components/table/models/row-data.model.mjs +0 -8
  108. package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +0 -7
  109. package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +0 -84
  110. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +0 -383
  111. package/esm2022/lib/editor/content/constants/display-values.const.mjs +0 -8
  112. package/esm2022/lib/editor/content/constants/document-info.const.mjs +0 -13
  113. package/esm2022/lib/editor/content/constants/editor.const.mjs +0 -70
  114. package/esm2022/lib/editor/content/contents.interface.mjs +0 -2
  115. package/esm2022/lib/editor/content/display-data/display-data.mjs +0 -839
  116. package/esm2022/lib/editor/content/display-data/display-token.model.mjs +0 -12
  117. package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +0 -10
  118. package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +0 -11
  119. package/esm2022/lib/editor/content/display-data/indent.model.mjs +0 -9
  120. package/esm2022/lib/editor/content/display-data/line-info.model.mjs +0 -9
  121. package/esm2022/lib/editor/content/display-data/lines.mjs +0 -96
  122. package/esm2022/lib/editor/content/display-data/models/paragraph-info.model.mjs +0 -8
  123. package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +0 -2
  124. package/esm2022/lib/editor/content/display-data/paragraph.mjs +0 -56
  125. package/esm2022/lib/editor/content/display-data/text-line-info.mjs +0 -35
  126. package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +0 -2
  127. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +0 -78
  128. package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +0 -62
  129. package/esm2022/lib/editor/content/helpers/format.helper.mjs +0 -23
  130. package/esm2022/lib/editor/content/helpers/indexed-element.helper.mjs +0 -6
  131. package/esm2022/lib/editor/content/helpers/link.helper.mjs +0 -42
  132. package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +0 -9
  133. package/esm2022/lib/editor/content/margin.model.mjs +0 -16
  134. package/esm2022/lib/editor/content/page-vertical-data.model.mjs +0 -9
  135. package/esm2022/lib/editor/content/vertical-alignment.enum.mjs +0 -11
  136. package/esm2022/lib/editor/core/event-emitting.mjs +0 -56
  137. package/esm2022/lib/editor/display/cell.interface.mjs +0 -2
  138. package/esm2022/lib/editor/display/event.helper.mjs +0 -18
  139. package/esm2022/lib/editor/display/layers/cursor.layer.mjs +0 -102
  140. package/esm2022/lib/editor/display/layers/layer.config.mjs +0 -2
  141. package/esm2022/lib/editor/display/layers/pages.layer.mjs +0 -109
  142. package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +0 -7
  143. package/esm2022/lib/editor/display/layers/print.text.layer.mjs +0 -7
  144. package/esm2022/lib/editor/display/layers/selection.layer.mjs +0 -119
  145. package/esm2022/lib/editor/display/layers/text.layer.mjs +0 -226
  146. package/esm2022/lib/editor/display/print/print.helper.mjs +0 -40
  147. package/esm2022/lib/editor/display/print/print.renderer.mjs +0 -67
  148. package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +0 -7
  149. package/esm2022/lib/editor/display/render-changes.interface.mjs +0 -2
  150. package/esm2022/lib/editor/display/render-changes.model.mjs +0 -25
  151. package/esm2022/lib/editor/display/renderer.mjs +0 -204
  152. package/esm2022/lib/editor/display/rendering.helper.mjs +0 -185
  153. package/esm2022/lib/editor/display/renderloop.mjs +0 -26
  154. package/esm2022/lib/editor/display/virtual.renderer.mjs +0 -284
  155. package/esm2022/lib/editor/display/visible-range.interface.mjs +0 -2
  156. package/esm2022/lib/editor/editor.module.mjs +0 -91
  157. package/esm2022/lib/editor/execution/distance.model.mjs +0 -10
  158. package/esm2022/lib/editor/execution/edit.session.mjs +0 -602
  159. package/esm2022/lib/editor/execution/editor.mjs +0 -1368
  160. package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +0 -42
  161. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +0 -73
  162. package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +0 -12
  163. package/esm2022/lib/editor/execution/helpers/page.helper.mjs +0 -12
  164. package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +0 -41
  165. package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +0 -177
  166. package/esm2022/lib/editor/execution/regulator.service.mjs +0 -212
  167. package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +0 -18
  168. package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +0 -14
  169. package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +0 -8
  170. package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +0 -3
  171. package/esm2022/lib/editor/execution/targeting/session.model.mjs +0 -10
  172. package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +0 -2
  173. package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +0 -2
  174. package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +0 -88
  175. package/esm2022/lib/editor/gadgets/history/operation-history.mjs +0 -208
  176. package/esm2022/lib/editor/gadgets/history/operation.type.mjs +0 -2
  177. package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +0 -7
  178. package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +0 -9
  179. package/esm2022/lib/editor/gadgets/numbering/numbering-marker-type.enum.mjs +0 -12
  180. package/esm2022/lib/editor/gadgets/numbering/numbering-paragraph-style.model.mjs +0 -13
  181. package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +0 -149
  182. package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +0 -7
  183. package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +0 -18
  184. package/esm2022/lib/editor/gadgets/scrollbar.mjs +0 -86
  185. package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +0 -2
  186. package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +0 -2
  187. package/esm2022/lib/editor/gadgets/search/search.mjs +0 -231
  188. package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +0 -5
  189. package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +0 -20
  190. package/esm2022/lib/editor/interaction/base.handler.mjs +0 -19
  191. package/esm2022/lib/editor/interaction/document.handler.mjs +0 -27
  192. package/esm2022/lib/editor/interaction/editor.service.mjs +0 -386
  193. package/esm2022/lib/editor/interaction/input.handler.mjs +0 -152
  194. package/esm2022/lib/editor/interaction/mode.enum.mjs +0 -7
  195. package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +0 -7
  196. package/esm2022/lib/editor/interaction/mouse.handler.mjs +0 -50
  197. package/esm2022/lib/editor/interaction/text-input.mjs +0 -53
  198. package/esm2022/lib/editor/operations/commands.service.mjs +0 -20
  199. package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +0 -32
  200. package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +0 -7
  201. package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +0 -9
  202. package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +0 -15
  203. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +0 -85
  204. package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +0 -19
  205. package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
  206. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +0 -136
  207. package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
  208. package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +0 -114
  209. package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +0 -16
  210. package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +0 -374
  211. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +0 -438
  212. package/esm2022/lib/editor/operations/save-commands.helper.mjs +0 -128
  213. package/esm2022/lib/editor/operations/target-operations.helper.mjs +0 -23
  214. package/esm2022/lib/editor/positioning/alignments.const.mjs +0 -8
  215. package/esm2022/lib/editor/positioning/content.helper.mjs +0 -45
  216. package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +0 -13
  217. package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +0 -2
  218. package/esm2022/lib/editor/positioning/insert-index.interface.mjs +0 -2
  219. package/esm2022/lib/editor/positioning/line-width.helper.mjs +0 -13
  220. package/esm2022/lib/editor/positioning/position.helper.mjs +0 -210
  221. package/esm2022/lib/editor/positioning/range.mjs +0 -94
  222. package/esm2022/lib/editor/positioning/selection.mjs +0 -351
  223. package/esm2022/lib/editor/revision.helper.mjs +0 -94
  224. package/esm2022/lib/models/generated/add-numbering.model.mjs +0 -8
  225. package/esm2022/lib/models/generated/apply-element-style.model.mjs +0 -8
  226. package/esm2022/lib/models/generated/apply-image-style.model.mjs +0 -8
  227. package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +0 -12
  228. package/esm2022/lib/models/generated/apply-text-style.model.mjs +0 -12
  229. package/esm2022/lib/models/generated/borders-style.model.mjs +0 -8
  230. package/esm2022/lib/models/generated/break.model.mjs +0 -8
  231. package/esm2022/lib/models/generated/cell.model.mjs +0 -12
  232. package/esm2022/lib/models/generated/column-section.model.mjs +0 -8
  233. package/esm2022/lib/models/generated/column.model.mjs +0 -8
  234. package/esm2022/lib/models/generated/command.model.mjs +0 -120
  235. package/esm2022/lib/models/generated/delete.model.mjs +0 -8
  236. package/esm2022/lib/models/generated/document-name.model.mjs +0 -8
  237. package/esm2022/lib/models/generated/document.model.mjs +0 -8
  238. package/esm2022/lib/models/generated/docx.model.mjs +0 -12
  239. package/esm2022/lib/models/generated/edge-target.model.mjs +0 -8
  240. package/esm2022/lib/models/generated/edge.model.mjs +0 -8
  241. package/esm2022/lib/models/generated/element.model.mjs +0 -8
  242. package/esm2022/lib/models/generated/file-source.model.mjs +0 -8
  243. package/esm2022/lib/models/generated/format.model.mjs +0 -12
  244. package/esm2022/lib/models/generated/heading.model.mjs +0 -16
  245. package/esm2022/lib/models/generated/image-data.model.mjs +0 -8
  246. package/esm2022/lib/models/generated/image.model.mjs +0 -12
  247. package/esm2022/lib/models/generated/insert-break.model.mjs +0 -8
  248. package/esm2022/lib/models/generated/insert-element.model.mjs +0 -12
  249. package/esm2022/lib/models/generated/insert-image.model.mjs +0 -12
  250. package/esm2022/lib/models/generated/insert-link.model.mjs +0 -12
  251. package/esm2022/lib/models/generated/insert-paragraph.model.mjs +0 -20
  252. package/esm2022/lib/models/generated/insert-styled-text.model.mjs +0 -12
  253. package/esm2022/lib/models/generated/insert-tab.model.mjs +0 -8
  254. package/esm2022/lib/models/generated/insert-table-columns.model.mjs +0 -8
  255. package/esm2022/lib/models/generated/insert-table-rows.model.mjs +0 -8
  256. package/esm2022/lib/models/generated/insert-table.model.mjs +0 -8
  257. package/esm2022/lib/models/generated/insert-text.model.mjs +0 -8
  258. package/esm2022/lib/models/generated/last-document-revision.model.mjs +0 -12
  259. package/esm2022/lib/models/generated/link-data.model.mjs +0 -8
  260. package/esm2022/lib/models/generated/link.model.mjs +0 -8
  261. package/esm2022/lib/models/generated/margins.model.mjs +0 -8
  262. package/esm2022/lib/models/generated/numbering-level.model.mjs +0 -12
  263. package/esm2022/lib/models/generated/numbering.model.mjs +0 -8
  264. package/esm2022/lib/models/generated/operation.model.mjs +0 -12
  265. package/esm2022/lib/models/generated/page-numbers.model.mjs +0 -8
  266. package/esm2022/lib/models/generated/paragraph-style.model.mjs +0 -8
  267. package/esm2022/lib/models/generated/paragraph.model.mjs +0 -12
  268. package/esm2022/lib/models/generated/remove-numberings.model.mjs +0 -8
  269. package/esm2022/lib/models/generated/remove-table-columns.model.mjs +0 -8
  270. package/esm2022/lib/models/generated/remove-table-rows.model.mjs +0 -8
  271. package/esm2022/lib/models/generated/replace-by-text.model.mjs +0 -8
  272. package/esm2022/lib/models/generated/replace.model.mjs +0 -44
  273. package/esm2022/lib/models/generated/resize-table-columns.model.mjs +0 -8
  274. package/esm2022/lib/models/generated/restore-numberings.model.mjs +0 -8
  275. package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +0 -8
  276. package/esm2022/lib/models/generated/restore-table.model.mjs +0 -12
  277. package/esm2022/lib/models/generated/restore-text-styles.model.mjs +0 -8
  278. package/esm2022/lib/models/generated/restore.model.mjs +0 -8
  279. package/esm2022/lib/models/generated/revision.model.mjs +0 -12
  280. package/esm2022/lib/models/generated/row.model.mjs +0 -8
  281. package/esm2022/lib/models/generated/tab.model.mjs +0 -8
  282. package/esm2022/lib/models/generated/table-cell.model.mjs +0 -8
  283. package/esm2022/lib/models/generated/table.model.mjs +0 -12
  284. package/esm2022/lib/models/generated/target.model.mjs +0 -16
  285. package/esm2022/lib/models/generated/text-style.model.mjs +0 -8
  286. package/esm2022/lib/translate/noder-translate.loader.mjs +0 -22
  287. package/esm2022/public-api.mjs +0 -54
  288. package/esm2022/talrace-ngx-noder.mjs +0 -5
@@ -1,43 +0,0 @@
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=
@@ -1,136 +0,0 @@
1
- import { FormatStyleHelper } from '../../execution/helpers/format-style.helper';
2
- import { FormatModel } from '../../../models/generated/format.model';
3
- import { FormatOperationsHelper } from './format-operations.helper';
4
- import { LinkModel } from '../../../models/generated/link.model';
5
- export class LinkOperationsHelper {
6
- static insert(links, link, startIndex, endIndex, linkStyle) {
7
- LinkOperationsHelper.insertContent(links, startIndex, endIndex - startIndex + 1);
8
- const linkModel = new LinkModel({
9
- startIndex: startIndex,
10
- link,
11
- endIndex,
12
- formats: [new FormatModel({ startIndex: 0, endIndex: endIndex - startIndex, textStyle: linkStyle })]
13
- });
14
- const index = links.findIndex(x => x.startIndex > linkModel.startIndex);
15
- if (index < 0) {
16
- links.push(linkModel);
17
- }
18
- else {
19
- links.splice(index, 0, linkModel);
20
- }
21
- }
22
- static insertStyledContent(links, index, textLength, style) {
23
- this.insertContent(links, index, textLength);
24
- this.apply(links, index, index + textLength - 1, style);
25
- }
26
- static insertContent(links, insertIndex, textLength) {
27
- for (let link of links) {
28
- if (link.startIndex < insertIndex && link.endIndex >= insertIndex) {
29
- link.endIndex += textLength;
30
- const indexInLink = insertIndex - link.startIndex;
31
- const format = link.formats.find(x => x.startIndex <= indexInLink && x.endIndex >= indexInLink);
32
- format.endIndex += textLength;
33
- continue;
34
- }
35
- if (link.startIndex >= insertIndex) {
36
- link.startIndex += textLength;
37
- link.endIndex += textLength;
38
- }
39
- }
40
- }
41
- static removeContent(links, startIndex, endIndex) {
42
- const length = endIndex - startIndex + 1;
43
- for (let i = links.length - 1; i >= 0; i--) {
44
- if (links[i].startIndex >= startIndex && links[i].endIndex <= endIndex) {
45
- links.splice(i, 1);
46
- continue;
47
- }
48
- if (endIndex < links[i].startIndex) {
49
- links[i].startIndex -= length;
50
- links[i].endIndex -= length;
51
- continue;
52
- }
53
- if (links[i].startIndex <= startIndex && links[i].endIndex >= endIndex) {
54
- const startInLink = startIndex - links[i].startIndex;
55
- const endInLink = endIndex - links[i].startIndex;
56
- links[i].endIndex -= length;
57
- FormatOperationsHelper.removeContent(links[i].formats, startInLink, endInLink);
58
- continue;
59
- }
60
- if (links[i].startIndex >= startIndex && links[i].startIndex <= endIndex) {
61
- const endInLink = endIndex - links[i].startIndex;
62
- links[i].startIndex = startIndex;
63
- links[i].endIndex -= length;
64
- FormatOperationsHelper.removeContent(links[i].formats, 0, endInLink);
65
- continue;
66
- }
67
- if (links[i].endIndex >= startIndex && links[i].endIndex <= endIndex) {
68
- const startInLink = startIndex - links[i].startIndex;
69
- const endInLink = links[i].formats[links[i].formats.length - 1].endIndex;
70
- links[i].endIndex = startIndex - 1;
71
- FormatOperationsHelper.removeContent(links[i].formats, startInLink, endInLink);
72
- }
73
- }
74
- }
75
- static restore(links, startIndex, contentLength, newLinks) {
76
- this.insertContent(links, startIndex, contentLength);
77
- let indexInElements = links.findIndex(x => x.startIndex >= startIndex);
78
- indexInElements = indexInElements === -1 ? links.length : indexInElements;
79
- links.splice(indexInElements, 0, ...newLinks);
80
- this.merge(links, startIndex - 1, startIndex + contentLength);
81
- }
82
- static restoreFormats(links, formats) {
83
- formats.forEach(x => this.apply(links, x.startIndex, x.endIndex, x.textStyle));
84
- }
85
- static replaceContent(links, startIndex, endIndex, length) {
86
- this.removeContent(links, startIndex, endIndex);
87
- this.insertContent(links, startIndex, length);
88
- }
89
- static apply(links, startIndex, endIndex, style) {
90
- for (let link of links) {
91
- if (link.startIndex > endIndex || link.endIndex < startIndex) {
92
- continue;
93
- }
94
- const start = startIndex > link.startIndex ? startIndex - link.startIndex : 0;
95
- FormatOperationsHelper.apply(link.formats, start, endIndex - link.startIndex, style);
96
- }
97
- }
98
- static merge(links, start, end) {
99
- const firstIndex = links.findIndex(x => x.endIndex >= start);
100
- if (firstIndex === -1) {
101
- return;
102
- }
103
- for (let link of links) {
104
- if (link.startIndex <= start && link.endIndex >= end) {
105
- const newLink = links[firstIndex + 1];
106
- newLink.formats.forEach(x => {
107
- x.startIndex += newLink.startIndex - link.startIndex;
108
- x.endIndex += newLink.startIndex - link.startIndex;
109
- });
110
- for (let { startIndex, endIndex, textStyle } of newLink.formats) {
111
- FormatOperationsHelper.apply(link.formats, startIndex, endIndex - startIndex + 1, textStyle);
112
- }
113
- links.splice(firstIndex + 1, 1);
114
- return;
115
- }
116
- }
117
- let lastIndex = firstIndex;
118
- while (lastIndex < links.length - 1 && links[lastIndex].endIndex < end) {
119
- lastIndex++;
120
- }
121
- for (let i = lastIndex; i > firstIndex; i--) {
122
- const previous = links[i - 1];
123
- if (previous.endIndex + 1 === links[i].startIndex && previous.link === links[i].link) {
124
- previous.endIndex = links[i].endIndex;
125
- links[i].formats.forEach(x => {
126
- x.startIndex += previous.formats[previous.formats.length - 1].endIndex + 1;
127
- x.endIndex += previous.formats[previous.formats.length - 1].endIndex + 1;
128
- });
129
- previous.formats.push(...links[i].formats);
130
- links.splice(i, 1);
131
- FormatStyleHelper.mergeFormats(previous.formats, 0, previous.endIndex - previous.startIndex);
132
- }
133
- }
134
- }
135
- }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1vcGVyYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2hlbHBlcnMvbGluay1vcGVyYXRpb25zLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR2pFLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFrQixFQUFFLElBQVksRUFBRSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsU0FBeUI7UUFDM0csb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM1QixVQUFVLEVBQUUsVUFBVTtZQUN0QixJQUFJO1lBQ0osUUFBUTtZQUNSLE9BQU8sRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxHQUFHLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUN2RyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QjthQUFNO1lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFrQixFQUFFLEtBQWEsRUFBRSxVQUFrQixFQUFFLEtBQXFCO1FBQ25HLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBa0IsRUFBRSxXQUFtQixFQUFFLFVBQWtCO1FBQzVFLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxXQUFXLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDO2dCQUM1QixNQUFNLFdBQVcsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxDQUFDO2dCQUNoRyxNQUFNLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQztnQkFDOUIsU0FBUzthQUNaO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLFdBQVcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFrQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0I7UUFDekUsTUFBTSxNQUFNLEdBQUcsUUFBUSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7Z0JBQ3BFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixTQUFTO2FBQ1o7WUFDRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO2dCQUNoQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztnQkFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7Z0JBQzVCLFNBQVM7YUFDWjtZQUNELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7Z0JBQ3BFLE1BQU0sV0FBVyxHQUFHLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUNyRCxNQUFNLFNBQVMsR0FBRyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDakQsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7Z0JBQzVCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDL0UsU0FBUzthQUNaO1lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLFFBQVEsRUFBRTtnQkFDdEUsTUFBTSxTQUFTLEdBQUcsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO2dCQUNqQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQztnQkFDNUIsc0JBQXNCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRSxTQUFTO2FBQ1o7WUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksVUFBVSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO2dCQUNsRSxNQUFNLFdBQVcsR0FBRyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDckQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDbkMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ2xGO1NBQ0o7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFrQixFQUFFLFVBQWtCLEVBQUUsYUFBcUIsRUFBRSxRQUFxQjtRQUMvRixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLENBQUM7UUFDdkUsZUFBZSxHQUFHLGVBQWUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBQzFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWtCLEVBQUUsT0FBc0I7UUFDNUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFrQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxNQUFjO1FBQzFGLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBa0IsRUFBRSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsS0FBcUI7UUFDeEYsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsRUFBRTtnQkFDMUQsU0FBUzthQUNaO1lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3hGO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBa0IsRUFBRSxLQUFhLEVBQUUsR0FBVztRQUMvRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUM3RCxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFDRCxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksR0FBRyxFQUFFO2dCQUNsRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDeEIsQ0FBQyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ3JELENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN2RCxDQUFDLENBQUMsQ0FBQztnQkFFSCxLQUFLLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7b0JBQzdELHNCQUFzQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDaEc7Z0JBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxPQUFPO2FBQ1Y7U0FDSjtRQUVELElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUMzQixPQUFPLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNwRSxTQUFTLEVBQUUsQ0FBQztTQUNmO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xGLFFBQVEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3pCLENBQUMsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUMzRSxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDN0UsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEc7U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1hdFN0eWxlSGVscGVyIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2hlbHBlcnMvZm9ybWF0LXN0eWxlLmhlbHBlcic7XG5pbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcbmltcG9ydCB7IEZvcm1hdE9wZXJhdGlvbnNIZWxwZXIgfSBmcm9tICcuL2Zvcm1hdC1vcGVyYXRpb25zLmhlbHBlcic7XG5pbXBvcnQgeyBMaW5rTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2xpbmsubW9kZWwnO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGlua09wZXJhdGlvbnNIZWxwZXIge1xuICAgIHN0YXRpYyBpbnNlcnQobGlua3M6IExpbmtNb2RlbFtdLCBsaW5rOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgbGlua1N0eWxlOiBUZXh0U3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBMaW5rT3BlcmF0aW9uc0hlbHBlci5pbnNlcnRDb250ZW50KGxpbmtzLCBzdGFydEluZGV4LCBlbmRJbmRleCAtIHN0YXJ0SW5kZXggKyAxKTtcbiAgICAgICAgY29uc3QgbGlua01vZGVsID0gbmV3IExpbmtNb2RlbCh7XG4gICAgICAgICAgICBzdGFydEluZGV4OiBzdGFydEluZGV4LFxuICAgICAgICAgICAgbGluayxcbiAgICAgICAgICAgIGVuZEluZGV4LFxuICAgICAgICAgICAgZm9ybWF0czogW25ldyBGb3JtYXRNb2RlbCh7IHN0YXJ0SW5kZXg6IDAsIGVuZEluZGV4OiBlbmRJbmRleCAtIHN0YXJ0SW5kZXgsIHRleHRTdHlsZTogbGlua1N0eWxlIH0pXVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBsaW5rcy5maW5kSW5kZXgoeCA9PiB4LnN0YXJ0SW5kZXggPiBsaW5rTW9kZWwuc3RhcnRJbmRleCk7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGxpbmtzLnB1c2gobGlua01vZGVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpbmtzLnNwbGljZShpbmRleCwgMCwgbGlua01vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBpbnNlcnRTdHlsZWRDb250ZW50KGxpbmtzOiBMaW5rTW9kZWxbXSwgaW5kZXg6IG51bWJlciwgdGV4dExlbmd0aDogbnVtYmVyLCBzdHlsZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnNlcnRDb250ZW50KGxpbmtzLCBpbmRleCwgdGV4dExlbmd0aCk7XG4gICAgICAgIHRoaXMuYXBwbHkobGlua3MsIGluZGV4LCBpbmRleCArIHRleHRMZW5ndGggLSAxLCBzdHlsZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGluc2VydENvbnRlbnQobGlua3M6IExpbmtNb2RlbFtdLCBpbnNlcnRJbmRleDogbnVtYmVyLCB0ZXh0TGVuZ3RoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgbGluayBvZiBsaW5rcykge1xuICAgICAgICAgICAgaWYgKGxpbmsuc3RhcnRJbmRleCA8IGluc2VydEluZGV4ICYmIGxpbmsuZW5kSW5kZXggPj0gaW5zZXJ0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBsaW5rLmVuZEluZGV4ICs9IHRleHRMZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhJbkxpbmsgPSBpbnNlcnRJbmRleCAtIGxpbmsuc3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBsaW5rLmZvcm1hdHMuZmluZCh4ID0+IHguc3RhcnRJbmRleCA8PSBpbmRleEluTGluayAmJiB4LmVuZEluZGV4ID49IGluZGV4SW5MaW5rKTtcbiAgICAgICAgICAgICAgICBmb3JtYXQuZW5kSW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5rLnN0YXJ0SW5kZXggPj0gaW5zZXJ0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBsaW5rLnN0YXJ0SW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgICAgICBsaW5rLmVuZEluZGV4ICs9IHRleHRMZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgcmVtb3ZlQ29udGVudChsaW5rczogTGlua01vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBsZW5ndGggPSBlbmRJbmRleCAtIHN0YXJ0SW5kZXggKyAxO1xuICAgICAgICBmb3IgKGxldCBpID0gbGlua3MubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChsaW5rc1tpXS5zdGFydEluZGV4ID49IHN0YXJ0SW5kZXggJiYgbGlua3NbaV0uZW5kSW5kZXggPD0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBsaW5rcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZW5kSW5kZXggPCBsaW5rc1tpXS5zdGFydEluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uc3RhcnRJbmRleCAtPSBsZW5ndGg7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uZW5kSW5kZXggLT0gbGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmtzW2ldLnN0YXJ0SW5kZXggPD0gc3RhcnRJbmRleCAmJiBsaW5rc1tpXS5lbmRJbmRleCA+PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5MaW5rID0gc3RhcnRJbmRleCAtIGxpbmtzW2ldLnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSW5MaW5rID0gZW5kSW5kZXggLSBsaW5rc1tpXS5zdGFydEluZGV4O1xuICAgICAgICAgICAgICAgIGxpbmtzW2ldLmVuZEluZGV4IC09IGxlbmd0aDtcbiAgICAgICAgICAgICAgICBGb3JtYXRPcGVyYXRpb25zSGVscGVyLnJlbW92ZUNvbnRlbnQobGlua3NbaV0uZm9ybWF0cywgc3RhcnRJbkxpbmssIGVuZEluTGluayk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGlua3NbaV0uc3RhcnRJbmRleCA+PSBzdGFydEluZGV4ICYmIGxpbmtzW2ldLnN0YXJ0SW5kZXggPD0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJbkxpbmsgPSBlbmRJbmRleCAtIGxpbmtzW2ldLnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uc3RhcnRJbmRleCA9IHN0YXJ0SW5kZXg7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uZW5kSW5kZXggLT0gbGVuZ3RoO1xuICAgICAgICAgICAgICAgIEZvcm1hdE9wZXJhdGlvbnNIZWxwZXIucmVtb3ZlQ29udGVudChsaW5rc1tpXS5mb3JtYXRzLCAwLCBlbmRJbkxpbmspO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmtzW2ldLmVuZEluZGV4ID49IHN0YXJ0SW5kZXggJiYgbGlua3NbaV0uZW5kSW5kZXggPD0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydEluTGluayA9IHN0YXJ0SW5kZXggLSBsaW5rc1tpXS5zdGFydEluZGV4O1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZEluTGluayA9IGxpbmtzW2ldLmZvcm1hdHNbbGlua3NbaV0uZm9ybWF0cy5sZW5ndGggLSAxXS5lbmRJbmRleDtcbiAgICAgICAgICAgICAgICBsaW5rc1tpXS5lbmRJbmRleCA9IHN0YXJ0SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIEZvcm1hdE9wZXJhdGlvbnNIZWxwZXIucmVtb3ZlQ29udGVudChsaW5rc1tpXS5mb3JtYXRzLCBzdGFydEluTGluaywgZW5kSW5MaW5rKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZXN0b3JlKGxpbmtzOiBMaW5rTW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb250ZW50TGVuZ3RoOiBudW1iZXIsIG5ld0xpbmtzOiBMaW5rTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmluc2VydENvbnRlbnQobGlua3MsIHN0YXJ0SW5kZXgsIGNvbnRlbnRMZW5ndGgpO1xuICAgICAgICBsZXQgaW5kZXhJbkVsZW1lbnRzID0gbGlua3MuZmluZEluZGV4KHggPT4geC5zdGFydEluZGV4ID49IHN0YXJ0SW5kZXgpO1xuICAgICAgICBpbmRleEluRWxlbWVudHMgPSBpbmRleEluRWxlbWVudHMgPT09IC0xID8gbGlua3MubGVuZ3RoIDogaW5kZXhJbkVsZW1lbnRzO1xuICAgICAgICBsaW5rcy5zcGxpY2UoaW5kZXhJbkVsZW1lbnRzLCAwLCAuLi5uZXdMaW5rcyk7XG4gICAgICAgIHRoaXMubWVyZ2UobGlua3MsIHN0YXJ0SW5kZXggLSAxLCBzdGFydEluZGV4ICsgY29udGVudExlbmd0aCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlc3RvcmVGb3JtYXRzKGxpbmtzOiBMaW5rTW9kZWxbXSwgZm9ybWF0czogRm9ybWF0TW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmb3JtYXRzLmZvckVhY2goeCA9PiB0aGlzLmFwcGx5KGxpbmtzLCB4LnN0YXJ0SW5kZXgsIHguZW5kSW5kZXgsIHgudGV4dFN0eWxlKSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlcGxhY2VDb250ZW50KGxpbmtzOiBMaW5rTW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUNvbnRlbnQobGlua3MsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICAgICAgdGhpcy5pbnNlcnRDb250ZW50KGxpbmtzLCBzdGFydEluZGV4LCBsZW5ndGgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBhcHBseShsaW5rczogTGlua01vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc3R5bGU6IFRleHRTdHlsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGxpbmsgb2YgbGlua3MpIHtcbiAgICAgICAgICAgIGlmIChsaW5rLnN0YXJ0SW5kZXggPiBlbmRJbmRleCB8fCBsaW5rLmVuZEluZGV4IDwgc3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0SW5kZXggPiBsaW5rLnN0YXJ0SW5kZXggPyBzdGFydEluZGV4IC0gbGluay5zdGFydEluZGV4IDogMDtcbiAgICAgICAgICAgIEZvcm1hdE9wZXJhdGlvbnNIZWxwZXIuYXBwbHkobGluay5mb3JtYXRzLCBzdGFydCwgZW5kSW5kZXggLSBsaW5rLnN0YXJ0SW5kZXgsIHN0eWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG1lcmdlKGxpbmtzOiBMaW5rTW9kZWxbXSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlyc3RJbmRleCA9IGxpbmtzLmZpbmRJbmRleCh4ID0+IHguZW5kSW5kZXggPj0gc3RhcnQpO1xuICAgICAgICBpZiAoZmlyc3RJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICAgICAgICBpZiAobGluay5zdGFydEluZGV4IDw9IHN0YXJ0ICYmIGxpbmsuZW5kSW5kZXggPj0gZW5kKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TGluayA9IGxpbmtzW2ZpcnN0SW5kZXggKyAxXTtcbiAgICAgICAgICAgICAgICBuZXdMaW5rLmZvcm1hdHMuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgeC5zdGFydEluZGV4ICs9IG5ld0xpbmsuc3RhcnRJbmRleCAtIGxpbmsuc3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgeC5lbmRJbmRleCArPSBuZXdMaW5rLnN0YXJ0SW5kZXggLSBsaW5rLnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCB7IHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB0ZXh0U3R5bGUgfSBvZiBuZXdMaW5rLmZvcm1hdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgRm9ybWF0T3BlcmF0aW9uc0hlbHBlci5hcHBseShsaW5rLmZvcm1hdHMsIHN0YXJ0SW5kZXgsIGVuZEluZGV4IC0gc3RhcnRJbmRleCArIDEsIHRleHRTdHlsZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGlua3Muc3BsaWNlKGZpcnN0SW5kZXggKyAxLCAxKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFzdEluZGV4ID0gZmlyc3RJbmRleDtcbiAgICAgICAgd2hpbGUgKGxhc3RJbmRleCA8IGxpbmtzLmxlbmd0aCAtIDEgJiYgbGlua3NbbGFzdEluZGV4XS5lbmRJbmRleCA8IGVuZCkge1xuICAgICAgICAgICAgbGFzdEluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gbGFzdEluZGV4OyBpID4gZmlyc3RJbmRleDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91cyA9IGxpbmtzW2kgLSAxXTtcbiAgICAgICAgICAgIGlmIChwcmV2aW91cy5lbmRJbmRleCArIDEgPT09IGxpbmtzW2ldLnN0YXJ0SW5kZXggJiYgcHJldmlvdXMubGluayA9PT0gbGlua3NbaV0ubGluaykge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzLmVuZEluZGV4ID0gbGlua3NbaV0uZW5kSW5kZXg7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uZm9ybWF0cy5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgICAgICAgICB4LnN0YXJ0SW5kZXggKz0gcHJldmlvdXMuZm9ybWF0c1twcmV2aW91cy5mb3JtYXRzLmxlbmd0aCAtIDFdLmVuZEluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgeC5lbmRJbmRleCArPSBwcmV2aW91cy5mb3JtYXRzW3ByZXZpb3VzLmZvcm1hdHMubGVuZ3RoIC0gMV0uZW5kSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHByZXZpb3VzLmZvcm1hdHMucHVzaCguLi5saW5rc1tpXS5mb3JtYXRzKTtcbiAgICAgICAgICAgICAgICBsaW5rcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgRm9ybWF0U3R5bGVIZWxwZXIubWVyZ2VGb3JtYXRzKHByZXZpb3VzLmZvcm1hdHMsIDAsIHByZXZpb3VzLmVuZEluZGV4IC0gcHJldmlvdXMuc3RhcnRJbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,55 +0,0 @@
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=
@@ -1,114 +0,0 @@
1
- import { DEFAULT_PARAGRAPH_STYLE } from '../../content/constants/editor.const';
2
- import { IndexedElementOperationsHelper } from './indexed-element-operations.helper';
3
- import { ParagraphModel } from '../../../models/generated/paragraph.model';
4
- import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
5
- export class ParagraphOperationsHelper {
6
- static insertContent(paragraphs, text, textIndex) {
7
- IndexedElementOperationsHelper.insertContent(paragraphs, textIndex, text.length);
8
- this.insertParagraphsFromText(paragraphs, text, textIndex);
9
- }
10
- static replace(paragraphs, text, startIndex, endIndex) {
11
- IndexedElementOperationsHelper.replaceContent(paragraphs, startIndex, endIndex, text.length);
12
- this.insertParagraphsFromText(paragraphs, text, startIndex);
13
- }
14
- static insertParagraphsFromText(paragraphs, text, textIndex) {
15
- const parentParagraph = paragraphs.find(x => x.insertIndex >= textIndex);
16
- const createdParagraphs = [...text.matchAll(/\n/g)].map(x => new ParagraphModel({
17
- insertIndex: x.index + textIndex,
18
- paragraphStyle: parentParagraph?.paragraphStyle ?? DEFAULT_PARAGRAPH_STYLE
19
- }));
20
- const index = parentParagraph !== null ? paragraphs.findIndex(x => x === parentParagraph) : 0;
21
- paragraphs.splice(index, 0, ...createdParagraphs);
22
- }
23
- static insertParagraphsFromModel(paragraphs, insertIndex) {
24
- const currentParagraph = paragraphs
25
- .slice()
26
- .sort((a, b) => a.insertIndex - b.insertIndex)
27
- .find(x => x.insertIndex >= insertIndex);
28
- const previousParagraph = paragraphs
29
- .slice()
30
- .sort((a, b) => b.insertIndex - a.insertIndex)
31
- .find(x => x.insertIndex < currentParagraph.insertIndex);
32
- const currentParagraphIndex = paragraphs.findIndex(x => x === currentParagraph);
33
- let createdParagraphs;
34
- if (insertIndex === 0 || previousParagraph?.insertIndex === insertIndex - 1) {
35
- createdParagraphs = [new ParagraphModel({ insertIndex, paragraphStyle: DEFAULT_PARAGRAPH_STYLE })];
36
- IndexedElementOperationsHelper.insertContent(paragraphs, createdParagraphs[0].insertIndex, createdParagraphs.length);
37
- paragraphs.splice(currentParagraphIndex, 0, ...createdParagraphs);
38
- }
39
- else if (currentParagraph.insertIndex === insertIndex) {
40
- createdParagraphs = [new ParagraphModel({ insertIndex: insertIndex + 1, paragraphStyle: currentParagraph.paragraphStyle })];
41
- IndexedElementOperationsHelper.insertContent(paragraphs, createdParagraphs[0].insertIndex, createdParagraphs.length);
42
- paragraphs.splice(currentParagraphIndex + 1, 0, ...createdParagraphs);
43
- }
44
- else {
45
- createdParagraphs = [
46
- new ParagraphModel({ insertIndex, paragraphStyle: currentParagraph.paragraphStyle }),
47
- new ParagraphModel({ insertIndex: insertIndex + 1, paragraphStyle: currentParagraph.paragraphStyle })
48
- ];
49
- IndexedElementOperationsHelper.insertContent(paragraphs, currentParagraph.insertIndex, createdParagraphs.length);
50
- paragraphs.splice(currentParagraphIndex, 0, ...createdParagraphs);
51
- }
52
- return createdParagraphs;
53
- }
54
- static restoreParagraphs(paragraphs, paragraphsToRestore) {
55
- for (const paragraph of paragraphsToRestore) {
56
- this.applySingle(paragraphs, paragraph.insertIndex, paragraph.paragraphStyle);
57
- }
58
- }
59
- static restoreNumberingParagraphs(paragraphs, paragraphsToRestore) {
60
- const oldNumberingIds = [];
61
- for (const paragraphToRestore of paragraphsToRestore) {
62
- const paragraph = paragraphs.find(x => x.insertIndex === paragraphToRestore.insertIndex);
63
- if (paragraph.paragraphStyle.numberingId !== null && !oldNumberingIds.includes(paragraph.paragraphStyle.numberingId)) {
64
- oldNumberingIds.push(paragraph.paragraphStyle.numberingId);
65
- }
66
- paragraph.paragraphStyle = new ParagraphStyleModel({ ...paragraphToRestore.paragraphStyle });
67
- }
68
- return oldNumberingIds;
69
- }
70
- static applySingle(paragraphs, index, style) {
71
- const paragraph = paragraphs.find(x => x.insertIndex === index);
72
- paragraph.paragraphStyle = new ParagraphStyleModel({ ...style });
73
- }
74
- static applyNumbering(paragraphs, startIndex, endIndex, numberingId) {
75
- const oldNumberingIds = [];
76
- let index = paragraphs.findIndex(x => x.insertIndex >= startIndex);
77
- while (index < paragraphs.length && paragraphs[index].insertIndex <= endIndex) {
78
- const paragraphNumberingId = paragraphs[index].paragraphStyle.numberingId;
79
- if (paragraphNumberingId !== null && !oldNumberingIds.includes(paragraphNumberingId)) {
80
- oldNumberingIds.push(paragraphNumberingId);
81
- }
82
- paragraphs[index].paragraphStyle.numberingId = numberingId;
83
- if (numberingId === null) {
84
- paragraphs[index].paragraphStyle.numberingLevel = null;
85
- }
86
- else {
87
- paragraphs[index].paragraphStyle.numberingLevel ??= 0;
88
- }
89
- index++;
90
- }
91
- return oldNumberingIds;
92
- }
93
- static apply(paragraphs, startIndex, endIndex, style) {
94
- let index = paragraphs.findIndex(x => x.insertIndex >= startIndex);
95
- for (; index < paragraphs.length && paragraphs[index].insertIndex <= endIndex; index++) {
96
- this.applyParagraphStyles(paragraphs[index].paragraphStyle, style);
97
- }
98
- }
99
- static applyParagraphStyles(target, value) {
100
- target.alignment = value.alignment ?? target.alignment;
101
- target.backgroundColor = value.backgroundColor ?? target.backgroundColor;
102
- target.headingStyleId = value.headingStyleId ?? target.headingStyleId;
103
- target.indentFirstLine = value.indentFirstLine ?? target.indentFirstLine;
104
- target.indentHanging = value.indentHanging ?? target.indentHanging;
105
- target.indentLeft = value.indentLeft ?? target.indentLeft;
106
- target.indentRight = value.indentRight ?? target.indentRight;
107
- target.lineSpacing = value.lineSpacing ?? target.lineSpacing;
108
- target.numberingId = value.numberingId ?? target.numberingId;
109
- target.numberingLevel = value.numberingLevel ?? target.numberingLevel;
110
- target.spaceAfter = value.spaceAfter ?? target.spaceAfter;
111
- target.spaceBefore = value.spaceBefore ?? target.spaceBefore;
112
- }
113
- }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLW9wZXJhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL29wZXJhdGlvbnMvaGVscGVycy9wYXJhZ3JhcGgtb3BlcmF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXRGLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUE0QixFQUFFLElBQVksRUFBRSxTQUFpQjtRQUM5RSw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBNEIsRUFBRSxJQUFZLEVBQUUsVUFBa0IsRUFBRSxRQUFnQjtRQUMzRiw4QkFBOEIsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsVUFBNEIsRUFBRSxJQUFZLEVBQUUsU0FBaUI7UUFDekYsTUFBTSxlQUFl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LEtBQUssQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUN6RSxNQUFNLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNuRSxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUMxRCxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3RCxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3RCxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3RCxNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUN0RSxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUMxRCxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNqRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRSB9IGZyb20gJy4uLy4uL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIgfSBmcm9tICcuL2luZGV4ZWQtZWxlbWVudC1vcGVyYXRpb25zLmhlbHBlcic7XG5pbXBvcnQgeyBQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLm1vZGVsJztcbmltcG9ydCB7IFBhcmFncmFwaFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3BhcmFncmFwaC1zdHlsZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBQYXJhZ3JhcGhPcGVyYXRpb25zSGVscGVyIHtcbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdLCB0ZXh0OiBzdHJpbmcsIHRleHRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIEluZGV4ZWRFbGVtZW50T3BlcmF0aW9uc0hlbHBlci5pbnNlcnRDb250ZW50KHBhcmFncmFwaHMsIHRleHRJbmRleCwgdGV4dC5sZW5ndGgpO1xuICAgICAgICB0aGlzLmluc2VydFBhcmFncmFwaHNGcm9tVGV4dChwYXJhZ3JhcGhzLCB0ZXh0LCB0ZXh0SW5kZXgpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXBsYWNlKHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sIHRleHQ6IHN0cmluZywgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIEluZGV4ZWRFbGVtZW50T3BlcmF0aW9uc0hlbHBlci5yZXBsYWNlQ29udGVudChwYXJhZ3JhcGhzLCBzdGFydEluZGV4LCBlbmRJbmRleCwgdGV4dC5sZW5ndGgpO1xuICAgICAgICB0aGlzLmluc2VydFBhcmFncmFwaHNGcm9tVGV4dChwYXJhZ3JhcGhzLCB0ZXh0LCBzdGFydEluZGV4KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgaW5zZXJ0UGFyYWdyYXBoc0Zyb21UZXh0KHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sIHRleHQ6IHN0cmluZywgdGV4dEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50UGFyYWdyYXBoID0gcGFyYWdyYXBocy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA+PSB0ZXh0SW5kZXgpO1xuICAgICAgICBjb25zdCBjcmVhdGVkUGFyYWdyYXBocyA9IFsuLi50ZXh0Lm1hdGNoQWxsKC9cXG4vZyldLm1hcChcbiAgICAgICAgICAgIHggPT5cbiAgICAgICAgICAgICAgICBuZXcgUGFyYWdyYXBoTW9kZWwoe1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRJbmRleDogeC5pbmRleCArIHRleHRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGU6IHBhcmVudFBhcmFncmFwaD8ucGFyYWdyYXBoU3R5bGUgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBpbmRleCA9IHBhcmVudFBhcmFncmFwaCAhPT0gbnVsbCA/IHBhcmFncmFwaHMuZmluZEluZGV4KHggPT4geCA9PT0gcGFyZW50UGFyYWdyYXBoKSA6IDA7XG4gICAgICAgIHBhcmFncmFwaHMuc3BsaWNlKGluZGV4LCAwLCAuLi5jcmVhdGVkUGFyYWdyYXBocyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGluc2VydFBhcmFncmFwaHNGcm9tTW9kZWwocGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSwgaW5zZXJ0SW5kZXg6IG51bWJlcik6IFBhcmFncmFwaE1vZGVsW10ge1xuICAgICAgICBjb25zdCBjdXJyZW50UGFyYWdyYXBoID0gcGFyYWdyYXBoc1xuICAgICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmluc2VydEluZGV4IC0gYi5pbnNlcnRJbmRleClcbiAgICAgICAgICAgIC5maW5kKHggPT4geC5pbnNlcnRJbmRleCA+PSBpbnNlcnRJbmRleCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFyYWdyYXBoID0gcGFyYWdyYXBoc1xuICAgICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLmluc2VydEluZGV4IC0gYS5pbnNlcnRJbmRleClcbiAgICAgICAgICAgIC5maW5kKHggPT4geC5pbnNlcnRJbmRleCA8IGN1cnJlbnRQYXJhZ3JhcGguaW5zZXJ0SW5kZXgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UGFyYWdyYXBoSW5kZXggPSBwYXJhZ3JhcGhzLmZpbmRJbmRleCh4ID0+IHggPT09IGN1cnJlbnRQYXJhZ3JhcGgpO1xuICAgICAgICBsZXQgY3JlYXRlZFBhcmFncmFwaHMhOiBQYXJhZ3JhcGhNb2RlbFtdO1xuICAgICAgICBpZiAoaW5zZXJ0SW5kZXggPT09IDAgfHwgcHJldmlvdXNQYXJhZ3JhcGg/Lmluc2VydEluZGV4ID09PSBpbnNlcnRJbmRleCAtIDEpIHtcbiAgICAgICAgICAgIGNyZWF0ZWRQYXJhZ3JhcGhzID0gW25ldyBQYXJhZ3JhcGhNb2RlbCh7IGluc2VydEluZGV4LCBwYXJhZ3JhcGhTdHlsZTogREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUgfSldO1xuICAgICAgICAgICAgSW5kZXhlZEVsZW1lbnRPcGVyYXRpb25zSGVscGVyLmluc2VydENvbnRlbnQocGFyYWdyYXBocywgY3JlYXRlZFBhcmFncmFwaHNbMF0uaW5zZXJ0SW5kZXgsIGNyZWF0ZWRQYXJhZ3JhcGhzLmxlbmd0aCk7XG4gICAgICAgICAgICBwYXJhZ3JhcGhzLnNwbGljZShjdXJyZW50UGFyYWdyYXBoSW5kZXgsIDAsIC4uLmNyZWF0ZWRQYXJhZ3JhcGhzKTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UGFyYWdyYXBoLmluc2VydEluZGV4ID09PSBpbnNlcnRJbmRleCkge1xuICAgICAgICAgICAgY3JlYXRlZFBhcmFncmFwaHMgPSBbbmV3IFBhcmFncmFwaE1vZGVsKHsgaW5zZXJ0SW5kZXg6IGluc2VydEluZGV4ICsgMSwgcGFyYWdyYXBoU3R5bGU6IGN1cnJlbnRQYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUgfSldO1xuICAgICAgICAgICAgSW5kZXhlZEVsZW1lbnRPcGVyYXRpb25zSGVscGVyLmluc2VydENvbnRlbnQocGFyYWdyYXBocywgY3JlYXRlZFBhcmFncmFwaHNbMF0uaW5zZXJ0SW5kZXgsIGNyZWF0ZWRQYXJhZ3JhcGhzLmxlbmd0aCk7XG4gICAgICAgICAgICBwYXJhZ3JhcGhzLnNwbGljZShjdXJyZW50UGFyYWdyYXBoSW5kZXggKyAxLCAwLCAuLi5jcmVhdGVkUGFyYWdyYXBocyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjcmVhdGVkUGFyYWdyYXBocyA9IFtcbiAgICAgICAgICAgICAgICBuZXcgUGFyYWdyYXBoTW9kZWwoeyBpbnNlcnRJbmRleCwgcGFyYWdyYXBoU3R5bGU6IGN1cnJlbnRQYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUgfSksXG4gICAgICAgICAgICAgICAgbmV3IFBhcmFncmFwaE1vZGVsKHsgaW5zZXJ0SW5kZXg6IGluc2VydEluZGV4ICsgMSwgcGFyYWdyYXBoU3R5bGU6IGN1cnJlbnRQYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUgfSlcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIuaW5zZXJ0Q29udGVudChwYXJhZ3JhcGhzLCBjdXJyZW50UGFyYWdyYXBoLmluc2VydEluZGV4LCBjcmVhdGVkUGFyYWdyYXBocy5sZW5ndGgpO1xuICAgICAgICAgICAgcGFyYWdyYXBocy5zcGxpY2UoY3VycmVudFBhcmFncmFwaEluZGV4LCAwLCAuLi5jcmVhdGVkUGFyYWdyYXBocyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRQYXJhZ3JhcGhzO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXN0b3JlUGFyYWdyYXBocyhwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdLCBwYXJhZ3JhcGhzVG9SZXN0b3JlOiBQYXJhZ3JhcGhNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgcGFyYWdyYXBoIG9mIHBhcmFncmFwaHNUb1Jlc3RvcmUpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTaW5nbGUocGFyYWdyYXBocywgcGFyYWdyYXBoLmluc2VydEluZGV4LCBwYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIHJlc3RvcmVOdW1iZXJpbmdQYXJhZ3JhcGhzKHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sIHBhcmFncmFwaHNUb1Jlc3RvcmU6IFBhcmFncmFwaE1vZGVsW10pOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbnN0IG9sZE51bWJlcmluZ0lkcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHBhcmFncmFwaFRvUmVzdG9yZSBvZiBwYXJhZ3JhcGhzVG9SZXN0b3JlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGggPSBwYXJhZ3JhcGhzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBwYXJhZ3JhcGhUb1Jlc3RvcmUuaW5zZXJ0SW5kZXgpO1xuICAgICAgICAgICAgaWYgKHBhcmFncmFwaC5wYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdJZCAhPT0gbnVsbCAmJiAhb2xkTnVtYmVyaW5nSWRzLmluY2x1ZGVzKHBhcmFncmFwaC5wYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdJZCkpIHtcbiAgICAgICAgICAgICAgICBvbGROdW1iZXJpbmdJZHMucHVzaChwYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUubnVtYmVyaW5nSWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUgPSBuZXcgUGFyYWdyYXBoU3R5bGVNb2RlbCh7IC4uLnBhcmFncmFwaFRvUmVzdG9yZS5wYXJhZ3JhcGhTdHlsZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvbGROdW1iZXJpbmdJZHM7XG4gICAgfVxuXG4gICAgc3RhdGljIGFwcGx5U2luZ2xlKHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sIGluZGV4OiBudW1iZXIsIHN0eWxlOiBQYXJhZ3JhcGhTdHlsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaCA9IHBhcmFncmFwaHMuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPT09IGluZGV4KTtcbiAgICAgICAgcGFyYWdyYXBoLnBhcmFncmFwaFN0eWxlID0gbmV3IFBhcmFncmFwaFN0eWxlTW9kZWwoeyAuLi5zdHlsZSB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXBwbHlOdW1iZXJpbmcocGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCBudW1iZXJpbmdJZD86IG51bWJlcik6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3Qgb2xkTnVtYmVyaW5nSWRzID0gW107XG4gICAgICAgIGxldCBpbmRleCA9IHBhcmFncmFwaHMuZmluZEluZGV4KHggPT4geC5pbnNlcnRJbmRleCA+PSBzdGFydEluZGV4KTtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgcGFyYWdyYXBocy5sZW5ndGggJiYgcGFyYWdyYXBoc1tpbmRleF0uaW5zZXJ0SW5kZXggPD0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFncmFwaE51bWJlcmluZ0lkID0gcGFyYWdyYXBoc1tpbmRleF0ucGFyYWdyYXBoU3R5bGUubnVtYmVyaW5nSWQ7XG4gICAgICAgICAgICBpZiAocGFyYWdyYXBoTnVtYmVyaW5nSWQgIT09IG51bGwgJiYgIW9sZE51bWJlcmluZ0lkcy5pbmNsdWRlcyhwYXJhZ3JhcGhOdW1iZXJpbmdJZCkpIHtcbiAgICAgICAgICAgICAgICBvbGROdW1iZXJpbmdJZHMucHVzaChwYXJhZ3JhcGhOdW1iZXJpbmdJZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmFncmFwaHNbaW5kZXhdLnBhcmFncmFwaFN0eWxlLm51bWJlcmluZ0lkID0gbnVtYmVyaW5nSWQ7XG4gICAgICAgICAgICBpZiAobnVtYmVyaW5nSWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGhzW2luZGV4XS5wYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdMZXZlbCA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFncmFwaHNbaW5kZXhdLnBhcmFncmFwaFN0eWxlLm51bWJlcmluZ0xldmVsID8/PSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvbGROdW1iZXJpbmdJZHM7XG4gICAgfVxuXG4gICAgc3RhdGljIGFwcGx5KHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc3R5bGU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbGV0IGluZGV4ID0gcGFyYWdyYXBocy5maW5kSW5kZXgoeCA9PiB4Lmluc2VydEluZGV4ID49IHN0YXJ0SW5kZXgpO1xuICAgICAgICBmb3IgKDsgaW5kZXggPCBwYXJhZ3JhcGhzLmxlbmd0aCAmJiBwYXJhZ3JhcGhzW2luZGV4XS5pbnNlcnRJbmRleCA8PSBlbmRJbmRleDsgaW5kZXgrKykge1xuICAgICAgICAgICAgdGhpcy5hcHBseVBhcmFncmFwaFN0eWxlcyhwYXJhZ3JhcGhzW2luZGV4XS5wYXJhZ3JhcGhTdHlsZSwgc3R5bGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGFwcGx5UGFyYWdyYXBoU3R5bGVzKHRhcmdldDogUGFyYWdyYXBoU3R5bGVNb2RlbCwgdmFsdWU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGFyZ2V0LmFsaWdubWVudCA9IHZhbHVlLmFsaWdubWVudCA/PyB0YXJnZXQuYWxpZ25tZW50O1xuICAgICAgICB0YXJnZXQuYmFja2dyb3VuZENvbG9yID0gdmFsdWUuYmFja2dyb3VuZENvbG9yID8/IHRhcmdldC5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgIHRhcmdldC5oZWFkaW5nU3R5bGVJZCA9IHZhbHVlLmhlYWRpbmdTdHlsZUlkID8/IHRhcmdldC5oZWFkaW5nU3R5bGVJZDtcbiAgICAgICAgdGFyZ2V0LmluZGVudEZpcnN0TGluZSA9IHZhbHVlLmluZGVudEZpcnN0TGluZSA/PyB0YXJnZXQuaW5kZW50Rmlyc3RMaW5lO1xuICAgICAgICB0YXJnZXQuaW5kZW50SGFuZ2luZyA9IHZhbHVlLmluZGVudEhhbmdpbmcgPz8gdGFyZ2V0LmluZGVudEhhbmdpbmc7XG4gICAgICAgIHRhcmdldC5pbmRlbnRMZWZ0ID0gdmFsdWUuaW5kZW50TGVmdCA/PyB0YXJnZXQuaW5kZW50TGVmdDtcbiAgICAgICAgdGFyZ2V0LmluZGVudFJpZ2h0ID0gdmFsdWUuaW5kZW50UmlnaHQgPz8gdGFyZ2V0LmluZGVudFJpZ2h0O1xuICAgICAgICB0YXJnZXQubGluZVNwYWNpbmcgPSB2YWx1ZS5saW5lU3BhY2luZyA/PyB0YXJnZXQubGluZVNwYWNpbmc7XG4gICAgICAgIHRhcmdldC5udW1iZXJpbmdJZCA9IHZhbHVlLm51bWJlcmluZ0lkID8/IHRhcmdldC5udW1iZXJpbmdJZDtcbiAgICAgICAgdGFyZ2V0Lm51bWJlcmluZ0xldmVsID0gdmFsdWUubnVtYmVyaW5nTGV2ZWwgPz8gdGFyZ2V0Lm51bWJlcmluZ0xldmVsO1xuICAgICAgICB0YXJnZXQuc3BhY2VBZnRlciA9IHZhbHVlLnNwYWNlQWZ0ZXIgPz8gdGFyZ2V0LnNwYWNlQWZ0ZXI7XG4gICAgICAgIHRhcmdldC5zcGFjZUJlZm9yZSA9IHZhbHVlLnNwYWNlQmVmb3JlID8/IHRhcmdldC5zcGFjZUJlZm9yZTtcbiAgICB9XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { IndexedElementOperationsHelper } from './indexed-element-operations.helper';
2
- import { TabModel } from '../../../models/generated/tab.model';
3
- export class TabOperationsHelper {
4
- static insertContent(elements, insertIndex) {
5
- IndexedElementOperationsHelper.insertContent(elements, insertIndex, 1);
6
- const element = new TabModel({ insertIndex });
7
- const index = elements.findIndex(x => x.insertIndex > element.insertIndex);
8
- if (index < 0) {
9
- elements.push(element);
10
- }
11
- else {
12
- elements.splice(index, 0, element);
13
- }
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLW9wZXJhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL29wZXJhdGlvbnMvaGVscGVycy90YWItb3BlcmF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRS9ELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFvQixFQUFFLFdBQW1CO1FBQzFELDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0UsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQjthQUFNO1lBQ0gsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZXhlZEVsZW1lbnRPcGVyYXRpb25zSGVscGVyIH0gZnJvbSAnLi9pbmRleGVkLWVsZW1lbnQtb3BlcmF0aW9ucy5oZWxwZXInO1xuaW1wb3J0IHsgVGFiTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYi5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBUYWJPcGVyYXRpb25zSGVscGVyIHtcbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChlbGVtZW50czogVGFiTW9kZWxbXSwgaW5zZXJ0SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBJbmRleGVkRWxlbWVudE9wZXJhdGlvbnNIZWxwZXIuaW5zZXJ0Q29udGVudChlbGVtZW50cywgaW5zZXJ0SW5kZXgsIDEpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbmV3IFRhYk1vZGVsKHsgaW5zZXJ0SW5kZXggfSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudHMuZmluZEluZGV4KHggPT4geC5pbnNlcnRJbmRleCA+IGVsZW1lbnQuaW5zZXJ0SW5kZXgpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAwLCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==