@prosekit/extensions 0.16.0-beta.0 → 0.16.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/dist/{prosekit-extensions-autocomplete.d.ts → autocomplete.d.ts} +1 -6
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/{prosekit-extensions-autocomplete.js → autocomplete.js} +1 -9
- package/dist/autocomplete.js.map +1 -0
- package/dist/{prosekit-extensions-background-color.d.ts → background-color.d.ts} +1 -8
- package/dist/background-color.d.ts.map +1 -0
- package/dist/{prosekit-extensions-background-color.js → background-color.js} +1 -7
- package/dist/background-color.js.map +1 -0
- package/dist/{prosekit-extensions-blockquote.d.ts → blockquote.d.ts} +1 -12
- package/dist/blockquote.d.ts.map +1 -0
- package/dist/{prosekit-extensions-blockquote.js → blockquote.js} +2 -12
- package/dist/blockquote.js.map +1 -0
- package/dist/{prosekit-extensions-bold.d.ts → bold.d.ts} +1 -12
- package/dist/bold.d.ts.map +1 -0
- package/dist/{prosekit-extensions-bold.js → bold.js} +2 -12
- package/dist/bold.js.map +1 -0
- package/dist/{prosekit-extensions-code-block.d.ts → code-block.d.ts} +1 -20
- package/dist/code-block.d.ts.map +1 -0
- package/dist/{prosekit-extensions-code-block.js → code-block.js} +3 -21
- package/dist/code-block.js.map +1 -0
- package/dist/{prosekit-extensions-code.d.ts → code.d.ts} +1 -12
- package/dist/code.d.ts.map +1 -0
- package/dist/{prosekit-extensions-code.js → code.js} +2 -12
- package/dist/code.js.map +1 -0
- package/dist/{prosekit-extensions-commit.d.ts → commit.d.ts} +1 -4
- package/dist/commit.d.ts.map +1 -0
- package/dist/{prosekit-extensions-commit.js → commit.js} +1 -3
- package/dist/commit.js.map +1 -0
- package/dist/{prosekit-extensions-doc.d.ts → doc.d.ts} +1 -4
- package/dist/doc.d.ts.map +1 -0
- package/dist/{prosekit-extensions-doc.js → doc.js} +1 -3
- package/dist/doc.js.map +1 -0
- package/dist/{prosekit-extensions-drop-cursor.d.ts → drop-cursor.d.ts} +1 -4
- package/dist/drop-cursor.d.ts.map +1 -0
- package/dist/{prosekit-extensions-drop-cursor.js → drop-cursor.js} +1 -3
- package/dist/drop-cursor.js.map +1 -0
- package/dist/{prosekit-extensions-drop-indicator.d.ts → drop-indicator.d.ts} +1 -4
- package/dist/drop-indicator.d.ts.map +1 -0
- package/dist/drop-indicator.js +2 -57
- package/dist/drop-indicator2.js +53 -0
- package/dist/drop-indicator2.js.map +1 -0
- package/dist/{prosekit-extensions-enter-rule.d.ts → enter-rule.d.ts} +1 -4
- package/dist/enter-rule.d.ts.map +1 -0
- package/dist/{prosekit-extensions-enter-rule.js → enter-rule.js} +1 -3
- package/dist/enter-rule.js.map +1 -0
- package/dist/file.js +2 -128
- package/dist/file2.js +120 -0
- package/dist/file2.js.map +1 -0
- package/dist/{prosekit-extensions-gap-cursor.d.ts → gap-cursor.d.ts} +1 -4
- package/dist/gap-cursor.d.ts.map +1 -0
- package/dist/{prosekit-extensions-gap-cursor.js → gap-cursor.js} +1 -3
- package/dist/gap-cursor.js.map +1 -0
- package/dist/{prosekit-extensions-hard-break.d.ts → hard-break.d.ts} +1 -10
- package/dist/hard-break.d.ts.map +1 -0
- package/dist/{prosekit-extensions-hard-break.js → hard-break.js} +1 -9
- package/dist/hard-break.js.map +1 -0
- package/dist/{prosekit-extensions-heading.d.ts → heading.d.ts} +1 -14
- package/dist/heading.d.ts.map +1 -0
- package/dist/{prosekit-extensions-heading.js → heading.js} +2 -12
- package/dist/heading.js.map +1 -0
- package/dist/{prosekit-extensions-horizontal-rule.d.ts → horizontal-rule.d.ts} +1 -10
- package/dist/horizontal-rule.d.ts.map +1 -0
- package/dist/{prosekit-extensions-horizontal-rule.js → horizontal-rule.js} +2 -10
- package/dist/horizontal-rule.js.map +1 -0
- package/dist/{prosekit-extensions-image.d.ts → image.d.ts} +1 -14
- package/dist/image.d.ts.map +1 -0
- package/dist/{prosekit-extensions-image.js → image.js} +2 -14
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/{prosekit-extensions-input-rule.d.ts → input-rule.d.ts} +1 -4
- package/dist/input-rule.d.ts.map +1 -0
- package/dist/{prosekit-extensions-input-rule.js → input-rule.js} +1 -3
- package/dist/input-rule.js.map +1 -0
- package/dist/{prosekit-extensions-italic.d.ts → italic.d.ts} +1 -12
- package/dist/italic.d.ts.map +1 -0
- package/dist/{prosekit-extensions-italic.js → italic.js} +2 -12
- package/dist/italic.js.map +1 -0
- package/dist/{prosekit-extensions-link.d.ts → link.d.ts} +1 -8
- package/dist/link.d.ts.map +1 -0
- package/dist/{prosekit-extensions-link.js → link.js} +5 -11
- package/dist/link.js.map +1 -0
- package/dist/{prosekit-extensions-list.d.ts → list.d.ts} +1 -18
- package/dist/list.d.ts.map +1 -0
- package/dist/{prosekit-extensions-list.js → list.js} +3 -19
- package/dist/list.js.map +1 -0
- package/dist/{prosekit-extensions-loro.d.ts → loro.d.ts} +1 -14
- package/dist/loro.d.ts.map +1 -0
- package/dist/{prosekit-extensions-loro.js → loro.js} +1 -13
- package/dist/loro.js.map +1 -0
- package/dist/{prosekit-extensions-mark-rule.d.ts → mark-rule.d.ts} +1 -6
- package/dist/mark-rule.d.ts.map +1 -0
- package/dist/mark-rule.js +2 -157
- package/dist/mark-rule2.js +151 -0
- package/dist/mark-rule2.js.map +1 -0
- package/dist/{prosekit-extensions-math.d.ts → math.d.ts} +1 -10
- package/dist/math.d.ts.map +1 -0
- package/dist/{prosekit-extensions-math.js → math.js} +3 -11
- package/dist/math.js.map +1 -0
- package/dist/{prosekit-extensions-mention.d.ts → mention.d.ts} +1 -4
- package/dist/mention.d.ts.map +1 -0
- package/dist/{prosekit-extensions-mention.js → mention.js} +1 -3
- package/dist/mention.js.map +1 -0
- package/dist/{prosekit-extensions-mod-click-prevention.d.ts → mod-click-prevention.d.ts} +1 -4
- package/dist/mod-click-prevention.d.ts.map +1 -0
- package/dist/{prosekit-extensions-mod-click-prevention.js → mod-click-prevention.js} +1 -3
- package/dist/mod-click-prevention.js.map +1 -0
- package/dist/{prosekit-extensions-page.d.ts → page.d.ts} +1 -12
- package/dist/page.d.ts.map +1 -0
- package/dist/{prosekit-extensions-page.js → page.js} +3 -15
- package/dist/page.js.map +1 -0
- package/dist/{prosekit-extensions-paragraph.d.ts → paragraph.d.ts} +1 -10
- package/dist/paragraph.d.ts.map +1 -0
- package/dist/{prosekit-extensions-paragraph.js → paragraph.js} +1 -9
- package/dist/paragraph.js.map +1 -0
- package/dist/{prosekit-extensions-paste-rule.d.ts → paste-rule.d.ts} +1 -6
- package/dist/paste-rule.d.ts.map +1 -0
- package/dist/paste-rule.js +2 -158
- package/dist/paste-rule2.js +150 -0
- package/dist/paste-rule2.js.map +1 -0
- package/dist/{prosekit-extensions-placeholder.d.ts → placeholder.d.ts} +1 -4
- package/dist/placeholder.d.ts.map +1 -0
- package/dist/{prosekit-extensions-placeholder.js → placeholder.js} +2 -4
- package/dist/placeholder.js.map +1 -0
- package/dist/{prosekit-extensions-readonly.d.ts → readonly.d.ts} +1 -4
- package/dist/readonly.d.ts.map +1 -0
- package/dist/{prosekit-extensions-readonly.js → readonly.js} +6 -3
- package/dist/readonly.js.map +1 -0
- package/dist/{prosekit-extensions-search.d.ts → search.d.ts} +1 -4
- package/dist/search.d.ts.map +1 -0
- package/dist/{prosekit-extensions-search.js → search.js} +1 -3
- package/dist/search.js.map +1 -0
- package/dist/shiki-highlighter-chunk.js +0 -2
- package/dist/shiki-highlighter-chunk.js.map +1 -1
- package/dist/{prosekit-extensions-strike.d.ts → strike.d.ts} +1 -4
- package/dist/strike.d.ts.map +1 -0
- package/dist/{prosekit-extensions-strike.js → strike.js} +2 -4
- package/dist/strike.js.map +1 -0
- package/dist/{prosekit-extensions-table.d.ts → table.d.ts} +1 -26
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +2 -276
- package/dist/table2.js +252 -0
- package/dist/table2.js.map +1 -0
- package/dist/{prosekit-extensions-text-align.d.ts → text-align.d.ts} +1 -4
- package/dist/text-align.d.ts.map +1 -0
- package/dist/{prosekit-extensions-text-align.js → text-align.js} +1 -3
- package/dist/text-align.js.map +1 -0
- package/dist/{prosekit-extensions-text-color.d.ts → text-color.d.ts} +1 -8
- package/dist/text-color.d.ts.map +1 -0
- package/dist/{prosekit-extensions-text-color.js → text-color.js} +1 -7
- package/dist/text-color.js.map +1 -0
- package/dist/{prosekit-extensions-text.d.ts → text.d.ts} +1 -4
- package/dist/text.d.ts.map +1 -0
- package/dist/{prosekit-extensions-text.js → text.js} +1 -3
- package/dist/text.js.map +1 -0
- package/dist/{prosekit-extensions-underline.d.ts → underline.d.ts} +1 -4
- package/dist/underline.d.ts.map +1 -0
- package/dist/{prosekit-extensions-underline.js → underline.js} +1 -3
- package/dist/underline.js.map +1 -0
- package/dist/{prosekit-extensions-virtual-selection.d.ts → virtual-selection.d.ts} +1 -4
- package/dist/virtual-selection.d.ts.map +1 -0
- package/dist/{prosekit-extensions-virtual-selection.js → virtual-selection.js} +1 -3
- package/dist/virtual-selection.js.map +1 -0
- package/dist/{prosekit-extensions-yjs.d.ts → yjs.d.ts} +1 -16
- package/dist/yjs.d.ts.map +1 -0
- package/dist/{prosekit-extensions-yjs.js → yjs.js} +1 -13
- package/dist/yjs.js.map +1 -0
- package/package.json +136 -194
- package/src/page/page-element.ts +2 -2
- package/src/readonly/index.ts +6 -0
- package/dist/drop-indicator.js.map +0 -1
- package/dist/file.js.map +0 -1
- package/dist/mark-rule.js.map +0 -1
- package/dist/paste-rule.js.map +0 -1
- package/dist/prosekit-extensions-autocomplete.d.ts.map +0 -1
- package/dist/prosekit-extensions-autocomplete.js.map +0 -1
- package/dist/prosekit-extensions-background-color.d.ts.map +0 -1
- package/dist/prosekit-extensions-background-color.js.map +0 -1
- package/dist/prosekit-extensions-blockquote.d.ts.map +0 -1
- package/dist/prosekit-extensions-blockquote.js.map +0 -1
- package/dist/prosekit-extensions-bold.d.ts.map +0 -1
- package/dist/prosekit-extensions-bold.js.map +0 -1
- package/dist/prosekit-extensions-code-block.d.ts.map +0 -1
- package/dist/prosekit-extensions-code-block.js.map +0 -1
- package/dist/prosekit-extensions-code.d.ts.map +0 -1
- package/dist/prosekit-extensions-code.js.map +0 -1
- package/dist/prosekit-extensions-commit.d.ts.map +0 -1
- package/dist/prosekit-extensions-commit.js.map +0 -1
- package/dist/prosekit-extensions-doc.d.ts.map +0 -1
- package/dist/prosekit-extensions-doc.js.map +0 -1
- package/dist/prosekit-extensions-drop-cursor.d.ts.map +0 -1
- package/dist/prosekit-extensions-drop-cursor.js.map +0 -1
- package/dist/prosekit-extensions-drop-indicator.d.ts.map +0 -1
- package/dist/prosekit-extensions-drop-indicator.js +0 -2
- package/dist/prosekit-extensions-enter-rule.d.ts.map +0 -1
- package/dist/prosekit-extensions-enter-rule.js.map +0 -1
- package/dist/prosekit-extensions-file.js +0 -2
- package/dist/prosekit-extensions-gap-cursor.d.ts.map +0 -1
- package/dist/prosekit-extensions-gap-cursor.js.map +0 -1
- package/dist/prosekit-extensions-hard-break.d.ts.map +0 -1
- package/dist/prosekit-extensions-hard-break.js.map +0 -1
- package/dist/prosekit-extensions-heading.d.ts.map +0 -1
- package/dist/prosekit-extensions-heading.js.map +0 -1
- package/dist/prosekit-extensions-horizontal-rule.d.ts.map +0 -1
- package/dist/prosekit-extensions-horizontal-rule.js.map +0 -1
- package/dist/prosekit-extensions-image.d.ts.map +0 -1
- package/dist/prosekit-extensions-image.js.map +0 -1
- package/dist/prosekit-extensions-input-rule.d.ts.map +0 -1
- package/dist/prosekit-extensions-input-rule.js.map +0 -1
- package/dist/prosekit-extensions-italic.d.ts.map +0 -1
- package/dist/prosekit-extensions-italic.js.map +0 -1
- package/dist/prosekit-extensions-link.d.ts.map +0 -1
- package/dist/prosekit-extensions-link.js.map +0 -1
- package/dist/prosekit-extensions-list.d.ts.map +0 -1
- package/dist/prosekit-extensions-list.js.map +0 -1
- package/dist/prosekit-extensions-loro.d.ts.map +0 -1
- package/dist/prosekit-extensions-loro.js.map +0 -1
- package/dist/prosekit-extensions-mark-rule.d.ts.map +0 -1
- package/dist/prosekit-extensions-mark-rule.js +0 -2
- package/dist/prosekit-extensions-math.d.ts.map +0 -1
- package/dist/prosekit-extensions-math.js.map +0 -1
- package/dist/prosekit-extensions-mention.d.ts.map +0 -1
- package/dist/prosekit-extensions-mention.js.map +0 -1
- package/dist/prosekit-extensions-mod-click-prevention.d.ts.map +0 -1
- package/dist/prosekit-extensions-mod-click-prevention.js.map +0 -1
- package/dist/prosekit-extensions-page.d.ts.map +0 -1
- package/dist/prosekit-extensions-page.js.map +0 -1
- package/dist/prosekit-extensions-paragraph.d.ts.map +0 -1
- package/dist/prosekit-extensions-paragraph.js.map +0 -1
- package/dist/prosekit-extensions-paste-rule.d.ts.map +0 -1
- package/dist/prosekit-extensions-paste-rule.js +0 -2
- package/dist/prosekit-extensions-placeholder.d.ts.map +0 -1
- package/dist/prosekit-extensions-placeholder.js.map +0 -1
- package/dist/prosekit-extensions-readonly.d.ts.map +0 -1
- package/dist/prosekit-extensions-readonly.js.map +0 -1
- package/dist/prosekit-extensions-search.d.ts.map +0 -1
- package/dist/prosekit-extensions-search.js.map +0 -1
- package/dist/prosekit-extensions-strike.d.ts.map +0 -1
- package/dist/prosekit-extensions-strike.js.map +0 -1
- package/dist/prosekit-extensions-table.d.ts.map +0 -1
- package/dist/prosekit-extensions-table.js +0 -2
- package/dist/prosekit-extensions-text-align.d.ts.map +0 -1
- package/dist/prosekit-extensions-text-align.js.map +0 -1
- package/dist/prosekit-extensions-text-color.d.ts.map +0 -1
- package/dist/prosekit-extensions-text-color.js.map +0 -1
- package/dist/prosekit-extensions-text.d.ts.map +0 -1
- package/dist/prosekit-extensions-text.js.map +0 -1
- package/dist/prosekit-extensions-underline.d.ts.map +0 -1
- package/dist/prosekit-extensions-underline.js.map +0 -1
- package/dist/prosekit-extensions-virtual-selection.d.ts.map +0 -1
- package/dist/prosekit-extensions-virtual-selection.js.map +0 -1
- package/dist/prosekit-extensions-yjs.d.ts.map +0 -1
- package/dist/prosekit-extensions-yjs.js.map +0 -1
- package/dist/table.js.map +0 -1
- /package/dist/{prosekit-extensions-file.d.ts → file.d.ts} +0 -0
- /package/dist/{prosekit-extensions.js → index.js} +0 -0
- /package/dist/{prosekit-extensions.d.ts → index2.d.ts} +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { p as findTable } from "./
|
|
1
|
+
import { p as findTable } from "./table2.js";
|
|
2
2
|
import { Plugin, PluginKey } from "@prosekit/pm/state";
|
|
3
3
|
import { definePlugin, isInCodeBlock, isTextSelection, maybeRun } from "@prosekit/core";
|
|
4
4
|
import { Decoration, DecorationSet } from "@prosekit/pm/view";
|
|
5
|
-
//#region src/placeholder/index.ts
|
|
6
5
|
/**
|
|
7
6
|
* Add a placeholder text to the editor when the current block or document is
|
|
8
7
|
* empty.
|
|
@@ -43,7 +42,6 @@ function createPlaceholderDecoration(state, placeholderText) {
|
|
|
43
42
|
"data-placeholder": placeholderText
|
|
44
43
|
});
|
|
45
44
|
}
|
|
46
|
-
//#endregion
|
|
47
45
|
export { definePlaceholder };
|
|
48
46
|
|
|
49
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=placeholder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeholder.js","names":[],"sources":["../src/placeholder/index.ts"],"sourcesContent":["import { definePlugin, isInCodeBlock, isTextSelection, maybeRun, type PlainExtension } from '@prosekit/core'\nimport type { ProseMirrorNode } from '@prosekit/pm/model'\nimport { Plugin, PluginKey, type EditorState } from '@prosekit/pm/state'\nimport { Decoration, DecorationSet } from '@prosekit/pm/view'\n\nimport { findTable } from '../table/index.ts'\n\nexport interface PlaceholderOptions {\n /**\n * The placeholder to use. It can be a static string or a function that\n * receives the current editor state and returns a string.\n */\n placeholder: string | ((state: EditorState) => string)\n\n /**\n * By default, the placeholder text will be shown whenever the current text\n * cursor is in an empty text node and it's not inside a code block or a\n * table node.\n *\n * If you only want to show the placeholder when the whole doc is empty, you\n * can set this option to 'doc'.\n *\n * You can also pass a function that receives the current editor state and\n * returns a boolean value to determine whether the placeholder should be\n * shown.\n *\n * @default 'block'\n */\n strategy?: 'doc' | 'block' | ((state: EditorState) => boolean)\n}\n\n/**\n * Add a placeholder text to the editor when the current block or document is\n * empty.\n */\nexport function definePlaceholder(options: PlaceholderOptions): PlainExtension {\n return definePlugin(createPlaceholderPlugin(options))\n}\n\nfunction createPlaceholderPlugin({\n placeholder,\n strategy = 'block',\n}: PlaceholderOptions): Plugin {\n return new Plugin({\n key: new PluginKey('prosekit-placeholder'),\n props: {\n decorations: (state) => {\n const strategyFn = typeof strategy === 'function'\n ? strategy\n : strategy === 'doc'\n ? docStrategy\n : defaultStrategy\n\n if (!strategyFn(state)) {\n return null\n }\n\n const placeholderText: string = maybeRun(placeholder, state)\n const deco = createPlaceholderDecoration(state, placeholderText)\n if (!deco) {\n return null\n }\n\n return DecorationSet.create(state.doc, [deco])\n },\n },\n })\n}\n\nfunction defaultStrategy(state: EditorState): boolean {\n return !isInCodeBlock(state.selection) && !findTable(state.selection.$from)\n}\n\nfunction docStrategy(state: EditorState): boolean {\n return isDocEmpty(state.doc) && defaultStrategy(state)\n}\n\nfunction isDocEmpty(doc: ProseMirrorNode) {\n return doc.childCount <= 1 && !doc.firstChild?.content.size\n}\n\nfunction createPlaceholderDecoration(\n state: EditorState,\n placeholderText: string,\n): Decoration | null {\n if (!placeholderText) return null\n\n const { selection } = state\n if (!selection.empty || !isTextSelection(selection)) return null\n\n const $pos = selection.$anchor\n const node = $pos.parent\n if (node.content.size > 0) return null\n\n const before = $pos.before()\n\n return Decoration.node(before, before + node.nodeSize, {\n 'class': 'prosekit-placeholder',\n 'data-placeholder': placeholderText,\n })\n}\n"],"mappings":";;;;;;;;AAmCA,SAAgB,kBAAkB,SAA6C;AAC7E,QAAO,aAAa,wBAAwB,QAAQ,CAAC;;AAGvD,SAAS,wBAAwB,EAC/B,aACA,WAAW,WACkB;AAC7B,QAAO,IAAI,OAAO;EAChB,KAAK,IAAI,UAAU,uBAAuB;EAC1C,OAAO,EACL,cAAc,UAAU;AAOtB,OAAI,EANe,OAAO,aAAa,aACnC,WACA,aAAa,QACb,cACA,iBAEY,MAAM,CACpB,QAAO;GAIT,MAAM,OAAO,4BAA4B,OADT,SAAS,aAAa,MACS,CAAC;AAChE,OAAI,CAAC,KACH,QAAO;AAGT,UAAO,cAAc,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC;KAEjD;EACF,CAAC;;AAGJ,SAAS,gBAAgB,OAA6B;AACpD,QAAO,CAAC,cAAc,MAAM,UAAU,IAAI,CAAC,UAAU,MAAM,UAAU,MAAM;;AAG7E,SAAS,YAAY,OAA6B;AAChD,QAAO,WAAW,MAAM,IAAI,IAAI,gBAAgB,MAAM;;AAGxD,SAAS,WAAW,KAAsB;AACxC,QAAO,IAAI,cAAc,KAAK,CAAC,IAAI,YAAY,QAAQ;;AAGzD,SAAS,4BACP,OACA,iBACmB;AACnB,KAAI,CAAC,gBAAiB,QAAO;CAE7B,MAAM,EAAE,cAAc;AACtB,KAAI,CAAC,UAAU,SAAS,CAAC,gBAAgB,UAAU,CAAE,QAAO;CAE5D,MAAM,OAAO,UAAU;CACvB,MAAM,OAAO,KAAK;AAClB,KAAI,KAAK,QAAQ,OAAO,EAAG,QAAO;CAElC,MAAM,SAAS,KAAK,QAAQ;AAE5B,QAAO,WAAW,KAAK,QAAQ,SAAS,KAAK,UAAU;EACrD,SAAS;EACT,oBAAoB;EACrB,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { PlainExtension } from "@prosekit/core";
|
|
2
|
-
|
|
3
|
-
//#region src/readonly/index.d.ts
|
|
4
2
|
/**
|
|
5
3
|
* Make the editor read-only.
|
|
6
4
|
*/
|
|
7
5
|
declare function defineReadonly(): PlainExtension;
|
|
8
|
-
//#endregion
|
|
9
6
|
export { defineReadonly };
|
|
10
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=readonly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonly.d.ts","names":[],"sources":["../src/readonly/index.ts"],"mappings":";;;;iBAYgB,cAAA,CAAA,GAAkB,cAAA"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { PluginKey, ProseMirrorPlugin } from "@prosekit/pm/state";
|
|
2
2
|
import { definePlugin } from "@prosekit/core";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Marks the editor as read-only.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
4
8
|
/**
|
|
5
9
|
* Make the editor read-only.
|
|
6
10
|
*/
|
|
@@ -11,7 +15,6 @@ const plugin = new ProseMirrorPlugin({
|
|
|
11
15
|
key: new PluginKey("prosekey-readonly"),
|
|
12
16
|
props: { editable: () => false }
|
|
13
17
|
});
|
|
14
|
-
//#endregion
|
|
15
18
|
export { defineReadonly };
|
|
16
19
|
|
|
17
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=readonly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonly.js","names":[],"sources":["../src/readonly/index.ts"],"sourcesContent":["/**\n * Marks the editor as read-only.\n *\n * @module\n */\n\nimport { definePlugin, type PlainExtension } from '@prosekit/core'\nimport { PluginKey, ProseMirrorPlugin } from '@prosekit/pm/state'\n\n/**\n * Make the editor read-only.\n */\nexport function defineReadonly(): PlainExtension {\n return definePlugin(plugin)\n}\n\nconst plugin = new ProseMirrorPlugin({\n key: new PluginKey('prosekey-readonly'),\n props: {\n editable: () => false,\n },\n})\n"],"mappings":";;;;;;;;;;AAYA,SAAgB,iBAAiC;AAC/C,QAAO,aAAa,OAAO;;AAG7B,MAAM,SAAS,IAAI,kBAAkB;CACnC,KAAK,IAAI,UAAU,oBAAoB;CACvC,OAAO,EACL,gBAAgB,OACjB;CACF,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Extension, PlainExtension } from "@prosekit/core";
|
|
2
|
-
|
|
3
|
-
//#region src/search/index.d.ts
|
|
4
2
|
/**
|
|
5
3
|
* Options for {@link defineSearchQuery}
|
|
6
4
|
*
|
|
@@ -69,6 +67,5 @@ type SearchCommandsExtension = Extension<{
|
|
|
69
67
|
* @public
|
|
70
68
|
*/
|
|
71
69
|
declare function defineSearchCommands(): SearchCommandsExtension;
|
|
72
|
-
//#endregion
|
|
73
70
|
export { SearchCommandsExtension, SearchQueryOptions, defineSearchCommands, defineSearchQuery };
|
|
74
|
-
//# sourceMappingURL=
|
|
71
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","names":[],"sources":["../src/search/index.ts"],"mappings":";;AAqBA;;;;UAAiB,kBAAA;EASf;;;EALA,MAAA;EAmCA;;;EA9BA,OAAA;EAsC+B;;;;;EA/B/B,aAAA;EA+B4E;;AAqC9E;;;;;EA3DE,OAAA;EA6DE;;;;;EAtDF,MAAA;EA4DE;;;;AAUJ;EA/DE,SAAA;AAAA;;;;;;iBAQc,iBAAA,CAAkB,OAAA,EAAS,kBAAA,GAAqB,cAAA;;;;KAqCpD,uBAAA,GAA0B,SAAA;EACpC,QAAA;IACE,QAAA;IACA,QAAA;IACA,cAAA;IACA,cAAA;IACA,WAAA;IACA,iBAAA;IACA,cAAA;IACA,UAAA;EAAA;AAAA;;;;;;iBASY,oBAAA,CAAA,GAAwB,uBAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { defineCommands, definePlugin } from "@prosekit/core";
|
|
2
2
|
import { SearchQuery, findNext, findNextNoWrap, findPrev, findPrevNoWrap, replaceAll, replaceCurrent, replaceNext, replaceNextNoWrap, search } from "prosemirror-search";
|
|
3
|
-
//#region src/search/index.ts
|
|
4
3
|
/**
|
|
5
4
|
* Defines an extension that stores a current search query and replace string.
|
|
6
5
|
*
|
|
@@ -48,7 +47,6 @@ function defineSearchCommands() {
|
|
|
48
47
|
replaceAll: () => withScrollActiveIntoView(replaceAll)
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
|
-
//#endregion
|
|
52
50
|
export { defineSearchCommands, defineSearchQuery };
|
|
53
51
|
|
|
54
|
-
//# sourceMappingURL=
|
|
52
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","names":[],"sources":["../src/search/index.ts"],"sourcesContent":["import { defineCommands, definePlugin, type Extension, type PlainExtension } from '@prosekit/core'\nimport type { Command } from '@prosekit/pm/state'\nimport type { EditorView } from '@prosekit/pm/view'\nimport {\n findNext,\n findNextNoWrap,\n findPrev,\n findPrevNoWrap,\n replaceAll,\n replaceCurrent,\n replaceNext,\n replaceNextNoWrap,\n search,\n SearchQuery,\n} from 'prosemirror-search'\n\n/**\n * Options for {@link defineSearchQuery}\n *\n * @public\n */\nexport interface SearchQueryOptions {\n /**\n * The search string (or regular expression).\n */\n search: string\n\n /**\n * The replace text.\n */\n replace?: string\n\n /**\n * Indicates whether the search is case-sensitive\n *\n * @default false\n */\n caseSensitive?: boolean\n\n /**\n * By default, string search will replace `\\n`, `\\r`, and `\\t` in the query\n * with newline, return, and tab characters. When this is set to true, that\n * behavior is disabled.\n *\n * @default false\n */\n literal?: boolean\n\n /**\n * When true, the search string is interpreted as a regular expression.\n *\n * @default false\n */\n regexp?: boolean\n\n /**\n * Enable whole-word matching.\n *\n * @default false\n */\n wholeWord?: boolean\n}\n\n/**\n * Defines an extension that stores a current search query and replace string.\n *\n * @public\n */\nexport function defineSearchQuery(options: SearchQueryOptions): PlainExtension {\n const query = new SearchQuery(options)\n return definePlugin(search({ initialQuery: query }))\n}\n\n/**\n * Scrolls the active search match into view.\n */\nfunction scrollActiveIntoView(view: EditorView) {\n if (view.isDestroyed) return\n const active = view.dom.querySelector('.ProseMirror-active-search-match')\n active?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n })\n}\n\n/**\n * Wraps a command and scrolls the active search match into view when the command\n * is applied.\n */\nfunction withScrollActiveIntoView(command: Command): Command {\n return (state, dispatch, view) => {\n const result = command(state, dispatch, view)\n if (result && dispatch && view) {\n // Add a small delay because the command itself will handle scrolling if\n // the view is focused.\n setTimeout(() => scrollActiveIntoView(view), 50)\n }\n return result\n }\n}\n\n/**\n * @internal\n */\nexport type SearchCommandsExtension = Extension<{\n Commands: {\n findNext: []\n findPrev: []\n findNextNoWrap: []\n findPrevNoWrap: []\n replaceNext: []\n replaceNextNoWrap: []\n replaceCurrent: []\n replaceAll: []\n }\n}>\n\n/**\n * Defines commands for search and replace.\n *\n * @public\n */\nexport function defineSearchCommands(): SearchCommandsExtension {\n return defineCommands({\n findNext: () => withScrollActiveIntoView(findNext),\n findPrev: () => withScrollActiveIntoView(findPrev),\n findNextNoWrap: () => withScrollActiveIntoView(findNextNoWrap),\n findPrevNoWrap: () => withScrollActiveIntoView(findPrevNoWrap),\n replaceNext: () => withScrollActiveIntoView(replaceNext),\n replaceNextNoWrap: () => withScrollActiveIntoView(replaceNextNoWrap),\n replaceCurrent: () => withScrollActiveIntoView(replaceCurrent),\n replaceAll: () => withScrollActiveIntoView(replaceAll),\n })\n}\n"],"mappings":";;;;;;;AAoEA,SAAgB,kBAAkB,SAA6C;AAE7E,QAAO,aAAa,OAAO,EAAE,cAAc,IADzB,YAAY,QACkB,EAAE,CAAC,CAAC;;;;;AAMtD,SAAS,qBAAqB,MAAkB;AAC9C,KAAI,KAAK,YAAa;AACP,MAAK,IAAI,cAAc,mCAChC,EAAE,eAAe;EACrB,OAAO;EACP,QAAQ;EACR,UAAU;EACX,CAAC;;;;;;AAOJ,SAAS,yBAAyB,SAA2B;AAC3D,SAAQ,OAAO,UAAU,SAAS;EAChC,MAAM,SAAS,QAAQ,OAAO,UAAU,KAAK;AAC7C,MAAI,UAAU,YAAY,KAGxB,kBAAiB,qBAAqB,KAAK,EAAE,GAAG;AAElD,SAAO;;;;;;;;AAyBX,SAAgB,uBAAgD;AAC9D,QAAO,eAAe;EACpB,gBAAgB,yBAAyB,SAAS;EAClD,gBAAgB,yBAAyB,SAAS;EAClD,sBAAsB,yBAAyB,eAAe;EAC9D,sBAAsB,yBAAyB,eAAe;EAC9D,mBAAmB,yBAAyB,YAAY;EACxD,yBAAyB,yBAAyB,kBAAkB;EACpE,sBAAsB,yBAAyB,eAAe;EAC9D,kBAAkB,yBAAyB,WAAW;EACvD,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createHighlighter } from "shiki/bundle/full";
|
|
2
2
|
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
|
|
3
|
-
//#region src/code-block/shiki-highlighter-chunk.ts
|
|
4
3
|
let highlighterPromise;
|
|
5
4
|
let highlighter;
|
|
6
5
|
const loadedLangs = /* @__PURE__ */ new Set();
|
|
@@ -36,7 +35,6 @@ function createOrGetHighlighter(options) {
|
|
|
36
35
|
if (themes.length > 0) return { promise: loadThemes(themes) };
|
|
37
36
|
return { highlighter };
|
|
38
37
|
}
|
|
39
|
-
//#endregion
|
|
40
38
|
export { createOrGetHighlighter };
|
|
41
39
|
|
|
42
40
|
//# sourceMappingURL=shiki-highlighter-chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shiki-highlighter-chunk.js","names":[],"sources":["../src/code-block/shiki-highlighter-chunk.ts"],"sourcesContent":["import type { BundledHighlighterOptions, BundledLanguage, BundledTheme, Highlighter, SpecialLanguage } from 'shiki'\nimport { createHighlighter } from 'shiki/bundle/full'\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript'\n\nlet highlighterPromise: Promise<void> | undefined\nlet highlighter: Highlighter | undefined\nconst loadedLangs = new Set<BundledLanguage | SpecialLanguage>()\nconst loadedThemes = new Set<BundledTheme>()\n\nexport interface ShikiHighlighterOptions extends BundledHighlighterOptions<BundledLanguage, BundledTheme> {}\n\nexport interface HighlighterOptions extends Omit<ShikiHighlighterOptions, 'langs' | 'themes'> {\n themes: BundledTheme[]\n langs: (BundledLanguage | SpecialLanguage)[]\n}\n\nfunction ensureHighlighter({\n ...options\n}: HighlighterOptions): Promise<void> {\n if (!highlighterPromise) {\n // If no engine is provided, use the JavaScript engine, which is\n // smaller than the WASM engine.\n if (!options.engine) {\n const engine = createJavaScriptRegexEngine({ forgiving: true })\n options.engine = engine\n }\n highlighterPromise = createHighlighter(options).then((createdHighlighter) => {\n highlighter = createdHighlighter\n })\n }\n return highlighterPromise\n}\n\nasync function loadLanguages(langs: (BundledLanguage | SpecialLanguage)[]) {\n for (const lang of langs) {\n if (!highlighter) break\n await highlighter.loadLanguage(lang)\n loadedLangs.add(lang)\n }\n}\n\nasync function loadThemes(themes: BundledTheme[]) {\n for (const theme of themes) {\n if (!highlighter) break\n await highlighter.loadTheme(theme)\n loadedThemes.add(theme)\n }\n}\n\nexport type HighlighterResult =\n | {\n highlighter: Highlighter\n promise?: undefined\n }\n | {\n highlighter?: undefined\n promise: Promise<void>\n }\n\nexport function createOrGetHighlighter(\n options: HighlighterOptions,\n): HighlighterResult {\n if (!highlighter) {\n return { promise: ensureHighlighter(options) }\n }\n\n const langs = options.langs.filter((lang) => !loadedLangs.has(lang))\n if (langs.length > 0) {\n return { promise: loadLanguages(langs) }\n }\n\n const themes = options.themes.filter((theme) => !loadedThemes.has(theme))\n if (themes.length > 0) {\n return { promise: loadThemes(themes) }\n }\n\n return { highlighter }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"shiki-highlighter-chunk.js","names":[],"sources":["../src/code-block/shiki-highlighter-chunk.ts"],"sourcesContent":["import type { BundledHighlighterOptions, BundledLanguage, BundledTheme, Highlighter, SpecialLanguage } from 'shiki'\nimport { createHighlighter } from 'shiki/bundle/full'\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript'\n\nlet highlighterPromise: Promise<void> | undefined\nlet highlighter: Highlighter | undefined\nconst loadedLangs = new Set<BundledLanguage | SpecialLanguage>()\nconst loadedThemes = new Set<BundledTheme>()\n\nexport interface ShikiHighlighterOptions extends BundledHighlighterOptions<BundledLanguage, BundledTheme> {}\n\nexport interface HighlighterOptions extends Omit<ShikiHighlighterOptions, 'langs' | 'themes'> {\n themes: BundledTheme[]\n langs: (BundledLanguage | SpecialLanguage)[]\n}\n\nfunction ensureHighlighter({\n ...options\n}: HighlighterOptions): Promise<void> {\n if (!highlighterPromise) {\n // If no engine is provided, use the JavaScript engine, which is\n // smaller than the WASM engine.\n if (!options.engine) {\n const engine = createJavaScriptRegexEngine({ forgiving: true })\n options.engine = engine\n }\n highlighterPromise = createHighlighter(options).then((createdHighlighter) => {\n highlighter = createdHighlighter\n })\n }\n return highlighterPromise\n}\n\nasync function loadLanguages(langs: (BundledLanguage | SpecialLanguage)[]) {\n for (const lang of langs) {\n if (!highlighter) break\n await highlighter.loadLanguage(lang)\n loadedLangs.add(lang)\n }\n}\n\nasync function loadThemes(themes: BundledTheme[]) {\n for (const theme of themes) {\n if (!highlighter) break\n await highlighter.loadTheme(theme)\n loadedThemes.add(theme)\n }\n}\n\nexport type HighlighterResult =\n | {\n highlighter: Highlighter\n promise?: undefined\n }\n | {\n highlighter?: undefined\n promise: Promise<void>\n }\n\nexport function createOrGetHighlighter(\n options: HighlighterOptions,\n): HighlighterResult {\n if (!highlighter) {\n return { promise: ensureHighlighter(options) }\n }\n\n const langs = options.langs.filter((lang) => !loadedLangs.has(lang))\n if (langs.length > 0) {\n return { promise: loadLanguages(langs) }\n }\n\n const themes = options.themes.filter((theme) => !loadedThemes.has(theme))\n if (themes.length > 0) {\n return { promise: loadThemes(themes) }\n }\n\n return { highlighter }\n}\n"],"mappings":";;AAIA,IAAI;AACJ,IAAI;AACJ,MAAM,8BAAc,IAAI,KAAwC;AAChE,MAAM,+BAAe,IAAI,KAAmB;AAS5C,SAAS,kBAAkB,EACzB,GAAG,WACiC;AACpC,KAAI,CAAC,oBAAoB;AAGvB,MAAI,CAAC,QAAQ,OAEX,SAAQ,SADO,4BAA4B,EAAE,WAAW,MAAM,CACvC;AAEzB,uBAAqB,kBAAkB,QAAQ,CAAC,MAAM,uBAAuB;AAC3E,iBAAc;IACd;;AAEJ,QAAO;;AAGT,eAAe,cAAc,OAA8C;AACzE,MAAK,MAAM,QAAQ,OAAO;AACxB,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,aAAa,KAAK;AACpC,cAAY,IAAI,KAAK;;;AAIzB,eAAe,WAAW,QAAwB;AAChD,MAAK,MAAM,SAAS,QAAQ;AAC1B,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,UAAU,MAAM;AAClC,eAAa,IAAI,MAAM;;;AAc3B,SAAgB,uBACd,SACmB;AACnB,KAAI,CAAC,YACH,QAAO,EAAE,SAAS,kBAAkB,QAAQ,EAAE;CAGhD,MAAM,QAAQ,QAAQ,MAAM,QAAQ,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC;AACpE,KAAI,MAAM,SAAS,EACjB,QAAO,EAAE,SAAS,cAAc,MAAM,EAAE;CAG1C,MAAM,SAAS,QAAQ,OAAO,QAAQ,UAAU,CAAC,aAAa,IAAI,MAAM,CAAC;AACzE,KAAI,OAAO,SAAS,EAClB,QAAO,EAAE,SAAS,WAAW,OAAO,EAAE;AAGxC,QAAO,EAAE,aAAa"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Extension, PlainExtension, Union } from "@prosekit/core";
|
|
2
2
|
import { Attrs } from "@prosekit/pm/model";
|
|
3
|
-
|
|
4
|
-
//#region src/strike/index.d.ts
|
|
5
3
|
/**
|
|
6
4
|
* @internal
|
|
7
5
|
*/
|
|
@@ -42,6 +40,5 @@ type StrikeExtension = Union<[StrikeSpecExtension, StrikeCommandsExtension]>;
|
|
|
42
40
|
* @public
|
|
43
41
|
*/
|
|
44
42
|
declare function defineStrike(): StrikeExtension;
|
|
45
|
-
//#endregion
|
|
46
43
|
export { StrikeCommandsExtension, StrikeExtension, StrikeSpecExtension, defineStrike, defineStrikeCommands, defineStrikeInputRule, defineStrikeKeymap, defineStrikeSpec };
|
|
47
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=strike.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strike.d.ts","names":[],"sources":["../src/strike/index.ts"],"mappings":";;;AAkBA;;KAAY,mBAAA,GAAsB,SAAA;EAChC,KAAA;IACE,MAAA,EAAQ,KAAA;EAAA;AAAA;;;;iBAOI,gBAAA,CAAA,GAAoB,mBAAA;;;;KAmBxB,uBAAA,GAA0B,SAAA;EACpC,QAAA;IACE,YAAA;EAAA;AAAA;;;;iBAOY,oBAAA,CAAA,GAAwB,uBAAA;;AAAxC;;iBASgB,kBAAA,CAAA,GAAsB,cAAA;;;AAAtC;iBAUgB,qBAAA,CAAA,GAAyB,cAAA;;;;KAY7B,eAAA,GAAkB,KAAA,EAC3B,mBAAA,EAAqB,uBAAA;;AADxB;;iBAOgB,YAAA,CAAA,GAAgB,eAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { defineMarkInputRule } from "./
|
|
1
|
+
import { defineMarkInputRule } from "./input-rule.js";
|
|
2
2
|
import { canUseRegexLookbehind, defineCommands, defineKeymap, defineMarkSpec, toggleMark, union } from "@prosekit/core";
|
|
3
|
-
//#region src/strike/index.ts
|
|
4
3
|
/**
|
|
5
4
|
* @internal
|
|
6
5
|
*/
|
|
@@ -49,7 +48,6 @@ function defineStrikeInputRule() {
|
|
|
49
48
|
function defineStrike() {
|
|
50
49
|
return union(defineStrikeSpec(), defineStrikeCommands(), defineStrikeKeymap(), defineStrikeInputRule());
|
|
51
50
|
}
|
|
52
|
-
//#endregion
|
|
53
51
|
export { defineStrike, defineStrikeCommands, defineStrikeInputRule, defineStrikeKeymap, defineStrikeSpec };
|
|
54
52
|
|
|
55
|
-
//# sourceMappingURL=
|
|
53
|
+
//# sourceMappingURL=strike.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strike.js","names":[],"sources":["../src/strike/index.ts"],"sourcesContent":["import {\n canUseRegexLookbehind,\n defineCommands,\n defineKeymap,\n defineMarkSpec,\n toggleMark,\n union,\n type Extension,\n type PlainExtension,\n type Union,\n} from '@prosekit/core'\nimport type { Attrs } from '@prosekit/pm/model'\n\nimport { defineMarkInputRule } from '../input-rule/index.ts'\n\n/**\n * @internal\n */\nexport type StrikeSpecExtension = Extension<{\n Marks: {\n strike: Attrs\n }\n}>\n\n/**\n * @internal\n */\nexport function defineStrikeSpec(): StrikeSpecExtension {\n return defineMarkSpec({\n name: 'strike',\n parseDOM: [\n { tag: 's' },\n { tag: 'strike' },\n { tag: 'del' },\n { style: 'text-decoration=line-through' },\n { style: 'text-decoration-line=line-through' },\n ],\n toDOM() {\n return ['s', 0]\n },\n })\n}\n\n/**\n * @internal\n */\nexport type StrikeCommandsExtension = Extension<{\n Commands: {\n toggleStrike: []\n }\n}>\n\n/**\n * @internal\n */\nexport function defineStrikeCommands(): StrikeCommandsExtension {\n return defineCommands({\n toggleStrike: () => toggleMark({ type: 'strike' }),\n })\n}\n\n/**\n * @internal\n */\nexport function defineStrikeKeymap(): PlainExtension {\n return defineKeymap({\n 'Mod-S': toggleMark({ type: 'strike' }),\n 'Mod-X': toggleMark({ type: 'strike' }),\n })\n}\n\n/**\n * @internal\n */\nexport function defineStrikeInputRule(): PlainExtension {\n return defineMarkInputRule({\n regex: canUseRegexLookbehind()\n ? /(?<=\\s|^)~~([^\\s~]|[^\\s~][^~]*[^\\s~])~~$/\n : /~~([^\\s~]|[^\\s~][^~]*[^\\s~])~~$/,\n type: 'strike',\n })\n}\n\n/**\n * @internal\n */\nexport type StrikeExtension = Union<\n [StrikeSpecExtension, StrikeCommandsExtension]\n>\n\n/**\n * @public\n */\nexport function defineStrike(): StrikeExtension {\n return union(\n defineStrikeSpec(),\n defineStrikeCommands(),\n defineStrikeKeymap(),\n defineStrikeInputRule(),\n )\n}\n"],"mappings":";;;;;AA2BA,SAAgB,mBAAwC;AACtD,QAAO,eAAe;EACpB,MAAM;EACN,UAAU;GACR,EAAE,KAAK,KAAK;GACZ,EAAE,KAAK,UAAU;GACjB,EAAE,KAAK,OAAO;GACd,EAAE,OAAO,gCAAgC;GACzC,EAAE,OAAO,qCAAqC;GAC/C;EACD,QAAQ;AACN,UAAO,CAAC,KAAK,EAAE;;EAElB,CAAC;;;;;AAeJ,SAAgB,uBAAgD;AAC9D,QAAO,eAAe,EACpB,oBAAoB,WAAW,EAAE,MAAM,UAAU,CAAC,EACnD,CAAC;;;;;AAMJ,SAAgB,qBAAqC;AACnD,QAAO,aAAa;EAClB,SAAS,WAAW,EAAE,MAAM,UAAU,CAAC;EACvC,SAAS,WAAW,EAAE,MAAM,UAAU,CAAC;EACxC,CAAC;;;;;AAMJ,SAAgB,wBAAwC;AACtD,QAAO,oBAAoB;EACzB,OAAO,uBAAuB,GAC1B,6CACA;EACJ,MAAM;EACP,CAAC;;;;;AAaJ,SAAgB,eAAgC;AAC9C,QAAO,MACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,CACxB"}
|
|
@@ -2,8 +2,6 @@ import { Command } from "@prosekit/pm/state";
|
|
|
2
2
|
import { Extension, PlainExtension, Union } from "@prosekit/core";
|
|
3
3
|
import { Attrs } from "@prosekit/pm/model";
|
|
4
4
|
import { CellSelection, MoveTableColumnOptions, MoveTableRowOptions, findTable, moveTableColumn, moveTableRow } from "prosemirror-tables";
|
|
5
|
-
|
|
6
|
-
//#region src/table/table-commands/insert-table.d.ts
|
|
7
5
|
/**
|
|
8
6
|
* @public
|
|
9
7
|
*/
|
|
@@ -32,8 +30,6 @@ interface InsertTableOptions {
|
|
|
32
30
|
* @public
|
|
33
31
|
*/
|
|
34
32
|
declare function insertTable(options: InsertTableOptions): Command;
|
|
35
|
-
//#endregion
|
|
36
|
-
//#region src/table/table-commands/select-table-cell.d.ts
|
|
37
33
|
/**
|
|
38
34
|
* @public
|
|
39
35
|
*/
|
|
@@ -48,8 +44,6 @@ interface SelectTableCellOptions {
|
|
|
48
44
|
* @public
|
|
49
45
|
*/
|
|
50
46
|
declare function selectTableCell(options?: SelectTableCellOptions): Command;
|
|
51
|
-
//#endregion
|
|
52
|
-
//#region src/table/table-commands/select-table-column.d.ts
|
|
53
47
|
/**
|
|
54
48
|
* @public
|
|
55
49
|
*/
|
|
@@ -69,8 +63,6 @@ interface SelectTableColumnOptions {
|
|
|
69
63
|
* @public
|
|
70
64
|
*/
|
|
71
65
|
declare function selectTableColumn(options?: SelectTableColumnOptions): Command;
|
|
72
|
-
//#endregion
|
|
73
|
-
//#region src/table/table-commands/select-table-row.d.ts
|
|
74
66
|
/**
|
|
75
67
|
* @public
|
|
76
68
|
*/
|
|
@@ -90,8 +82,6 @@ interface SelectTableRowOptions {
|
|
|
90
82
|
* @public
|
|
91
83
|
*/
|
|
92
84
|
declare function selectTableRow(options?: SelectTableRowOptions): Command;
|
|
93
|
-
//#endregion
|
|
94
|
-
//#region src/table/table-commands/select-table.d.ts
|
|
95
85
|
/**
|
|
96
86
|
* @public
|
|
97
87
|
*/
|
|
@@ -106,8 +96,6 @@ interface SelectTableOptions {
|
|
|
106
96
|
* @public
|
|
107
97
|
*/
|
|
108
98
|
declare function selectTable(options?: SelectTableOptions): Command;
|
|
109
|
-
//#endregion
|
|
110
|
-
//#region src/table/table-commands.d.ts
|
|
111
99
|
/**
|
|
112
100
|
* @internal
|
|
113
101
|
*/
|
|
@@ -139,8 +127,6 @@ type TableCommandsExtension = Extension<{
|
|
|
139
127
|
* @public
|
|
140
128
|
*/
|
|
141
129
|
declare function defineTableCommands(): TableCommandsExtension;
|
|
142
|
-
//#endregion
|
|
143
|
-
//#region src/table/table-commands/exit-table.d.ts
|
|
144
130
|
/**
|
|
145
131
|
* When the selection is in a table node, create a default block after the table
|
|
146
132
|
* table, and move the cursor there.
|
|
@@ -148,8 +134,6 @@ declare function defineTableCommands(): TableCommandsExtension;
|
|
|
148
134
|
* @public
|
|
149
135
|
*/
|
|
150
136
|
declare const exitTable: Command;
|
|
151
|
-
//#endregion
|
|
152
|
-
//#region src/table/table-drop-indicator.d.ts
|
|
153
137
|
/**
|
|
154
138
|
* Hides the drop indicator when dragging a table column or row by using the
|
|
155
139
|
* table handle.
|
|
@@ -157,14 +141,10 @@ declare const exitTable: Command;
|
|
|
157
141
|
* @internal
|
|
158
142
|
*/
|
|
159
143
|
declare function defineTableDropIndicator(): PlainExtension;
|
|
160
|
-
//#endregion
|
|
161
|
-
//#region src/table/table-plugins.d.ts
|
|
162
144
|
/**
|
|
163
145
|
* @public
|
|
164
146
|
*/
|
|
165
147
|
declare function defineTablePlugins(): PlainExtension;
|
|
166
|
-
//#endregion
|
|
167
|
-
//#region src/table/table-spec.d.ts
|
|
168
148
|
/**
|
|
169
149
|
* @public
|
|
170
150
|
*/
|
|
@@ -218,16 +198,12 @@ type TableHeaderCellSpecExtension = Extension<{
|
|
|
218
198
|
};
|
|
219
199
|
}>;
|
|
220
200
|
declare function defineTableHeaderCellSpec(): TableHeaderCellSpecExtension;
|
|
221
|
-
//#endregion
|
|
222
|
-
//#region src/table/table-utils.d.ts
|
|
223
201
|
/**
|
|
224
202
|
* Checks if the given object is a `CellSelection` instance.
|
|
225
203
|
*
|
|
226
204
|
* @public
|
|
227
205
|
*/
|
|
228
206
|
declare function isCellSelection(value: unknown): value is CellSelection;
|
|
229
|
-
//#endregion
|
|
230
|
-
//#region src/table/table.d.ts
|
|
231
207
|
/**
|
|
232
208
|
* @internal
|
|
233
209
|
*/
|
|
@@ -236,6 +212,5 @@ type TableExtension = Union<[TableSpecExtension, TableRowSpecExtension, TableCel
|
|
|
236
212
|
* @public
|
|
237
213
|
*/
|
|
238
214
|
declare function defineTable(): TableExtension;
|
|
239
|
-
//#endregion
|
|
240
215
|
export { type InsertTableOptions, type MoveTableColumnOptions, type MoveTableRowOptions, type SelectTableCellOptions, type SelectTableColumnOptions, type SelectTableOptions, type SelectTableRowOptions, type TableCellSpecExtension, type TableCommandsExtension, type TableExtension, type TableHeaderCellSpecExtension, type TableRowSpecExtension, type TableSpecExtension, defineTable, defineTableCellSpec, defineTableCommands, defineTableDropIndicator, defineTableHeaderCellSpec, defineTablePlugins, defineTableRowSpec, defineTableSpec, exitTable, findTable, insertTable, isCellSelection, moveTableColumn, moveTableRow, selectTable, selectTableCell, selectTableColumn, selectTableRow };
|
|
241
|
-
//# sourceMappingURL=
|
|
216
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","names":[],"sources":["../src/table/table-commands/insert-table.ts","../src/table/table-commands/select-table-cell.ts","../src/table/table-commands/select-table-column.ts","../src/table/table-commands/select-table-row.ts","../src/table/table-commands/select-table.ts","../src/table/table-commands.ts","../src/table/table-commands/exit-table.ts","../src/table/table-drop-indicator.ts","../src/table/table-plugins.ts","../src/table/table-spec.ts","../src/table/table-utils.ts","../src/table/table.ts"],"mappings":";;;;;;;UA2CiB,kBAAA;EAAA;;;EAIf,GAAA;EAAA;;;EAKA,GAAA;EAOM;AAWR;;;;EAXE,MAAA;AAAA;;;;;ACnDF;;;;iBD8DgB,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,OAAA;;;;UC9DzC,sBAAA;EDmCA;;;;EC9Bf,GAAA;AAAA;;;;iBAMc,eAAA,CAAgB,OAAA,GAAU,sBAAA,GAAyB,OAAA;;;;UCXlD,wBAAA;EFmCA;;;;EE9Bf,MAAA;EFuCA;;;;EEjCA,IAAA;AAAA;;;;iBAMc,iBAAA,CAAkB,OAAA,GAAU,wBAAA,GAA2B,OAAA;;;;UCjBtD,qBAAA;EHmCA;;;;EG9Bf,MAAA;EHuCA;;;;EGjCA,IAAA;AAAA;;;;iBAMc,cAAA,CAAe,OAAA,GAAU,qBAAA,GAAwB,OAAA;;;;UCjBhD,kBAAA;EJmCA;;;;EI9Bf,GAAA;AAAA;;;;iBAMc,WAAA,CAAY,OAAA,GAAU,kBAAA,GAAqB,OAAA;;;;KCO/C,sBAAA,GAAyB,SAAA;EACnC,QAAA;IACE,WAAA,GAAc,OAAA,EAAS,kBAAA;IACvB,SAAA;IAEA,WAAA,GAAc,OAAA,GAAU,kBAAA;IACxB,eAAA,GAAkB,OAAA,GAAU,sBAAA;IAC5B,iBAAA,GAAoB,OAAA,GAAU,wBAAA;IAC9B,cAAA,GAAiB,OAAA,GAAU,qBAAA;IAE3B,oBAAA;IACA,mBAAA;IACA,gBAAA;IACA,gBAAA;IAEA,WAAA;IACA,iBAAA;IACA,cAAA;IACA,mBAAA;IAEA,eAAA;IACA,cAAA;IAEA,YAAA,GAAe,OAAA,EAAS,mBAAA;IACxB,eAAA,GAAkB,OAAA,EAAS,sBAAA;EAAA;AAAA;;;;;;iBASf,mBAAA,CAAA,GAAuB,sBAAA;;;;;ALhBvC;;cMhCa,SAAA,EAAW,OAAA;;;;;ANgCxB;;iBOhCgB,wBAAA,CAAA,GAA4B,cAAA;;;;iBCL5B,kBAAA,CAAA,GAAsB,cAAA;;;;UCGrB,SAAA;EACf,OAAA;EACA,OAAA;EACA,QAAA;AAAA;;;;KAYU,kBAAA,GAAqB,SAAA;EAC/B,KAAA;IACE,KAAA,EAAO,KAAA;EAAA;AAAA;;;;iBAaK,eAAA,CAAA,GAAmB,kBAAA;;;AR/BnC;KQ0CY,qBAAA,GAAwB,SAAA;EAClC,KAAA;IACE,QAAA,EAAU,KAAA;EAAA;AAAA;;;;iBAOE,kBAAA,CAAA,GAAsB,qBAAA;;;;KAW1B,sBAAA,GAAyB,SAAA;EACnC,KAAA;IACE,SAAA,EAAW,SAAA;EAAA;AAAA;;;AP/Cf;iBOsDgB,mBAAA,CAAA,GAAuB,sBAAA;;;;KAW3B,4BAAA,GAA+B,SAAA;EACzC,KAAA;IACE,eAAA,EAAiB,SAAA;EAAA;AAAA;AAAA,iBAIL,yBAAA,CAAA,GAA6B,4BAAA;;;;ATrD7C;;iBUlCgB,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,aAAA;;;AVkC1D;KWxBY,cAAA,GAAiB,KAAA,EAEzB,kBAAA,EACA,qBAAA,EACA,sBAAA,EACA,4BAAA,EACA,sBAAA;;AX6CJ;;iBWtCgB,WAAA,CAAA,GAAe,cAAA"}
|
package/dist/table.js
CHANGED
|
@@ -1,276 +1,2 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
|
|
3
|
-
import { defaultBlockAt, defineCommands, defineNodeSpec, definePlugin, getNodeType, insertNode, union } from "@prosekit/core";
|
|
4
|
-
import { CellSelection, TableMap, addColumnAfter, addColumnBefore, addRowAfter, addRowBefore, columnResizing, deleteCellSelection, deleteColumn, deleteRow, deleteTable, findCellPos, findCellRange, findTable, mergeCells, moveTableColumn, moveTableRow, splitCell, tableEditing, tableNodes } from "prosemirror-tables";
|
|
5
|
-
//#region src/table/table-commands/exit-table.ts
|
|
6
|
-
/**
|
|
7
|
-
* When the selection is in a table node, create a default block after the table
|
|
8
|
-
* table, and move the cursor there.
|
|
9
|
-
*
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
const exitTable = (state, dispatch) => {
|
|
13
|
-
const { $head, $anchor } = state.selection;
|
|
14
|
-
if (!$head.sameParent($anchor)) return false;
|
|
15
|
-
let tableStart = -1;
|
|
16
|
-
let tableDepth = -1;
|
|
17
|
-
for (let depth = $head.depth; depth >= 0; depth--) if ($head.node(depth).type.spec.tableRole === "table") {
|
|
18
|
-
tableStart = $head.before(depth);
|
|
19
|
-
tableDepth = depth;
|
|
20
|
-
}
|
|
21
|
-
if (tableStart < 0 || tableDepth <= 0) return false;
|
|
22
|
-
const above = $head.node(tableDepth - 1);
|
|
23
|
-
const after = $head.indexAfter(tableDepth - 1);
|
|
24
|
-
const type = defaultBlockAt(above.contentMatchAt(after));
|
|
25
|
-
const node = type?.createAndFill();
|
|
26
|
-
if (!type || !node || !above.canReplaceWith(after, after, type)) return false;
|
|
27
|
-
if (dispatch) {
|
|
28
|
-
const pos = $head.after(tableDepth);
|
|
29
|
-
const tr = state.tr.replaceWith(pos, pos, node);
|
|
30
|
-
tr.setSelection(TextSelection.near(tr.doc.resolve(pos), 1));
|
|
31
|
-
dispatch(tr.scrollIntoView());
|
|
32
|
-
}
|
|
33
|
-
return true;
|
|
34
|
-
};
|
|
35
|
-
//#endregion
|
|
36
|
-
//#region src/table/table-commands/insert-table.ts
|
|
37
|
-
function createEmptyTable(schema, row, col, header) {
|
|
38
|
-
const tableType = getNodeType(schema, "table");
|
|
39
|
-
const tableRowType = getNodeType(schema, "tableRow");
|
|
40
|
-
const tableCellType = getNodeType(schema, "tableCell");
|
|
41
|
-
const tableHeaderCellType = getNodeType(schema, "tableHeaderCell");
|
|
42
|
-
if (header) {
|
|
43
|
-
const headerCells = repeat(tableHeaderCellType.createAndFill(), col);
|
|
44
|
-
const headerRow = tableRowType.createAndFill(null, headerCells);
|
|
45
|
-
const bodyCells = repeat(tableCellType.createAndFill(), col);
|
|
46
|
-
const bodyRows = repeat(tableRowType.createAndFill(null, bodyCells), row - 1);
|
|
47
|
-
return tableType.createAndFill(null, [headerRow, ...bodyRows]);
|
|
48
|
-
} else {
|
|
49
|
-
const bodyCells = repeat(tableCellType.createAndFill(), col);
|
|
50
|
-
const bodyRows = repeat(tableRowType.createAndFill(null, bodyCells), row);
|
|
51
|
-
return tableType.createAndFill(null, bodyRows);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function repeat(node, length) {
|
|
55
|
-
return Array(length).fill(node);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Insert a table node with the given number of rows and columns, and optionally
|
|
59
|
-
* a header row.
|
|
60
|
-
*
|
|
61
|
-
* @param options
|
|
62
|
-
*
|
|
63
|
-
* @public
|
|
64
|
-
*/
|
|
65
|
-
function insertTable(options) {
|
|
66
|
-
return (state, dispatch, view) => {
|
|
67
|
-
const { row, col, header = false } = options;
|
|
68
|
-
return insertNode({ node: createEmptyTable(state.schema, row, col, header) })(state, dispatch, view);
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
//#endregion
|
|
72
|
-
//#region src/table/table-utils.ts
|
|
73
|
-
/**
|
|
74
|
-
* Checks if the given object is a `CellSelection` instance.
|
|
75
|
-
*
|
|
76
|
-
* @public
|
|
77
|
-
*/
|
|
78
|
-
function isCellSelection(value) {
|
|
79
|
-
return value instanceof CellSelection;
|
|
80
|
-
}
|
|
81
|
-
//#endregion
|
|
82
|
-
//#region src/table/table-commands/select-table-cell.ts
|
|
83
|
-
/**
|
|
84
|
-
* @public
|
|
85
|
-
*/
|
|
86
|
-
function selectTableCell(options) {
|
|
87
|
-
return (state, dispatch) => {
|
|
88
|
-
const $cellPos = findCellPos(state.doc, options?.pos ?? state.selection.anchor);
|
|
89
|
-
if (!$cellPos) return false;
|
|
90
|
-
if (dispatch) {
|
|
91
|
-
const selection = new CellSelection($cellPos);
|
|
92
|
-
dispatch(state.tr.setSelection(selection));
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
//#endregion
|
|
98
|
-
//#region src/table/table-commands/select-table-column.ts
|
|
99
|
-
/**
|
|
100
|
-
* @public
|
|
101
|
-
*/
|
|
102
|
-
function selectTableColumn(options) {
|
|
103
|
-
return (state, dispatch) => {
|
|
104
|
-
const range = findCellRange(state.selection, options?.anchor, options?.head);
|
|
105
|
-
if (!range) return false;
|
|
106
|
-
if (dispatch) {
|
|
107
|
-
const [$anchorCell, $headCell] = range;
|
|
108
|
-
const selection = CellSelection.colSelection($anchorCell, $headCell);
|
|
109
|
-
dispatch(state.tr.setSelection(selection));
|
|
110
|
-
}
|
|
111
|
-
return true;
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
//#endregion
|
|
115
|
-
//#region src/table/table-commands/select-table-row.ts
|
|
116
|
-
/**
|
|
117
|
-
* @public
|
|
118
|
-
*/
|
|
119
|
-
function selectTableRow(options) {
|
|
120
|
-
return (state, dispatch) => {
|
|
121
|
-
const range = findCellRange(state.selection, options?.anchor, options?.head);
|
|
122
|
-
if (!range) return false;
|
|
123
|
-
if (dispatch) {
|
|
124
|
-
const [$anchorCell, $headCell] = range;
|
|
125
|
-
const selection = CellSelection.rowSelection($anchorCell, $headCell);
|
|
126
|
-
dispatch(state.tr.setSelection(selection));
|
|
127
|
-
}
|
|
128
|
-
return true;
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
//#endregion
|
|
132
|
-
//#region src/table/table-commands/select-table.ts
|
|
133
|
-
/**
|
|
134
|
-
* @public
|
|
135
|
-
*/
|
|
136
|
-
function selectTable(options) {
|
|
137
|
-
return (state, dispatch) => {
|
|
138
|
-
const table = findTable(options?.pos ? state.doc.resolve(options.pos) : state.selection.$anchor);
|
|
139
|
-
if (!table) return false;
|
|
140
|
-
const map = TableMap.get(table.node);
|
|
141
|
-
if (map.map.length === 0) return false;
|
|
142
|
-
if (dispatch) {
|
|
143
|
-
let tr = state.tr;
|
|
144
|
-
const firstCellPosInTable = map.map[0];
|
|
145
|
-
const lastCellPosInTable = map.map[map.map.length - 1];
|
|
146
|
-
const firstCellPos = table.pos + firstCellPosInTable + 1;
|
|
147
|
-
const lastCellPos = table.pos + lastCellPosInTable + 1;
|
|
148
|
-
const selection = new CellSelection(tr.doc.resolve(firstCellPos), tr.doc.resolve(lastCellPos));
|
|
149
|
-
tr = tr.setSelection(selection);
|
|
150
|
-
dispatch?.(tr);
|
|
151
|
-
}
|
|
152
|
-
return true;
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
//#endregion
|
|
156
|
-
//#region src/table/table-commands.ts
|
|
157
|
-
/**
|
|
158
|
-
* Adds commands for working with `table` nodes.
|
|
159
|
-
*
|
|
160
|
-
* @public
|
|
161
|
-
*/
|
|
162
|
-
function defineTableCommands() {
|
|
163
|
-
return defineCommands({
|
|
164
|
-
insertTable,
|
|
165
|
-
exitTable: () => exitTable,
|
|
166
|
-
selectTable,
|
|
167
|
-
selectTableCell,
|
|
168
|
-
selectTableColumn,
|
|
169
|
-
selectTableRow,
|
|
170
|
-
addTableColumnBefore: () => addColumnBefore,
|
|
171
|
-
addTableColumnAfter: () => addColumnAfter,
|
|
172
|
-
addTableRowAbove: () => addRowBefore,
|
|
173
|
-
addTableRowBelow: () => addRowAfter,
|
|
174
|
-
deleteTable: () => deleteTable,
|
|
175
|
-
deleteTableColumn: () => deleteColumn,
|
|
176
|
-
deleteTableRow: () => deleteRow,
|
|
177
|
-
deleteCellSelection: () => deleteCellSelection,
|
|
178
|
-
mergeTableCells: () => mergeCells,
|
|
179
|
-
splitTableCell: () => splitCell,
|
|
180
|
-
moveTableRow,
|
|
181
|
-
moveTableColumn
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
//#endregion
|
|
185
|
-
//#region src/table/table-drop-indicator.ts
|
|
186
|
-
/**
|
|
187
|
-
* Hides the drop indicator when dragging a table column or row by using the
|
|
188
|
-
* table handle.
|
|
189
|
-
*
|
|
190
|
-
* @internal
|
|
191
|
-
*/
|
|
192
|
-
function defineTableDropIndicator() {
|
|
193
|
-
return defineDropIndicator({ onDrag });
|
|
194
|
-
}
|
|
195
|
-
const matchMap = /* @__PURE__ */ new WeakMap();
|
|
196
|
-
const onDrag = ({ event }) => {
|
|
197
|
-
const dataTransfer = event.dataTransfer;
|
|
198
|
-
if (!dataTransfer) return true;
|
|
199
|
-
let match;
|
|
200
|
-
if (matchMap.has(dataTransfer)) match = matchMap.get(dataTransfer);
|
|
201
|
-
else {
|
|
202
|
-
match = dataTransfer.types.includes("application/x-prosekit-table-handle-drag");
|
|
203
|
-
matchMap.set(dataTransfer, match);
|
|
204
|
-
}
|
|
205
|
-
return !match;
|
|
206
|
-
};
|
|
207
|
-
//#endregion
|
|
208
|
-
//#region src/table/table-plugins.ts
|
|
209
|
-
/**
|
|
210
|
-
* @public
|
|
211
|
-
*/
|
|
212
|
-
function defineTablePlugins() {
|
|
213
|
-
return definePlugin([tableEditing(), columnResizing()]);
|
|
214
|
-
}
|
|
215
|
-
//#endregion
|
|
216
|
-
//#region src/table/table-spec.ts
|
|
217
|
-
const cellContent = "block+";
|
|
218
|
-
const cellAttrs = {
|
|
219
|
-
colspan: { default: 1 },
|
|
220
|
-
rowspan: { default: 1 },
|
|
221
|
-
colwidth: { default: null }
|
|
222
|
-
};
|
|
223
|
-
const specs = tableNodes({
|
|
224
|
-
tableGroup: "block",
|
|
225
|
-
cellContent,
|
|
226
|
-
cellAttributes: {}
|
|
227
|
-
});
|
|
228
|
-
/**
|
|
229
|
-
* @internal
|
|
230
|
-
*/
|
|
231
|
-
function defineTableSpec() {
|
|
232
|
-
return defineNodeSpec({
|
|
233
|
-
...specs["table"],
|
|
234
|
-
content: "tableRow+",
|
|
235
|
-
name: "table"
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* @internal
|
|
240
|
-
*/
|
|
241
|
-
function defineTableRowSpec() {
|
|
242
|
-
return defineNodeSpec({
|
|
243
|
-
...specs["table_row"],
|
|
244
|
-
content: "(tableCell | tableHeaderCell)*",
|
|
245
|
-
name: "tableRow"
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* @internal
|
|
250
|
-
*/
|
|
251
|
-
function defineTableCellSpec() {
|
|
252
|
-
return defineNodeSpec({
|
|
253
|
-
...specs["table_cell"],
|
|
254
|
-
name: "tableCell",
|
|
255
|
-
attrs: cellAttrs
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
function defineTableHeaderCellSpec() {
|
|
259
|
-
return defineNodeSpec({
|
|
260
|
-
...specs["table_header"],
|
|
261
|
-
name: "tableHeaderCell",
|
|
262
|
-
attrs: cellAttrs
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
//#endregion
|
|
266
|
-
//#region src/table/table.ts
|
|
267
|
-
/**
|
|
268
|
-
* @public
|
|
269
|
-
*/
|
|
270
|
-
function defineTable() {
|
|
271
|
-
return union(defineTableSpec(), defineTableRowSpec(), defineTableCellSpec(), defineTableHeaderCellSpec(), defineTablePlugins(), defineTableCommands(), defineTableDropIndicator());
|
|
272
|
-
}
|
|
273
|
-
//#endregion
|
|
274
|
-
export { insertTable as _, defineTableSpec as a, defineTableCommands as c, selectTableColumn as d, selectTableCell as f, moveTableColumn as g, moveTableRow as h, defineTableRowSpec as i, selectTable as l, isCellSelection as m, defineTableCellSpec as n, defineTablePlugins as o, findTable as p, defineTableHeaderCellSpec as r, defineTableDropIndicator as s, defineTable as t, selectTableRow as u, exitTable as v };
|
|
275
|
-
|
|
276
|
-
//# sourceMappingURL=table.js.map
|
|
1
|
+
import { _ as insertTable, a as defineTableSpec, c as defineTableCommands, d as selectTableColumn, f as selectTableCell, g as moveTableColumn, h as moveTableRow, i as defineTableRowSpec, l as selectTable, m as isCellSelection, n as defineTableCellSpec, o as defineTablePlugins, p as findTable, r as defineTableHeaderCellSpec, s as defineTableDropIndicator, t as defineTable, u as selectTableRow, v as exitTable } from "./table2.js";
|
|
2
|
+
export { defineTable, defineTableCellSpec, defineTableCommands, defineTableDropIndicator, defineTableHeaderCellSpec, defineTablePlugins, defineTableRowSpec, defineTableSpec, exitTable, findTable, insertTable, isCellSelection, moveTableColumn, moveTableRow, selectTable, selectTableCell, selectTableColumn, selectTableRow };
|