@talrace/ngx-noder 0.0.7 → 0.0.9
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 +75 -66
- package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +67 -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 +117 -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 +48 -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 +127 -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 +55 -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 +129 -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 +410 -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 +17 -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 +376 -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 +70 -0
- package/esm2022/lib/editor/content/contents.interface.mjs +2 -0
- package/esm2022/lib/editor/content/display-data/display-data.mjs +839 -0
- package/esm2022/lib/editor/content/display-data/display-token.model.mjs +12 -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/models/paragraph-info.model.mjs +8 -0
- package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +2 -0
- package/esm2022/lib/editor/content/display-data/paragraph.mjs +56 -0
- package/esm2022/lib/editor/content/display-data/text-line-info.mjs +35 -0
- package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +2 -0
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +78 -0
- package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +62 -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 +102 -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 +119 -0
- package/esm2022/lib/editor/display/layers/text.layer.mjs +201 -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 +185 -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 +561 -0
- package/esm2022/lib/editor/execution/editor.mjs +1387 -0
- package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +42 -0
- package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +32 -0
- package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +12 -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 +177 -0
- package/esm2022/lib/editor/execution/regulator.service.mjs +206 -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-paragraph-style.model.mjs +13 -0
- package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +149 -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 +346 -0
- package/esm2022/lib/editor/interaction/input.handler.mjs +152 -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 +50 -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 +85 -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 +63 -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 +431 -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 +196 -0
- package/esm2022/lib/editor/positioning/range.mjs +94 -0
- package/esm2022/lib/editor/positioning/selection.mjs +317 -0
- package/esm2022/lib/editor/revision.helper.mjs +92 -0
- package/esm2022/lib/models/generated/cell.model.mjs +1 -1
- 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 +37 -31
- package/fesm2022/talrace-ngx-noder.mjs +8169 -7285
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +26 -0
- package/lib/apart-components/add-link-dialog/validation.helper.d.ts +5 -0
- 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 +2 -1
- package/lib/{+shared → apart-components}/editor-search/editor-search-dialog.component.d.ts +6 -7
- package/lib/apart-components/editor-title/editor-title.component.d.ts +25 -0
- 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/apart-components/editor-toolbar/shared/toolbar-styles.helper.d.ts +4 -0
- 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 +11 -11
- 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}/external-element/models/external-element.model.d.ts +2 -1
- 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/input-handler/image-input.handler.d.ts +3 -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 +6 -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 -13
- 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 +2 -1
- package/lib/editor/components/table/components/table-cell.component.d.ts +45 -0
- package/lib/{+shared/editor/custom-components → editor/components}/table/components/table.component.d.ts +27 -11
- package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-data.model.d.ts +1 -1
- 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 +5 -3
- package/lib/{+shared/editor/core → editor/content}/constants/editor.const.d.ts +5 -3
- package/lib/editor/content/contents.interface.d.ts +22 -0
- package/lib/editor/content/display-data/display-data.d.ts +103 -0
- package/lib/{+shared/editor/core/models → editor/content/display-data}/display-token.model.d.ts +1 -1
- package/lib/{+shared/editor/core/models → editor/content/display-data}/format-ext.model.d.ts +1 -1
- package/lib/editor/content/display-data/general-properties.model.d.ts +13 -0
- package/lib/{+shared/editor/core/models → editor/content/display-data}/line-info.model.d.ts +1 -0
- package/lib/{+shared/editor/core/layers → editor/content/display-data}/lines.d.ts +1 -1
- package/lib/editor/content/display-data/models/paragraph-info.model.d.ts +9 -0
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/paragraph.d.ts +9 -5
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/text-line-info.d.ts +5 -2
- package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/toolbar-styles.interface.d.ts +1 -1
- package/lib/editor/content/helpers/content-style.helper.d.ts +10 -0
- package/lib/editor/content/helpers/display-token.helper.d.ts +6 -0
- package/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.d.ts +1 -1
- package/lib/editor/content/helpers/scaling.helper.d.ts +4 -0
- 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 +33 -0
- package/lib/{+shared/helpers → editor/display/print}/print.helper.d.ts +3 -3
- package/lib/editor/display/print/print.renderer.d.ts +21 -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 +10 -10
- 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/editor/editor.module.d.ts +31 -0
- package/lib/editor/execution/edit.session.d.ts +113 -0
- package/lib/{+shared/editor/core → editor/execution}/editor.d.ts +55 -46
- package/lib/{+shared/editor/core → editor/execution}/helpers/format-style.helper.d.ts +1 -5
- package/lib/editor/execution/helpers/image.helpet.d.ts +4 -0
- 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 +14 -8
- package/lib/{+shared/editor → editor}/execution/regulator.service.d.ts +16 -15
- 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/editor/gadgets/numbering/numbering-paragraph-style.model.d.ts +6 -0
- package/lib/editor/gadgets/numbering/numbering.helper.d.ts +26 -0
- 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 +36 -21
- 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/editor/operations/helpers/link-operations.helper.d.ts +8 -0
- 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/editor/positioning/content.helper.d.ts +15 -0
- 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 +11 -11
- package/lib/{+shared/editor/core → editor/positioning}/range.d.ts +12 -12
- package/lib/{+shared/editor → editor}/positioning/selection.d.ts +13 -10
- package/lib/editor/revision.helper.d.ts +15 -0
- package/lib/models/generated/cell.model.d.ts +1 -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 +36 -30
- package/src/_ngx-noder.theme.scss +49 -13
- 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 +4 -4
- package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +25 -0
- package/src/lib/apart-components/confirm-dialog/_theme.scss +30 -0
- package/src/lib/apart-components/editor-title/_editor-title.theme.scss +28 -0
- 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/apart-components/editor-toolbar/components/buttons/font/_font.theme.scss +12 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/font-size/_font-size.theme.scss +14 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/font-style/_font-style.theme.scss +21 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/format/_format.theme.scss +21 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/numbering/_numbering.theme.scss +70 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/undo-redo/_undo-redo.theme.scss +16 -0
- package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns/_menu-dropdowns.theme.scss +26 -0
- package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +33 -0
- package/src/lib/apart-components/editor-toolbar/components/toolbar-actions/_toolbar-actions.theme.scss +22 -0
- package/src/lib/{+shared → apart-components}/insert-table/_insert-table.theme.scss +10 -7
- 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/editor/_theme.scss +5 -0
- package/src/lib/editor/components/_editor.theme.scss +112 -0
- package/src/scss/_fonts.scss +3 -0
- 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/confirm-dialog/confirm-dialog.component.mjs +0 -28
- 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 -1102
- package/esm2022/lib/+shared/editor/core/editor.mjs +0 -1279
- 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 -132
- package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +0 -191
- package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +0 -186
- 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 -219
- 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/element-toolbar/element-toolbar.component.mjs +0 -35
- 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 -10
- 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 -87
- 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 -57
- 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 -120
- 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 -43
- 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 -95
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +0 -293
- 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 -358
- package/esm2022/lib/+shared/editor/editor.component.mjs +0 -103
- package/esm2022/lib/+shared/editor/editor.module.mjs +0 -85
- 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 -193
- 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 -371
- 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-header/editor-header.component.mjs +0 -314
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +0 -71
- 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 -115
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +0 -107
- 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/numbering/numbering.component.mjs +0 -53
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +0 -18
- 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/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/document.d.ts +0 -56
- package/lib/+shared/editor/core/edit.session.d.ts +0 -159
- 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/helpers/numbering.helper.d.ts +0 -19
- 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/paging/pages.wrap.d.ts +0 -41
- 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/external-element/element-toolbar/element-toolbar.component.d.ts +0 -14
- 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/custom-components/table/components/table-cell.component.d.ts +0 -45
- package/lib/+shared/editor/editor.module.d.ts +0 -30
- package/lib/+shared/editor/execution/models/general-properties.model.d.ts +0 -7
- package/lib/+shared/editor/helpers/content.helper.d.ts +0 -9
- 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/link-operations.helper.d.ts +0 -6
- 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-header/editor-header.component.d.ts +0 -101
- package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +0 -6
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +0 -44
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +0 -28
- package/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.d.ts +0 -6
- package/src/lib/+shared/editor/_editor.theme.scss +0 -35
- package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +0 -10
- package/src/lib/+shared/editor-header/_editor-header.theme.scss +0 -106
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +0 -33
- package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +0 -29
- /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-sidenav.model.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-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/interfaces → editor/content/display-data}/paragraph-info.interface.d.ts +0 -0
- /package/lib/{+shared/editor → editor/content}/helpers/format.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
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export class EventEmitting {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.eventRegistry = {};
|
|
4
|
+
}
|
|
5
|
+
addEventListener(eventName, callback, toStart = false) {
|
|
6
|
+
this.eventRegistry[eventName] ??= [];
|
|
7
|
+
const listeners = this.eventRegistry[eventName];
|
|
8
|
+
if (listeners.includes(callback)) {
|
|
9
|
+
return callback;
|
|
10
|
+
}
|
|
11
|
+
if (toStart) {
|
|
12
|
+
listeners.unshift(callback);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
listeners.push(callback);
|
|
16
|
+
}
|
|
17
|
+
return callback;
|
|
18
|
+
}
|
|
19
|
+
removeEventListener(eventName, callback) {
|
|
20
|
+
if (!this.eventRegistry[eventName]) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const index = this.eventRegistry[eventName].indexOf(callback);
|
|
24
|
+
if (index < 0) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.eventRegistry[eventName].splice(index, 1);
|
|
28
|
+
}
|
|
29
|
+
emit(eventName, data) {
|
|
30
|
+
const listeners = this.eventRegistry[eventName]?.slice() || [];
|
|
31
|
+
if (!listeners.length) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
data ??= {};
|
|
35
|
+
data['type'] ??= eventName;
|
|
36
|
+
for (const listener of listeners) {
|
|
37
|
+
listener(data, this);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
signal(eventName, data) {
|
|
41
|
+
const listeners = this.eventRegistry[eventName]?.slice() || [];
|
|
42
|
+
if (!listeners.length) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
for (const listener of listeners) {
|
|
46
|
+
listener(data, this);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
removeAllListeners(eventName) {
|
|
50
|
+
if (!this.eventRegistry[eventName] || !this.eventRegistry[eventName].length) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.eventRegistry[eventName] = [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZW1pdHRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29yZS9ldmVudC1lbWl0dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWdCLGFBQWE7SUFBbkM7UUFDSSxrQkFBYSxHQUE2QixFQUFFLENBQUM7SUErRGpELENBQUM7SUE3REcsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxRQUFhLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNULFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUI7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxRQUFhO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hDLE9BQU87U0FDVjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNYLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQWlCLEVBQUUsSUFBNkI7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBRUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUM7UUFFM0IsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7WUFDOUIsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBaUIsRUFBRSxJQUFVO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUVELEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1lBQzlCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsU0FBaUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUN6RSxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgYWJzdHJhY3QgY2xhc3MgRXZlbnRFbWl0dGluZyB7XG4gICAgZXZlbnRSZWdpc3RyeTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB9ID0ge307XG5cbiAgICBhZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogYW55LCB0b1N0YXJ0ID0gZmFsc2UpOiBhbnkge1xuICAgICAgICB0aGlzLmV2ZW50UmVnaXN0cnlbZXZlbnROYW1lXSA/Pz0gW107XG4gICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuZXZlbnRSZWdpc3RyeVtldmVudE5hbWVdO1xuICAgICAgICBpZiAobGlzdGVuZXJzLmluY2x1ZGVzKGNhbGxiYWNrKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRvU3RhcnQpIHtcbiAgICAgICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpc3RlbmVycy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWxsYmFjaztcbiAgICB9XG5cbiAgICByZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ldmVudFJlZ2lzdHJ5W2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ldmVudFJlZ2lzdHJ5W2V2ZW50TmFtZV0uaW5kZXhPZihjYWxsYmFjayk7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXZlbnRSZWdpc3RyeVtldmVudE5hbWVdLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgZW1pdChldmVudE5hbWU6IHN0cmluZywgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5ldmVudFJlZ2lzdHJ5W2V2ZW50TmFtZV0/LnNsaWNlKCkgfHwgW107XG4gICAgICAgIGlmICghbGlzdGVuZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YSA/Pz0ge307XG4gICAgICAgIGRhdGFbJ3R5cGUnXSA/Pz0gZXZlbnROYW1lO1xuXG4gICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgbGlzdGVuZXJzKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcihkYXRhLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNpZ25hbChldmVudE5hbWU6IHN0cmluZywgZGF0YT86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLmV2ZW50UmVnaXN0cnlbZXZlbnROYW1lXT8uc2xpY2UoKSB8fCBbXTtcbiAgICAgICAgaWYgKCFsaXN0ZW5lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIGxpc3RlbmVycykge1xuICAgICAgICAgICAgbGlzdGVuZXIoZGF0YSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50UmVnaXN0cnlbZXZlbnROYW1lXSB8fCAhdGhpcy5ldmVudFJlZ2lzdHJ5W2V2ZW50TmFtZV0ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV2ZW50UmVnaXN0cnlbZXZlbnROYW1lXSA9IFtdO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9jZWxsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDZWxsIHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICByb3c6IG51bWJlcjtcbiAgICBwYWdlOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class EventHelper {
|
|
2
|
+
static get nextFrame() {
|
|
3
|
+
if (!this._nextFrame) {
|
|
4
|
+
const nextFrame = (callback) => {
|
|
5
|
+
setTimeout(callback, 17);
|
|
6
|
+
};
|
|
7
|
+
this._nextFrame =
|
|
8
|
+
window.requestAnimationFrame ||
|
|
9
|
+
window['webkitRequestAnimationFrame'] ||
|
|
10
|
+
window['mozRequestAnimationFrame'] ||
|
|
11
|
+
window['msRequestAnimationFrame'] ||
|
|
12
|
+
window['oRequestAnimationFrame'] ||
|
|
13
|
+
nextFrame;
|
|
14
|
+
}
|
|
15
|
+
return this._nextFrame;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvZXZlbnQuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLE1BQU0sS0FBSyxTQUFTO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBb0IsRUFBRSxFQUFFO2dCQUN2QyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVO2dCQUNYLE1BQU0sQ0FBQyxxQkFBcUI7b0JBQzVCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQztvQkFDckMsTUFBTSxDQUFDLDBCQUEwQixDQUFDO29CQUNsQyxNQUFNLENBQUMseUJBQXlCLENBQUM7b0JBQ2pDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztvQkFDaEMsU0FBUyxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFdmVudEhlbHBlciB7XG4gICAgc3RhdGljIGdldCBuZXh0RnJhbWUoKTogKGNhbGxiYWNrOiBUaW1lckhhbmRsZXIpID0+IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5fbmV4dEZyYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0RnJhbWUgPSAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCAxNyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fbmV4dEZyYW1lID1cbiAgICAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICAgICAgd2luZG93Wyd3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fFxuICAgICAgICAgICAgICAgIHdpbmRvd1snbW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHxcbiAgICAgICAgICAgICAgICB3aW5kb3dbJ21zUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHxcbiAgICAgICAgICAgICAgICB3aW5kb3dbJ29SZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fFxuICAgICAgICAgICAgICAgIG5leHRGcmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9uZXh0RnJhbWU7XG4gICAgfVxuICAgIHByaXZhdGUgc3RhdGljIF9uZXh0RnJhbWU6IChjYWxsYmFjazogVGltZXJIYW5kbGVyKSA9PiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ContentStyleHelper } from '../../content/helpers/content-style.helper';
|
|
2
|
+
import { DomHelper } from '../../execution/helpers/dom.helper';
|
|
3
|
+
import { FontMetrics } from '../../gadgets/font-metrics/font-metrics.helper';
|
|
4
|
+
import { PositionHelper } from '../../positioning/position.helper';
|
|
5
|
+
import { TextStyleModel } from '../../../models/generated/text-style.model';
|
|
6
|
+
export class CursorLayer {
|
|
7
|
+
constructor(parentElement, session) {
|
|
8
|
+
this.session = session;
|
|
9
|
+
this.blinkInterval = 1000;
|
|
10
|
+
this.layer = document.createElement('div');
|
|
11
|
+
this.layer.className = 'noder-layer noder-cursor-layer';
|
|
12
|
+
parentElement.appendChild(this.layer);
|
|
13
|
+
this.cursor = document.createElement('div');
|
|
14
|
+
this.cursor.className = 'noder-cursor';
|
|
15
|
+
this.layer.appendChild(this.cursor);
|
|
16
|
+
this.hideCursor();
|
|
17
|
+
}
|
|
18
|
+
hideCursor() {
|
|
19
|
+
this.isVisible = false;
|
|
20
|
+
DomHelper.addCssClass(this.layer, 'noder-hidden-cursors');
|
|
21
|
+
this.removeAnimationClass();
|
|
22
|
+
}
|
|
23
|
+
showCursor() {
|
|
24
|
+
this.isVisible = true;
|
|
25
|
+
DomHelper.removeCssClass(this.layer, 'noder-hidden-cursors');
|
|
26
|
+
this.addAnimationClass();
|
|
27
|
+
}
|
|
28
|
+
detectVisibility() {
|
|
29
|
+
const selectionRange = this.session.selection.range;
|
|
30
|
+
if (selectionRange.isEmpty) {
|
|
31
|
+
DomHelper.removeCssClass(this.layer, 'selecting');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
DomHelper.addCssClass(this.layer, 'selecting');
|
|
35
|
+
}
|
|
36
|
+
update(config) {
|
|
37
|
+
this.cursorPosition = this.getPixelPosition();
|
|
38
|
+
this.drawCursor(config.maxHeight);
|
|
39
|
+
this.detectVisibility();
|
|
40
|
+
this.restartAnimation();
|
|
41
|
+
}
|
|
42
|
+
getPixelPosition(position) {
|
|
43
|
+
if (!position) {
|
|
44
|
+
position = this.session.selection.cursor;
|
|
45
|
+
}
|
|
46
|
+
return PositionHelper.documentToPixel(this.session, position);
|
|
47
|
+
}
|
|
48
|
+
addTextStylesToCursor() {
|
|
49
|
+
const textStyle = this.session.editorService.styles;
|
|
50
|
+
DomHelper.setStyle(this.cursor.style, 'border-color', textStyle.fontColor);
|
|
51
|
+
DomHelper.setStyle(this.cursor.style, 'fontSize', `${textStyle.fontSize}px`);
|
|
52
|
+
if (textStyle.italic) {
|
|
53
|
+
DomHelper.setStyle(this.cursor.style, '-webkit-transform', 'skewX(-13deg)');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
DomHelper.setStyle(this.cursor.style, '-webkit-transform', 'skewX(0)');
|
|
57
|
+
}
|
|
58
|
+
const metricSize = FontMetrics.measureCharSize('EMPTY_LINE', ContentStyleHelper.getFontStylesString(new TextStyleModel({
|
|
59
|
+
italic: textStyle.italic,
|
|
60
|
+
bold: textStyle.bold,
|
|
61
|
+
fontSize: textStyle.fontSize,
|
|
62
|
+
fontFamily: textStyle.fontFamily
|
|
63
|
+
})));
|
|
64
|
+
const fontMetricHeight = metricSize.ascent + metricSize.descent;
|
|
65
|
+
const maxHeight = this.cursorPosition.sizeMax.ascent + this.cursorPosition.sizeMax.descent;
|
|
66
|
+
const fontShoulders = fontMetricHeight - metricSize.font;
|
|
67
|
+
const offset = metricSize.descent - fontShoulders;
|
|
68
|
+
let top = this.cursorPosition.pageY + this.cursorPosition.sizeMax.ascent - metricSize.font + offset;
|
|
69
|
+
if (fontMetricHeight !== maxHeight && maxHeight >= this.cursorPosition.lineHeight) {
|
|
70
|
+
top -= maxHeight - this.cursorPosition.lineHeight;
|
|
71
|
+
}
|
|
72
|
+
DomHelper.setStyle(this.cursor.style, 'top', `${top < 0 ? 0 : top}px`);
|
|
73
|
+
DomHelper.setStyle(this.cursor.style, 'height', `${fontMetricHeight}px`);
|
|
74
|
+
}
|
|
75
|
+
restartAnimation() {
|
|
76
|
+
this.removeAnimationClass();
|
|
77
|
+
if (!this.isVisible) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.addAnimationClass();
|
|
81
|
+
}
|
|
82
|
+
drawCursor(maxLayerHeight) {
|
|
83
|
+
const isCursorInView = this.cursorPosition.pageY >= 0 && this.cursorPosition.pageY < maxLayerHeight;
|
|
84
|
+
if (!isCursorInView) {
|
|
85
|
+
DomHelper.setStyle(this.cursor.style, 'display', 'none');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
DomHelper.setStyle(this.cursor.style, 'display', 'block');
|
|
89
|
+
const currentSize = this.cursorPosition.sizeCurrent;
|
|
90
|
+
DomHelper.setStyle(this.cursor.style, 'left', `${this.cursorPosition.pageX}px`);
|
|
91
|
+
DomHelper.setStyle(this.cursor.style, 'width', `${currentSize.width}px`);
|
|
92
|
+
this.addTextStylesToCursor();
|
|
93
|
+
}
|
|
94
|
+
removeAnimationClass() {
|
|
95
|
+
DomHelper.removeCssClass(this.layer, 'noder-animate-blinking');
|
|
96
|
+
}
|
|
97
|
+
addAnimationClass() {
|
|
98
|
+
this.cursor.style.animationDuration = `${this.blinkInterval}ms`;
|
|
99
|
+
DomHelper.addCssClass(this.layer, 'noder-animate-blinking');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL2N1cnNvci5sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUdoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsTUFBTSxPQUFPLFdBQVc7SUFXcEIsWUFBWSxhQUEwQixFQUFVLE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFKbkQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFLbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3hELGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcs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USxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxPQUFPO1NBQ1Y7UUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoRixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQztRQUNoRSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50U3R5bGVIZWxwZXIgfSBmcm9tICcuLi8uLi9jb250ZW50L2hlbHBlcnMvY29udGVudC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgQ3Vyc29yUGFyYWdyYXBoIH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvY3Vyc29yLXBhcmFncmFwaCc7XG5pbXBvcnQgeyBDdXJzb3JQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2N1cnNvci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRG9tSGVscGVyIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRm9udE1ldHJpY3MgfSBmcm9tICcuLi8uLi9nYWRnZXRzL2ZvbnQtbWV0cmljcy9mb250LW1ldHJpY3MuaGVscGVyJztcbmltcG9ydCB7IElMYXllckNvbmZpZyB9IGZyb20gJy4vbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBvc2l0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvcG9zaXRpb24uaGVscGVyJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEN1cnNvckxheWVyIHtcbiAgICBjdXJzb3JQb3NpdGlvbjogQ3Vyc29yUG9zaXRpb247XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnNvcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheWVyOiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxpbmtJbnRlcnZhbCA9IDEwMDA7XG5cbiAgICBpc1Zpc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCwgcHJpdmF0ZSBzZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICB0aGlzLmxheWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMubGF5ZXIuY2xhc3NOYW1lID0gJ25vZGVyLWxheWVyIG5vZGVyLWN1cnNvci1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5sYXllcik7XG5cbiAgICAgICAgdGhpcy5jdXJzb3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5jdXJzb3IuY2xhc3NOYW1lID0gJ25vZGVyLWN1cnNvcic7XG4gICAgICAgIHRoaXMubGF5ZXIuYXBwZW5kQ2hpbGQodGhpcy5jdXJzb3IpO1xuXG4gICAgICAgIHRoaXMuaGlkZUN1cnNvcigpO1xuICAgIH1cblxuICAgIGhpZGVDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmxheWVyLCAnbm9kZXItaGlkZGVuLWN1cnNvcnMnKTtcbiAgICAgICAgdGhpcy5yZW1vdmVBbmltYXRpb25DbGFzcygpO1xuICAgIH1cblxuICAgIHNob3dDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMubGF5ZXIsICdub2Rlci1oaWRkZW4tY3Vyc29ycycpO1xuICAgICAgICB0aGlzLmFkZEFuaW1hdGlvbkNsYXNzKCk7XG4gICAgfVxuXG4gICAgZGV0ZWN0VmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmFuZ2UgPSB0aGlzLnNlc3Npb24uc2VsZWN0aW9uLnJhbmdlO1xuICAgICAgICBpZiAoc2VsZWN0aW9uUmFuZ2UuaXNFbXB0eSkge1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMubGF5ZXIsICdzZWxlY3RpbmcnKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLmFkZENzc0NsYXNzKHRoaXMubGF5ZXIsICdzZWxlY3RpbmcnKTtcbiAgICB9XG5cbiAgICB1cGRhdGUoY29uZmlnOiBJTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuZ2V0UGl4ZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmRyYXdDdXJzb3IoY29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgIHRoaXMuZGV0ZWN0VmlzaWJpbGl0eSgpO1xuICAgICAgICB0aGlzLnJlc3RhcnRBbmltYXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXRQaXhlbFBvc2l0aW9uKHBvc2l0aW9uPzogQ3Vyc29yUGFyYWdyYXBoKTogQ3Vyc29yUG9zaXRpb24ge1xuICAgICAgICBpZiAoIXBvc2l0aW9uKSB7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMuc2Vzc2lvbi5zZWxlY3Rpb24uY3Vyc29yO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFBvc2l0aW9uSGVscGVyLmRvY3VtZW50VG9QaXhlbCh0aGlzLnNlc3Npb24sIHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBhZGRUZXh0U3R5bGVzVG9DdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHRTdHlsZSA9IHRoaXMuc2Vzc2lvbi5lZGl0b3JTZXJ2aWNlLnN0eWxlcztcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnYm9yZGVyLWNvbG9yJywgdGV4dFN0eWxlLmZvbnRDb2xvcik7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2ZvbnRTaXplJywgYCR7dGV4dFN0eWxlLmZvbnRTaXplfXB4YCk7XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5pdGFsaWMpIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJy13ZWJraXQtdHJhbnNmb3JtJywgJ3NrZXdYKC0xM2RlZyknKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJy13ZWJraXQtdHJhbnNmb3JtJywgJ3NrZXdYKDApJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRyaWNTaXplID0gRm9udE1ldHJpY3MubWVhc3VyZUNoYXJTaXplKFxuICAgICAgICAgICAgJ0VNUFRZX0xJTkUnLFxuICAgICAgICAgICAgQ29udGVudFN0eWxlSGVscGVyLmdldEZvbnRTdHlsZXNTdHJpbmcoXG4gICAgICAgICAgICAgICAgbmV3IFRleHRTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgaXRhbGljOiB0ZXh0U3R5bGUuaXRhbGljLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiB0ZXh0U3R5bGUuYm9sZCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IHRleHRTdHlsZS5mb250U2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogdGV4dFN0eWxlLmZvbnRGYW1pbHlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb250TWV0cmljSGVpZ2h0ID0gbWV0cmljU2l6ZS5hc2NlbnQgKyBtZXRyaWNTaXplLmRlc2NlbnQ7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuY3Vyc29yUG9zaXRpb24uc2l6ZU1heC5hc2NlbnQgKyB0aGlzLmN1cnNvclBvc2l0aW9uLnNpemVNYXguZGVzY2VudDtcbiAgICAgICAgY29uc3QgZm9udFNob3VsZGVycyA9IGZvbnRNZXRyaWNIZWlnaHQgLSBtZXRyaWNTaXplLmZvbnQ7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IG1ldHJpY1NpemUuZGVzY2VudCAtIGZvbnRTaG91bGRlcnM7XG5cbiAgICAgICAgbGV0IHRvcCA9IHRoaXMuY3Vyc29yUG9zaXRpb24ucGFnZVkgKyB0aGlzLmN1cnNvclBvc2l0aW9uLnNpemVNYXguYXNjZW50IC0gbWV0cmljU2l6ZS5mb250ICsgb2Zmc2V0O1xuICAgICAgICBpZiAoZm9udE1ldHJpY0hlaWdodCAhPT0gbWF4SGVpZ2h0ICYmIG1heEhlaWdodCA+PSB0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmVIZWlnaHQpIHtcbiAgICAgICAgICAgIHRvcCAtPSBtYXhIZWlnaHQgLSB0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmVIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICd0b3AnLCBgJHt0b3AgPCAwID8gMCA6IHRvcH1weGApO1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICdoZWlnaHQnLCBgJHtmb250TWV0cmljSGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUFuaW1hdGlvbkNsYXNzKCk7XG4gICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkQW5pbWF0aW9uQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRyYXdDdXJzb3IobWF4TGF5ZXJIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0N1cnNvckluVmlldyA9IHRoaXMuY3Vyc29yUG9zaXRpb24ucGFnZVkgPj0gMCAmJiB0aGlzLmN1cnNvclBvc2l0aW9uLnBhZ2VZIDwgbWF4TGF5ZXJIZWlnaHQ7XG4gICAgICAgIGlmICghaXNDdXJzb3JJblZpZXcpIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICBjb25zdCBjdXJyZW50U2l6ZSA9IHRoaXMuY3Vyc29yUG9zaXRpb24uc2l6ZUN1cnJlbnQ7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2xlZnQnLCBgJHt0aGlzLmN1cnNvclBvc2l0aW9uLnBhZ2VYfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ3dpZHRoJywgYCR7Y3VycmVudFNpemUud2lkdGh9cHhgKTtcbiAgICAgICAgdGhpcy5hZGRUZXh0U3R5bGVzVG9DdXJzb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUFuaW1hdGlvbkNsYXNzKCk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5sYXllciwgJ25vZGVyLWFuaW1hdGUtYmxpbmtpbmcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEFuaW1hdGlvbkNsYXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvci5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IGAke3RoaXMuYmxpbmtJbnRlcnZhbH1tc2A7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmxheWVyLCAnbm9kZXItYW5pbWF0ZS1ibGlua2luZycpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL2xheWVyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzdGFuY2VNb2RlbCB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9kaXN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBWaXNpYmxlUmFuZ2UgfSBmcm9tICcuLi92aXNpYmxlLXJhbmdlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxheWVyQ29uZmlnIHtcbiAgICBjb250ZW50UmFuZ2U6IERpc3RhbmNlTW9kZWw7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBtaW5IZWlnaHQ6IG51bWJlcjtcbiAgICBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBzY3JvbGxUb3A6IG51bWJlcjtcbiAgICBwYWdlcz86IG51bWJlcltdO1xuICAgIHZpc2libGVSYW5nZT86IFZpc2libGVSYW5nZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { DocumentInfo } from '../../content/constants/document-info.const';
|
|
2
|
+
import { DomHelper } from '../../execution/helpers/dom.helper';
|
|
3
|
+
import { EventEmitting } from '../../core/event-emitting';
|
|
4
|
+
export class PagesLayer extends EventEmitting {
|
|
5
|
+
get pageSize() {
|
|
6
|
+
return this._pageSize || DocumentInfo.height;
|
|
7
|
+
}
|
|
8
|
+
get pagesCount() {
|
|
9
|
+
return this._pagesCount || 1;
|
|
10
|
+
}
|
|
11
|
+
constructor(parentElement, mainSession) {
|
|
12
|
+
super();
|
|
13
|
+
this.parentElement = parentElement;
|
|
14
|
+
this.mainSession = mainSession;
|
|
15
|
+
this.pageBreakElements = [];
|
|
16
|
+
this.pagesCountChangedHandler = (event) => {
|
|
17
|
+
if (this._pageSize === event.pageHeight && this._pagesCount === event.pagesCount) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this._pageSize = event.pageHeight || DocumentInfo.height;
|
|
21
|
+
this._pagesCount = event.pagesCount;
|
|
22
|
+
this.setContainerSize();
|
|
23
|
+
};
|
|
24
|
+
this.element = document.createElement('div');
|
|
25
|
+
this.element.className = 'noder-layer ace_pages-layer';
|
|
26
|
+
parentElement.insertAdjacentElement('afterbegin', this.element);
|
|
27
|
+
this.setContainerSize();
|
|
28
|
+
this.rulerLeft = document.createElement('div');
|
|
29
|
+
this.rulerLeft.className = 'ruler-line';
|
|
30
|
+
this.rulerRight = document.createElement('div');
|
|
31
|
+
this.rulerRight.className = 'ruler-line';
|
|
32
|
+
this.element.appendChild(this.rulerLeft);
|
|
33
|
+
this.element.appendChild(this.rulerRight);
|
|
34
|
+
this.mainSession.displayData.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
|
|
35
|
+
}
|
|
36
|
+
update(config) {
|
|
37
|
+
DomHelper.translate(this.element, 0, -config.scrollTop);
|
|
38
|
+
const pageSpace = this.getPageSpace();
|
|
39
|
+
const pageHeight = this.mainSession.displayData.pageHeight;
|
|
40
|
+
const pages = config.pages || [];
|
|
41
|
+
let minPage = pages[0] || 1;
|
|
42
|
+
const maxPage = pages[pages.length - 1] || 1;
|
|
43
|
+
if (minPage > 1 && config.scrollTop <= (minPage - 1) * (pageHeight + pageSpace) + pageSpace) {
|
|
44
|
+
minPage--;
|
|
45
|
+
}
|
|
46
|
+
if (this.minPageNumber !== minPage || this.maxPageNumber !== maxPage || minPage === 1) {
|
|
47
|
+
this.minPageNumber = minPage;
|
|
48
|
+
this.maxPageNumber = maxPage;
|
|
49
|
+
this.removePages();
|
|
50
|
+
this.addPages(pageSpace, pageHeight);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
showRullerLines(positions) {
|
|
54
|
+
if (!positions || positions.length !== 2) {
|
|
55
|
+
DomHelper.removeCssClass(this.rulerLeft, 'visible');
|
|
56
|
+
DomHelper.removeCssClass(this.rulerRight, 'visible');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
DomHelper.setStyle(this.rulerLeft.style, 'left', `${positions[0]}px`);
|
|
60
|
+
DomHelper.addCssClass(this.rulerLeft, 'visible');
|
|
61
|
+
DomHelper.setStyle(this.rulerRight.style, 'left', `${positions[1]}px`);
|
|
62
|
+
DomHelper.addCssClass(this.rulerRight, 'visible');
|
|
63
|
+
}
|
|
64
|
+
destroy() {
|
|
65
|
+
this.mainSession.displayData.removeEventListener('pagesCountChanged', this.pagesCountChangedHandler);
|
|
66
|
+
}
|
|
67
|
+
// Used to be overridden by the print page layer for printing
|
|
68
|
+
getPageSpace() {
|
|
69
|
+
return this.mainSession.displayData.pagesSpace;
|
|
70
|
+
}
|
|
71
|
+
removePages() {
|
|
72
|
+
while (this.pageBreakElements?.length) {
|
|
73
|
+
const element = this.pageBreakElements.pop();
|
|
74
|
+
element.parentNode.removeChild(element);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
addPages(pageSpace, pageHeight) {
|
|
78
|
+
for (let page = this.minPageNumber; page <= this.maxPageNumber; page++) {
|
|
79
|
+
const element = document.createElement('div');
|
|
80
|
+
element.className = 'page';
|
|
81
|
+
element.style.height = `${pageHeight}px`;
|
|
82
|
+
element.style.top = `${(page - 1) * (pageHeight + pageSpace) + pageSpace}px`;
|
|
83
|
+
if (page > 1) {
|
|
84
|
+
let pageLabel = document.createElement('span');
|
|
85
|
+
pageLabel.className = 'page-label';
|
|
86
|
+
pageLabel.innerText = `${page}.`;
|
|
87
|
+
element.appendChild(pageLabel);
|
|
88
|
+
}
|
|
89
|
+
this.element.appendChild(element);
|
|
90
|
+
this.pageBreakElements.push(element);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
setContainerSize() {
|
|
94
|
+
this.element.style.height = `${(this.pagesCount + 1) * this.pageSize}px`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMubGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9sYXllcnMvcGFnZXMubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBYXpDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxZQUFtQixhQUEwQixFQUFVLFdBQXdCO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRE8sa0JBQWEsR0FBYixhQUFhLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCL0Usc0JBQWlCLEdBQWtCLEVBQUUsQ0FBQztRQThHOUIsNkJBQXdCLEdBQUcsQ0FBQyxLQUFpRCxFQUFRLEVBQUU7WUFDM0YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUM5RSxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7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QUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQztZQUU3RSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0MsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ25DLFNBQVMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDakMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsQztZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDN0UsQ0FBQztDQVdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vY29udGVudC9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0aW5nIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBQYWdlc0xheWVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwYWdlQnJlYWtFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgbWluUGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgbWF4UGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgcnVsZXJMZWZ0OiBIVE1MRWxlbWVudDtcblxuICAgIHJ1bGVyUmlnaHQ6IEhUTUxFbGVtZW50O1xuXG4gICAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZSB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgIH1cbiAgICBwcml2YXRlIF9wYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgZ2V0IHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VzQ291bnQgfHwgMTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZXNDb3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcml2YXRlIG1haW5TZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gJ25vZGVyLWxheWVyIGFjZV9wYWdlcy1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmJlZ2luJywgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG5cbiAgICAgICAgdGhpcy5ydWxlckxlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlckxlZnQuY2xhc3NOYW1lID0gJ3J1bGVyLWxpbmUnO1xuICAgICAgICB0aGlzLnJ1bGVyUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlclJpZ2h0LmNsYXNzTmFtZSA9ICdydWxlci1saW5lJztcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJMZWZ0KTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJSaWdodCk7XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24uZGlzcGxheURhdGEuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgY29uc3QgcGFnZVNwYWNlID0gdGhpcy5nZXRQYWdlU3BhY2UoKTtcbiAgICAgICAgY29uc3QgcGFnZUhlaWdodCA9IHRoaXMubWFpblNlc3Npb24uZGlzcGxheURhdGEucGFnZUhlaWdodDtcbiAgICAgICAgY29uc3QgcGFnZXMgPSBjb25maWcucGFnZXMgfHwgW107XG4gICAgICAgIGxldCBtaW5QYWdlID0gcGFnZXNbMF0gfHwgMTtcbiAgICAgICAgY29uc3QgbWF4UGFnZSA9IHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIHx8IDE7XG4gICAgICAgIGlmIChtaW5QYWdlID4gMSAmJiBjb25maWcuc2Nyb2xsVG9wIDw9IChtaW5QYWdlIC0gMSkgKiAocGFnZUhlaWdodCArIHBhZ2VTcGFjZSkgKyBwYWdlU3BhY2UpIHtcbiAgICAgICAgICAgIG1pblBhZ2UtLTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1pblBhZ2VOdW1iZXIgIT09IG1pblBhZ2UgfHwgdGhpcy5tYXhQYWdlTnVtYmVyICE9PSBtYXhQYWdlIHx8IG1pblBhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMubWluUGFnZU51bWJlciA9IG1pblBhZ2U7XG4gICAgICAgICAgICB0aGlzLm1heFBhZ2VOdW1iZXIgPSBtYXhQYWdlO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVQYWdlcygpO1xuICAgICAgICAgICAgdGhpcy5hZGRQYWdlcyhwYWdlU3BhY2UsIHBhZ2VIZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1J1bGxlckxpbmVzKHBvc2l0aW9uczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwb3NpdGlvbnMgfHwgcG9zaXRpb25zLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMucnVsZXJMZWZ0LCAndmlzaWJsZScpO1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMucnVsZXJSaWdodCwgJ3Zpc2libGUnKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucnVsZXJMZWZ0LnN0eWxlLCAnbGVmdCcsIGAke3Bvc2l0aW9uc1swXX1weGApO1xuICAgICAgICBEb21IZWxwZXIuYWRkQ3NzQ2xhc3ModGhpcy5ydWxlckxlZnQsICd2aXNpYmxlJyk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLnJ1bGVyUmlnaHQuc3R5bGUsICdsZWZ0JywgYCR7cG9zaXRpb25zWzFdfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLnJ1bGVyUmlnaHQsICd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICB9XG5cbiAgICAvLyBVc2VkIHRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHByaW50IHBhZ2UgbGF5ZXIgZm9yIHByaW50aW5nXG4gICAgcHJvdGVjdGVkIGdldFBhZ2VTcGFjZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlc1NwYWNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlUGFnZXMoKTogdm9pZCB7XG4gICAgICAgIHdoaWxlICh0aGlzLnBhZ2VCcmVha0VsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnBhZ2VCcmVha0VsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQYWdlcyhwYWdlU3BhY2U6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IHBhZ2UgPSB0aGlzLm1pblBhZ2VOdW1iZXI7IHBhZ2UgPD0gdGhpcy5tYXhQYWdlTnVtYmVyOyBwYWdlKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gJ3BhZ2UnO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtwYWdlSGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gYCR7KHBhZ2UgLSAxKSAqIChwYWdlSGVpZ2h0ICsgcGFnZVNwYWNlKSArIHBhZ2VTcGFjZX1weGA7XG5cbiAgICAgICAgICAgIGlmIChwYWdlID4gMSkge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgcGFnZUxhYmVsLmNsYXNzTmFtZSA9ICdwYWdlLWxhYmVsJztcbiAgICAgICAgICAgICAgICBwYWdlTGFiZWwuaW5uZXJUZXh0ID0gYCR7cGFnZX0uYDtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHBhZ2VMYWJlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMucGFnZUJyZWFrRWxlbWVudHMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29udGFpbmVyU2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IGAkeyh0aGlzLnBhZ2VzQ291bnQgKyAxKSAqIHRoaXMucGFnZVNpemV9cHhgO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFnZXNDb3VudENoYW5nZWRIYW5kbGVyID0gKGV2ZW50OiB7IHBhZ2VzQ291bnQ6IG51bWJlcjsgcGFnZUhlaWdodDogbnVtYmVyIH0pOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3BhZ2VTaXplID09PSBldmVudC5wYWdlSGVpZ2h0ICYmIHRoaXMuX3BhZ2VzQ291bnQgPT09IGV2ZW50LnBhZ2VzQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BhZ2VTaXplID0gZXZlbnQucGFnZUhlaWdodCB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgICAgICB0aGlzLl9wYWdlc0NvdW50ID0gZXZlbnQucGFnZXNDb3VudDtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PagesLayer } from './pages.layer';
|
|
2
|
+
export class PrintPagesLayer extends PagesLayer {
|
|
3
|
+
getPageSpace() {
|
|
4
|
+
return 0;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQucGFnZXMubGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9sYXllcnMvcHJpbnQucGFnZXMubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBQ2xDLFlBQVk7UUFDakIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlc0xheWVyIH0gZnJvbSAnLi9wYWdlcy5sYXllcic7XG5cbmV4cG9ydCBjbGFzcyBQcmludFBhZ2VzTGF5ZXIgZXh0ZW5kcyBQYWdlc0xheWVyIHtcbiAgICBvdmVycmlkZSBnZXRQYWdlU3BhY2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TextLayer } from './text.layer';
|
|
2
|
+
export class PrintTextLayer extends TextLayer {
|
|
3
|
+
getParagraphTop(row) {
|
|
4
|
+
return this.session.displayData.getDistanceFromTopForPrint(row);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQudGV4dC5sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9kaXNwbGF5L2xheWVycy9wcmludC50ZXh0LmxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBQ2hDLGVBQWUsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dExheWVyIH0gZnJvbSAnLi90ZXh0LmxheWVyJztcblxuZXhwb3J0IGNsYXNzIFByaW50VGV4dExheWVyIGV4dGVuZHMgVGV4dExheWVyIHtcbiAgICBvdmVycmlkZSBnZXRQYXJhZ3JhcGhUb3Aocm93OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLmdldERpc3RhbmNlRnJvbVRvcEZvclByaW50KHJvdyk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { CursorParagraph } from '../../positioning/cursor-paragraph';
|
|
2
|
+
import { PositionHelper } from '../../positioning/position.helper';
|
|
3
|
+
import { Range } from '../../positioning/range';
|
|
4
|
+
export class SelectionLayer {
|
|
5
|
+
constructor(parentEl, cssClass, session) {
|
|
6
|
+
this.session = session;
|
|
7
|
+
this.marker = null;
|
|
8
|
+
this.element = document.createElement('div');
|
|
9
|
+
this.element.className = `noder-layer noder-selection-layer ${cssClass}`;
|
|
10
|
+
parentEl.appendChild(this.element);
|
|
11
|
+
}
|
|
12
|
+
renderSelection(css) {
|
|
13
|
+
let selectionElement = this.selectionIndex !== -1 ? this.element.childNodes[this.selectionIndex] : null;
|
|
14
|
+
if (!selectionElement) {
|
|
15
|
+
selectionElement = document.createElement('div');
|
|
16
|
+
this.element.appendChild(selectionElement);
|
|
17
|
+
this.selectionIndex = -1;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this.selectionIndex++;
|
|
21
|
+
}
|
|
22
|
+
selectionElement.style.cssText = css;
|
|
23
|
+
selectionElement.className = 'noder-selection';
|
|
24
|
+
}
|
|
25
|
+
update(config) {
|
|
26
|
+
if (!config) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.config = config;
|
|
30
|
+
this.selectionIndex = 0;
|
|
31
|
+
if (this.marker) {
|
|
32
|
+
let range = this.marker.clipRows(config.contentRange.start, config.contentRange.end);
|
|
33
|
+
if (!range.isEmpty) {
|
|
34
|
+
range = range.toScreenRange(this.session);
|
|
35
|
+
if (range.isSingleLine) {
|
|
36
|
+
this.drawSingleLineMarker(range);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.drawMultiLineMarker(range);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (this.selectionIndex !== -1) {
|
|
44
|
+
while (this.selectionIndex < this.element.childElementCount) {
|
|
45
|
+
this.element.removeChild(this.element.lastChild);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getTop(row) {
|
|
50
|
+
const paragraphs = this.session.displayData.paragraphs;
|
|
51
|
+
const paragraphInfo = PositionHelper.getParagraphInfoByRow(paragraphs, row);
|
|
52
|
+
return (paragraphs[paragraphInfo.paragraphIndex].paragraphSettings.distanceFromTop +
|
|
53
|
+
paragraphInfo.lineTopOffset -
|
|
54
|
+
this.session.scrollTop);
|
|
55
|
+
}
|
|
56
|
+
// Draws a multi line marker, where lines span the full width
|
|
57
|
+
drawMultiLineMarker(range) {
|
|
58
|
+
// from selection start to the end of the line
|
|
59
|
+
const start = range.start.row;
|
|
60
|
+
const end = range.end.row;
|
|
61
|
+
const paragraphs = this.session.displayData.paragraphs;
|
|
62
|
+
const visibleParagraphs = paragraphs.filter(x => x.paragraphSettings.lastScreenLine >= start && x.paragraphSettings.firstScreenLine <= end);
|
|
63
|
+
const textLinesInfo = visibleParagraphs
|
|
64
|
+
.map(x => x.paragraphSettings.textLinesInfo.filter(l => start <= l.screenLine && l.screenLine <= end))
|
|
65
|
+
.flat();
|
|
66
|
+
const paragraphInfo = PositionHelper.getParagraphInfoByRow(paragraphs, start);
|
|
67
|
+
let top = paragraphs[paragraphInfo.paragraphIndex].paragraphSettings.distanceFromTop +
|
|
68
|
+
paragraphInfo.lineTopOffset -
|
|
69
|
+
this.session.scrollTop;
|
|
70
|
+
const padding = this.session.displayData.pageMargin.left;
|
|
71
|
+
for (let i = 0; i < textLinesInfo.length; i++) {
|
|
72
|
+
const lineInfo = textLinesInfo[i];
|
|
73
|
+
if (i !== 0) {
|
|
74
|
+
top += lineInfo.firstLinePageOffset;
|
|
75
|
+
top += lineInfo.offsetBefore;
|
|
76
|
+
}
|
|
77
|
+
let style;
|
|
78
|
+
if (i === 0) {
|
|
79
|
+
const rangeInfo = this.getRangeInfo(this.session, range);
|
|
80
|
+
style = this.getMarkerStyle(lineInfo.height, lineInfo.width - rangeInfo.leftPos + lineInfo.paddingLeft + padding, top, rangeInfo.leftPos);
|
|
81
|
+
}
|
|
82
|
+
else if (i === textLinesInfo.length - 1) {
|
|
83
|
+
const lastRowRange = new Range(new CursorParagraph(range.end.row, 0), range.end);
|
|
84
|
+
const rangeInfo = this.getRangeInfo(this.session, lastRowRange);
|
|
85
|
+
style = this.getMarkerStyle(lineInfo.height, rangeInfo.screenWidth, top, padding + lineInfo.paddingLeft);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
style = this.getMarkerStyle(lineInfo.height, lineInfo.width, top, padding + lineInfo.paddingLeft);
|
|
89
|
+
}
|
|
90
|
+
this.renderSelection(style);
|
|
91
|
+
top += lineInfo.height + lineInfo.offsetAfter + lineInfo.endPageOffset;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Draws a marker which covers part or whole width of a single screen line
|
|
95
|
+
drawSingleLineMarker(range) {
|
|
96
|
+
const rangeInfo = this.getRangeInfo(this.session, range);
|
|
97
|
+
const paragraphInfo = PositionHelper.getParagraphInfoByRow(this.session.displayData.paragraphs, range.start.row);
|
|
98
|
+
const height = rangeInfo.screenHeight || paragraphInfo.lineHeight;
|
|
99
|
+
const width = rangeInfo.screenWidth;
|
|
100
|
+
const top = this.getTop(range.start.row);
|
|
101
|
+
const left = rangeInfo.leftPos;
|
|
102
|
+
this.renderSelection(this.getMarkerStyle(height, width, top, left));
|
|
103
|
+
}
|
|
104
|
+
getRangeInfo(session, range) {
|
|
105
|
+
const start = range.start;
|
|
106
|
+
const end = range.end;
|
|
107
|
+
const startPos = PositionHelper.screenToPixel(session, start.row, start.column);
|
|
108
|
+
const endPos = PositionHelper.screenToPixel(session, end.row, end.column);
|
|
109
|
+
return {
|
|
110
|
+
screenWidth: Math.abs(endPos.pageX - startPos.pageX),
|
|
111
|
+
screenHeight: Math.abs(endPos.pageY - startPos.pageY),
|
|
112
|
+
leftPos: startPos.pageX
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
getMarkerStyle(height, width, top, left) {
|
|
116
|
+
return `height:${height}px;width:${width}px;top:${top}px;left:${left}px`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL3NlbGVjdGlvbi5sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxNQUFNLE9BQU8sY0FBYztJQVN2QixZQUFZLFFBQXFCLEVBQUUsUUFBZ0IsRUFBVSxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBTmpGLFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBT3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxxQ0FBcUMsUUFBUSxFQUFFLENBQUM7UUFDekUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckgsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ25CLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FB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QUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUFvQixFQUFFLEtBQVk7UUFDbkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFFLE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDcEQsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSztTQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFjLEVBQUUsS0FBYSxFQUFFLEdBQVcsRUFBRSxJQUFZO1FBQzNFLE9BQU8sVUFBVSxNQUFNLFlBQVksS0FBSyxVQUFVLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQztJQUM3RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi9wb3NpdGlvbmluZy9jdXJzb3ItcGFyYWdyYXBoJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5pbXBvcnQgeyBQb3NpdGlvbkhlbHBlciB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL3Bvc2l0aW9uLmhlbHBlcic7XG5pbXBvcnQgeyBSYW5nZSB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL3JhbmdlJztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkxheWVyIHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIG1hcmtlcjogUmFuZ2UgfCBudWxsID0gbnVsbDtcblxuICAgIHNlbGVjdGlvbkluZGV4OiBudW1iZXI7XG5cbiAgICBjb25maWc6IElMYXllckNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKHBhcmVudEVsOiBIVE1MRWxlbWVudCwgY3NzQ2xhc3M6IHN0cmluZywgcHJpdmF0ZSBzZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9IGBub2Rlci1sYXllciBub2Rlci1zZWxlY3Rpb24tbGF5ZXIgJHtjc3NDbGFzc31gO1xuICAgICAgICBwYXJlbnRFbC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlbmRlclNlbGVjdGlvbihjc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgc2VsZWN0aW9uRWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uSW5kZXggIT09IC0xID8gPEhUTUxFbGVtZW50PnRoaXMuZWxlbWVudC5jaGlsZE5vZGVzW3RoaXMuc2VsZWN0aW9uSW5kZXhdIDogbnVsbDtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb25FbGVtZW50KSB7XG4gICAgICAgICAgICBzZWxlY3Rpb25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoc2VsZWN0aW9uRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkluZGV4ID0gLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Rpb25FbGVtZW50LnN0eWxlLmNzc1RleHQgPSBjc3M7XG4gICAgICAgIHNlbGVjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gJ25vZGVyLXNlbGVjdGlvbic7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25JbmRleCA9IDA7XG5cbiAgICAgICAgaWYgKHRoaXMubWFya2VyKSB7XG4gICAgICAgICAgICBsZXQgcmFuZ2UgPSB0aGlzLm1hcmtlci5jbGlwUm93cyhjb25maWcuY29udGVudFJhbmdlLnN0YXJ0LCBjb25maWcuY29udGVudFJhbmdlLmVuZCk7XG4gICAgICAgICAgICBpZiAoIXJhbmdlLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICByYW5nZSA9IHJhbmdlLnRvU2NyZWVuUmFuZ2UodGhpcy5zZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBpZiAocmFuZ2UuaXNTaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd1NpbmdsZUxpbmVNYXJrZXIocmFuZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd011bHRpTGluZU1hcmtlcihyYW5nZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5zZWxlY3Rpb25JbmRleCA8IHRoaXMuZWxlbWVudC5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQubGFzdENoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRvcChyb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaHMgPSB0aGlzLnNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBocztcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoSW5mbyA9IFBvc2l0aW9uSGVscGVyLmdldFBhcmFncmFwaEluZm9CeVJvdyhwYXJhZ3JhcGhzLCByb3cpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzLmRpc3RhbmNlRnJvbVRvcCArXG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLVxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnNjcm9sbFRvcFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIERyYXdzIGEgbXVsdGkgbGluZSBtYXJrZXIsIHdoZXJlIGxpbmVzIHNwYW4gdGhlIGZ1bGwgd2lkdGhcbiAgICBkcmF3TXVsdGlMaW5lTWFya2VyKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICAvLyBmcm9tIHNlbGVjdGlvbiBzdGFydCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2Uuc3RhcnQucm93O1xuICAgICAgICBjb25zdCBlbmQgPSByYW5nZS5lbmQucm93O1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhzID0gdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHM7XG4gICAgICAgIGNvbnN0IHZpc2libGVQYXJhZ3JhcGhzID0gcGFyYWdyYXBocy5maWx0ZXIoXG4gICAgICAgICAgICB4ID0+IHgucGFyYWdyYXBoU2V0dGluZ3MubGFzdFNjcmVlbkxpbmUgPj0gc3RhcnQgJiYgeC5wYXJhZ3JhcGhTZXR0aW5ncy5maXJzdFNjcmVlbkxpbmUgPD0gZW5kXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRleHRMaW5lc0luZm8gPSB2aXNpYmxlUGFyYWdyYXBoc1xuICAgICAgICAgICAgLm1hcCh4ID0+IHgucGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mby5maWx0ZXIobCA9PiBzdGFydCA8PSBsLnNjcmVlbkxpbmUgJiYgbC5zY3JlZW5MaW5lIDw9IGVuZCkpXG4gICAgICAgICAgICAuZmxhdCgpO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhJbmZvID0gUG9zaXRpb25IZWxwZXIuZ2V0UGFyYWdyYXBoSW5mb0J5Um93KHBhcmFncmFwaHMsIHN0YXJ0KTtcbiAgICAgICAgbGV0IHRvcCA9XG4gICAgICAgICAgICBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzLmRpc3RhbmNlRnJvbVRvcCArXG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLVxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHRoaXMuc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlTWFyZ2luLmxlZnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dExpbmVzSW5mby5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbGluZUluZm8gPSB0ZXh0TGluZXNJbmZvW2ldO1xuICAgICAgICAgICAgaWYgKGkgIT09IDApIHtcbiAgICAgICAgICAgICAgICB0b3AgKz0gbGluZUluZm8uZmlyc3RMaW5lUGFnZU9mZnNldDtcbiAgICAgICAgICAgICAgICB0b3AgKz0gbGluZUluZm8ub2Zmc2V0QmVmb3JlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgc3R5bGU6IHN0cmluZztcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VJbmZvID0gdGhpcy5nZXRSYW5nZUluZm8odGhpcy5zZXNzaW9uLCByYW5nZSk7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSB0aGlzLmdldE1hcmtlclN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBsaW5lSW5mby5oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLndpZHRoIC0gcmFuZ2VJbmZvLmxlZnRQb3MgKyBsaW5lSW5mby5wYWRkaW5nTGVmdCArIHBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2VJbmZvLmxlZnRQb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpID09PSB0ZXh0TGluZXNJbmZvLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Um93UmFuZ2UgPSBuZXcgUmFuZ2UobmV3IEN1cnNvclBhcmFncmFwaChyYW5nZS5lbmQucm93LCAwKSwgcmFuZ2UuZW5kKTtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZUluZm8gPSB0aGlzLmdldFJhbmdlSW5mbyh0aGlzLnNlc3Npb24sIGxhc3RSb3dSYW5nZSk7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSB0aGlzLmdldE1hcmtlclN0eWxlKGxpbmVJbmZvLmhlaWdodCwgcmFuZ2VJbmZvLnNjcmVlbldpZHRoLCB0b3AsIHBhZGRpbmcgKyBsaW5lSW5mby5wYWRkaW5nTGVmdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlID0gdGhpcy5nZXRNYXJrZXJTdHlsZShsaW5lSW5mby5oZWlnaHQsIGxpbmVJbmZvLndpZHRoLCB0b3AsIHBhZGRpbmcgKyBsaW5lSW5mby5wYWRkaW5nTGVmdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyU2VsZWN0aW9uKHN0eWxlKTtcbiAgICAgICAgICAgIHRvcCArPSBsaW5lSW5mby5oZWlnaHQgKyBsaW5lSW5mby5vZmZzZXRBZnRlciArIGxpbmVJbmZvLmVuZFBhZ2VPZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcmF3cyBhIG1hcmtlciB3aGljaCBjb3ZlcnMgcGFydCBvciB3aG9sZSB3aWR0aCBvZiBhIHNpbmdsZSBzY3JlZW4gbGluZVxuICAgIGRyYXdTaW5nbGVMaW5lTWFya2VyKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICBjb25zdCByYW5nZUluZm8gPSB0aGlzLmdldFJhbmdlSW5mbyh0aGlzLnNlc3Npb24sIHJhbmdlKTtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoSW5mbyA9IFBvc2l0aW9uSGVscGVyLmdldFBhcmFncmFwaEluZm9CeVJvdyh0aGlzLnNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBocywgcmFuZ2Uuc3RhcnQucm93KTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gcmFuZ2VJbmZvLnNjcmVlbkhlaWdodCB8fCBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcmFuZ2VJbmZvLnNjcmVlbldpZHRoO1xuICAgICAgICBjb25zdCB0b3AgPSB0aGlzLmdldFRvcChyYW5nZS5zdGFydC5yb3cpO1xuICAgICAgICBjb25zdCBsZWZ0ID0gcmFuZ2VJbmZvLmxlZnRQb3M7XG4gICAgICAgIHRoaXMucmVuZGVyU2VsZWN0aW9uKHRoaXMuZ2V0TWFya2VyU3R5bGUoaGVpZ2h0LCB3aWR0aCwgdG9wLCBsZWZ0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSYW5nZUluZm8oc2Vzc2lvbjogRWRpdFNlc3Npb24sIHJhbmdlOiBSYW5nZSk6IHsgc2NyZWVuV2lkdGg6IG51bWJlcjsgc2NyZWVuSGVpZ2h0OiBudW1iZXI7IGxlZnRQb3M6IG51bWJlciB9IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSByYW5nZS5zdGFydDtcbiAgICAgICAgY29uc3QgZW5kID0gcmFuZ2UuZW5kO1xuICAgICAgICBjb25zdCBzdGFydFBvcyA9IFBvc2l0aW9uSGVscGVyLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgc3RhcnQucm93LCBzdGFydC5jb2x1bW4pO1xuICAgICAgICBjb25zdCBlbmRQb3MgPSBQb3NpdGlvbkhlbHBlci5zY3JlZW5Ub1BpeGVsKHNlc3Npb24sIGVuZC5yb3csIGVuZC5jb2x1bW4pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JlZW5XaWR0aDogTWF0aC5hYnMoZW5kUG9zLnBhZ2VYIC0gc3RhcnRQb3MucGFnZVgpLFxuICAgICAgICAgICAgc2NyZWVuSGVpZ2h0OiBNYXRoLmFicyhlbmRQb3MucGFnZVkgLSBzdGFydFBvcy5wYWdlWSksXG4gICAgICAgICAgICBsZWZ0UG9zOiBzdGFydFBvcy5wYWdlWFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWFya2VyU3R5bGUoaGVpZ2h0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGhlaWdodDoke2hlaWdodH1weDt3aWR0aDoke3dpZHRofXB4O3RvcDoke3RvcH1weDtsZWZ0OiR7bGVmdH1weGA7XG4gICAgfVxufVxuIl19
|