@hufe921/canvas-editor 0.9.92 → 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.
@@ -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;
@@ -36,6 +36,7 @@ import { Group } from './interactive/Group';
36
36
  import { Override } from '../override/Override';
37
37
  import { LineBreakParticle } from './particle/LineBreakParticle';
38
38
  import { ITd } from '../../interface/table/Td';
39
+ import { TableOperate } from './particle/table/TableOperate';
39
40
  export declare class Draw {
40
41
  private container;
41
42
  private pageContainer;
@@ -70,6 +71,7 @@ export declare class Draw {
70
71
  private textParticle;
71
72
  private tableParticle;
72
73
  private tableTool;
74
+ private tableOperate;
73
75
  private pageNumber;
74
76
  private lineNumber;
75
77
  private waterMark;
@@ -174,6 +176,7 @@ export declare class Draw {
174
176
  getPreviewer(): Previewer;
175
177
  getImageParticle(): ImageParticle;
176
178
  getTableTool(): TableTool;
179
+ getTableOperate(): TableOperate;
177
180
  getTableParticle(): TableParticle;
178
181
  getHeader(): Header;
179
182
  getFooter(): Footer;
@@ -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;
@@ -11,6 +11,7 @@ export declare class GlobalEvent {
11
11
  private hyperlinkParticle;
12
12
  private control;
13
13
  private dateParticle;
14
+ private imageParticle;
14
15
  private dprMediaQueryList;
15
16
  constructor(draw: Draw, canvasEvent: CanvasEvent);
16
17
  register(): void;
@@ -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';
@@ -30,4 +30,8 @@ export declare class Position {
30
30
  getPositionByXY(payload: IGetPositionByXYPayload): ICurrentPosition;
31
31
  getFloatPositionByXY(payload: IGetFloatPositionByXYPayload): ICurrentPosition | void;
32
32
  adjustPositionContext(payload: IGetPositionByXYPayload): ICurrentPosition | null;
33
+ setSurroundPosition(payload: ISetSurroundPositionPayload): {
34
+ x: number;
35
+ rowIncreaseWidth: number;
36
+ };
33
37
  }
@@ -23,6 +23,7 @@ export declare const INTERNAL_CONTEXT_MENU_KEY: {
23
23
  TEXT_WRAP: string;
24
24
  TEXT_WRAP_EMBED: string;
25
25
  TEXT_WRAP_UP_DOWN: string;
26
+ TEXT_WRAP_SURROUND: string;
26
27
  TEXT_WRAP_FLOAT_TOP: string;
27
28
  TEXT_WRAP_FLOAT_BOTTOM: string;
28
29
  };
@@ -10,6 +10,7 @@ export declare enum NumberType {
10
10
  export declare enum ImageDisplay {
11
11
  INLINE = "inline",
12
12
  BLOCK = "block",
13
+ SURROUND = "surround",
13
14
  FLOAT_TOP = "float-top",
14
15
  FLOAT_BOTTOM = "float-bottom"
15
16
  }
@@ -3,6 +3,7 @@ export interface ICatalogItem {
3
3
  id: string;
4
4
  name: string;
5
5
  level: TitleLevel;
6
+ pageNo: number;
6
7
  subCatalog: ICatalogItem[];
7
8
  }
8
9
  export type ICatalog = ICatalogItem[];
@@ -33,7 +33,7 @@ export interface IDrawRowPayload {
33
33
  }
34
34
  export interface IDrawFloatPayload {
35
35
  pageNo: number;
36
- imgDisplay: ImageDisplay;
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
  }
@@ -100,6 +100,7 @@ export interface IImageElement {
100
100
  imgFloatPosition?: {
101
101
  x: number;
102
102
  y: number;
103
+ pageNo?: number;
103
104
  };
104
105
  }
105
106
  export interface IBlockElement {
@@ -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
- imgDisplay: ImageDisplay;
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[];
@@ -18,4 +18,5 @@ export interface IRow {
18
18
  elementList: IRowElement[];
19
19
  isWidthNotEnough?: boolean;
20
20
  rowIndex: number;
21
+ isSurround?: boolean;
21
22
  }
@@ -43,4 +43,6 @@ export declare function getTextFromElementList(elementList: IElement[]): string;
43
43
  export declare function getSlimCloneElementList(elementList: IElement[]): IElement[];
44
44
  export declare function getIsBlockElement(element?: IElement): boolean;
45
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;
46
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;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@hufe921/canvas-editor",
3
3
  "author": "Hufe",
4
4
  "license": "MIT",
5
- "version": "0.9.92",
5
+ "version": "0.9.93",
6
6
  "description": "rich text editor by canvas/svg",
7
7
  "publishConfig": {
8
8
  "registry": "https://registry.npmjs.org/",