@omegagrid/markdown 0.6.26 → 0.6.28
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/dist/components/features/blockEdit.d.ts +1 -1
- package/dist/components/features/blockEdit.d.ts.map +1 -1
- package/dist/components/features/blockEdit.js +128 -7
- package/dist/components/features/blockEditMenu.d.ts +1 -1
- package/dist/components/features/blockEditMenu.d.ts.map +1 -1
- package/dist/components/features/blockEditMenu.js +226 -5
- package/dist/components/features/codeBlock.js +132 -1
- package/dist/components/features/htmlBlock.d.ts +1 -1
- package/dist/components/features/htmlBlock.d.ts.map +1 -1
- package/dist/components/features/htmlBlock.js +132 -11
- package/dist/components/features/index.js +178 -1
- package/dist/components/features/linkEdit/component.d.ts +1 -1
- package/dist/components/features/linkEdit/component.d.ts.map +1 -1
- package/dist/components/features/linkEdit/component.js +42 -5
- package/dist/components/features/linkEdit/config.js +64 -1
- package/dist/components/features/linkEdit/index.js +14 -1
- package/dist/components/features/linkEdit/slices.js +23 -1
- package/dist/components/features/linkEdit/utils.js +33 -1
- package/dist/components/features/linkEdit/view.js +135 -1
- package/dist/components/features/placeholder.js +50 -1
- package/dist/components/features/toolbar.d.ts +1 -1
- package/dist/components/features/toolbar.d.ts.map +1 -1
- package/dist/components/features/toolbar.js +127 -13
- package/dist/components/features/utils.js +64 -1
- package/dist/components/index.js +4 -1
- package/dist/components/markdownEditor.d.ts +1 -1
- package/dist/components/markdownEditor.d.ts.map +1 -1
- package/dist/components/markdownEditor.js +138 -2
- package/dist/components/markdownEditor.style.js +22 -2
- package/dist/components/markdownView.js +19 -1
- package/dist/components/markdownView.style.js +4 -2
- package/dist/components/styles/block-edit.js +4 -2
- package/dist/components/styles/cursor.js +4 -2
- package/dist/components/styles/image-block.js +4 -2
- package/dist/components/styles/index.js +19 -1
- package/dist/components/styles/link-tooltip.js +4 -2
- package/dist/components/styles/list-item.js +4 -2
- package/dist/components/styles/placeholder.js +4 -2
- package/dist/components/styles/prosemirror.js +4 -2
- package/dist/components/styles/table.js +4 -2
- package/dist/constants.js +5 -1
- package/dist/index.js +4 -1
- package/dist/loader.js +46 -1
- package/dist/utils.js +62 -1
- package/package.json +6 -6
|
@@ -1,7 +1,143 @@
|
|
|
1
|
-
var
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
13
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
15
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
|
+
};
|
|
18
|
+
var _MarkdownEditor_content, _MarkdownEditor_editor;
|
|
19
|
+
import { dom, events } from '@omegagrid/core';
|
|
20
|
+
import { LitElement, html } from 'lit';
|
|
21
|
+
import { customElement, query, property } from 'lit/decorators.js';
|
|
22
|
+
import { style } from './markdownEditor.style';
|
|
23
|
+
import styles from './styles';
|
|
24
|
+
import { createEditor } from '../utils';
|
|
25
|
+
export class MarkdownLinkEvent extends Event {
|
|
26
|
+
constructor(args) {
|
|
27
|
+
super(`markdown.link`, { bubbles: true, composed: true, cancelable: true });
|
|
28
|
+
Object.assign(this, args);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
let MarkdownEditor = class MarkdownEditor extends LitElement {
|
|
32
|
+
get content() { return __classPrivateFieldGet(this, _MarkdownEditor_content, "f"); }
|
|
33
|
+
set content(val) {
|
|
34
|
+
__classPrivateFieldSet(this, _MarkdownEditor_content, val, "f");
|
|
35
|
+
__classPrivateFieldGet(this, _MarkdownEditor_editor, "f")?.destroy();
|
|
36
|
+
__classPrivateFieldSet(this, _MarkdownEditor_editor, null, "f");
|
|
37
|
+
this.requestUpdate();
|
|
38
|
+
}
|
|
39
|
+
get milkdownElm() { return this.container.firstElementChild; }
|
|
40
|
+
get editor() { return __classPrivateFieldGet(this, _MarkdownEditor_editor, "f"); }
|
|
41
|
+
constructor() {
|
|
42
|
+
super();
|
|
43
|
+
_MarkdownEditor_content.set(this, void 0);
|
|
44
|
+
this.maxContentWidth = 800;
|
|
45
|
+
this.contentAlignment = 'left';
|
|
46
|
+
this.readOnly = false;
|
|
47
|
+
_MarkdownEditor_editor.set(this, void 0);
|
|
48
|
+
this._onChange = (markdown, prevMarkdown) => {
|
|
49
|
+
__classPrivateFieldSet(this, _MarkdownEditor_content, markdown, "f");
|
|
50
|
+
this.dispatchEvent(new events.ChangeEvent({ value: markdown, oldValue: prevMarkdown }));
|
|
51
|
+
};
|
|
52
|
+
this.render = () => html `
|
|
2
53
|
<style>
|
|
3
54
|
.ProseMirror.editor { max-width: ${this.maxContentWidth}px; }
|
|
4
55
|
</style>
|
|
5
56
|
<div id="container" spellcheck="false"></div>
|
|
6
57
|
<og-slider direction="vertical"></og-slider>
|
|
7
|
-
|
|
58
|
+
`;
|
|
59
|
+
dom.on(this, 'click', 'a', (e, a) => {
|
|
60
|
+
const canceled = !this.dispatchEvent(new MarkdownLinkEvent({
|
|
61
|
+
href: a.getAttribute('href'),
|
|
62
|
+
a: a,
|
|
63
|
+
origEvent: e
|
|
64
|
+
}));
|
|
65
|
+
if (canceled) {
|
|
66
|
+
e.preventDefault();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const href = a.getAttribute('href');
|
|
70
|
+
if (href && href.startsWith('#')) {
|
|
71
|
+
e.preventDefault();
|
|
72
|
+
this.scrollToSelector(href);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
scrollToSelector(selector) {
|
|
77
|
+
const elm = this.milkdownElm.querySelector(selector);
|
|
78
|
+
if (!elm)
|
|
79
|
+
return;
|
|
80
|
+
this.milkdownElm.scrollTop = elm.offsetTop;
|
|
81
|
+
this.slider.updatePosition();
|
|
82
|
+
}
|
|
83
|
+
connectedCallback() {
|
|
84
|
+
super.connectedCallback();
|
|
85
|
+
this.requestUpdate();
|
|
86
|
+
}
|
|
87
|
+
updateWidth() {
|
|
88
|
+
const width = Math.min(this.maxContentWidth, this.clientWidth);
|
|
89
|
+
this.milkdownElm.style.width = `${width}px`;
|
|
90
|
+
}
|
|
91
|
+
async updated() {
|
|
92
|
+
if (__classPrivateFieldGet(this, _MarkdownEditor_editor, "f"))
|
|
93
|
+
return;
|
|
94
|
+
__classPrivateFieldSet(this, _MarkdownEditor_editor, await createEditor({
|
|
95
|
+
container: this.container,
|
|
96
|
+
content: this.content,
|
|
97
|
+
readOnly: this.readOnly,
|
|
98
|
+
onUpload: this.onUpload,
|
|
99
|
+
onChange: this._onChange,
|
|
100
|
+
modifyImageUrl: this.modifyImageUrl
|
|
101
|
+
}), "f");
|
|
102
|
+
this.slider.attachElement(this.milkdownElm);
|
|
103
|
+
}
|
|
104
|
+
disconnectedCallback() {
|
|
105
|
+
super.disconnectedCallback();
|
|
106
|
+
__classPrivateFieldGet(this, _MarkdownEditor_editor, "f")?.destroy();
|
|
107
|
+
__classPrivateFieldSet(this, _MarkdownEditor_editor, null, "f");
|
|
108
|
+
dom.empty(this.container);
|
|
109
|
+
}
|
|
110
|
+
layout() { }
|
|
111
|
+
};
|
|
112
|
+
_MarkdownEditor_content = new WeakMap();
|
|
113
|
+
_MarkdownEditor_editor = new WeakMap();
|
|
114
|
+
MarkdownEditor.styles = [style, ...styles];
|
|
115
|
+
__decorate([
|
|
116
|
+
property({ type: String })
|
|
117
|
+
], MarkdownEditor.prototype, "content", null);
|
|
118
|
+
__decorate([
|
|
119
|
+
property({ type: Number })
|
|
120
|
+
], MarkdownEditor.prototype, "maxContentWidth", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
property({ type: String, reflect: true })
|
|
123
|
+
], MarkdownEditor.prototype, "contentAlignment", void 0);
|
|
124
|
+
__decorate([
|
|
125
|
+
property({ type: Boolean, reflect: true })
|
|
126
|
+
], MarkdownEditor.prototype, "readOnly", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
query('#container')
|
|
129
|
+
], MarkdownEditor.prototype, "container", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
query('og-slider')
|
|
132
|
+
], MarkdownEditor.prototype, "slider", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
property({ type: Object })
|
|
135
|
+
], MarkdownEditor.prototype, "onUpload", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
property({ type: Object })
|
|
138
|
+
], MarkdownEditor.prototype, "modifyImageUrl", void 0);
|
|
139
|
+
MarkdownEditor = __decorate([
|
|
140
|
+
customElement('og-markdown-editor')
|
|
141
|
+
], MarkdownEditor);
|
|
142
|
+
export { MarkdownEditor };
|
|
143
|
+
//# sourceMappingURL=markdownEditor.js.map
|
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
// --markdown-font-default
|
|
3
|
+
// --markdown-color-on-background
|
|
4
|
+
// --markdown-color-background
|
|
5
|
+
// --markdown-color-selected
|
|
6
|
+
// --markdown-color-primary
|
|
7
|
+
// --markdown-font-title
|
|
8
|
+
// --markdown-color-inline-code
|
|
9
|
+
// --markdown-color-inline-area
|
|
10
|
+
// --markdown-font-code
|
|
11
|
+
// --markdown-color-hover
|
|
12
|
+
// --markdown-shadow-1
|
|
13
|
+
// --markdown-color-on-surface
|
|
14
|
+
// --markdown-color-surface
|
|
15
|
+
// --markdown-color-outline
|
|
16
|
+
// --markdown-color-on-inverse
|
|
17
|
+
// --markdown-color-inverse
|
|
18
|
+
// --markdown-color-on-secondary
|
|
19
|
+
// --markdown-color-secondary
|
|
20
|
+
export const style = css `
|
|
2
21
|
* {
|
|
3
22
|
box-sizing: border-box;
|
|
4
23
|
}
|
|
@@ -218,4 +237,5 @@ import{css}from"lit";export const style=css`
|
|
|
218
237
|
background-color: color-mix(in srgb, var(--markdown-color-outline), transparent 80%);
|
|
219
238
|
pointer-events: none;
|
|
220
239
|
}
|
|
221
|
-
`;
|
|
240
|
+
`;
|
|
241
|
+
//# sourceMappingURL=markdownEditor.style.js.map
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
var __decorate=this&&this.__decorate
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement } from 'lit/decorators.js';
|
|
8
|
+
import { MarkdownEditor } from './markdownEditor';
|
|
9
|
+
let MarkdownView = class MarkdownView extends MarkdownEditor {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.readOnly = true;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
MarkdownView = __decorate([
|
|
16
|
+
customElement('og-markdown-view')
|
|
17
|
+
], MarkdownView);
|
|
18
|
+
export { MarkdownView };
|
|
19
|
+
//# sourceMappingURL=markdownView.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
* {
|
|
3
4
|
box-sizing: border-box;
|
|
4
5
|
}
|
|
@@ -41,4 +42,5 @@ import{css}from"lit";export const style=css`
|
|
|
41
42
|
|
|
42
43
|
|
|
43
44
|
|
|
44
|
-
`;
|
|
45
|
+
`;
|
|
46
|
+
//# sourceMappingURL=markdownView.style.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
milkdown-block-handle {
|
|
3
4
|
transition: all 0.2s;
|
|
4
5
|
position: absolute;
|
|
@@ -129,4 +130,5 @@ milkdown-block-handle {
|
|
|
129
130
|
margin: 0 10px;
|
|
130
131
|
}
|
|
131
132
|
|
|
132
|
-
`;
|
|
133
|
+
`;
|
|
134
|
+
//# sourceMappingURL=block-edit.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
.crepe-drop-cursor {
|
|
3
4
|
opacity: 0.5;
|
|
4
5
|
transition: all 0.2s;
|
|
@@ -9,4 +10,5 @@ import{css}from"lit";export const style=css`
|
|
|
9
10
|
box-sizing: border-box;
|
|
10
11
|
border-top: 1px solid var(--crepe-color-on-background);
|
|
11
12
|
}
|
|
12
|
-
`;
|
|
13
|
+
`;
|
|
14
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
milkdown-image-inline {
|
|
3
4
|
outline: none;
|
|
4
5
|
display: inline;
|
|
@@ -329,4 +330,5 @@ import{css}from"lit";export const style=css`
|
|
|
329
330
|
),
|
|
330
331
|
var(--markdown-color-secondary);
|
|
331
332
|
}
|
|
332
|
-
`;
|
|
333
|
+
`;
|
|
334
|
+
//# sourceMappingURL=image-block.js.map
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
import{style as blockEditStyle}
|
|
1
|
+
import { style as blockEditStyle } from './block-edit';
|
|
2
|
+
import { style as cursorStyle } from './cursor';
|
|
3
|
+
import { style as imageStyle } from './image-block';
|
|
4
|
+
import { style as linkTooltipStyle } from './link-tooltip';
|
|
5
|
+
import { style as listItemStyle } from './list-item';
|
|
6
|
+
import { style as placeholderStyle } from './placeholder';
|
|
7
|
+
import { style as prosemirrorStyle } from './prosemirror';
|
|
8
|
+
import { style as tableStyle } from './table';
|
|
9
|
+
export default [
|
|
10
|
+
blockEditStyle,
|
|
11
|
+
cursorStyle,
|
|
12
|
+
imageStyle,
|
|
13
|
+
linkTooltipStyle,
|
|
14
|
+
listItemStyle,
|
|
15
|
+
placeholderStyle,
|
|
16
|
+
prosemirrorStyle,
|
|
17
|
+
tableStyle,
|
|
18
|
+
];
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
milkdown-link-preview {
|
|
3
4
|
position: absolute;
|
|
4
5
|
height: 32px;
|
|
@@ -107,4 +108,5 @@ import{css}from"lit";export const style=css`
|
|
|
107
108
|
milkdown-link-edit > .link-edit > .button.hidden {
|
|
108
109
|
visibility: hidden;
|
|
109
110
|
}
|
|
110
|
-
`;
|
|
111
|
+
`;
|
|
112
|
+
//# sourceMappingURL=link-tooltip.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
milkdown-list-item-block {
|
|
3
4
|
display: block;
|
|
4
5
|
padding: 0;
|
|
@@ -37,4 +38,5 @@ import{css}from"lit";export const style=css`
|
|
|
37
38
|
milkdown-list-item-block li .label-wrapper .readonly {
|
|
38
39
|
cursor: not-allowed;
|
|
39
40
|
}
|
|
40
|
-
`;
|
|
41
|
+
`;
|
|
42
|
+
//# sourceMappingURL=list-item.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
.crepe-placeholder::before {
|
|
3
4
|
position: absolute;
|
|
4
5
|
color: var(--og-accent-color-alpha-70);
|
|
@@ -6,4 +7,5 @@ import{css}from"lit";export const style=css`
|
|
|
6
7
|
height: 0;
|
|
7
8
|
content: attr(data-placeholder);
|
|
8
9
|
}
|
|
9
|
-
`;
|
|
10
|
+
`;
|
|
11
|
+
//# sourceMappingURL=placeholder.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
.ProseMirror {
|
|
3
4
|
position: relative;
|
|
4
5
|
}
|
|
@@ -53,4 +54,5 @@ import{css}from"lit";export const style=css`
|
|
|
53
54
|
border: none !important;
|
|
54
55
|
margin: 0 !important;
|
|
55
56
|
}
|
|
56
|
-
`;
|
|
57
|
+
`;
|
|
58
|
+
//# sourceMappingURL=prosemirror.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import{css}from"lit";
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
export const style = css `
|
|
2
3
|
.ProseMirror .tableWrapper {
|
|
3
4
|
overflow-x: auto;
|
|
4
5
|
}
|
|
@@ -230,4 +231,5 @@ import{css}from"lit";export const style=css`
|
|
|
230
231
|
milkdown-table-block.readonly .handle {
|
|
231
232
|
display: none;
|
|
232
233
|
}
|
|
233
|
-
`;
|
|
234
|
+
`;
|
|
235
|
+
//# sourceMappingURL=table.js.map
|
package/dist/constants.js
CHANGED
package/dist/index.js
CHANGED
package/dist/loader.js
CHANGED
|
@@ -1 +1,46 @@
|
|
|
1
|
-
var
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
+
};
|
|
12
|
+
var _a, _MilkdownLoader_milkdown;
|
|
13
|
+
import { ScriptLoader } from "@omegagrid/core";
|
|
14
|
+
export const md = {};
|
|
15
|
+
export class MilkdownLoader {
|
|
16
|
+
static init(path) {
|
|
17
|
+
_a.milkdownPath = path;
|
|
18
|
+
}
|
|
19
|
+
static async get() {
|
|
20
|
+
if (!__classPrivateFieldGet(this, _a, "f", _MilkdownLoader_milkdown))
|
|
21
|
+
__classPrivateFieldSet(this, _a, await this.load(), "f", _MilkdownLoader_milkdown);
|
|
22
|
+
Object.assign(md, __classPrivateFieldGet(this, _a, "f", _MilkdownLoader_milkdown));
|
|
23
|
+
return __classPrivateFieldGet(this, _a, "f", _MilkdownLoader_milkdown);
|
|
24
|
+
}
|
|
25
|
+
static getSync() {
|
|
26
|
+
return __classPrivateFieldGet(this, _a, "f", _MilkdownLoader_milkdown);
|
|
27
|
+
}
|
|
28
|
+
static async load() {
|
|
29
|
+
if (window.Milkdown)
|
|
30
|
+
return window.Milkdown;
|
|
31
|
+
return new Promise((resolve, reject) => ScriptLoader.load(this.milkdownPath).then(() => {
|
|
32
|
+
if (window.Milkdown) {
|
|
33
|
+
resolve(window.Milkdown);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
reject('Failed to load Milkdown');
|
|
37
|
+
}
|
|
38
|
+
}).catch((error) => {
|
|
39
|
+
console.error('Failed to load Milkdown', error);
|
|
40
|
+
reject(error);
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
_a = MilkdownLoader;
|
|
45
|
+
_MilkdownLoader_milkdown = { value: void 0 };
|
|
46
|
+
//# sourceMappingURL=loader.js.map
|
package/dist/utils.js
CHANGED
|
@@ -1 +1,62 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MilkdownLoader } from "./loader";
|
|
2
|
+
import { configureFeatures, getFeatures } from '.';
|
|
3
|
+
export async function createEditor(options) {
|
|
4
|
+
const milkdown = await MilkdownLoader.get();
|
|
5
|
+
const editor = milkdown.core.Editor.make();
|
|
6
|
+
const enabledFeatures = Array.from(getFeatures(editor, milkdown, options).entries()).filter(([_k, v]) => v.default);
|
|
7
|
+
editor.config(configureFeatures(enabledFeatures.map(f => f[0]), milkdown))
|
|
8
|
+
.config((ctx) => {
|
|
9
|
+
if (options?.container)
|
|
10
|
+
ctx.set(milkdown.core.rootCtx, options.container);
|
|
11
|
+
if (options?.content)
|
|
12
|
+
ctx.set(milkdown.core.defaultValueCtx, options.content);
|
|
13
|
+
if (options?.readOnly) {
|
|
14
|
+
ctx.update(milkdown.core.editorViewOptionsCtx, (prev) => ({ ...prev, editable: () => false }));
|
|
15
|
+
}
|
|
16
|
+
ctx.update(milkdown.plugins.indent.indentConfig.key, (value) => ({
|
|
17
|
+
...value,
|
|
18
|
+
size: 4,
|
|
19
|
+
}));
|
|
20
|
+
const listener = ctx.get(milkdown.plugins.listener.listenerCtx);
|
|
21
|
+
listener.markdownUpdated((_ctx, markdown, prevMarkdown) => {
|
|
22
|
+
if (options?.onChange && markdown !== prevMarkdown) {
|
|
23
|
+
options.onChange(markdown, prevMarkdown);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
// listener.mounted((ctx) => {
|
|
27
|
+
// console.log(options.container);
|
|
28
|
+
// });
|
|
29
|
+
})
|
|
30
|
+
.use(milkdown.presets.commonmark.commonmark)
|
|
31
|
+
.use(milkdown.plugins.listener.listener)
|
|
32
|
+
.use(milkdown.plugins.history.history)
|
|
33
|
+
.use(milkdown.plugins.indent.indent)
|
|
34
|
+
.use(milkdown.plugins.trailing.trailing)
|
|
35
|
+
.use(milkdown.plugins.clipboard.clipboard)
|
|
36
|
+
.use(milkdown.presets.gfm.gfm);
|
|
37
|
+
enabledFeatures.forEach(f => f[1].init());
|
|
38
|
+
await editor.create();
|
|
39
|
+
return editor;
|
|
40
|
+
}
|
|
41
|
+
export async function markdownToHtml(markdown, options) {
|
|
42
|
+
const editor = await createEditor(Object.assign({}, options, { content: markdown, readOnly: true }));
|
|
43
|
+
const md = MilkdownLoader.getSync();
|
|
44
|
+
const div = document.createElement('div');
|
|
45
|
+
const schema = editor.ctx.get(md.core.schemaCtx);
|
|
46
|
+
const view = editor.ctx.get(md.core.editorViewCtx);
|
|
47
|
+
const fragment = md.prose.model.DOMSerializer.fromSchema(schema).serializeFragment(view.state.doc.content);
|
|
48
|
+
for (const img of fragment.querySelectorAll('img')) {
|
|
49
|
+
const src = img.getAttribute('src');
|
|
50
|
+
if (src && options?.modifyImageUrl) {
|
|
51
|
+
const url = options.modifyImageUrl(src);
|
|
52
|
+
img.setAttribute('src', typeof url === 'string' ? url : await url);
|
|
53
|
+
}
|
|
54
|
+
if (img.hasAttribute('ratio')) {
|
|
55
|
+
img.style.width = (100 * parseFloat(img.getAttribute('ratio'))) + '%';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
div.appendChild(fragment);
|
|
59
|
+
editor.destroy();
|
|
60
|
+
return div.innerHTML;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/markdown",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.28",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Markdown view webcomponent",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@fortawesome/fontawesome-svg-core": "6.4.2",
|
|
31
|
-
"@omegagrid/code": "^0.6.
|
|
32
|
-
"@omegagrid/core": "^0.6.
|
|
33
|
-
"@omegagrid/localize": "^0.6.
|
|
34
|
-
"@omegagrid/milkdown-kit": "^0.6.
|
|
35
|
-
"@omegagrid/tabs": "^0.6.
|
|
31
|
+
"@omegagrid/code": "^0.6.28",
|
|
32
|
+
"@omegagrid/core": "^0.6.28",
|
|
33
|
+
"@omegagrid/localize": "^0.6.28",
|
|
34
|
+
"@omegagrid/milkdown-kit": "^0.6.28",
|
|
35
|
+
"@omegagrid/tabs": "^0.6.28",
|
|
36
36
|
"@riovir/wc-fontawesome": "^0.1.9",
|
|
37
37
|
"lit": "^3.1.1",
|
|
38
38
|
"markdown-it": "^14.1.0",
|