OutputJax.d.ts 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { AbstractOutputJax } from '../../core/OutputJax.js';
  2. import { MathDocument } from '../../core/MathDocument.js';
  3. import { MathItem, Metrics } from '../../core/MathItem.js';
  4. import { MmlNode } from '../../core/MmlTree/MmlNode.js';
  5. import { FontData, FontDataClass, CssFontData } from './FontData.js';
  6. import { OptionList } from '../../util/Options.js';
  7. import { CommonWrapper, AnyWrapper } from './Wrapper.js';
  8. import { CommonWrapperFactory, AnyWrapperFactory } from './WrapperFactory.js';
  9. import { StyleList, Styles } from '../../util/Styles.js';
  10. import { StyleList as CssStyleList, CssStyles } from '../../util/StyleList.js';
  11. export interface ExtendedMetrics extends Metrics {
  12. family: string;
  13. }
  14. export declare type MetricMap<N> = Map<N, ExtendedMetrics>;
  15. export declare type UnknownBBox = {
  16. w: number;
  17. h: number;
  18. d: number;
  19. };
  20. export declare type UnknownMap = Map<string, UnknownBBox>;
  21. export declare type UnknownVariantMap = Map<string, UnknownMap>;
  22. export declare abstract class CommonOutputJax<N, T, D, W extends AnyWrapper, F extends AnyWrapperFactory, FD extends FontData<any, any, any>, FC extends FontDataClass<any, any, any>> extends AbstractOutputJax<N, T, D> {
  23. static NAME: string;
  24. static OPTIONS: OptionList;
  25. static commonStyles: CssStyleList;
  26. cssStyles: CssStyles;
  27. document: MathDocument<N, T, D>;
  28. math: MathItem<N, T, D>;
  29. container: N;
  30. table: AnyWrapper;
  31. pxPerEm: number;
  32. font: FD;
  33. factory: F;
  34. nodeMap: Map<MmlNode, W>;
  35. testInline: N;
  36. testDisplay: N;
  37. protected unknownCache: UnknownVariantMap;
  38. constructor(options?: OptionList, defaultFactory?: typeof CommonWrapperFactory, defaultFont?: FC);
  39. typeset(math: MathItem<N, T, D>, html: MathDocument<N, T, D>): N;
  40. protected createNode(): N;
  41. protected setScale(node: N): void;
  42. toDOM(math: MathItem<N, T, D>, node: N, html?: MathDocument<N, T, D>): void;
  43. protected abstract processMath(math: MmlNode, node: N): void;
  44. getBBox(math: MathItem<N, T, D>, html: MathDocument<N, T, D>): any;
  45. getMetrics(html: MathDocument<N, T, D>): void;
  46. getMetricsFor(node: N, display: boolean): ExtendedMetrics;
  47. protected getMetricMaps(html: MathDocument<N, T, D>): MetricMap<N>[];
  48. protected getTestElement(node: N, display: boolean): N;
  49. protected measureMetrics(node: N, getFamily: boolean): ExtendedMetrics;
  50. styleSheet(html: MathDocument<N, T, D>): N;
  51. protected addFontStyles(styles: CssStyles): void;
  52. protected addWrapperStyles(styles: CssStyles): void;
  53. protected addClassStyles(CLASS: typeof CommonWrapper, styles: CssStyles): void;
  54. protected setDocument(html: MathDocument<N, T, D>): void;
  55. html(type: string, def?: OptionList, content?: (N | T)[], ns?: string): N;
  56. text(text: string): T;
  57. fixed(m: number, n?: number): string;
  58. abstract unknownText(text: string, variant: string): N;
  59. measureText(text: string, variant: string, font?: CssFontData): UnknownBBox;
  60. measureTextNodeWithCache(text: N, chars: string, variant: string, font?: CssFontData): UnknownBBox;
  61. abstract measureTextNode(text: N): UnknownBBox;
  62. measureXMLnode(xml: N): UnknownBBox;
  63. cssFontStyles(font: CssFontData, styles?: StyleList): StyleList;
  64. getFontData(styles: Styles): CssFontData;
  65. }