@talrace/ngx-noder 19.0.33 → 19.0.35
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/assets/i18n/noder.en.json +2 -1
- package/assets/i18n/noder.es.json +2 -1
- package/assets/i18n/noder.ru.json +2 -1
- package/fesm2022/talrace-ngx-noder.mjs +1032 -269
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/editor/components/comment-popup/comment-popup.component.d.ts +11 -0
- package/lib/editor/content/display-data/line-info.model.d.ts +1 -0
- package/lib/editor/content/display-data/text-line-info.d.ts +1 -0
- package/lib/editor/display/layers/comment-highlight.layer.d.ts +15 -0
- package/lib/editor/display/layers/comment.layer.d.ts +13 -0
- package/lib/editor/display/layers/highlight.layer.d.ts +3 -3
- package/lib/editor/display/render-changes.interface.d.ts +1 -0
- package/lib/editor/display/render-changes.model.d.ts +1 -0
- package/lib/editor/display/renderer.d.ts +7 -1
- package/lib/editor/display/virtual.renderer.d.ts +7 -1
- package/lib/editor/editor.module.d.ts +23 -18
- package/lib/editor/execution/edit.session.d.ts +8 -1
- package/lib/editor/execution/editor.d.ts +22 -1
- package/lib/editor/execution/regulator.service.d.ts +8 -1
- package/lib/editor/gadgets/comment/base-comment.component.d.ts +19 -0
- package/lib/editor/gadgets/comment/comment-render.service.d.ts +27 -0
- package/lib/editor/gadgets/comment/models/remove-comment-dom.model.d.ts +5 -0
- package/lib/editor/gadgets/comment/models/remove-comments-dom.model.d.ts +4 -0
- package/lib/editor/gadgets/comment/models/render-comment.model.d.ts +10 -0
- package/lib/editor/gadgets/comment/models/render-comments.model.d.ts +6 -0
- package/lib/editor/gadgets/history/operation-history.d.ts +3 -0
- package/lib/editor/gadgets/history/operation.type.d.ts +3 -1
- package/lib/editor/gadgets/scrollbar.d.ts +1 -1
- package/lib/editor/interaction/editor.service.d.ts +32 -2
- package/lib/editor/interaction/mouse.handler.d.ts +2 -1
- package/lib/editor/operations/enums/command-type.enum.d.ts +3 -1
- package/lib/editor/operations/helpers/range-element-operations.helper.d.ts +9 -0
- package/lib/editor/operations/operations-helper.helper.d.ts +5 -2
- package/lib/editor/operations/save-commands.helper.d.ts +4 -0
- package/lib/editor/positioning/content.helper.d.ts +2 -0
- package/lib/editor/positioning/range.interface.d.ts +4 -0
- package/lib/models/generated/attach-comment.model.d.ts +5 -0
- package/lib/models/generated/cell.model.d.ts +2 -0
- package/lib/models/generated/command.model.d.ts +4 -0
- package/lib/models/generated/comment.model.d.ts +6 -0
- package/lib/models/generated/docx.model.d.ts +2 -0
- package/lib/models/generated/edge.model.d.ts +2 -0
- package/lib/models/generated/remove-comment.model.d.ts +4 -0
- package/lib/models/generated/restore.model.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/_ngx-noder.theme.scss +3 -1
- package/src/assets/fonts/nc-iconfont.eot +0 -0
- package/src/assets/fonts/nc-iconfont.scss +12 -0
- package/src/assets/fonts/nc-iconfont.svg +5 -1
- package/src/assets/fonts/nc-iconfont.ttf +0 -0
- package/src/assets/fonts/nc-iconfont.woff +0 -0
- package/src/lib/apart-components/editor-toolbar/components/toolbar-actions/_toolbar-actions.theme.scss +12 -0
- package/src/lib/editor/components/comment-popup/_theme.scss +9 -0
- package/src/scss/base-editor.scss +40 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EditorService } from '../../../editor/interaction/editor.service';
|
|
2
|
+
import { OverlayService } from '../shared/services/overlay.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CommentPopupComponent {
|
|
5
|
+
private editorService;
|
|
6
|
+
private overlayService;
|
|
7
|
+
constructor(editorService: EditorService, overlayService: OverlayService);
|
|
8
|
+
addComment(): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CommentPopupComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CommentPopupComponent, "app-nod-comment-popup", never, {}, {}, never, never, false, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CommentRenderService } from '../../gadgets/comment/comment-render.service';
|
|
2
|
+
import { EditSession } from '../../execution/edit.session';
|
|
3
|
+
import { HighlightLayer } from './highlight.layer';
|
|
4
|
+
import { ILayerConfig } from './layer.config';
|
|
5
|
+
export declare class CommentHighlightLayer extends HighlightLayer {
|
|
6
|
+
private readonly commentService;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
private readonly className;
|
|
9
|
+
private readonly selectedCommentClassName;
|
|
10
|
+
private selectedCommentId;
|
|
11
|
+
constructor(parentEl: HTMLElement, cssClass: string, session: EditSession, commentService: CommentRenderService);
|
|
12
|
+
update(config: ILayerConfig): void;
|
|
13
|
+
setSelectedComment(id: number | null): void;
|
|
14
|
+
private requestCommentRender;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CommentRenderService } from '../../gadgets/comment/comment-render.service';
|
|
2
|
+
export declare class CommentLayer {
|
|
3
|
+
private readonly commentPadding;
|
|
4
|
+
private readonly rendersBySession;
|
|
5
|
+
private element;
|
|
6
|
+
private commentSubscription;
|
|
7
|
+
constructor(parentEl: HTMLElement, commentService: CommentRenderService);
|
|
8
|
+
destroy(): void;
|
|
9
|
+
scrollComments(offsetY: number): void;
|
|
10
|
+
renderComments(): void;
|
|
11
|
+
private applyChanges;
|
|
12
|
+
private drawCommentComponent;
|
|
13
|
+
}
|
|
@@ -8,10 +8,10 @@ export declare abstract class HighlightLayer {
|
|
|
8
8
|
selectionIndex: number;
|
|
9
9
|
config: ILayerConfig;
|
|
10
10
|
constructor(parentEl: HTMLElement, cssClass: string, session: EditSession);
|
|
11
|
-
renderHighlight(cssPosition: string, cssClass: string):
|
|
11
|
+
renderHighlight(cssPosition: string, cssClass: string): HTMLElement;
|
|
12
12
|
getTop(row: number): number;
|
|
13
|
-
drawMultiLineMarker(range: Range, cssClass: string):
|
|
14
|
-
drawSingleLineMarker(range: Range, cssClass: string):
|
|
13
|
+
drawMultiLineMarker(range: Range, cssClass: string): HTMLElement[];
|
|
14
|
+
drawSingleLineMarker(range: Range, cssClass: string): HTMLElement;
|
|
15
15
|
drawCustomElementHighlight(elementInfo: CustomElementInfo, cssClass: string, screenParentRange: Range): void;
|
|
16
16
|
private getRangeInfo;
|
|
17
17
|
private getMarkerStyle;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Subject } from 'rxjs';
|
|
2
|
+
import { CommentHighlightLayer } from './layers/comment-highlight.layer';
|
|
3
|
+
import { CommentRenderService } from '../gadgets/comment/comment-render.service';
|
|
2
4
|
import { CursorLayer } from './layers/cursor.layer';
|
|
3
5
|
import { CursorParagraph } from '../positioning/cursor-paragraph';
|
|
4
6
|
import { CustomElementInfo } from './custom-element-info.model';
|
|
@@ -24,6 +26,7 @@ export declare class Renderer extends EventEmitting {
|
|
|
24
26
|
dragAndDropSelectionLayer: SelectionLayer;
|
|
25
27
|
searchHighlightLayer: SearchHighlightLayer;
|
|
26
28
|
grammarHighlightLayer: GrammarHighlightLayer;
|
|
29
|
+
commentsLayer: CommentHighlightLayer;
|
|
27
30
|
loop: RenderLoop;
|
|
28
31
|
textarea: HTMLElement;
|
|
29
32
|
layerConfig: ILayerConfig;
|
|
@@ -37,7 +40,7 @@ export declare class Renderer extends EventEmitting {
|
|
|
37
40
|
height: number;
|
|
38
41
|
width: number;
|
|
39
42
|
};
|
|
40
|
-
constructor(parentContainer: HTMLElement, session: EditSession);
|
|
43
|
+
constructor(parentContainer: HTMLElement, commentsService: CommentRenderService, session: EditSession);
|
|
41
44
|
renderChanges(changes: RenderChangesModel, force?: boolean): void;
|
|
42
45
|
/**
|
|
43
46
|
* Triggers a partial update of the text, from the range given by the two parameters.
|
|
@@ -78,6 +81,9 @@ export declare class Renderer extends EventEmitting {
|
|
|
78
81
|
renderSelection(): void;
|
|
79
82
|
renderSearchHighlights(): void;
|
|
80
83
|
renderGrammarHighlights(): void;
|
|
84
|
+
renderComments(): void;
|
|
85
|
+
setSelectedComment(comment: number | null): void;
|
|
86
|
+
setCommentsVisibility(value: boolean): void;
|
|
81
87
|
renderDragAndDropSelection(): void;
|
|
82
88
|
private computeLayerConfig;
|
|
83
89
|
private pagesCountChangedHandler;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { CommentLayer } from './layers/comment.layer';
|
|
2
|
+
import { CommentRenderService } from '../gadgets/comment/comment-render.service';
|
|
1
3
|
import { CursorLayer } from './layers/cursor.layer';
|
|
2
4
|
import { CursorParagraph } from '../positioning/cursor-paragraph';
|
|
3
5
|
import { CustomElementInfo } from './custom-element-info.model';
|
|
@@ -24,6 +26,7 @@ export declare class VirtualRenderer {
|
|
|
24
26
|
scroller: HTMLElement;
|
|
25
27
|
pagesLayer: PagesLayer;
|
|
26
28
|
edgesLayer: EdgesLayer;
|
|
29
|
+
commentLayer: CommentLayer;
|
|
27
30
|
canScroll: boolean;
|
|
28
31
|
renderer: Renderer;
|
|
29
32
|
changes: RenderChangesModel;
|
|
@@ -38,7 +41,7 @@ export declare class VirtualRenderer {
|
|
|
38
41
|
private paragraphsScrolledIntoViewSubject;
|
|
39
42
|
private paragraphsScrolledIntoViewSubscription;
|
|
40
43
|
get ParagraphsAppeared$(): import("rxjs").Observable<import("../content/display-data/models/paragraph-info.model").ParagraphInfoModel[]>;
|
|
41
|
-
constructor(parentContainer: HTMLElement, mainSession: EditSession, scrollBar: ScrollBar);
|
|
44
|
+
constructor(parentContainer: HTMLElement, mainSession: EditSession, commentService: CommentRenderService, scrollBar: ScrollBar);
|
|
42
45
|
renderChanges(changes: RenderChangesModel, force?: boolean): void;
|
|
43
46
|
/**
|
|
44
47
|
* Triggers a resize of the editor
|
|
@@ -49,6 +52,8 @@ export declare class VirtualRenderer {
|
|
|
49
52
|
**/
|
|
50
53
|
updateLines(firstRow: number, lastRow: number): void;
|
|
51
54
|
updateCachedSize(force: boolean, width: number, height: number): RenderChangesModel;
|
|
55
|
+
setSelectedComment(commentId: number | null): void;
|
|
56
|
+
setCommentsVisibility(value: boolean): void;
|
|
52
57
|
moveTextAreaToCursor(): void;
|
|
53
58
|
updateSelection(range: Range): void;
|
|
54
59
|
updateSearchHighlights(ranges: Range[]): void;
|
|
@@ -89,5 +94,6 @@ export declare class VirtualRenderer {
|
|
|
89
94
|
private renderSearchHighlights;
|
|
90
95
|
private renderGrammarHighlights;
|
|
91
96
|
private renderDragAndDropSelection;
|
|
97
|
+
private renderComments;
|
|
92
98
|
private paragraphsScrolledIntoView;
|
|
93
99
|
}
|
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import { ComponentType } from '@angular/cdk/portal';
|
|
2
2
|
import { ModuleWithProviders, Type } from '@angular/core';
|
|
3
|
+
import { BaseCommentComponent } from './gadgets/comment/base-comment.component';
|
|
3
4
|
import { ImageApiService } from './components/image/image-api.service';
|
|
4
5
|
import { ExternalElementInterface } from '../editor/components/external-element/external-element.service';
|
|
5
6
|
import { ExternalSidenavModel } from './components/external-element/models/external-sidenav.model';
|
|
6
7
|
import { InsertOverlayComponentInterface } from './gadgets/insert-overlays/insert-overlay-component.interface';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "./components/editor.component";
|
|
9
|
-
import * as i2 from "./components/
|
|
10
|
-
import * as i3 from "./components/
|
|
11
|
-
import * as i4 from "./components/
|
|
12
|
-
import * as i5 from "./components/
|
|
13
|
-
import * as i6 from "./components/table/components/table.component";
|
|
14
|
-
import * as i7 from "./components/
|
|
15
|
-
import * as i8 from "./components/
|
|
16
|
-
import * as i9 from "
|
|
17
|
-
import * as i10 from "
|
|
18
|
-
import * as i11 from "../apart-components/editor-
|
|
19
|
-
import * as i12 from "
|
|
20
|
-
import * as i13 from "@angular/
|
|
21
|
-
import * as i14 from "@angular/material/
|
|
22
|
-
import * as i15 from "@angular/material/
|
|
23
|
-
import * as i16 from "@angular/material/
|
|
24
|
-
import * as i17 from "@angular/
|
|
25
|
-
import * as i18 from "@
|
|
10
|
+
import * as i2 from "./components/comment-popup/comment-popup.component";
|
|
11
|
+
import * as i3 from "./components/edges/edge.component";
|
|
12
|
+
import * as i4 from "./components/image/components/image.component";
|
|
13
|
+
import * as i5 from "./components/tab/tab.component";
|
|
14
|
+
import * as i6 from "./components/table/components/table-cell.component";
|
|
15
|
+
import * as i7 from "./components/table/components/table.component";
|
|
16
|
+
import * as i8 from "./components/image/resizer/resizer.component";
|
|
17
|
+
import * as i9 from "./components/table/overlay-menu/overlay-menu.component";
|
|
18
|
+
import * as i10 from "@angular/common";
|
|
19
|
+
import * as i11 from "../apart-components/editor-ruler/editor-ruler.component";
|
|
20
|
+
import * as i12 from "../apart-components/editor-search-bar/editor-search-bar.component";
|
|
21
|
+
import * as i13 from "@angular/cdk/text-field";
|
|
22
|
+
import * as i14 from "@angular/material/button";
|
|
23
|
+
import * as i15 from "@angular/material/dialog";
|
|
24
|
+
import * as i16 from "@angular/material/icon";
|
|
25
|
+
import * as i17 from "@angular/material/menu";
|
|
26
|
+
import * as i18 from "@angular/material/sidenav";
|
|
27
|
+
import * as i19 from "@angular/material/tooltip";
|
|
28
|
+
import * as i20 from "@angular/forms";
|
|
29
|
+
import * as i21 from "@ngx-translate/core";
|
|
26
30
|
export interface INoderOptions {
|
|
27
31
|
sidenav?: Partial<ExternalSidenavModel>;
|
|
28
32
|
imageApiService?: Type<ImageApiService>;
|
|
@@ -31,10 +35,11 @@ export interface INoderOptions {
|
|
|
31
35
|
component: ComponentType<InsertOverlayComponentInterface>;
|
|
32
36
|
}[];
|
|
33
37
|
elementService: Type<ExternalElementInterface>;
|
|
38
|
+
commentComponent?: Type<BaseCommentComponent>;
|
|
34
39
|
}
|
|
35
40
|
export declare class EditorModule {
|
|
36
41
|
static forRoot(options?: INoderOptions): ModuleWithProviders<EditorModule>;
|
|
37
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditorModule, never>;
|
|
38
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EditorModule, [typeof i1.EditorComponent, typeof i2.
|
|
43
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EditorModule, [typeof i1.EditorComponent, typeof i2.CommentPopupComponent, typeof i3.NoderEdgeComponent, typeof i4.NoderImageComponent, typeof i5.NoderTabComponent, typeof i6.NoderTableCellComponent, typeof i7.NoderTableComponent, typeof i8.ResizerComponent, typeof i9.TableOverlayMenuComponent], [typeof i10.CommonModule, typeof i11.EditorRulerComponent, typeof i12.EditorSearchBarComponent, typeof i13.TextFieldModule, typeof i14.MatButtonModule, typeof i15.MatDialogModule, typeof i16.MatIconModule, typeof i17.MatMenuModule, typeof i18.MatSidenavModule, typeof i19.MatTooltipModule, typeof i20.ReactiveFormsModule, typeof i21.TranslateModule], [typeof i1.EditorComponent]>;
|
|
39
44
|
static ɵinj: i0.ɵɵInjectorDeclaration<EditorModule>;
|
|
40
45
|
}
|
|
@@ -3,6 +3,8 @@ import { ApplyImageStyleModel } from '../../models/generated/apply-image-style.m
|
|
|
3
3
|
import { ApplyTableCellsStylesModel } from '../../models/generated/apply-table-cells-styles.model';
|
|
4
4
|
import { BaseNoderComponent } from '../components/shared/abstract/base.component';
|
|
5
5
|
import { BreakTypes } from '../gadgets/page-break/break-types.enum';
|
|
6
|
+
import { CommentModel } from '../../models/generated/comment.model';
|
|
7
|
+
import { CommentRenderService } from '../gadgets/comment/comment-render.service';
|
|
6
8
|
import { ContentType } from '../content/contents.interface';
|
|
7
9
|
import { CursorParagraph } from '../positioning/cursor-paragraph';
|
|
8
10
|
import { CustomContent } from '../components/shared/custom-content';
|
|
@@ -44,6 +46,7 @@ export declare class EditSession {
|
|
|
44
46
|
displayData: DisplayData;
|
|
45
47
|
sessionId: number;
|
|
46
48
|
customContentService: CustomContentService;
|
|
49
|
+
commentRenderService: CommentRenderService;
|
|
47
50
|
model: ContentType;
|
|
48
51
|
selection: Selection;
|
|
49
52
|
generalProperties: GeneralPropertiesModel;
|
|
@@ -52,12 +55,13 @@ export declare class EditSession {
|
|
|
52
55
|
type: 'cell' | 'edge' | 'main' | 'cellWithinEdge';
|
|
53
56
|
private scrollBar?;
|
|
54
57
|
edgeType?: EdgeType;
|
|
58
|
+
pageType?: PageType;
|
|
55
59
|
tokenRe: RegExp;
|
|
56
60
|
nonTokenRe: RegExp;
|
|
57
61
|
get scrollTop(): number;
|
|
58
62
|
get scrollBarHeight(): number;
|
|
59
63
|
get paragraphInfoChanges$(): import("rxjs").Observable<import("../content/display-data/models/paragraph-info-added.model").ParagraphInfoAdded | import("../content/display-data/models/paragraph-info-content-changed.model").ParagraphInfoContentChanged | import("../content/display-data/models/paragraph-info-content-inserted.model").ParagraphInfoContentInserted | import("../content/display-data/models/paragraphs-infos-removed.model").ParagraphInfosRemoved>;
|
|
60
|
-
constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, model: ContentType, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main' | 'cellWithinEdge', scrollBar?: ScrollBar, edgeType?: EdgeType);
|
|
64
|
+
constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, commentRenderService: CommentRenderService, model: ContentType, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main' | 'cellWithinEdge', scrollBar?: ScrollBar, edgeType?: EdgeType, pageType?: PageType);
|
|
61
65
|
destroy(): void;
|
|
62
66
|
getRowLength(row: number): number;
|
|
63
67
|
getRowCacheIndex(cacheArray: number[], value: number): number;
|
|
@@ -102,6 +106,9 @@ export declare class EditSession {
|
|
|
102
106
|
removeWithParagraph(model: RemoveWithParagraphModel): void;
|
|
103
107
|
restoreWithParagraph(model: RestoreWithParagraphModel): void;
|
|
104
108
|
insertText(position: CursorParagraph, text: string, cursorStyle?: TextStyleModel): CursorParagraph;
|
|
109
|
+
addComment(comment: CommentModel): void;
|
|
110
|
+
removeComment(commentId: number): CommentModel;
|
|
111
|
+
getCommentAtCursor(): CommentModel | null;
|
|
105
112
|
insertElement(position: CursorParagraph, element: ElementDataModel): CursorParagraph;
|
|
106
113
|
insertBreak(position: CursorParagraph, breakType: BreakTypes): CursorParagraph;
|
|
107
114
|
insertTab(position: CursorParagraph): CursorParagraph;
|
|
@@ -5,6 +5,7 @@ import { ApplyTableCellsStylesModel } from '../../models/generated/apply-table-c
|
|
|
5
5
|
import { BaseNoderComponent } from '../components/shared/abstract/base.component';
|
|
6
6
|
import { BreakTypes } from '../gadgets/page-break/break-types.enum';
|
|
7
7
|
import { CommandsService } from '../operations/commands.service';
|
|
8
|
+
import { CommentModel } from '../../models/generated/comment.model';
|
|
8
9
|
import { CreateEdgesModel } from '../../models/generated/create-edges.model';
|
|
9
10
|
import { DocumentHandler } from '../interaction/document.handler';
|
|
10
11
|
import { DocxModel } from '../../models/generated/docx.model';
|
|
@@ -85,12 +86,18 @@ export declare class Editor {
|
|
|
85
86
|
documentHandler: DocumentHandler;
|
|
86
87
|
dragAndDrop: DragAndDrop;
|
|
87
88
|
subscriptions: Subscription[];
|
|
89
|
+
commentCreateRequests: {
|
|
90
|
+
sessionId: number;
|
|
91
|
+
reqId: number;
|
|
92
|
+
comment: CommentModel;
|
|
93
|
+
}[];
|
|
88
94
|
private readonly search;
|
|
89
95
|
private readonly emojiRegex;
|
|
90
96
|
private replaceTerm;
|
|
91
97
|
private textInput;
|
|
92
98
|
private clipboardData;
|
|
93
99
|
private isRerenderSubscriptionOpen;
|
|
100
|
+
private commentsVisible;
|
|
94
101
|
constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, overlayService: OverlayService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], insertOverlays: InsertOverlays, customPageWidth?: number);
|
|
95
102
|
destroy(): void;
|
|
96
103
|
selectPageDown(): void;
|
|
@@ -138,6 +145,8 @@ export declare class Editor {
|
|
|
138
145
|
undo(): void;
|
|
139
146
|
redo(): void;
|
|
140
147
|
applyOperation(operation: Operation): void;
|
|
148
|
+
saveAttachCommentToHistory(commentModel: CommentModel): void;
|
|
149
|
+
saveRemoveCommentToHistory(comment: CommentModel, target: TargetModel): void;
|
|
141
150
|
saveRemoveToHistory(range: Range): void;
|
|
142
151
|
saveRemoveWithParagraphToHistory(model: RemoveWithParagraphModel, reversed: RestoreWithParagraphModel): void;
|
|
143
152
|
saveInsertTextToHistory(paragraph: number, indexInParagraph: number, text: string): void;
|
|
@@ -165,12 +174,16 @@ export declare class Editor {
|
|
|
165
174
|
replaceByCustomElement(textKey: string, model: ElementDataModel): void;
|
|
166
175
|
removeSelected(): void;
|
|
167
176
|
removeWithParagraph(): void;
|
|
168
|
-
|
|
177
|
+
removeExternalData(): void;
|
|
169
178
|
removeOrLowerNestingNumbering(paragraph: ParagraphInfoModel): void;
|
|
170
179
|
onInput(): void;
|
|
171
180
|
onCut(event: ClipboardEvent): void;
|
|
172
181
|
onCopy(event: ClipboardEvent): void;
|
|
173
182
|
onPaste(event: ClipboardEvent): void;
|
|
183
|
+
onCreateComment(): void;
|
|
184
|
+
onCommentCreated(reqId: number, commentId: number): void;
|
|
185
|
+
onCommentRemoved(id: number): void;
|
|
186
|
+
onSetCommentsVisibility(value: boolean): void;
|
|
174
187
|
private initResizeListener;
|
|
175
188
|
private destroyResizeListener;
|
|
176
189
|
private rerenderMarker;
|
|
@@ -215,6 +228,7 @@ export declare class Editor {
|
|
|
215
228
|
removeTableColumns(insertIndex: number, startIndex: number, endIndex: number, sessionId: number): void;
|
|
216
229
|
resizeTableColumns(resizeTableColumns: ResizeTableColumnsModel, sessionId: number): void;
|
|
217
230
|
onMousePressedMove(event: MouseEvent): void;
|
|
231
|
+
onMousePressEnd(event: MouseEvent | null): void;
|
|
218
232
|
provideTextStyle(component: BaseNoderComponent): void;
|
|
219
233
|
getEdgeTypeByPosition(mousePosition: number): EdgeType | null;
|
|
220
234
|
applyLeftMarginPageFormat(value: number): void;
|
|
@@ -283,8 +297,15 @@ export declare class Editor {
|
|
|
283
297
|
private clipboardDataSubscription;
|
|
284
298
|
private commandCreatedForEdges;
|
|
285
299
|
private updateEdgeSubscription;
|
|
300
|
+
private commentCreationSubscriptions;
|
|
301
|
+
private rerenderCommentsSubscription;
|
|
302
|
+
private selectCommentSubscription;
|
|
303
|
+
private removeCommentSubscription;
|
|
304
|
+
private setComentsVisibilitySubscription;
|
|
286
305
|
private recreateMainSession;
|
|
287
306
|
private changeColumnsWidth;
|
|
288
307
|
private changeCellsWidth;
|
|
289
308
|
private setCursorAtSearchResult;
|
|
309
|
+
private setCommentPopup;
|
|
310
|
+
private updateSelectedComment;
|
|
290
311
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
+
import { CommentRenderService } from '../gadgets/comment/comment-render.service';
|
|
2
3
|
import { ComponentService } from '../components/shared/services/component.service';
|
|
3
4
|
import { CustomContentService } from '../components/shared/services/custom-content.service';
|
|
4
5
|
import { DocxModel } from '../../models/generated/docx.model';
|
|
@@ -20,13 +21,14 @@ export declare class RegulatorService {
|
|
|
20
21
|
private editorService;
|
|
21
22
|
private componentService;
|
|
22
23
|
private grammarService;
|
|
24
|
+
private commentRenderService;
|
|
23
25
|
mainSession: SessionModel;
|
|
24
26
|
sessions: SessionModel[];
|
|
25
27
|
currentSession: SessionModel;
|
|
26
28
|
selection: Selection;
|
|
27
29
|
sessionIdIncrement: number;
|
|
28
30
|
readonly grammarChecker: GrammarChecker;
|
|
29
|
-
constructor(customContentService: CustomContentService, editorService: EditorService, componentService: ComponentService, grammarService: GrammarService);
|
|
31
|
+
constructor(customContentService: CustomContentService, editorService: EditorService, componentService: ComponentService, grammarService: GrammarService, commentRenderService: CommentRenderService);
|
|
30
32
|
addMainSession(model: DocxModel, scalingRatio: number, container: ElementRef<HTMLElement>): void;
|
|
31
33
|
addCellSession(table: TableModel, margins: MarginModel, component: NoderTableCellComponent, properties: GeneralPropertiesModel): SessionModel;
|
|
32
34
|
addEdgeSession(component: NoderEdgeComponent): SessionModel;
|
|
@@ -44,6 +46,11 @@ export declare class RegulatorService {
|
|
|
44
46
|
getCurrentSessionTargets(): TargetModel[];
|
|
45
47
|
getTargets(session: SessionModel): TargetModel[];
|
|
46
48
|
getTargetedSession(targets: TargetModel[]): EditSession;
|
|
49
|
+
getCommentTarget(commentId: number): {
|
|
50
|
+
session: SessionModel;
|
|
51
|
+
target: TargetModel;
|
|
52
|
+
} | null;
|
|
53
|
+
setCommentsVisibility(value: boolean): void;
|
|
47
54
|
isWithinEdge(sessionId: number): boolean;
|
|
48
55
|
arrangeEdgeChange(sessionId: number): void;
|
|
49
56
|
forceUpdateDataForEdges(): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import { EditorService } from '../../interaction/editor.service';
|
|
3
|
+
export declare abstract class BaseCommentComponent {
|
|
4
|
+
private elementRef;
|
|
5
|
+
protected editorService: EditorService;
|
|
6
|
+
id: number;
|
|
7
|
+
selected: boolean;
|
|
8
|
+
height: number;
|
|
9
|
+
editing: boolean;
|
|
10
|
+
isNew: boolean;
|
|
11
|
+
private resizeObserver;
|
|
12
|
+
constructor(elementRef: ElementRef, editorService: EditorService);
|
|
13
|
+
setSelected(value: boolean): void;
|
|
14
|
+
setEditing(value: boolean): void;
|
|
15
|
+
abstract focusTextArea(): void;
|
|
16
|
+
markAsNew(): void;
|
|
17
|
+
initialize(): void;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Type } from '@angular/core';
|
|
2
|
+
import { BaseCommentComponent } from './base-comment.component';
|
|
3
|
+
import { RemoveCommentFromDom } from './models/remove-comment-dom.model';
|
|
4
|
+
import { RemoveCommentsFromDom } from './models/remove-comments-dom.model';
|
|
5
|
+
import { RenderComments } from './models/render-comments.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class CommentRenderService {
|
|
8
|
+
private componentType;
|
|
9
|
+
private readonly componentInstances;
|
|
10
|
+
private applicationRef;
|
|
11
|
+
private injector;
|
|
12
|
+
private readonly commentRenderRequests;
|
|
13
|
+
get commentRenderRequests$(): import("rxjs").Observable<RemoveCommentFromDom | RemoveCommentsFromDom | RenderComments>;
|
|
14
|
+
constructor(componentType: Type<BaseCommentComponent>);
|
|
15
|
+
requestCommentsRender(sessionId: number, renderRequests: {
|
|
16
|
+
commentId: number;
|
|
17
|
+
top: number;
|
|
18
|
+
left: number;
|
|
19
|
+
}[]): void;
|
|
20
|
+
createNewComment(id: number): void;
|
|
21
|
+
removeCommentFromRender(sessionId: number, id: number): void;
|
|
22
|
+
removeCommentsFromRender(sessionId: number): void;
|
|
23
|
+
setCommentSelected(id: number, selected?: boolean): void;
|
|
24
|
+
private createComponentRef;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CommentRenderService, never>;
|
|
26
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CommentRenderService>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentRef } from '@angular/core';
|
|
2
|
+
import { BaseCommentComponent } from '../base-comment.component';
|
|
3
|
+
export declare class RenderComment {
|
|
4
|
+
commentId: number;
|
|
5
|
+
sessionId: number;
|
|
6
|
+
commentRef: ComponentRef<BaseCommentComponent>;
|
|
7
|
+
highlightTop: number;
|
|
8
|
+
highlightLeft: number;
|
|
9
|
+
constructor(comment: ComponentRef<BaseCommentComponent>, sessionId: number, top: number, left: number);
|
|
10
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApplyDocumentPageFormatModel } from '../../../models/generated/apply-document-page-format.model';
|
|
2
2
|
import { ApplyTableCellsStylesModel } from '../../../models/generated/apply-table-cells-styles.model';
|
|
3
|
+
import { CommentModel } from '../../../models/generated/comment.model';
|
|
3
4
|
import { CursorParagraph } from '../../../editor/positioning/cursor-paragraph';
|
|
4
5
|
import { EditorService } from '../../../editor/interaction/editor.service';
|
|
5
6
|
import { FormatModel } from '../../../models/generated/format.model';
|
|
@@ -38,6 +39,8 @@ export declare class OperationHistory {
|
|
|
38
39
|
private readonly storage;
|
|
39
40
|
private step;
|
|
40
41
|
constructor(editorService: EditorService, regulatorService: RegulatorService);
|
|
42
|
+
pushAttachComment(comment: CommentModel): void;
|
|
43
|
+
pushRemoveComment(comment: CommentModel): void;
|
|
41
44
|
pushInsertText(insertIndex: number, text: string): void;
|
|
42
45
|
pushInsertElement(model: InsertElementModel): void;
|
|
43
46
|
pushInsertBreak(model: InsertBreakModel, count: number): void;
|
|
@@ -5,6 +5,7 @@ import { ApplyPageFormatModel } from '../../../models/generated/apply-page-forma
|
|
|
5
5
|
import { ApplyParagraphsModel } from '../../../models/generated/apply-paragraphs.model';
|
|
6
6
|
import { ApplyTableCellsStylesModel } from '../../../models/generated/apply-table-cells-styles.model';
|
|
7
7
|
import { ApplyTextStyleModel } from '../../../models/generated/apply-text-style.model';
|
|
8
|
+
import { AttachCommentModel } from '../../../models/generated/attach-comment.model';
|
|
8
9
|
import { CreateEdgesModel } from '../../../models/generated/create-edges.model';
|
|
9
10
|
import { DeleteModel } from '../../../models/generated/delete.model';
|
|
10
11
|
import { InsertBreakModel } from '../../../models/generated/insert-break.model';
|
|
@@ -18,6 +19,7 @@ import { InsertTableRowsModel } from '../../../models/generated/insert-table-row
|
|
|
18
19
|
import { InsertTabModel } from '../../../models/generated/insert-tab.model';
|
|
19
20
|
import { InsertTextModel } from '../../../models/generated/insert-text.model';
|
|
20
21
|
import { MoveRangeModel } from '../../../models/generated/move-range.model';
|
|
22
|
+
import { RemoveCommentModel } from '../../../models/generated/remove-comment.model';
|
|
21
23
|
import { RemoveEdgesModel } from '../../../models/generated/remove-edges.model';
|
|
22
24
|
import { RemoveInsertedPageFormatModel } from '../../../models/generated/remove-inserted-page-format.model';
|
|
23
25
|
import { RemoveNumberingsModel } from '../../../models/generated/remove-numberings.model';
|
|
@@ -33,4 +35,4 @@ import { RestorePageFormatsModel } from '../../../models/generated/restore-page-
|
|
|
33
35
|
import { RestoreParagraphStylesModel } from '../../../models/generated/restore-paragraph-styles.model';
|
|
34
36
|
import { RestoreTextStylesModel } from '../../../models/generated/restore-text-styles.model';
|
|
35
37
|
import { RestoreWithParagraphModel } from '../../../models/generated/restore-with-paragraph.model';
|
|
36
|
-
export type Operation = InsertTextModel | DeleteModel | InsertStyledTextModel | RestoreModel | ApplyTextStyleModel | RestoreTextStylesModel | RestoreParagraphStylesModel | InsertElementModel | InsertBreakModel | ApplyImageStyleModel | AddNumberingModel | RestoreNumberingsModel | InsertTabModel | InsertTableColumnsModel | InsertTableRowsModel | RemoveTableColumnsModel | RemoveTableRowsModel | ResizeTableColumnsModel | InsertTableModel | InsertImageModel | RemoveNumberingsModel | ReplaceModel | MoveRangeModel | CreateEdgesModel | RemoveEdgesModel | RemoveWithParagraphModel | RestoreWithParagraphModel | ApplyDocumentPageFormatModel | InsertPageFormatModel | ApplyPageFormatModel | RemoveInsertedPageFormatModel | RestorePageFormatsModel | ApplyParagraphsModel | ReplaceByRestoreModel | ApplyTableCellsStylesModel;
|
|
38
|
+
export type Operation = InsertTextModel | DeleteModel | InsertStyledTextModel | RestoreModel | ApplyTextStyleModel | RestoreTextStylesModel | RestoreParagraphStylesModel | InsertElementModel | InsertBreakModel | ApplyImageStyleModel | AddNumberingModel | RestoreNumberingsModel | InsertTabModel | InsertTableColumnsModel | InsertTableRowsModel | RemoveTableColumnsModel | RemoveTableRowsModel | ResizeTableColumnsModel | InsertTableModel | InsertImageModel | RemoveNumberingsModel | ReplaceModel | MoveRangeModel | CreateEdgesModel | RemoveEdgesModel | RemoveWithParagraphModel | RestoreWithParagraphModel | ApplyDocumentPageFormatModel | InsertPageFormatModel | ApplyPageFormatModel | RemoveInsertedPageFormatModel | RestorePageFormatsModel | ApplyParagraphsModel | ReplaceByRestoreModel | ApplyTableCellsStylesModel | AttachCommentModel | RemoveCommentModel;
|
|
@@ -6,7 +6,7 @@ import { Observable } from 'rxjs';
|
|
|
6
6
|
export declare class ScrollBar {
|
|
7
7
|
private parent;
|
|
8
8
|
readonly MAX_SCROLL_H = 32768;
|
|
9
|
-
get scrolled$(): Observable<
|
|
9
|
+
get scrolled$(): Observable<number>;
|
|
10
10
|
private _scrolled$;
|
|
11
11
|
element: HTMLElement;
|
|
12
12
|
inner: HTMLElement;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { Type } from '@angular/core';
|
|
3
3
|
import { BaseNoderComponent } from '../components/shared/abstract/base.component';
|
|
4
|
+
import { Borders } from '../components/shared/enums/borders.enum';
|
|
4
5
|
import { BreakTypes } from '../gadgets/page-break/break-types.enum';
|
|
5
6
|
import { EdgeType } from '../components/edges/edge-type.enum';
|
|
6
7
|
import { ElementDataModel } from '../components/external-element/models/element-data.model';
|
|
@@ -10,6 +11,7 @@ import { GrammarError } from '../../models/generated/grammar-error';
|
|
|
10
11
|
import { ImageDataModel } from '../../models/generated/image-data.model';
|
|
11
12
|
import { ImageModel } from '../../models/generated/image.model';
|
|
12
13
|
import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
|
|
14
|
+
import { LineStyles } from '../components/shared/enums/line-styles.enum';
|
|
13
15
|
import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
|
|
14
16
|
import { NumberingModel } from '../../models/generated/numbering.model';
|
|
15
17
|
import { OperationsHistoryInfoModel } from '../../editor/gadgets/history/operations-history-info.model';
|
|
@@ -19,8 +21,6 @@ import { ParagraphStyleModel } from '../../models/generated/paragraph-style.mode
|
|
|
19
21
|
import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
|
|
20
22
|
import { TabSettingModel } from '../../models/generated/tab-setting.model';
|
|
21
23
|
import { TextStyleModel } from '../../models/generated/text-style.model';
|
|
22
|
-
import { LineStyles } from '../components/shared/enums/line-styles.enum';
|
|
23
|
-
import { Borders } from '../components/shared/enums/borders.enum';
|
|
24
24
|
import * as i0 from "@angular/core";
|
|
25
25
|
export declare class EditorService {
|
|
26
26
|
set styles(value: IToolbarStyles);
|
|
@@ -124,6 +124,8 @@ export declare class EditorService {
|
|
|
124
124
|
private readonly _imageLoaded$;
|
|
125
125
|
get changedEdge$(): Observable<number>;
|
|
126
126
|
private readonly _changedEdge$;
|
|
127
|
+
get addCommentAtSelection$(): Observable<void>;
|
|
128
|
+
private readonly _addCommentAtSelection$;
|
|
127
129
|
get insertTableRows$(): Observable<{
|
|
128
130
|
insertIndex: number;
|
|
129
131
|
rowsCount: number;
|
|
@@ -208,6 +210,10 @@ export declare class EditorService {
|
|
|
208
210
|
private _removeCustomElementsData$;
|
|
209
211
|
get restoreCustomElementsData$(): Observable<ElementModel[]>;
|
|
210
212
|
private _restoreCustomElementsData$;
|
|
213
|
+
get removeCommentData$(): Observable<number[]>;
|
|
214
|
+
private _removeCommentData$;
|
|
215
|
+
get restoreCommentData$(): Observable<number[]>;
|
|
216
|
+
private _restoreCommentData$;
|
|
211
217
|
get currentPage(): number;
|
|
212
218
|
get currentPage$(): Observable<number>;
|
|
213
219
|
private readonly _currentPage$;
|
|
@@ -240,6 +246,21 @@ export declare class EditorService {
|
|
|
240
246
|
numberingModel: NumberingModel | null;
|
|
241
247
|
}>;
|
|
242
248
|
private readonly _paragraphStyle$;
|
|
249
|
+
get commentSizeChanged$(): Observable<void>;
|
|
250
|
+
private readonly _commentSizeChanged$;
|
|
251
|
+
get createComment$(): Observable<number>;
|
|
252
|
+
private readonly _createComment$;
|
|
253
|
+
get commentCreated$(): Observable<{
|
|
254
|
+
commentId: number;
|
|
255
|
+
reqId: number;
|
|
256
|
+
}>;
|
|
257
|
+
private readonly _commentCreated$;
|
|
258
|
+
get removeComment$(): Observable<number>;
|
|
259
|
+
private readonly _removeComment$;
|
|
260
|
+
get setCommentSelected$(): Observable<number>;
|
|
261
|
+
private readonly _setCommentSelected$;
|
|
262
|
+
get setCommentsVisibility$(): Observable<boolean>;
|
|
263
|
+
private readonly _setCommentsVisibility$;
|
|
243
264
|
tabSettings(value: TabSettingModel[]): void;
|
|
244
265
|
applyFirstLinePosition(value: number): void;
|
|
245
266
|
applyLeftIndentParagraph(value: number): void;
|
|
@@ -306,6 +327,8 @@ export declare class EditorService {
|
|
|
306
327
|
removeLeft(): void;
|
|
307
328
|
removeCustomElementsData(elements: ElementModel[]): void;
|
|
308
329
|
restoreCustomElementsData(elements: ElementModel[]): void;
|
|
330
|
+
removeCommentData(commentIds: number[]): void;
|
|
331
|
+
restoreCommentData(commentIds: number[]): void;
|
|
309
332
|
setNewSearchTerm(term: string): void;
|
|
310
333
|
setNewReplaceTerm(term: string): void;
|
|
311
334
|
setDialogSearchTerm(term: string): void;
|
|
@@ -318,6 +341,13 @@ export declare class EditorService {
|
|
|
318
341
|
showGrammarError(error: GrammarError): void;
|
|
319
342
|
applyGrammarSuggestion(error: GrammarError, suggestionIndex: number, paragraphIndex: number): void;
|
|
320
343
|
ignoreGrammarSuggestion(error: GrammarError): void;
|
|
344
|
+
addCommentAtSelection(): void;
|
|
345
|
+
commentSizeChanged(): void;
|
|
346
|
+
createComment(reqId: number): void;
|
|
347
|
+
commentCreated(commentId: number, reqId: number): void;
|
|
348
|
+
removeComment(id: number): void;
|
|
349
|
+
setCommentSelected(id: number): void;
|
|
350
|
+
setCommentsVisibility(value: boolean): void;
|
|
321
351
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditorService, never>;
|
|
322
352
|
static ɵprov: i0.ɵɵInjectableDeclaration<EditorService>;
|
|
323
353
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Subscription } from 'rxjs';
|
|
2
2
|
import { Editor } from '../execution/editor';
|
|
3
3
|
export declare class MouseHandler {
|
|
4
|
+
private readonly clickableElements;
|
|
4
5
|
private clicks;
|
|
5
6
|
documentMouseMove$: Subscription;
|
|
6
7
|
documentMouseUp$: Subscription;
|
|
@@ -9,6 +10,6 @@ export declare class MouseHandler {
|
|
|
9
10
|
constructor(container: Node, editor: Editor);
|
|
10
11
|
destroy(): void;
|
|
11
12
|
startMousePress(editor: Editor): void;
|
|
12
|
-
endMousePress(): void;
|
|
13
|
+
endMousePress(editor: Editor | null, event: MouseEvent | null): void;
|
|
13
14
|
private onMultiMouseDown;
|
|
14
15
|
}
|