markstream-angular 0.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -0
- package/dist/index.css +1 -0
- package/dist/index.js +7967 -0
- package/dist/types/components/AdmonitionNode/AdmonitionNode.component.d.ts +11 -0
- package/dist/types/components/BlockquoteNode/BlockquoteNode.component.d.ts +9 -0
- package/dist/types/components/CheckboxNode/CheckboxNode.component.d.ts +5 -0
- package/dist/types/components/CodeBlockNode/CodeBlockNode.component.d.ts +84 -0
- package/dist/types/components/CodeBlockNode/HtmlPreviewFrame.component.d.ts +9 -0
- package/dist/types/components/D2BlockNode/D2BlockNode.component.d.ts +44 -0
- package/dist/types/components/DefinitionListNode/DefinitionListNode.component.d.ts +11 -0
- package/dist/types/components/DynamicNodeHost/DynamicNodeHost.component.d.ts +16 -0
- package/dist/types/components/EmojiNode/EmojiNode.component.d.ts +5 -0
- package/dist/types/components/EmphasisNode/EmphasisNode.component.d.ts +8 -0
- package/dist/types/components/FallbackComponent/FallbackComponent.component.d.ts +14 -0
- package/dist/types/components/FootnoteAnchorNode/FootnoteAnchorNode.component.d.ts +7 -0
- package/dist/types/components/FootnoteNode/FootnoteNode.component.d.ts +9 -0
- package/dist/types/components/FootnoteReferenceNode/FootnoteReferenceNode.component.d.ts +6 -0
- package/dist/types/components/HardBreakNode/HardBreakNode.component.d.ts +2 -0
- package/dist/types/components/HeadingNode/HeadingNode.component.d.ts +10 -0
- package/dist/types/components/HighlightNode/HighlightNode.component.d.ts +8 -0
- package/dist/types/components/HtmlBlockNode/HtmlBlockNode.component.d.ts +10 -0
- package/dist/types/components/HtmlInlineNode/HtmlInlineNode.component.d.ts +10 -0
- package/dist/types/components/ImageNode/ImageNode.component.d.ts +8 -0
- package/dist/types/components/InfographicBlockNode/InfographicBlockNode.component.d.ts +58 -0
- package/dist/types/components/InlineCodeNode/InlineCodeNode.component.d.ts +5 -0
- package/dist/types/components/InsertNode/InsertNode.component.d.ts +8 -0
- package/dist/types/components/LinkNode/LinkNode.component.d.ts +24 -0
- package/dist/types/components/ListItemNode/ListItemNode.component.d.ts +9 -0
- package/dist/types/components/ListNode/ListNode.component.d.ts +11 -0
- package/dist/types/components/MathBlockNode/MathBlockNode.component.d.ts +17 -0
- package/dist/types/components/MathInlineNode/MathInlineNode.component.d.ts +18 -0
- package/dist/types/components/MermaidBlockNode/MermaidBlockNode.component.d.ts +67 -0
- package/dist/types/components/NestedRenderer/NestedRenderer.component.d.ts +33 -0
- package/dist/types/components/NodeOutlet/NodeOutlet.component.d.ts +15 -0
- package/dist/types/components/NodeRenderer/NodeRenderer.component.d.ts +120 -0
- package/dist/types/components/ParagraphNode/ParagraphNode.component.d.ts +20 -0
- package/dist/types/components/PreCodeNode/PreCodeNode.component.d.ts +9 -0
- package/dist/types/components/ReferenceNode/ReferenceNode.component.d.ts +5 -0
- package/dist/types/components/StrikethroughNode/StrikethroughNode.component.d.ts +8 -0
- package/dist/types/components/StrongNode/StrongNode.component.d.ts +8 -0
- package/dist/types/components/SubscriptNode/SubscriptNode.component.d.ts +8 -0
- package/dist/types/components/SuperscriptNode/SuperscriptNode.component.d.ts +8 -0
- package/dist/types/components/TableNode/TableNode.component.d.ts +14 -0
- package/dist/types/components/TextNode/TextNode.component.d.ts +6 -0
- package/dist/types/components/ThematicBreakNode/ThematicBreakNode.component.d.ts +2 -0
- package/dist/types/components/VmrContainerNode/VmrContainerNode.component.d.ts +8 -0
- package/dist/types/components/shared/node-helpers.d.ts +99 -0
- package/dist/types/components/shared/node-outlet-helpers.d.ts +7 -0
- package/dist/types/components/shared/render-window.d.ts +18 -0
- package/dist/types/components/shared/rich-block-helpers.d.ts +6 -0
- package/dist/types/components/shared/safe-attrs.directive.d.ts +11 -0
- package/dist/types/customComponents.d.ts +9 -0
- package/dist/types/enhanceRenderedHtml.d.ts +20 -0
- package/dist/types/hydrateCustomTagContent.d.ts +2 -0
- package/dist/types/i18n/useSafeI18n.d.ts +4 -0
- package/dist/types/index.d.ts +71 -0
- package/dist/types/markstream-angular.component.d.ts +2 -0
- package/dist/types/optional/d2.d.ts +6 -0
- package/dist/types/optional/infographic.d.ts +1 -0
- package/dist/types/optional/katex.d.ts +6 -0
- package/dist/types/optional/mermaid.d.ts +6 -0
- package/dist/types/optional/monaco.d.ts +1 -0
- package/dist/types/parseNestedMarkdownToNodes.d.ts +14 -0
- package/dist/types/renderMarkdownHtml.d.ts +28 -0
- package/dist/types/sanitizeHtmlContent.d.ts +1 -0
- package/dist/types/sanitizeSvg.d.ts +2 -0
- package/dist/types/tooltip/singletonTooltip.d.ts +3 -0
- package/dist/types/utils/languageIcon.d.ts +6 -0
- package/dist/types/workers/katexCdnWorker.d.ts +20 -0
- package/dist/types/workers/katexRenderer.worker.d.ts +0 -0
- package/dist/types/workers/katexWorkerClient.d.ts +35 -0
- package/dist/types/workers/mermaidCdnWorker.d.ts +15 -0
- package/dist/types/workers/mermaidParser.worker.d.ts +1 -0
- package/dist/types/workers/mermaidWorkerClient.d.ts +15 -0
- package/dist/workers/katexRenderer.worker.js +45 -0
- package/dist/workers/mermaidParser.worker.js +69 -0
- package/package.json +86 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { AfterViewInit, OnChanges, OnDestroy, OnInit, EventEmitter } from '@angular/core';
|
|
2
|
+
import { AngularRenderContext, AngularRenderableNode, NodeRendererProps } from '../shared/node-helpers';
|
|
3
|
+
interface VisibleNodeEntry {
|
|
4
|
+
node: AngularRenderableNode;
|
|
5
|
+
index: number;
|
|
6
|
+
render: boolean;
|
|
7
|
+
animate: boolean;
|
|
8
|
+
placeholderHeight: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class NodeRendererComponent implements NodeRendererProps, OnChanges, OnInit, AfterViewInit, OnDestroy {
|
|
11
|
+
private readonly cdr;
|
|
12
|
+
private readonly hostRef;
|
|
13
|
+
private rootRef?;
|
|
14
|
+
content: string;
|
|
15
|
+
nodes?: readonly AngularRenderableNode[] | null;
|
|
16
|
+
final?: boolean;
|
|
17
|
+
parseOptions?: NodeRendererProps['parseOptions'];
|
|
18
|
+
customMarkdownIt?: NodeRendererProps['customMarkdownIt'];
|
|
19
|
+
debugPerformance?: boolean;
|
|
20
|
+
customHtmlTags?: readonly string[];
|
|
21
|
+
viewportPriority?: boolean;
|
|
22
|
+
codeBlockStream: boolean;
|
|
23
|
+
codeBlockDarkTheme?: any;
|
|
24
|
+
codeBlockLightTheme?: any;
|
|
25
|
+
codeBlockMonacoOptions?: Record<string, any>;
|
|
26
|
+
renderCodeBlocksAsPre: boolean;
|
|
27
|
+
codeBlockMinWidth?: string | number;
|
|
28
|
+
codeBlockMaxWidth?: string | number;
|
|
29
|
+
codeBlockProps?: Record<string, any>;
|
|
30
|
+
mermaidProps?: Record<string, any>;
|
|
31
|
+
d2Props?: Record<string, any>;
|
|
32
|
+
infographicProps?: Record<string, any>;
|
|
33
|
+
customComponents?: NodeRendererProps['customComponents'];
|
|
34
|
+
showTooltips: boolean;
|
|
35
|
+
themes?: string[];
|
|
36
|
+
isDark: boolean;
|
|
37
|
+
customId?: string;
|
|
38
|
+
indexKey?: number | string;
|
|
39
|
+
typewriter: boolean;
|
|
40
|
+
batchRendering: boolean;
|
|
41
|
+
initialRenderBatchSize: number;
|
|
42
|
+
renderBatchSize: number;
|
|
43
|
+
renderBatchDelay: number;
|
|
44
|
+
renderBatchBudgetMs: number;
|
|
45
|
+
renderBatchIdleTimeoutMs: number;
|
|
46
|
+
deferNodesUntilVisible: boolean;
|
|
47
|
+
maxLiveNodes: number;
|
|
48
|
+
liveNodeBuffer: number;
|
|
49
|
+
allowHtml: boolean;
|
|
50
|
+
copy: EventEmitter<string>;
|
|
51
|
+
handleArtifactClick: EventEmitter<any>;
|
|
52
|
+
click: EventEmitter<MouseEvent>;
|
|
53
|
+
mouseover: EventEmitter<MouseEvent>;
|
|
54
|
+
mouseout: EventEmitter<MouseEvent>;
|
|
55
|
+
parsedNodes: AngularRenderableNode[];
|
|
56
|
+
visibleEntries: VisibleNodeEntry[];
|
|
57
|
+
renderContext: AngularRenderContext;
|
|
58
|
+
topSpacerHeight: number;
|
|
59
|
+
bottomSpacerHeight: number;
|
|
60
|
+
private renderedCount;
|
|
61
|
+
private focusIndex;
|
|
62
|
+
private liveRange;
|
|
63
|
+
private readonly nodeHeights;
|
|
64
|
+
private readonly nodeVisibility;
|
|
65
|
+
private readonly nodeSeen;
|
|
66
|
+
private readonly slotElements;
|
|
67
|
+
private readonly observedElements;
|
|
68
|
+
private observer;
|
|
69
|
+
private observerConfig;
|
|
70
|
+
private readonly observerIndexByElement;
|
|
71
|
+
private batchTimer;
|
|
72
|
+
private batchRaf;
|
|
73
|
+
private batchIdle;
|
|
74
|
+
private batchPending;
|
|
75
|
+
private enhancementToken;
|
|
76
|
+
private enhancementTimer;
|
|
77
|
+
private enhancementHandle;
|
|
78
|
+
private postRenderTimer;
|
|
79
|
+
private unsubscribeCustomComponents?;
|
|
80
|
+
get resolvedIndexPrefix(): string;
|
|
81
|
+
get resolvedInitialBatchSize(): number;
|
|
82
|
+
get resolvedRenderBatchSize(): number;
|
|
83
|
+
get resolvedMaxLiveNodes(): number;
|
|
84
|
+
get resolvedLiveNodeBuffer(): number;
|
|
85
|
+
get liveWindowEnabled(): boolean;
|
|
86
|
+
get viewportPriorityEnabled(): boolean;
|
|
87
|
+
get virtualizationEnabled(): boolean;
|
|
88
|
+
get incrementalRenderingActive(): boolean;
|
|
89
|
+
get deferNodesActive(): boolean;
|
|
90
|
+
get shouldObserveSlots(): boolean;
|
|
91
|
+
ngOnChanges(): void;
|
|
92
|
+
ngOnInit(): void;
|
|
93
|
+
ngAfterViewInit(): void;
|
|
94
|
+
ngOnDestroy(): void;
|
|
95
|
+
trackByEntry: (_index: number, entry: VisibleNodeEntry) => string;
|
|
96
|
+
entryIndexKey(index: number): string;
|
|
97
|
+
handleMouseOver(event: MouseEvent): void;
|
|
98
|
+
handleMouseOut(event: MouseEvent): void;
|
|
99
|
+
private rebuild;
|
|
100
|
+
private cleanupTransientState;
|
|
101
|
+
private trimMeasuredState;
|
|
102
|
+
private refreshVisibleEntries;
|
|
103
|
+
private shouldRenderNode;
|
|
104
|
+
private scheduleBatchStep;
|
|
105
|
+
private stopBatching;
|
|
106
|
+
private schedulePostRenderWork;
|
|
107
|
+
private clearPostRenderWork;
|
|
108
|
+
private syncSlotObservers;
|
|
109
|
+
private observeSlot;
|
|
110
|
+
private ensureObserver;
|
|
111
|
+
private resolveViewportRoot;
|
|
112
|
+
private markNodeVisible;
|
|
113
|
+
private unobserveIndex;
|
|
114
|
+
private disconnectObserver;
|
|
115
|
+
private measureNodeHeights;
|
|
116
|
+
private scheduleEnhancements;
|
|
117
|
+
private applyEnhancements;
|
|
118
|
+
private disposeEnhancements;
|
|
119
|
+
}
|
|
120
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OnChanges } from '@angular/core';
|
|
2
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
3
|
+
type ParagraphSegment = {
|
|
4
|
+
kind: 'inline';
|
|
5
|
+
nodes: AngularRenderableNode[];
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'block';
|
|
8
|
+
node: AngularRenderableNode;
|
|
9
|
+
};
|
|
10
|
+
export declare class ParagraphNodeComponent implements OnChanges {
|
|
11
|
+
node: AngularRenderableNode;
|
|
12
|
+
context?: AngularRenderContext;
|
|
13
|
+
indexKey?: string;
|
|
14
|
+
segments: ParagraphSegment[];
|
|
15
|
+
get children(): AngularRenderableNode[];
|
|
16
|
+
ngOnChanges(): void;
|
|
17
|
+
trackByIndex: (index: number) => string;
|
|
18
|
+
segmentPrefix(index: number): string;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class PreCodeNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
get language(): string;
|
|
5
|
+
get languageClass(): string;
|
|
6
|
+
get ariaLabel(): string;
|
|
7
|
+
get code(): string;
|
|
8
|
+
get loading(): boolean;
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class StrikethroughNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
context?: AngularRenderContext;
|
|
5
|
+
indexKey?: string;
|
|
6
|
+
get children(): AngularRenderableNode[];
|
|
7
|
+
get nestedPrefix(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class StrongNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
context?: AngularRenderContext;
|
|
5
|
+
indexKey?: string;
|
|
6
|
+
get children(): AngularRenderableNode[];
|
|
7
|
+
get nestedPrefix(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class SubscriptNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
context?: AngularRenderContext;
|
|
5
|
+
indexKey?: string;
|
|
6
|
+
get children(): AngularRenderableNode[];
|
|
7
|
+
get nestedPrefix(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class SuperscriptNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
context?: AngularRenderContext;
|
|
5
|
+
indexKey?: string;
|
|
6
|
+
get children(): AngularRenderableNode[];
|
|
7
|
+
get nestedPrefix(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class TableNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
context?: AngularRenderContext;
|
|
5
|
+
indexKey?: string;
|
|
6
|
+
get headerRow(): AngularRenderableNode;
|
|
7
|
+
get rows(): AngularRenderableNode[];
|
|
8
|
+
cellsFor(row: AngularRenderableNode): AngularRenderableNode[];
|
|
9
|
+
childrenFor(cell: AngularRenderableNode): AngularRenderableNode[];
|
|
10
|
+
alignment(cell: AngularRenderableNode): string;
|
|
11
|
+
trackRow: (index: number) => string;
|
|
12
|
+
trackCell: (index: number) => number;
|
|
13
|
+
cellPrefix(rowIndex: string | number, cellIndex: number): string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from '../shared/node-helpers';
|
|
2
|
+
export declare class VmrContainerNodeComponent {
|
|
3
|
+
node: AngularRenderableNode;
|
|
4
|
+
context?: AngularRenderContext;
|
|
5
|
+
indexKey?: string;
|
|
6
|
+
get children(): AngularRenderableNode[];
|
|
7
|
+
get nestedPrefix(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Type } from '@angular/core';
|
|
2
|
+
import { BaseNode, MarkdownIt, ParseOptions, ParsedNode } from 'stream-markdown-parser';
|
|
3
|
+
export type AngularRenderableNode = (ParsedNode | BaseNode) & Record<string, unknown>;
|
|
4
|
+
export interface NodeRendererEvents {
|
|
5
|
+
onCopy?: (code: string) => void;
|
|
6
|
+
onHandleArtifactClick?: (payload: any) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface NodeRendererProps {
|
|
9
|
+
content?: string;
|
|
10
|
+
nodes?: readonly BaseNode[] | null;
|
|
11
|
+
final?: boolean;
|
|
12
|
+
parseOptions?: ParseOptions;
|
|
13
|
+
customMarkdownIt?: (md: MarkdownIt) => MarkdownIt;
|
|
14
|
+
debugPerformance?: boolean;
|
|
15
|
+
customHtmlTags?: readonly string[];
|
|
16
|
+
viewportPriority?: boolean;
|
|
17
|
+
codeBlockStream?: boolean;
|
|
18
|
+
codeBlockDarkTheme?: any;
|
|
19
|
+
codeBlockLightTheme?: any;
|
|
20
|
+
codeBlockMonacoOptions?: Record<string, any>;
|
|
21
|
+
renderCodeBlocksAsPre?: boolean;
|
|
22
|
+
codeBlockMinWidth?: string | number;
|
|
23
|
+
codeBlockMaxWidth?: string | number;
|
|
24
|
+
codeBlockProps?: Record<string, any>;
|
|
25
|
+
mermaidProps?: Record<string, any>;
|
|
26
|
+
d2Props?: Record<string, any>;
|
|
27
|
+
infographicProps?: Record<string, any>;
|
|
28
|
+
customComponents?: Record<string, Type<any>>;
|
|
29
|
+
showTooltips?: boolean;
|
|
30
|
+
themes?: string[];
|
|
31
|
+
isDark?: boolean;
|
|
32
|
+
customId?: string;
|
|
33
|
+
indexKey?: number | string;
|
|
34
|
+
typewriter?: boolean;
|
|
35
|
+
batchRendering?: boolean;
|
|
36
|
+
initialRenderBatchSize?: number;
|
|
37
|
+
renderBatchSize?: number;
|
|
38
|
+
renderBatchDelay?: number;
|
|
39
|
+
renderBatchBudgetMs?: number;
|
|
40
|
+
renderBatchIdleTimeoutMs?: number;
|
|
41
|
+
deferNodesUntilVisible?: boolean;
|
|
42
|
+
maxLiveNodes?: number;
|
|
43
|
+
liveNodeBuffer?: number;
|
|
44
|
+
allowHtml?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface AngularRenderContext {
|
|
47
|
+
customId?: string;
|
|
48
|
+
isDark?: boolean;
|
|
49
|
+
indexKey?: string;
|
|
50
|
+
final?: boolean;
|
|
51
|
+
typewriter?: boolean;
|
|
52
|
+
showTooltips?: boolean;
|
|
53
|
+
codeBlockStream?: boolean;
|
|
54
|
+
renderCodeBlocksAsPre?: boolean;
|
|
55
|
+
allowHtml?: boolean;
|
|
56
|
+
customHtmlTags?: readonly string[];
|
|
57
|
+
parseOptions?: ParseOptions;
|
|
58
|
+
customMarkdownIt?: (md: MarkdownIt) => MarkdownIt;
|
|
59
|
+
codeBlockProps?: Record<string, any>;
|
|
60
|
+
mermaidProps?: Record<string, any>;
|
|
61
|
+
d2Props?: Record<string, any>;
|
|
62
|
+
infographicProps?: Record<string, any>;
|
|
63
|
+
customComponents?: Record<string, Type<any>>;
|
|
64
|
+
codeBlockThemes?: {
|
|
65
|
+
themes?: string[];
|
|
66
|
+
darkTheme?: any;
|
|
67
|
+
lightTheme?: any;
|
|
68
|
+
monacoOptions?: Record<string, any>;
|
|
69
|
+
minWidth?: string | number;
|
|
70
|
+
maxWidth?: string | number;
|
|
71
|
+
};
|
|
72
|
+
events: NodeRendererEvents;
|
|
73
|
+
}
|
|
74
|
+
export declare const BLOCK_LEVEL_TYPES: Set<string>;
|
|
75
|
+
export declare function buildRenderContext(props: NodeRendererProps, events?: NodeRendererEvents): AngularRenderContext;
|
|
76
|
+
export declare function resolveParsedNodes(props: NodeRendererProps): AngularRenderableNode[];
|
|
77
|
+
export declare function getNodeList(value: unknown): AngularRenderableNode[];
|
|
78
|
+
export declare function getString(value: unknown): string;
|
|
79
|
+
export declare function normalizeCustomHtmlTags(tags?: readonly string[]): string[];
|
|
80
|
+
export declare function normalizeTagName(value: unknown): string;
|
|
81
|
+
export declare function isSafeAttrName(value: string): boolean;
|
|
82
|
+
export declare function escapeHtml(value: unknown): string;
|
|
83
|
+
export declare function escapeAttr(value: unknown): string;
|
|
84
|
+
export declare function sanitizeClassToken(value: string): string;
|
|
85
|
+
export declare function clampHeadingLevel(value: unknown): number;
|
|
86
|
+
export declare function capitalize(value: string): string;
|
|
87
|
+
export declare function getHtmlTagFromContent(html: unknown): string;
|
|
88
|
+
export declare function stripCustomHtmlWrapper(html: unknown, tag: string): string;
|
|
89
|
+
export declare function normalizeCodeLanguage(raw: unknown): string;
|
|
90
|
+
export declare function resolveCodeBlockLanguage(node: AngularRenderableNode): string;
|
|
91
|
+
export declare function encodeDataPayload(value: string): any;
|
|
92
|
+
export declare function normalizeTokenAttrs(attrs?: Array<[string, string | null]> | null): Record<string, string | true>;
|
|
93
|
+
export declare function splitParagraphChildren(children: readonly AngularRenderableNode[]): ({
|
|
94
|
+
kind: "inline";
|
|
95
|
+
nodes: AngularRenderableNode[];
|
|
96
|
+
} | {
|
|
97
|
+
kind: "block";
|
|
98
|
+
node: AngularRenderableNode;
|
|
99
|
+
})[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AngularRenderContext, AngularRenderableNode } from './node-helpers';
|
|
2
|
+
export type CodeBlockMode = 'mermaid' | 'd2' | 'infographic' | 'pre' | 'code';
|
|
3
|
+
export declare function resolveNodeOutletCodeMode(node: AngularRenderableNode, context?: AngularRenderContext): CodeBlockMode;
|
|
4
|
+
export declare function resolveHtmlTag(node: AngularRenderableNode): string;
|
|
5
|
+
export declare function coerceCustomHtmlNode(node: AngularRenderableNode): AngularRenderableNode;
|
|
6
|
+
export declare function coerceBuiltinHtmlNode(node: AngularRenderableNode, resolvedType: string): AngularRenderableNode;
|
|
7
|
+
export declare function resolveNodeOutletCustomInputs(node: AngularRenderableNode, context?: AngularRenderContext): Record<string, any>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const DEFAULT_NODE_HEIGHT = 32;
|
|
2
|
+
export declare const MAX_DEFERRED_NODE_COUNT = 900;
|
|
3
|
+
export interface LiveRange {
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DeferNodesOptions {
|
|
8
|
+
deferNodesUntilVisible?: boolean;
|
|
9
|
+
maxLiveNodes?: number;
|
|
10
|
+
parsedNodeCount: number;
|
|
11
|
+
viewportPriority?: boolean;
|
|
12
|
+
virtualizationEnabled: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function resolveVirtualizationEnabled(parsedNodeCount: number, maxLiveNodes?: number): boolean;
|
|
15
|
+
export declare function resolveDeferNodes(options: DeferNodesOptions): boolean;
|
|
16
|
+
export declare function resolveAverageNodeHeight(nodeHeights: ReadonlyMap<number, number>, fallback?: number): number;
|
|
17
|
+
export declare function estimateHeightRange(start: number, end: number, nodeHeights: ReadonlyMap<number, number>, averageNodeHeight: number): number;
|
|
18
|
+
export declare function computeLiveRange(total: number, focusIndex: number, maxLiveNodes?: number, liveNodeBuffer?: number): LiveRange;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function copyTextToClipboard(source: string): Promise<boolean>;
|
|
2
|
+
export declare function clearElement(target: HTMLElement | null | undefined): void;
|
|
3
|
+
export declare function setElementHtml(target: HTMLElement | null | undefined, html: string): void;
|
|
4
|
+
export declare function downloadSvgMarkup(svgMarkup: string, filename: string): void;
|
|
5
|
+
export declare function resolveCssSize(value: unknown, fallback?: string): string;
|
|
6
|
+
export declare function clampNumber(value: number, min: number, max: number): number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OnChanges } from '@angular/core';
|
|
2
|
+
export declare class SafeAttrsDirective implements OnChanges {
|
|
3
|
+
private readonly elementRef;
|
|
4
|
+
private readonly renderer;
|
|
5
|
+
private readonly appliedAttrs;
|
|
6
|
+
private readonly appliedClasses;
|
|
7
|
+
private readonly appliedStyles;
|
|
8
|
+
markstreamSafeAttrs?: Record<string, unknown> | null;
|
|
9
|
+
ngOnChanges(): void;
|
|
10
|
+
private clearAppliedState;
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Type } from '@angular/core';
|
|
2
|
+
export type CustomComponentMap = Record<string, Type<any>>;
|
|
3
|
+
export declare function subscribeCustomComponents(listener: () => void): () => void;
|
|
4
|
+
export declare function getCustomComponentsRevision(): number;
|
|
5
|
+
export declare function setCustomComponents(id: string, mapping: CustomComponentMap): void;
|
|
6
|
+
export declare function setCustomComponents(mapping: CustomComponentMap): void;
|
|
7
|
+
export declare function getCustomNodeComponents(customId?: string): CustomComponentMap;
|
|
8
|
+
export declare function removeCustomComponents(id: string): void;
|
|
9
|
+
export declare function clearGlobalCustomComponents(): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface EnhanceRenderedHtmlOptions {
|
|
2
|
+
final?: boolean;
|
|
3
|
+
isDark?: boolean;
|
|
4
|
+
renderCodeBlocksAsPre?: boolean;
|
|
5
|
+
monacoOptions?: Record<string, any>;
|
|
6
|
+
d2ThemeId?: number | null;
|
|
7
|
+
d2DarkThemeId?: number | null;
|
|
8
|
+
showTooltips?: boolean;
|
|
9
|
+
codeBlockProps?: Record<string, any>;
|
|
10
|
+
mermaidProps?: Record<string, any>;
|
|
11
|
+
d2Props?: Record<string, any>;
|
|
12
|
+
infographicProps?: Record<string, any>;
|
|
13
|
+
onCopy?: (code: string) => void;
|
|
14
|
+
isCancelled?: () => boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface RenderedHtmlEnhancementHandle {
|
|
17
|
+
dispose: () => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function enhanceRenderedHtml(root: HTMLElement, options?: EnhanceRenderedHtmlOptions): Promise<RenderedHtmlEnhancementHandle>;
|
|
20
|
+
export declare function disposeRenderedHtmlEnhancements(root: HTMLElement | null | undefined): void;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export { AdmonitionNodeComponent as AdmonitionNode } from './components/AdmonitionNode/AdmonitionNode.component';
|
|
2
|
+
export { BlockquoteNodeComponent as BlockquoteNode } from './components/BlockquoteNode/BlockquoteNode.component';
|
|
3
|
+
export { CheckboxNodeComponent as CheckboxNode } from './components/CheckboxNode/CheckboxNode.component';
|
|
4
|
+
export { CodeBlockNodeComponent as CodeBlockNode } from './components/CodeBlockNode/CodeBlockNode.component';
|
|
5
|
+
export { CodeBlockNodeComponent as AngularCodeBlockNode } from './components/CodeBlockNode/CodeBlockNode.component';
|
|
6
|
+
export { CodeBlockNodeComponent as MarkdownCodeBlockNode } from './components/CodeBlockNode/CodeBlockNode.component';
|
|
7
|
+
export { HtmlPreviewFrameComponent as HtmlPreviewFrame } from './components/CodeBlockNode/HtmlPreviewFrame.component';
|
|
8
|
+
export { D2BlockNodeComponent as D2BlockNode } from './components/D2BlockNode/D2BlockNode.component';
|
|
9
|
+
export { DefinitionListNodeComponent as DefinitionListNode } from './components/DefinitionListNode/DefinitionListNode.component';
|
|
10
|
+
export { EmojiNodeComponent as EmojiNode } from './components/EmojiNode/EmojiNode.component';
|
|
11
|
+
export { EmphasisNodeComponent as EmphasisNode } from './components/EmphasisNode/EmphasisNode.component';
|
|
12
|
+
export { FallbackComponent } from './components/FallbackComponent/FallbackComponent.component';
|
|
13
|
+
export { FootnoteAnchorNodeComponent as FootnoteAnchorNode } from './components/FootnoteAnchorNode/FootnoteAnchorNode.component';
|
|
14
|
+
export { FootnoteNodeComponent as FootnoteNode } from './components/FootnoteNode/FootnoteNode.component';
|
|
15
|
+
export { FootnoteReferenceNodeComponent as FootnoteReferenceNode } from './components/FootnoteReferenceNode/FootnoteReferenceNode.component';
|
|
16
|
+
export { HardBreakNodeComponent as HardBreakNode } from './components/HardBreakNode/HardBreakNode.component';
|
|
17
|
+
export { HeadingNodeComponent as HeadingNode } from './components/HeadingNode/HeadingNode.component';
|
|
18
|
+
export { HighlightNodeComponent as HighlightNode } from './components/HighlightNode/HighlightNode.component';
|
|
19
|
+
export { HtmlBlockNodeComponent as HtmlBlockNode } from './components/HtmlBlockNode/HtmlBlockNode.component';
|
|
20
|
+
export { HtmlInlineNodeComponent as HtmlInlineNode } from './components/HtmlInlineNode/HtmlInlineNode.component';
|
|
21
|
+
export { ImageNodeComponent as ImageNode } from './components/ImageNode/ImageNode.component';
|
|
22
|
+
export { InfographicBlockNodeComponent as InfographicBlockNode } from './components/InfographicBlockNode/InfographicBlockNode.component';
|
|
23
|
+
export { InlineCodeNodeComponent as InlineCodeNode } from './components/InlineCodeNode/InlineCodeNode.component';
|
|
24
|
+
export { InsertNodeComponent as InsertNode } from './components/InsertNode/InsertNode.component';
|
|
25
|
+
export { LinkNodeComponent as LinkNode } from './components/LinkNode/LinkNode.component';
|
|
26
|
+
export { ListItemNodeComponent as ListItemNode } from './components/ListItemNode/ListItemNode.component';
|
|
27
|
+
export { ListNodeComponent as ListNode } from './components/ListNode/ListNode.component';
|
|
28
|
+
export { MarkstreamAngularComponent } from './markstream-angular.component';
|
|
29
|
+
export { MarkstreamAngularComponent as MarkdownRenderComponent } from './markstream-angular.component';
|
|
30
|
+
export { MathBlockNodeComponent as MathBlockNode } from './components/MathBlockNode/MathBlockNode.component';
|
|
31
|
+
export { MathInlineNodeComponent as MathInlineNode } from './components/MathInlineNode/MathInlineNode.component';
|
|
32
|
+
export { MermaidBlockNodeComponent as MermaidBlockNode } from './components/MermaidBlockNode/MermaidBlockNode.component';
|
|
33
|
+
export { NestedRendererComponent as NestedRenderer } from './components/NestedRenderer/NestedRenderer.component';
|
|
34
|
+
export { NodeRendererComponent as NodeRenderer } from './components/NodeRenderer/NodeRenderer.component';
|
|
35
|
+
export { ParagraphNodeComponent as ParagraphNode } from './components/ParagraphNode/ParagraphNode.component';
|
|
36
|
+
export { PreCodeNodeComponent as PreCodeNode } from './components/PreCodeNode/PreCodeNode.component';
|
|
37
|
+
export { ReferenceNodeComponent as ReferenceNode } from './components/ReferenceNode/ReferenceNode.component';
|
|
38
|
+
export { SafeAttrsDirective } from './components/shared/safe-attrs.directive';
|
|
39
|
+
export { StrikethroughNodeComponent as StrikethroughNode } from './components/StrikethroughNode/StrikethroughNode.component';
|
|
40
|
+
export { StrongNodeComponent as StrongNode } from './components/StrongNode/StrongNode.component';
|
|
41
|
+
export { SubscriptNodeComponent as SubscriptNode } from './components/SubscriptNode/SubscriptNode.component';
|
|
42
|
+
export { SuperscriptNodeComponent as SuperscriptNode } from './components/SuperscriptNode/SuperscriptNode.component';
|
|
43
|
+
export { TableNodeComponent as TableNode } from './components/TableNode/TableNode.component';
|
|
44
|
+
export { TextNodeComponent as TextNode } from './components/TextNode/TextNode.component';
|
|
45
|
+
export { ThematicBreakNodeComponent as ThematicBreakNode } from './components/ThematicBreakNode/ThematicBreakNode.component';
|
|
46
|
+
export { VmrContainerNodeComponent as VmrContainerNode } from './components/VmrContainerNode/VmrContainerNode.component';
|
|
47
|
+
export { clearGlobalCustomComponents, getCustomComponentsRevision, getCustomNodeComponents, removeCustomComponents, setCustomComponents, subscribeCustomComponents, } from './customComponents';
|
|
48
|
+
export type { CustomComponentMap } from './customComponents';
|
|
49
|
+
export { disposeRenderedHtmlEnhancements, enhanceRenderedHtml, } from './enhanceRenderedHtml';
|
|
50
|
+
export type { EnhanceRenderedHtmlOptions, RenderedHtmlEnhancementHandle } from './enhanceRenderedHtml';
|
|
51
|
+
export type { AngularRenderContext, AngularRenderableNode, NodeRendererEvents, NodeRendererProps, } from './components/shared/node-helpers';
|
|
52
|
+
export { buildRenderContext, resolveParsedNodes, } from './components/shared/node-helpers';
|
|
53
|
+
export { setDefaultI18nMap, useSafeI18n } from './i18n/useSafeI18n';
|
|
54
|
+
export { renderMarkdownNodeToHtml, renderMarkdownNodesToHtml, renderMarkdownToHtml, renderNestedMarkdownToHtml, } from './renderMarkdownHtml';
|
|
55
|
+
export type { MarkstreamAngularRenderOptions, NestedMarkdownHtmlInput, NestedMarkdownHtmlOptions, RenderableMarkdownNode, } from './renderMarkdownHtml';
|
|
56
|
+
export { sanitizeHtmlContent } from './sanitizeHtmlContent';
|
|
57
|
+
export { getLanguageIcon, languageMap, normalizeLanguageIdentifier, resolveMonacoLanguageId, setLanguageIconResolver, } from './utils/languageIcon';
|
|
58
|
+
export type { LanguageIconResolver } from './utils/languageIcon';
|
|
59
|
+
export { parseNestedMarkdownToNodes, } from './parseNestedMarkdownToNodes';
|
|
60
|
+
export type { NestedMarkdownNodesInput, NestedMarkdownNodesOptions, } from './parseNestedMarkdownToNodes';
|
|
61
|
+
export type { D2Loader } from './optional/d2';
|
|
62
|
+
export { disableD2, enableD2, isD2Enabled, setD2Loader, } from './optional/d2';
|
|
63
|
+
export type { KatexLoader } from './optional/katex';
|
|
64
|
+
export { disableKatex, enableKatex, getKatex, isKatexEnabled, setKatexLoader, } from './optional/katex';
|
|
65
|
+
export type { MermaidLoader } from './optional/mermaid';
|
|
66
|
+
export { disableMermaid, enableMermaid, getMermaid, isMermaidEnabled, setMermaidLoader, } from './optional/mermaid';
|
|
67
|
+
export * from './workers/katexCdnWorker';
|
|
68
|
+
export * from './workers/katexWorkerClient';
|
|
69
|
+
export * from './workers/mermaidCdnWorker';
|
|
70
|
+
export * from './workers/mermaidWorkerClient';
|
|
71
|
+
export { MarkstreamAngularComponent as default } from './markstream-angular.component';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type D2Loader = () => Promise<any> | any;
|
|
2
|
+
export declare function setD2Loader(loader: D2Loader | null): void;
|
|
3
|
+
export declare function enableD2(loader?: D2Loader): void;
|
|
4
|
+
export declare function disableD2(): void;
|
|
5
|
+
export declare function isD2Enabled(): boolean;
|
|
6
|
+
export declare function getD2(): Promise<any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getInfographic(): Promise<any>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type KatexLoader = () => Promise<any> | any;
|
|
2
|
+
export declare function setKatexLoader(loader: KatexLoader | null): void;
|
|
3
|
+
export declare function enableKatex(loader?: KatexLoader): void;
|
|
4
|
+
export declare function disableKatex(): void;
|
|
5
|
+
export declare function isKatexEnabled(): boolean;
|
|
6
|
+
export declare function getKatex(): Promise<any>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type MermaidLoader = () => Promise<any> | any;
|
|
2
|
+
export declare function setMermaidLoader(loader: MermaidLoader | null): void;
|
|
3
|
+
export declare function enableMermaid(loader?: MermaidLoader): void;
|
|
4
|
+
export declare function disableMermaid(): void;
|
|
5
|
+
export declare function isMermaidEnabled(): boolean;
|
|
6
|
+
export declare function getMermaid(initConfig?: Record<string, any>): Promise<any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getUseMonaco(): Promise<any>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseNode, MarkdownIt, ParseOptions } from 'stream-markdown-parser';
|
|
2
|
+
export interface NestedMarkdownNodesInput {
|
|
3
|
+
node?: (BaseNode & Record<string, any>) | null;
|
|
4
|
+
nodes?: readonly BaseNode[] | null;
|
|
5
|
+
content?: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface NestedMarkdownNodesOptions {
|
|
8
|
+
cacheKey?: string;
|
|
9
|
+
final?: boolean;
|
|
10
|
+
parseOptions?: ParseOptions;
|
|
11
|
+
customHtmlTags?: readonly string[];
|
|
12
|
+
customMarkdownIt?: (markdown: MarkdownIt) => MarkdownIt;
|
|
13
|
+
}
|
|
14
|
+
export declare function parseNestedMarkdownToNodes(input: NestedMarkdownNodesInput, options?: NestedMarkdownNodesOptions): BaseNode[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseNode, ParseOptions, ParsedNode } from 'stream-markdown-parser';
|
|
2
|
+
export type RenderableMarkdownNode = (ParsedNode | BaseNode) & Record<string, unknown>;
|
|
3
|
+
type NestedClassValue = string | readonly string[] | null | undefined;
|
|
4
|
+
export interface MarkstreamAngularRenderOptions {
|
|
5
|
+
content?: string | null;
|
|
6
|
+
nodes?: readonly RenderableMarkdownNode[] | null;
|
|
7
|
+
final?: boolean;
|
|
8
|
+
parseOptions?: ParseOptions;
|
|
9
|
+
customHtmlTags?: readonly string[];
|
|
10
|
+
allowHtml?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface NestedMarkdownHtmlOptions {
|
|
13
|
+
cacheKey?: string;
|
|
14
|
+
customHtmlTags?: readonly string[];
|
|
15
|
+
allowHtml?: boolean;
|
|
16
|
+
customNodeTag?: string;
|
|
17
|
+
customNodeClass?: NestedClassValue | ((node: RenderableMarkdownNode) => NestedClassValue);
|
|
18
|
+
}
|
|
19
|
+
export interface NestedMarkdownHtmlInput {
|
|
20
|
+
node?: RenderableMarkdownNode | null;
|
|
21
|
+
nodes?: readonly RenderableMarkdownNode[] | null;
|
|
22
|
+
content?: string | null;
|
|
23
|
+
}
|
|
24
|
+
export declare function renderMarkdownToHtml(input: MarkstreamAngularRenderOptions): string;
|
|
25
|
+
export declare function renderNestedMarkdownToHtml(input: NestedMarkdownHtmlInput, options?: NestedMarkdownHtmlOptions): string;
|
|
26
|
+
export declare function renderMarkdownNodesToHtml(nodes: readonly RenderableMarkdownNode[] | null | undefined, options?: NestedMarkdownHtmlOptions): string;
|
|
27
|
+
export declare function renderMarkdownNodeToHtml(node: RenderableMarkdownNode | null | undefined, options?: NestedMarkdownHtmlOptions): string;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function sanitizeHtmlContent(content: string): string;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
2
|
+
export declare function showTooltipForAnchor(anchor: HTMLElement | null, content: string, placement?: TooltipPlacement, immediate?: boolean, isDark?: boolean | null): void;
|
|
3
|
+
export declare function hideTooltip(immediate?: boolean): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type LanguageIconResolver = (lang: string) => string | undefined | null;
|
|
2
|
+
export declare function normalizeLanguageIdentifier(lang?: string | null): string;
|
|
3
|
+
export declare function resolveMonacoLanguageId(lang?: string | null): string;
|
|
4
|
+
export declare function setLanguageIconResolver(resolver?: LanguageIconResolver | null): void;
|
|
5
|
+
export declare function getLanguageIcon(lang: string): string;
|
|
6
|
+
export declare const languageMap: Record<string, string>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type KaTeXCDNWorkerMode = 'classic' | 'module';
|
|
2
|
+
export interface KaTeXCDNWorkerOptions {
|
|
3
|
+
katexUrl: string;
|
|
4
|
+
mhchemUrl?: string;
|
|
5
|
+
mode?: KaTeXCDNWorkerMode;
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
workerOptions?: WorkerOptions;
|
|
8
|
+
renderOptions?: {
|
|
9
|
+
throwOnError?: boolean;
|
|
10
|
+
output?: string;
|
|
11
|
+
strict?: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface KaTeXCDNWorkerHandle {
|
|
15
|
+
worker: Worker | null;
|
|
16
|
+
dispose: () => void;
|
|
17
|
+
source: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function buildKaTeXCDNWorkerSource(options: KaTeXCDNWorkerOptions): string;
|
|
20
|
+
export declare function createKaTeXWorkerFromCDN(options: KaTeXCDNWorkerOptions): KaTeXCDNWorkerHandle;
|
|
File without changes
|