@talrace/ngx-noder 0.0.43 → 0.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/assets/i18n/noder.en.json +7 -1
  2. package/assets/i18n/noder.es.json +7 -1
  3. package/assets/i18n/noder.ru.json +7 -1
  4. package/fesm2022/talrace-ngx-noder.mjs +1194 -384
  5. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  6. package/lib/apart-components/editor-ruler/editor-ruler.component.d.ts +9 -2
  7. package/lib/apart-components/editor-search-bar/editor-search-bar.component.d.ts +1 -0
  8. package/lib/apart-components/editor-toolbar/shared/enums/tab-alignment.enum.d.ts +7 -0
  9. package/lib/apart-components/tab-settings-dialog/tab-settings-dialog.component.d.ts +33 -0
  10. package/lib/editor/components/edges/edge-element.model.d.ts +3 -2
  11. package/lib/editor/components/edges/edge.component.d.ts +3 -1
  12. package/lib/editor/components/edges/edges.d.ts +9 -6
  13. package/lib/editor/components/external-element/external.component.d.ts +2 -0
  14. package/lib/editor/components/shared/abstract/base.component.d.ts +5 -2
  15. package/lib/editor/components/shared/enums/line-styles.enum.d.ts +36 -0
  16. package/lib/editor/components/shared/enums/positions.enum.d.ts +9 -0
  17. package/lib/editor/components/tab/tab.component.d.ts +1 -3
  18. package/lib/editor/components/tab/tab.helper.d.ts +2 -1
  19. package/lib/editor/components/table/components/table-cell.component.d.ts +6 -2
  20. package/lib/editor/components/table/helpers/table-cell.helper.d.ts +7 -0
  21. package/lib/editor/content/display-data/display-data.d.ts +1 -1
  22. package/lib/editor/display/custom-element-info.model.d.ts +8 -0
  23. package/lib/editor/display/layers/edges.layer.d.ts +1 -1
  24. package/lib/editor/display/layers/highlight.layer.d.ts +2 -0
  25. package/lib/editor/display/layers/layer.config.d.ts +1 -0
  26. package/lib/editor/display/layers/search-highlight.layer.d.ts +5 -1
  27. package/lib/editor/display/render-changes.interface.d.ts +1 -0
  28. package/lib/editor/display/render-changes.model.d.ts +1 -0
  29. package/lib/editor/display/renderer.d.ts +7 -1
  30. package/lib/editor/display/virtual.renderer.d.ts +6 -1
  31. package/lib/editor/execution/edit.session.d.ts +5 -2
  32. package/lib/editor/execution/editor.d.ts +4 -2
  33. package/lib/editor/execution/regulator.service.d.ts +3 -1
  34. package/lib/editor/gadgets/search/custom-element-search-result.model.d.ts +9 -0
  35. package/lib/editor/gadgets/search/search-result-location.model.d.ts +8 -0
  36. package/lib/editor/gadgets/search/search-result.model.d.ts +8 -0
  37. package/lib/editor/gadgets/search/search.d.ts +20 -8
  38. package/lib/editor/gadgets/search/table-location.interface.d.ts +6 -0
  39. package/lib/editor/interaction/editor.service.d.ts +10 -3
  40. package/lib/models/generated/form-interfaces/tab-setting-form.interface.d.ts +5 -0
  41. package/lib/models/generated/paragraph-style.model.d.ts +2 -0
  42. package/lib/models/generated/tab-setting.model.d.ts +5 -0
  43. package/package.json +1 -1
  44. package/public-api.d.ts +2 -0
  45. package/lib/editor/gadgets/search/search-result.interface.d.ts +0 -5
@@ -1,8 +1,10 @@
1
1
  import { ElementRef } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
2
3
  import { EditorService } from '../../editor/interaction/editor.service';
4
+ import { TabSettingModel } from '../../models/generated/tab-setting.model';
3
5
  import * as i0 from "@angular/core";
4
6
  export type RulerUnit = 'cm' | 'inch';
5
- type DragTarget = 'leftIndent' | 'first' | 'rightIndent' | 'leftMarginPageFormat' | 'rightMarginPageFormat';
7
+ type DragTarget = 'leftIndent' | 'first' | 'rightIndent' | 'leftMarginPageFormat' | 'rightMarginPageFormat' | 'tabs';
6
8
  interface Tick {
7
9
  position: number;
8
10
  originalPaddings: number;
@@ -14,6 +16,7 @@ export declare class EditorRulerComponent {
14
16
  rulerContainer: ElementRef<HTMLDivElement>;
15
17
  unit: import("@angular/core").InputSignal<RulerUnit>;
16
18
  readonly editorService: EditorService;
19
+ readonly dialog: MatDialog;
17
20
  readonly defaultPaddingCm = 2.5;
18
21
  readonly pageWidth$: import("rxjs").Observable<number>;
19
22
  private readonly snapInch;
@@ -30,6 +33,8 @@ export declare class EditorRulerComponent {
30
33
  readonly rightMarginPageFormatPx: import("@angular/core").WritableSignal<number>;
31
34
  readonly guideX: import("@angular/core").WritableSignal<number>;
32
35
  readonly showGuide: import("@angular/core").WritableSignal<boolean>;
36
+ readonly tabSettings: import("@angular/core").WritableSignal<TabSettingModel[]>;
37
+ draggableTabIndex: number;
33
38
  containerWidthPx: number;
34
39
  ticks: Tick[];
35
40
  private dragging;
@@ -37,6 +42,7 @@ export declare class EditorRulerComponent {
37
42
  constructor();
38
43
  afterViewInit(): void;
39
44
  onResize(): void;
45
+ onOpenDialog(): void;
40
46
  private recalcGeometry;
41
47
  private cmToPx;
42
48
  private pxToCm;
@@ -45,7 +51,8 @@ export declare class EditorRulerComponent {
45
51
  private snapPx;
46
52
  private buildTicksCm;
47
53
  private buildTicksInch;
48
- startDrag(ev: MouseEvent | TouchEvent, target: DragTarget): void;
54
+ addTab(event: MouseEvent | TouchEvent): void;
55
+ startDrag(event: MouseEvent | TouchEvent, target: DragTarget, tabIndex?: number): void;
49
56
  private readonly onMove;
50
57
  private readonly onUp;
51
58
  private getClientX;
@@ -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;
@@ -0,0 +1,7 @@
1
+ export declare enum TabAlignment {
2
+ Left = 0,
3
+ Center = 1,
4
+ Right = 2,
5
+ Decimal = 3,
6
+ Bar = 4
7
+ }
@@ -0,0 +1,33 @@
1
+ import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
2
+ import { MatDialogRef } from '@angular/material/dialog';
3
+ import { RulerUnit } from '../editor-ruler/editor-ruler.component';
4
+ import { TabAlignment } from '../editor-toolbar/shared/enums/tab-alignment.enum';
5
+ import { TabSettingFormInterface } from '../../models/generated/form-interfaces/tab-setting-form.interface';
6
+ import { TabSettingModel } from '../../models/generated/tab-setting.model';
7
+ import * as i0 from "@angular/core";
8
+ export interface TabDialogData {
9
+ tabs: TabSettingModel[];
10
+ unit: RulerUnit;
11
+ }
12
+ interface TabAlignmentExt {
13
+ title: string;
14
+ type: TabAlignment;
15
+ }
16
+ export declare class TabSettingsDialogComponent {
17
+ data: TabDialogData;
18
+ private ref;
19
+ private fb;
20
+ modal: boolean;
21
+ readonly alignments: TabAlignmentExt[];
22
+ form: FormGroup;
23
+ constructor(data: TabDialogData, ref: MatDialogRef<TabSettingsDialogComponent>, fb: FormBuilder);
24
+ tabsArray(): FormArray<FormGroup<TabSettingFormInterface>>;
25
+ onRemove(index: number): void;
26
+ onClose(): void;
27
+ onSave(): void;
28
+ onAddTab(): void;
29
+ private createTabGroup;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<TabSettingsDialogComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabSettingsDialogComponent, "app-nod-tab-settings-dialog", never, {}, {}, never, never, true, never>;
32
+ }
33
+ export {};
@@ -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
  }
@@ -6,6 +6,8 @@ import * as i0 from "@angular/core";
6
6
  export declare abstract class ExternalComponent extends BaseNoderComponent {
7
7
  content: ElementModel;
8
8
  protected abstract sidenavComponent: Type<ExternalSidenavInterface>;
9
+ protected focusSidenav: boolean;
10
+ protected skipSidenav(): boolean;
9
11
  focus(): void;
10
12
  blur(): void;
11
13
  static ɵfac: i0.ɵɵFactoryDeclaration<ExternalComponent, never>;
@@ -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';
@@ -13,8 +14,8 @@ export declare abstract class BaseNoderComponent extends DestroyComponent {
13
14
  set insertIndex(val: number);
14
15
  contentWidth: number;
15
16
  generalProperties: GeneralPropertiesModel;
16
- height: number;
17
- width: number;
17
+ height: import("@angular/core").WritableSignal<number>;
18
+ width: import("@angular/core").WritableSignal<number>;
18
19
  protected _isFocused: boolean;
19
20
  get isFocused(): boolean;
20
21
  protected readonly cdr: ChangeDetectorRef;
@@ -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
+ }
@@ -2,12 +2,10 @@ import { BaseNoderComponent } from '../shared/abstract/base.component';
2
2
  import { TabModel } from '../../../models/generated/tab.model';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class NoderTabComponent extends BaseNoderComponent {
5
- width: number;
6
- height: number;
7
5
  get tab(): TabModel;
8
6
  set tab(val: TabModel);
9
7
  initialize(): void;
10
- protected calculateProperties(): void;
8
+ applySize(width: number, font: number): void;
11
9
  static ɵfac: i0.ɵɵFactoryDeclaration<NoderTabComponent, never>;
12
10
  static ɵcmp: i0.ɵɵComponentDeclaration<NoderTabComponent, "app-nod-tab", never, {}, {}, never, never, false, never>;
13
11
  }
@@ -1,3 +1,4 @@
1
+ import { TabSettingModel } from '../../../models/generated/tab-setting.model';
1
2
  export declare class TabHelper {
2
- static calculateTabWidth(rowWidth: number, defaultTabWidth: number): number;
3
+ static calculateTabWidth(rowWidth: number, defaultTabWidth: number, tabSettings: TabSettingModel[] | null): number;
3
4
  }
@@ -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,7 +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
- recreatePageFormatsNotMainSession(width: number): void;
35
+ updateDataForModel(): void;
36
36
  insertText(position: CursorParagraph, text: string): CursorParagraph;
37
37
  removeRange(range: Range): void;
38
38
  getParagraphContent(index: number): string;
@@ -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;
@@ -220,6 +221,7 @@ export declare class Editor {
220
221
  applyFirstLinePositionSubscription(): Subscription;
221
222
  applyRightIndentParagraphSubscription(): Subscription;
222
223
  applyLeftIndentParagraphSubscription(): Subscription;
224
+ applyTabSettingsSubscription(): Subscription;
223
225
  setImageStyleSubscription(): Subscription;
224
226
  rerenderSubscription(): Subscription;
225
227
  createCustomComponentSubscription(): Subscription;
@@ -255,10 +257,10 @@ export declare class Editor {
255
257
  private selectAllSubscription;
256
258
  private removeSelectedSubscription;
257
259
  private clipboardDataSubscription;
260
+ private commandCreatedForEdges;
258
261
  private updateEdgeSubscription;
259
262
  private recreateMainSession;
260
263
  private changeColumnsWidth;
261
264
  private changeCellsWidth;
262
- private updateActiveSearchHighlight;
263
265
  private setCursorAtSearchResult;
264
266
  }
@@ -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
+ }