Notation.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { AnyWrapper } from './Wrapper.js';
  2. import { CommonMenclose } from './Wrappers/menclose.js';
  3. export declare const ARROWX = 4, ARROWDX = 1, ARROWY = 2;
  4. export declare const THICKNESS = 0.067;
  5. export declare const PADDING = 0.2;
  6. export declare const SOLID: string;
  7. export declare type Menclose = CommonMenclose<any, any, any>;
  8. export declare type PaddingData = [number, number, number, number];
  9. export declare type Renderer<W extends AnyWrapper, N> = (node: W, child: N) => void;
  10. export declare type BBoxExtender<W extends AnyWrapper> = (node: W) => PaddingData;
  11. export declare type BBoxBorder<W extends AnyWrapper> = (node: W) => PaddingData;
  12. export declare type Initializer<W extends AnyWrapper> = (node: W) => void;
  13. export declare type NotationDef<W extends AnyWrapper, N> = {
  14. renderer: Renderer<W, N>;
  15. bbox: BBoxExtender<W>;
  16. border?: BBoxBorder<W>;
  17. renderChild?: boolean;
  18. init?: Initializer<W>;
  19. remove?: string;
  20. };
  21. export declare type DefPair<W extends AnyWrapper, N> = [string, NotationDef<W, N>];
  22. export declare type DefList<W extends AnyWrapper, N> = Map<string, NotationDef<W, N>>;
  23. export declare type DefPairF<T, W extends AnyWrapper, N> = (name: T) => DefPair<W, N>;
  24. export declare type List<W extends AnyWrapper, N> = {
  25. [notation: string]: NotationDef<W, N>;
  26. };
  27. export declare const sideIndex: {
  28. top: number;
  29. right: number;
  30. bottom: number;
  31. left: number;
  32. };
  33. export declare type Side = keyof typeof sideIndex;
  34. export declare const sideNames: ("left" | "top" | "bottom" | "right")[];
  35. export declare const fullBBox: BBoxExtender<Menclose>;
  36. export declare const fullPadding: BBoxExtender<Menclose>;
  37. export declare const fullBorder: BBoxBorder<Menclose>;
  38. export declare const arrowHead: (node: Menclose) => number;
  39. export declare const arrowBBoxHD: (node: Menclose, TRBL: PaddingData) => PaddingData;
  40. export declare const arrowBBoxW: (node: Menclose, TRBL: PaddingData) => PaddingData;
  41. export declare const arrowDef: {
  42. [name: string]: [number, boolean, boolean, string];
  43. };
  44. export declare const diagonalArrowDef: {
  45. [name: string]: [number, number, boolean, string];
  46. };
  47. export declare const arrowBBox: {
  48. [name: string]: BBoxExtender<Menclose>;
  49. };
  50. export declare const CommonBorder: <W extends Menclose, N>(render: Renderer<W, N>) => DefPairF<"left" | "top" | "bottom" | "right", W, N>;
  51. export declare const CommonBorder2: <W extends Menclose, N>(render: Renderer<W, N>) => (name: string, side1: Side, side2: Side) => DefPair<W, N>;
  52. export declare const CommonDiagonalStrike: <W extends Menclose, N>(render: (sname: string) => Renderer<W, N>) => DefPairF<string, W, N>;
  53. export declare const CommonDiagonalArrow: <W extends Menclose, N>(render: Renderer<W, N>) => DefPairF<string, W, N>;
  54. export declare const CommonArrow: <W extends Menclose, N>(render: Renderer<W, N>) => DefPairF<string, W, N>;