@talrace/ngx-noder 0.0.27 → 0.0.29
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.
- package/assets/drag-and-drop-cursor.png +0 -0
- package/assets/i18n/noder.en.json +26 -0
- package/assets/i18n/noder.es.json +26 -0
- package/assets/i18n/noder.ru.json +26 -0
- package/fesm2022/talrace-ngx-noder.mjs +483 -122
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.d.ts +2 -1
- package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +5 -4
- package/lib/editor/components/external-element/models/external-element.model.d.ts +2 -1
- package/lib/editor/content/helpers/format.helper.d.ts +1 -0
- package/lib/editor/content/helpers/indexed-element.helper.d.ts +1 -0
- package/lib/editor/content/helpers/link.helper.d.ts +1 -0
- package/lib/editor/display/layers/cursor.layer.d.ts +1 -0
- package/lib/editor/display/render-changes.interface.d.ts +1 -0
- package/lib/editor/display/render-changes.model.d.ts +1 -0
- package/lib/editor/display/renderer.d.ts +5 -0
- package/lib/editor/display/virtual.renderer.d.ts +4 -0
- package/lib/editor/execution/edit.session.d.ts +5 -0
- package/lib/editor/execution/editor.d.ts +15 -2
- package/lib/editor/gadgets/drag-and-drop/drag-and-drop.d.ts +21 -0
- package/lib/editor/gadgets/history/operation-history.d.ts +3 -0
- package/lib/editor/gadgets/history/operation.type.d.ts +2 -1
- package/lib/editor/operations/enums/command-type.enum.d.ts +2 -1
- package/lib/editor/operations/helpers/contents-operations.helper.d.ts +5 -0
- package/lib/editor/operations/operations-helper.helper.d.ts +4 -1
- package/lib/editor/operations/save-commands.helper.d.ts +2 -0
- package/lib/editor/operations/target-operations.helper.d.ts +3 -1
- package/lib/models/generated/command.model.d.ts +2 -0
- package/lib/models/generated/link.model.d.ts +2 -0
- package/lib/models/generated/move-range.model.d.ts +9 -0
- package/lib/models/generated/text-style.model.d.ts +1 -0
- package/package.json +1 -1
- package/src/scss/base-editor.scss +15 -2
|
@@ -5,8 +5,9 @@ export declare class ColorPickerComponent {
|
|
|
5
5
|
icon: string;
|
|
6
6
|
isDisabled: boolean;
|
|
7
7
|
palette: string[];
|
|
8
|
+
tooltip: string;
|
|
8
9
|
colorChange: EventEmitter<string>;
|
|
9
10
|
onChangeColor(color: string): void;
|
|
10
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColorPickerComponent, never>;
|
|
11
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ColorPickerComponent, "app-nod-color-picker", never, { "color": { "alias": "color"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; }, { "colorChange": "colorChange"; }, never, never, true, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColorPickerComponent, "app-nod-color-picker", never, { "color": { "alias": "color"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, { "colorChange": "colorChange"; }, never, never, true, never>;
|
|
12
13
|
}
|
|
@@ -22,11 +22,12 @@ import * as i20 from "@angular/material/button-toggle";
|
|
|
22
22
|
import * as i21 from "@angular/material/expansion";
|
|
23
23
|
import * as i22 from "@angular/material/icon";
|
|
24
24
|
import * as i23 from "@angular/material/menu";
|
|
25
|
-
import * as i24 from "@angular/
|
|
26
|
-
import * as i25 from "
|
|
27
|
-
import * as i26 from "
|
|
25
|
+
import * as i24 from "@angular/material/tooltip";
|
|
26
|
+
import * as i25 from "@angular/forms";
|
|
27
|
+
import * as i26 from "../text-format-mobile/text-format-mobile.component";
|
|
28
|
+
import * as i27 from "@ngx-translate/core";
|
|
28
29
|
export declare class EditorToolbarModule {
|
|
29
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditorToolbarModule, never>;
|
|
30
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EditorToolbarModule, [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i3.FontStyleComponent, typeof i4.FormatComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i7.NumberingComponent, typeof i8.PrintComponent, typeof i9.ToolbarActionsComponent, typeof i10.UndoRedoComponent, typeof i11.ZoomComponent], [typeof i12.ColorPickerComponent, typeof i13.CommonModule, typeof i14.FontComponent, typeof i15.FontSizeComponent, typeof i16.InsertTableComponent, typeof i17.InsertTableMobileComponent, typeof i18.MatAutocompleteModule, typeof i19.MatButtonModule, typeof i20.MatButtonToggleModule, typeof i21.MatExpansionModule, typeof i22.MatIconModule, typeof i23.MatMenuModule, typeof i24.
|
|
31
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EditorToolbarModule, [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i3.FontStyleComponent, typeof i4.FormatComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i7.NumberingComponent, typeof i8.PrintComponent, typeof i9.ToolbarActionsComponent, typeof i10.UndoRedoComponent, typeof i11.ZoomComponent], [typeof i12.ColorPickerComponent, typeof i13.CommonModule, typeof i14.FontComponent, typeof i15.FontSizeComponent, typeof i16.InsertTableComponent, typeof i17.InsertTableMobileComponent, typeof i18.MatAutocompleteModule, typeof i19.MatButtonModule, typeof i20.MatButtonToggleModule, typeof i21.MatExpansionModule, typeof i22.MatIconModule, typeof i23.MatMenuModule, typeof i24.MatTooltipModule, typeof i25.ReactiveFormsModule, typeof i26.TextFormatMobileComponent, typeof i27.TranslateModule], [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i5.MenuDropdownsComponent, typeof i6.MenuDropdownsMobileComponent, typeof i9.ToolbarActionsComponent]>;
|
|
31
32
|
static ɵinj: i0.ɵɵInjectorDeclaration<EditorToolbarModule>;
|
|
32
33
|
}
|
|
@@ -6,12 +6,13 @@ export declare class ExternalElementModel {
|
|
|
6
6
|
icon: string;
|
|
7
7
|
type: number;
|
|
8
8
|
componentType: Type<BaseNoderComponent>;
|
|
9
|
+
tooltip: string;
|
|
9
10
|
factoryMethod: () => Promise<{
|
|
10
11
|
id: number;
|
|
11
12
|
guid: string;
|
|
12
13
|
type: number;
|
|
13
14
|
}>;
|
|
14
|
-
constructor(nameTranslate: string, nameId: string, icon: string, type: number, componentType: Type<BaseNoderComponent>, factoryMethod: () => Promise<{
|
|
15
|
+
constructor(nameTranslate: string, nameId: string, icon: string, type: number, componentType: Type<BaseNoderComponent>, tooltip: string, factoryMethod: () => Promise<{
|
|
15
16
|
id: number;
|
|
16
17
|
guid: string;
|
|
17
18
|
type: number;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FormatModel } from '../../../models/generated/format.model';
|
|
2
2
|
export declare class FormatHelper {
|
|
3
3
|
static sliceSection(formats: FormatModel[], startIndex: number, endIndex: number): FormatModel[];
|
|
4
|
+
static shiftIndexes(formats: FormatModel[], offset: number): void;
|
|
4
5
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { InsertIndexInterface } from '../../../editor/positioning/insert-index.interface';
|
|
2
2
|
export declare class IndexedElementHelper {
|
|
3
3
|
static sliceSection<T extends InsertIndexInterface>(elements: T[], startIndex: number, endIndex: number): T[];
|
|
4
|
+
static shiftIndexes<T extends InsertIndexInterface>(elements: T[], offset: number): void;
|
|
4
5
|
}
|
|
@@ -2,6 +2,7 @@ import { FormatModel } from './../../../models/generated/format.model';
|
|
|
2
2
|
import { LinkModel } from '../../../models/generated/link.model';
|
|
3
3
|
export declare class LinkHelper {
|
|
4
4
|
static sliceSection(links: LinkModel[], start: number, end: number): LinkModel[];
|
|
5
|
+
static shiftIndexes(links: LinkModel[], offset: number): void;
|
|
5
6
|
static sliceFormats(links: LinkModel[], startIndex: number, endIndex: number): FormatModel[];
|
|
6
7
|
private static getPartialLink;
|
|
7
8
|
}
|
|
@@ -12,6 +12,7 @@ export declare class CursorLayer {
|
|
|
12
12
|
constructor(parentElement: HTMLElement, session: EditSession);
|
|
13
13
|
hideCursor(): void;
|
|
14
14
|
showCursor(): void;
|
|
15
|
+
showStaticCursor(): void;
|
|
15
16
|
detectVisibility(): void;
|
|
16
17
|
update(config: ILayerConfig): void;
|
|
17
18
|
getPixelPosition(position?: CursorParagraph): CursorPosition;
|
|
@@ -15,6 +15,7 @@ export declare class Renderer extends EventEmitting {
|
|
|
15
15
|
cursorLayer: CursorLayer;
|
|
16
16
|
textLayer: TextLayer;
|
|
17
17
|
selectionLayer: SelectionLayer;
|
|
18
|
+
dragAndDropSelectionLayer: SelectionLayer;
|
|
18
19
|
loop: RenderLoop;
|
|
19
20
|
textarea: HTMLElement;
|
|
20
21
|
layerConfig: ILayerConfig;
|
|
@@ -31,6 +32,8 @@ export declare class Renderer extends EventEmitting {
|
|
|
31
32
|
updateLines(firstRow: number, lastRow: number): void;
|
|
32
33
|
moveTextAreaToCursor(): void;
|
|
33
34
|
updateSelection(range: Range): void;
|
|
35
|
+
updateDragAndDropSelection(range: Range | null): void;
|
|
36
|
+
clearDragAndDropSelection(): void;
|
|
34
37
|
/**
|
|
35
38
|
* Triggers a full update of the text, for all the rows.
|
|
36
39
|
**/
|
|
@@ -45,12 +48,14 @@ export declare class Renderer extends EventEmitting {
|
|
|
45
48
|
*/
|
|
46
49
|
screenToTextCoordinatesUsingBoundary(x: number, y: number, rect?: DOMRect): CursorParagraph;
|
|
47
50
|
showCursor(): void;
|
|
51
|
+
showStaticCursor(): void;
|
|
48
52
|
hideCursor(): void;
|
|
49
53
|
destroy(): void;
|
|
50
54
|
renderFull(): void;
|
|
51
55
|
renderText(): void;
|
|
52
56
|
renderCursor(): void;
|
|
53
57
|
renderSelection(): void;
|
|
58
|
+
renderDragAndDropSelection(): void;
|
|
54
59
|
private computeLayerConfig;
|
|
55
60
|
private pagesCountChangedHandler;
|
|
56
61
|
private createContentContainer;
|
|
@@ -46,6 +46,8 @@ export declare class VirtualRenderer {
|
|
|
46
46
|
updateCachedSize(force: boolean, width: number, height: number): RenderChangesModel;
|
|
47
47
|
moveTextAreaToCursor(): void;
|
|
48
48
|
updateSelection(range: Range): void;
|
|
49
|
+
updateDragAndDropSelection(range: Range): void;
|
|
50
|
+
clearDragAndDropSelection(): void;
|
|
49
51
|
/**
|
|
50
52
|
* Triggers a full update of the text, for all the rows.
|
|
51
53
|
**/
|
|
@@ -61,6 +63,7 @@ export declare class VirtualRenderer {
|
|
|
61
63
|
screenToTextCoordinatesUsingBoundary(x: number, y: number, rect?: DOMRect): CursorParagraph;
|
|
62
64
|
showCursor(): void;
|
|
63
65
|
hideCursor(): void;
|
|
66
|
+
showStaticCursor(): void;
|
|
64
67
|
destroy(): void;
|
|
65
68
|
private computeLayerConfig;
|
|
66
69
|
private createScroller;
|
|
@@ -70,4 +73,5 @@ export declare class VirtualRenderer {
|
|
|
70
73
|
private renderText;
|
|
71
74
|
private renderCursor;
|
|
72
75
|
private renderSelection;
|
|
76
|
+
private renderDragAndDropSelection;
|
|
73
77
|
}
|
|
@@ -23,6 +23,7 @@ import { InsertTableModel } from '../../models/generated/insert-table.model';
|
|
|
23
23
|
import { InsertTabModel } from '../../models/generated/insert-tab.model';
|
|
24
24
|
import { LinkDataModel } from '../../models/generated/link-data.model';
|
|
25
25
|
import { LinkModel } from '../../models/generated/link.model';
|
|
26
|
+
import { MoveRangeModel } from '../../models/generated/move-range.model';
|
|
26
27
|
import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
|
|
27
28
|
import { NumberingModel } from '../../models/generated/numbering.model';
|
|
28
29
|
import { PageType } from '../components/edges/page-type.enum';
|
|
@@ -108,6 +109,10 @@ export declare class EditSession {
|
|
|
108
109
|
insertLink(position: CursorParagraph, linkData: LinkDataModel): CursorParagraph;
|
|
109
110
|
insertTable(position: CursorParagraph, tableModel: InsertTableModel): CursorParagraph;
|
|
110
111
|
insertParagraph(position: CursorParagraph, paragraphModel: InsertParagraphModel): CursorParagraph;
|
|
112
|
+
removeMoveRange(moveModel: MoveRangeModel): RestoreModel;
|
|
113
|
+
restoreMoveRange(restoreModel: RestoreModel, moveModel: MoveRangeModel, _sourceSessionId: number): Range;
|
|
114
|
+
isPositionInRange(position: CursorParagraph, range: Range): boolean;
|
|
115
|
+
createRestoreFromSlice(paragraphStart: number, indexInStart: number, paragraphEnd: number, indexInEnd: number): RestoreModel;
|
|
111
116
|
addComponent<T extends BaseNoderComponent>(customElements: ComponentRef<T>[], model: CustomContent, componentType: Type<T>): void;
|
|
112
117
|
applyToolbarStyles(): void;
|
|
113
118
|
getStyleForCursor(index: number): TextStyleModel[];
|
|
@@ -7,6 +7,7 @@ import { CommandsService } from '../operations/commands.service';
|
|
|
7
7
|
import { CreateEdgesModel } from '../../models/generated/create-edges.model';
|
|
8
8
|
import { DocumentHandler } from '../interaction/document.handler';
|
|
9
9
|
import { DocxModel } from '../../models/generated/docx.model';
|
|
10
|
+
import { DragAndDrop } from '../gadgets/drag-and-drop/drag-and-drop';
|
|
10
11
|
import { EdgeType } from '../components/edges/edge-type.enum';
|
|
11
12
|
import { EditorService } from '../interaction/editor.service';
|
|
12
13
|
import { EditSession } from './edit.session';
|
|
@@ -24,6 +25,7 @@ import { InsertTabModel } from '../../models/generated/insert-tab.model';
|
|
|
24
25
|
import { LinkDataModel } from '../../models/generated/link-data.model';
|
|
25
26
|
import { LinkModel } from '../../models/generated/link.model';
|
|
26
27
|
import { MouseHandler } from '../interaction/mouse.handler';
|
|
28
|
+
import { MoveRangeModel } from '../../models/generated/move-range.model';
|
|
27
29
|
import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
|
|
28
30
|
import { Operation } from '../gadgets/history/operation.type';
|
|
29
31
|
import { OperationHistory } from '../gadgets/history/operation-history';
|
|
@@ -38,6 +40,7 @@ import { RestoreModel } from '../../models/generated/restore.model';
|
|
|
38
40
|
import { SearchOptions } from '../gadgets/search/search';
|
|
39
41
|
import { SearchIteration } from '../gadgets/search/search-iteration.interface';
|
|
40
42
|
import { Selection } from '../positioning/selection';
|
|
43
|
+
import { SessionModel } from '../execution/targeting/session.model';
|
|
41
44
|
import { TargetModel } from '../../models/generated/target.model';
|
|
42
45
|
import { TextStyleModel } from '../../models/generated/text-style.model';
|
|
43
46
|
import { VirtualRenderer } from '../display/virtual.renderer';
|
|
@@ -67,6 +70,7 @@ export declare class Editor {
|
|
|
67
70
|
mouseHandler: MouseHandler;
|
|
68
71
|
inputHandler: InputHandler;
|
|
69
72
|
documentHandler: DocumentHandler;
|
|
73
|
+
dragAndDrop: DragAndDrop;
|
|
70
74
|
subscriptions: Subscription[];
|
|
71
75
|
private search;
|
|
72
76
|
private textInput;
|
|
@@ -132,8 +136,8 @@ export declare class Editor {
|
|
|
132
136
|
saveAddNumberingToHistory(templateLevels: NumberingLevelModel[], startIndex: number, endIndex: number): void;
|
|
133
137
|
saveRemoveNumberingToHistory(startIndex: number, endIndex: number): void;
|
|
134
138
|
private saveApplyImageStyleToHistory;
|
|
139
|
+
saveMoveRangeToHistory(redoModel: MoveRangeModel, sourceSession: SessionModel, sourceRange: Range): void;
|
|
135
140
|
private saveReplaceToHistory;
|
|
136
|
-
private createRestoreFromSlice;
|
|
137
141
|
createCustomElement(data: ElementDataModel): void;
|
|
138
142
|
removeSelected(): void;
|
|
139
143
|
removeParagraphAndSetParagraphToNumbering(): void;
|
|
@@ -150,17 +154,23 @@ export declare class Editor {
|
|
|
150
154
|
onFocus(): void;
|
|
151
155
|
onMouseClick(event: MouseEvent): void;
|
|
152
156
|
onLeftClick(event: MouseEvent): void;
|
|
157
|
+
onSelectionLeftClick(event: MouseEvent): void;
|
|
158
|
+
onShortLeftClick(event: MouseEvent, isSelectionClick?: boolean): void;
|
|
153
159
|
onDoubleClick(event: MouseEvent): void;
|
|
154
160
|
onTripleClick(event: MouseEvent): void;
|
|
155
161
|
onQuadClick(event: MouseEvent): void;
|
|
156
162
|
onMouseWheel(event: WheelEvent): void;
|
|
163
|
+
onDragStart(): void;
|
|
164
|
+
onDragMove(event: MouseEvent): void;
|
|
165
|
+
onDragDrop(sourceSession: SessionModel, sourceRange: Range): void;
|
|
166
|
+
moveRange(model: MoveRangeModel): void;
|
|
157
167
|
getLinkModel(event: MouseEvent): LinkModel;
|
|
158
168
|
setCurrentSession(element: HTMLElement): HTMLElement | null;
|
|
159
169
|
getCustomElement(element: HTMLElement): HTMLElement | null;
|
|
160
170
|
isInsideEdge(element: HTMLElement | null): boolean;
|
|
161
171
|
getParentEdge(element: HTMLElement | null): HTMLElement | null;
|
|
162
172
|
/**
|
|
163
|
-
* Returns the string of text
|
|
173
|
+
* Returns the string of text range.
|
|
164
174
|
*/
|
|
165
175
|
getSelectedText(): string;
|
|
166
176
|
initMainSession(): void;
|
|
@@ -182,6 +192,7 @@ export declare class Editor {
|
|
|
182
192
|
provideTextStyle(component: BaseNoderComponent): void;
|
|
183
193
|
getClickedEdgeType(mousePosition: number): EdgeType | null;
|
|
184
194
|
receiveTextStyleSubscription(): Subscription;
|
|
195
|
+
viewOnlyModeSubscription(): Subscription;
|
|
185
196
|
searchOptionSubscription(): Subscription;
|
|
186
197
|
replaceSubscription(): Subscription;
|
|
187
198
|
setTextStylesSubscription(): Subscription;
|
|
@@ -211,6 +222,8 @@ export declare class Editor {
|
|
|
211
222
|
undoSubscription(): Subscription;
|
|
212
223
|
redoSubscription(): Subscription;
|
|
213
224
|
removeLeftSubscription(): Subscription;
|
|
225
|
+
private dragMoveSubscription;
|
|
226
|
+
private dragDropSubscription;
|
|
214
227
|
private printSubscription;
|
|
215
228
|
private cutSelectedSubscription;
|
|
216
229
|
private copySelectedSubscription;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { Range } from '../../positioning/range';
|
|
3
|
+
import { SessionModel } from '../../execution/targeting/session.model';
|
|
4
|
+
export declare class DragAndDrop {
|
|
5
|
+
private editorContainer;
|
|
6
|
+
onMove$: Subject<MouseEvent>;
|
|
7
|
+
onDrop$: Subject<{
|
|
8
|
+
sourceSession: SessionModel;
|
|
9
|
+
sourceRange: Range;
|
|
10
|
+
}>;
|
|
11
|
+
private isDragging;
|
|
12
|
+
private mouseMove$;
|
|
13
|
+
private mouseUp$;
|
|
14
|
+
private sourceSession;
|
|
15
|
+
private sourceRange;
|
|
16
|
+
constructor(editorContainer: HTMLElement);
|
|
17
|
+
onStart(session: SessionModel, range: Range): void;
|
|
18
|
+
destroyListeners(): void;
|
|
19
|
+
private onEnd;
|
|
20
|
+
private initListeners;
|
|
21
|
+
}
|
|
@@ -9,12 +9,14 @@ import { InsertLinkModel } from '../../../models/generated/insert-link.model';
|
|
|
9
9
|
import { InsertParagraphModel } from '../../../models/generated/insert-paragraph.model';
|
|
10
10
|
import { InsertTableModel } from '../../../models/generated/insert-table.model';
|
|
11
11
|
import { InsertTabModel } from '../../../models/generated/insert-tab.model';
|
|
12
|
+
import { MoveRangeModel } from '../../../models/generated/move-range.model';
|
|
12
13
|
import { NumberingLevelModel } from '../../../models/generated/numbering-level.model';
|
|
13
14
|
import { NumberingModel } from '../../../models/generated/numbering.model';
|
|
14
15
|
import { Operation } from './operation.type';
|
|
15
16
|
import { PageType } from '../../components/edges/page-type.enum';
|
|
16
17
|
import { ParagraphModel } from '../../../models/generated/paragraph.model';
|
|
17
18
|
import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
|
|
19
|
+
import { Range } from '../../positioning/range';
|
|
18
20
|
import { RegulatorService } from '../../execution/regulator.service';
|
|
19
21
|
import { RemoveParagraphAndAddNumberingModel } from '../../../models/generated/remove-paragraph-and-add-numbering.model';
|
|
20
22
|
import { ReplaceModel } from '../../../models/generated/replace.model';
|
|
@@ -51,6 +53,7 @@ export declare class OperationHistory {
|
|
|
51
53
|
pushApplyImageStyle(previous: ImageModel, current: ImageModel): void;
|
|
52
54
|
pushAddNumbering(startIndex: number, endIndex: number, levels: NumberingLevelModel[], paragraphs: ParagraphModel[], numberings: NumberingModel[]): void;
|
|
53
55
|
pushRemoveNumberings(startIndex: number, endIndex: number, numberings: NumberingModel[], paragraphs: ParagraphModel[]): void;
|
|
56
|
+
pushMoveRange(restore: MoveRangeModel, replace: MoveRangeModel, selection: Range): void;
|
|
54
57
|
pushReplace(restore: RestoreModel, replace: ReplaceModel): void;
|
|
55
58
|
pushRemoveParagraphAndSetParagraphToNumbering(restore: RestoreParagraphAndAddNumberingModel, remove: RemoveParagraphAndAddNumberingModel): void;
|
|
56
59
|
pushCreateEdges(pageType: PageType): void;
|
|
@@ -13,6 +13,7 @@ import { InsertTableModel } from '../../../models/generated/insert-table.model';
|
|
|
13
13
|
import { InsertTableRowsModel } from '../../../models/generated/insert-table-rows.model';
|
|
14
14
|
import { InsertTabModel } from '../../../models/generated/insert-tab.model';
|
|
15
15
|
import { InsertTextModel } from '../../../models/generated/insert-text.model';
|
|
16
|
+
import { MoveRangeModel } from '../../../models/generated/move-range.model';
|
|
16
17
|
import { RemoveEdgesModel } from '../../../models/generated/remove-edges.model';
|
|
17
18
|
import { RemoveNumberingsModel } from '../../../models/generated/remove-numberings.model';
|
|
18
19
|
import { RemoveParagraphAndAddNumberingModel } from '../../../models/generated/remove-paragraph-and-add-numbering.model';
|
|
@@ -26,4 +27,4 @@ import { RestoreParagraphAndAddNumberingModel } from '../../../models/generated/
|
|
|
26
27
|
import { RestoreParagraphStylesModel } from '../../../models/generated/restore-paragraph-styles.model';
|
|
27
28
|
import { RestoreTableModel } from '../../../models/generated/restore-table.model';
|
|
28
29
|
import { RestoreTextStylesModel } from '../../../models/generated/restore-text-styles.model';
|
|
29
|
-
export type Operation = InsertTextModel | DeleteModel | InsertStyledTextModel | RestoreModel | ApplyTextStyleModel | RestoreTextStylesModel | RestoreParagraphStylesModel | InsertElementModel | InsertBreakModel | ApplyImageStyleModel | AddNumberingModel | RestoreNumberingsModel | InsertParagraphModel | InsertTabModel | InsertTableColumnsModel | InsertTableRowsModel | RemoveTableColumnsModel | RemoveTableRowsModel | ResizeTableColumnsModel | RestoreTableModel | InsertTableModel | InsertImageModel | RemoveNumberingsModel | ReplaceModel | CreateEdgesModel | RemoveEdgesModel | RemoveParagraphAndAddNumberingModel | RestoreParagraphAndAddNumberingModel;
|
|
30
|
+
export type Operation = InsertTextModel | DeleteModel | InsertStyledTextModel | RestoreModel | ApplyTextStyleModel | RestoreTextStylesModel | RestoreParagraphStylesModel | InsertElementModel | InsertBreakModel | ApplyImageStyleModel | AddNumberingModel | RestoreNumberingsModel | InsertParagraphModel | InsertTabModel | InsertTableColumnsModel | InsertTableRowsModel | RemoveTableColumnsModel | RemoveTableRowsModel | ResizeTableColumnsModel | RestoreTableModel | InsertTableModel | InsertImageModel | RemoveNumberingsModel | ReplaceModel | MoveRangeModel | CreateEdgesModel | RemoveEdgesModel | RemoveParagraphAndAddNumberingModel | RestoreParagraphAndAddNumberingModel;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ContentsInterface } from '../../../editor/content/contents.interface';
|
|
2
|
+
import { RestoreModel } from '../../../models/generated/restore.model';
|
|
3
|
+
export declare class ContentsOperationsHelper {
|
|
4
|
+
static GetRestoreFromSlice(contents: ContentsInterface, startIndex: number, count: number): RestoreModel;
|
|
5
|
+
}
|
|
@@ -9,6 +9,7 @@ import { ImageDataModel } from '../../models/generated/image-data.model';
|
|
|
9
9
|
import { InsertElementModel } from '../../models/generated/insert-element.model';
|
|
10
10
|
import { InsertParagraphModel } from '../../models/generated/insert-paragraph.model';
|
|
11
11
|
import { InsertTableModel } from '../../models/generated/insert-table.model';
|
|
12
|
+
import { MoveRangeModel } from '../../models/generated/move-range.model';
|
|
12
13
|
import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
|
|
13
14
|
import { NumberingModel } from '../../models/generated/numbering.model';
|
|
14
15
|
import { PageType } from '../components/edges/page-type.enum';
|
|
@@ -22,7 +23,9 @@ import { TableModel } from '../../models/generated/table.model';
|
|
|
22
23
|
import { TextStyleModel } from '../../models/generated/text-style.model';
|
|
23
24
|
export declare class OperationsHelper {
|
|
24
25
|
static applyOperations(document: DocxModel, commands: CommandModel[]): void;
|
|
25
|
-
static
|
|
26
|
+
static moveRange(document: DocxModel, model: MoveRangeModel): void;
|
|
27
|
+
static removeMoveRange(sourceContents: ContentsInterface, model: MoveRangeModel): RestoreModel;
|
|
28
|
+
static restoreMoveRange(targetContents: ContentsInterface, model: MoveRangeModel, restoreContents: RestoreModel): number;
|
|
26
29
|
static getContentWidth(document: DocxModel, contents: ContentsInterface): number;
|
|
27
30
|
static insertText(document: ContentsInterface, text: string, index: number): void;
|
|
28
31
|
static insertParagraph(document: ContentsInterface, index: number, model: InsertParagraphModel, contentWidth: number): string;
|
|
@@ -8,6 +8,7 @@ import { InsertLinkModel } from '../../models/generated/insert-link.model';
|
|
|
8
8
|
import { InsertParagraphModel } from '../../models/generated/insert-paragraph.model';
|
|
9
9
|
import { InsertTableModel } from '../../models/generated/insert-table.model';
|
|
10
10
|
import { InsertTabModel } from '../../models/generated/insert-tab.model';
|
|
11
|
+
import { MoveRangeModel } from '../../models/generated/move-range.model';
|
|
11
12
|
import { NumberingLevelModel } from '../../models/generated/numbering-level.model';
|
|
12
13
|
import { ParagraphModel } from '../../models/generated/paragraph.model';
|
|
13
14
|
import { ParagraphStyleModel } from '../../models/generated/paragraph-style.model';
|
|
@@ -46,6 +47,7 @@ export declare class SaveCommandsHelper {
|
|
|
46
47
|
static getRestoreParagraphStylesCommand(paragraphs: ParagraphModel[], targets: TargetModel[]): CommandModel;
|
|
47
48
|
static getRestoreCommand(restoreModel: RestoreModel, targets: TargetModel[]): CommandModel;
|
|
48
49
|
static getRestoreTableCommand(restoreTable: RestoreTableModel, targets: TargetModel[]): CommandModel;
|
|
50
|
+
static getMoveRangeCommand(model: MoveRangeModel, targets: TargetModel[]): CommandModel;
|
|
49
51
|
static getReplaceCommand(model: ReplaceModel, targets: TargetModel[]): CommandModel;
|
|
50
52
|
static getRemoveParagraphAndAddNumberingCommand(model: RemoveParagraphAndAddNumberingModel, targets: TargetModel[]): CommandModel;
|
|
51
53
|
static getRestoreParagraphAndAddNumberingCommand(model: RestoreParagraphAndAddNumberingModel, targets: TargetModel[]): CommandModel;
|
|
@@ -2,5 +2,7 @@ import { ContentsInterface } from '../content/contents.interface';
|
|
|
2
2
|
import { DocxModel } from '../../models/generated/docx.model';
|
|
3
3
|
import { TargetModel } from '../../models/generated/target.model';
|
|
4
4
|
export declare class TargetOperationsHelper {
|
|
5
|
-
static getContents(
|
|
5
|
+
static getContents(document: DocxModel, targets: TargetModel[]): ContentsInterface;
|
|
6
|
+
static isSame(first: TargetModel[], second: TargetModel[]): boolean;
|
|
7
|
+
static getTargetContents(contents: ContentsInterface, target: TargetModel, document: DocxModel): ContentsInterface;
|
|
6
8
|
}
|
|
@@ -15,6 +15,7 @@ import { InsertTableModel } from './insert-table.model';
|
|
|
15
15
|
import { InsertTableRowsModel } from './insert-table-rows.model';
|
|
16
16
|
import { InsertTabModel } from './insert-tab.model';
|
|
17
17
|
import { InsertTextModel } from './insert-text.model';
|
|
18
|
+
import { MoveRangeModel } from './move-range.model';
|
|
18
19
|
import { RemoveEdgesModel } from './remove-edges.model';
|
|
19
20
|
import { RemoveNumberingsModel } from './remove-numberings.model';
|
|
20
21
|
import { RemoveParagraphAndAddNumberingModel } from './remove-paragraph-and-add-numbering.model';
|
|
@@ -49,6 +50,7 @@ export declare class CommandModel {
|
|
|
49
50
|
insertTableColumns: InsertTableColumnsModel;
|
|
50
51
|
insertTableRows: InsertTableRowsModel;
|
|
51
52
|
insertText: InsertTextModel;
|
|
53
|
+
moveRange: MoveRangeModel;
|
|
52
54
|
removeEdges: RemoveEdgesModel;
|
|
53
55
|
removeNumberings: RemoveNumberingsModel;
|
|
54
56
|
removeParagraphAndAddNumbering: RemoveParagraphAndAddNumberingModel;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TargetModel } from './target.model';
|
|
2
|
+
export declare class MoveRangeModel {
|
|
3
|
+
sourceCount: number;
|
|
4
|
+
sourceStartIndex: number;
|
|
5
|
+
sourceTargets: TargetModel[];
|
|
6
|
+
targetIndex: number;
|
|
7
|
+
targetTargets: TargetModel[];
|
|
8
|
+
constructor(fields?: Partial<MoveRangeModel>);
|
|
9
|
+
}
|
package/package.json
CHANGED
|
@@ -51,6 +51,10 @@ div.ngx-colors-overlay.noder-color-picker-overlay .opened .colors {
|
|
|
51
51
|
text-align: left;
|
|
52
52
|
width: 100%;
|
|
53
53
|
height: 100%;
|
|
54
|
+
|
|
55
|
+
&.drag-and-drop-progress {
|
|
56
|
+
cursor: url('../../assets/drag-and-drop-cursor.png') 0 0, move;
|
|
57
|
+
}
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
.noder-scroller {
|
|
@@ -59,9 +63,13 @@ div.ngx-colors-overlay.noder-color-picker-overlay .opened .colors {
|
|
|
59
63
|
top: 0;
|
|
60
64
|
bottom: 0;
|
|
61
65
|
user-select: none;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.edit-container:not(.drag-and-drop-progress) .noder-scroller {
|
|
62
69
|
cursor: text;
|
|
63
70
|
}
|
|
64
71
|
|
|
72
|
+
|
|
65
73
|
.noder-scrollbar {
|
|
66
74
|
overflow: hidden scroll;
|
|
67
75
|
contain: strict;
|
|
@@ -266,8 +274,13 @@ div.ngx-colors-overlay.noder-color-picker-overlay .opened .colors {
|
|
|
266
274
|
z-index: 5;
|
|
267
275
|
}
|
|
268
276
|
|
|
269
|
-
.noder-selection-layer
|
|
270
|
-
|
|
277
|
+
.noder-selection-layer {
|
|
278
|
+
&.drag-and-drop-selection,
|
|
279
|
+
&.text-selection {
|
|
280
|
+
.noder-selection {
|
|
281
|
+
background-color: rgb(94, 168, 247, 0.4);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
271
284
|
}
|
|
272
285
|
|
|
273
286
|
.noder-selection-layer.notes-highlight .noder-selection {
|