parseText.d.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { TextAlign, TextVerticalAlign, NullUndefined } from '../../core/types';
  2. import type { DefaultTextStyle, TextStyleProps } from '../Text';
  3. import type { TSpanStyleProps } from '../TSpan';
  4. import BoundingRect from '../../core/BoundingRect';
  5. interface InnerTruncateOption {
  6. maxIteration?: number;
  7. minChar?: number;
  8. placeholder?: string;
  9. maxIterations?: number;
  10. }
  11. export declare function truncateText(text: string, containerWidth: number, font: string, ellipsis?: string, options?: InnerTruncateOption): string;
  12. export interface PlainTextContentBlock {
  13. lineHeight: number;
  14. calculatedLineHeight: number;
  15. contentWidth: number;
  16. contentHeight: number;
  17. width: number;
  18. height: number;
  19. outerWidth: number;
  20. outerHeight: number;
  21. lines: string[];
  22. isTruncated: boolean;
  23. }
  24. export declare function parsePlainText(rawText: unknown, style: Omit<TextStyleProps, 'align' | 'verticalAlign'>, defaultOuterWidth: number | NullUndefined, defaultOuterHeight: number | NullUndefined): PlainTextContentBlock;
  25. declare class RichTextToken {
  26. styleName: string;
  27. text: string;
  28. width: number;
  29. height: number;
  30. innerHeight: number;
  31. contentHeight: number;
  32. contentWidth: number;
  33. lineHeight: number;
  34. font: string;
  35. align: TextAlign;
  36. verticalAlign: TextVerticalAlign;
  37. textPadding: number[];
  38. percentWidth?: string;
  39. isLineHolder: boolean;
  40. }
  41. declare class RichTextLine {
  42. lineHeight: number;
  43. width: number;
  44. tokens: RichTextToken[];
  45. constructor(tokens?: RichTextToken[]);
  46. }
  47. export declare class RichTextContentBlock {
  48. width: number;
  49. height: number;
  50. contentWidth: number;
  51. contentHeight: number;
  52. outerWidth: number;
  53. outerHeight: number;
  54. lines: RichTextLine[];
  55. isTruncated: boolean;
  56. }
  57. export declare function parseRichText(rawText: unknown, style: Omit<TextStyleProps, 'align' | 'verticalAlign'>, defaultOuterWidth: number | NullUndefined, defaultOuterHeight: number | NullUndefined, topTextAlign: TextAlign): RichTextContentBlock;
  58. export declare function calcInnerTextOverflowArea(out: CalcInnerTextOverflowAreaOut, overflowRect: DefaultTextStyle['overflowRect'], baseX: number, baseY: number, textAlign: TextAlign, textVerticalAlign: TextVerticalAlign): void;
  59. export declare type CalcInnerTextOverflowAreaOut = {
  60. baseX: number;
  61. baseY: number;
  62. outerWidth: number | NullUndefined;
  63. outerHeight: number | NullUndefined;
  64. };
  65. export declare function tSpanCreateBoundingRect(style: Pick<TSpanStyleProps, 'text' | 'font' | 'x' | 'y' | 'textAlign' | 'textBaseline' | 'lineWidth'>): BoundingRect;
  66. export declare function tSpanCreateBoundingRect2(style: Pick<TSpanStyleProps, 'x' | 'y' | 'textAlign' | 'textBaseline' | 'lineWidth'>, contentWidth: number, contentHeight: number, forceLineWidth: number | NullUndefined): BoundingRect;
  67. export declare function tSpanHasStroke(style: TSpanStyleProps): boolean;
  68. export {};