@talrace/ngx-noder 0.0.46 → 19.0.24

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 (54) hide show
  1. package/README.md +650 -649
  2. package/assets/i18n/noder.en.json +11 -0
  3. package/assets/i18n/noder.es.json +11 -0
  4. package/assets/i18n/noder.ru.json +11 -0
  5. package/fesm2022/talrace-ngx-noder.mjs +904 -205
  6. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  7. package/lib/apart-components/editor-ruler/editor-ruler.component.d.ts +2 -1
  8. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +6 -1
  9. package/lib/apart-components/editor-toolbar/components/buttons/table-border-style/table-border-style.component.d.ts +11 -0
  10. package/lib/apart-components/editor-toolbar/components/buttons/table-border-width/table-border-width.component.d.ts +10 -0
  11. package/lib/apart-components/editor-toolbar/components/buttons/table-borders/table-borders.component.d.ts +11 -0
  12. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +6 -1
  13. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +6 -3
  14. package/lib/editor/components/editor.component.d.ts +3 -1
  15. package/lib/editor/components/shared/enums/borders.enum.d.ts +10 -0
  16. package/lib/editor/components/shared/services/overlay.service.d.ts +1 -0
  17. package/lib/editor/components/table/selection/table-selection.d.ts +1 -0
  18. package/lib/editor/content/display-data/display-data.d.ts +0 -1
  19. package/lib/editor/content/display-data/display-token.model.d.ts +2 -0
  20. package/lib/editor/content/display-data/line-info.model.d.ts +2 -0
  21. package/lib/editor/content/display-data/text-line-info.d.ts +3 -0
  22. package/lib/editor/display/renderer.d.ts +7 -0
  23. package/lib/editor/display/virtual.renderer.d.ts +4 -0
  24. package/lib/editor/editor.module.d.ts +6 -0
  25. package/lib/editor/execution/edit.session.d.ts +4 -1
  26. package/lib/editor/execution/editor.d.ts +14 -1
  27. package/lib/editor/execution/targeting/cell-session-source.model.d.ts +2 -2
  28. package/lib/editor/gadgets/grammar/grammar-checker.d.ts +7 -3
  29. package/lib/editor/gadgets/grammar/grammar.service.d.ts +6 -0
  30. package/lib/editor/gadgets/history/operation-history.d.ts +3 -0
  31. package/lib/editor/gadgets/history/operation.type.d.ts +2 -1
  32. package/lib/editor/gadgets/insert-overlays/insert-overlay-component.interface.d.ts +3 -0
  33. package/lib/editor/gadgets/insert-overlays/insert-overlays.d.ts +10 -0
  34. package/lib/editor/interaction/editor.service.d.ts +27 -2
  35. package/lib/editor/operations/enums/command-type.enum.d.ts +2 -1
  36. package/lib/editor/operations/helpers/table-operations.helper.d.ts +13 -0
  37. package/lib/editor/operations/operations-helper.helper.d.ts +2 -0
  38. package/lib/editor/operations/save-commands.helper.d.ts +2 -0
  39. package/lib/editor/positioning/position.helper.d.ts +3 -0
  40. package/lib/editor/positioning/selection.d.ts +3 -0
  41. package/lib/editor/revision.helper.d.ts +1 -2
  42. package/lib/models/generated/apply-table-cells-styles.model.d.ts +6 -0
  43. package/lib/models/generated/cell-data.model.d.ts +7 -0
  44. package/lib/models/generated/command.model.d.ts +2 -0
  45. package/package.json +1 -1
  46. package/public-api.d.ts +1 -0
  47. package/src/assets/fonts/nc-iconfont.eot +0 -0
  48. package/src/assets/fonts/nc-iconfont.scss +35 -2
  49. package/src/assets/fonts/nc-iconfont.svg +13 -2
  50. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  51. package/src/assets/fonts/nc-iconfont.woff +0 -0
  52. package/src/lib/apart-components/editor-ruler/_theme.scss +4 -0
  53. package/src/lib/editor/components/_editor.theme.scss +4 -0
  54. package/src/scss/base-editor.scss +9 -11
@@ -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 { InsertOverlays } from '../gadgets/insert-overlays/insert-overlays';
12
13
  import { OverlayService } from './shared/services/overlay.service';
13
14
  import { RegulatorService } from '../execution/regulator.service';
14
15
  import { RulerUnit } from '../../apart-components/editor-ruler/editor-ruler.component';
@@ -22,6 +23,7 @@ export declare class EditorComponent implements OnDestroy {
22
23
  private regulatorService;
23
24
  private commandsService;
24
25
  private clipboard;
26
+ private insertOverlays;
25
27
  get isViewOnly$(): Observable<boolean>;
26
28
  isMobile: boolean;
27
29
  externalElementTagNames: string[];
@@ -40,7 +42,7 @@ export declare class EditorComponent implements OnDestroy {
40
42
  sidenavProperties: ExternalSidenavModel;
41
43
  readonly subscriptions: Subscription[];
42
44
  private sidenavComponentRef;
43
- constructor(cdr: ChangeDetectorRef, componentService: ComponentService, editorService: EditorService, overlayService: OverlayService, injector: Injector, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard);
45
+ constructor(cdr: ChangeDetectorRef, componentService: ComponentService, editorService: EditorService, overlayService: OverlayService, injector: Injector, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, insertOverlays: InsertOverlays);
44
46
  ngOnDestroy(): void;
45
47
  initEditor(content: DocxModel): void;
46
48
  toggleSidenavSubscription(): Subscription;
@@ -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
+ }
@@ -13,6 +13,7 @@ export declare class OverlayService {
13
13
  clickSubscription(): void;
14
14
  getOverlayConfig(xPosition: number, yPosition: number): OverlayConfig;
15
15
  getOverlayPosition(xPosition: number, yPosition: number): PositionStrategy;
16
+ scroll(deltaY: number): void;
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<OverlayService, never>;
17
18
  static ɵprov: i0.ɵɵInjectableDeclaration<OverlayService>;
18
19
  }
@@ -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): {
@@ -40,7 +40,6 @@ export declare class DisplayData extends EventEmitting {
40
40
  private lastParagraphId;
41
41
  constructor(model: ContentType, generalProperties: GeneralPropertiesModel, sessionId: number, pageFormatModels: PageFormatModel[], pagesSpace: number, customComponents: ICustomComponents, customContentService: CustomContentService, editorService: EditorService);
42
42
  updateDataForModel(): void;
43
- emitAllParagraphs(): void;
44
43
  insertText(position: CursorParagraph, text: string): CursorParagraph;
45
44
  removeRange(range: Range): void;
46
45
  getParagraphContent(index: number): string;
@@ -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>);
@@ -17,7 +17,10 @@ export declare class TextLineInfo {
17
17
  hasTable: boolean;
18
18
  splitOffset: number;
19
19
  indentLeft: number;
20
+ indentFirstLine: number;
20
21
  wordSpacing?: number;
21
22
  wordSpacingWidth?: number;
23
+ isNumbering: boolean;
24
+ markerWidth?: number;
22
25
  constructor(offsetMargin: number, contentWidth: number, align: number, indent: IndentModel, fields?: Partial<LineInfoModel>);
23
26
  }
@@ -1,3 +1,4 @@
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';
@@ -6,6 +7,7 @@ import { EventEmitting } from '../core/event-emitting';
6
7
  import { GrammarError } from '../../models/generated/grammar-error';
7
8
  import { GrammarHighlightLayer } from './layers/grammar-highlight.layer';
8
9
  import { ILayerConfig } from './layers/layer.config';
10
+ import { ParagraphInfoModel } from '../content/display-data/models/paragraph-info.model';
9
11
  import { Range } from '../positioning/range';
10
12
  import { RenderChangesModel } from './render-changes.model';
11
13
  import { RenderLoop } from './renderloop';
@@ -27,6 +29,10 @@ export declare class Renderer extends EventEmitting {
27
29
  layerConfig: ILayerConfig;
28
30
  isVisible: boolean;
29
31
  changes: RenderChangesModel;
32
+ readonly ParagraphsAppeared: Subject<ParagraphInfoModel[]>;
33
+ get ParagraphsAppeared$(): import("rxjs").Observable<ParagraphInfoModel[]>;
34
+ private visibilitySubject;
35
+ private visibilitySubscription;
30
36
  readonly textareaSize: {
31
37
  height: number;
32
38
  width: number;
@@ -76,4 +82,5 @@ export declare class Renderer extends EventEmitting {
76
82
  private computeLayerConfig;
77
83
  private pagesCountChangedHandler;
78
84
  private createContentContainer;
85
+ private paragraphsScrolledIntoView;
79
86
  }
@@ -35,6 +35,9 @@ export declare class VirtualRenderer {
35
35
  dirty: boolean;
36
36
  };
37
37
  private scrollSubscription;
38
+ private paragraphsScrolledIntoViewSubject;
39
+ private paragraphsScrolledIntoViewSubscription;
40
+ get ParagraphsAppeared$(): import("rxjs").Observable<import("../content/display-data/models/paragraph-info.model").ParagraphInfoModel[]>;
38
41
  constructor(parentContainer: HTMLElement, mainSession: EditSession, scrollBar: ScrollBar);
39
42
  renderChanges(changes: RenderChangesModel, force?: boolean): void;
40
43
  /**
@@ -86,4 +89,5 @@ export declare class VirtualRenderer {
86
89
  private renderSearchHighlights;
87
90
  private renderGrammarHighlights;
88
91
  private renderDragAndDropSelection;
92
+ private paragraphsScrolledIntoView;
89
93
  }
@@ -1,7 +1,9 @@
1
+ import { ComponentType } from '@angular/cdk/portal';
1
2
  import { ModuleWithProviders, Type } from '@angular/core';
2
3
  import { ImageApiService } from './components/image/image-api.service';
3
4
  import { ExternalElementInterface } from '../editor/components/external-element/external-element.service';
4
5
  import { ExternalSidenavModel } from './components/external-element/models/external-sidenav.model';
6
+ import { InsertOverlayComponentInterface } from './gadgets/insert-overlays/insert-overlay-component.interface';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "./components/editor.component";
7
9
  import * as i2 from "./components/edges/edge.component";
@@ -24,6 +26,10 @@ import * as i18 from "@ngx-translate/core";
24
26
  export interface INoderOptions {
25
27
  sidenav?: Partial<ExternalSidenavModel>;
26
28
  imageApiService?: Type<ImageApiService>;
29
+ insertOverlays?: {
30
+ key: string;
31
+ component: ComponentType<InsertOverlayComponentInterface>;
32
+ }[];
27
33
  elementService: Type<ExternalElementInterface>;
28
34
  }
29
35
  export declare class EditorModule {
@@ -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';
@@ -73,7 +74,8 @@ export declare class EditSession {
73
74
  getDisplayLine(row: number, endColumn: number, startColumn?: number): string;
74
75
  isEdgeOrWithinEdge(): boolean;
75
76
  isEdge(): boolean;
76
- isWithinEdge(): boolean;
77
+ isCell(): boolean;
78
+ isCellWithinEdge(): boolean;
77
79
  onRendered(): void;
78
80
  provideTextStyle(start: number, end: number): void;
79
81
  removeByDocumentIndexes(startIndex: number, endIndex: number): void;
@@ -106,6 +108,7 @@ export declare class EditSession {
106
108
  insertImage(position: CursorParagraph, imageData: ImageDataModel): CursorParagraph;
107
109
  insertLink(position: CursorParagraph, linkData: LinkDataModel): CursorParagraph;
108
110
  insertTable(position: CursorParagraph, tableModel: InsertTableModel): CursorParagraph;
111
+ applyTableCellsStyles(model: ApplyTableCellsStylesModel): void;
109
112
  removeMoveRange(moveModel: MoveRangeModel): RestoreModel;
110
113
  restoreMoveRange(restoreModel: RestoreModel, moveModel: MoveRangeModel, _sourceSessionId: number): Range;
111
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';
@@ -21,6 +22,7 @@ import { InsertBreakModel } from '../../models/generated/insert-break.model';
21
22
  import { InsertElementModel } from '../../models/generated/insert-element.model';
22
23
  import { InsertImageModel } from '../../models/generated/insert-image.model';
23
24
  import { InsertLinkModel } from '../../models/generated/insert-link.model';
25
+ import { InsertOverlays } from '../gadgets/insert-overlays/insert-overlays';
24
26
  import { InsertTableModel } from '../../models/generated/insert-table.model';
25
27
  import { InsertTabModel } from '../../models/generated/insert-tab.model';
26
28
  import { LinkDataModel } from '../../models/generated/link-data.model';
@@ -43,7 +45,9 @@ import { ReplaceModel } from '../../models/generated/replace.model';
43
45
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
44
46
  import { RestoreWithParagraphModel } from '../../models/generated/restore-with-paragraph.model';
45
47
  import { Selection } from '../positioning/selection';
48
+ import { SelectionRangeModel } from '../components/table/models/selection-range.model';
46
49
  import { SessionModel } from '../execution/targeting/session.model';
50
+ import { TableModel } from '../../models/generated/table.model';
47
51
  import { TargetModel } from '../../models/generated/target.model';
48
52
  import { TextStyleModel } from '../../models/generated/text-style.model';
49
53
  import { TouchHandler } from '../interaction/touch.handler';
@@ -57,6 +61,7 @@ export declare class Editor {
57
61
  private commandsService;
58
62
  private clipboard;
59
63
  private externalElementTagNames;
64
+ private insertOverlays;
60
65
  private customPageWidth?;
61
66
  readonly MAX_COUNT = 999;
62
67
  readonly parentTagName = "APP-NOD-EDITOR";
@@ -85,12 +90,13 @@ export declare class Editor {
85
90
  private textInput;
86
91
  private clipboardData;
87
92
  private isRerenderSubscriptionOpen;
88
- constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, overlayService: OverlayService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], customPageWidth?: number);
93
+ constructor(model: DocxModel, container: ElementRef<HTMLElement>, editorService: EditorService, overlayService: OverlayService, regulatorService: RegulatorService, commandsService: CommandsService, clipboard: Clipboard, externalElementTagNames: string[], insertOverlays: InsertOverlays, customPageWidth?: number);
89
94
  destroy(): void;
90
95
  selectPageDown(): void;
91
96
  selectPageUp(): void;
92
97
  gotoPageDown(): void;
93
98
  gotoPageUp(): void;
99
+ showInsertOverlay(textKey: string): void;
94
100
  cut(): void;
95
101
  insert(text: string): void;
96
102
  insertText(text: string, textStyle: TextStyleModel): void;
@@ -105,6 +111,7 @@ export declare class Editor {
105
111
  rows: number;
106
112
  columns: number;
107
113
  }): void;
114
+ applyTableCellsStyles<T>(data: T, handler: (data: T, table: TableModel, selection: SelectionRangeModel) => ApplyTableCellsStylesModel): void;
108
115
  replaceBy(model: ReplaceModel): void;
109
116
  removeToLineStart(): void;
110
117
  removeToLineEnd(): void;
@@ -140,6 +147,7 @@ export declare class Editor {
140
147
  saveInsertImageToHistory(model: InsertImageModel): void;
141
148
  saveInsertLinkToHistory(model: InsertLinkModel): void;
142
149
  saveInsertTableToHistory(model: InsertTableModel): void;
150
+ saveApplyTableCellsStylesToHistory(table: TableModel, model: ApplyTableCellsStylesModel, targets: TargetModel[]): void;
143
151
  saveApplyTextStyleToHistory(startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
144
152
  saveApplyParagraphsToHistory(oldParagraphs: ParagraphModel[], updatedParagraphs: ParagraphModel[]): void;
145
153
  saveApplyParagraphStyleToHistory(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel): void;
@@ -152,6 +160,7 @@ export declare class Editor {
152
160
  saveInsertPageFormatToHistory(model: PageFormatModel, startIndex: number, endIndex: number): void;
153
161
  saveApplyDocumentPageFormatToHistory(defaultPageFormat: PageFormatModel): void;
154
162
  createCustomElement(data: ElementDataModel): void;
163
+ replaceByCustomElement(textKey: string, model: ElementDataModel): void;
155
164
  removeSelected(): void;
156
165
  removeWithParagraph(): void;
157
166
  removeCustomElementsData(): void;
@@ -233,6 +242,7 @@ export declare class Editor {
233
242
  setImageStyleSubscription(): Subscription;
234
243
  rerenderSubscription(): Subscription;
235
244
  createCustomComponentSubscription(): Subscription;
245
+ replaceByCustomComponentSubscription(): Subscription;
236
246
  insertBreakSubscription(): Subscription;
237
247
  insertImageSubscription(): Subscription;
238
248
  insertLinkSubscription(): Subscription;
@@ -250,6 +260,9 @@ export declare class Editor {
250
260
  removeRightSubscription(): Subscription;
251
261
  resizeTableColumnsSubscription(): Subscription;
252
262
  insertTableSubscription(): Subscription;
263
+ updateTableBorderStyleSubscription(): Subscription;
264
+ updateTableBorderWidthSubscription(): Subscription;
265
+ updateTableBordersSubscription(): Subscription;
253
266
  insertTextSubscription(): Subscription;
254
267
  undoSubscription(): Subscription;
255
268
  redoSubscription(): Subscription;
@@ -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
  }
@@ -4,18 +4,22 @@ import { SessionModel } from '../../../editor/execution/targeting/session.model'
4
4
  export declare class GrammarChecker {
5
5
  private readonly grammarService;
6
6
  private readonly ignoreKey;
7
- private readonly paragraphSessionMap;
7
+ private readonly sessionMap;
8
8
  private readonly paragraphErrorMap;
9
+ private readonly checkedParagraphs;
9
10
  private readonly sessionSubscriptions;
10
- private readonly sessions;
11
11
  private readonly ignoreList;
12
12
  private readonly checkResultsSubscription;
13
+ private readonly visibilitySubscriptions;
13
14
  constructor(grammarService: GrammarService);
14
15
  registerSession(session: SessionModel): void;
15
16
  unregisterSession(sessionId: number): void;
16
17
  getError(sessionId: number, paragraphId: number, cursorIndex: number): GrammarError | null;
17
18
  addErrorToIgnoreList(grammarError: GrammarError): void;
18
- filterErrors(grammarErrors: GrammarError[]): GrammarError[];
19
19
  destroy(): void;
20
+ private filterErrors;
21
+ private processGrammarCheckResults;
22
+ private processParagraphChange;
20
23
  private adjustHighlights;
24
+ private getSessionIdFromKey;
21
25
  }
@@ -3,6 +3,7 @@ import { ParagraphInfoModel } from '../../../editor/content/display-data/models/
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class GrammarService {
5
5
  private readonly debounceTime;
6
+ private readonly maxConcurrentRequests;
6
7
  private readonly paragraphSubjects;
7
8
  private readonly debounceSubscriptions;
8
9
  private readonly grammarCheckRequests;
@@ -15,11 +16,16 @@ export declare class GrammarService {
15
16
  paragraphId: string;
16
17
  errors: GrammarError[];
17
18
  }>;
19
+ private requestQueue;
20
+ private requestsInFlight;
18
21
  updateParagraphContent(sessionId: number, paragraph: ParagraphInfoModel): void;
19
22
  removeParagraph(sessionId: number, paragraphId: number): void;
20
23
  publishGrammarCheckResults(paragraphId: string, errors: GrammarError[]): void;
24
+ enqueueParagraphs(sessionId: number, paragraphs: ParagraphInfoModel[]): void;
21
25
  destroy(): void;
22
26
  private registerParagraph;
27
+ private enqueueGrammarCheck;
28
+ private processQueue;
23
29
  static ɵfac: i0.ɵɵFactoryDeclaration<GrammarService, never>;
24
30
  static ɵprov: i0.ɵɵInjectableDeclaration<GrammarService>;
25
31
  }
@@ -1,4 +1,5 @@
1
1
  import { ApplyDocumentPageFormatModel } from '../../../models/generated/apply-document-page-format.model';
2
+ import { ApplyTableCellsStylesModel } from '../../../models/generated/apply-table-cells-styles.model';
2
3
  import { CursorParagraph } from '../../../editor/positioning/cursor-paragraph';
3
4
  import { EditorService } from '../../../editor/interaction/editor.service';
4
5
  import { FormatModel } from '../../../models/generated/format.model';
@@ -27,6 +28,7 @@ import { ResizeTableColumnsModel } from '../../../models/generated/resize-table-
27
28
  import { RestoreModel } from '../../../models/generated/restore.model';
28
29
  import { RestorePageFormatsModel } from '../../../models/generated/restore-page-formats.model';
29
30
  import { RestoreWithParagraphModel } from '../../../models/generated/restore-with-paragraph.model';
31
+ import { TableModel } from '../../../models/generated/table.model';
30
32
  import { TargetModel } from '../../../models/generated/target.model';
31
33
  import { TextStyleModel } from '../../../models/generated/text-style.model';
32
34
  export declare class OperationHistory {
@@ -43,6 +45,7 @@ export declare class OperationHistory {
43
45
  pushInsertImage(model: InsertImageModel): void;
44
46
  pushInsertLink(model: InsertLinkModel): void;
45
47
  pushInsertTable(model: InsertTableModel): void;
48
+ pushApplyTableCellsStyles(currentTable: TableModel, model: ApplyTableCellsStylesModel, targets: TargetModel[]): void;
46
49
  pushInsertStyledText(insertIndex: number, text: string, style: TextStyleModel): void;
47
50
  pushDelete(model: RestoreModel): void;
48
51
  pushApplyTextStyle(startIndex: number, endIndex: number, style: TextStyleModel, formats: FormatModel[], linkFormats: FormatModel[]): void;
@@ -3,6 +3,7 @@ import { ApplyDocumentPageFormatModel } from '../../../models/generated/apply-do
3
3
  import { ApplyImageStyleModel } from '../../../models/generated/apply-image-style.model';
4
4
  import { ApplyPageFormatModel } from '../../../models/generated/apply-page-format.model';
5
5
  import { ApplyParagraphsModel } from '../../../models/generated/apply-paragraphs.model';
6
+ import { ApplyTableCellsStylesModel } from '../../../models/generated/apply-table-cells-styles.model';
6
7
  import { ApplyTextStyleModel } from '../../../models/generated/apply-text-style.model';
7
8
  import { CreateEdgesModel } from '../../../models/generated/create-edges.model';
8
9
  import { DeleteModel } from '../../../models/generated/delete.model';
@@ -32,4 +33,4 @@ import { RestorePageFormatsModel } from '../../../models/generated/restore-page-
32
33
  import { RestoreParagraphStylesModel } from '../../../models/generated/restore-paragraph-styles.model';
33
34
  import { RestoreTextStylesModel } from '../../../models/generated/restore-text-styles.model';
34
35
  import { RestoreWithParagraphModel } from '../../../models/generated/restore-with-paragraph.model';
35
- 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;
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;
@@ -0,0 +1,3 @@
1
+ export interface InsertOverlayComponentInterface {
2
+ readonly textKey: string;
3
+ }
@@ -0,0 +1,10 @@
1
+ import { ComponentType } from '@angular/cdk/portal';
2
+ import { InsertOverlayComponentInterface } from './insert-overlay-component.interface';
3
+ export declare class InsertOverlays {
4
+ private readonly componentMap;
5
+ constructor(models?: {
6
+ key: string;
7
+ component: ComponentType<InsertOverlayComponentInterface>;
8
+ }[] | null);
9
+ getComponent(key: string): ComponentType<InsertOverlayComponentInterface> | null;
10
+ }
@@ -11,6 +11,7 @@ import { ImageDataModel } from '../../models/generated/image-data.model';
11
11
  import { ImageModel } from '../../models/generated/image.model';
12
12
  import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
13
13
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
14
+ import { NumberingModel } from '../../models/generated/numbering.model';
14
15
  import { OperationsHistoryInfoModel } from '../../editor/gadgets/history/operations-history-info.model';
15
16
  import { PageFormatModel } from '../../models/generated/page-format.model';
16
17
  import { PageType } from '../components/edges/page-type.enum';
@@ -18,6 +19,8 @@ import { ParagraphStyleModel } from '../../models/generated/paragraph-style.mode
18
19
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
19
20
  import { TabSettingModel } from '../../models/generated/tab-setting.model';
20
21
  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';
21
24
  import * as i0 from "@angular/core";
22
25
  export declare class EditorService {
23
26
  set styles(value: IToolbarStyles);
@@ -87,6 +90,11 @@ export declare class EditorService {
87
90
  private readonly _rerender$;
88
91
  get createCustomComponent$(): Observable<ElementDataModel>;
89
92
  private readonly _createCustomComponent$;
93
+ get replaceByCustomComponent$(): Observable<{
94
+ textKey: string;
95
+ model: ElementDataModel;
96
+ }>;
97
+ private readonly _replaceByCustomComponent$;
90
98
  get insertBreak$(): Observable<BreakTypes>;
91
99
  private readonly _insertBreak$;
92
100
  get insertImage$(): Observable<ImageDataModel>;
@@ -163,6 +171,15 @@ export declare class EditorService {
163
171
  columns: number;
164
172
  }>;
165
173
  private readonly _insertTable$;
174
+ get updateTableBorderStyle$(): Observable<LineStyles>;
175
+ private readonly _updateTableBorderStyle$;
176
+ get updateTableBorderWidth$(): Observable<number>;
177
+ private readonly _updateTableBorderWidth$;
178
+ get updateTableBorders$(): Observable<Borders>;
179
+ private readonly _updateTableBorders$;
180
+ get isTableSelected(): boolean;
181
+ get isTableSelected$(): Observable<boolean>;
182
+ private readonly _isTableSelected$;
166
183
  get redo$(): Observable<void>;
167
184
  private readonly _redo$;
168
185
  get undo$(): Observable<void>;
@@ -216,13 +233,16 @@ export declare class EditorService {
216
233
  private readonly _tabSettings$;
217
234
  get rightIndentParagraph$(): Observable<number>;
218
235
  private readonly _rightIndentParagraph$;
219
- get paragraphStyle$(): Observable<ParagraphStyleModel>;
236
+ get paragraphStyle$(): Observable<{
237
+ paragraphStyle: ParagraphStyleModel;
238
+ numberingModel: NumberingModel | null;
239
+ }>;
220
240
  private readonly _paragraphStyle$;
221
241
  tabSettings(value: TabSettingModel[]): void;
222
242
  applyFirstLinePosition(value: number): void;
223
243
  applyLeftIndentParagraph(value: number): void;
224
244
  applyRightIndentParagraph(value: number): void;
225
- paragraphStyle(value: ParagraphStyleModel): void;
245
+ paragraphStyle(value: ParagraphStyleModel, numbering?: NumberingModel | null): void;
226
246
  applyRightMarginPageFormat(value: number): void;
227
247
  applyLeftMarginPageFormat(value: number): void;
228
248
  applyDocumentPageFormat(value: PageFormatModel): void;
@@ -242,6 +262,7 @@ export declare class EditorService {
242
262
  changeImageStyle(value: ImageModel): void;
243
263
  rerender(index?: number): void;
244
264
  createCustomComponent(model: ElementDataModel): void;
265
+ replaceByCustomComponent(textKey: string, model: ElementDataModel): void;
245
266
  insertBreak(value: BreakTypes): void;
246
267
  insertImage(imageData: ImageDataModel): void;
247
268
  insertLink(text: string, link: string): void;
@@ -265,6 +286,10 @@ export declare class EditorService {
265
286
  rows: number;
266
287
  columns: number;
267
288
  }): void;
289
+ updateTableBorderStyle(style: LineStyles): void;
290
+ updateTableBorderWidth(width: number): void;
291
+ updateTableBorders(borders: Borders): void;
292
+ setIsTableSelected(value: boolean): void;
268
293
  undo(): void;
269
294
  redo(): void;
270
295
  print(): void;