@hufe921/canvas-editor 0.9.91 → 0.9.93
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/CHANGELOG.md +54 -0
- package/dist/canvas-editor.es.js +1535 -1129
- package/dist/canvas-editor.es.js.map +1 -1
- package/dist/canvas-editor.umd.js +33 -33
- package/dist/canvas-editor.umd.js.map +1 -1
- package/dist/src/editor/core/actuator/Actuator.d.ts +7 -0
- package/dist/src/editor/core/actuator/handlers/positionContextChange.d.ts +3 -0
- package/dist/src/editor/core/command/Command.d.ts +1 -0
- package/dist/src/editor/core/command/CommandAdapt.d.ts +3 -2
- package/dist/src/editor/core/draw/Draw.d.ts +6 -0
- package/dist/src/editor/core/draw/control/date/DateControl.d.ts +1 -0
- package/dist/src/editor/core/draw/control/select/SelectControl.d.ts +1 -0
- package/dist/src/editor/core/draw/control/text/TextControl.d.ts +1 -0
- package/dist/src/editor/core/draw/particle/date/DateParticle.d.ts +1 -0
- package/dist/src/editor/core/draw/particle/table/TableOperate.d.ts +28 -0
- package/dist/src/editor/core/draw/particle/table/TableTool.d.ts +5 -0
- package/dist/src/editor/core/event/GlobalEvent.d.ts +1 -0
- package/dist/src/editor/core/position/Position.d.ts +6 -1
- package/dist/src/editor/dataset/constant/ContextMenu.d.ts +1 -0
- package/dist/src/editor/dataset/enum/Common.d.ts +1 -0
- package/dist/src/editor/dataset/enum/Editor.d.ts +2 -1
- package/dist/src/editor/interface/Catalog.d.ts +1 -0
- package/dist/src/editor/interface/Control.d.ts +2 -1
- package/dist/src/editor/interface/Draw.d.ts +7 -1
- package/dist/src/editor/interface/Editor.d.ts +4 -1
- package/dist/src/editor/interface/Element.d.ts +1 -0
- package/dist/src/editor/interface/EventBus.d.ts +2 -1
- package/dist/src/editor/interface/Listener.d.ts +6 -0
- package/dist/src/editor/interface/Position.d.ts +11 -3
- package/dist/src/editor/interface/Range.d.ts +2 -0
- package/dist/src/editor/interface/Row.d.ts +1 -0
- package/dist/src/editor/interface/table/Td.d.ts +4 -0
- package/dist/src/editor/interface/table/Tr.d.ts +2 -0
- package/dist/src/editor/utils/element.d.ts +4 -1
- package/dist/src/editor/utils/index.d.ts +2 -0
- package/package.json +1 -1
|
@@ -93,6 +93,7 @@ export declare class Command {
|
|
|
93
93
|
executeInsertControl: CommandAdapt['insertControl'];
|
|
94
94
|
executeUpdateOptions: CommandAdapt['updateOptions'];
|
|
95
95
|
executeInsertTitle: CommandAdapt['insertTitle'];
|
|
96
|
+
executeFocus: CommandAdapt['focus'];
|
|
96
97
|
getCatalog: CommandAdapt['getCatalog'];
|
|
97
98
|
getImage: CommandAdapt['getImage'];
|
|
98
99
|
getOptions: CommandAdapt['getOptions'];
|
|
@@ -9,7 +9,7 @@ import { ICatalog } from '../../interface/Catalog';
|
|
|
9
9
|
import { DeepRequired } from '../../interface/Common';
|
|
10
10
|
import { IGetControlValueOption, IGetControlValueResult, ILocationControlOption, ISetControlExtensionOption, ISetControlHighlightOption, ISetControlProperties, ISetControlValueOption } from '../../interface/Control';
|
|
11
11
|
import { IAppendElementListOption, IDrawImagePayload, IForceUpdateOption, IGetImageOption, IGetValueOption, IPainterOption } from '../../interface/Draw';
|
|
12
|
-
import { IEditorData, IEditorHTML, IEditorOption, IEditorResult, IEditorText, ISetValueOption, IUpdateOption } from '../../interface/Editor';
|
|
12
|
+
import { IEditorData, IEditorHTML, IEditorOption, IEditorResult, IEditorText, IFocusOption, ISetValueOption, IUpdateOption } from '../../interface/Editor';
|
|
13
13
|
import { IElement, IUpdateElementByIdOption } from '../../interface/Element';
|
|
14
14
|
import { IPasteOption, IPositionContextByEvent } from '../../interface/Event';
|
|
15
15
|
import { IMargin } from '../../interface/Margin';
|
|
@@ -25,13 +25,13 @@ export declare class CommandAdapt {
|
|
|
25
25
|
private position;
|
|
26
26
|
private historyManager;
|
|
27
27
|
private canvasEvent;
|
|
28
|
-
private tableTool;
|
|
29
28
|
private options;
|
|
30
29
|
private control;
|
|
31
30
|
private workerManager;
|
|
32
31
|
private searchManager;
|
|
33
32
|
private i18n;
|
|
34
33
|
private zone;
|
|
34
|
+
private tableOperate;
|
|
35
35
|
constructor(draw: Draw);
|
|
36
36
|
mode(payload: EditorMode): void;
|
|
37
37
|
cut(): void;
|
|
@@ -149,4 +149,5 @@ export declare class CommandAdapt {
|
|
|
149
149
|
getTitleValue(payload: IGetTitleValueOption): IGetTitleValueResult | null;
|
|
150
150
|
getPositionContextByEvent(evt: MouseEvent): IPositionContextByEvent | null;
|
|
151
151
|
insertTitle(payload: IElement): void;
|
|
152
|
+
focus(payload?: IFocusOption): void;
|
|
152
153
|
}
|
|
@@ -35,6 +35,8 @@ import { EventBusMap } from '../../interface/EventBus';
|
|
|
35
35
|
import { Group } from './interactive/Group';
|
|
36
36
|
import { Override } from '../override/Override';
|
|
37
37
|
import { LineBreakParticle } from './particle/LineBreakParticle';
|
|
38
|
+
import { ITd } from '../../interface/table/Td';
|
|
39
|
+
import { TableOperate } from './particle/table/TableOperate';
|
|
38
40
|
export declare class Draw {
|
|
39
41
|
private container;
|
|
40
42
|
private pageContainer;
|
|
@@ -69,6 +71,7 @@ export declare class Draw {
|
|
|
69
71
|
private textParticle;
|
|
70
72
|
private tableParticle;
|
|
71
73
|
private tableTool;
|
|
74
|
+
private tableOperate;
|
|
72
75
|
private pageNumber;
|
|
73
76
|
private lineNumber;
|
|
74
77
|
private waterMark;
|
|
@@ -108,6 +111,7 @@ export declare class Draw {
|
|
|
108
111
|
setMode(payload: EditorMode): void;
|
|
109
112
|
isReadonly(): boolean;
|
|
110
113
|
isDisabled(): boolean;
|
|
114
|
+
isDesignMode(): boolean;
|
|
111
115
|
getOriginalWidth(): number;
|
|
112
116
|
getOriginalHeight(): number;
|
|
113
117
|
getWidth(): number;
|
|
@@ -159,6 +163,7 @@ export declare class Draw {
|
|
|
159
163
|
getOriginalElementList(): IElement[];
|
|
160
164
|
getOriginalMainElementList(): IElement[];
|
|
161
165
|
getFooterElementList(): IElement[];
|
|
166
|
+
getTd(): ITd | null;
|
|
162
167
|
insertElementList(payload: IElement[]): void;
|
|
163
168
|
appendElementList(elementList: IElement[], options?: IAppendElementListOption): void;
|
|
164
169
|
spliceElementList(elementList: IElement[], start: number, deleteCount: number, ...items: IElement[]): void;
|
|
@@ -171,6 +176,7 @@ export declare class Draw {
|
|
|
171
176
|
getPreviewer(): Previewer;
|
|
172
177
|
getImageParticle(): ImageParticle;
|
|
173
178
|
getTableTool(): TableTool;
|
|
179
|
+
getTableOperate(): TableOperate;
|
|
174
180
|
getTableParticle(): TableParticle;
|
|
175
181
|
getHeader(): Header;
|
|
176
182
|
getFooter(): Footer;
|
|
@@ -4,6 +4,7 @@ import { Control } from '../Control';
|
|
|
4
4
|
export declare class TextControl implements IControlInstance {
|
|
5
5
|
private element;
|
|
6
6
|
private control;
|
|
7
|
+
private options;
|
|
7
8
|
constructor(element: IElement, control: Control);
|
|
8
9
|
setElement(element: IElement): void;
|
|
9
10
|
getElement(): IElement;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TableBorder, VerticalAlign } from '../../../..';
|
|
2
|
+
import { TdBorder, TdSlash } from '../../../../dataset/enum/table/Table';
|
|
3
|
+
import { Draw } from '../../Draw';
|
|
4
|
+
export declare class TableOperate {
|
|
5
|
+
private draw;
|
|
6
|
+
private range;
|
|
7
|
+
private position;
|
|
8
|
+
private tableTool;
|
|
9
|
+
private tableParticle;
|
|
10
|
+
private options;
|
|
11
|
+
constructor(draw: Draw);
|
|
12
|
+
insertTable(row: number, col: number): void;
|
|
13
|
+
insertTableTopRow(): void;
|
|
14
|
+
insertTableBottomRow(): void;
|
|
15
|
+
insertTableLeftCol(): void;
|
|
16
|
+
insertTableRightCol(): void;
|
|
17
|
+
deleteTableRow(): void;
|
|
18
|
+
deleteTableCol(): void;
|
|
19
|
+
deleteTable(): void;
|
|
20
|
+
mergeTableCell(): void;
|
|
21
|
+
cancelMergeTableCell(): void;
|
|
22
|
+
tableTdVerticalAlign(payload: VerticalAlign): void;
|
|
23
|
+
tableBorderType(payload: TableBorder): void;
|
|
24
|
+
tableTdBorderType(payload: TdBorder): void;
|
|
25
|
+
tableTdSlashType(payload: TdSlash): void;
|
|
26
|
+
tableTdBackgroundColor(payload: string): void;
|
|
27
|
+
tableSelectAll(): void;
|
|
28
|
+
}
|
|
@@ -2,6 +2,9 @@ import { Draw } from '../../Draw';
|
|
|
2
2
|
export declare class TableTool {
|
|
3
3
|
private readonly MIN_TD_WIDTH;
|
|
4
4
|
private readonly ROW_COL_OFFSET;
|
|
5
|
+
private readonly ROW_COL_QUICK_WIDTH;
|
|
6
|
+
private readonly ROW_COL_QUICK_OFFSET;
|
|
7
|
+
private readonly ROW_COL_QUICK_POSITION;
|
|
5
8
|
private readonly BORDER_VALUE;
|
|
6
9
|
private draw;
|
|
7
10
|
private canvas;
|
|
@@ -9,6 +12,8 @@ export declare class TableTool {
|
|
|
9
12
|
private position;
|
|
10
13
|
private container;
|
|
11
14
|
private toolRowContainer;
|
|
15
|
+
private toolRowAddBtn;
|
|
16
|
+
private toolColAddBtn;
|
|
12
17
|
private toolColContainer;
|
|
13
18
|
private toolBorderContainer;
|
|
14
19
|
private anchorLine;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IComputePageRowPositionPayload, IComputePageRowPositionResult, IComputeRowPositionPayload, IFloatPosition, IGetFloatPositionByXYPayload } from '../../interface/Position';
|
|
1
|
+
import { IComputePageRowPositionPayload, IComputePageRowPositionResult, IComputeRowPositionPayload, IFloatPosition, IGetFloatPositionByXYPayload, ISetSurroundPositionPayload } from '../../interface/Position';
|
|
2
2
|
import { IElement, IElementPosition } from '../../interface/Element';
|
|
3
3
|
import { ICurrentPosition, IGetPositionByXYPayload, IPositionContext } from '../../interface/Position';
|
|
4
4
|
import { Draw } from '../draw/Draw';
|
|
@@ -8,6 +8,7 @@ export declare class Position {
|
|
|
8
8
|
private positionList;
|
|
9
9
|
private floatPositionList;
|
|
10
10
|
private draw;
|
|
11
|
+
private eventBus;
|
|
11
12
|
private options;
|
|
12
13
|
constructor(draw: Draw);
|
|
13
14
|
getFloatPositionList(): IFloatPosition[];
|
|
@@ -29,4 +30,8 @@ export declare class Position {
|
|
|
29
30
|
getPositionByXY(payload: IGetPositionByXYPayload): ICurrentPosition;
|
|
30
31
|
getFloatPositionByXY(payload: IGetFloatPositionByXYPayload): ICurrentPosition | void;
|
|
31
32
|
adjustPositionContext(payload: IGetPositionByXYPayload): ICurrentPosition | null;
|
|
33
|
+
setSurroundPosition(payload: ISetSurroundPositionPayload): {
|
|
34
|
+
x: number;
|
|
35
|
+
rowIncreaseWidth: number;
|
|
36
|
+
};
|
|
32
37
|
}
|
|
@@ -70,6 +70,7 @@ export interface IControlOption {
|
|
|
70
70
|
postfix?: string;
|
|
71
71
|
borderWidth?: number;
|
|
72
72
|
borderColor?: string;
|
|
73
|
+
activeBackgroundColor?: string;
|
|
73
74
|
}
|
|
74
75
|
export interface IControlInitOption {
|
|
75
76
|
index: number;
|
|
@@ -122,7 +123,7 @@ export type ISetControlProperties = {
|
|
|
122
123
|
conceptId?: string;
|
|
123
124
|
properties: Partial<Omit<IControl, 'value'>>;
|
|
124
125
|
};
|
|
125
|
-
export type IRepaintControlOption = Pick<IDrawOption, 'curIndex' | 'isCompute' | 'isSubmitHistory'>;
|
|
126
|
+
export type IRepaintControlOption = Pick<IDrawOption, 'curIndex' | 'isCompute' | 'isSubmitHistory' | 'isSetCursor'>;
|
|
126
127
|
export interface INextControlContext {
|
|
127
128
|
positionContext: IPositionContext;
|
|
128
129
|
nextIndex: number;
|
|
@@ -33,7 +33,7 @@ export interface IDrawRowPayload {
|
|
|
33
33
|
}
|
|
34
34
|
export interface IDrawFloatPayload {
|
|
35
35
|
pageNo: number;
|
|
36
|
-
|
|
36
|
+
imgDisplays: ImageDisplay[];
|
|
37
37
|
}
|
|
38
38
|
export interface IDrawPagePayload {
|
|
39
39
|
elementList: IElement[];
|
|
@@ -58,5 +58,11 @@ export interface IGetImageOption {
|
|
|
58
58
|
export interface IComputeRowListPayload {
|
|
59
59
|
innerWidth: number;
|
|
60
60
|
elementList: IElement[];
|
|
61
|
+
startX?: number;
|
|
62
|
+
startY?: number;
|
|
63
|
+
isFromTable?: boolean;
|
|
61
64
|
isPagingMode?: boolean;
|
|
65
|
+
pageHeight?: number;
|
|
66
|
+
mainOuterHeight?: number;
|
|
67
|
+
surroundElementList?: IElement[];
|
|
62
68
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IElement } from '..';
|
|
1
|
+
import { IElement, LocationPosition } from '..';
|
|
2
2
|
import { EditorMode, PageMode, PaperDirection, RenderMode, WordBreak } from '../dataset/enum/Editor';
|
|
3
3
|
import { IBackgroundOption } from './Background';
|
|
4
4
|
import { ICheckboxOption } from './Checkbox';
|
|
@@ -101,3 +101,6 @@ export type IUpdateOption = Omit<IEditorOption, 'mode' | 'width' | 'height' | 's
|
|
|
101
101
|
export interface ISetValueOption {
|
|
102
102
|
isSetCursor?: boolean;
|
|
103
103
|
}
|
|
104
|
+
export interface IFocusOption {
|
|
105
|
+
position?: LocationPosition;
|
|
106
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IContentChange, IControlChange, IIntersectionPageNoChange, IMouseEventChange, IPageModeChange, IPageScaleChange, IPageSizeChange, IRangeStyleChange, ISaved, IVisiblePageNoListChange, IZoneChange } from './Listener';
|
|
1
|
+
import { IContentChange, IControlChange, IIntersectionPageNoChange, IMouseEventChange, IPageModeChange, IPageScaleChange, IPageSizeChange, IPositionContextChange, IRangeStyleChange, ISaved, IVisiblePageNoListChange, IZoneChange } from './Listener';
|
|
2
2
|
export interface EventBusMap {
|
|
3
3
|
rangeStyleChange: IRangeStyleChange;
|
|
4
4
|
visiblePageNoListChange: IVisiblePageNoListChange;
|
|
@@ -13,4 +13,5 @@ export interface EventBusMap {
|
|
|
13
13
|
mousemove: IMouseEventChange;
|
|
14
14
|
mouseleave: IMouseEventChange;
|
|
15
15
|
mouseenter: IMouseEventChange;
|
|
16
|
+
positionContextChange: IPositionContextChange;
|
|
16
17
|
}
|
|
@@ -2,6 +2,7 @@ import { EditorZone, ElementType, ListStyle, ListType, PageMode, TitleLevel } fr
|
|
|
2
2
|
import { RowFlex } from '../dataset/enum/Row';
|
|
3
3
|
import { IControl } from './Control';
|
|
4
4
|
import { IEditorResult } from './Editor';
|
|
5
|
+
import { IPositionContext } from './Position';
|
|
5
6
|
import { ITextDecoration } from './Text';
|
|
6
7
|
export interface IRangeStyle {
|
|
7
8
|
type: ElementType | null;
|
|
@@ -37,3 +38,8 @@ export type IControlChange = (payload: IControl | null) => void;
|
|
|
37
38
|
export type IPageModeChange = (payload: PageMode) => void;
|
|
38
39
|
export type IZoneChange = (payload: EditorZone) => void;
|
|
39
40
|
export type IMouseEventChange = (evt: MouseEvent) => void;
|
|
41
|
+
export interface IPositionContextChangePayload {
|
|
42
|
+
value: IPositionContext;
|
|
43
|
+
oldValue: IPositionContext;
|
|
44
|
+
}
|
|
45
|
+
export type IPositionContextChange = (payload: IPositionContextChangePayload) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IElement, ImageDisplay, IRange } from '..';
|
|
2
2
|
import { EditorZone } from '../dataset/enum/Editor';
|
|
3
|
-
import { IElementPosition } from './Element';
|
|
4
|
-
import { IRow } from './Row';
|
|
3
|
+
import { IElementFillRect, IElementPosition } from './Element';
|
|
4
|
+
import { IRow, IRowElement } from './Row';
|
|
5
5
|
import { ITd } from './table/Td';
|
|
6
6
|
export interface ICurrentPosition {
|
|
7
7
|
index: number;
|
|
@@ -33,7 +33,7 @@ export interface IGetPositionByXYPayload {
|
|
|
33
33
|
positionList?: IElementPosition[];
|
|
34
34
|
}
|
|
35
35
|
export type IGetFloatPositionByXYPayload = IGetPositionByXYPayload & {
|
|
36
|
-
|
|
36
|
+
imgDisplays: ImageDisplay[];
|
|
37
37
|
};
|
|
38
38
|
export interface IPositionContext {
|
|
39
39
|
isTable: boolean;
|
|
@@ -90,3 +90,11 @@ export interface ILocationPosition {
|
|
|
90
90
|
range: IRange;
|
|
91
91
|
positionContext: IPositionContext;
|
|
92
92
|
}
|
|
93
|
+
export interface ISetSurroundPositionPayload {
|
|
94
|
+
row: IRow;
|
|
95
|
+
rowElement: IRowElement;
|
|
96
|
+
rowElementRect: IElementFillRect;
|
|
97
|
+
pageNo: number;
|
|
98
|
+
availableWidth: number;
|
|
99
|
+
surroundElementList: IElement[];
|
|
100
|
+
}
|
|
@@ -28,6 +28,8 @@ export type RangeContext = {
|
|
|
28
28
|
tableElement: IElement | null;
|
|
29
29
|
selectionText: string | null;
|
|
30
30
|
selectionElementList: IElement[];
|
|
31
|
+
titleId: string | null;
|
|
32
|
+
titleStartPageNo: number | null;
|
|
31
33
|
};
|
|
32
34
|
export interface IRangeParagraphInfo {
|
|
33
35
|
elementList: IElement[];
|
|
@@ -5,6 +5,8 @@ import { IRow } from '../Row';
|
|
|
5
5
|
export interface ITd {
|
|
6
6
|
conceptId?: string;
|
|
7
7
|
id?: string;
|
|
8
|
+
extension?: unknown;
|
|
9
|
+
externalId?: string;
|
|
8
10
|
x?: number;
|
|
9
11
|
y?: number;
|
|
10
12
|
width?: number;
|
|
@@ -28,4 +30,6 @@ export interface ITd {
|
|
|
28
30
|
mainHeight?: number;
|
|
29
31
|
realHeight?: number;
|
|
30
32
|
realMinHeight?: number;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
deletable?: boolean;
|
|
31
35
|
}
|
|
@@ -22,7 +22,8 @@ export declare function convertRowFlexToJustifyContent(rowFlex: RowFlex): "cente
|
|
|
22
22
|
export declare function isTextLikeElement(element: IElement): boolean;
|
|
23
23
|
export declare function getAnchorElement(elementList: IElement[], anchorIndex: number): IElement | null;
|
|
24
24
|
export interface IFormatElementContextOption {
|
|
25
|
-
isBreakWhenWrap
|
|
25
|
+
isBreakWhenWrap?: boolean;
|
|
26
|
+
editorOptions?: DeepRequired<IEditorOption>;
|
|
26
27
|
}
|
|
27
28
|
export declare function formatElementContext(sourceElementList: IElement[], formatElementList: IElement[], anchorIndex: number, options?: IFormatElementContextOption): void;
|
|
28
29
|
export declare function convertElementToDom(element: IElement, options: DeepRequired<IEditorOption>): HTMLElement;
|
|
@@ -42,4 +43,6 @@ export declare function getTextFromElementList(elementList: IElement[]): string;
|
|
|
42
43
|
export declare function getSlimCloneElementList(elementList: IElement[]): IElement[];
|
|
43
44
|
export declare function getIsBlockElement(element?: IElement): boolean;
|
|
44
45
|
export declare function replaceHTMLElementTag(oldDom: HTMLElement, tagName: keyof HTMLElementTagNameMap): HTMLElement;
|
|
46
|
+
export declare function pickSurroundElementList(elementList: IElement[]): IElement[];
|
|
47
|
+
export declare function deleteSurroundElementList(elementList: IElement[], pageNo: number): void;
|
|
45
48
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IElementFillRect } from '../interface/Element';
|
|
1
2
|
export declare function debounce<T extends unknown[]>(func: (...arg: T) => unknown, delay: number): (this: unknown, ...args: T) => void;
|
|
2
3
|
export declare function throttle<T extends unknown[]>(func: (...arg: T) => unknown, delay: number): (this: unknown, ...args: T) => void;
|
|
3
4
|
export declare function deepCloneOmitKeys<T, K>(obj: T, omitKeys: (keyof K)[]): T;
|
|
@@ -20,3 +21,4 @@ export declare function convertStringToBase64(input: string): string;
|
|
|
20
21
|
export declare function findScrollContainer(element: HTMLElement): HTMLElement;
|
|
21
22
|
export declare function isArrayEqual(arr1: unknown[], arr2: unknown[]): boolean;
|
|
22
23
|
export declare function isObjectEqual(obj1: unknown, obj2: unknown): boolean;
|
|
24
|
+
export declare function isRectIntersect(rect1: IElementFillRect, rect2: IElementFillRect): boolean;
|