@talrace/ngx-noder 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/README.md +5 -4
  2. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +61 -0
  3. package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +7 -0
  4. package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +47 -0
  5. package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +32 -0
  6. package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +64 -0
  7. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +89 -0
  8. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +22 -0
  9. package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +111 -0
  10. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +37 -0
  11. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +49 -0
  12. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +90 -0
  13. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +81 -0
  14. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +28 -0
  15. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +22 -0
  16. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +53 -0
  17. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +18 -0
  18. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +27 -0
  19. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +71 -0
  20. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +94 -0
  21. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +24 -0
  22. package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +65 -0
  23. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +84 -0
  24. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +90 -0
  25. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +117 -0
  26. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +8 -0
  27. package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/numbering-templates.const.mjs +6 -6
  28. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +157 -0
  29. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +8 -0
  30. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +11 -0
  31. package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.mjs +1 -1
  32. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +6 -0
  33. package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +34 -0
  34. package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +26 -0
  35. package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +60 -0
  36. package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +55 -0
  37. package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +54 -0
  38. package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +84 -0
  39. package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +123 -0
  40. package/esm2022/lib/editor/components/edges/edge-element.model.mjs +9 -0
  41. package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +6 -0
  42. package/esm2022/lib/editor/components/edges/edge.component.mjs +99 -0
  43. package/esm2022/lib/editor/components/edges/edges.mjs +108 -0
  44. package/esm2022/lib/editor/components/edges/page-type.enum.mjs +7 -0
  45. package/esm2022/lib/editor/components/editor.component.mjs +112 -0
  46. package/esm2022/lib/editor/components/external-element/external-element.service.mjs +6 -0
  47. package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +4 -0
  48. package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +2 -0
  49. package/esm2022/lib/editor/components/external-element/external.component.mjs +41 -0
  50. package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +9 -0
  51. package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +11 -0
  52. package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +15 -0
  53. package/esm2022/lib/editor/components/image/components/image.component.mjs +88 -0
  54. package/esm2022/lib/editor/components/image/image-api.service.mjs +36 -0
  55. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +38 -0
  56. package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +2 -0
  57. package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +19 -0
  58. package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +12 -0
  59. package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +106 -0
  60. package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +2 -0
  61. package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +52 -0
  62. package/esm2022/lib/editor/components/image/size.mjs +2 -0
  63. package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +59 -0
  64. package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +18 -0
  65. package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +43 -0
  66. package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +2 -0
  67. package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +3 -0
  68. package/esm2022/lib/editor/components/shared/custom-content.mjs +2 -0
  69. package/esm2022/lib/editor/components/shared/services/component.service.mjs +64 -0
  70. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +163 -0
  71. package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +55 -0
  72. package/esm2022/lib/editor/components/tab/tab.component.mjs +44 -0
  73. package/esm2022/lib/editor/components/tab/tab.helper.mjs +6 -0
  74. package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +118 -0
  75. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +97 -0
  76. package/esm2022/lib/editor/components/table/components/table.component.mjs +401 -0
  77. package/esm2022/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.mjs +1 -1
  78. package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +8 -0
  79. package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +6 -0
  80. package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +18 -0
  81. package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +9 -0
  82. package/esm2022/lib/editor/components/table/models/row-data.model.mjs +8 -0
  83. package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +7 -0
  84. package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +74 -0
  85. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +366 -0
  86. package/esm2022/lib/editor/content/constants/display-values.const.mjs +8 -0
  87. package/esm2022/lib/editor/content/constants/document-info.const.mjs +13 -0
  88. package/esm2022/lib/editor/content/constants/editor.const.mjs +62 -0
  89. package/esm2022/lib/editor/content/contents.interface.mjs +2 -0
  90. package/esm2022/lib/editor/content/display-data/display-token.model.mjs +12 -0
  91. package/esm2022/lib/editor/content/display-data/document.mjs +134 -0
  92. package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +10 -0
  93. package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +11 -0
  94. package/esm2022/lib/editor/content/display-data/indent.model.mjs +9 -0
  95. package/esm2022/lib/editor/content/display-data/line-info.model.mjs +9 -0
  96. package/esm2022/lib/editor/content/display-data/lines.mjs +96 -0
  97. package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +226 -0
  98. package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +2 -0
  99. package/esm2022/lib/editor/content/display-data/paragraph.mjs +52 -0
  100. package/esm2022/lib/editor/content/display-data/text-line-info.mjs +34 -0
  101. package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +2 -0
  102. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +96 -0
  103. package/esm2022/lib/{+shared/editor → editor/content}/helpers/format.helper.mjs +1 -1
  104. package/esm2022/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.mjs +1 -1
  105. package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +9 -0
  106. package/esm2022/lib/editor/content/margin.model.mjs +16 -0
  107. package/esm2022/lib/editor/content/page-vertical-data.model.mjs +9 -0
  108. package/esm2022/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.mjs +1 -1
  109. package/esm2022/lib/editor/core/event-emitting.mjs +56 -0
  110. package/esm2022/lib/editor/display/cell.interface.mjs +2 -0
  111. package/esm2022/lib/editor/display/event.helper.mjs +18 -0
  112. package/esm2022/lib/editor/display/layers/cursor.layer.mjs +101 -0
  113. package/esm2022/lib/editor/display/layers/layer.config.mjs +2 -0
  114. package/esm2022/lib/editor/display/layers/pages.layer.mjs +97 -0
  115. package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +7 -0
  116. package/esm2022/lib/editor/display/layers/print.text.layer.mjs +7 -0
  117. package/esm2022/lib/editor/display/layers/selection.layer.mjs +113 -0
  118. package/esm2022/lib/editor/display/layers/text.layer.mjs +203 -0
  119. package/esm2022/lib/editor/display/print/print.helper.mjs +40 -0
  120. package/esm2022/lib/editor/display/print/print.renderer.mjs +67 -0
  121. package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +7 -0
  122. package/esm2022/lib/editor/display/render-changes.interface.mjs +2 -0
  123. package/esm2022/lib/editor/display/render-changes.model.mjs +25 -0
  124. package/esm2022/lib/editor/display/renderer.mjs +206 -0
  125. package/esm2022/lib/editor/display/rendering.helper.mjs +187 -0
  126. package/esm2022/lib/editor/display/renderloop.mjs +26 -0
  127. package/esm2022/lib/editor/display/virtual.renderer.mjs +317 -0
  128. package/esm2022/lib/editor/display/visible-range.interface.mjs +2 -0
  129. package/esm2022/lib/editor/editor.module.mjs +67 -0
  130. package/esm2022/lib/editor/execution/distance.model.mjs +10 -0
  131. package/esm2022/lib/editor/execution/edit.session.mjs +1117 -0
  132. package/esm2022/lib/editor/execution/editor.mjs +1346 -0
  133. package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +18 -0
  134. package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +42 -0
  135. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +64 -0
  136. package/esm2022/lib/editor/execution/helpers/page.helper.mjs +12 -0
  137. package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +41 -0
  138. package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +169 -0
  139. package/esm2022/lib/editor/execution/regulator.service.mjs +198 -0
  140. package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +19 -0
  141. package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +15 -0
  142. package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +8 -0
  143. package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +3 -0
  144. package/esm2022/lib/editor/execution/targeting/session.model.mjs +10 -0
  145. package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +2 -0
  146. package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +2 -0
  147. package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +88 -0
  148. package/esm2022/lib/editor/gadgets/history/operation-history.mjs +206 -0
  149. package/esm2022/lib/editor/gadgets/history/operation.type.mjs +2 -0
  150. package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +7 -0
  151. package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +9 -0
  152. package/esm2022/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.mjs +1 -1
  153. package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +82 -0
  154. package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +7 -0
  155. package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +18 -0
  156. package/esm2022/lib/editor/gadgets/scrollbar.mjs +81 -0
  157. package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +2 -0
  158. package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +2 -0
  159. package/esm2022/lib/editor/gadgets/search/search.mjs +231 -0
  160. package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +5 -0
  161. package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +20 -0
  162. package/esm2022/lib/editor/interaction/base.handler.mjs +19 -0
  163. package/esm2022/lib/editor/interaction/document.handler.mjs +27 -0
  164. package/esm2022/lib/editor/interaction/editor.service.mjs +325 -0
  165. package/esm2022/lib/editor/interaction/input.handler.mjs +149 -0
  166. package/esm2022/lib/{+shared/enums → editor/interaction}/mode.enum.mjs +1 -1
  167. package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +7 -0
  168. package/esm2022/lib/editor/interaction/mouse.handler.mjs +49 -0
  169. package/esm2022/lib/editor/interaction/text-input.mjs +53 -0
  170. package/esm2022/lib/editor/operations/commands.service.mjs +20 -0
  171. package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +32 -0
  172. package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +7 -0
  173. package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +9 -0
  174. package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +15 -0
  175. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +55 -0
  176. package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +19 -0
  177. package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
  178. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +28 -0
  179. package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
  180. package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +114 -0
  181. package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +16 -0
  182. package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +374 -0
  183. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +432 -0
  184. package/esm2022/lib/editor/operations/save-commands.helper.mjs +127 -0
  185. package/esm2022/lib/editor/operations/target-operations.helper.mjs +23 -0
  186. package/esm2022/lib/editor/positioning/alignments.const.mjs +8 -0
  187. package/esm2022/lib/editor/positioning/content.helper.mjs +36 -0
  188. package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +13 -0
  189. package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +2 -0
  190. package/esm2022/lib/editor/positioning/insert-index.interface.mjs +2 -0
  191. package/esm2022/lib/editor/positioning/line-width.helper.mjs +13 -0
  192. package/esm2022/lib/editor/positioning/position.helper.mjs +194 -0
  193. package/esm2022/lib/editor/positioning/range.mjs +94 -0
  194. package/esm2022/lib/editor/positioning/selection.mjs +307 -0
  195. package/esm2022/lib/editor/revision.helper.mjs +91 -0
  196. package/esm2022/lib/models/generated/command.model.mjs +5 -1
  197. package/esm2022/lib/models/generated/insert-paragraph.model.mjs +20 -0
  198. package/esm2022/lib/models/generated/replace.model.mjs +5 -1
  199. package/esm2022/public-api.mjs +36 -33
  200. package/fesm2022/talrace-ngx-noder.mjs +3583 -3278
  201. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  202. package/lib/{+shared → apart-components}/add-link-dialog/add-link-dialog.component.d.ts +1 -1
  203. package/lib/apart-components/add-link-mobile/add-link-mobile.component.d.ts +19 -0
  204. package/lib/{+shared → apart-components}/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  205. package/lib/{+shared → apart-components}/editor-search/editor-search-dialog.component.d.ts +6 -7
  206. package/lib/{+shared → apart-components}/editor-title/editor-title.component.d.ts +4 -3
  207. package/lib/apart-components/editor-title-mobile/editor-title-mobile.component.d.ts +6 -0
  208. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +49 -0
  209. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/color-picker/color-picker.component.d.ts +1 -1
  210. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/font.component.d.ts +2 -2
  211. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/font-size.component.d.ts +1 -1
  212. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/font-style.component.d.ts +1 -1
  213. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/format.component.d.ts +2 -2
  214. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/heading/heading.component.d.ts +1 -1
  215. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/numbering.component.d.ts +3 -3
  216. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/print/print.component.d.ts +1 -1
  217. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/undo-redo.component.d.ts +1 -1
  218. package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/zoom/zoom.component.d.ts +1 -1
  219. package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +36 -0
  220. package/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.d.ts +14 -0
  221. package/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.d.ts +23 -0
  222. package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +26 -0
  223. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +40 -0
  224. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +32 -0
  225. package/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.d.ts +2 -0
  226. package/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.d.ts +6 -0
  227. package/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.d.ts +9 -0
  228. package/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.d.ts +14 -0
  229. package/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.d.ts +38 -0
  230. package/lib/{+shared/editor-toolbar/helpers → apart-components/editor-toolbar/shared}/toolbar-styles.helper.d.ts +2 -2
  231. package/lib/{+shared → apart-components}/insert-table/insert-table.component.d.ts +1 -1
  232. package/lib/apart-components/insert-table-mobile/insert-table-mobile.component.d.ts +30 -0
  233. package/lib/apart-components/text-format-mobile/text-format-mobile.component.d.ts +35 -0
  234. package/lib/{+shared/editor/core/models → editor/components/edges}/edge-element.model.d.ts +1 -1
  235. package/lib/editor/components/edges/edge.component.d.ts +44 -0
  236. package/lib/{+shared/editor/core → editor}/components/edges/edges.d.ts +7 -7
  237. package/lib/{+shared/editor → editor/components}/editor.component.d.ts +10 -7
  238. package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-sidenav.interface.d.ts +1 -1
  239. package/lib/{+shared/editor/custom-components → editor/components}/external-element/external.component.d.ts +4 -4
  240. package/lib/{+shared/editor/custom-components → editor/components}/image/components/image.component.d.ts +4 -4
  241. package/lib/editor/components/image/image-api.service.d.ts +17 -0
  242. package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/resizer.component.d.ts +2 -2
  243. package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-wrapper.d.ts +1 -1
  244. package/lib/{+shared/editor/custom-components → editor/components}/shared/abstract/base.component.d.ts +4 -4
  245. package/lib/editor/components/shared/abstract/destroy.component.d.ts +9 -0
  246. package/lib/{+shared/editor/custom-components/shared/helpers → editor/components/shared}/custom-component.hepler.d.ts +3 -3
  247. package/lib/editor/components/shared/custom-components.interface.d.ts +13 -0
  248. package/lib/editor/components/shared/custom-content.d.ts +5 -0
  249. package/lib/{+shared/editor/custom-components/shared/services/component → editor/components/shared/services}/component.service.d.ts +1 -1
  250. package/lib/{+shared/editor/custom-components/shared/services/custom-content → editor/components/shared/services}/custom-content.service.d.ts +14 -12
  251. package/lib/{+shared/editor/custom-components → editor/components}/tab/tab.component.d.ts +2 -2
  252. package/lib/{+shared/editor/custom-components → editor/components}/table/cell-resizer/cell-resizer.d.ts +1 -1
  253. package/lib/{+shared/editor/custom-components → editor/components}/table/components/table-cell.component.d.ts +10 -10
  254. package/lib/{+shared/editor/custom-components → editor/components}/table/components/table.component.d.ts +8 -8
  255. package/lib/{+shared/editor/custom-components → editor/components}/table/overlay-menu/overlay-menu.component.d.ts +2 -2
  256. package/lib/{+shared/editor/custom-components → editor/components}/table/selection/table-selection.d.ts +3 -3
  257. package/lib/{+shared/editor/core → editor/content}/constants/editor.const.d.ts +3 -3
  258. package/lib/editor/content/contents.interface.d.ts +22 -0
  259. package/lib/{+shared/editor/core/models → editor/content/display-data}/display-token.model.d.ts +1 -1
  260. package/lib/{+shared/editor/core → editor/content/display-data}/document.d.ts +9 -9
  261. package/lib/{+shared/editor/core/models → editor/content/display-data}/format-ext.model.d.ts +1 -1
  262. package/lib/{+shared/editor/execution/models → editor/content/display-data}/general-properties.model.d.ts +1 -1
  263. package/lib/{+shared/editor/core/layers → editor/content/display-data}/lines.d.ts +1 -1
  264. package/lib/{+shared/editor/core/paging → editor/content/display-data}/pages.wrap.d.ts +13 -13
  265. package/lib/{+shared/editor/core/paging → editor/content/display-data}/paragraph.d.ts +4 -4
  266. package/lib/{+shared/editor/core/paging → editor/content/display-data}/text-line-info.d.ts +2 -2
  267. package/lib/editor/content/helpers/content-style.helper.d.ts +11 -0
  268. package/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.d.ts +1 -1
  269. package/lib/{+shared/editor/core/paging → editor/content}/page-vertical-data.model.d.ts +1 -1
  270. package/lib/{+shared/editor/core/base → editor/core}/event-emitting.d.ts +0 -5
  271. package/lib/{+shared/editor/core → editor/display}/layers/cursor.layer.d.ts +7 -8
  272. package/lib/{+shared/editor/core/interfaces → editor/display/layers}/layer.config.d.ts +2 -2
  273. package/lib/{+shared/editor/core → editor/display}/layers/pages.layer.d.ts +5 -6
  274. package/lib/editor/display/layers/print.text.layer.d.ts +4 -0
  275. package/lib/{+shared/editor/core → editor/display}/layers/selection.layer.d.ts +5 -6
  276. package/lib/editor/display/layers/text.layer.d.ts +34 -0
  277. package/lib/{+shared/helpers → editor/display/print}/print.helper.d.ts +3 -3
  278. package/lib/editor/display/print/print.renderer.d.ts +23 -0
  279. package/lib/{+shared/editor/core/helpers → editor/display/print}/print.rendering.helper.d.ts +2 -2
  280. package/lib/{+shared/editor/core/models → editor/display}/render-changes.model.d.ts +1 -1
  281. package/lib/{+shared/editor/core → editor/display}/renderer.d.ts +10 -13
  282. package/lib/{+shared/editor/core/helpers → editor/display}/rendering.helper.d.ts +7 -7
  283. package/lib/{+shared/editor/core/layers → editor/display}/renderloop.d.ts +2 -2
  284. package/lib/{+shared/editor/core → editor/display}/virtual.renderer.d.ts +14 -29
  285. package/lib/{+shared/editor → editor}/editor.module.d.ts +12 -10
  286. package/lib/{+shared/editor/core → editor/execution}/edit.session.d.ts +65 -63
  287. package/lib/{+shared/editor/core → editor/execution}/editor.d.ts +48 -43
  288. package/lib/editor/execution/helpers/delta.helper.d.ts +6 -0
  289. package/lib/{+shared/editor/core → editor/execution}/helpers/format-style.helper.d.ts +3 -5
  290. package/lib/{+shared/editor/core → editor/execution}/helpers/page.helper.d.ts +1 -1
  291. package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph-style.helper.d.ts +1 -1
  292. package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph.helper.d.ts +11 -8
  293. package/lib/{+shared/editor → editor}/execution/regulator.service.d.ts +15 -14
  294. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/cell-session-source.model.d.ts +3 -3
  295. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/edge-session-source.model.d.ts +3 -3
  296. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/main-session-source.model.d.ts +1 -1
  297. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session-source.model.d.ts +1 -1
  298. package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session.model.d.ts +3 -3
  299. package/lib/{+shared/editor/core/helpers → editor/gadgets/font-metrics}/font-metrics.helper.d.ts +1 -1
  300. package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation-history.d.ts +9 -7
  301. package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation.type.d.ts +2 -1
  302. package/lib/{+shared/editor/core/models → editor/gadgets/numbering}/numbering-data.model.d.ts +1 -1
  303. package/lib/{+shared/editor/core/helpers → editor/gadgets/numbering}/numbering.helper.d.ts +8 -8
  304. package/lib/{+shared/editor/helpers → editor/gadgets/page-break}/break.helper.d.ts +2 -2
  305. package/lib/{+shared/editor/core/layers → editor/gadgets}/scrollbar.d.ts +9 -18
  306. package/lib/{+shared/editor/core → editor/gadgets/search}/search.d.ts +4 -4
  307. package/lib/editor/interaction/base.handler.d.ts +9 -0
  308. package/lib/editor/interaction/document.handler.d.ts +10 -0
  309. package/lib/{+shared/editor → editor}/interaction/editor.service.d.ts +24 -18
  310. package/lib/{+shared/editor → editor}/interaction/input.handler.d.ts +4 -5
  311. package/lib/{+shared/editor → editor}/interaction/mouse.handler.d.ts +1 -1
  312. package/lib/{+shared/editor → editor}/operations/enums/command-type.enum.d.ts +11 -10
  313. package/lib/{+shared/editor → editor}/operations/helpers/break-operations.helper.d.ts +2 -2
  314. package/lib/{+shared/editor → editor}/operations/helpers/format-operations.helper.d.ts +2 -2
  315. package/lib/editor/operations/helpers/image-operations.helper.d.ts +7 -0
  316. package/lib/{+shared/editor → editor}/operations/helpers/indexed-element-operations.helper.d.ts +1 -1
  317. package/lib/{+shared/editor → editor}/operations/helpers/link-operations.helper.d.ts +1 -1
  318. package/lib/{+shared/editor → editor}/operations/helpers/numbering-operations.helper.d.ts +3 -3
  319. package/lib/{+shared/editor → editor}/operations/helpers/paragraph-operations.helper.d.ts +3 -2
  320. package/lib/{+shared/editor → editor}/operations/helpers/tab-operations.helper.d.ts +1 -1
  321. package/lib/{+shared/editor → editor}/operations/helpers/table-operations.helper.d.ts +6 -6
  322. package/lib/{+shared/editor/operations/helpers → editor/operations}/operations-helper.helper.d.ts +21 -19
  323. package/lib/{+shared/editor/operations/helpers → editor/operations}/save-commands.helper.d.ts +28 -22
  324. package/lib/editor/operations/target-operations.helper.d.ts +6 -0
  325. package/lib/{+shared/editor/helpers → editor/positioning}/content.helper.d.ts +10 -5
  326. package/lib/editor/positioning/cursor-paragraph.d.ts +7 -0
  327. package/lib/{+shared/editor/core/interfaces → editor/positioning}/cursor-position.interface.d.ts +1 -1
  328. package/lib/{+shared/editor/core/helpers → editor/positioning}/line-width.helper.d.ts +2 -2
  329. package/lib/{+shared/editor/core/helpers → editor/positioning}/position.helper.d.ts +9 -9
  330. package/lib/{+shared/editor/core → editor/positioning}/range.d.ts +12 -12
  331. package/lib/{+shared/editor → editor}/positioning/selection.d.ts +10 -10
  332. package/lib/editor/revision.helper.d.ts +15 -0
  333. package/lib/models/generated/command.model.d.ts +2 -0
  334. package/lib/models/generated/insert-paragraph.model.d.ts +10 -0
  335. package/lib/models/generated/replace.model.d.ts +2 -0
  336. package/package.json +1 -1
  337. package/public-api.d.ts +35 -32
  338. package/src/_ngx-noder.theme.scss +14 -9
  339. package/src/assets/fonts/nc-iconfont.css +112 -106
  340. package/src/assets/fonts/nc-iconfont.eot +0 -0
  341. package/src/assets/fonts/nc-iconfont.svg +4 -1
  342. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  343. package/src/assets/fonts/nc-iconfont.woff +0 -0
  344. package/src/lib/{+shared → apart-components}/add-link-dialog/_add-link-dialog.theme.scss +1 -1
  345. package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +25 -0
  346. package/src/lib/{+shared → apart-components}/confirm-dialog/_theme.scss +1 -1
  347. package/src/lib/{+shared → apart-components}/editor-title/_editor-title.theme.scss +1 -1
  348. package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +42 -0
  349. package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +27 -0
  350. package/src/lib/apart-components/editor-toolbar/_theme.scss +25 -0
  351. package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +12 -0
  352. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/_font.theme.scss +1 -1
  353. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/_font-size.theme.scss +1 -1
  354. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/_font-style.theme.scss +1 -1
  355. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/_format.theme.scss +1 -1
  356. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/_numbering.theme.scss +1 -1
  357. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/_undo-redo.theme.scss +1 -1
  358. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components}/menu-dropdowns/_menu-dropdowns.theme.scss +1 -1
  359. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +33 -0
  360. package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components}/toolbar-actions/_toolbar-actions.theme.scss +2 -1
  361. package/src/lib/{+shared → apart-components}/insert-table/_insert-table.theme.scss +1 -1
  362. package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +54 -0
  363. package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +86 -0
  364. package/src/lib/{+shared/editor → editor}/_theme.scss +1 -1
  365. package/src/lib/{+shared/editor → editor/components}/_editor.theme.scss +10 -2
  366. package/src/scss/base-editor.scss +329 -0
  367. package/src/styles.scss +3 -58
  368. package/esm2022/lib/+shared/abstract/base-api.service.mjs +0 -99
  369. package/esm2022/lib/+shared/abstract/observer.component.mjs +0 -24
  370. package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +0 -71
  371. package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +0 -32
  372. package/esm2022/lib/+shared/constants/default-file-name.const.mjs +0 -2
  373. package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +0 -3
  374. package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +0 -71
  375. package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +0 -6
  376. package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +0 -100
  377. package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +0 -104
  378. package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +0 -8
  379. package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +0 -6
  380. package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +0 -15
  381. package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +0 -8
  382. package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +0 -13
  383. package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +0 -2
  384. package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +0 -62
  385. package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +0 -5
  386. package/esm2022/lib/+shared/editor/core/document.mjs +0 -134
  387. package/esm2022/lib/+shared/editor/core/edit.session.mjs +0 -1099
  388. package/esm2022/lib/+shared/editor/core/editor.mjs +0 -1274
  389. package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +0 -7
  390. package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +0 -7
  391. package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +0 -7
  392. package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +0 -156
  393. package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +0 -18
  394. package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +0 -42
  395. package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +0 -18
  396. package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +0 -88
  397. package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +0 -72
  398. package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +0 -13
  399. package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +0 -83
  400. package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +0 -12
  401. package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +0 -41
  402. package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +0 -169
  403. package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +0 -194
  404. package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +0 -7
  405. package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +0 -187
  406. package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +0 -20
  407. package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +0 -2
  408. package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +0 -2
  409. package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +0 -2
  410. package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +0 -2
  411. package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +0 -2
  412. package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +0 -2
  413. package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +0 -2
  414. package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +0 -2
  415. package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +0 -2
  416. package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +0 -2
  417. package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +0 -2
  418. package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +0 -53
  419. package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +0 -103
  420. package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +0 -99
  421. package/esm2022/lib/+shared/editor/core/layers/lines.mjs +0 -96
  422. package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +0 -106
  423. package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +0 -7
  424. package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +0 -7
  425. package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +0 -7
  426. package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +0 -26
  427. package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +0 -100
  428. package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +0 -115
  429. package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +0 -124
  430. package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +0 -12
  431. package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +0 -10
  432. package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +0 -9
  433. package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +0 -10
  434. package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +0 -9
  435. package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +0 -9
  436. package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +0 -16
  437. package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +0 -9
  438. package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +0 -25
  439. package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +0 -9
  440. package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +0 -226
  441. package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +0 -52
  442. package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +0 -34
  443. package/esm2022/lib/+shared/editor/core/point.mjs +0 -13
  444. package/esm2022/lib/+shared/editor/core/print.renderer.mjs +0 -72
  445. package/esm2022/lib/+shared/editor/core/range.mjs +0 -94
  446. package/esm2022/lib/+shared/editor/core/renderer.mjs +0 -217
  447. package/esm2022/lib/+shared/editor/core/search.mjs +0 -231
  448. package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +0 -356
  449. package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +0 -6
  450. package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +0 -4
  451. package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +0 -2
  452. package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +0 -41
  453. package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +0 -9
  454. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +0 -11
  455. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +0 -15
  456. package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +0 -88
  457. package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +0 -38
  458. package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +0 -2
  459. package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +0 -2
  460. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +0 -19
  461. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +0 -12
  462. package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +0 -106
  463. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +0 -2
  464. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +0 -52
  465. package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +0 -14
  466. package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +0 -59
  467. package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +0 -3
  468. package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +0 -43
  469. package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +0 -2
  470. package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +0 -64
  471. package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +0 -115
  472. package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +0 -55
  473. package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +0 -2
  474. package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +0 -44
  475. package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +0 -118
  476. package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +0 -97
  477. package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +0 -401
  478. package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +0 -8
  479. package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +0 -6
  480. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +0 -18
  481. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +0 -9
  482. package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +0 -8
  483. package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +0 -7
  484. package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +0 -74
  485. package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +0 -364
  486. package/esm2022/lib/+shared/editor/editor.component.mjs +0 -98
  487. package/esm2022/lib/+shared/editor/editor.module.mjs +0 -82
  488. package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +0 -19
  489. package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +0 -15
  490. package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +0 -11
  491. package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +0 -8
  492. package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +0 -3
  493. package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +0 -10
  494. package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +0 -203
  495. package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +0 -18
  496. package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +0 -30
  497. package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +0 -6
  498. package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +0 -309
  499. package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +0 -160
  500. package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +0 -49
  501. package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +0 -2
  502. package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +0 -2
  503. package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +0 -184
  504. package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +0 -2
  505. package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +0 -7
  506. package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +0 -31
  507. package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +0 -7
  508. package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +0 -9
  509. package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +0 -15
  510. package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +0 -56
  511. package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +0 -19
  512. package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
  513. package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +0 -28
  514. package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
  515. package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +0 -394
  516. package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +0 -83
  517. package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +0 -118
  518. package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +0 -16
  519. package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +0 -374
  520. package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +0 -23
  521. package/esm2022/lib/+shared/editor/positioning/selection.mjs +0 -307
  522. package/esm2022/lib/+shared/editor/store/editor.actions.mjs +0 -13
  523. package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +0 -71
  524. package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +0 -83
  525. package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +0 -32
  526. package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +0 -157
  527. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +0 -101
  528. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +0 -117
  529. package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +0 -8
  530. package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +0 -6
  531. package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +0 -45
  532. package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +0 -85
  533. package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +0 -80
  534. package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +0 -28
  535. package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +0 -23
  536. package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +0 -55
  537. package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +0 -194
  538. package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +0 -53
  539. package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +0 -18
  540. package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +0 -126
  541. package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +0 -27
  542. package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +0 -74
  543. package/esm2022/lib/+shared/helpers/print.helper.mjs +0 -40
  544. package/esm2022/lib/+shared/helpers/revision.helper.mjs +0 -91
  545. package/esm2022/lib/+shared/helpers/scaling.helper.mjs +0 -9
  546. package/esm2022/lib/+shared/helpers/validation.helper.mjs +0 -7
  547. package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +0 -54
  548. package/esm2022/lib/+shared/services/commands.service.mjs +0 -20
  549. package/esm2022/lib/+shared/services/custom-icon.service.mjs +0 -34
  550. package/lib/+shared/abstract/base-api.service.d.ts +0 -23
  551. package/lib/+shared/abstract/observer.component.d.ts +0 -10
  552. package/lib/+shared/constants/default-file-name.const.d.ts +0 -1
  553. package/lib/+shared/constants/paginator-sizes.const.d.ts +0 -2
  554. package/lib/+shared/editor/core/components/edges/edge.component.d.ts +0 -45
  555. package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +0 -5
  556. package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +0 -14
  557. package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +0 -16
  558. package/lib/+shared/editor/core/helpers/delta.helper.d.ts +0 -6
  559. package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +0 -5
  560. package/lib/+shared/editor/core/layers/edges.layer.d.ts +0 -24
  561. package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +0 -4
  562. package/lib/+shared/editor/core/layers/print.text.layer.d.ts +0 -5
  563. package/lib/+shared/editor/core/layers/text.layer.d.ts +0 -22
  564. package/lib/+shared/editor/core/point.d.ts +0 -7
  565. package/lib/+shared/editor/core/print.renderer.d.ts +0 -25
  566. package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +0 -8
  567. package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +0 -13
  568. package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +0 -5
  569. package/lib/+shared/editor/interfaces/contents.interface.d.ts +0 -22
  570. package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +0 -7
  571. package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +0 -6
  572. package/lib/+shared/editor/store/editor.actions.d.ts +0 -11
  573. package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +0 -6
  574. package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +0 -45
  575. package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +0 -31
  576. package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +0 -73
  577. package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +0 -49
  578. package/lib/+shared/helpers/revision.helper.d.ts +0 -15
  579. package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +0 -10
  580. package/src/lib/+shared/editor-toolbar/_theme.scss +0 -21
  581. package/src/scss/_mixins.scss +0 -14
  582. package/src/scss/_variables.scss +0 -1
  583. /package/lib/{+shared/helpers → apart-components/add-link-dialog}/validation.helper.d.ts +0 -0
  584. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/svg-icons.const.d.ts +0 -0
  585. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/alignment.enum.d.ts +0 -0
  586. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.d.ts +0 -0
  587. /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-type.enum.d.ts +0 -0
  588. /package/lib/{+shared → apart-components/editor-toolbar/shared}/services/custom-icon.service.d.ts +0 -0
  589. /package/lib/{+shared/editor/core → editor}/components/edges/edge-type.enum.d.ts +0 -0
  590. /package/lib/{+shared/editor/core/enums → editor/components/edges}/page-type.enum.d.ts +0 -0
  591. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-element.service.d.ts +0 -0
  592. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-elements.const.d.ts +0 -0
  593. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/element-data.model.d.ts +0 -0
  594. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-element.model.d.ts +0 -0
  595. /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-sidenav.model.d.ts +0 -0
  596. /package/lib/{+shared/editor/custom-components → editor/components}/image/input-handler/image-input.handler.d.ts +0 -0
  597. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/coordinate.d.ts +0 -0
  598. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction-wrapper.d.ts +0 -0
  599. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction.enum.d.ts +0 -0
  600. /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-delta.d.ts +0 -0
  601. /package/lib/{+shared/editor/custom-components/image/interfaces → editor/components/image}/size.d.ts +0 -0
  602. /package/lib/{+shared/editor/custom-components/shared/constants → editor/components/shared}/custom-content-markers.const.d.ts +0 -0
  603. /package/lib/{+shared/editor/custom-components/shared/services/overlay → editor/components/shared/services}/overlay.service.d.ts +0 -0
  604. /package/lib/{+shared/editor/helpers → editor/components/tab}/tab.helper.d.ts +0 -0
  605. /package/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.d.ts +0 -0
  606. /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/reisizer-side.enum.d.ts +0 -0
  607. /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/vertical-merge.enum.d.ts +0 -0
  608. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-data.model.d.ts +0 -0
  609. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-resizer-parameters.model.d.ts +0 -0
  610. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/row-data.model.d.ts +0 -0
  611. /package/lib/{+shared/editor/custom-components → editor/components}/table/models/selection-range.model.d.ts +0 -0
  612. /package/lib/{+shared/editor/core → editor/content}/constants/display-values.const.d.ts +0 -0
  613. /package/lib/{+shared/editor/core → editor/content}/constants/document-info.const.d.ts +0 -0
  614. /package/lib/{+shared/editor/core/models → editor/content/display-data}/indent.model.d.ts +0 -0
  615. /package/lib/{+shared/editor/core/models → editor/content/display-data}/line-info.model.d.ts +0 -0
  616. /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/paragraph-info.interface.d.ts +0 -0
  617. /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/toolbar-styles.interface.d.ts +0 -0
  618. /package/lib/{+shared/editor → editor/content}/helpers/format.helper.d.ts +0 -0
  619. /package/lib/{+shared → editor/content}/helpers/scaling.helper.d.ts +0 -0
  620. /package/lib/{+shared/editor/core/models → editor/content}/margin.model.d.ts +0 -0
  621. /package/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.d.ts +0 -0
  622. /package/lib/{+shared/editor/core/interfaces → editor/display}/cell.interface.d.ts +0 -0
  623. /package/lib/{+shared/editor/core/helpers → editor/display}/event.helper.d.ts +0 -0
  624. /package/lib/{+shared/editor/core → editor/display}/layers/print.pages.layer.d.ts +0 -0
  625. /package/lib/{+shared/editor/core/interfaces → editor/display}/render-changes.interface.d.ts +0 -0
  626. /package/lib/{+shared/editor/core/interfaces → editor/display}/visible-range.interface.d.ts +0 -0
  627. /package/lib/{+shared/editor/core/models → editor/execution}/distance.model.d.ts +0 -0
  628. /package/lib/{+shared/editor/core → editor/execution}/helpers/dom.helper.d.ts +0 -0
  629. /package/lib/{+shared/editor/core/constants → editor/gadgets/font-metrics}/editor-version.const.d.ts +0 -0
  630. /package/lib/{+shared/editor/core/interfaces → editor/gadgets/font-metrics}/font-metric-size.interface.d.ts +0 -0
  631. /package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operations-history-info.model.d.ts +0 -0
  632. /package/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.d.ts +0 -0
  633. /package/lib/{+shared/editor/core/enums → editor/gadgets/page-break}/break-types.enum.d.ts +0 -0
  634. /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/replace.interface.d.ts +0 -0
  635. /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/search-iteration.interface.d.ts +0 -0
  636. /package/lib/{+shared/editor/core/constants → editor/gadgets/unicode}/unicode-chars.const.d.ts +0 -0
  637. /package/lib/{+shared/editor/core/helpers → editor/gadgets/unicode}/unicode.helper.d.ts +0 -0
  638. /package/lib/{+shared/enums → editor/interaction}/mode.enum.d.ts +0 -0
  639. /package/lib/{+shared/editor/core/enums → editor/interaction}/mouse-button.enum.d.ts +0 -0
  640. /package/lib/{+shared/editor/core/keyboard → editor/interaction}/text-input.d.ts +0 -0
  641. /package/lib/{+shared/services → editor/operations}/commands.service.d.ts +0 -0
  642. /package/lib/{+shared/editor → editor}/operations/enums/target-type.enum.d.ts +0 -0
  643. /package/lib/{+shared/editor → editor}/operations/helpers/content-operations.helper.d.ts +0 -0
  644. /package/lib/{+shared/editor/core/constants → editor/positioning}/alignments.const.d.ts +0 -0
  645. /package/lib/{+shared/editor/interfaces → editor/positioning}/insert-index.interface.d.ts +0 -0
@@ -1,307 +0,0 @@
1
- import { ContentHelper } from '../helpers/content.helper';
2
- import { Point } from '../core/point';
3
- import { PositionHelper } from '../core/helpers/position.helper';
4
- import { Range } from '../core/range';
5
- export class Selection {
6
- constructor() {
7
- this.anchor = null;
8
- this.cursor = new Point(0, 0);
9
- this.keepLinePositionX = null;
10
- }
11
- get isEmpty() {
12
- return this.anchor === null || (this.anchor.row === this.cursor.row && this.anchor.column === this.cursor.column);
13
- }
14
- get isBackwards() {
15
- return this.anchor.row > this.cursor.row || (this.anchor.row === this.cursor.row && this.anchor.column > this.cursor.column);
16
- }
17
- get range() {
18
- const cursor = new Point(this.cursor.row, this.cursor.column);
19
- if (this.isEmpty) {
20
- return new Range(cursor, cursor);
21
- }
22
- const anchor = new Point(this.anchor.row, this.anchor.column);
23
- return this.isBackwards ? new Range(cursor, anchor) : new Range(anchor, cursor);
24
- }
25
- placeCursor(cursor) {
26
- this.cursor = cursor;
27
- this.anchor = null;
28
- this.keepLinePositionX = null;
29
- }
30
- moveCursor(cursor) {
31
- this.cursor = cursor;
32
- this.keepLinePositionX = null;
33
- }
34
- placeSelection(cursor, anchor) {
35
- this.cursor = cursor;
36
- this.anchor = anchor;
37
- this.keepLinePositionX = null;
38
- }
39
- moveSelection(position) {
40
- if (!this.anchor) {
41
- this.anchor = this.cursor;
42
- }
43
- this.moveCursor(position);
44
- }
45
- clearSelection() {
46
- this.anchor = null;
47
- this.keepLinePositionX = null;
48
- }
49
- selectAll(model) {
50
- const last = model.paragraphs.length - 1;
51
- const length = last > 0 ? model.contentLength - model.paragraphs[last - 1].insertIndex - 1 : model.contentLength;
52
- this.placeSelection(new Point(0, 0), new Point(last, length));
53
- }
54
- selectUp(session) {
55
- if (!this.anchor) {
56
- this.anchor = this.cursor;
57
- }
58
- this.moveCursorUp(session, this.cursor);
59
- }
60
- navigateUp(session) {
61
- const position = this.isEmpty || this.isBackwards ? this.cursor : this.anchor;
62
- this.moveCursorUp(session, position);
63
- this.anchor = null;
64
- }
65
- selectDown(session) {
66
- if (!this.anchor) {
67
- this.anchor = this.cursor;
68
- }
69
- this.moveCursorDown(session, this.cursor);
70
- }
71
- navigateDown(session) {
72
- const position = this.isEmpty || !this.isBackwards ? this.cursor : this.anchor;
73
- this.moveCursorDown(session, position);
74
- this.anchor = null;
75
- }
76
- selectRight(session) {
77
- const position = this.getCursorRight(session);
78
- this.moveSelection(position);
79
- }
80
- navigateRight(session) {
81
- if (this.isEmpty) {
82
- const position = this.getCursorRight(session);
83
- this.placeCursor(position);
84
- }
85
- else {
86
- const position = !this.isBackwards ? this.cursor : this.anchor;
87
- this.placeCursor(position);
88
- }
89
- }
90
- selectLeft(session) {
91
- const position = this.getCursorLeft(session);
92
- this.moveSelection(position);
93
- }
94
- navigateLeft(session) {
95
- if (this.isEmpty) {
96
- const position = this.getCursorLeft(session);
97
- this.placeCursor(position);
98
- }
99
- else {
100
- const position = this.isBackwards ? this.cursor : this.anchor;
101
- this.placeCursor(position);
102
- }
103
- }
104
- selectLineStart(session) {
105
- const position = this.getLineStart(session, this.cursor);
106
- this.moveSelection(position);
107
- }
108
- navigateLineStart(session) {
109
- const position = this.getLineStart(session, this.cursor);
110
- this.placeCursor(position);
111
- }
112
- selectLineEnd(session) {
113
- const position = this.getLineEnd(session, this.cursor);
114
- this.moveSelection(position);
115
- }
116
- navigateLineEnd(session) {
117
- const position = this.getLineEnd(session, this.cursor);
118
- this.placeCursor(position);
119
- }
120
- selectFileEnd(session) {
121
- const paragraph = session.document.lines.length - 1;
122
- const paragraphIndex = session.document.lines[paragraph].length;
123
- this.moveSelection(new Point(paragraph, paragraphIndex));
124
- }
125
- navigateFileEnd(session) {
126
- const paragraph = session.document.lines.length - 1;
127
- const paragraphIndex = session.document.lines[paragraph].length;
128
- this.placeCursor(new Point(paragraph, paragraphIndex));
129
- }
130
- selectFileStart() {
131
- this.moveSelection(new Point(0, 0));
132
- }
133
- navigateFileStart() {
134
- this.placeCursor(new Point(0, 0));
135
- }
136
- selectWordRight(session) {
137
- const position = this.getWordRight(session, this.cursor);
138
- this.moveSelection(position);
139
- }
140
- navigateWordRight(session) {
141
- const position = this.getWordRight(session, this.cursor);
142
- this.placeCursor(position);
143
- }
144
- selectWordLeft(session) {
145
- const position = this.getWordLeft(session, this.cursor);
146
- this.moveSelection(position);
147
- }
148
- navigateWordLeft(session) {
149
- const position = this.getWordLeft(session, this.cursor);
150
- this.placeCursor(position);
151
- }
152
- moveCursorUp(session, position) {
153
- const line = PositionHelper.documentToScreen(session, position.row, position.column);
154
- if (line.row === 0) {
155
- this.selectLineStart(session);
156
- }
157
- else {
158
- this.moveToLine(session, line.row - 1, line);
159
- }
160
- }
161
- moveCursorDown(session, position) {
162
- const line = PositionHelper.documentToScreen(session, position.row, position.column);
163
- const paragraphsCount = session.pagesWrap.paragraphs.length;
164
- const lastParagraph = session.pagesWrap.paragraphs[paragraphsCount - 1];
165
- const lastParagraphLine = lastParagraph.textLinesInfo[lastParagraph.textLinesInfo.length - 1].screenLine;
166
- if (line.row === lastParagraphLine) {
167
- this.selectLineEnd(session);
168
- }
169
- else {
170
- this.moveToLine(session, line.row + 1, line);
171
- }
172
- }
173
- moveToLine(session, line, fromLine) {
174
- if (!this.keepLinePositionX) {
175
- this.keepLinePositionX = PositionHelper.screenToPixel(session, fromLine.row, fromLine.column).pageX;
176
- }
177
- const column = PositionHelper.getApproximatePosition(session, line, this.keepLinePositionX);
178
- this.cursor = PositionHelper.screenToDocument(session, line, column);
179
- }
180
- getCursorLeft(session) {
181
- if (this.cursor.row === 0 && this.cursor.column === 0) {
182
- return this.cursor;
183
- }
184
- const index = ContentHelper.paragraphPositionToDocumentIndex(session.wrapParagraphIndex, this.cursor);
185
- return ContentHelper.documentIndexToParagraphIndex(session.wrapParagraphIndex, index - 1);
186
- }
187
- getCursorRight(session) {
188
- const last = session.pagesWrap.paragraphs.length - 1;
189
- if (this.cursor.row === last && this.cursor.column === session.document.lines[last].length) {
190
- return this.cursor;
191
- }
192
- const index = ContentHelper.paragraphPositionToDocumentIndex(session.wrapParagraphIndex, this.cursor);
193
- return ContentHelper.documentIndexToParagraphIndex(session.wrapParagraphIndex, index + 1);
194
- }
195
- getLineStart(session, position) {
196
- const line = PositionHelper.documentToScreen(session, position.row, position.column);
197
- return PositionHelper.screenToDocument(session, line.row, 0);
198
- }
199
- getLineEnd(session, position) {
200
- const line = PositionHelper.documentToScreen(session, position.row, position.column);
201
- const paragraphLength = session.document.lines[position.row].length;
202
- const linesCount = session.pagesWrap.paragraphs[position.row].textLinesInfo.length;
203
- if (linesCount === 1) {
204
- return PositionHelper.screenToDocument(session, line.row, paragraphLength);
205
- }
206
- const paragraphLine = line.row - session.wrapParagraphLine[position.row];
207
- let index;
208
- if (paragraphLine === 0) {
209
- index = session.wrapData[position.row][0];
210
- }
211
- else if (paragraphLine === linesCount - 1) {
212
- index = paragraphLength - session.wrapData[position.row][paragraphLine - 1];
213
- }
214
- else {
215
- index = session.wrapData[position.row][paragraphLine] - session.wrapData[position.row][paragraphLine - 1];
216
- }
217
- return PositionHelper.screenToDocument(session, line.row, index);
218
- }
219
- getWordRight(session, position) {
220
- let row = position.row;
221
- let column = position.column;
222
- const line = session.document.lines[row];
223
- const documentLength = session.document.lines.length;
224
- if (row + 1 >= documentLength && column === line.length) {
225
- return position;
226
- }
227
- let rightOfCursor = line.substring(column);
228
- if (column === line.length) {
229
- do {
230
- row++;
231
- rightOfCursor = session.document.lines[row];
232
- } while (row < documentLength && /^\s*$/.test(rightOfCursor));
233
- if (!/^\s+/.test(rightOfCursor)) {
234
- rightOfCursor = '';
235
- }
236
- column = 0;
237
- }
238
- const index = this.shortWordEndIndex(session.tokenRe, rightOfCursor);
239
- return new Point(row, column + index);
240
- }
241
- getWordLeft(session, position) {
242
- let row = position.row;
243
- let column = position.column;
244
- if (column === 0 && row === 0) {
245
- return position;
246
- }
247
- let line = session.document.lines[row].substring(0, column);
248
- if (column === 0) {
249
- do {
250
- row--;
251
- line = session.document.lines[row];
252
- } while (row > 0 && /^\s*$/.test(line));
253
- column = line.length;
254
- if (!/\s+$/.test(line)) {
255
- line = '';
256
- }
257
- }
258
- const leftOfCursor = line.split('').reverse().join('');
259
- const index = this.shortWordEndIndex(session.tokenRe, leftOfCursor);
260
- return new Point(row, column - index);
261
- }
262
- shortWordEndIndex(tokenRe, rightOfCursor) {
263
- let index;
264
- tokenRe.lastIndex = 0;
265
- if (tokenRe.exec(rightOfCursor)) {
266
- index = tokenRe.lastIndex;
267
- }
268
- else {
269
- index = this.handleNoTokenFound(tokenRe, rightOfCursor);
270
- }
271
- tokenRe.lastIndex = 0;
272
- return index;
273
- }
274
- handleNoTokenFound(tokenRe, rightOfCursor) {
275
- const whitespaceRe = /\s/;
276
- let index = 0;
277
- while (rightOfCursor[index] && whitespaceRe.test(rightOfCursor[index])) {
278
- index++;
279
- }
280
- if (index < 1) {
281
- index = this.handleNoWhitespaceFound(tokenRe, rightOfCursor, whitespaceRe);
282
- }
283
- return index;
284
- }
285
- handleNoWhitespaceFound(tokenRe, rightOfCursor, whitespaceRe) {
286
- let index = 0;
287
- tokenRe.lastIndex = 0;
288
- while (rightOfCursor[index] && !tokenRe.test(rightOfCursor[index])) {
289
- tokenRe.lastIndex = 0;
290
- index++;
291
- if (whitespaceRe.test(rightOfCursor[index])) {
292
- if (index > 2) {
293
- index--;
294
- break;
295
- }
296
- while (rightOfCursor[index] && whitespaceRe.test(rightOfCursor[index])) {
297
- index++;
298
- }
299
- if (index > 2) {
300
- break;
301
- }
302
- }
303
- }
304
- return index;
305
- }
306
- }
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvcG9zaXRpb25pbmcvc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ0ksV0FBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsV0FBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVqQixzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO0lBMlVwRCxDQUFDO0lBelVHLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMs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LEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN0QixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEUsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDdEIsS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDWCxLQUFLLEVBQUUsQ0FBQztvQkFDUixNQUFNO2lCQUNUO2dCQUNELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3BFLEtBQUssRUFBRSxDQUFDO2lCQUNYO2dCQUNELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDWCxNQUFNO2lCQUNUO2FBQ0o7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnRlbnQuaGVscGVyJztcbmltcG9ydCB7IENvbnRlbnRzSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb250ZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi9jb3JlL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2NvcmUvcG9pbnQnO1xuaW1wb3J0IHsgUG9zaXRpb25IZWxwZXIgfSBmcm9tICcuLi9jb3JlL2hlbHBlcnMvcG9zaXRpb24uaGVscGVyJztcbmltcG9ydCB7IFJhbmdlIH0gZnJvbSAnLi4vY29yZS9yYW5nZSc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb24ge1xuICAgIGFuY2hvcjogUG9pbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGN1cnNvciA9IG5ldyBQb2ludCgwLCAwKTtcblxuICAgIHByaXZhdGUga2VlcExpbmVQb3NpdGlvblg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuY2hvciA9PT0gbnVsbCB8fCAodGhpcy5hbmNob3Iucm93ID09PSB0aGlzLmN1cnNvci5yb3cgJiYgdGhpcy5hbmNob3IuY29sdW1uID09PSB0aGlzLmN1cnNvci5jb2x1bW4pO1xuICAgIH1cblxuICAgIGdldCBpc0JhY2t3YXJkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5jaG9yLnJvdyA+IHRoaXMuY3Vyc29yLnJvdyB8fCAodGhpcy5hbmNob3Iucm93ID09PSB0aGlzLmN1cnNvci5yb3cgJiYgdGhpcy5hbmNob3IuY29sdW1uID4gdGhpcy5jdXJzb3IuY29sdW1uKTtcbiAgICB9XG5cbiAgICBnZXQgcmFuZ2UoKTogUmFuZ2Uge1xuICAgICAgICBjb25zdCBjdXJzb3IgPSBuZXcgUG9pbnQodGhpcy5jdXJzb3Iucm93LCB0aGlzLmN1cnNvci5jb2x1bW4pO1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJhbmdlKGN1cnNvciwgY3Vyc29yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFuY2hvciA9IG5ldyBQb2ludCh0aGlzLmFuY2hvci5yb3csIHRoaXMuYW5jaG9yLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQmFja3dhcmRzID8gbmV3IFJhbmdlKGN1cnNvciwgYW5jaG9yKSA6IG5ldyBSYW5nZShhbmNob3IsIGN1cnNvcik7XG4gICAgfVxuXG4gICAgcGxhY2VDdXJzb3IoY3Vyc29yOiBQb2ludCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvciA9IGN1cnNvcjtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgICAgICB0aGlzLmtlZXBMaW5lUG9zaXRpb25YID0gbnVsbDtcbiAgICB9XG5cbiAgICBtb3ZlQ3Vyc29yKGN1cnNvcjogUG9pbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3IgPSBjdXJzb3I7XG4gICAgICAgIHRoaXMua2VlcExpbmVQb3NpdGlvblggPSBudWxsO1xuICAgIH1cblxuICAgIHBsYWNlU2VsZWN0aW9uKGN1cnNvcjogUG9pbnQsIGFuY2hvcjogUG9pbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3IgPSBjdXJzb3I7XG4gICAgICAgIHRoaXMuYW5jaG9yID0gYW5jaG9yO1xuICAgICAgICB0aGlzLmtlZXBMaW5lUG9zaXRpb25YID0gbnVsbDtcbiAgICB9XG5cbiAgICBtb3ZlU2VsZWN0aW9uKHBvc2l0aW9uOiBQb2ludCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYW5jaG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvciA9IHRoaXMuY3Vyc29yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW92ZUN1cnNvcihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYW5jaG9yID0gbnVsbDtcbiAgICAgICAgdGhpcy5rZWVwTGluZVBvc2l0aW9uWCA9IG51bGw7XG4gICAgfVxuXG4gICAgc2VsZWN0QWxsKG1vZGVsOiBDb250ZW50c0ludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0ID0gbW9kZWwucGFyYWdyYXBocy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBsYXN0ID4gMCA/IG1vZGVsLmNvbnRlbnRMZW5ndGggLSBtb2RlbC5wYXJhZ3JhcGhzW2xhc3QgLSAxXS5pbnNlcnRJbmRleCAtIDEgOiBtb2RlbC5jb250ZW50TGVuZ3RoO1xuICAgICAgICB0aGlzLnBsYWNlU2VsZWN0aW9uKG5ldyBQb2ludCgwLCAwKSwgbmV3IFBvaW50KGxhc3QsIGxlbmd0aCkpO1xuICAgIH1cblxuICAgIHNlbGVjdFVwKHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hbmNob3IpIHtcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yID0gdGhpcy5jdXJzb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yVXAoc2Vzc2lvbiwgdGhpcy5jdXJzb3IpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVXAoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmlzRW1wdHkgfHwgdGhpcy5pc0JhY2t3YXJkcyA/IHRoaXMuY3Vyc29yIDogdGhpcy5hbmNob3I7XG4gICAgICAgIHRoaXMubW92ZUN1cnNvclVwKHNlc3Npb24sIHBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdERvd24oc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFuY2hvcikge1xuICAgICAgICAgICAgdGhpcy5hbmNob3IgPSB0aGlzLmN1cnNvcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdmVDdXJzb3JEb3duKHNlc3Npb24sIHRoaXMuY3Vyc29yKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZURvd24oc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmlzRW1wdHkgfHwgIXRoaXMuaXNCYWNrd2FyZHMgPyB0aGlzLmN1cnNvciA6IHRoaXMuYW5jaG9yO1xuICAgICAgICB0aGlzLm1vdmVDdXJzb3JEb3duKHNlc3Npb24sIHBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdFJpZ2h0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRDdXJzb3JSaWdodChzZXNzaW9uKTtcbiAgICAgICAgdGhpcy5tb3ZlU2VsZWN0aW9uKHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVJpZ2h0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRDdXJzb3JSaWdodChzZXNzaW9uKTtcbiAgICAgICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSAhdGhpcy5pc0JhY2t3YXJkcyA/IHRoaXMuY3Vyc29yIDogdGhpcy5hbmNob3I7XG4gICAgICAgICAgICB0aGlzLnBsYWNlQ3Vyc29yKHBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdExlZnQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldEN1cnNvckxlZnQoc2Vzc2lvbik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVMZWZ0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRDdXJzb3JMZWZ0KHNlc3Npb24pO1xuICAgICAgICAgICAgdGhpcy5wbGFjZUN1cnNvcihwb3NpdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuaXNCYWNrd2FyZHMgPyB0aGlzLmN1cnNvciA6IHRoaXMuYW5jaG9yO1xuICAgICAgICAgICAgdGhpcy5wbGFjZUN1cnNvcihwb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RMaW5lU3RhcnQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVTdGFydChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVMaW5lU3RhcnQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVTdGFydChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgIH1cblxuICAgIHNlbGVjdExpbmVFbmQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVFbmQoc2Vzc2lvbiwgdGhpcy5jdXJzb3IpO1xuICAgICAgICB0aGlzLm1vdmVTZWxlY3Rpb24ocG9zaXRpb24pO1xuICAgIH1cblxuICAgIG5hdmlnYXRlTGluZUVuZChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0TGluZUVuZChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgIH1cblxuICAgIHNlbGVjdEZpbGVFbmQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gc2Vzc2lvbi5kb2N1bWVudC5saW5lcy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhJbmRleCA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcGFyYWdyYXBoXS5sZW5ndGg7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihuZXcgUG9pbnQocGFyYWdyYXBoLCBwYXJhZ3JhcGhJbmRleCkpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlRmlsZUVuZChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGggPSBzZXNzaW9uLmRvY3VtZW50LmxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZGV4ID0gc2Vzc2lvbi5kb2N1bWVudC5saW5lc1twYXJhZ3JhcGhdLmxlbmd0aDtcbiAgICAgICAgdGhpcy5wbGFjZUN1cnNvcihuZXcgUG9pbnQocGFyYWdyYXBoLCBwYXJhZ3JhcGhJbmRleCkpO1xuICAgIH1cblxuICAgIHNlbGVjdEZpbGVTdGFydCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlU2VsZWN0aW9uKG5ldyBQb2ludCgwLCAwKSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVGaWxlU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IobmV3IFBvaW50KDAsIDApKTtcbiAgICB9XG5cbiAgICBzZWxlY3RXb3JkUmlnaHQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldFdvcmRSaWdodChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVXb3JkUmlnaHQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldFdvcmRSaWdodChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgIH1cblxuICAgIHNlbGVjdFdvcmRMZWZ0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRXb3JkTGVmdChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVXb3JkTGVmdChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0V29yZExlZnQoc2Vzc2lvbiwgdGhpcy5jdXJzb3IpO1xuICAgICAgICB0aGlzLnBsYWNlQ3Vyc29yKHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVDdXJzb3JVcChzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcG9zaXRpb246IFBvaW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHBvc2l0aW9uLnJvdywgcG9zaXRpb24uY29sdW1uKTtcbiAgICAgICAgaWYgKGxpbmUucm93ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdExpbmVTdGFydChzZXNzaW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW92ZVRvTGluZShzZXNzaW9uLCBsaW5lLnJvdyAtIDEsIGxpbmUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlQ3Vyc29yRG93bihzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcG9zaXRpb246IFBvaW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHBvc2l0aW9uLnJvdywgcG9zaXRpb24uY29sdW1uKTtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoc0NvdW50ID0gc2Vzc2lvbi5wYWdlc1dyYXAucGFyYWdyYXBocy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGxhc3RQYXJhZ3JhcGggPSBzZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzW3BhcmFncmFwaHNDb3VudCAtIDFdO1xuICAgICAgICBjb25zdCBsYXN0UGFyYWdyYXBoTGluZSA9IGxhc3RQYXJhZ3JhcGgudGV4dExpbmVzSW5mb1tsYXN0UGFyYWdyYXBoLnRleHRMaW5lc0luZm8ubGVuZ3RoIC0gMV0uc2NyZWVuTGluZTtcbiAgICAgICAgaWYgKGxpbmUucm93ID09PSBsYXN0UGFyYWdyYXBoTGluZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RMaW5lRW5kKHNlc3Npb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tb3ZlVG9MaW5lKHNlc3Npb24sIGxpbmUucm93ICsgMSwgbGluZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVUb0xpbmUoc2Vzc2lvbjogRWRpdFNlc3Npb24sIGxpbmU6IG51bWJlciwgZnJvbUxpbmU6IFBvaW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5rZWVwTGluZVBvc2l0aW9uWCkge1xuICAgICAgICAgICAgdGhpcy5rZWVwTGluZVBvc2l0aW9uWCA9IFBvc2l0aW9uSGVscGVyLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgZnJvbUxpbmUucm93LCBmcm9tTGluZS5jb2x1bW4pLnBhZ2VYO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IFBvc2l0aW9uSGVscGVyLmdldEFwcHJveGltYXRlUG9zaXRpb24oc2Vzc2lvbiwgbGluZSwgdGhpcy5rZWVwTGluZVBvc2l0aW9uWCk7XG4gICAgICAgIHRoaXMuY3Vyc29yID0gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9Eb2N1bWVudChzZXNzaW9uLCBsaW5lLCBjb2x1bW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3Vyc29yTGVmdChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IFBvaW50IHtcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yLnJvdyA9PT0gMCAmJiB0aGlzLmN1cnNvci5jb2x1bW4gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1cnNvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IENvbnRlbnRIZWxwZXIucGFyYWdyYXBoUG9zaXRpb25Ub0RvY3VtZW50SW5kZXgoc2Vzc2lvbi53cmFwUGFyYWdyYXBoSW5kZXgsIHRoaXMuY3Vyc29yKTtcbiAgICAgICAgcmV0dXJuIENvbnRlbnRIZWxwZXIuZG9jdW1lbnRJbmRleFRvUGFyYWdyYXBoSW5kZXgoc2Vzc2lvbi53cmFwUGFyYWdyYXBoSW5kZXgsIGluZGV4IC0gMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJzb3JSaWdodChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IFBvaW50IHtcbiAgICAgICAgY29uc3QgbGFzdCA9IHNlc3Npb24ucGFnZXNXcmFwLnBhcmFncmFwaHMubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yLnJvdyA9PT0gbGFzdCAmJiB0aGlzLmN1cnNvci5jb2x1bW4gPT09IHNlc3Npb24uZG9jdW1lbnQubGluZXNbbGFzdF0ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJzb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBDb250ZW50SGVscGVyLnBhcmFncmFwaFBvc2l0aW9uVG9Eb2N1bWVudEluZGV4KHNlc3Npb24ud3JhcFBhcmFncmFwaEluZGV4LCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHJldHVybiBDb250ZW50SGVscGVyLmRvY3VtZW50SW5kZXhUb1BhcmFncmFwaEluZGV4KHNlc3Npb24ud3JhcFBhcmFncmFwaEluZGV4LCBpbmRleCArIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGluZVN0YXJ0KHNlc3Npb246IEVkaXRTZXNzaW9uLCBwb3NpdGlvbjogUG9pbnQpOiBQb2ludCB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHBvc2l0aW9uLnJvdywgcG9zaXRpb24uY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIFBvc2l0aW9uSGVscGVyLnNjcmVlblRvRG9jdW1lbnQoc2Vzc2lvbiwgbGluZS5yb3csIDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGluZUVuZChzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcG9zaXRpb246IFBvaW50KTogUG9pbnQge1xuICAgICAgICBjb25zdCBsaW5lID0gUG9zaXRpb25IZWxwZXIuZG9jdW1lbnRUb1NjcmVlbihzZXNzaW9uLCBwb3NpdGlvbi5yb3csIHBvc2l0aW9uLmNvbHVtbik7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaExlbmd0aCA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcG9zaXRpb24ucm93XS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGxpbmVzQ291bnQgPSBzZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzW3Bvc2l0aW9uLnJvd10udGV4dExpbmVzSW5mby5sZW5ndGg7XG4gICAgICAgIGlmIChsaW5lc0NvdW50ID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9Eb2N1bWVudChzZXNzaW9uLCBsaW5lLnJvdywgcGFyYWdyYXBoTGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhZ3JhcGhMaW5lID0gbGluZS5yb3cgLSBzZXNzaW9uLndyYXBQYXJhZ3JhcGhMaW5lW3Bvc2l0aW9uLnJvd107XG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyO1xuICAgICAgICBpZiAocGFyYWdyYXBoTGluZSA9PT0gMCkge1xuICAgICAgICAgICAgaW5kZXggPSBzZXNzaW9uLndyYXBEYXRhW3Bvc2l0aW9uLnJvd11bMF07XG4gICAgICAgIH0gZWxzZSBpZiAocGFyYWdyYXBoTGluZSA9PT0gbGluZXNDb3VudCAtIDEpIHtcbiAgICAgICAgICAgIGluZGV4ID0gcGFyYWdyYXBoTGVuZ3RoIC0gc2Vzc2lvbi53cmFwRGF0YVtwb3NpdGlvbi5yb3ddW3BhcmFncmFwaExpbmUgLSAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gc2Vzc2lvbi53cmFwRGF0YVtwb3NpdGlvbi5yb3ddW3BhcmFncmFwaExpbmVdIC0gc2Vzc2lvbi53cmFwRGF0YVtwb3NpdGlvbi5yb3ddW3BhcmFncmFwaExpbmUgLSAxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9Eb2N1bWVudChzZXNzaW9uLCBsaW5lLnJvdywgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V29yZFJpZ2h0KHNlc3Npb246IEVkaXRTZXNzaW9uLCBwb3NpdGlvbjogUG9pbnQpOiBQb2ludCB7XG4gICAgICAgIGxldCByb3cgPSBwb3NpdGlvbi5yb3c7XG4gICAgICAgIGxldCBjb2x1bW4gPSBwb3NpdGlvbi5jb2x1bW47XG4gICAgICAgIGNvbnN0IGxpbmUgPSBzZXNzaW9uLmRvY3VtZW50LmxpbmVzW3Jvd107XG4gICAgICAgIGNvbnN0IGRvY3VtZW50TGVuZ3RoID0gc2Vzc2lvbi5kb2N1bWVudC5saW5lcy5sZW5ndGg7XG4gICAgICAgIGlmIChyb3cgKyAxID49IGRvY3VtZW50TGVuZ3RoICYmIGNvbHVtbiA9PT0gbGluZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmlnaHRPZkN1cnNvciA9IGxpbmUuc3Vic3RyaW5nKGNvbHVtbik7XG4gICAgICAgIGlmIChjb2x1bW4gPT09IGxpbmUubGVuZ3RoKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgcm93Kys7XG4gICAgICAgICAgICAgICAgcmlnaHRPZkN1cnNvciA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcm93XTtcbiAgICAgICAgICAgIH0gd2hpbGUgKHJvdyA8IGRvY3VtZW50TGVuZ3RoICYmIC9eXFxzKiQvLnRlc3QocmlnaHRPZkN1cnNvcikpO1xuICAgICAgICAgICAgaWYgKCEvXlxccysvLnRlc3QocmlnaHRPZkN1cnNvcikpIHtcbiAgICAgICAgICAgICAgICByaWdodE9mQ3Vyc29yID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2x1bW4gPSAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zaG9ydFdvcmRFbmRJbmRleChzZXNzaW9uLnRva2VuUmUsIHJpZ2h0T2ZDdXJzb3IpO1xuICAgICAgICByZXR1cm4gbmV3IFBvaW50KHJvdywgY29sdW1uICsgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V29yZExlZnQoc2Vzc2lvbjogRWRpdFNlc3Npb24sIHBvc2l0aW9uOiBQb2ludCk6IFBvaW50IHtcbiAgICAgICAgbGV0IHJvdyA9IHBvc2l0aW9uLnJvdztcbiAgICAgICAgbGV0IGNvbHVtbiA9IHBvc2l0aW9uLmNvbHVtbjtcbiAgICAgICAgaWYgKGNvbHVtbiA9PT0gMCAmJiByb3cgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGluZSA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcm93XS5zdWJzdHJpbmcoMCwgY29sdW1uKTtcbiAgICAgICAgaWYgKGNvbHVtbiA9PT0gMCkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHJvdy0tO1xuICAgICAgICAgICAgICAgIGxpbmUgPSBzZXNzaW9uLmRvY3VtZW50LmxpbmVzW3Jvd107XG4gICAgICAgICAgICB9IHdoaWxlIChyb3cgPiAwICYmIC9eXFxzKiQvLnRlc3QobGluZSkpO1xuICAgICAgICAgICAgY29sdW1uID0gbGluZS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIS9cXHMrJC8udGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgIGxpbmUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZWZ0T2ZDdXJzb3IgPSBsaW5lLnNwbGl0KCcnKS5yZXZlcnNlKCkuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zaG9ydFdvcmRFbmRJbmRleChzZXNzaW9uLnRva2VuUmUsIGxlZnRPZkN1cnNvcik7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQocm93LCBjb2x1bW4gLSBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG9ydFdvcmRFbmRJbmRleCh0b2tlblJlOiBSZWdFeHAsIHJpZ2h0T2ZDdXJzb3I6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyO1xuICAgICAgICB0b2tlblJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGlmICh0b2tlblJlLmV4ZWMocmlnaHRPZkN1cnNvcikpIHtcbiAgICAgICAgICAgIGluZGV4ID0gdG9rZW5SZS5sYXN0SW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuaGFuZGxlTm9Ub2tlbkZvdW5kKHRva2VuUmUsIHJpZ2h0T2ZDdXJzb3IpO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTm9Ub2tlbkZvdW5kKHRva2VuUmU6IFJlZ0V4cCwgcmlnaHRPZkN1cnNvcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgd2hpdGVzcGFjZVJlID0gL1xccy87XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChyaWdodE9mQ3Vyc29yW2luZGV4XSAmJiB3aGl0ZXNwYWNlUmUudGVzdChyaWdodE9mQ3Vyc29yW2luZGV4XSkpIHtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4IDwgMSkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmhhbmRsZU5vV2hpdGVzcGFjZUZvdW5kKHRva2VuUmUsIHJpZ2h0T2ZDdXJzb3IsIHdoaXRlc3BhY2VSZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTm9XaGl0ZXNwYWNlRm91bmQodG9rZW5SZTogUmVnRXhwLCByaWdodE9mQ3Vyc29yOiBzdHJpbmcsIHdoaXRlc3BhY2VSZTogUmVnRXhwKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgdG9rZW5SZS5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAocmlnaHRPZkN1cnNvcltpbmRleF0gJiYgIXRva2VuUmUudGVzdChyaWdodE9mQ3Vyc29yW2luZGV4XSkpIHtcbiAgICAgICAgICAgIHRva2VuUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICBpZiAod2hpdGVzcGFjZVJlLnRlc3QocmlnaHRPZkN1cnNvcltpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMikge1xuICAgICAgICAgICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2hpbGUgKHJpZ2h0T2ZDdXJzb3JbaW5kZXhdICYmIHdoaXRlc3BhY2VSZS50ZXN0KHJpZ2h0T2ZDdXJzb3JbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAyKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxufVxuIl19
@@ -1,13 +0,0 @@
1
- export class SetDocx {
2
- static { this.type = '[Editor] set docx'; }
3
- constructor(content) {
4
- this.content = content;
5
- }
6
- }
7
- export class OpenDocx {
8
- static { this.type = '[Editor] open docx'; }
9
- constructor(documentId) {
10
- this.documentId = documentId;
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9zdG9yZS9lZGl0b3IuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sT0FBTzthQUNBLFNBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUMzQyxZQUFtQixPQUFrQjtRQUFsQixZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQUcsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLFFBQVE7YUFDRCxTQUFJLEdBQUcsb0JBQW9CLENBQUM7SUFDNUMsWUFBbUIsVUFBa0I7UUFBbEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N4TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2RvY3gubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgU2V0RG9jeCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0VkaXRvcl0gc2V0IGRvY3gnO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZW50OiBEb2N4TW9kZWwpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuRG9jeCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0VkaXRvcl0gb3BlbiBkb2N4JztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZG9jdW1lbnRJZDogbnVtYmVyKSB7fVxufVxuIl19
@@ -1,71 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { debounceTime, distinctUntilChanged } from 'rxjs';
4
- import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { MatButtonModule } from '@angular/material/button';
6
- import { MatIconModule } from '@angular/material/icon';
7
- import { MatInputModule } from '@angular/material/input';
8
- import { MatTooltipModule } from '@angular/material/tooltip';
9
- import { ExternalElementService } from '../editor/custom-components/external-element/external-element.service';
10
- import { ObserverComponent } from '../abstract/observer.component';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../editor/interaction/editor.service";
13
- import * as i2 from "@angular/common";
14
- import * as i3 from "@angular/forms";
15
- import * as i4 from "@angular/material/button";
16
- import * as i5 from "@angular/material/icon";
17
- import * as i6 from "@angular/material/input";
18
- import * as i7 from "@angular/material/form-field";
19
- import * as i8 from "@angular/material/tooltip";
20
- export class EditorSearchDialogComponent extends ObserverComponent {
21
- constructor(editorService) {
22
- super();
23
- this.editorService = editorService;
24
- this.searchControl = new FormControl('');
25
- this.replaceControl = new FormControl('');
26
- this.isReplace = false;
27
- this.searchIteration$ = this.editorService.searchIteration$;
28
- }
29
- ngOnInit() {
30
- this.subscriptions.push(this.searchSubscription());
31
- }
32
- onClose() {
33
- this.editorService.openSearchDialog = false;
34
- }
35
- findNext() {
36
- this.editorService.searchOptions = {
37
- term: this.searchControl.value,
38
- skipCurrent: true,
39
- backwards: false
40
- };
41
- }
42
- findPrev() {
43
- this.editorService.searchOptions = {
44
- term: this.searchControl.value,
45
- skipCurrent: true,
46
- backwards: true
47
- };
48
- }
49
- setReplace() {
50
- this.isReplace = !this.isReplace;
51
- }
52
- replace() {
53
- this.editorService.replace = { replaceValue: this.replaceControl.value, searchValue: this.searchControl.value };
54
- }
55
- searchSubscription() {
56
- return this.searchControl.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe(() => {
57
- this.editorService.searchOptions = {
58
- term: this.searchControl.value,
59
- skipCurrent: false,
60
- backwards: false
61
- };
62
- });
63
- }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorSearchDialogComponent, deps: [{ token: i1.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorSearchDialogComponent, isStandalone: true, selector: "app-editor-search-dialog", providers: [ExternalElementService], usesInheritance: true, ngImport: i0, template: "<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Search for</mat-label>\n <input\n matInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findPrev()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onleft\"></mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findNext()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onright\"></mat-icon>\n </button>\n</div>\n<ng-container *ngIf=\"{ searchIteration: searchIteration$ | async } as data\">\n <div\n class=\"replace-form\"\n *ngIf=\"isReplace\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Replace with</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-button\n (click)=\"replace()\">\n Replace\n </button>\n </div>\n <div class=\"search-options\">\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-up' : 'icon-arrow-down' }}\"></mat-icon>\n </button>\n <div class=\"counter\">\n <span>{{ data.searchIteration?.current ?? 0 }} of {{ data.searchIteration?.total ?? 0 }}</span>\n </div>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Close\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{min-height:56px;max-width:100%;display:block;font-size:10px;padding:3px}.close-icon{position:absolute;right:1px;top:1px}.search-form,.replace-form,.search-options{display:flex}mat-form-field{padding-left:10px}.mdc-button{font-size:12px;padding:0 8px;min-width:unset}.search-options{line-height:40px}.search-options .counter{text-align:center;flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorSearchDialogComponent, decorators: [{
68
- type: Component,
69
- args: [{ standalone: true, imports: [CommonModule, FormsModule, MatButtonModule, MatIconModule, MatInputModule, MatTooltipModule, ReactiveFormsModule], providers: [ExternalElementService], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-editor-search-dialog', template: "<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Search for</mat-label>\n <input\n matInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findPrev()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onleft\"></mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findNext()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onright\"></mat-icon>\n </button>\n</div>\n<ng-container *ngIf=\"{ searchIteration: searchIteration$ | async } as data\">\n <div\n class=\"replace-form\"\n *ngIf=\"isReplace\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Replace with</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-button\n (click)=\"replace()\">\n Replace\n </button>\n </div>\n <div class=\"search-options\">\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-up' : 'icon-arrow-down' }}\"></mat-icon>\n </button>\n <div class=\"counter\">\n <span>{{ data.searchIteration?.current ?? 0 }} of {{ data.searchIteration?.total ?? 0 }}</span>\n </div>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Close\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{min-height:56px;max-width:100%;display:block;font-size:10px;padding:3px}.close-icon{position:absolute;right:1px;top:1px}.search-form,.replace-form,.search-options{display:flex}mat-form-field{padding-left:10px}.mdc-button{font-size:12px;padding:0 8px;min-width:unset}.search-options{line-height:40px}.search-options .counter{text-align:center;flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}\n"] }]
70
- }], ctorParameters: () => [{ type: i1.EditorService }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXNlYXJjaC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3Itc2VhcmNoL2VkaXRvci1zZWFyY2gtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yLXNlYXJjaC9lZGl0b3Itc2VhcmNoLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBWW5FLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBaUI7SUFTOUQsWUFBb0IsYUFBNEI7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFEUSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVJoRCxrQkFBYSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLG1CQUFjLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFckMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQU1kLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUc7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztZQUM5QixXQUFXLEVBQUUsSUFBSTtZQUNqQixTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsR0FBRztZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLO1lBQzlCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUM7SUFDTixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEgsQ0FBQztJQUVELGtCQUFrQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsR0FBRztnQkFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztnQkFDOUIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFNBQVMsRUFBRSxLQUFLO2FBQ25CLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBdERRLDJCQUEyQjttR0FBM0IsMkJBQTJCLHVFQU56QixDQUFDLHNCQUFzQixDQUFDLGlEQ2pCdkMsNHpFQTJFQSx5ZUQzRGMsWUFBWSx1TEFBRSxXQUFXLHNaQUFFLGVBQWUsd1VBQUUsYUFBYSxtTEFBRSxjQUFjLHNuQkFBRSxnQkFBZ0IsNFRBQUUsbUJBQW1COzs0RkFPakgsMkJBQTJCO2tCQVR2QyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsYUFDaEgsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFDbEIsdUJBQXVCLENBQUMsTUFBTSxZQUNyQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL2VkaXRvci9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtZWxlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3Qvb2JzZXJ2ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEl0ZXJhdGlvbiB9IGZyb20gJy4uL2VkaXRvci9jb3JlL2ludGVyZmFjZXMvc2VhcmNoLWl0ZXJhdGlvbi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtFeHRlcm5hbEVsZW1lbnRTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwcC1lZGl0b3Itc2VhcmNoLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICdlZGl0b3Itc2VhcmNoLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2VkaXRvci1zZWFyY2gtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yU2VhcmNoRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgT2JzZXJ2ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHNlYXJjaENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgcmVwbGFjZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgaXNSZXBsYWNlID0gZmFsc2U7XG5cbiAgICBzZWFyY2hJdGVyYXRpb24kOiBPYnNlcnZhYmxlPFNlYXJjaEl0ZXJhdGlvbj47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJdGVyYXRpb24kID0gdGhpcy5lZGl0b3JTZXJ2aWNlLnNlYXJjaEl0ZXJhdGlvbiQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uKCkpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5vcGVuU2VhcmNoRGlhbG9nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZmluZE5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWFyY2hPcHRpb25zID0ge1xuICAgICAgICAgICAgdGVybTogdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlLFxuICAgICAgICAgICAgc2tpcEN1cnJlbnQ6IHRydWUsXG4gICAgICAgICAgICBiYWNrd2FyZHM6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZmluZFByZXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWFyY2hPcHRpb25zID0ge1xuICAgICAgICAgICAgdGVybTogdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlLFxuICAgICAgICAgICAgc2tpcEN1cnJlbnQ6IHRydWUsXG4gICAgICAgICAgICBiYWNrd2FyZHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXRSZXBsYWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUmVwbGFjZSA9ICF0aGlzLmlzUmVwbGFjZTtcbiAgICB9XG5cbiAgICByZXBsYWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UucmVwbGFjZSA9IHsgcmVwbGFjZVZhbHVlOiB0aGlzLnJlcGxhY2VDb250cm9sLnZhbHVlLCBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlIH07XG4gICAgfVxuXG4gICAgc2VhcmNoU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDMwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2VhcmNoT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICB0ZXJtOiB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgc2tpcEN1cnJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJhY2t3YXJkczogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaW5lIHNlYXJjaC1mb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgZmxvYXRMYWJlbD1cImF1dG9cIlxuICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaCBmb3I8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaENvbnRyb2xcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiZmluZE5leHQoKVwiIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImZpbmRQcmV2KClcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctb25sZWZ0XCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImZpbmROZXh0KClcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctb25yaWdodFwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ7IHNlYXJjaEl0ZXJhdGlvbjogc2VhcmNoSXRlcmF0aW9uJCB8IGFzeW5jIH0gYXMgZGF0YVwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJyZXBsYWNlLWZvcm1cIlxuICAgICAgICAqbmdJZj1cImlzUmVwbGFjZVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgIGZsb2F0TGFiZWw9XCJhdXRvXCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlJlcGxhY2Ugd2l0aDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVwbGFjZUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZXBsYWNlKClcIiAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJyZXBsYWNlKClcIj5cbiAgICAgICAgICAgIFJlcGxhY2VcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1vcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiVG9nZ2xlIFJlcGxhY2UgTW9kZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0UmVwbGFjZSgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJ7eyBpc1JlcGxhY2UgPyAnaWNvbi1hcnJvdy11cCcgOiAnaWNvbi1hcnJvdy1kb3duJyB9fVwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlclwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgZGF0YS5zZWFyY2hJdGVyYXRpb24/LmN1cnJlbnQgPz8gMCB9fSBvZiB7eyBkYXRhLnNlYXJjaEl0ZXJhdGlvbj8udG90YWwgPz8gMCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQ2xvc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1jYW5jZWwtdGhpblwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,83 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatSelectModule } from '@angular/material/select';
6
- import { MatTooltipModule } from '@angular/material/tooltip';
7
- import { DEFAULT_FILE_NAME } from '../constants/default-file-name.const';
8
- import { ExternalElementService } from '../editor/custom-components/external-element/external-element.service';
9
- import { Mode } from '../enums/mode.enum';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "@angular/material/button";
13
- import * as i3 from "@angular/material/icon";
14
- import * as i4 from "@angular/material/tooltip";
15
- export class EditorTitleComponent {
16
- set rename$(value) {
17
- value?.subscribe(() => this.setTitleActive(this.titleSpan.nativeElement));
18
- }
19
- constructor(cdr) {
20
- this.cdr = cdr;
21
- this.changeMode = new EventEmitter();
22
- this.renameDocumentTitle = new EventEmitter();
23
- this.selectedMode = Mode.Edit;
24
- this.modeOptions = [
25
- {
26
- id: Mode.Edit,
27
- text: 'Edit document',
28
- icon: 'icon-edit-mode'
29
- },
30
- {
31
- id: Mode.Fill,
32
- text: 'Fill or print document',
33
- icon: 'icon-fill-done'
34
- },
35
- {
36
- id: Mode.View,
37
- text: 'Read or print document',
38
- icon: 'icon-view'
39
- }
40
- ];
41
- }
42
- onRenameTitle(event) {
43
- event.target.contentEditable = 'false';
44
- this.title = event.target.textContent || DEFAULT_FILE_NAME;
45
- event.target.innerText = this.title;
46
- this.renameDocumentTitle.emit(this.title);
47
- this.cdr.detectChanges();
48
- }
49
- onFocus(event) {
50
- this.setTitleActive(event.target);
51
- }
52
- setTitleActive(element) {
53
- if (element.contentEditable === 'true') {
54
- return;
55
- }
56
- element.contentEditable = 'true';
57
- const range = document.createRange();
58
- const sel = window.getSelection();
59
- range.setStart(element.firstChild, element.textContent.length);
60
- range.collapse(true);
61
- sel.removeAllRanges();
62
- sel.addRange(range);
63
- element.focus();
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorTitleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorTitleComponent, isStandalone: true, selector: "app-editor-title", inputs: { title: "title", rename$: "rename$" }, outputs: { changeMode: "changeMode", renameDocumentTitle: "renameDocumentTitle" }, providers: [ExternalElementService], viewQueries: [{ propertyName: "titleSpan", first: true, predicate: ["titleSpan"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"menu-header\">\n <div class=\"file-name\">\n <span\n #titleSpan\n class=\"title\"\n matTooltip=\"Double click to rename\"\n (blur)=\"onRenameTitle($event)\"\n (keydown.enter)=\"$event.target.blur()\"\n (dblclick)=\"onFocus($event)\">\n {{ title }}\n </span>\n </div>\n</div>\n<div class=\"editor-mode\">\n <button\n *ngFor=\"let mode of modeOptions\"\n mat-icon-button\n [class.selected-mode]=\"selectedMode === mode.id\"\n [matTooltip]=\"mode.text\"\n (click)=\"selectedMode = mode.id; changeMode.emit(mode.id)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ mode.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{display:flex;position:relative;align-items:center;width:100%}.menu-header{width:35%;line-height:0;z-index:1}.file-name{display:block;margin:0 8px;overflow:hidden}.title{font-size:18px;font-weight:400;line-height:normal;outline:none;display:inline-block;white-space:nowrap;min-width:1px;overflow:hidden;max-width:100%;-webkit-user-select:none;user-select:none}.title:not(:focus){text-overflow:ellipsis}.editor-mode{display:flex;position:absolute;justify-content:center;width:100%}.mdc-icon-button{min-width:40px;min-height:40px;width:40px;height:40px;padding:8px}.mdc-icon-button:not(:first-child){margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatSelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorTitleComponent, decorators: [{
69
- type: Component,
70
- args: [{ standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, MatSelectModule], providers: [ExternalElementService], selector: 'app-editor-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"menu-header\">\n <div class=\"file-name\">\n <span\n #titleSpan\n class=\"title\"\n matTooltip=\"Double click to rename\"\n (blur)=\"onRenameTitle($event)\"\n (keydown.enter)=\"$event.target.blur()\"\n (dblclick)=\"onFocus($event)\">\n {{ title }}\n </span>\n </div>\n</div>\n<div class=\"editor-mode\">\n <button\n *ngFor=\"let mode of modeOptions\"\n mat-icon-button\n [class.selected-mode]=\"selectedMode === mode.id\"\n [matTooltip]=\"mode.text\"\n (click)=\"selectedMode = mode.id; changeMode.emit(mode.id)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ mode.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{display:flex;position:relative;align-items:center;width:100%}.menu-header{width:35%;line-height:0;z-index:1}.file-name{display:block;margin:0 8px;overflow:hidden}.title{font-size:18px;font-weight:400;line-height:normal;outline:none;display:inline-block;white-space:nowrap;min-width:1px;overflow:hidden;max-width:100%;-webkit-user-select:none;user-select:none}.title:not(:focus){text-overflow:ellipsis}.editor-mode{display:flex;position:absolute;justify-content:center;width:100%}.mdc-icon-button{min-width:40px;min-height:40px;width:40px;height:40px;padding:8px}.mdc-icon-button:not(:first-child){margin-left:10px}\n"] }]
71
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { title: [{
72
- type: Input
73
- }], rename$: [{
74
- type: Input
75
- }], changeMode: [{
76
- type: Output
77
- }], renameDocumentTitle: [{
78
- type: Output
79
- }], titleSpan: [{
80
- type: ViewChild,
81
- args: ['titleSpan', { static: true }]
82
- }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yLXRpdGxlL2VkaXRvci10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10aXRsZS9lZGl0b3ItdGl0bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQVcxQyxNQUFNLE9BQU8sb0JBQW9CO0lBRzdCLElBQ0ksT0FBTyxDQUFDLEtBQXVCO1FBQy9CLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJ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b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgREVGQVVMVF9GSUxFX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdC1maWxlLW5hbWUuY29uc3QnO1xuaW1wb3J0IHsgRXh0ZXJuYWxFbGVtZW50U2VydmljZSB9IGZyb20gJy4uL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLWVsZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vZW51bXMvbW9kZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbRXh0ZXJuYWxFbGVtZW50U2VydmljZV0sXG4gICAgc2VsZWN0b3I6ICdhcHAtZWRpdG9yLXRpdGxlJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLXRpdGxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0b3ItdGl0bGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JUaXRsZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJlbmFtZSQodmFsdWU6IE9ic2VydmFibGU8dm9pZD4pIHtcbiAgICAgICAgdmFsdWU/LnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldFRpdGxlQWN0aXZlKHRoaXMudGl0bGVTcGFuLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlTW9kZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kZT4oKTtcblxuICAgIEBPdXRwdXQoKSByZW5hbWVEb2N1bWVudFRpdGxlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCd0aXRsZVNwYW4nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0aXRsZVNwYW46IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgc2VsZWN0ZWRNb2RlID0gTW9kZS5FZGl0O1xuXG4gICAgbW9kZU9wdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBNb2RlLkVkaXQsXG4gICAgICAgICAgICB0ZXh0OiAnRWRpdCBkb2N1bWVudCcsXG4gICAgICAgICAgICBpY29uOiAnaWNvbi1lZGl0LW1vZGUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBNb2RlLkZpbGwsXG4gICAgICAgICAgICB0ZXh0OiAnRmlsbCBvciBwcmludCBkb2N1bWVudCcsXG4gICAgICAgICAgICBpY29uOiAnaWNvbi1maWxsLWRvbmUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBNb2RlLlZpZXcsXG4gICAgICAgICAgICB0ZXh0OiAnUmVhZCBvciBwcmludCBkb2N1bWVudCcsXG4gICAgICAgICAgICBpY29uOiAnaWNvbi12aWV3J1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG9uUmVuYW1lVGl0bGUoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY29udGVudEVkaXRhYmxlID0gJ2ZhbHNlJztcbiAgICAgICAgdGhpcy50aXRsZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRleHRDb250ZW50IHx8IERFRkFVTFRfRklMRV9OQU1FO1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQgPSB0aGlzLnRpdGxlO1xuICAgICAgICB0aGlzLnJlbmFtZURvY3VtZW50VGl0bGUuZW1pdCh0aGlzLnRpdGxlKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRUaXRsZUFjdGl2ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGl0bGVBY3RpdmUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuY29udGVudEVkaXRhYmxlID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQuY29udGVudEVkaXRhYmxlID0gJ3RydWUnO1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoZWxlbWVudC5maXJzdENoaWxkLCBlbGVtZW50LnRleHRDb250ZW50Lmxlbmd0aCk7XG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWVudS1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1uYW1lXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAjdGl0bGVTcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRpdGxlXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEb3VibGUgY2xpY2sgdG8gcmVuYW1lXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9uUmVuYW1lVGl0bGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQudGFyZ2V0LmJsdXIoKVwiXG4gICAgICAgICAgICAoZGJsY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlZGl0b3ItbW9kZVwiPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IG1vZGUgb2YgbW9kZU9wdGlvbnNcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkLW1vZGVdPVwic2VsZWN0ZWRNb2RlID09PSBtb2RlLmlkXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwibW9kZS50ZXh0XCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkTW9kZSA9IG1vZGUuaWQ7IGNoYW5nZU1vZGUuZW1pdChtb2RlLmlkKVwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwie3sgbW9kZS5pY29uIH19XCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19