formatting-element-list.d.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import type { TagToken } from '../common/token.js';
  2. import type { TreeAdapter, TreeAdapterTypeMap } from '../tree-adapters/interface.js';
  3. export declare enum EntryType {
  4. Marker = 0,
  5. Element = 1
  6. }
  7. interface MarkerEntry {
  8. type: EntryType.Marker;
  9. }
  10. export interface ElementEntry<T extends TreeAdapterTypeMap> {
  11. type: EntryType.Element;
  12. element: T['element'];
  13. token: TagToken;
  14. }
  15. export type Entry<T extends TreeAdapterTypeMap> = MarkerEntry | ElementEntry<T>;
  16. export declare class FormattingElementList<T extends TreeAdapterTypeMap> {
  17. private treeAdapter;
  18. entries: Entry<T>[];
  19. bookmark: Entry<T> | null;
  20. constructor(treeAdapter: TreeAdapter<T>);
  21. private _getNoahArkConditionCandidates;
  22. private _ensureNoahArkCondition;
  23. insertMarker(): void;
  24. pushElement(element: T['element'], token: TagToken): void;
  25. insertElementAfterBookmark(element: T['element'], token: TagToken): void;
  26. removeEntry(entry: Entry<T>): void;
  27. /**
  28. * Clears the list of formatting elements up to the last marker.
  29. *
  30. * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker
  31. */
  32. clearToLastMarker(): void;
  33. getElementEntryInScopeWithTagName(tagName: string): ElementEntry<T> | null;
  34. getElementEntry(element: T['element']): ElementEntry<T> | undefined;
  35. }
  36. export {};
  37. //# sourceMappingURL=formatting-element-list.d.ts.map