@oml/markdown 0.7.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 +39 -0
- package/out/index.d.ts +2 -0
- package/out/index.js +4 -0
- package/out/index.js.map +1 -0
- package/out/md/index.d.ts +6 -0
- package/out/md/index.js +8 -0
- package/out/md/index.js.map +1 -0
- package/out/md/md-execution.d.ts +33 -0
- package/out/md/md-execution.js +3 -0
- package/out/md/md-execution.js.map +1 -0
- package/out/md/md-executor.d.ts +21 -0
- package/out/md/md-executor.js +498 -0
- package/out/md/md-executor.js.map +1 -0
- package/out/md/md-frontmatter.d.ts +4 -0
- package/out/md/md-frontmatter.js +48 -0
- package/out/md/md-frontmatter.js.map +1 -0
- package/out/md/md-registry.d.ts +7 -0
- package/out/md/md-registry.js +19 -0
- package/out/md/md-registry.js.map +1 -0
- package/out/md/md-runtime.d.ts +10 -0
- package/out/md/md-runtime.js +166 -0
- package/out/md/md-runtime.js.map +1 -0
- package/out/md/md-types.d.ts +40 -0
- package/out/md/md-types.js +3 -0
- package/out/md/md-types.js.map +1 -0
- package/out/md/md-yaml.d.ts +1 -0
- package/out/md/md-yaml.js +15 -0
- package/out/md/md-yaml.js.map +1 -0
- package/out/renderers/chart-renderer.d.ts +6 -0
- package/out/renderers/chart-renderer.js +392 -0
- package/out/renderers/chart-renderer.js.map +1 -0
- package/out/renderers/diagram-renderer.d.ts +7 -0
- package/out/renderers/diagram-renderer.js +2354 -0
- package/out/renderers/diagram-renderer.js.map +1 -0
- package/out/renderers/graph-renderer.d.ts +6 -0
- package/out/renderers/graph-renderer.js +1384 -0
- package/out/renderers/graph-renderer.js.map +1 -0
- package/out/renderers/index.d.ts +14 -0
- package/out/renderers/index.js +16 -0
- package/out/renderers/index.js.map +1 -0
- package/out/renderers/list-renderer.d.ts +6 -0
- package/out/renderers/list-renderer.js +252 -0
- package/out/renderers/list-renderer.js.map +1 -0
- package/out/renderers/matrix-renderer.d.ts +14 -0
- package/out/renderers/matrix-renderer.js +498 -0
- package/out/renderers/matrix-renderer.js.map +1 -0
- package/out/renderers/message-renderer.d.ts +6 -0
- package/out/renderers/message-renderer.js +14 -0
- package/out/renderers/message-renderer.js.map +1 -0
- package/out/renderers/registry.d.ts +9 -0
- package/out/renderers/registry.js +41 -0
- package/out/renderers/registry.js.map +1 -0
- package/out/renderers/renderer.d.ts +28 -0
- package/out/renderers/renderer.js +61 -0
- package/out/renderers/renderer.js.map +1 -0
- package/out/renderers/table-editor-renderer.d.ts +4 -0
- package/out/renderers/table-editor-renderer.js +9 -0
- package/out/renderers/table-editor-renderer.js.map +1 -0
- package/out/renderers/table-renderer.d.ts +95 -0
- package/out/renderers/table-renderer.js +1571 -0
- package/out/renderers/table-renderer.js.map +1 -0
- package/out/renderers/text-renderer.d.ts +7 -0
- package/out/renderers/text-renderer.js +219 -0
- package/out/renderers/text-renderer.js.map +1 -0
- package/out/renderers/tree-renderer.d.ts +4 -0
- package/out/renderers/tree-renderer.js +9 -0
- package/out/renderers/tree-renderer.js.map +1 -0
- package/out/renderers/types.d.ts +18 -0
- package/out/renderers/types.js +3 -0
- package/out/renderers/types.js.map +1 -0
- package/out/renderers/wikilink-utils.d.ts +6 -0
- package/out/renderers/wikilink-utils.js +100 -0
- package/out/renderers/wikilink-utils.js.map +1 -0
- package/out/static/browser-runtime.bundle.js +74155 -0
- package/out/static/browser-runtime.bundle.js.map +7 -0
- package/out/static/browser-runtime.d.ts +1 -0
- package/out/static/browser-runtime.js +218 -0
- package/out/static/browser-runtime.js.map +1 -0
- package/out/static/index.d.ts +1 -0
- package/out/static/index.js +3 -0
- package/out/static/index.js.map +1 -0
- package/out/static/runtime-assets.d.ts +2 -0
- package/out/static/runtime-assets.js +174 -0
- package/out/static/runtime-assets.js.map +1 -0
- package/package.json +74 -0
- package/src/index.ts +4 -0
- package/src/md/index.ts +8 -0
- package/src/md/md-execution.ts +51 -0
- package/src/md/md-executor.ts +598 -0
- package/src/md/md-frontmatter.ts +53 -0
- package/src/md/md-registry.ts +22 -0
- package/src/md/md-runtime.ts +191 -0
- package/src/md/md-types.ts +48 -0
- package/src/md/md-yaml.ts +17 -0
- package/src/renderers/chart-renderer.ts +473 -0
- package/src/renderers/diagram-renderer.ts +2520 -0
- package/src/renderers/graph-renderer.ts +1653 -0
- package/src/renderers/index.ts +16 -0
- package/src/renderers/list-renderer.ts +289 -0
- package/src/renderers/matrix-renderer.ts +616 -0
- package/src/renderers/message-renderer.ts +18 -0
- package/src/renderers/registry.ts +45 -0
- package/src/renderers/renderer.ts +84 -0
- package/src/renderers/table-editor-renderer.ts +8 -0
- package/src/renderers/table-renderer.ts +1868 -0
- package/src/renderers/text-renderer.ts +252 -0
- package/src/renderers/tree-renderer.ts +7 -0
- package/src/renderers/types.ts +22 -0
- package/src/renderers/wikilink-utils.ts +108 -0
- package/src/static/browser-runtime.ts +249 -0
- package/src/static/index.ts +3 -0
- package/src/static/runtime-assets.ts +175 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
|
+
export class BaseMarkdownBlockRenderer {
|
|
3
|
+
createResultContainer(status) {
|
|
4
|
+
const container = document.createElement('div');
|
|
5
|
+
container.className = `oml-md-result oml-md-result-${status}`;
|
|
6
|
+
return container;
|
|
7
|
+
}
|
|
8
|
+
createMessageContainer(text) {
|
|
9
|
+
const message = document.createElement('div');
|
|
10
|
+
message.className = 'oml-md-result-message';
|
|
11
|
+
message.textContent = text;
|
|
12
|
+
return message;
|
|
13
|
+
}
|
|
14
|
+
requestTextFileDownload(content, fallbackName = 'download', fileExtension = 'txt') {
|
|
15
|
+
const filename = this.buildDownloadFileName(fallbackName, fileExtension);
|
|
16
|
+
const event = new CustomEvent('md-download-file', {
|
|
17
|
+
detail: { filename, content },
|
|
18
|
+
});
|
|
19
|
+
window.dispatchEvent(event);
|
|
20
|
+
}
|
|
21
|
+
buildDownloadFileName(fallbackName, fileExtension) {
|
|
22
|
+
const sourceUri = document.body.getAttribute('data-source-uri') ?? '';
|
|
23
|
+
let namePart = fallbackName;
|
|
24
|
+
if (sourceUri) {
|
|
25
|
+
const fileName = sourceUri.split('/').pop() ?? '';
|
|
26
|
+
const fileStem = fileName.replace(/\.[^.]+$/, '');
|
|
27
|
+
if (fileStem) {
|
|
28
|
+
namePart = fileStem;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const sanitized = namePart.replace(/\W+/g, '_');
|
|
32
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '-');
|
|
33
|
+
const extension = fileExtension.replace(/^\./, '') || 'csv';
|
|
34
|
+
return `${sanitized}_${ts}.${extension}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export class QueryMarkdownBlockRenderer extends BaseMarkdownBlockRenderer {
|
|
38
|
+
getBlockSource(result) {
|
|
39
|
+
return result.blockSource;
|
|
40
|
+
}
|
|
41
|
+
getBlockMeta(result) {
|
|
42
|
+
return result.blockMeta;
|
|
43
|
+
}
|
|
44
|
+
getBlockRange(result) {
|
|
45
|
+
return { start: result.blockLineStart, end: result.blockLineEnd };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class CanvasMarkdownBlockRenderer extends QueryMarkdownBlockRenderer {
|
|
49
|
+
canRender(result) {
|
|
50
|
+
return result.status === 'ok'
|
|
51
|
+
&& this.canvasKinds.includes(result.kind);
|
|
52
|
+
}
|
|
53
|
+
renderNotImplemented(result) {
|
|
54
|
+
const container = this.createResultContainer(result.status);
|
|
55
|
+
const source = this.getBlockSource(result);
|
|
56
|
+
const sourceHint = source && source.trim().length > 0 ? ' Query source is available to this renderer.' : '';
|
|
57
|
+
container.appendChild(this.createMessageContainer(`Renderer for '${result.kind}' is not implemented yet.${sourceHint}`));
|
|
58
|
+
return container;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/renderers/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
|
+
import { TableMarkdownBlockRenderer } from './table-renderer.js';
|
|
3
|
+
export class TableEditorMarkdownBlockRenderer extends TableMarkdownBlockRenderer {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.tableKinds = ['table-editor'];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=table-editor-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-editor-renderer.js","sourceRoot":"","sources":["../../src/renderers/table-editor-renderer.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,OAAO,gCAAiC,SAAQ,0BAA0B;IAAhF;;QACgC,eAAU,GAAG,CAAC,cAAc,CAAU,CAAC;IACvE,CAAC;CAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { QueryMarkdownBlockRenderer, type TableBlockKind } from './renderer.js';
|
|
2
|
+
import type { MdBlockExecutionResult } from './types.js';
|
|
3
|
+
type TableEditorActionKind = 'add' | 'remove' | 'validate' | 'link' | 'undo' | 'redo' | 'ai' | 'properties';
|
|
4
|
+
type TableEditorActionContext = {
|
|
5
|
+
action: TableEditorActionKind;
|
|
6
|
+
root: HTMLElement;
|
|
7
|
+
columns: string[];
|
|
8
|
+
rows: Array<{
|
|
9
|
+
index: number;
|
|
10
|
+
cells: string[];
|
|
11
|
+
}>;
|
|
12
|
+
row?: {
|
|
13
|
+
index: number;
|
|
14
|
+
cells: string[];
|
|
15
|
+
};
|
|
16
|
+
propertyDefinitions?: Array<{
|
|
17
|
+
name: string;
|
|
18
|
+
predicate: string;
|
|
19
|
+
multiple: boolean;
|
|
20
|
+
datatypeIri?: string;
|
|
21
|
+
classIri?: string;
|
|
22
|
+
nodeKind?: string;
|
|
23
|
+
enumValues?: string[];
|
|
24
|
+
editor?: 'multiline';
|
|
25
|
+
}>;
|
|
26
|
+
blockSource?: string;
|
|
27
|
+
typeOptions?: string[];
|
|
28
|
+
instanceNamePrefix?: string;
|
|
29
|
+
pointerX?: number;
|
|
30
|
+
pointerY?: number;
|
|
31
|
+
};
|
|
32
|
+
export declare class TableMarkdownBlockRenderer extends QueryMarkdownBlockRenderer {
|
|
33
|
+
protected readonly tableKinds: ReadonlyArray<TableBlockKind>;
|
|
34
|
+
canRender(result: MdBlockExecutionResult): boolean;
|
|
35
|
+
render(result: MdBlockExecutionResult): HTMLElement;
|
|
36
|
+
protected appendCustomLeftControls(_leftControls: HTMLDivElement, _context: Omit<TableEditorActionContext, 'action'> & {
|
|
37
|
+
options?: Record<string, unknown>;
|
|
38
|
+
}): void;
|
|
39
|
+
protected decorateCellValueElement(params: {
|
|
40
|
+
row: {
|
|
41
|
+
index: number;
|
|
42
|
+
cells: string[];
|
|
43
|
+
};
|
|
44
|
+
columnIndex: number;
|
|
45
|
+
columns: string[];
|
|
46
|
+
value: string;
|
|
47
|
+
valueElement: HTMLElement;
|
|
48
|
+
}): HTMLElement;
|
|
49
|
+
protected shouldIgnoreRowDoubleClick(_event: MouseEvent): boolean;
|
|
50
|
+
protected onRowDoubleClick(_context: Omit<TableEditorActionContext, 'action'>): void;
|
|
51
|
+
protected dispatchTableEditorAction(context: TableEditorActionContext): void;
|
|
52
|
+
protected renderInteractiveTable(columns: string[], rows: string[][], stylesheet: CompiledTableStyleRule[], options: Record<string, unknown> | undefined, blockSource?: string): HTMLElement;
|
|
53
|
+
protected extractTypeOptions(_blockSource: string | undefined): string[];
|
|
54
|
+
private resolveTreeSourceRows;
|
|
55
|
+
private filterTreeRowsBySearch;
|
|
56
|
+
private createTreeModel;
|
|
57
|
+
private flattenTreeRows;
|
|
58
|
+
private flattenAllTreeRows;
|
|
59
|
+
private renderTreeCell;
|
|
60
|
+
private createTreeActionButton;
|
|
61
|
+
private applyFiltersAndSorting;
|
|
62
|
+
private applyStylesheet;
|
|
63
|
+
private matchesRule;
|
|
64
|
+
private resolveValueTargets;
|
|
65
|
+
private buildGridTemplate;
|
|
66
|
+
private createInitialColumnWidths;
|
|
67
|
+
private scheduleInitialAutosize;
|
|
68
|
+
private installColumnResizeHandle;
|
|
69
|
+
private autosizeColumnWidth;
|
|
70
|
+
private measureTreePrefixWidth;
|
|
71
|
+
private resolveFont;
|
|
72
|
+
private measureTextWidth;
|
|
73
|
+
protected formatCellDisplayValue(raw: string, _context: {
|
|
74
|
+
columnIndex: number;
|
|
75
|
+
columns: string[];
|
|
76
|
+
blockSource?: string;
|
|
77
|
+
options?: Record<string, unknown>;
|
|
78
|
+
}): string;
|
|
79
|
+
private renderValue;
|
|
80
|
+
private requestCsvDownload;
|
|
81
|
+
private requestTreeJsonDownload;
|
|
82
|
+
private createTreeJsonKeys;
|
|
83
|
+
}
|
|
84
|
+
type TableRuleKind = 'row' | 'column' | 'cell' | 'header';
|
|
85
|
+
type TableRuleTarget = 'cell' | 'value';
|
|
86
|
+
type TableSelector = {
|
|
87
|
+
kind: TableRuleKind;
|
|
88
|
+
condition?: string;
|
|
89
|
+
};
|
|
90
|
+
type CompiledTableStyleRule = {
|
|
91
|
+
selectors: TableSelector[];
|
|
92
|
+
target: TableRuleTarget;
|
|
93
|
+
style: Record<string, string>;
|
|
94
|
+
};
|
|
95
|
+
export {};
|