@milkdown/crepe 7.5.8 → 7.6.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/lib/cjs/index-6oBtF_11.js +26 -0
- package/lib/cjs/{index-BIXWL4Or.js.map → index-6oBtF_11.js.map} +1 -1
- package/lib/cjs/{index-Dt55rF23.js → index-8COAwUnB.js} +5 -5
- package/lib/cjs/{index-Dt55rF23.js.map → index-8COAwUnB.js.map} +1 -1
- package/lib/cjs/{index-By3ewOiO.js → index-B4NxKjEA.js} +52 -52
- package/lib/cjs/index-B4NxKjEA.js.map +1 -0
- package/lib/cjs/{index-Dub20F3z.js → index-BOmVuuoY.js} +3 -3
- package/lib/cjs/{index-Dub20F3z.js.map → index-BOmVuuoY.js.map} +1 -1
- package/lib/cjs/{index-BuSAwj4j.js → index-C4JjdSvv.js} +3 -3
- package/lib/cjs/{index-BuSAwj4j.js.map → index-C4JjdSvv.js.map} +1 -1
- package/lib/cjs/index-C6EzkFZ_.js +39 -0
- package/lib/cjs/{index-DmOOfQPi.js.map → index-C6EzkFZ_.js.map} +1 -1
- package/lib/cjs/index-D0OPKY6K.js +65 -0
- package/lib/cjs/index-D0OPKY6K.js.map +1 -0
- package/lib/cjs/index-DkHBuNoK.js +176 -0
- package/lib/cjs/index-DkHBuNoK.js.map +1 -0
- package/lib/cjs/index-DnFbvtbD.js +278 -0
- package/lib/cjs/index-DnFbvtbD.js.map +1 -0
- package/lib/cjs/{index-AlHHvSR_.js → index-YUwSTgPK.js} +3 -3
- package/lib/cjs/{index-AlHHvSR_.js.map → index-YUwSTgPK.js.map} +1 -1
- package/lib/cjs/{index-A8IrOmzS.js → index-koRsjvWB.js} +116 -18
- package/lib/cjs/index-koRsjvWB.js.map +1 -0
- package/lib/cjs/index-nDWnWxJ8.js +38 -0
- package/lib/cjs/index-nDWnWxJ8.js.map +1 -0
- package/lib/cjs/index.js +13 -148
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/inline-latex-CwU8Nsfj.js +54 -0
- package/lib/cjs/inline-latex-CwU8Nsfj.js.map +1 -0
- package/lib/cjs/{todoList-V4JWO5-M.js → todo-list-V4JWO5-M.js} +1 -1
- package/lib/cjs/todo-list-V4JWO5-M.js.map +1 -0
- package/lib/esm/index-BOzN8fKq.js +36 -0
- package/lib/esm/index-BOzN8fKq.js.map +1 -0
- package/lib/esm/index-BUFg1FSH.js +172 -0
- package/lib/esm/index-BUFg1FSH.js.map +1 -0
- package/lib/esm/index-BxpDIDRS.js +63 -0
- package/lib/esm/index-BxpDIDRS.js.map +1 -0
- package/lib/esm/index-C5_dM0IB.js +276 -0
- package/lib/esm/index-C5_dM0IB.js.map +1 -0
- package/lib/esm/{index-DlX33Dj0.js → index-C7Xr_l-d.js} +5 -5
- package/lib/esm/{index-DlX33Dj0.js.map → index-C7Xr_l-d.js.map} +1 -1
- package/lib/esm/{index-CxJ9fxJm.js → index-C7_YCA3P.js} +3 -3
- package/lib/esm/{index-CxJ9fxJm.js.map → index-C7_YCA3P.js.map} +1 -1
- package/lib/esm/index-C8tiRHTF.js +37 -0
- package/lib/esm/{index-BDGHz9p-.js.map → index-C8tiRHTF.js.map} +1 -1
- package/lib/esm/{index-D6fLMv29.js → index-CD8fvrRC.js} +3 -3
- package/lib/esm/{index-D6fLMv29.js.map → index-CD8fvrRC.js.map} +1 -1
- package/lib/esm/index-CEup1V8i.js +24 -0
- package/lib/esm/{index-6VoEpEnX.js.map → index-CEup1V8i.js.map} +1 -1
- package/lib/esm/{index-kGl7HgN2.js → index-DroARb55.js} +117 -19
- package/lib/esm/index-DroARb55.js.map +1 -0
- package/lib/esm/{index-zKiGjwHz.js → index-HnGoJxjJ.js} +52 -52
- package/lib/esm/index-HnGoJxjJ.js.map +1 -0
- package/lib/esm/{index-DOrkOhki.js → index-WCe-Xh61.js} +3 -3
- package/lib/esm/{index-DOrkOhki.js.map → index-WCe-Xh61.js.map} +1 -1
- package/lib/esm/index.js +11 -150
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/inline-latex-BLd2QrJC.js +51 -0
- package/lib/esm/inline-latex-BLd2QrJC.js.map +1 -0
- package/lib/esm/{todoList-CAbx4396.js → todo-list-B78GeGtK.js} +2 -2
- package/lib/esm/todo-list-B78GeGtK.js.map +1 -0
- package/lib/theme/common/code-mirror.css +93 -34
- package/lib/theme/common/latex.css +44 -0
- package/lib/theme/common/style.css +1 -0
- package/lib/types/core/crepe.d.ts +2 -0
- package/lib/types/core/crepe.d.ts.map +1 -1
- package/lib/types/feature/block-edit/handle/component.d.ts +3 -3
- package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
- package/lib/types/feature/block-edit/menu/component.d.ts +1 -1
- package/lib/types/feature/block-edit/menu/group-builder.d.ts +4 -4
- package/lib/types/feature/code-mirror/index.d.ts +6 -2
- package/lib/types/feature/code-mirror/index.d.ts.map +1 -1
- package/lib/types/feature/image-block/index.d.ts +1 -0
- package/lib/types/feature/image-block/index.d.ts.map +1 -1
- package/lib/types/feature/index.d.ts +4 -1
- package/lib/types/feature/index.d.ts.map +1 -1
- package/lib/types/feature/latex/block-latex.d.ts +2 -0
- package/lib/types/feature/latex/block-latex.d.ts.map +1 -0
- package/lib/types/feature/latex/index.d.ts +9 -0
- package/lib/types/feature/latex/index.d.ts.map +1 -0
- package/lib/types/feature/latex/inline-latex.d.ts +3 -0
- package/lib/types/feature/latex/inline-latex.d.ts.map +1 -0
- package/lib/types/feature/latex/inline-tooltip/component.d.ts +15 -0
- package/lib/types/feature/latex/inline-tooltip/component.d.ts.map +1 -0
- package/lib/types/feature/latex/inline-tooltip/tooltip.d.ts +2 -0
- package/lib/types/feature/latex/inline-tooltip/tooltip.d.ts.map +1 -0
- package/lib/types/feature/latex/inline-tooltip/view.d.ts +13 -0
- package/lib/types/feature/latex/inline-tooltip/view.d.ts.map +1 -0
- package/lib/types/feature/latex/input-rule.d.ts +3 -0
- package/lib/types/feature/latex/input-rule.d.ts.map +1 -0
- package/lib/types/feature/latex/remark.d.ts +3 -0
- package/lib/types/feature/latex/remark.d.ts.map +1 -0
- package/lib/types/feature/shared.d.ts +1 -1
- package/lib/types/feature/shared.d.ts.map +1 -1
- package/lib/types/feature/toolbar/component.d.ts +3 -1
- package/lib/types/feature/toolbar/component.d.ts.map +1 -1
- package/lib/types/feature/toolbar/index.d.ts +1 -0
- package/lib/types/feature/toolbar/index.d.ts.map +1 -1
- package/lib/types/icons/{alignCenter.d.ts → align-center.d.ts} +1 -1
- package/lib/types/icons/align-center.d.ts.map +1 -0
- package/lib/types/icons/{alignLeft.d.ts → align-left.d.ts} +1 -1
- package/lib/types/icons/align-left.d.ts.map +1 -0
- package/lib/types/icons/{alignRight.d.ts → align-right.d.ts} +1 -1
- package/lib/types/icons/align-right.d.ts.map +1 -0
- package/lib/types/icons/{bulletList.d.ts → bullet-list.d.ts} +1 -1
- package/lib/types/icons/bullet-list.d.ts.map +1 -0
- package/lib/types/icons/{checkBoxChecked.d.ts → check-box-checked.d.ts} +1 -1
- package/lib/types/icons/check-box-checked.d.ts.map +1 -0
- package/lib/types/icons/{checkBoxUnchecked.d.ts → check-box-unchecked.d.ts} +1 -1
- package/lib/types/icons/check-box-unchecked.d.ts.map +1 -0
- package/lib/types/icons/{chevronDown.d.ts → chevron-down.d.ts} +1 -1
- package/lib/types/icons/chevron-down.d.ts.map +1 -0
- package/lib/types/icons/{dragHandle.d.ts → drag-handle.d.ts} +1 -1
- package/lib/types/icons/drag-handle.d.ts.map +1 -0
- package/lib/types/icons/functions.d.ts +2 -0
- package/lib/types/icons/functions.d.ts.map +1 -0
- package/lib/types/icons/index.d.ts +10 -10
- package/lib/types/icons/index.d.ts.map +1 -1
- package/lib/types/icons/{orderedList.d.ts → ordered-list.d.ts} +1 -1
- package/lib/types/icons/ordered-list.d.ts.map +1 -0
- package/lib/types/icons/{todoList.d.ts → todo-list.d.ts} +1 -1
- package/lib/types/icons/todo-list.d.ts.map +1 -0
- package/lib/types/icons/visibility-off.d.ts +2 -0
- package/lib/types/icons/visibility-off.d.ts.map +1 -0
- package/package.json +7 -4
- package/src/core/crepe.ts +19 -0
- package/src/feature/block-edit/handle/component.ts +2 -2
- package/src/feature/block-edit/handle/index.ts +1 -1
- package/src/feature/code-mirror/index.ts +23 -3
- package/src/feature/image-block/index.ts +3 -0
- package/src/feature/index.ts +8 -0
- package/src/feature/latex/block-latex.ts +25 -0
- package/src/feature/latex/index.ts +73 -0
- package/src/feature/latex/inline-latex.ts +55 -0
- package/src/feature/latex/inline-tooltip/component.ts +38 -0
- package/src/feature/latex/inline-tooltip/tooltip.ts +3 -0
- package/src/feature/latex/inline-tooltip/view.ts +122 -0
- package/src/feature/latex/input-rule.ts +25 -0
- package/src/feature/latex/remark.ts +35 -0
- package/src/feature/shared.ts +1 -1
- package/src/feature/toolbar/component.ts +91 -3
- package/src/feature/toolbar/index.ts +3 -1
- package/src/icons/functions.ts +15 -0
- package/src/icons/index.ts +10 -10
- package/src/icons/visibility-off.ts +14 -0
- package/src/theme/common/code-mirror.css +95 -34
- package/src/theme/common/latex.css +44 -0
- package/src/theme/common/style.css +1 -0
- package/lib/cjs/index-3mj4YaCA.js +0 -43
- package/lib/cjs/index-3mj4YaCA.js.map +0 -1
- package/lib/cjs/index-A8IrOmzS.js.map +0 -1
- package/lib/cjs/index-BIXWL4Or.js +0 -26
- package/lib/cjs/index-BrCpWPcp.js +0 -36
- package/lib/cjs/index-BrCpWPcp.js.map +0 -1
- package/lib/cjs/index-By3ewOiO.js.map +0 -1
- package/lib/cjs/index-DmOOfQPi.js +0 -39
- package/lib/cjs/todoList-V4JWO5-M.js.map +0 -1
- package/lib/esm/index-6VoEpEnX.js +0 -24
- package/lib/esm/index-BB3Rq6BU.js +0 -41
- package/lib/esm/index-BB3Rq6BU.js.map +0 -1
- package/lib/esm/index-BDGHz9p-.js +0 -37
- package/lib/esm/index-BoTKwL_u.js +0 -34
- package/lib/esm/index-BoTKwL_u.js.map +0 -1
- package/lib/esm/index-kGl7HgN2.js.map +0 -1
- package/lib/esm/index-zKiGjwHz.js.map +0 -1
- package/lib/esm/todoList-CAbx4396.js.map +0 -1
- package/lib/types/icons/alignCenter.d.ts.map +0 -1
- package/lib/types/icons/alignLeft.d.ts.map +0 -1
- package/lib/types/icons/alignRight.d.ts.map +0 -1
- package/lib/types/icons/bulletList.d.ts.map +0 -1
- package/lib/types/icons/checkBoxChecked.d.ts.map +0 -1
- package/lib/types/icons/checkBoxUnchecked.d.ts.map +0 -1
- package/lib/types/icons/chevronDown.d.ts.map +0 -1
- package/lib/types/icons/dragHandle.d.ts.map +0 -1
- package/lib/types/icons/orderedList.d.ts.map +0 -1
- package/lib/types/icons/todoList.d.ts.map +0 -1
- /package/src/icons/{alignCenter.ts → align-center.ts} +0 -0
- /package/src/icons/{alignLeft.ts → align-left.ts} +0 -0
- /package/src/icons/{alignRight.ts → align-right.ts} +0 -0
- /package/src/icons/{bulletList.ts → bullet-list.ts} +0 -0
- /package/src/icons/{checkBoxChecked.ts → check-box-checked.ts} +0 -0
- /package/src/icons/{checkBoxUnchecked.ts → check-box-unchecked.ts} +0 -0
- /package/src/icons/{chevronDown.ts → chevron-down.ts} +0 -0
- /package/src/icons/{dragHandle.ts → drag-handle.ts} +0 -0
- /package/src/icons/{orderedList.ts → ordered-list.ts} +0 -0
- /package/src/icons/{todoList.ts → todo-list.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DnFbvtbD.js","sources":["../../src/feature/latex/remark.ts","../../src/feature/latex/inline-tooltip/component.ts","../../src/feature/latex/inline-tooltip/tooltip.ts","../../src/feature/latex/inline-tooltip/view.ts","../../src/feature/latex/input-rule.ts","../../src/feature/latex/block-latex.ts","../../src/feature/latex/index.ts"],"sourcesContent":["import remarkMath from 'remark-math'\nimport { $remark } from '@milkdown/kit/utils'\nimport type { Node } from '@milkdown/kit/transformer'\nimport { visit } from 'unist-util-visit'\n\nexport const remarkMathPlugin = $remark<'remarkMath', undefined>(\n 'remarkMath',\n () => remarkMath\n)\n\nfunction visitMathBlock(ast: Node) {\n return visit(\n ast,\n 'math',\n (\n node: Node & { value: string },\n index: number,\n parent: Node & { children: Node[] }\n ) => {\n const { value } = node as Node & { value: string }\n const newNode = {\n type: 'code',\n lang: 'LaTeX',\n value,\n }\n parent.children.splice(index, 1, newNode)\n }\n )\n}\n\n/// Turn math block into code block with language LaTeX.\nexport const remarkMathBlockPlugin = $remark(\n 'remarkMathBlock',\n () => () => visitMathBlock\n)\n","import { c, h, html, type Component } from 'atomico'\nimport type { LatexConfig } from '..'\nimport type { EditorView } from '@milkdown/kit/prose/view'\n\ntype LatexEditComponentProps = {\n config: Partial<LatexConfig>\n innerView: EditorView\n updateValue: () => void\n}\n\nexport const latexEditComponent: Component<LatexEditComponentProps> = ({\n config,\n innerView,\n updateValue,\n}) => {\n const onMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n updateValue?.()\n }\n return html`\n <host>\n <div class=\"container\">\n ${innerView && h(innerView.dom, {})}\n <button onmousedown=${onMouseDown}>\n ${config?.inlineEditConfirm?.()}\n </button>\n </div>\n </host>\n `\n}\n\nlatexEditComponent.props = {\n config: Object,\n innerView: Object,\n updateValue: Function,\n}\n\nexport const LatexInlineEditElement = c(latexEditComponent)\n","import { tooltipFactory } from '@milkdown/kit/plugin/tooltip'\n\nexport const inlineLatexTooltip = tooltipFactory('INLINE_LATEX')\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { TooltipProvider } from '@milkdown/kit/plugin/tooltip'\nimport type { PluginView } from '@milkdown/kit/prose/state'\nimport { EditorState, NodeSelection } from '@milkdown/kit/prose/state'\nimport { EditorView } from '@milkdown/kit/prose/view'\nimport { mathInlineId } from '../inline-latex'\nimport { LatexInlineEditElement } from './component'\nimport type { LatexConfig } from '..'\nimport { keymap } from '@milkdown/kit/prose/keymap'\nimport { redo, undo } from '@milkdown/kit/prose/history'\nimport { Schema } from '@milkdown/kit/prose/model'\n\nexport class LatexInlineTooltip implements PluginView {\n #content = new LatexInlineEditElement()\n #provider: TooltipProvider\n #dom: HTMLElement\n #innerView: EditorView | null\n\n constructor(\n readonly ctx: Ctx,\n view: EditorView,\n config: Partial<LatexConfig>\n ) {\n this.#provider = new TooltipProvider({\n debounce: 0,\n content: this.#content,\n shouldShow: this.#shouldShow,\n offset: 10,\n floatingUIOptions: {\n placement: 'bottom',\n },\n })\n this.#content.config = config\n this.#provider.update(view)\n this.#dom = document.createElement('div')\n this.#innerView = null\n }\n\n #onHide = () => {\n if (this.#innerView) {\n this.#innerView.destroy()\n this.#innerView = null\n }\n }\n\n #shouldShow = (view: EditorView) => {\n const shouldShow = () => {\n const { selection, schema } = view.state\n if (selection.empty) return false\n if (!(selection instanceof NodeSelection)) return false\n const node = selection.node\n if (node.type.name !== mathInlineId) return false\n\n const textFrom = selection.from\n\n const paragraph = schema.nodes.paragraph!.create(\n null,\n schema.text(node.attrs.value)\n )\n\n const innerView = new EditorView(this.#dom, {\n state: EditorState.create({\n doc: paragraph,\n schema: new Schema({\n nodes: {\n doc: {\n content: 'block+',\n },\n paragraph: {\n content: 'inline*',\n group: 'block',\n parseDOM: [{ tag: 'p' }],\n toDOM() {\n return ['p', 0]\n },\n },\n text: {\n group: 'inline',\n },\n },\n }),\n plugins: [\n keymap({\n 'Mod-z': undo,\n 'Mod-Z': redo,\n 'Mod-y': redo,\n Enter: () => {\n this.#content.updateValue?.()\n return true\n },\n }),\n ],\n }),\n })\n\n this.#innerView = innerView\n this.#content.innerView = this.#innerView\n this.#content.updateValue = () => {\n const { tr } = view.state\n tr.setNodeAttribute(textFrom, 'value', innerView.state.doc.textContent)\n view.dispatch(tr)\n requestAnimationFrame(() => {\n view.focus()\n })\n }\n return true\n }\n\n const show = shouldShow()\n if (!show) this.#onHide()\n return show\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#provider.update(view, prevState)\n }\n\n destroy = () => {\n this.#provider.destroy()\n this.#content.remove()\n }\n}\n","import { $inputRule } from '@milkdown/kit/utils'\nimport { nodeRule } from '@milkdown/kit/prose'\nimport { mathInlineSchema } from './inline-latex'\nimport { codeBlockSchema } from '@milkdown/kit/preset/commonmark'\nimport { textblockTypeInputRule } from '@milkdown/kit/prose/inputrules'\n\n/// Input rule for inline math.\n/// When you type $E=MC^2$, it will create an inline math node.\nexport const mathInlineInputRule = $inputRule((ctx) =>\n nodeRule(/(?:\\$)([^$]+)(?:\\$)$/, mathInlineSchema.type(ctx), {\n getAttr: (match) => {\n return {\n value: match[1] ?? '',\n }\n },\n })\n)\n\n/// A input rule for creating block math.\n/// For example, `$$ ` will create a code block with language javascript.\nexport const mathBlockInputRule = $inputRule((ctx) =>\n textblockTypeInputRule(/^\\$\\$[\\s\\n]$/, codeBlockSchema.type(ctx), () => ({\n language: 'LaTeX',\n }))\n)\n","import { codeBlockSchema } from '@milkdown/kit/preset/commonmark'\n\nexport const blockLatexSchema = codeBlockSchema.extendSchema((prev) => {\n return (ctx) => {\n const baseSchema = prev(ctx)\n return {\n ...baseSchema,\n toMarkdown: {\n match: baseSchema.toMarkdown.match,\n runner: (state, node) => {\n const language = node.attrs.language\n if (language.toLowerCase() === 'latex') {\n state.addNode(\n 'math',\n undefined,\n node.content.firstChild?.text || ''\n )\n } else {\n return baseSchema.toMarkdown.runner(state, node)\n }\n },\n },\n }\n }\n})\n","import type { KatexOptions } from 'katex'\nimport katex from 'katex'\nimport { codeBlockConfig } from '@milkdown/kit/component/code-block'\nimport { CrepeFeature } from '../..'\nimport { FeaturesCtx } from '../../core/slice'\nimport type { DefineFeature, Icon } from '../shared'\nimport { remarkMathBlockPlugin, remarkMathPlugin } from './remark'\nimport { mathInlineSchema } from './inline-latex'\nimport { defIfNotExists } from '../../utils'\nimport { LatexInlineEditElement } from './inline-tooltip/component'\nimport { inlineLatexTooltip } from './inline-tooltip/tooltip'\nimport { LatexInlineTooltip } from './inline-tooltip/view'\nimport { confirmIcon } from '../../icons'\nimport { mathBlockInputRule, mathInlineInputRule } from './input-rule'\nimport { blockLatexSchema } from './block-latex'\n\nexport interface LatexConfig {\n katexOptions: KatexOptions\n inlineEditConfirm: Icon\n}\n\nexport type LatexFeatureConfig = Partial<LatexConfig>\n\ndefIfNotExists('milkdown-latex-inline-edit', LatexInlineEditElement)\nexport const defineFeature: DefineFeature<LatexFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n const flags = ctx.get(FeaturesCtx)\n const isCodeMirrorEnabled = flags.includes(CrepeFeature.CodeMirror)\n if (!isCodeMirrorEnabled) {\n throw new Error('You need to enable CodeMirror to use LaTeX feature')\n }\n\n ctx.update(codeBlockConfig.key, (prev) => ({\n ...prev,\n renderPreview: (language, content) => {\n if (language.toLowerCase() === 'latex' && content.length > 0) {\n return renderLatex(content, config?.katexOptions)\n }\n const renderPreview = prev.renderPreview\n return renderPreview(language, content)\n },\n }))\n\n ctx.set(inlineLatexTooltip.key, {\n view: (view) => {\n return new LatexInlineTooltip(ctx, view, {\n inlineEditConfirm: config?.inlineEditConfirm ?? (() => confirmIcon),\n ...config,\n })\n },\n })\n })\n .use(remarkMathPlugin)\n .use(remarkMathBlockPlugin)\n .use(mathInlineSchema)\n .use(inlineLatexTooltip)\n .use(mathInlineInputRule)\n .use(mathBlockInputRule)\n .use(blockLatexSchema)\n}\n\nfunction renderLatex(content: string, options?: KatexOptions) {\n const html = katex.renderToString(content, {\n ...options,\n throwOnError: false,\n displayMode: true,\n })\n return html\n}\n"],"names":["$remark","visit","html","h","c","tooltipFactory","view","NodeSelection","mathInlineId","EditorView","EditorState","Schema","keymap","undo","redo","TooltipProvider","$inputRule","nodeRule","mathInlineSchema","textblockTypeInputRule","codeBlockSchema","defIfNotExists","FeaturesCtx","CrepeFeature","codeBlockConfig","confirmIcon"],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ function isInCodeBlock(selection) {
|
|
|
6
6
|
}
|
|
7
7
|
function isInList(selection) {
|
|
8
8
|
var _a;
|
|
9
|
-
const type = (_a = selection.$from.node(selection.$from.depth - 1)) == null ?
|
|
10
|
-
return (type == null ?
|
|
9
|
+
const type = (_a = selection.$from.node(selection.$from.depth - 1)) == null ? undefined : _a.type;
|
|
10
|
+
return (type == null ? undefined : type.name) === "list_item";
|
|
11
11
|
}
|
|
12
12
|
function defIfNotExists(tagName, element) {
|
|
13
13
|
if (customElements.get(tagName) == null)
|
|
@@ -17,4 +17,4 @@ function defIfNotExists(tagName, element) {
|
|
|
17
17
|
exports.defIfNotExists = defIfNotExists;
|
|
18
18
|
exports.isInCodeBlock = isInCodeBlock;
|
|
19
19
|
exports.isInList = isInList;
|
|
20
|
-
//# sourceMappingURL=index-
|
|
20
|
+
//# sourceMappingURL=index-YUwSTgPK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-YUwSTgPK.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import type { Selection } from '@milkdown/kit/prose/state'\n\nexport function isInCodeBlock(selection: Selection) {\n const type = selection.$from.parent.type\n return type.name === 'code_block'\n}\n\nexport function isInList(selection: Selection) {\n const type = selection.$from.node(selection.$from.depth - 1)?.type\n return type?.name === 'list_item'\n}\n\nexport function defIfNotExists(\n tagName: string,\n element: CustomElementConstructor\n) {\n if (customElements.get(tagName) == null)\n customElements.define(tagName, element)\n}\n"],"names":[],"mappings":";;AAEO,SAAS,cAAc,SAAsB,EAAA;AAClD,EAAM,MAAA,IAAA,GAAO,SAAU,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA;AACpC,EAAA,OAAO,KAAK,IAAS,KAAA,YAAA;AACvB;AAEO,SAAS,SAAS,SAAsB,EAAA;AAP/C,EAAA,IAAA,EAAA;AAQE,EAAM,MAAA,IAAA,GAAA,CAAO,eAAU,KAAM,CAAA,IAAA,CAAK,UAAU,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,KAA9C,IAAiD,GAAA,SAAA,GAAA,EAAA,CAAA,IAAA;AAC9D,EAAA,OAAA,CAAO,gCAAM,IAAS,MAAA,WAAA;AACxB;AAEgB,SAAA,cAAA,CACd,SACA,OACA,EAAA;AACA,EAAI,IAAA,cAAA,CAAe,GAAI,CAAA,OAAO,CAAK,IAAA,IAAA;AACjC,IAAe,cAAA,CAAA,MAAA,CAAO,SAAS,OAAO,CAAA;AAC1C;;;;;;"}
|
|
@@ -2,22 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
var tooltip = require('@milkdown/kit/plugin/tooltip');
|
|
4
4
|
var state = require('@milkdown/kit/prose/state');
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index$1 = require('./index-YUwSTgPK.js');
|
|
6
6
|
var atomico = require('atomico');
|
|
7
7
|
var core = require('@milkdown/kit/core');
|
|
8
8
|
var commonmark = require('@milkdown/kit/preset/commonmark');
|
|
9
9
|
var clsx = require('clsx');
|
|
10
10
|
var linkTooltip = require('@milkdown/kit/component/link-tooltip');
|
|
11
11
|
var gfm = require('@milkdown/kit/preset/gfm');
|
|
12
|
-
var todoList = require('./
|
|
12
|
+
var todoList = require('./todo-list-V4JWO5-M.js');
|
|
13
|
+
var inlineLatex = require('./inline-latex-CwU8Nsfj.js');
|
|
14
|
+
var index = require('./index-DkHBuNoK.js');
|
|
15
|
+
require('@milkdown/kit/utils');
|
|
16
|
+
require('katex');
|
|
17
|
+
require('@milkdown/kit/plugin/history');
|
|
18
|
+
require('@milkdown/kit/plugin/indent');
|
|
19
|
+
require('@milkdown/kit/plugin/clipboard');
|
|
20
|
+
require('@milkdown/kit/plugin/trailing');
|
|
21
|
+
require('@milkdown/kit/ctx');
|
|
22
|
+
require('@milkdown/kit/plugin/listener');
|
|
23
|
+
|
|
24
|
+
const functionsIcon = atomico.html`
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
width="32"
|
|
28
|
+
height="32"
|
|
29
|
+
viewBox="0 0 24 24"
|
|
30
|
+
>
|
|
31
|
+
<path
|
|
32
|
+
fill="currentColor"
|
|
33
|
+
d="M7 19v-.808L13.096 12L7 5.808V5h10v1.25H9.102L14.727 12l-5.625 5.77H17V19z"
|
|
34
|
+
/>
|
|
35
|
+
</svg>
|
|
36
|
+
`;
|
|
13
37
|
|
|
14
38
|
const toolbarComponent = ({
|
|
15
39
|
ctx,
|
|
16
40
|
hide,
|
|
17
41
|
show,
|
|
18
|
-
config
|
|
42
|
+
config,
|
|
43
|
+
selection
|
|
19
44
|
}) => {
|
|
20
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
45
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
21
46
|
const update = atomico.useUpdate();
|
|
22
47
|
atomico.useEffect(() => {
|
|
23
48
|
update();
|
|
@@ -28,13 +53,73 @@ const toolbarComponent = ({
|
|
|
28
53
|
update();
|
|
29
54
|
};
|
|
30
55
|
const isActive = (mark) => {
|
|
31
|
-
if (!ctx) return false;
|
|
56
|
+
if (!ctx || !selection) return false;
|
|
32
57
|
const view = ctx.get(core.editorViewCtx);
|
|
33
58
|
const {
|
|
34
|
-
state: { doc
|
|
59
|
+
state: { doc }
|
|
35
60
|
} = view;
|
|
36
61
|
return doc.rangeHasMark(selection.from, selection.to, mark);
|
|
37
62
|
};
|
|
63
|
+
const containsNode = (node) => {
|
|
64
|
+
if (!ctx || !selection) return false;
|
|
65
|
+
const view = ctx.get(core.editorViewCtx);
|
|
66
|
+
const {
|
|
67
|
+
state: { doc }
|
|
68
|
+
} = view;
|
|
69
|
+
if (selection instanceof state.NodeSelection) {
|
|
70
|
+
return selection.node.type === node;
|
|
71
|
+
}
|
|
72
|
+
const { from, to } = selection;
|
|
73
|
+
let hasNode = false;
|
|
74
|
+
doc.nodesBetween(from, to, (n) => {
|
|
75
|
+
if (n.type === node) {
|
|
76
|
+
hasNode = true;
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
});
|
|
81
|
+
return hasNode;
|
|
82
|
+
};
|
|
83
|
+
const flags = ctx == null ? undefined : ctx.get(index.FeaturesCtx);
|
|
84
|
+
const isLatexEnabled = flags == null ? undefined : flags.includes(index.CrepeFeature.Latex);
|
|
85
|
+
const toggleLatex = (ctx2) => {
|
|
86
|
+
const hasLatex = containsNode(inlineLatex.mathInlineSchema.type(ctx2));
|
|
87
|
+
const view = ctx2.get(core.editorViewCtx);
|
|
88
|
+
const { selection: selection2, doc, tr } = view.state;
|
|
89
|
+
if (!hasLatex) {
|
|
90
|
+
const text = doc.textBetween(selection2.from, selection2.to);
|
|
91
|
+
let _tr2 = tr.replaceSelectionWith(
|
|
92
|
+
inlineLatex.mathInlineSchema.type(ctx2).create({
|
|
93
|
+
value: text
|
|
94
|
+
})
|
|
95
|
+
);
|
|
96
|
+
view.dispatch(
|
|
97
|
+
_tr2.setSelection(state.NodeSelection.create(_tr2.doc, selection2.from))
|
|
98
|
+
);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const { from, to } = selection2;
|
|
102
|
+
let pos = -1;
|
|
103
|
+
let node = null;
|
|
104
|
+
doc.nodesBetween(from, to, (n, p) => {
|
|
105
|
+
if (node) return false;
|
|
106
|
+
if (n.type === inlineLatex.mathInlineSchema.type(ctx2)) {
|
|
107
|
+
pos = p;
|
|
108
|
+
node = n;
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
return true;
|
|
112
|
+
});
|
|
113
|
+
if (!node || pos < 0) return;
|
|
114
|
+
let _tr = tr.delete(pos, pos + 1);
|
|
115
|
+
const content = node.attrs.value;
|
|
116
|
+
_tr = _tr.insertText(content, pos);
|
|
117
|
+
view.dispatch(
|
|
118
|
+
_tr.setSelection(
|
|
119
|
+
state.TextSelection.create(_tr.doc, from, to + content.length - 1)
|
|
120
|
+
)
|
|
121
|
+
);
|
|
122
|
+
};
|
|
38
123
|
return atomico.html`<host>
|
|
39
124
|
<button
|
|
40
125
|
type="button"
|
|
@@ -47,7 +132,7 @@ const toolbarComponent = ({
|
|
|
47
132
|
commands.call(commonmark.toggleStrongCommand.key);
|
|
48
133
|
})}
|
|
49
134
|
>
|
|
50
|
-
${(_b = (_a = config == null ?
|
|
135
|
+
${(_b = (_a = config == null ? undefined : config.boldIcon) == null ? undefined : _a.call(config)) != null ? _b : todoList.boldIcon}
|
|
51
136
|
</button>
|
|
52
137
|
<button
|
|
53
138
|
type="button"
|
|
@@ -60,7 +145,7 @@ const toolbarComponent = ({
|
|
|
60
145
|
commands.call(commonmark.toggleEmphasisCommand.key);
|
|
61
146
|
})}
|
|
62
147
|
>
|
|
63
|
-
${(_d = (_c = config == null ?
|
|
148
|
+
${(_d = (_c = config == null ? undefined : config.italicIcon) == null ? undefined : _c.call(config)) != null ? _d : todoList.italicIcon}
|
|
64
149
|
</button>
|
|
65
150
|
<button
|
|
66
151
|
type="button"
|
|
@@ -73,7 +158,7 @@ const toolbarComponent = ({
|
|
|
73
158
|
commands.call(gfm.toggleStrikethroughCommand.key);
|
|
74
159
|
})}
|
|
75
160
|
>
|
|
76
|
-
${(_f = (_e = config == null ?
|
|
161
|
+
${(_f = (_e = config == null ? undefined : config.strikethroughIcon) == null ? undefined : _e.call(config)) != null ? _f : todoList.strikethroughIcon}
|
|
77
162
|
</button>
|
|
78
163
|
<div class="divider"></div>
|
|
79
164
|
<button
|
|
@@ -87,8 +172,18 @@ const toolbarComponent = ({
|
|
|
87
172
|
commands.call(commonmark.toggleInlineCodeCommand.key);
|
|
88
173
|
})}
|
|
89
174
|
>
|
|
90
|
-
${(_h = (_g = config == null ?
|
|
175
|
+
${(_h = (_g = config == null ? undefined : config.codeIcon) == null ? undefined : _g.call(config)) != null ? _h : todoList.codeIcon}
|
|
91
176
|
</button>
|
|
177
|
+
${isLatexEnabled && atomico.html`<button
|
|
178
|
+
type="button"
|
|
179
|
+
class=${clsx(
|
|
180
|
+
"toolbar-item",
|
|
181
|
+
ctx && containsNode(inlineLatex.mathInlineSchema.type(ctx)) && "active"
|
|
182
|
+
)}
|
|
183
|
+
onmousedown=${onClick(toggleLatex)}
|
|
184
|
+
>
|
|
185
|
+
${(_j = (_i = config == null ? undefined : config.latexIcon) == null ? undefined : _i.call(config)) != null ? _j : functionsIcon}
|
|
186
|
+
</button>`}
|
|
92
187
|
<button
|
|
93
188
|
type="button"
|
|
94
189
|
class=${clsx(
|
|
@@ -97,16 +192,16 @@ const toolbarComponent = ({
|
|
|
97
192
|
)}
|
|
98
193
|
onmousedown=${onClick((ctx2) => {
|
|
99
194
|
const view = ctx2.get(core.editorViewCtx);
|
|
100
|
-
const { selection } = view.state;
|
|
195
|
+
const { selection: selection2 } = view.state;
|
|
101
196
|
if (isActive(commonmark.linkSchema.type(ctx2))) {
|
|
102
|
-
ctx2.get(linkTooltip.linkTooltipAPI.key).removeLink(
|
|
197
|
+
ctx2.get(linkTooltip.linkTooltipAPI.key).removeLink(selection2.from, selection2.to);
|
|
103
198
|
return;
|
|
104
199
|
}
|
|
105
|
-
ctx2.get(linkTooltip.linkTooltipAPI.key).addLink(
|
|
106
|
-
hide == null ?
|
|
200
|
+
ctx2.get(linkTooltip.linkTooltipAPI.key).addLink(selection2.from, selection2.to);
|
|
201
|
+
hide == null ? undefined : hide();
|
|
107
202
|
})}
|
|
108
203
|
>
|
|
109
|
-
${(
|
|
204
|
+
${(_l = (_k = config == null ? undefined : config.linkIcon) == null ? undefined : _k.call(config)) != null ? _l : todoList.linkIcon}
|
|
110
205
|
</button>
|
|
111
206
|
</host>`;
|
|
112
207
|
};
|
|
@@ -114,7 +209,8 @@ toolbarComponent.props = {
|
|
|
114
209
|
ctx: Object,
|
|
115
210
|
hide: Function,
|
|
116
211
|
show: Boolean,
|
|
117
|
-
config: Object
|
|
212
|
+
config: Object,
|
|
213
|
+
selection: Object
|
|
118
214
|
};
|
|
119
215
|
const ToolbarElement = atomico.c(toolbarComponent);
|
|
120
216
|
|
|
@@ -133,6 +229,7 @@ class ToolbarView {
|
|
|
133
229
|
__privateAdd(this, _content);
|
|
134
230
|
this.update = (view, prevState) => {
|
|
135
231
|
__privateGet(this, _tooltipProvider).update(view, prevState);
|
|
232
|
+
__privateGet(this, _content).selection = view.state.selection;
|
|
136
233
|
};
|
|
137
234
|
this.destroy = () => {
|
|
138
235
|
__privateGet(this, _tooltipProvider).destroy();
|
|
@@ -146,6 +243,7 @@ class ToolbarView {
|
|
|
146
243
|
__privateGet(this, _content).ctx = ctx;
|
|
147
244
|
__privateGet(this, _content).hide = this.hide;
|
|
148
245
|
__privateGet(this, _content).config = config;
|
|
246
|
+
__privateGet(this, _content).selection = view.state.selection;
|
|
149
247
|
__privateSet(this, _tooltipProvider, new tooltip.TooltipProvider({
|
|
150
248
|
content: __privateGet(this, _content),
|
|
151
249
|
debounce: 20,
|
|
@@ -175,7 +273,7 @@ class ToolbarView {
|
|
|
175
273
|
}
|
|
176
274
|
_tooltipProvider = new WeakMap();
|
|
177
275
|
_content = new WeakMap();
|
|
178
|
-
index.defIfNotExists("milkdown-toolbar", ToolbarElement);
|
|
276
|
+
index$1.defIfNotExists("milkdown-toolbar", ToolbarElement);
|
|
179
277
|
const defineFeature = (editor, config) => {
|
|
180
278
|
editor.config((ctx) => {
|
|
181
279
|
ctx.set(toolbar.key, {
|
|
@@ -185,4 +283,4 @@ const defineFeature = (editor, config) => {
|
|
|
185
283
|
};
|
|
186
284
|
|
|
187
285
|
exports.defineFeature = defineFeature;
|
|
188
|
-
//# sourceMappingURL=index-
|
|
286
|
+
//# sourceMappingURL=index-koRsjvWB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-koRsjvWB.js","sources":["../../src/icons/functions.ts","../../src/feature/toolbar/component.ts","../../src/feature/toolbar/index.ts"],"sourcesContent":["import { html } from 'atomico'\n\nexport const functionsIcon = html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M7 19v-.808L13.096 12L7 5.808V5h10v1.25H9.102L14.727 12l-5.625 5.77H17V19z\"\n />\n </svg>\n`\n","import type { Component } from 'atomico'\nimport { c, html, useEffect, useUpdate } from 'atomico'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport { commandsCtx, editorViewCtx } from '@milkdown/kit/core'\nimport {\n emphasisSchema,\n inlineCodeSchema,\n linkSchema,\n strongSchema,\n toggleEmphasisCommand,\n toggleInlineCodeCommand,\n toggleStrongCommand,\n} from '@milkdown/kit/preset/commonmark'\nimport type { MarkType, Node, NodeType } from '@milkdown/kit/prose/model'\nimport type { Selection } from '@milkdown/kit/prose/state'\nimport clsx from 'clsx'\nimport { linkTooltipAPI } from '@milkdown/kit/component/link-tooltip'\nimport {\n strikethroughSchema,\n toggleStrikethroughCommand,\n} from '@milkdown/kit/preset/gfm'\nimport {\n boldIcon,\n codeIcon,\n italicIcon,\n linkIcon,\n strikethroughIcon,\n} from '../../icons'\nimport type { ToolbarFeatureConfig } from './index'\nimport { functionsIcon } from '../../icons/functions'\nimport { NodeSelection, TextSelection } from '@milkdown/kit/prose/state'\nimport { mathInlineSchema } from '../latex/inline-latex'\nimport { FeaturesCtx } from '../../core/slice'\nimport { CrepeFeature } from '../..'\n\nexport interface ToolbarProps {\n ctx: Ctx\n hide: () => void\n show: boolean\n selection: Selection\n config?: ToolbarFeatureConfig\n}\n\nexport const toolbarComponent: Component<ToolbarProps> = ({\n ctx,\n hide,\n show,\n config,\n selection,\n}) => {\n const update = useUpdate()\n useEffect(() => {\n update()\n }, [show])\n\n const onClick = (fn: (ctx: Ctx) => void) => (e: MouseEvent) => {\n e.preventDefault()\n ctx && fn(ctx)\n update()\n }\n\n const isActive = (mark: MarkType) => {\n if (!ctx || !selection) return false\n const view = ctx.get(editorViewCtx)\n const {\n state: { doc },\n } = view\n return doc.rangeHasMark(selection.from, selection.to, mark)\n }\n\n const containsNode = (node: NodeType) => {\n if (!ctx || !selection) return false\n const view = ctx.get(editorViewCtx)\n const {\n state: { doc },\n } = view\n if (selection instanceof NodeSelection) {\n return selection.node.type === node\n }\n\n const { from, to } = selection\n\n let hasNode = false\n doc.nodesBetween(from, to, (n) => {\n if (n.type === node) {\n hasNode = true\n return false\n }\n return true\n })\n\n return hasNode\n }\n\n const flags = ctx?.get(FeaturesCtx)\n const isLatexEnabled = flags?.includes(CrepeFeature.Latex)\n\n const toggleLatex = (ctx: Ctx) => {\n const hasLatex = containsNode(mathInlineSchema.type(ctx))\n const view = ctx.get(editorViewCtx)\n const { selection, doc, tr } = view.state\n if (!hasLatex) {\n const text = doc.textBetween(selection.from, selection.to)\n let _tr = tr.replaceSelectionWith(\n mathInlineSchema.type(ctx).create({\n value: text,\n })\n )\n view.dispatch(\n _tr.setSelection(NodeSelection.create(_tr.doc, selection.from))\n )\n return\n }\n\n const { from, to } = selection\n let pos = -1\n let node: Node | null = null\n doc.nodesBetween(from, to, (n, p) => {\n if (node) return false\n if (n.type === mathInlineSchema.type(ctx)) {\n pos = p\n node = n\n return false\n }\n return true\n })\n if (!node || pos < 0) return\n\n let _tr = tr.delete(pos, pos + 1)\n const content = (node as Node).attrs.value\n _tr = _tr.insertText(content, pos)\n view.dispatch(\n _tr.setSelection(\n TextSelection.create(_tr.doc, from, to + content.length - 1)\n )\n )\n }\n\n return html`<host>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(strongSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrongCommand.key)\n })}\n >\n ${config?.boldIcon?.() ?? boldIcon}\n </button>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(emphasisSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleEmphasisCommand.key)\n })}\n >\n ${config?.italicIcon?.() ?? italicIcon}\n </button>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(strikethroughSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrikethroughCommand.key)\n })}\n >\n ${config?.strikethroughIcon?.() ?? strikethroughIcon}\n </button>\n <div class=\"divider\"></div>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(inlineCodeSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleInlineCodeCommand.key)\n })}\n >\n ${config?.codeIcon?.() ?? codeIcon}\n </button>\n ${isLatexEnabled &&\n html`<button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && containsNode(mathInlineSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick(toggleLatex)}\n >\n ${config?.latexIcon?.() ?? functionsIcon}\n </button>`}\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(linkSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const view = ctx.get(editorViewCtx)\n const { selection } = view.state\n\n if (isActive(linkSchema.type(ctx))) {\n ctx.get(linkTooltipAPI.key).removeLink(selection.from, selection.to)\n return\n }\n\n ctx.get(linkTooltipAPI.key).addLink(selection.from, selection.to)\n hide?.()\n })}\n >\n ${config?.linkIcon?.() ?? linkIcon}\n </button>\n </host>`\n}\n\ntoolbarComponent.props = {\n ctx: Object,\n hide: Function,\n show: Boolean,\n config: Object,\n selection: Object,\n}\n\nexport const ToolbarElement = c(toolbarComponent)\n","import { TooltipProvider, tooltipFactory } from '@milkdown/kit/plugin/tooltip'\nimport type { EditorState, PluginView } from '@milkdown/kit/prose/state'\nimport { TextSelection } from '@milkdown/kit/prose/state'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport type { EditorView } from '@milkdown/kit/prose/view'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport type { DefineFeature, Icon } from '../shared'\nimport { defIfNotExists } from '../../utils'\nimport type { ToolbarProps } from './component'\nimport { ToolbarElement } from './component'\n\ninterface ToolbarConfig {\n boldIcon: Icon\n codeIcon: Icon\n italicIcon: Icon\n linkIcon: Icon\n strikethroughIcon: Icon\n latexIcon: Icon\n}\n\nexport type ToolbarFeatureConfig = Partial<ToolbarConfig>\n\nconst toolbar = tooltipFactory('CREPE_TOOLBAR')\n\nclass ToolbarView implements PluginView {\n #tooltipProvider: TooltipProvider\n #content: AtomicoThis<ToolbarProps>\n constructor(ctx: Ctx, view: EditorView, config?: ToolbarFeatureConfig) {\n const content = new ToolbarElement()\n this.#content = content\n this.#content.ctx = ctx\n this.#content.hide = this.hide\n this.#content.config = config\n this.#content.selection = view.state.selection\n this.#tooltipProvider = new TooltipProvider({\n content: this.#content,\n debounce: 20,\n offset: 10,\n shouldShow(view: EditorView) {\n const { doc, selection } = view.state\n const { empty, from, to } = selection\n\n const isEmptyTextBlock =\n !doc.textBetween(from, to).length &&\n selection instanceof TextSelection\n\n const isNotTextBlock = !(selection instanceof TextSelection)\n\n const activeElement = (view.dom.getRootNode() as ShadowRoot | Document)\n .activeElement\n const isTooltipChildren = content.contains(activeElement)\n\n const notHasFocus = !view.hasFocus() && !isTooltipChildren\n\n const isReadonly = !view.editable\n\n if (\n notHasFocus ||\n isNotTextBlock ||\n empty ||\n isEmptyTextBlock ||\n isReadonly\n )\n return false\n\n return true\n },\n })\n this.#tooltipProvider.onShow = () => {\n this.#content.show = true\n }\n this.#tooltipProvider.onHide = () => {\n this.#content.show = false\n }\n this.update(view)\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#tooltipProvider.update(view, prevState)\n this.#content.selection = view.state.selection\n }\n\n destroy = () => {\n this.#tooltipProvider.destroy()\n this.#content.remove()\n }\n\n hide = () => {\n this.#tooltipProvider.hide()\n }\n}\n\ndefIfNotExists('milkdown-toolbar', ToolbarElement)\nexport const defineFeature: DefineFeature<ToolbarFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n ctx.set(toolbar.key, {\n view: (view) => new ToolbarView(ctx, view, config),\n })\n })\n .use(toolbar)\n}\n"],"names":["html","useUpdate","useEffect","editorViewCtx","NodeSelection","FeaturesCtx","CrepeFeature","ctx","mathInlineSchema","selection","_tr","TextSelection","strongSchema","commandsCtx","toggleStrongCommand","boldIcon","emphasisSchema","toggleEmphasisCommand","italicIcon","strikethroughSchema","toggleStrikethroughCommand","strikethroughIcon","inlineCodeSchema","toggleInlineCodeCommand","codeIcon","linkSchema","linkTooltipAPI","linkIcon","c","tooltipFactory","TooltipProvider","view","defIfNotExists"],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var imageBlock = require('@milkdown/kit/component/image-block');
|
|
4
|
+
var imageInline = require('@milkdown/kit/component/image-inline');
|
|
5
|
+
var todoList = require('./todo-list-V4JWO5-M.js');
|
|
6
|
+
require('atomico');
|
|
7
|
+
|
|
8
|
+
const defineFeature = (editor, config) => {
|
|
9
|
+
editor.config((ctx) => {
|
|
10
|
+
ctx.update(imageInline.inlineImageConfig.key, (value) => {
|
|
11
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12
|
+
return {
|
|
13
|
+
uploadButton: (_a = config == null ? undefined : config.inlineUploadButton) != null ? _a : () => "Upload",
|
|
14
|
+
imageIcon: (_b = config == null ? undefined : config.inlineImageIcon) != null ? _b : () => todoList.imageIcon,
|
|
15
|
+
confirmButton: (_c = config == null ? undefined : config.inlineConfirmButton) != null ? _c : () => todoList.confirmIcon,
|
|
16
|
+
uploadPlaceholderText: (_d = config == null ? undefined : config.inlineUploadPlaceholderText) != null ? _d : "or paste link",
|
|
17
|
+
onUpload: (_f = (_e = config == null ? undefined : config.inlineOnUpload) != null ? _e : config == null ? undefined : config.onUpload) != null ? _f : value.onUpload,
|
|
18
|
+
proxyDomURL: config == null ? undefined : config.proxyDomURL
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
ctx.update(imageBlock.imageBlockConfig.key, (value) => {
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
23
|
+
return {
|
|
24
|
+
uploadButton: (_a = config == null ? undefined : config.blockUploadButton) != null ? _a : () => "Upload file",
|
|
25
|
+
imageIcon: (_b = config == null ? undefined : config.blockImageIcon) != null ? _b : () => todoList.imageIcon,
|
|
26
|
+
captionIcon: (_c = config == null ? undefined : config.blockCaptionIcon) != null ? _c : () => todoList.captionIcon,
|
|
27
|
+
confirmButton: (_d = config == null ? undefined : config.blockConfirmButton) != null ? _d : () => "Confirm",
|
|
28
|
+
captionPlaceholderText: (_e = config == null ? undefined : config.blockCaptionPlaceholderText) != null ? _e : "Write Image Caption",
|
|
29
|
+
uploadPlaceholderText: (_f = config == null ? undefined : config.blockUploadPlaceholderText) != null ? _f : "or paste link",
|
|
30
|
+
onUpload: (_h = (_g = config == null ? undefined : config.blockOnUpload) != null ? _g : config == null ? undefined : config.onUpload) != null ? _h : value.onUpload,
|
|
31
|
+
proxyDomURL: config == null ? undefined : config.proxyDomURL
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}).use(imageBlock.imageBlockComponent).use(imageInline.imageInlineComponent);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.defineFeature = defineFeature;
|
|
38
|
+
//# sourceMappingURL=index-nDWnWxJ8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-nDWnWxJ8.js","sources":["../../src/feature/image-block/index.ts"],"sourcesContent":["import {\n imageBlockComponent,\n imageBlockConfig,\n} from '@milkdown/kit/component/image-block'\nimport {\n imageInlineComponent,\n inlineImageConfig,\n} from '@milkdown/kit/component/image-inline'\nimport type { DefineFeature, Icon } from '../shared'\nimport { captionIcon, confirmIcon, imageIcon } from '../../icons'\n\ninterface ImageBlockConfig {\n onUpload: (file: File) => Promise<string>\n proxyDomURL: (url: string) => Promise<string> | string\n\n inlineImageIcon: Icon\n inlineConfirmButton: Icon\n inlineUploadButton: Icon\n inlineUploadPlaceholderText: string\n inlineOnUpload: (file: File) => Promise<string>\n\n blockImageIcon: Icon\n blockConfirmButton: Icon\n blockCaptionIcon: Icon\n blockUploadButton: Icon\n blockCaptionPlaceholderText: string\n blockUploadPlaceholderText: string\n blockOnUpload: (file: File) => Promise<string>\n}\n\nexport type ImageBlockFeatureConfig = Partial<ImageBlockConfig>\n\nexport const defineFeature: DefineFeature<ImageBlockFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n ctx.update(inlineImageConfig.key, (value) => ({\n uploadButton: config?.inlineUploadButton ?? (() => 'Upload'),\n imageIcon: config?.inlineImageIcon ?? (() => imageIcon),\n confirmButton: config?.inlineConfirmButton ?? (() => confirmIcon),\n uploadPlaceholderText:\n config?.inlineUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.inlineOnUpload ?? config?.onUpload ?? value.onUpload,\n proxyDomURL: config?.proxyDomURL,\n }))\n ctx.update(imageBlockConfig.key, (value) => ({\n uploadButton: config?.blockUploadButton ?? (() => 'Upload file'),\n imageIcon: config?.blockImageIcon ?? (() => imageIcon),\n captionIcon: config?.blockCaptionIcon ?? (() => captionIcon),\n confirmButton: config?.blockConfirmButton ?? (() => 'Confirm'),\n captionPlaceholderText:\n config?.blockCaptionPlaceholderText ?? 'Write Image Caption',\n uploadPlaceholderText:\n config?.blockUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.blockOnUpload ?? config?.onUpload ?? value.onUpload,\n proxyDomURL: config?.proxyDomURL,\n }))\n })\n .use(imageBlockComponent)\n .use(imageInlineComponent)\n}\n"],"names":["inlineImageConfig","imageIcon","confirmIcon","imageBlockConfig","captionIcon","imageBlockComponent","imageInlineComponent"],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,154 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
var index = require('./index-DkHBuNoK.js');
|
|
4
|
+
require('@milkdown/kit/core');
|
|
5
|
+
require('@milkdown/kit/preset/commonmark');
|
|
6
|
+
require('@milkdown/kit/preset/gfm');
|
|
7
|
+
require('@milkdown/kit/plugin/history');
|
|
8
|
+
require('@milkdown/kit/plugin/indent');
|
|
9
|
+
require('@milkdown/kit/utils');
|
|
10
|
+
require('@milkdown/kit/plugin/clipboard');
|
|
11
|
+
require('@milkdown/kit/plugin/trailing');
|
|
12
|
+
require('@milkdown/kit/ctx');
|
|
13
|
+
require('@milkdown/kit/plugin/listener');
|
|
12
14
|
|
|
13
|
-
var CrepeFeature = /* @__PURE__ */ ((CrepeFeature2) => {
|
|
14
|
-
CrepeFeature2["CodeMirror"] = "code-mirror";
|
|
15
|
-
CrepeFeature2["ListItem"] = "list-item";
|
|
16
|
-
CrepeFeature2["LinkTooltip"] = "link-tooltip";
|
|
17
|
-
CrepeFeature2["Cursor"] = "cursor";
|
|
18
|
-
CrepeFeature2["ImageBlock"] = "image-block";
|
|
19
|
-
CrepeFeature2["BlockEdit"] = "block-edit";
|
|
20
|
-
CrepeFeature2["Toolbar"] = "toolbar";
|
|
21
|
-
CrepeFeature2["Placeholder"] = "placeholder";
|
|
22
|
-
CrepeFeature2["Table"] = "table";
|
|
23
|
-
return CrepeFeature2;
|
|
24
|
-
})(CrepeFeature || {});
|
|
25
|
-
const defaultFeatures = {
|
|
26
|
-
["cursor" /* Cursor */]: true,
|
|
27
|
-
["list-item" /* ListItem */]: true,
|
|
28
|
-
["link-tooltip" /* LinkTooltip */]: true,
|
|
29
|
-
["image-block" /* ImageBlock */]: true,
|
|
30
|
-
["block-edit" /* BlockEdit */]: true,
|
|
31
|
-
["placeholder" /* Placeholder */]: true,
|
|
32
|
-
["toolbar" /* Toolbar */]: true,
|
|
33
|
-
["code-mirror" /* CodeMirror */]: true,
|
|
34
|
-
["table" /* Table */]: true
|
|
35
|
-
};
|
|
36
|
-
async function loadFeature(feature, editor, config) {
|
|
37
|
-
switch (feature) {
|
|
38
|
-
case "code-mirror" /* CodeMirror */: {
|
|
39
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-3mj4YaCA.js'); });
|
|
40
|
-
return defineFeature(editor, config);
|
|
41
|
-
}
|
|
42
|
-
case "list-item" /* ListItem */: {
|
|
43
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-Dt55rF23.js'); });
|
|
44
|
-
return defineFeature(editor, config);
|
|
45
|
-
}
|
|
46
|
-
case "link-tooltip" /* LinkTooltip */: {
|
|
47
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BIXWL4Or.js'); });
|
|
48
|
-
return defineFeature(editor, config);
|
|
49
|
-
}
|
|
50
|
-
case "image-block" /* ImageBlock */: {
|
|
51
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BrCpWPcp.js'); });
|
|
52
|
-
return defineFeature(editor, config);
|
|
53
|
-
}
|
|
54
|
-
case "cursor" /* Cursor */: {
|
|
55
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BuSAwj4j.js'); });
|
|
56
|
-
return defineFeature(editor, config);
|
|
57
|
-
}
|
|
58
|
-
case "block-edit" /* BlockEdit */: {
|
|
59
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-By3ewOiO.js'); });
|
|
60
|
-
return defineFeature(editor, config);
|
|
61
|
-
}
|
|
62
|
-
case "placeholder" /* Placeholder */: {
|
|
63
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-Dub20F3z.js'); });
|
|
64
|
-
return defineFeature(editor, config);
|
|
65
|
-
}
|
|
66
|
-
case "toolbar" /* Toolbar */: {
|
|
67
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-A8IrOmzS.js'); });
|
|
68
|
-
return defineFeature(editor, config);
|
|
69
|
-
}
|
|
70
|
-
case "table" /* Table */: {
|
|
71
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-DmOOfQPi.js'); });
|
|
72
|
-
return defineFeature(editor, config);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
15
|
|
|
77
|
-
const FeaturesCtx = ctx.createSlice([], "FeaturesCtx");
|
|
78
|
-
function configureFeatures(features) {
|
|
79
|
-
return (ctx) => {
|
|
80
|
-
ctx.inject(FeaturesCtx, features);
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
16
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
};
|
|
87
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
88
|
-
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
89
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
90
|
-
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
91
|
-
var _editor, _initPromise, _rootElement, _editable;
|
|
92
|
-
class Crepe {
|
|
93
|
-
constructor({
|
|
94
|
-
root,
|
|
95
|
-
features = {},
|
|
96
|
-
featureConfigs = {},
|
|
97
|
-
defaultValue = ""
|
|
98
|
-
}) {
|
|
99
|
-
__privateAdd(this, _editor);
|
|
100
|
-
__privateAdd(this, _initPromise);
|
|
101
|
-
__privateAdd(this, _rootElement);
|
|
102
|
-
__privateAdd(this, _editable, true);
|
|
103
|
-
var _a;
|
|
104
|
-
const enabledFeatures = Object.entries({
|
|
105
|
-
...defaultFeatures,
|
|
106
|
-
...features
|
|
107
|
-
}).filter(([, enabled]) => enabled).map(([feature]) => feature);
|
|
108
|
-
__privateSet(this, _rootElement, (_a = typeof root === "string" ? document.querySelector(root) : root) != null ? _a : document.body);
|
|
109
|
-
__privateSet(this, _editor, core.Editor.make().config(configureFeatures(enabledFeatures)).config((ctx) => {
|
|
110
|
-
ctx.set(core.rootCtx, __privateGet(this, _rootElement));
|
|
111
|
-
ctx.set(core.defaultValueCtx, defaultValue);
|
|
112
|
-
ctx.set(core.editorViewOptionsCtx, {
|
|
113
|
-
editable: () => __privateGet(this, _editable)
|
|
114
|
-
});
|
|
115
|
-
ctx.update(indent.indentConfig.key, (value) => ({
|
|
116
|
-
...value,
|
|
117
|
-
size: 4
|
|
118
|
-
}));
|
|
119
|
-
}).use(commonmark.commonmark).use(history.history).use(indent.indent).use(trailing.trailing).use(clipboard.clipboard).use(gfm.gfm));
|
|
120
|
-
const promiseList = [];
|
|
121
|
-
enabledFeatures.forEach((feature) => {
|
|
122
|
-
const config = featureConfigs[feature];
|
|
123
|
-
promiseList.push(loadFeature(feature, __privateGet(this, _editor), config));
|
|
124
|
-
});
|
|
125
|
-
__privateSet(this, _initPromise, Promise.all(promiseList));
|
|
126
|
-
}
|
|
127
|
-
async create() {
|
|
128
|
-
await __privateGet(this, _initPromise);
|
|
129
|
-
return __privateGet(this, _editor).create();
|
|
130
|
-
}
|
|
131
|
-
async destroy() {
|
|
132
|
-
await __privateGet(this, _initPromise);
|
|
133
|
-
return __privateGet(this, _editor).destroy();
|
|
134
|
-
}
|
|
135
|
-
get editor() {
|
|
136
|
-
return __privateGet(this, _editor);
|
|
137
|
-
}
|
|
138
|
-
setReadonly(value) {
|
|
139
|
-
__privateSet(this, _editable, !value);
|
|
140
|
-
return this;
|
|
141
|
-
}
|
|
142
|
-
getMarkdown() {
|
|
143
|
-
return __privateGet(this, _editor).action(utils.getMarkdown());
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
_editor = new WeakMap();
|
|
147
|
-
_initPromise = new WeakMap();
|
|
148
|
-
_rootElement = new WeakMap();
|
|
149
|
-
_editable = new WeakMap();
|
|
150
|
-
Crepe.Feature = CrepeFeature;
|
|
151
|
-
|
|
152
|
-
exports.Crepe = Crepe;
|
|
153
|
-
exports.CrepeFeature = CrepeFeature;
|
|
17
|
+
exports.Crepe = index.Crepe;
|
|
18
|
+
exports.CrepeFeature = index.CrepeFeature;
|
|
154
19
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/feature/index.ts","../../src/core/slice.ts","../../src/core/crepe.ts"],"sourcesContent":["import type { Editor } from '@milkdown/kit/core'\nimport type { PlaceHolderFeatureConfig } from './placeholder'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { ToolbarFeatureConfig } from './toolbar'\nimport type { TableFeatureConfig } from './table'\n\nexport enum CrepeFeature {\n CodeMirror = 'code-mirror',\n ListItem = 'list-item',\n LinkTooltip = 'link-tooltip',\n Cursor = 'cursor',\n ImageBlock = 'image-block',\n BlockEdit = 'block-edit',\n Toolbar = 'toolbar',\n Placeholder = 'placeholder',\n Table = 'table',\n}\n\nexport interface CrepeFeatureConfig {\n [CrepeFeature.Cursor]?: CursorFeatureConfig\n [CrepeFeature.ListItem]?: ListItemFeatureConfig\n [CrepeFeature.LinkTooltip]?: LinkTooltipFeatureConfig\n [CrepeFeature.ImageBlock]?: ImageBlockFeatureConfig\n [CrepeFeature.BlockEdit]?: BlockEditFeatureConfig\n [CrepeFeature.Placeholder]?: PlaceHolderFeatureConfig\n [CrepeFeature.Toolbar]?: ToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n}\n\nexport const defaultFeatures: Record<CrepeFeature, boolean> = {\n [CrepeFeature.Cursor]: true,\n [CrepeFeature.ListItem]: true,\n [CrepeFeature.LinkTooltip]: true,\n [CrepeFeature.ImageBlock]: true,\n [CrepeFeature.BlockEdit]: true,\n [CrepeFeature.Placeholder]: true,\n [CrepeFeature.Toolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n}\n\nexport async function loadFeature(\n feature: CrepeFeature,\n editor: Editor,\n config?: never\n) {\n switch (feature) {\n case CrepeFeature.CodeMirror: {\n const { defineFeature } = await import('./code-mirror')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ListItem: {\n const { defineFeature } = await import('./list-item')\n return defineFeature(editor, config)\n }\n case CrepeFeature.LinkTooltip: {\n const { defineFeature } = await import('./link-tooltip')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ImageBlock: {\n const { defineFeature } = await import('./image-block')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Cursor: {\n const { defineFeature } = await import('./cursor')\n return defineFeature(editor, config)\n }\n case CrepeFeature.BlockEdit: {\n const { defineFeature } = await import('./block-edit')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Placeholder: {\n const { defineFeature } = await import('./placeholder')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Toolbar: {\n const { defineFeature } = await import('./toolbar')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Table: {\n const { defineFeature } = await import('./table')\n return defineFeature(editor, config)\n }\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\nexport function configureFeatures(features: CrepeFeature[]) {\n return (ctx: Ctx) => {\n ctx.inject(FeaturesCtx, features)\n }\n}\n","import type { DefaultValue } from '@milkdown/kit/core'\nimport {\n Editor,\n defaultValueCtx,\n editorViewOptionsCtx,\n rootCtx,\n} from '@milkdown/kit/core'\n\nimport { commonmark } from '@milkdown/kit/preset/commonmark'\nimport { gfm } from '@milkdown/kit/preset/gfm'\nimport { history } from '@milkdown/kit/plugin/history'\nimport { indent, indentConfig } from '@milkdown/kit/plugin/indent'\nimport { getMarkdown } from '@milkdown/kit/utils'\nimport { clipboard } from '@milkdown/kit/plugin/clipboard'\nimport { trailing } from '@milkdown/kit/plugin/trailing'\n\nimport type { CrepeFeatureConfig } from '../feature'\nimport { CrepeFeature, defaultFeatures, loadFeature } from '../feature'\nimport { configureFeatures } from './slice'\n\nexport interface CrepeConfig {\n features?: Partial<Record<CrepeFeature, boolean>>\n featureConfigs?: CrepeFeatureConfig\n root?: Node | string | null\n defaultValue?: DefaultValue\n}\n\nexport class Crepe {\n static Feature = CrepeFeature\n readonly #editor: Editor\n readonly #initPromise: Promise<unknown>\n readonly #rootElement: Node\n #editable = true\n\n constructor({\n root,\n features = {},\n featureConfigs = {},\n defaultValue = '',\n }: CrepeConfig) {\n const enabledFeatures = Object.entries({\n ...defaultFeatures,\n ...features,\n })\n .filter(([, enabled]) => enabled)\n .map(([feature]) => feature as CrepeFeature)\n\n this.#rootElement =\n (typeof root === 'string' ? document.querySelector(root) : root) ??\n document.body\n this.#editor = Editor.make()\n .config(configureFeatures(enabledFeatures))\n .config((ctx) => {\n ctx.set(rootCtx, this.#rootElement)\n ctx.set(defaultValueCtx, defaultValue)\n ctx.set(editorViewOptionsCtx, {\n editable: () => this.#editable,\n })\n ctx.update(indentConfig.key, (value) => ({\n ...value,\n size: 4,\n }))\n })\n .use(commonmark)\n .use(history)\n .use(indent)\n .use(trailing)\n .use(clipboard)\n .use(gfm)\n\n const promiseList: Promise<unknown>[] = []\n\n enabledFeatures.forEach((feature) => {\n const config = (featureConfigs as Partial<Record<CrepeFeature, never>>)[\n feature\n ]\n promiseList.push(loadFeature(feature, this.#editor, config))\n })\n\n this.#initPromise = Promise.all(promiseList)\n }\n\n async create() {\n await this.#initPromise\n return this.#editor.create()\n }\n\n async destroy() {\n await this.#initPromise\n return this.#editor.destroy()\n }\n\n get editor(): Editor {\n return this.#editor\n }\n\n setReadonly(value: boolean) {\n this.#editable = !value\n return this\n }\n\n getMarkdown() {\n return this.#editor.action(getMarkdown())\n }\n}\n"],"names":["CrepeFeature","createSlice","Editor","rootCtx","defaultValueCtx","editorViewOptionsCtx","indentConfig","commonmark","history","indent","trailing","clipboard","gfm","getMarkdown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|