@talrace/ngx-noder 0.0.7
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,7 @@
|
|
|
1
|
+
export var BreakTypes;
|
|
2
|
+
(function (BreakTypes) {
|
|
3
|
+
BreakTypes[BreakTypes["Page"] = 0] = "Page";
|
|
4
|
+
BreakTypes[BreakTypes["Column"] = 1] = "Column";
|
|
5
|
+
BreakTypes[BreakTypes["TextWrapping"] = 2] = "TextWrapping";
|
|
6
|
+
})(BreakTypes || (BreakTypes = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWstdHlwZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvZW51bXMvYnJlYWstdHlwZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ2xCLDJDQUFJLENBQUE7SUFDSiwrQ0FBTSxDQUFBO0lBQ04sMkRBQVksQ0FBQTtBQUNoQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBCcmVha1R5cGVzIHtcbiAgICBQYWdlLFxuICAgIENvbHVtbixcbiAgICBUZXh0V3JhcHBpbmdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var HRule;
|
|
2
|
+
(function (HRule) {
|
|
3
|
+
HRule[HRule["Auto"] = 0] = "Auto";
|
|
4
|
+
HRule[HRule["AtLeast"] = 1] = "AtLeast";
|
|
5
|
+
HRule[HRule["Exact"] = 2] = "Exact";
|
|
6
|
+
})(HRule || (HRule = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHJ1bGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvZW51bXMvaHJ1bGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxLQUlYO0FBSkQsV0FBWSxLQUFLO0lBQ2IsaUNBQUksQ0FBQTtJQUNKLHVDQUFPLENBQUE7SUFDUCxtQ0FBSyxDQUFBO0FBQ1QsQ0FBQyxFQUpXLEtBQUssS0FBTCxLQUFLLFFBSWhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSFJ1bGUge1xuICAgIEF1dG8sXG4gICAgQXRMZWFzdCxcbiAgICBFeGFjdFxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var MouseButton;
|
|
2
|
+
(function (MouseButton) {
|
|
3
|
+
MouseButton[MouseButton["Left"] = 0] = "Left";
|
|
4
|
+
MouseButton[MouseButton["Middle"] = 1] = "Middle";
|
|
5
|
+
MouseButton[MouseButton["Right"] = 2] = "Right";
|
|
6
|
+
})(MouseButton || (MouseButton = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91c2UtYnV0dG9uLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL2VudW1zL21vdXNlLWJ1dHRvbi5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDbkIsNkNBQUksQ0FBQTtJQUNKLGlEQUFNLENBQUE7SUFDTiwrQ0FBSyxDQUFBO0FBQ1QsQ0FBQyxFQUpXLFdBQVcsS0FBWCxXQUFXLFFBSXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTW91c2VCdXR0b24ge1xuICAgIExlZnQsXG4gICAgTWlkZGxlLFxuICAgIFJpZ2h0XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var NumberingMarkerType;
|
|
2
|
+
(function (NumberingMarkerType) {
|
|
3
|
+
NumberingMarkerType[NumberingMarkerType["Bullet"] = 0] = "Bullet";
|
|
4
|
+
NumberingMarkerType[NumberingMarkerType["LowerLetter"] = 1] = "LowerLetter";
|
|
5
|
+
NumberingMarkerType[NumberingMarkerType["UpperLetter"] = 2] = "UpperLetter";
|
|
6
|
+
NumberingMarkerType[NumberingMarkerType["LowerRoman"] = 3] = "LowerRoman";
|
|
7
|
+
NumberingMarkerType[NumberingMarkerType["UpperRoman"] = 4] = "UpperRoman";
|
|
8
|
+
NumberingMarkerType[NumberingMarkerType["Decimal"] = 5] = "Decimal";
|
|
9
|
+
NumberingMarkerType[NumberingMarkerType["DecimalZero"] = 6] = "DecimalZero";
|
|
10
|
+
NumberingMarkerType[NumberingMarkerType["IdeographDigital"] = 7] = "IdeographDigital";
|
|
11
|
+
})(NumberingMarkerType || (NumberingMarkerType = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLW1hcmtlci10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL2VudW1zL251bWJlcmluZy1tYXJrZXItdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQVNYO0FBVEQsV0FBWSxtQkFBbUI7SUFDM0IsaUVBQU0sQ0FBQTtJQUNOLDJFQUFXLENBQUE7SUFDWCwyRUFBVyxDQUFBO0lBQ1gseUVBQVUsQ0FBQTtJQUNWLHlFQUFVLENBQUE7SUFDVixtRUFBTyxDQUFBO0lBQ1AsMkVBQVcsQ0FBQTtJQUNYLHFGQUFnQixDQUFBO0FBQ3BCLENBQUMsRUFUVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBUzlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTnVtYmVyaW5nTWFya2VyVHlwZSB7XG4gICAgQnVsbGV0LFxuICAgIExvd2VyTGV0dGVyLFxuICAgIFVwcGVyTGV0dGVyLFxuICAgIExvd2VyUm9tYW4sXG4gICAgVXBwZXJSb21hbixcbiAgICBEZWNpbWFsLFxuICAgIERlY2ltYWxaZXJvLFxuICAgIElkZW9ncmFwaERpZ2l0YWxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var PageType;
|
|
2
|
+
(function (PageType) {
|
|
3
|
+
PageType[PageType["Default"] = 0] = "Default";
|
|
4
|
+
PageType[PageType["First"] = 1] = "First";
|
|
5
|
+
PageType[PageType["Even"] = 2] = "Even";
|
|
6
|
+
})(PageType || (PageType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL2VudW1zL3BhZ2UtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDaEIsNkNBQU8sQ0FBQTtJQUNQLHlDQUFLLENBQUE7SUFDTCx1Q0FBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLFFBQVEsS0FBUixRQUFRLFFBSW5CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUGFnZVR5cGUge1xuICAgIERlZmF1bHQsXG4gICAgRmlyc3QsXG4gICAgRXZlblxufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var VerticalAlignment;
|
|
2
|
+
(function (VerticalAlignment) {
|
|
3
|
+
VerticalAlignment[VerticalAlignment["None"] = 0] = "None";
|
|
4
|
+
VerticalAlignment[VerticalAlignment["SuperScript"] = 1] = "SuperScript";
|
|
5
|
+
VerticalAlignment[VerticalAlignment["SubScript"] = 2] = "SubScript";
|
|
6
|
+
VerticalAlignment[VerticalAlignment["Baseline"] = 3] = "Baseline";
|
|
7
|
+
VerticalAlignment[VerticalAlignment["Top"] = 4] = "Top";
|
|
8
|
+
VerticalAlignment[VerticalAlignment["Center"] = 5] = "Center";
|
|
9
|
+
VerticalAlignment[VerticalAlignment["Bottom"] = 6] = "Bottom";
|
|
10
|
+
})(VerticalAlignment || (VerticalAlignment = {}));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtYWxpZ25tZW50LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL2VudW1zL3ZlcnRpY2FsLWFsaWdubWVudC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDekIseURBQUksQ0FBQTtJQUNKLHVFQUFXLENBQUE7SUFDWCxtRUFBUyxDQUFBO0lBQ1QsaUVBQVEsQ0FBQTtJQUNSLHVEQUFHLENBQUE7SUFDSCw2REFBTSxDQUFBO0lBQ04sNkRBQU0sQ0FBQTtBQUNWLENBQUMsRUFSVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBUTVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gVmVydGljYWxBbGlnbm1lbnQge1xuICAgIE5vbmUsXG4gICAgU3VwZXJTY3JpcHQsXG4gICAgU3ViU2NyaXB0LFxuICAgIEJhc2VsaW5lLFxuICAgIFRvcCxcbiAgICBDZW50ZXIsXG4gICAgQm90dG9tXG59XG4iXX0=
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Alignment } from '../constants/alignments.const';
|
|
2
|
+
import { ContentStyleChange } from '../constants/content-style-change.const';
|
|
3
|
+
import { DEFAULT_BACKGROUND_COLOR, DEFAULT_FONT_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE } from '../constants/editor.const';
|
|
4
|
+
import { FormatModel } from '../../../../models/generated/format.model';
|
|
5
|
+
import { FormatStyleHelper } from './format-style.helper';
|
|
6
|
+
import { TextStyleModel } from '../../../../models/generated/text-style.model';
|
|
7
|
+
export class ContentStyleHelper {
|
|
8
|
+
static getDefaultStyleValueByKey(key) {
|
|
9
|
+
switch (key) {
|
|
10
|
+
case 'fontFamily':
|
|
11
|
+
return DEFAULT_FONT_FAMILY;
|
|
12
|
+
case 'fontSize':
|
|
13
|
+
return DEFAULT_FONT_SIZE;
|
|
14
|
+
case 'fontColor':
|
|
15
|
+
return DEFAULT_FONT_COLOR;
|
|
16
|
+
case 'highlightColor':
|
|
17
|
+
return DEFAULT_BACKGROUND_COLOR;
|
|
18
|
+
case 'alignment':
|
|
19
|
+
return Alignment.left;
|
|
20
|
+
default:
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
static getTextStylesString(textStyle) {
|
|
25
|
+
let result = '';
|
|
26
|
+
if (textStyle.fontSize) {
|
|
27
|
+
result += `font-size:${textStyle.fontSize}pt;`;
|
|
28
|
+
}
|
|
29
|
+
if (textStyle.fontFamily) {
|
|
30
|
+
result += `font-family:${textStyle.fontFamily};`;
|
|
31
|
+
}
|
|
32
|
+
if (textStyle.fontColor) {
|
|
33
|
+
result += `color:${textStyle.fontColor};`;
|
|
34
|
+
}
|
|
35
|
+
if (textStyle.highlightColor) {
|
|
36
|
+
result += `background-color:${textStyle.highlightColor};`;
|
|
37
|
+
}
|
|
38
|
+
if (textStyle.bold) {
|
|
39
|
+
result += 'font-weight:bold;';
|
|
40
|
+
}
|
|
41
|
+
if (textStyle.italic) {
|
|
42
|
+
result += 'font-style:italic;';
|
|
43
|
+
}
|
|
44
|
+
if (textStyle.underline) {
|
|
45
|
+
result += 'text-decoration:underline;';
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns font styles string from modifier used for canvas calculation
|
|
51
|
+
*/
|
|
52
|
+
static getFontStylesString(textStyle) {
|
|
53
|
+
let fontString = '';
|
|
54
|
+
if (!textStyle) {
|
|
55
|
+
return fontString;
|
|
56
|
+
}
|
|
57
|
+
if (textStyle.italic) {
|
|
58
|
+
fontString += 'italic ';
|
|
59
|
+
}
|
|
60
|
+
if (textStyle.bold) {
|
|
61
|
+
fontString += 'bold ';
|
|
62
|
+
}
|
|
63
|
+
if (textStyle.fontSize) {
|
|
64
|
+
fontString += `${textStyle.fontSize}pt `;
|
|
65
|
+
}
|
|
66
|
+
if (textStyle.fontFamily) {
|
|
67
|
+
fontString += textStyle.fontFamily;
|
|
68
|
+
}
|
|
69
|
+
return fontString;
|
|
70
|
+
}
|
|
71
|
+
static getTextStyleChanges(first, second) {
|
|
72
|
+
let result = 0;
|
|
73
|
+
if (!first || !second) {
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
if (typeof second.bold === 'boolean' && first.bold !== second.bold) {
|
|
77
|
+
result |= ContentStyleChange.bold;
|
|
78
|
+
}
|
|
79
|
+
if (second.fontColor && first.fontColor !== second.fontColor) {
|
|
80
|
+
result |= ContentStyleChange.fontColor;
|
|
81
|
+
}
|
|
82
|
+
if (second.highlightColor && first.highlightColor !== second.highlightColor) {
|
|
83
|
+
result |= ContentStyleChange.highlightColor;
|
|
84
|
+
}
|
|
85
|
+
if (second.fontFamily && first.fontFamily !== second.fontFamily) {
|
|
86
|
+
result |= ContentStyleChange.font;
|
|
87
|
+
}
|
|
88
|
+
if (typeof second.italic === 'boolean' && first.italic !== second.italic) {
|
|
89
|
+
result |= ContentStyleChange.italic;
|
|
90
|
+
}
|
|
91
|
+
if (second.fontSize > 0 && first.fontSize !== second.fontSize) {
|
|
92
|
+
result |= ContentStyleChange.size;
|
|
93
|
+
}
|
|
94
|
+
if (typeof second.underline === 'boolean' && first.underline !== second.underline) {
|
|
95
|
+
result |= ContentStyleChange.underline;
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Apply changes to model based on the provided changesType
|
|
101
|
+
*/
|
|
102
|
+
static applyTextStyleChanges(first, second, changes) {
|
|
103
|
+
if (changes & ContentStyleChange.bold) {
|
|
104
|
+
first.bold = second.bold;
|
|
105
|
+
}
|
|
106
|
+
if (changes & ContentStyleChange.fontColor) {
|
|
107
|
+
first.fontColor = second.fontColor;
|
|
108
|
+
}
|
|
109
|
+
if (changes & ContentStyleChange.highlightColor) {
|
|
110
|
+
first.highlightColor = second.highlightColor;
|
|
111
|
+
}
|
|
112
|
+
if (changes & ContentStyleChange.font) {
|
|
113
|
+
first.fontFamily = second.fontFamily;
|
|
114
|
+
}
|
|
115
|
+
if (changes & ContentStyleChange.italic) {
|
|
116
|
+
first.italic = second.italic;
|
|
117
|
+
}
|
|
118
|
+
if (changes & ContentStyleChange.size) {
|
|
119
|
+
first.fontSize = second.fontSize;
|
|
120
|
+
}
|
|
121
|
+
if (changes & ContentStyleChange.underline) {
|
|
122
|
+
first.underline = second.underline;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
static applyTextStyles(formats, startIndex, endIndex, cursorStyle) {
|
|
126
|
+
let firstIndex = formats.findIndex(x => x.endIndex >= startIndex);
|
|
127
|
+
if (formats[firstIndex].startIndex < startIndex) {
|
|
128
|
+
const model = new FormatModel({
|
|
129
|
+
startIndex: formats[firstIndex].startIndex,
|
|
130
|
+
endIndex: startIndex - 1,
|
|
131
|
+
textStyle: new TextStyleModel(formats[firstIndex].textStyle)
|
|
132
|
+
});
|
|
133
|
+
formats[firstIndex].startIndex = startIndex;
|
|
134
|
+
formats.splice(firstIndex, 0, model);
|
|
135
|
+
firstIndex++;
|
|
136
|
+
}
|
|
137
|
+
let lastIndex = firstIndex;
|
|
138
|
+
while (formats[lastIndex].endIndex < endIndex) {
|
|
139
|
+
lastIndex++;
|
|
140
|
+
}
|
|
141
|
+
if (formats[lastIndex].endIndex > endIndex) {
|
|
142
|
+
const model = new FormatModel({
|
|
143
|
+
startIndex: endIndex + 1,
|
|
144
|
+
endIndex: formats[lastIndex].endIndex,
|
|
145
|
+
textStyle: new TextStyleModel(formats[lastIndex].textStyle)
|
|
146
|
+
});
|
|
147
|
+
formats[lastIndex].endIndex = endIndex;
|
|
148
|
+
formats.splice(lastIndex + 1, 0, model);
|
|
149
|
+
}
|
|
150
|
+
for (let i = firstIndex; i <= lastIndex; i++) {
|
|
151
|
+
FormatStyleHelper.applyTextStyles(formats[i].textStyle, cursorStyle);
|
|
152
|
+
}
|
|
153
|
+
FormatStyleHelper.mergeFormats(formats, startIndex - 1, endIndex + 1);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHlsZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL2hlbHBlcnMvY29udGVudC1zdHlsZS5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFL0UsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixNQUFNLENBQUMseUJBQXlCLENBQUMsR0FBVztRQUN4QyxRQUFRLEdBQUcsRUFBRTtZQUNULEtBQUssWUFBWTtnQkFDYixPQUFPLG1CQUFtQixDQUFDO1lBQy9CLEtBQUssVUFBVTtnQkFDWCxPQUFPLGlCQUFpQixDQUFDO1lBQzdCLEtBQUssV0FBVztnQkFDWixPQUFPLGtCQUFrQixDQUFDO1lBQzlCLEtBQUssZ0JBQWdCO2dCQUNqQixPQUFPLHdCQUF3QixDQUFDO1lBQ3BDLEtBQUssV0FBVztnQkFDWixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDMUI7Z0JBQ0ksT0FBTztTQUNkO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUF5QjtRQUNoRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxTQUFTLENBQUMs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Q0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDOUQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDdkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDeEU7UUFDRCxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJy4uL2NvbnN0YW50cy9hbGlnbm1lbnRzLmNvbnN0JztcbmltcG9ydCB7IENvbnRlbnRTdHlsZUNoYW5nZSB9IGZyb20gJy4uL2NvbnN0YW50cy9jb250ZW50LXN0eWxlLWNoYW5nZS5jb25zdCc7XG5pbXBvcnQgeyBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1IsIERFRkFVTFRfRk9OVF9DT0xPUiwgREVGQVVMVF9GT05UX0ZBTUlMWSwgREVGQVVMVF9GT05UX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IEZvcm1hdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9mb3JtYXQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWF0U3R5bGVIZWxwZXIgfSBmcm9tICcuL2Zvcm1hdC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQ29udGVudFN0eWxlSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0RGVmYXVsdFN0eWxlVmFsdWVCeUtleShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdmb250RmFtaWx5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gREVGQVVMVF9GT05UX0ZBTUlMWTtcbiAgICAgICAgICAgIGNhc2UgJ2ZvbnRTaXplJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gREVGQVVMVF9GT05UX1NJWkU7XG4gICAgICAgICAgICBjYXNlICdmb250Q29sb3InOlxuICAgICAgICAgICAgICAgIHJldHVybiBERUZBVUxUX0ZPTlRfQ09MT1I7XG4gICAgICAgICAgICBjYXNlICdoaWdobGlnaHRDb2xvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIERFRkFVTFRfQkFDS0dST1VORF9DT0xPUjtcbiAgICAgICAgICAgIGNhc2UgJ2FsaWdubWVudCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFsaWdubWVudC5sZWZ0O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0VGV4dFN0eWxlc1N0cmluZyh0ZXh0U3R5bGU6IFRleHRTdHlsZU1vZGVsKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBpZiAodGV4dFN0eWxlLmZvbnRTaXplKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYGZvbnQtc2l6ZToke3RleHRTdHlsZS5mb250U2l6ZX1wdDtgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5mb250RmFtaWx5KSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYGZvbnQtZmFtaWx5OiR7dGV4dFN0eWxlLmZvbnRGYW1pbHl9O2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmZvbnRDb2xvcikge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGBjb2xvcjoke3RleHRTdHlsZS5mb250Q29sb3J9O2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmhpZ2hsaWdodENvbG9yKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYGJhY2tncm91bmQtY29sb3I6JHt0ZXh0U3R5bGUuaGlnaGxpZ2h0Q29sb3J9O2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmJvbGQpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAnZm9udC13ZWlnaHQ6Ym9sZDsnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5pdGFsaWMpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAnZm9udC1zdHlsZTppdGFsaWM7JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUudW5kZXJsaW5lKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJ3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBmb250IHN0eWxlcyBzdHJpbmcgZnJvbSBtb2RpZmllciB1c2VkIGZvciBjYW52YXMgY2FsY3VsYXRpb25cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0Rm9udFN0eWxlc1N0cmluZyh0ZXh0U3R5bGU6IFRleHRTdHlsZU1vZGVsKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGZvbnRTdHJpbmcgPSAnJztcbiAgICAgICAgaWYgKCF0ZXh0U3R5bGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmb250U3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5pdGFsaWMpIHtcbiAgICAgICAgICAgIGZvbnRTdHJpbmcgKz0gJ2l0YWxpYyAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5ib2xkKSB7XG4gICAgICAgICAgICBmb250U3RyaW5nICs9ICdib2xkICc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmZvbnRTaXplKSB7XG4gICAgICAgICAgICBmb250U3RyaW5nICs9IGAke3RleHRTdHlsZS5mb250U2l6ZX1wdCBgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5mb250RmFtaWx5KSB7XG4gICAgICAgICAgICBmb250U3RyaW5nICs9IHRleHRTdHlsZS5mb250RmFtaWx5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvbnRTdHJpbmc7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldFRleHRTdHlsZUNoYW5nZXMoZmlyc3Q6IFRleHRTdHlsZU1vZGVsLCBzZWNvbmQ6IFRleHRTdHlsZU1vZGVsKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGlmICghZmlyc3QgfHwgIXNlY29uZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc2Vjb25kLmJvbGQgPT09ICdib29sZWFuJyAmJiBmaXJzdC5ib2xkICE9PSBzZWNvbmQuYm9sZCkge1xuICAgICAgICAgICAgcmVzdWx0IHw9IENvbnRlbnRTdHlsZUNoYW5nZS5ib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlY29uZC5mb250Q29sb3IgJiYgZmlyc3QuZm9udENvbG9yICE9PSBzZWNvbmQuZm9udENvbG9yKSB7XG4gICAgICAgICAgICByZXN1bHQgfD0gQ29udGVudFN0eWxlQ2hhbmdlLmZvbnRDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWNvbmQuaGlnaGxpZ2h0Q29sb3IgJiYgZmlyc3QuaGlnaGxpZ2h0Q29sb3IgIT09IHNlY29uZC5oaWdobGlnaHRDb2xvcikge1xuICAgICAgICAgICAgcmVzdWx0IHw9IENvbnRlbnRTdHlsZUNoYW5nZS5oaWdobGlnaHRDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWNvbmQuZm9udEZhbWlseSAmJiBmaXJzdC5mb250RmFtaWx5ICE9PSBzZWNvbmQuZm9udEZhbWlseSkge1xuICAgICAgICAgICAgcmVzdWx0IHw9IENvbnRlbnRTdHlsZUNoYW5nZS5mb250O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBzZWNvbmQuaXRhbGljID09PSAnYm9vbGVhbicgJiYgZmlyc3QuaXRhbGljICE9PSBzZWNvbmQuaXRhbGljKSB7XG4gICAgICAgICAgICByZXN1bHQgfD0gQ29udGVudFN0eWxlQ2hhbmdlLml0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWNvbmQuZm9udFNpemUgPiAwICYmIGZpcnN0LmZvbnRTaXplICE9PSBzZWNvbmQuZm9udFNpemUpIHtcbiAgICAgICAgICAgIHJlc3VsdCB8PSBDb250ZW50U3R5bGVDaGFuZ2Uuc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc2Vjb25kLnVuZGVybGluZSA9PT0gJ2Jvb2xlYW4nICYmIGZpcnN0LnVuZGVybGluZSAhPT0gc2Vjb25kLnVuZGVybGluZSkge1xuICAgICAgICAgICAgcmVzdWx0IHw9IENvbnRlbnRTdHlsZUNoYW5nZS51bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGx5IGNoYW5nZXMgdG8gbW9kZWwgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNoYW5nZXNUeXBlXG4gICAgICovXG4gICAgc3RhdGljIGFwcGx5VGV4dFN0eWxlQ2hhbmdlcyhmaXJzdDogVGV4dFN0eWxlTW9kZWwsIHNlY29uZDogVGV4dFN0eWxlTW9kZWwsIGNoYW5nZXM6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcyAmIENvbnRlbnRTdHlsZUNoYW5nZS5ib2xkKSB7XG4gICAgICAgICAgICBmaXJzdC5ib2xkID0gc2Vjb25kLmJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcyAmIENvbnRlbnRTdHlsZUNoYW5nZS5mb250Q29sb3IpIHtcbiAgICAgICAgICAgIGZpcnN0LmZvbnRDb2xvciA9IHNlY29uZC5mb250Q29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcyAmIENvbnRlbnRTdHlsZUNoYW5nZS5oaWdobGlnaHRDb2xvcikge1xuICAgICAgICAgICAgZmlyc3QuaGlnaGxpZ2h0Q29sb3IgPSBzZWNvbmQuaGlnaGxpZ2h0Q29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcyAmIENvbnRlbnRTdHlsZUNoYW5nZS5mb250KSB7XG4gICAgICAgICAgICBmaXJzdC5mb250RmFtaWx5ID0gc2Vjb25kLmZvbnRGYW1pbHk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcyAmIENvbnRlbnRTdHlsZUNoYW5nZS5pdGFsaWMpIHtcbiAgICAgICAgICAgIGZpcnN0Lml0YWxpYyA9IHNlY29uZC5pdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcyAmIENvbnRlbnRTdHlsZUNoYW5nZS5zaXplKSB7XG4gICAgICAgICAgICBmaXJzdC5mb250U2l6ZSA9IHNlY29uZC5mb250U2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzICYgQ29udGVudFN0eWxlQ2hhbmdlLnVuZGVybGluZSkge1xuICAgICAgICAgICAgZmlyc3QudW5kZXJsaW5lID0gc2Vjb25kLnVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBhcHBseVRleHRTdHlsZXMoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCBjdXJzb3JTdHlsZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbGV0IGZpcnN0SW5kZXggPSBmb3JtYXRzLmZpbmRJbmRleCh4ID0+IHguZW5kSW5kZXggPj0gc3RhcnRJbmRleCk7XG4gICAgICAgIGlmIChmb3JtYXRzW2ZpcnN0SW5kZXhdLnN0YXJ0SW5kZXggPCBzdGFydEluZGV4KSB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IG5ldyBGb3JtYXRNb2RlbCh7XG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleDogZm9ybWF0c1tmaXJzdEluZGV4XS5zdGFydEluZGV4LFxuICAgICAgICAgICAgICAgIGVuZEluZGV4OiBzdGFydEluZGV4IC0gMSxcbiAgICAgICAgICAgICAgICB0ZXh0U3R5bGU6IG5ldyBUZXh0U3R5bGVNb2RlbChmb3JtYXRzW2ZpcnN0SW5kZXhdLnRleHRTdHlsZSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9ybWF0c1tmaXJzdEluZGV4XS5zdGFydEluZGV4ID0gc3RhcnRJbmRleDtcbiAgICAgICAgICAgIGZvcm1hdHMuc3BsaWNlKGZpcnN0SW5kZXgsIDAsIG1vZGVsKTtcbiAgICAgICAgICAgIGZpcnN0SW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGFzdEluZGV4ID0gZmlyc3RJbmRleDtcbiAgICAgICAgd2hpbGUgKGZvcm1hdHNbbGFzdEluZGV4XS5lbmRJbmRleCA8IGVuZEluZGV4KSB7XG4gICAgICAgICAgICBsYXN0SW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0c1tsYXN0SW5kZXhdLmVuZEluZGV4ID4gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gbmV3IEZvcm1hdE1vZGVsKHtcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4OiBlbmRJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgZW5kSW5kZXg6IGZvcm1hdHNbbGFzdEluZGV4XS5lbmRJbmRleCxcbiAgICAgICAgICAgICAgICB0ZXh0U3R5bGU6IG5ldyBUZXh0U3R5bGVNb2RlbChmb3JtYXRzW2xhc3RJbmRleF0udGV4dFN0eWxlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmb3JtYXRzW2xhc3RJbmRleF0uZW5kSW5kZXggPSBlbmRJbmRleDtcbiAgICAgICAgICAgIGZvcm1hdHMuc3BsaWNlKGxhc3RJbmRleCArIDEsIDAsIG1vZGVsKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gZmlyc3RJbmRleDsgaSA8PSBsYXN0SW5kZXg7IGkrKykge1xuICAgICAgICAgICAgRm9ybWF0U3R5bGVIZWxwZXIuYXBwbHlUZXh0U3R5bGVzKGZvcm1hdHNbaV0udGV4dFN0eWxlLCBjdXJzb3JTdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgRm9ybWF0U3R5bGVIZWxwZXIubWVyZ2VGb3JtYXRzKGZvcm1hdHMsIHN0YXJ0SW5kZXggLSAxLCBlbmRJbmRleCArIDEpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Point } from '../point';
|
|
2
|
+
export class DeltaHelper {
|
|
3
|
+
static remove(paragraphs, start, end) {
|
|
4
|
+
const paragraph = paragraphs[start.row].slice(0, start.column) + paragraphs[end.row].slice(end.column);
|
|
5
|
+
paragraphs.splice(start.row, end.row - start.row + 1, paragraph);
|
|
6
|
+
}
|
|
7
|
+
static insertTextAndReturnEndPoint(paragraphs, text, position) {
|
|
8
|
+
const left = paragraphs[position.row].slice(0, position.column);
|
|
9
|
+
const right = paragraphs[position.row].slice(position.column);
|
|
10
|
+
const insertParagraphs = this.splitByParagraphs(`${left}${text}${right}`);
|
|
11
|
+
paragraphs.splice(position.row, 1, ...insertParagraphs);
|
|
12
|
+
return new Point(position.row + insertParagraphs.length - 1, insertParagraphs[insertParagraphs.length - 1].length - right.length);
|
|
13
|
+
}
|
|
14
|
+
static splitByParagraphs(text) {
|
|
15
|
+
return text.split(/\r\n|\r|\n/);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsdGEuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9oZWxwZXJzL2RlbHRhLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpDLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBb0IsRUFBRSxLQUFZLEVBQUUsR0FBVTtRQUN4RCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLFVBQW9CLEVBQUUsSUFBWSxFQUFFLFFBQWU7UUFDbEYsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRSxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL3BvaW50JztcblxuZXhwb3J0IGNsYXNzIERlbHRhSGVscGVyIHtcbiAgICBzdGF0aWMgcmVtb3ZlKHBhcmFncmFwaHM6IHN0cmluZ1tdLCBzdGFydDogUG9pbnQsIGVuZDogUG9pbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gcGFyYWdyYXBoc1tzdGFydC5yb3ddLnNsaWNlKDAsIHN0YXJ0LmNvbHVtbikgKyBwYXJhZ3JhcGhzW2VuZC5yb3ddLnNsaWNlKGVuZC5jb2x1bW4pO1xuICAgICAgICBwYXJhZ3JhcGhzLnNwbGljZShzdGFydC5yb3csIGVuZC5yb3cgLSBzdGFydC5yb3cgKyAxLCBwYXJhZ3JhcGgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBpbnNlcnRUZXh0QW5kUmV0dXJuRW5kUG9pbnQocGFyYWdyYXBoczogc3RyaW5nW10sIHRleHQ6IHN0cmluZywgcG9zaXRpb246IFBvaW50KTogUG9pbnQge1xuICAgICAgICBjb25zdCBsZWZ0ID0gcGFyYWdyYXBoc1twb3NpdGlvbi5yb3ddLnNsaWNlKDAsIHBvc2l0aW9uLmNvbHVtbik7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gcGFyYWdyYXBoc1twb3NpdGlvbi5yb3ddLnNsaWNlKHBvc2l0aW9uLmNvbHVtbik7XG4gICAgICAgIGNvbnN0IGluc2VydFBhcmFncmFwaHMgPSB0aGlzLnNwbGl0QnlQYXJhZ3JhcGhzKGAke2xlZnR9JHt0ZXh0fSR7cmlnaHR9YCk7XG4gICAgICAgIHBhcmFncmFwaHMuc3BsaWNlKHBvc2l0aW9uLnJvdywgMSwgLi4uaW5zZXJ0UGFyYWdyYXBocyk7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQocG9zaXRpb24ucm93ICsgaW5zZXJ0UGFyYWdyYXBocy5sZW5ndGggLSAxLCBpbnNlcnRQYXJhZ3JhcGhzW2luc2VydFBhcmFncmFwaHMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gcmlnaHQubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc3BsaXRCeVBhcmFncmFwaHModGV4dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGV4dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export class DomHelper {
|
|
2
|
+
static translate(element, tx, ty) {
|
|
3
|
+
element.style.top = `${Math.round(ty)}px`;
|
|
4
|
+
element.style.left = `${Math.round(tx)}px`;
|
|
5
|
+
}
|
|
6
|
+
static createFragment(element) {
|
|
7
|
+
return (element ? element.ownerDocument : document).createDocumentFragment();
|
|
8
|
+
}
|
|
9
|
+
static removeElement(element) {
|
|
10
|
+
if (!element?.parentNode) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
element.parentNode.removeChild(element);
|
|
14
|
+
}
|
|
15
|
+
static removeChildren(element) {
|
|
16
|
+
element.innerHTML = '';
|
|
17
|
+
}
|
|
18
|
+
static setStyle(styles, property, value) {
|
|
19
|
+
if (styles[property] === value) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
styles[property] = value;
|
|
23
|
+
}
|
|
24
|
+
// Remove a CSS class from the list of classes on the given node
|
|
25
|
+
static removeCssClass(element, name) {
|
|
26
|
+
element.className = element.className
|
|
27
|
+
.split(/\s+/g)
|
|
28
|
+
.filter(className => className != name)
|
|
29
|
+
.join(' ');
|
|
30
|
+
}
|
|
31
|
+
// Add a CSS class to the list of classes on the given node
|
|
32
|
+
static addCssClass(element, name) {
|
|
33
|
+
if (this.hasCssClass(element, name)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
element.className += ` ${name}`;
|
|
37
|
+
}
|
|
38
|
+
static hasCssClass(element, name) {
|
|
39
|
+
return element.className.split(/\s+/g).includes(name);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvaGVscGVycy9kb20uaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0lBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBb0IsRUFBRSxFQUFVLEVBQUUsRUFBVTtRQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztRQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFnQjtRQUNsQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQW9CO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUVELE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQWdCO1FBQ2xDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQTJCLEVBQUUsUUFBZ0IsRUFBRSxLQUFzQjtRQUNqRixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQ2hELE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVM7YUFDaEMsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUNiLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7YUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQixFQUFFLElBQVk7UUFDN0MsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNqQyxPQUFPO1NBQ1Y7UUFFRCxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQzdDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEb21IZWxwZXIge1xuICAgIHN0YXRpYyB0cmFuc2xhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHR4OiBudW1iZXIsIHR5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBgJHtNYXRoLnJvdW5kKHR5KX1weGA7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGAke01hdGgucm91bmQodHgpfXB4YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlRnJhZ21lbnQoZWxlbWVudDogRWxlbWVudCk6IERvY3VtZW50RnJhZ21lbnQge1xuICAgICAgICByZXR1cm4gKGVsZW1lbnQgPyBlbGVtZW50Lm93bmVyRG9jdW1lbnQgOiBkb2N1bWVudCkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZW1vdmVFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghZWxlbWVudD8ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZW1vdmVDaGlsZHJlbihlbGVtZW50OiBFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgfVxuXG4gICAgc3RhdGljIHNldFN0eWxlKHN0eWxlczogQ1NTU3R5bGVEZWNsYXJhdGlvbiwgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoc3R5bGVzW3Byb3BlcnR5XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0eWxlc1twcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYSBDU1MgY2xhc3MgZnJvbSB0aGUgbGlzdCBvZiBjbGFzc2VzIG9uIHRoZSBnaXZlbiBub2RlXG4gICAgc3RhdGljIHJlbW92ZUNzc0NsYXNzKGVsZW1lbnQ6IEVsZW1lbnQsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lXG4gICAgICAgICAgICAuc3BsaXQoL1xccysvZylcbiAgICAgICAgICAgIC5maWx0ZXIoY2xhc3NOYW1lID0+IGNsYXNzTmFtZSAhPSBuYW1lKVxuICAgICAgICAgICAgLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYSBDU1MgY2xhc3MgdG8gdGhlIGxpc3Qgb2YgY2xhc3NlcyBvbiB0aGUgZ2l2ZW4gbm9kZVxuICAgIHN0YXRpYyBhZGRDc3NDbGFzcyhlbGVtZW50OiBFbGVtZW50LCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ3NzQ2xhc3MoZWxlbWVudCwgbmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lICs9IGAgJHtuYW1lfWA7XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc0Nzc0NsYXNzKGVsZW1lbnQ6IEVsZW1lbnQsIG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5jbGFzc05hbWUuc3BsaXQoL1xccysvZykuaW5jbHVkZXMobmFtZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY29yZS9oZWxwZXJzL2V2ZW50LmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVztJQUNwQixNQUFNLEtBQUssU0FBUztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQW9CLEVBQUUsRUFBRTtnQkFDdkMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVTtnQkFDWCxNQUFNLENBQUMscUJBQXFCO29CQUM1QixNQUFNLENBQUMsNkJBQTZCLENBQUM7b0JBQ3JDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztvQkFDbEMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO29CQUNqQyxNQUFNLENBQUMsd0JBQXdCLENBQUM7b0JBQ2hDLFNBQVMsQ0FBQztTQUNqQjtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXZlbnRIZWxwZXIge1xuICAgIHN0YXRpYyBnZXQgbmV4dEZyYW1lKCk6IChjYWxsYmFjazogVGltZXJIYW5kbGVyKSA9PiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMuX25leHRGcmFtZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dEZyYW1lID0gKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChjYWxsYmFjaywgMTcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuX25leHRGcmFtZSA9XG4gICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fFxuICAgICAgICAgICAgICAgIHdpbmRvd1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHxcbiAgICAgICAgICAgICAgICB3aW5kb3dbJ21velJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8XG4gICAgICAgICAgICAgICAgd2luZG93Wydtc1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8XG4gICAgICAgICAgICAgICAgd2luZG93WydvUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHxcbiAgICAgICAgICAgICAgICBuZXh0RnJhbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fbmV4dEZyYW1lO1xuICAgIH1cbiAgICBwcml2YXRlIHN0YXRpYyBfbmV4dEZyYW1lOiAoY2FsbGJhY2s6IFRpbWVySGFuZGxlcikgPT4gbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export class FontMetrics {
|
|
2
|
+
static { this.storageKey = 'metrics'; }
|
|
3
|
+
static { this.versionKey = 'editorVersion'; }
|
|
4
|
+
/**
|
|
5
|
+
* Key value pairs for calculated sizes of char symbols in HTML element
|
|
6
|
+
*/
|
|
7
|
+
static { this.metrics = JSON.parse(localStorage.getItem(this.storageKey)) || {}; }
|
|
8
|
+
/**
|
|
9
|
+
* Key value pairs for identifiers and font strings
|
|
10
|
+
*/
|
|
11
|
+
static { this.fontStringMap = {}; }
|
|
12
|
+
static checkVersion(version) {
|
|
13
|
+
let identifier = localStorage.getItem(this.versionKey);
|
|
14
|
+
if (identifier === version) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
localStorage.removeItem(this.storageKey);
|
|
18
|
+
localStorage.setItem(this.versionKey, version);
|
|
19
|
+
}
|
|
20
|
+
static measureCharSize(ch, contentStyle) {
|
|
21
|
+
let identifier = this.fontStringMap[contentStyle];
|
|
22
|
+
if (!identifier) {
|
|
23
|
+
identifier = contentStyle.split(' ').join('_');
|
|
24
|
+
this.fontStringMap[contentStyle] = identifier;
|
|
25
|
+
}
|
|
26
|
+
this.metrics[identifier] ??= {};
|
|
27
|
+
if (!this.metrics[identifier][ch] || isNaN(this.metrics[identifier][ch].font)) {
|
|
28
|
+
this.metrics[identifier][ch] = this.calculateCanvas(ch, contentStyle);
|
|
29
|
+
localStorage.setItem(this.storageKey, JSON.stringify(this.metrics));
|
|
30
|
+
}
|
|
31
|
+
return this.metrics[identifier][ch];
|
|
32
|
+
}
|
|
33
|
+
static calculateCanvas(ch, contentStyle) {
|
|
34
|
+
this.canvasNode ||= document.createElement('canvas');
|
|
35
|
+
const fontBaseLine = this.fontBaseline(contentStyle, ch);
|
|
36
|
+
const context = this.canvasNode.getContext('2d');
|
|
37
|
+
context.font = contentStyle;
|
|
38
|
+
const textMetrics = context.measureText(ch);
|
|
39
|
+
return {
|
|
40
|
+
width: textMetrics.width,
|
|
41
|
+
height: textMetrics.fontBoundingBoxAscent + textMetrics.fontBoundingBoxDescent,
|
|
42
|
+
baseline: fontBaseLine.baseline,
|
|
43
|
+
content: fontBaseLine.content,
|
|
44
|
+
font: fontBaseLine.font,
|
|
45
|
+
line: fontBaseLine.line,
|
|
46
|
+
multiplier: fontBaseLine.multiplier,
|
|
47
|
+
ascent: textMetrics.fontBoundingBoxAscent,
|
|
48
|
+
descent: textMetrics.fontBoundingBoxDescent
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
static fontBaseline(contentStyle, text) {
|
|
52
|
+
const container = document.body;
|
|
53
|
+
this.measureDiv ||= document.createElement('div');
|
|
54
|
+
this.strut ||= document.createElement('span');
|
|
55
|
+
if (text === ' ') {
|
|
56
|
+
text = 'X';
|
|
57
|
+
}
|
|
58
|
+
this.measureDiv.style.font = contentStyle;
|
|
59
|
+
this.measureDiv.style.lineHeight = '1';
|
|
60
|
+
this.measureDiv.style.position = 'absolute';
|
|
61
|
+
this.measureDiv.style.visibility = 'hidden';
|
|
62
|
+
this.measureDiv.style.margin = '0';
|
|
63
|
+
this.measureDiv.style.padding = '0';
|
|
64
|
+
this.measureDiv.innerHTML = text;
|
|
65
|
+
this.strut.style.fontSize = '0';
|
|
66
|
+
this.strut.style.verticalAlign = 'baseline';
|
|
67
|
+
this.strut.style.padding = '0 10px';
|
|
68
|
+
this.measureDiv.classList.add('font-baseline');
|
|
69
|
+
this.measureDiv.appendChild(this.strut);
|
|
70
|
+
container.appendChild(this.measureDiv);
|
|
71
|
+
const computedStyle = window.getComputedStyle(this.measureDiv);
|
|
72
|
+
const fontSize = parseFloat(computedStyle.fontSize);
|
|
73
|
+
const baselineHeight = fontSize - this.strut.offsetTop;
|
|
74
|
+
const strutHeight = this.measureDiv.offsetHeight;
|
|
75
|
+
const lineHeight = parseFloat(computedStyle.lineHeight) || this.measureDiv.offsetHeight;
|
|
76
|
+
this.measureDiv.parentNode.removeChild(this.measureDiv);
|
|
77
|
+
this.measureDiv.innerHTML = '';
|
|
78
|
+
this.strut.innerHTML = '';
|
|
79
|
+
return {
|
|
80
|
+
baseline: baselineHeight,
|
|
81
|
+
content: strutHeight,
|
|
82
|
+
font: fontSize,
|
|
83
|
+
line: lineHeight,
|
|
84
|
+
multiplier: fontSize / baselineHeight
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1tZXRyaWNzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvaGVscGVycy9mb250LW1ldHJpY3MuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxXQUFXO2FBQ2IsZUFBVSxHQUFHLFNBQVMsQ0FBQzthQUV2QixlQUFVLEdBQUcsZUFBZSxDQUFDO0lBSXBDOztPQUVHO2FBQ0ksWUFBTyxHQU1WLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFNUQ7O09BRUc7YUFDSSxrQkFBYSxHQUE4QixFQUFFLENBQUM7SUFNckQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFlO1FBQy9CLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRTtZQUN4QixPQUFPO1NBQ1Y7UUFFRCxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBVSxFQUFFLFlBQW9CO1FBQ25ELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLFVBQVUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsYUFB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SSxFQUFFLFFBQVE7WUFDZCxJQUFJLEVBQUUsVUFBVTtZQUNoQixVQUFVLEVBQUUsUUFBUSxHQUFHLGNBQWM7U0FDeEMsQ0FBQztJQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRm9udE1ldHJpY1NpemUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZvbnQtbWV0cmljLXNpemUuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIEZvbnRNZXRyaWNzIHtcbiAgICBzdGF0aWMgc3RvcmFnZUtleSA9ICdtZXRyaWNzJztcblxuICAgIHN0YXRpYyB2ZXJzaW9uS2V5ID0gJ2VkaXRvclZlcnNpb24nO1xuXG4gICAgc3RhdGljIGNhbnZhc05vZGU6IEhUTUxDYW52YXNFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICogS2V5IHZhbHVlIHBhaXJzIGZvciBjYWxjdWxhdGVkIHNpemVzIG9mIGNoYXIgc3ltYm9scyBpbiBIVE1MIGVsZW1lbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgbWV0cmljczoge1xuICAgICAgICAvLyBmb250IHN0cmluZyByZXByZXNlbnRhdGlvbiAnaXRhbGljIDcwMCAxNnB4IEFyaWFsJyBpbiBzbmFrZV9jYXNlXG4gICAgICAgIFtpZGVudGlmaWVyOiBzdHJpbmddOiB7XG4gICAgICAgICAgICAvLyBjaGFyIHN5bWJvbFxuICAgICAgICAgICAgW2NoYXI6IHN0cmluZ106IElGb250TWV0cmljU2l6ZTsgLy8gc3ltYm9sIGNoYXJhY3RlcmlzdGljcyAod2lkdGgsIHNpemUsIGV0Yy4pXG4gICAgICAgIH07XG4gICAgfSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KSkgfHwge307XG5cbiAgICAvKipcbiAgICAgKiBLZXkgdmFsdWUgcGFpcnMgZm9yIGlkZW50aWZpZXJzIGFuZCBmb250IHN0cmluZ3NcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9udFN0cmluZ01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgc3RhdGljIG1lYXN1cmVEaXY6IEhUTUxFbGVtZW50O1xuXG4gICAgc3RhdGljIHN0cnV0OiBIVE1MRWxlbWVudDtcblxuICAgIHN0YXRpYyBjaGVja1ZlcnNpb24odmVyc2lvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCBpZGVudGlmaWVyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy52ZXJzaW9uS2V5KTtcbiAgICAgICAgaWYgKGlkZW50aWZpZXIgPT09IHZlcnNpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMudmVyc2lvbktleSwgdmVyc2lvbik7XG4gICAgfVxuXG4gICAgc3RhdGljIG1lYXN1cmVDaGFyU2l6ZShjaDogc3RyaW5nLCBjb250ZW50U3R5bGU6IHN0cmluZyk6IElGb250TWV0cmljU2l6ZSB7XG4gICAgICAgIGxldCBpZGVudGlmaWVyID0gdGhpcy5mb250U3RyaW5nTWFwW2NvbnRlbnRTdHlsZV07XG4gICAgICAgIGlmICghaWRlbnRpZmllcikge1xuICAgICAgICAgICAgaWRlbnRpZmllciA9IGNvbnRlbnRTdHlsZS5zcGxpdCgnICcpLmpvaW4oJ18nKTtcbiAgICAgICAgICAgIHRoaXMuZm9udFN0cmluZ01hcFtjb250ZW50U3R5bGVdID0gaWRlbnRpZmllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWV0cmljc1tpZGVudGlmaWVyXSA/Pz0ge307XG4gICAgICAgIGlmICghdGhpcy5tZXRyaWNzW2lkZW50aWZpZXJdW2NoXSB8fCBpc05hTih0aGlzLm1ldHJpY3NbaWRlbnRpZmllcl1bY2hdLmZvbnQpKSB7XG4gICAgICAgICAgICB0aGlzLm1ldHJpY3NbaWRlbnRpZmllcl1bY2hdID0gdGhpcy5jYWxjdWxhdGVDYW52YXMoY2gsIGNvbnRlbnRTdHlsZSk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KHRoaXMubWV0cmljcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWV0cmljc1tpZGVudGlmaWVyXVtjaF07XG4gICAgfVxuXG4gICAgc3RhdGljIGNhbGN1bGF0ZUNhbnZhcyhjaDogc3RyaW5nLCBjb250ZW50U3R5bGU6IHN0cmluZyk6IElGb250TWV0cmljU2l6ZSB7XG4gICAgICAgIHRoaXMuY2FudmFzTm9kZSB8fD0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IGZvbnRCYXNlTGluZSA9IHRoaXMuZm9udEJhc2VsaW5lKGNvbnRlbnRTdHlsZSwgY2gpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jYW52YXNOb2RlLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGNvbnRleHQuZm9udCA9IGNvbnRlbnRTdHlsZTtcbiAgICAgICAgY29uc3QgdGV4dE1ldHJpY3MgPSBjb250ZXh0Lm1lYXN1cmVUZXh0KGNoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6IHRleHRNZXRyaWNzLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0TWV0cmljcy5mb250Qm91bmRpbmdCb3hBc2NlbnQgKyB0ZXh0TWV0cmljcy5mb250Qm91bmRpbmdCb3hEZXNjZW50LFxuICAgICAgICAgICAgYmFzZWxpbmU6IGZvbnRCYXNlTGluZS5iYXNlbGluZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGZvbnRCYXNlTGluZS5jb250ZW50LFxuICAgICAgICAgICAgZm9udDogZm9udEJhc2VMaW5lLmZvbnQsXG4gICAgICAgICAgICBsaW5lOiBmb250QmFzZUxpbmUubGluZSxcbiAgICAgICAgICAgIG11bHRpcGxpZXI6IGZvbnRCYXNlTGluZS5tdWx0aXBsaWVyLFxuICAgICAgICAgICAgYXNjZW50OiB0ZXh0TWV0cmljcy5mb250Qm91bmRpbmdCb3hBc2NlbnQsXG4gICAgICAgICAgICBkZXNjZW50OiB0ZXh0TWV0cmljcy5mb250Qm91bmRpbmdCb3hEZXNjZW50XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGZvbnRCYXNlbGluZShcbiAgICAgICAgY29udGVudFN0eWxlOiBzdHJpbmcsXG4gICAgICAgIHRleHQ6IHN0cmluZ1xuICAgICk6IHtcbiAgICAgICAgYmFzZWxpbmU6IG51bWJlcjtcbiAgICAgICAgY29udGVudDogbnVtYmVyO1xuICAgICAgICBmb250OiBudW1iZXI7XG4gICAgICAgIGxpbmU6IG51bWJlcjtcbiAgICAgICAgbXVsdGlwbGllcjogbnVtYmVyO1xuICAgIH0ge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICB0aGlzLm1lYXN1cmVEaXYgfHw9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnN0cnV0IHx8PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgICAgaWYgKHRleHQgPT09ICcgJykge1xuICAgICAgICAgICAgdGV4dCA9ICdYJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWVhc3VyZURpdi5zdHlsZS5mb250ID0gY29udGVudFN0eWxlO1xuICAgICAgICB0aGlzLm1lYXN1cmVEaXYuc3R5bGUubGluZUhlaWdodCA9ICcxJztcbiAgICAgICAgdGhpcy5tZWFzdXJlRGl2LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgdGhpcy5tZWFzdXJlRGl2LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5tZWFzdXJlRGl2LnN0eWxlLm1hcmdpbiA9ICcwJztcbiAgICAgICAgdGhpcy5tZWFzdXJlRGl2LnN0eWxlLnBhZGRpbmcgPSAnMCc7XG4gICAgICAgIHRoaXMubWVhc3VyZURpdi5pbm5lckhUTUwgPSB0ZXh0O1xuXG4gICAgICAgIHRoaXMuc3RydXQuc3R5bGUuZm9udFNpemUgPSAnMCc7XG4gICAgICAgIHRoaXMuc3RydXQuc3R5bGUudmVydGljYWxBbGlnbiA9ICdiYXNlbGluZSc7XG4gICAgICAgIHRoaXMuc3RydXQuc3R5bGUucGFkZGluZyA9ICcwIDEwcHgnO1xuXG4gICAgICAgIHRoaXMubWVhc3VyZURpdi5jbGFzc0xpc3QuYWRkKCdmb250LWJhc2VsaW5lJyk7XG4gICAgICAgIHRoaXMubWVhc3VyZURpdi5hcHBlbmRDaGlsZCh0aGlzLnN0cnV0KTtcbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMubWVhc3VyZURpdik7XG5cbiAgICAgICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubWVhc3VyZURpdik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmZvbnRTaXplKTtcbiAgICAgICAgY29uc3QgYmFzZWxpbmVIZWlnaHQgPSBmb250U2l6ZSAtIHRoaXMuc3RydXQub2Zmc2V0VG9wO1xuICAgICAgICBjb25zdCBzdHJ1dEhlaWdodCA9IHRoaXMubWVhc3VyZURpdi5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubGluZUhlaWdodCkgfHwgdGhpcy5tZWFzdXJlRGl2Lm9mZnNldEhlaWdodDtcblxuICAgICAgICB0aGlzLm1lYXN1cmVEaXYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLm1lYXN1cmVEaXYpO1xuICAgICAgICB0aGlzLm1lYXN1cmVEaXYuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIHRoaXMuc3RydXQuaW5uZXJIVE1MID0gJyc7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJhc2VsaW5lOiBiYXNlbGluZUhlaWdodCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHN0cnV0SGVpZ2h0LFxuICAgICAgICAgICAgZm9udDogZm9udFNpemUsXG4gICAgICAgICAgICBsaW5lOiBsaW5lSGVpZ2h0LFxuICAgICAgICAgICAgbXVsdGlwbGllcjogZm9udFNpemUgLyBiYXNlbGluZUhlaWdodFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { TextStyleModel } from '../../../../models/generated/text-style.model';
|
|
2
|
+
export class FormatStyleHelper {
|
|
3
|
+
static areSameTextStyles(first, second) {
|
|
4
|
+
return (first.highlightColor === second.highlightColor &&
|
|
5
|
+
first.bold === second.bold &&
|
|
6
|
+
first.fontColor === second.fontColor &&
|
|
7
|
+
first.fontFamily === second.fontFamily &&
|
|
8
|
+
first.fontSize === second.fontSize &&
|
|
9
|
+
first.isSmallCaps === second.isSmallCaps &&
|
|
10
|
+
first.italic === second.italic &&
|
|
11
|
+
first.strikethrough === second.strikethrough &&
|
|
12
|
+
first.underline === second.underline &&
|
|
13
|
+
first.verticalAlignment === second.verticalAlignment);
|
|
14
|
+
}
|
|
15
|
+
static applyTextStyles(target, value) {
|
|
16
|
+
target.highlightColor = value.highlightColor ?? target.highlightColor;
|
|
17
|
+
target.bold = value.bold ?? target.bold;
|
|
18
|
+
target.fontColor = value.fontColor ?? target.fontColor;
|
|
19
|
+
target.fontFamily = value.fontFamily ?? target.fontFamily;
|
|
20
|
+
target.fontSize = value.fontSize ?? target.fontSize;
|
|
21
|
+
target.headingStyleId = value.headingStyleId ?? target.headingStyleId;
|
|
22
|
+
target.isSmallCaps = value.isSmallCaps ?? target.isSmallCaps;
|
|
23
|
+
target.italic = value.italic ?? target.italic;
|
|
24
|
+
target.strikethrough = value.strikethrough ?? target.strikethrough;
|
|
25
|
+
target.underline = value.underline ?? target.underline;
|
|
26
|
+
target.verticalAlignment = value.verticalAlignment ?? target.verticalAlignment;
|
|
27
|
+
}
|
|
28
|
+
static combineTextStyles(current, parent) {
|
|
29
|
+
return new TextStyleModel({
|
|
30
|
+
highlightColor: current.highlightColor ?? parent.highlightColor,
|
|
31
|
+
bold: current.bold ?? parent.bold,
|
|
32
|
+
fontColor: current.fontColor ?? parent.fontColor,
|
|
33
|
+
fontFamily: current.fontFamily ?? parent.fontFamily,
|
|
34
|
+
fontSize: current.fontSize ?? parent.fontSize,
|
|
35
|
+
headingStyleId: current.headingStyleId ?? parent.headingStyleId,
|
|
36
|
+
isSmallCaps: current.isSmallCaps ?? parent.isSmallCaps,
|
|
37
|
+
italic: current.italic ?? parent.italic,
|
|
38
|
+
strikethrough: current.strikethrough ?? parent.strikethrough,
|
|
39
|
+
underline: current.underline ?? parent.underline,
|
|
40
|
+
verticalAlignment: current.verticalAlignment ?? parent.verticalAlignment
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
static getFormatsAtRange(formats, startIndex, endIndex) {
|
|
44
|
+
const firstIndex = formats.findIndex(x => x.endIndex >= startIndex);
|
|
45
|
+
let lastIndex = firstIndex;
|
|
46
|
+
while (lastIndex < formats.length - 1 && formats[lastIndex]?.endIndex < endIndex) {
|
|
47
|
+
lastIndex++;
|
|
48
|
+
}
|
|
49
|
+
return formats.slice(firstIndex, lastIndex + 1);
|
|
50
|
+
}
|
|
51
|
+
static getFormatAtIndex(formats, index) {
|
|
52
|
+
return formats.find(x => x.endIndex >= index);
|
|
53
|
+
}
|
|
54
|
+
static mergeFormats(formats, startIndex, endIndex) {
|
|
55
|
+
const firstIndex = formats.findIndex(x => x.endIndex >= startIndex);
|
|
56
|
+
let lastIndex = firstIndex;
|
|
57
|
+
while (lastIndex < formats.length - 1 && formats[lastIndex].endIndex < endIndex) {
|
|
58
|
+
lastIndex++;
|
|
59
|
+
}
|
|
60
|
+
for (let i = lastIndex; i > firstIndex; i--) {
|
|
61
|
+
if (this.areSameTextStyles(formats[i].textStyle, formats[i - 1].textStyle)) {
|
|
62
|
+
formats[i - 1].endIndex = formats[i].endIndex;
|
|
63
|
+
formats.splice(i, 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static getPrevFormatAtIndex(formats, index) {
|
|
68
|
+
const firstIndex = formats.findIndex(x => x.endIndex >= index);
|
|
69
|
+
return firstIndex > 0 ? formats[firstIndex - 1] : null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXN0eWxlLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFxQixFQUFFLE1BQXNCO1FBQ2xFLE9BQU8sQ0FDSCxLQUFLLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxjQUFjO1lBQzlDLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUk7WUFDMUIsS0FBSyxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUztZQUNwQyxLQUFLLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxVQUFVO1lBQ3RDLEtBQUssQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVE7WUFDbEMsS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsV0FBVztZQUN4QyxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNO1lBQzlCLEtBQUssQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLGFBQWE7WUFDNUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUztZQUNwQyxLQUFLLENBQUMsaUJBQWlCLEtBQUssTUFBTSxDQUFDLGlCQUFpQixDQUN2RCxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBc0IsRUFBRSxLQUFxQjtRQUNoRSxNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUN0RSxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJ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QUksQ0FBQztJQUMzRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1hdFN0eWxlSGVscGVyIHtcbiAgICBzdGF0aWMgYXJlU2FtZVRleHRTdHlsZXMoZmlyc3Q6IFRleHRTdHlsZU1vZGVsLCBzZWNvbmQ6IFRleHRTdHlsZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmaXJzdC5oaWdobGlnaHRDb2xvciA9PT0gc2Vjb25kLmhpZ2hsaWdodENvbG9yICYmXG4gICAgICAgICAgICBmaXJzdC5ib2xkID09PSBzZWNvbmQuYm9sZCAmJlxuICAgICAgICAgICAgZmlyc3QuZm9udENvbG9yID09PSBzZWNvbmQuZm9udENvbG9yICYmXG4gICAgICAgICAgICBmaXJzdC5mb250RmFtaWx5ID09PSBzZWNvbmQuZm9udEZhbWlseSAmJlxuICAgICAgICAgICAgZmlyc3QuZm9udFNpemUgPT09IHNlY29uZC5mb250U2l6ZSAmJlxuICAgICAgICAgICAgZmlyc3QuaXNTbWFsbENhcHMgPT09IHNlY29uZC5pc1NtYWxsQ2FwcyAmJlxuICAgICAgICAgICAgZmlyc3QuaXRhbGljID09PSBzZWNvbmQuaXRhbGljICYmXG4gICAgICAgICAgICBmaXJzdC5zdHJpa2V0aHJvdWdoID09PSBzZWNvbmQuc3RyaWtldGhyb3VnaCAmJlxuICAgICAgICAgICAgZmlyc3QudW5kZXJsaW5lID09PSBzZWNvbmQudW5kZXJsaW5lICYmXG4gICAgICAgICAgICBmaXJzdC52ZXJ0aWNhbEFsaWdubWVudCA9PT0gc2Vjb25kLnZlcnRpY2FsQWxpZ25tZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGFwcGx5VGV4dFN0eWxlcyh0YXJnZXQ6IFRleHRTdHlsZU1vZGVsLCB2YWx1ZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGFyZ2V0LmhpZ2hsaWdodENvbG9yID0gdmFsdWUuaGlnaGxpZ2h0Q29sb3IgPz8gdGFyZ2V0LmhpZ2hsaWdodENvbG9yO1xuICAgICAgICB0YXJnZXQuYm9sZCA9IHZhbHVlLmJvbGQgPz8gdGFyZ2V0LmJvbGQ7XG4gICAgICAgIHRhcmdldC5mb250Q29sb3IgPSB2YWx1ZS5mb250Q29sb3IgPz8gdGFyZ2V0LmZvbnRDb2xvcjtcbiAgICAgICAgdGFyZ2V0LmZvbnRGYW1pbHkgPSB2YWx1ZS5mb250RmFtaWx5ID8/IHRhcmdldC5mb250RmFtaWx5O1xuICAgICAgICB0YXJnZXQuZm9udFNpemUgPSB2YWx1ZS5mb250U2l6ZSA/PyB0YXJnZXQuZm9udFNpemU7XG4gICAgICAgIHRhcmdldC5oZWFkaW5nU3R5bGVJZCA9IHZhbHVlLmhlYWRpbmdTdHlsZUlkID8/IHRhcmdldC5oZWFkaW5nU3R5bGVJZDtcbiAgICAgICAgdGFyZ2V0LmlzU21hbGxDYXBzID0gdmFsdWUuaXNTbWFsbENhcHMgPz8gdGFyZ2V0LmlzU21hbGxDYXBzO1xuICAgICAgICB0YXJnZXQuaXRhbGljID0gdmFsdWUuaXRhbGljID8/IHRhcmdldC5pdGFsaWM7XG4gICAgICAgIHRhcmdldC5zdHJpa2V0aHJvdWdoID0gdmFsdWUuc3RyaWtldGhyb3VnaCA/PyB0YXJnZXQuc3RyaWtldGhyb3VnaDtcbiAgICAgICAgdGFyZ2V0LnVuZGVybGluZSA9IHZhbHVlLnVuZGVybGluZSA/PyB0YXJnZXQudW5kZXJsaW5lO1xuICAgICAgICB0YXJnZXQudmVydGljYWxBbGlnbm1lbnQgPSB2YWx1ZS52ZXJ0aWNhbEFsaWdubWVudCA/PyB0YXJnZXQudmVydGljYWxBbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbWJpbmVUZXh0U3R5bGVzKGN1cnJlbnQ6IFRleHRTdHlsZU1vZGVsLCBwYXJlbnQ6IFRleHRTdHlsZU1vZGVsKTogVGV4dFN0eWxlTW9kZWwge1xuICAgICAgICByZXR1cm4gbmV3IFRleHRTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgIGhpZ2hsaWdodENvbG9yOiBjdXJyZW50LmhpZ2hsaWdodENvbG9yID8/IHBhcmVudC5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgIGJvbGQ6IGN1cnJlbnQuYm9sZCA/PyBwYXJlbnQuYm9sZCxcbiAgICAgICAgICAgIGZvbnRDb2xvcjogY3VycmVudC5mb250Q29sb3IgPz8gcGFyZW50LmZvbnRDb2xvcixcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IGN1cnJlbnQuZm9udEZhbWlseSA/PyBwYXJlbnQuZm9udEZhbWlseSxcbiAgICAgICAgICAgIGZvbnRTaXplOiBjdXJyZW50LmZvbnRTaXplID8/IHBhcmVudC5mb250U2l6ZSxcbiAgICAgICAgICAgIGhlYWRpbmdTdHlsZUlkOiBjdXJyZW50LmhlYWRpbmdTdHlsZUlkID8/IHBhcmVudC5oZWFkaW5nU3R5bGVJZCxcbiAgICAgICAgICAgIGlzU21hbGxDYXBzOiBjdXJyZW50LmlzU21hbGxDYXBzID8/IHBhcmVudC5pc1NtYWxsQ2FwcyxcbiAgICAgICAgICAgIGl0YWxpYzogY3VycmVudC5pdGFsaWMgPz8gcGFyZW50Lml0YWxpYyxcbiAgICAgICAgICAgIHN0cmlrZXRocm91Z2g6IGN1cnJlbnQuc3RyaWtldGhyb3VnaCA/PyBwYXJlbnQuc3RyaWtldGhyb3VnaCxcbiAgICAgICAgICAgIHVuZGVybGluZTogY3VycmVudC51bmRlcmxpbmUgPz8gcGFyZW50LnVuZGVybGluZSxcbiAgICAgICAgICAgIHZlcnRpY2FsQWxpZ25tZW50OiBjdXJyZW50LnZlcnRpY2FsQWxpZ25tZW50ID8/IHBhcmVudC52ZXJ0aWNhbEFsaWdubWVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Rm9ybWF0c0F0UmFuZ2UoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKTogRm9ybWF0TW9kZWxbXSB7XG4gICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSBmb3JtYXRzLmZpbmRJbmRleCh4ID0+IHguZW5kSW5kZXggPj0gc3RhcnRJbmRleCk7XG4gICAgICAgIGxldCBsYXN0SW5kZXggPSBmaXJzdEluZGV4O1xuICAgICAgICB3aGlsZSAobGFzdEluZGV4IDwgZm9ybWF0cy5sZW5ndGggLSAxICYmIGZvcm1hdHNbbGFzdEluZGV4XT8uZW5kSW5kZXggPCBlbmRJbmRleCkge1xuICAgICAgICAgICAgbGFzdEluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0cy5zbGljZShmaXJzdEluZGV4LCBsYXN0SW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Rm9ybWF0QXRJbmRleChmb3JtYXRzOiBGb3JtYXRNb2RlbFtdLCBpbmRleDogbnVtYmVyKTogRm9ybWF0TW9kZWwge1xuICAgICAgICByZXR1cm4gZm9ybWF0cy5maW5kKHggPT4geC5lbmRJbmRleCA+PSBpbmRleCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG1lcmdlRm9ybWF0cyhmb3JtYXRzOiBGb3JtYXRNb2RlbFtdLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlyc3RJbmRleCA9IGZvcm1hdHMuZmluZEluZGV4KHggPT4geC5lbmRJbmRleCA+PSBzdGFydEluZGV4KTtcbiAgICAgICAgbGV0IGxhc3RJbmRleCA9IGZpcnN0SW5kZXg7XG4gICAgICAgIHdoaWxlIChsYXN0SW5kZXggPCBmb3JtYXRzLmxlbmd0aCAtIDEgJiYgZm9ybWF0c1tsYXN0SW5kZXhdLmVuZEluZGV4IDwgZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIGxhc3RJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSBsYXN0SW5kZXg7IGkgPiBmaXJzdEluZGV4OyBpLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFyZVNhbWVUZXh0U3R5bGVzKGZvcm1hdHNbaV0udGV4dFN0eWxlLCBmb3JtYXRzW2kgLSAxXS50ZXh0U3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0c1tpIC0gMV0uZW5kSW5kZXggPSBmb3JtYXRzW2ldLmVuZEluZGV4O1xuICAgICAgICAgICAgICAgIGZvcm1hdHMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGdldFByZXZGb3JtYXRBdEluZGV4KGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sIGluZGV4OiBudW1iZXIpOiBGb3JtYXRNb2RlbCB8IG51bGwge1xuICAgICAgICBjb25zdCBmaXJzdEluZGV4ID0gZm9ybWF0cy5maW5kSW5kZXgoeCA9PiB4LmVuZEluZGV4ID49IGluZGV4KTtcbiAgICAgICAgcmV0dXJuIGZpcnN0SW5kZXggPiAwID8gZm9ybWF0c1tmaXJzdEluZGV4IC0gMV0gOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Point } from '../point';
|
|
2
|
+
export class LineWidthHelper {
|
|
3
|
+
static getParagraphLineDisplayTokens(session, paragraphIndex, lineIndex) {
|
|
4
|
+
const docPos = session.document.positionToIndex(session.document.lines, new Point(paragraphIndex, 0), 0);
|
|
5
|
+
const rowWrap = session.wrapData[paragraphIndex] || [];
|
|
6
|
+
const startWrapIndex = lineIndex > 0 ? rowWrap[lineIndex - 1] : 0;
|
|
7
|
+
const endIndex = rowWrap[lineIndex];
|
|
8
|
+
const docLine = session.document.getLine(session.document.lines, paragraphIndex);
|
|
9
|
+
const offset = startWrapIndex ? docPos + startWrapIndex : docPos;
|
|
10
|
+
return session.getDisplayTokens(session.model, docLine.substring(startWrapIndex, endIndex || undefined), offset, session.customComponents);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS13aWR0aC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jb3JlL2hlbHBlcnMvbGluZS13aWR0aC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxNQUFNLE9BQU8sZUFBZTtJQUN4QixNQUFNLENBQUMsNkJBQTZCLENBQUMsT0FBb0IsRUFBRSxjQUFzQixFQUFFLFNBQWlCO1FBQ2hHLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxNQUFNLGNBQWMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRWpFLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUMzQixPQUFPLENBQUMsS0FBSyxFQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLFFBQVEsSUFBSSxTQUFTLENBQUMsRUFDeEQsTUFBTSxFQUNOLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDM0IsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpc3BsYXlUb2tlbiB9IGZyb20gJy4uL21vZGVscy9kaXNwbGF5LXRva2VuLm1vZGVsJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vcG9pbnQnO1xuXG5leHBvcnQgY2xhc3MgTGluZVdpZHRoSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0UGFyYWdyYXBoTGluZURpc3BsYXlUb2tlbnMoc2Vzc2lvbjogRWRpdFNlc3Npb24sIHBhcmFncmFwaEluZGV4OiBudW1iZXIsIGxpbmVJbmRleDogbnVtYmVyKTogRGlzcGxheVRva2VuW10ge1xuICAgICAgICBjb25zdCBkb2NQb3MgPSBzZXNzaW9uLmRvY3VtZW50LnBvc2l0aW9uVG9JbmRleChzZXNzaW9uLmRvY3VtZW50LmxpbmVzLCBuZXcgUG9pbnQocGFyYWdyYXBoSW5kZXgsIDApLCAwKTtcbiAgICAgICAgY29uc3Qgcm93V3JhcCA9IHNlc3Npb24ud3JhcERhdGFbcGFyYWdyYXBoSW5kZXhdIHx8IFtdO1xuICAgICAgICBjb25zdCBzdGFydFdyYXBJbmRleCA9IGxpbmVJbmRleCA+IDAgPyByb3dXcmFwW2xpbmVJbmRleCAtIDFdIDogMDtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSByb3dXcmFwW2xpbmVJbmRleF07XG4gICAgICAgIGNvbnN0IGRvY0xpbmUgPSBzZXNzaW9uLmRvY3VtZW50LmdldExpbmUoc2Vzc2lvbi5kb2N1bWVudC5saW5lcywgcGFyYWdyYXBoSW5kZXgpO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBzdGFydFdyYXBJbmRleCA/IGRvY1BvcyArIHN0YXJ0V3JhcEluZGV4IDogZG9jUG9zO1xuXG4gICAgICAgIHJldHVybiBzZXNzaW9uLmdldERpc3BsYXlUb2tlbnMoXG4gICAgICAgICAgICBzZXNzaW9uLm1vZGVsLFxuICAgICAgICAgICAgZG9jTGluZS5zdWJzdHJpbmcoc3RhcnRXcmFwSW5kZXgsIGVuZEluZGV4IHx8IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgICBzZXNzaW9uLmN1c3RvbUNvbXBvbmVudHNcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|