@univerjs/engine-render 0.1.3 → 0.1.4

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 (64) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +10832 -10790
  3. package/lib/types/basics/document-node-tools.d.ts +8 -8
  4. package/lib/types/basics/i-document-skeleton-cached.d.ts +13 -7
  5. package/lib/types/basics/interfaces.d.ts +3 -3
  6. package/lib/types/basics/tools.d.ts +4 -0
  7. package/lib/types/{components/docs/block/index.d.ts → basics/viewport-subtract.d.ts} +2 -3
  8. package/lib/types/components/docs/doc-component.d.ts +4 -4
  9. package/lib/types/components/docs/doc-extension.d.ts +2 -2
  10. package/lib/types/components/docs/document.d.ts +2 -1
  11. package/lib/types/components/docs/extensions/background.d.ts +2 -2
  12. package/lib/types/components/docs/extensions/border.d.ts +2 -2
  13. package/lib/types/components/docs/extensions/font-and-base-line.d.ts +2 -2
  14. package/lib/types/components/docs/extensions/line.d.ts +2 -2
  15. package/lib/types/components/docs/{block → layout/block}/paragraph/bullet.d.ts +1 -1
  16. package/lib/types/components/docs/{block → layout/block}/paragraph/inline-drawing.d.ts +2 -2
  17. package/lib/types/components/docs/{block → layout/block}/paragraph/language-ruler.d.ts +7 -7
  18. package/lib/types/components/docs/{block → layout/block}/paragraph/layout-ruler.d.ts +3 -3
  19. package/lib/types/components/docs/{block/paragraph/paragraph.d.ts → layout/block/paragraph/layout.d.ts} +4 -4
  20. package/lib/types/components/docs/{block/paragraph/index.d.ts → layout/block/paragraph/line-adjustment.d.ts} +3 -6
  21. package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +21 -0
  22. package/lib/types/components/docs/layout/block/paragraph/shaping.d.ts +25 -0
  23. package/lib/types/components/docs/{block → layout/block}/section.d.ts +5 -5
  24. package/lib/types/components/docs/{doc-skeleton.d.ts → layout/doc-skeleton.d.ts} +9 -9
  25. package/lib/types/components/docs/layout/model/__test__/glyph.spec.d.ts +16 -0
  26. package/lib/types/components/docs/{common → layout/model}/column.d.ts +1 -1
  27. package/lib/types/components/docs/layout/model/glyph.d.ts +31 -0
  28. package/lib/types/components/docs/{common → layout/model}/line.d.ts +1 -1
  29. package/lib/types/components/docs/{common → layout/model}/page.d.ts +3 -3
  30. package/lib/types/components/docs/{common → layout/model}/section.d.ts +1 -1
  31. package/lib/types/components/docs/{common → layout}/tools.d.ts +4 -4
  32. package/lib/types/components/docs/{common/liquid.d.ts → liquid.d.ts} +4 -4
  33. package/lib/types/components/docs/{common → text-selection}/convert-cursor.d.ts +4 -4
  34. package/lib/types/components/docs/{common → text-selection}/text-range.d.ts +1 -1
  35. package/lib/types/components/docs/{text-selection-render-manager.d.ts → text-selection/text-selection-render-manager.d.ts} +11 -9
  36. package/lib/types/components/index.d.ts +0 -1
  37. package/lib/types/components/sheets/interfaces.d.ts +1 -1
  38. package/lib/types/components/sheets/sheet-skeleton.d.ts +1 -1
  39. package/lib/types/context.d.ts +4 -0
  40. package/lib/types/engine.d.ts +2 -0
  41. package/lib/types/index.d.ts +9 -1
  42. package/lib/types/layer.d.ts +1 -0
  43. package/lib/types/render-manager.service.d.ts +1 -0
  44. package/lib/types/thin-scene.d.ts +4 -1
  45. package/lib/types/viewport.d.ts +0 -3
  46. package/lib/umd/index.js +2 -2
  47. package/package.json +8 -7
  48. package/lib/types/components/docs/common/index.d.ts +0 -24
  49. package/lib/types/components/docs/common/span.d.ts +0 -28
  50. package/lib/types/components/docs/index.d.ts +0 -22
  51. /package/lib/types/components/docs/{block → layout/block}/block-error.d.ts +0 -0
  52. /package/lib/types/components/docs/{block → layout/block}/paragraph/bullet-ruler.d.ts +0 -0
  53. /package/lib/types/components/docs/{linebreak → layout/linebreak}/__tests__/linebreak.spec.d.ts +0 -0
  54. /package/lib/types/components/docs/{linebreak → layout/linebreak}/break.d.ts +0 -0
  55. /package/lib/types/components/docs/{linebreak → layout/linebreak}/classes.d.ts +0 -0
  56. /package/lib/types/components/docs/{linebreak → layout/linebreak}/extensions/tab-linebreak-extension.d.ts +0 -0
  57. /package/lib/types/components/docs/{linebreak → layout/linebreak}/index.d.ts +0 -0
  58. /package/lib/types/components/docs/{linebreak → layout/linebreak}/linebreaker.d.ts +0 -0
  59. /package/lib/types/components/docs/{linebreak → layout/linebreak}/pairs.d.ts +0 -0
  60. /package/lib/types/components/docs/{linebreak → layout/linebreak}/rule.d.ts +0 -0
  61. /package/lib/types/components/docs/{linebreak → layout/linebreak}/swap.d.ts +0 -0
  62. /package/lib/types/components/docs/{linebreak → layout/linebreak}/tiny-inflate.d.ts +0 -0
  63. /package/lib/types/components/docs/{linebreak → layout/linebreak}/trie-data.d.ts +0 -0
  64. /package/lib/types/components/docs/{linebreak → layout/linebreak}/unicode-trie.d.ts +0 -0
@@ -14,11 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IDocumentBody, Nullable } from '@univerjs/core';
17
- import type { IDocumentSkeletonSpan } from './i-document-skeleton-cached';
18
- export declare function hasListSpan(span: Nullable<IDocumentSkeletonSpan>): boolean;
19
- export declare function isIndentBySpan(span: Nullable<IDocumentSkeletonSpan>, body?: IDocumentBody): boolean;
20
- export declare function isLastSpan(span: Nullable<IDocumentSkeletonSpan>): boolean;
21
- export declare function isFirstSpan(span: Nullable<IDocumentSkeletonSpan>): boolean;
22
- export declare function getParagraphBySpan(span: Nullable<IDocumentSkeletonSpan>, body?: IDocumentBody): import("@univerjs/core").IParagraph | undefined;
23
- export declare function isPlaceholderOrSpace(span: Nullable<IDocumentSkeletonSpan>): boolean;
24
- export declare function isSameLine(span1: Nullable<IDocumentSkeletonSpan>, span2: Nullable<IDocumentSkeletonSpan>): boolean;
17
+ import type { IDocumentSkeletonGlyph } from './i-document-skeleton-cached';
18
+ export declare function hasListGlyph(glyph: Nullable<IDocumentSkeletonGlyph>): boolean;
19
+ export declare function isIndentByGlyph(glyph: Nullable<IDocumentSkeletonGlyph>, body?: IDocumentBody): boolean;
20
+ export declare function isLastGlyph(glyph: Nullable<IDocumentSkeletonGlyph>): boolean;
21
+ export declare function isFirstGlyph(glyph: Nullable<IDocumentSkeletonGlyph>): boolean;
22
+ export declare function getParagraphByGlyph(glyph: Nullable<IDocumentSkeletonGlyph>, body?: IDocumentBody): import("@univerjs/core").IParagraph | undefined;
23
+ export declare function isPlaceholderOrSpace(glyph: Nullable<IDocumentSkeletonGlyph>): boolean;
24
+ export declare function isSameLine(glyph1: Nullable<IDocumentSkeletonGlyph>, glyph2: Nullable<IDocumentSkeletonGlyph>): boolean;
@@ -115,7 +115,7 @@ export interface IDocumentSkeletonLine {
115
115
  parent?: IDocumentSkeletonColumn;
116
116
  }
117
117
  export interface IDocumentSkeletonDivide {
118
- spanGroup: IDocumentSkeletonSpan[];
118
+ glyphGroup: IDocumentSkeletonGlyph[];
119
119
  width: number;
120
120
  left: number;
121
121
  paddingLeft: number;
@@ -124,16 +124,22 @@ export interface IDocumentSkeletonDivide {
124
124
  ed: number;
125
125
  parent?: IDocumentSkeletonLine;
126
126
  }
127
- export interface IDocumentSkeletonSpan {
128
- eId?: string;
129
- spanType: SpanType;
127
+ export interface IAdjustability {
128
+ stretchability: [number, number];
129
+ shrinkability: [number, number];
130
+ }
131
+ export interface IDocumentSkeletonGlyph {
132
+ glyphId?: string;
133
+ glyphType: GlyphType;
130
134
  streamType: DataStreamTreeTokenType;
131
135
  width: number;
132
136
  bBox: IDocumentSkeletonBoundingBox;
133
- paddingLeft: number;
137
+ xOffset: number;
134
138
  left: number;
135
139
  count: number;
136
140
  content: string;
141
+ adjustability: IAdjustability;
142
+ isJustifiable: boolean;
137
143
  ts?: ITextStyle;
138
144
  fontStyle?: IDocumentSkeletonFontStyle;
139
145
  parent?: IDocumentSkeletonDivide;
@@ -179,7 +185,7 @@ export interface IDocumentSkeletonBoundingBox {
179
185
  spo: number;
180
186
  }
181
187
  export declare enum SkeletonType {
182
- SPAN = 0,
188
+ GLYPH = 0,
183
189
  DIVIDE = 1,
184
190
  LINE = 2,
185
191
  COLUMN = 3,
@@ -200,7 +206,7 @@ export declare enum LineType {
200
206
  PARAGRAPH = 0,
201
207
  BLOCK = 1
202
208
  }
203
- export declare enum SpanType {
209
+ export declare enum GlyphType {
204
210
  LETTER = 0,
205
211
  WORD = 1,
206
212
  LIST = 2,
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { BooleanNumber, GridType, IDocStyleBase, IDocumentLayout, IOffset, IParagraphStyle, IReferenceSource, IScale, ISectionBreakBase, ISize, ITextStyle, ITransformState, LocaleService } from '@univerjs/core';
17
17
  import type { DocumentViewModel } from '../components/docs/view-model/document-view-model';
18
- import type { IDocumentSkeletonBullet, IDocumentSkeletonDrawing, IDocumentSkeletonDrawingAnchor, IDocumentSkeletonFontStyle, IDocumentSkeletonFooter, IDocumentSkeletonHeader, IDocumentSkeletonSpan } from './i-document-skeleton-cached';
18
+ import type { IDocumentSkeletonBullet, IDocumentSkeletonDrawing, IDocumentSkeletonDrawingAnchor, IDocumentSkeletonFontStyle, IDocumentSkeletonFooter, IDocumentSkeletonGlyph, IDocumentSkeletonHeader } from './i-document-skeleton-cached';
19
19
  import type { Vector2 } from './vector2';
20
20
  export interface IObjectFullState extends ITransformState {
21
21
  strokeWidth?: number;
@@ -99,12 +99,12 @@ export interface IFontCreateConfig {
99
99
  pageWidth?: number;
100
100
  }
101
101
  export interface INodeInfo {
102
- node: IDocumentSkeletonSpan;
102
+ node: IDocumentSkeletonGlyph;
103
103
  ratioX: number;
104
104
  ratioY: number;
105
105
  }
106
106
  export interface INodeSearch {
107
- span: number;
107
+ glyph: number;
108
108
  divide: number;
109
109
  line: number;
110
110
  column: number;
@@ -66,6 +66,7 @@ export declare function getFontStyleString(textStyle?: IStyleBase, localeService
66
66
  };
67
67
  export declare function hasCJKText(text: string): boolean;
68
68
  export declare function hasCJK(text: string): boolean;
69
+ export declare function hasCJKPunctuation(text: string): boolean;
69
70
  export declare function hasAllLatin(text: string): boolean;
70
71
  export declare function hasBasicLatin(text: string): boolean;
71
72
  export declare function hasLatinOneSupplement(text: string): boolean;
@@ -76,6 +77,9 @@ export declare function startWithEmoji(text: string): boolean;
76
77
  export declare function hasArabic(text: string): boolean;
77
78
  export declare function hasTibetan(text: string): boolean;
78
79
  export declare function hasSpace(text: string): boolean;
80
+ export declare function isCjkLeftAlignedPunctuation(text: string): boolean;
81
+ export declare function isCjkRightAlignedPunctuation(text: string): boolean;
82
+ export declare function isCjkCenterAlignedPunctuation(text: string): boolean;
79
83
  export declare function getDPI(): number;
80
84
  export declare function ptToPx(pt: number): number;
81
85
  export declare function pxToPt(px: number): number;
@@ -13,6 +13,5 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export * from './block-error';
17
- export * from './paragraph';
18
- export * from './section';
16
+ import type { IRange } from '@univerjs/core';
17
+ export declare function subtractViewportRange(range1: IRange, range2: IRange): IRange[];
@@ -14,15 +14,15 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { Nullable } from '@univerjs/core';
17
- import type { IDocumentSkeletonLine, IDocumentSkeletonSpan } from '../../basics/i-document-skeleton-cached';
17
+ import type { IDocumentSkeletonGlyph, IDocumentSkeletonLine } from '../../basics/i-document-skeleton-cached';
18
18
  import { PageLayoutType } from '../../basics/i-document-skeleton-cached';
19
19
  import type { INodeInfo } from '../../basics/interfaces';
20
20
  import type { IBoundRectNoAngle, IViewportBound } from '../../basics/vector2';
21
21
  import type { UniverRenderingContext } from '../../context';
22
22
  import { RenderComponent } from '../component';
23
23
  import type { DOCS_EXTENSION_TYPE } from './doc-extension';
24
- import type { DocumentSkeleton } from './doc-skeleton';
25
- export declare class DocComponent extends RenderComponent<IDocumentSkeletonSpan | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle[]> {
24
+ import type { DocumentSkeleton } from './layout/doc-skeleton';
25
+ export declare class DocComponent extends RenderComponent<IDocumentSkeletonGlyph | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle[]> {
26
26
  private _skeleton?;
27
27
  pageMarginLeft: number;
28
28
  pageMarginTop: number;
@@ -39,7 +39,7 @@ export declare class DocComponent extends RenderComponent<IDocumentSkeletonSpan
39
39
  syncSelection(): void;
40
40
  remainActiveSelection(): void;
41
41
  findNodeByCoord(offsetX: number, offsetY: number): Nullable<INodeInfo>;
42
- findCoordByNode(span: IDocumentSkeletonSpan): void;
42
+ findCoordByNode(glyph: IDocumentSkeletonGlyph): void;
43
43
  protected _getBounding(bounds?: IViewportBound): void;
44
44
  protected _draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
45
45
  }
@@ -13,14 +13,14 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonLine, IDocumentSkeletonSpan } from '../../basics/i-document-skeleton-cached';
16
+ import type { IDocumentSkeletonGlyph, IDocumentSkeletonLine } from '../../basics/i-document-skeleton-cached';
17
17
  import type { IBoundRectNoAngle } from '../../basics/vector2';
18
18
  import { ComponentExtension } from '../extension';
19
19
  export declare enum DOCS_EXTENSION_TYPE {
20
20
  SPAN = 0,
21
21
  LINE = 1
22
22
  }
23
- export declare class docExtension extends ComponentExtension<IDocumentSkeletonSpan | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle> {
23
+ export declare class docExtension extends ComponentExtension<IDocumentSkeletonGlyph | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle> {
24
24
  type: DOCS_EXTENSION_TYPE;
25
25
  translateX: number;
26
26
  translateY: number;
@@ -23,7 +23,7 @@ import type { IViewportBound } from '../../basics/vector2';
23
23
  import type { UniverRenderingContext } from '../../context';
24
24
  import type { Scene } from '../../scene';
25
25
  import { DocComponent } from './doc-component';
26
- import type { DocumentSkeleton } from './doc-skeleton';
26
+ import type { DocumentSkeleton } from './layout/doc-skeleton';
27
27
  interface IPageMarginLayout {
28
28
  pageMarginLeft: number;
29
29
  pageMarginTop: number;
@@ -63,5 +63,6 @@ export declare class Documents extends DocComponent {
63
63
  private _startRotation;
64
64
  private _resetRotation;
65
65
  private _initialDefaultExtension;
66
+ private _isSkipByDiffBounds;
66
67
  }
67
68
  export {};
@@ -14,13 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IScale } from '@univerjs/core';
17
- import type { IDocumentSkeletonSpan } from '../../../basics/i-document-skeleton-cached';
17
+ import type { IDocumentSkeletonGlyph } from '../../../basics/i-document-skeleton-cached';
18
18
  import type { UniverRenderingContext } from '../../../context';
19
19
  import { docExtension } from '../doc-extension';
20
20
  export declare class Background extends docExtension {
21
21
  uKey: string;
22
22
  Z_INDEX: number;
23
23
  private _preBackgroundColor;
24
- draw(ctx: UniverRenderingContext, parentScale: IScale, span: IDocumentSkeletonSpan): void;
24
+ draw(ctx: UniverRenderingContext, parentScale: IScale, span: IDocumentSkeletonGlyph): void;
25
25
  clearCache(): void;
26
26
  }
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IScale } from '@univerjs/core';
17
- import type { IDocumentSkeletonSpan } from '../../../basics/i-document-skeleton-cached';
17
+ import type { IDocumentSkeletonGlyph } from '../../../basics/i-document-skeleton-cached';
18
18
  import type { UniverRenderingContext } from '../../../context';
19
19
  import { docExtension } from '../doc-extension';
20
20
  export declare class Border extends docExtension {
@@ -22,7 +22,7 @@ export declare class Border extends docExtension {
22
22
  Z_INDEX: number;
23
23
  private _preBorderStyle;
24
24
  private _preBorderColor;
25
- draw(ctx: UniverRenderingContext, parentScale: IScale, span: IDocumentSkeletonSpan): void;
25
+ draw(ctx: UniverRenderingContext, parentScale: IScale, glyph: IDocumentSkeletonGlyph): void;
26
26
  clearCache(): void;
27
27
  private _createBorderCache;
28
28
  }
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IScale } from '@univerjs/core';
17
- import type { IDocumentSkeletonSpan } from '../../../basics/i-document-skeleton-cached';
17
+ import type { IDocumentSkeletonGlyph } from '../../../basics/i-document-skeleton-cached';
18
18
  import type { UniverRenderingContext } from '../../../context';
19
19
  import { docExtension } from '../doc-extension';
20
20
  export declare class FontAndBaseLine extends docExtension {
@@ -22,7 +22,7 @@ export declare class FontAndBaseLine extends docExtension {
22
22
  Z_INDEX: number;
23
23
  private _preFontString;
24
24
  private _preFontColor;
25
- draw(ctx: UniverRenderingContext, parentScale: IScale, span: IDocumentSkeletonSpan): void;
25
+ draw(ctx: UniverRenderingContext, parentScale: IScale, glyph: IDocumentSkeletonGlyph): void;
26
26
  private _fillText;
27
27
  clearCache(): void;
28
28
  }
@@ -14,14 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IScale } from '@univerjs/core';
17
- import type { IDocumentSkeletonSpan } from '../../../basics/i-document-skeleton-cached';
17
+ import type { IDocumentSkeletonGlyph } from '../../../basics/i-document-skeleton-cached';
18
18
  import type { UniverRenderingContext } from '../../../context';
19
19
  import { docExtension } from '../doc-extension';
20
20
  export declare class Line extends docExtension {
21
21
  uKey: string;
22
22
  Z_INDEX: number;
23
23
  private _preBackgroundColor;
24
- draw(ctx: UniverRenderingContext, parentScale: IScale, span: IDocumentSkeletonSpan): void;
24
+ draw(ctx: UniverRenderingContext, parentScale: IScale, span: IDocumentSkeletonGlyph): void;
25
25
  clearCache(): void;
26
26
  private _drawLine;
27
27
  private _setLineType;
@@ -14,6 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IBullet, ILists, LocaleService, Nullable } from '@univerjs/core';
17
- import type { IDocumentSkeletonBullet } from '../../../../basics/i-document-skeleton-cached';
17
+ import type { IDocumentSkeletonBullet } from '../../../../../basics/i-document-skeleton-cached';
18
18
  export declare function dealWithBullet(bullet?: IBullet, lists?: ILists, listLevelAncestors?: Array<Nullable<IDocumentSkeletonBullet>>, localeService?: LocaleService): IDocumentSkeletonBullet | undefined;
19
19
  export declare function getDefaultBulletSke(listId: string, startIndex?: number): IDocumentSkeletonBullet;
@@ -14,6 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IDrawing, LocaleService } from '@univerjs/core';
17
- import type { IDocumentSkeletonPage } from '../../../../basics/i-document-skeleton-cached';
18
- import type { IParagraphConfig, ISectionBreakConfig } from '../../../../basics/interfaces';
17
+ import type { IDocumentSkeletonPage } from '../../../../../basics/i-document-skeleton-cached';
18
+ import type { IParagraphConfig, ISectionBreakConfig } from '../../../../../basics/interfaces';
19
19
  export declare function dealWidthInlineDrawing(drawing: IDrawing, sectionBreakConfig: ISectionBreakConfig, allPages?: IDocumentSkeletonPage[], paragraphConfig?: IParagraphConfig, localeService?: LocaleService): never[];
@@ -14,22 +14,22 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IParagraphStyle } from '@univerjs/core';
17
- import type { ISectionBreakConfig } from '../../../../basics/interfaces';
18
- import type { DataStreamTreeNode } from '../../view-model/data-stream-tree-node';
19
- import type { DocumentViewModel } from '../../view-model/document-view-model';
17
+ import type { ISectionBreakConfig } from '../../../../../basics/interfaces';
18
+ import type { DataStreamTreeNode } from '../../../view-model/data-stream-tree-node';
19
+ import type { DocumentViewModel } from '../../../view-model/document-view-model';
20
20
  export declare function otherHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
21
21
  step: number;
22
- spanGroup: import("../../../..").IDocumentSkeletonSpan[];
22
+ glyphGroup: import("../../../../..").IDocumentSkeletonGlyph[];
23
23
  };
24
24
  export declare function ArabicHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
25
25
  step: number;
26
- spanGroup: import("../../../..").IDocumentSkeletonSpan[];
26
+ glyphGroup: import("../../../../..").IDocumentSkeletonGlyph[];
27
27
  };
28
28
  export declare function emojiHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
29
29
  step: number;
30
- spanGroup: import("../../../..").IDocumentSkeletonSpan[];
30
+ glyphGroup: import("../../../../..").IDocumentSkeletonGlyph[];
31
31
  };
32
32
  export declare function TibetanHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
33
33
  step: number;
34
- spanGroup: import("../../../..").IDocumentSkeletonSpan[];
34
+ glyphGroup: import("../../../../..").IDocumentSkeletonGlyph[];
35
35
  };
@@ -13,6 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonPage, IDocumentSkeletonSpan } from '../../../../basics/i-document-skeleton-cached';
17
- import type { IParagraphConfig, ISectionBreakConfig } from '../../../../basics/interfaces';
18
- export declare function calculateParagraphLayout(spanGroup: IDocumentSkeletonSpan[], pages: IDocumentSkeletonPage[], sectionBreakConfig: ISectionBreakConfig, paragraphConfig: IParagraphConfig, paragraphStart?: boolean): IDocumentSkeletonPage[];
16
+ import type { IDocumentSkeletonGlyph, IDocumentSkeletonPage } from '../../../../../basics/i-document-skeleton-cached';
17
+ import type { IParagraphConfig, ISectionBreakConfig } from '../../../../../basics/interfaces';
18
+ export declare function layoutParagraph(glyphGroup: IDocumentSkeletonGlyph[], pages: IDocumentSkeletonPage[], sectionBreakConfig: ISectionBreakConfig, paragraphConfig: IParagraphConfig, paragraphStart?: boolean): IDocumentSkeletonPage[];
@@ -13,8 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../../basics/i-document-skeleton-cached';
17
- import type { ISectionBreakConfig } from '../../../../basics/interfaces';
18
- import type { DataStreamTreeNode } from '../../view-model/data-stream-tree-node';
19
- import type { DocumentViewModel } from '../../view-model/document-view-model';
16
+ import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../../../basics/i-document-skeleton-cached';
17
+ import type { ISectionBreakConfig } from '../../../../../basics/interfaces';
18
+ import type { DataStreamTreeNode } from '../../../view-model/data-stream-tree-node';
19
+ import type { DocumentViewModel } from '../../../view-model/document-view-model';
20
20
  export declare function dealWidthParagraph(bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, curPage: IDocumentSkeletonPage, sectionBreakConfig: ISectionBreakConfig, skeletonResourceReference: ISkeletonResourceReference): IDocumentSkeletonPage[];
@@ -13,9 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export * from './bullet';
17
- export * from './bullet-ruler';
18
- export * from './inline-drawing';
19
- export * from './language-ruler';
20
- export * from './layout-ruler';
21
- export * from './paragraph';
16
+ import type { IParagraph } from '@univerjs/core';
17
+ import type { IDocumentSkeletonPage } from '../../../../../basics/i-document-skeleton-cached';
18
+ export declare function lineAdjustment(pages: IDocumentSkeletonPage[], paragraph: IParagraph): void;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../../../basics/i-document-skeleton-cached';
17
+ import type { DataStreamTreeNode } from '../../../view-model/data-stream-tree-node';
18
+ import type { DocumentViewModel } from '../../../view-model/document-view-model';
19
+ import type { ISectionBreakConfig } from '../../../../../basics/interfaces';
20
+ import type { IShapedText } from './shaping';
21
+ export declare function lineBreaking(shapedTextList: IShapedText[], curPage: IDocumentSkeletonPage, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, skeletonResourceReference: ISkeletonResourceReference): IDocumentSkeletonPage[];
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { IParagraphStyle } from '@univerjs/core';
17
+ import type { IDocumentSkeletonGlyph } from '../../../../../basics/i-document-skeleton-cached';
18
+ import type { DataStreamTreeNode } from '../../../view-model/data-stream-tree-node';
19
+ import type { DocumentViewModel } from '../../../view-model/document-view-model';
20
+ import type { ISectionBreakConfig } from '../../../../../basics/interfaces';
21
+ export interface IShapedText {
22
+ text: string;
23
+ glyphs: IDocumentSkeletonGlyph[];
24
+ }
25
+ export declare function shaping(content: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): IShapedText[];
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../basics/i-document-skeleton-cached';
17
- import type { ISectionBreakConfig } from '../../../basics/interfaces';
18
- import type { DataStreamTreeNode } from '../view-model/data-stream-tree-node';
19
- import type { DocumentViewModel } from '../view-model/document-view-model';
20
- export declare function dealWithSections(bodyModel: DocumentViewModel, sectionNode: DataStreamTreeNode, curPage: IDocumentSkeletonPage, sectionBreakConfig: ISectionBreakConfig, skeletonResourceReference: ISkeletonResourceReference, preRenderedBlockIdMap?: Map<string, boolean>): {
16
+ import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../../basics/i-document-skeleton-cached';
17
+ import type { ISectionBreakConfig } from '../../../../basics/interfaces';
18
+ import type { DataStreamTreeNode } from '../../view-model/data-stream-tree-node';
19
+ import type { DocumentViewModel } from '../../view-model/document-view-model';
20
+ export declare function dealWithSections(bodyModel: DocumentViewModel, sectionNode: DataStreamTreeNode, curPage: IDocumentSkeletonPage, sectionBreakConfig: ISectionBreakConfig, skeletonResourceReference: ISkeletonResourceReference, _preRenderedBlockIdMap?: Map<string, boolean>): {
21
21
  pages: IDocumentSkeletonPage[];
22
22
  renderedBlockIdMap: Map<string, boolean>;
23
23
  };
@@ -14,12 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { LocaleService, Nullable } from '@univerjs/core';
17
- import type { IDocumentSkeletonCached, IDocumentSkeletonSpan } from '../../basics/i-document-skeleton-cached';
18
- import { PageLayoutType } from '../../basics/i-document-skeleton-cached';
19
- import type { INodeInfo, INodePosition, INodeSearch } from '../../basics/interfaces';
20
- import type { IViewportBound, Vector2 } from '../../basics/vector2';
21
- import { Skeleton } from '../skeleton';
22
- import type { DocumentViewModel } from './view-model/document-view-model';
17
+ import type { IDocumentSkeletonCached, IDocumentSkeletonGlyph } from '../../../basics/i-document-skeleton-cached';
18
+ import { PageLayoutType } from '../../../basics/i-document-skeleton-cached';
19
+ import type { INodeInfo, INodePosition, INodeSearch } from '../../../basics/interfaces';
20
+ import type { IViewportBound, Vector2 } from '../../../basics/vector2';
21
+ import { Skeleton } from '../../skeleton';
22
+ import type { DocumentViewModel } from '../view-model/document-view-model';
23
23
  export declare enum DocumentSkeletonState {
24
24
  PENDING = "pending",
25
25
  CALCULATING = "calculating",
@@ -42,10 +42,10 @@ export declare class DocumentSkeleton extends Skeleton {
42
42
  };
43
43
  private _getPageActualWidth;
44
44
  getPageSize(): import("@univerjs/core").ISize | undefined;
45
- findPositionBySpan(span: IDocumentSkeletonSpan): Nullable<INodeSearch>;
45
+ findPositionByGlyph(glyph: IDocumentSkeletonGlyph): Nullable<INodeSearch>;
46
46
  findNodePositionByCharIndex(charIndex: number, isBack?: boolean): Nullable<INodePosition>;
47
- findNodeByCharIndex(charIndex: number): Nullable<IDocumentSkeletonSpan>;
48
- findSpanByPosition(position: Nullable<INodePosition>): IDocumentSkeletonSpan | undefined;
47
+ findNodeByCharIndex(charIndex: number): Nullable<IDocumentSkeletonGlyph>;
48
+ findGlyphByPosition(position: Nullable<INodePosition>): IDocumentSkeletonGlyph | undefined;
49
49
  findNodeByCoord(coord: Vector2, pageLayoutType: PageLayoutType, pageMarginLeft: number, pageMarginTop: number): Nullable<INodeInfo>;
50
50
  private _getNearestNode;
51
51
  private _getPageBoundingBox;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
@@ -15,5 +15,5 @@
15
15
  */
16
16
  import type { ISectionColumnProperties } from '@univerjs/core';
17
17
  import { ColumnSeparatorType } from '@univerjs/core';
18
- import type { IDocumentSkeletonColumn } from '../../../basics/i-document-skeleton-cached';
18
+ import type { IDocumentSkeletonColumn } from '../../../../basics/i-document-skeleton-cached';
19
19
  export declare function createSkeletonColumn(columnIndex: number | undefined, columnProperties: ISectionColumnProperties[], columnSeparatorType?: ColumnSeparatorType, pageWidth?: number): IDocumentSkeletonColumn;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { IAdjustability, IDocumentSkeletonBullet, IDocumentSkeletonDivide, IDocumentSkeletonGlyph } from '../../../../basics/i-document-skeleton-cached';
17
+ import { GlyphType } from '../../../../basics/i-document-skeleton-cached';
18
+ import type { IFontCreateConfig } from '../../../../basics/interfaces';
19
+ export declare function isSpace(char: string): boolean;
20
+ export declare function isJustifiable(content: string): boolean;
21
+ export declare function baseAdjustability(content: string, width: number): IAdjustability;
22
+ export declare function createSkeletonWordGlyph(content: string, config: IFontCreateConfig, glyphWidth?: number): IDocumentSkeletonGlyph;
23
+ export declare function createSkeletonLetterGlyph(content: string, config: IFontCreateConfig, glyphWidth?: number): IDocumentSkeletonGlyph;
24
+ export declare function createSkeletonTabGlyph(config: IFontCreateConfig, glyphWidth?: number): IDocumentSkeletonGlyph;
25
+ export declare function _createSkeletonWordOrLetter(glyphType: GlyphType, content: string, config: IFontCreateConfig, glyphWidth?: number): IDocumentSkeletonGlyph;
26
+ export declare function createSkeletonBulletGlyph(glyph: IDocumentSkeletonGlyph, bulletSkeleton: IDocumentSkeletonBullet, charSpaceApply: number): IDocumentSkeletonGlyph;
27
+ export declare function setGlyphGroupLeft(glyphGroup: IDocumentSkeletonGlyph[], left?: number): void;
28
+ export declare function setGlyphLeft(glyph: IDocumentSkeletonGlyph, left?: number): void;
29
+ export declare function addGlyphToDivide(divide: IDocumentSkeletonDivide, glyphGroup: IDocumentSkeletonGlyph[], offsetLeft?: number): void;
30
+ export declare function glyphShrinkRight(glyph: IDocumentSkeletonGlyph, amount: number): void;
31
+ export declare function glyphShrinkLeft(glyph: IDocumentSkeletonGlyph, amount: number): void;
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonDivide, IDocumentSkeletonDrawing, IDocumentSkeletonDrawingAnchor, IDocumentSkeletonLine, LineType } from '../../../basics/i-document-skeleton-cached';
16
+ import type { IDocumentSkeletonDivide, IDocumentSkeletonDrawing, IDocumentSkeletonDrawingAnchor, IDocumentSkeletonLine, LineType } from '../../../../basics/i-document-skeleton-cached';
17
17
  interface ILineBoundingBox {
18
18
  lineHeight: number;
19
19
  lineTop: number;
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../basics/i-document-skeleton-cached';
17
- import { BreakType } from '../../../basics/i-document-skeleton-cached';
18
- import type { ISectionBreakConfig } from '../../../basics/interfaces';
16
+ import type { IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../../basics/i-document-skeleton-cached';
17
+ import { BreakType } from '../../../../basics/i-document-skeleton-cached';
18
+ import type { ISectionBreakConfig } from '../../../../basics/interfaces';
19
19
  export declare function createSkeletonPage(sectionBreakConfig: ISectionBreakConfig, skeletonResourceReference: ISkeletonResourceReference, pageNumber?: number, breakType?: BreakType): IDocumentSkeletonPage;
@@ -15,6 +15,6 @@
15
15
  */
16
16
  import type { ISectionColumnProperties } from '@univerjs/core';
17
17
  import { ColumnSeparatorType } from '@univerjs/core';
18
- import type { IDocumentSkeletonColumn, IDocumentSkeletonSection } from '../../../basics/i-document-skeleton-cached';
18
+ import type { IDocumentSkeletonColumn, IDocumentSkeletonSection } from '../../../../basics/i-document-skeleton-cached';
19
19
  export declare function createSkeletonSection(columnProperties?: ISectionColumnProperties[], columnSeparatorType?: ColumnSeparatorType, top?: number, left?: number, sectionWidth?: number, sectionHeight?: number): IDocumentSkeletonSection;
20
20
  export declare function setColumnFullState(column: IDocumentSkeletonColumn, state: boolean): void;
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { INumberUnit, IParagraphStyle, ITextStyle, ObjectPositionH, ObjectPositionV } from '@univerjs/core';
17
17
  import { BooleanNumber, GridType, SpacingRule } from '@univerjs/core';
18
- import type { IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonLine, IDocumentSkeletonPage, IDocumentSkeletonSpan } from '../../../basics/i-document-skeleton-cached';
18
+ import type { IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonGlyph, IDocumentSkeletonLine, IDocumentSkeletonPage } from '../../../basics/i-document-skeleton-cached';
19
19
  import type { IParagraphConfig, ISectionBreakConfig } from '../../../basics/interfaces';
20
20
  import type { DataStreamTreeNode } from '../view-model/data-stream-tree-node';
21
21
  import type { DocumentViewModel } from '../view-model/document-view-model';
@@ -39,7 +39,7 @@ export declare function getLastNotFullDivideInfo(page: IDocumentSkeletonPage): {
39
39
  } | undefined;
40
40
  export declare function getNextDivide(curLine: IDocumentSkeletonLine, curDivide: IDocumentSkeletonDivide): IDocumentSkeletonDivide | undefined;
41
41
  export declare function getLastRemainingDivide(curLine: IDocumentSkeletonLine): IDocumentSkeletonDivide | undefined;
42
- export declare function getLastSpan(page: IDocumentSkeletonPage): IDocumentSkeletonSpan | undefined;
42
+ export declare function getLastSpan(page: IDocumentSkeletonPage): IDocumentSkeletonGlyph | undefined;
43
43
  export declare function isColumnFull(page: IDocumentSkeletonPage): boolean;
44
44
  export declare function isBlankPage(page: IDocumentSkeletonPage): boolean;
45
45
  export declare function isBlankColumn(column: IDocumentSkeletonColumn): boolean;
@@ -62,12 +62,12 @@ export declare function getCharSpaceConfig(sectionBreakConfig: ISectionBreakConf
62
62
  snapToGrid: BooleanNumber;
63
63
  };
64
64
  export declare function updateBlockIndex(pages: IDocumentSkeletonPage[], start?: number): void;
65
- export declare function spanIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (span: IDocumentSkeletonSpan) => void): void;
65
+ export declare function spanIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (glyph: IDocumentSkeletonGlyph) => void): void;
66
66
  export declare function lineIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (line: IDocumentSkeletonLine) => void): void;
67
67
  export declare function columnIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (column: IDocumentSkeletonColumn) => void): void;
68
68
  export declare function getPositionHorizon(positionH: ObjectPositionH, column: IDocumentSkeletonColumn, page: IDocumentSkeletonPage, objectWidth: number, isPageBreak?: boolean): number | undefined;
69
69
  export declare function getPositionVertical(positionV: ObjectPositionV, page: IDocumentSkeletonPage, lineTop: number, lineHeight: number, objectHeight: number, blockAnchorTop?: number, isPageBreak?: boolean): number | undefined;
70
- export declare function getSpanGroupWidth(divide: IDocumentSkeletonDivide): number;
70
+ export declare function getGlyphGroupWidth(divide: IDocumentSkeletonDivide): number;
71
71
  interface IFontCreateConfig {
72
72
  fontStyle: {
73
73
  fontString: string;
@@ -13,8 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonLine, IDocumentSkeletonPage, IDocumentSkeletonSection, IDocumentSkeletonSpan } from '../../../basics/i-document-skeleton-cached';
17
- import { PageLayoutType } from '../../../basics/i-document-skeleton-cached';
16
+ import type { IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonGlyph, IDocumentSkeletonLine, IDocumentSkeletonPage, IDocumentSkeletonSection } from '../../basics/i-document-skeleton-cached';
17
+ import { PageLayoutType } from '../../basics/i-document-skeleton-cached';
18
18
  export declare class Liquid {
19
19
  private _translateX;
20
20
  private _translateY;
@@ -28,7 +28,7 @@ export declare class Liquid {
28
28
  translateRestore(): void;
29
29
  translatePagePadding(page: IDocumentSkeletonPage): void;
30
30
  restorePagePadding(page: IDocumentSkeletonPage): void;
31
- translatePage(page: IDocumentSkeletonPage, type?: PageLayoutType, left?: number, top?: number, right?: number, bottom?: number): {
31
+ translatePage(page: IDocumentSkeletonPage, type?: PageLayoutType, left?: number, top?: number, _right?: number, _bottom?: number): {
32
32
  x: number;
33
33
  y: number;
34
34
  };
@@ -48,7 +48,7 @@ export declare class Liquid {
48
48
  x: number;
49
49
  y: number;
50
50
  };
51
- translateSpan(span: IDocumentSkeletonSpan): {
51
+ translateSpan(glyph: IDocumentSkeletonGlyph): {
52
52
  x: number;
53
53
  y: number;
54
54
  };