MmlNode.d.ts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. import { Attributes } from './Attributes.js';
  2. import { Property, PropertyList, Node, AbstractNode, AbstractEmptyNode, NodeClass } from '../Tree/Node.js';
  3. import { MmlFactory } from './MmlFactory.js';
  4. import { DOMAdaptor } from '../DOMAdaptor.js';
  5. export declare type AttributeList = {
  6. [attribute: string]: [string, Property];
  7. };
  8. export declare const TEXCLASS: {
  9. ORD: number;
  10. OP: number;
  11. BIN: number;
  12. REL: number;
  13. OPEN: number;
  14. CLOSE: number;
  15. PUNCT: number;
  16. INNER: number;
  17. VCENTER: number;
  18. NONE: number;
  19. };
  20. export declare const TEXCLASSNAMES: string[];
  21. export declare const indentAttributes: string[];
  22. export declare type MMLNODE = MmlNode | TextNode | XMLNode;
  23. export interface MmlNode extends Node {
  24. readonly isToken: boolean;
  25. readonly isEmbellished: boolean;
  26. readonly isSpacelike: boolean;
  27. readonly linebreakContainer: boolean;
  28. readonly hasNewLine: boolean;
  29. readonly arity: number;
  30. readonly isInferred: boolean;
  31. readonly Parent: MmlNode;
  32. readonly notParent: boolean;
  33. parent: MmlNode;
  34. texClass: number;
  35. prevClass: number;
  36. prevLevel: number;
  37. attributes: Attributes;
  38. core(): MmlNode;
  39. coreMO(): MmlNode;
  40. coreIndex(): number;
  41. childPosition(): number;
  42. setTeXclass(prev: MmlNode): MmlNode;
  43. texSpacing(): string;
  44. hasSpacingAttributes(): boolean;
  45. setInheritedAttributes(attributes: AttributeList, display: boolean, level: number, prime: boolean): void;
  46. inheritAttributesFrom(node: MmlNode): void;
  47. mError(message: string, options: PropertyList, short?: boolean): MmlNode;
  48. verifyTree(options?: PropertyList): void;
  49. }
  50. export interface MmlNodeClass extends NodeClass {
  51. defaults?: PropertyList;
  52. new (factory: MmlFactory, attributes?: PropertyList, children?: MmlNode[]): MmlNode;
  53. }
  54. export declare abstract class AbstractMmlNode extends AbstractNode implements MmlNode {
  55. static defaults: PropertyList;
  56. static noInherit: {
  57. [node1: string]: {
  58. [node2: string]: {
  59. [attribute: string]: boolean;
  60. };
  61. };
  62. };
  63. static alwaysInherit: {
  64. [name: string]: boolean;
  65. };
  66. static verifyDefaults: PropertyList;
  67. prevClass: number;
  68. prevLevel: number;
  69. attributes: Attributes;
  70. childNodes: MmlNode[];
  71. parent: MmlNode;
  72. readonly factory: MmlFactory;
  73. protected texclass: number;
  74. constructor(factory: MmlFactory, attributes?: PropertyList, children?: MmlNode[]);
  75. copy(keepIds?: boolean): AbstractMmlNode;
  76. get texClass(): number;
  77. set texClass(texClass: number);
  78. get isToken(): boolean;
  79. get isEmbellished(): boolean;
  80. get isSpacelike(): boolean;
  81. get linebreakContainer(): boolean;
  82. get hasNewLine(): boolean;
  83. get arity(): number;
  84. get isInferred(): boolean;
  85. get Parent(): MmlNode;
  86. get notParent(): boolean;
  87. setChildren(children: MmlNode[]): void;
  88. appendChild(child: MmlNode): Node;
  89. replaceChild(newChild: MmlNode, oldChild: MmlNode): Node;
  90. core(): MmlNode;
  91. coreMO(): MmlNode;
  92. coreIndex(): number;
  93. childPosition(): number;
  94. setTeXclass(prev: MmlNode): MmlNode;
  95. protected updateTeXclass(core: MmlNode): void;
  96. protected getPrevClass(prev: MmlNode): void;
  97. texSpacing(): string;
  98. hasSpacingAttributes(): boolean;
  99. setInheritedAttributes(attributes?: AttributeList, display?: boolean, level?: number, prime?: boolean): void;
  100. protected setChildInheritedAttributes(attributes: AttributeList, display: boolean, level: number, prime: boolean): void;
  101. protected addInheritedAttributes(current: AttributeList, attributes: PropertyList): AttributeList;
  102. inheritAttributesFrom(node: MmlNode): void;
  103. verifyTree(options?: PropertyList): void;
  104. protected verifyAttributes(options: PropertyList): void;
  105. protected verifyChildren(options: PropertyList): void;
  106. mError(message: string, options: PropertyList, short?: boolean): MmlNode;
  107. }
  108. export declare abstract class AbstractMmlTokenNode extends AbstractMmlNode {
  109. static defaults: PropertyList;
  110. get isToken(): boolean;
  111. getText(): string;
  112. protected setChildInheritedAttributes(attributes: AttributeList, display: boolean, level: number, prime: boolean): void;
  113. walkTree(func: (node: Node, data?: any) => void, data?: any): any;
  114. }
  115. export declare abstract class AbstractMmlLayoutNode extends AbstractMmlNode {
  116. static defaults: PropertyList;
  117. get isSpacelike(): boolean;
  118. get isEmbellished(): boolean;
  119. get arity(): number;
  120. core(): MmlNode;
  121. coreMO(): MmlNode;
  122. setTeXclass(prev: MmlNode): MmlNode;
  123. }
  124. export declare abstract class AbstractMmlBaseNode extends AbstractMmlNode {
  125. static defaults: PropertyList;
  126. get isEmbellished(): boolean;
  127. core(): MmlNode;
  128. coreMO(): MmlNode;
  129. setTeXclass(prev: MmlNode): MmlNode;
  130. }
  131. export declare abstract class AbstractMmlEmptyNode extends AbstractEmptyNode implements MmlNode {
  132. parent: MmlNode;
  133. get isToken(): boolean;
  134. get isEmbellished(): boolean;
  135. get isSpacelike(): boolean;
  136. get linebreakContainer(): boolean;
  137. get hasNewLine(): boolean;
  138. get arity(): number;
  139. get isInferred(): boolean;
  140. get notParent(): boolean;
  141. get Parent(): MmlNode;
  142. get texClass(): number;
  143. get prevClass(): number;
  144. get prevLevel(): number;
  145. hasSpacingAttributes(): boolean;
  146. get attributes(): Attributes;
  147. core(): MmlNode;
  148. coreMO(): MmlNode;
  149. coreIndex(): number;
  150. childPosition(): number;
  151. setTeXclass(prev: MmlNode): MmlNode;
  152. texSpacing(): string;
  153. setInheritedAttributes(_attributes: AttributeList, _display: boolean, _level: number, _prime: boolean): void;
  154. inheritAttributesFrom(_node: MmlNode): void;
  155. verifyTree(_options: PropertyList): void;
  156. mError(_message: string, _options: PropertyList, _short?: boolean): MmlNode;
  157. }
  158. export declare class TextNode extends AbstractMmlEmptyNode {
  159. protected text: string;
  160. get kind(): string;
  161. getText(): string;
  162. setText(text: string): TextNode;
  163. copy(): TextNode;
  164. toString(): string;
  165. }
  166. export declare class XMLNode extends AbstractMmlEmptyNode {
  167. protected xml: Object;
  168. protected adaptor: DOMAdaptor<any, any, any>;
  169. get kind(): string;
  170. getXML(): Object;
  171. setXML(xml: Object, adaptor?: DOMAdaptor<any, any, any>): XMLNode;
  172. getSerializedXML(): string;
  173. copy(): XMLNode;
  174. toString(): string;
  175. }