@hufe921/canvas-editor 0.9.57 → 0.9.59

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.
@@ -86,6 +86,7 @@ export declare class Command {
86
86
  executeSetZone: CommandAdapt['setZone'];
87
87
  executeSetControlValue: CommandAdapt['setControlValue'];
88
88
  executeSetControlExtension: CommandAdapt['setControlExtension'];
89
+ executeSetControlHighlight: CommandAdapt['setControlHighlight'];
89
90
  getCatalog: CommandAdapt['getCatalog'];
90
91
  getImage: CommandAdapt['getImage'];
91
92
  getOptions: CommandAdapt['getOptions'];
@@ -7,7 +7,7 @@ import { TitleLevel } from '../../dataset/enum/Title';
7
7
  import { VerticalAlign } from '../../dataset/enum/VerticalAlign';
8
8
  import { ICatalog } from '../../interface/Catalog';
9
9
  import { DeepRequired } from '../../interface/Common';
10
- import { IGetControlValueOption, IGetControlValueResult, ISetControlExtensionOption, ISetControlValueOption } from '../../interface/Control';
10
+ import { IGetControlValueOption, IGetControlValueResult, ISetControlExtensionOption, ISetControlHighlightOption, ISetControlValueOption } from '../../interface/Control';
11
11
  import { IAppendElementListOption, IDrawImagePayload, IForceUpdateOption, IGetImageOption, IGetValueOption, IPainterOption } from '../../interface/Draw';
12
12
  import { IEditorData, IEditorHTML, IEditorOption, IEditorResult, IEditorText } from '../../interface/Editor';
13
13
  import { IElement } from '../../interface/Element';
@@ -134,5 +134,6 @@ export declare class CommandAdapt {
134
134
  getControlValue(payload: IGetControlValueOption): IGetControlValueResult | null;
135
135
  setControlValue(payload: ISetControlValueOption): void;
136
136
  setControlExtension(payload: ISetControlExtensionOption): void;
137
+ setControlHighlight(payload: ISetControlHighlightOption): void;
137
138
  getContainer(): HTMLDivElement;
138
139
  }
@@ -1,4 +1,4 @@
1
- import { IControlContext, IControlInitOption, IControlInstance, IGetControlValueOption, IGetControlValueResult, ISetControlExtensionOption, ISetControlValueOption } from '../../../interface/Control';
1
+ import { IControlContext, IControlHighlight, IControlInitOption, IControlInstance, IGetControlValueOption, IGetControlValueResult, ISetControlExtensionOption, ISetControlValueOption } from '../../../interface/Control';
2
2
  import { IElement, IElementPosition } from '../../../interface/Element';
3
3
  import { IRange } from '../../../interface/Range';
4
4
  import { Draw } from '../Draw';
@@ -11,9 +11,14 @@ export declare class Control {
11
11
  private range;
12
12
  private listener;
13
13
  private eventBus;
14
+ private controlSearch;
14
15
  private options;
16
+ private controlOptions;
15
17
  private activeControl;
16
18
  constructor(draw: Draw);
19
+ setHighlightList(payload: IControlHighlight[]): void;
20
+ computeHighlightList(): void;
21
+ renderHighlightList(ctx: CanvasRenderingContext2D, pageNo: number): void;
17
22
  getDraw(): Draw;
18
23
  filterAssistElement(elementList: IElement[]): IElement[];
19
24
  isPartRangeInControlOutside(): boolean;
@@ -0,0 +1,17 @@
1
+ import { IControlHighlight, IControlHighlightRule } from '../../../../interface/Control';
2
+ import { ISearchResult } from '../../../../interface/Search';
3
+ import { Control } from '../Control';
4
+ declare type IHighlightMatchResult = (ISearchResult & IControlHighlightRule)[];
5
+ export declare class ControlSearch {
6
+ private draw;
7
+ private options;
8
+ private highlightList;
9
+ private highlightMatchResult;
10
+ constructor(control: Control);
11
+ getHighlightMatchResult(): IHighlightMatchResult;
12
+ getHighlightList(): IControlHighlight[];
13
+ setHighlightList(payload: IControlHighlight[]): void;
14
+ computeHighlightList(): void;
15
+ renderHighlightList(ctx: CanvasRenderingContext2D, pageIndex: number): void;
16
+ }
17
+ export {};
@@ -1,4 +1,4 @@
1
- import { IElementPosition } from '../../../interface/Element';
1
+ import { IElement, IElementPosition } from '../../../interface/Element';
2
2
  import { ISearchResult } from '../../../interface/Search';
3
3
  import { Draw } from '../Draw';
4
4
  export interface INavigateInfo {
@@ -21,7 +21,7 @@ export declare class Search {
21
21
  getSearchNavigateIndexList(): any[];
22
22
  getSearchMatchList(): ISearchResult[];
23
23
  getSearchNavigateInfo(): null | INavigateInfo;
24
- getMatchList(payload: string): ISearchResult[];
24
+ getMatchList(payload: string, originalElementList: IElement[]): ISearchResult[];
25
25
  compute(payload: string): void;
26
26
  render(ctx: CanvasRenderingContext2D, pageIndex: number): void;
27
27
  }
@@ -14,6 +14,7 @@ export declare class Previewer {
14
14
  private resizerHandleList;
15
15
  private resizerImageContainer;
16
16
  private resizerImage;
17
+ private resizerSize;
17
18
  private width;
18
19
  private height;
19
20
  private mousedownX;
@@ -30,6 +31,8 @@ export declare class Previewer {
30
31
  private _drawPreviewer;
31
32
  _setPreviewerTransform(scale: number, rotate: number, x: number, y: number): void;
32
33
  private _clearPreviewer;
34
+ _updateResizerRect(width: number, height: number): void;
35
+ _updateResizerSizeView(width: number, height: number): void;
33
36
  drawResizer(element: IElement, position: IElementPosition, options?: IPreviewerDrawOption): void;
34
37
  clearResizer(): void;
35
38
  }
@@ -1,4 +1,4 @@
1
- import { IComputePageRowPositionPayload, IComputePageRowPositionResult } from '../../interface/Position';
1
+ import { IComputePageRowPositionPayload, IComputePageRowPositionResult, IComputeRowPositionPayload } 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';
@@ -18,6 +18,7 @@ export declare class Position {
18
18
  setPositionList(payload: IElementPosition[]): void;
19
19
  computePageRowPosition(payload: IComputePageRowPositionPayload): IComputePageRowPositionResult;
20
20
  computePositionList(): void;
21
+ computeRowPosition(payload: IComputeRowPositionPayload): IElementPosition[];
21
22
  setCursorPosition(position: IElementPosition | null): void;
22
23
  getCursorPosition(): IElementPosition | null;
23
24
  getPositionContext(): IPositionContext;
@@ -14,3 +14,7 @@ export declare enum ImageDisplay {
14
14
  INLINE = "inline",
15
15
  BLOCK = "block"
16
16
  }
17
+ export declare enum ControlIndentation {
18
+ ROW_START = "rowStart",
19
+ VALUE_START = "valueStart"
20
+ }
@@ -10,7 +10,7 @@ import { IContextMenuContext, IRegisterContextMenu } from './interface/contextme
10
10
  import { EditorComponent, EditorZone, EditorMode, PageMode, PaperDirection, WordBreak } from './dataset/enum/Editor';
11
11
  import { EDITOR_COMPONENT } from './dataset/constant/Editor';
12
12
  import { IWatermark } from './interface/Watermark';
13
- import { ControlType, ImageDisplay } from './dataset/enum/Control';
13
+ import { ControlIndentation, ControlType, ImageDisplay } from './dataset/enum/Control';
14
14
  import { INavigateInfo } from './core/draw/interactive/Search';
15
15
  import { KeyMap } from './dataset/enum/KeyMap';
16
16
  import { BlockType } from './dataset/enum/Block';
@@ -30,6 +30,7 @@ import { Override } from './core/override/Override';
30
30
  import { LETTER_CLASS } from './dataset/constant/Common';
31
31
  import { INTERNAL_CONTEXT_MENU_KEY } from './dataset/constant/ContextMenu';
32
32
  import { IRange } from './interface/Range';
33
+ import { splitText } from './utils';
33
34
  export default class Editor {
34
35
  command: Command;
35
36
  listener: Listener;
@@ -40,5 +41,7 @@ export default class Editor {
40
41
  use: UsePlugin;
41
42
  constructor(container: HTMLDivElement, data: IEditorData | IElement[], options?: IEditorOption);
42
43
  }
43
- export { EDITOR_COMPONENT, LETTER_CLASS, INTERNAL_CONTEXT_MENU_KEY, Editor, RowFlex, VerticalAlign, EditorZone, EditorMode, ElementType, ControlType, EditorComponent, PageMode, ImageDisplay, Command, KeyMap, BlockType, PaperDirection, TableBorder, TdBorder, TdSlash, MaxHeightRatio, NumberType, TitleLevel, ListType, ListStyle, WordBreak };
44
+ export { splitText };
45
+ export { EDITOR_COMPONENT, LETTER_CLASS, INTERNAL_CONTEXT_MENU_KEY };
46
+ export { Editor, RowFlex, VerticalAlign, EditorZone, EditorMode, ElementType, ControlType, EditorComponent, PageMode, ImageDisplay, Command, KeyMap, BlockType, PaperDirection, TableBorder, TdBorder, TdSlash, MaxHeightRatio, NumberType, TitleLevel, ListType, ListStyle, WordBreak, ControlIndentation };
44
47
  export type { IElement, IEditorData, IEditorOption, IEditorResult, IContextMenuContext, IRegisterContextMenu, IWatermark, INavigateInfo, IBlock, ILang, ICatalog, ICatalogItem, IRange, IRangeStyle };
@@ -1,4 +1,5 @@
1
- import { ControlType } from '../dataset/enum/Control';
1
+ import { ControlType, ControlIndentation } from '../dataset/enum/Control';
2
+ import { EditorZone } from '../dataset/enum/Editor';
2
3
  import { ICheckbox } from './Checkbox';
3
4
  import { IElement } from './Element';
4
5
  import { IRange } from './Range';
@@ -17,6 +18,15 @@ export interface IControlCheckbox {
17
18
  valueSets: IValueSet[];
18
19
  checkbox?: ICheckbox;
19
20
  }
21
+ export interface IControlHighlightRule {
22
+ keyword: string;
23
+ alpha?: number;
24
+ backgroundColor?: string;
25
+ }
26
+ export interface IControlHighlight {
27
+ ruleList: IControlHighlightRule[];
28
+ conceptId: string;
29
+ }
20
30
  export interface IControlRule {
21
31
  deletable?: boolean;
22
32
  disabled?: boolean;
@@ -31,6 +41,7 @@ export interface IControlBasic {
31
41
  minWidth?: number;
32
42
  underline?: boolean;
33
43
  extension?: unknown;
44
+ indentation?: ControlIndentation;
34
45
  }
35
46
  export declare type IControl = IControlBasic & IControlRule & Partial<IControlSelect> & Partial<IControlCheckbox>;
36
47
  export interface IControlOption {
@@ -69,6 +80,7 @@ export interface IGetControlValueOption {
69
80
  export declare type IGetControlValueResult = (Omit<IControl, 'value'> & {
70
81
  value: string | null;
71
82
  innerText: string | null;
83
+ zone: EditorZone;
72
84
  })[];
73
85
  export interface ISetControlValueOption {
74
86
  conceptId: string;
@@ -78,3 +90,4 @@ export interface ISetControlExtensionOption {
78
90
  conceptId: string;
79
91
  extension: unknown;
80
92
  }
93
+ export declare type ISetControlHighlightOption = IControlHighlight[];
@@ -39,6 +39,10 @@ export interface IPositionContext {
39
39
  trId?: string;
40
40
  tableId?: string;
41
41
  }
42
+ export interface IComputeRowPositionPayload {
43
+ row: IRow;
44
+ innerWidth: number;
45
+ }
42
46
  export interface IComputePageRowPositionPayload {
43
47
  positionList: IElementPosition[];
44
48
  rowList: IRow[];
@@ -4,6 +4,7 @@ export interface IPreviewerCreateResult {
4
4
  resizerHandleList: HTMLDivElement[];
5
5
  resizerImageContainer: HTMLDivElement;
6
6
  resizerImage: HTMLImageElement;
7
+ resizerSize: HTMLSpanElement;
7
8
  }
8
9
  export interface IPreviewerDrawOption {
9
10
  mime?: 'png' | 'jpg' | 'jpeg' | 'svg';
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.57",
5
+ "version": "0.9.59",
6
6
  "description": "rich text editor by canvas/svg",
7
7
  "publishConfig": {
8
8
  "registry": "https://registry.npmjs.org/",