@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.
- package/README.md +5 -4
- package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +61 -0
- package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +7 -0
- package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +47 -0
- package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +32 -0
- package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +64 -0
- package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +89 -0
- package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +22 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +111 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +37 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +49 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +90 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +81 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +28 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +22 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +53 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +18 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +27 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +71 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +94 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +24 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +65 -0
- package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +84 -0
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +90 -0
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +117 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +8 -0
- package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/numbering-templates.const.mjs +6 -6
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +157 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +8 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +11 -0
- package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.mjs +1 -1
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +6 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +34 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +26 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +60 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +55 -0
- package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +54 -0
- package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +84 -0
- package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +123 -0
- package/esm2022/lib/editor/components/edges/edge-element.model.mjs +9 -0
- package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +6 -0
- package/esm2022/lib/editor/components/edges/edge.component.mjs +99 -0
- package/esm2022/lib/editor/components/edges/edges.mjs +108 -0
- package/esm2022/lib/editor/components/edges/page-type.enum.mjs +7 -0
- package/esm2022/lib/editor/components/editor.component.mjs +112 -0
- package/esm2022/lib/editor/components/external-element/external-element.service.mjs +6 -0
- package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +4 -0
- package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +2 -0
- package/esm2022/lib/editor/components/external-element/external.component.mjs +41 -0
- package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +9 -0
- package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +11 -0
- package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +15 -0
- package/esm2022/lib/editor/components/image/components/image.component.mjs +88 -0
- package/esm2022/lib/editor/components/image/image-api.service.mjs +36 -0
- package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +38 -0
- package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +2 -0
- package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +19 -0
- package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +12 -0
- package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +106 -0
- package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +2 -0
- package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +52 -0
- package/esm2022/lib/editor/components/image/size.mjs +2 -0
- package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +59 -0
- package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +18 -0
- package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +43 -0
- package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +2 -0
- package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +3 -0
- package/esm2022/lib/editor/components/shared/custom-content.mjs +2 -0
- package/esm2022/lib/editor/components/shared/services/component.service.mjs +64 -0
- package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +163 -0
- package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +55 -0
- package/esm2022/lib/editor/components/tab/tab.component.mjs +44 -0
- package/esm2022/lib/editor/components/tab/tab.helper.mjs +6 -0
- package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +118 -0
- package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +97 -0
- package/esm2022/lib/editor/components/table/components/table.component.mjs +401 -0
- package/esm2022/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.mjs +1 -1
- package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +8 -0
- package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +6 -0
- package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +18 -0
- package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +9 -0
- package/esm2022/lib/editor/components/table/models/row-data.model.mjs +8 -0
- package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +7 -0
- package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +74 -0
- package/esm2022/lib/editor/components/table/selection/table-selection.mjs +366 -0
- package/esm2022/lib/editor/content/constants/display-values.const.mjs +8 -0
- package/esm2022/lib/editor/content/constants/document-info.const.mjs +13 -0
- package/esm2022/lib/editor/content/constants/editor.const.mjs +62 -0
- package/esm2022/lib/editor/content/contents.interface.mjs +2 -0
- package/esm2022/lib/editor/content/display-data/display-token.model.mjs +12 -0
- package/esm2022/lib/editor/content/display-data/document.mjs +134 -0
- package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +10 -0
- package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +11 -0
- package/esm2022/lib/editor/content/display-data/indent.model.mjs +9 -0
- package/esm2022/lib/editor/content/display-data/line-info.model.mjs +9 -0
- package/esm2022/lib/editor/content/display-data/lines.mjs +96 -0
- package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +226 -0
- package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +2 -0
- package/esm2022/lib/editor/content/display-data/paragraph.mjs +52 -0
- package/esm2022/lib/editor/content/display-data/text-line-info.mjs +34 -0
- package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +2 -0
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +96 -0
- package/esm2022/lib/{+shared/editor → editor/content}/helpers/format.helper.mjs +1 -1
- package/esm2022/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.mjs +1 -1
- package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +9 -0
- package/esm2022/lib/editor/content/margin.model.mjs +16 -0
- package/esm2022/lib/editor/content/page-vertical-data.model.mjs +9 -0
- package/esm2022/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.mjs +1 -1
- package/esm2022/lib/editor/core/event-emitting.mjs +56 -0
- package/esm2022/lib/editor/display/cell.interface.mjs +2 -0
- package/esm2022/lib/editor/display/event.helper.mjs +18 -0
- package/esm2022/lib/editor/display/layers/cursor.layer.mjs +101 -0
- package/esm2022/lib/editor/display/layers/layer.config.mjs +2 -0
- package/esm2022/lib/editor/display/layers/pages.layer.mjs +97 -0
- package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +7 -0
- package/esm2022/lib/editor/display/layers/print.text.layer.mjs +7 -0
- package/esm2022/lib/editor/display/layers/selection.layer.mjs +113 -0
- package/esm2022/lib/editor/display/layers/text.layer.mjs +203 -0
- package/esm2022/lib/editor/display/print/print.helper.mjs +40 -0
- package/esm2022/lib/editor/display/print/print.renderer.mjs +67 -0
- package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +7 -0
- package/esm2022/lib/editor/display/render-changes.interface.mjs +2 -0
- package/esm2022/lib/editor/display/render-changes.model.mjs +25 -0
- package/esm2022/lib/editor/display/renderer.mjs +206 -0
- package/esm2022/lib/editor/display/rendering.helper.mjs +187 -0
- package/esm2022/lib/editor/display/renderloop.mjs +26 -0
- package/esm2022/lib/editor/display/virtual.renderer.mjs +317 -0
- package/esm2022/lib/editor/display/visible-range.interface.mjs +2 -0
- package/esm2022/lib/editor/editor.module.mjs +67 -0
- package/esm2022/lib/editor/execution/distance.model.mjs +10 -0
- package/esm2022/lib/editor/execution/edit.session.mjs +1117 -0
- package/esm2022/lib/editor/execution/editor.mjs +1346 -0
- package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +18 -0
- package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +42 -0
- package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +64 -0
- package/esm2022/lib/editor/execution/helpers/page.helper.mjs +12 -0
- package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +41 -0
- package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +169 -0
- package/esm2022/lib/editor/execution/regulator.service.mjs +198 -0
- package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +19 -0
- package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +15 -0
- package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +8 -0
- package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +3 -0
- package/esm2022/lib/editor/execution/targeting/session.model.mjs +10 -0
- package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +2 -0
- package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +2 -0
- package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +88 -0
- package/esm2022/lib/editor/gadgets/history/operation-history.mjs +206 -0
- package/esm2022/lib/editor/gadgets/history/operation.type.mjs +2 -0
- package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +7 -0
- package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +9 -0
- package/esm2022/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.mjs +1 -1
- package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +82 -0
- package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +7 -0
- package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +18 -0
- package/esm2022/lib/editor/gadgets/scrollbar.mjs +81 -0
- package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +2 -0
- package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +2 -0
- package/esm2022/lib/editor/gadgets/search/search.mjs +231 -0
- package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +5 -0
- package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +20 -0
- package/esm2022/lib/editor/interaction/base.handler.mjs +19 -0
- package/esm2022/lib/editor/interaction/document.handler.mjs +27 -0
- package/esm2022/lib/editor/interaction/editor.service.mjs +325 -0
- package/esm2022/lib/editor/interaction/input.handler.mjs +149 -0
- package/esm2022/lib/{+shared/enums → editor/interaction}/mode.enum.mjs +1 -1
- package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +7 -0
- package/esm2022/lib/editor/interaction/mouse.handler.mjs +49 -0
- package/esm2022/lib/editor/interaction/text-input.mjs +53 -0
- package/esm2022/lib/editor/operations/commands.service.mjs +20 -0
- package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +32 -0
- package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +7 -0
- package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +9 -0
- package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +15 -0
- package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +55 -0
- package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +19 -0
- package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +28 -0
- package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
- package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +114 -0
- package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +16 -0
- package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +374 -0
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +432 -0
- package/esm2022/lib/editor/operations/save-commands.helper.mjs +127 -0
- package/esm2022/lib/editor/operations/target-operations.helper.mjs +23 -0
- package/esm2022/lib/editor/positioning/alignments.const.mjs +8 -0
- package/esm2022/lib/editor/positioning/content.helper.mjs +36 -0
- package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +13 -0
- package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +2 -0
- package/esm2022/lib/editor/positioning/insert-index.interface.mjs +2 -0
- package/esm2022/lib/editor/positioning/line-width.helper.mjs +13 -0
- package/esm2022/lib/editor/positioning/position.helper.mjs +194 -0
- package/esm2022/lib/editor/positioning/range.mjs +94 -0
- package/esm2022/lib/editor/positioning/selection.mjs +307 -0
- package/esm2022/lib/editor/revision.helper.mjs +91 -0
- package/esm2022/lib/models/generated/command.model.mjs +5 -1
- package/esm2022/lib/models/generated/insert-paragraph.model.mjs +20 -0
- package/esm2022/lib/models/generated/replace.model.mjs +5 -1
- package/esm2022/public-api.mjs +36 -33
- package/fesm2022/talrace-ngx-noder.mjs +3583 -3278
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/{+shared → apart-components}/add-link-dialog/add-link-dialog.component.d.ts +1 -1
- package/lib/apart-components/add-link-mobile/add-link-mobile.component.d.ts +19 -0
- package/lib/{+shared → apart-components}/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/lib/{+shared → apart-components}/editor-search/editor-search-dialog.component.d.ts +6 -7
- package/lib/{+shared → apart-components}/editor-title/editor-title.component.d.ts +4 -3
- package/lib/apart-components/editor-title-mobile/editor-title-mobile.component.d.ts +6 -0
- package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +49 -0
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/color-picker/color-picker.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/font.component.d.ts +2 -2
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/font-size.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/font-style.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/format.component.d.ts +2 -2
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/heading/heading.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/numbering.component.d.ts +3 -3
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/print/print.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/undo-redo.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/zoom/zoom.component.d.ts +1 -1
- package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +36 -0
- package/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.d.ts +14 -0
- package/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.d.ts +23 -0
- package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +26 -0
- package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +40 -0
- package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +32 -0
- package/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.d.ts +2 -0
- package/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.d.ts +6 -0
- package/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.d.ts +9 -0
- package/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.d.ts +14 -0
- package/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.d.ts +38 -0
- package/lib/{+shared/editor-toolbar/helpers → apart-components/editor-toolbar/shared}/toolbar-styles.helper.d.ts +2 -2
- package/lib/{+shared → apart-components}/insert-table/insert-table.component.d.ts +1 -1
- package/lib/apart-components/insert-table-mobile/insert-table-mobile.component.d.ts +30 -0
- package/lib/apart-components/text-format-mobile/text-format-mobile.component.d.ts +35 -0
- package/lib/{+shared/editor/core/models → editor/components/edges}/edge-element.model.d.ts +1 -1
- package/lib/editor/components/edges/edge.component.d.ts +44 -0
- package/lib/{+shared/editor/core → editor}/components/edges/edges.d.ts +7 -7
- package/lib/{+shared/editor → editor/components}/editor.component.d.ts +10 -7
- package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-sidenav.interface.d.ts +1 -1
- package/lib/{+shared/editor/custom-components → editor/components}/external-element/external.component.d.ts +4 -4
- package/lib/{+shared/editor/custom-components → editor/components}/image/components/image.component.d.ts +4 -4
- package/lib/editor/components/image/image-api.service.d.ts +17 -0
- package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/resizer.component.d.ts +2 -2
- package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-wrapper.d.ts +1 -1
- package/lib/{+shared/editor/custom-components → editor/components}/shared/abstract/base.component.d.ts +4 -4
- package/lib/editor/components/shared/abstract/destroy.component.d.ts +9 -0
- package/lib/{+shared/editor/custom-components/shared/helpers → editor/components/shared}/custom-component.hepler.d.ts +3 -3
- package/lib/editor/components/shared/custom-components.interface.d.ts +13 -0
- package/lib/editor/components/shared/custom-content.d.ts +5 -0
- package/lib/{+shared/editor/custom-components/shared/services/component → editor/components/shared/services}/component.service.d.ts +1 -1
- package/lib/{+shared/editor/custom-components/shared/services/custom-content → editor/components/shared/services}/custom-content.service.d.ts +14 -12
- package/lib/{+shared/editor/custom-components → editor/components}/tab/tab.component.d.ts +2 -2
- package/lib/{+shared/editor/custom-components → editor/components}/table/cell-resizer/cell-resizer.d.ts +1 -1
- package/lib/{+shared/editor/custom-components → editor/components}/table/components/table-cell.component.d.ts +10 -10
- package/lib/{+shared/editor/custom-components → editor/components}/table/components/table.component.d.ts +8 -8
- package/lib/{+shared/editor/custom-components → editor/components}/table/overlay-menu/overlay-menu.component.d.ts +2 -2
- package/lib/{+shared/editor/custom-components → editor/components}/table/selection/table-selection.d.ts +3 -3
- package/lib/{+shared/editor/core → editor/content}/constants/editor.const.d.ts +3 -3
- package/lib/editor/content/contents.interface.d.ts +22 -0
- package/lib/{+shared/editor/core/models → editor/content/display-data}/display-token.model.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/content/display-data}/document.d.ts +9 -9
- package/lib/{+shared/editor/core/models → editor/content/display-data}/format-ext.model.d.ts +1 -1
- package/lib/{+shared/editor/execution/models → editor/content/display-data}/general-properties.model.d.ts +1 -1
- package/lib/{+shared/editor/core/layers → editor/content/display-data}/lines.d.ts +1 -1
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/pages.wrap.d.ts +13 -13
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/paragraph.d.ts +4 -4
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/text-line-info.d.ts +2 -2
- package/lib/editor/content/helpers/content-style.helper.d.ts +11 -0
- package/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.d.ts +1 -1
- package/lib/{+shared/editor/core/paging → editor/content}/page-vertical-data.model.d.ts +1 -1
- package/lib/{+shared/editor/core/base → editor/core}/event-emitting.d.ts +0 -5
- package/lib/{+shared/editor/core → editor/display}/layers/cursor.layer.d.ts +7 -8
- package/lib/{+shared/editor/core/interfaces → editor/display/layers}/layer.config.d.ts +2 -2
- package/lib/{+shared/editor/core → editor/display}/layers/pages.layer.d.ts +5 -6
- package/lib/editor/display/layers/print.text.layer.d.ts +4 -0
- package/lib/{+shared/editor/core → editor/display}/layers/selection.layer.d.ts +5 -6
- package/lib/editor/display/layers/text.layer.d.ts +34 -0
- package/lib/{+shared/helpers → editor/display/print}/print.helper.d.ts +3 -3
- package/lib/editor/display/print/print.renderer.d.ts +23 -0
- package/lib/{+shared/editor/core/helpers → editor/display/print}/print.rendering.helper.d.ts +2 -2
- package/lib/{+shared/editor/core/models → editor/display}/render-changes.model.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/display}/renderer.d.ts +10 -13
- package/lib/{+shared/editor/core/helpers → editor/display}/rendering.helper.d.ts +7 -7
- package/lib/{+shared/editor/core/layers → editor/display}/renderloop.d.ts +2 -2
- package/lib/{+shared/editor/core → editor/display}/virtual.renderer.d.ts +14 -29
- package/lib/{+shared/editor → editor}/editor.module.d.ts +12 -10
- package/lib/{+shared/editor/core → editor/execution}/edit.session.d.ts +65 -63
- package/lib/{+shared/editor/core → editor/execution}/editor.d.ts +48 -43
- package/lib/editor/execution/helpers/delta.helper.d.ts +6 -0
- package/lib/{+shared/editor/core → editor/execution}/helpers/format-style.helper.d.ts +3 -5
- package/lib/{+shared/editor/core → editor/execution}/helpers/page.helper.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph-style.helper.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph.helper.d.ts +11 -8
- package/lib/{+shared/editor → editor}/execution/regulator.service.d.ts +15 -14
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/cell-session-source.model.d.ts +3 -3
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/edge-session-source.model.d.ts +3 -3
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/main-session-source.model.d.ts +1 -1
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session-source.model.d.ts +1 -1
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session.model.d.ts +3 -3
- package/lib/{+shared/editor/core/helpers → editor/gadgets/font-metrics}/font-metrics.helper.d.ts +1 -1
- package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation-history.d.ts +9 -7
- package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation.type.d.ts +2 -1
- package/lib/{+shared/editor/core/models → editor/gadgets/numbering}/numbering-data.model.d.ts +1 -1
- package/lib/{+shared/editor/core/helpers → editor/gadgets/numbering}/numbering.helper.d.ts +8 -8
- package/lib/{+shared/editor/helpers → editor/gadgets/page-break}/break.helper.d.ts +2 -2
- package/lib/{+shared/editor/core/layers → editor/gadgets}/scrollbar.d.ts +9 -18
- package/lib/{+shared/editor/core → editor/gadgets/search}/search.d.ts +4 -4
- package/lib/editor/interaction/base.handler.d.ts +9 -0
- package/lib/editor/interaction/document.handler.d.ts +10 -0
- package/lib/{+shared/editor → editor}/interaction/editor.service.d.ts +24 -18
- package/lib/{+shared/editor → editor}/interaction/input.handler.d.ts +4 -5
- package/lib/{+shared/editor → editor}/interaction/mouse.handler.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/enums/command-type.enum.d.ts +11 -10
- package/lib/{+shared/editor → editor}/operations/helpers/break-operations.helper.d.ts +2 -2
- package/lib/{+shared/editor → editor}/operations/helpers/format-operations.helper.d.ts +2 -2
- package/lib/editor/operations/helpers/image-operations.helper.d.ts +7 -0
- package/lib/{+shared/editor → editor}/operations/helpers/indexed-element-operations.helper.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/helpers/link-operations.helper.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/helpers/numbering-operations.helper.d.ts +3 -3
- package/lib/{+shared/editor → editor}/operations/helpers/paragraph-operations.helper.d.ts +3 -2
- package/lib/{+shared/editor → editor}/operations/helpers/tab-operations.helper.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/helpers/table-operations.helper.d.ts +6 -6
- package/lib/{+shared/editor/operations/helpers → editor/operations}/operations-helper.helper.d.ts +21 -19
- package/lib/{+shared/editor/operations/helpers → editor/operations}/save-commands.helper.d.ts +28 -22
- package/lib/editor/operations/target-operations.helper.d.ts +6 -0
- package/lib/{+shared/editor/helpers → editor/positioning}/content.helper.d.ts +10 -5
- package/lib/editor/positioning/cursor-paragraph.d.ts +7 -0
- package/lib/{+shared/editor/core/interfaces → editor/positioning}/cursor-position.interface.d.ts +1 -1
- package/lib/{+shared/editor/core/helpers → editor/positioning}/line-width.helper.d.ts +2 -2
- package/lib/{+shared/editor/core/helpers → editor/positioning}/position.helper.d.ts +9 -9
- package/lib/{+shared/editor/core → editor/positioning}/range.d.ts +12 -12
- package/lib/{+shared/editor → editor}/positioning/selection.d.ts +10 -10
- package/lib/editor/revision.helper.d.ts +15 -0
- package/lib/models/generated/command.model.d.ts +2 -0
- package/lib/models/generated/insert-paragraph.model.d.ts +10 -0
- package/lib/models/generated/replace.model.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +35 -32
- package/src/_ngx-noder.theme.scss +14 -9
- package/src/assets/fonts/nc-iconfont.css +112 -106
- package/src/assets/fonts/nc-iconfont.eot +0 -0
- package/src/assets/fonts/nc-iconfont.svg +4 -1
- package/src/assets/fonts/nc-iconfont.ttf +0 -0
- package/src/assets/fonts/nc-iconfont.woff +0 -0
- package/src/lib/{+shared → apart-components}/add-link-dialog/_add-link-dialog.theme.scss +1 -1
- package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +25 -0
- package/src/lib/{+shared → apart-components}/confirm-dialog/_theme.scss +1 -1
- package/src/lib/{+shared → apart-components}/editor-title/_editor-title.theme.scss +1 -1
- package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +42 -0
- package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +27 -0
- package/src/lib/apart-components/editor-toolbar/_theme.scss +25 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +12 -0
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/_font.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/_font-size.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/_font-style.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/_format.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/_numbering.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/_undo-redo.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components}/menu-dropdowns/_menu-dropdowns.theme.scss +1 -1
- package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +33 -0
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components}/toolbar-actions/_toolbar-actions.theme.scss +2 -1
- package/src/lib/{+shared → apart-components}/insert-table/_insert-table.theme.scss +1 -1
- package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +54 -0
- package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +86 -0
- package/src/lib/{+shared/editor → editor}/_theme.scss +1 -1
- package/src/lib/{+shared/editor → editor/components}/_editor.theme.scss +10 -2
- package/src/scss/base-editor.scss +329 -0
- package/src/styles.scss +3 -58
- package/esm2022/lib/+shared/abstract/base-api.service.mjs +0 -99
- package/esm2022/lib/+shared/abstract/observer.component.mjs +0 -24
- package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +0 -71
- package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +0 -32
- package/esm2022/lib/+shared/constants/default-file-name.const.mjs +0 -2
- package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +0 -3
- package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +0 -71
- package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +0 -6
- package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +0 -100
- package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +0 -104
- package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +0 -8
- package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +0 -6
- package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +0 -15
- package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +0 -8
- package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +0 -13
- package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +0 -62
- package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +0 -5
- package/esm2022/lib/+shared/editor/core/document.mjs +0 -134
- package/esm2022/lib/+shared/editor/core/edit.session.mjs +0 -1099
- package/esm2022/lib/+shared/editor/core/editor.mjs +0 -1274
- package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +0 -156
- package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +0 -18
- package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +0 -42
- package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +0 -18
- package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +0 -88
- package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +0 -72
- package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +0 -13
- package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +0 -83
- package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +0 -12
- package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +0 -41
- package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +0 -169
- package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +0 -194
- package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +0 -187
- package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +0 -20
- package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +0 -53
- package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +0 -103
- package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +0 -99
- package/esm2022/lib/+shared/editor/core/layers/lines.mjs +0 -96
- package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +0 -106
- package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +0 -26
- package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +0 -100
- package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +0 -115
- package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +0 -124
- package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +0 -12
- package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +0 -10
- package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +0 -10
- package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +0 -16
- package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +0 -25
- package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +0 -226
- package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +0 -52
- package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +0 -34
- package/esm2022/lib/+shared/editor/core/point.mjs +0 -13
- package/esm2022/lib/+shared/editor/core/print.renderer.mjs +0 -72
- package/esm2022/lib/+shared/editor/core/range.mjs +0 -94
- package/esm2022/lib/+shared/editor/core/renderer.mjs +0 -217
- package/esm2022/lib/+shared/editor/core/search.mjs +0 -231
- package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +0 -356
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +0 -6
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +0 -4
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +0 -41
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +0 -11
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +0 -15
- package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +0 -88
- package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +0 -38
- package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +0 -19
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +0 -12
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +0 -106
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +0 -52
- package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +0 -14
- package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +0 -59
- package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +0 -3
- package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +0 -43
- package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +0 -64
- package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +0 -115
- package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +0 -55
- package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +0 -44
- package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +0 -118
- package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +0 -97
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +0 -401
- package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +0 -8
- package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +0 -6
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +0 -18
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +0 -8
- package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +0 -7
- package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +0 -74
- package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +0 -364
- package/esm2022/lib/+shared/editor/editor.component.mjs +0 -98
- package/esm2022/lib/+shared/editor/editor.module.mjs +0 -82
- package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +0 -19
- package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +0 -15
- package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +0 -11
- package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +0 -8
- package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +0 -3
- package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +0 -10
- package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +0 -203
- package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +0 -18
- package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +0 -30
- package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +0 -6
- package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +0 -309
- package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +0 -160
- package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +0 -49
- package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +0 -184
- package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +0 -2
- package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +0 -7
- package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +0 -31
- package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +0 -9
- package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +0 -15
- package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +0 -56
- package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +0 -19
- package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
- package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +0 -28
- package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
- package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +0 -394
- package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +0 -83
- package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +0 -118
- package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +0 -16
- package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +0 -374
- package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +0 -23
- package/esm2022/lib/+shared/editor/positioning/selection.mjs +0 -307
- package/esm2022/lib/+shared/editor/store/editor.actions.mjs +0 -13
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +0 -71
- package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +0 -83
- package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +0 -32
- package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +0 -157
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +0 -101
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +0 -117
- package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +0 -8
- package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +0 -6
- package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +0 -45
- package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +0 -85
- package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +0 -80
- package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +0 -28
- package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +0 -23
- package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +0 -55
- package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +0 -194
- package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +0 -53
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +0 -18
- package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +0 -126
- package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +0 -27
- package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +0 -74
- package/esm2022/lib/+shared/helpers/print.helper.mjs +0 -40
- package/esm2022/lib/+shared/helpers/revision.helper.mjs +0 -91
- package/esm2022/lib/+shared/helpers/scaling.helper.mjs +0 -9
- package/esm2022/lib/+shared/helpers/validation.helper.mjs +0 -7
- package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +0 -54
- package/esm2022/lib/+shared/services/commands.service.mjs +0 -20
- package/esm2022/lib/+shared/services/custom-icon.service.mjs +0 -34
- package/lib/+shared/abstract/base-api.service.d.ts +0 -23
- package/lib/+shared/abstract/observer.component.d.ts +0 -10
- package/lib/+shared/constants/default-file-name.const.d.ts +0 -1
- package/lib/+shared/constants/paginator-sizes.const.d.ts +0 -2
- package/lib/+shared/editor/core/components/edges/edge.component.d.ts +0 -45
- package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +0 -5
- package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +0 -14
- package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +0 -16
- package/lib/+shared/editor/core/helpers/delta.helper.d.ts +0 -6
- package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +0 -5
- package/lib/+shared/editor/core/layers/edges.layer.d.ts +0 -24
- package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +0 -4
- package/lib/+shared/editor/core/layers/print.text.layer.d.ts +0 -5
- package/lib/+shared/editor/core/layers/text.layer.d.ts +0 -22
- package/lib/+shared/editor/core/point.d.ts +0 -7
- package/lib/+shared/editor/core/print.renderer.d.ts +0 -25
- package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +0 -8
- package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +0 -13
- package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +0 -5
- package/lib/+shared/editor/interfaces/contents.interface.d.ts +0 -22
- package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +0 -7
- package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +0 -6
- package/lib/+shared/editor/store/editor.actions.d.ts +0 -11
- package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +0 -6
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +0 -45
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +0 -31
- package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +0 -73
- package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +0 -49
- package/lib/+shared/helpers/revision.helper.d.ts +0 -15
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +0 -10
- package/src/lib/+shared/editor-toolbar/_theme.scss +0 -21
- package/src/scss/_mixins.scss +0 -14
- package/src/scss/_variables.scss +0 -1
- /package/lib/{+shared/helpers → apart-components/add-link-dialog}/validation.helper.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/svg-icons.const.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/alignment.enum.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-type.enum.d.ts +0 -0
- /package/lib/{+shared → apart-components/editor-toolbar/shared}/services/custom-icon.service.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor}/components/edges/edge-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/components/edges}/page-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-element.service.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-elements.const.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/element-data.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-element.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-sidenav.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/input-handler/image-input.handler.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/coordinate.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction-wrapper.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-delta.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components/image/interfaces → editor/components/image}/size.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components/shared/constants → editor/components/shared}/custom-content-markers.const.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components/shared/services/overlay → editor/components/shared/services}/overlay.service.d.ts +0 -0
- /package/lib/{+shared/editor/helpers → editor/components/tab}/tab.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/reisizer-side.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/vertical-merge.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-data.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-resizer-parameters.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/row-data.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/selection-range.model.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/content}/constants/display-values.const.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/content}/constants/document-info.const.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/content/display-data}/indent.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/content/display-data}/line-info.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/paragraph-info.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/toolbar-styles.interface.d.ts +0 -0
- /package/lib/{+shared/editor → editor/content}/helpers/format.helper.d.ts +0 -0
- /package/lib/{+shared → editor/content}/helpers/scaling.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/content}/margin.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/display}/cell.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/helpers → editor/display}/event.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/display}/layers/print.pages.layer.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/display}/render-changes.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/display}/visible-range.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/execution}/distance.model.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/execution}/helpers/dom.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core/constants → editor/gadgets/font-metrics}/editor-version.const.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/gadgets/font-metrics}/font-metric-size.interface.d.ts +0 -0
- /package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operations-history-info.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/gadgets/page-break}/break-types.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/replace.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/search-iteration.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/constants → editor/gadgets/unicode}/unicode-chars.const.d.ts +0 -0
- /package/lib/{+shared/editor/core/helpers → editor/gadgets/unicode}/unicode.helper.d.ts +0 -0
- /package/lib/{+shared/enums → editor/interaction}/mode.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/interaction}/mouse-button.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/keyboard → editor/interaction}/text-input.d.ts +0 -0
- /package/lib/{+shared/services → editor/operations}/commands.service.d.ts +0 -0
- /package/lib/{+shared/editor → editor}/operations/enums/target-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor → editor}/operations/helpers/content-operations.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core/constants → editor/positioning}/alignments.const.d.ts +0 -0
- /package/lib/{+shared/editor/interfaces → editor/positioning}/insert-index.interface.d.ts +0 -0
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { EdgeType } from '../components/edges/edge-type.enum';
|
|
2
|
-
import { EventEmitting } from '../base/event-emitting';
|
|
3
|
-
import { NumberingHelper } from '../helpers/numbering.helper';
|
|
4
|
-
import { PageHelper } from '../helpers/page.helper';
|
|
5
|
-
import { PageType } from '../enums/page-type.enum';
|
|
6
|
-
import { PageVerticalDataModel } from './page-vertical-data.model';
|
|
7
|
-
import { Paragraph } from './paragraph';
|
|
8
|
-
import { ParagraphHelper } from '../helpers/paragraph.helper';
|
|
9
|
-
export class PagesWrap extends EventEmitting {
|
|
10
|
-
get defaultVerticalData() {
|
|
11
|
-
return this.pagesVerticalData.find(x => x.pageType === PageType.Default);
|
|
12
|
-
}
|
|
13
|
-
constructor(pagesSpace, documentMargin, pageWidth, pageHeight = 0, customComponents) {
|
|
14
|
-
super();
|
|
15
|
-
this.pagesSpace = pagesSpace;
|
|
16
|
-
this.documentMargin = documentMargin;
|
|
17
|
-
this.pageWidth = pageWidth;
|
|
18
|
-
this.pageHeight = pageHeight;
|
|
19
|
-
this.customComponents = customComponents;
|
|
20
|
-
this.allPagesHeight = 0;
|
|
21
|
-
this.minHeight = 0;
|
|
22
|
-
this.paragraphs = [];
|
|
23
|
-
this.tabTokens = [];
|
|
24
|
-
this.minHeight = this.pageHeight + 2 * this.pagesSpace;
|
|
25
|
-
this.contentWidth = this.pageWidth - this.documentMargin.left - this.documentMargin.right;
|
|
26
|
-
this.initPagesVerticalData();
|
|
27
|
-
this.processTextLinesProperties = !this.pageHeight
|
|
28
|
-
? ParagraphHelper.processTextLinesPropertiesForSinglePage
|
|
29
|
-
: ParagraphHelper.processTextLinesProperties;
|
|
30
|
-
}
|
|
31
|
-
getParagraphTop(paragraphs, index) {
|
|
32
|
-
return paragraphs[index] ? paragraphs[index].distanceFromTop : 0;
|
|
33
|
-
}
|
|
34
|
-
getParagraphTopForPrint(paragraphs, index, pagesSpace) {
|
|
35
|
-
if (!paragraphs[index]) {
|
|
36
|
-
return 0;
|
|
37
|
-
}
|
|
38
|
-
const paragraph = paragraphs[index];
|
|
39
|
-
const pageNumber = paragraph.pageNumbers[0];
|
|
40
|
-
let pageBreakHeight = 0;
|
|
41
|
-
paragraph.textLinesInfo.forEach(linesInfo => {
|
|
42
|
-
if (linesInfo.isAfterPageBreak) {
|
|
43
|
-
pageBreakHeight = linesInfo.height;
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
return paragraph.distanceFromTop - pageNumber * pagesSpace - pageBreakHeight;
|
|
47
|
-
}
|
|
48
|
-
getParagraphHeight(paragraphs, index) {
|
|
49
|
-
return paragraphs[index] ? paragraphs[index].height : 0;
|
|
50
|
-
}
|
|
51
|
-
remove(index, length) {
|
|
52
|
-
this.paragraphs.splice(index, length);
|
|
53
|
-
}
|
|
54
|
-
reset(paragraphsLength) {
|
|
55
|
-
this.paragraphs.length = paragraphsLength;
|
|
56
|
-
}
|
|
57
|
-
set(row, lineInfos, numberings, docParagraphs) {
|
|
58
|
-
if (!this.paragraphs[row]) {
|
|
59
|
-
const numberingData = NumberingHelper.createDataModel(numberings, docParagraphs, row);
|
|
60
|
-
this.paragraphs[row] = new Paragraph(numberingData, lineInfos[0].offsetBefore, this.processTextLinesProperties);
|
|
61
|
-
}
|
|
62
|
-
this.paragraphs[row].width = this.contentWidth;
|
|
63
|
-
this.paragraphs[row].setTextLinesInfo(lineInfos);
|
|
64
|
-
}
|
|
65
|
-
getVisibleRange(offsetTop, scrollerHeight) {
|
|
66
|
-
let start = this.paragraphs.findIndex(x => offsetTop <= x.distanceFromTop + x.height);
|
|
67
|
-
if (start < 0) {
|
|
68
|
-
start = 0;
|
|
69
|
-
}
|
|
70
|
-
let startLineInfo = null;
|
|
71
|
-
const startParagraph = this.paragraphs[start];
|
|
72
|
-
if (startParagraph) {
|
|
73
|
-
const startParagraphOffsetTop = offsetTop - startParagraph.distanceFromTop;
|
|
74
|
-
startLineInfo = ParagraphHelper.getVisibleLineInfo(startParagraph?.textLinesInfo, startParagraphOffsetTop, 1);
|
|
75
|
-
}
|
|
76
|
-
if (!startLineInfo) {
|
|
77
|
-
return {
|
|
78
|
-
startParagraph: 0,
|
|
79
|
-
startLine: 0,
|
|
80
|
-
startScreenLine: 0,
|
|
81
|
-
startScreenFullLine: 0,
|
|
82
|
-
endParagraph: 0,
|
|
83
|
-
endLine: 0,
|
|
84
|
-
endScreenLine: 0,
|
|
85
|
-
endScreenFullLine: 0,
|
|
86
|
-
pages: [1]
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
let end = this.paragraphs.findIndex(x => offsetTop + scrollerHeight <= x.distanceFromTop + x.height);
|
|
90
|
-
if (end < 0) {
|
|
91
|
-
end = this.paragraphs.length - 1;
|
|
92
|
-
}
|
|
93
|
-
let endLineInfo = null;
|
|
94
|
-
const endParagraph = this.paragraphs[end];
|
|
95
|
-
if (endParagraph) {
|
|
96
|
-
const endParagraphOffsetTop = offsetTop + scrollerHeight - endParagraph.distanceFromTop;
|
|
97
|
-
endLineInfo = ParagraphHelper.getVisibleLineInfo(endParagraph?.textLinesInfo, endParagraphOffsetTop, -1);
|
|
98
|
-
}
|
|
99
|
-
const visiblePages = this.getVisiblePages(offsetTop, scrollerHeight);
|
|
100
|
-
return {
|
|
101
|
-
startParagraph: start,
|
|
102
|
-
startLine: startLineInfo.index,
|
|
103
|
-
startScreenLine: startLineInfo.screenIndex,
|
|
104
|
-
startScreenFullLine: startLineInfo.visibleScreenIndex,
|
|
105
|
-
endParagraph: end,
|
|
106
|
-
endLine: endLineInfo.index,
|
|
107
|
-
endScreenLine: endLineInfo.screenIndex,
|
|
108
|
-
endScreenFullLine: endLineInfo.visibleScreenIndex,
|
|
109
|
-
pages: visiblePages
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
processParagraphsProperties(startParagraphIndex, wrapParagraphIndex) {
|
|
113
|
-
this.setParagraphIndexes(wrapParagraphIndex);
|
|
114
|
-
const pagesInfo = { pagesVerticalData: this.pagesVerticalData, pagesSpace: this.pagesSpace };
|
|
115
|
-
let currentPage = startParagraphIndex === 0 ? 1 : this.paragraphs[startParagraphIndex - 1].lastPageNumber;
|
|
116
|
-
let pageVerticalData = PageHelper.getVerticalData(currentPage, this.pagesVerticalData);
|
|
117
|
-
for (let i = startParagraphIndex; i < this.paragraphs.length; i++) {
|
|
118
|
-
const prevParagraphInfo = this.getPreviousParagraphInfo(i);
|
|
119
|
-
const paragraph = this.paragraphs[i];
|
|
120
|
-
paragraph.processParagraphProperties(prevParagraphInfo, pagesInfo, this.customComponents.tables);
|
|
121
|
-
if (paragraph.firstPageNumber !== currentPage) {
|
|
122
|
-
currentPage = paragraph.firstPageNumber;
|
|
123
|
-
pageVerticalData = PageHelper.getVerticalData(paragraph.firstPageNumber, this.pagesVerticalData);
|
|
124
|
-
}
|
|
125
|
-
paragraph.distanceFromTop =
|
|
126
|
-
(paragraph.firstPageNumber - 1) * this.pageHeight +
|
|
127
|
-
this.pagesSpace * paragraph.firstPageNumber +
|
|
128
|
-
pageVerticalData.marginTop +
|
|
129
|
-
paragraph.pagePreviousContentHeight;
|
|
130
|
-
}
|
|
131
|
-
let pageHeight = this.pageHeight;
|
|
132
|
-
if (!pageHeight) {
|
|
133
|
-
pageHeight = this.getAllParagraphsHeight() + this.documentMargin.top + this.documentMargin.bottom;
|
|
134
|
-
this.minHeight = pageHeight + 2 * this.pagesSpace;
|
|
135
|
-
this.defaultVerticalData.contentHeight = pageHeight;
|
|
136
|
-
}
|
|
137
|
-
const lastPageNumber = this.paragraphs[this.paragraphs.length - 1].lastPageNumber;
|
|
138
|
-
this.allPagesHeight = lastPageNumber * (pageHeight + this.pagesSpace) + this.pagesSpace;
|
|
139
|
-
this.emit('pagesCountChanged', { pagesCount: lastPageNumber, pageHeight: pageHeight + 2 * this.pagesSpace });
|
|
140
|
-
}
|
|
141
|
-
getAllParagraphsHeight() {
|
|
142
|
-
return this.paragraphs.reduce((sum, x) => sum + x.height, 0);
|
|
143
|
-
}
|
|
144
|
-
destroy() {
|
|
145
|
-
this.removeAllListeners('pagesCountChanged');
|
|
146
|
-
}
|
|
147
|
-
updatePageVerticalData(edgeType, page, wrapParagraphIndex) {
|
|
148
|
-
const pageVerticalData = PageHelper.getVerticalData(page, this.pagesVerticalData);
|
|
149
|
-
const componentHeight = this.customComponents.edges.getComponentHeight(page, edgeType);
|
|
150
|
-
if (edgeType === EdgeType.Header) {
|
|
151
|
-
pageVerticalData.marginTop = componentHeight > this.documentMargin.top ? componentHeight : this.documentMargin.top;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
pageVerticalData.marginBottom = componentHeight > this.documentMargin.bottom ? componentHeight : this.documentMargin.bottom;
|
|
155
|
-
}
|
|
156
|
-
const newContentHeight = this.pageHeight - pageVerticalData.marginTop - pageVerticalData.marginBottom;
|
|
157
|
-
if (newContentHeight === pageVerticalData.contentHeight) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
pageVerticalData.contentHeight = newContentHeight;
|
|
161
|
-
this.processParagraphsProperties(0, wrapParagraphIndex);
|
|
162
|
-
}
|
|
163
|
-
getPreviousParagraphInfo(row) {
|
|
164
|
-
if (!row || !this.paragraphs.length) {
|
|
165
|
-
return { lastPage: 1, paragraphHeight: 0, paragraphLastLine: -1 };
|
|
166
|
-
}
|
|
167
|
-
const prevParagraph = this.paragraphs[row - 1];
|
|
168
|
-
return prevParagraph.getParagraphData();
|
|
169
|
-
}
|
|
170
|
-
getVisiblePages(offsetTop, containerHeight) {
|
|
171
|
-
const visiblePages = [];
|
|
172
|
-
let firstVisiblePage = offsetTop / (this.pageHeight + this.pagesSpace);
|
|
173
|
-
if (firstVisiblePage % 1 === 0) {
|
|
174
|
-
firstVisiblePage++;
|
|
175
|
-
}
|
|
176
|
-
let visiblePagesCount = containerHeight / (this.pageHeight + this.pagesSpace);
|
|
177
|
-
const partialPageOnScreenPercent = Math.trunc(((visiblePagesCount % 1) + (firstVisiblePage % 1)) * 100);
|
|
178
|
-
const pageSpaceHeightPercent = Math.trunc((this.pagesSpace / containerHeight) * 100);
|
|
179
|
-
if (partialPageOnScreenPercent - pageSpaceHeightPercent > 100) {
|
|
180
|
-
visiblePagesCount++;
|
|
181
|
-
}
|
|
182
|
-
visiblePagesCount = Math.ceil(visiblePagesCount);
|
|
183
|
-
firstVisiblePage = Math.ceil(firstVisiblePage);
|
|
184
|
-
const documentPagesCount = this.paragraphs[this.paragraphs.length - 1].lastPageNumber;
|
|
185
|
-
if (firstVisiblePage + visiblePagesCount - 1 > documentPagesCount) {
|
|
186
|
-
visiblePagesCount = documentPagesCount - firstVisiblePage + 1;
|
|
187
|
-
}
|
|
188
|
-
for (let i = 0; i < visiblePagesCount; i++) {
|
|
189
|
-
visiblePages.push(firstVisiblePage + i);
|
|
190
|
-
}
|
|
191
|
-
return visiblePages;
|
|
192
|
-
}
|
|
193
|
-
initPagesVerticalData() {
|
|
194
|
-
if (!this.customComponents.edges ||
|
|
195
|
-
(!this.customComponents.edges.headersComponents.length && !this.customComponents.edges.footersComponents.length)) {
|
|
196
|
-
this.pagesVerticalData = [
|
|
197
|
-
new PageVerticalDataModel({
|
|
198
|
-
marginTop: this.documentMargin.top,
|
|
199
|
-
marginBottom: this.documentMargin.bottom,
|
|
200
|
-
contentHeight: this.pageHeight - this.documentMargin.top - this.documentMargin.bottom,
|
|
201
|
-
pageType: PageType.Default
|
|
202
|
-
})
|
|
203
|
-
];
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const pageTypes = this.customComponents.edges.getUniquePageTypes();
|
|
207
|
-
this.pagesVerticalData = pageTypes.map(pageType => {
|
|
208
|
-
const headerHeight = this.customComponents.edges.getComponentHeightByPageType(pageType, EdgeType.Header);
|
|
209
|
-
const footerHeight = this.customComponents.edges.getComponentHeightByPageType(pageType, EdgeType.Footer);
|
|
210
|
-
const marginTop = Math.max(headerHeight, this.documentMargin.top);
|
|
211
|
-
const marginBottom = Math.max(footerHeight, this.documentMargin.bottom);
|
|
212
|
-
return new PageVerticalDataModel({
|
|
213
|
-
marginTop,
|
|
214
|
-
marginBottom,
|
|
215
|
-
contentHeight: this.pageHeight - marginTop - marginBottom,
|
|
216
|
-
pageType
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
setParagraphIndexes(wrapParagraphIndex) {
|
|
221
|
-
for (let i = 0; i < this.paragraphs.length; i++) {
|
|
222
|
-
this.paragraphs[i].startInsertIndex = wrapParagraphIndex[i];
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMud3JhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvcGFnaW5nL3BhZ2VzLndyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUt2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUk5RCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7SUFheEMsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQVNELFlBQ1csVUFBa0IsRUFDbEIsY0FBMkIsRUFDM0IsU0FBaUIsRUFDakIsYUFBYSxDQUFDLEVBQ2QsZ0JBQW1DO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBTkQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBYTtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQUk7UUFDZCxxQkFBZ0IsR0FB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QUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekcsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV4RSxPQUFPLElBQUkscUJBQXFCLENBQUM7Z0JBQzdCLFNBQVM7Z0JBQ1QsWUFBWTtnQkFDWixhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLEdBQUcsWUFBWTtnQkFDekQsUUFBUTthQUNYLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG1CQUFtQixDQUFDLGtCQUE0QjtRQUNwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvRDtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEaXNwbGF5VG9rZW4gfSBmcm9tICcuLi9tb2RlbHMvZGlzcGxheS10b2tlbi5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvZWRnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGluZyB9IGZyb20gJy4uL2Jhc2UvZXZlbnQtZW1pdHRpbmcnO1xuaW1wb3J0IHsgSUN1c3RvbUNvbXBvbmVudHMgfSBmcm9tICcuLy4uLy4uL2N1c3RvbS1jb21wb25lbnRzL3NoYXJlZC9pbnRlcmZhY2VzL2N1c3RvbS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5lSW5mb01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xpbmUtaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFyZ2luTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbWFyZ2luLm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ0hlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvbnVtYmVyaW5nLmhlbHBlcic7XG5pbXBvcnQgeyBOdW1iZXJpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3BhZ2UuaGVscGVyJztcbmltcG9ydCB7IFBhZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMvcGFnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUGFnZVZlcnRpY2FsRGF0YU1vZGVsIH0gZnJvbSAnLi9wYWdlLXZlcnRpY2FsLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoIH0gZnJvbSAnLi9wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgUGFyYWdyYXBoSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9wYXJhZ3JhcGguaGVscGVyJztcbmltcG9ydCB7IFBhcmFncmFwaE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgVmlzaWJsZVJhbmdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92aXNpYmxlLXJhbmdlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBQYWdlc1dyYXAgZXh0ZW5kcyBFdmVudEVtaXR0aW5nIHtcbiAgICBjb250ZW50V2lkdGg6IG51bWJlcjtcblxuICAgIGFsbFBhZ2VzSGVpZ2h0ID0gMDtcblxuICAgIG1pbkhlaWdodCA9IDA7XG5cbiAgICBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhbXSA9IFtdO1xuXG4gICAgdGFiVG9rZW5zOiBEaXNwbGF5VG9rZW5bXSA9IFtdO1xuXG4gICAgcGFnZXNWZXJ0aWNhbERhdGE6IFBhZ2VWZXJ0aWNhbERhdGFNb2RlbFtdO1xuXG4gICAgZ2V0IGRlZmF1bHRWZXJ0aWNhbERhdGEoKTogUGFnZVZlcnRpY2FsRGF0YU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZXNWZXJ0aWNhbERhdGEuZmluZCh4ID0+IHgucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkRlZmF1bHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1RleHRMaW5lc1Byb3BlcnRpZXM6IChcbiAgICAgICAgY3VycmVudFBhcmFncmFwaDogUGFyYWdyYXBoLFxuICAgICAgICBwcmV2UGFyYWdyYXBoSW5mbzogeyBsYXN0UGFnZTogbnVtYmVyOyBwYXJhZ3JhcGhIZWlnaHQ6IG51bWJlcjsgcGFyYWdyYXBoTGFzdExpbmU6IG51bWJlciB9LFxuICAgICAgICBwYWdlc0luZm86IHsgcGFnZXNWZXJ0aWNhbERhdGE6IFBhZ2VWZXJ0aWNhbERhdGFNb2RlbFtdOyBwYWdlc1NwYWNlOiBudW1iZXIgfSxcbiAgICAgICAgdGFibGVzOiBDb21wb25lbnRSZWY8Tm9kZXJUYWJsZUNvbXBvbmVudD5bXVxuICAgICkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcGFnZXNTcGFjZTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgZG9jdW1lbnRNYXJnaW46IE1hcmdpbk1vZGVsLFxuICAgICAgICBwdWJsaWMgcGFnZVdpZHRoOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBwYWdlSGVpZ2h0ID0gMCxcbiAgICAgICAgcHVibGljIGN1c3RvbUNvbXBvbmVudHM6IElDdXN0b21Db21wb25lbnRzXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWluSGVpZ2h0ID0gdGhpcy5wYWdlSGVpZ2h0ICsgMiAqIHRoaXMucGFnZXNTcGFjZTtcbiAgICAgICAgdGhpcy5jb250ZW50V2lkdGggPSB0aGlzLnBhZ2VXaWR0aCAtIHRoaXMuZG9jdW1lbnRNYXJnaW4ubGVmdCAtIHRoaXMuZG9jdW1lbnRNYXJnaW4ucmlnaHQ7XG4gICAgICAgIHRoaXMuaW5pdFBhZ2VzVmVydGljYWxEYXRhKCk7XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzVGV4dExpbmVzUHJvcGVydGllcyA9ICF0aGlzLnBhZ2VIZWlnaHRcbiAgICAgICAgICAgID8gUGFyYWdyYXBoSGVscGVyLnByb2Nlc3NUZXh0TGluZXNQcm9wZXJ0aWVzRm9yU2luZ2xlUGFnZVxuICAgICAgICAgICAgOiBQYXJhZ3JhcGhIZWxwZXIucHJvY2Vzc1RleHRMaW5lc1Byb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgZ2V0UGFyYWdyYXBoVG9wKHBhcmFncmFwaHM6IFBhcmFncmFwaFtdLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcmFncmFwaHNbaW5kZXhdID8gcGFyYWdyYXBoc1tpbmRleF0uZGlzdGFuY2VGcm9tVG9wIDogMDtcbiAgICB9XG5cbiAgICBnZXRQYXJhZ3JhcGhUb3BGb3JQcmludChwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhbXSwgaW5kZXg6IG51bWJlciwgcGFnZXNTcGFjZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFwYXJhZ3JhcGhzW2luZGV4XSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gcGFyYWdyYXBoc1tpbmRleF07XG4gICAgICAgIGNvbnN0IHBhZ2VOdW1iZXIgPSBwYXJhZ3JhcGgucGFnZU51bWJlcnNbMF07XG4gICAgICAgIGxldCBwYWdlQnJlYWtIZWlnaHQgPSAwO1xuICAgICAgICBwYXJhZ3JhcGgudGV4dExpbmVzSW5mby5mb3JFYWNoKGxpbmVzSW5mbyA9PiB7XG4gICAgICAgICAgICBpZiAobGluZXNJbmZvLmlzQWZ0ZXJQYWdlQnJlYWspIHtcbiAgICAgICAgICAgICAgICBwYWdlQnJlYWtIZWlnaHQgPSBsaW5lc0luZm8uaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcmFncmFwaC5kaXN0YW5jZUZyb21Ub3AgLSBwYWdlTnVtYmVyICogcGFnZXNTcGFjZSAtIHBhZ2VCcmVha0hlaWdodDtcbiAgICB9XG5cbiAgICBnZXRQYXJhZ3JhcGhIZWlnaHQocGFyYWdyYXBoczogUGFyYWdyYXBoW10sIGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyYWdyYXBoc1tpbmRleF0gPyBwYXJhZ3JhcGhzW2luZGV4XS5oZWlnaHQgOiAwO1xuICAgIH1cblxuICAgIHJlbW92ZShpbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFncmFwaHMuc3BsaWNlKGluZGV4LCBsZW5ndGgpO1xuICAgIH1cblxuICAgIHJlc2V0KHBhcmFncmFwaHNMZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFncmFwaHMubGVuZ3RoID0gcGFyYWdyYXBoc0xlbmd0aDtcbiAgICB9XG5cbiAgICBzZXQocm93OiBudW1iZXIsIGxpbmVJbmZvczogTGluZUluZm9Nb2RlbFtdLCBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdLCBkb2NQYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wYXJhZ3JhcGhzW3Jvd10pIHtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlcmluZ0RhdGEgPSBOdW1iZXJpbmdIZWxwZXIuY3JlYXRlRGF0YU1vZGVsKG51bWJlcmluZ3MsIGRvY1BhcmFncmFwaHMsIHJvdyk7XG4gICAgICAgICAgICB0aGlzLnBhcmFncmFwaHNbcm93XSA9IG5ldyBQYXJhZ3JhcGgobnVtYmVyaW5nRGF0YSwgbGluZUluZm9zWzBdLm9mZnNldEJlZm9yZSwgdGhpcy5wcm9jZXNzVGV4dExpbmVzUHJvcGVydGllcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhcmFncmFwaHNbcm93XS53aWR0aCA9IHRoaXMuY29udGVudFdpZHRoO1xuICAgICAgICB0aGlzLnBhcmFncmFwaHNbcm93XS5zZXRUZXh0TGluZXNJbmZvKGxpbmVJbmZvcyk7XG4gICAgfVxuXG4gICAgZ2V0VmlzaWJsZVJhbmdlKG9mZnNldFRvcDogbnVtYmVyLCBzY3JvbGxlckhlaWdodDogbnVtYmVyKTogVmlzaWJsZVJhbmdlIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gdGhpcy5wYXJhZ3JhcGhzLmZpbmRJbmRleCh4ID0+IG9mZnNldFRvcCA8PSB4LmRpc3RhbmNlRnJvbVRvcCArIHguaGVpZ2h0KTtcbiAgICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN0YXJ0TGluZUluZm8gPSBudWxsO1xuICAgICAgICBjb25zdCBzdGFydFBhcmFncmFwaCA9IHRoaXMucGFyYWdyYXBoc1tzdGFydF07XG4gICAgICAgIGlmIChzdGFydFBhcmFncmFwaCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRQYXJhZ3JhcGhPZmZzZXRUb3AgPSBvZmZzZXRUb3AgLSBzdGFydFBhcmFncmFwaC5kaXN0YW5jZUZyb21Ub3A7XG4gICAgICAgICAgICBzdGFydExpbmVJbmZvID0gUGFyYWdyYXBoSGVscGVyLmdldFZpc2libGVMaW5lSW5mbyhzdGFydFBhcmFncmFwaD8udGV4dExpbmVzSW5mbywgc3RhcnRQYXJhZ3JhcGhPZmZzZXRUb3AsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzdGFydExpbmVJbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXJ0UGFyYWdyYXBoOiAwLFxuICAgICAgICAgICAgICAgIHN0YXJ0TGluZTogMCxcbiAgICAgICAgICAgICAgICBzdGFydFNjcmVlbkxpbmU6IDAsXG4gICAgICAgICAgICAgICAgc3RhcnRTY3JlZW5GdWxsTGluZTogMCxcbiAgICAgICAgICAgICAgICBlbmRQYXJhZ3JhcGg6IDAsXG4gICAgICAgICAgICAgICAgZW5kTGluZTogMCxcbiAgICAgICAgICAgICAgICBlbmRTY3JlZW5MaW5lOiAwLFxuICAgICAgICAgICAgICAgIGVuZFNjcmVlbkZ1bGxMaW5lOiAwLFxuICAgICAgICAgICAgICAgIHBhZ2VzOiBbMV1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZW5kID0gdGhpcy5wYXJhZ3JhcGhzLmZpbmRJbmRleCh4ID0+IG9mZnNldFRvcCArIHNjcm9sbGVySGVpZ2h0IDw9IHguZGlzdGFuY2VGcm9tVG9wICsgeC5oZWlnaHQpO1xuICAgICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICAgICAgZW5kID0gdGhpcy5wYXJhZ3JhcGhzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZW5kTGluZUluZm8gPSBudWxsO1xuICAgICAgICBjb25zdCBlbmRQYXJhZ3JhcGggPSB0aGlzLnBhcmFncmFwaHNbZW5kXTtcbiAgICAgICAgaWYgKGVuZFBhcmFncmFwaCkge1xuICAgICAgICAgICAgY29uc3QgZW5kUGFyYWdyYXBoT2Zmc2V0VG9wID0gb2Zmc2V0VG9wICsgc2Nyb2xsZXJIZWlnaHQgLSBlbmRQYXJhZ3JhcGguZGlzdGFuY2VGcm9tVG9wO1xuICAgICAgICAgICAgZW5kTGluZUluZm8gPSBQYXJhZ3JhcGhIZWxwZXIuZ2V0VmlzaWJsZUxpbmVJbmZvKGVuZFBhcmFncmFwaD8udGV4dExpbmVzSW5mbywgZW5kUGFyYWdyYXBoT2Zmc2V0VG9wLCAtMSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpYmxlUGFnZXMgPSB0aGlzLmdldFZpc2libGVQYWdlcyhvZmZzZXRUb3AsIHNjcm9sbGVySGVpZ2h0KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhcnRQYXJhZ3JhcGg6IHN0YXJ0LFxuICAgICAgICAgICAgc3RhcnRMaW5lOiBzdGFydExpbmVJbmZvLmluZGV4LFxuICAgICAgICAgICAgc3RhcnRTY3JlZW5MaW5lOiBzdGFydExpbmVJbmZvLnNjcmVlbkluZGV4LFxuICAgICAgICAgICAgc3RhcnRTY3JlZW5GdWxsTGluZTogc3RhcnRMaW5lSW5mby52aXNpYmxlU2NyZWVuSW5kZXgsXG4gICAgICAgICAgICBlbmRQYXJhZ3JhcGg6IGVuZCxcbiAgICAgICAgICAgIGVuZExpbmU6IGVuZExpbmVJbmZvLmluZGV4LFxuICAgICAgICAgICAgZW5kU2NyZWVuTGluZTogZW5kTGluZUluZm8uc2NyZWVuSW5kZXgsXG4gICAgICAgICAgICBlbmRTY3JlZW5GdWxsTGluZTogZW5kTGluZUluZm8udmlzaWJsZVNjcmVlbkluZGV4LFxuICAgICAgICAgICAgcGFnZXM6IHZpc2libGVQYWdlc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByb2Nlc3NQYXJhZ3JhcGhzUHJvcGVydGllcyhzdGFydFBhcmFncmFwaEluZGV4OiBudW1iZXIsIHdyYXBQYXJhZ3JhcGhJbmRleDogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYXJhZ3JhcGhJbmRleGVzKHdyYXBQYXJhZ3JhcGhJbmRleCk7XG4gICAgICAgIGNvbnN0IHBhZ2VzSW5mbyA9IHsgcGFnZXNWZXJ0aWNhbERhdGE6IHRoaXMucGFnZXNWZXJ0aWNhbERhdGEsIHBhZ2VzU3BhY2U6IHRoaXMucGFnZXNTcGFjZSB9O1xuICAgICAgICBsZXQgY3VycmVudFBhZ2UgPSBzdGFydFBhcmFncmFwaEluZGV4ID09PSAwID8gMSA6IHRoaXMucGFyYWdyYXBoc1tzdGFydFBhcmFncmFwaEluZGV4IC0gMV0ubGFzdFBhZ2VOdW1iZXI7XG4gICAgICAgIGxldCBwYWdlVmVydGljYWxEYXRhID0gUGFnZUhlbHBlci5nZXRWZXJ0aWNhbERhdGEoY3VycmVudFBhZ2UsIHRoaXMucGFnZXNWZXJ0aWNhbERhdGEpO1xuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnRQYXJhZ3JhcGhJbmRleDsgaSA8IHRoaXMucGFyYWdyYXBocy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcHJldlBhcmFncmFwaEluZm8gPSB0aGlzLmdldFByZXZpb3VzUGFyYWdyYXBoSW5mbyhpKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFncmFwaCA9IHRoaXMucGFyYWdyYXBoc1tpXTtcbiAgICAgICAgICAgIHBhcmFncmFwaC5wcm9jZXNzUGFyYWdyYXBoUHJvcGVydGllcyhwcmV2UGFyYWdyYXBoSW5mbywgcGFnZXNJbmZvLCB0aGlzLmN1c3RvbUNvbXBvbmVudHMudGFibGVzKTtcbiAgICAgICAgICAgIGlmIChwYXJhZ3JhcGguZmlyc3RQYWdlTnVtYmVyICE9PSBjdXJyZW50UGFnZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gcGFyYWdyYXBoLmZpcnN0UGFnZU51bWJlcjtcbiAgICAgICAgICAgICAgICBwYWdlVmVydGljYWxEYXRhID0gUGFnZUhlbHBlci5nZXRWZXJ0aWNhbERhdGEocGFyYWdyYXBoLmZpcnN0UGFnZU51bWJlciwgdGhpcy5wYWdlc1ZlcnRpY2FsRGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmFncmFwaC5kaXN0YW5jZUZyb21Ub3AgPVxuICAgICAgICAgICAgICAgIChwYXJhZ3JhcGguZmlyc3RQYWdlTnVtYmVyIC0gMSkgKiB0aGlzLnBhZ2VIZWlnaHQgK1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZXNTcGFjZSAqIHBhcmFncmFwaC5maXJzdFBhZ2VOdW1iZXIgK1xuICAgICAgICAgICAgICAgIHBhZ2VWZXJ0aWNhbERhdGEubWFyZ2luVG9wICtcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGgucGFnZVByZXZpb3VzQ29udGVudEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYWdlSGVpZ2h0ID0gdGhpcy5wYWdlSGVpZ2h0O1xuICAgICAgICBpZiAoIXBhZ2VIZWlnaHQpIHtcbiAgICAgICAgICAgIHBhZ2VIZWlnaHQgPSB0aGlzLmdldEFsbFBhcmFncmFwaHNIZWlnaHQoKSArIHRoaXMuZG9jdW1lbnRNYXJnaW4udG9wICsgdGhpcy5kb2N1bWVudE1hcmdpbi5ib3R0b207XG4gICAgICAgICAgICB0aGlzLm1pbkhlaWdodCA9IHBhZ2VIZWlnaHQgKyAyICogdGhpcy5wYWdlc1NwYWNlO1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0VmVydGljYWxEYXRhLmNvbnRlbnRIZWlnaHQgPSBwYWdlSGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFzdFBhZ2VOdW1iZXIgPSB0aGlzLnBhcmFncmFwaHNbdGhpcy5wYXJhZ3JhcGhzLmxlbmd0aCAtIDFdLmxhc3RQYWdlTnVtYmVyO1xuICAgICAgICB0aGlzLmFsbFBhZ2VzSGVpZ2h0ID0gbGFzdFBhZ2VOdW1iZXIgKiAocGFnZUhlaWdodCArIHRoaXMucGFnZXNTcGFjZSkgKyB0aGlzLnBhZ2VzU3BhY2U7XG4gICAgICAgIHRoaXMuZW1pdCgncGFnZXNDb3VudENoYW5nZWQnLCB7IHBhZ2VzQ291bnQ6IGxhc3RQYWdlTnVtYmVyLCBwYWdlSGVpZ2h0OiBwYWdlSGVpZ2h0ICsgMiAqIHRoaXMucGFnZXNTcGFjZSB9KTtcbiAgICB9XG5cbiAgICBnZXRBbGxQYXJhZ3JhcGhzSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFncmFwaHMucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHguaGVpZ2h0LCAwKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncGFnZXNDb3VudENoYW5nZWQnKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQYWdlVmVydGljYWxEYXRhKGVkZ2VUeXBlOiBFZGdlVHlwZSwgcGFnZTogbnVtYmVyLCB3cmFwUGFyYWdyYXBoSW5kZXg6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhZ2VWZXJ0aWNhbERhdGEgPSBQYWdlSGVscGVyLmdldFZlcnRpY2FsRGF0YShwYWdlLCB0aGlzLnBhZ2VzVmVydGljYWxEYXRhKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5jdXN0b21Db21wb25lbnRzLmVkZ2VzLmdldENvbXBvbmVudEhlaWdodChwYWdlLCBlZGdlVHlwZSk7XG4gICAgICAgIGlmIChlZGdlVHlwZSA9PT0gRWRnZVR5cGUuSGVhZGVyKSB7XG4gICAgICAgICAgICBwYWdlVmVydGljYWxEYXRhLm1hcmdpblRvcCA9IGNvbXBvbmVudEhlaWdodCA+IHRoaXMuZG9jdW1lbnRNYXJnaW4udG9wID8gY29tcG9uZW50SGVpZ2h0IDogdGhpcy5kb2N1bWVudE1hcmdpbi50b3A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYWdlVmVydGljYWxEYXRhLm1hcmdpbkJvdHRvbSA9IGNvbXBvbmVudEhlaWdodCA+IHRoaXMuZG9jdW1lbnRNYXJnaW4uYm90dG9tID8gY29tcG9uZW50SGVpZ2h0IDogdGhpcy5kb2N1bWVudE1hcmdpbi5ib3R0b207XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdDb250ZW50SGVpZ2h0ID0gdGhpcy5wYWdlSGVpZ2h0IC0gcGFnZVZlcnRpY2FsRGF0YS5tYXJnaW5Ub3AgLSBwYWdlVmVydGljYWxEYXRhLm1hcmdpbkJvdHRvbTtcbiAgICAgICAgaWYgKG5ld0NvbnRlbnRIZWlnaHQgPT09IHBhZ2VWZXJ0aWNhbERhdGEuY29udGVudEhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFnZVZlcnRpY2FsRGF0YS5jb250ZW50SGVpZ2h0ID0gbmV3Q29udGVudEhlaWdodDtcbiAgICAgICAgdGhpcy5wcm9jZXNzUGFyYWdyYXBoc1Byb3BlcnRpZXMoMCwgd3JhcFBhcmFncmFwaEluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXZpb3VzUGFyYWdyYXBoSW5mbyhyb3c6IG51bWJlcik6IHsgbGFzdFBhZ2U6IG51bWJlcjsgcGFyYWdyYXBoSGVpZ2h0OiBudW1iZXI7IHBhcmFncmFwaExhc3RMaW5lOiBudW1iZXIgfSB7XG4gICAgICAgIGlmICghcm93IHx8ICF0aGlzLnBhcmFncmFwaHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYXN0UGFnZTogMSwgcGFyYWdyYXBoSGVpZ2h0OiAwLCBwYXJhZ3JhcGhMYXN0TGluZTogLTEgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZXZQYXJhZ3JhcGggPSB0aGlzLnBhcmFncmFwaHNbcm93IC0gMV07XG4gICAgICAgIHJldHVybiBwcmV2UGFyYWdyYXBoLmdldFBhcmFncmFwaERhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZpc2libGVQYWdlcyhvZmZzZXRUb3A6IG51bWJlciwgY29udGFpbmVySGVpZ2h0OiBudW1iZXIpOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbnN0IHZpc2libGVQYWdlczogbnVtYmVyW10gPSBbXTtcblxuICAgICAgICBsZXQgZmlyc3RWaXNpYmxlUGFnZSA9IG9mZnNldFRvcCAvICh0aGlzLnBhZ2VIZWlnaHQgKyB0aGlzLnBhZ2VzU3BhY2UpO1xuICAgICAgICBpZiAoZmlyc3RWaXNpYmxlUGFnZSAlIDEgPT09IDApIHtcbiAgICAgICAgICAgIGZpcnN0VmlzaWJsZVBhZ2UrKztcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2aXNpYmxlUGFnZXNDb3VudCA9IGNvbnRhaW5lckhlaWdodCAvICh0aGlzLnBhZ2VIZWlnaHQgKyB0aGlzLnBhZ2VzU3BhY2UpO1xuICAgICAgICBjb25zdCBwYXJ0aWFsUGFnZU9uU2NyZWVuUGVyY2VudCA9IE1hdGgudHJ1bmMoKCh2aXNpYmxlUGFnZXNDb3VudCAlIDEpICsgKGZpcnN0VmlzaWJsZVBhZ2UgJSAxKSkgKiAxMDApO1xuICAgICAgICBjb25zdCBwYWdlU3BhY2VIZWlnaHRQZXJjZW50ID0gTWF0aC50cnVuYygodGhpcy5wYWdlc1NwYWNlIC8gY29udGFpbmVySGVpZ2h0KSAqIDEwMCk7XG4gICAgICAgIGlmIChwYXJ0aWFsUGFnZU9uU2NyZWVuUGVyY2VudCAtIHBhZ2VTcGFjZUhlaWdodFBlcmNlbnQgPiAxMDApIHtcbiAgICAgICAgICAgIHZpc2libGVQYWdlc0NvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICB2aXNpYmxlUGFnZXNDb3VudCA9IE1hdGguY2VpbCh2aXNpYmxlUGFnZXNDb3VudCk7XG4gICAgICAgIGZpcnN0VmlzaWJsZVBhZ2UgPSBNYXRoLmNlaWwoZmlyc3RWaXNpYmxlUGFnZSk7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50UGFnZXNDb3VudCA9IHRoaXMucGFyYWdyYXBoc1t0aGlzLnBhcmFncmFwaHMubGVuZ3RoIC0gMV0ubGFzdFBhZ2VOdW1iZXI7XG4gICAgICAgIGlmIChmaXJzdFZpc2libGVQYWdlICsgdmlzaWJsZVBhZ2VzQ291bnQgLSAxID4gZG9jdW1lbnRQYWdlc0NvdW50KSB7XG4gICAgICAgICAgICB2aXNpYmxlUGFnZXNDb3VudCA9IGRvY3VtZW50UGFnZXNDb3VudCAtIGZpcnN0VmlzaWJsZVBhZ2UgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aXNpYmxlUGFnZXNDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB2aXNpYmxlUGFnZXMucHVzaChmaXJzdFZpc2libGVQYWdlICsgaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmlzaWJsZVBhZ2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFBhZ2VzVmVydGljYWxEYXRhKCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5jdXN0b21Db21wb25lbnRzLmVkZ2VzIHx8XG4gICAgICAgICAgICAoIXRoaXMuY3VzdG9tQ29tcG9uZW50cy5lZGdlcy5oZWFkZXJzQ29tcG9uZW50cy5sZW5ndGggJiYgIXRoaXMuY3VzdG9tQ29tcG9uZW50cy5lZGdlcy5mb290ZXJzQ29tcG9uZW50cy5sZW5ndGgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5wYWdlc1ZlcnRpY2FsRGF0YSA9IFtcbiAgICAgICAgICAgICAgICBuZXcgUGFnZVZlcnRpY2FsRGF0YU1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiB0aGlzLmRvY3VtZW50TWFyZ2luLnRvcCxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiB0aGlzLmRvY3VtZW50TWFyZ2luLmJvdHRvbSxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudEhlaWdodDogdGhpcy5wYWdlSGVpZ2h0IC0gdGhpcy5kb2N1bWVudE1hcmdpbi50b3AgLSB0aGlzLmRvY3VtZW50TWFyZ2luLmJvdHRvbSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVR5cGU6IFBhZ2VUeXBlLkRlZmF1bHRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhZ2VUeXBlcyA9IHRoaXMuY3VzdG9tQ29tcG9uZW50cy5lZGdlcy5nZXRVbmlxdWVQYWdlVHlwZXMoKTtcbiAgICAgICAgdGhpcy5wYWdlc1ZlcnRpY2FsRGF0YSA9IHBhZ2VUeXBlcy5tYXAocGFnZVR5cGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5jdXN0b21Db21wb25lbnRzLmVkZ2VzLmdldENvbXBvbmVudEhlaWdodEJ5UGFnZVR5cGUocGFnZVR5cGUsIEVkZ2VUeXBlLkhlYWRlcik7XG4gICAgICAgICAgICBjb25zdCBmb290ZXJIZWlnaHQgPSB0aGlzLmN1c3RvbUNvbXBvbmVudHMuZWRnZXMuZ2V0Q29tcG9uZW50SGVpZ2h0QnlQYWdlVHlwZShwYWdlVHlwZSwgRWRnZVR5cGUuRm9vdGVyKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpblRvcCA9IE1hdGgubWF4KGhlYWRlckhlaWdodCwgdGhpcy5kb2N1bWVudE1hcmdpbi50b3ApO1xuICAgICAgICAgICAgY29uc3QgbWFyZ2luQm90dG9tID0gTWF0aC5tYXgoZm9vdGVySGVpZ2h0LCB0aGlzLmRvY3VtZW50TWFyZ2luLmJvdHRvbSk7XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUGFnZVZlcnRpY2FsRGF0YU1vZGVsKHtcbiAgICAgICAgICAgICAgICBtYXJnaW5Ub3AsXG4gICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRIZWlnaHQ6IHRoaXMucGFnZUhlaWdodCAtIG1hcmdpblRvcCAtIG1hcmdpbkJvdHRvbSxcbiAgICAgICAgICAgICAgICBwYWdlVHlwZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFyYWdyYXBoSW5kZXhlcyh3cmFwUGFyYWdyYXBoSW5kZXg6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJhZ3JhcGhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmFncmFwaHNbaV0uc3RhcnRJbnNlcnRJbmRleCA9IHdyYXBQYXJhZ3JhcGhJbmRleFtpXTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ParagraphHelper } from '../helpers/paragraph.helper';
|
|
2
|
-
import { TextLineInfo } from './text-line-info';
|
|
3
|
-
export class Paragraph {
|
|
4
|
-
get firstPageNumber() {
|
|
5
|
-
return this.pageNumbers[0] || 1;
|
|
6
|
-
}
|
|
7
|
-
get lastPageNumber() {
|
|
8
|
-
return this.pageNumbers[this.pageNumbers.length - 1] || 1;
|
|
9
|
-
}
|
|
10
|
-
get firstScreenLine() {
|
|
11
|
-
return this.textLinesInfo[0].screenLine;
|
|
12
|
-
}
|
|
13
|
-
get lastScreenLine() {
|
|
14
|
-
return this.textLinesInfo[this.textLinesInfo.length - 1].screenLine;
|
|
15
|
-
}
|
|
16
|
-
get isEndedByPageBreak() {
|
|
17
|
-
return this.textLinesInfo[this.textLinesInfo.length - 1].isEndedByPageBreak;
|
|
18
|
-
}
|
|
19
|
-
get backgroundColor() {
|
|
20
|
-
return this.textLinesInfo[0].backgroundColor;
|
|
21
|
-
}
|
|
22
|
-
constructor(numberingData, offsetBefore, processTextLinesProperties) {
|
|
23
|
-
this.numberingData = numberingData;
|
|
24
|
-
this.offsetBefore = offsetBefore;
|
|
25
|
-
this.processTextLinesProperties = processTextLinesProperties;
|
|
26
|
-
this.textLinesInfo = [];
|
|
27
|
-
this.pagePreviousContentHeight = 0;
|
|
28
|
-
this.width = 0;
|
|
29
|
-
this.height = 0;
|
|
30
|
-
this.pageNumbers = [];
|
|
31
|
-
}
|
|
32
|
-
setTextLinesInfo(linesInfos) {
|
|
33
|
-
this.textLinesInfo = linesInfos.map(lineInfo => new TextLineInfo(this.width, lineInfo.align, lineInfo.indent, lineInfo));
|
|
34
|
-
}
|
|
35
|
-
setIsAfterPageBreak(value) {
|
|
36
|
-
this.textLinesInfo[0].isAfterPageBreak = value;
|
|
37
|
-
}
|
|
38
|
-
getParagraphData() {
|
|
39
|
-
const pageContentHeight = this.pageNumbers.length === 1
|
|
40
|
-
? this.height + this.pagePreviousContentHeight
|
|
41
|
-
: ParagraphHelper.getPageLinesHeight(this.textLinesInfo, this.lastPageNumber);
|
|
42
|
-
return { lastPage: this.lastPageNumber, paragraphHeight: pageContentHeight, paragraphLastLine: this.lastScreenLine };
|
|
43
|
-
}
|
|
44
|
-
processParagraphProperties(prevParagraphInfo, pagesInfo, tables) {
|
|
45
|
-
this.pagePreviousContentHeight = prevParagraphInfo.paragraphHeight;
|
|
46
|
-
this.processTextLinesProperties(this, prevParagraphInfo, pagesInfo, tables);
|
|
47
|
-
ParagraphHelper.processOffsetLineWithNumberingMarker(this.textLinesInfo[0], this.numberingData.height, this.offsetBefore);
|
|
48
|
-
this.pageNumbers = ParagraphHelper.getParagraphPages(this.textLinesInfo);
|
|
49
|
-
this.height = ParagraphHelper.getParagraphHeight(this.textLinesInfo);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9wYWdpbmcvcGFyYWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsTUFBTSxPQUFPLFNBQVM7SUFlbEIsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0lBQ2hGLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUNXLGFBQWlDLEVBQ2hDLFlBQW9CLEVBQ3BCLDBCQUtDO1FBUEYsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FLekI7UUE1Q2Isa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRW5DLDhCQUF5QixHQUFHLENBQUMsQ0FBQztRQUU5QixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUlYLGdCQUFXLEdBQWEsRUFBRSxDQUFDO0lBbUN4QixDQUFDO0lBRUosZ0JBQWdCLENBQUMsVUFBMkI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3SCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxpQkFBaUIsR0FDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCO1lBQzlDLENBQUMsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekgsQ0FBQztJQUVELDBCQUEwQixDQUN0QixpQkFBMkYsRUFDM0YsU0FBNkUsRUFDN0UsTUFBMkM7UUFFM0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztRQUNuRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RSxlQUFlLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGluZUluZm9Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9saW5lLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgTm9kZXJUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS1jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE51bWJlcmluZ0RhdGFNb2RlbCB9IGZyb20gJy4uL21vZGVscy9udW1iZXJpbmctZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlVmVydGljYWxEYXRhTW9kZWwgfSBmcm9tICcuL3BhZ2UtdmVydGljYWwtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3BhcmFncmFwaC5oZWxwZXInO1xuaW1wb3J0IHsgVGV4dExpbmVJbmZvIH0gZnJvbSAnLi90ZXh0LWxpbmUtaW5mbyc7XG5cbmV4cG9ydCBjbGFzcyBQYXJhZ3JhcGgge1xuICAgIHN0YXJ0SW5zZXJ0SW5kZXg6IG51bWJlcjtcblxuICAgIHRleHRMaW5lc0luZm86IFRleHRMaW5lSW5mb1tdID0gW107XG5cbiAgICBwYWdlUHJldmlvdXNDb250ZW50SGVpZ2h0ID0gMDtcblxuICAgIHdpZHRoID0gMDtcblxuICAgIGhlaWdodCA9IDA7XG5cbiAgICBkaXN0YW5jZUZyb21Ub3A6IG51bWJlcjtcblxuICAgIHBhZ2VOdW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgZ2V0IGZpcnN0UGFnZU51bWJlcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdlTnVtYmVyc1swXSB8fCAxO1xuICAgIH1cblxuICAgIGdldCBsYXN0UGFnZU51bWJlcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdlTnVtYmVyc1t0aGlzLnBhZ2VOdW1iZXJzLmxlbmd0aCAtIDFdIHx8IDE7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0U2NyZWVuTGluZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TGluZXNJbmZvWzBdLnNjcmVlbkxpbmU7XG4gICAgfVxuXG4gICAgZ2V0IGxhc3RTY3JlZW5MaW5lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRMaW5lc0luZm9bdGhpcy50ZXh0TGluZXNJbmZvLmxlbmd0aCAtIDFdLnNjcmVlbkxpbmU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRW5kZWRCeVBhZ2VCcmVhaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dExpbmVzSW5mb1t0aGlzLnRleHRMaW5lc0luZm8ubGVuZ3RoIC0gMV0uaXNFbmRlZEJ5UGFnZUJyZWFrO1xuICAgIH1cblxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dExpbmVzSW5mb1swXS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbnVtYmVyaW5nRGF0YTogTnVtYmVyaW5nRGF0YU1vZGVsLFxuICAgICAgICBwcml2YXRlIG9mZnNldEJlZm9yZTogbnVtYmVyLFxuICAgICAgICBwcml2YXRlIHByb2Nlc3NUZXh0TGluZXNQcm9wZXJ0aWVzOiAoXG4gICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoOiBQYXJhZ3JhcGgsXG4gICAgICAgICAgICBwcmV2UGFyYWdyYXBoSW5mbzogeyBsYXN0UGFnZTogbnVtYmVyOyBwYXJhZ3JhcGhIZWlnaHQ6IG51bWJlcjsgcGFyYWdyYXBoTGFzdExpbmU6IG51bWJlciB9LFxuICAgICAgICAgICAgcGFnZXNJbmZvOiB7IHBhZ2VzVmVydGljYWxEYXRhOiBQYWdlVmVydGljYWxEYXRhTW9kZWxbXTsgcGFnZXNTcGFjZTogbnVtYmVyIH0sXG4gICAgICAgICAgICB0YWJsZXM6IENvbXBvbmVudFJlZjxOb2RlclRhYmxlQ29tcG9uZW50PltdXG4gICAgICAgICkgPT4gdm9pZFxuICAgICkge31cblxuICAgIHNldFRleHRMaW5lc0luZm8obGluZXNJbmZvczogTGluZUluZm9Nb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGV4dExpbmVzSW5mbyA9IGxpbmVzSW5mb3MubWFwKGxpbmVJbmZvID0+IG5ldyBUZXh0TGluZUluZm8odGhpcy53aWR0aCwgbGluZUluZm8uYWxpZ24sIGxpbmVJbmZvLmluZGVudCwgbGluZUluZm8pKTtcbiAgICB9XG5cbiAgICBzZXRJc0FmdGVyUGFnZUJyZWFrKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGV4dExpbmVzSW5mb1swXS5pc0FmdGVyUGFnZUJyZWFrID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0UGFyYWdyYXBoRGF0YSgpOiB7IGxhc3RQYWdlOiBudW1iZXI7IHBhcmFncmFwaEhlaWdodDogbnVtYmVyOyBwYXJhZ3JhcGhMYXN0TGluZTogbnVtYmVyIH0ge1xuICAgICAgICBjb25zdCBwYWdlQ29udGVudEhlaWdodCA9XG4gICAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXJzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gdGhpcy5oZWlnaHQgKyB0aGlzLnBhZ2VQcmV2aW91c0NvbnRlbnRIZWlnaHRcbiAgICAgICAgICAgICAgICA6IFBhcmFncmFwaEhlbHBlci5nZXRQYWdlTGluZXNIZWlnaHQodGhpcy50ZXh0TGluZXNJbmZvLCB0aGlzLmxhc3RQYWdlTnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIHsgbGFzdFBhZ2U6IHRoaXMubGFzdFBhZ2VOdW1iZXIsIHBhcmFncmFwaEhlaWdodDogcGFnZUNvbnRlbnRIZWlnaHQsIHBhcmFncmFwaExhc3RMaW5lOiB0aGlzLmxhc3RTY3JlZW5MaW5lIH07XG4gICAgfVxuXG4gICAgcHJvY2Vzc1BhcmFncmFwaFByb3BlcnRpZXMoXG4gICAgICAgIHByZXZQYXJhZ3JhcGhJbmZvOiB7IGxhc3RQYWdlOiBudW1iZXI7IHBhcmFncmFwaEhlaWdodDogbnVtYmVyOyBwYXJhZ3JhcGhMYXN0TGluZTogbnVtYmVyIH0sXG4gICAgICAgIHBhZ2VzSW5mbzogeyBwYWdlc1ZlcnRpY2FsRGF0YTogUGFnZVZlcnRpY2FsRGF0YU1vZGVsW107IHBhZ2VzU3BhY2U6IG51bWJlciB9LFxuICAgICAgICB0YWJsZXM6IENvbXBvbmVudFJlZjxOb2RlclRhYmxlQ29tcG9uZW50PltdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVByZXZpb3VzQ29udGVudEhlaWdodCA9IHByZXZQYXJhZ3JhcGhJbmZvLnBhcmFncmFwaEhlaWdodDtcbiAgICAgICAgdGhpcy5wcm9jZXNzVGV4dExpbmVzUHJvcGVydGllcyh0aGlzLCBwcmV2UGFyYWdyYXBoSW5mbywgcGFnZXNJbmZvLCB0YWJsZXMpO1xuICAgICAgICBQYXJhZ3JhcGhIZWxwZXIucHJvY2Vzc09mZnNldExpbmVXaXRoTnVtYmVyaW5nTWFya2VyKHRoaXMudGV4dExpbmVzSW5mb1swXSwgdGhpcy5udW1iZXJpbmdEYXRhLmhlaWdodCwgdGhpcy5vZmZzZXRCZWZvcmUpO1xuICAgICAgICB0aGlzLnBhZ2VOdW1iZXJzID0gUGFyYWdyYXBoSGVscGVyLmdldFBhcmFncmFwaFBhZ2VzKHRoaXMudGV4dExpbmVzSW5mbyk7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gUGFyYWdyYXBoSGVscGVyLmdldFBhcmFncmFwaEhlaWdodCh0aGlzLnRleHRMaW5lc0luZm8pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Alignment } from '../constants/alignments.const';
|
|
2
|
-
export class TextLineInfo {
|
|
3
|
-
constructor(contentWidth, align, indent, fields) {
|
|
4
|
-
this.paddingLeft = 0;
|
|
5
|
-
this.offsetBefore = 0;
|
|
6
|
-
this.offsetAfter = 0;
|
|
7
|
-
this.firstLinePageOffset = 0; // for selection
|
|
8
|
-
this.endPageOffset = 0; // for selection
|
|
9
|
-
this.screenLine = 0;
|
|
10
|
-
this.isAfterPageBreak = false;
|
|
11
|
-
this.isEndedByPageBreak = false;
|
|
12
|
-
if (fields) {
|
|
13
|
-
Object.assign(this, fields);
|
|
14
|
-
}
|
|
15
|
-
const diff = contentWidth - this.width;
|
|
16
|
-
if (this.width === undefined || diff === 0) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
switch (align) {
|
|
20
|
-
case Alignment.center:
|
|
21
|
-
this.paddingLeft = indent.left + (diff - indent.left - indent.right) / 2;
|
|
22
|
-
break;
|
|
23
|
-
case Alignment.right:
|
|
24
|
-
this.paddingLeft = diff - indent.right;
|
|
25
|
-
break;
|
|
26
|
-
default:
|
|
27
|
-
this.paddingLeft = indent.left;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
this.paddingLeft += indent.firstLine;
|
|
31
|
-
this.paddingLeft -= indent.hanging;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1saW5lLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL3BhZ2luZy90ZXh0LWxpbmUtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJMUQsTUFBTSxPQUFPLFlBQVk7SUE2QnJCLFlBQVksWUFBb0IsRUFBRSxLQUFhLEVBQUUsTUFBbUIsRUFBRSxNQUErQjtRQXRCckcsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO1FBRXpDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO1FBRW5DLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFZixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBU3ZCLElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDL0I7UUFFRCxNQUFNLElBQUksR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDeEMsT0FBTztTQUNWO1FBRUQsUUFBUSxLQUFLLEVBQUU7WUFDWCxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6RSxNQUFNO1lBQ1YsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDdkMsTUFBTTtZQUNWO2dCQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDL0IsTUFBTTtTQUNiO1FBRUQsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbGlnbm1lbnQgfSBmcm9tICcuLi9jb25zdGFudHMvYWxpZ25tZW50cy5jb25zdCc7XG5pbXBvcnQgeyBJbmRlbnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9pbmRlbnQubW9kZWwnO1xuaW1wb3J0IHsgTGluZUluZm9Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9saW5lLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgVGV4dExpbmVJbmZvIHtcbiAgICB3aWR0aDogbnVtYmVyO1xuXG4gICAgaGVpZ2h0OiBudW1iZXI7XG5cbiAgICBwYWdlPzogbnVtYmVyO1xuXG4gICAgcGFkZGluZ0xlZnQgPSAwO1xuXG4gICAgb2Zmc2V0QmVmb3JlID0gMDtcblxuICAgIG9mZnNldEFmdGVyID0gMDtcblxuICAgIGZpcnN0TGluZVBhZ2VPZmZzZXQgPSAwOyAvLyBmb3Igc2VsZWN0aW9uXG5cbiAgICBlbmRQYWdlT2Zmc2V0ID0gMDsgLy8gZm9yIHNlbGVjdGlvblxuXG4gICAgc2NyZWVuTGluZSA9IDA7XG5cbiAgICBpc0FmdGVyUGFnZUJyZWFrID0gZmFsc2U7XG5cbiAgICBpc0VuZGVkQnlQYWdlQnJlYWsgPSBmYWxzZTtcblxuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gICAgaGFzVGFibGU6IGJvb2xlYW47XG5cbiAgICBzcGxpdE9mZnNldDogbnVtYmVyOyAvLyBvZmZzZXQgb2YgdGhlIGZpcnN0IGxpbmUgYWZ0ZXIgdGFibGUgc3BsaXRcblxuICAgIGNvbnN0cnVjdG9yKGNvbnRlbnRXaWR0aDogbnVtYmVyLCBhbGlnbjogbnVtYmVyLCBpbmRlbnQ6IEluZGVudE1vZGVsLCBmaWVsZHM/OiBQYXJ0aWFsPExpbmVJbmZvTW9kZWw+KSB7XG4gICAgICAgIGlmIChmaWVsZHMpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmYgPSBjb250ZW50V2lkdGggLSB0aGlzLndpZHRoO1xuICAgICAgICBpZiAodGhpcy53aWR0aCA9PT0gdW5kZWZpbmVkIHx8IGRpZmYgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoYWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgQWxpZ25tZW50LmNlbnRlcjpcbiAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0ID0gaW5kZW50LmxlZnQgKyAoZGlmZiAtIGluZGVudC5sZWZ0IC0gaW5kZW50LnJpZ2h0KSAvIDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFsaWdubWVudC5yaWdodDpcbiAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0ID0gZGlmZiAtIGluZGVudC5yaWdodDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nTGVmdCA9IGluZGVudC5sZWZ0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWRkaW5nTGVmdCArPSBpbmRlbnQuZmlyc3RMaW5lO1xuICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0IC09IGluZGVudC5oYW5naW5nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export class Point {
|
|
2
|
-
constructor(row, column) {
|
|
3
|
-
this.row = row;
|
|
4
|
-
this.column = column;
|
|
5
|
-
}
|
|
6
|
-
static comparePoints(first, second) {
|
|
7
|
-
return first.row - second.row || first.column - second.column;
|
|
8
|
-
}
|
|
9
|
-
static clone(point) {
|
|
10
|
-
return new Point(point.row, point.column);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBS2QsWUFBWSxHQUFXLEVBQUUsTUFBYztRQUNuQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQVksRUFBRSxNQUFhO1FBQzVDLE9BQU8sS0FBSyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFZO1FBQ3JCLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFBvaW50IHtcbiAgICByb3c6IG51bWJlcjtcblxuICAgIGNvbHVtbjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3Iocm93OiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucm93ID0gcm93O1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICB9XG5cbiAgICBzdGF0aWMgY29tcGFyZVBvaW50cyhmaXJzdDogUG9pbnQsIHNlY29uZDogUG9pbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZmlyc3Qucm93IC0gc2Vjb25kLnJvdyB8fCBmaXJzdC5jb2x1bW4gLSBzZWNvbmQuY29sdW1uO1xuICAgIH1cblxuICAgIHN0YXRpYyBjbG9uZShwb2ludDogUG9pbnQpOiBQb2ludCB7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQocG9pbnQucm93LCBwb2ludC5jb2x1bW4pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { DistanceModel } from './models/distance.model';
|
|
2
|
-
import { PrintEdgesLayer } from './layers/print.edges.layer';
|
|
3
|
-
import { PrintPagesLayer } from './layers/print.pages.layer';
|
|
4
|
-
import { PrintRenderingHelper } from './helpers/print.rendering.helper';
|
|
5
|
-
import { PrintTextLayer } from './layers/print.text.layer';
|
|
6
|
-
export class PrintRenderer {
|
|
7
|
-
constructor(session, editorService) {
|
|
8
|
-
this.session = session;
|
|
9
|
-
this.pagesCount = Math.round((session.pagesWrap.pagesSpace * 2 + session.pagesWrap.allPagesHeight) / session.pagesWrap.minHeight);
|
|
10
|
-
this.createContent();
|
|
11
|
-
this.createLayers(editorService);
|
|
12
|
-
}
|
|
13
|
-
renderPrintDocument() {
|
|
14
|
-
const layerConfig = this.computeLayerConfig();
|
|
15
|
-
this.pagesLayer.update(layerConfig);
|
|
16
|
-
this.textLayer.update(layerConfig);
|
|
17
|
-
this.edgesLayer.update(layerConfig);
|
|
18
|
-
this.createDocumentHtml(layerConfig);
|
|
19
|
-
}
|
|
20
|
-
computeLayerConfig() {
|
|
21
|
-
const pages = Array.from(Array(this.pagesCount).keys()).map(x => x + 1);
|
|
22
|
-
const pagesWrap = this.session.pagesWrap;
|
|
23
|
-
const maxHeight = pagesWrap.pageHeight * this.pagesCount;
|
|
24
|
-
const minHeight = pagesWrap.pageHeight;
|
|
25
|
-
return {
|
|
26
|
-
width: this.textLayer.element.clientWidth + pagesWrap.documentMargin.left + pagesWrap.documentMargin.right,
|
|
27
|
-
height: pagesWrap.defaultVerticalData.contentHeight,
|
|
28
|
-
contentRange: new DistanceModel({ start: 0, end: this.session.pagesWrap.paragraphs.length - 1 }),
|
|
29
|
-
minHeight,
|
|
30
|
-
maxHeight,
|
|
31
|
-
offset: 0,
|
|
32
|
-
pages,
|
|
33
|
-
scrollTop: 0
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
createContent() {
|
|
37
|
-
this.content = document.createElement('div');
|
|
38
|
-
this.content.className = 'ace-content print';
|
|
39
|
-
}
|
|
40
|
-
createLayers(editorService) {
|
|
41
|
-
this.textLayer = new PrintTextLayer(this.content, PrintRenderingHelper);
|
|
42
|
-
this.textLayer.setSession(this.session);
|
|
43
|
-
this.edgesLayer = new PrintEdgesLayer(this.content, editorService);
|
|
44
|
-
this.edgesLayer.setSession(this.session);
|
|
45
|
-
this.pagesLayer = new PrintPagesLayer(this.content);
|
|
46
|
-
this.pagesLayer.setSession(this.session);
|
|
47
|
-
}
|
|
48
|
-
createDocumentHtml(layerConfig) {
|
|
49
|
-
const head = this.createHeadWithStyles();
|
|
50
|
-
let body = `<div class="ace-scroller print" style="width: 100%;">${this.content.innerHTML}</div>`;
|
|
51
|
-
body = `<div class="edit-container ace-editor print">${body}</div>`;
|
|
52
|
-
body = `<div class="container print" style="height: ${layerConfig.maxHeight}px;">${body}</div>`;
|
|
53
|
-
body = `<div class="mat-drawer-content print">${body}</div>`;
|
|
54
|
-
body = `<div class="mat-drawer-container sidenav-container print">${body}</div>`;
|
|
55
|
-
body = `<div class="base-editor print">${body}</div>`;
|
|
56
|
-
this.documentHtml = `<!DOCTYPE html><html>${head}${body}</html>`;
|
|
57
|
-
}
|
|
58
|
-
createHeadWithStyles() {
|
|
59
|
-
let styles = '';
|
|
60
|
-
for (let i = 0; i < document.styleSheets.length; i++) {
|
|
61
|
-
const cssRules = Array.from(document.styleSheets[i].cssRules);
|
|
62
|
-
cssRules.forEach(rule => (styles += `<style>${rule.cssText}</style>`));
|
|
63
|
-
}
|
|
64
|
-
return `<head><title>Print</title>${styles}${this.getPrintPageStyle()}</head>`;
|
|
65
|
-
}
|
|
66
|
-
getPrintPageStyle() {
|
|
67
|
-
const pageStyle = '@page { margin: 0; }';
|
|
68
|
-
const contentStyle = `@media print { html, body { width: 100%; height: 100%; } }`;
|
|
69
|
-
return `<style>${pageStyle} ${contentStyle}</style>`;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQucmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL3ByaW50LnJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU94RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRCxNQUFNLE9BQU8sYUFBYTtJQWlCdEIsWUFBb0IsT0FBb0IsRUFBRSxhQUE0QjtRQUFsRCxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLENB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Q0FBQztRQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDMUU7UUFFRCxPQUFPLDZCQUE2QixNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztJQUNuRixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLDREQUE0RCxDQUFDO1FBQ2xGLE9BQU8sVUFBVSxTQUFTLElBQUksWUFBWSxVQUFVLENBQUM7SUFDekQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzdGFuY2VNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2Rpc3RhbmNlLm1vZGVsJztcbmltcG9ydCB7IEVkZ2VzTGF5ZXIgfSBmcm9tICcuL2xheWVycy9lZGdlcy5sYXllcic7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBhZ2VzTGF5ZXIgfSBmcm9tICcuL2xheWVycy9wYWdlcy5sYXllcic7XG5pbXBvcnQgeyBQYWdlc1dyYXAgfSBmcm9tICcuL3BhZ2luZy9wYWdlcy53cmFwJztcbmltcG9ydCB7IFByaW50RWRnZXNMYXllciB9IGZyb20gJy4vbGF5ZXJzL3ByaW50LmVkZ2VzLmxheWVyJztcbmltcG9ydCB7IFByaW50UGFnZXNMYXllciB9IGZyb20gJy4vbGF5ZXJzL3ByaW50LnBhZ2VzLmxheWVyJztcbmltcG9ydCB7IFByaW50UmVuZGVyaW5nSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL3ByaW50LnJlbmRlcmluZy5oZWxwZXInO1xuaW1wb3J0IHsgUHJpbnRUZXh0TGF5ZXIgfSBmcm9tICcuL2xheWVycy9wcmludC50ZXh0LmxheWVyJztcbmltcG9ydCB7IFRleHRMYXllciB9IGZyb20gJy4vbGF5ZXJzL3RleHQubGF5ZXInO1xuXG5leHBvcnQgY2xhc3MgUHJpbnRSZW5kZXJlciB7XG4gICAgY29udGVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBlZGdlc0xheWVyOiBFZGdlc0xheWVyO1xuXG4gICAgdGV4dExheWVyOiBUZXh0TGF5ZXI7XG5cbiAgICBwYWdlc0xheWVyOiBQYWdlc0xheWVyO1xuXG4gICAgb3JpZ2luYWxQYWdlc1dyYXA6IFBhZ2VzV3JhcDtcblxuICAgIGRvY3VtZW50SHRtbDogc3RyaW5nO1xuXG4gICAgaGVhZEh0bWw6IHN0cmluZztcblxuICAgIHBhZ2VzQ291bnQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvbjogRWRpdFNlc3Npb24sIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5wYWdlc0NvdW50ID0gTWF0aC5yb3VuZCgoc2Vzc2lvbi5wYWdlc1dyYXAucGFnZXNTcGFjZSAqIDIgKyBzZXNzaW9uLnBhZ2VzV3JhcC5hbGxQYWdlc0hlaWdodCkgLyBzZXNzaW9uLnBhZ2VzV3JhcC5taW5IZWlnaHQpO1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVMYXllcnMoZWRpdG9yU2VydmljZSk7XG4gICAgfVxuXG4gICAgcmVuZGVyUHJpbnREb2N1bWVudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGF5ZXJDb25maWcgPSB0aGlzLmNvbXB1dGVMYXllckNvbmZpZygpO1xuXG4gICAgICAgIHRoaXMucGFnZXNMYXllci51cGRhdGUobGF5ZXJDb25maWcpO1xuICAgICAgICB0aGlzLnRleHRMYXllci51cGRhdGUobGF5ZXJDb25maWcpO1xuICAgICAgICB0aGlzLmVkZ2VzTGF5ZXIudXBkYXRlKGxheWVyQ29uZmlnKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZURvY3VtZW50SHRtbChsYXllckNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlTGF5ZXJDb25maWcoKTogSUxheWVyQ29uZmlnIHtcbiAgICAgICAgY29uc3QgcGFnZXMgPSBBcnJheS5mcm9tKEFycmF5KHRoaXMucGFnZXNDb3VudCkua2V5cygpKS5tYXAoeCA9PiB4ICsgMSk7XG4gICAgICAgIGNvbnN0IHBhZ2VzV3JhcCA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXA7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHBhZ2VzV3JhcC5wYWdlSGVpZ2h0ICogdGhpcy5wYWdlc0NvdW50O1xuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBwYWdlc1dyYXAucGFnZUhlaWdodDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6IHRoaXMudGV4dExheWVyLmVsZW1lbnQuY2xpZW50V2lkdGggKyBwYWdlc1dyYXAuZG9jdW1lbnRNYXJnaW4ubGVmdCArIHBhZ2VzV3JhcC5kb2N1bWVudE1hcmdpbi5yaWdodCxcbiAgICAgICAgICAgIGhlaWdodDogcGFnZXNXcmFwLmRlZmF1bHRWZXJ0aWNhbERhdGEuY29udGVudEhlaWdodCxcbiAgICAgICAgICAgIGNvbnRlbnRSYW5nZTogbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogMCwgZW5kOiB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLnBhcmFncmFwaHMubGVuZ3RoIC0gMSB9KSxcbiAgICAgICAgICAgIG1pbkhlaWdodCxcbiAgICAgICAgICAgIG1heEhlaWdodCxcbiAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgICAgc2Nyb2xsVG9wOiAwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb250ZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5jb250ZW50LmNsYXNzTmFtZSA9ICdhY2UtY29udGVudCBwcmludCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYXllcnMoZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHRMYXllciA9IG5ldyBQcmludFRleHRMYXllcih0aGlzLmNvbnRlbnQsIFByaW50UmVuZGVyaW5nSGVscGVyKTtcbiAgICAgICAgdGhpcy50ZXh0TGF5ZXIuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuICAgICAgICB0aGlzLmVkZ2VzTGF5ZXIgPSBuZXcgUHJpbnRFZGdlc0xheWVyKHRoaXMuY29udGVudCwgZWRpdG9yU2VydmljZSk7XG4gICAgICAgIHRoaXMuZWRnZXNMYXllci5zZXRTZXNzaW9uKHRoaXMuc2Vzc2lvbik7XG4gICAgICAgIHRoaXMucGFnZXNMYXllciA9IG5ldyBQcmludFBhZ2VzTGF5ZXIodGhpcy5jb250ZW50KTtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURvY3VtZW50SHRtbChsYXllckNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhlYWQgPSB0aGlzLmNyZWF0ZUhlYWRXaXRoU3R5bGVzKCk7XG4gICAgICAgIGxldCBib2R5ID0gYDxkaXYgY2xhc3M9XCJhY2Utc2Nyb2xsZXIgcHJpbnRcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPiR7dGhpcy5jb250ZW50LmlubmVySFRNTH08L2Rpdj5gO1xuICAgICAgICBib2R5ID0gYDxkaXYgY2xhc3M9XCJlZGl0LWNvbnRhaW5lciBhY2UtZWRpdG9yIHByaW50XCI+JHtib2R5fTwvZGl2PmA7XG4gICAgICAgIGJvZHkgPSBgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwcmludFwiIHN0eWxlPVwiaGVpZ2h0OiAke2xheWVyQ29uZmlnLm1heEhlaWdodH1weDtcIj4ke2JvZHl9PC9kaXY+YDtcbiAgICAgICAgYm9keSA9IGA8ZGl2IGNsYXNzPVwibWF0LWRyYXdlci1jb250ZW50IHByaW50XCI+JHtib2R5fTwvZGl2PmA7XG4gICAgICAgIGJvZHkgPSBgPGRpdiBjbGFzcz1cIm1hdC1kcmF3ZXItY29udGFpbmVyIHNpZGVuYXYtY29udGFpbmVyIHByaW50XCI+JHtib2R5fTwvZGl2PmA7XG4gICAgICAgIGJvZHkgPSBgPGRpdiBjbGFzcz1cImJhc2UtZWRpdG9yIHByaW50XCI+JHtib2R5fTwvZGl2PmA7XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudEh0bWwgPSBgPCFET0NUWVBFIGh0bWw+PGh0bWw+JHtoZWFkfSR7Ym9keX08L2h0bWw+YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhlYWRXaXRoU3R5bGVzKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzdHlsZXMgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3NzUnVsZXMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldLmNzc1J1bGVzKTtcbiAgICAgICAgICAgIGNzc1J1bGVzLmZvckVhY2gocnVsZSA9PiAoc3R5bGVzICs9IGA8c3R5bGU+JHtydWxlLmNzc1RleHR9PC9zdHlsZT5gKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYDxoZWFkPjx0aXRsZT5QcmludDwvdGl0bGU+JHtzdHlsZXN9JHt0aGlzLmdldFByaW50UGFnZVN0eWxlKCl9PC9oZWFkPmA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcmludFBhZ2VTdHlsZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYWdlU3R5bGUgPSAnQHBhZ2UgeyBtYXJnaW46IDA7IH0nO1xuICAgICAgICBjb25zdCBjb250ZW50U3R5bGUgPSBgQG1lZGlhIHByaW50IHsgaHRtbCwgYm9keSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0gfWA7XG4gICAgICAgIHJldHVybiBgPHN0eWxlPiR7cGFnZVN0eWxlfSAke2NvbnRlbnRTdHlsZX08L3N0eWxlPmA7XG4gICAgfVxufVxuIl19
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { Point } from './point';
|
|
2
|
-
import { PositionHelper } from './helpers/position.helper';
|
|
3
|
-
export class Range {
|
|
4
|
-
get isEmpty() {
|
|
5
|
-
return this.isSingleLine && this.start.column === this.end.column;
|
|
6
|
-
}
|
|
7
|
-
get isSingleLine() {
|
|
8
|
-
return this.start.row === this.end.row;
|
|
9
|
-
}
|
|
10
|
-
constructor(start, end) {
|
|
11
|
-
this.start = start;
|
|
12
|
-
this.end = end;
|
|
13
|
-
}
|
|
14
|
-
isEqual(range) {
|
|
15
|
-
return (this.start.row === range.start.row &&
|
|
16
|
-
this.end.row === range.end.row &&
|
|
17
|
-
this.start.column === range.start.column &&
|
|
18
|
-
this.end.column === range.end.column);
|
|
19
|
-
}
|
|
20
|
-
contains(point) {
|
|
21
|
-
return this.comparePoint(point) === 0;
|
|
22
|
-
}
|
|
23
|
-
comparePoint(point) {
|
|
24
|
-
const compare = this.compareSingleLine(point);
|
|
25
|
-
return compare ?? this.compareMultiLine(point);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Given the current `Range`,
|
|
29
|
-
* this function converts those starting and ending points into screen positions, and then returns a new `Range` object.
|
|
30
|
-
* @param {EditSession} session The `EditSession` to retrieve coordinates from
|
|
31
|
-
* @returns {Range}
|
|
32
|
-
**/
|
|
33
|
-
toScreenRange(session) {
|
|
34
|
-
const screenPosStart = PositionHelper.documentToScreen(session, this.start.row, this.start.column);
|
|
35
|
-
const screenPosEnd = PositionHelper.documentToScreen(session, this.end.row, this.end.column);
|
|
36
|
-
return new Range(screenPosStart, screenPosEnd);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Returns the part of the current `Range` that occurs within the boundaries of `firstRow` and `lastRow` as a new `Range` object.
|
|
40
|
-
* @param {Number} firstRow The starting row
|
|
41
|
-
* @param {Number} lastRow The ending row
|
|
42
|
-
* @returns {Range}
|
|
43
|
-
**/
|
|
44
|
-
clipRows(firstRow, lastRow) {
|
|
45
|
-
let end;
|
|
46
|
-
if (this.end.row > lastRow) {
|
|
47
|
-
end = new Point(lastRow + 1, 0);
|
|
48
|
-
}
|
|
49
|
-
else if (this.end.row < firstRow) {
|
|
50
|
-
end = new Point(firstRow, 0);
|
|
51
|
-
}
|
|
52
|
-
let start;
|
|
53
|
-
if (this.start.row > lastRow) {
|
|
54
|
-
start = new Point(lastRow + 1, 0);
|
|
55
|
-
}
|
|
56
|
-
else if (this.start.row < firstRow) {
|
|
57
|
-
start = new Point(firstRow, 0);
|
|
58
|
-
}
|
|
59
|
-
return new Range(start || this.start, end || this.end);
|
|
60
|
-
}
|
|
61
|
-
compareSingleLine(point) {
|
|
62
|
-
if (!this.isSingleLine) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
if (point.row === this.start.row) {
|
|
66
|
-
if (point.column < this.start.column) {
|
|
67
|
-
return -1;
|
|
68
|
-
}
|
|
69
|
-
else if (point.column > this.end.column) {
|
|
70
|
-
return 1;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
return 0;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
compareMultiLine(point) {
|
|
79
|
-
if (this.start.row === point.row) {
|
|
80
|
-
return point.column >= this.start.column ? 0 : -1;
|
|
81
|
-
}
|
|
82
|
-
if (this.end.row === point.row) {
|
|
83
|
-
return point.column <= this.end.column ? 0 : 1;
|
|
84
|
-
}
|
|
85
|
-
if (point.row < this.start.row) {
|
|
86
|
-
return -1;
|
|
87
|
-
}
|
|
88
|
-
if (point.row > this.end.row) {
|
|
89
|
-
return 1;
|
|
90
|
-
}
|
|
91
|
-
return 0;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL3JhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE1BQU0sT0FBTyxLQUFLO0lBT2QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFZLEtBQVksRUFBRSxHQUFVO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBMkM7UUFDdEQsT0FBTyxDQUNILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUc7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUN2QyxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZ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SSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuL3BvaW50JztcbmltcG9ydCB7IFBvc2l0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL3Bvc2l0aW9uLmhlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBSYW5nZSB7XG4gICAgc3RhcnQ6IFBvaW50O1xuXG4gICAgZW5kOiBQb2ludDtcblxuICAgIGN1cnNvcjogUG9pbnQ7XG5cbiAgICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTaW5nbGVMaW5lICYmIHRoaXMuc3RhcnQuY29sdW1uID09PSB0aGlzLmVuZC5jb2x1bW47XG4gICAgfVxuXG4gICAgZ2V0IGlzU2luZ2xlTGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQucm93ID09PSB0aGlzLmVuZC5yb3c7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioc3RhcnQ6IFBvaW50LCBlbmQ6IFBvaW50KSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWwocmFuZ2U6IFJhbmdlIHwgeyBzdGFydDogUG9pbnQ7IGVuZDogUG9pbnQgfSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5zdGFydC5yb3cgPT09IHJhbmdlLnN0YXJ0LnJvdyAmJlxuICAgICAgICAgICAgdGhpcy5lbmQucm93ID09PSByYW5nZS5lbmQucm93ICYmXG4gICAgICAgICAgICB0aGlzLnN0YXJ0LmNvbHVtbiA9PT0gcmFuZ2Uuc3RhcnQuY29sdW1uICYmXG4gICAgICAgICAgICB0aGlzLmVuZC5jb2x1bW4gPT09IHJhbmdlLmVuZC5jb2x1bW5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb250YWlucyhwb2ludDogUG9pbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZVBvaW50KHBvaW50KSA9PT0gMDtcbiAgICB9XG5cbiAgICBjb21wYXJlUG9pbnQocG9pbnQ6IFBvaW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcGFyZSA9IHRoaXMuY29tcGFyZVNpbmdsZUxpbmUocG9pbnQpO1xuXG4gICAgICAgIHJldHVybiBjb21wYXJlID8/IHRoaXMuY29tcGFyZU11bHRpTGluZShwb2ludCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gdGhlIGN1cnJlbnQgYFJhbmdlYCxcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHRob3NlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgcG9pbnRzIGludG8gc2NyZWVuIHBvc2l0aW9ucywgYW5kIHRoZW4gcmV0dXJucyBhIG5ldyBgUmFuZ2VgIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge0VkaXRTZXNzaW9ufSBzZXNzaW9uIFRoZSBgRWRpdFNlc3Npb25gIHRvIHJldHJpZXZlIGNvb3JkaW5hdGVzIGZyb21cbiAgICAgKiBAcmV0dXJucyB7UmFuZ2V9XG4gICAgICoqL1xuICAgIHRvU2NyZWVuUmFuZ2Uoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiBSYW5nZSB7XG4gICAgICAgIGNvbnN0IHNjcmVlblBvc1N0YXJ0ID0gUG9zaXRpb25IZWxwZXIuZG9jdW1lbnRUb1NjcmVlbihzZXNzaW9uLCB0aGlzLnN0YXJ0LnJvdywgdGhpcy5zdGFydC5jb2x1bW4pO1xuICAgICAgICBjb25zdCBzY3JlZW5Qb3NFbmQgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHRoaXMuZW5kLnJvdywgdGhpcy5lbmQuY29sdW1uKTtcblxuICAgICAgICByZXR1cm4gbmV3IFJhbmdlKHNjcmVlblBvc1N0YXJ0LCBzY3JlZW5Qb3NFbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhcnQgb2YgdGhlIGN1cnJlbnQgYFJhbmdlYCB0aGF0IG9jY3VycyB3aXRoaW4gdGhlIGJvdW5kYXJpZXMgb2YgYGZpcnN0Um93YCBhbmQgYGxhc3RSb3dgIGFzIGEgbmV3IGBSYW5nZWAgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBmaXJzdFJvdyBUaGUgc3RhcnRpbmcgcm93XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGxhc3RSb3cgVGhlIGVuZGluZyByb3dcbiAgICAgKiBAcmV0dXJucyB7UmFuZ2V9XG4gICAgICoqL1xuICAgIGNsaXBSb3dzKGZpcnN0Um93OiBudW1iZXIsIGxhc3RSb3c6IG51bWJlcik6IFJhbmdlIHtcbiAgICAgICAgbGV0IGVuZDogUG9pbnQ7XG4gICAgICAgIGlmICh0aGlzLmVuZC5yb3cgPiBsYXN0Um93KSB7XG4gICAgICAgICAgICBlbmQgPSBuZXcgUG9pbnQobGFzdFJvdyArIDEsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZW5kLnJvdyA8IGZpcnN0Um93KSB7XG4gICAgICAgICAgICBlbmQgPSBuZXcgUG9pbnQoZmlyc3RSb3csIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN0YXJ0OiBQb2ludDtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQucm93ID4gbGFzdFJvdykge1xuICAgICAgICAgICAgc3RhcnQgPSBuZXcgUG9pbnQobGFzdFJvdyArIDEsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnQucm93IDwgZmlyc3RSb3cpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gbmV3IFBvaW50KGZpcnN0Um93LCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgUmFuZ2Uoc3RhcnQgfHwgdGhpcy5zdGFydCwgZW5kIHx8IHRoaXMuZW5kKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXBhcmVTaW5nbGVMaW5lKHBvaW50OiBQb2ludCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5pc1NpbmdsZUxpbmUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvaW50LnJvdyA9PT0gdGhpcy5zdGFydC5yb3cpIHtcbiAgICAgICAgICAgIGlmIChwb2ludC5jb2x1bW4gPCB0aGlzLnN0YXJ0LmNvbHVtbikge1xuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocG9pbnQuY29sdW1uID4gdGhpcy5lbmQuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wYXJlTXVsdGlMaW5lKHBvaW50OiBQb2ludCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0LnJvdyA9PT0gcG9pbnQucm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcG9pbnQuY29sdW1uID49IHRoaXMuc3RhcnQuY29sdW1uID8gMCA6IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZW5kLnJvdyA9PT0gcG9pbnQucm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcG9pbnQuY29sdW1uIDw9IHRoaXMuZW5kLmNvbHVtbiA/IDAgOiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvaW50LnJvdyA8IHRoaXMuc3RhcnQucm93KSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9pbnQucm93ID4gdGhpcy5lbmQucm93KSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbn1cbiJdfQ==
|