@talrace/ngx-noder 19.0.38 → 19.0.40

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 (33) hide show
  1. package/fesm2022/talrace-ngx-noder.mjs +441 -337
  2. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  3. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +5 -1
  4. package/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.d.ts +5 -1
  5. package/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.d.ts +2 -2
  6. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +2 -2
  7. package/lib/editor/content/display-data/display-data.d.ts +1 -1
  8. package/lib/editor/display/layers/highlight.layer.d.ts +2 -1
  9. package/lib/editor/display/renderer.d.ts +1 -8
  10. package/lib/editor/display/virtual.renderer.d.ts +1 -2
  11. package/lib/editor/execution/edit.session.d.ts +3 -3
  12. package/lib/editor/execution/editor.d.ts +7 -4
  13. package/lib/editor/execution/regulator.service.d.ts +1 -4
  14. package/lib/editor/gadgets/history/operation-history.d.ts +3 -2
  15. package/lib/editor/gadgets/history/operation.type.d.ts +2 -1
  16. package/lib/editor/gadgets/numbering/numbering.helper.d.ts +8 -4
  17. package/lib/editor/interaction/editor.service.d.ts +6 -5
  18. package/lib/editor/operations/enums/command-type.enum.d.ts +2 -1
  19. package/lib/editor/operations/helpers/numbering-operations.helper.d.ts +1 -0
  20. package/lib/editor/operations/helpers/paragraph-operations.helper.d.ts +3 -2
  21. package/lib/editor/operations/operations-helper.helper.d.ts +5 -4
  22. package/lib/editor/operations/save-commands.helper.d.ts +3 -2
  23. package/lib/editor/positioning/position.helper.d.ts +20 -36
  24. package/lib/editor/positioning/range.d.ts +1 -7
  25. package/lib/models/generated/apply-numbering-levels.model.d.ts +6 -0
  26. package/lib/models/generated/apply-paragraph-style.model.d.ts +2 -2
  27. package/lib/models/generated/command.model.d.ts +2 -0
  28. package/lib/models/generated/paragraph-style-ext.model.d.ts +8 -0
  29. package/lib/models/generated/remove-with-paragraph.model.d.ts +2 -2
  30. package/lib/models/generated/restore-with-paragraph.model.d.ts +2 -2
  31. package/package.json +1 -1
  32. package/public-api.d.ts +1 -0
  33. package/lib/editor/content/display-data/paragraph-info.interface.d.ts +0 -7
@@ -13,6 +13,10 @@ import { NumberingType } from '../shared/enums/numbering-type.enum';
13
13
  import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
14
14
  import { TextStyleModel } from '../../../models/generated/text-style.model';
15
15
  import * as i0 from "@angular/core";
16
+ export interface NumberingListInterface {
17
+ list: NumberingLevelModel[];
18
+ updateOnlySelectedLevels: boolean;
19
+ }
16
20
  export declare abstract class BaseToolbarComponent extends DestroyComponent {
17
21
  private customIconService;
18
22
  private injector;
@@ -24,7 +28,7 @@ export declare abstract class BaseToolbarComponent extends DestroyComponent {
24
28
  createElement: EventEmitter<ElementDataModel>;
25
29
  changeTextStyle: EventEmitter<TextStyleModel>;
26
30
  changeParagraphStyle: EventEmitter<ParagraphStyleModel>;
27
- setNumberingTemplateType: EventEmitter<NumberingLevelModel[]>;
31
+ setNumberingTemplateType: EventEmitter<NumberingListInterface>;
28
32
  removeNumberings: EventEmitter<void>;
29
33
  insertImage: EventEmitter<void>;
30
34
  insertLink: EventEmitter<void>;
@@ -2,11 +2,15 @@ import { EventEmitter } from '@angular/core';
2
2
  import { NumberingTemplateType } from '../../../../../apart-components/editor-toolbar/shared/enums/numbering-template-type.enum';
3
3
  import { NumberingType } from '../../../../../apart-components/editor-toolbar/shared/enums/numbering-type.enum';
4
4
  import * as i0 from "@angular/core";
5
+ export interface NumberingTypeInterface {
6
+ type: NumberingTemplateType;
7
+ updateOnlySelectedLevels: boolean;
8
+ }
5
9
  export declare class NumberingComponent {
6
10
  isDisabled: boolean;
7
11
  selectedNumberingType: NumberingType;
8
12
  selectedNumberingTemplate: NumberingTemplateType;
9
- selectNumberingTemplate: EventEmitter<NumberingTemplateType>;
13
+ selectNumberingTemplate: EventEmitter<NumberingTypeInterface>;
10
14
  removeNumberings: EventEmitter<void>;
11
15
  numberingTemplateType: typeof NumberingTemplateType;
12
16
  numberingType: typeof NumberingType;
@@ -4,7 +4,7 @@ import { Alignment } from '../../../../apart-components/editor-toolbar/shared/en
4
4
  import { BaseToolbarComponent } from '../../../../apart-components/editor-toolbar/components/base-toolbar.component';
5
5
  import { CustomIconService } from '../../shared/services/custom-icon.service';
6
6
  import { EditorService } from '../../../../editor/interaction/editor.service';
7
- import { NumberingTemplateType } from '../../../../apart-components/editor-toolbar/shared/enums/numbering-template-type.enum';
7
+ import { NumberingTypeInterface } from '../buttons/numbering/numbering.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class ToolbarActionsComponent extends BaseToolbarComponent {
10
10
  editorService: EditorService;
@@ -19,7 +19,7 @@ export declare class ToolbarActionsComponent extends BaseToolbarComponent {
19
19
  onApplySpacing(value: number): void;
20
20
  onApplyBefore(value: number): void;
21
21
  onApplyAfter(value: number): void;
22
- onSetNumberingTemplateType(templateType: NumberingTemplateType): void;
22
+ onSetNumberingTemplateType(value: NumberingTypeInterface): void;
23
23
  onTableInsertMenuClosed(): void;
24
24
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarActionsComponent, never>;
25
25
  static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarActionsComponent, "app-nod-toolbar-actions", never, {}, {}, never, never, false, never>;
@@ -3,7 +3,7 @@ import { Borders } from '../../../editor/components/shared/enums/borders.enum';
3
3
  import { EditorService } from '../../../editor/interaction/editor.service';
4
4
  import { ElementDataModel } from '../../../editor/components/external-element/models/element-data.model';
5
5
  import { LineStyles } from '../../../editor/components/shared/enums/line-styles.enum';
6
- import { NumberingLevelModel } from '../../../models/generated/numbering-level.model';
6
+ import { NumberingListInterface } from '../components/base-toolbar.component';
7
7
  import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
8
8
  import { TextStyleModel } from '../../../models/generated/text-style.model';
9
9
  import * as i0 from "@angular/core";
@@ -33,7 +33,7 @@ export declare class EditorToolbarComponent {
33
33
  createElement: EventEmitter<ElementDataModel>;
34
34
  changeParagraphStyle: EventEmitter<ParagraphStyleModel>;
35
35
  changeTextStyle: EventEmitter<TextStyleModel>;
36
- setNumberingTemplateType: EventEmitter<NumberingLevelModel[]>;
36
+ setNumberingTemplateType: EventEmitter<NumberingListInterface>;
37
37
  removeNumberings: EventEmitter<void>;
38
38
  insertTable: EventEmitter<{
39
39
  rows: number;
@@ -68,7 +68,7 @@ export declare class DisplayData extends EventEmitting {
68
68
  private updateNumberingsDataOnChange;
69
69
  private splitParagraphByLines;
70
70
  private getParagraphTokens;
71
- getParagraphLineTokens(paragraphIndex: number, lineIndex: number): DisplayToken[];
71
+ getParagraphLineTokens(paragraphIndex: number, paragraphLine: number): DisplayToken[];
72
72
  getTokens(contentIndex: number, content: string, paragraphSymbolIndex: number): {
73
73
  tokens: DisplayToken[];
74
74
  paragraphToken: DisplayToken;
@@ -9,7 +9,8 @@ export declare abstract class HighlightLayer {
9
9
  config: ILayerConfig;
10
10
  constructor(parentEl: HTMLElement, cssClass: string, session: EditSession);
11
11
  renderHighlight(cssPosition: string, cssClass: string): HTMLElement;
12
- getTop(row: number): number;
12
+ getTopByDocumentLine(documentLine: number): number;
13
+ getTopByParagraphLine(paragraph: number, paragraphLine: number): number;
13
14
  drawMultiLineMarker(range: Range, cssClass: string): HTMLElement[];
14
15
  drawSingleLineMarker(range: Range, cssClass: string): HTMLElement;
15
16
  drawCustomElementHighlight(elementInfo: CustomElementInfo, cssClass: string, screenParentRange: Range): void;
@@ -63,14 +63,7 @@ export declare class Renderer extends EventEmitting {
63
63
  updateTextAndCursor(): void;
64
64
  updateMarker(): void;
65
65
  updateCursor(): void;
66
- /**
67
- * Converts screen coordinates to text coordinates by mapping to the closest token midpoint.
68
- */
69
- screenToTextCoordinatesUsingMidpoint(x: number, y: number, rect?: DOMRect): CursorParagraph;
70
- /**
71
- * Converts screen coordinates to text coordinates by mapping to the next token boundary.
72
- */
73
- screenToTextCoordinatesUsingBoundary(x: number, y: number, rect?: DOMRect): CursorParagraph;
66
+ screenToParagraph(x: number, y: number, tokenDivider?: number, rect?: DOMRect): CursorParagraph;
74
67
  showCursor(): void;
75
68
  showStaticCursor(): void;
76
69
  hideCursor(): void;
@@ -77,8 +77,7 @@ export declare class VirtualRenderer {
77
77
  **/
78
78
  scrollCursorIntoView(cursor?: CursorParagraph, offset?: number): void;
79
79
  scrollBy(deltaY: number): void;
80
- screenToTextCoordinatesUsingMidpoint(x: number, y: number, rect?: DOMRect): CursorParagraph;
81
- screenToTextCoordinatesUsingBoundary(x: number, y: number, rect?: DOMRect): CursorParagraph;
80
+ screenToParagraph(x: number, y: number, tokenDivider?: number, rect?: DOMRect): CursorParagraph;
82
81
  showCursor(): void;
83
82
  hideCursor(): void;
84
83
  showStaticCursor(): void;
@@ -31,7 +31,7 @@ import { NumberingLevelModel } from '../../models/generated/numbering-level.mode
31
31
  import { NumberingModel } from '../../models/generated/numbering.model';
32
32
  import { PageType } from '../components/edges/page-type.enum';
33
33
  import { ParagraphModel } from '../../models/generated/paragraph.model';
34
- import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
34
+ import { ParagraphStyleExtModel } from '../../models/generated/paragraph-style-ext.model';
35
35
  import { Range } from '../positioning/range';
36
36
  import { RemoveWithParagraphModel } from '../../models/generated/remove-with-paragraph.model';
37
37
  import { ReplaceByRestoreModel } from '../../models/generated/replace-by-restore.model';
@@ -63,7 +63,6 @@ export declare class EditSession {
63
63
  get paragraphInfoChanges$(): import("rxjs").Observable<import("../content/display-data/models/paragraph-info-added.model").ParagraphInfoAdded | import("../content/display-data/models/paragraph-info-content-changed.model").ParagraphInfoContentChanged | import("../content/display-data/models/paragraph-info-content-inserted.model").ParagraphInfoContentInserted | import("../content/display-data/models/paragraphs-infos-removed.model").ParagraphInfosRemoved>;
64
64
  constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, commentRenderService: CommentRenderService, model: ContentType, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main' | 'cellWithinEdge', scrollBar?: ScrollBar, edgeType?: EdgeType, pageType?: PageType);
65
65
  destroy(): void;
66
- getRowLength(row: number): number;
67
66
  getRowCacheIndex(cacheArray: number[], value: number): number;
68
67
  /**
69
68
  * Calculates the width of the string `str` on the screen while assuming that the string starts at the first column on the screen.
@@ -91,9 +90,10 @@ export declare class EditSession {
91
90
  insertTableByDocumentIndex(insertElement: InsertTableModel): CursorParagraph;
92
91
  insertLinkByDocumentIndex(insertElement: InsertLinkModel): CursorParagraph;
93
92
  applyTextStyle(startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
94
- applyParagraphStyle(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel): void;
93
+ applyParagraphStyle(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleExtModel): void;
95
94
  rerender(insertIndex: number): void;
96
95
  addNumbering(levels: NumberingLevelModel[], startIndex: number, endIndex: number, numberingId: number | null): void;
96
+ applyNumbering(levels: NumberingLevelModel[], numberingId: number): void;
97
97
  removeNumberings(startIndex: number, endIndex: number): void;
98
98
  restoreNumberings(paragraphs: ParagraphModel[], numberings: NumberingModel[]): void;
99
99
  applyImageStyle(applyImage: ApplyImageStyleModel): void;
@@ -39,6 +39,7 @@ import { PageFormatModel } from '../../models/generated/page-format.model';
39
39
  import { PageType } from '../components/edges/page-type.enum';
40
40
  import { ParagraphInfoModel } from '../content/display-data/models/paragraph-info.model';
41
41
  import { ParagraphModel } from '../../models/generated/paragraph.model';
42
+ import { ParagraphStyleExtModel } from '../../models/generated/paragraph-style-ext.model';
42
43
  import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
43
44
  import { Range } from '../positioning/range';
44
45
  import { RegulatorService } from './regulator.service';
@@ -132,9 +133,10 @@ export declare class Editor {
132
133
  applyTextStyleUnderline(): void;
133
134
  applyTextStyles(textStyle: TextStyleModel): void;
134
135
  setTextStyle(textStyle: TextStyleModel): void;
135
- applyParagraphStyles(paragraphStyle: ParagraphStyleModel): void;
136
+ applyParagraphStyles(paragraphStyle: ParagraphStyleExtModel): void;
136
137
  applyParagraphsMargin(value: Partial<ParagraphStyleModel>): void;
137
- setNumberingTemplate(templateLevels: NumberingLevelModel[]): void;
138
+ setNumberingTemplate(newLevels: NumberingLevelModel[], updateOnlySelectedLevels: boolean): void;
139
+ private getUniformNumberingLevels;
138
140
  removeNumberingsFromParagraphs(): void;
139
141
  applyImageStyles(image: ImageModel): void;
140
142
  focus(): void;
@@ -162,8 +164,9 @@ export declare class Editor {
162
164
  saveApplyTableCellsStylesToHistory(table: TableModel, model: ApplyTableCellsStylesModel, targets: TargetModel[]): void;
163
165
  saveApplyTextStyleToHistory(startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
164
166
  saveApplyParagraphsToHistory(oldParagraphs: ParagraphModel[], updatedParagraphs: ParagraphModel[]): void;
165
- saveApplyParagraphStyleToHistory(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel): void;
167
+ saveApplyParagraphStyleToHistory(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleExtModel): void;
166
168
  saveAddNumberingToHistory(templateLevels: NumberingLevelModel[], startIndex: number, endIndex: number): void;
169
+ saveApplyNumberingListsToHistory(newNumberingLevels: NumberingLevelModel[], oldNumberingLevels: NumberingLevelModel[], numberingId: number): void;
167
170
  saveRemoveNumberingToHistory(startIndex: number, endIndex: number): void;
168
171
  private saveApplyImageStyleToHistory;
169
172
  saveMoveRangeToHistory(redoModel: MoveRangeModel, sourceSession: SessionModel, sourceRange: Range): void;
@@ -306,7 +309,7 @@ export declare class Editor {
306
309
  private commentCreationSubscriptions;
307
310
  private rerenderCommentsSubscription;
308
311
  private selectCommentSubscription;
309
- private removeCommentSubscription;
312
+ private removeCommentSubscriptions;
310
313
  private setComentsVisibilitySubscription;
311
314
  private getCommentTextSubscription;
312
315
  private replaceCommentTextSubscription;
@@ -47,10 +47,7 @@ export declare class RegulatorService {
47
47
  getCurrentSessionTargets(): TargetModel[];
48
48
  getTargets(session: SessionModel): TargetModel[];
49
49
  getTargetedSession(targets: TargetModel[]): EditSession;
50
- getCommentTarget(commentId: number): {
51
- session: SessionModel;
52
- target: TargetModel;
53
- } | null;
50
+ getCommentSessionModel(commentId: number): SessionModel | null;
54
51
  getComment(commentId: number): {
55
52
  session: SessionModel;
56
53
  comment: CommentModel;
@@ -19,7 +19,7 @@ import { Operation } from './operation.type';
19
19
  import { PageFormatModel } from '../../../models/generated/page-format.model';
20
20
  import { PageType } from '../../components/edges/page-type.enum';
21
21
  import { ParagraphModel } from '../../../models/generated/paragraph.model';
22
- import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
22
+ import { ParagraphStyleExtModel } from '../../../models/generated/paragraph-style-ext.model';
23
23
  import { Range } from '../../positioning/range';
24
24
  import { RegulatorService } from '../../execution/regulator.service';
25
25
  import { RemoveInsertedPageFormatModel } from '../../../models/generated/remove-inserted-page-format.model';
@@ -52,7 +52,7 @@ export declare class OperationHistory {
52
52
  pushInsertStyledText(insertIndex: number, text: string, style: TextStyleModel): void;
53
53
  pushDelete(model: RestoreModel): void;
54
54
  pushApplyTextStyle(startIndex: number, endIndex: number, style: TextStyleModel, formats: FormatModel[], linkFormats: FormatModel[]): void;
55
- pushApplyParagraphStyle(startIndex: number, endIndex: number, style: ParagraphStyleModel, paragraphs: ParagraphModel[]): void;
55
+ pushApplyParagraphStyle(startIndex: number, endIndex: number, style: ParagraphStyleExtModel, paragraphs: ParagraphModel[]): void;
56
56
  pushApplyParagraphs(oldParagraphs: ParagraphModel[], updatedParagraphs: ParagraphModel[]): void;
57
57
  pushInsertTableRows(insertIndex: number, rowsCount: number, targetIndex: number, inheritIndex: number): void;
58
58
  pushInsertTableColumns(insertIndex: number, columnsCount: number, targetIndex: number, inheritIndex: number): void;
@@ -61,6 +61,7 @@ export declare class OperationHistory {
61
61
  pushResizeTableColumns(resizeTableColumns: ResizeTableColumnsModel): void;
62
62
  pushApplyImageStyle(previous: ImageModel, current: ImageModel): void;
63
63
  pushAddNumbering(startIndex: number, endIndex: number, levels: NumberingLevelModel[], paragraphs: ParagraphModel[], numberings: NumberingModel[]): void;
64
+ pushApplyNumbering(numberingId: number, newLevels: NumberingLevelModel[], oldLevels: NumberingLevelModel[]): void;
64
65
  pushRemoveNumberings(startIndex: number, endIndex: number, numberings: NumberingModel[], paragraphs: ParagraphModel[]): void;
65
66
  pushMoveRange(restore: MoveRangeModel, replace: MoveRangeModel, selection: Range): void;
66
67
  pushReplace(restore: RestoreModel, replace: ReplaceModel): void;
@@ -1,6 +1,7 @@
1
1
  import { AddNumberingModel } from '../../../models/generated/add-numbering.model';
2
2
  import { ApplyDocumentPageFormatModel } from '../../../models/generated/apply-document-page-format.model';
3
3
  import { ApplyImageStyleModel } from '../../../models/generated/apply-image-style.model';
4
+ import { ApplyNumberingLevelsModel } from '../../../models/generated/apply-numbering-levels.model';
4
5
  import { ApplyPageFormatModel } from '../../../models/generated/apply-page-format.model';
5
6
  import { ApplyParagraphsModel } from '../../../models/generated/apply-paragraphs.model';
6
7
  import { ApplyTableCellsStylesModel } from '../../../models/generated/apply-table-cells-styles.model';
@@ -35,4 +36,4 @@ import { RestorePageFormatsModel } from '../../../models/generated/restore-page-
35
36
  import { RestoreParagraphStylesModel } from '../../../models/generated/restore-paragraph-styles.model';
36
37
  import { RestoreTextStylesModel } from '../../../models/generated/restore-text-styles.model';
37
38
  import { RestoreWithParagraphModel } from '../../../models/generated/restore-with-paragraph.model';
38
- 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 | AttachCommentModel | RemoveCommentModel;
39
+ 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 | AttachCommentModel | RemoveCommentModel | ApplyNumberingLevelsModel;
@@ -1,6 +1,7 @@
1
1
  import { NumberingDataModel } from './numbering-data.model';
2
2
  import { NumberingInfo } from '../../content/display-data/general-properties.model';
3
3
  import { NumberingLevelModel } from '../../../models/generated/numbering-level.model';
4
+ import { NumberingMarkerType } from './numbering-marker-type.enum';
4
5
  import { NumberingModel } from '../../../models/generated/numbering.model';
5
6
  import { NumberingParagraphStyleModel } from './numbering-paragraph-style.model';
6
7
  import { Paragraph } from '../../content/display-data/paragraph';
@@ -9,14 +10,14 @@ import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.m
9
10
  import { TextLineInfo } from '../../content/display-data/text-line-info';
10
11
  import { TextStyleModel } from '../../../models/generated/text-style.model';
11
12
  export declare class NumberingHelper {
13
+ static romanMap: Map<number, string>;
12
14
  static addValueToNumberingInfo(numberingId: number, numberingInfo: NumberingInfo, numberingLevels: NumberingLevelModel[]): void;
13
15
  static setNumberingNeedToRecalculate(numberingInfo: NumberingInfo, numberingId: number): void;
14
16
  static setAllNumberingIsCalculated(numberingInfo: NumberingInfo): void;
15
17
  static getStyles(paragraphStyle: ParagraphStyleModel, numberings: NumberingModel[]): NumberingParagraphStyleModel;
16
18
  static findNumberingLevel(numberings: NumberingModel[], id: number, level: number): NumberingLevelModel;
17
19
  static findNumberingLevels(numberings: NumberingModel[], id: number): NumberingLevelModel[];
18
- static calculateNumberingInfo(numberingId: number | null, level: number | null, numberingInfo: NumberingInfo, numberings: NumberingModel[]): void;
19
- private static calculateMarkerIndexes;
20
+ static calculateMarkerIndexes(numberingId: number, level: number, numberingInfo: NumberingInfo): void;
20
21
  static getMarker(levelModels: NumberingLevelModel[], level: number, numberingId: number, numberingInfo: NumberingInfo): string;
21
22
  static createDataModel(numberings: NumberingModel[], paragraphs: ParagraphModel[], paragraphIndex: number, numberingInfo: NumberingInfo): NumberingDataModel;
22
23
  static updateMarkerData(numberings: NumberingModel[], paragraph: Paragraph, paragraphTextStyle: TextStyleModel, paragraphStyle: ParagraphStyleModel): void;
@@ -25,11 +26,14 @@ export declare class NumberingHelper {
25
26
  width: number;
26
27
  };
27
28
  static updateNumberingInfo(numberingInfo: NumberingInfo, marker: string, numberingId: number, level: number): void;
28
- private static getLevelInfo;
29
- static createMarkerString(numberingInfo: NumberingInfo, numberingId: number, splittedMarker: string[]): string;
29
+ static createMarkerString(numberingInfo: NumberingInfo, numberingId: number, splittedMarker: string[], markerType: NumberingMarkerType, markerLevels: NumberingLevelModel[]): string;
30
30
  static getMarkerOffset(paragraphSettings: Paragraph): {
31
31
  offset: number;
32
32
  markerWidth: number;
33
33
  };
34
34
  static getOffsetCausedByMarker(numberingData: NumberingDataModel, info: TextLineInfo): number;
35
+ private static markerTypeToMarker;
36
+ private static getLevelInfo;
37
+ private static numberToLetters;
38
+ private static numberToRoman;
35
39
  }
@@ -13,11 +13,12 @@ import { ImageDataModel } from '../../models/generated/image-data.model';
13
13
  import { ImageModel } from '../../models/generated/image.model';
14
14
  import { IToolbarStyles } from '../content/display-data/toolbar-styles.interface';
15
15
  import { LineStyles } from '../components/shared/enums/line-styles.enum';
16
- import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
16
+ import { NumberingListInterface } from '../../apart-components/editor-toolbar/components/base-toolbar.component';
17
17
  import { NumberingModel } from '../../models/generated/numbering.model';
18
18
  import { OperationsHistoryInfoModel } from '../../editor/gadgets/history/operations-history-info.model';
19
19
  import { PageFormatModel } from '../../models/generated/page-format.model';
20
20
  import { PageType } from '../components/edges/page-type.enum';
21
+ import { ParagraphStyleExtModel } from '../../models/generated/paragraph-style-ext.model';
21
22
  import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
22
23
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
23
24
  import { TabSettingModel } from '../../models/generated/tab-setting.model';
@@ -79,9 +80,9 @@ export declare class EditorService {
79
80
  private readonly _searchResultCount$;
80
81
  get setTextStyles$(): Observable<TextStyleModel>;
81
82
  private readonly _setTextStyles$;
82
- get setParagraphStyles$(): Observable<ParagraphStyleModel>;
83
+ get setParagraphStyles$(): Observable<ParagraphStyleExtModel>;
83
84
  private readonly _setParagraphStyles$;
84
- get setNumberingTemplateType$(): Observable<NumberingLevelModel[]>;
85
+ get setNumberingTemplateType$(): Observable<NumberingListInterface>;
85
86
  private readonly _setNumberingTemplateType$;
86
87
  get removeNumberings$(): Observable<void>;
87
88
  private readonly _removeNumberings$;
@@ -299,8 +300,8 @@ export declare class EditorService {
299
300
  setHasSelection(value: boolean): void;
300
301
  setClipboardData(value: string): void;
301
302
  setTextStyles(value: TextStyleModel): void;
302
- setParagraphStyles(value: ParagraphStyleModel): void;
303
- setNumberingTemplateType(value: NumberingLevelModel[]): void;
303
+ setParagraphStyles(value: ParagraphStyleExtModel): void;
304
+ setNumberingTemplateType(value: NumberingListInterface): void;
304
305
  removeNumberings(): void;
305
306
  changeImageStyle(value: ImageModel): void;
306
307
  rerender(index?: number): void;
@@ -38,5 +38,6 @@ export declare enum CommandType {
38
38
  ApplyParagraphs = 36,
39
39
  ApplyTableCellsStyles = 37,
40
40
  AttachComment = 38,
41
- RemoveComment = 39
41
+ RemoveComment = 39,
42
+ ApplyNumberingLevels = 40
42
43
  }
@@ -3,6 +3,7 @@ import { NumberingModel } from '../../../models/generated/numbering.model';
3
3
  import { ParagraphModel } from '../../../models/generated/paragraph.model';
4
4
  export declare class NumberingOperationsHelper {
5
5
  static addNumbering(numberings: NumberingModel[], numberingId: number, levels: NumberingLevelModel[]): void;
6
+ static apply(numberings: NumberingModel[], numberingId: number, levels: NumberingLevelModel[]): void;
6
7
  static generateNumberingId(numberings: NumberingModel[]): number;
7
8
  static restore(numberings: NumberingModel[], numberingsToRestore: NumberingModel[]): void;
8
9
  static deleteUnused(numberings: NumberingModel[], paragraphs: ParagraphModel[], numberingIds: number[]): void;
@@ -1,4 +1,5 @@
1
1
  import { ParagraphModel } from '../../../models/generated/paragraph.model';
2
+ import { ParagraphStyleExtModel } from '../../../models/generated/paragraph-style-ext.model';
2
3
  import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
3
4
  export declare class ParagraphOperationsHelper {
4
5
  static insertContent(paragraphs: ParagraphModel[], text: string, textIndex: number): void;
@@ -8,7 +9,7 @@ export declare class ParagraphOperationsHelper {
8
9
  static restoreNumberingParagraphs(paragraphs: ParagraphModel[], paragraphsToRestore: ParagraphModel[]): number[];
9
10
  static applySingle(paragraphs: ParagraphModel[], index: number, style: ParagraphStyleModel): void;
10
11
  static applyNumbering(paragraphs: ParagraphModel[], startIndex: number, endIndex: number, numberingId?: number): number[];
11
- static apply(paragraphs: ParagraphModel[], startIndex: number, endIndex: number, style: ParagraphStyleModel): void;
12
+ static apply(paragraphs: ParagraphModel[], startIndex: number, endIndex: number, style: ParagraphStyleExtModel): void;
12
13
  static applyParagraphs(paragraphs: ParagraphModel[], updatedParagraphs: ParagraphModel[]): void;
13
- static applyParagraphStyles(target: ParagraphStyleModel, value: ParagraphStyleModel): void;
14
+ static applyParagraphStyles(target: ParagraphStyleModel, value: ParagraphStyleExtModel): void;
14
15
  }
@@ -16,7 +16,7 @@ import { NumberingModel } from '../../models/generated/numbering.model';
16
16
  import { PageFormatModel } from '../../models/generated/page-format.model';
17
17
  import { PageType } from '../components/edges/page-type.enum';
18
18
  import { ParagraphModel } from '../../models/generated/paragraph.model';
19
- import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
19
+ import { ParagraphStyleExtModel } from '../../models/generated/paragraph-style-ext.model';
20
20
  import { ReplaceModel } from '../../models/generated/replace.model';
21
21
  import { ResizeTableColumnsModel } from '../../models/generated/resize-table-columns.model';
22
22
  import { RestoreModel } from '../../models/generated/restore.model';
@@ -33,9 +33,10 @@ export declare class OperationsHelper {
33
33
  static insertTab(document: ContentType, index: number): void;
34
34
  static insertLink(document: ContentType, text: string, link: string, index: number): void;
35
35
  static addNumbering(target: ContentType, numberings: NumberingModel[], startIndex: number, endIndex: number, levels: NumberingLevelModel[], numberingId?: number | null): void;
36
+ static applyNumbering(numberings: NumberingModel[], levels: NumberingLevelModel[], numberingId: number): void;
36
37
  static removeNumberings(target: ContentType, numberings: NumberingModel[], startIndex: number, endIndex: number): void;
37
- static removeWithParagraph(target: ContentType, numberings: NumberingModel[], startIndex: number, count: number, paragraphStyle: ParagraphStyleModel): void;
38
- static restoreWithParagraph(target: ContentType, numberings: NumberingModel[], restore: RestoreModel, paragraphStyle: ParagraphStyleModel): void;
38
+ static removeWithParagraph(target: ContentType, numberings: NumberingModel[], startIndex: number, count: number, paragraphStyle: ParagraphStyleExtModel): void;
39
+ static restoreWithParagraph(target: ContentType, numberings: NumberingModel[], restore: RestoreModel, paragraphStyle: ParagraphStyleExtModel): void;
39
40
  static restoreNumberings(target: ContentType, numberings: NumberingModel[], paragraphsToRestore: ParagraphModel[], numberingsToRestore: NumberingModel[]): void;
40
41
  static insertImage(document: ContentType, index: number, imageData: ImageDataModel): void;
41
42
  static insertTable(document: ContentType, tableModel: InsertTableModel, contentWidth: number): string;
@@ -50,7 +51,7 @@ export declare class OperationsHelper {
50
51
  static applyTextStyle(document: ContentType, startIndex: number, endIndex: number, style: TextStyleModel): void;
51
52
  static restoreTextStyles(document: ContentType, textFormats: FormatModel[], linkFormats: FormatModel[]): void;
52
53
  static restoreParagraphStyles(document: ContentType, paragraphs: ParagraphModel[]): void;
53
- static applyParagraphStyle(document: ContentType, startIndex: number, endIndex: number, style: ParagraphStyleModel): void;
54
+ static applyParagraphStyle(document: ContentType, startIndex: number, endIndex: number, style: ParagraphStyleExtModel): void;
54
55
  static applyParagraphs(document: ContentType, paragraphs: ParagraphModel[]): void;
55
56
  static applyImageStyle(document: ContentType, image: ApplyImageStyleModel): void;
56
57
  static insertTableRows(document: ContentType, insertIndex: number, rowsCount: number, targetIndex: number, inheritIndex: number): void;
@@ -15,7 +15,7 @@ import { InsertTabModel } from '../../models/generated/insert-tab.model';
15
15
  import { MoveRangeModel } from '../../models/generated/move-range.model';
16
16
  import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
17
17
  import { ParagraphModel } from '../../models/generated/paragraph.model';
18
- import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
18
+ import { ParagraphStyleExtModel } from '../../models/generated/paragraph-style-ext.model';
19
19
  import { RemoveCommentModel } from '../../models/generated/remove-comment.model';
20
20
  import { RemoveEdgesModel } from '../../models/generated/remove-edges.model';
21
21
  import { RemoveInsertedPageFormatModel } from '../../models/generated/remove-inserted-page-format.model';
@@ -31,10 +31,11 @@ import { TargetModel } from '../../models/generated/target.model';
31
31
  import { TextStyleModel } from '../../models/generated/text-style.model';
32
32
  export declare class SaveCommandsHelper {
33
33
  static getAddNumberingCommand(startIndex: number, endIndex: number, levels: NumberingLevelModel[], targets: TargetModel[]): CommandModel;
34
+ static getApplyNumberingCommand(numberingId: number, levels: NumberingLevelModel[], targets: TargetModel[]): CommandModel;
34
35
  static getRemoveNumberingsCommand(startIndex: number, endIndex: number, targets: TargetModel[]): CommandModel;
35
36
  static getRestoreNumberingsCommand(restoreNumberings: RestoreNumberingsModel, targets: TargetModel[]): CommandModel;
36
37
  static getApplyImageStyleCommand(height: number, width: number, insertIndex: number, targets: TargetModel[]): CommandModel;
37
- static getApplyParagraphStyleCommand(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleModel, targets: TargetModel[]): CommandModel;
38
+ static getApplyParagraphStyleCommand(startIndex: number, endIndex: number, paragraphStyle: ParagraphStyleExtModel, targets: TargetModel[]): CommandModel;
38
39
  static getApplyTextStyleCommand(startIndex: number, endIndex: number, textStyle: TextStyleModel, targets: TargetModel[]): CommandModel;
39
40
  static getDeleteCommand(startIndex: number, count: number, targets: TargetModel[]): CommandModel;
40
41
  static getInsertTextCommand(text: string, insertIndex: number, targets: TargetModel[]): CommandModel;
@@ -1,47 +1,31 @@
1
1
  import { CursorParagraph } from './cursor-paragraph';
2
2
  import { CursorPosition } from './cursor-position.interface';
3
3
  import { EditSession } from '../execution/edit.session';
4
- import { ParagraphInfo } from '../content/display-data/paragraph-info.interface';
5
4
  import { ParagraphInfoModel } from '../content/display-data/models/paragraph-info.model';
5
+ import { TextLineInfo } from '../content/display-data/text-line-info';
6
6
  export declare class PositionHelper {
7
- /**
8
- * Returns an object containing the `pageX` and `pageY` coordinates of the document position.
9
- */
10
- static documentToPixel(session: EditSession, documentPosition: CursorParagraph): CursorPosition;
11
- /**
12
- * Get paragraph info (paragraph index, paragraph line index, line top offset and others) by row index
13
- **/
14
- static getParagraphInfoByRow(paragraphs: ParagraphInfoModel[], row: number): ParagraphInfo;
15
- static documentToScreen(session: EditSession, paragraph: number, indexInParagraph: number): CursorParagraph;
16
- static screenToDocument(session: EditSession, line: number, indexInLine: number): CursorParagraph;
17
- /**
18
- * Returns an object containing the `pageX` and `pageY` coordinates of the document position.
19
- **/
20
- static screenToPixel(session: EditSession, row: number, column: number): CursorPosition;
21
- /**
22
- * Calculates the paragraph and line index based on the given Y position.
23
- **/
24
- static getParagraphAndLineIndexFromYPosition(session: EditSession, yPosition: number, top: number): {
25
- paragraphIndex: number;
26
- lineIndex: number;
7
+ static getLineTopOffset(paragraphLines: TextLineInfo[], paragraphLine: number): number;
8
+ static documentLineToParagraphLine(paragraphs: ParagraphInfoModel[], documentLine: number): {
9
+ paragraph: number;
10
+ paragraphLine: number;
27
11
  };
28
- /**
29
- * Maps a pixel position to a screen position using half-token width comparison.
30
- */
31
- static mapPixelToClosestTokenMidpoint(session: EditSession, xPixel: number, paragraphIndex: number, lineIndex: number, leftOffset: number): {
32
- line: number;
12
+ static paragraphToParagraphLine(nextLineIndexes: number[], indexInParagraph: number): {
13
+ paragraphLine: number;
33
14
  indexInLine: number;
34
15
  };
35
- /**
36
- * Maps a pixel position to a screen position using full-token width comparison.
37
- */
38
- static mapPixelToNextTokenBoundary(session: EditSession, xPixel: number, paragraphIndex: number, lineIndex: number, leftOffset: number): {
39
- line: number;
40
- indexInLine: number;
16
+ static paragraphToDocumentLine(session: EditSession, paragraph: number, indexInParagraph: number): CursorParagraph;
17
+ static documentLineToParagraph(session: EditSession, documentLine: number, indexInLine: number): CursorParagraph;
18
+ static paragraphToPixel(session: EditSession, paragraph: number, indexInParagraph: number): CursorPosition;
19
+ static documentLineToPixel(session: EditSession, documentLine: number, indexInLine: number): CursorPosition;
20
+ static paragraphLineToPixel(session: EditSession, paragraph: number, paragraphLine: number, indexInLine: number): CursorPosition;
21
+ static pixelToParagraphLine(paragraphs: ParagraphInfoModel[], pageY: number): {
22
+ paragraph: number;
23
+ paragraphLine: number;
41
24
  };
42
- static findLineInParagraphs(paragraphs: ParagraphInfoModel[], documentLine: number): {
43
- paragraphIndex: number;
44
- lineIndex: number;
25
+ static pixelToParagraph(session: EditSession, pageX: number, pageY: number, tokenDivider: number): {
26
+ paragraph: number;
27
+ indexInParagraph: number;
45
28
  };
46
- static getApproximatePosition(session: EditSession, documentLine: number, positionWidth: number): number;
29
+ static pixelToIndexInLine(session: EditSession, documentLine: number, pageX: number, tokenDivider: number): number;
30
+ private static getIndexInLine;
47
31
  }
@@ -13,13 +13,7 @@ export declare class Range {
13
13
  }): boolean;
14
14
  contains(position: CursorParagraph): boolean;
15
15
  comparePosition(position: CursorParagraph): number;
16
- /**
17
- * Given the current `Range`,
18
- * this function converts those starting and ending cursor positions into screen positions, and then returns a new `Range` object.
19
- * @param {EditSession} session The `EditSession` to retrieve coordinates from
20
- * @returns {Range}
21
- **/
22
- toScreenRange(session: EditSession): Range;
16
+ paragraphToDocumentLine(session: EditSession): Range;
23
17
  /**
24
18
  * Returns the part of the current `Range` that occurs within the boundaries of `firstRow` and `lastRow` as a new `Range` object.
25
19
  * @param {Number} firstRow The starting row
@@ -0,0 +1,6 @@
1
+ import { NumberingLevelModel } from './numbering-level.model';
2
+ export declare class ApplyNumberingLevelsModel {
3
+ levels: NumberingLevelModel[];
4
+ numberingId: number;
5
+ constructor(fields?: Partial<ApplyNumberingLevelsModel>);
6
+ }
@@ -1,7 +1,7 @@
1
- import { ParagraphStyleModel } from './paragraph-style.model';
1
+ import { ParagraphStyleExtModel } from './paragraph-style-ext.model';
2
2
  export declare class ApplyParagraphStyleModel {
3
3
  endIndex: number;
4
- paragraphStyle: ParagraphStyleModel;
4
+ paragraphStyle: ParagraphStyleExtModel;
5
5
  startIndex: number;
6
6
  constructor(fields?: Partial<ApplyParagraphStyleModel>);
7
7
  }
@@ -1,6 +1,7 @@
1
1
  import { AddNumberingModel } from './add-numbering.model';
2
2
  import { ApplyDocumentPageFormatModel } from './apply-document-page-format.model';
3
3
  import { ApplyImageStyleModel } from './apply-image-style.model';
4
+ import { ApplyNumberingLevelsModel } from './apply-numbering-levels.model';
4
5
  import { ApplyPageFormatModel } from './apply-page-format.model';
5
6
  import { ApplyParagraphsModel } from './apply-paragraphs.model';
6
7
  import { ApplyParagraphStyleModel } from './apply-paragraph-style.model';
@@ -43,6 +44,7 @@ export declare class CommandModel {
43
44
  addNumbering: AddNumberingModel;
44
45
  applyDocumentPageFormat: ApplyDocumentPageFormatModel;
45
46
  applyImageStyle: ApplyImageStyleModel;
47
+ applyNumberingLevels: ApplyNumberingLevelsModel;
46
48
  applyPageFormat: ApplyPageFormatModel;
47
49
  applyParagraphs: ApplyParagraphsModel;
48
50
  applyParagraphStyle: ApplyParagraphStyleModel;
@@ -0,0 +1,8 @@
1
+ import { ParagraphStyleModel } from './paragraph-style.model';
2
+ export declare class ParagraphStyleExtModel extends ParagraphStyleModel {
3
+ hasIndentFirstLine: boolean;
4
+ hasIndentHanging: boolean;
5
+ hasIndentLeft: boolean;
6
+ hasIndentRight: boolean;
7
+ constructor(fields?: Partial<ParagraphStyleExtModel>);
8
+ }
@@ -1,7 +1,7 @@
1
- import { ParagraphStyleModel } from './paragraph-style.model';
1
+ import { ParagraphStyleExtModel } from './paragraph-style-ext.model';
2
2
  export declare class RemoveWithParagraphModel {
3
3
  count: number;
4
- paragraphStyle: ParagraphStyleModel;
4
+ paragraphStyle: ParagraphStyleExtModel;
5
5
  startIndex: number;
6
6
  constructor(fields?: Partial<RemoveWithParagraphModel>);
7
7
  }
@@ -1,7 +1,7 @@
1
- import { ParagraphStyleModel } from './paragraph-style.model';
1
+ import { ParagraphStyleExtModel } from './paragraph-style-ext.model';
2
2
  import { RestoreModel } from './restore.model';
3
3
  export declare class RestoreWithParagraphModel {
4
- paragraphStyle: ParagraphStyleModel;
4
+ paragraphStyle: ParagraphStyleExtModel;
5
5
  restore: RestoreModel;
6
6
  constructor(fields?: Partial<RestoreWithParagraphModel>);
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talrace/ngx-noder",
3
- "version": "19.0.38",
3
+ "version": "19.0.40",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.0.5",
package/public-api.d.ts CHANGED
@@ -57,5 +57,6 @@ export * from './lib/models/generated/last-document-revision.model';
57
57
  export * from './lib/models/generated/numbering-level.model';
58
58
  export * from './lib/models/generated/operation.model';
59
59
  export * from './lib/models/generated/paragraph-style.model';
60
+ export * from './lib/models/generated/paragraph-style-ext.model';
60
61
  export * from './lib/models/generated/revision.model';
61
62
  export * from './lib/models/generated/text-style.model';
@@ -1,7 +0,0 @@
1
- export interface ParagraphInfo {
2
- paragraphIndex: number;
3
- lineIndex: number;
4
- lineTopOffset: number;
5
- lineHeight: number;
6
- lineAscent: number;
7
- }