@univerjs/engine-render 0.2.6 → 0.2.7

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 (34) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +6873 -5639
  3. package/lib/types/base-object.d.ts +4 -0
  4. package/lib/types/basics/document-node-tools.d.ts +7 -1
  5. package/lib/types/basics/i-document-skeleton-cached.d.ts +30 -3
  6. package/lib/types/basics/interfaces.d.ts +8 -1
  7. package/lib/types/basics/range.d.ts +4 -1
  8. package/lib/types/components/docs/document.d.ts +3 -0
  9. package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +3 -2
  10. package/lib/types/components/docs/layout/block/table.d.ts +13 -0
  11. package/lib/types/components/docs/layout/doc-skeleton.d.ts +1 -0
  12. package/lib/types/components/docs/layout/model/line.d.ts +3 -2
  13. package/lib/types/components/docs/layout/model/page.d.ts +4 -0
  14. package/lib/types/components/docs/layout/model/table.d.ts +15 -0
  15. package/lib/types/components/docs/layout/tools.d.ts +2 -1
  16. package/lib/types/components/docs/text-selection/convert-rect-range.d.ts +30 -0
  17. package/lib/types/components/docs/text-selection/{convert-cursor.d.ts → convert-text-range.d.ts} +7 -2
  18. package/lib/types/components/docs/text-selection/range-interface.d.ts +22 -0
  19. package/lib/types/components/docs/text-selection/rect-range.d.ts +49 -0
  20. package/lib/types/components/docs/text-selection/selection-utils.d.ts +28 -0
  21. package/lib/types/components/docs/text-selection/text-range.d.ts +8 -4
  22. package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +28 -20
  23. package/lib/types/components/docs/view-model/document-view-model.d.ts +4 -5
  24. package/lib/types/engine.d.ts +5 -0
  25. package/lib/types/index.d.ts +11 -3
  26. package/lib/types/layer.d.ts +4 -0
  27. package/lib/types/render-manager/render-manager.service.d.ts +5 -0
  28. package/lib/types/render-manager/render-unit.d.ts +3 -1
  29. package/lib/types/scene.d.ts +9 -0
  30. package/lib/types/scene.transformer.d.ts +5 -0
  31. package/lib/types/shape/rich-text.d.ts +65 -4
  32. package/lib/umd/index.js +2 -2
  33. package/package.json +5 -5
  34. /package/lib/types/components/docs/layout/block/paragraph/{layout.d.ts → paragraph-layout.d.ts} +0 -0
@@ -64,6 +64,11 @@ export declare class Engine extends ThinEngine<Scene> {
64
64
  getPixelRatio(): number;
65
65
  setContainer(elem: HTMLElement, resize?: boolean): void;
66
66
  resize(): void;
67
+ /**
68
+ * set canvas element size
69
+ * @param width
70
+ * @param height
71
+ */
67
72
  resizeBySize(width: number, height: number): void;
68
73
  dispose(): void;
69
74
  /**
@@ -32,9 +32,11 @@ export * from './shape';
32
32
  export * from './viewport';
33
33
  export { DocumentViewModel } from './components/docs/view-model/document-view-model';
34
34
  export { getAnchorBounding, TEXT_RANGE_LAYER_INDEX, TextRange, getLineBounding } from './components/docs/text-selection/text-range';
35
- export { NodePositionConvertToCursor } from './components/docs/text-selection/convert-cursor';
35
+ export { RectRange, convertPositionsToRectRanges } from './components/docs/text-selection/rect-range';
36
+ export { NodePositionConvertToCursor } from './components/docs/text-selection/convert-text-range';
36
37
  export { Liquid } from './components/docs/liquid';
37
- export { ITextSelectionRenderManager, TextSelectionRenderManager, getCanvasOffsetByEngine, } from './components/docs/text-selection/text-selection-render-manager';
38
+ export { getCanvasOffsetByEngine } from './components/docs/text-selection/selection-utils';
39
+ export { ITextSelectionRenderManager, TextSelectionRenderManager, } from './components/docs/text-selection/text-selection-render-manager';
38
40
  export type { IActiveTextRange, IEditorInputConfig, ITextSelectionInnerParam } from './components/docs/text-selection/text-selection-render-manager';
39
41
  export { Documents } from './components/docs/document';
40
42
  export { DocBackground } from './components/docs/doc-background';
@@ -46,4 +48,10 @@ export { type IChangeObserverConfig } from './scene.transformer';
46
48
  export { DEFAULT_PADDING_DATA } from './components/sheets/sheet-skeleton';
47
49
  export { DocumentEditArea } from './components/docs/view-model/document-view-model';
48
50
  export { lineIterator, glyphIterator } from './components/docs/layout/tools';
49
- export { getOneTextSelectionRange } from './components/docs/text-selection/convert-cursor';
51
+ export { getOneTextSelectionRange } from './components/docs/text-selection/convert-text-range';
52
+ export { getLastLine } from './components/docs/layout/tools';
53
+ export { DataStreamTreeNode } from './components/docs/view-model/data-stream-tree-node';
54
+ export type { IDocRange } from './components/docs/text-selection/range-interface';
55
+ export { isInSameTableCell, isValidRectRange, NodePositionConvertToRectRange } from './components/docs/text-selection/convert-rect-range';
56
+ export { parseDataStreamToTree } from './components/docs/view-model/document-view-model';
57
+ export { DOC_RANGE_TYPE } from './components/docs/text-selection/range-interface';
@@ -17,6 +17,10 @@ export declare class Layer extends Disposable {
17
17
  enableCache(): void;
18
18
  disableCache(): void;
19
19
  isAllowCache(): boolean;
20
+ /**
21
+ * get objects which is visible and not in a group.
22
+ * @returns BaseObject[]
23
+ */
20
24
  getObjectsByOrder(): BaseObject[];
21
25
  getObjectsByOrderForPick(): BaseObject[];
22
26
  getObjects(): BaseObject[];
@@ -15,6 +15,10 @@ export interface IRenderManagerService extends IDisposable {
15
15
  createRender(unitId: string): IRender;
16
16
  removeRender(unitId: string): void;
17
17
  setCurrent(unitId: string): void;
18
+ /**
19
+ * get RenderUnit By Id, RenderUnit implements IRender
20
+ * @param unitId
21
+ */
18
22
  getRenderById(unitId: string): Nullable<IRender>;
19
23
  getAllRenderersOfType(type: UniverInstanceType): RenderUnit[];
20
24
  getCurrentTypeOfRenderer(type: UniverInstanceType): Nullable<RenderUnit>;
@@ -61,6 +65,7 @@ export declare class RenderManagerService extends Disposable implements IRenderM
61
65
  getAllRenderersOfType(type: UniverInstanceType): RenderUnit[];
62
66
  getCurrentTypeOfRenderer(type: UniverInstanceType): Nullable<RenderUnit>;
63
67
  withCurrentTypeOfUnit<T>(type: UniverInstanceType, id: DependencyIdentifier<T>): Nullable<T>;
68
+ private _tryAddRenderDependencies;
64
69
  private _createRender;
65
70
  addRender(unitId: string, item: IRender): void;
66
71
  private _addRenderUnit;
@@ -1,15 +1,17 @@
1
- import { Dependency, DependencyIdentifier, IDisposable, Nullable, UnitModel, UnitType, Disposable, Injector } from '@univerjs/core';
1
+ import { Dependency, DependencyIdentifier, IDisposable, Nullable, UnitModel, UnitType, UniverInstanceType, Disposable, Injector } from '@univerjs/core';
2
2
  import { Engine } from '../engine';
3
3
  import { Scene } from '../scene';
4
4
  import { RenderComponentType } from './render-manager.service';
5
5
 
6
6
  export interface IRender {
7
7
  unitId: string;
8
+ type: UniverInstanceType;
8
9
  engine: Engine;
9
10
  scene: Scene;
10
11
  mainComponent: Nullable<RenderComponentType>;
11
12
  components: Map<string, RenderComponentType>;
12
13
  isMainScene: boolean;
14
+ isThumbNail?: boolean;
13
15
  with<T>(dependency: DependencyIdentifier<T>): T;
14
16
  }
15
17
  export interface IRenderModule extends IDisposable {
@@ -80,7 +80,16 @@ export declare class Scene extends ThinScene {
80
80
  removeObject(object?: BaseObject | string): this | undefined;
81
81
  removeObjects(objects?: BaseObject[] | string[]): this | undefined;
82
82
  getObjectsByLayer(zIndex: number): BaseObject[];
83
+ /**
84
+ * get objects which is visible and not in a group in each layer.
85
+ * @returns BaseObject[]
86
+ */
83
87
  getAllObjects(): BaseObject[];
88
+ /**
89
+ * get objects which is visible and not in a group.
90
+ * @param isDesc
91
+ * @returns BaseObject[]
92
+ */
84
93
  getAllObjectsByOrder(isDesc?: boolean): BaseObject[];
85
94
  getAllObjectsByOrderForPick(isDesc?: boolean): BaseObject[];
86
95
  getObject(oKey: string): BaseObject | undefined;
@@ -11,6 +11,7 @@ declare enum MoveObserverType {
11
11
  MOVE_END = 2
12
12
  }
13
13
  export interface IChangeObserverConfig {
14
+ target?: BaseObject;
14
15
  objects: Map<string, BaseObject>;
15
16
  type: MoveObserverType;
16
17
  moveX?: number;
@@ -63,6 +64,10 @@ export declare class Transformer extends Disposable implements ITransformerConfi
63
64
  useSingleNodeRotation: boolean;
64
65
  shouldOverdrawWholeArea: boolean;
65
66
  private readonly _changeStart$;
67
+ /**
68
+ * actually pointer down on a object,
69
+ * trigger when pick an object even object not change.
70
+ */
66
71
  readonly changeStart$: import('rxjs').Observable<IChangeObserverConfig>;
67
72
  private readonly _changing$;
68
73
  readonly changing$: import('rxjs').Observable<IChangeObserverConfig>;
@@ -1,5 +1,5 @@
1
1
  import { IDocumentData, IStyleBase, ITransformState, LocaleService } from '@univerjs/core';
2
- import { BaseObject, ObjectType } from '../base-object';
2
+ import { BASE_OBJECT_ARRAY, BaseObject, ObjectType } from '../base-object';
3
3
  import { IViewportInfo } from '../basics/vector2';
4
4
  import { UniverRenderingContext } from '../context';
5
5
 
@@ -9,35 +9,96 @@ export interface IRichTextProps extends ITransformState, IStyleBase {
9
9
  zIndex: number;
10
10
  forceRender?: boolean;
11
11
  }
12
+ export type RichtextObjectJSONType = {
13
+ [key in typeof BASE_OBJECT_ARRAY[number]]: number;
14
+ } & {
15
+ text: string;
16
+ fs: number;
17
+ richText?: unknown;
18
+ };
12
19
  export declare const RICHTEXT_OBJECT_ARRAY: string[];
13
20
  export declare class RichText extends BaseObject {
14
21
  private _localeService;
15
22
  private _documentData;
16
23
  private _documentSkeleton;
17
24
  private _documents;
25
+ /**
26
+ * fontFamily
27
+ */
18
28
  private _ff?;
29
+ /**
30
+ * fontSize
31
+ * pt
32
+ */
19
33
  private _fs?;
34
+ /**
35
+ * italic
36
+ * 0: false
37
+ * 1: true
38
+ */
20
39
  private _it?;
40
+ /**
41
+ * bold
42
+ * 0: false
43
+ * 1: true
44
+ */
21
45
  private _bl?;
46
+ /**
47
+ * underline
48
+ */
22
49
  private _ul?;
50
+ /**
51
+ * strikethrough
52
+ */
23
53
  private _st?;
54
+ /**
55
+ * overline
56
+ */
24
57
  private _ol?;
58
+ /**
59
+ * background
60
+ */
25
61
  private _bg?;
62
+ /**
63
+ * border
64
+ */
26
65
  private _bd?;
66
+ /**
67
+ * foreground
68
+ */
27
69
  private _cl?;
28
70
  objectType: ObjectType;
29
71
  constructor(_localeService: LocaleService, key?: string, props?: IRichTextProps);
72
+ get fs(): number;
73
+ get text(): string;
30
74
  get documentData(): IDocumentData;
75
+ /**
76
+ * get last page size
77
+ */
31
78
  getDocsSkeletonPageSize(): {
32
79
  width: number;
33
80
  height: number;
34
81
  } | undefined;
82
+ /**
83
+ * this[`_${key}`] = props[key];
84
+ * @param props
85
+ */
35
86
  setProps(props?: IRichTextProps): this | undefined;
36
87
  render(mainCtx: UniverRenderingContext, bounds?: IViewportInfo): this;
37
- toJson(): {
38
- [x: string]: any;
39
- };
88
+ toJson(): RichtextObjectJSONType;
40
89
  protected _draw(ctx: UniverRenderingContext): void;
41
90
  private _convertToDocumentData;
42
91
  private _initialProps;
92
+ /**
93
+ *
94
+ * it should be invoked when _documentData changed.
95
+ * _documentData changed ---> update _documentSkeleton & _documentSkeleton
96
+ *
97
+ * now it is invoked when transformByState(change editor size) & end of editing
98
+ */
99
+ refreshDocumentByDocData(): void;
100
+ /**
101
+ * invoked when end editing.
102
+ */
103
+ resizeToContentSize(): void;
43
104
  }