@talrace/ngx-noder 0.0.45 → 0.0.47

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.
Files changed (61) hide show
  1. package/assets/i18n/noder.en.json +12 -0
  2. package/assets/i18n/noder.es.json +12 -0
  3. package/assets/i18n/noder.ru.json +12 -0
  4. package/fesm2022/talrace-ngx-noder.mjs +1333 -299
  5. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  6. package/lib/apart-components/editor-ruler/editor-ruler.component.d.ts +2 -1
  7. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +6 -1
  8. package/lib/apart-components/editor-toolbar/components/buttons/table-border-style/table-border-style.component.d.ts +11 -0
  9. package/lib/apart-components/editor-toolbar/components/buttons/table-border-width/table-border-width.component.d.ts +10 -0
  10. package/lib/apart-components/editor-toolbar/components/buttons/table-borders/table-borders.component.d.ts +11 -0
  11. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +6 -1
  12. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +6 -3
  13. package/lib/editor/components/editor.component.d.ts +4 -1
  14. package/lib/editor/components/shared/enums/borders.enum.d.ts +10 -0
  15. package/lib/editor/components/table/selection/table-selection.d.ts +1 -0
  16. package/lib/editor/content/display-data/display-data.d.ts +7 -0
  17. package/lib/editor/content/display-data/display-token.model.d.ts +2 -0
  18. package/lib/editor/content/display-data/line-info.model.d.ts +2 -0
  19. package/lib/editor/content/display-data/models/paragraph-info-added.model.d.ts +5 -0
  20. package/lib/editor/content/display-data/models/paragraph-info-content-changed.model.d.ts +7 -0
  21. package/lib/editor/content/display-data/models/paragraph-info-content-inserted.model.d.ts +7 -0
  22. package/lib/editor/content/display-data/models/paragraph-info.model.d.ts +1 -0
  23. package/lib/editor/content/display-data/models/paragraphs-infos-removed.model.d.ts +4 -0
  24. package/lib/editor/content/display-data/text-line-info.d.ts +2 -0
  25. package/lib/editor/display/layers/grammar-highlight.layer.d.ts +12 -0
  26. package/lib/editor/display/render-changes.interface.d.ts +1 -0
  27. package/lib/editor/display/render-changes.model.d.ts +1 -0
  28. package/lib/editor/display/renderer.d.ts +13 -0
  29. package/lib/editor/display/virtual.renderer.d.ts +8 -0
  30. package/lib/editor/execution/edit.session.d.ts +5 -1
  31. package/lib/editor/execution/editor.d.ts +17 -1
  32. package/lib/editor/execution/regulator.service.d.ts +5 -1
  33. package/lib/editor/execution/targeting/cell-session-source.model.d.ts +2 -2
  34. package/lib/editor/gadgets/grammar/grammar-checker.d.ts +25 -0
  35. package/lib/editor/gadgets/grammar/grammar-popup/grammar-popup.component.d.ts +16 -0
  36. package/lib/editor/gadgets/grammar/grammar.const.d.ts +1 -0
  37. package/lib/editor/gadgets/grammar/grammar.service.d.ts +31 -0
  38. package/lib/editor/gadgets/history/operation-history.d.ts +3 -0
  39. package/lib/editor/gadgets/history/operation.type.d.ts +2 -1
  40. package/lib/editor/interaction/editor.service.d.ts +35 -2
  41. package/lib/editor/operations/enums/command-type.enum.d.ts +2 -1
  42. package/lib/editor/operations/helpers/table-operations.helper.d.ts +13 -0
  43. package/lib/editor/operations/operations-helper.helper.d.ts +2 -0
  44. package/lib/editor/operations/save-commands.helper.d.ts +2 -0
  45. package/lib/editor/revision.helper.d.ts +1 -2
  46. package/lib/models/generated/apply-table-cells-styles.model.d.ts +6 -0
  47. package/lib/models/generated/cell-data.model.d.ts +7 -0
  48. package/lib/models/generated/command.model.d.ts +2 -0
  49. package/lib/models/generated/grammar-error.d.ts +9 -0
  50. package/package.json +1 -1
  51. package/public-api.d.ts +1 -0
  52. package/src/_ngx-noder.theme.scss +7 -1
  53. package/src/assets/fonts/nc-iconfont.eot +0 -0
  54. package/src/assets/fonts/nc-iconfont.scss +35 -2
  55. package/src/assets/fonts/nc-iconfont.svg +13 -2
  56. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  57. package/src/assets/fonts/nc-iconfont.woff +0 -0
  58. package/src/lib/apart-components/editor-ruler/_theme.scss +4 -0
  59. package/src/lib/editor/components/_editor.theme.scss +4 -0
  60. package/src/lib/editor/gadgets/grammar/grammar-popup/_theme.scss +26 -0
  61. package/src/scss/base-editor.scss +14 -10
@@ -15,6 +15,7 @@ interface Tick {
15
15
  export declare class EditorRulerComponent {
16
16
  rulerContainer: ElementRef<HTMLDivElement>;
17
17
  unit: import("@angular/core").InputSignal<RulerUnit>;
18
+ disabled: import("@angular/core").InputSignal<boolean>;
18
19
  readonly editorService: EditorService;
19
20
  readonly dialog: MatDialog;
20
21
  readonly defaultPaddingCm = 2.5;
@@ -58,6 +59,6 @@ export declare class EditorRulerComponent {
58
59
  private getClientX;
59
60
  private getCurrentDraggedPx;
60
61
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorRulerComponent, never>;
61
- static ɵcmp: i0.ɵɵComponentDeclaration<EditorRulerComponent, "app-nod-editor-ruler", never, { "unit": { "alias": "unit"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditorRulerComponent, "app-nod-editor-ruler", never, { "unit": { "alias": "unit"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
62
63
  }
63
64
  export {};
@@ -1,10 +1,12 @@
1
1
  import { ChangeDetectorRef, EventEmitter, Injector } from '@angular/core';
2
+ import { Borders } from '../../../editor/components/shared/enums/borders.enum';
2
3
  import { CustomIconService } from '../shared/services/custom-icon.service';
3
4
  import { DestroyComponent } from '../../../editor/components/shared/abstract/destroy.component';
4
5
  import { EditorService } from '../../../editor/interaction/editor.service';
5
6
  import { ElementDataModel } from '../../../editor/components/external-element/models/element-data.model';
6
7
  import { ExternalElementModel } from '../../../editor/components/external-element/models/external-element.model';
7
8
  import { IToolbarStyles } from '../../../editor/content/display-data/toolbar-styles.interface';
9
+ import { LineStyles } from '../../../editor/components/shared/enums/line-styles.enum';
8
10
  import { NumberingLevelModel } from '../../../models/generated/numbering-level.model';
9
11
  import { NumberingTemplateType } from '../shared/enums/numbering-template-type.enum';
10
12
  import { NumberingType } from '../shared/enums/numbering-type.enum';
@@ -30,6 +32,9 @@ export declare abstract class BaseToolbarComponent extends DestroyComponent {
30
32
  rows: number;
31
33
  columns: number;
32
34
  }>;
35
+ updateTableBorderStyle: EventEmitter<LineStyles>;
36
+ updateTableBorderWidth: EventEmitter<number>;
37
+ updateTableBorders: EventEmitter<Borders>;
33
38
  styles: IToolbarStyles;
34
39
  canUndo: boolean;
35
40
  canRedo: boolean;
@@ -45,5 +50,5 @@ export declare abstract class BaseToolbarComponent extends DestroyComponent {
45
50
  private historyInfoSubscription;
46
51
  private stylesSubscription;
47
52
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseToolbarComponent, never>;
48
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToolbarComponent, never, never, {}, { "print": "print"; "redo": "redo"; "undo": "undo"; "createElement": "createElement"; "changeTextStyle": "changeTextStyle"; "changeParagraphStyle": "changeParagraphStyle"; "setNumberingTemplateType": "setNumberingTemplateType"; "removeNumberings": "removeNumberings"; "insertImage": "insertImage"; "insertLink": "insertLink"; "insertTable": "insertTable"; }, never, never, true, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToolbarComponent, never, never, {}, { "print": "print"; "redo": "redo"; "undo": "undo"; "createElement": "createElement"; "changeTextStyle": "changeTextStyle"; "changeParagraphStyle": "changeParagraphStyle"; "setNumberingTemplateType": "setNumberingTemplateType"; "removeNumberings": "removeNumberings"; "insertImage": "insertImage"; "insertLink": "insertLink"; "insertTable": "insertTable"; "updateTableBorderStyle": "updateTableBorderStyle"; "updateTableBorderWidth": "updateTableBorderWidth"; "updateTableBorders": "updateTableBorders"; }, never, never, true, never>;
49
54
  }
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { LineStyles } from '../../../../../editor/components/shared/enums/line-styles.enum';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TableBorderStyleComponent {
5
+ isDisabled: boolean;
6
+ active: boolean;
7
+ lineStyles: typeof LineStyles;
8
+ updateTableBorderStyle: EventEmitter<LineStyles>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableBorderStyleComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableBorderStyleComponent, "app-nod-table-border-style", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; }, { "updateTableBorderStyle": "updateTableBorderStyle"; }, never, never, true, never>;
11
+ }
@@ -0,0 +1,10 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TableBorderWidthComponent {
4
+ isDisabled: boolean;
5
+ active: boolean;
6
+ widths: number[];
7
+ updateTableBorderWidth: EventEmitter<number>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableBorderWidthComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableBorderWidthComponent, "app-nod-table-border-width", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; }, { "updateTableBorderWidth": "updateTableBorderWidth"; }, never, never, true, never>;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Borders } from '../../../../../editor/components/shared/enums/borders.enum';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TableBordersComponent {
5
+ isDisabled: boolean;
6
+ active: boolean;
7
+ borders: typeof Borders;
8
+ updateTableBorders: EventEmitter<Borders>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableBordersComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableBordersComponent, "app-nod-table-borders", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; }, { "updateTableBorders": "updateTableBorders"; }, never, never, true, never>;
11
+ }
@@ -1,6 +1,8 @@
1
1
  import { EventEmitter } from '@angular/core';
2
+ import { Borders } from '../../../editor/components/shared/enums/borders.enum';
2
3
  import { EditorService } from '../../../editor/interaction/editor.service';
3
4
  import { ElementDataModel } from '../../../editor/components/external-element/models/element-data.model';
5
+ import { LineStyles } from '../../../editor/components/shared/enums/line-styles.enum';
4
6
  import { NumberingLevelModel } from '../../../models/generated/numbering-level.model';
5
7
  import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
6
8
  import { TextStyleModel } from '../../../models/generated/text-style.model';
@@ -36,7 +38,10 @@ export declare class EditorToolbarComponent {
36
38
  rows: number;
37
39
  columns: number;
38
40
  }>;
41
+ updateTableBorderStyle: EventEmitter<LineStyles>;
42
+ updateTableBorderWidth: EventEmitter<number>;
43
+ updateTableBorders: EventEmitter<Borders>;
39
44
  constructor(editorService: EditorService);
40
45
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorToolbarComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<EditorToolbarComponent, "app-nod-editor-toolbar", never, {}, { "openFileFromDisk": "openFileFromDisk"; "addCustomElement": "addCustomElement"; "saveAs": "saveAs"; "downloadPdf": "downloadPdf"; "print": "print"; "insertPageBreak": "insertPageBreak"; "createDocument": "createDocument"; "pageSetup": "pageSetup"; "insertImage": "insertImage"; "rename": "rename"; "delete": "delete"; "openEditMenu": "openEditMenu"; "redo": "redo"; "undo": "undo"; "cutSelected": "cutSelected"; "copySelected": "copySelected"; "pasteClipboardData": "pasteClipboardData"; "selectAll": "selectAll"; "removeSelected": "removeSelected"; "insertLink": "insertLink"; "createElement": "createElement"; "changeParagraphStyle": "changeParagraphStyle"; "changeTextStyle": "changeTextStyle"; "setNumberingTemplateType": "setNumberingTemplateType"; "removeNumberings": "removeNumberings"; "insertTable": "insertTable"; }, never, never, false, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditorToolbarComponent, "app-nod-editor-toolbar", never, {}, { "openFileFromDisk": "openFileFromDisk"; "addCustomElement": "addCustomElement"; "saveAs": "saveAs"; "downloadPdf": "downloadPdf"; "print": "print"; "insertPageBreak": "insertPageBreak"; "createDocument": "createDocument"; "pageSetup": "pageSetup"; "insertImage": "insertImage"; "rename": "rename"; "delete": "delete"; "openEditMenu": "openEditMenu"; "redo": "redo"; "undo": "undo"; "cutSelected": "cutSelected"; "copySelected": "copySelected"; "pasteClipboardData": "pasteClipboardData"; "selectAll": "selectAll"; "removeSelected": "removeSelected"; "insertLink": "insertLink"; "createElement": "createElement"; "changeParagraphStyle": "changeParagraphStyle"; "changeTextStyle": "changeTextStyle"; "setNumberingTemplateType": "setNumberingTemplateType"; "removeNumberings": "removeNumberings"; "insertTable": "insertTable"; "updateTableBorderStyle": "updateTableBorderStyle"; "updateTableBorderWidth": "updateTableBorderWidth"; "updateTableBorders": "updateTableBorders"; }, never, never, false, never>;
42
47
  }
@@ -24,10 +24,13 @@ import * as i22 from "@angular/material/icon";
24
24
  import * as i23 from "@angular/material/menu";
25
25
  import * as i24 from "@angular/material/tooltip";
26
26
  import * as i25 from "@angular/forms";
27
- import * as i26 from "../text-format-mobile/text-format-mobile.component";
28
- import * as i27 from "@ngx-translate/core";
27
+ import * as i26 from "./components/buttons/table-borders/table-borders.component";
28
+ import * as i27 from "./components/buttons/table-border-style/table-border-style.component";
29
+ import * as i28 from "./components/buttons/table-border-width/table-border-width.component";
30
+ import * as i29 from "../text-format-mobile/text-format-mobile.component";
31
+ import * as i30 from "@ngx-translate/core";
29
32
  export declare class EditorToolbarModule {
30
33
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorToolbarModule, never>;
31
- static ɵmod: i0.ɵɵNgModuleDeclaration<EditorToolbarModule, [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i3.FontStyleComponent, typeof i4.FormatComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i7.NumberingComponent, typeof i8.PrintComponent, typeof i9.ToolbarActionsComponent, typeof i10.UndoRedoComponent, typeof i11.ZoomComponent], [typeof i12.ColorPickerComponent, typeof i13.CommonModule, typeof i14.FontComponent, typeof i15.FontSizeComponent, typeof i16.InsertTableComponent, typeof i17.InsertTableMobileComponent, typeof i18.MatAutocompleteModule, typeof i19.MatButtonModule, typeof i20.MatButtonToggleModule, typeof i21.MatExpansionModule, typeof i22.MatIconModule, typeof i23.MatMenuModule, typeof i24.MatTooltipModule, typeof i25.ReactiveFormsModule, typeof i26.TextFormatMobileComponent, typeof i27.TranslateModule], [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i9.ToolbarActionsComponent]>;
34
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EditorToolbarModule, [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i3.FontStyleComponent, typeof i4.FormatComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i7.NumberingComponent, typeof i8.PrintComponent, typeof i9.ToolbarActionsComponent, typeof i10.UndoRedoComponent, typeof i11.ZoomComponent], [typeof i12.ColorPickerComponent, typeof i13.CommonModule, typeof i14.FontComponent, typeof i15.FontSizeComponent, typeof i16.InsertTableComponent, typeof i17.InsertTableMobileComponent, typeof i18.MatAutocompleteModule, typeof i19.MatButtonModule, typeof i20.MatButtonToggleModule, typeof i21.MatExpansionModule, typeof i22.MatIconModule, typeof i23.MatMenuModule, typeof i24.MatTooltipModule, typeof i25.ReactiveFormsModule, typeof i26.TableBordersComponent, typeof i27.TableBorderStyleComponent, typeof i28.TableBorderWidthComponent, typeof i29.TextFormatMobileComponent, typeof i30.TranslateModule], [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i9.ToolbarActionsComponent]>;
32
35
  static ɵinj: i0.ɵɵInjectorDeclaration<EditorToolbarModule>;
33
36
  }
@@ -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>;
@@ -0,0 +1,10 @@
1
+ export declare enum Borders {
2
+ Bottom = 0,
3
+ Top = 1,
4
+ Left = 2,
5
+ Right = 3,
6
+ Empty = 4,
7
+ All = 5,
8
+ Outside = 6,
9
+ Inside = 7
10
+ }
@@ -60,6 +60,7 @@ export declare class TableSelection {
60
60
  };
61
61
  getNearestRowIndex(event: MouseEvent): number;
62
62
  addSelectionInAllCells(): void;
63
+ highlightCurrentSelectionCells(): void;
63
64
  clearSelection(): void;
64
65
  clearSelectionInAllCells(): void;
65
66
  getStartAndEndIndexes(originIndex: number, currentIndex: number): {
@@ -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,6 +35,9 @@ 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;
36
43
  insertText(position: CursorParagraph, text: string): CursorParagraph;
@@ -18,10 +18,12 @@ export declare class DisplayToken implements IFontMetricSize {
18
18
  indentRight: number;
19
19
  indentBefore: number;
20
20
  indentAfter: number;
21
+ markerWidth: number;
21
22
  isPageBreak: boolean;
22
23
  isLineBreak: boolean;
23
24
  isTab: boolean;
24
25
  isTable: boolean;
26
+ isNumbering: boolean;
25
27
  get breaksLine(): boolean;
26
28
  constructor(fields?: Partial<DisplayToken>);
27
29
  }
@@ -11,6 +11,8 @@ export declare class LineInfoModel {
11
11
  isEndedByPageBreak: boolean;
12
12
  backgroundColor: string;
13
13
  hasTable: boolean;
14
+ isNumbering: boolean;
15
+ markerWidth?: number;
14
16
  wordSpacing?: number;
15
17
  wordSpacingWidth?: number;
16
18
  constructor(fields?: Partial<LineInfoModel>);
@@ -0,0 +1,5 @@
1
+ import { ParagraphInfoModel } from './paragraph-info.model';
2
+ export declare class ParagraphInfoAdded {
3
+ paragraph: ParagraphInfoModel;
4
+ constructor(paragraph: ParagraphInfoModel);
5
+ }
@@ -0,0 +1,7 @@
1
+ import { ParagraphInfoModel } from './paragraph-info.model';
2
+ export declare class ParagraphInfoContentChanged {
3
+ paragraph: ParagraphInfoModel;
4
+ index: number;
5
+ length: number;
6
+ constructor(paragraph: ParagraphInfoModel, index: number, length: number);
7
+ }
@@ -0,0 +1,7 @@
1
+ import { ParagraphInfoModel } from './paragraph-info.model';
2
+ export declare class ParagraphInfoContentInserted {
3
+ paragraph: ParagraphInfoModel;
4
+ index: number;
5
+ length: number;
6
+ constructor(paragraph: ParagraphInfoModel, index: number, length: number);
7
+ }
@@ -5,5 +5,6 @@ export declare class ParagraphInfoModel {
5
5
  paragraphSettings: Paragraph;
6
6
  startIndex: number;
7
7
  lineNumber: number;
8
+ id: number;
8
9
  constructor(fields?: Partial<ParagraphInfoModel>);
9
10
  }
@@ -0,0 +1,4 @@
1
+ export declare class ParagraphInfosRemoved {
2
+ ids: number[];
3
+ constructor(id: number[]);
4
+ }
@@ -19,5 +19,7 @@ export declare class TextLineInfo {
19
19
  indentLeft: number;
20
20
  wordSpacing?: number;
21
21
  wordSpacingWidth?: number;
22
+ isNumbering: boolean;
23
+ markerWidth?: number;
22
24
  constructor(offsetMargin: number, contentWidth: number, align: number, indent: IndentModel, fields?: Partial<LineInfoModel>);
23
25
  }
@@ -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
+ }
@@ -9,5 +9,6 @@ export interface IRenderChanges {
9
9
  text?: boolean;
10
10
  dragAndDrop?: boolean;
11
11
  search?: boolean;
12
+ grammar?: boolean;
12
13
  visibilityChanged?: boolean;
13
14
  }
@@ -6,6 +6,7 @@ export declare class RenderChangesModel implements IRenderChanges {
6
6
  marker: boolean;
7
7
  selection: boolean;
8
8
  search: boolean;
9
+ grammar: boolean;
9
10
  scroll: boolean;
10
11
  size: boolean;
11
12
  text: boolean;
@@ -1,9 +1,13 @@
1
+ import { Subject } from 'rxjs';
1
2
  import { CursorLayer } from './layers/cursor.layer';
2
3
  import { CursorParagraph } from '../positioning/cursor-paragraph';
3
4
  import { CustomElementInfo } from './custom-element-info.model';
4
5
  import { EditSession } from '../execution/edit.session';
5
6
  import { EventEmitting } from '../core/event-emitting';
7
+ import { GrammarError } from '../../models/generated/grammar-error';
8
+ import { GrammarHighlightLayer } from './layers/grammar-highlight.layer';
6
9
  import { ILayerConfig } from './layers/layer.config';
10
+ import { ParagraphInfoModel } from '../content/display-data/models/paragraph-info.model';
7
11
  import { Range } from '../positioning/range';
8
12
  import { RenderChangesModel } from './render-changes.model';
9
13
  import { RenderLoop } from './renderloop';
@@ -19,11 +23,16 @@ export declare class Renderer extends EventEmitting {
19
23
  selectionLayer: SelectionLayer;
20
24
  dragAndDropSelectionLayer: SelectionLayer;
21
25
  searchHighlightLayer: SearchHighlightLayer;
26
+ grammarHighlightLayer: GrammarHighlightLayer;
22
27
  loop: RenderLoop;
23
28
  textarea: HTMLElement;
24
29
  layerConfig: ILayerConfig;
25
30
  isVisible: boolean;
26
31
  changes: RenderChangesModel;
32
+ readonly ParagraphsAppeared: Subject<ParagraphInfoModel[]>;
33
+ get ParagraphsAppeared$(): import("rxjs").Observable<ParagraphInfoModel[]>;
34
+ private visibilitySubject;
35
+ private visibilitySubscription;
27
36
  readonly textareaSize: {
28
37
  height: number;
29
38
  width: number;
@@ -39,6 +48,8 @@ export declare class Renderer extends EventEmitting {
39
48
  updateSearchHighlights(ranges: Range[]): void;
40
49
  updateCustomElementHighlights(ranges: CustomElementInfo[]): void;
41
50
  updateActiveSearchHighlight(active: Range | CustomElementInfo): void;
51
+ updateGrammarHighlights(paragraphId: number, errors: GrammarError[]): void;
52
+ removeGrammarHighlights(paragraphId: number): void;
42
53
  updateDragAndDropSelection(range: Range | null): void;
43
54
  clearDragAndDropSelection(): void;
44
55
  setVisibility(isVisible: boolean): void;
@@ -66,8 +77,10 @@ export declare class Renderer extends EventEmitting {
66
77
  renderCursor(): void;
67
78
  renderSelection(): void;
68
79
  renderSearchHighlights(): void;
80
+ renderGrammarHighlights(): void;
69
81
  renderDragAndDropSelection(): void;
70
82
  private computeLayerConfig;
71
83
  private pagesCountChangedHandler;
72
84
  private createContentContainer;
85
+ private paragraphsScrolledIntoView;
73
86
  }
@@ -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';
@@ -34,6 +35,9 @@ export declare class VirtualRenderer {
34
35
  dirty: boolean;
35
36
  };
36
37
  private scrollSubscription;
38
+ private paragraphsScrolledIntoViewSubject;
39
+ private paragraphsScrolledIntoViewSubscription;
40
+ get ParagraphsAppeared$(): import("rxjs").Observable<import("../content/display-data/models/paragraph-info.model").ParagraphInfoModel[]>;
37
41
  constructor(parentContainer: HTMLElement, mainSession: EditSession, scrollBar: ScrollBar);
38
42
  renderChanges(changes: RenderChangesModel, force?: boolean): void;
39
43
  /**
@@ -50,6 +54,8 @@ export declare class VirtualRenderer {
50
54
  updateSearchHighlights(ranges: Range[]): void;
51
55
  updateCustomElementHighlights(ranges: CustomElementInfo[]): void;
52
56
  updateActiveSearchHighlight(active: Range | CustomElementInfo): void;
57
+ updateGrammarHighlights(paragraphIndex: number, errors: GrammarError[]): void;
58
+ removeGrammarHighlights(paragraphIndex: number): void;
53
59
  updateDragAndDropSelection(range: Range): void;
54
60
  clearDragAndDropSelection(): void;
55
61
  /**
@@ -81,5 +87,7 @@ export declare class VirtualRenderer {
81
87
  private renderCursor;
82
88
  private renderSelection;
83
89
  private renderSearchHighlights;
90
+ private renderGrammarHighlights;
84
91
  private renderDragAndDropSelection;
92
+ private paragraphsScrolledIntoView;
85
93
  }
@@ -1,5 +1,6 @@
1
1
  import { ComponentRef, Type } from '@angular/core';
2
2
  import { ApplyImageStyleModel } from '../../models/generated/apply-image-style.model';
3
+ import { ApplyTableCellsStylesModel } from '../../models/generated/apply-table-cells-styles.model';
3
4
  import { BaseNoderComponent } from '../components/shared/abstract/base.component';
4
5
  import { BreakTypes } from '../gadgets/page-break/break-types.enum';
5
6
  import { ContentType } from '../content/contents.interface';
@@ -55,6 +56,7 @@ export declare class EditSession {
55
56
  nonTokenRe: RegExp;
56
57
  get scrollTop(): number;
57
58
  get scrollBarHeight(): number;
59
+ 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
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);
59
61
  destroy(): void;
60
62
  getRowLength(row: number): number;
@@ -72,7 +74,8 @@ export declare class EditSession {
72
74
  getDisplayLine(row: number, endColumn: number, startColumn?: number): string;
73
75
  isEdgeOrWithinEdge(): boolean;
74
76
  isEdge(): boolean;
75
- isWithinEdge(): boolean;
77
+ isCell(): boolean;
78
+ isCellWithinEdge(): boolean;
76
79
  onRendered(): void;
77
80
  provideTextStyle(start: number, end: number): void;
78
81
  removeByDocumentIndexes(startIndex: number, endIndex: number): void;
@@ -105,6 +108,7 @@ export declare class EditSession {
105
108
  insertImage(position: CursorParagraph, imageData: ImageDataModel): CursorParagraph;
106
109
  insertLink(position: CursorParagraph, linkData: LinkDataModel): CursorParagraph;
107
110
  insertTable(position: CursorParagraph, tableModel: InsertTableModel): CursorParagraph;
111
+ applyTableCellsStyles(model: ApplyTableCellsStylesModel): void;
108
112
  removeMoveRange(moveModel: MoveRangeModel): RestoreModel;
109
113
  restoreMoveRange(restoreModel: RestoreModel, moveModel: MoveRangeModel, _sourceSessionId: number): Range;
110
114
  isPositionInRange(position: CursorParagraph, range: Range): boolean;
@@ -1,6 +1,7 @@
1
1
  import { Clipboard } from '@angular/cdk/clipboard';
2
2
  import { ElementRef } from '@angular/core';
3
3
  import { Subscription } from 'rxjs';
4
+ import { ApplyTableCellsStylesModel } from '../../models/generated/apply-table-cells-styles.model';
4
5
  import { BaseNoderComponent } from '../components/shared/abstract/base.component';
5
6
  import { BreakTypes } from '../gadgets/page-break/break-types.enum';
6
7
  import { CommandsService } from '../operations/commands.service';
@@ -12,6 +13,8 @@ import { EdgeType } from '../components/edges/edge-type.enum';
12
13
  import { EditorService } from '../interaction/editor.service';
13
14
  import { EditSession } from './edit.session';
14
15
  import { ElementDataModel } from '../components/external-element/models/element-data.model';
16
+ import { GrammarChecker } from '../gadgets/grammar/grammar-checker';
17
+ import { GrammarError } from '../../models/generated/grammar-error';
15
18
  import { ImageDataModel } from '../../models/generated/image-data.model';
16
19
  import { ImageModel } from '../../models/generated/image.model';
17
20
  import { InputHandler } from '../interaction/input.handler';
@@ -28,6 +31,7 @@ import { MoveRangeModel } from '../../models/generated/move-range.model';
28
31
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
29
32
  import { Operation } from '../gadgets/history/operation.type';
30
33
  import { OperationHistory } from '../gadgets/history/operation-history';
34
+ import { OverlayService } from '../components/shared/services/overlay.service';
31
35
  import { PageFormatModel } from '../../models/generated/page-format.model';
32
36
  import { PageType } from '../components/edges/page-type.enum';
33
37
  import { ParagraphModel } from '../../models/generated/paragraph.model';
@@ -40,7 +44,9 @@ import { ReplaceModel } from '../../models/generated/replace.model';
40
44
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
41
45
  import { RestoreWithParagraphModel } from '../../models/generated/restore-with-paragraph.model';
42
46
  import { Selection } from '../positioning/selection';
47
+ import { SelectionRangeModel } from '../components/table/models/selection-range.model';
43
48
  import { SessionModel } from '../execution/targeting/session.model';
49
+ import { TableModel } from '../../models/generated/table.model';
44
50
  import { TargetModel } from '../../models/generated/target.model';
45
51
  import { TextStyleModel } from '../../models/generated/text-style.model';
46
52
  import { TouchHandler } from '../interaction/touch.handler';
@@ -49,6 +55,7 @@ export declare class Editor {
49
55
  private model;
50
56
  private container;
51
57
  private editorService;
58
+ private overlayService;
52
59
  private regulatorService;
53
60
  private commandsService;
54
61
  private clipboard;
@@ -67,6 +74,7 @@ export declare class Editor {
67
74
  get renderer(): Renderer | VirtualRenderer;
68
75
  get isViewOnly(): boolean;
69
76
  get targets(): TargetModel[];
77
+ get grammarChecker(): GrammarChecker;
70
78
  selection: Selection;
71
79
  mouseHandler: MouseHandler;
72
80
  touchHandler: TouchHandler;
@@ -80,7 +88,7 @@ export declare class Editor {
80
88
  private textInput;
81
89
  private clipboardData;
82
90
  private isRerenderSubscriptionOpen;
83
- constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], customPageWidth?: number);
91
+ constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, overlayService: OverlayService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], customPageWidth?: number);
84
92
  destroy(): void;
85
93
  selectPageDown(): void;
86
94
  selectPageUp(): void;
@@ -100,6 +108,7 @@ export declare class Editor {
100
108
  rows: number;
101
109
  columns: number;
102
110
  }): void;
111
+ applyTableCellsStyles<T>(data: T, handler: (data: T, table: TableModel, selection: SelectionRangeModel) => ApplyTableCellsStylesModel): void;
103
112
  replaceBy(model: ReplaceModel): void;
104
113
  removeToLineStart(): void;
105
114
  removeToLineEnd(): void;
@@ -135,6 +144,7 @@ export declare class Editor {
135
144
  saveInsertImageToHistory(model: InsertImageModel): void;
136
145
  saveInsertLinkToHistory(model: InsertLinkModel): void;
137
146
  saveInsertTableToHistory(model: InsertTableModel): void;
147
+ saveApplyTableCellsStylesToHistory(table: TableModel, model: ApplyTableCellsStylesModel, targets: TargetModel[]): void;
138
148
  saveApplyTextStyleToHistory(startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
139
149
  saveApplyParagraphsToHistory(oldParagraphs: ParagraphModel[], updatedParagraphs: ParagraphModel[]): void;
140
150
  saveApplyParagraphStyleToHistory(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel): void;
@@ -205,6 +215,7 @@ export declare class Editor {
205
215
  applyPageFormat(model: PageFormatModel): void;
206
216
  insertPageFormat(model: PageFormatModel): void;
207
217
  applyDocumentPageFormat(model: PageFormatModel): void;
218
+ applyGrammarSuggestion(error: GrammarError, paragraphIndex: number, suggestionIndex: number): void;
208
219
  receiveTextStyleSubscription(): Subscription;
209
220
  viewOnlyModeSubscription(): Subscription;
210
221
  applyLeftMarginPageFormatSubscription(): Subscription;
@@ -214,6 +225,8 @@ export declare class Editor {
214
225
  applyDocumentPageFormatSubscription(): Subscription;
215
226
  searchOptionSubscriptions(): Subscription[];
216
227
  replaceSubscription(): Subscription[];
228
+ grammarReplaceSubscription(): Subscription;
229
+ ignoreGrammarErrorSubscription(): Subscription;
217
230
  setTextStylesSubscription(): Subscription;
218
231
  setParagraphStylesSubscription(): Subscription;
219
232
  setNumberingTemplateTypeSubscription(): Subscription;
@@ -242,6 +255,9 @@ export declare class Editor {
242
255
  removeRightSubscription(): Subscription;
243
256
  resizeTableColumnsSubscription(): Subscription;
244
257
  insertTableSubscription(): Subscription;
258
+ updateTableBorderStyleSubscription(): Subscription;
259
+ updateTableBorderWidthSubscription(): Subscription;
260
+ updateTableBordersSubscription(): Subscription;
245
261
  insertTextSubscription(): Subscription;
246
262
  undoSubscription(): Subscription;
247
263
  redoSubscription(): 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
- constructor(customContentService: CustomContentService, editorService: EditorService, componentService: ComponentService);
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;
@@ -3,8 +3,8 @@ import { SessionSourceModel } from './session-source.model';
3
3
  import { TableModel } from '../../../models/generated/table.model';
4
4
  import { TargetModel } from '../../../models/generated/target.model';
5
5
  export declare class CellSessionSourceModel implements SessionSourceModel {
6
- private table;
7
- private cellComponent;
6
+ readonly table: TableModel;
7
+ readonly cellComponent: NoderTableCellComponent;
8
8
  constructor(table: TableModel, cellComponent: NoderTableCellComponent);
9
9
  getTarget(): TargetModel;
10
10
  }
@@ -0,0 +1,25 @@
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 sessionMap;
8
+ private readonly paragraphErrorMap;
9
+ private readonly checkedParagraphs;
10
+ private readonly sessionSubscriptions;
11
+ private readonly ignoreList;
12
+ private readonly checkResultsSubscription;
13
+ private readonly visibilitySubscriptions;
14
+ constructor(grammarService: GrammarService);
15
+ registerSession(session: SessionModel): void;
16
+ unregisterSession(sessionId: number): void;
17
+ getError(sessionId: number, paragraphId: number, cursorIndex: number): GrammarError | null;
18
+ addErrorToIgnoreList(grammarError: GrammarError): void;
19
+ destroy(): void;
20
+ private filterErrors;
21
+ private processGrammarCheckResults;
22
+ private processParagraphChange;
23
+ private adjustHighlights;
24
+ private getSessionIdFromKey;
25
+ }
@@ -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;