@talrace/ngx-noder 0.0.46 → 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 (45) hide show
  1. package/assets/i18n/noder.en.json +11 -0
  2. package/assets/i18n/noder.es.json +11 -0
  3. package/assets/i18n/noder.ru.json +11 -0
  4. package/fesm2022/talrace-ngx-noder.mjs +738 -167
  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/shared/enums/borders.enum.d.ts +10 -0
  14. package/lib/editor/components/table/selection/table-selection.d.ts +1 -0
  15. package/lib/editor/content/display-data/display-data.d.ts +0 -1
  16. package/lib/editor/content/display-data/display-token.model.d.ts +2 -0
  17. package/lib/editor/content/display-data/line-info.model.d.ts +2 -0
  18. package/lib/editor/content/display-data/text-line-info.d.ts +2 -0
  19. package/lib/editor/display/renderer.d.ts +7 -0
  20. package/lib/editor/display/virtual.renderer.d.ts +4 -0
  21. package/lib/editor/execution/edit.session.d.ts +4 -1
  22. package/lib/editor/execution/editor.d.ts +8 -0
  23. package/lib/editor/execution/targeting/cell-session-source.model.d.ts +2 -2
  24. package/lib/editor/gadgets/grammar/grammar-checker.d.ts +7 -3
  25. package/lib/editor/gadgets/grammar/grammar.service.d.ts +6 -0
  26. package/lib/editor/gadgets/history/operation-history.d.ts +3 -0
  27. package/lib/editor/gadgets/history/operation.type.d.ts +2 -1
  28. package/lib/editor/interaction/editor.service.d.ts +21 -2
  29. package/lib/editor/operations/enums/command-type.enum.d.ts +2 -1
  30. package/lib/editor/operations/helpers/table-operations.helper.d.ts +13 -0
  31. package/lib/editor/operations/operations-helper.helper.d.ts +2 -0
  32. package/lib/editor/operations/save-commands.helper.d.ts +2 -0
  33. package/lib/editor/revision.helper.d.ts +1 -2
  34. package/lib/models/generated/apply-table-cells-styles.model.d.ts +6 -0
  35. package/lib/models/generated/cell-data.model.d.ts +7 -0
  36. package/lib/models/generated/command.model.d.ts +2 -0
  37. package/package.json +1 -1
  38. package/src/assets/fonts/nc-iconfont.eot +0 -0
  39. package/src/assets/fonts/nc-iconfont.scss +35 -2
  40. package/src/assets/fonts/nc-iconfont.svg +13 -2
  41. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  42. package/src/assets/fonts/nc-iconfont.woff +0 -0
  43. package/src/lib/apart-components/editor-ruler/_theme.scss +4 -0
  44. package/src/lib/editor/components/_editor.theme.scss +4 -0
  45. 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
  }
@@ -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): {
@@ -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>);
@@ -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
  }
@@ -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,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';
@@ -43,7 +44,9 @@ import { ReplaceModel } from '../../models/generated/replace.model';
43
44
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
44
45
  import { RestoreWithParagraphModel } from '../../models/generated/restore-with-paragraph.model';
45
46
  import { Selection } from '../positioning/selection';
47
+ import { SelectionRangeModel } from '../components/table/models/selection-range.model';
46
48
  import { SessionModel } from '../execution/targeting/session.model';
49
+ import { TableModel } from '../../models/generated/table.model';
47
50
  import { TargetModel } from '../../models/generated/target.model';
48
51
  import { TextStyleModel } from '../../models/generated/text-style.model';
49
52
  import { TouchHandler } from '../interaction/touch.handler';
@@ -105,6 +108,7 @@ export declare class Editor {
105
108
  rows: number;
106
109
  columns: number;
107
110
  }): void;
111
+ applyTableCellsStyles<T>(data: T, handler: (data: T, table: TableModel, selection: SelectionRangeModel) => ApplyTableCellsStylesModel): void;
108
112
  replaceBy(model: ReplaceModel): void;
109
113
  removeToLineStart(): void;
110
114
  removeToLineEnd(): void;
@@ -140,6 +144,7 @@ export declare class Editor {
140
144
  saveInsertImageToHistory(model: InsertImageModel): void;
141
145
  saveInsertLinkToHistory(model: InsertLinkModel): void;
142
146
  saveInsertTableToHistory(model: InsertTableModel): void;
147
+ saveApplyTableCellsStylesToHistory(table: TableModel, model: ApplyTableCellsStylesModel, targets: TargetModel[]): void;
143
148
  saveApplyTextStyleToHistory(startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
144
149
  saveApplyParagraphsToHistory(oldParagraphs: ParagraphModel[], updatedParagraphs: ParagraphModel[]): void;
145
150
  saveApplyParagraphStyleToHistory(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel): void;
@@ -250,6 +255,9 @@ export declare class Editor {
250
255
  removeRightSubscription(): Subscription;
251
256
  resizeTableColumnsSubscription(): Subscription;
252
257
  insertTableSubscription(): Subscription;
258
+ updateTableBorderStyleSubscription(): Subscription;
259
+ updateTableBorderWidthSubscription(): Subscription;
260
+ updateTableBordersSubscription(): Subscription;
253
261
  insertTextSubscription(): Subscription;
254
262
  undoSubscription(): Subscription;
255
263
  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;
@@ -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);
@@ -163,6 +166,15 @@ export declare class EditorService {
163
166
  columns: number;
164
167
  }>;
165
168
  private readonly _insertTable$;
169
+ get updateTableBorderStyle$(): Observable<LineStyles>;
170
+ private readonly _updateTableBorderStyle$;
171
+ get updateTableBorderWidth$(): Observable<number>;
172
+ private readonly _updateTableBorderWidth$;
173
+ get updateTableBorders$(): Observable<Borders>;
174
+ private readonly _updateTableBorders$;
175
+ get isTableSelected(): boolean;
176
+ get isTableSelected$(): Observable<boolean>;
177
+ private readonly _isTableSelected$;
166
178
  get redo$(): Observable<void>;
167
179
  private readonly _redo$;
168
180
  get undo$(): Observable<void>;
@@ -216,13 +228,16 @@ export declare class EditorService {
216
228
  private readonly _tabSettings$;
217
229
  get rightIndentParagraph$(): Observable<number>;
218
230
  private readonly _rightIndentParagraph$;
219
- get paragraphStyle$(): Observable<ParagraphStyleModel>;
231
+ get paragraphStyle$(): Observable<{
232
+ paragraphStyle: ParagraphStyleModel;
233
+ numberingModel: NumberingModel | null;
234
+ }>;
220
235
  private readonly _paragraphStyle$;
221
236
  tabSettings(value: TabSettingModel[]): void;
222
237
  applyFirstLinePosition(value: number): void;
223
238
  applyLeftIndentParagraph(value: number): void;
224
239
  applyRightIndentParagraph(value: number): void;
225
- paragraphStyle(value: ParagraphStyleModel): void;
240
+ paragraphStyle(value: ParagraphStyleModel, numbering?: NumberingModel | null): void;
226
241
  applyRightMarginPageFormat(value: number): void;
227
242
  applyLeftMarginPageFormat(value: number): void;
228
243
  applyDocumentPageFormat(value: PageFormatModel): void;
@@ -265,6 +280,10 @@ export declare class EditorService {
265
280
  rows: number;
266
281
  columns: number;
267
282
  }): void;
283
+ updateTableBorderStyle(style: LineStyles): void;
284
+ updateTableBorderWidth(width: number): void;
285
+ updateTableBorders(borders: Borders): void;
286
+ setIsTableSelected(value: boolean): void;
268
287
  undo(): void;
269
288
  redo(): void;
270
289
  print(): void;
@@ -35,5 +35,6 @@ export declare enum CommandType {
35
35
  InsertPageFormat = 33,
36
36
  RemoveInsertedPageFormat = 34,
37
37
  RestorePageFormats = 35,
38
- ApplyParagraphs = 36
38
+ ApplyParagraphs = 36,
39
+ ApplyTableCellsStyles = 37
39
40
  }
@@ -1,6 +1,11 @@
1
+ import { ApplyTableCellsStylesModel } from '../../../models/generated/apply-table-cells-styles.model';
2
+ import { Borders } from '../../components/shared/enums/borders.enum';
3
+ import { CellDataModel } from '../../../models/generated/cell-data.model';
1
4
  import { CellModel } from '../../../models/generated/cell.model';
5
+ import { LineStyles } from '../../components/shared/enums/line-styles.enum';
2
6
  import { ResizeTableColumnsModel } from '../../../models/generated/resize-table-columns.model';
3
7
  import { RowModel } from '../../../models/generated/row.model';
8
+ import { SelectionRangeModel } from '../../components/table/models/selection-range.model';
4
9
  import { TableModel } from '../../../models/generated/table.model';
5
10
  import { VerticalMerge } from '../../components/table/enums/vertical-merge.enum';
6
11
  export declare class TableOperationsHelper {
@@ -25,4 +30,12 @@ export declare class TableOperationsHelper {
25
30
  static fillDataForHorizontalMergedCell(matrix: RowModel[], table: TableModel, rowIndex: number, cellIndex: number): number;
26
31
  static resizeColumns(table: TableModel, resizeTableColumns: ResizeTableColumnsModel): void;
27
32
  static calculateCellsWidth(table: TableModel): void;
33
+ static applyTableCellsStyles(tables: TableModel[], insertIndex: number, cellData: CellDataModel[]): void;
34
+ static getApplyTableCellsBordersStyle(style: LineStyles, table: TableModel, selection: SelectionRangeModel): ApplyTableCellsStylesModel;
35
+ static getApplyTableCellsBordersWidth(width: number, table: TableModel, selection: SelectionRangeModel): ApplyTableCellsStylesModel;
36
+ static getApplyTableCellsBorders(border: Borders, table: TableModel, selection: SelectionRangeModel): ApplyTableCellsStylesModel;
37
+ private static mergeCellStyles;
38
+ private static getApplyBordersStylesCells;
39
+ private static addPositionsToCell;
40
+ private static getCellDataFromBorderCells;
28
41
  }
@@ -1,4 +1,5 @@
1
1
  import { ApplyImageStyleModel } from '../../models/generated/apply-image-style.model';
2
+ import { ApplyTableCellsStylesModel } from '../../models/generated/apply-table-cells-styles.model';
2
3
  import { BreakTypes } from '../gadgets/page-break/break-types.enum';
3
4
  import { CommandModel } from '../../models/generated/command.model';
4
5
  import { ContentType } from '../content/contents.interface';
@@ -37,6 +38,7 @@ export declare class OperationsHelper {
37
38
  static restoreNumberings(target: ContentType, numberings: NumberingModel[], paragraphsToRestore: ParagraphModel[], numberingsToRestore: NumberingModel[]): void;
38
39
  static insertImage(document: ContentType, index: number, imageData: ImageDataModel): void;
39
40
  static insertTable(document: ContentType, tableModel: InsertTableModel, contentWidth: number): string;
41
+ static applyTableCellsStyles(document: ContentType, model: ApplyTableCellsStylesModel): void;
40
42
  static insertStyledText(document: ContentType, text: string, index: number, style: TextStyleModel): void;
41
43
  static restore(document: ContentType, model: RestoreModel): void;
42
44
  static delete(document: ContentType, startIndex: number, count: number): void;
@@ -1,5 +1,6 @@
1
1
  import { ApplyDocumentPageFormatModel } from '../../models/generated/apply-document-page-format.model';
2
2
  import { ApplyPageFormatModel } from '../../models/generated/apply-page-format.model';
3
+ import { ApplyTableCellsStylesModel } from '../../models/generated/apply-table-cells-styles.model';
3
4
  import { CommandModel } from '../../models/generated/command.model';
4
5
  import { CreateEdgesModel } from '../../models/generated/create-edges.model';
5
6
  import { FormatModel } from '../../models/generated/format.model';
@@ -42,6 +43,7 @@ export declare class SaveCommandsHelper {
42
43
  static getInsertLinkOperation(insertLink: InsertLinkModel, targets: TargetModel[]): CommandModel;
43
44
  static getInsertTabCommand(insertTab: InsertTabModel, targets: TargetModel[]): CommandModel;
44
45
  static getInsertTableCommand(insertTable: InsertTableModel, targets: TargetModel[]): CommandModel;
46
+ static getApplyTableCellsStylesCommand(applyTableCellsStyles: ApplyTableCellsStylesModel, targets: TargetModel[]): CommandModel;
45
47
  static getInsertTableColumnsCommand(columnsCount: number, inheritIndex: number, insertIndex: number, targetIndex: number, targets: TargetModel[]): CommandModel;
46
48
  static getInsertTableRowsCommand(rowsCount: number, inheritIndex: number, insertIndex: number, targetIndex: number, targets: TargetModel[]): CommandModel;
47
49
  static getRemoveTableColumnsCommand(startIndex: number, endIndex: number, insertIndex: number, targets: TargetModel[]): CommandModel;
@@ -3,10 +3,9 @@ import { DocxModel } from '../models/generated/docx.model';
3
3
  import { EdgeModel } from '../models/generated/edge.model';
4
4
  import { OperationModel } from '../models/generated/operation.model';
5
5
  import { ParagraphStyleModel } from '../models/generated/paragraph-style.model';
6
- import { RevisionModel } from '../models/generated/revision.model';
7
6
  import { TableModel } from '../models/generated/table.model';
8
7
  export declare class RevisionHelper {
9
- static applyOperationsToRevision(revision: RevisionModel, operations: OperationModel[]): void;
8
+ static applyOperationsToRevision(content: DocxModel, operations: OperationModel[]): void;
10
9
  static fillTablesDefaultStyles(tables: TableModel[]): void;
11
10
  static fillEdgesDefaultStyles(headers: EdgeModel[], footers: EdgeModel[]): void;
12
11
  static fillDefaultStyles(contents: ContentType): void;
@@ -0,0 +1,6 @@
1
+ import { CellDataModel } from './cell-data.model';
2
+ export declare class ApplyTableCellsStylesModel {
3
+ cellsData: CellDataModel[];
4
+ insertIndex: number;
5
+ constructor(fields?: Partial<ApplyTableCellsStylesModel>);
6
+ }
@@ -0,0 +1,7 @@
1
+ import { BordersStyleModel } from './borders-style.model';
2
+ export declare class CellDataModel {
3
+ borders: BordersStyleModel[];
4
+ cellIndex: number;
5
+ rowIndex: number;
6
+ constructor(fields?: Partial<CellDataModel>);
7
+ }
@@ -4,6 +4,7 @@ import { ApplyImageStyleModel } from './apply-image-style.model';
4
4
  import { ApplyPageFormatModel } from './apply-page-format.model';
5
5
  import { ApplyParagraphsModel } from './apply-paragraphs.model';
6
6
  import { ApplyParagraphStyleModel } from './apply-paragraph-style.model';
7
+ import { ApplyTableCellsStylesModel } from './apply-table-cells-styles.model';
7
8
  import { ApplyTextStyleModel } from './apply-text-style.model';
8
9
  import { CreateEdgesModel } from './create-edges.model';
9
10
  import { DeleteModel } from './delete.model';
@@ -43,6 +44,7 @@ export declare class CommandModel {
43
44
  applyPageFormat: ApplyPageFormatModel;
44
45
  applyParagraphs: ApplyParagraphsModel;
45
46
  applyParagraphStyle: ApplyParagraphStyleModel;
47
+ applyTableCellsStyles: ApplyTableCellsStylesModel;
46
48
  applyTextStyle: ApplyTextStyleModel;
47
49
  binding: number;
48
50
  commandType: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talrace/ngx-noder",
3
- "version": "0.0.46",
3
+ "version": "0.0.47",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.0.5",
Binary file