@talrace/ngx-noder 0.0.45 → 0.0.46
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 +1 -0
- package/assets/i18n/noder.es.json +1 -0
- package/assets/i18n/noder.ru.json +1 -0
- package/fesm2022/talrace-ngx-noder.mjs +656 -193
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/editor/components/editor.component.d.ts +4 -1
- package/lib/editor/content/display-data/display-data.d.ts +8 -0
- package/lib/editor/content/display-data/models/paragraph-info-added.model.d.ts +5 -0
- package/lib/editor/content/display-data/models/paragraph-info-content-changed.model.d.ts +7 -0
- package/lib/editor/content/display-data/models/paragraph-info-content-inserted.model.d.ts +7 -0
- package/lib/editor/content/display-data/models/paragraph-info.model.d.ts +1 -0
- package/lib/editor/content/display-data/models/paragraphs-infos-removed.model.d.ts +4 -0
- package/lib/editor/display/layers/grammar-highlight.layer.d.ts +12 -0
- 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 +6 -0
- package/lib/editor/display/virtual.renderer.d.ts +4 -0
- package/lib/editor/execution/edit.session.d.ts +1 -0
- package/lib/editor/execution/editor.d.ts +9 -1
- package/lib/editor/execution/regulator.service.d.ts +5 -1
- package/lib/editor/gadgets/grammar/grammar-checker.d.ts +21 -0
- package/lib/editor/gadgets/grammar/grammar-popup/grammar-popup.component.d.ts +16 -0
- package/lib/editor/gadgets/grammar/grammar.const.d.ts +1 -0
- package/lib/editor/gadgets/grammar/grammar.service.d.ts +25 -0
- package/lib/editor/interaction/editor.service.d.ts +14 -0
- package/lib/models/generated/grammar-error.d.ts +9 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/_ngx-noder.theme.scss +7 -1
- package/src/lib/editor/gadgets/grammar/grammar-popup/_theme.scss +26 -0
- package/src/scss/base-editor.scss +6 -0
|
@@ -9,6 +9,7 @@ import { Editor } from '../execution/editor';
|
|
|
9
9
|
import { EditorSearchBarComponent } from '../../apart-components/editor-search-bar/editor-search-bar.component';
|
|
10
10
|
import { EditorService } from '../interaction/editor.service';
|
|
11
11
|
import { ExternalSidenavModel } from './external-element/models/external-sidenav.model';
|
|
12
|
+
import { OverlayService } from './shared/services/overlay.service';
|
|
12
13
|
import { RegulatorService } from '../execution/regulator.service';
|
|
13
14
|
import { RulerUnit } from '../../apart-components/editor-ruler/editor-ruler.component';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
@@ -16,6 +17,7 @@ export declare class EditorComponent implements OnDestroy {
|
|
|
16
17
|
private cdr;
|
|
17
18
|
private componentService;
|
|
18
19
|
private editorService;
|
|
20
|
+
private overlayService;
|
|
19
21
|
private injector;
|
|
20
22
|
private regulatorService;
|
|
21
23
|
private commandsService;
|
|
@@ -38,11 +40,12 @@ export declare class EditorComponent implements OnDestroy {
|
|
|
38
40
|
sidenavProperties: ExternalSidenavModel;
|
|
39
41
|
readonly subscriptions: Subscription[];
|
|
40
42
|
private sidenavComponentRef;
|
|
41
|
-
constructor(cdr: ChangeDetectorRef, componentService: ComponentService, editorService: EditorService, injector: Injector, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard);
|
|
43
|
+
constructor(cdr: ChangeDetectorRef, componentService: ComponentService, editorService: EditorService, overlayService: OverlayService, injector: Injector, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard);
|
|
42
44
|
ngOnDestroy(): void;
|
|
43
45
|
initEditor(content: DocxModel): void;
|
|
44
46
|
toggleSidenavSubscription(): Subscription;
|
|
45
47
|
searchBarSubscription(): Subscription;
|
|
48
|
+
displayGrammarErrorPopupSubscription(): Subscription;
|
|
46
49
|
removeSidenavComponent(): void;
|
|
47
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditorComponent, never>;
|
|
48
51
|
static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "app-nod-editor", never, { "isMobile": { "alias": "isMobile"; "required": false; }; "externalElementTagNames": { "alias": "externalElementTagNames"; "required": false; }; "customPageWidth": { "alias": "customPageWidth"; "required": false; }; "content": { "alias": "content"; "required": false; }; "rulerUnit": { "alias": "rulerUnit"; "required": true; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
@@ -14,7 +14,11 @@ import { NumberingDataModel } from '../../gadgets/numbering/numbering-data.model
|
|
|
14
14
|
import { PageFormat } from './page-format';
|
|
15
15
|
import { PageFormatModel } from '../../../models/generated/page-format.model';
|
|
16
16
|
import { Paragraph } from './paragraph';
|
|
17
|
+
import { ParagraphInfoAdded } from './models/paragraph-info-added.model';
|
|
18
|
+
import { ParagraphInfoContentChanged } from './models/paragraph-info-content-changed.model';
|
|
19
|
+
import { ParagraphInfoContentInserted } from './models/paragraph-info-content-inserted.model';
|
|
17
20
|
import { ParagraphInfoModel } from './models/paragraph-info.model';
|
|
21
|
+
import { ParagraphInfosRemoved } from './models/paragraphs-infos-removed.model';
|
|
18
22
|
import { Range } from '../../positioning/range';
|
|
19
23
|
import { VisibleRange } from '../../display/visible-range.interface';
|
|
20
24
|
export declare class DisplayData extends EventEmitting {
|
|
@@ -31,8 +35,12 @@ export declare class DisplayData extends EventEmitting {
|
|
|
31
35
|
allPagesHeight: number;
|
|
32
36
|
tabTokens: DisplayToken[];
|
|
33
37
|
get maxPageWidth(): number;
|
|
38
|
+
private readonly ParagraphInfoChanges;
|
|
39
|
+
get ParagraphInfoChanges$(): import("rxjs").Observable<ParagraphInfoAdded | ParagraphInfoContentChanged | ParagraphInfoContentInserted | ParagraphInfosRemoved>;
|
|
40
|
+
private lastParagraphId;
|
|
34
41
|
constructor(model: ContentType, generalProperties: GeneralPropertiesModel, sessionId: number, pageFormatModels: PageFormatModel[], pagesSpace: number, customComponents: ICustomComponents, customContentService: CustomContentService, editorService: EditorService);
|
|
35
42
|
updateDataForModel(): void;
|
|
43
|
+
emitAllParagraphs(): void;
|
|
36
44
|
insertText(position: CursorParagraph, text: string): CursorParagraph;
|
|
37
45
|
removeRange(range: Range): void;
|
|
38
46
|
getParagraphContent(index: number): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EditSession } from '../../execution/edit.session';
|
|
2
|
+
import { GrammarError } from '../../../models/generated/grammar-error';
|
|
3
|
+
import { HighlightLayer } from './highlight.layer';
|
|
4
|
+
import { ILayerConfig } from './layer.config';
|
|
5
|
+
export declare class GrammarHighlightLayer extends HighlightLayer {
|
|
6
|
+
private readonly className;
|
|
7
|
+
private readonly errorsByParagraph;
|
|
8
|
+
constructor(parentEl: HTMLElement, cssClass: string, session: EditSession);
|
|
9
|
+
update(config: ILayerConfig): void;
|
|
10
|
+
setErrors(paragraphId: number, errors: GrammarError[]): void;
|
|
11
|
+
removeParagraphHighlights(paragraphId: number): void;
|
|
12
|
+
}
|
|
@@ -3,6 +3,8 @@ import { CursorParagraph } from '../positioning/cursor-paragraph';
|
|
|
3
3
|
import { CustomElementInfo } from './custom-element-info.model';
|
|
4
4
|
import { EditSession } from '../execution/edit.session';
|
|
5
5
|
import { EventEmitting } from '../core/event-emitting';
|
|
6
|
+
import { GrammarError } from '../../models/generated/grammar-error';
|
|
7
|
+
import { GrammarHighlightLayer } from './layers/grammar-highlight.layer';
|
|
6
8
|
import { ILayerConfig } from './layers/layer.config';
|
|
7
9
|
import { Range } from '../positioning/range';
|
|
8
10
|
import { RenderChangesModel } from './render-changes.model';
|
|
@@ -19,6 +21,7 @@ export declare class Renderer extends EventEmitting {
|
|
|
19
21
|
selectionLayer: SelectionLayer;
|
|
20
22
|
dragAndDropSelectionLayer: SelectionLayer;
|
|
21
23
|
searchHighlightLayer: SearchHighlightLayer;
|
|
24
|
+
grammarHighlightLayer: GrammarHighlightLayer;
|
|
22
25
|
loop: RenderLoop;
|
|
23
26
|
textarea: HTMLElement;
|
|
24
27
|
layerConfig: ILayerConfig;
|
|
@@ -39,6 +42,8 @@ export declare class Renderer extends EventEmitting {
|
|
|
39
42
|
updateSearchHighlights(ranges: Range[]): void;
|
|
40
43
|
updateCustomElementHighlights(ranges: CustomElementInfo[]): void;
|
|
41
44
|
updateActiveSearchHighlight(active: Range | CustomElementInfo): void;
|
|
45
|
+
updateGrammarHighlights(paragraphId: number, errors: GrammarError[]): void;
|
|
46
|
+
removeGrammarHighlights(paragraphId: number): void;
|
|
42
47
|
updateDragAndDropSelection(range: Range | null): void;
|
|
43
48
|
clearDragAndDropSelection(): void;
|
|
44
49
|
setVisibility(isVisible: boolean): void;
|
|
@@ -66,6 +71,7 @@ export declare class Renderer extends EventEmitting {
|
|
|
66
71
|
renderCursor(): void;
|
|
67
72
|
renderSelection(): void;
|
|
68
73
|
renderSearchHighlights(): void;
|
|
74
|
+
renderGrammarHighlights(): void;
|
|
69
75
|
renderDragAndDropSelection(): void;
|
|
70
76
|
private computeLayerConfig;
|
|
71
77
|
private pagesCountChangedHandler;
|
|
@@ -3,6 +3,7 @@ import { CursorParagraph } from '../positioning/cursor-paragraph';
|
|
|
3
3
|
import { CustomElementInfo } from './custom-element-info.model';
|
|
4
4
|
import { EdgesLayer } from './layers/edges.layer';
|
|
5
5
|
import { EditSession } from '../execution/edit.session';
|
|
6
|
+
import { GrammarError } from '../../models/generated/grammar-error';
|
|
6
7
|
import { ILayerConfig } from './layers/layer.config';
|
|
7
8
|
import { PagesLayer } from './layers/pages.layer';
|
|
8
9
|
import { Range } from '../positioning/range';
|
|
@@ -50,6 +51,8 @@ export declare class VirtualRenderer {
|
|
|
50
51
|
updateSearchHighlights(ranges: Range[]): void;
|
|
51
52
|
updateCustomElementHighlights(ranges: CustomElementInfo[]): void;
|
|
52
53
|
updateActiveSearchHighlight(active: Range | CustomElementInfo): void;
|
|
54
|
+
updateGrammarHighlights(paragraphIndex: number, errors: GrammarError[]): void;
|
|
55
|
+
removeGrammarHighlights(paragraphIndex: number): void;
|
|
53
56
|
updateDragAndDropSelection(range: Range): void;
|
|
54
57
|
clearDragAndDropSelection(): void;
|
|
55
58
|
/**
|
|
@@ -81,5 +84,6 @@ export declare class VirtualRenderer {
|
|
|
81
84
|
private renderCursor;
|
|
82
85
|
private renderSelection;
|
|
83
86
|
private renderSearchHighlights;
|
|
87
|
+
private renderGrammarHighlights;
|
|
84
88
|
private renderDragAndDropSelection;
|
|
85
89
|
}
|
|
@@ -55,6 +55,7 @@ export declare class EditSession {
|
|
|
55
55
|
nonTokenRe: RegExp;
|
|
56
56
|
get scrollTop(): number;
|
|
57
57
|
get scrollBarHeight(): number;
|
|
58
|
+
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>;
|
|
58
59
|
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);
|
|
59
60
|
destroy(): void;
|
|
60
61
|
getRowLength(row: number): number;
|
|
@@ -12,6 +12,8 @@ import { EdgeType } from '../components/edges/edge-type.enum';
|
|
|
12
12
|
import { EditorService } from '../interaction/editor.service';
|
|
13
13
|
import { EditSession } from './edit.session';
|
|
14
14
|
import { ElementDataModel } from '../components/external-element/models/element-data.model';
|
|
15
|
+
import { GrammarChecker } from '../gadgets/grammar/grammar-checker';
|
|
16
|
+
import { GrammarError } from '../../models/generated/grammar-error';
|
|
15
17
|
import { ImageDataModel } from '../../models/generated/image-data.model';
|
|
16
18
|
import { ImageModel } from '../../models/generated/image.model';
|
|
17
19
|
import { InputHandler } from '../interaction/input.handler';
|
|
@@ -28,6 +30,7 @@ import { MoveRangeModel } from '../../models/generated/move-range.model';
|
|
|
28
30
|
import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
|
|
29
31
|
import { Operation } from '../gadgets/history/operation.type';
|
|
30
32
|
import { OperationHistory } from '../gadgets/history/operation-history';
|
|
33
|
+
import { OverlayService } from '../components/shared/services/overlay.service';
|
|
31
34
|
import { PageFormatModel } from '../../models/generated/page-format.model';
|
|
32
35
|
import { PageType } from '../components/edges/page-type.enum';
|
|
33
36
|
import { ParagraphModel } from '../../models/generated/paragraph.model';
|
|
@@ -49,6 +52,7 @@ export declare class Editor {
|
|
|
49
52
|
private model;
|
|
50
53
|
private container;
|
|
51
54
|
private editorService;
|
|
55
|
+
private overlayService;
|
|
52
56
|
private regulatorService;
|
|
53
57
|
private commandsService;
|
|
54
58
|
private clipboard;
|
|
@@ -67,6 +71,7 @@ export declare class Editor {
|
|
|
67
71
|
get renderer(): Renderer | VirtualRenderer;
|
|
68
72
|
get isViewOnly(): boolean;
|
|
69
73
|
get targets(): TargetModel[];
|
|
74
|
+
get grammarChecker(): GrammarChecker;
|
|
70
75
|
selection: Selection;
|
|
71
76
|
mouseHandler: MouseHandler;
|
|
72
77
|
touchHandler: TouchHandler;
|
|
@@ -80,7 +85,7 @@ export declare class Editor {
|
|
|
80
85
|
private textInput;
|
|
81
86
|
private clipboardData;
|
|
82
87
|
private isRerenderSubscriptionOpen;
|
|
83
|
-
constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], customPageWidth?: number);
|
|
88
|
+
constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, overlayService: OverlayService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], customPageWidth?: number);
|
|
84
89
|
destroy(): void;
|
|
85
90
|
selectPageDown(): void;
|
|
86
91
|
selectPageUp(): void;
|
|
@@ -205,6 +210,7 @@ export declare class Editor {
|
|
|
205
210
|
applyPageFormat(model: PageFormatModel): void;
|
|
206
211
|
insertPageFormat(model: PageFormatModel): void;
|
|
207
212
|
applyDocumentPageFormat(model: PageFormatModel): void;
|
|
213
|
+
applyGrammarSuggestion(error: GrammarError, paragraphIndex: number, suggestionIndex: number): void;
|
|
208
214
|
receiveTextStyleSubscription(): Subscription;
|
|
209
215
|
viewOnlyModeSubscription(): Subscription;
|
|
210
216
|
applyLeftMarginPageFormatSubscription(): Subscription;
|
|
@@ -214,6 +220,8 @@ export declare class Editor {
|
|
|
214
220
|
applyDocumentPageFormatSubscription(): Subscription;
|
|
215
221
|
searchOptionSubscriptions(): Subscription[];
|
|
216
222
|
replaceSubscription(): Subscription[];
|
|
223
|
+
grammarReplaceSubscription(): Subscription;
|
|
224
|
+
ignoreGrammarErrorSubscription(): Subscription;
|
|
217
225
|
setTextStylesSubscription(): Subscription;
|
|
218
226
|
setParagraphStylesSubscription(): Subscription;
|
|
219
227
|
setNumberingTemplateTypeSubscription(): Subscription;
|
|
@@ -5,6 +5,8 @@ import { DocxModel } from '../../models/generated/docx.model';
|
|
|
5
5
|
import { EditorService } from '../interaction/editor.service';
|
|
6
6
|
import { EditSession } from './edit.session';
|
|
7
7
|
import { GeneralPropertiesModel } from '../content/display-data/general-properties.model';
|
|
8
|
+
import { GrammarChecker } from '../gadgets/grammar/grammar-checker';
|
|
9
|
+
import { GrammarService } from '../gadgets/grammar/grammar.service';
|
|
8
10
|
import { MarginModel } from '../content/margin.model';
|
|
9
11
|
import { NoderEdgeComponent } from '../components/edges/edge.component';
|
|
10
12
|
import { NoderTableCellComponent } from '../components/table/components/table-cell.component';
|
|
@@ -17,12 +19,14 @@ export declare class RegulatorService {
|
|
|
17
19
|
private customContentService;
|
|
18
20
|
private editorService;
|
|
19
21
|
private componentService;
|
|
22
|
+
private grammarService;
|
|
20
23
|
mainSession: SessionModel;
|
|
21
24
|
sessions: SessionModel[];
|
|
22
25
|
currentSession: SessionModel;
|
|
23
26
|
selection: Selection;
|
|
24
27
|
sessionIdIncrement: number;
|
|
25
|
-
|
|
28
|
+
readonly grammarChecker: GrammarChecker;
|
|
29
|
+
constructor(customContentService: CustomContentService, editorService: EditorService, componentService: ComponentService, grammarService: GrammarService);
|
|
26
30
|
addMainSession(model: DocxModel, scalingRatio: number, container: ElementRef<HTMLElement>): void;
|
|
27
31
|
addCellSession(table: TableModel, margins: MarginModel, component: NoderTableCellComponent, properties: GeneralPropertiesModel): SessionModel;
|
|
28
32
|
addEdgeSession(component: NoderEdgeComponent): SessionModel;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GrammarError } from '../../../models/generated/grammar-error';
|
|
2
|
+
import { GrammarService } from './grammar.service';
|
|
3
|
+
import { SessionModel } from '../../../editor/execution/targeting/session.model';
|
|
4
|
+
export declare class GrammarChecker {
|
|
5
|
+
private readonly grammarService;
|
|
6
|
+
private readonly ignoreKey;
|
|
7
|
+
private readonly paragraphSessionMap;
|
|
8
|
+
private readonly paragraphErrorMap;
|
|
9
|
+
private readonly sessionSubscriptions;
|
|
10
|
+
private readonly sessions;
|
|
11
|
+
private readonly ignoreList;
|
|
12
|
+
private readonly checkResultsSubscription;
|
|
13
|
+
constructor(grammarService: GrammarService);
|
|
14
|
+
registerSession(session: SessionModel): void;
|
|
15
|
+
unregisterSession(sessionId: number): void;
|
|
16
|
+
getError(sessionId: number, paragraphId: number, cursorIndex: number): GrammarError | null;
|
|
17
|
+
addErrorToIgnoreList(grammarError: GrammarError): void;
|
|
18
|
+
filterErrors(grammarErrors: GrammarError[]): GrammarError[];
|
|
19
|
+
destroy(): void;
|
|
20
|
+
private adjustHighlights;
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EditorService } from '../../../interaction/editor.service';
|
|
2
|
+
import { GrammarError } from '../../../../models/generated/grammar-error';
|
|
3
|
+
import { OverlayService } from '../../../components/shared/services/overlay.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class GrammarPopupComponent {
|
|
6
|
+
private readonly editorService;
|
|
7
|
+
private readonly overlayService;
|
|
8
|
+
hostHeight: string;
|
|
9
|
+
error: GrammarError;
|
|
10
|
+
paragraphIndex: number;
|
|
11
|
+
constructor(editorService: EditorService, overlayService: OverlayService);
|
|
12
|
+
onSuggestionClick(index: number): void;
|
|
13
|
+
onIgnoreClick(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GrammarPopupComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GrammarPopupComponent, "app-nod-grammar-popup", never, { "error": { "alias": "error"; "required": false; }; "paragraphIndex": { "alias": "paragraphIndex"; "required": false; }; }, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const POPUP_HEIGHT = 150;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GrammarError } from '../../../models/generated/grammar-error';
|
|
2
|
+
import { ParagraphInfoModel } from '../../../editor/content/display-data/models/paragraph-info.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class GrammarService {
|
|
5
|
+
private readonly debounceTime;
|
|
6
|
+
private readonly paragraphSubjects;
|
|
7
|
+
private readonly debounceSubscriptions;
|
|
8
|
+
private readonly grammarCheckRequests;
|
|
9
|
+
get grammarCheckRequests$(): import("rxjs").Observable<{
|
|
10
|
+
id: string;
|
|
11
|
+
paragraph: string;
|
|
12
|
+
}>;
|
|
13
|
+
private readonly grammarCheckResults;
|
|
14
|
+
get grammarCheckResults$(): import("rxjs").Observable<{
|
|
15
|
+
paragraphId: string;
|
|
16
|
+
errors: GrammarError[];
|
|
17
|
+
}>;
|
|
18
|
+
updateParagraphContent(sessionId: number, paragraph: ParagraphInfoModel): void;
|
|
19
|
+
removeParagraph(sessionId: number, paragraphId: number): void;
|
|
20
|
+
publishGrammarCheckResults(paragraphId: string, errors: GrammarError[]): void;
|
|
21
|
+
destroy(): void;
|
|
22
|
+
private registerParagraph;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GrammarService, never>;
|
|
24
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GrammarService>;
|
|
25
|
+
}
|
|
@@ -6,6 +6,7 @@ import { EdgeType } from '../components/edges/edge-type.enum';
|
|
|
6
6
|
import { ElementDataModel } from '../components/external-element/models/element-data.model';
|
|
7
7
|
import { ElementModel } from '../../models/generated/element.model';
|
|
8
8
|
import { ExternalSidenavInterface } from '../components/external-element/external-sidenav.interface';
|
|
9
|
+
import { GrammarError } from '../../models/generated/grammar-error';
|
|
9
10
|
import { ImageDataModel } from '../../models/generated/image-data.model';
|
|
10
11
|
import { ImageModel } from '../../models/generated/image.model';
|
|
11
12
|
import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
|
|
@@ -43,6 +44,16 @@ export declare class EditorService {
|
|
|
43
44
|
data?: object;
|
|
44
45
|
}>;
|
|
45
46
|
private readonly _toggleSidenav$;
|
|
47
|
+
get displayGrammarError$(): Observable<GrammarError>;
|
|
48
|
+
private readonly _displayGrammarError$;
|
|
49
|
+
get applyGrammarSuggestion$(): Observable<{
|
|
50
|
+
error: GrammarError;
|
|
51
|
+
suggestionIndex: number;
|
|
52
|
+
paragraphIndex: number;
|
|
53
|
+
}>;
|
|
54
|
+
private readonly _applyGrammarSuggestion$;
|
|
55
|
+
get ignoreGrammarError$(): Observable<GrammarError>;
|
|
56
|
+
private readonly _ignoreGrammarError$;
|
|
46
57
|
get displaySearchBar$(): Observable<boolean>;
|
|
47
58
|
private readonly _displaySearchBar$;
|
|
48
59
|
get searchTerm$(): Observable<string>;
|
|
@@ -276,6 +287,9 @@ export declare class EditorService {
|
|
|
276
287
|
setDisplaySearchBar(show: boolean): void;
|
|
277
288
|
setSearchResultCount(count: number): void;
|
|
278
289
|
setCurrentSearchResultIndex(index: number): void;
|
|
290
|
+
showGrammarError(error: GrammarError): void;
|
|
291
|
+
applyGrammarSuggestion(error: GrammarError, suggestionIndex: number, paragraphIndex: number): void;
|
|
292
|
+
ignoreGrammarSuggestion(error: GrammarError): void;
|
|
279
293
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditorService, never>;
|
|
280
294
|
static ɵprov: i0.ɵɵInjectableDeclaration<EditorService>;
|
|
281
295
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from './lib/editor/components/shared/abstract/base.component';
|
|
|
16
16
|
export * from './lib/editor/components/shared/abstract/destroy.component';
|
|
17
17
|
export * from './lib/editor/interaction/editor.service';
|
|
18
18
|
export * from './lib/editor/gadgets/history/operations-history-info.model';
|
|
19
|
+
export * from './lib/editor/gadgets/grammar/grammar.service';
|
|
19
20
|
export * from './lib/editor/operations/enums/command-type.enum';
|
|
20
21
|
export * from './lib/editor/components/editor.component';
|
|
21
22
|
export * from './lib/editor/editor.module';
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
@use 'lib/apart-components/editor-title-mobile/editor-title-mobile.theme' as *;
|
|
5
5
|
@use 'lib/apart-components/editor-title/editor-title.theme' as *;
|
|
6
6
|
@use 'lib/apart-components/editor-toolbar/theme' as *;
|
|
7
|
-
@use 'lib/apart-components
|
|
7
|
+
@use 'lib/apart-components/editor-search-bar/theme' as *;
|
|
8
8
|
@use 'lib/apart-components/editor-ruler/theme' as *;
|
|
9
9
|
@use 'lib/apart-components/insert-table-mobile/insert-table-mobile.theme' as *;
|
|
10
10
|
@use 'lib/apart-components/insert-table/insert-table.theme' as *;
|
|
11
11
|
@use 'lib/apart-components/text-format-mobile/text-format-mobile.theme' as *;
|
|
12
|
+
@use 'lib/editor/gadgets/grammar/grammar-popup/theme' as *;
|
|
12
13
|
@use 'lib/editor/theme' as *;
|
|
13
14
|
|
|
14
15
|
@mixin ngx-noder-theme($theme) {
|
|
@@ -19,6 +20,7 @@
|
|
|
19
20
|
@include ngx-noder-toolbar-theme($theme);
|
|
20
21
|
@include ngx-noder-insert-table-theme($theme);
|
|
21
22
|
@include ngx-noder-editor-theme($theme);
|
|
23
|
+
@include ngx-noder-grammar-theme($theme);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
@mixin ngx-noder-editor-theme($theme) {
|
|
@@ -39,6 +41,10 @@
|
|
|
39
41
|
@include confirm-dialog-theme($theme);
|
|
40
42
|
}
|
|
41
43
|
|
|
44
|
+
@mixin ngx-noder-grammar-theme($theme) {
|
|
45
|
+
@include grammar-popup-theme($theme);
|
|
46
|
+
}
|
|
47
|
+
|
|
42
48
|
@mixin ngx-noder-title-theme($theme) {
|
|
43
49
|
@include editor-title-component-theme($theme);
|
|
44
50
|
@include editor-title-mobile-component-theme($theme);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use '@angular/material' as mat;
|
|
2
|
+
@use 'sass:map';
|
|
3
|
+
|
|
4
|
+
@mixin grammar-popup-theme($theme) {
|
|
5
|
+
app-nod-grammar-popup {
|
|
6
|
+
background: map.get($theme, background-palette, dialog);
|
|
7
|
+
|
|
8
|
+
.message {
|
|
9
|
+
color: map.get($theme, foreground-palette, text);
|
|
10
|
+
border-bottom-color: map.get($theme, foreground-palette, noder-divider);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.suggestion {
|
|
14
|
+
color: map.get($theme, foreground-palette, grammar-suggestion);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.ignore {
|
|
18
|
+
color: map.get($theme, foreground-palette, secondary-text);
|
|
19
|
+
|
|
20
|
+
&:hover {
|
|
21
|
+
background-color: map.get($theme, foreground-palette, secondary-text);
|
|
22
|
+
color: map.get($theme, foreground-palette, noder-editor-header-text);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -282,6 +282,12 @@ div.ngx-colors-overlay.noder-color-picker-overlay .opened .colors {
|
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
+
&.grammar-highlight {
|
|
286
|
+
>.noder-highlight {
|
|
287
|
+
border-bottom: dashed rgb(255, 18, 18) 1px;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
285
291
|
&.text-search-highlight {
|
|
286
292
|
>.noder-highlight {
|
|
287
293
|
background-color: rgb(255, 255, 0, 0.4);
|