@clevertask/scribe 0.1.28 → 0.1.30
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 +30 -47
- package/dist/BarMenu-Bban-B3t.js +302 -0
- package/dist/assets/index.css +1 -1
- package/dist/components/Menu/BarMenu.d.ts.map +1 -1
- package/dist/components/Menu/BarMenu.js +1 -1
- package/dist/components/Menu/BubbleMenu.js +2 -2
- package/dist/components/Menu/CalloutBubbleMenu.js +2 -2
- package/dist/components/Menu/LinkBubbleMenu.d.ts.map +1 -1
- package/dist/components/Menu/LinkBubbleMenu.js +107 -119
- package/dist/components/Menu/LinkEditor.d.ts +0 -7
- package/dist/components/Menu/LinkEditor.d.ts.map +1 -1
- package/dist/components/Menu/LinkEditor.js +152 -153
- package/dist/components/Menu/Mobile/ListOptionBar.js +1 -1
- package/dist/components/Menu/TableBubbleMenu.js +3 -3
- package/dist/components/Menu/TableHeightSettings.js +1 -1
- package/dist/components/Menu/linkBubbleMenuPlugin.d.ts.map +1 -1
- package/dist/components/Menu/linkBubbleMenuPlugin.js +9 -5
- package/dist/components/Scribe/extension/callout.js +5 -5
- package/dist/components/Scribe/extension/emoji/suggest.js +1 -1
- package/dist/components/Scribe/extension/extension-link.js +1 -1
- package/dist/components/Scribe/extension/extension-markdown-paste.js +1 -1
- package/dist/components/Scribe/extension/extension-selectedText.js +1 -1
- package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts +0 -7
- package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts.map +1 -1
- package/dist/components/Scribe/extension/external-link-preview/attributes.js +26 -51
- package/dist/components/Scribe/extension/external-link-preview/commands.d.ts +5 -12
- package/dist/components/Scribe/extension/external-link-preview/commands.d.ts.map +1 -1
- package/dist/components/Scribe/extension/external-link-preview/commands.js +56 -121
- package/dist/components/Scribe/extension/external-link-preview/index.d.ts +4 -6
- package/dist/components/Scribe/extension/external-link-preview/index.d.ts.map +1 -1
- package/dist/components/Scribe/extension/external-link-preview/index.js +5 -41
- package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts +1 -0
- package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts.map +1 -1
- package/dist/components/Scribe/extension/external-link-preview/render-html.js +17 -60
- package/dist/components/Scribe/extension/external-link-preview/schema.d.ts +2 -2
- package/dist/components/Scribe/extension/external-link-preview/schema.js +1 -1
- package/dist/components/Scribe/extension/external-link-preview/serialization.d.ts.map +1 -1
- package/dist/components/Scribe/extension/external-link-preview/serialization.js +29 -45
- package/dist/components/Scribe/extension/external-link-preview/types.d.ts +14 -17
- package/dist/components/Scribe/extension/external-link-preview/types.d.ts.map +1 -1
- package/dist/components/Scribe/extension/index.js +1 -1
- package/dist/components/Scribe/extension/resizable-table.js +2 -2
- package/dist/components/Scribe/extension/slashCommand/index.js +2 -2
- package/dist/components/Scribe/extension/slashCommand/renderItems.js +1 -1
- package/dist/components/Scribe/extension/table-layout.js +1 -1
- package/dist/components/Scribe/extension/tableOfContents.js +1 -1
- package/dist/components/Scribe/index.d.ts +3 -9
- package/dist/components/Scribe/index.d.ts.map +1 -1
- package/dist/components/Scribe/index.js +3 -3
- package/dist/{dist-xjmWZ-oh.js → dist-DGEcUiqG.js} +650 -686
- package/dist/{dist-Dk0fXvrc.js → dist-TKt66Yz8.js} +2 -2
- package/dist/{dist-BiognBi4.js → dist-ZGDUiMX8.js} +189 -376
- package/dist/document-node-capabilities.js +1 -1
- package/dist/{extension-BU2USLV1.js → extension-I7Ocj_D_.js} +2 -2
- package/dist/extension-link-Cb1UO6hv.js +939 -0
- package/dist/main.css +0 -141
- package/dist/{menus-BDXjZsFU.js → menus-BrQTLTFL.js} +17 -17
- package/dist/{schema-extensions-DyCk1Goa.js → schema-extensions-CzDKrIf8.js} +1616 -1489
- package/dist/schema-extensions.js +1 -1
- package/dist/schema.js +1 -1
- package/dist/{table-layout-BoDS50DR.js → table-layout-Dt7KmVp_.js} +174 -123
- package/dist/utils/create-scribe-editor.d.ts +1 -1
- package/dist/utils/create-scribe-editor.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/package.json +51 -51
- package/dist/BarMenu-BGWT4Oyk.js +0 -302
- package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts +0 -13
- package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts.map +0 -1
- package/dist/components/Menu/ExternalLinkDisplayOptions.js +0 -90
- package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts +0 -3
- package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts.map +0 -1
- package/dist/components/Scribe/extension/external-link-preview/node-view.js +0 -97
- package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts +0 -7
- package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts.map +0 -1
- package/dist/components/Scribe/extension/external-link-preview/normalization.js +0 -21
- package/dist/components/Scribe/extension/external-link-preview/paste.d.ts +0 -8
- package/dist/components/Scribe/extension/external-link-preview/paste.d.ts.map +0 -1
- package/dist/components/Scribe/extension/external-link-preview/paste.js +0 -53
- package/dist/components/Scribe/extension/external-link-preview/policy.d.ts +0 -7
- package/dist/components/Scribe/extension/external-link-preview/policy.d.ts.map +0 -1
- package/dist/components/Scribe/extension/external-link-preview/policy.js +0 -38
- package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts +0 -23
- package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts.map +0 -1
- package/dist/components/Scribe/extension/external-link-preview/resolver.js +0 -118
- package/dist/extension-link-DmM_EJTn.js +0 -909
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import "./attributes.js";
|
|
2
|
-
import { Plugin as e, PluginKey as t } from "@tiptap/pm/state";
|
|
3
|
-
//#region lib/components/Scribe/extension/external-link-preview/normalization.ts
|
|
4
|
-
var n = new t("scribeExternalLinkPreviewNormalization"), r = (e) => {
|
|
5
|
-
let t = e.tr, r = !1;
|
|
6
|
-
return e.doc.descendants((n, i) => {
|
|
7
|
-
if (n.type.name !== "externalLinkPreview" || n.attrs.display !== "card") return;
|
|
8
|
-
let a = e.doc.resolve(i);
|
|
9
|
-
a.parent.isTextblock && a.parent.childCount === 1 && a.parent.content.size === n.nodeSize || (t.setNodeMarkup(i, void 0, {
|
|
10
|
-
...n.attrs,
|
|
11
|
-
display: "compact"
|
|
12
|
-
}), r = !0);
|
|
13
|
-
}), r ? t.setMeta(n, !0) : null;
|
|
14
|
-
}, i = () => new e({
|
|
15
|
-
key: n,
|
|
16
|
-
appendTransaction(e, t, i) {
|
|
17
|
-
return !e.some((e) => e.docChanged) || e.some((e) => e.getMeta(n)) ? null : r(i);
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
//#endregion
|
|
21
|
-
export { i as createExternalLinkPreviewNormalizationPlugin, r as createExternalLinkPreviewNormalizationTransaction, n as externalLinkPreviewNormalizationPluginKey };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { NodeType } from "@tiptap/pm/model";
|
|
2
|
-
import { Plugin } from "@tiptap/pm/state";
|
|
3
|
-
export declare const createExternalLinkPreviewPastePlugin: ({ previewType, autoPreviewOnPaste, shouldPreview, }: {
|
|
4
|
-
previewType: NodeType;
|
|
5
|
-
autoPreviewOnPaste: boolean;
|
|
6
|
-
shouldPreview?: (href: string) => boolean;
|
|
7
|
-
}) => Plugin<any>;
|
|
8
|
-
//# sourceMappingURL=paste.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paste.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/paste.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAiB,MAAM,EAAa,MAAM,kBAAkB,CAAC;AA6EpE,eAAO,MAAM,oCAAoC,wDAI9C;IACD,WAAW,EAAE,QAAQ,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C,gBAgEG,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { normalizeExternalLinkPreviewAttributes as e, normalizeExternalLinkPreviewHref as t } from "./attributes.js";
|
|
2
|
-
import { normalizeLinkUrl as n } from "../../../Menu/linkUrl.js";
|
|
3
|
-
import { NodeSelection as r, Plugin as i, PluginKey as a } from "@tiptap/pm/state";
|
|
4
|
-
//#region lib/components/Scribe/extension/external-link-preview/paste.ts
|
|
5
|
-
var o = new a("scribeExternalLinkPreviewPaste"), s = (e) => {
|
|
6
|
-
let t = e.clipboardData?.getData("text/plain");
|
|
7
|
-
if (!t) return null;
|
|
8
|
-
let n = t.trim();
|
|
9
|
-
return n && !/[\r\n]/.test(n) ? n : null;
|
|
10
|
-
}, c = (e, t) => {
|
|
11
|
-
let { selection: n, schema: r } = e.state, i = r.marks.link;
|
|
12
|
-
if (n.empty || !i) return !1;
|
|
13
|
-
let a = e.state.tr.setMeta("preventAutolink", !0), o = !1;
|
|
14
|
-
return e.state.doc.nodesBetween(n.from, n.to, (e, r, s) => {
|
|
15
|
-
if (!e.isText || !s?.isTextblock || !s.type.allowsMarkType(i)) return;
|
|
16
|
-
let c = Math.max(r, n.from), l = Math.min(r + e.nodeSize, n.to);
|
|
17
|
-
c < l && (a.addMark(c, l, i.create({ href: t })), o = !0);
|
|
18
|
-
}), o ? (e.dispatch(a), !0) : !1;
|
|
19
|
-
}, l = (e, t) => {
|
|
20
|
-
let { selection: n } = e.state, r = !0;
|
|
21
|
-
return n.$from.parent.forEach((e) => {
|
|
22
|
-
(!e.isText || e.textContent.trim()) && (r = !1);
|
|
23
|
-
}), !n.empty || n.$from.parent.type.name !== "paragraph" || !r ? !1 : n.$from.parent.canReplaceWith(0, n.$from.parent.childCount, t);
|
|
24
|
-
}, u = ({ previewType: a, autoPreviewOnPaste: u, shouldPreview: d }) => new i({
|
|
25
|
-
key: o,
|
|
26
|
-
props: { handlePaste(i, o) {
|
|
27
|
-
let f = s(o);
|
|
28
|
-
if (!f) return !1;
|
|
29
|
-
let p = n(f);
|
|
30
|
-
if (!i.state.selection.empty && p) {
|
|
31
|
-
let e = c(i, p);
|
|
32
|
-
return e && o.preventDefault(), e;
|
|
33
|
-
}
|
|
34
|
-
let m = t(f);
|
|
35
|
-
if (!u || !m || !l(i, a)) return !1;
|
|
36
|
-
try {
|
|
37
|
-
if (d && !d(m)) return !1;
|
|
38
|
-
} catch {
|
|
39
|
-
return !1;
|
|
40
|
-
}
|
|
41
|
-
let h = e({
|
|
42
|
-
href: m,
|
|
43
|
-
linkText: f,
|
|
44
|
-
display: "compact"
|
|
45
|
-
});
|
|
46
|
-
if (!h) return !1;
|
|
47
|
-
o.preventDefault();
|
|
48
|
-
let g = i.state.selection.$from.start(), _ = g + i.state.selection.$from.parent.content.size, v = g, y = i.state.tr.replaceWith(g, _, a.create(h));
|
|
49
|
-
return y.setSelection(r.create(y.doc, v)), i.dispatch(y.scrollIntoView()), !0;
|
|
50
|
-
} }
|
|
51
|
-
});
|
|
52
|
-
//#endregion
|
|
53
|
-
export { u as createExternalLinkPreviewPastePlugin };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { EditorState, Transaction } from "@tiptap/pm/state";
|
|
2
|
-
import { Plugin, PluginKey } from "@tiptap/pm/state";
|
|
3
|
-
export declare const externalLinkPreviewPolicyPluginKey: PluginKey<any>;
|
|
4
|
-
/** Convert previews rejected by a consumer policy into safe, ordinary link text. */
|
|
5
|
-
export declare const createExternalLinkPreviewPolicyTransaction: (state: EditorState, shouldPreview?: (href: string) => boolean) => Transaction | null;
|
|
6
|
-
export declare const createExternalLinkPreviewPolicyPlugin: (shouldPreview?: (href: string) => boolean) => Plugin<any>;
|
|
7
|
-
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAMrD,eAAO,MAAM,kCAAkC,gBAAmD,CAAC;AA+BnG,oFAAoF;AACpF,eAAO,MAAM,0CAA0C,UAC9C,WAAW,kBACF,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KACxC,WAAW,GAAG,IA2ChB,CAAC;AAEF,eAAO,MAAM,qCAAqC,mBAAoB,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,gBAa3F,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { normalizeExternalLinkPreviewAttributes as e } from "./attributes.js";
|
|
2
|
-
import { Plugin as t, PluginKey as n } from "@tiptap/pm/state";
|
|
3
|
-
//#region lib/components/Scribe/extension/external-link-preview/policy.ts
|
|
4
|
-
var r = new n("scribeExternalLinkPreviewPolicy"), i = (e, t) => {
|
|
5
|
-
try {
|
|
6
|
-
return t(e);
|
|
7
|
-
} catch {
|
|
8
|
-
return !1;
|
|
9
|
-
}
|
|
10
|
-
}, a = (t, n, r, i) => {
|
|
11
|
-
let a = e(n.attrs);
|
|
12
|
-
if (!a) return null;
|
|
13
|
-
let o = t.doc.resolve(r).parent, s = i && o.type.allowsMarkType(i) ? [i.create({ href: a.href })] : [];
|
|
14
|
-
return t.schema.text(a.linkText, s);
|
|
15
|
-
}, o = (t, n) => {
|
|
16
|
-
if (!n) return null;
|
|
17
|
-
let o = [];
|
|
18
|
-
if (t.doc.descendants((t, r) => {
|
|
19
|
-
if (t.type.name !== "externalLinkPreview") return;
|
|
20
|
-
let a = e(t.attrs);
|
|
21
|
-
(!a || !i(a.href, n)) && o.push({
|
|
22
|
-
node: t,
|
|
23
|
-
position: r
|
|
24
|
-
});
|
|
25
|
-
}), !o.length) return null;
|
|
26
|
-
let s = t.tr, c = t.schema.marks.link, l = !1;
|
|
27
|
-
return o.sort((e, t) => t.position - e.position).forEach(({ node: e, position: n }) => {
|
|
28
|
-
let r = a(t, e, n, c);
|
|
29
|
-
r && (s.replaceWith(n, n + e.nodeSize, r), l = !0);
|
|
30
|
-
}), l ? s.setMeta(r, !0).setMeta("addToHistory", !1) : null;
|
|
31
|
-
}, s = (e) => new t({
|
|
32
|
-
key: r,
|
|
33
|
-
appendTransaction(t, n, i) {
|
|
34
|
-
return !t.some((e) => e.docChanged) || t.some((e) => e.getMeta(r)) ? null : o(i, e);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
//#endregion
|
|
38
|
-
export { s as createExternalLinkPreviewPolicyPlugin, o as createExternalLinkPreviewPolicyTransaction, r as externalLinkPreviewPolicyPluginKey };
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Editor } from "@tiptap/core";
|
|
2
|
-
import type { EditorState, Transaction } from "@tiptap/pm/state";
|
|
3
|
-
import { Plugin, PluginKey } from "@tiptap/pm/state";
|
|
4
|
-
import type { ExternalLinkPreviewResolutionStatus, ExternalLinkPreviewResolver } from "./types";
|
|
5
|
-
interface ExternalLinkPreviewRequest {
|
|
6
|
-
href: string;
|
|
7
|
-
position: number;
|
|
8
|
-
status: Exclude<ExternalLinkPreviewResolutionStatus, "idle">;
|
|
9
|
-
token: number;
|
|
10
|
-
}
|
|
11
|
-
interface ExternalLinkPreviewResolverState {
|
|
12
|
-
nextToken: number;
|
|
13
|
-
requests: Map<number, ExternalLinkPreviewRequest>;
|
|
14
|
-
}
|
|
15
|
-
export declare const externalLinkPreviewResolverPluginKey: PluginKey<ExternalLinkPreviewResolverState>;
|
|
16
|
-
export declare const startExternalLinkPreviewResolution: (transaction: Transaction, position: number, href: string) => Transaction;
|
|
17
|
-
export declare const getExternalLinkPreviewResolutionStatus: (state: EditorState, position: number) => ExternalLinkPreviewResolutionStatus;
|
|
18
|
-
export declare const createExternalLinkPreviewResolverPlugin: ({ editor, resolve, }: {
|
|
19
|
-
editor: Editor;
|
|
20
|
-
resolve?: ExternalLinkPreviewResolver;
|
|
21
|
-
}) => Plugin<ExternalLinkPreviewResolverState>;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAiB,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEhG,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gCAAgC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CACnD;AAOD,eAAO,MAAM,oCAAoC,6CAEhD,CAAC;AAUF,eAAO,MAAM,kCAAkC,gBAChC,WAAW,YACd,MAAM,QACV,MAAM,gBASb,CAAC;AAEF,eAAO,MAAM,sCAAsC,UAC1C,WAAW,YACR,MAAM,KACf,mCAWF,CAAC;AAyHF,eAAO,MAAM,uCAAuC,yBAGjD;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACvC,6CAkEA,CAAC"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { normalizeExternalLinkPreviewAttributes as e, normalizeExternalLinkPreviewMetadataPatch as t } from "./attributes.js";
|
|
2
|
-
import { NodeSelection as n, Plugin as r, PluginKey as i } from "@tiptap/pm/state";
|
|
3
|
-
//#region lib/components/Scribe/extension/external-link-preview/resolver.ts
|
|
4
|
-
var a = new i("scribeExternalLinkPreviewResolver"), o = (e, t) => e?.type.name === "externalLinkPreview" && e.attrs.display === "card" && e.attrs.href === t, s = (e, t) => Array.from(e.requests.values()).find((e) => e.token === t), c = (e, t, n) => (e.setMeta(a, {
|
|
5
|
-
type: "start",
|
|
6
|
-
href: n,
|
|
7
|
-
position: t
|
|
8
|
-
}), e), l = (e, t) => {
|
|
9
|
-
let n = a.getState(e);
|
|
10
|
-
return n ? Array.from(n.requests.values()).find((e) => e.position === t)?.status ?? "idle" : "idle";
|
|
11
|
-
}, u = (e, t) => {
|
|
12
|
-
let n = /* @__PURE__ */ new Map();
|
|
13
|
-
t.requests.forEach((t) => {
|
|
14
|
-
let r = e.mapping.mapResult(t.position, 1), i = e.doc.nodeAt(r.pos);
|
|
15
|
-
!r.deleted && o(i, t.href) && n.set(t.token, {
|
|
16
|
-
...t,
|
|
17
|
-
position: r.pos
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
let r = e.getMeta(a), i = t.nextToken;
|
|
21
|
-
if (!r) return {
|
|
22
|
-
nextToken: i,
|
|
23
|
-
requests: n
|
|
24
|
-
};
|
|
25
|
-
if (r.type === "start") n.forEach((e, t) => {
|
|
26
|
-
e.position === r.position && n.delete(t);
|
|
27
|
-
}), o(e.doc.nodeAt(r.position), r.href) && (i += 1, n.set(i, {
|
|
28
|
-
href: r.href,
|
|
29
|
-
position: r.position,
|
|
30
|
-
status: "loading",
|
|
31
|
-
token: i
|
|
32
|
-
}));
|
|
33
|
-
else if (r.type === "complete") n.delete(r.token);
|
|
34
|
-
else {
|
|
35
|
-
let e = s({
|
|
36
|
-
nextToken: i,
|
|
37
|
-
requests: n
|
|
38
|
-
}, r.token);
|
|
39
|
-
e && n.set(e.token, {
|
|
40
|
-
...e,
|
|
41
|
-
status: "error"
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
nextToken: i,
|
|
46
|
-
requests: n
|
|
47
|
-
};
|
|
48
|
-
}, d = (e, t) => {
|
|
49
|
-
e.isDestroyed || e.dispatch(e.state.tr.setMeta(a, t).setMeta("addToHistory", !1));
|
|
50
|
-
}, f = (r, i, c) => {
|
|
51
|
-
if (r.isDestroyed) return;
|
|
52
|
-
let l = a.getState(r.state), u = l ? s(l, i.token) : void 0;
|
|
53
|
-
if (!u || u.status !== "loading" || !c) {
|
|
54
|
-
u && !c && d(r, {
|
|
55
|
-
type: "error",
|
|
56
|
-
token: i.token
|
|
57
|
-
});
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
let f = r.state.doc.nodeAt(u.position);
|
|
61
|
-
if (!o(f, u.href) || !f) return;
|
|
62
|
-
let p = e({
|
|
63
|
-
...f.attrs,
|
|
64
|
-
...t(c)
|
|
65
|
-
});
|
|
66
|
-
if (!p) {
|
|
67
|
-
d(r, {
|
|
68
|
-
type: "error",
|
|
69
|
-
token: i.token
|
|
70
|
-
});
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
let m = r.state.selection instanceof n && r.state.selection.from === u.position && r.state.selection.node.type.name === "externalLinkPreview", h = r.state.tr.setNodeMarkup(u.position, void 0, p).setMeta(a, {
|
|
74
|
-
type: "complete",
|
|
75
|
-
token: i.token
|
|
76
|
-
}).setMeta("addToHistory", !1);
|
|
77
|
-
m && h.setSelection(n.create(h.doc, u.position)), r.dispatch(h);
|
|
78
|
-
}, p = ({ editor: e, resolve: t }) => {
|
|
79
|
-
let n = /* @__PURE__ */ new Map(), i = (r) => {
|
|
80
|
-
let i = a.getState(r.state), o = new Set(Array.from(i?.requests.values() ?? []).filter((e) => e.status === "loading").map((e) => e.token));
|
|
81
|
-
n.forEach((e, t) => {
|
|
82
|
-
o.has(t) || (e.abort(), n.delete(t));
|
|
83
|
-
}), t && !e.isDestroyed && i && i.requests.forEach((e) => {
|
|
84
|
-
if (e.status !== "loading" || n.has(e.token)) return;
|
|
85
|
-
let i = new AbortController();
|
|
86
|
-
n.set(e.token, i), Promise.resolve().then(() => t(e.href, { signal: i.signal })).then((t) => {
|
|
87
|
-
i.signal.aborted || f(r, e, t);
|
|
88
|
-
}).catch(() => {
|
|
89
|
-
i.signal.aborted || d(r, {
|
|
90
|
-
type: "error",
|
|
91
|
-
token: e.token
|
|
92
|
-
});
|
|
93
|
-
}).finally(() => {
|
|
94
|
-
n.delete(e.token);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
return new r({
|
|
99
|
-
key: a,
|
|
100
|
-
state: {
|
|
101
|
-
init: () => ({
|
|
102
|
-
nextToken: 0,
|
|
103
|
-
requests: /* @__PURE__ */ new Map()
|
|
104
|
-
}),
|
|
105
|
-
apply: u
|
|
106
|
-
},
|
|
107
|
-
view(e) {
|
|
108
|
-
return i(e), {
|
|
109
|
-
update: i,
|
|
110
|
-
destroy() {
|
|
111
|
-
n.forEach((e) => e.abort()), n.clear();
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
//#endregion
|
|
118
|
-
export { p as createExternalLinkPreviewResolverPlugin, a as externalLinkPreviewResolverPluginKey, l as getExternalLinkPreviewResolutionStatus, c as startExternalLinkPreviewResolution };
|