@talrace/ngx-noder 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +274 -0
- package/esm2022/lib/+shared/abstract/base-api.service.mjs +99 -0
- package/esm2022/lib/+shared/abstract/observer.component.mjs +24 -0
- package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +28 -0
- package/esm2022/lib/+shared/constants/default-file-name.const.mjs +2 -0
- package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +3 -0
- package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +71 -0
- package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +6 -0
- package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +100 -0
- package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +104 -0
- package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +8 -0
- package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +6 -0
- package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +15 -0
- package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +8 -0
- package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +13 -0
- package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +62 -0
- package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +5 -0
- package/esm2022/lib/+shared/editor/core/document.mjs +134 -0
- package/esm2022/lib/+shared/editor/core/edit.session.mjs +1102 -0
- package/esm2022/lib/+shared/editor/core/editor.mjs +1279 -0
- package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/hrule.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/numbering-marker-type.enum.mjs +12 -0
- package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/vertical-alignment.enum.mjs +11 -0
- package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +156 -0
- package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +18 -0
- package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +42 -0
- package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +18 -0
- package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +88 -0
- package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +72 -0
- package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +13 -0
- package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +83 -0
- package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +12 -0
- package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +41 -0
- package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +132 -0
- package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +191 -0
- package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +186 -0
- package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +20 -0
- package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +53 -0
- package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +103 -0
- package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +99 -0
- package/esm2022/lib/+shared/editor/core/layers/lines.mjs +96 -0
- package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +106 -0
- package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +26 -0
- package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +100 -0
- package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +115 -0
- package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +124 -0
- package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +12 -0
- package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +16 -0
- package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +25 -0
- package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +219 -0
- package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +52 -0
- package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +34 -0
- package/esm2022/lib/+shared/editor/core/point.mjs +13 -0
- package/esm2022/lib/+shared/editor/core/print.renderer.mjs +72 -0
- package/esm2022/lib/+shared/editor/core/range.mjs +94 -0
- package/esm2022/lib/+shared/editor/core/renderer.mjs +217 -0
- package/esm2022/lib/+shared/editor/core/search.mjs +231 -0
- package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +356 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +35 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +6 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +4 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +41 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +15 -0
- package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +87 -0
- package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +38 -0
- package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +19 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +12 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +106 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +52 -0
- package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +14 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +57 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +3 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +43 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +64 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +120 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +55 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +43 -0
- package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +118 -0
- package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +95 -0
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +293 -0
- package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +8 -0
- package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +6 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +18 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +8 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +7 -0
- package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +74 -0
- package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +358 -0
- package/esm2022/lib/+shared/editor/editor.component.mjs +103 -0
- package/esm2022/lib/+shared/editor/editor.module.mjs +85 -0
- package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +19 -0
- package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +15 -0
- package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +11 -0
- package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +8 -0
- package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +3 -0
- package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +193 -0
- package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +18 -0
- package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +30 -0
- package/esm2022/lib/+shared/editor/helpers/format.helper.mjs +23 -0
- package/esm2022/lib/+shared/editor/helpers/indexed-element.helper.mjs +6 -0
- package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +6 -0
- package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +309 -0
- package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +160 -0
- package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +49 -0
- package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +184 -0
- package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +2 -0
- package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +7 -0
- package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +31 -0
- package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +9 -0
- package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +15 -0
- package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +56 -0
- package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +19 -0
- package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
- package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +28 -0
- package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
- package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +394 -0
- package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +83 -0
- package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +118 -0
- package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +16 -0
- package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +371 -0
- package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +23 -0
- package/esm2022/lib/+shared/editor/positioning/selection.mjs +307 -0
- package/esm2022/lib/+shared/editor/store/editor.actions.mjs +13 -0
- package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +314 -0
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +71 -0
- package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +32 -0
- package/esm2022/lib/+shared/editor-toolbar/constants/numbering-templates.const.mjs +1148 -0
- package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +157 -0
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +115 -0
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +107 -0
- package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +8 -0
- package/esm2022/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.mjs +16 -0
- package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +6 -0
- package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +45 -0
- package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +85 -0
- package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +80 -0
- package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +28 -0
- package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +23 -0
- package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +55 -0
- package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +53 -0
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +18 -0
- package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +27 -0
- package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +74 -0
- package/esm2022/lib/+shared/enums/mode.enum.mjs +7 -0
- package/esm2022/lib/+shared/helpers/print.helper.mjs +40 -0
- package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +54 -0
- package/esm2022/lib/+shared/services/commands.service.mjs +20 -0
- package/esm2022/lib/+shared/services/custom-icon.service.mjs +34 -0
- package/esm2022/lib/models/generated/add-numbering.model.mjs +8 -0
- package/esm2022/lib/models/generated/apply-element-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/apply-image-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +12 -0
- package/esm2022/lib/models/generated/apply-text-style.model.mjs +12 -0
- package/esm2022/lib/models/generated/borders-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/break.model.mjs +8 -0
- package/esm2022/lib/models/generated/cell.model.mjs +12 -0
- package/esm2022/lib/models/generated/column-section.model.mjs +8 -0
- package/esm2022/lib/models/generated/column.model.mjs +8 -0
- package/esm2022/lib/models/generated/command.model.mjs +116 -0
- package/esm2022/lib/models/generated/delete.model.mjs +8 -0
- package/esm2022/lib/models/generated/document-name.model.mjs +8 -0
- package/esm2022/lib/models/generated/document.model.mjs +8 -0
- package/esm2022/lib/models/generated/docx.model.mjs +12 -0
- package/esm2022/lib/models/generated/edge-target.model.mjs +8 -0
- package/esm2022/lib/models/generated/edge.model.mjs +8 -0
- package/esm2022/lib/models/generated/element.model.mjs +8 -0
- package/esm2022/lib/models/generated/file-source.model.mjs +8 -0
- package/esm2022/lib/models/generated/format.model.mjs +12 -0
- package/esm2022/lib/models/generated/heading.model.mjs +16 -0
- package/esm2022/lib/models/generated/image-data.model.mjs +8 -0
- package/esm2022/lib/models/generated/image.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-break.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-element.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-image.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-link.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-styled-text.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-tab.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-table-columns.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-table-rows.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-table.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-text.model.mjs +8 -0
- package/esm2022/lib/models/generated/last-document-revision.model.mjs +12 -0
- package/esm2022/lib/models/generated/link-data.model.mjs +8 -0
- package/esm2022/lib/models/generated/link.model.mjs +8 -0
- package/esm2022/lib/models/generated/margins.model.mjs +8 -0
- package/esm2022/lib/models/generated/numbering-level.model.mjs +12 -0
- package/esm2022/lib/models/generated/numbering.model.mjs +8 -0
- package/esm2022/lib/models/generated/operation.model.mjs +12 -0
- package/esm2022/lib/models/generated/page-numbers.model.mjs +8 -0
- package/esm2022/lib/models/generated/paragraph-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/paragraph.model.mjs +12 -0
- package/esm2022/lib/models/generated/remove-numberings.model.mjs +8 -0
- package/esm2022/lib/models/generated/remove-table-columns.model.mjs +8 -0
- package/esm2022/lib/models/generated/remove-table-rows.model.mjs +8 -0
- package/esm2022/lib/models/generated/replace-by-text.model.mjs +8 -0
- package/esm2022/lib/models/generated/replace.model.mjs +40 -0
- package/esm2022/lib/models/generated/resize-table-columns.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore-numberings.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore-table.model.mjs +12 -0
- package/esm2022/lib/models/generated/restore-text-styles.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore.model.mjs +8 -0
- package/esm2022/lib/models/generated/revision.model.mjs +12 -0
- package/esm2022/lib/models/generated/row.model.mjs +8 -0
- package/esm2022/lib/models/generated/tab.model.mjs +8 -0
- package/esm2022/lib/models/generated/table-cell.model.mjs +8 -0
- package/esm2022/lib/models/generated/table.model.mjs +12 -0
- package/esm2022/lib/models/generated/target.model.mjs +16 -0
- package/esm2022/lib/models/generated/text-style.model.mjs +8 -0
- package/esm2022/public-api.mjs +43 -0
- package/esm2022/talrace-ngx-noder.mjs +5 -0
- package/fesm2022/talrace-ngx-noder.mjs +13736 -0
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/+shared/abstract/base-api.service.d.ts +23 -0
- package/lib/+shared/abstract/observer.component.d.ts +10 -0
- package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +16 -0
- package/lib/+shared/constants/default-file-name.const.d.ts +1 -0
- package/lib/+shared/constants/paginator-sizes.const.d.ts +2 -0
- package/lib/+shared/editor/core/base/event-emitting.d.ts +17 -0
- package/lib/+shared/editor/core/components/edges/edge-type.enum.d.ts +4 -0
- package/lib/+shared/editor/core/components/edges/edge.component.d.ts +45 -0
- package/lib/+shared/editor/core/components/edges/edges.d.ts +26 -0
- package/lib/+shared/editor/core/constants/alignments.const.d.ts +7 -0
- package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +5 -0
- package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +14 -0
- package/lib/+shared/editor/core/constants/display-values.const.d.ts +7 -0
- package/lib/+shared/editor/core/constants/document-info.const.d.ts +12 -0
- package/lib/+shared/editor/core/constants/editor-version.const.d.ts +1 -0
- package/lib/+shared/editor/core/constants/editor.const.d.ts +16 -0
- package/lib/+shared/editor/core/constants/unicode-chars.const.d.ts +1 -0
- package/lib/+shared/editor/core/document.d.ts +56 -0
- package/lib/+shared/editor/core/edit.session.d.ts +159 -0
- package/lib/+shared/editor/core/editor.d.ts +206 -0
- package/lib/+shared/editor/core/enums/break-types.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/hrule.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/mouse-button.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/numbering-marker-type.enum.d.ts +10 -0
- package/lib/+shared/editor/core/enums/page-type.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/vertical-alignment.enum.d.ts +9 -0
- package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +16 -0
- package/lib/+shared/editor/core/helpers/delta.helper.d.ts +6 -0
- package/lib/+shared/editor/core/helpers/dom.helper.d.ts +10 -0
- package/lib/+shared/editor/core/helpers/event.helper.d.ts +4 -0
- package/lib/+shared/editor/core/helpers/font-metrics.helper.d.ts +32 -0
- package/lib/+shared/editor/core/helpers/format-style.helper.d.ts +11 -0
- package/lib/+shared/editor/core/helpers/line-width.helper.d.ts +5 -0
- package/lib/+shared/editor/core/helpers/numbering.helper.d.ts +19 -0
- package/lib/+shared/editor/core/helpers/page.helper.d.ts +4 -0
- package/lib/+shared/editor/core/helpers/paragraph-style.helper.d.ts +6 -0
- package/lib/+shared/editor/core/helpers/paragraph.helper.d.ts +27 -0
- package/lib/+shared/editor/core/helpers/position.helper.d.ts +34 -0
- package/lib/+shared/editor/core/helpers/print.rendering.helper.d.ts +6 -0
- package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +26 -0
- package/lib/+shared/editor/core/helpers/unicode.helper.d.ts +4 -0
- package/lib/+shared/editor/core/interfaces/cell.interface.d.ts +5 -0
- package/lib/+shared/editor/core/interfaces/cursor-position.interface.d.ts +11 -0
- package/lib/+shared/editor/core/interfaces/font-metric-size.interface.d.ts +11 -0
- package/lib/+shared/editor/core/interfaces/layer.config.d.ts +13 -0
- package/lib/+shared/editor/core/interfaces/paragraph-info.interface.d.ts +7 -0
- package/lib/+shared/editor/core/interfaces/render-changes.interface.d.ts +10 -0
- package/lib/+shared/editor/core/interfaces/replace.interface.d.ts +4 -0
- package/lib/+shared/editor/core/interfaces/search-iteration.interface.d.ts +4 -0
- package/lib/+shared/editor/core/interfaces/toolbar-styles.interface.d.ts +18 -0
- package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +5 -0
- package/lib/+shared/editor/core/interfaces/visible-range.interface.d.ts +11 -0
- package/lib/+shared/editor/core/keyboard/text-input.d.ts +10 -0
- package/lib/+shared/editor/core/layers/cursor.layer.d.ts +24 -0
- package/lib/+shared/editor/core/layers/edges.layer.d.ts +24 -0
- package/lib/+shared/editor/core/layers/lines.d.ts +21 -0
- package/lib/+shared/editor/core/layers/pages.layer.d.ts +27 -0
- package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +4 -0
- package/lib/+shared/editor/core/layers/print.pages.layer.d.ts +4 -0
- package/lib/+shared/editor/core/layers/print.text.layer.d.ts +5 -0
- package/lib/+shared/editor/core/layers/renderloop.d.ts +8 -0
- package/lib/+shared/editor/core/layers/scrollbar.d.ts +41 -0
- package/lib/+shared/editor/core/layers/selection.layer.d.ts +19 -0
- package/lib/+shared/editor/core/layers/text.layer.d.ts +22 -0
- package/lib/+shared/editor/core/models/display-token.model.d.ts +27 -0
- package/lib/+shared/editor/core/models/distance.model.d.ts +6 -0
- package/lib/+shared/editor/core/models/edge-element.model.d.ts +7 -0
- package/lib/+shared/editor/core/models/format-ext.model.d.ts +5 -0
- package/lib/+shared/editor/core/models/indent.model.d.ts +7 -0
- package/lib/+shared/editor/core/models/line-info.model.d.ts +14 -0
- package/lib/+shared/editor/core/models/margin.model.d.ts +9 -0
- package/lib/+shared/editor/core/models/numbering-data.model.d.ts +11 -0
- package/lib/+shared/editor/core/models/render-changes.model.d.ts +14 -0
- package/lib/+shared/editor/core/paging/page-vertical-data.model.d.ts +8 -0
- package/lib/+shared/editor/core/paging/pages.wrap.d.ts +41 -0
- package/lib/+shared/editor/core/paging/paragraph.d.ts +44 -0
- package/lib/+shared/editor/core/paging/text-line-info.d.ts +17 -0
- package/lib/+shared/editor/core/point.d.ts +7 -0
- package/lib/+shared/editor/core/print.renderer.d.ts +25 -0
- package/lib/+shared/editor/core/range.d.ts +32 -0
- package/lib/+shared/editor/core/renderer.d.ts +60 -0
- package/lib/+shared/editor/core/search.d.ts +32 -0
- package/lib/+shared/editor/core/virtual.renderer.d.ts +93 -0
- package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +14 -0
- package/lib/+shared/editor/custom-components/external-element/external-element.service.d.ts +7 -0
- package/lib/+shared/editor/custom-components/external-element/external-elements.const.d.ts +5 -0
- package/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.d.ts +5 -0
- package/lib/+shared/editor/custom-components/external-element/external.component.d.ts +17 -0
- package/lib/+shared/editor/custom-components/external-element/models/element-data.model.d.ts +7 -0
- package/lib/+shared/editor/custom-components/external-element/models/external-element.model.d.ts +20 -0
- package/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.d.ts +7 -0
- package/lib/+shared/editor/custom-components/image/components/image.component.d.ts +31 -0
- package/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.d.ts +13 -0
- package/lib/+shared/editor/custom-components/image/interfaces/size.d.ts +4 -0
- package/lib/+shared/editor/custom-components/image/resizer/coordinate.d.ts +4 -0
- package/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.d.ts +9 -0
- package/lib/+shared/editor/custom-components/image/resizer/direction.enum.d.ts +10 -0
- package/lib/+shared/editor/custom-components/image/resizer/resizer.component.d.ts +26 -0
- package/lib/+shared/editor/custom-components/image/resizer/size-delta.d.ts +4 -0
- package/lib/+shared/editor/custom-components/image/resizer/size-wrapper.d.ts +19 -0
- package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +8 -0
- package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +24 -0
- package/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.d.ts +2 -0
- package/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.d.ts +8 -0
- package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +13 -0
- package/lib/+shared/editor/custom-components/shared/services/component/component.service.d.ts +21 -0
- package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +30 -0
- package/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.d.ts +18 -0
- package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +5 -0
- package/lib/+shared/editor/custom-components/tab/tab.component.d.ts +15 -0
- package/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.d.ts +31 -0
- package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +45 -0
- package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +55 -0
- package/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.d.ts +6 -0
- package/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.d.ts +4 -0
- package/lib/+shared/editor/custom-components/table/models/cell-data.model.d.ts +11 -0
- package/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.d.ts +9 -0
- package/lib/+shared/editor/custom-components/table/models/row-data.model.d.ts +7 -0
- package/lib/+shared/editor/custom-components/table/models/selection-range.model.d.ts +17 -0
- package/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.d.ts +37 -0
- package/lib/+shared/editor/custom-components/table/selection/table-selection.d.ts +74 -0
- package/lib/+shared/editor/editor.component.d.ts +43 -0
- package/lib/+shared/editor/editor.module.d.ts +30 -0
- package/lib/+shared/editor/execution/models/cell-session-source.model.d.ts +11 -0
- package/lib/+shared/editor/execution/models/edge-session-source.model.d.ts +11 -0
- package/lib/+shared/editor/execution/models/general-properties.model.d.ts +7 -0
- package/lib/+shared/editor/execution/models/main-session-source.model.d.ts +5 -0
- package/lib/+shared/editor/execution/models/session-source.model.d.ts +5 -0
- package/lib/+shared/editor/execution/models/session.model.d.ts +12 -0
- package/lib/+shared/editor/execution/regulator.service.d.ts +45 -0
- package/lib/+shared/editor/helpers/break.helper.d.ts +7 -0
- package/lib/+shared/editor/helpers/content.helper.d.ts +9 -0
- package/lib/+shared/editor/helpers/format.helper.d.ts +4 -0
- package/lib/+shared/editor/helpers/indexed-element.helper.d.ts +4 -0
- package/lib/+shared/editor/helpers/tab.helper.d.ts +3 -0
- package/lib/+shared/editor/interaction/editor.service.d.ts +194 -0
- package/lib/+shared/editor/interaction/input.handler.d.ts +25 -0
- package/lib/+shared/editor/interaction/mouse.handler.d.ts +14 -0
- package/lib/+shared/editor/interfaces/contents.interface.d.ts +22 -0
- package/lib/+shared/editor/interfaces/insert-index.interface.d.ts +3 -0
- package/lib/+shared/editor/operation-history/operation-history.d.ts +65 -0
- package/lib/+shared/editor/operation-history/operation.type.d.ts +24 -0
- package/lib/+shared/editor/operation-history/operations-history-info.model.d.ts +5 -0
- package/lib/+shared/editor/operations/enums/command-type.enum.d.ts +29 -0
- package/lib/+shared/editor/operations/enums/target-type.enum.d.ts +5 -0
- package/lib/+shared/editor/operations/helpers/break-operations.helper.d.ts +5 -0
- package/lib/+shared/editor/operations/helpers/content-operations.helper.d.ts +5 -0
- package/lib/+shared/editor/operations/helpers/format-operations.helper.d.ts +11 -0
- package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +7 -0
- package/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.d.ts +8 -0
- package/lib/+shared/editor/operations/helpers/link-operations.helper.d.ts +6 -0
- package/lib/+shared/editor/operations/helpers/numbering-operations.helper.d.ts +11 -0
- package/lib/+shared/editor/operations/helpers/operations-helper.helper.d.ts +52 -0
- package/lib/+shared/editor/operations/helpers/paragraph-operations.helper.d.ts +13 -0
- package/lib/+shared/editor/operations/helpers/save-commands.helper.d.ts +43 -0
- package/lib/+shared/editor/operations/helpers/tab-operations.helper.d.ts +4 -0
- package/lib/+shared/editor/operations/helpers/table-operations.helper.d.ts +30 -0
- package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +6 -0
- package/lib/+shared/editor/positioning/selection.d.ts +50 -0
- package/lib/+shared/editor/store/editor.actions.d.ts +11 -0
- package/lib/+shared/editor-header/editor-header.component.d.ts +101 -0
- package/lib/+shared/editor-search/editor-search-dialog.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/color-picker/color-picker.component.d.ts +12 -0
- package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +6 -0
- package/lib/+shared/editor-toolbar/constants/svg-icons.const.d.ts +12 -0
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +44 -0
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +28 -0
- package/lib/+shared/editor-toolbar/enums/alignment.enum.d.ts +6 -0
- package/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.d.ts +14 -0
- package/lib/+shared/editor-toolbar/enums/numbering-type.enum.d.ts +4 -0
- package/lib/+shared/editor-toolbar/font/font.component.d.ts +13 -0
- package/lib/+shared/editor-toolbar/font-size/font-size.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/font-style/font-style.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/format/format.component.d.ts +12 -0
- package/lib/+shared/editor-toolbar/heading/heading.component.d.ts +8 -0
- package/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.d.ts +6 -0
- package/lib/+shared/editor-toolbar/numbering/numbering.component.d.ts +18 -0
- package/lib/+shared/editor-toolbar/print/print.component.d.ts +7 -0
- package/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.d.ts +10 -0
- package/lib/+shared/editor-toolbar/zoom/zoom.component.d.ts +22 -0
- package/lib/+shared/enums/mode.enum.d.ts +5 -0
- package/lib/+shared/helpers/print.helper.d.ts +9 -0
- package/lib/+shared/insert-table/insert-table.component.d.ts +21 -0
- package/lib/+shared/services/commands.service.d.ts +10 -0
- package/lib/+shared/services/custom-icon.service.d.ts +11 -0
- package/lib/models/generated/add-numbering.model.d.ts +7 -0
- package/lib/models/generated/apply-element-style.model.d.ts +6 -0
- package/lib/models/generated/apply-image-style.model.d.ts +6 -0
- package/lib/models/generated/apply-paragraph-style.model.d.ts +7 -0
- package/lib/models/generated/apply-text-style.model.d.ts +7 -0
- package/lib/models/generated/borders-style.model.d.ts +8 -0
- package/lib/models/generated/break.model.d.ts +5 -0
- package/lib/models/generated/cell.model.d.ts +32 -0
- package/lib/models/generated/column-section.model.d.ts +7 -0
- package/lib/models/generated/column.model.d.ts +5 -0
- package/lib/models/generated/command.model.d.ts +60 -0
- package/lib/models/generated/delete.model.d.ts +5 -0
- package/lib/models/generated/document-name.model.d.ts +5 -0
- package/lib/models/generated/document.model.d.ts +7 -0
- package/lib/models/generated/docx.model.d.ts +43 -0
- package/lib/models/generated/edge-target.model.d.ts +5 -0
- package/lib/models/generated/edge.model.d.ts +24 -0
- package/lib/models/generated/element.model.d.ts +9 -0
- package/lib/models/generated/file-source.model.d.ts +4 -0
- package/lib/models/generated/format.model.d.ts +7 -0
- package/lib/models/generated/heading.model.d.ts +12 -0
- package/lib/models/generated/image-data.model.d.ts +6 -0
- package/lib/models/generated/image.model.d.ts +31 -0
- package/lib/models/generated/insert-break.model.d.ts +6 -0
- package/lib/models/generated/insert-element.model.d.ts +5 -0
- package/lib/models/generated/insert-image.model.d.ts +6 -0
- package/lib/models/generated/insert-link.model.d.ts +7 -0
- package/lib/models/generated/insert-styled-text.model.d.ts +7 -0
- package/lib/models/generated/insert-tab.model.d.ts +4 -0
- package/lib/models/generated/insert-table-columns.model.d.ts +7 -0
- package/lib/models/generated/insert-table-rows.model.d.ts +7 -0
- package/lib/models/generated/insert-table.model.d.ts +8 -0
- package/lib/models/generated/insert-text.model.d.ts +5 -0
- package/lib/models/generated/last-document-revision.model.d.ts +9 -0
- package/lib/models/generated/link-data.model.d.ts +5 -0
- package/lib/models/generated/link.model.d.ts +7 -0
- package/lib/models/generated/margins.model.d.ts +7 -0
- package/lib/models/generated/numbering-level.model.d.ts +14 -0
- package/lib/models/generated/numbering.model.d.ts +7 -0
- package/lib/models/generated/operation.model.d.ts +8 -0
- package/lib/models/generated/page-numbers.model.d.ts +8 -0
- package/lib/models/generated/paragraph-style.model.d.ts +18 -0
- package/lib/models/generated/paragraph.model.d.ts +6 -0
- package/lib/models/generated/remove-numberings.model.d.ts +5 -0
- package/lib/models/generated/remove-table-columns.model.d.ts +6 -0
- package/lib/models/generated/remove-table-rows.model.d.ts +6 -0
- package/lib/models/generated/replace-by-text.model.d.ts +6 -0
- package/lib/models/generated/replace.model.d.ts +19 -0
- package/lib/models/generated/resize-table-columns.model.d.ts +9 -0
- package/lib/models/generated/restore-numberings.model.d.ts +7 -0
- package/lib/models/generated/restore-paragraph-styles.model.d.ts +5 -0
- package/lib/models/generated/restore-table.model.d.ts +6 -0
- package/lib/models/generated/restore-text-styles.model.d.ts +5 -0
- package/lib/models/generated/restore.model.d.ts +22 -0
- package/lib/models/generated/revision.model.d.ts +9 -0
- package/lib/models/generated/row.model.d.ts +9 -0
- package/lib/models/generated/tab.model.d.ts +6 -0
- package/lib/models/generated/table-cell.model.d.ts +6 -0
- package/lib/models/generated/table.model.d.ts +18 -0
- package/lib/models/generated/target.model.d.ts +9 -0
- package/lib/models/generated/text-style.model.d.ts +14 -0
- package/package.json +35 -0
- package/public-api.d.ts +42 -0
- package/src/_ngx-noder.theme.scss +22 -0
- package/src/assets/fonts/nc-iconfont.css +333 -0
- package/src/assets/fonts/nc-iconfont.eot +0 -0
- package/src/assets/fonts/nc-iconfont.svg +110 -0
- package/src/assets/fonts/nc-iconfont.ttf +0 -0
- package/src/assets/fonts/nc-iconfont.woff +0 -0
- package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +21 -0
- package/src/lib/+shared/editor/_editor.theme.scss +35 -0
- package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +10 -0
- package/src/lib/+shared/editor-header/_editor-header.theme.scss +106 -0
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +33 -0
- package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +29 -0
- package/src/lib/+shared/insert-table/_insert-table.theme.scss +22 -0
- package/src/styles.scss +58 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { ContentHelper } from '../helpers/content.helper';
|
|
2
|
+
import { Point } from '../core/point';
|
|
3
|
+
import { PositionHelper } from '../core/helpers/position.helper';
|
|
4
|
+
import { Range } from '../core/range';
|
|
5
|
+
export class Selection {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.anchor = null;
|
|
8
|
+
this.cursor = new Point(0, 0);
|
|
9
|
+
this.keepLinePositionX = null;
|
|
10
|
+
}
|
|
11
|
+
get isEmpty() {
|
|
12
|
+
return this.anchor === null || (this.anchor.row === this.cursor.row && this.anchor.column === this.cursor.column);
|
|
13
|
+
}
|
|
14
|
+
get isBackwards() {
|
|
15
|
+
return this.anchor.row > this.cursor.row || (this.anchor.row === this.cursor.row && this.anchor.column > this.cursor.column);
|
|
16
|
+
}
|
|
17
|
+
get range() {
|
|
18
|
+
const cursor = new Point(this.cursor.row, this.cursor.column);
|
|
19
|
+
if (this.isEmpty) {
|
|
20
|
+
return new Range(cursor, cursor);
|
|
21
|
+
}
|
|
22
|
+
const anchor = new Point(this.anchor.row, this.anchor.column);
|
|
23
|
+
return this.isBackwards ? new Range(cursor, anchor) : new Range(anchor, cursor);
|
|
24
|
+
}
|
|
25
|
+
placeCursor(cursor) {
|
|
26
|
+
this.cursor = cursor;
|
|
27
|
+
this.anchor = null;
|
|
28
|
+
this.keepLinePositionX = null;
|
|
29
|
+
}
|
|
30
|
+
moveCursor(cursor) {
|
|
31
|
+
this.cursor = cursor;
|
|
32
|
+
this.keepLinePositionX = null;
|
|
33
|
+
}
|
|
34
|
+
placeSelection(cursor, anchor) {
|
|
35
|
+
this.cursor = cursor;
|
|
36
|
+
this.anchor = anchor;
|
|
37
|
+
this.keepLinePositionX = null;
|
|
38
|
+
}
|
|
39
|
+
moveSelection(position) {
|
|
40
|
+
if (!this.anchor) {
|
|
41
|
+
this.anchor = this.cursor;
|
|
42
|
+
}
|
|
43
|
+
this.moveCursor(position);
|
|
44
|
+
}
|
|
45
|
+
clearSelection() {
|
|
46
|
+
this.anchor = null;
|
|
47
|
+
this.keepLinePositionX = null;
|
|
48
|
+
}
|
|
49
|
+
selectAll(model) {
|
|
50
|
+
const last = model.paragraphs.length - 1;
|
|
51
|
+
const length = last > 0 ? model.contentLength - model.paragraphs[last - 1].insertIndex - 1 : model.contentLength;
|
|
52
|
+
this.placeSelection(new Point(0, 0), new Point(last, length));
|
|
53
|
+
}
|
|
54
|
+
selectUp(session) {
|
|
55
|
+
if (!this.anchor) {
|
|
56
|
+
this.anchor = this.cursor;
|
|
57
|
+
}
|
|
58
|
+
this.moveCursorUp(session, this.cursor);
|
|
59
|
+
}
|
|
60
|
+
navigateUp(session) {
|
|
61
|
+
const position = this.isEmpty || this.isBackwards ? this.cursor : this.anchor;
|
|
62
|
+
this.moveCursorUp(session, position);
|
|
63
|
+
this.anchor = null;
|
|
64
|
+
}
|
|
65
|
+
selectDown(session) {
|
|
66
|
+
if (!this.anchor) {
|
|
67
|
+
this.anchor = this.cursor;
|
|
68
|
+
}
|
|
69
|
+
this.moveCursorDown(session, this.cursor);
|
|
70
|
+
}
|
|
71
|
+
navigateDown(session) {
|
|
72
|
+
const position = this.isEmpty || !this.isBackwards ? this.cursor : this.anchor;
|
|
73
|
+
this.moveCursorDown(session, position);
|
|
74
|
+
this.anchor = null;
|
|
75
|
+
}
|
|
76
|
+
selectRight(session) {
|
|
77
|
+
const position = this.getCursorRight(session);
|
|
78
|
+
this.moveSelection(position);
|
|
79
|
+
}
|
|
80
|
+
navigateRight(session) {
|
|
81
|
+
if (this.isEmpty) {
|
|
82
|
+
const position = this.getCursorRight(session);
|
|
83
|
+
this.placeCursor(position);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const position = !this.isBackwards ? this.cursor : this.anchor;
|
|
87
|
+
this.placeCursor(position);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
selectLeft(session) {
|
|
91
|
+
const position = this.getCursorLeft(session);
|
|
92
|
+
this.moveSelection(position);
|
|
93
|
+
}
|
|
94
|
+
navigateLeft(session) {
|
|
95
|
+
if (this.isEmpty) {
|
|
96
|
+
const position = this.getCursorLeft(session);
|
|
97
|
+
this.placeCursor(position);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const position = this.isBackwards ? this.cursor : this.anchor;
|
|
101
|
+
this.placeCursor(position);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
selectLineStart(session) {
|
|
105
|
+
const position = this.getLineStart(session, this.cursor);
|
|
106
|
+
this.moveSelection(position);
|
|
107
|
+
}
|
|
108
|
+
navigateLineStart(session) {
|
|
109
|
+
const position = this.getLineStart(session, this.cursor);
|
|
110
|
+
this.placeCursor(position);
|
|
111
|
+
}
|
|
112
|
+
selectLineEnd(session) {
|
|
113
|
+
const position = this.getLineEnd(session, this.cursor);
|
|
114
|
+
this.moveSelection(position);
|
|
115
|
+
}
|
|
116
|
+
navigateLineEnd(session) {
|
|
117
|
+
const position = this.getLineEnd(session, this.cursor);
|
|
118
|
+
this.placeCursor(position);
|
|
119
|
+
}
|
|
120
|
+
selectFileEnd(session) {
|
|
121
|
+
const paragraph = session.document.lines.length - 1;
|
|
122
|
+
const paragraphIndex = session.document.lines[paragraph].length;
|
|
123
|
+
this.moveSelection(new Point(paragraph, paragraphIndex));
|
|
124
|
+
}
|
|
125
|
+
navigateFileEnd(session) {
|
|
126
|
+
const paragraph = session.document.lines.length - 1;
|
|
127
|
+
const paragraphIndex = session.document.lines[paragraph].length;
|
|
128
|
+
this.placeCursor(new Point(paragraph, paragraphIndex));
|
|
129
|
+
}
|
|
130
|
+
selectFileStart() {
|
|
131
|
+
this.moveSelection(new Point(0, 0));
|
|
132
|
+
}
|
|
133
|
+
navigateFileStart() {
|
|
134
|
+
this.placeCursor(new Point(0, 0));
|
|
135
|
+
}
|
|
136
|
+
selectWordRight(session) {
|
|
137
|
+
const position = this.getWordRight(session, this.cursor);
|
|
138
|
+
this.moveSelection(position);
|
|
139
|
+
}
|
|
140
|
+
navigateWordRight(session) {
|
|
141
|
+
const position = this.getWordRight(session, this.cursor);
|
|
142
|
+
this.placeCursor(position);
|
|
143
|
+
}
|
|
144
|
+
selectWordLeft(session) {
|
|
145
|
+
const position = this.getWordLeft(session, this.cursor);
|
|
146
|
+
this.moveSelection(position);
|
|
147
|
+
}
|
|
148
|
+
navigateWordLeft(session) {
|
|
149
|
+
const position = this.getWordLeft(session, this.cursor);
|
|
150
|
+
this.placeCursor(position);
|
|
151
|
+
}
|
|
152
|
+
moveCursorUp(session, position) {
|
|
153
|
+
const line = PositionHelper.documentToScreen(session, position.row, position.column);
|
|
154
|
+
if (line.row === 0) {
|
|
155
|
+
this.selectLineStart(session);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.moveToLine(session, line.row - 1, line);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
moveCursorDown(session, position) {
|
|
162
|
+
const line = PositionHelper.documentToScreen(session, position.row, position.column);
|
|
163
|
+
const paragraphsCount = session.pagesWrap.paragraphs.length;
|
|
164
|
+
const lastParagraph = session.pagesWrap.paragraphs[paragraphsCount - 1];
|
|
165
|
+
const lastParagraphLine = lastParagraph.textLinesInfo[lastParagraph.textLinesInfo.length - 1].screenLine;
|
|
166
|
+
if (line.row === lastParagraphLine) {
|
|
167
|
+
this.selectLineEnd(session);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.moveToLine(session, line.row + 1, line);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
moveToLine(session, line, fromLine) {
|
|
174
|
+
if (!this.keepLinePositionX) {
|
|
175
|
+
this.keepLinePositionX = PositionHelper.screenToPixel(session, fromLine.row, fromLine.column).pageX;
|
|
176
|
+
}
|
|
177
|
+
const column = PositionHelper.getApproximatePosition(session, line, this.keepLinePositionX);
|
|
178
|
+
this.cursor = PositionHelper.screenToDocument(session, line, column);
|
|
179
|
+
}
|
|
180
|
+
getCursorLeft(session) {
|
|
181
|
+
if (this.cursor.row === 0 && this.cursor.column === 0) {
|
|
182
|
+
return this.cursor;
|
|
183
|
+
}
|
|
184
|
+
const index = ContentHelper.paragraphPositionToDocumentIndex(session.wrapParagraphIndex, this.cursor);
|
|
185
|
+
return ContentHelper.documentIndexToParagraphIndex(session.wrapParagraphIndex, index - 1);
|
|
186
|
+
}
|
|
187
|
+
getCursorRight(session) {
|
|
188
|
+
const last = session.pagesWrap.paragraphs.length - 1;
|
|
189
|
+
if (this.cursor.row === last && this.cursor.column === session.document.lines[last].length) {
|
|
190
|
+
return this.cursor;
|
|
191
|
+
}
|
|
192
|
+
const index = ContentHelper.paragraphPositionToDocumentIndex(session.wrapParagraphIndex, this.cursor);
|
|
193
|
+
return ContentHelper.documentIndexToParagraphIndex(session.wrapParagraphIndex, index + 1);
|
|
194
|
+
}
|
|
195
|
+
getLineStart(session, position) {
|
|
196
|
+
const line = PositionHelper.documentToScreen(session, position.row, position.column);
|
|
197
|
+
return PositionHelper.screenToDocument(session, line.row, 0);
|
|
198
|
+
}
|
|
199
|
+
getLineEnd(session, position) {
|
|
200
|
+
const line = PositionHelper.documentToScreen(session, position.row, position.column);
|
|
201
|
+
const paragraphLength = session.document.lines[position.row].length;
|
|
202
|
+
const linesCount = session.pagesWrap.paragraphs[position.row].textLinesInfo.length;
|
|
203
|
+
if (linesCount === 1) {
|
|
204
|
+
return PositionHelper.screenToDocument(session, line.row, paragraphLength);
|
|
205
|
+
}
|
|
206
|
+
const paragraphLine = line.row - session.wrapParagraphLine[position.row];
|
|
207
|
+
let index;
|
|
208
|
+
if (paragraphLine === 0) {
|
|
209
|
+
index = session.wrapData[position.row][0];
|
|
210
|
+
}
|
|
211
|
+
else if (paragraphLine === linesCount - 1) {
|
|
212
|
+
index = paragraphLength - session.wrapData[position.row][paragraphLine - 1];
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
index = session.wrapData[position.row][paragraphLine] - session.wrapData[position.row][paragraphLine - 1];
|
|
216
|
+
}
|
|
217
|
+
return PositionHelper.screenToDocument(session, line.row, index);
|
|
218
|
+
}
|
|
219
|
+
getWordRight(session, position) {
|
|
220
|
+
let row = position.row;
|
|
221
|
+
let column = position.column;
|
|
222
|
+
const line = session.document.lines[row];
|
|
223
|
+
const documentLength = session.document.lines.length;
|
|
224
|
+
if (row + 1 >= documentLength && column === line.length) {
|
|
225
|
+
return position;
|
|
226
|
+
}
|
|
227
|
+
let rightOfCursor = line.substring(column);
|
|
228
|
+
if (column === line.length) {
|
|
229
|
+
do {
|
|
230
|
+
row++;
|
|
231
|
+
rightOfCursor = session.document.lines[row];
|
|
232
|
+
} while (row < documentLength && /^\s*$/.test(rightOfCursor));
|
|
233
|
+
if (!/^\s+/.test(rightOfCursor)) {
|
|
234
|
+
rightOfCursor = '';
|
|
235
|
+
}
|
|
236
|
+
column = 0;
|
|
237
|
+
}
|
|
238
|
+
const index = this.shortWordEndIndex(session.tokenRe, rightOfCursor);
|
|
239
|
+
return new Point(row, column + index);
|
|
240
|
+
}
|
|
241
|
+
getWordLeft(session, position) {
|
|
242
|
+
let row = position.row;
|
|
243
|
+
let column = position.column;
|
|
244
|
+
if (column === 0 && row === 0) {
|
|
245
|
+
return position;
|
|
246
|
+
}
|
|
247
|
+
let line = session.document.lines[row].substring(0, column);
|
|
248
|
+
if (column === 0) {
|
|
249
|
+
do {
|
|
250
|
+
row--;
|
|
251
|
+
line = session.document.lines[row];
|
|
252
|
+
} while (row > 0 && /^\s*$/.test(line));
|
|
253
|
+
column = line.length;
|
|
254
|
+
if (!/\s+$/.test(line)) {
|
|
255
|
+
line = '';
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
const leftOfCursor = line.split('').reverse().join('');
|
|
259
|
+
const index = this.shortWordEndIndex(session.tokenRe, leftOfCursor);
|
|
260
|
+
return new Point(row, column - index);
|
|
261
|
+
}
|
|
262
|
+
shortWordEndIndex(tokenRe, rightOfCursor) {
|
|
263
|
+
let index;
|
|
264
|
+
tokenRe.lastIndex = 0;
|
|
265
|
+
if (tokenRe.exec(rightOfCursor)) {
|
|
266
|
+
index = tokenRe.lastIndex;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
index = this.handleNoTokenFound(tokenRe, rightOfCursor);
|
|
270
|
+
}
|
|
271
|
+
tokenRe.lastIndex = 0;
|
|
272
|
+
return index;
|
|
273
|
+
}
|
|
274
|
+
handleNoTokenFound(tokenRe, rightOfCursor) {
|
|
275
|
+
const whitespaceRe = /\s/;
|
|
276
|
+
let index = 0;
|
|
277
|
+
while (rightOfCursor[index] && whitespaceRe.test(rightOfCursor[index])) {
|
|
278
|
+
index++;
|
|
279
|
+
}
|
|
280
|
+
if (index < 1) {
|
|
281
|
+
index = this.handleNoWhitespaceFound(tokenRe, rightOfCursor, whitespaceRe);
|
|
282
|
+
}
|
|
283
|
+
return index;
|
|
284
|
+
}
|
|
285
|
+
handleNoWhitespaceFound(tokenRe, rightOfCursor, whitespaceRe) {
|
|
286
|
+
let index = 0;
|
|
287
|
+
tokenRe.lastIndex = 0;
|
|
288
|
+
while (rightOfCursor[index] && !tokenRe.test(rightOfCursor[index])) {
|
|
289
|
+
tokenRe.lastIndex = 0;
|
|
290
|
+
index++;
|
|
291
|
+
if (whitespaceRe.test(rightOfCursor[index])) {
|
|
292
|
+
if (index > 2) {
|
|
293
|
+
index--;
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
while (rightOfCursor[index] && whitespaceRe.test(rightOfCursor[index])) {
|
|
297
|
+
index++;
|
|
298
|
+
}
|
|
299
|
+
if (index > 2) {
|
|
300
|
+
break;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return index;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvcG9zaXRpb25pbmcvc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ0ksV0FBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsV0FBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVqQixzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO0lBMlVwRCxDQUFDO0lBelVHLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMs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LEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN0QixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEUsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDdEIsS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDWCxLQUFLLEVBQUUsQ0FBQztvQkFDUixNQUFNO2lCQUNUO2dCQUNELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3BFLEtBQUssRUFBRSxDQUFDO2lCQUNYO2dCQUNELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDWCxNQUFNO2lCQUNUO2FBQ0o7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnRlbnQuaGVscGVyJztcbmltcG9ydCB7IENvbnRlbnRzSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb250ZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi9jb3JlL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2NvcmUvcG9pbnQnO1xuaW1wb3J0IHsgUG9zaXRpb25IZWxwZXIgfSBmcm9tICcuLi9jb3JlL2hlbHBlcnMvcG9zaXRpb24uaGVscGVyJztcbmltcG9ydCB7IFJhbmdlIH0gZnJvbSAnLi4vY29yZS9yYW5nZSc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb24ge1xuICAgIGFuY2hvcjogUG9pbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGN1cnNvciA9IG5ldyBQb2ludCgwLCAwKTtcblxuICAgIHByaXZhdGUga2VlcExpbmVQb3NpdGlvblg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuY2hvciA9PT0gbnVsbCB8fCAodGhpcy5hbmNob3Iucm93ID09PSB0aGlzLmN1cnNvci5yb3cgJiYgdGhpcy5hbmNob3IuY29sdW1uID09PSB0aGlzLmN1cnNvci5jb2x1bW4pO1xuICAgIH1cblxuICAgIGdldCBpc0JhY2t3YXJkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5jaG9yLnJvdyA+IHRoaXMuY3Vyc29yLnJvdyB8fCAodGhpcy5hbmNob3Iucm93ID09PSB0aGlzLmN1cnNvci5yb3cgJiYgdGhpcy5hbmNob3IuY29sdW1uID4gdGhpcy5jdXJzb3IuY29sdW1uKTtcbiAgICB9XG5cbiAgICBnZXQgcmFuZ2UoKTogUmFuZ2Uge1xuICAgICAgICBjb25zdCBjdXJzb3IgPSBuZXcgUG9pbnQodGhpcy5jdXJzb3Iucm93LCB0aGlzLmN1cnNvci5jb2x1bW4pO1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJhbmdlKGN1cnNvciwgY3Vyc29yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFuY2hvciA9IG5ldyBQb2ludCh0aGlzLmFuY2hvci5yb3csIHRoaXMuYW5jaG9yLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQmFja3dhcmRzID8gbmV3IFJhbmdlKGN1cnNvciwgYW5jaG9yKSA6IG5ldyBSYW5nZShhbmNob3IsIGN1cnNvcik7XG4gICAgfVxuXG4gICAgcGxhY2VDdXJzb3IoY3Vyc29yOiBQb2ludCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvciA9IGN1cnNvcjtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgICAgICB0aGlzLmtlZXBMaW5lUG9zaXRpb25YID0gbnVsbDtcbiAgICB9XG5cbiAgICBtb3ZlQ3Vyc29yKGN1cnNvcjogUG9pbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3IgPSBjdXJzb3I7XG4gICAgICAgIHRoaXMua2VlcExpbmVQb3NpdGlvblggPSBudWxsO1xuICAgIH1cblxuICAgIHBsYWNlU2VsZWN0aW9uKGN1cnNvcjogUG9pbnQsIGFuY2hvcjogUG9pbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3IgPSBjdXJzb3I7XG4gICAgICAgIHRoaXMuYW5jaG9yID0gYW5jaG9yO1xuICAgICAgICB0aGlzLmtlZXBMaW5lUG9zaXRpb25YID0gbnVsbDtcbiAgICB9XG5cbiAgICBtb3ZlU2VsZWN0aW9uKHBvc2l0aW9uOiBQb2ludCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYW5jaG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvciA9IHRoaXMuY3Vyc29yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW92ZUN1cnNvcihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYW5jaG9yID0gbnVsbDtcbiAgICAgICAgdGhpcy5rZWVwTGluZVBvc2l0aW9uWCA9IG51bGw7XG4gICAgfVxuXG4gICAgc2VsZWN0QWxsKG1vZGVsOiBDb250ZW50c0ludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0ID0gbW9kZWwucGFyYWdyYXBocy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBsYXN0ID4gMCA/IG1vZGVsLmNvbnRlbnRMZW5ndGggLSBtb2RlbC5wYXJhZ3JhcGhzW2xhc3QgLSAxXS5pbnNlcnRJbmRleCAtIDEgOiBtb2RlbC5jb250ZW50TGVuZ3RoO1xuICAgICAgICB0aGlzLnBsYWNlU2VsZWN0aW9uKG5ldyBQb2ludCgwLCAwKSwgbmV3IFBvaW50KGxhc3QsIGxlbmd0aCkpO1xuICAgIH1cblxuICAgIHNlbGVjdFVwKHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hbmNob3IpIHtcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yID0gdGhpcy5jdXJzb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yVXAoc2Vzc2lvbiwgdGhpcy5jdXJzb3IpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVXAoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmlzRW1wdHkgfHwgdGhpcy5pc0JhY2t3YXJkcyA/IHRoaXMuY3Vyc29yIDogdGhpcy5hbmNob3I7XG4gICAgICAgIHRoaXMubW92ZUN1cnNvclVwKHNlc3Npb24sIHBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdERvd24oc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFuY2hvcikge1xuICAgICAgICAgICAgdGhpcy5hbmNob3IgPSB0aGlzLmN1cnNvcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdmVDdXJzb3JEb3duKHNlc3Npb24sIHRoaXMuY3Vyc29yKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZURvd24oc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmlzRW1wdHkgfHwgIXRoaXMuaXNCYWNrd2FyZHMgPyB0aGlzLmN1cnNvciA6IHRoaXMuYW5jaG9yO1xuICAgICAgICB0aGlzLm1vdmVDdXJzb3JEb3duKHNlc3Npb24sIHBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdFJpZ2h0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRDdXJzb3JSaWdodChzZXNzaW9uKTtcbiAgICAgICAgdGhpcy5tb3ZlU2VsZWN0aW9uKHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVJpZ2h0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRDdXJzb3JSaWdodChzZXNzaW9uKTtcbiAgICAgICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSAhdGhpcy5pc0JhY2t3YXJkcyA/IHRoaXMuY3Vyc29yIDogdGhpcy5hbmNob3I7XG4gICAgICAgICAgICB0aGlzLnBsYWNlQ3Vyc29yKHBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdExlZnQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldEN1cnNvckxlZnQoc2Vzc2lvbik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVMZWZ0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRDdXJzb3JMZWZ0KHNlc3Npb24pO1xuICAgICAgICAgICAgdGhpcy5wbGFjZUN1cnNvcihwb3NpdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuaXNCYWNrd2FyZHMgPyB0aGlzLmN1cnNvciA6IHRoaXMuYW5jaG9yO1xuICAgICAgICAgICAgdGhpcy5wbGFjZUN1cnNvcihwb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RMaW5lU3RhcnQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVTdGFydChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVMaW5lU3RhcnQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVTdGFydChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgIH1cblxuICAgIHNlbGVjdExpbmVFbmQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVFbmQoc2Vzc2lvbiwgdGhpcy5jdXJzb3IpO1xuICAgICAgICB0aGlzLm1vdmVTZWxlY3Rpb24ocG9zaXRpb24pO1xuICAgIH1cblxuICAgIG5hdmlnYXRlTGluZUVuZChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0TGluZUVuZChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgIH1cblxuICAgIHNlbGVjdEZpbGVFbmQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gc2Vzc2lvbi5kb2N1bWVudC5saW5lcy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhJbmRleCA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcGFyYWdyYXBoXS5sZW5ndGg7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihuZXcgUG9pbnQocGFyYWdyYXBoLCBwYXJhZ3JhcGhJbmRleCkpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlRmlsZUVuZChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGggPSBzZXNzaW9uLmRvY3VtZW50LmxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZGV4ID0gc2Vzc2lvbi5kb2N1bWVudC5saW5lc1twYXJhZ3JhcGhdLmxlbmd0aDtcbiAgICAgICAgdGhpcy5wbGFjZUN1cnNvcihuZXcgUG9pbnQocGFyYWdyYXBoLCBwYXJhZ3JhcGhJbmRleCkpO1xuICAgIH1cblxuICAgIHNlbGVjdEZpbGVTdGFydCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlU2VsZWN0aW9uKG5ldyBQb2ludCgwLCAwKSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVGaWxlU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IobmV3IFBvaW50KDAsIDApKTtcbiAgICB9XG5cbiAgICBzZWxlY3RXb3JkUmlnaHQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldFdvcmRSaWdodChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVXb3JkUmlnaHQoc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldFdvcmRSaWdodChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMucGxhY2VDdXJzb3IocG9zaXRpb24pO1xuICAgIH1cblxuICAgIHNlbGVjdFdvcmRMZWZ0KHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRXb3JkTGVmdChzZXNzaW9uLCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHRoaXMubW92ZVNlbGVjdGlvbihwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVXb3JkTGVmdChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0V29yZExlZnQoc2Vzc2lvbiwgdGhpcy5jdXJzb3IpO1xuICAgICAgICB0aGlzLnBsYWNlQ3Vyc29yKHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVDdXJzb3JVcChzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcG9zaXRpb246IFBvaW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHBvc2l0aW9uLnJvdywgcG9zaXRpb24uY29sdW1uKTtcbiAgICAgICAgaWYgKGxpbmUucm93ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdExpbmVTdGFydChzZXNzaW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW92ZVRvTGluZShzZXNzaW9uLCBsaW5lLnJvdyAtIDEsIGxpbmUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlQ3Vyc29yRG93bihzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcG9zaXRpb246IFBvaW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHBvc2l0aW9uLnJvdywgcG9zaXRpb24uY29sdW1uKTtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoc0NvdW50ID0gc2Vzc2lvbi5wYWdlc1dyYXAucGFyYWdyYXBocy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGxhc3RQYXJhZ3JhcGggPSBzZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzW3BhcmFncmFwaHNDb3VudCAtIDFdO1xuICAgICAgICBjb25zdCBsYXN0UGFyYWdyYXBoTGluZSA9IGxhc3RQYXJhZ3JhcGgudGV4dExpbmVzSW5mb1tsYXN0UGFyYWdyYXBoLnRleHRMaW5lc0luZm8ubGVuZ3RoIC0gMV0uc2NyZWVuTGluZTtcbiAgICAgICAgaWYgKGxpbmUucm93ID09PSBsYXN0UGFyYWdyYXBoTGluZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RMaW5lRW5kKHNlc3Npb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tb3ZlVG9MaW5lKHNlc3Npb24sIGxpbmUucm93ICsgMSwgbGluZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVUb0xpbmUoc2Vzc2lvbjogRWRpdFNlc3Npb24sIGxpbmU6IG51bWJlciwgZnJvbUxpbmU6IFBvaW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5rZWVwTGluZVBvc2l0aW9uWCkge1xuICAgICAgICAgICAgdGhpcy5rZWVwTGluZVBvc2l0aW9uWCA9IFBvc2l0aW9uSGVscGVyLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgZnJvbUxpbmUucm93LCBmcm9tTGluZS5jb2x1bW4pLnBhZ2VYO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IFBvc2l0aW9uSGVscGVyLmdldEFwcHJveGltYXRlUG9zaXRpb24oc2Vzc2lvbiwgbGluZSwgdGhpcy5rZWVwTGluZVBvc2l0aW9uWCk7XG4gICAgICAgIHRoaXMuY3Vyc29yID0gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9Eb2N1bWVudChzZXNzaW9uLCBsaW5lLCBjb2x1bW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3Vyc29yTGVmdChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IFBvaW50IHtcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yLnJvdyA9PT0gMCAmJiB0aGlzLmN1cnNvci5jb2x1bW4gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1cnNvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IENvbnRlbnRIZWxwZXIucGFyYWdyYXBoUG9zaXRpb25Ub0RvY3VtZW50SW5kZXgoc2Vzc2lvbi53cmFwUGFyYWdyYXBoSW5kZXgsIHRoaXMuY3Vyc29yKTtcbiAgICAgICAgcmV0dXJuIENvbnRlbnRIZWxwZXIuZG9jdW1lbnRJbmRleFRvUGFyYWdyYXBoSW5kZXgoc2Vzc2lvbi53cmFwUGFyYWdyYXBoSW5kZXgsIGluZGV4IC0gMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJzb3JSaWdodChzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IFBvaW50IHtcbiAgICAgICAgY29uc3QgbGFzdCA9IHNlc3Npb24ucGFnZXNXcmFwLnBhcmFncmFwaHMubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yLnJvdyA9PT0gbGFzdCAmJiB0aGlzLmN1cnNvci5jb2x1bW4gPT09IHNlc3Npb24uZG9jdW1lbnQubGluZXNbbGFzdF0ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJzb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBDb250ZW50SGVscGVyLnBhcmFncmFwaFBvc2l0aW9uVG9Eb2N1bWVudEluZGV4KHNlc3Npb24ud3JhcFBhcmFncmFwaEluZGV4LCB0aGlzLmN1cnNvcik7XG4gICAgICAgIHJldHVybiBDb250ZW50SGVscGVyLmRvY3VtZW50SW5kZXhUb1BhcmFncmFwaEluZGV4KHNlc3Npb24ud3JhcFBhcmFncmFwaEluZGV4LCBpbmRleCArIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGluZVN0YXJ0KHNlc3Npb246IEVkaXRTZXNzaW9uLCBwb3NpdGlvbjogUG9pbnQpOiBQb2ludCB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvU2NyZWVuKHNlc3Npb24sIHBvc2l0aW9uLnJvdywgcG9zaXRpb24uY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIFBvc2l0aW9uSGVscGVyLnNjcmVlblRvRG9jdW1lbnQoc2Vzc2lvbiwgbGluZS5yb3csIDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGluZUVuZChzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcG9zaXRpb246IFBvaW50KTogUG9pbnQge1xuICAgICAgICBjb25zdCBsaW5lID0gUG9zaXRpb25IZWxwZXIuZG9jdW1lbnRUb1NjcmVlbihzZXNzaW9uLCBwb3NpdGlvbi5yb3csIHBvc2l0aW9uLmNvbHVtbik7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaExlbmd0aCA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcG9zaXRpb24ucm93XS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGxpbmVzQ291bnQgPSBzZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzW3Bvc2l0aW9uLnJvd10udGV4dExpbmVzSW5mby5sZW5ndGg7XG4gICAgICAgIGlmIChsaW5lc0NvdW50ID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9Eb2N1bWVudChzZXNzaW9uLCBsaW5lLnJvdywgcGFyYWdyYXBoTGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhZ3JhcGhMaW5lID0gbGluZS5yb3cgLSBzZXNzaW9uLndyYXBQYXJhZ3JhcGhMaW5lW3Bvc2l0aW9uLnJvd107XG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyO1xuICAgICAgICBpZiAocGFyYWdyYXBoTGluZSA9PT0gMCkge1xuICAgICAgICAgICAgaW5kZXggPSBzZXNzaW9uLndyYXBEYXRhW3Bvc2l0aW9uLnJvd11bMF07XG4gICAgICAgIH0gZWxzZSBpZiAocGFyYWdyYXBoTGluZSA9PT0gbGluZXNDb3VudCAtIDEpIHtcbiAgICAgICAgICAgIGluZGV4ID0gcGFyYWdyYXBoTGVuZ3RoIC0gc2Vzc2lvbi53cmFwRGF0YVtwb3NpdGlvbi5yb3ddW3BhcmFncmFwaExpbmUgLSAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gc2Vzc2lvbi53cmFwRGF0YVtwb3NpdGlvbi5yb3ddW3BhcmFncmFwaExpbmVdIC0gc2Vzc2lvbi53cmFwRGF0YVtwb3NpdGlvbi5yb3ddW3BhcmFncmFwaExpbmUgLSAxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9Eb2N1bWVudChzZXNzaW9uLCBsaW5lLnJvdywgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V29yZFJpZ2h0KHNlc3Npb246IEVkaXRTZXNzaW9uLCBwb3NpdGlvbjogUG9pbnQpOiBQb2ludCB7XG4gICAgICAgIGxldCByb3cgPSBwb3NpdGlvbi5yb3c7XG4gICAgICAgIGxldCBjb2x1bW4gPSBwb3NpdGlvbi5jb2x1bW47XG4gICAgICAgIGNvbnN0IGxpbmUgPSBzZXNzaW9uLmRvY3VtZW50LmxpbmVzW3Jvd107XG4gICAgICAgIGNvbnN0IGRvY3VtZW50TGVuZ3RoID0gc2Vzc2lvbi5kb2N1bWVudC5saW5lcy5sZW5ndGg7XG4gICAgICAgIGlmIChyb3cgKyAxID49IGRvY3VtZW50TGVuZ3RoICYmIGNvbHVtbiA9PT0gbGluZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmlnaHRPZkN1cnNvciA9IGxpbmUuc3Vic3RyaW5nKGNvbHVtbik7XG4gICAgICAgIGlmIChjb2x1bW4gPT09IGxpbmUubGVuZ3RoKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgcm93Kys7XG4gICAgICAgICAgICAgICAgcmlnaHRPZkN1cnNvciA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcm93XTtcbiAgICAgICAgICAgIH0gd2hpbGUgKHJvdyA8IGRvY3VtZW50TGVuZ3RoICYmIC9eXFxzKiQvLnRlc3QocmlnaHRPZkN1cnNvcikpO1xuICAgICAgICAgICAgaWYgKCEvXlxccysvLnRlc3QocmlnaHRPZkN1cnNvcikpIHtcbiAgICAgICAgICAgICAgICByaWdodE9mQ3Vyc29yID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2x1bW4gPSAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zaG9ydFdvcmRFbmRJbmRleChzZXNzaW9uLnRva2VuUmUsIHJpZ2h0T2ZDdXJzb3IpO1xuICAgICAgICByZXR1cm4gbmV3IFBvaW50KHJvdywgY29sdW1uICsgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V29yZExlZnQoc2Vzc2lvbjogRWRpdFNlc3Npb24sIHBvc2l0aW9uOiBQb2ludCk6IFBvaW50IHtcbiAgICAgICAgbGV0IHJvdyA9IHBvc2l0aW9uLnJvdztcbiAgICAgICAgbGV0IGNvbHVtbiA9IHBvc2l0aW9uLmNvbHVtbjtcbiAgICAgICAgaWYgKGNvbHVtbiA9PT0gMCAmJiByb3cgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGluZSA9IHNlc3Npb24uZG9jdW1lbnQubGluZXNbcm93XS5zdWJzdHJpbmcoMCwgY29sdW1uKTtcbiAgICAgICAgaWYgKGNvbHVtbiA9PT0gMCkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHJvdy0tO1xuICAgICAgICAgICAgICAgIGxpbmUgPSBzZXNzaW9uLmRvY3VtZW50LmxpbmVzW3Jvd107XG4gICAgICAgICAgICB9IHdoaWxlIChyb3cgPiAwICYmIC9eXFxzKiQvLnRlc3QobGluZSkpO1xuICAgICAgICAgICAgY29sdW1uID0gbGluZS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIS9cXHMrJC8udGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgIGxpbmUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZWZ0T2ZDdXJzb3IgPSBsaW5lLnNwbGl0KCcnKS5yZXZlcnNlKCkuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zaG9ydFdvcmRFbmRJbmRleChzZXNzaW9uLnRva2VuUmUsIGxlZnRPZkN1cnNvcik7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQocm93LCBjb2x1bW4gLSBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG9ydFdvcmRFbmRJbmRleCh0b2tlblJlOiBSZWdFeHAsIHJpZ2h0T2ZDdXJzb3I6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyO1xuICAgICAgICB0b2tlblJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGlmICh0b2tlblJlLmV4ZWMocmlnaHRPZkN1cnNvcikpIHtcbiAgICAgICAgICAgIGluZGV4ID0gdG9rZW5SZS5sYXN0SW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuaGFuZGxlTm9Ub2tlbkZvdW5kKHRva2VuUmUsIHJpZ2h0T2ZDdXJzb3IpO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTm9Ub2tlbkZvdW5kKHRva2VuUmU6IFJlZ0V4cCwgcmlnaHRPZkN1cnNvcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgd2hpdGVzcGFjZVJlID0gL1xccy87XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChyaWdodE9mQ3Vyc29yW2luZGV4XSAmJiB3aGl0ZXNwYWNlUmUudGVzdChyaWdodE9mQ3Vyc29yW2luZGV4XSkpIHtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4IDwgMSkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmhhbmRsZU5vV2hpdGVzcGFjZUZvdW5kKHRva2VuUmUsIHJpZ2h0T2ZDdXJzb3IsIHdoaXRlc3BhY2VSZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTm9XaGl0ZXNwYWNlRm91bmQodG9rZW5SZTogUmVnRXhwLCByaWdodE9mQ3Vyc29yOiBzdHJpbmcsIHdoaXRlc3BhY2VSZTogUmVnRXhwKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgdG9rZW5SZS5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAocmlnaHRPZkN1cnNvcltpbmRleF0gJiYgIXRva2VuUmUudGVzdChyaWdodE9mQ3Vyc29yW2luZGV4XSkpIHtcbiAgICAgICAgICAgIHRva2VuUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICBpZiAod2hpdGVzcGFjZVJlLnRlc3QocmlnaHRPZkN1cnNvcltpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMikge1xuICAgICAgICAgICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2hpbGUgKHJpZ2h0T2ZDdXJzb3JbaW5kZXhdICYmIHdoaXRlc3BhY2VSZS50ZXN0KHJpZ2h0T2ZDdXJzb3JbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAyKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class SetDocx {
|
|
2
|
+
static { this.type = '[Editor] set docx'; }
|
|
3
|
+
constructor(content) {
|
|
4
|
+
this.content = content;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class OpenDocx {
|
|
8
|
+
static { this.type = '[Editor] open docx'; }
|
|
9
|
+
constructor(documentId) {
|
|
10
|
+
this.documentId = documentId;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9zdG9yZS9lZGl0b3IuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sT0FBTzthQUNBLFNBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUMzQyxZQUFtQixPQUFrQjtRQUFsQixZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQUcsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLFFBQVE7YUFDRCxTQUFJLEdBQUcsb0JBQW9CLENBQUM7SUFDNUMsWUFBbUIsVUFBa0I7UUFBbEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N4TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2RvY3gubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgU2V0RG9jeCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0VkaXRvcl0gc2V0IGRvY3gnO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZW50OiBEb2N4TW9kZWwpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuRG9jeCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0VkaXRvcl0gb3BlbiBkb2N4JztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZG9jdW1lbnRJZDogbnVtYmVyKSB7fVxufVxuIl19
|