@talrace/ngx-noder 0.0.11 → 0.0.13

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 (80) hide show
  1. package/README.md +374 -71
  2. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +1 -1
  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/menu-dropdowns/menu-dropdowns.component.mjs +2 -5
  5. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +3 -3
  6. package/esm2022/lib/editor/components/edges/edge-element.model.mjs +30 -1
  7. package/esm2022/lib/editor/components/edges/edge.component.mjs +23 -23
  8. package/esm2022/lib/editor/components/edges/edges.mjs +30 -15
  9. package/esm2022/lib/editor/components/image/components/image.component.mjs +2 -2
  10. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +2 -2
  11. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +5 -3
  12. package/esm2022/lib/editor/components/table/components/table.component.mjs +7 -5
  13. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +12 -5
  14. package/esm2022/lib/editor/content/display-data/display-data.mjs +4 -4
  15. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +1 -1
  16. package/esm2022/lib/editor/content/helpers/link.helper.mjs +39 -3
  17. package/esm2022/lib/editor/display/layers/text.layer.mjs +100 -75
  18. package/esm2022/lib/editor/display/print/print.helper.mjs +3 -3
  19. package/esm2022/lib/editor/display/print/print.renderer.mjs +5 -5
  20. package/esm2022/lib/editor/display/renderer.mjs +23 -25
  21. package/esm2022/lib/editor/display/virtual.renderer.mjs +10 -43
  22. package/esm2022/lib/editor/execution/edit.session.mjs +26 -16
  23. package/esm2022/lib/editor/execution/editor.mjs +88 -127
  24. package/esm2022/lib/editor/execution/regulator.service.mjs +44 -39
  25. package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +2 -3
  26. package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +2 -3
  27. package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +2 -2
  28. package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +1 -1
  29. package/esm2022/lib/editor/gadgets/history/operation-history.mjs +39 -37
  30. package/esm2022/lib/editor/interaction/editor.service.mjs +22 -22
  31. package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -2
  32. package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +4 -4
  33. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +2 -2
  34. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +59 -7
  35. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +24 -25
  36. package/esm2022/lib/editor/operations/save-commands.helper.mjs +6 -5
  37. package/esm2022/lib/editor/positioning/content.helper.mjs +10 -1
  38. package/esm2022/lib/editor/positioning/position.helper.mjs +49 -35
  39. package/esm2022/lib/editor/revision.helper.mjs +3 -1
  40. package/esm2022/lib/models/generated/delete.model.mjs +1 -1
  41. package/esm2022/lib/models/generated/link-data.model.mjs +1 -1
  42. package/esm2022/lib/models/generated/link.model.mjs +1 -1
  43. package/esm2022/lib/models/generated/restore-text-styles.model.mjs +1 -1
  44. package/esm2022/lib/models/generated/target.model.mjs +1 -1
  45. package/fesm2022/talrace-ngx-noder.mjs +672 -545
  46. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  47. package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +1 -3
  48. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +1 -1
  49. package/lib/editor/components/edges/edge-element.model.d.ts +9 -1
  50. package/lib/editor/components/edges/edge.component.d.ts +4 -4
  51. package/lib/editor/components/edges/edges.d.ts +8 -2
  52. package/lib/editor/components/table/components/table.component.d.ts +4 -2
  53. package/lib/editor/components/table/selection/table-selection.d.ts +5 -2
  54. package/lib/editor/content/display-data/display-data.d.ts +2 -1
  55. package/lib/editor/content/helpers/content-style.helper.d.ts +1 -1
  56. package/lib/editor/content/helpers/link.helper.d.ts +4 -1
  57. package/lib/editor/display/layers/text.layer.d.ts +8 -10
  58. package/lib/editor/display/print/print.helper.d.ts +1 -2
  59. package/lib/editor/display/print/print.renderer.d.ts +1 -2
  60. package/lib/editor/display/renderer.d.ts +9 -9
  61. package/lib/editor/display/virtual.renderer.d.ts +3 -10
  62. package/lib/editor/execution/edit.session.d.ts +7 -2
  63. package/lib/editor/execution/editor.d.ts +10 -9
  64. package/lib/editor/execution/regulator.service.d.ts +6 -4
  65. package/lib/editor/execution/targeting/cell-session-source.model.d.ts +0 -1
  66. package/lib/editor/execution/targeting/edge-session-source.model.d.ts +0 -1
  67. package/lib/editor/execution/targeting/session-source.model.d.ts +0 -1
  68. package/lib/editor/gadgets/history/operation-history.d.ts +7 -3
  69. package/lib/editor/interaction/editor.service.d.ts +13 -12
  70. package/lib/editor/operations/helpers/content-operations.helper.d.ts +1 -1
  71. package/lib/editor/operations/helpers/link-operations.helper.d.ts +7 -2
  72. package/lib/editor/operations/operations-helper.helper.d.ts +3 -3
  73. package/lib/editor/operations/save-commands.helper.d.ts +1 -1
  74. package/lib/editor/positioning/content.helper.d.ts +2 -0
  75. package/lib/editor/positioning/position.helper.d.ts +21 -6
  76. package/lib/models/generated/delete.model.d.ts +1 -1
  77. package/lib/models/generated/restore-text-styles.model.d.ts +1 -0
  78. package/lib/models/generated/target.model.d.ts +0 -1
  79. package/package.json +1 -1
  80. package/src/scss/base-editor.scss +4 -0
@@ -4,7 +4,6 @@ import { Alignment } from '../../shared/enums/alignment.enum';
4
4
  import { BaseToolbarComponent } from '../base-toolbar.component';
5
5
  import { CustomIconService } from '../../shared/services/custom-icon.service';
6
6
  import { EditorService } from '../../../../editor/interaction/editor.service';
7
- import { ElementDataModel } from '../../../../editor/components/external-element/models/element-data.model';
8
7
  import { NumberingTemplateType } from '../../shared/enums/numbering-template-type.enum';
9
8
  import * as i0 from "@angular/core";
10
9
  export declare class MenuDropdownsComponent extends BaseToolbarComponent {
@@ -16,7 +15,6 @@ export declare class MenuDropdownsComponent extends BaseToolbarComponent {
16
15
  showLayout: boolean;
17
16
  showFormat: boolean;
18
17
  openFileFromDisk: EventEmitter<void>;
19
- addCustomElement: EventEmitter<ElementDataModel>;
20
18
  saveAs: EventEmitter<void>;
21
19
  insertPageBreak: EventEmitter<void>;
22
20
  createDocument: EventEmitter<void>;
@@ -37,5 +35,5 @@ export declare class MenuDropdownsComponent extends BaseToolbarComponent {
37
35
  onSelectNumberingTemplate(numberingTemplateType: NumberingTemplateType): void;
38
36
  onTableInsertMenuClosed(): void;
39
37
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuDropdownsComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuDropdownsComponent, "app-nod-menu-dropdowns", never, { "showFile": { "alias": "showFile"; "required": false; }; "showEdit": { "alias": "showEdit"; "required": false; }; "showInsert": { "alias": "showInsert"; "required": false; }; "showLayout": { "alias": "showLayout"; "required": false; }; "showFormat": { "alias": "showFormat"; "required": false; }; }, { "openFileFromDisk": "openFileFromDisk"; "addCustomElement": "addCustomElement"; "saveAs": "saveAs"; "insertPageBreak": "insertPageBreak"; "createDocument": "createDocument"; "rename": "rename"; "delete": "delete"; "openEditMenu": "openEditMenu"; "cutSelected": "cutSelected"; "copySelected": "copySelected"; "pasteClipboardData": "pasteClipboardData"; "selectAll": "selectAll"; "removeSelected": "removeSelected"; }, never, never, false, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuDropdownsComponent, "app-nod-menu-dropdowns", never, { "showFile": { "alias": "showFile"; "required": false; }; "showEdit": { "alias": "showEdit"; "required": false; }; "showInsert": { "alias": "showInsert"; "required": false; }; "showLayout": { "alias": "showLayout"; "required": false; }; "showFormat": { "alias": "showFormat"; "required": false; }; }, { "openFileFromDisk": "openFileFromDisk"; "saveAs": "saveAs"; "insertPageBreak": "insertPageBreak"; "createDocument": "createDocument"; "rename": "rename"; "delete": "delete"; "openEditMenu": "openEditMenu"; "cutSelected": "cutSelected"; "copySelected": "copySelected"; "pasteClipboardData": "pasteClipboardData"; "selectAll": "selectAll"; "removeSelected": "removeSelected"; }, never, never, false, never>;
41
39
  }
@@ -15,7 +15,7 @@ export declare class EditorToolbarComponent {
15
15
  createDocument: EventEmitter<any>;
16
16
  insertImage: EventEmitter<void>;
17
17
  rename: EventEmitter<any>;
18
- delete: EventEmitter<string>;
18
+ delete: EventEmitter<void>;
19
19
  openEditMenu: EventEmitter<any>;
20
20
  redo: EventEmitter<void>;
21
21
  undo: EventEmitter<void>;
@@ -1,7 +1,15 @@
1
+ import { EdgeType } from './edge-type.enum';
1
2
  import { PageType } from './page-type.enum';
2
3
  export declare class EdgeElementModel {
3
- element: HTMLElement;
4
+ container: HTMLElement;
4
5
  page: number;
5
6
  pageType: PageType;
7
+ edgeType: EdgeType;
8
+ isOrigin: boolean;
6
9
  constructor(fields?: Partial<EdgeElementModel>);
10
+ isNotCopy(type: EdgeType, pageType: PageType): boolean;
11
+ isCopy(type: EdgeType, pageType: PageType): boolean;
12
+ isWithin(start: number, end: number): boolean;
13
+ replace(model: EdgeElementModel): void;
14
+ substitute(model: EdgeElementModel): void;
7
15
  }
@@ -28,17 +28,17 @@ export declare class NoderEdgeComponent extends DestroyComponent {
28
28
  typeContainerPosition: string;
29
29
  get session(): EditSession;
30
30
  get renderer(): Renderer | VirtualRenderer;
31
- get height(): number;
31
+ get contentHeight(): number;
32
32
  container: ElementRef<HTMLElement>;
33
33
  typeContainer: ElementRef<HTMLElement>;
34
- private _previousHeight;
34
+ private _height;
35
35
  constructor(regulatorService: RegulatorService, editorService: EditorService);
36
36
  ngOnDestroy(): void;
37
37
  initialize(): void;
38
38
  enterEditMode(): void;
39
39
  leaveEditMode(): void;
40
- rendererUpdated(sessionId: number): void;
41
- private setTypeContainerPosition;
40
+ private applyHeight;
41
+ private pagesCountChangedHandler;
42
42
  static ɵfac: i0.ɵɵFactoryDeclaration<NoderEdgeComponent, never>;
43
43
  static ɵcmp: i0.ɵɵComponentDeclaration<NoderEdgeComponent, "app-nod-edge", never, { "model": { "alias": "model"; "required": false; }; "generalProperties": { "alias": "generalProperties"; "required": false; }; "margins": { "alias": "margins"; "required": false; }; "width": { "alias": "width"; "required": false; }; "parentSessionId": { "alias": "parentSessionId"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, false, never>;
44
44
  }
@@ -12,12 +12,18 @@ export declare class Edges {
12
12
  private generalProperties;
13
13
  headersComponents: ComponentRef<NoderEdgeComponent>[];
14
14
  footersComponents: ComponentRef<NoderEdgeComponent>[];
15
+ isEdit: boolean;
15
16
  constructor(componentService: ComponentService, headers: EdgeModel[], footers: EdgeModel[], margins: MarginModel, pageWidth: number, parentSessionId: number, generalProperties: GeneralPropertiesModel);
17
+ getTypeBySessionId(sessionId: number): {
18
+ type: EdgeType;
19
+ pageType: PageType;
20
+ };
16
21
  getComponentByPage(page: number, type: EdgeType): ComponentRef<NoderEdgeComponent>;
17
22
  getComponentByPageType(pageType: PageType, type: EdgeType): ComponentRef<NoderEdgeComponent>;
18
23
  getComponentHeightByPageType(pageType: PageType, type: EdgeType): number;
19
- getComponentHeight(page: number, type: EdgeType): number;
20
- toggleEditMode(needEnable: boolean): void;
24
+ getComponentHeight(instance: NoderEdgeComponent): number;
25
+ getComponentHeightByType(pageType: PageType, type: EdgeType): number;
26
+ toggleEditMode(isEdit: boolean): void;
21
27
  getUniquePageTypes(): PageType[];
22
28
  private createComponents;
23
29
  private getComponent;
@@ -4,9 +4,10 @@ import { CellDataModel } from '../models/cell-data.model';
4
4
  import { CellResizer } from '../cell-resizer/cell-resizer';
5
5
  import { CellResizerParametersModel } from '../models/cell-resizer-parameters.model';
6
6
  import { ComponentService } from '../../shared/services/component.service';
7
- import { EditSession } from '../../../execution/edit.session';
8
7
  import { EditorService } from '../../../interaction/editor.service';
8
+ import { EditSession } from '../../../execution/edit.session';
9
9
  import { OverlayService } from '../../shared/services/overlay.service';
10
+ import { RegulatorService } from '../../../execution/regulator.service';
10
11
  import { RowDataModel } from '../models/row-data.model';
11
12
  import { RowModel } from '../../../../models/generated/row.model';
12
13
  import { TableModel } from '../../../../models/generated/table.model';
@@ -17,6 +18,7 @@ export declare class NoderTableComponent extends BaseNoderComponent {
17
18
  private editorService;
18
19
  private el;
19
20
  private overlayService;
21
+ private regulatorService;
20
22
  get table(): TableModel;
21
23
  set table(val: TableModel);
22
24
  tableSelection: TableSelection;
@@ -27,7 +29,7 @@ export declare class NoderTableComponent extends BaseNoderComponent {
27
29
  splits: number[];
28
30
  readonly minRowHeight = 19;
29
31
  readonly borderSize = 1;
30
- constructor(componentService: ComponentService, editorService: EditorService, el: ElementRef, overlayService: OverlayService);
32
+ constructor(componentService: ComponentService, editorService: EditorService, el: ElementRef, overlayService: OverlayService, regulatorService: RegulatorService);
31
33
  ngOnDestroy(): void;
32
34
  initialize(): void;
33
35
  getCellSession(row: number, column: number): EditSession;
@@ -1,16 +1,19 @@
1
1
  import { Subscription } from 'rxjs';
2
2
  import { EditorService } from '../../../interaction/editor.service';
3
+ import { EditSession } from '../../../execution/edit.session';
3
4
  import { OverlayService } from '../../shared/services/overlay.service';
5
+ import { RegulatorService } from '../../../execution/regulator.service';
4
6
  import { RowDataModel } from '../models/row-data.model';
5
7
  import { SelectionRangeModel } from '../models/selection-range.model';
6
8
  import { TableModel } from '../../../../models/generated/table.model';
7
9
  export declare class TableSelection {
8
10
  private editorService;
9
11
  private overlayService;
12
+ private regulatorService;
10
13
  private rowMatrix;
11
14
  private table;
12
15
  private tableEl;
13
- private sessionId;
16
+ private session;
14
17
  originSelectedCell: {
15
18
  rowIndex: number;
16
19
  cellIndex: number;
@@ -26,7 +29,7 @@ export declare class TableSelection {
26
29
  readonly tableTagName = "APP-NOD-TABLE";
27
30
  readonly cellTagName = "TD";
28
31
  readonly draggableCellContent: string[];
29
- constructor(editorService: EditorService, overlayService: OverlayService, rowMatrix: RowDataModel[], table: TableModel, tableEl: HTMLTableElement, sessionId: number);
32
+ constructor(editorService: EditorService, overlayService: OverlayService, regulatorService: RegulatorService, rowMatrix: RowDataModel[], table: TableModel, tableEl: HTMLTableElement, session: EditSession);
30
33
  destroy(): void;
31
34
  addTableContextMenuSubscriptions(): void;
32
35
  addTableMouseDownSubscriptions(): void;
@@ -13,6 +13,7 @@ import { LineInfoModel } from './line-info.model';
13
13
  import { MarginModel } from '../margin.model';
14
14
  import { NoderTableComponent } from '../../components/table/components/table.component';
15
15
  import { NumberingDataModel } from './../../gadgets/numbering/numbering-data.model';
16
+ import { PageType } from '../../components/edges/page-type.enum';
16
17
  import { PageVerticalDataModel } from '../page-vertical-data.model';
17
18
  import { Paragraph } from './paragraph';
18
19
  import { ParagraphInfoModel } from './models/paragraph-info.model';
@@ -62,7 +63,7 @@ export declare class DisplayData extends EventEmitting {
62
63
  processParagraphsProperties(startParagraphIndex: number): void;
63
64
  getAllParagraphsHeight(): number;
64
65
  destroy(): void;
65
- updatePageVerticalData(edgeType: EdgeType, page: number): void;
66
+ updatePageVerticalData(edgeType: EdgeType, pageType: PageType): void;
66
67
  updateParagraphLineNumber(first: number): void;
67
68
  updateParagraphStartIndex(first: number): void;
68
69
  updateParagraphSettingsNumberingData(index: number): void;
@@ -6,5 +6,5 @@ export declare class ContentStyleHelper {
6
6
  */
7
7
  static getFontStylesString(textStyle: TextStyleModel): string;
8
8
  static areSameTextStyles(first: TextStyleModel, second: TextStyleModel): boolean;
9
- static combineTextStyles(current: TextStyleModel | null, parent: TextStyleModel): TextStyleModel;
9
+ static combineTextStyles(current: Partial<TextStyleModel> | null, parent: TextStyleModel): TextStyleModel;
10
10
  }
@@ -1,4 +1,7 @@
1
+ import { FormatModel } from './../../../models/generated/format.model';
1
2
  import { LinkModel } from '../../../models/generated/link.model';
2
3
  export declare class LinkHelper {
3
- static sliceSection(links: LinkModel[], startIndex: number, endIndex: number): LinkModel[];
4
+ static sliceSection(links: LinkModel[], start: number, end: number): LinkModel[];
5
+ static sliceFormats(links: LinkModel[], startIndex: number, endIndex: number): FormatModel[];
6
+ private static getPartialLink;
4
7
  }
@@ -1,32 +1,30 @@
1
1
  import { EdgeElementModel } from '../../components/edges/edge-element.model';
2
- import { EditorService } from '../../interaction/editor.service';
2
+ import { EdgeType } from '../../components/edges/edge-type.enum';
3
3
  import { EditSession } from '../../execution/edit.session';
4
4
  import { ILayerConfig } from './layer.config';
5
5
  import { Lines } from '../../content/display-data/lines';
6
6
  import { PageType } from '../../components/edges/page-type.enum';
7
7
  import { RenderingHelper } from '../rendering.helper';
8
8
  export declare class TextLayer {
9
+ private parentElement;
9
10
  protected session: EditSession;
10
- private editorService;
11
11
  private renderingHelper;
12
12
  element: HTMLElement;
13
13
  lines: Lines;
14
14
  config: ILayerConfig;
15
15
  edgeElements: EdgeElementModel[];
16
- edgeEditingPage: number | null;
17
- constructor(parentElement: HTMLElement, session: EditSession, editorService: EditorService, renderingHelper?: typeof RenderingHelper);
16
+ constructor(parentElement: HTMLElement, session: EditSession, renderingHelper?: typeof RenderingHelper);
18
17
  destroy(): void;
18
+ updateEdge(type: EdgeType, pageType: PageType): void;
19
19
  updateEdges(config: ILayerConfig): void;
20
- edgeEditingPageUpdated(page: number | null): void;
21
- updateEdgeByLocation(updatedPageType: PageType): void;
20
+ scrollEdges(config: ILayerConfig): void;
22
21
  updateLines(config: ILayerConfig): void;
23
- scrollPages(config: ILayerConfig): void;
24
22
  scrollLines(config: ILayerConfig): void;
25
- protected getEdgeParagraphTop(topOffset: number, page: number): number;
26
23
  protected getParagraphTop(row: number): number;
27
- private renderPagesEdgeComponents;
24
+ private getEdgeTop;
25
+ private renderPageHeaderComponent;
26
+ private renderPageFooterComponent;
28
27
  private renderEdgeComponent;
29
- private removeEdgeComponents;
30
28
  private renderTextParagraph;
31
29
  private renderTextLines;
32
30
  private pagesCountChangedHandler;
@@ -1,8 +1,7 @@
1
- import { EditorService } from '../../interaction/editor.service';
2
1
  import { EditSession } from '../../execution/edit.session';
3
2
  import { RenderingHelper } from '../rendering.helper';
4
3
  export declare class PrintHelper extends RenderingHelper {
5
- static printDocument(session: EditSession, editorService: EditorService): void;
4
+ static printDocument(session: EditSession): void;
6
5
  private static printDocumentHtml;
7
6
  private static getPrintFrame;
8
7
  private static removePrintContainers;
@@ -1,4 +1,3 @@
1
- import { EditorService } from '../../interaction/editor.service';
2
1
  import { EditSession } from '../../execution/edit.session';
3
2
  import { PagesLayer } from '../layers/pages.layer';
4
3
  import { PrintTextLayer } from '../layers/print.text.layer';
@@ -10,7 +9,7 @@ export declare class PrintRenderer {
10
9
  documentHtml: string;
11
10
  headHtml: string;
12
11
  pagesCount: number;
13
- constructor(mainSession: EditSession, editorService: EditorService);
12
+ constructor(mainSession: EditSession);
14
13
  renderPrintDocument(): void;
15
14
  private computeLayerConfig;
16
15
  private createContent;
@@ -1,6 +1,5 @@
1
1
  import { CursorLayer } from './layers/cursor.layer';
2
2
  import { CursorParagraph } from '../positioning/cursor-paragraph';
3
- import { EditorService } from '../interaction/editor.service';
4
3
  import { EditSession } from '../execution/edit.session';
5
4
  import { EventEmitting } from '../core/event-emitting';
6
5
  import { ILayerConfig } from './layers/layer.config';
@@ -10,9 +9,7 @@ import { RenderLoop } from './renderloop';
10
9
  import { SelectionLayer } from './layers/selection.layer';
11
10
  import { TextLayer } from './layers/text.layer';
12
11
  export declare class Renderer extends EventEmitting {
13
- private editorService;
14
12
  session: EditSession;
15
- isMousePressed: boolean;
16
13
  container: HTMLElement;
17
14
  content: HTMLElement;
18
15
  cursorLayer: CursorLayer;
@@ -26,7 +23,7 @@ export declare class Renderer extends EventEmitting {
26
23
  height: number;
27
24
  width: number;
28
25
  };
29
- constructor(parentContainer: HTMLElement, editorService: EditorService, session: EditSession);
26
+ constructor(parentContainer: HTMLElement, session: EditSession);
30
27
  renderChanges(changes: RenderChangesModel, force?: boolean): void;
31
28
  /**
32
29
  * Triggers a partial update of the text, from the range given by the two parameters.
@@ -38,12 +35,15 @@ export declare class Renderer extends EventEmitting {
38
35
  * Triggers a full update of the text, for all the rows.
39
36
  **/
40
37
  updateText(): void;
41
- /**
42
- * Triggers a full update of all the layers, for all the rows.
43
- **/
44
- updateFull(force?: boolean): void;
45
38
  updateCursor(): void;
46
- screenToTextCoordinates(x: number, y: number): CursorParagraph;
39
+ /**
40
+ * Converts screen coordinates to text coordinates by mapping to the closest token midpoint.
41
+ */
42
+ screenToTextCoordinatesUsingMidpoint(x: number, y: number, rect?: DOMRect): CursorParagraph;
43
+ /**
44
+ * Converts screen coordinates to text coordinates by mapping to the next token boundary.
45
+ */
46
+ screenToTextCoordinatesUsingBoundary(x: number, y: number, rect?: DOMRect): CursorParagraph;
47
47
  showCursor(): void;
48
48
  hideCursor(): void;
49
49
  destroy(): void;
@@ -1,6 +1,5 @@
1
1
  import { CursorLayer } from './layers/cursor.layer';
2
2
  import { CursorParagraph } from '../positioning/cursor-paragraph';
3
- import { EditorService } from '../interaction/editor.service';
4
3
  import { EditSession } from '../execution/edit.session';
5
4
  import { ILayerConfig } from './layers/layer.config';
6
5
  import { PagesLayer } from './layers/pages.layer';
@@ -11,8 +10,6 @@ import { RenderLoop } from './renderloop';
11
10
  import { ScrollBar } from '../gadgets/scrollbar';
12
11
  export declare class VirtualRenderer {
13
12
  scrollBar: ScrollBar;
14
- get isMousePressed(): boolean;
15
- set isMousePressed(val: boolean);
16
13
  get cursorLayer(): CursorLayer;
17
14
  get loop(): RenderLoop;
18
15
  set loop(val: RenderLoop);
@@ -34,7 +31,7 @@ export declare class VirtualRenderer {
34
31
  dirty: boolean;
35
32
  };
36
33
  private scrollSubscription;
37
- constructor(parentContainer: HTMLElement, editorService: EditorService, mainSession: EditSession, scrollBar: ScrollBar);
34
+ constructor(parentContainer: HTMLElement, mainSession: EditSession, scrollBar: ScrollBar);
38
35
  renderChanges(changes: RenderChangesModel, force?: boolean): void;
39
36
  /**
40
37
  * Triggers a resize of the editor
@@ -51,10 +48,6 @@ export declare class VirtualRenderer {
51
48
  * Triggers a full update of the text, for all the rows.
52
49
  **/
53
50
  updateText(): void;
54
- /**
55
- * Triggers a full update of all the layers, for all the rows.
56
- **/
57
- updateFull(force?: boolean): void;
58
51
  updateCursor(): void;
59
52
  scrollSelectionIntoView(anchor: CursorParagraph, lead: CursorParagraph, offset?: number): void;
60
53
  /**
@@ -62,7 +55,8 @@ export declare class VirtualRenderer {
62
55
  **/
63
56
  scrollCursorIntoView(cursor?: CursorParagraph, offset?: number): void;
64
57
  scrollBy(deltaY: number): void;
65
- screenToTextCoordinates(x: number, y: number): CursorParagraph;
58
+ screenToTextCoordinatesUsingMidpoint(x: number, y: number, rect?: DOMRect): CursorParagraph;
59
+ screenToTextCoordinatesUsingBoundary(x: number, y: number, rect?: DOMRect): CursorParagraph;
66
60
  showCursor(): void;
67
61
  hideCursor(): void;
68
62
  destroy(): void;
@@ -74,5 +68,4 @@ export declare class VirtualRenderer {
74
68
  private renderText;
75
69
  private renderCursor;
76
70
  private renderSelection;
77
- private getDefaultLayerConfig;
78
71
  }
@@ -50,7 +50,8 @@ export declare class EditSession {
50
50
  tokenRe: RegExp;
51
51
  nonTokenRe: RegExp;
52
52
  get scrollTop(): number;
53
- constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, model: ContentsInterface, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main', scrollBar?: ScrollBar);
53
+ get scrollBarHeight(): number;
54
+ constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, model: ContentsInterface, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main' | 'cellWithinEdge', scrollBar?: ScrollBar);
54
55
  destroy(): void;
55
56
  getRowLength(row: number): number;
56
57
  getRowCacheIndex(cacheArray: number[], value: number): number;
@@ -65,6 +66,10 @@ export declare class EditSession {
65
66
  */
66
67
  getWordRange(row: number, column: number): Range;
67
68
  getDisplayLine(row: number, endColumn: number, startColumn?: number): string;
69
+ isEdgeOrWithinEdge(): boolean;
70
+ isEdge(): boolean;
71
+ isWithinEdge(): boolean;
72
+ onRendered(): void;
68
73
  removeByDocumentIndexes(startIndex: number, endIndex: number): void;
69
74
  insertTextByDocumentIndex(index: number, text: string, style?: TextStyleModel): CursorParagraph;
70
75
  insertElementByDocumentIndex(insertElement: InsertElementModel): CursorParagraph;
@@ -81,7 +86,7 @@ export declare class EditSession {
81
86
  removeNumberings(startIndex: number, endIndex: number): void;
82
87
  restoreNumberings(paragraphs: ParagraphModel[], numberings: NumberingModel[]): void;
83
88
  applyImageStyle(applyImage: ApplyImageStyleModel): void;
84
- restoreTextStyles(formats: FormatModel[]): void;
89
+ restoreTextStyles(formats: FormatModel[], linkFormats: FormatModel[]): void;
85
90
  restoreParagraphStyles(paragraphs: ParagraphModel[]): void;
86
91
  setTextStyle(textStyle: TextStyleModel): void;
87
92
  /**
@@ -20,6 +20,7 @@ import { InsertParagraphModel } from '../../models/generated/insert-paragraph.mo
20
20
  import { InsertTableModel } from '../../models/generated/insert-table.model';
21
21
  import { InsertTabModel } from '../../models/generated/insert-tab.model';
22
22
  import { LinkDataModel } from '../../models/generated/link-data.model';
23
+ import { LinkModel } from '../../models/generated/link.model';
23
24
  import { MouseHandler } from '../interaction/mouse.handler';
24
25
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
25
26
  import { Operation } from '../gadgets/history/operation.type';
@@ -113,7 +114,7 @@ export declare class Editor {
113
114
  applyOperation(operation: Operation): void;
114
115
  saveRemoveToHistory(range: Range): void;
115
116
  saveInsertTextToHistory(paragraph: number, indexInParagraph: number, text: string): void;
116
- saveInsertParagraphToHistory(model: InsertParagraphModel): void;
117
+ saveInsertParagraphToHistory(content: string, model: InsertParagraphModel): void;
117
118
  saveInsertStyledTextToHistory(paragraph: number, indexInParagraph: number, text: string, style: TextStyleModel): void;
118
119
  saveInsertElementToHistory(model: InsertElementModel): void;
119
120
  saveInsertBreakToHistory(model: InsertBreakModel): void;
@@ -148,10 +149,11 @@ export declare class Editor {
148
149
  onTripleClick(event: MouseEvent): void;
149
150
  onQuadClick(event: MouseEvent): void;
150
151
  onMouseWheel(event: WheelEvent): void;
151
- setCurrentSession(clickPositionY: number, element: HTMLElement): HTMLElement | null;
152
+ getLinkModel(event: MouseEvent): LinkModel;
153
+ setCurrentSession(element: HTMLElement): HTMLElement | null;
152
154
  getCustomElement(element: HTMLElement): HTMLElement | null;
153
- isParentEdge(element: HTMLElement): boolean;
154
- getClickedPage(mousePosition: number): number;
155
+ isInsideEdge(element: HTMLElement | null): boolean;
156
+ getParentEdge(element: HTMLElement | null): HTMLElement | null;
155
157
  /**
156
158
  * Returns the string of text currently highlighted.
157
159
  */
@@ -164,7 +166,6 @@ export declare class Editor {
164
166
  private onDocumentChange;
165
167
  private focusCustomComponent;
166
168
  private blurCustomComponent;
167
- private blurEdgeCustomComponents;
168
169
  private isEmptyNumberingParagraph;
169
170
  scrollCursorIntoMainView(offset?: number): void;
170
171
  changedTableSize(insertIndex: number, sessionId: number): void;
@@ -174,7 +175,7 @@ export declare class Editor {
174
175
  removeTableColumns(insertIndex: number, startIndex: number, endIndex: number, sessionId: number): void;
175
176
  removeImage(insertIndex: number): void;
176
177
  resizeTableColumns(resizeTableColumns: ResizeTableColumnsModel, sessionId: number): void;
177
- onMousePressedMove(x: number, y: number): void;
178
+ onMousePressedMove(event: MouseEvent): void;
178
179
  searchOptionSubscription(): Subscription;
179
180
  replaceSubscription(): Subscription;
180
181
  setTextStylesSubscription(): Subscription;
@@ -190,6 +191,9 @@ export declare class Editor {
190
191
  endMousePressSubscription(): Subscription;
191
192
  disableSelectionSubscription(): Subscription;
192
193
  changedTableSizeSubscription(): Subscription;
194
+ changedEdgeSizeSubscription(): Subscription;
195
+ imageLoadedSubscription(): Subscription;
196
+ changedEdgeSubscription(): Subscription;
193
197
  insertTableRowsSubscription(): Subscription;
194
198
  insertTableColumnsSubscription(): Subscription;
195
199
  removeTableRowsSubscription(): Subscription;
@@ -198,9 +202,6 @@ export declare class Editor {
198
202
  resizeTableColumnsSubscription(): Subscription;
199
203
  insertTableSubscription(): Subscription;
200
204
  insertTextSubscription(): Subscription;
201
- rendererUpdatedSubscription(): Subscription;
202
- edgeElementCopyUpdatedSubscription(): Subscription;
203
- changedEdgeHeightSubscription(): Subscription;
204
205
  undoSubscription(): Subscription;
205
206
  redoSubscription(): Subscription;
206
207
  blurCustomComponentSubscription(): Subscription;
@@ -22,25 +22,27 @@ export declare class RegulatorService {
22
22
  currentSession: SessionModel;
23
23
  selection: Selection;
24
24
  sessionIdIncrement: number;
25
- edgeEditingPage: number | null;
26
25
  constructor(customContentService: CustomContentService, editorService: EditorService, componentService: ComponentService);
27
26
  addMainSession(model: DocxModel, pageWidth: number, scalingRatio: number, container: ElementRef<HTMLElement>): void;
28
27
  addCellSession(table: TableModel, margins: MarginModel, component: NoderTableCellComponent, properties: GeneralPropertiesModel): SessionModel;
29
28
  addEdgeSession(component: NoderEdgeComponent): SessionModel;
30
29
  removeSession(sessionId: number): void;
31
30
  setMainSessionAsCurrent(): void;
32
- setCustomSessionAsCurrent(sessionId: number, edgeEditingPage?: number | null): void;
31
+ setCustomSessionAsCurrent(sessionId: number): void;
33
32
  setTargetedSessionAsCurrent(targets: TargetModel[]): void;
34
33
  setCurrentSessionById(sessionId: number): void;
35
34
  setCurrentSession(session: SessionModel): void;
35
+ getSessionModel(sessionId: number): SessionModel;
36
36
  getSession(sessionId: number): EditSession;
37
37
  setSelection(selection: Selection): void;
38
38
  clearAllSessions(): void;
39
39
  getCurrentSessionTargets(): TargetModel[];
40
40
  getTargets(session: SessionModel): TargetModel[];
41
- getEdgeTarget(sessionId: number): TargetModel | null;
42
41
  getTargetedSession(targets: TargetModel[]): EditSession;
43
- toggleEdgeEditMode(edgeEditingPage?: number | null): void;
42
+ isWithinEdge(sessionId: number): boolean;
43
+ arrangeEdgeChange(sessionId: number): void;
44
+ private getEdgeSessionId;
45
+ private arrangeEdgesForSessionChange;
44
46
  static ɵfac: i0.ɵɵFactoryDeclaration<RegulatorService, never>;
45
47
  static ɵprov: i0.ɵɵInjectableDeclaration<RegulatorService>;
46
48
  }
@@ -5,7 +5,6 @@ import { TargetModel } from '../../../models/generated/target.model';
5
5
  export declare class CellSessionSourceModel implements SessionSourceModel {
6
6
  private table;
7
7
  private cellComponent;
8
- edgeEditPage?: number;
9
8
  constructor(table: TableModel, cellComponent: NoderTableCellComponent);
10
9
  getTarget(): TargetModel;
11
10
  }
@@ -5,7 +5,6 @@ import { TargetModel } from '../../../models/generated/target.model';
5
5
  export declare class EdgeSessionSourceModel implements SessionSourceModel {
6
6
  private pageType;
7
7
  private type;
8
- edgeEditPage?: number;
9
8
  constructor(pageType: PageType, type: EdgeType);
10
9
  getTarget(): TargetModel;
11
10
  }
@@ -1,5 +1,4 @@
1
1
  import { TargetModel } from '../../../models/generated/target.model';
2
2
  export declare abstract class SessionSourceModel {
3
- edgeEditPage?: number;
4
3
  abstract getTarget(): TargetModel;
5
4
  }
@@ -30,16 +30,16 @@ export declare class OperationHistory {
30
30
  private step;
31
31
  constructor(editorService: EditorService, regulatorService: RegulatorService);
32
32
  pushInsertText(insertIndex: number, text: string): void;
33
- pushInsertParagraph(model: InsertParagraphModel, paragraphs: ParagraphModel[]): void;
33
+ pushInsertParagraph(content: string, model: InsertParagraphModel, paragraphs: ParagraphModel[]): void;
34
34
  pushInsertElement(model: InsertElementModel): void;
35
- pushInsertBreak(model: InsertBreakModel, endIndex: number): void;
35
+ pushInsertBreak(model: InsertBreakModel, count: number): void;
36
36
  pushInsertTab(model: InsertTabModel): void;
37
37
  pushInsertImage(model: InsertImageModel): void;
38
38
  pushInsertLink(model: InsertLinkModel): void;
39
39
  pushInsertTable(model: InsertTableModel): void;
40
40
  pushInsertStyledText(insertIndex: number, text: string, style: TextStyleModel): void;
41
41
  pushDelete(model: RestoreModel): void;
42
- pushApplyTextStyle(startIndex: number, endIndex: number, style: TextStyleModel, formats: FormatModel[]): void;
42
+ pushApplyTextStyle(startIndex: number, endIndex: number, style: TextStyleModel, formats: FormatModel[], linkFormats: FormatModel[]): void;
43
43
  pushApplyParagraphStyle(startIndex: number, endIndex: number, style: ParagraphStyleModel, paragraphs: ParagraphModel[]): void;
44
44
  pushApplyElementStyle(previous: ElementModel, current: ElementModel): void;
45
45
  pushInsertTableRows(insertIndex: number, rowsCount: number, targetIndex: number, inheritIndex: number, table: TableModel): void;
@@ -64,4 +64,8 @@ export declare class OperationHistory {
64
64
  anchor: CursorParagraph | null;
65
65
  } | null;
66
66
  private addToHistory;
67
+ getDeleteDataForInsertParagraphs(content: string, model: InsertParagraphModel, paragraphs: ParagraphModel[]): {
68
+ startIndex: number;
69
+ count: number;
70
+ };
67
71
  }
@@ -10,6 +10,7 @@ import { ImageModel } from '../../models/generated/image.model';
10
10
  import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
11
11
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
12
12
  import { OperationsHistoryInfoModel } from '../../editor/gadgets/history/operations-history-info.model';
13
+ import { PageType } from '../components/edges/page-type.enum';
13
14
  import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
14
15
  import { Replace } from '../gadgets/search/replace.interface';
15
16
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
@@ -83,6 +84,15 @@ export declare class EditorService {
83
84
  sessionId: number;
84
85
  }>;
85
86
  private _changedTableSize$;
87
+ get changedEdgeSize$(): Observable<{
88
+ edgeType: EdgeType;
89
+ pageType: PageType;
90
+ }>;
91
+ private _changedEdgeSize$;
92
+ get imageLoaded$(): Observable<number>;
93
+ private _imageLoaded$;
94
+ get changedEdge$(): Observable<number>;
95
+ private _changedEdge$;
86
96
  get insertTableRows$(): Observable<{
87
97
  insertIndex: number;
88
98
  rowsCount: number;
@@ -127,15 +137,6 @@ export declare class EditorService {
127
137
  columns: number;
128
138
  }>;
129
139
  private _insertTable$;
130
- get rendererUpdated$(): Observable<number>;
131
- private _rendererUpdated$;
132
- get edgeElementCopyUpdated$(): Observable<{
133
- newElementCopy: HTMLElement;
134
- page: number;
135
- }>;
136
- private _edgeElementCopyUpdated$;
137
- get changedEdgeHeight$(): Observable<EdgeType>;
138
- private _changedEdgeHeight$;
139
140
  get redo$(): Observable<void>;
140
141
  private _redo$;
141
142
  get undo$(): Observable<void>;
@@ -181,6 +182,9 @@ export declare class EditorService {
181
182
  openSidenav(component: Type<any>): void;
182
183
  closeSidenav(): void;
183
184
  changedTableSize(insertIndex: number, sessionId: number): void;
185
+ changedEdgeSize(edgeType: EdgeType, pageType: PageType): void;
186
+ imageLoaded(sessionId: number): void;
187
+ changedEdge(sessionId: number): void;
184
188
  insertTableRows(insertIndex: number, rowsCount: number, targetIndex: number, inheritIndex: number, sessionId: number): void;
185
189
  insertTableColumns(insertIndex: number, columnsCount: number, targetIndex: number, inheritIndex: number, sessionId: number): void;
186
190
  removeTableRows(insertIndex: number, startIndex: number, endIndex: number, sessionId: number): void;
@@ -191,9 +195,6 @@ export declare class EditorService {
191
195
  rows: number;
192
196
  columns: number;
193
197
  }): void;
194
- rendererUpdated(sessionId: number): void;
195
- edgeElementCopyUpdated(newElementCopy: any, page: any): void;
196
- changedEdgeHeight(type: EdgeType): void;
197
198
  undo(): void;
198
199
  redo(): void;
199
200
  print(): void;
@@ -1,5 +1,5 @@
1
1
  export declare class ContentOperationsHelper {
2
- static removeContent(content: string, startIndex: number, endIndex: number): string;
2
+ static removeContent(content: string, startIndex: number, count: number): string;
3
3
  static insertContent(content: string, text: string, index: number): string;
4
4
  static replaceContent(content: string, startIndex: number, endIndex: number, text: string): string;
5
5
  }
@@ -1,9 +1,14 @@
1
+ import { FormatModel } from '../../../models/generated/format.model';
1
2
  import { LinkModel } from '../../../models/generated/link.model';
2
3
  import { TextStyleModel } from '../../../models/generated/text-style.model';
3
4
  export declare class LinkOperationsHelper {
4
- static insert(links: LinkModel[], link: string, startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
5
+ static insert(links: LinkModel[], link: string, startIndex: number, endIndex: number, linkStyle: TextStyleModel): void;
6
+ static insertStyledContent(links: LinkModel[], index: number, textLength: number, style: TextStyleModel): void;
5
7
  static insertContent(links: LinkModel[], insertIndex: number, textLength: number): void;
6
8
  static removeContent(links: LinkModel[], startIndex: number, endIndex: number): void;
7
- static restore(links: LinkModel[], startIndex: number, contentLength: number, newlinks: LinkModel[]): void;
9
+ static restore(links: LinkModel[], startIndex: number, contentLength: number, newLinks: LinkModel[]): void;
10
+ static restoreFormats(links: LinkModel[], formats: FormatModel[]): void;
8
11
  static replaceContent(links: LinkModel[], startIndex: number, endIndex: number, length: number): void;
12
+ static apply(links: LinkModel[], startIndex: number, endIndex: number, style: TextStyleModel): void;
13
+ private static merge;
9
14
  }