@talrace/ngx-noder 0.0.8 → 0.0.10

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 (102) hide show
  1. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +21 -9
  2. package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +8 -2
  3. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +2 -2
  4. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +3 -3
  5. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +2 -2
  6. package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +1 -8
  7. package/esm2022/lib/editor/components/edges/edge.component.mjs +2 -2
  8. package/esm2022/lib/editor/components/edges/edges.mjs +21 -2
  9. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +18 -1
  10. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +22 -56
  11. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +6 -6
  12. package/esm2022/lib/editor/components/table/components/table.component.mjs +13 -4
  13. package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +3 -4
  14. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +15 -5
  15. package/esm2022/lib/editor/content/constants/editor.const.mjs +9 -1
  16. package/esm2022/lib/editor/content/display-data/display-data.mjs +839 -0
  17. package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +1 -1
  18. package/esm2022/lib/editor/content/display-data/models/paragraph-info.model.mjs +8 -0
  19. package/esm2022/lib/editor/content/display-data/paragraph.mjs +5 -1
  20. package/esm2022/lib/editor/content/display-data/text-line-info.mjs +2 -1
  21. package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +1 -1
  22. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +12 -30
  23. package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +62 -0
  24. package/esm2022/lib/editor/content/helpers/link.helper.mjs +6 -0
  25. package/esm2022/lib/editor/display/layers/cursor.layer.mjs +9 -8
  26. package/esm2022/lib/editor/display/layers/pages.layer.mjs +5 -5
  27. package/esm2022/lib/editor/display/layers/print.text.layer.mjs +2 -2
  28. package/esm2022/lib/editor/display/layers/selection.layer.mjs +15 -9
  29. package/esm2022/lib/editor/display/layers/text.layer.mjs +29 -32
  30. package/esm2022/lib/editor/display/print/print.renderer.mjs +8 -8
  31. package/esm2022/lib/editor/display/renderer.mjs +10 -10
  32. package/esm2022/lib/editor/display/rendering.helper.mjs +2 -4
  33. package/esm2022/lib/editor/display/virtual.renderer.mjs +5 -5
  34. package/esm2022/lib/editor/execution/edit.session.mjs +211 -754
  35. package/esm2022/lib/editor/execution/editor.mjs +119 -77
  36. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +41 -32
  37. package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +12 -0
  38. package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +11 -3
  39. package/esm2022/lib/editor/execution/regulator.service.mjs +28 -20
  40. package/esm2022/lib/editor/gadgets/numbering/numbering-paragraph-style.model.mjs +13 -0
  41. package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +77 -10
  42. package/esm2022/lib/editor/gadgets/search/search.mjs +6 -6
  43. package/esm2022/lib/editor/interaction/editor.service.mjs +27 -6
  44. package/esm2022/lib/editor/interaction/input.handler.mjs +8 -5
  45. package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -1
  46. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +32 -2
  47. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +67 -14
  48. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +27 -20
  49. package/esm2022/lib/editor/operations/save-commands.helper.mjs +2 -2
  50. package/esm2022/lib/editor/positioning/content.helper.mjs +15 -15
  51. package/esm2022/lib/editor/positioning/line-width.helper.mjs +5 -5
  52. package/esm2022/lib/editor/positioning/position.helper.mjs +34 -32
  53. package/esm2022/lib/editor/positioning/selection.mjs +42 -32
  54. package/esm2022/lib/editor/revision.helper.mjs +4 -3
  55. package/esm2022/lib/models/generated/link.model.mjs +1 -1
  56. package/esm2022/public-api.mjs +2 -1
  57. package/fesm2022/talrace-ngx-noder.mjs +3863 -3558
  58. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  59. package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +0 -1
  60. package/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.d.ts +0 -2
  61. package/lib/editor/components/image/input-handler/image-input.handler.d.ts +3 -0
  62. package/lib/editor/components/shared/services/custom-content.service.d.ts +3 -5
  63. package/lib/editor/components/table/components/table-cell.component.d.ts +1 -1
  64. package/lib/editor/components/table/components/table.component.d.ts +1 -0
  65. package/lib/editor/components/table/models/cell-data.model.d.ts +1 -1
  66. package/lib/editor/components/table/selection/table-selection.d.ts +2 -0
  67. package/lib/editor/content/constants/editor.const.d.ts +2 -0
  68. package/lib/editor/content/display-data/display-data.d.ts +103 -0
  69. package/lib/editor/content/display-data/general-properties.model.d.ts +5 -0
  70. package/lib/editor/content/display-data/models/paragraph-info.model.d.ts +9 -0
  71. package/lib/editor/content/display-data/paragraph.d.ts +1 -0
  72. package/lib/editor/content/display-data/text-line-info.d.ts +1 -0
  73. package/lib/editor/content/display-data/toolbar-styles.interface.d.ts +1 -1
  74. package/lib/editor/content/helpers/content-style.helper.d.ts +1 -2
  75. package/lib/editor/content/helpers/display-token.helper.d.ts +6 -0
  76. package/lib/editor/content/helpers/link.helper.d.ts +4 -0
  77. package/lib/editor/display/layers/text.layer.d.ts +2 -3
  78. package/lib/editor/display/print/print.renderer.d.ts +0 -2
  79. package/lib/editor/execution/edit.session.d.ts +12 -59
  80. package/lib/editor/execution/editor.d.ts +9 -6
  81. package/lib/editor/execution/helpers/format-style.helper.d.ts +2 -2
  82. package/lib/editor/execution/helpers/image.helpet.d.ts +4 -0
  83. package/lib/editor/execution/regulator.service.d.ts +1 -1
  84. package/lib/editor/gadgets/numbering/numbering-paragraph-style.model.d.ts +6 -0
  85. package/lib/editor/gadgets/numbering/numbering.helper.d.ts +10 -3
  86. package/lib/editor/interaction/editor.service.d.ts +12 -3
  87. package/lib/editor/operations/helpers/link-operations.helper.d.ts +6 -3
  88. package/lib/editor/positioning/content.helper.d.ts +6 -5
  89. package/lib/editor/positioning/position.helper.d.ts +3 -3
  90. package/lib/editor/positioning/selection.d.ts +3 -0
  91. package/lib/models/generated/link.model.d.ts +3 -1
  92. package/package.json +8 -8
  93. package/public-api.d.ts +1 -0
  94. package/src/_ngx-noder.theme.scss +31 -2
  95. package/src/styles.scss +0 -1
  96. package/esm2022/lib/editor/content/display-data/document.mjs +0 -134
  97. package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +0 -226
  98. package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +0 -18
  99. package/lib/editor/content/display-data/document.d.ts +0 -56
  100. package/lib/editor/content/display-data/pages.wrap.d.ts +0 -42
  101. package/lib/editor/execution/helpers/delta.helper.d.ts +0 -6
  102. package/src/scss/_fonts.scss +0 -3
@@ -21,7 +21,6 @@ export declare class AddLinkDialogComponent {
21
21
  constructor(dialogRef: MatDialogRef<AddLinkDialogComponent>, data: AddLinkDialogOptions, fb: FormBuilder);
22
22
  onClose(): void;
23
23
  onApply(): void;
24
- onEnter(): void;
25
24
  static ɵfac: i0.ɵɵFactoryDeclaration<AddLinkDialogComponent, never>;
26
25
  static ɵcmp: i0.ɵɵComponentDeclaration<AddLinkDialogComponent, "app-nod-add-link-dialog", never, {}, {}, never, never, true, never>;
27
26
  }
@@ -1,6 +1,4 @@
1
1
  import { NumberingTemplateType } from './enums/numbering-template-type.enum';
2
- import { NumberingType } from './enums/numbering-type.enum';
3
2
  export declare class ToolbarStylesHelper {
4
- static getNumberingType(isBulletMarker: boolean | null): NumberingType | null;
5
3
  static getNumberingTemplateType(levelsMarkersStyles: string): NumberingTemplateType | null;
6
4
  }
@@ -3,11 +3,14 @@ import { NoderImageComponent } from '../components/image.component';
3
3
  export declare class ImageInputHandler {
4
4
  private readonly editorService;
5
5
  private readonly image;
6
+ readonly imageComponentTagName = "APP-NOD-IMAGE";
6
7
  private readonly undoRedoActions;
7
8
  private readonly imageKeyDownSubscription;
9
+ private readonly clickSubscription;
8
10
  constructor(editorService: EditorService, image: NoderImageComponent);
9
11
  destroy(): void;
10
12
  private onKeyDown;
11
13
  private getKeyCombination;
12
14
  private fillUndoRedoActions;
15
+ private onClick;
13
16
  }
@@ -4,7 +4,6 @@ import { ComponentService } from './component.service';
4
4
  import { ContentsInterface } from '../../../content/contents.interface';
5
5
  import { DisplayToken } from '../../../content/display-data/display-token.model';
6
6
  import { DistanceModel } from '../../../execution/distance.model';
7
- import { Document } from '../../../content/display-data/document';
8
7
  import { ElementModel } from '../../../../models/generated/element.model';
9
8
  import { ExternalElementModel } from '../../external-element/models/external-element.model';
10
9
  import { GeneralPropertiesModel } from '../../../content/display-data/general-properties.model';
@@ -17,17 +16,16 @@ export declare class CustomContentService {
17
16
  private injector;
18
17
  elements: ExternalElementModel[];
19
18
  constructor(componentService: ComponentService, injector: Injector);
20
- generateComponents(model: ContentsInterface, sessionId: number, generalProperties: GeneralPropertiesModel, document: Document): ICustomComponents;
21
- getOrGenerateComponent(model: ContentsInterface, components: ICustomComponents, sessionId: number, generalProperties: GeneralPropertiesModel, contentWidth: number, charIndex: number, char: string): ComponentRef<BaseNoderComponent> | null;
19
+ generateComponent(model: ContentsInterface, components: ICustomComponents, sessionId: number, generalProperties: GeneralPropertiesModel, contentWidth: number, charIndex: number): ComponentRef<BaseNoderComponent> | null;
22
20
  generateElementComponents(elements: ElementModel[], sessionId: number, contentWidth: number): ComponentRef<BaseNoderComponent>[];
23
- addToCustomComponents(components: ICustomComponents, component: ComponentRef<any>, char: string, charIndex: number): void;
24
21
  isFragmentContainComponent(components: ICustomComponents, textFragment: string, fragmentDistance: DistanceModel): boolean;
25
22
  getComponents(components: ICustomComponents, distance: DistanceModel): ComponentRef<BaseNoderComponent>[];
26
23
  getComponent(components: ICustomComponents, char: string, charIndex: number): ComponentRef<BaseNoderComponent>;
27
24
  getTokenFromComponent(component: ComponentRef<BaseNoderComponent>, lineInfo: LineInfoModel, displayValue: number, isFirst: boolean, size: IFontMetricSize): DisplayToken;
28
25
  findComponentType(type: number): Type<BaseNoderComponent>;
26
+ findComponent<T>(components: ComponentRef<T>[], insertIndex: number): ComponentRef<T>;
29
27
  private isFragmentContainComponents;
30
- private findComponent;
28
+ isSpecialMarker(char: string): boolean;
31
29
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomContentService, never>;
32
30
  static ɵprov: i0.ɵɵInjectableDeclaration<CustomContentService>;
33
31
  }
@@ -36,7 +36,7 @@ export declare class NoderTableCellComponent {
36
36
  ngOnDestroy(): void;
37
37
  initialize(): void;
38
38
  getCellContentHeight(): number;
39
- clearSelection(): void;
39
+ disableEditorSelection(): void;
40
40
  onStartResizing(event: MouseEvent, border: ResizerSide): void;
41
41
  private addEventListeners;
42
42
  private pagesCountChangedHandler;
@@ -65,6 +65,7 @@ export declare class NoderTableComponent extends BaseNoderComponent {
65
65
  private getRowsHeightBefore;
66
66
  private getRowsHeightBetweenSplits;
67
67
  private getRowsHeight;
68
+ updateCells(): void;
68
69
  static ɵfac: i0.ɵɵFactoryDeclaration<NoderTableComponent, never>;
69
70
  static ɵcmp: i0.ɵɵComponentDeclaration<NoderTableComponent, "app-nod-table", never, {}, {}, never, never, false, never>;
70
71
  }
@@ -7,5 +7,5 @@ export declare class CellDataModel {
7
7
  constructor(cell: HTMLTableCellElement, cellContentHeight: number, componentRef: ComponentRef<NoderTableCellComponent>);
8
8
  highlightCell(): void;
9
9
  removeHighlightCell(): void;
10
- clearSelection(): void;
10
+ disableEditorSelection(): void;
11
11
  }
@@ -23,6 +23,7 @@ export declare class TableSelection {
23
23
  documentMouseUp$: Subscription;
24
24
  selectionRange: SelectionRangeModel | null;
25
25
  readonly editorTagName = "APP-NOD-EDITOR";
26
+ readonly tableTagName = "APP-NOD-TABLE";
26
27
  readonly cellTagName = "TD";
27
28
  readonly draggableCellContent: string[];
28
29
  constructor(editorService: EditorService, overlayService: OverlayService, rowMatrix: RowDataModel[], table: TableModel, tableEl: HTMLTableElement, sessionId: number);
@@ -56,6 +57,7 @@ export declare class TableSelection {
56
57
  };
57
58
  getNearestRowIndex(event: MouseEvent): number;
58
59
  addSelectionInAllCells(): void;
60
+ clearSelection(): void;
59
61
  clearSelectionInAllCells(): void;
60
62
  getStartAndEndIndexes(originIndex: number, currentIndex: number): {
61
63
  startIndex: number;
@@ -1,6 +1,8 @@
1
1
  import { HeadingModel } from '../../../models/generated/heading.model';
2
+ import { IToolbarStyles } from '../display-data/toolbar-styles.interface';
2
3
  import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
3
4
  import { TextStyleModel } from '../../../models/generated/text-style.model';
5
+ export declare const DEFAULT_TOOLBAR_STYLES: () => IToolbarStyles;
4
6
  export declare const DEFAULT_BACKGROUND_COLOR = "transparent";
5
7
  export declare const DEFAULT_FONT_FAMILY = "Roboto";
6
8
  export declare const DEFAULT_FONT_SIZE = 14;
@@ -0,0 +1,103 @@
1
+ import { ComponentRef } from '@angular/core';
2
+ import { BreakTypes } from '../../gadgets/page-break/break-types.enum';
3
+ import { ContentsInterface } from '../contents.interface';
4
+ import { CursorParagraph } from '../../positioning/cursor-paragraph';
5
+ import { CustomContentService } from '../../components/shared/services/custom-content.service';
6
+ import { DisplayToken } from './display-token.model';
7
+ import { EdgeType } from '../../components/edges/edge-type.enum';
8
+ import { EditorService } from '../../interaction/editor.service';
9
+ import { EventEmitting } from '../../core/event-emitting';
10
+ import { GeneralPropertiesModel } from './general-properties.model';
11
+ import { ICustomComponents } from '../../components/shared/custom-components.interface';
12
+ import { LineInfoModel } from './line-info.model';
13
+ import { MarginModel } from '../margin.model';
14
+ import { NoderTableComponent } from '../../components/table/components/table.component';
15
+ import { NumberingDataModel } from './../../gadgets/numbering/numbering-data.model';
16
+ import { PageVerticalDataModel } from '../page-vertical-data.model';
17
+ import { Paragraph } from './paragraph';
18
+ import { ParagraphInfoModel } from './models/paragraph-info.model';
19
+ import { Range } from '../../positioning/range';
20
+ import { VisibleRange } from '../../display/visible-range.interface';
21
+ export declare class DisplayData extends EventEmitting {
22
+ private model;
23
+ private generalProperties;
24
+ private sessionId;
25
+ pageMargin: MarginModel;
26
+ pagesSpace: number;
27
+ pageWidth: number;
28
+ pageHeight: number;
29
+ customComponents: ICustomComponents;
30
+ customContentService: CustomContentService;
31
+ editorService: EditorService;
32
+ paragraphs: ParagraphInfoModel[];
33
+ contentWidth: number;
34
+ allPagesHeight: number;
35
+ minHeight: number;
36
+ tabTokens: DisplayToken[];
37
+ pagesVerticalData: PageVerticalDataModel[];
38
+ get defaultVerticalData(): PageVerticalDataModel;
39
+ private processTextLinesProperties;
40
+ constructor(model: ContentsInterface, generalProperties: GeneralPropertiesModel, sessionId: number, pageMargin: MarginModel, pagesSpace: number, pageWidth: number, pageHeight: number, customComponents: ICustomComponents, customContentService: CustomContentService, editorService: EditorService);
41
+ insertText(position: CursorParagraph, text: string): CursorParagraph;
42
+ removeRange(range: Range): void;
43
+ getParagraphContent(index: number): string;
44
+ getAllParagraphsContent(): string[];
45
+ getParagraphSettings(index: number): Paragraph | null;
46
+ getParagraphsContentForRange(range: Range): string[];
47
+ getTextRange(range: Range): string;
48
+ positionToIndex(position: CursorParagraph, startRow?: number): number;
49
+ indexToPosition(positionIndex: number, startRow: number): CursorParagraph;
50
+ indexesToRange(startIndex: number, endIndex: number): Range;
51
+ isNewLineSymbol(index: number): boolean;
52
+ getSelectedParagraphsByRange(range: Range): {
53
+ start: number;
54
+ end: number;
55
+ };
56
+ getPositionAfterBreak(position: CursorParagraph, breakType: BreakTypes): CursorParagraph;
57
+ getDistanceFromTop(index: number): number;
58
+ getDistanceFromTopForPrint(index: number): number;
59
+ setParagraphSettings(row: number, lineInfos: LineInfoModel[], numberingData: NumberingDataModel): void;
60
+ getParagraphHeight(index: number): number;
61
+ getVisibleRange(offsetTop: number, scrollerHeight: number): VisibleRange;
62
+ processParagraphsProperties(startParagraphIndex: number): void;
63
+ getAllParagraphsHeight(): number;
64
+ destroy(): void;
65
+ updatePageVerticalData(edgeType: EdgeType, page: number): void;
66
+ updateParagraphLineNumber(first: number): void;
67
+ updateParagraphStartIndex(first: number): void;
68
+ updateParagraphSettingsNumberingData(index: number): void;
69
+ updateNextLineIndexes(firstParagraph: number, lastParagraph: number): void;
70
+ updateNumberingsDataOnChange(index: number): void;
71
+ resetAllNumberingInfo(paragraphIndex: number): void;
72
+ resetNumberingInfoByTableCell(table: ComponentRef<NoderTableComponent>): void;
73
+ private updateParagraphTabs;
74
+ private getSplits;
75
+ /**
76
+ * Given a string, returns an array of the display characters, including tabs and spaces and custom components.
77
+ */
78
+ getDisplayTokens(model: ContentsInterface, str: string, startIndex: number): DisplayToken[];
79
+ private fillLineTokens;
80
+ private getOrGenerateComponent;
81
+ private processCharSizes;
82
+ getLineTokens(model: ContentsInterface, line: string, startIndex: number): DisplayToken[];
83
+ private getEmptyDisplayTokens;
84
+ private getEmptyLineTokens;
85
+ private getLineInfoByBreakModifier;
86
+ private getParagraphIndentLeft;
87
+ private getLineInfoFromTextLine;
88
+ private getLineInfoModel;
89
+ private getIndentLeftFromTextLine;
90
+ private computeWrapSplit;
91
+ private calculateSplit;
92
+ private isWhiteSpace;
93
+ /**
94
+ * Computes wrap index based on max row width
95
+ */
96
+ private computeWrapIndex;
97
+ private getPreviousParagraphInfo;
98
+ private getVisiblePages;
99
+ private insertTextAndReturnEndCursorPosition;
100
+ private splitByParagraphs;
101
+ private setParagraphIndexes;
102
+ private initPagesVerticalData;
103
+ }
@@ -1,8 +1,13 @@
1
1
  import { NumberingModel } from '../../../models/generated/numbering.model';
2
+ export type NumberingInfo = Record<string, {
3
+ markerIndex: number;
4
+ visited: boolean;
5
+ }[]>;
2
6
  export declare class GeneralPropertiesModel {
3
7
  defaultTabWidth: number;
4
8
  numberings: NumberingModel[];
5
9
  maxEdgeHeight: number;
6
10
  scalingRatio: number;
11
+ numberingInfo: NumberingInfo;
7
12
  constructor(fields?: Partial<GeneralPropertiesModel>);
8
13
  }
@@ -0,0 +1,9 @@
1
+ import { Paragraph } from '../paragraph';
2
+ export declare class ParagraphInfoModel {
3
+ content: string;
4
+ nextLineIndexes: number[];
5
+ paragraphSettings: Paragraph;
6
+ startIndex: number;
7
+ lineNumber: number;
8
+ constructor(fields?: Partial<ParagraphInfoModel>);
9
+ }
@@ -31,6 +31,7 @@ export declare class Paragraph {
31
31
  }, tables: ComponentRef<NoderTableComponent>[]) => void);
32
32
  setTextLinesInfo(linesInfos: LineInfoModel[]): void;
33
33
  setIsAfterPageBreak(value: boolean): void;
34
+ calculateDistanceFromTop(pageHeight: number, pagesSpace: number, marginTop: number): void;
34
35
  getParagraphData(): {
35
36
  lastPage: number;
36
37
  paragraphHeight: number;
@@ -15,5 +15,6 @@ export declare class TextLineInfo {
15
15
  backgroundColor: string;
16
16
  hasTable: boolean;
17
17
  splitOffset: number;
18
+ indentLeft: number;
18
19
  constructor(contentWidth: number, align: number, indent: IndentModel, fields?: Partial<LineInfoModel>);
19
20
  }
@@ -13,6 +13,6 @@ export interface IToolbarStyles {
13
13
  spaceBefore?: number;
14
14
  indentLeft?: number;
15
15
  indentRight?: number;
16
- isBulletMarker?: boolean;
16
+ numberingType?: any;
17
17
  numberingLevelsStyles?: string;
18
18
  }
@@ -1,11 +1,10 @@
1
1
  import { TextStyleModel } from '../../../models/generated/text-style.model';
2
2
  export declare class ContentStyleHelper {
3
- static getDefaultStyleValueByKey(key: string): any;
4
3
  static getTextStylesString(textStyle: TextStyleModel): string;
5
4
  /**
6
5
  * Returns font styles string from modifier used for canvas calculation
7
6
  */
8
7
  static getFontStylesString(textStyle: TextStyleModel): string;
9
8
  static areSameTextStyles(first: TextStyleModel, second: TextStyleModel): boolean;
10
- static combineTextStyles(current: TextStyleModel, parent: TextStyleModel): TextStyleModel;
9
+ static combineTextStyles(current: TextStyleModel | null, parent: TextStyleModel): TextStyleModel;
11
10
  }
@@ -0,0 +1,6 @@
1
+ import { DisplayToken } from '../display-data/display-token.model';
2
+ import { LineInfoModel } from '../display-data/line-info.model';
3
+ export declare class DisplayTokenHelper {
4
+ static getDisplayValue(charCode: number): number;
5
+ static getLineInfoFromToken(prevToken: DisplayToken, firstWrapToken: DisplayToken, wrapTokens: DisplayToken[], isAfterPageBreak: boolean): LineInfoModel;
6
+ }
@@ -0,0 +1,4 @@
1
+ import { LinkModel } from '../../../models/generated/link.model';
2
+ export declare class LinkHelper {
3
+ static sliceSection(links: LinkModel[], startIndex: number, endIndex: number): LinkModel[];
4
+ }
@@ -1,12 +1,11 @@
1
1
  import { EdgeElementModel } from '../../components/edges/edge-element.model';
2
- import { EditSession } from '../../execution/edit.session';
3
2
  import { EditorService } from '../../interaction/editor.service';
4
- import { EventEmitting } from '../../core/event-emitting';
3
+ import { EditSession } from '../../execution/edit.session';
5
4
  import { ILayerConfig } from './layer.config';
6
5
  import { Lines } from '../../content/display-data/lines';
7
6
  import { PageType } from '../../components/edges/page-type.enum';
8
7
  import { RenderingHelper } from '../rendering.helper';
9
- export declare class TextLayer extends EventEmitting {
8
+ export declare class TextLayer {
10
9
  protected session: EditSession;
11
10
  private editorService;
12
11
  private renderingHelper;
@@ -1,14 +1,12 @@
1
1
  import { EditorService } from '../../interaction/editor.service';
2
2
  import { EditSession } from '../../execution/edit.session';
3
3
  import { PagesLayer } from '../layers/pages.layer';
4
- import { PagesWrap } from '../../content/display-data/pages.wrap';
5
4
  import { PrintTextLayer } from '../layers/print.text.layer';
6
5
  export declare class PrintRenderer {
7
6
  private mainSession;
8
7
  content: HTMLElement;
9
8
  textLayer: PrintTextLayer;
10
9
  pagesLayer: PagesLayer;
11
- originalPagesWrap: PagesWrap;
12
10
  documentHtml: string;
13
11
  headHtml: string;
14
12
  pagesCount: number;
@@ -3,16 +3,14 @@ import { ApplyElementStyleModel } from '../../models/generated/apply-element-sty
3
3
  import { ApplyImageStyleModel } from '../../models/generated/apply-image-style.model';
4
4
  import { BaseNoderComponent } from '../components/shared/abstract/base.component';
5
5
  import { BreakTypes } from '../gadgets/page-break/break-types.enum';
6
- import { ComponentService } from '../components/shared/services/component.service';
7
6
  import { ContentsInterface } from '../content/contents.interface';
8
7
  import { CursorParagraph } from '../positioning/cursor-paragraph';
9
8
  import { CustomContent } from '../components/shared/custom-content';
10
9
  import { CustomContentService } from '../components/shared/services/custom-content.service';
11
- import { DisplayToken } from '../content/display-data/display-token.model';
12
- import { Document } from '../content/display-data/document';
10
+ import { DisplayData } from '../content/display-data/display-data';
11
+ import { EditorService } from '../interaction/editor.service';
13
12
  import { ElementDataModel } from '../components/external-element/models/element-data.model';
14
13
  import { ElementModel } from '../../models/generated/element.model';
15
- import { EventEmitting } from '../core/event-emitting';
16
14
  import { FormatModel } from '../../models/generated/format.model';
17
15
  import { GeneralPropertiesModel } from '../content/display-data/general-properties.model';
18
16
  import { ICustomComponents } from '../components/shared/custom-components.interface';
@@ -20,15 +18,14 @@ import { ImageDataModel } from '../../models/generated/image-data.model';
20
18
  import { InsertBreakModel } from '../../models/generated/insert-break.model';
21
19
  import { InsertElementModel } from '../../models/generated/insert-element.model';
22
20
  import { InsertImageModel } from '../../models/generated/insert-image.model';
21
+ import { InsertLinkModel } from '../../models/generated/insert-link.model';
23
22
  import { InsertParagraphModel } from '../../models/generated/insert-paragraph.model';
24
23
  import { InsertTableModel } from '../../models/generated/insert-table.model';
25
24
  import { InsertTabModel } from '../../models/generated/insert-tab.model';
26
- import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
27
25
  import { LinkDataModel } from '../../models/generated/link-data.model';
28
26
  import { LinkModel } from '../../models/generated/link.model';
29
27
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
30
28
  import { NumberingModel } from '../../models/generated/numbering.model';
31
- import { PagesWrap } from '../content/display-data/pages.wrap';
32
29
  import { ParagraphModel } from '../../models/generated/paragraph.model';
33
30
  import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
34
31
  import { Range } from '../positioning/range';
@@ -39,39 +36,23 @@ import { ScrollBar } from '../gadgets/scrollbar';
39
36
  import { Selection } from '../positioning/selection';
40
37
  import { TableModel } from '../../models/generated/table.model';
41
38
  import { TextStyleModel } from '../../models/generated/text-style.model';
42
- export declare class EditSession extends EventEmitting {
43
- document: Document;
39
+ export declare class EditSession {
40
+ displayData: DisplayData;
44
41
  sessionId: number;
45
42
  customContentService: CustomContentService;
46
43
  model: ContentsInterface;
47
44
  selection: Selection;
48
45
  generalProperties: GeneralPropertiesModel;
46
+ editorService: EditorService;
47
+ customComponents: ICustomComponents;
48
+ private type;
49
49
  private scrollBar?;
50
- readonly customComponents: ICustomComponents;
51
50
  tokenRe: RegExp;
52
51
  nonTokenRe: RegExp;
53
- pagesWrap: PagesWrap;
54
- wrapData: number[][];
55
- wrapParagraphLine: number[];
56
- wrapParagraphIndex: number[];
57
52
  get scrollTop(): number;
58
- get stylesMap(): IToolbarStyles;
59
- private readonly _stylesMap;
60
- set contentWidth(value: number);
61
- get contentWidth(): number;
62
- private _contentWidth;
63
- cursorStyle: TextStyleModel;
64
- constructor(document: Document, sessionId: number, customContentService: CustomContentService, model: ContentsInterface, selection: Selection, generalProperties: GeneralPropertiesModel, componentService: ComponentService, scrollBar?: ScrollBar);
53
+ constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, model: ContentsInterface, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main', scrollBar?: ScrollBar);
65
54
  destroy(): void;
66
55
  getRowLength(row: number): number;
67
- updateWrapParagraphIndex(first: number): void;
68
- updateWrapParagraphLine(first: number): void;
69
- updateParagraphNumberingData(index: number): void;
70
- updateWrapData(firstParagraph: number, lastParagraph: number): void;
71
- /**
72
- * Given a string, returns an array of the display characters, including tabs and spaces.
73
- */
74
- getDisplayTokens(model: ContentsInterface, str: string, startIndex: number): DisplayToken[];
75
56
  getRowCacheIndex(cacheArray: number[], value: number): number;
76
57
  /**
77
58
  * Calculates the width of the string `str` on the screen while assuming that the string starts at the first column on the screen.
@@ -91,6 +72,7 @@ export declare class EditSession extends EventEmitting {
91
72
  insertTabByDocumentIndex(insertElement: InsertTabModel): CursorParagraph;
92
73
  insertImageByDocumentIndex(insertElement: InsertImageModel): CursorParagraph;
93
74
  insertTableByDocumentIndex(insertElement: InsertTableModel): CursorParagraph;
75
+ insertLinkByDocumentIndex(insertElement: InsertLinkModel): CursorParagraph;
94
76
  insertParagraphByDocumentIndex(insertElement: InsertParagraphModel): CursorParagraph;
95
77
  applyTextStyle(startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
96
78
  applyParagraphStyle(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel): void;
@@ -117,15 +99,11 @@ export declare class EditSession extends EventEmitting {
117
99
  insertTable(position: CursorParagraph, tableModel: InsertTableModel): CursorParagraph;
118
100
  insertParagraph(position: CursorParagraph, paragraphModel: InsertParagraphModel): CursorParagraph;
119
101
  addComponent<T extends BaseNoderComponent>(customElements: ComponentRef<T>[], model: CustomContent, componentType: Type<T>): void;
120
- setStyle(style: TextStyleModel | ParagraphStyleModel): void;
121
- setStyles(styles: {
122
- [key: string]: any[];
123
- }): void;
124
- setNumberingStyle(startIndex: number, endIndex: number): void;
102
+ applyToolbarStyles(): void;
103
+ getStyleForCursor(index: number): TextStyleModel[];
125
104
  restore(model: RestoreModel): void;
126
105
  restoreComponents<T extends BaseNoderComponent>(models: CustomContent[], components: ComponentRef<BaseNoderComponent>[], componentType: Type<T>, restoreIndex: number, restoreEndIndex: number): void;
127
106
  restoreElementComponents(elements: ElementModel[], restoreIndex: number, restoreEndIndex: number): void;
128
- processSelectionStyles(): void;
129
107
  getLinkModel(cursor: CursorParagraph): LinkModel;
130
108
  insertTableRows(insertIndex: number, rowsCount: number, targetIndex: number, inheritIndex: number): void;
131
109
  insertTableColumns(insertIndex: number, columnsCount: number, targetIndex: number, inheritIndex: number): void;
@@ -133,29 +111,4 @@ export declare class EditSession extends EventEmitting {
133
111
  removeTableColumns(insertIndex: number, startIndex: number, endIndex: number): void;
134
112
  resizeTableColumns(resizeTableColumns: ResizeTableColumnsModel): void;
135
113
  restoreTable(insertIndex: number, table: TableModel): void;
136
- private updateParagraphTabs;
137
- private getRangeIndexes;
138
- private updateInternalDataOnInsertText;
139
- private updateInternalDataOnDeleteText;
140
- private updateNumberingsDataOnChange;
141
- /**
142
- * Computes wrap index based on max row width
143
- */
144
- private computeWrapIndex;
145
- private computeWrapSplit;
146
- private getSplits;
147
- private setDocument;
148
- private getEmptyLineTokens;
149
- private getFilledLineTokens;
150
- private processCharSizes;
151
- private calculateSplit;
152
- private isWhiteSpace;
153
- private getLineInfoFromToken;
154
- private getDisplayValue;
155
- private getLineInfoByBreakModifier;
156
- private getParagraphIndentLeft;
157
- private updateTextStyles;
158
- private updateParagraphStyles;
159
- private updateNumberingStyles;
160
- private getImageWithAllowedSize;
161
114
  }
@@ -9,7 +9,6 @@ import { EditorService } from '../interaction/editor.service';
9
9
  import { EditSession } from './edit.session';
10
10
  import { ElementDataModel } from '../components/external-element/models/element-data.model';
11
11
  import { ElementModel } from '../../models/generated/element.model';
12
- import { EventEmitting } from '../core/event-emitting';
13
12
  import { ImageDataModel } from '../../models/generated/image-data.model';
14
13
  import { ImageModel } from '../../models/generated/image.model';
15
14
  import { InputHandler } from '../interaction/input.handler';
@@ -20,7 +19,6 @@ import { InsertLinkModel } from '../../models/generated/insert-link.model';
20
19
  import { InsertParagraphModel } from '../../models/generated/insert-paragraph.model';
21
20
  import { InsertTableModel } from '../../models/generated/insert-table.model';
22
21
  import { InsertTabModel } from '../../models/generated/insert-tab.model';
23
- import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
24
22
  import { LinkDataModel } from '../../models/generated/link-data.model';
25
23
  import { MouseHandler } from '../interaction/mouse.handler';
26
24
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
@@ -38,7 +36,7 @@ import { Selection } from '../positioning/selection';
38
36
  import { TargetModel } from '../../models/generated/target.model';
39
37
  import { TextStyleModel } from '../../models/generated/text-style.model';
40
38
  import { VirtualRenderer } from '../display/virtual.renderer';
41
- export declare class Editor extends EventEmitting {
39
+ export declare class Editor {
42
40
  private model;
43
41
  private container;
44
42
  private editorService;
@@ -78,7 +76,6 @@ export declare class Editor extends EventEmitting {
78
76
  cut(): void;
79
77
  insert(text: string): void;
80
78
  insertText(text: string, textStyle: TextStyleModel): void;
81
- replaceText(text: string): void;
82
79
  removeLeft(): void;
83
80
  removeRight(): void;
84
81
  insertBreak(breakType: BreakTypes): void;
@@ -96,6 +93,9 @@ export declare class Editor extends EventEmitting {
96
93
  removeToLineEnd(): void;
97
94
  removeWordLeft(): void;
98
95
  removeWordRight(): void;
96
+ applyTextStyleBold(): void;
97
+ applyTextStyleItalic(): void;
98
+ applyTextStyleUnderline(): void;
99
99
  applyTextStyles(textStyle: TextStyleModel): void;
100
100
  setTextStyle(textStyle: TextStyleModel): void;
101
101
  applyParagraphStyles(paragraphStyle: ParagraphStyleModel): void;
@@ -151,13 +151,13 @@ export declare class Editor extends EventEmitting {
151
151
  getCustomElement(element: HTMLElement): HTMLElement | null;
152
152
  isParentEdge(element: HTMLElement): boolean;
153
153
  getClickedPage(mousePosition: number): number;
154
- setStyles: (styles: IToolbarStyles) => void;
155
154
  /**
156
155
  * Returns the string of text currently highlighted.
157
156
  */
158
157
  getSelectedText(): string;
159
158
  initMainSession(): void;
160
159
  onSelectionChange(): void;
160
+ enableSelection(): void;
161
161
  onHotKeyDown(event: KeyboardEvent): void;
162
162
  onPrint(): void;
163
163
  private onDocumentChange;
@@ -186,7 +186,7 @@ export declare class Editor extends EventEmitting {
186
186
  insertImageSubscription(): Subscription;
187
187
  insertLinkSubscription(): Subscription;
188
188
  endMousePressSubscription(): Subscription;
189
- clearSelectionSubscription(): Subscription;
189
+ disableSelectionSubscription(): Subscription;
190
190
  changedTableSizeSubscription(): Subscription;
191
191
  insertTableRowsSubscription(): Subscription;
192
192
  insertTableColumnsSubscription(): Subscription;
@@ -195,11 +195,13 @@ export declare class Editor extends EventEmitting {
195
195
  removedImageSubscription(): Subscription;
196
196
  resizeTableColumnsSubscription(): Subscription;
197
197
  insertTableSubscription(): Subscription;
198
+ insertTextSubscription(): Subscription;
198
199
  rendererUpdatedSubscription(): Subscription;
199
200
  edgeElementCopyUpdatedSubscription(): Subscription;
200
201
  changedEdgeHeightSubscription(): Subscription;
201
202
  undoSubscription(): Subscription;
202
203
  redoSubscription(): Subscription;
204
+ blurCustomComponentSubscription(): Subscription;
203
205
  private printSubscription;
204
206
  private cutSelectedSubscription;
205
207
  private copySelectedSubscription;
@@ -209,4 +211,5 @@ export declare class Editor extends EventEmitting {
209
211
  private selectAllSubscription;
210
212
  private removeSelectedSubscription;
211
213
  private clipboardDataSubscription;
214
+ updateEdgeSubscription(): Subscription;
212
215
  }
@@ -1,9 +1,9 @@
1
1
  import { FormatModel } from '../../../models/generated/format.model';
2
- import { TextStyleModel } from '../../../models/generated/text-style.model';
2
+ import { LinkModel } from '../../../models/generated/link.model';
3
3
  export declare class FormatStyleHelper {
4
- static applyTextStyles(formats: FormatModel[], startIndex: number, endIndex: number, cursorStyle: TextStyleModel): void;
5
4
  static getFormatsAtRange(formats: FormatModel[], startIndex: number, endIndex: number): FormatModel[];
6
5
  static getFormatAtIndex(formats: FormatModel[], index: number): FormatModel;
7
6
  static mergeFormats(formats: FormatModel[], startIndex: number, endIndex: number): void;
8
7
  static getPrevFormatAtIndex(formats: FormatModel[], index: number): FormatModel | null;
8
+ static combineSection(formats: FormatModel[], links: LinkModel[], startIndex: number, endIndex: number): FormatModel[];
9
9
  }
@@ -0,0 +1,4 @@
1
+ import { ImageDataModel } from '../../../models/generated/image-data.model';
2
+ export declare class ImageHelper {
3
+ static getImageWithAllowedSize(imageData: ImageDataModel, maxWidth: number): ImageDataModel;
4
+ }
@@ -2,8 +2,8 @@ import { ElementRef } from '@angular/core';
2
2
  import { ComponentService } from '../components/shared/services/component.service';
3
3
  import { CustomContentService } from '../components/shared/services/custom-content.service';
4
4
  import { DocxModel } from '../../models/generated/docx.model';
5
- import { EditSession } from './edit.session';
6
5
  import { EditorService } from '../interaction/editor.service';
6
+ import { EditSession } from './edit.session';
7
7
  import { GeneralPropertiesModel } from '../content/display-data/general-properties.model';
8
8
  import { MarginModel } from '../content/margin.model';
9
9
  import { NoderEdgeComponent } from '../components/edges/edge.component';
@@ -0,0 +1,6 @@
1
+ import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
2
+ export declare class NumberingParagraphStyleModel extends ParagraphStyleModel {
3
+ numberingType: any;
4
+ numberingLevelsStyles: string;
5
+ constructor(fields?: Partial<NumberingParagraphStyleModel>);
6
+ }
@@ -1,19 +1,26 @@
1
- import { GeneralPropertiesModel } from '../../content/display-data/general-properties.model';
1
+ import { GeneralPropertiesModel, NumberingInfo } from '../../content/display-data/general-properties.model';
2
2
  import { NumberingDataModel } from './numbering-data.model';
3
3
  import { NumberingLevelModel } from '../../../models/generated/numbering-level.model';
4
4
  import { NumberingModel } from '../../../models/generated/numbering.model';
5
+ import { NumberingParagraphStyleModel } from './numbering-paragraph-style.model';
5
6
  import { Paragraph } from '../../content/display-data/paragraph';
6
7
  import { ParagraphModel } from '../../../models/generated/paragraph.model';
7
8
  import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
8
9
  import { TextStyleModel } from '../../../models/generated/text-style.model';
9
10
  export declare class NumberingHelper {
11
+ static getStyles(paragraphStyle: ParagraphStyleModel, numberings: NumberingModel[]): NumberingParagraphStyleModel;
10
12
  static find(numberings: NumberingModel[], id: number, level: number): NumberingLevelModel;
11
- static getMarker(levelModel: NumberingLevelModel, numberingId: number, paragraphs: ParagraphModel[], paragraphIndex: number): string;
12
- static createDataModel(numberings: NumberingModel[], paragraphs: ParagraphModel[], paragraphIndex: number): NumberingDataModel;
13
+ static calculateNumberingInfo(numberingId: number, level: number, marker: string, numberingInfo: NumberingInfo, numberings: NumberingModel[]): void;
14
+ private static calculateMarkerIndexes;
15
+ static getMarker(levelModel: NumberingLevelModel, numberingId: number, paragraphs: ParagraphModel[], paragraphIndex: number, numberingInfo: NumberingInfo): string;
16
+ static createDataModel(numberings: NumberingModel[], paragraphs: ParagraphModel[], paragraphIndex: number, numberingInfo: NumberingInfo): NumberingDataModel;
13
17
  static updateMarkerData(properties: GeneralPropertiesModel, paragraph: Paragraph, paragraphTextStyle: TextStyleModel, paragraphStyle: ParagraphStyleModel): void;
14
18
  static getMarkerSizes(marker: string, markerStyle: TextStyleModel): {
15
19
  height: number;
16
20
  width: number;
17
21
  };
22
+ static updateNumberingInfo(numberingInfo: NumberingInfo, marker: string, numberingId: number): void;
18
23
  private static getLevelIndex;
24
+ private static getLevelInfo;
25
+ static createMarkerString(numberingInfo: NumberingInfo, numberingId: number, level: number): string;
19
26
  }