@omegagrid/markdown 0.9.49 → 0.9.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/features/index.d.ts +2 -1
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +1 -1
- package/dist/components/features/index.js.map +1 -1
- package/dist/components/markdownEditor.d.ts +2 -0
- package/dist/components/markdownEditor.d.ts.map +1 -1
- package/dist/components/markdownEditor.js +3 -3
- package/dist/components/markdownEditor.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAOzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,OAAO,IAAI,CAC9C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,MAAM,CAAC,EAAE,OAAO,KACZ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,OAAO,QAAQ,IACvE,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,UAG7B;AAKD,oBAAY,aAAa;IACxB,SAAS,eAAe;IACxB,MAAM,WAAW;IACjB,UAAU,gBAAgB;IAE1B,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAA;CAChB,CAAC;AAUF,wBAAgB,WAAW,CAC1B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,EAAE,EAAE,OAAO,QAAQ,EACnB,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAC,MAAM,CAAC;CAC1D,yCAiJD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BlockHandleView}from"./blockEdit";import{ToolbarView}from"./toolbar";import{createPlaceHolder}from"./placeholder";import{createCodeBlockConfig,createCodeBlockView}from"./codeBlock";import{createHtmlBlockConfig,createHtmlBlockView}from"./htmlBlock";import linkEdit from"./linkEdit";export*from"./blockEditMenu";export*from"./htmlBlock";export*from"./linkEdit";export function configureFeatures(e,o){return t=>{t.inject(o.ctx.createSlice([],"FeaturesCtx"),e)}}const createIcon=(e,o)=>e.atomico.html`<og-icon icon=${o}></og-icon>`;export var EditorFeature;!function(e){e.BlockEdit="block-edit",e.Cursor="cursor",e.CodeEditor="code-editor",e.LinkTooltip="link-tooltip",e.ImageBlock="image-block",e.Toolbar="toolbar",e.Placeholder="placeholder",e.Table="table",e.Html="html"}(EditorFeature||(EditorFeature={}));const createModifyImageUrl=e=>async o=>{if(!o)return null;const t=e(o);return"string"==typeof o?t:await t};export function getFeatures(e,o,t){const
|
|
1
|
+
import{BlockHandleView}from"./blockEdit";import{ToolbarView}from"./toolbar";import{createPlaceHolder}from"./placeholder";import{createCodeBlockConfig,createCodeBlockView}from"./codeBlock";import{createHtmlBlockConfig,createHtmlBlockView}from"./htmlBlock";import linkEdit from"./linkEdit";export*from"./blockEditMenu";export*from"./htmlBlock";export*from"./linkEdit";export function configureFeatures(e,o){return t=>{t.inject(o.ctx.createSlice([],"FeaturesCtx"),e)}}const createIcon=(e,o)=>e.atomico.html`<og-icon icon=${o}></og-icon>`;export var EditorFeature;!function(e){e.BlockEdit="block-edit",e.Cursor="cursor",e.CodeEditor="code-editor",e.LinkTooltip="link-tooltip",e.ImageBlock="image-block",e.Toolbar="toolbar",e.Placeholder="placeholder",e.Table="table",e.Html="html",e.Emoji="emoji"}(EditorFeature||(EditorFeature={}));const createModifyImageUrl=e=>async o=>{if(!o)return null;const t=e(o);return"string"==typeof o?t:await t};export function getFeatures(e,o,t){const i=t.modifyImageUrl?createModifyImageUrl(t.modifyImageUrl):null;return new Map([[EditorFeature.BlockEdit,{default:!0,init:()=>{e.config((e=>{e.set(o.plugins.block.blockConfig.key,{filterNodes:e=>!o.prose.findParent((e=>["table","blockquote"].includes(e.type.name)))(e)}),e.set(o.plugins.block.block.key,{view:()=>new BlockHandleView(e,o)})})).use(o.plugins.block.block)}}],[EditorFeature.Cursor,{default:!0,init:()=>{e.config((e=>{e.update(o.plugins.cursor.dropCursorConfig.key,(()=>({class:"md-editor-drop-cursor",width:4})))})).use(o.plugins.cursor.cursor)}}],[EditorFeature.ImageBlock,{default:!0,init:()=>{e.config((e=>{e.update(o.components.imageInline.inlineImageConfig.key,(e=>({uploadButton:()=>createIcon(o,"upload"),imageIcon:()=>createIcon(o,"image"),confirmButton:()=>createIcon(o,"check"),uploadPlaceholderText:"or paste link",onUpload:t.onUpload,proxyDomURL:i}))),e.update(o.components.imageBlock.imageBlockConfig.key,(e=>({uploadButton:()=>"Upload file",imageIcon:()=>createIcon(o,"image"),captionIcon:()=>createIcon(o,"comment"),confirmButton:()=>"Confirm",captionPlaceholderText:"Write Image Caption",uploadPlaceholderText:"or paste link",onUpload:t.onUpload,proxyDomURL:i})))})).use(o.components.imageBlock.imageBlockComponent).use(o.components.imageInline.imageInlineComponent)}}],[EditorFeature.LinkTooltip,{default:!0,init:()=>{const o=linkEdit.getPlugin();e.config(linkEdit.configure).use(o)}}],[EditorFeature.Toolbar,{default:!0,init:()=>{const t=o.plugins.tooltip.tooltipFactory("MARKDOWN_TOOLBAR");e.config((e=>{e.set(t.key,{view:t=>new ToolbarView(e,t,o)})})).use(t)}}],[EditorFeature.Placeholder,{default:!0,init:()=>{const{config:t,plugin:i}=createPlaceHolder(o);e.config((e=>{e.update(t.key,(e=>({...e})))})).use(i).use(t)}}],[EditorFeature.Table,{default:!0,init:()=>{e.config((e=>{e.update(o.components.tableBlock.tableBlockConfig.key,(e=>({renderButton:e=>{switch(e){case"add_row":case"add_col":return createIcon(o,"plus");case"delete_row":case"delete_col":return createIcon(o,"trash");case"align_col_left":return createIcon(o,"align-left");case"align_col_center":return createIcon(o,"align-center");case"align_col_right":return createIcon(o,"align-right");case"col_drag_handle":return createIcon(o,"grip-lines-vertical");case"row_drag_handle":return createIcon(o,"grip-lines")}}})))})).use(o.components.tableBlock.tableBlock)}}],[EditorFeature.CodeEditor,{default:!0,init:()=>{const t=createCodeBlockConfig(o),i=createCodeBlockView(o);e.config((e=>{e.update(t.key,(e=>({})))})).use([i,t])}}],[EditorFeature.Html,{default:!0,init:()=>{const t=createHtmlBlockConfig(o),i=createHtmlBlockView(o);e.config((e=>{e.update(t.key,(e=>({})))})).use([i,t])}}],[EditorFeature.Emoji,{default:!0,init:()=>{o.plugins.emoji&&e.use(o.plugins.emoji.emoji)}}]])}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"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","sourcesContent":["// import { Editor } from '@milkdown/kit/core';\n// import { createSlice } from '@milkdown/kit/ctx';\n// import { BlockProvider, block, blockConfig } from '@milkdown/kit/plugin/block'\nimport { BlockHandleView } from './blockEdit';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { ToolbarView } from './toolbar';\nimport { createPlaceHolder } from './placeholder';\nimport { createCodeBlockConfig, createCodeBlockView } from './codeBlock';\nimport { createHtmlBlockConfig, createHtmlBlockView } from './htmlBlock';\nimport linkEdit from './linkEdit';\n\nexport * from './blockEditMenu';\nexport * from './htmlBlock';\nexport * from './linkEdit';\n\nexport type DefineFeature<TConfig = unknown> = (\n\teditor: milkdown.core.Editor,\n\tconfig?: TConfig\n) => void | Promise<void>\n\nexport function configureFeatures(features: EditorFeature[], md: typeof milkdown) {\n\treturn (ctx: milkdown.ctx.Ctx) => {\n\t\tctx.inject(md.ctx.createSlice([] as EditorFeature[], 'FeaturesCtx'), features)\n\t}\n}\n\nconst createIcon = (md: typeof milkdown, icon: string) => \n\tmd.atomico.html`<og-icon icon=${icon}></og-icon>`;\n\nexport enum EditorFeature {\n\tBlockEdit = 'block-edit',\n\tCursor = 'cursor',\n\tCodeEditor = 'code-editor',\n\t// ListItem = 'list-item',\n\tLinkTooltip = 'link-tooltip',\n\tImageBlock = 'image-block',\n\tToolbar = 'toolbar',\n\tPlaceholder = 'placeholder',\n\tTable = 'table',\n\tHtml = 'html',\n}\n\nexport type FeatureDefinition = {\n\tdefault: boolean,\n\tinit: () => void\n};\n\nconst createModifyImageUrl = (fn: (url: string) => Promise<string>|string) => {\n\treturn async (url: string) => {\n\t\tif (!url) return null;\n\t\tconst modUrl = fn(url);\n\t\treturn typeof url === 'string' ? modUrl : await modUrl;\n\t}\n};\n\nexport function getFeatures(\n\teditor: milkdown.core.Editor,\n\tmd: typeof milkdown,\n\toptions: {\n\t\tonUpload?: (file: File) => Promise<string>,\n\t\tmodifyImageUrl?: (file: string) => Promise<string>|string,\n\t}\n) {\n\tconst modifyImageUrl = options.modifyImageUrl ? createModifyImageUrl(options.modifyImageUrl) : null;\n\treturn new Map<EditorFeature, FeatureDefinition>([\n\t\t[EditorFeature.BlockEdit, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(md.plugins.block.blockConfig.key, {\n\t\t\t\t\t\tfilterNodes: (pos) => {\n\t\t\t\t\t\tconst filter = md.prose.findParent((node) =>\n\t\t\t\t\t\t\t['table', 'blockquote'].includes(node.type.name)\n\t\t\t\t\t\t)(pos)\n\t\t\t\t\t\tif (filter) return false\n\t\t\t\t\t\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tctx.set(md.plugins.block.block.key, {\n\t\t\t\t\t\tview: () => new BlockHandleView(ctx, md),\n\t\t\t\t\t})\n\t\t\t\t}).use(md.plugins.block.block);\n\t\t\t\t// .config((ctx) => configureMenu(ctx, config))\n\t\t\t\t// .use(menuAPI)\n\t\t\t\t// .use(menu)\n\t\t\t}\n\t\t}], [EditorFeature.Cursor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.plugins.cursor.dropCursorConfig.key, () => ({\n\t\t\t\t\t\tclass: 'md-editor-drop-cursor',\n\t\t\t\t\t\twidth: 4,\n\t\t\t\t\t\t// color: '#ff0000',\n\t\t\t\t\t}))\n\t\t\t\t}).use(md.plugins.cursor.cursor)\n\t\t\t}\n\t\t}], [EditorFeature.ImageBlock, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.imageInline.inlineImageConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: () => createIcon(md, 'upload'),\n\t\t\t\t\t\timageIcon: () => createIcon(md, 'image'),\n\t\t\t\t\t\tconfirmButton: () => createIcon(md, 'check'),\n\t\t\t\t\t\tuploadPlaceholderText: 'or paste link',\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t}))\n\t\t\t\t\tctx.update(md.components.imageBlock.imageBlockConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: () => 'Upload file',\n\t\t\t\t\t\timageIcon: () => createIcon(md, 'image'),\n\t\t\t\t\t\tcaptionIcon: () => createIcon(md, 'comment'),\n\t\t\t\t\t\tconfirmButton: () => 'Confirm',\n\t\t\t\t\t\tcaptionPlaceholderText: 'Write Image Caption',\n\t\t\t\t\t\tuploadPlaceholderText: 'or paste link',\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t\t.use(md.components.imageBlock.imageBlockComponent)\n\t\t\t\t.use(md.components.imageInline.imageInlineComponent)\n\t\t\t}\n\t\t}], [EditorFeature.LinkTooltip, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\t// const toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_LINK_EDIT_TOOLBAR');\n\t\t\t\tconst plugin = linkEdit.getPlugin();\n\t\t\t\teditor.config(linkEdit.configure)\n\t\t\t\t/*.config((ctx) => {\n\t\t\t\t\tctx.update(linkEdit.getState().key, (prev) => ({...prev}));\n\t\t\t\t})*/\n\t\t\t\t.use(plugin);\n\t\t\t}\n\t\t}], [EditorFeature.Toolbar, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_TOOLBAR');\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(toolbar.key, {\n\t\t\t\t\t\tview: (view) => new ToolbarView(ctx, view, md),\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.use(toolbar)\n\t\t\t}\n\t\t}], [EditorFeature.Placeholder, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst { config, plugin } = createPlaceHolder(md);\n\t\t\t\t\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(config.key, (prev) => {\n\t\t\t\t\t\treturn {...prev};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.use(plugin)\n\t\t\t\t.use(config)\n\t\t\t}\n\t\t}], [EditorFeature.Table, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.tableBlock.tableBlockConfig.key, (_prev) => ({\n\t\t\t\t\t\trenderButton: (renderType) => {\n\t\t\t\t\t\t\tswitch (renderType) {\n\t\t\t\t\t\t\t\tcase 'add_row': return createIcon(md, 'plus');\n\t\t\t\t\t\t\t\tcase 'add_col': return createIcon(md, 'plus');\n\t\t\t\t\t\t\t\tcase 'delete_row': return createIcon(md, 'trash');\n\t\t\t\t\t\t\t\tcase 'delete_col': return createIcon(md, 'trash');\n\t\t\t\t\t\t\t\tcase 'align_col_left': return createIcon(md, 'align-left');\n\t\t\t\t\t\t\t\tcase 'align_col_center': return createIcon(md, 'align-center');\n\t\t\t\t\t\t\t\tcase 'align_col_right': return createIcon(md, 'align-right');\n\t\t\t\t\t\t\t\tcase 'col_drag_handle': return createIcon(md, 'grip-lines-vertical');\n\t\t\t\t\t\t\t\tcase 'row_drag_handle': return createIcon(md, 'grip-lines');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t})\n\t\t\t\t.use(md.components.tableBlock.tableBlock)\n\t\t\t}\n\t\t}], [EditorFeature.CodeEditor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst codeBlockConfig = createCodeBlockConfig(md);\n\t\t\t\tconst codeBlockView = createCodeBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(codeBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([codeBlockView, codeBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Html, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst htmlBlockConfig = createHtmlBlockConfig(md);\n\t\t\t\tconst htmlBlockView = createHtmlBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(htmlBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([htmlBlockView, htmlBlockConfig]);\n\t\t\t}\n\t\t}]\n\t]);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n// import { Editor } from '@milkdown/kit/core';\n// import { createSlice } from '@milkdown/kit/ctx';\n// import { BlockProvider, block, blockConfig } from '@milkdown/kit/plugin/block'\nimport { BlockHandleView } from './blockEdit';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { ToolbarView } from './toolbar';\nimport { createPlaceHolder } from './placeholder';\nimport { createCodeBlockConfig, createCodeBlockView } from './codeBlock';\nimport { createHtmlBlockConfig, createHtmlBlockView } from './htmlBlock';\nimport linkEdit from './linkEdit';\n\nexport * from './blockEditMenu';\nexport * from './htmlBlock';\nexport * from './linkEdit';\n\nexport type DefineFeature<TConfig = unknown> = (\n\teditor: milkdown.core.Editor,\n\tconfig?: TConfig\n) => void | Promise<void>\n\nexport function configureFeatures(features: EditorFeature[], md: typeof milkdown) {\n\treturn (ctx: milkdown.ctx.Ctx) => {\n\t\tctx.inject(md.ctx.createSlice([] as EditorFeature[], 'FeaturesCtx'), features)\n\t}\n}\n\nconst createIcon = (md: typeof milkdown, icon: string) => \n\tmd.atomico.html`<og-icon icon=${icon}></og-icon>`;\n\nexport enum EditorFeature {\n\tBlockEdit = 'block-edit',\n\tCursor = 'cursor',\n\tCodeEditor = 'code-editor',\n\t// ListItem = 'list-item',\n\tLinkTooltip = 'link-tooltip',\n\tImageBlock = 'image-block',\n\tToolbar = 'toolbar',\n\tPlaceholder = 'placeholder',\n\tTable = 'table',\n\tHtml = 'html',\n\tEmoji = 'emoji'\n}\n\nexport type FeatureDefinition = {\n\tdefault: boolean,\n\tinit: () => void\n};\n\nconst createModifyImageUrl = (fn: (url: string) => Promise<string>|string) => {\n\treturn async (url: string) => {\n\t\tif (!url) return null;\n\t\tconst modUrl = fn(url);\n\t\treturn typeof url === 'string' ? modUrl : await modUrl;\n\t}\n};\n\nexport function getFeatures(\n\teditor: milkdown.core.Editor,\n\tmd: typeof milkdown,\n\toptions: {\n\t\tonUpload?: (file: File) => Promise<string>,\n\t\tmodifyImageUrl?: (file: string) => Promise<string>|string,\n\t}\n) {\n\tconst modifyImageUrl = options.modifyImageUrl ? createModifyImageUrl(options.modifyImageUrl) : null;\n\treturn new Map<EditorFeature, FeatureDefinition>([\n\t\t[EditorFeature.BlockEdit, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(md.plugins.block.blockConfig.key, {\n\t\t\t\t\t\tfilterNodes: (pos) => {\n\t\t\t\t\t\tconst filter = md.prose.findParent((node) =>\n\t\t\t\t\t\t\t['table', 'blockquote'].includes(node.type.name)\n\t\t\t\t\t\t)(pos)\n\t\t\t\t\t\tif (filter) return false\n\t\t\t\t\t\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tctx.set(md.plugins.block.block.key, {\n\t\t\t\t\t\tview: () => new BlockHandleView(ctx, md),\n\t\t\t\t\t})\n\t\t\t\t}).use(md.plugins.block.block);\n\t\t\t\t// .config((ctx) => configureMenu(ctx, config))\n\t\t\t\t// .use(menuAPI)\n\t\t\t\t// .use(menu)\n\t\t\t}\n\t\t}], [EditorFeature.Cursor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.plugins.cursor.dropCursorConfig.key, () => ({\n\t\t\t\t\t\tclass: 'md-editor-drop-cursor',\n\t\t\t\t\t\twidth: 4,\n\t\t\t\t\t\t// color: '#ff0000',\n\t\t\t\t\t}))\n\t\t\t\t}).use(md.plugins.cursor.cursor)\n\t\t\t}\n\t\t}], [EditorFeature.ImageBlock, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.imageInline.inlineImageConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: () => createIcon(md, 'upload'),\n\t\t\t\t\t\timageIcon: () => createIcon(md, 'image'),\n\t\t\t\t\t\tconfirmButton: () => createIcon(md, 'check'),\n\t\t\t\t\t\tuploadPlaceholderText: 'or paste link',\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t\tctx.update(md.components.imageBlock.imageBlockConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: () => 'Upload file',\n\t\t\t\t\t\timageIcon: () => createIcon(md, 'image'),\n\t\t\t\t\t\tcaptionIcon: () => createIcon(md, 'comment'),\n\t\t\t\t\t\tconfirmButton: () => 'Confirm',\n\t\t\t\t\t\tcaptionPlaceholderText: 'Write Image Caption',\n\t\t\t\t\t\tuploadPlaceholderText: 'or paste link',\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t})\n\t\t\t\t.use(md.components.imageBlock.imageBlockComponent)\n\t\t\t\t.use(md.components.imageInline.imageInlineComponent)\n\t\t\t}\n\t\t}], [EditorFeature.LinkTooltip, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\t// const toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_LINK_EDIT_TOOLBAR');\n\t\t\t\tconst plugin = linkEdit.getPlugin();\n\t\t\t\teditor.config(linkEdit.configure)\n\t\t\t\t/*.config((ctx) => {\n\t\t\t\t\tctx.update(linkEdit.getState().key, (prev) => ({...prev}));\n\t\t\t\t})*/\n\t\t\t\t.use(plugin);\n\t\t\t}\n\t\t}], [EditorFeature.Toolbar, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_TOOLBAR');\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(toolbar.key, {\n\t\t\t\t\t\tview: (view) => new ToolbarView(ctx, view, md),\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.use(toolbar)\n\t\t\t}\n\t\t}], [EditorFeature.Placeholder, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst { config, plugin } = createPlaceHolder(md);\n\t\t\t\t\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(config.key, (prev) => {\n\t\t\t\t\t\treturn {...prev};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.use(plugin)\n\t\t\t\t.use(config)\n\t\t\t}\n\t\t}], [EditorFeature.Table, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.tableBlock.tableBlockConfig.key, (_prev) => ({\n\t\t\t\t\t\trenderButton: (renderType) => {\n\t\t\t\t\t\t\tswitch (renderType) {\n\t\t\t\t\t\t\t\tcase 'add_row': return createIcon(md, 'plus');\n\t\t\t\t\t\t\t\tcase 'add_col': return createIcon(md, 'plus');\n\t\t\t\t\t\t\t\tcase 'delete_row': return createIcon(md, 'trash');\n\t\t\t\t\t\t\t\tcase 'delete_col': return createIcon(md, 'trash');\n\t\t\t\t\t\t\t\tcase 'align_col_left': return createIcon(md, 'align-left');\n\t\t\t\t\t\t\t\tcase 'align_col_center': return createIcon(md, 'align-center');\n\t\t\t\t\t\t\t\tcase 'align_col_right': return createIcon(md, 'align-right');\n\t\t\t\t\t\t\t\tcase 'col_drag_handle': return createIcon(md, 'grip-lines-vertical');\n\t\t\t\t\t\t\t\tcase 'row_drag_handle': return createIcon(md, 'grip-lines');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t})\n\t\t\t\t.use(md.components.tableBlock.tableBlock)\n\t\t\t}\n\t\t}], [EditorFeature.CodeEditor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst codeBlockConfig = createCodeBlockConfig(md);\n\t\t\t\tconst codeBlockView = createCodeBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(codeBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([codeBlockView, codeBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Html, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst htmlBlockConfig = createHtmlBlockConfig(md);\n\t\t\t\tconst htmlBlockView = createHtmlBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(htmlBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([htmlBlockView, htmlBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Emoji, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tif (md.plugins.emoji) editor.use(md.plugins.emoji.emoji);\n\t\t\t}\n\t\t}]\n\t]);\n}\n"]}
|
|
@@ -26,7 +26,9 @@ export declare class MarkdownEditor extends LitElement implements Layout {
|
|
|
26
26
|
connectedCallback(): void;
|
|
27
27
|
updateWidth(): void;
|
|
28
28
|
_onChange: (markdown: string, prevMarkdown: string) => void;
|
|
29
|
+
firstUpdated(): void;
|
|
29
30
|
updated(): Promise<void>;
|
|
31
|
+
updateSlider(): void;
|
|
30
32
|
disconnectedCallback(): void;
|
|
31
33
|
render: () => import("lit").TemplateResult<1>;
|
|
32
34
|
layout(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownEditor.d.ts","sourceRoot":"","sources":["../../src/components/markdownEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAEzD,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;gBAErB,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;CAI5C;AAED,qBACa,cAAe,SAAQ,UAAW,YAAW,MAAM;;IAE/D,MAAM,CAAC,MAAM,4BAAsB;IAGnC,IACI,OAAO,IACM,MAAM,CADe;IACtC,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAKtB;IAGD,eAAe,SAAO;IAGtB,gBAAgB,EAAE,kBAAkB,CAAU;IAG9C,QAAQ,UAAS;IAGjB,SAAS,EAAE,cAAc,CAAC;IAG1B,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"markdownEditor.d.ts","sourceRoot":"","sources":["../../src/components/markdownEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAEzD,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;gBAErB,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;CAI5C;AAED,qBACa,cAAe,SAAQ,UAAW,YAAW,MAAM;;IAE/D,MAAM,CAAC,MAAM,4BAAsB;IAGnC,IACI,OAAO,IACM,MAAM,CADe;IACtC,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAKtB;IAGD,eAAe,SAAO;IAGtB,gBAAgB,EAAE,kBAAkB,CAAU;IAG9C,QAAQ,UAAS;IAGjB,SAAS,EAAE,cAAc,CAAC;IAG1B,MAAM,EAAE,MAAM,CAAC;IAKf,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAG1C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAC,MAAM,CAAC;IAIzD,IAAI,WAAW,IAAiD,WAAW,CAAE;IAC7E,IAAI,MAAM,yBAA0B;;IAwBpC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAOjC,iBAAiB;IAKjB,WAAW;IAKX,SAAS,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,UAGlD;IAED,YAAY;IAkBN,OAAO;IAab,YAAY;IAUZ,oBAAoB;IAOpB,MAAM,wCAMJ;IAEF,MAAM;CAEN"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var _MarkdownEditor_content,_MarkdownEditor_editor,__decorate=this&&this.__decorate||function(t,e,r,o){var i,
|
|
1
|
+
var _MarkdownEditor_content,_MarkdownEditor_mouseIn,_MarkdownEditor_editor,__decorate=this&&this.__decorate||function(t,e,r,o){var i,d=arguments.length,n=d<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,r,o);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(n=(d<3?i(n):d>3?i(e,r,n):i(e,r))||n);return d>3&&n&&Object.defineProperty(e,r,n),n},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(t,e,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(t):o?o.value:e.get(t)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(t,e,r,o,i){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?i.call(t,r):i?i.value=r:e.set(t,r),r};import{dom,events}from"@omegagrid/core";import{LitElement,html}from"lit";import{customElement,query,property}from"lit/decorators.js";import{style}from"./markdownEditor.style";import styles from"./styles";import{createEditor}from"../utils";export class MarkdownLinkEvent extends Event{constructor(t){super("markdown.link",{bubbles:!0,composed:!0,cancelable:!0}),Object.assign(this,t)}}let MarkdownEditor=class extends LitElement{get content(){return __classPrivateFieldGet(this,_MarkdownEditor_content,"f")}set content(t){__classPrivateFieldSet(this,_MarkdownEditor_content,t,"f"),__classPrivateFieldGet(this,_MarkdownEditor_editor,"f")?.destroy(),__classPrivateFieldSet(this,_MarkdownEditor_editor,null,"f"),this.requestUpdate()}get milkdownElm(){return this.container.firstElementChild}get editor(){return __classPrivateFieldGet(this,_MarkdownEditor_editor,"f")}constructor(){super(),_MarkdownEditor_content.set(this,void 0),this.maxContentWidth=800,this.contentAlignment="left",this.readOnly=!1,_MarkdownEditor_mouseIn.set(this,!1),_MarkdownEditor_editor.set(this,void 0),this._onChange=(t,e)=>{__classPrivateFieldSet(this,_MarkdownEditor_content,t,"f"),this.dispatchEvent(new events.ChangeEvent({value:t,oldValue:e}))},this.render=()=>html`
|
|
2
2
|
<style>
|
|
3
3
|
.ProseMirror.editor { max-width: ${this.maxContentWidth}px; }
|
|
4
4
|
</style>
|
|
5
5
|
<div id="container" spellcheck="false"></div>
|
|
6
|
-
<og-slider direction="vertical"></og-slider>
|
|
7
|
-
`,dom.on(this,"click","a",((t,e)=>{if(!this.dispatchEvent(new MarkdownLinkEvent({href:e.getAttribute("href"),a:e,origEvent:t})))return void t.preventDefault();const r=e.getAttribute("href");r&&r.startsWith("#")&&(t.preventDefault(),this.scrollToSelector(r))}))}scrollToSelector(t){const e=this.milkdownElm.querySelector(t);e&&(this.milkdownElm.scrollTop=e.offsetTop,this.slider.updatePosition())}connectedCallback(){super.connectedCallback(),this.requestUpdate()}updateWidth(){const t=Math.min(this.maxContentWidth,this.clientWidth);this.milkdownElm.style.width=`${t}px`}async updated(){__classPrivateFieldGet(this,_MarkdownEditor_editor,"f")||(__classPrivateFieldSet(this,_MarkdownEditor_editor,await createEditor({container:this.container,content:this.content,readOnly:this.readOnly,onUpload:this.onUpload,onChange:this._onChange,modifyImageUrl:this.modifyImageUrl}),"f"),this.slider.attachElement(this.milkdownElm))}disconnectedCallback(){super.disconnectedCallback(),__classPrivateFieldGet(this,_MarkdownEditor_editor,"f")?.destroy(),__classPrivateFieldSet(this,_MarkdownEditor_editor,null,"f"),dom.empty(this.container)}layout(){}};_MarkdownEditor_content=new WeakMap,_MarkdownEditor_editor=new WeakMap,MarkdownEditor.styles=[style,...styles],__decorate([property({type:String})],MarkdownEditor.prototype,"content",null),__decorate([property({type:Number})],MarkdownEditor.prototype,"maxContentWidth",void 0),__decorate([property({type:String,reflect:!0})],MarkdownEditor.prototype,"contentAlignment",void 0),__decorate([property({type:Boolean,reflect:!0})],MarkdownEditor.prototype,"readOnly",void 0),__decorate([query("#container")],MarkdownEditor.prototype,"container",void 0),__decorate([query("og-slider")],MarkdownEditor.prototype,"slider",void 0),__decorate([property({type:Object})],MarkdownEditor.prototype,"onUpload",void 0),__decorate([property({type:Object})],MarkdownEditor.prototype,"modifyImageUrl",void 0),MarkdownEditor=__decorate([customElement("og-markdown-editor")],MarkdownEditor);export{MarkdownEditor};
|
|
6
|
+
<og-slider direction="vertical" hidden></og-slider>
|
|
7
|
+
`,dom.on(this,"click","a",((t,e)=>{if(!this.dispatchEvent(new MarkdownLinkEvent({href:e.getAttribute("href"),a:e,origEvent:t})))return void t.preventDefault();const r=e.getAttribute("href");r&&r.startsWith("#")&&(t.preventDefault(),this.scrollToSelector(r))}))}scrollToSelector(t){const e=this.milkdownElm.querySelector(t);e&&(this.milkdownElm.scrollTop=e.offsetTop,this.slider.updatePosition())}connectedCallback(){super.connectedCallback(),this.requestUpdate()}updateWidth(){const t=Math.min(this.maxContentWidth,this.clientWidth);this.milkdownElm.style.width=`${t}px`}firstUpdated(){this.slider.hide(),this.addEventListener("mouseenter",(()=>{__classPrivateFieldSet(this,_MarkdownEditor_mouseIn,!0,"f"),this.updateSlider()})),this.addEventListener("mouseleave",(()=>{__classPrivateFieldSet(this,_MarkdownEditor_mouseIn,!1,"f"),this.updateSlider()})),this.slider.addEventListener("slideEnd",(()=>{this.updateSlider()}))}async updated(){__classPrivateFieldGet(this,_MarkdownEditor_editor,"f")||(__classPrivateFieldSet(this,_MarkdownEditor_editor,await createEditor({container:this.container,content:this.content,readOnly:this.readOnly,onUpload:this.onUpload,onChange:this._onChange,modifyImageUrl:this.modifyImageUrl}),"f"),this.slider.attachElement(this.milkdownElm))}updateSlider(){this.slider&&this.milkdownElm&&(this.milkdownElm.scrollHeight>this.milkdownElm.clientHeight&&(__classPrivateFieldGet(this,_MarkdownEditor_mouseIn,"f")||this.slider.sliding)?this.slider.show():this.slider.hide())}disconnectedCallback(){super.disconnectedCallback(),__classPrivateFieldGet(this,_MarkdownEditor_editor,"f")?.destroy(),__classPrivateFieldSet(this,_MarkdownEditor_editor,null,"f"),dom.empty(this.container)}layout(){}};_MarkdownEditor_content=new WeakMap,_MarkdownEditor_mouseIn=new WeakMap,_MarkdownEditor_editor=new WeakMap,MarkdownEditor.styles=[style,...styles],__decorate([property({type:String})],MarkdownEditor.prototype,"content",null),__decorate([property({type:Number})],MarkdownEditor.prototype,"maxContentWidth",void 0),__decorate([property({type:String,reflect:!0})],MarkdownEditor.prototype,"contentAlignment",void 0),__decorate([property({type:Boolean,reflect:!0})],MarkdownEditor.prototype,"readOnly",void 0),__decorate([query("#container")],MarkdownEditor.prototype,"container",void 0),__decorate([query("og-slider")],MarkdownEditor.prototype,"slider",void 0),__decorate([property({type:Object})],MarkdownEditor.prototype,"onUpload",void 0),__decorate([property({type:Object})],MarkdownEditor.prototype,"modifyImageUrl",void 0),MarkdownEditor=__decorate([customElement("og-markdown-editor")],MarkdownEditor);export{MarkdownEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownEditor.js","sourceRoot":"","sources":["../../src/components/markdownEditor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAsC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAK3C,YAAY,IAAgC;QAC3C,KAAK,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;CACD;AAGM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAM7C,IAAI,OAAO,KAAK,OAAO,uBAAA,IAAI,+BAAS,CAAA,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,GAAW;QACtB,uBAAA,IAAI,2BAAY,GAAG,MAAA,CAAC;QACpB,uBAAA,IAAI,8BAAQ,EAAE,OAAO,EAAE,CAAC;QACxB,uBAAA,IAAI,0BAAW,IAAI,MAAA,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdownEditor.js","sourceRoot":"","sources":["../../src/components/markdownEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, events, HorizontalPosition, Layout, Slider } from '@omegagrid/core';\nimport { LitElement, html } from 'lit';\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { style } from './markdownEditor.style';\nimport styles from './styles';\nimport { createEditor } from '../utils';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\n\nexport class MarkdownLinkEvent extends Event {\n\treadonly href: string;\n\treadonly a: HTMLAnchorElement;\n\treadonly origEvent: PointerEvent;\n\n\tconstructor(args: Partial<MarkdownLinkEvent>) {\n\t\tsuper(`markdown.link`, {bubbles: true, composed: true, cancelable: true});\n\t\tObject.assign(this, args);\n\t}\n}\n\n@customElement('og-markdown-editor')\nexport class MarkdownEditor extends LitElement implements Layout {\n\n\tstatic styles = [style, ...styles];\n\n\t#content: string\n\t@property({type: String})\n\tget content() { return this.#content }\n\tset content(val: string) {\n\t\tthis.#content = val;\n\t\tthis.#editor?.destroy();\n\t\tthis.#editor = null;\n\t\tthis.requestUpdate();\n\t}\n\n\t@property({type: Number})\n\tmaxContentWidth = 800;\n\n\t@property({type: String, reflect: true})\n\tcontentAlignment: HorizontalPosition = 'left';\n\n\t@property({type: Boolean, reflect: true})\n\treadOnly = false;\n\n\t@query('#container')\n\tcontainer: HTMLDivElement;\n\n\t@query('og-slider')\n\tslider: Slider;\n\n\t#mouseIn = false;\n\n\t@property({type: Object})\n\tonUpload: (file: File) => Promise<string>;\n\n\t@property({type: Object})\n\tmodifyImageUrl: (file: string) => Promise<string>|string;\n\n\t#editor: milkdown.core.Editor;\n\n\tget milkdownElm () { return this.container.firstElementChild as HTMLElement }\n\tget editor() { return this.#editor }\n\n\tconstructor() {\n\t\tsuper();\n\t\tdom.on(this, 'click', 'a', (e: PointerEvent, a) => {\n\t\t\tconst canceled = !this.dispatchEvent(new MarkdownLinkEvent({\n\t\t\t\thref: a.getAttribute('href'), \n\t\t\t\ta: a as HTMLAnchorElement,\n\t\t\t\torigEvent: e\n\t\t\t}));\n\n\t\t\tif (canceled) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst href = a.getAttribute('href');\n\t\t\tif (href && href.startsWith('#')) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.scrollToSelector(href);\n\t\t\t}\n\t\t});\n\t}\n\n\tscrollToSelector(selector: string) {\n\t\tconst elm = this.milkdownElm.querySelector(selector) as HTMLElement;\n\t\tif (!elm) return;\n\t\tthis.milkdownElm.scrollTop = elm.offsetTop;\n\t\tthis.slider.updatePosition();\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.requestUpdate();\n\t}\n\n\tupdateWidth() {\n\t\tconst width = Math.min(this.maxContentWidth, this.clientWidth);\n\t\tthis.milkdownElm.style.width = `${width}px`;\n\t}\n\n\t_onChange = (markdown: string, prevMarkdown: string) => {\n\t\tthis.#content = markdown;\n\t\tthis.dispatchEvent(new events.ChangeEvent({value: markdown, oldValue: prevMarkdown}));\n\t}\n\n\tfirstUpdated() {\n\t\tthis.slider.hide();\n\n\t\tthis.addEventListener('mouseenter', () => {\n\t\t\tthis.#mouseIn = true;\n\t\t\tthis.updateSlider();\n\t\t});\n\n\t\tthis.addEventListener('mouseleave', () => {\n\t\t\tthis.#mouseIn = false;\n\t\t\tthis.updateSlider();\n\t\t});\n\n\t\tthis.slider.addEventListener('slideEnd', () => {\n\t\t\tthis.updateSlider();\n\t\t});\n\t}\n\n\tasync updated() {\n\t\tif (this.#editor) return;\n\t\tthis.#editor = await createEditor({\n\t\t\tcontainer: this.container,\n\t\t\tcontent: this.content,\n\t\t\treadOnly: this.readOnly,\n\t\t\tonUpload: this.onUpload,\n\t\t\tonChange: this._onChange,\n\t\t\tmodifyImageUrl: this.modifyImageUrl\n\t\t});\n\t\tthis.slider.attachElement(this.milkdownElm);\n\t}\n\n\tupdateSlider() {\n\t\tif (!this.slider || !this.milkdownElm) return;\n\t\tconst needsScroll = this.milkdownElm.scrollHeight > this.milkdownElm.clientHeight;\n\t\tif (needsScroll && (this.#mouseIn || this.slider.sliding)) {\n\t\t\tthis.slider.show();\n\t\t} else {\n\t\t\tthis.slider.hide();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tthis.#editor?.destroy();\n\t\tthis.#editor = null;\n\t\tdom.empty(this.container);\n\t}\n\n\trender = () => html`\n\t\t<style>\n\t\t\t.ProseMirror.editor { max-width: ${this.maxContentWidth}px; }\n\t\t</style>\n\t\t<div id=\"container\" spellcheck=\"false\"></div>\n\t\t<og-slider direction=\"vertical\" hidden></og-slider>\n\t`;\n\n\tlayout() { }\n\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/markdown",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.51",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Markdown view webcomponent",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@fortawesome/fontawesome-svg-core": "^7.0.1",
|
|
31
|
-
"@omegagrid/code": "^0.9.
|
|
32
|
-
"@omegagrid/core": "^0.9.
|
|
33
|
-
"@omegagrid/localize": "^0.9.
|
|
34
|
-
"@omegagrid/milkdown-kit": "^0.9.
|
|
35
|
-
"@omegagrid/tabs": "^0.9.
|
|
31
|
+
"@omegagrid/code": "^0.9.51",
|
|
32
|
+
"@omegagrid/core": "^0.9.51",
|
|
33
|
+
"@omegagrid/localize": "^0.9.51",
|
|
34
|
+
"@omegagrid/milkdown-kit": "^0.9.51",
|
|
35
|
+
"@omegagrid/tabs": "^0.9.51",
|
|
36
36
|
"lit": "^3.1.1",
|
|
37
37
|
"markdown-it": "^14.1.0",
|
|
38
38
|
"ts-debounce": "^4.0.0"
|