@talrace/ngx-noder 0.0.43 → 0.0.44

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 +925 -303
  2. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  3. package/lib/apart-components/editor-search-bar/editor-search-bar.component.d.ts +1 -0
  4. package/lib/editor/components/edges/edge-element.model.d.ts +3 -2
  5. package/lib/editor/components/edges/edge.component.d.ts +3 -1
  6. package/lib/editor/components/edges/edges.d.ts +9 -6
  7. package/lib/editor/components/shared/abstract/base.component.d.ts +3 -0
  8. package/lib/editor/components/shared/enums/line-styles.enum.d.ts +36 -0
  9. package/lib/editor/components/shared/enums/positions.enum.d.ts +9 -0
  10. package/lib/editor/components/table/components/table-cell.component.d.ts +6 -2
  11. package/lib/editor/components/table/helpers/table-cell.helper.d.ts +7 -0
  12. package/lib/editor/content/display-data/display-data.d.ts +1 -0
  13. package/lib/editor/display/custom-element-info.model.d.ts +8 -0
  14. package/lib/editor/display/layers/edges.layer.d.ts +1 -1
  15. package/lib/editor/display/layers/highlight.layer.d.ts +2 -0
  16. package/lib/editor/display/layers/layer.config.d.ts +1 -0
  17. package/lib/editor/display/layers/search-highlight.layer.d.ts +5 -1
  18. package/lib/editor/display/render-changes.interface.d.ts +1 -0
  19. package/lib/editor/display/render-changes.model.d.ts +1 -0
  20. package/lib/editor/display/renderer.d.ts +7 -1
  21. package/lib/editor/display/virtual.renderer.d.ts +6 -1
  22. package/lib/editor/execution/edit.session.d.ts +5 -2
  23. package/lib/editor/execution/editor.d.ts +3 -2
  24. package/lib/editor/execution/regulator.service.d.ts +3 -1
  25. package/lib/editor/gadgets/search/custom-element-search-result.model.d.ts +9 -0
  26. package/lib/editor/gadgets/search/search-result-location.model.d.ts +8 -0
  27. package/lib/editor/gadgets/search/search-result.model.d.ts +8 -0
  28. package/lib/editor/gadgets/search/search.d.ts +20 -8
  29. package/lib/editor/gadgets/search/table-location.interface.d.ts +6 -0
  30. package/lib/editor/interaction/editor.service.d.ts +3 -1
  31. package/package.json +1 -1
  32. package/public-api.d.ts +2 -0
  33. package/lib/editor/gadgets/search/search-result.interface.d.ts +0 -5
@@ -12,6 +12,7 @@ export declare class EditorSearchBarComponent implements OnInit, OnDestroy {
12
12
  isReplace: boolean;
13
13
  searchResultIndex$: Observable<number>;
14
14
  searchResultCount$: Observable<number>;
15
+ isViewOnly$: Observable<boolean>;
15
16
  constructor(editorService: EditorService, destroyRef: DestroyRef);
16
17
  ngOnInit(): void;
17
18
  ngOnDestroy(): void;
@@ -6,9 +6,10 @@ export declare class EdgeElementModel {
6
6
  pageType: PageType;
7
7
  edgeType: EdgeType;
8
8
  isOrigin: boolean;
9
+ pageWidth: number;
9
10
  constructor(fields?: Partial<EdgeElementModel>);
10
- isNotCopy(type: EdgeType, pageType: PageType): boolean;
11
- isCopy(type: EdgeType, pageType: PageType): boolean;
11
+ isNotCopy(type: EdgeType, pageType: PageType, pageWidth: number): boolean;
12
+ isCopy(type: EdgeType, pageType: PageType, pageWidth: number): boolean;
12
13
  isWithin(start: number, end: number): boolean;
13
14
  replace(model: EdgeElementModel): void;
14
15
  substitute(model: EdgeElementModel): void;
@@ -38,14 +38,16 @@ export declare class NoderEdgeComponent extends DestroyComponent {
38
38
  container: ElementRef<HTMLElement>;
39
39
  typeContainer: ElementRef<HTMLElement>;
40
40
  private _height;
41
+ private intersectionObserver;
42
+ private isVisible;
41
43
  constructor(regulatorService: RegulatorService, editorService: EditorService, translateService: TranslateService, cdr: ChangeDetectorRef);
42
44
  ngOnDestroy(): void;
43
45
  initialize(): void;
44
- setPageWidth(width: number): void;
45
46
  enterEditMode(): void;
46
47
  leaveEditMode(): void;
47
48
  private getEdgeNameByType;
48
49
  private applyHeight;
50
+ private initializeIntersectionObserver;
49
51
  private readonly pagesCountChangedHandler;
50
52
  static ɵfac: i0.ɵɵFactoryDeclaration<NoderEdgeComponent, never>;
51
53
  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; }; "isEvenEdgesExist": { "alias": "isEvenEdgesExist"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, false, never>;
@@ -5,30 +5,33 @@ import { EdgeType } from './edge-type.enum';
5
5
  import { GeneralPropertiesModel } from '../../content/display-data/general-properties.model';
6
6
  import { MarginModel } from '../../content/margin.model';
7
7
  import { NoderEdgeComponent } from './edge.component';
8
+ import { PageFormatModel } from '../../../models/generated/page-format.model';
8
9
  import { PageType } from './page-type.enum';
9
10
  export declare class Edges {
10
11
  private componentService;
11
12
  private margins;
12
- private pageWidth;
13
+ private pageFormats;
13
14
  private parentSessionId;
14
15
  private generalProperties;
15
16
  headersComponents: ComponentRef<NoderEdgeComponent>[];
16
17
  footersComponents: ComponentRef<NoderEdgeComponent>[];
17
18
  isEdit: boolean;
18
- constructor(componentService: ComponentService, headers: EdgeModel[], footers: EdgeModel[], margins: MarginModel, pageWidth: number, parentSessionId: number, generalProperties: GeneralPropertiesModel);
19
+ constructor(componentService: ComponentService, headers: EdgeModel[], footers: EdgeModel[], margins: MarginModel, pageFormats: PageFormatModel[], parentSessionId: number, generalProperties: GeneralPropertiesModel);
19
20
  createEdges(headerModel: EdgeModel, footerModel: EdgeModel): void;
21
+ createEdgesByPageFormats(model: EdgeModel, margins: MarginModel, type: EdgeType, isEvenEdgesExist: boolean): ComponentRef<NoderEdgeComponent>[];
20
22
  removeEdges(pageType: PageType): void;
21
23
  getTypeBySessionId(sessionId: number): {
22
24
  type: EdgeType;
23
25
  pageType: PageType;
26
+ pageWidth: number;
24
27
  };
25
- getComponentByPage(page: number, type: EdgeType): ComponentRef<NoderEdgeComponent>;
28
+ getComponentByPage(page: number, type: EdgeType, pageWidth: number): ComponentRef<NoderEdgeComponent>;
26
29
  getComponentByPageType(pageType: PageType, type: EdgeType): ComponentRef<NoderEdgeComponent>;
27
- getComponentHeightByPageType(pageType: PageType, type: EdgeType): number;
30
+ getComponentHeightByPageType(pageType: PageType, type: EdgeType, pageWidth: number): number;
28
31
  getComponentHeight(instance: NoderEdgeComponent): number;
29
- getComponentHeightByType(pageType: PageType, type: EdgeType): number;
32
+ getComponentHeightByType(pageType: PageType, type: EdgeType, pageWidth: number): number;
30
33
  toggleEditMode(isEdit: boolean): void;
31
34
  getUniquePageTypes(): PageType[];
32
35
  private createComponents;
33
- private getComponent;
36
+ private getComponents;
34
37
  }
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
2
  import { CustomContent } from '../custom-content';
3
+ import { SearchResultLocation } from '../../../gadgets/search/search-result-location.model';
3
4
  import { DestroyComponent } from './destroy.component';
4
5
  import { EditorService } from '../../../interaction/editor.service';
5
6
  import { GeneralPropertiesModel } from '../../../content/display-data/general-properties.model';
@@ -24,6 +25,8 @@ export declare abstract class BaseNoderComponent extends DestroyComponent {
24
25
  blur(): void;
25
26
  receiveStyle(_textStyle: TextStyleModel): void;
26
27
  protected requestStyle(): void;
28
+ searchComponent(_: RegExp): number;
29
+ getSearchResultLocations(): SearchResultLocation[];
27
30
  protected rerender(): void;
28
31
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseNoderComponent, never>;
29
32
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseNoderComponent, never, never, { "content": { "alias": "content"; "required": false; }; "sessionId": { "alias": "sessionId"; "required": false; }; "contentWidth": { "alias": "contentWidth"; "required": false; }; "generalProperties": { "alias": "generalProperties"; "required": false; }; }, {}, never, never, true, never>;
@@ -0,0 +1,36 @@
1
+ export declare enum LineStyles {
2
+ SolidLine = 0,
3
+ RoundDot = 1,
4
+ SquareDot = 2,
5
+ Dash = 3,
6
+ DashDot = 4,
7
+ LongDash = 5,
8
+ LongDashDot = 6,
9
+ LongDashDotDot = 7,
10
+ Single = 8,
11
+ Thick = 9,
12
+ Double = 10,
13
+ Dotted = 11,
14
+ Dashed = 12,
15
+ DotDash = 13,
16
+ DotDotDash = 14,
17
+ Triple = 15,
18
+ ThinThickSmallGap = 16,
19
+ ThickThinSmallGap = 17,
20
+ ThinThickThinSmallGap = 18,
21
+ ThinThickMediumGap = 19,
22
+ ThickThinMediumGap = 20,
23
+ ThinThickThinMediumGap = 21,
24
+ ThinThickLargeGap = 22,
25
+ ThickThinLargeGap = 23,
26
+ ThinThickThinLargeGap = 24,
27
+ Wave = 25,
28
+ DoubleWave = 26,
29
+ DashSmallGap = 27,
30
+ DashDotStroked = 28,
31
+ ThreeDEmboss = 29,
32
+ ThreeDEngrave = 30,
33
+ Outset = 31,
34
+ Inset = 32,
35
+ Nil = 33
36
+ }
@@ -0,0 +1,9 @@
1
+ export declare enum Positions {
2
+ Top = 0,
3
+ Right = 1,
4
+ Bottom = 2,
5
+ Left = 3,
6
+ All = 4,
7
+ InsideHorizontal = 5,
8
+ InsideVertical = 6
9
+ }
@@ -1,4 +1,4 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
2
2
  import { CellModel } from '../../../../models/generated/cell.model';
3
3
  import { CellResizerParametersModel } from '../../../components/table/models/cell-resizer-parameters.model';
4
4
  import { EditorService } from '../../../interaction/editor.service';
@@ -11,7 +11,7 @@ import { SessionModel } from '../../../execution/targeting/session.model';
11
11
  import { TableModel } from '../../../../models/generated/table.model';
12
12
  import { VirtualRenderer } from '../../../display/virtual.renderer';
13
13
  import * as i0 from "@angular/core";
14
- export declare class NoderTableCellComponent {
14
+ export declare class NoderTableCellComponent implements AfterViewInit, OnDestroy {
15
15
  private editorService;
16
16
  private regulatorService;
17
17
  table: TableModel;
@@ -32,13 +32,17 @@ export declare class NoderTableCellComponent {
32
32
  container: ElementRef<HTMLElement>;
33
33
  readonly resizerBorder: typeof ResizerSide;
34
34
  private _allParagraphsHeight;
35
+ private intersectionObserver;
36
+ private isVisible;
35
37
  constructor(editorService: EditorService, regulatorService: RegulatorService);
38
+ ngAfterViewInit(): void;
36
39
  ngOnDestroy(): void;
37
40
  initialize(): void;
38
41
  getCellContentHeight(): number;
39
42
  disableEditorSelection(): void;
40
43
  onStartResizing(event: MouseEvent, border: ResizerSide): void;
41
44
  private addEventListeners;
45
+ private initializeIntersectionObserver;
42
46
  private pagesCountChangedHandler;
43
47
  static ɵfac: i0.ɵɵFactoryDeclaration<NoderTableCellComponent, never>;
44
48
  static ɵcmp: i0.ɵɵComponentDeclaration<NoderTableCellComponent, "app-nod-table-cell", never, { "table": { "alias": "table"; "required": false; }; "cell": { "alias": "cell"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "cellIndex": { "alias": "cellIndex"; "required": false; }; "columnIndex": { "alias": "columnIndex"; "required": false; }; "width": { "alias": "width"; "required": false; }; "parentSessionId": { "alias": "parentSessionId"; "required": false; }; "generalProperties": { "alias": "generalProperties"; "required": false; }; "heightChanged": { "alias": "heightChanged"; "required": false; }; "startResizing": { "alias": "startResizing"; "required": false; }; }, {}, never, never, false, never>;
@@ -0,0 +1,7 @@
1
+ import { BordersStyleModel } from '../../../../models/generated/borders-style.model';
2
+ export declare class TableCellHelper {
3
+ static setCellBorders(cell: HTMLTableCellElement, borders: BordersStyleModel[]): void;
4
+ private static getBorderStyle;
5
+ private static getBorderLineStyle;
6
+ private static setCellBorder;
7
+ }
@@ -32,6 +32,7 @@ export declare class DisplayData extends EventEmitting {
32
32
  tabTokens: DisplayToken[];
33
33
  get maxPageWidth(): number;
34
34
  constructor(model: ContentType, generalProperties: GeneralPropertiesModel, sessionId: number, pageFormatModels: PageFormatModel[], pagesSpace: number, customComponents: ICustomComponents, customContentService: CustomContentService, editorService: EditorService);
35
+ updateDataForModel(): void;
35
36
  recreatePageFormatsNotMainSession(width: number): void;
36
37
  insertText(position: CursorParagraph, text: string): CursorParagraph;
37
38
  removeRange(range: Range): void;
@@ -0,0 +1,8 @@
1
+ import { Range } from '../positioning/range';
2
+ import { SearchResultLocation } from '../gadgets/search/search-result-location.model';
3
+ export declare class CustomElementInfo {
4
+ parentRange: Range;
5
+ index: number;
6
+ location: SearchResultLocation;
7
+ constructor(init: Partial<CustomElementInfo>);
8
+ }
@@ -10,7 +10,7 @@ export declare class EdgesLayer {
10
10
  config: ILayerConfig;
11
11
  elements: EdgeElementModel[];
12
12
  constructor(parentElement: HTMLElement, session: EditSession);
13
- updateSingle(type: EdgeType, pageType: PageType): void;
13
+ updateSingle(type: EdgeType, pageType: PageType, pageWidth: number): void;
14
14
  update(config: ILayerConfig): void;
15
15
  scrollEdges(config: ILayerConfig): void;
16
16
  protected getEdgeTop(topOffset: number, page: number): number;
@@ -1,3 +1,4 @@
1
+ import { CustomElementInfo } from '../custom-element-info.model';
1
2
  import { EditSession } from '../../execution/edit.session';
2
3
  import { ILayerConfig } from './layer.config';
3
4
  import { Range } from '../../positioning/range';
@@ -11,6 +12,7 @@ export declare abstract class HighlightLayer {
11
12
  getTop(row: number): number;
12
13
  drawMultiLineMarker(range: Range, cssClass: string): void;
13
14
  drawSingleLineMarker(range: Range, cssClass: string): void;
15
+ drawCustomElementHighlight(elementInfo: CustomElementInfo, cssClass: string, screenParentRange: Range): void;
14
16
  private getRangeInfo;
15
17
  private getMarkerStyle;
16
18
  }
@@ -9,4 +9,5 @@ export interface ILayerConfig {
9
9
  scrollTop: number;
10
10
  pages?: number[];
11
11
  visibleRange?: VisibleRange;
12
+ isVisible: boolean;
12
13
  }
@@ -1,3 +1,4 @@
1
+ import { CustomElementInfo } from '../custom-element-info.model';
1
2
  import { EditSession } from '../../execution/edit.session';
2
3
  import { HighlightLayer } from './highlight.layer';
3
4
  import { ILayerConfig } from './layer.config';
@@ -6,7 +7,10 @@ export declare class SearchHighlightLayer extends HighlightLayer {
6
7
  private readonly className;
7
8
  private readonly selectedClassName;
8
9
  markers: Range[];
9
- active: Range;
10
+ customElementsRanges: CustomElementInfo[];
11
+ active: Range | CustomElementInfo;
10
12
  constructor(parentEl: HTMLElement, cssClass: string, session: EditSession);
11
13
  update(config: ILayerConfig): void;
14
+ private getVisibleCustomElementResults;
15
+ private updateActiveResult;
12
16
  }
@@ -9,4 +9,5 @@ export interface IRenderChanges {
9
9
  text?: boolean;
10
10
  dragAndDrop?: boolean;
11
11
  search?: boolean;
12
+ visibilityChanged?: boolean;
12
13
  }
@@ -10,6 +10,7 @@ export declare class RenderChangesModel implements IRenderChanges {
10
10
  size: boolean;
11
11
  text: boolean;
12
12
  dragAndDrop: boolean;
13
+ visibilityChanged: boolean;
13
14
  get any(): boolean;
14
15
  constructor(fields?: Partial<RenderChangesModel>);
15
16
  apply(changes: IRenderChanges): void;
@@ -1,5 +1,6 @@
1
1
  import { CursorLayer } from './layers/cursor.layer';
2
2
  import { CursorParagraph } from '../positioning/cursor-paragraph';
3
+ import { CustomElementInfo } from './custom-element-info.model';
3
4
  import { EditSession } from '../execution/edit.session';
4
5
  import { EventEmitting } from '../core/event-emitting';
5
6
  import { ILayerConfig } from './layers/layer.config';
@@ -21,6 +22,7 @@ export declare class Renderer extends EventEmitting {
21
22
  loop: RenderLoop;
22
23
  textarea: HTMLElement;
23
24
  layerConfig: ILayerConfig;
25
+ isVisible: boolean;
24
26
  changes: RenderChangesModel;
25
27
  readonly textareaSize: {
26
28
  height: number;
@@ -35,13 +37,17 @@ export declare class Renderer extends EventEmitting {
35
37
  moveTextAreaToCursor(): void;
36
38
  updateSelection(range: Range): void;
37
39
  updateSearchHighlights(ranges: Range[]): void;
38
- updateActiveSearchHighlight(active: Range): void;
40
+ updateCustomElementHighlights(ranges: CustomElementInfo[]): void;
41
+ updateActiveSearchHighlight(active: Range | CustomElementInfo): void;
39
42
  updateDragAndDropSelection(range: Range | null): void;
40
43
  clearDragAndDropSelection(): void;
44
+ setVisibility(isVisible: boolean): void;
41
45
  /**
42
46
  * Triggers a full update of the text, for all the rows.
43
47
  **/
44
48
  updateText(): void;
49
+ updateTextAndCursor(): void;
50
+ updateMarker(): void;
45
51
  updateCursor(): void;
46
52
  /**
47
53
  * Converts screen coordinates to text coordinates by mapping to the closest token midpoint.
@@ -1,5 +1,6 @@
1
1
  import { CursorLayer } from './layers/cursor.layer';
2
2
  import { CursorParagraph } from '../positioning/cursor-paragraph';
3
+ import { CustomElementInfo } from './custom-element-info.model';
3
4
  import { EdgesLayer } from './layers/edges.layer';
4
5
  import { EditSession } from '../execution/edit.session';
5
6
  import { ILayerConfig } from './layers/layer.config';
@@ -47,14 +48,18 @@ export declare class VirtualRenderer {
47
48
  moveTextAreaToCursor(): void;
48
49
  updateSelection(range: Range): void;
49
50
  updateSearchHighlights(ranges: Range[]): void;
50
- updateActiveSearchHighlight(active: Range): void;
51
+ updateCustomElementHighlights(ranges: CustomElementInfo[]): void;
52
+ updateActiveSearchHighlight(active: Range | CustomElementInfo): void;
51
53
  updateDragAndDropSelection(range: Range): void;
52
54
  clearDragAndDropSelection(): void;
53
55
  /**
54
56
  * Triggers a full update of the text, for all the rows.
55
57
  **/
56
58
  updateText(): void;
59
+ updateTextAndCursor(): void;
60
+ updateMarker(): void;
57
61
  updateCursor(): void;
62
+ setVisibility(isVisible: boolean): void;
58
63
  scrollSelectionIntoView(anchor: CursorParagraph, lead: CursorParagraph, offset?: number): void;
59
64
  /**
60
65
  * Scrolls the cursor into the first visibile area of the editor
@@ -7,6 +7,7 @@ import { CursorParagraph } from '../positioning/cursor-paragraph';
7
7
  import { CustomContent } from '../components/shared/custom-content';
8
8
  import { CustomContentService } from '../components/shared/services/custom-content.service';
9
9
  import { DisplayData } from '../content/display-data/display-data';
10
+ import { EdgeType } from '../components/edges/edge-type.enum';
10
11
  import { EditorService } from '../interaction/editor.service';
11
12
  import { ElementDataModel } from '../components/external-element/models/element-data.model';
12
13
  import { ElementModel } from '../../models/generated/element.model';
@@ -47,13 +48,14 @@ export declare class EditSession {
47
48
  generalProperties: GeneralPropertiesModel;
48
49
  editorService: EditorService;
49
50
  customComponents: ICustomComponents;
50
- private type;
51
+ type: 'cell' | 'edge' | 'main' | 'cellWithinEdge';
51
52
  private scrollBar?;
53
+ edgeType?: EdgeType;
52
54
  tokenRe: RegExp;
53
55
  nonTokenRe: RegExp;
54
56
  get scrollTop(): number;
55
57
  get scrollBarHeight(): number;
56
- constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, model: ContentType, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main' | 'cellWithinEdge', scrollBar?: ScrollBar);
58
+ constructor(displayData: DisplayData, sessionId: number, customContentService: CustomContentService, model: ContentType, selection: Selection, generalProperties: GeneralPropertiesModel, editorService: EditorService, customComponents: ICustomComponents, type: 'cell' | 'edge' | 'main' | 'cellWithinEdge', scrollBar?: ScrollBar, edgeType?: EdgeType);
57
59
  destroy(): void;
58
60
  getRowLength(row: number): number;
59
61
  getRowCacheIndex(cacheArray: number[], value: number): number;
@@ -123,4 +125,5 @@ export declare class EditSession {
123
125
  paragraphIsNumbering(row: number): boolean;
124
126
  createEdges(pageType: PageType): void;
125
127
  removeEmptyEdges(pageType: PageType): void;
128
+ updateDisplayData(): void;
126
129
  }
@@ -75,6 +75,7 @@ export declare class Editor {
75
75
  dragAndDrop: DragAndDrop;
76
76
  subscriptions: Subscription[];
77
77
  private readonly search;
78
+ private readonly emojiRegex;
78
79
  private replaceTerm;
79
80
  private textInput;
80
81
  private clipboardData;
@@ -116,7 +117,7 @@ export declare class Editor {
116
117
  applyImageStyles(image: ImageModel): void;
117
118
  focus(): void;
118
119
  openSearch(): void;
119
- find(term: string, focusNext?: boolean): void;
120
+ find(term: string): void;
120
121
  findNext(): void;
121
122
  findPrevious(): void;
122
123
  replace(): void;
@@ -255,10 +256,10 @@ export declare class Editor {
255
256
  private selectAllSubscription;
256
257
  private removeSelectedSubscription;
257
258
  private clipboardDataSubscription;
259
+ private commandCreatedForEdges;
258
260
  private updateEdgeSubscription;
259
261
  private recreateMainSession;
260
262
  private changeColumnsWidth;
261
263
  private changeCellsWidth;
262
- private updateActiveSearchHighlight;
263
264
  private setCursorAtSearchResult;
264
265
  }
@@ -23,7 +23,7 @@ export declare class RegulatorService {
23
23
  selection: Selection;
24
24
  sessionIdIncrement: number;
25
25
  constructor(customContentService: CustomContentService, editorService: EditorService, componentService: ComponentService);
26
- addMainSession(model: DocxModel, pageWidth: number, scalingRatio: number, container: ElementRef<HTMLElement>): void;
26
+ addMainSession(model: DocxModel, scalingRatio: number, container: ElementRef<HTMLElement>): void;
27
27
  addCellSession(table: TableModel, margins: MarginModel, component: NoderTableCellComponent, properties: GeneralPropertiesModel): SessionModel;
28
28
  addEdgeSession(component: NoderEdgeComponent): SessionModel;
29
29
  removeSession(sessionId: number): void;
@@ -32,6 +32,7 @@ export declare class RegulatorService {
32
32
  setTargetedSessionAsCurrent(targets: TargetModel[]): void;
33
33
  setCurrentSessionById(sessionId: number): void;
34
34
  setCurrentSession(session: SessionModel): void;
35
+ updateCursorPosition(): void;
35
36
  getSessionModel(sessionId: number): SessionModel;
36
37
  getSession(sessionId: number): EditSession;
37
38
  setSelection(selection: Selection): void;
@@ -41,6 +42,7 @@ export declare class RegulatorService {
41
42
  getTargetedSession(targets: TargetModel[]): EditSession;
42
43
  isWithinEdge(sessionId: number): boolean;
43
44
  arrangeEdgeChange(sessionId: number): void;
45
+ forceUpdateDataForEdges(): void;
44
46
  private getEdgeSessionId;
45
47
  private arrangeEdgesForSessionChange;
46
48
  private getPageFormats;
@@ -0,0 +1,9 @@
1
+ import { CursorParagraph } from '../../positioning/cursor-paragraph';
2
+ import { Range } from '../../positioning/range';
3
+ export declare class CustomElementSearchResult {
4
+ sessionId: number;
5
+ index: number;
6
+ range: Range;
7
+ mainSessionPosition: CursorParagraph | 'outsideMainSession';
8
+ constructor(init: Partial<CustomElementSearchResult>);
9
+ }
@@ -0,0 +1,8 @@
1
+ export declare class SearchResultLocation {
2
+ width: number;
3
+ height: number;
4
+ top: number;
5
+ left: number;
6
+ constructor(init: Partial<SearchResultLocation>);
7
+ isEqual(other: SearchResultLocation): boolean;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { CursorParagraph } from '../../positioning/cursor-paragraph';
2
+ import { Range } from '../../positioning/range';
3
+ export declare class SearchResult {
4
+ sessionId: number;
5
+ range: Range;
6
+ mainSessionPosition: CursorParagraph | 'outsideMainSession';
7
+ constructor(init: Partial<SearchResult>);
8
+ }
@@ -1,16 +1,28 @@
1
- import { SearchResult } from './search-result.interface';
1
+ import { CustomElementSearchResult } from './custom-element-search-result.model';
2
+ import { EditorService } from '../../../editor/interaction/editor.service';
3
+ import { SearchResult } from './search-result.model';
2
4
  import { Selection } from '../../positioning/selection';
3
5
  import { SessionModel } from '../../execution/targeting/session.model';
4
6
  export declare class Search {
7
+ private readonly editorService;
5
8
  term: string;
6
9
  regex: RegExp;
7
- allMatches: SearchResult[];
10
+ allMatches: (SearchResult | CustomElementSearchResult)[];
8
11
  private currentIndex;
12
+ private searchedSessionIds;
13
+ private danglingSessions;
14
+ private tables;
9
15
  get currentMatchIndex(): number;
10
- get currentMatch(): SearchResult;
11
- setSearchTerm(term: string): void;
12
- findAll(sessions: SessionModel[]): void;
13
- goNext(selection: Selection, currentSessionId: number): void;
14
- goPrevious(selection: Selection, currentSessionId: number): void;
15
- assembleRegExp(term: string): void;
16
+ get currentMatch(): SearchResult | CustomElementSearchResult;
17
+ constructor(editorService: EditorService);
18
+ findAll(sessions: SessionModel[], term: string): void;
19
+ goNext(selection: Selection, currentSessionId: number, sessions: SessionModel[]): void;
20
+ goPrevious(selection: Selection, currentSessionId: number, sessions: SessionModel[]): void;
21
+ private assembleRegExp;
22
+ private searchContent;
23
+ private checkForTables;
24
+ private checkForCustomElements;
25
+ private findNextAfterCursor;
26
+ private findPreviousBeforeCursor;
27
+ private updateActiveSearchHighlight;
16
28
  }
@@ -0,0 +1,6 @@
1
+ export interface TableLocation {
2
+ sessionId: number;
3
+ row: number;
4
+ col: number;
5
+ tableSessions: number[];
6
+ }
@@ -95,6 +95,8 @@ export declare class EditorService {
95
95
  get changedEdgeSize$(): Observable<{
96
96
  edgeType: EdgeType;
97
97
  pageType: PageType;
98
+ pageWidth: number;
99
+ pageHeight: number;
98
100
  }>;
99
101
  private readonly _changedEdgeSize$;
100
102
  get imageLoaded$(): Observable<number>;
@@ -233,7 +235,7 @@ export declare class EditorService {
233
235
  openSidenav(component: Type<any>): void;
234
236
  closeSidenav(): void;
235
237
  changedTableSize(insertIndex: number, sessionId: number): void;
236
- changedEdgeSize(edgeType: EdgeType, pageType: PageType): void;
238
+ changedEdgeSize(edgeType: EdgeType, pageType: PageType, pageWidth: number, pageHeight: number): void;
237
239
  imageLoaded(sessionId: number): void;
238
240
  changedEdge(sessionId: number): void;
239
241
  insertTableRows(insertIndex: number, rowsCount: number, targetIndex: number, inheritIndex: number, sessionId: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talrace/ngx-noder",
3
- "version": "0.0.43",
3
+ "version": "0.0.44",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.0.5",
package/public-api.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './lib/editor/gadgets/page-break/break-types.enum';
4
4
  export * from './lib/editor/components/edges/page-type.enum';
5
5
  export * from './lib/editor/execution/helpers/dom.helper';
6
6
  export * from './lib/editor/execution/helpers/format-style.helper';
7
+ export * from './lib/editor/gadgets/font-metrics/font-metrics.helper';
7
8
  export * from './lib/editor/content/display-data/toolbar-styles.interface';
8
9
  export * from './lib/editor/components/external-element/models/element-data.model';
9
10
  export * from './lib/editor/components/external-element/models/external-element.model';
@@ -38,6 +39,7 @@ export * from './lib/apart-components/add-link-dialog/add-link-dialog.component'
38
39
  export * from './lib/apart-components/add-link-mobile/add-link-mobile.component';
39
40
  export * from './lib/apart-components/confirm-dialog/confirm-dialog.component';
40
41
  export * from './lib/editor/operations/commands.service';
42
+ export * from './lib/editor/gadgets/search/search-result-location.model';
41
43
  export * from './lib/models/generated/command.model';
42
44
  export * from './lib/models/generated/document-name.model';
43
45
  export * from './lib/models/generated/document.model';
@@ -1,5 +0,0 @@
1
- import { Range } from '../../positioning/range';
2
- export interface SearchResult {
3
- sessionId: number;
4
- range: Range;
5
- }