MathItem.d.ts 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { MathDocument } from './MathDocument.js';
  2. import { InputJax } from './InputJax.js';
  3. import { OptionList } from '../util/Options.js';
  4. import { MmlNode } from './MmlTree/MmlNode.js';
  5. export declare type Location<N, T> = {
  6. i?: number;
  7. n?: number;
  8. delim?: string;
  9. node?: N | T;
  10. };
  11. export declare type Metrics = {
  12. em: number;
  13. ex: number;
  14. containerWidth: number;
  15. lineWidth: number;
  16. scale: number;
  17. };
  18. export interface MathItem<N, T, D> {
  19. math: string;
  20. inputJax: InputJax<N, T, D>;
  21. display: boolean;
  22. isEscaped: boolean;
  23. start: Location<N, T>;
  24. end: Location<N, T>;
  25. root: MmlNode;
  26. typesetRoot: N;
  27. metrics: Metrics;
  28. inputData: OptionList;
  29. outputData: OptionList;
  30. render(document: MathDocument<N, T, D>): void;
  31. rerender(document: MathDocument<N, T, D>, start?: number): void;
  32. convert(document: MathDocument<N, T, D>, end?: number): void;
  33. compile(document: MathDocument<N, T, D>): void;
  34. typeset(document: MathDocument<N, T, D>): void;
  35. updateDocument(document: MathDocument<N, T, D>): void;
  36. removeFromDocument(restore: boolean): void;
  37. setMetrics(em: number, ex: number, cwidth: number, lwidth: number, scale: number): void;
  38. state(state?: number, restore?: boolean): number;
  39. reset(restore?: boolean): void;
  40. }
  41. export declare type ProtoItem<N, T> = {
  42. math: string;
  43. start: Location<N, T>;
  44. end: Location<N, T>;
  45. open?: string;
  46. close?: string;
  47. n?: number;
  48. display: boolean;
  49. };
  50. export declare function protoItem<N, T>(open: string, math: string, close: string, n: number, start: number, end: number, display?: boolean): ProtoItem<N, T>;
  51. export declare abstract class AbstractMathItem<N, T, D> implements MathItem<N, T, D> {
  52. math: string;
  53. inputJax: InputJax<N, T, D>;
  54. display: boolean;
  55. start: Location<N, T>;
  56. end: Location<N, T>;
  57. root: MmlNode;
  58. typesetRoot: N;
  59. metrics: Metrics;
  60. inputData: OptionList;
  61. outputData: OptionList;
  62. protected _state: number;
  63. get isEscaped(): boolean;
  64. constructor(math: string, jax: InputJax<N, T, D>, display?: boolean, start?: Location<N, T>, end?: Location<N, T>);
  65. render(document: MathDocument<N, T, D>): void;
  66. rerender(document: MathDocument<N, T, D>, start?: number): void;
  67. convert(document: MathDocument<N, T, D>, end?: number): void;
  68. compile(document: MathDocument<N, T, D>): void;
  69. typeset(document: MathDocument<N, T, D>): void;
  70. updateDocument(_document: MathDocument<N, T, D>): void;
  71. removeFromDocument(_restore?: boolean): void;
  72. setMetrics(em: number, ex: number, cwidth: number, lwidth: number, scale: number): void;
  73. state(state?: number, restore?: boolean): number;
  74. reset(restore?: boolean): void;
  75. }
  76. export declare const STATE: {
  77. [state: string]: number;
  78. };
  79. export declare function newState(name: string, state: number): void;