@next-bricks/markdown 1.12.10 → 1.12.11
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/bricks.json +3 -3
- package/dist/chunks/229.14ba7fec.js +3 -0
- package/dist/chunks/229.14ba7fec.js.map +1 -0
- package/dist/chunks/548.d2622ec2.js +3 -0
- package/dist/chunks/548.d2622ec2.js.map +1 -0
- package/dist/chunks/{698.de5d6392.js → 698.c740c490.js} +2 -2
- package/dist/chunks/{698.de5d6392.js.map → 698.c740c490.js.map} +1 -1
- package/dist/chunks/{eo-markdown-display.cc672b78.js → eo-markdown-display.8b5ae0c9.js} +2 -2
- package/dist/chunks/{eo-markdown-display.cc672b78.js.map → eo-markdown-display.8b5ae0c9.js.map} +1 -1
- package/dist/chunks/{eo-markdown-editor.651cb155.js → eo-markdown-editor.4e7a9fe3.js} +2 -2
- package/dist/chunks/{eo-markdown-editor.651cb155.js.map → eo-markdown-editor.4e7a9fe3.js.map} +1 -1
- package/dist/chunks/{main.692a95f3.js → main.1f35eca7.js} +2 -2
- package/dist/chunks/{main.692a95f3.js.map → main.1f35eca7.js.map} +1 -1
- package/dist/examples.json +3 -3
- package/dist/index.ac9567ec.js +2 -0
- package/dist/{index.326c327b.js.map → index.ac9567ec.js.map} +1 -1
- package/dist/manifest.json +14 -14
- package/package.json +2 -2
- package/dist/chunks/229.a1110c20.js +0 -3
- package/dist/chunks/229.a1110c20.js.map +0 -1
- package/dist/chunks/749.c7b0a0aa.js +0 -3
- package/dist/chunks/749.c7b0a0aa.js.map +0 -1
- package/dist/index.326c327b.js +0 -2
- /package/dist/chunks/{229.a1110c20.js.LICENSE.txt → 229.14ba7fec.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{749.c7b0a0aa.js.LICENSE.txt → 548.d2622ec2.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[698],{698:(e,t,n)=>{var o,a=n(4586),r=n(4635),i=n(918),l=n(6902),s=n(5536),c=n(6121),d=n(829),u=n(2740),m=n(9575),h=n(8769),p=n.n(h),k=n(169),b=n(5617),g=(n(6477),n(998)),y=n(1408),A=n(8117),w=n(2466),v=n(
|
|
2
|
-
//# sourceMappingURL=698.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[698],{698:(e,t,n)=>{var o,a=n(4586),r=n(4635),i=n(918),l=n(6902),s=n(5536),c=n(6121),d=n(829),u=n(2740),m=n(9575),h=n(8769),p=n.n(h),k=n(169),b=n(5617),g=(n(6477),n(998)),y=n(1408),A=n(8117),w=n(2466),v=n(1854),f=n(9760),E=n(135),N=n(6486),x=n(6512),C=n(8653),S=n(1656),M=n(5435),j=n(9796),W=n(3971),q=n(9830),I=n(1151),T=n(4557),_=n(426),D=n(3373),F=n.n(D);let U,V,$,B,O,R,L,P,G,J,K,X,Y,Q,Z,z,H,ee,te,ne,oe,ae,re;const ie=(0,b.wrapBrick)("eo-form-item"),le=(0,b.wrapBrick)("eo-icon"),se=e=>{let{icon:t,onClick:n,tooltip:o}=e;return p().createElement("div",{className:"menu-btn-box",onMouseDown:e=>{null==n||n(),e.preventDefault()}},p().createElement(le,(0,m.A)({style:{verticalAlign:"middle"}},t)),o&&p().createElement("div",{className:"menuIconTooltip"},o))},{defineElement:ce,property:de,event:ue}=(0,k.createDecorators)();let me;var he=new WeakMap,pe=new WeakMap,ke=new WeakMap,be=new WeakMap,ge=new WeakMap,ye=new WeakMap,Ae=new WeakMap,we=new WeakMap,ve=new WeakSet,fe=new WeakMap;class Ee extends _.N{constructor(){super(...arguments),(0,r.A)(this,ve),(0,i.A)(this,he,V(this)),(0,i.A)(this,pe,($(this),B(this))),(0,i.A)(this,ke,(O(this),R(this))),(0,i.A)(this,be,(L(this),P(this))),(0,i.A)(this,ge,(G(this),J(this))),(0,i.A)(this,ye,(K(this),X(this))),(0,i.A)(this,Ae,(Y(this),Q(this))),(0,i.A)(this,we,(Z(this),z(this))),(0,a.A)(this,"handleUploadImage",(te(this),e=>{(0,s.A)(ve,this,H).emit(e)})),(0,i.A)(this,fe,ne(this)),(0,a.A)(this,"handleMarkdownValueChange",(re(this),e=>{var t;null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),this.value=e,(0,s.A)(ve,this,oe).emit(e)}))}get name(){return(0,d.A)(he,this)}set name(e){(0,c.A)(he,this,e)}get label(){return(0,d.A)(pe,this)}set label(e){(0,c.A)(pe,this,e)}get required(){return(0,d.A)(ke,this)}set required(e){(0,c.A)(ke,this,e)}get value(){return(0,d.A)(be,this)}set value(e){(0,c.A)(be,this,e)}get bucketName(){return(0,d.A)(ge,this)}set bucketName(e){(0,c.A)(ge,this,e)}get readonly(){return(0,d.A)(ye,this)}set readonly(e){(0,c.A)(ye,this,e)}get containerStyle(){return(0,d.A)(Ae,this)}set containerStyle(e){(0,c.A)(Ae,this,e)}render(){return p().createElement(w.pb,null,p().createElement(W.vo,null,p().createElement(Ne,{formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,curElement:this,bucketName:this.bucketName,value:this.value,readonly:this.readonly,containerStyle:this.containerStyle,onUploadImage:this.handleUploadImage,onMarkdownValueChange:this.handleMarkdownValueChange})))}}function Ne(e){const{bucketName:t,containerStyle:n,value:o,formElement:a,readonly:r,onUploadImage:i,onMarkdownValueChange:l}=e,[s,c]=(0,h.useState)(!1),d=async(n,o)=>{const a=[];let r=[];for(let e=0;e<n.length;e++){const t=n.item(e);t&&t.type.includes("image")&&a.push(t)}try{r=await Promise.all(a.map((async n=>{const a=await(0,y.i)(t,{file:n,width:0,height:0}),r=(l=null==a?void 0:a.objectName,`/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${e.bucketName}/object/${l}`);var l;const s=n.name;return i&&i({name:s,src:r}),o.nodes.image.createAndFill({src:r,alt:s})})))}catch(e){console.error("upload failed:",e)}return r},u=(0,W.Uv)(),k=(0,W.rJ)(),b=(0,W.$X)(),g=(0,h.useMemo)((()=>r?[]:[S.Te,I.EI,I.nk,e=>async()=>{e.set(I.EI.key,{view:u({component:I.ST})})},(0,I.jp)(k)].flat()),[r,u,k]),{get:_}=(0,w.hG)((e=>A.KE.make().config((n=>{n.set(A.k,e),n.update(A.QM,(e=>({...e,editable:()=>!r}))),o&&n.set(A.CI,o),n.get(C.Ob).markdownUpdated(((e,t,n)=>{l&&l(t)})).focus((()=>{c(!0)})).blur((()=>{c(!1)})),t&&n.update(N.wu.key,(e=>({...e,uploader:d}))),n.update(j.mS.key,(e=>({...e,configureRefractor:()=>q.L})))})).config(f.E).use(C.F_).use(v.PD).use(E.b6).use(S.Te).use(M.pZ).use(N.Se).use(g).use(j.Wj).use(r?[]:(0,x.m5)(v.Ay.node,(()=>b({component:T.N}))))),[]);function D(e,t){var n;return null===(n=_())||void 0===n?void 0:n.action((0,x.KD)(e,t))}(0,h.useEffect)((()=>{var e;a&&void 0!==o&&!s&&(null===(e=_())||void 0===e||e.action((0,x.yh)(o)))}),[_(),o]);const U=[{icon:{lib:"antd",icon:"undo"},onClick:()=>D(E.Eb.key),tooltip:"撤销"},{icon:{lib:"antd",icon:"redo"},onClick:()=>D(E.eD.key),tooltip:"重做"},{icon:{lib:"antd",icon:"bold"},onClick:()=>D(v.vY.key),tooltip:"粗体"},{icon:{lib:"antd",icon:"italic"},onClick:()=>D(v.e0.key),tooltip:"斜体"},{icon:{lib:"antd",icon:"strikethrough"},onClick:()=>D(S.$l.key),tooltip:"删除线"},{icon:{lib:"antd",icon:"table"},onClick:()=>D(S.f$.key),tooltip:"表格"},{icon:{lib:"antd",icon:"unordered-list"},onClick:()=>D(v.Xk.key),tooltip:"无序列表"},{icon:{lib:"antd",icon:"ordered-list"},onClick:()=>D(v.Ej.key),tooltip:"有序列表"},{icon:{lib:"fa",icon:"quote-right"},onClick:()=>D(v.oO.key),tooltip:"块引用"}];return p().createElement(ie,(0,m.A)({exportparts:"message"},e),p().createElement("div",{className:F()("markdown-container",{readonly:r}),style:n},!r&&p().createElement("div",{className:"menu-container-outter"},p().createElement("div",{className:"menu-container-inner prose"},U.map((e=>p().createElement(se,(0,m.A)({},e,{key:JSON.stringify(e.icon)})))))),p().createElement("div",{className:"editor-container"},p().createElement(w.y5,null))))}o=Ee,({e:[V,$,B,O,R,L,P,G,J,K,X,Y,Q,Z,z,H,ee,te,ne,oe,ae,re],c:[me,U]}=(0,u.A)(o,[ce("eo-markdown-editor",{styleTexts:[g.A],alias:["markdown.markdown-editor"]})],[[de(),1,"name"],[de(),1,"label"],[de({type:Boolean}),1,"required"],[de(),1,"value"],[de(),1,"bucketName"],[de({type:Boolean}),1,"readonly"],[de({attribute:!1}),1,"containerStyle"],[ue({type:"image.upload"}),1,"uploadImage",e=>(0,d.A)(we,e),(e,t)=>(0,c.A)(we,e,t)],[ue({type:"markdown.value.change"}),1,"markdownValueChange",e=>(0,d.A)(fe,e),(e,t)=>(0,c.A)(fe,e,t)]],0,(e=>ve.has((0,l.A)(e))),_.N)),U();var xe=n(1085),Ce=n(45),Se=n(5301),Me=n(3730),je=n(5487),We=n(3544),qe=n(4650);function Ie(){function e(e,t,n){if(!n||"pre"!==n.tagName||"code"!==e.tagName)return;const o=function(e){const t=e.properties.className||[];for(const e of t)if("language-"===e.slice(0,9))return e.slice(9).toLowerCase();return null}(e);if(null===o)return;let a;try{n.properties.className=(n.properties.className||[]).concat("language-"+o),a=q.L.highlight((0,qe.d)(e),o)}catch{return}e.children=a.children}return t=>{(0,We.YR)(t,"element",e)}}const Te={Fragment:xe.Fragment,jsx:xe.jsx,jsxs:xe.jsxs};function _e(e){let{content:t}=e;const[n,o]=(0,h.useState)(null);return(0,h.useEffect)((()=>{let e=!1;return(0,Ce.l)().use(Se.A).use(Me.A).use([Ie]).use(je.A,Te).process(t).then((t=>{e||o(t.result)})).catch((t=>{e||(console.error("Convert markdown failed:",t),o(null))})),()=>{e=!0}}),[t]),n}var De,Fe=n(4724),Ue=n(2591),Ve=n.n(Ue),$e=n(1740),Be=n.n($e),Oe=n(8128),Re=n.n(Oe),Le=n(855),Pe=n.n(Le),Ge=n(3051),Je=n.n(Ge),Ke=n(3656),Xe=n.n(Ke),Ye=n(7148),Qe={};let Ze,ze,He;Qe.styleTagTransform=Xe(),Qe.setAttributes=Pe(),Qe.insert=Re().bind(null,"head"),Qe.domAPI=Be(),Qe.insertStyleElement=Je(),Ve()(Ye.A,Qe),Ye.A&&Ye.A.locals&&Ye.A.locals;const{defineElement:et,property:tt}=(0,k.createDecorators)();let nt;var ot=new WeakMap;class at extends b.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,ot,ze(this)),He(this)}get content(){return(0,d.A)(ot,this)}set content(e){(0,c.A)(ot,this,e)}render(){return p().createElement(_e,{content:this.content})}}De=at,({e:[ze,He],c:[nt,Ze]}=(0,u.A)(De,[et("eo-markdown-display",{styleTexts:[Fe.A]})],[[tt(),1,"content"]],0,void 0,b.ReactNextElement)),Ze()},7148:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(6758),a=n.n(o),r=n(935),i=n.n(r)()(a());i.push([e.id,':root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}',""]);const l=i},4724:(e,t,n)=>{n.d(t,{A:()=>c});var o=n(6758),a=n.n(o),r=n(935),i=n.n(r),l=n(6131),s=i()(a());s.i(l.A),s.push([e.id,":host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}",""]);const c=s.toString()},6131:(e,t,n)=>{n.d(t,{A:()=>c});var o=n(6758),a=n.n(o),r=n(935),i=n.n(r),l=n(7745),s=i()(a());s.i(l.A),s.push([e.id,"",""]);const c=s.toString()}}]);
|
|
2
|
+
//# sourceMappingURL=698.c740c490.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/698.de5d6392.js","mappings":"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","sources":["webpack:///./src/markdown-editor/index.tsx","webpack:///../../src/rehypePrism.ts","webpack:///../../src/MarkdownComponent.tsx","webpack:///./src/markdown-display/host-context.css?6555","webpack:///./src/markdown-display/index.tsx","webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/styles.shadow.css","webpack:///../../shared/markdown/dist/esm/prism-tomorrow.css"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./markdown-editor.shadow.css\";\nimport { ObjectStoreApi_putObject } from \"@next-api-sdk/object-store-sdk\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { CmdKey } from \"@milkdown/core\";\nimport {\n defaultValueCtx,\n Editor,\n editorViewOptionsCtx,\n rootCtx,\n} from \"@milkdown/core\";\nimport { Milkdown, MilkdownProvider, useEditor } from \"@milkdown/react\";\nimport {\n commonmark,\n toggleStrongCommand,\n toggleEmphasisCommand,\n wrapInBulletListCommand,\n wrapInOrderedListCommand,\n wrapInBlockquoteCommand,\n codeBlockSchema,\n} from \"@milkdown/preset-commonmark\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { nord } from \"@milkdown/theme-nord\";\nimport { history, redoCommand, undoCommand } from \"@milkdown/plugin-history\";\nimport { upload, uploadConfig, Uploader } from \"@milkdown/plugin-upload\";\nimport { callCommand, $view, replaceAll } from \"@milkdown/utils\";\nimport type { Node } from \"@milkdown/prose/model\";\nimport { listener, listenerCtx } from \"@milkdown/plugin-listener\";\nimport {\n gfm,\n toggleStrikethroughCommand,\n insertTableCommand,\n} from \"@milkdown/preset-gfm\";\nimport { indent } from \"@milkdown/plugin-indent\";\nimport { Ctx, MilkdownPlugin } from \"@milkdown/ctx\";\nimport { prism, prismConfig } from \"@milkdown/plugin-prism\";\nimport {\n usePluginViewFactory,\n ProsemirrorAdapterProvider,\n useWidgetViewFactory,\n useNodeViewFactory,\n} from \"@prosemirror-adapter/react\";\nimport { refractor } from \"refractor/lib/common\";\nimport {\n tableSelectorPlugin,\n TableTooltip,\n tableTooltip,\n tableTooltipCtx,\n} from \"./components/TableWidget.js\";\nimport { CodeBlock } from \"./components/CodeBlock.js\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst MenuButton: FC<MenuButtonProps> = ({ icon, onClick, tooltip }) => {\n return (\n <div\n className=\"menu-btn-box\"\n onMouseDown={(e) => {\n onClick?.();\n e.preventDefault();\n }}\n >\n <WrappedIcon style={{ verticalAlign: \"middle\" }} {...icon} />\n {tooltip && <div className=\"menuIconTooltip\">{tooltip}</div>}\n </div>\n );\n};\n\nexport interface MenuButtonProps {\n icon: GeneralIconProps;\n onClick?: () => void;\n tooltip?: string;\n}\n\nexport interface MarkdownEditorProps extends FormItemProps {\n value?: string;\n bucketName?: string;\n containerStyle?: React.CSSProperties;\n readonly?: boolean;\n onUploadImage?: (value: ImageInfo) => void;\n onMarkdownValueChange?: (value: string) => void;\n}\n\nexport interface ImageInfo {\n name: string;\n src: string;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n@defineElement(\"eo-markdown-editor\", {\n styleTexts: [styleText],\n alias: [\"markdown.markdown-editor\"],\n})\n\n/**\n * markdown编辑器\n * @docKind brick\n * @author kehua\n * @noInheritDoc\n * @category form-input-advanced\n */\nclass MarkdownEditor extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n * @group basic\n */\n @property() accessor value: string | undefined;\n\n /**\n * 对象存储桶名字,请在业务编排的时候与后台同学商量创建,一般一个业务需求对应一个存储桶名称。如不传则默认以base64格式转换图片\n * @group advanced\n */\n @property() accessor bucketName: string | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 外层容器样式\n */\n @property({\n attribute: false,\n })\n accessor containerStyle: React.CSSProperties | undefined;\n\n /**\n * 上传图片时触发的事件\n * @detail\n */\n @event({ type: \"image.upload\" })\n accessor #uploadImage!: EventEmitter<ImageInfo>;\n\n private handleUploadImage = (value: ImageInfo): void => {\n this.#uploadImage.emit(value);\n };\n\n /**\n * 编辑markdown触发的变化事件\n * @detail\n */\n @event({ type: \"markdown.value.change\" })\n accessor #markdownValueChange!: EventEmitter<string>;\n\n handleMarkdownValueChange = (value: string): void => {\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.value = value;\n this.#markdownValueChange.emit(value);\n };\n\n render() {\n return (\n <MilkdownProvider>\n <ProsemirrorAdapterProvider>\n <MarkdownEditorComponent\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n curElement={this}\n bucketName={this.bucketName}\n value={this.value}\n readonly={this.readonly}\n containerStyle={this.containerStyle}\n onUploadImage={this.handleUploadImage}\n onMarkdownValueChange={this.handleMarkdownValueChange}\n />\n </ProsemirrorAdapterProvider>\n </MilkdownProvider>\n );\n }\n}\n\nexport { MarkdownEditor };\n\nexport function MarkdownEditorComponent(props: MarkdownEditorProps) {\n const {\n bucketName,\n containerStyle,\n value,\n formElement,\n readonly,\n onUploadImage,\n onMarkdownValueChange,\n } = props;\n\n const [isFocus, setIsFocus] = useState(false);\n\n const transformResponseToUrl = (objectName: string): string => {\n return `/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${props.bucketName}/object/${objectName}`;\n };\n\n const uploader: Uploader = async (files: FileList, schema: any) => {\n const images: File[] = [];\n let nodes: Node[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n\n if (!file) {\n continue;\n }\n\n // Only handle image\n if (!file.type.includes(\"image\")) {\n continue;\n }\n\n images.push(file);\n }\n\n // upload file\n try {\n nodes = await Promise.all(\n images.map(async (image) => {\n const response: any = await ObjectStoreApi_putObject(\n bucketName as string,\n {\n file: image,\n width: 0,\n height: 0,\n }\n );\n const src = transformResponseToUrl(response?.objectName as string);\n const alt = image.name;\n onUploadImage && onUploadImage({ name: alt, src });\n return schema.nodes.image.createAndFill({\n src,\n alt,\n }) as Node;\n })\n );\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\"upload failed:\", err);\n }\n\n return nodes;\n };\n\n const pluginViewFactory = usePluginViewFactory();\n const widgetViewFactory = useWidgetViewFactory();\n const nodeViewFactory = useNodeViewFactory();\n\n const gfmPlugins: MilkdownPlugin[] = useMemo(() => {\n return readonly\n ? []\n : [\n gfm,\n tableTooltip,\n tableTooltipCtx,\n (ctx: Ctx) => async () => {\n ctx.set(tableTooltip.key, {\n view: pluginViewFactory({\n component: TableTooltip,\n }),\n });\n },\n tableSelectorPlugin(widgetViewFactory),\n ].flat();\n }, [readonly, pluginViewFactory, widgetViewFactory]);\n\n const { get } = useEditor((root: any) => {\n return Editor.make()\n .config((ctx: any) => {\n // 配置root\n ctx.set(rootCtx, root);\n ctx.update(editorViewOptionsCtx, (prev: any) => ({\n ...prev,\n editable: () => !readonly,\n }));\n // 配置默认值\n value && ctx.set(defaultValueCtx, value);\n // 配置事件监听\n ctx\n .get(listenerCtx)\n .markdownUpdated(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (ctx: any, markdown: string, prevMarkdown: string) => {\n onMarkdownValueChange && onMarkdownValueChange(markdown);\n }\n )\n .focus(() => {\n setIsFocus(true);\n })\n .blur(() => {\n setIsFocus(false);\n });\n // 配置文件上传,不传bucketName则默认把图片转为base64格式\n bucketName &&\n ctx.update(uploadConfig.key, (prev: any) => ({\n ...prev,\n uploader,\n }));\n // 支持code代码高亮\n ctx.update(prismConfig.key, (prev: any) => ({\n ...prev,\n configureRefractor: () => refractor,\n }));\n })\n .config(nord)\n .use(listener)\n .use(commonmark)\n .use(history)\n .use(gfm)\n .use(indent)\n .use(upload)\n .use(gfmPlugins)\n .use(prism)\n .use(\n readonly\n ? []\n : $view(codeBlockSchema.node, () =>\n nodeViewFactory({ component: CodeBlock })\n )\n );\n }, []);\n\n useEffect(() => {\n // 当编辑器没有处在focus状态,即初始化或者通过其他构件重置值时,才允许调用replaceAll修改其值\n // 防止与用户输入动作起冲突\n if (formElement && value !== undefined && !isFocus) {\n get()?.action(replaceAll(value));\n }\n }, [get(), value]);\n\n function call<T>(command: CmdKey<T>, payload?: T) {\n return get()?.action(callCommand(command, payload));\n }\n\n const MenuBtnData: MenuButtonProps[] = [\n {\n icon: { lib: \"antd\", icon: \"undo\" },\n onClick: () => call(undoCommand.key),\n tooltip: \"撤销\",\n },\n {\n icon: { lib: \"antd\", icon: \"redo\" },\n onClick: () => call(redoCommand.key),\n tooltip: \"重做\",\n },\n {\n icon: { lib: \"antd\", icon: \"bold\" },\n onClick: () => call(toggleStrongCommand.key),\n tooltip: \"粗体\",\n },\n {\n icon: { lib: \"antd\", icon: \"italic\" },\n onClick: () => call(toggleEmphasisCommand.key),\n tooltip: \"斜体\",\n },\n {\n icon: { lib: \"antd\", icon: \"strikethrough\" },\n onClick: () => call(toggleStrikethroughCommand.key),\n tooltip: \"删除线\",\n },\n {\n icon: { lib: \"antd\", icon: \"table\" },\n onClick: () => call(insertTableCommand.key),\n tooltip: \"表格\",\n },\n {\n icon: { lib: \"antd\", icon: \"unordered-list\" },\n onClick: () => call(wrapInBulletListCommand.key),\n tooltip: \"无序列表\",\n },\n {\n icon: { lib: \"antd\", icon: \"ordered-list\" },\n onClick: () => call(wrapInOrderedListCommand.key),\n tooltip: \"有序列表\",\n },\n {\n icon: { lib: \"fa\", icon: \"quote-right\" },\n onClick: () => call(wrapInBlockquoteCommand.key),\n tooltip: \"块引用\",\n },\n ];\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n className={classNames(\"markdown-container\", {\n readonly,\n })}\n style={containerStyle}\n >\n {!readonly && (\n <div className=\"menu-container-outter\">\n <div className=\"menu-container-inner prose\">\n {MenuBtnData.map((item) => (\n <MenuButton {...item} key={JSON.stringify(item.icon)} />\n ))}\n </div>\n </div>\n )}\n <div className=\"editor-container\">\n <Milkdown />\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport { refractor, type RefractorElement } from \"refractor\";\n\n// Reference https://github.com/mapbox/rehype-prism\nexport function rehypePrism() {\n function visitor(\n node: RefractorElement,\n _index: number | undefined,\n parent: RefractorElement | undefined\n ) {\n if (!parent || parent.tagName !== \"pre\" || node.tagName !== \"code\") {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"language-\" + lang);\n result = refractor.highlight(toString(node), lang);\n } catch {\n return;\n }\n\n node.children = result.children;\n }\n return (tree: RefractorElement) => {\n visit(tree, \"element\", visitor);\n };\n}\n\nfunction getLanguage(node: RefractorElement) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport { rehypePrism } from \"./rehypePrism.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({ content }: MarkdownComponentProps) {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n let ignore = false;\n unified()\n .use(remarkParse)\n .use(remarkToRehype)\n .use([rehypePrism])\n .use(rehypeReact, production as RehypeReactOptions)\n .process(content)\n .then((vFile) => {\n if (!ignore) {\n setReactContent(vFile.result);\n }\n })\n .catch((error) => {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n });\n return () => {\n ignore = true;\n };\n }, [content]);\n\n return reactContent;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { MarkdownComponent } from \"@next-shared/markdown\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n}\n\n/**\n * 用于展示 markdown 内容的构件。\n */\nexport\n@defineElement(\"eo-markdown-display\", {\n styleTexts: [styleText],\n})\nclass MarkdownDisplay extends ReactNextElement implements MarkdownDisplayProps {\n @property()\n accessor content: string | undefined;\n\n render() {\n return <MarkdownComponent content={this.content} />;\n }\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../shared/markdown/dist/esm/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/prismjs/themes/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["WrappedFormItem","wrapBrick","WrappedIcon","MenuButton","_ref","icon","onClick","tooltip","React","className","onMouseDown","e","preventDefault","_extends","style","verticalAlign","defineElement","property","event","createDecorators","_MarkdownEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_MarkdownEditor_brand","WeakSet","_I","MarkdownEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_bucketName","_init_extra_bucketName","_init_readonly","_init_extra_readonly","_init_containerStyle","_init_extra_containerStyle","_init_uploadImage","_defineProperty","_init_extra_uploadImage","value","_classPrivateGetter","this","_get_uploadImage","emit","_init_markdownValueChange","_init_extra_markdownValueChange","_this$getFormElement","getFormElement","formStore","onChange","name","_get_markdownValueChange","_classPrivateFieldGet","v","_classPrivateFieldSet","label","required","bucketName","readonly","containerStyle","render","MilkdownProvider","ProsemirrorAdapterProvider","MarkdownEditorComponent","formElement","curElement","onUploadImage","handleUploadImage","onMarkdownValueChange","handleMarkdownValueChange","props","isFocus","setIsFocus","useState","uploader","async","files","schema","images","nodes","i","length","file","item","type","includes","push","Promise","all","map","response","ObjectStoreApi_putObject","image","width","height","src","objectName","alt","createAndFill","err","console","error","pluginViewFactory","usePluginViewFactory","widgetViewFactory","useWidgetViewFactory","nodeViewFactory","useNodeViewFactory","gfmPlugins","useMemo","gfm","tableTooltip","tableTooltipCtx","ctx","set","key","view","component","TableTooltip","tableSelectorPlugin","flat","get","useEditor","root","Editor","make","config","rootCtx","update","editorViewOptionsCtx","prev","editable","defaultValueCtx","listenerCtx","markdownUpdated","markdown","prevMarkdown","focus","blur","uploadConfig","prismConfig","configureRefractor","refractor","nord","use","listener","commonmark","history","indent","upload","prism","$view","codeBlockSchema","node","CodeBlock","call","command","payload","_get2","action","callCommand","useEffect","_get","undefined","replaceAll","MenuBtnData","lib","undoCommand","redoCommand","toggleStrongCommand","toggleEmphasisCommand","toggleStrikethroughCommand","insertTableCommand","wrapInBulletListCommand","wrapInOrderedListCommand","wrapInBlockquoteCommand","exportparts","classNames","JSON","stringify","Milkdown","_MarkdownEditor2","_set_uploadImage","_set_markdownValueChange","c","_initClass","_applyDecs","styleTexts","styleText","alias","Boolean","attribute","o","_","has","_checkInRHS","rehypePrism","visitor","_index","parent","tagName","lang","properties","classListItem","slice","toLowerCase","getLanguage","result","concat","highlight","toString","children","tree","visit","production","Fragment","jsx","jsxs","MarkdownComponent","content","reactContent","setReactContent","ignore","unified","remarkParse","remarkToRehype","rehypeReact","process","then","vFile","catch","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_MarkdownDisplay","MarkdownDisplay","ReactNextElement","_init_content","_init_extra_content","_MarkdownDisplay2","___CSS_LOADER_EXPORT___","module","id"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/698.c740c490.js","mappings":"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","sources":["webpack:///./src/markdown-editor/index.tsx","webpack:///../../src/rehypePrism.ts","webpack:///../../src/MarkdownComponent.tsx","webpack:///./src/markdown-display/host-context.css?6555","webpack:///./src/markdown-display/index.tsx","webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/styles.shadow.css","webpack:///../../shared/markdown/dist/esm/prism-tomorrow.css"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./markdown-editor.shadow.css\";\nimport { ObjectStoreApi_putObject } from \"@next-api-sdk/object-store-sdk\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { CmdKey } from \"@milkdown/core\";\nimport {\n defaultValueCtx,\n Editor,\n editorViewOptionsCtx,\n rootCtx,\n} from \"@milkdown/core\";\nimport { Milkdown, MilkdownProvider, useEditor } from \"@milkdown/react\";\nimport {\n commonmark,\n toggleStrongCommand,\n toggleEmphasisCommand,\n wrapInBulletListCommand,\n wrapInOrderedListCommand,\n wrapInBlockquoteCommand,\n codeBlockSchema,\n} from \"@milkdown/preset-commonmark\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { nord } from \"@milkdown/theme-nord\";\nimport { history, redoCommand, undoCommand } from \"@milkdown/plugin-history\";\nimport { upload, uploadConfig, Uploader } from \"@milkdown/plugin-upload\";\nimport { callCommand, $view, replaceAll } from \"@milkdown/utils\";\nimport type { Node } from \"@milkdown/prose/model\";\nimport { listener, listenerCtx } from \"@milkdown/plugin-listener\";\nimport {\n gfm,\n toggleStrikethroughCommand,\n insertTableCommand,\n} from \"@milkdown/preset-gfm\";\nimport { indent } from \"@milkdown/plugin-indent\";\nimport { Ctx, MilkdownPlugin } from \"@milkdown/ctx\";\nimport { prism, prismConfig } from \"@milkdown/plugin-prism\";\nimport {\n usePluginViewFactory,\n ProsemirrorAdapterProvider,\n useWidgetViewFactory,\n useNodeViewFactory,\n} from \"@prosemirror-adapter/react\";\nimport { refractor } from \"refractor/lib/common\";\nimport {\n tableSelectorPlugin,\n TableTooltip,\n tableTooltip,\n tableTooltipCtx,\n} from \"./components/TableWidget.js\";\nimport { CodeBlock } from \"./components/CodeBlock.js\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst MenuButton: FC<MenuButtonProps> = ({ icon, onClick, tooltip }) => {\n return (\n <div\n className=\"menu-btn-box\"\n onMouseDown={(e) => {\n onClick?.();\n e.preventDefault();\n }}\n >\n <WrappedIcon style={{ verticalAlign: \"middle\" }} {...icon} />\n {tooltip && <div className=\"menuIconTooltip\">{tooltip}</div>}\n </div>\n );\n};\n\nexport interface MenuButtonProps {\n icon: GeneralIconProps;\n onClick?: () => void;\n tooltip?: string;\n}\n\nexport interface MarkdownEditorProps extends FormItemProps {\n value?: string;\n bucketName?: string;\n containerStyle?: React.CSSProperties;\n readonly?: boolean;\n onUploadImage?: (value: ImageInfo) => void;\n onMarkdownValueChange?: (value: string) => void;\n}\n\nexport interface ImageInfo {\n name: string;\n src: string;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n@defineElement(\"eo-markdown-editor\", {\n styleTexts: [styleText],\n alias: [\"markdown.markdown-editor\"],\n})\n\n/**\n * markdown编辑器\n * @docKind brick\n * @author kehua\n * @noInheritDoc\n * @category form-input-advanced\n */\nclass MarkdownEditor extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n * @group basic\n */\n @property() accessor value: string | undefined;\n\n /**\n * 对象存储桶名字,请在业务编排的时候与后台同学商量创建,一般一个业务需求对应一个存储桶名称。如不传则默认以base64格式转换图片\n * @group advanced\n */\n @property() accessor bucketName: string | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 外层容器样式\n */\n @property({\n attribute: false,\n })\n accessor containerStyle: React.CSSProperties | undefined;\n\n /**\n * 上传图片时触发的事件\n * @detail\n */\n @event({ type: \"image.upload\" })\n accessor #uploadImage!: EventEmitter<ImageInfo>;\n\n private handleUploadImage = (value: ImageInfo): void => {\n this.#uploadImage.emit(value);\n };\n\n /**\n * 编辑markdown触发的变化事件\n * @detail\n */\n @event({ type: \"markdown.value.change\" })\n accessor #markdownValueChange!: EventEmitter<string>;\n\n handleMarkdownValueChange = (value: string): void => {\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.value = value;\n this.#markdownValueChange.emit(value);\n };\n\n render() {\n return (\n <MilkdownProvider>\n <ProsemirrorAdapterProvider>\n <MarkdownEditorComponent\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n curElement={this}\n bucketName={this.bucketName}\n value={this.value}\n readonly={this.readonly}\n containerStyle={this.containerStyle}\n onUploadImage={this.handleUploadImage}\n onMarkdownValueChange={this.handleMarkdownValueChange}\n />\n </ProsemirrorAdapterProvider>\n </MilkdownProvider>\n );\n }\n}\n\nexport { MarkdownEditor };\n\nexport function MarkdownEditorComponent(props: MarkdownEditorProps) {\n const {\n bucketName,\n containerStyle,\n value,\n formElement,\n readonly,\n onUploadImage,\n onMarkdownValueChange,\n } = props;\n\n const [isFocus, setIsFocus] = useState(false);\n\n const transformResponseToUrl = (objectName: string): string => {\n return `/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${props.bucketName}/object/${objectName}`;\n };\n\n const uploader: Uploader = async (files: FileList, schema: any) => {\n const images: File[] = [];\n let nodes: Node[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n\n if (!file) {\n continue;\n }\n\n // Only handle image\n if (!file.type.includes(\"image\")) {\n continue;\n }\n\n images.push(file);\n }\n\n // upload file\n try {\n nodes = await Promise.all(\n images.map(async (image) => {\n const response: any = await ObjectStoreApi_putObject(\n bucketName as string,\n {\n file: image,\n width: 0,\n height: 0,\n }\n );\n const src = transformResponseToUrl(response?.objectName as string);\n const alt = image.name;\n onUploadImage && onUploadImage({ name: alt, src });\n return schema.nodes.image.createAndFill({\n src,\n alt,\n }) as Node;\n })\n );\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\"upload failed:\", err);\n }\n\n return nodes;\n };\n\n const pluginViewFactory = usePluginViewFactory();\n const widgetViewFactory = useWidgetViewFactory();\n const nodeViewFactory = useNodeViewFactory();\n\n const gfmPlugins: MilkdownPlugin[] = useMemo(() => {\n return readonly\n ? []\n : [\n gfm,\n tableTooltip,\n tableTooltipCtx,\n (ctx: Ctx) => async () => {\n ctx.set(tableTooltip.key, {\n view: pluginViewFactory({\n component: TableTooltip,\n }),\n });\n },\n tableSelectorPlugin(widgetViewFactory),\n ].flat();\n }, [readonly, pluginViewFactory, widgetViewFactory]);\n\n const { get } = useEditor((root: any) => {\n return Editor.make()\n .config((ctx: any) => {\n // 配置root\n ctx.set(rootCtx, root);\n ctx.update(editorViewOptionsCtx, (prev: any) => ({\n ...prev,\n editable: () => !readonly,\n }));\n // 配置默认值\n value && ctx.set(defaultValueCtx, value);\n // 配置事件监听\n ctx\n .get(listenerCtx)\n .markdownUpdated(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (ctx: any, markdown: string, prevMarkdown: string) => {\n onMarkdownValueChange && onMarkdownValueChange(markdown);\n }\n )\n .focus(() => {\n setIsFocus(true);\n })\n .blur(() => {\n setIsFocus(false);\n });\n // 配置文件上传,不传bucketName则默认把图片转为base64格式\n bucketName &&\n ctx.update(uploadConfig.key, (prev: any) => ({\n ...prev,\n uploader,\n }));\n // 支持code代码高亮\n ctx.update(prismConfig.key, (prev: any) => ({\n ...prev,\n configureRefractor: () => refractor,\n }));\n })\n .config(nord)\n .use(listener)\n .use(commonmark)\n .use(history)\n .use(gfm)\n .use(indent)\n .use(upload)\n .use(gfmPlugins)\n .use(prism)\n .use(\n readonly\n ? []\n : $view(codeBlockSchema.node, () =>\n nodeViewFactory({ component: CodeBlock })\n )\n );\n }, []);\n\n useEffect(() => {\n // 当编辑器没有处在focus状态,即初始化或者通过其他构件重置值时,才允许调用replaceAll修改其值\n // 防止与用户输入动作起冲突\n if (formElement && value !== undefined && !isFocus) {\n get()?.action(replaceAll(value));\n }\n }, [get(), value]);\n\n function call<T>(command: CmdKey<T>, payload?: T) {\n return get()?.action(callCommand(command, payload));\n }\n\n const MenuBtnData: MenuButtonProps[] = [\n {\n icon: { lib: \"antd\", icon: \"undo\" },\n onClick: () => call(undoCommand.key),\n tooltip: \"撤销\",\n },\n {\n icon: { lib: \"antd\", icon: \"redo\" },\n onClick: () => call(redoCommand.key),\n tooltip: \"重做\",\n },\n {\n icon: { lib: \"antd\", icon: \"bold\" },\n onClick: () => call(toggleStrongCommand.key),\n tooltip: \"粗体\",\n },\n {\n icon: { lib: \"antd\", icon: \"italic\" },\n onClick: () => call(toggleEmphasisCommand.key),\n tooltip: \"斜体\",\n },\n {\n icon: { lib: \"antd\", icon: \"strikethrough\" },\n onClick: () => call(toggleStrikethroughCommand.key),\n tooltip: \"删除线\",\n },\n {\n icon: { lib: \"antd\", icon: \"table\" },\n onClick: () => call(insertTableCommand.key),\n tooltip: \"表格\",\n },\n {\n icon: { lib: \"antd\", icon: \"unordered-list\" },\n onClick: () => call(wrapInBulletListCommand.key),\n tooltip: \"无序列表\",\n },\n {\n icon: { lib: \"antd\", icon: \"ordered-list\" },\n onClick: () => call(wrapInOrderedListCommand.key),\n tooltip: \"有序列表\",\n },\n {\n icon: { lib: \"fa\", icon: \"quote-right\" },\n onClick: () => call(wrapInBlockquoteCommand.key),\n tooltip: \"块引用\",\n },\n ];\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n className={classNames(\"markdown-container\", {\n readonly,\n })}\n style={containerStyle}\n >\n {!readonly && (\n <div className=\"menu-container-outter\">\n <div className=\"menu-container-inner prose\">\n {MenuBtnData.map((item) => (\n <MenuButton {...item} key={JSON.stringify(item.icon)} />\n ))}\n </div>\n </div>\n )}\n <div className=\"editor-container\">\n <Milkdown />\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport { refractor, type RefractorElement } from \"refractor\";\n\n// Reference https://github.com/mapbox/rehype-prism\nexport function rehypePrism() {\n function visitor(\n node: RefractorElement,\n _index: number | undefined,\n parent: RefractorElement | undefined\n ) {\n if (!parent || parent.tagName !== \"pre\" || node.tagName !== \"code\") {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"language-\" + lang);\n result = refractor.highlight(toString(node), lang);\n } catch {\n return;\n }\n\n node.children = result.children;\n }\n return (tree: RefractorElement) => {\n visit(tree, \"element\", visitor);\n };\n}\n\nfunction getLanguage(node: RefractorElement) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport { rehypePrism } from \"./rehypePrism.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({ content }: MarkdownComponentProps) {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n let ignore = false;\n unified()\n .use(remarkParse)\n .use(remarkToRehype)\n .use([rehypePrism])\n .use(rehypeReact, production as RehypeReactOptions)\n .process(content)\n .then((vFile) => {\n if (!ignore) {\n setReactContent(vFile.result);\n }\n })\n .catch((error) => {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n });\n return () => {\n ignore = true;\n };\n }, [content]);\n\n return reactContent;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { MarkdownComponent } from \"@next-shared/markdown\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n}\n\n/**\n * 用于展示 markdown 内容的构件。\n */\nexport\n@defineElement(\"eo-markdown-display\", {\n styleTexts: [styleText],\n})\nclass MarkdownDisplay extends ReactNextElement implements MarkdownDisplayProps {\n @property()\n accessor content: string | undefined;\n\n render() {\n return <MarkdownComponent content={this.content} />;\n }\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../shared/markdown/dist/esm/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/prismjs/themes/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["WrappedFormItem","wrapBrick","WrappedIcon","MenuButton","_ref","icon","onClick","tooltip","React","className","onMouseDown","e","preventDefault","_extends","style","verticalAlign","defineElement","property","event","createDecorators","_MarkdownEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_MarkdownEditor_brand","WeakSet","_I","MarkdownEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_bucketName","_init_extra_bucketName","_init_readonly","_init_extra_readonly","_init_containerStyle","_init_extra_containerStyle","_init_uploadImage","_defineProperty","_init_extra_uploadImage","value","_classPrivateGetter","this","_get_uploadImage","emit","_init_markdownValueChange","_init_extra_markdownValueChange","_this$getFormElement","getFormElement","formStore","onChange","name","_get_markdownValueChange","_classPrivateFieldGet","v","_classPrivateFieldSet","label","required","bucketName","readonly","containerStyle","render","MilkdownProvider","ProsemirrorAdapterProvider","MarkdownEditorComponent","formElement","curElement","onUploadImage","handleUploadImage","onMarkdownValueChange","handleMarkdownValueChange","props","isFocus","setIsFocus","useState","uploader","async","files","schema","images","nodes","i","length","file","item","type","includes","push","Promise","all","map","response","ObjectStoreApi_putObject","image","width","height","src","objectName","alt","createAndFill","err","console","error","pluginViewFactory","usePluginViewFactory","widgetViewFactory","useWidgetViewFactory","nodeViewFactory","useNodeViewFactory","gfmPlugins","useMemo","gfm","tableTooltip","tableTooltipCtx","ctx","set","key","view","component","TableTooltip","tableSelectorPlugin","flat","get","useEditor","root","Editor","make","config","rootCtx","update","editorViewOptionsCtx","prev","editable","defaultValueCtx","listenerCtx","markdownUpdated","markdown","prevMarkdown","focus","blur","uploadConfig","prismConfig","configureRefractor","refractor","nord","use","listener","commonmark","history","indent","upload","prism","$view","codeBlockSchema","node","CodeBlock","call","command","payload","_get2","action","callCommand","useEffect","_get","undefined","replaceAll","MenuBtnData","lib","undoCommand","redoCommand","toggleStrongCommand","toggleEmphasisCommand","toggleStrikethroughCommand","insertTableCommand","wrapInBulletListCommand","wrapInOrderedListCommand","wrapInBlockquoteCommand","exportparts","classNames","JSON","stringify","Milkdown","_MarkdownEditor2","_set_uploadImage","_set_markdownValueChange","c","_initClass","_applyDecs","styleTexts","styleText","alias","Boolean","attribute","o","_","has","_checkInRHS","rehypePrism","visitor","_index","parent","tagName","lang","properties","classListItem","slice","toLowerCase","getLanguage","result","concat","highlight","toString","children","tree","visit","production","Fragment","jsx","jsxs","MarkdownComponent","content","reactContent","setReactContent","ignore","unified","remarkParse","remarkToRehype","rehypeReact","process","then","vFile","catch","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_MarkdownDisplay","MarkdownDisplay","ReactNextElement","_init_content","_init_extra_content","_MarkdownDisplay2","___CSS_LOADER_EXPORT___","module","id"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[838],{7471:(e,r,t)=>{t.r(r),t.d(r,{MarkdownDisplay:()=>f});var o,n=t(918),a=t(6121),s=t(829),c=t(2740),l=t(8769),d=t.n(l),i=t(169),u=t(5617),p=(t(6477),t(7384)),m=t(4724);let h,k,g;t(3086);const{defineElement:b,property:w}=(0,i.createDecorators)();let f;var A=new WeakMap;class y extends u.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,A,k(this)),g(this)}get content(){return(0,s.A)(A,this)}set content(e){(0,a.A)(A,this,e)}render(){return d().createElement(p.N,{content:this.content})}}o=y,({e:[k,g],c:[f,h]}=(0,c.A)(o,[b("eo-markdown-display",{styleTexts:[m.A]})],[[w(),1,"content"]],0,void 0,u.ReactNextElement)),h()},7148:(e,r,t)=>{t.d(r,{A:()=>c});var o=t(6758),n=t.n(o),a=t(935),s=t.n(a)()(n());s.push([e.id,':root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}',""]);const c=s},4724:(e,r,t)=>{t.d(r,{A:()=>d});var o=t(6758),n=t.n(o),a=t(935),s=t.n(a),c=t(6131),l=s()(n());l.i(c.A),l.push([e.id,":host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}",""]);const d=l.toString()},6131:(e,r,t)=>{t.d(r,{A:()=>d});var o=t(6758),n=t.n(o),a=t(935),s=t.n(a),c=t(7745),l=s()(n());l.i(c.A),l.push([e.id,"",""]);const d=l.toString()},3086:(e,r,t)=>{var o=t(2591),n=t.n(o),a=t(1740),s=t.n(a),c=t(8128),l=t.n(c),d=t(855),i=t.n(d),u=t(3051),p=t.n(u),m=t(3656),h=t.n(m),k=t(7148),g={};g.styleTagTransform=h(),g.setAttributes=i(),g.insert=l().bind(null,"head"),g.domAPI=s(),g.insertStyleElement=p(),n()(k.A,g),k.A&&k.A.locals&&k.A.locals},7384:(e,r,t)=>{t.d(r,{N:()=>u});var o=t(8769),n=t(1085),a=t(45),s=t(
|
|
2
|
-
//# sourceMappingURL=eo-markdown-display.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[838],{7471:(e,r,t)=>{t.r(r),t.d(r,{MarkdownDisplay:()=>f});var o,n=t(918),a=t(6121),s=t(829),c=t(2740),l=t(8769),d=t.n(l),i=t(169),u=t(5617),p=(t(6477),t(7384)),m=t(4724);let h,k,g;t(3086);const{defineElement:b,property:w}=(0,i.createDecorators)();let f;var A=new WeakMap;class y extends u.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,A,k(this)),g(this)}get content(){return(0,s.A)(A,this)}set content(e){(0,a.A)(A,this,e)}render(){return d().createElement(p.N,{content:this.content})}}o=y,({e:[k,g],c:[f,h]}=(0,c.A)(o,[b("eo-markdown-display",{styleTexts:[m.A]})],[[w(),1,"content"]],0,void 0,u.ReactNextElement)),h()},7148:(e,r,t)=>{t.d(r,{A:()=>c});var o=t(6758),n=t.n(o),a=t(935),s=t.n(a)()(n());s.push([e.id,':root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}',""]);const c=s},4724:(e,r,t)=>{t.d(r,{A:()=>d});var o=t(6758),n=t.n(o),a=t(935),s=t.n(a),c=t(6131),l=s()(n());l.i(c.A),l.push([e.id,":host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}",""]);const d=l.toString()},6131:(e,r,t)=>{t.d(r,{A:()=>d});var o=t(6758),n=t.n(o),a=t(935),s=t.n(a),c=t(7745),l=s()(n());l.i(c.A),l.push([e.id,"",""]);const d=l.toString()},3086:(e,r,t)=>{var o=t(2591),n=t.n(o),a=t(1740),s=t.n(a),c=t(8128),l=t.n(c),d=t(855),i=t.n(d),u=t(3051),p=t.n(u),m=t(3656),h=t.n(m),k=t(7148),g={};g.styleTagTransform=h(),g.setAttributes=i(),g.insert=l().bind(null,"head"),g.domAPI=s(),g.insertStyleElement=p(),n()(k.A,g),k.A&&k.A.locals&&k.A.locals},7384:(e,r,t)=>{t.d(r,{N:()=>u});var o=t(8769),n=t(1085),a=t(45),s=t(5301),c=t(3730),l=t(5487),d=t(1250);const i={Fragment:n.Fragment,jsx:n.jsx,jsxs:n.jsxs};function u(e){let{content:r}=e;const[t,n]=(0,o.useState)(null);return(0,o.useEffect)((()=>{let e=!1;return(0,a.l)().use(s.A).use(c.A).use([d.N]).use(l.A,i).process(r).then((r=>{e||n(r.result)})).catch((r=>{e||(console.error("Convert markdown failed:",r),n(null))})),()=>{e=!0}}),[r]),t}},1250:(e,r,t)=>{t.d(r,{N:()=>s});var o=t(3544),n=t(4650),a=t(9830);function s(){function e(e,r,t){if(!t||"pre"!==t.tagName||"code"!==e.tagName)return;const o=function(e){const r=e.properties.className||[];for(const e of r)if("language-"===e.slice(0,9))return e.slice(9).toLowerCase();return null}(e);if(null===o)return;let s;try{t.properties.className=(t.properties.className||[]).concat("language-"+o),s=a.L.highlight((0,n.d)(e),o)}catch{return}e.children=s.children}return r=>{(0,o.YR)(r,"element",e)}}}}]);
|
|
2
|
+
//# sourceMappingURL=eo-markdown-display.8b5ae0c9.js.map
|
package/dist/chunks/{eo-markdown-display.cc672b78.js.map → eo-markdown-display.8b5ae0c9.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-markdown-display.cc672b78.js","mappings":"iTAQA,MAAM,cAAEA,EAAa,SAAEC,IAAaC,EAAAA,EAAAA,oBAAmB,IAAAC,EAAA,IAAAC,EAAA,IAAAC,QAUvD,MAAAC,UAG8BC,EAAAA,iBAAiDC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAN,EAAAO,EAAA,OAAAC,EAAA,iBAEpEC,GAAO,OAAAC,EAAAA,EAAAA,GAAAV,EAAA,iBAAPS,CAAOE,IAAAC,EAAAA,EAAAA,GAAAZ,EAAA,KAAAW,EAAA,CAEhBE,MAAAA,GACE,OAAOC,IAAAA,cAACC,EAAAA,EAAiB,CAACN,QAASO,KAAKP,SAC1C,EACDQ,EAAAf,IAAAgB,GAAAX,EAAAC,GAAAW,GAAApB,EAAAqB,KAAAC,EAAAA,EAAAA,GAAAJ,EAAA,CAVArB,EAAc,sBAAuB,CACpC0B,WAAY,CAACC,EAAAA,MACb,EAEC1B,IAAU,uBADiBM,EAAAA,mBAAgBiB,G,kEClB1CI,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sTACgG,KAEzI,S,qFCJIH,EAA0B,IAA4B,KAC1DA,EAAwBI,EAAE,KAE1BJ,EAAwBC,KAAK,CAACC,EAAOC,GAAI,oeAAqe,KAE9gB,QAAeH,EAAwBK,U,qFCLnCL,EAA0B,IAA4B,KAC1DA,EAAwBI,EAAE,KAE1BJ,EAAwBC,KAAK,CAACC,EAAOC,GAAI,GAAI,KAE7C,QAAeH,EAAwBK,U,gJCEnCC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IACxBF,EAAQG,OAAS,SAAc,KAAM,QACrCH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,M,0GChB1D,MAAMC,EAAa,CAAEC,SAAQ,WAAEC,IAAG,MAAEC,KAAIA,EAAAA,MAOjC,SAASzB,EAAiB0B,GAAsC,IAArC,QAAEhC,GAAiCgC,EACnE,MAAOC,EAAcC,IAAmBC,EAAAA,EAAAA,UAA6B,MA2BrE,OAzBAC,EAAAA,EAAAA,YAAU,KACR,IAAIC,GAAS,EAmBb,OAlBAC,EAAAA,EAAAA,KACGC,IAAIC,EAAAA,GACJD,IAAIE,EAAAA,GACJF,IAAI,CAACG,EAAAA,IACLH,IAAII,EAAAA,EAAaf,GACjBgB,QAAQ5C,GACR6C,MAAMC,IACAT,GACHH,EAAgBY,EAAMC,OACxB,IAEDC,OAAOC,IACDZ,IAEHa,QAAQD,MAAM,2BAA4BA,GAC1Cf,EAAgB,MAClB,IAEG,KACLG,GAAS,CAAI,CACd,GACA,CAACrC,IAEGiC,CACT,C,oECvCO,SAASS,IACd,SAASS,EACPC,EACAC,EACAC,GAEA,IAAKA,GAA6B,QAAnBA,EAAOC,SAAsC,SAAjBH,EAAKG,QAC9C,OAGF,MAAMC,EAuBV,SAAqBJ,GACnB,MAAMK,EAAaL,EAAKM,WAAWD,WAA0B,GAE7D,IAAK,MAAME,KAAiBF,EAC1B,GAAkC,cAA9BE,EAAcC,MAAM,EAAG,GACzB,OAAOD,EAAcC,MAAM,GAAGC,cAIlC,OAAO,IACT,CAjCiBC,CAAYV,GAEzB,GAAa,OAATI,EACF,OAGF,IAAIT,EACJ,IACEO,EAAOI,WAAWD,WACfH,EAAOI,WAAWD,WAA0B,IAC7CM,OAAO,YAAcP,GACvBT,EAASiB,EAAAA,EAAUC,WAAU7C,EAAAA,EAAAA,GAASgC,GAAOI,EAC/C,CAAE,MACA,MACF,CAEAJ,EAAKc,SAAWnB,EAAOmB,QACzB,CACA,OAAQC,KACNC,EAAAA,EAAAA,IAAMD,EAAM,UAAWhB,EAAQ,CAEnC,C","sources":["webpack:///./src/markdown-display/index.tsx","webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/styles.shadow.css","webpack:///../../shared/markdown/dist/esm/prism-tomorrow.css","webpack:///./src/markdown-display/host-context.css?6555","webpack:///../../src/MarkdownComponent.tsx","webpack:///../../src/rehypePrism.ts"],"sourcesContent":["import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { MarkdownComponent } from \"@next-shared/markdown\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n}\n\n/**\n * 用于展示 markdown 内容的构件。\n */\nexport\n@defineElement(\"eo-markdown-display\", {\n styleTexts: [styleText],\n})\nclass MarkdownDisplay extends ReactNextElement implements MarkdownDisplayProps {\n @property()\n accessor content: string | undefined;\n\n render() {\n return <MarkdownComponent content={this.content} />;\n }\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../shared/markdown/dist/esm/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/prismjs/themes/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport { rehypePrism } from \"./rehypePrism.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({ content }: MarkdownComponentProps) {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n let ignore = false;\n unified()\n .use(remarkParse)\n .use(remarkToRehype)\n .use([rehypePrism])\n .use(rehypeReact, production as RehypeReactOptions)\n .process(content)\n .then((vFile) => {\n if (!ignore) {\n setReactContent(vFile.result);\n }\n })\n .catch((error) => {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n });\n return () => {\n ignore = true;\n };\n }, [content]);\n\n return reactContent;\n}\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport { refractor, type RefractorElement } from \"refractor\";\n\n// Reference https://github.com/mapbox/rehype-prism\nexport function rehypePrism() {\n function visitor(\n node: RefractorElement,\n _index: number | undefined,\n parent: RefractorElement | undefined\n ) {\n if (!parent || parent.tagName !== \"pre\" || node.tagName !== \"code\") {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"language-\" + lang);\n result = refractor.highlight(toString(node), lang);\n } catch {\n return;\n }\n\n node.children = result.children;\n }\n return (tree: RefractorElement) => {\n visit(tree, \"element\", visitor);\n };\n}\n\nfunction getLanguage(node: RefractorElement) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n"],"names":["defineElement","property","createDecorators","_MarkdownDisplay","_A","WeakMap","MarkdownDisplay","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_content","_init_extra_content","content","_classPrivateFieldGet","v","_classPrivateFieldSet","render","React","MarkdownComponent","this","_MarkdownDisplay2","e","c","_initClass","_applyDecs","styleTexts","styleText","___CSS_LOADER_EXPORT___","push","module","id","i","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","production","Fragment","jsx","jsxs","_ref","reactContent","setReactContent","useState","useEffect","ignore","unified","use","remarkParse","remarkToRehype","rehypePrism","rehypeReact","process","then","vFile","result","catch","error","console","visitor","node","_index","parent","tagName","lang","className","properties","classListItem","slice","toLowerCase","getLanguage","concat","refractor","highlight","children","tree","visit"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/eo-markdown-display.8b5ae0c9.js","mappings":"iTAQA,MAAM,cAAEA,EAAa,SAAEC,IAAaC,EAAAA,EAAAA,oBAAmB,IAAAC,EAAA,IAAAC,EAAA,IAAAC,QAUvD,MAAAC,UAG8BC,EAAAA,iBAAiDC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAN,EAAAO,EAAA,OAAAC,EAAA,iBAEpEC,GAAO,OAAAC,EAAAA,EAAAA,GAAAV,EAAA,iBAAPS,CAAOE,IAAAC,EAAAA,EAAAA,GAAAZ,EAAA,KAAAW,EAAA,CAEhBE,MAAAA,GACE,OAAOC,IAAAA,cAACC,EAAAA,EAAiB,CAACN,QAASO,KAAKP,SAC1C,EACDQ,EAAAf,IAAAgB,GAAAX,EAAAC,GAAAW,GAAApB,EAAAqB,KAAAC,EAAAA,EAAAA,GAAAJ,EAAA,CAVArB,EAAc,sBAAuB,CACpC0B,WAAY,CAACC,EAAAA,MACb,EAEC1B,IAAU,uBADiBM,EAAAA,mBAAgBiB,G,kEClB1CI,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sTACgG,KAEzI,S,qFCJIH,EAA0B,IAA4B,KAC1DA,EAAwBI,EAAE,KAE1BJ,EAAwBC,KAAK,CAACC,EAAOC,GAAI,oeAAqe,KAE9gB,QAAeH,EAAwBK,U,qFCLnCL,EAA0B,IAA4B,KAC1DA,EAAwBI,EAAE,KAE1BJ,EAAwBC,KAAK,CAACC,EAAOC,GAAI,GAAI,KAE7C,QAAeH,EAAwBK,U,gJCEnCC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IACxBF,EAAQG,OAAS,SAAc,KAAM,QACrCH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,M,0GChB1D,MAAMC,EAAa,CAAEC,SAAQ,WAAEC,IAAG,MAAEC,KAAIA,EAAAA,MAOjC,SAASzB,EAAiB0B,GAAsC,IAArC,QAAEhC,GAAiCgC,EACnE,MAAOC,EAAcC,IAAmBC,EAAAA,EAAAA,UAA6B,MA2BrE,OAzBAC,EAAAA,EAAAA,YAAU,KACR,IAAIC,GAAS,EAmBb,OAlBAC,EAAAA,EAAAA,KACGC,IAAIC,EAAAA,GACJD,IAAIE,EAAAA,GACJF,IAAI,CAACG,EAAAA,IACLH,IAAII,EAAAA,EAAaf,GACjBgB,QAAQ5C,GACR6C,MAAMC,IACAT,GACHH,EAAgBY,EAAMC,OACxB,IAEDC,OAAOC,IACDZ,IAEHa,QAAQD,MAAM,2BAA4BA,GAC1Cf,EAAgB,MAClB,IAEG,KACLG,GAAS,CAAI,CACd,GACA,CAACrC,IAEGiC,CACT,C,oECvCO,SAASS,IACd,SAASS,EACPC,EACAC,EACAC,GAEA,IAAKA,GAA6B,QAAnBA,EAAOC,SAAsC,SAAjBH,EAAKG,QAC9C,OAGF,MAAMC,EAuBV,SAAqBJ,GACnB,MAAMK,EAAaL,EAAKM,WAAWD,WAA0B,GAE7D,IAAK,MAAME,KAAiBF,EAC1B,GAAkC,cAA9BE,EAAcC,MAAM,EAAG,GACzB,OAAOD,EAAcC,MAAM,GAAGC,cAIlC,OAAO,IACT,CAjCiBC,CAAYV,GAEzB,GAAa,OAATI,EACF,OAGF,IAAIT,EACJ,IACEO,EAAOI,WAAWD,WACfH,EAAOI,WAAWD,WAA0B,IAC7CM,OAAO,YAAcP,GACvBT,EAASiB,EAAAA,EAAUC,WAAU7C,EAAAA,EAAAA,GAASgC,GAAOI,EAC/C,CAAE,MACA,MACF,CAEAJ,EAAKc,SAAWnB,EAAOmB,QACzB,CACA,OAAQC,KACNC,EAAAA,EAAAA,IAAMD,EAAM,UAAWhB,EAAQ,CAEnC,C","sources":["webpack:///./src/markdown-display/index.tsx","webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/styles.shadow.css","webpack:///../../shared/markdown/dist/esm/prism-tomorrow.css","webpack:///./src/markdown-display/host-context.css?6555","webpack:///../../src/MarkdownComponent.tsx","webpack:///../../src/rehypePrism.ts"],"sourcesContent":["import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { MarkdownComponent } from \"@next-shared/markdown\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n}\n\n/**\n * 用于展示 markdown 内容的构件。\n */\nexport\n@defineElement(\"eo-markdown-display\", {\n styleTexts: [styleText],\n})\nclass MarkdownDisplay extends ReactNextElement implements MarkdownDisplayProps {\n @property()\n accessor content: string | undefined;\n\n render() {\n return <MarkdownComponent content={this.content} />;\n }\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../shared/markdown/dist/esm/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/prismjs/themes/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport { rehypePrism } from \"./rehypePrism.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({ content }: MarkdownComponentProps) {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n let ignore = false;\n unified()\n .use(remarkParse)\n .use(remarkToRehype)\n .use([rehypePrism])\n .use(rehypeReact, production as RehypeReactOptions)\n .process(content)\n .then((vFile) => {\n if (!ignore) {\n setReactContent(vFile.result);\n }\n })\n .catch((error) => {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n });\n return () => {\n ignore = true;\n };\n }, [content]);\n\n return reactContent;\n}\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport { refractor, type RefractorElement } from \"refractor\";\n\n// Reference https://github.com/mapbox/rehype-prism\nexport function rehypePrism() {\n function visitor(\n node: RefractorElement,\n _index: number | undefined,\n parent: RefractorElement | undefined\n ) {\n if (!parent || parent.tagName !== \"pre\" || node.tagName !== \"code\") {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"language-\" + lang);\n result = refractor.highlight(toString(node), lang);\n } catch {\n return;\n }\n\n node.children = result.children;\n }\n return (tree: RefractorElement) => {\n visit(tree, \"element\", visitor);\n };\n}\n\nfunction getLanguage(node: RefractorElement) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n"],"names":["defineElement","property","createDecorators","_MarkdownDisplay","_A","WeakMap","MarkdownDisplay","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_content","_init_extra_content","content","_classPrivateFieldGet","v","_classPrivateFieldSet","render","React","MarkdownComponent","this","_MarkdownDisplay2","e","c","_initClass","_applyDecs","styleTexts","styleText","___CSS_LOADER_EXPORT___","push","module","id","i","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","production","Fragment","jsx","jsxs","_ref","reactContent","setReactContent","useState","useEffect","ignore","unified","use","remarkParse","remarkToRehype","rehypePrism","rehypeReact","process","then","vFile","result","catch","error","console","visitor","node","_index","parent","tagName","lang","className","properties","classListItem","slice","toLowerCase","getLanguage","concat","refractor","highlight","children","tree","visit"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[967],{7196:(e,t,n)=>{n.r(t),n.d(t,{MarkdownEditor:()=>he,MarkdownEditorComponent:()=>Ce});var a,i=n(4586),o=n(4635),l=n(918),r=n(6902),s=n(5536),c=n(6121),u=n(829),d=n(2740),h=n(9575),m=n(8769),k=n.n(m),p=n(169),b=n(5617),y=(n(6477),n(998)),A=n(1408),g=n(8117),w=n(2466),v=n(
|
|
2
|
-
//# sourceMappingURL=eo-markdown-editor.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[967],{7196:(e,t,n)=>{n.r(t),n.d(t,{MarkdownEditor:()=>he,MarkdownEditorComponent:()=>Ce});var a,i=n(4586),o=n(4635),l=n(918),r=n(6902),s=n(5536),c=n(6121),u=n(829),d=n(2740),h=n(9575),m=n(8769),k=n.n(m),p=n(169),b=n(5617),y=(n(6477),n(998)),A=n(1408),g=n(8117),w=n(2466),v=n(1854),E=n(9760),f=n(135),C=n(6486),M=n(6512),N=n(8653),S=n(1656),W=n(5435),j=n(9796),I=n(3971),_=n(9830),x=n(1151),T=n(4557),q=n(426),D=n(3373),U=n.n(D);let V,$,B,F,O,G,J,K,P,X,L,Q,R,Y,Z,z,H,ee,te,ne,ae,ie,oe;const le=(0,b.wrapBrick)("eo-form-item"),re=(0,b.wrapBrick)("eo-icon"),se=e=>{let{icon:t,onClick:n,tooltip:a}=e;return k().createElement("div",{className:"menu-btn-box",onMouseDown:e=>{null==n||n(),e.preventDefault()}},k().createElement(re,(0,h.A)({style:{verticalAlign:"middle"}},t)),a&&k().createElement("div",{className:"menuIconTooltip"},a))},{defineElement:ce,property:ue,event:de}=(0,p.createDecorators)();let he;var me=new WeakMap,ke=new WeakMap,pe=new WeakMap,be=new WeakMap,ye=new WeakMap,Ae=new WeakMap,ge=new WeakMap,we=new WeakMap,ve=new WeakSet,Ee=new WeakMap;class fe extends q.N{constructor(){super(...arguments),(0,o.A)(this,ve),(0,l.A)(this,me,$(this)),(0,l.A)(this,ke,(B(this),F(this))),(0,l.A)(this,pe,(O(this),G(this))),(0,l.A)(this,be,(J(this),K(this))),(0,l.A)(this,ye,(P(this),X(this))),(0,l.A)(this,Ae,(L(this),Q(this))),(0,l.A)(this,ge,(R(this),Y(this))),(0,l.A)(this,we,(Z(this),z(this))),(0,i.A)(this,"handleUploadImage",(te(this),e=>{(0,s.A)(ve,this,H).emit(e)})),(0,l.A)(this,Ee,ne(this)),(0,i.A)(this,"handleMarkdownValueChange",(oe(this),e=>{var t;null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),this.value=e,(0,s.A)(ve,this,ae).emit(e)}))}get name(){return(0,u.A)(me,this)}set name(e){(0,c.A)(me,this,e)}get label(){return(0,u.A)(ke,this)}set label(e){(0,c.A)(ke,this,e)}get required(){return(0,u.A)(pe,this)}set required(e){(0,c.A)(pe,this,e)}get value(){return(0,u.A)(be,this)}set value(e){(0,c.A)(be,this,e)}get bucketName(){return(0,u.A)(ye,this)}set bucketName(e){(0,c.A)(ye,this,e)}get readonly(){return(0,u.A)(Ae,this)}set readonly(e){(0,c.A)(Ae,this,e)}get containerStyle(){return(0,u.A)(ge,this)}set containerStyle(e){(0,c.A)(ge,this,e)}render(){return k().createElement(w.pb,null,k().createElement(I.vo,null,k().createElement(Ce,{formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,curElement:this,bucketName:this.bucketName,value:this.value,readonly:this.readonly,containerStyle:this.containerStyle,onUploadImage:this.handleUploadImage,onMarkdownValueChange:this.handleMarkdownValueChange})))}}function Ce(e){const{bucketName:t,containerStyle:n,value:a,formElement:i,readonly:o,onUploadImage:l,onMarkdownValueChange:r}=e,[s,c]=(0,m.useState)(!1),u=async(n,a)=>{const i=[];let o=[];for(let e=0;e<n.length;e++){const t=n.item(e);t&&t.type.includes("image")&&i.push(t)}try{o=await Promise.all(i.map((async n=>{const i=await(0,A.i)(t,{file:n,width:0,height:0}),o=(r=null==i?void 0:i.objectName,`/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${e.bucketName}/object/${r}`);var r;const s=n.name;return l&&l({name:s,src:o}),a.nodes.image.createAndFill({src:o,alt:s})})))}catch(e){console.error("upload failed:",e)}return o},d=(0,I.Uv)(),p=(0,I.rJ)(),b=(0,I.$X)(),y=(0,m.useMemo)((()=>o?[]:[S.Te,x.EI,x.nk,e=>async()=>{e.set(x.EI.key,{view:d({component:x.ST})})},(0,x.jp)(p)].flat()),[o,d,p]),{get:q}=(0,w.hG)((e=>g.KE.make().config((n=>{n.set(g.k,e),n.update(g.QM,(e=>({...e,editable:()=>!o}))),a&&n.set(g.CI,a),n.get(N.Ob).markdownUpdated(((e,t,n)=>{r&&r(t)})).focus((()=>{c(!0)})).blur((()=>{c(!1)})),t&&n.update(C.wu.key,(e=>({...e,uploader:u}))),n.update(j.mS.key,(e=>({...e,configureRefractor:()=>_.L})))})).config(E.E).use(N.F_).use(v.PD).use(f.b6).use(S.Te).use(W.pZ).use(C.Se).use(y).use(j.Wj).use(o?[]:(0,M.m5)(v.Ay.node,(()=>b({component:T.N}))))),[]);function D(e,t){var n;return null===(n=q())||void 0===n?void 0:n.action((0,M.KD)(e,t))}(0,m.useEffect)((()=>{var e;i&&void 0!==a&&!s&&(null===(e=q())||void 0===e||e.action((0,M.yh)(a)))}),[q(),a]);const V=[{icon:{lib:"antd",icon:"undo"},onClick:()=>D(f.Eb.key),tooltip:"撤销"},{icon:{lib:"antd",icon:"redo"},onClick:()=>D(f.eD.key),tooltip:"重做"},{icon:{lib:"antd",icon:"bold"},onClick:()=>D(v.vY.key),tooltip:"粗体"},{icon:{lib:"antd",icon:"italic"},onClick:()=>D(v.e0.key),tooltip:"斜体"},{icon:{lib:"antd",icon:"strikethrough"},onClick:()=>D(S.$l.key),tooltip:"删除线"},{icon:{lib:"antd",icon:"table"},onClick:()=>D(S.f$.key),tooltip:"表格"},{icon:{lib:"antd",icon:"unordered-list"},onClick:()=>D(v.Xk.key),tooltip:"无序列表"},{icon:{lib:"antd",icon:"ordered-list"},onClick:()=>D(v.Ej.key),tooltip:"有序列表"},{icon:{lib:"fa",icon:"quote-right"},onClick:()=>D(v.oO.key),tooltip:"块引用"}];return k().createElement(le,(0,h.A)({exportparts:"message"},e),k().createElement("div",{className:U()("markdown-container",{readonly:o}),style:n},!o&&k().createElement("div",{className:"menu-container-outter"},k().createElement("div",{className:"menu-container-inner prose"},V.map((e=>k().createElement(se,(0,h.A)({},e,{key:JSON.stringify(e.icon)})))))),k().createElement("div",{className:"editor-container"},k().createElement(w.y5,null))))}a=fe,({e:[$,B,F,O,G,J,K,P,X,L,Q,R,Y,Z,z,H,ee,te,ne,ae,ie,oe],c:[he,V]}=(0,d.A)(a,[ce("eo-markdown-editor",{styleTexts:[y.A],alias:["markdown.markdown-editor"]})],[[ue(),1,"name"],[ue(),1,"label"],[ue({type:Boolean}),1,"required"],[ue(),1,"value"],[ue(),1,"bucketName"],[ue({type:Boolean}),1,"readonly"],[ue({attribute:!1}),1,"containerStyle"],[de({type:"image.upload"}),1,"uploadImage",e=>(0,u.A)(we,e),(e,t)=>(0,c.A)(we,e,t)],[de({type:"markdown.value.change"}),1,"markdownValueChange",e=>(0,u.A)(Ee,e),(e,t)=>(0,c.A)(Ee,e,t)]],0,(e=>ve.has((0,r.A)(e))),q.N)),V()}}]);
|
|
2
|
+
//# sourceMappingURL=eo-markdown-editor.4e7a9fe3.js.map
|
package/dist/chunks/{eo-markdown-editor.651cb155.js.map → eo-markdown-editor.4e7a9fe3.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-markdown-editor.651cb155.js","mappings":"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","sources":["webpack:///./src/markdown-editor/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./markdown-editor.shadow.css\";\nimport { ObjectStoreApi_putObject } from \"@next-api-sdk/object-store-sdk\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { CmdKey } from \"@milkdown/core\";\nimport {\n defaultValueCtx,\n Editor,\n editorViewOptionsCtx,\n rootCtx,\n} from \"@milkdown/core\";\nimport { Milkdown, MilkdownProvider, useEditor } from \"@milkdown/react\";\nimport {\n commonmark,\n toggleStrongCommand,\n toggleEmphasisCommand,\n wrapInBulletListCommand,\n wrapInOrderedListCommand,\n wrapInBlockquoteCommand,\n codeBlockSchema,\n} from \"@milkdown/preset-commonmark\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { nord } from \"@milkdown/theme-nord\";\nimport { history, redoCommand, undoCommand } from \"@milkdown/plugin-history\";\nimport { upload, uploadConfig, Uploader } from \"@milkdown/plugin-upload\";\nimport { callCommand, $view, replaceAll } from \"@milkdown/utils\";\nimport type { Node } from \"@milkdown/prose/model\";\nimport { listener, listenerCtx } from \"@milkdown/plugin-listener\";\nimport {\n gfm,\n toggleStrikethroughCommand,\n insertTableCommand,\n} from \"@milkdown/preset-gfm\";\nimport { indent } from \"@milkdown/plugin-indent\";\nimport { Ctx, MilkdownPlugin } from \"@milkdown/ctx\";\nimport { prism, prismConfig } from \"@milkdown/plugin-prism\";\nimport {\n usePluginViewFactory,\n ProsemirrorAdapterProvider,\n useWidgetViewFactory,\n useNodeViewFactory,\n} from \"@prosemirror-adapter/react\";\nimport { refractor } from \"refractor/lib/common\";\nimport {\n tableSelectorPlugin,\n TableTooltip,\n tableTooltip,\n tableTooltipCtx,\n} from \"./components/TableWidget.js\";\nimport { CodeBlock } from \"./components/CodeBlock.js\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst MenuButton: FC<MenuButtonProps> = ({ icon, onClick, tooltip }) => {\n return (\n <div\n className=\"menu-btn-box\"\n onMouseDown={(e) => {\n onClick?.();\n e.preventDefault();\n }}\n >\n <WrappedIcon style={{ verticalAlign: \"middle\" }} {...icon} />\n {tooltip && <div className=\"menuIconTooltip\">{tooltip}</div>}\n </div>\n );\n};\n\nexport interface MenuButtonProps {\n icon: GeneralIconProps;\n onClick?: () => void;\n tooltip?: string;\n}\n\nexport interface MarkdownEditorProps extends FormItemProps {\n value?: string;\n bucketName?: string;\n containerStyle?: React.CSSProperties;\n readonly?: boolean;\n onUploadImage?: (value: ImageInfo) => void;\n onMarkdownValueChange?: (value: string) => void;\n}\n\nexport interface ImageInfo {\n name: string;\n src: string;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n@defineElement(\"eo-markdown-editor\", {\n styleTexts: [styleText],\n alias: [\"markdown.markdown-editor\"],\n})\n\n/**\n * markdown编辑器\n * @docKind brick\n * @author kehua\n * @noInheritDoc\n * @category form-input-advanced\n */\nclass MarkdownEditor extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n * @group basic\n */\n @property() accessor value: string | undefined;\n\n /**\n * 对象存储桶名字,请在业务编排的时候与后台同学商量创建,一般一个业务需求对应一个存储桶名称。如不传则默认以base64格式转换图片\n * @group advanced\n */\n @property() accessor bucketName: string | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 外层容器样式\n */\n @property({\n attribute: false,\n })\n accessor containerStyle: React.CSSProperties | undefined;\n\n /**\n * 上传图片时触发的事件\n * @detail\n */\n @event({ type: \"image.upload\" })\n accessor #uploadImage!: EventEmitter<ImageInfo>;\n\n private handleUploadImage = (value: ImageInfo): void => {\n this.#uploadImage.emit(value);\n };\n\n /**\n * 编辑markdown触发的变化事件\n * @detail\n */\n @event({ type: \"markdown.value.change\" })\n accessor #markdownValueChange!: EventEmitter<string>;\n\n handleMarkdownValueChange = (value: string): void => {\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.value = value;\n this.#markdownValueChange.emit(value);\n };\n\n render() {\n return (\n <MilkdownProvider>\n <ProsemirrorAdapterProvider>\n <MarkdownEditorComponent\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n curElement={this}\n bucketName={this.bucketName}\n value={this.value}\n readonly={this.readonly}\n containerStyle={this.containerStyle}\n onUploadImage={this.handleUploadImage}\n onMarkdownValueChange={this.handleMarkdownValueChange}\n />\n </ProsemirrorAdapterProvider>\n </MilkdownProvider>\n );\n }\n}\n\nexport { MarkdownEditor };\n\nexport function MarkdownEditorComponent(props: MarkdownEditorProps) {\n const {\n bucketName,\n containerStyle,\n value,\n formElement,\n readonly,\n onUploadImage,\n onMarkdownValueChange,\n } = props;\n\n const [isFocus, setIsFocus] = useState(false);\n\n const transformResponseToUrl = (objectName: string): string => {\n return `/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${props.bucketName}/object/${objectName}`;\n };\n\n const uploader: Uploader = async (files: FileList, schema: any) => {\n const images: File[] = [];\n let nodes: Node[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n\n if (!file) {\n continue;\n }\n\n // Only handle image\n if (!file.type.includes(\"image\")) {\n continue;\n }\n\n images.push(file);\n }\n\n // upload file\n try {\n nodes = await Promise.all(\n images.map(async (image) => {\n const response: any = await ObjectStoreApi_putObject(\n bucketName as string,\n {\n file: image,\n width: 0,\n height: 0,\n }\n );\n const src = transformResponseToUrl(response?.objectName as string);\n const alt = image.name;\n onUploadImage && onUploadImage({ name: alt, src });\n return schema.nodes.image.createAndFill({\n src,\n alt,\n }) as Node;\n })\n );\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\"upload failed:\", err);\n }\n\n return nodes;\n };\n\n const pluginViewFactory = usePluginViewFactory();\n const widgetViewFactory = useWidgetViewFactory();\n const nodeViewFactory = useNodeViewFactory();\n\n const gfmPlugins: MilkdownPlugin[] = useMemo(() => {\n return readonly\n ? []\n : [\n gfm,\n tableTooltip,\n tableTooltipCtx,\n (ctx: Ctx) => async () => {\n ctx.set(tableTooltip.key, {\n view: pluginViewFactory({\n component: TableTooltip,\n }),\n });\n },\n tableSelectorPlugin(widgetViewFactory),\n ].flat();\n }, [readonly, pluginViewFactory, widgetViewFactory]);\n\n const { get } = useEditor((root: any) => {\n return Editor.make()\n .config((ctx: any) => {\n // 配置root\n ctx.set(rootCtx, root);\n ctx.update(editorViewOptionsCtx, (prev: any) => ({\n ...prev,\n editable: () => !readonly,\n }));\n // 配置默认值\n value && ctx.set(defaultValueCtx, value);\n // 配置事件监听\n ctx\n .get(listenerCtx)\n .markdownUpdated(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (ctx: any, markdown: string, prevMarkdown: string) => {\n onMarkdownValueChange && onMarkdownValueChange(markdown);\n }\n )\n .focus(() => {\n setIsFocus(true);\n })\n .blur(() => {\n setIsFocus(false);\n });\n // 配置文件上传,不传bucketName则默认把图片转为base64格式\n bucketName &&\n ctx.update(uploadConfig.key, (prev: any) => ({\n ...prev,\n uploader,\n }));\n // 支持code代码高亮\n ctx.update(prismConfig.key, (prev: any) => ({\n ...prev,\n configureRefractor: () => refractor,\n }));\n })\n .config(nord)\n .use(listener)\n .use(commonmark)\n .use(history)\n .use(gfm)\n .use(indent)\n .use(upload)\n .use(gfmPlugins)\n .use(prism)\n .use(\n readonly\n ? []\n : $view(codeBlockSchema.node, () =>\n nodeViewFactory({ component: CodeBlock })\n )\n );\n }, []);\n\n useEffect(() => {\n // 当编辑器没有处在focus状态,即初始化或者通过其他构件重置值时,才允许调用replaceAll修改其值\n // 防止与用户输入动作起冲突\n if (formElement && value !== undefined && !isFocus) {\n get()?.action(replaceAll(value));\n }\n }, [get(), value]);\n\n function call<T>(command: CmdKey<T>, payload?: T) {\n return get()?.action(callCommand(command, payload));\n }\n\n const MenuBtnData: MenuButtonProps[] = [\n {\n icon: { lib: \"antd\", icon: \"undo\" },\n onClick: () => call(undoCommand.key),\n tooltip: \"撤销\",\n },\n {\n icon: { lib: \"antd\", icon: \"redo\" },\n onClick: () => call(redoCommand.key),\n tooltip: \"重做\",\n },\n {\n icon: { lib: \"antd\", icon: \"bold\" },\n onClick: () => call(toggleStrongCommand.key),\n tooltip: \"粗体\",\n },\n {\n icon: { lib: \"antd\", icon: \"italic\" },\n onClick: () => call(toggleEmphasisCommand.key),\n tooltip: \"斜体\",\n },\n {\n icon: { lib: \"antd\", icon: \"strikethrough\" },\n onClick: () => call(toggleStrikethroughCommand.key),\n tooltip: \"删除线\",\n },\n {\n icon: { lib: \"antd\", icon: \"table\" },\n onClick: () => call(insertTableCommand.key),\n tooltip: \"表格\",\n },\n {\n icon: { lib: \"antd\", icon: \"unordered-list\" },\n onClick: () => call(wrapInBulletListCommand.key),\n tooltip: \"无序列表\",\n },\n {\n icon: { lib: \"antd\", icon: \"ordered-list\" },\n onClick: () => call(wrapInOrderedListCommand.key),\n tooltip: \"有序列表\",\n },\n {\n icon: { lib: \"fa\", icon: \"quote-right\" },\n onClick: () => call(wrapInBlockquoteCommand.key),\n tooltip: \"块引用\",\n },\n ];\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n className={classNames(\"markdown-container\", {\n readonly,\n })}\n style={containerStyle}\n >\n {!readonly && (\n <div className=\"menu-container-outter\">\n <div className=\"menu-container-inner prose\">\n {MenuBtnData.map((item) => (\n <MenuButton {...item} key={JSON.stringify(item.icon)} />\n ))}\n </div>\n </div>\n )}\n <div className=\"editor-container\">\n <Milkdown />\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n"],"names":["WrappedFormItem","wrapBrick","WrappedIcon","MenuButton","_ref","icon","onClick","tooltip","React","className","onMouseDown","e","preventDefault","_extends","style","verticalAlign","defineElement","property","event","createDecorators","_MarkdownEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_MarkdownEditor_brand","WeakSet","_I","MarkdownEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_bucketName","_init_extra_bucketName","_init_readonly","_init_extra_readonly","_init_containerStyle","_init_extra_containerStyle","_init_uploadImage","_defineProperty","_init_extra_uploadImage","value","_classPrivateGetter","this","_get_uploadImage","emit","_init_markdownValueChange","_init_extra_markdownValueChange","_this$getFormElement","getFormElement","formStore","onChange","name","_get_markdownValueChange","_classPrivateFieldGet","v","_classPrivateFieldSet","label","required","bucketName","readonly","containerStyle","render","MilkdownProvider","ProsemirrorAdapterProvider","MarkdownEditorComponent","formElement","curElement","onUploadImage","handleUploadImage","onMarkdownValueChange","handleMarkdownValueChange","props","isFocus","setIsFocus","useState","uploader","async","files","schema","images","nodes","i","length","file","item","type","includes","push","Promise","all","map","response","ObjectStoreApi_putObject","image","width","height","src","objectName","alt","createAndFill","err","console","error","pluginViewFactory","usePluginViewFactory","widgetViewFactory","useWidgetViewFactory","nodeViewFactory","useNodeViewFactory","gfmPlugins","useMemo","gfm","tableTooltip","tableTooltipCtx","ctx","set","key","view","component","TableTooltip","tableSelectorPlugin","flat","get","useEditor","root","Editor","make","config","rootCtx","update","editorViewOptionsCtx","prev","editable","defaultValueCtx","listenerCtx","markdownUpdated","markdown","prevMarkdown","focus","blur","uploadConfig","prismConfig","configureRefractor","refractor","nord","use","listener","commonmark","history","indent","upload","prism","$view","codeBlockSchema","node","CodeBlock","call","command","payload","_get2","action","callCommand","useEffect","_get","undefined","replaceAll","MenuBtnData","lib","undoCommand","redoCommand","toggleStrongCommand","toggleEmphasisCommand","toggleStrikethroughCommand","insertTableCommand","wrapInBulletListCommand","wrapInOrderedListCommand","wrapInBlockquoteCommand","exportparts","classNames","JSON","stringify","Milkdown","_MarkdownEditor2","_set_uploadImage","_set_markdownValueChange","c","_initClass","_applyDecs","styleTexts","styleText","alias","Boolean","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/eo-markdown-editor.4e7a9fe3.js","mappings":"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","sources":["webpack:///./src/markdown-editor/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./markdown-editor.shadow.css\";\nimport { ObjectStoreApi_putObject } from \"@next-api-sdk/object-store-sdk\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { CmdKey } from \"@milkdown/core\";\nimport {\n defaultValueCtx,\n Editor,\n editorViewOptionsCtx,\n rootCtx,\n} from \"@milkdown/core\";\nimport { Milkdown, MilkdownProvider, useEditor } from \"@milkdown/react\";\nimport {\n commonmark,\n toggleStrongCommand,\n toggleEmphasisCommand,\n wrapInBulletListCommand,\n wrapInOrderedListCommand,\n wrapInBlockquoteCommand,\n codeBlockSchema,\n} from \"@milkdown/preset-commonmark\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { nord } from \"@milkdown/theme-nord\";\nimport { history, redoCommand, undoCommand } from \"@milkdown/plugin-history\";\nimport { upload, uploadConfig, Uploader } from \"@milkdown/plugin-upload\";\nimport { callCommand, $view, replaceAll } from \"@milkdown/utils\";\nimport type { Node } from \"@milkdown/prose/model\";\nimport { listener, listenerCtx } from \"@milkdown/plugin-listener\";\nimport {\n gfm,\n toggleStrikethroughCommand,\n insertTableCommand,\n} from \"@milkdown/preset-gfm\";\nimport { indent } from \"@milkdown/plugin-indent\";\nimport { Ctx, MilkdownPlugin } from \"@milkdown/ctx\";\nimport { prism, prismConfig } from \"@milkdown/plugin-prism\";\nimport {\n usePluginViewFactory,\n ProsemirrorAdapterProvider,\n useWidgetViewFactory,\n useNodeViewFactory,\n} from \"@prosemirror-adapter/react\";\nimport { refractor } from \"refractor/lib/common\";\nimport {\n tableSelectorPlugin,\n TableTooltip,\n tableTooltip,\n tableTooltipCtx,\n} from \"./components/TableWidget.js\";\nimport { CodeBlock } from \"./components/CodeBlock.js\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst MenuButton: FC<MenuButtonProps> = ({ icon, onClick, tooltip }) => {\n return (\n <div\n className=\"menu-btn-box\"\n onMouseDown={(e) => {\n onClick?.();\n e.preventDefault();\n }}\n >\n <WrappedIcon style={{ verticalAlign: \"middle\" }} {...icon} />\n {tooltip && <div className=\"menuIconTooltip\">{tooltip}</div>}\n </div>\n );\n};\n\nexport interface MenuButtonProps {\n icon: GeneralIconProps;\n onClick?: () => void;\n tooltip?: string;\n}\n\nexport interface MarkdownEditorProps extends FormItemProps {\n value?: string;\n bucketName?: string;\n containerStyle?: React.CSSProperties;\n readonly?: boolean;\n onUploadImage?: (value: ImageInfo) => void;\n onMarkdownValueChange?: (value: string) => void;\n}\n\nexport interface ImageInfo {\n name: string;\n src: string;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n@defineElement(\"eo-markdown-editor\", {\n styleTexts: [styleText],\n alias: [\"markdown.markdown-editor\"],\n})\n\n/**\n * markdown编辑器\n * @docKind brick\n * @author kehua\n * @noInheritDoc\n * @category form-input-advanced\n */\nclass MarkdownEditor extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n * @group basic\n */\n @property() accessor value: string | undefined;\n\n /**\n * 对象存储桶名字,请在业务编排的时候与后台同学商量创建,一般一个业务需求对应一个存储桶名称。如不传则默认以base64格式转换图片\n * @group advanced\n */\n @property() accessor bucketName: string | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 外层容器样式\n */\n @property({\n attribute: false,\n })\n accessor containerStyle: React.CSSProperties | undefined;\n\n /**\n * 上传图片时触发的事件\n * @detail\n */\n @event({ type: \"image.upload\" })\n accessor #uploadImage!: EventEmitter<ImageInfo>;\n\n private handleUploadImage = (value: ImageInfo): void => {\n this.#uploadImage.emit(value);\n };\n\n /**\n * 编辑markdown触发的变化事件\n * @detail\n */\n @event({ type: \"markdown.value.change\" })\n accessor #markdownValueChange!: EventEmitter<string>;\n\n handleMarkdownValueChange = (value: string): void => {\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.value = value;\n this.#markdownValueChange.emit(value);\n };\n\n render() {\n return (\n <MilkdownProvider>\n <ProsemirrorAdapterProvider>\n <MarkdownEditorComponent\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n curElement={this}\n bucketName={this.bucketName}\n value={this.value}\n readonly={this.readonly}\n containerStyle={this.containerStyle}\n onUploadImage={this.handleUploadImage}\n onMarkdownValueChange={this.handleMarkdownValueChange}\n />\n </ProsemirrorAdapterProvider>\n </MilkdownProvider>\n );\n }\n}\n\nexport { MarkdownEditor };\n\nexport function MarkdownEditorComponent(props: MarkdownEditorProps) {\n const {\n bucketName,\n containerStyle,\n value,\n formElement,\n readonly,\n onUploadImage,\n onMarkdownValueChange,\n } = props;\n\n const [isFocus, setIsFocus] = useState(false);\n\n const transformResponseToUrl = (objectName: string): string => {\n return `/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${props.bucketName}/object/${objectName}`;\n };\n\n const uploader: Uploader = async (files: FileList, schema: any) => {\n const images: File[] = [];\n let nodes: Node[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n\n if (!file) {\n continue;\n }\n\n // Only handle image\n if (!file.type.includes(\"image\")) {\n continue;\n }\n\n images.push(file);\n }\n\n // upload file\n try {\n nodes = await Promise.all(\n images.map(async (image) => {\n const response: any = await ObjectStoreApi_putObject(\n bucketName as string,\n {\n file: image,\n width: 0,\n height: 0,\n }\n );\n const src = transformResponseToUrl(response?.objectName as string);\n const alt = image.name;\n onUploadImage && onUploadImage({ name: alt, src });\n return schema.nodes.image.createAndFill({\n src,\n alt,\n }) as Node;\n })\n );\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\"upload failed:\", err);\n }\n\n return nodes;\n };\n\n const pluginViewFactory = usePluginViewFactory();\n const widgetViewFactory = useWidgetViewFactory();\n const nodeViewFactory = useNodeViewFactory();\n\n const gfmPlugins: MilkdownPlugin[] = useMemo(() => {\n return readonly\n ? []\n : [\n gfm,\n tableTooltip,\n tableTooltipCtx,\n (ctx: Ctx) => async () => {\n ctx.set(tableTooltip.key, {\n view: pluginViewFactory({\n component: TableTooltip,\n }),\n });\n },\n tableSelectorPlugin(widgetViewFactory),\n ].flat();\n }, [readonly, pluginViewFactory, widgetViewFactory]);\n\n const { get } = useEditor((root: any) => {\n return Editor.make()\n .config((ctx: any) => {\n // 配置root\n ctx.set(rootCtx, root);\n ctx.update(editorViewOptionsCtx, (prev: any) => ({\n ...prev,\n editable: () => !readonly,\n }));\n // 配置默认值\n value && ctx.set(defaultValueCtx, value);\n // 配置事件监听\n ctx\n .get(listenerCtx)\n .markdownUpdated(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (ctx: any, markdown: string, prevMarkdown: string) => {\n onMarkdownValueChange && onMarkdownValueChange(markdown);\n }\n )\n .focus(() => {\n setIsFocus(true);\n })\n .blur(() => {\n setIsFocus(false);\n });\n // 配置文件上传,不传bucketName则默认把图片转为base64格式\n bucketName &&\n ctx.update(uploadConfig.key, (prev: any) => ({\n ...prev,\n uploader,\n }));\n // 支持code代码高亮\n ctx.update(prismConfig.key, (prev: any) => ({\n ...prev,\n configureRefractor: () => refractor,\n }));\n })\n .config(nord)\n .use(listener)\n .use(commonmark)\n .use(history)\n .use(gfm)\n .use(indent)\n .use(upload)\n .use(gfmPlugins)\n .use(prism)\n .use(\n readonly\n ? []\n : $view(codeBlockSchema.node, () =>\n nodeViewFactory({ component: CodeBlock })\n )\n );\n }, []);\n\n useEffect(() => {\n // 当编辑器没有处在focus状态,即初始化或者通过其他构件重置值时,才允许调用replaceAll修改其值\n // 防止与用户输入动作起冲突\n if (formElement && value !== undefined && !isFocus) {\n get()?.action(replaceAll(value));\n }\n }, [get(), value]);\n\n function call<T>(command: CmdKey<T>, payload?: T) {\n return get()?.action(callCommand(command, payload));\n }\n\n const MenuBtnData: MenuButtonProps[] = [\n {\n icon: { lib: \"antd\", icon: \"undo\" },\n onClick: () => call(undoCommand.key),\n tooltip: \"撤销\",\n },\n {\n icon: { lib: \"antd\", icon: \"redo\" },\n onClick: () => call(redoCommand.key),\n tooltip: \"重做\",\n },\n {\n icon: { lib: \"antd\", icon: \"bold\" },\n onClick: () => call(toggleStrongCommand.key),\n tooltip: \"粗体\",\n },\n {\n icon: { lib: \"antd\", icon: \"italic\" },\n onClick: () => call(toggleEmphasisCommand.key),\n tooltip: \"斜体\",\n },\n {\n icon: { lib: \"antd\", icon: \"strikethrough\" },\n onClick: () => call(toggleStrikethroughCommand.key),\n tooltip: \"删除线\",\n },\n {\n icon: { lib: \"antd\", icon: \"table\" },\n onClick: () => call(insertTableCommand.key),\n tooltip: \"表格\",\n },\n {\n icon: { lib: \"antd\", icon: \"unordered-list\" },\n onClick: () => call(wrapInBulletListCommand.key),\n tooltip: \"无序列表\",\n },\n {\n icon: { lib: \"antd\", icon: \"ordered-list\" },\n onClick: () => call(wrapInOrderedListCommand.key),\n tooltip: \"有序列表\",\n },\n {\n icon: { lib: \"fa\", icon: \"quote-right\" },\n onClick: () => call(wrapInBlockquoteCommand.key),\n tooltip: \"块引用\",\n },\n ];\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n className={classNames(\"markdown-container\", {\n readonly,\n })}\n style={containerStyle}\n >\n {!readonly && (\n <div className=\"menu-container-outter\">\n <div className=\"menu-container-inner prose\">\n {MenuBtnData.map((item) => (\n <MenuButton {...item} key={JSON.stringify(item.icon)} />\n ))}\n </div>\n </div>\n )}\n <div className=\"editor-container\">\n <Milkdown />\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n"],"names":["WrappedFormItem","wrapBrick","WrappedIcon","MenuButton","_ref","icon","onClick","tooltip","React","className","onMouseDown","e","preventDefault","_extends","style","verticalAlign","defineElement","property","event","createDecorators","_MarkdownEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_MarkdownEditor_brand","WeakSet","_I","MarkdownEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_bucketName","_init_extra_bucketName","_init_readonly","_init_extra_readonly","_init_containerStyle","_init_extra_containerStyle","_init_uploadImage","_defineProperty","_init_extra_uploadImage","value","_classPrivateGetter","this","_get_uploadImage","emit","_init_markdownValueChange","_init_extra_markdownValueChange","_this$getFormElement","getFormElement","formStore","onChange","name","_get_markdownValueChange","_classPrivateFieldGet","v","_classPrivateFieldSet","label","required","bucketName","readonly","containerStyle","render","MilkdownProvider","ProsemirrorAdapterProvider","MarkdownEditorComponent","formElement","curElement","onUploadImage","handleUploadImage","onMarkdownValueChange","handleMarkdownValueChange","props","isFocus","setIsFocus","useState","uploader","async","files","schema","images","nodes","i","length","file","item","type","includes","push","Promise","all","map","response","ObjectStoreApi_putObject","image","width","height","src","objectName","alt","createAndFill","err","console","error","pluginViewFactory","usePluginViewFactory","widgetViewFactory","useWidgetViewFactory","nodeViewFactory","useNodeViewFactory","gfmPlugins","useMemo","gfm","tableTooltip","tableTooltipCtx","ctx","set","key","view","component","TableTooltip","tableSelectorPlugin","flat","get","useEditor","root","Editor","make","config","rootCtx","update","editorViewOptionsCtx","prev","editable","defaultValueCtx","listenerCtx","markdownUpdated","markdown","prevMarkdown","focus","blur","uploadConfig","prismConfig","configureRefractor","refractor","nord","use","listener","commonmark","history","indent","upload","prism","$view","codeBlockSchema","node","CodeBlock","call","command","payload","_get2","action","callCommand","useEffect","_get","undefined","replaceAll","MenuBtnData","lib","undoCommand","redoCommand","toggleStrongCommand","toggleEmphasisCommand","toggleStrikethroughCommand","insertTableCommand","wrapInBulletListCommand","wrapInOrderedListCommand","wrapInBlockquoteCommand","exportparts","classNames","JSON","stringify","Milkdown","_MarkdownEditor2","_set_uploadImage","_set_markdownValueChange","c","_initClass","_applyDecs","styleTexts","styleText","alias","Boolean","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var e,r,t,n,o,a,i,l,u,f,
|
|
2
|
-
//# sourceMappingURL=main.
|
|
1
|
+
(()=>{var e,r,t,n,o,a,i,l,u,f,c,s,d,h,p,m,v,b,g,y,x,k,w,S,j,P={7934:(e,r,t)=>{Promise.all([t.e(661),t.e(229),t.e(548),t.e(769),t.e(351),t.e(901),t.e(210),t.e(698)]).then(t.bind(t,698))}},O={};function T(e){var r=O[e];if(void 0!==r)return r.exports;var t=O[e]={id:e,loaded:!1,exports:{}};return P[e].call(t.exports,t,t.exports,T),t.loaded=!0,t.exports}T.m=P,T.c=O,T.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return T.d(r,{a:r}),r},T.d=(e,r)=>{for(var t in r)T.o(r,t)&&!T.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},T.f={},T.e=e=>Promise.all(Object.keys(T.f).reduce(((r,t)=>(T.f[t](e,r),r)),[])),T.u=e=>"chunks/"+e+"."+{41:"cac7a28e",45:"ccff7b67",52:"45084502",114:"03d3ec7a",144:"46ce79aa",210:"da95d283",229:"14ba7fec",250:"b9f31268",351:"b731892e",370:"3a944ca6",426:"a0d6ab31",548:"d2622ec2",661:"eb38763e",698:"c740c490",733:"b47e92e7",769:"40ddf5d1",807:"ee591695",876:"c3b3df28",889:"60b0feb2",901:"ac7489da",989:"b3660646"}[e]+".js",T.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),T.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@next-bricks/markdown:",T.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var i,l;if(void 0!==o)for(var u=document.getElementsByTagName("script"),f=0;f<u.length;f++){var c=u[f];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==r+o){i=c;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,T.nc&&i.setAttribute("nonce",T.nc),i.setAttribute("data-webpack",r+o),i.src=t),e[t]=[n];var s=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),l&&document.head.appendChild(i)}},T.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},T.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{T.S={};var e={},r={};T.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];T.o(T.S,t)||(T.S[t]={});var a=T.S[t],i="@next-bricks/markdown",l=(e,r,t,n)=>{var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},u=[];return"default"===t&&(l("@next-core/element","1.2.14",(()=>T.e(45).then((()=>()=>T(1045))))),l("@next-core/http","1.2.9",(()=>T.e(989).then((()=>()=>T(8989))))),l("@next-core/react-element","1.0.33",(()=>Promise.all([T.e(769),T.e(351),T.e(114)]).then((()=>()=>T(114))))),l("@next-core/theme","1.5.4",(()=>Promise.all([T.e(889),T.e(52)]).then((()=>()=>T(1889))))),l("lodash","4.17.21",(()=>T.e(250).then((()=>()=>T(5250))))),l("react-dom","0.0.0-experimental-ee8509801-20230117",(()=>Promise.all([T.e(144),T.e(769)]).then((()=>()=>T(3144))))),l("react","0.0.0-experimental-ee8509801-20230117",(()=>T.e(41).then((()=>()=>T(4041)))))),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;T.g.importScripts&&(e=T.g.location+"");var r=T.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),T.p=e+"../"})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var o=e[n],a=(typeof o)[0];if(n>=r.length)return"u"==a;var i=r[n],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&o!=i)return o<i;n++}},o=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,a=1;a<e.length;a++)n--,t+="u"==(typeof(l=e[a]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var i=[];for(a=1;a<e.length;a++){var l=e[a];i.push(0===l?"not("+u()+")":1===l?"("+u()+" || "+u()+")":2===l?i.pop()+" "+i.pop():o(l))}return u();function u(){return i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var n=e[0],o=n<0;o&&(n=-n-1);for(var i=0,l=1,u=!0;;l++,i++){var f,c,s=l<e.length?(typeof e[l])[0]:"";if(i>=r.length||"o"==(c=(typeof(f=r[i]))[0]))return!u||("u"==s?l>n&&!o:""==s!=o);if("u"==c){if(!u||"u"!=s)return!1}else if(u)if(s==c)if(l<=n){if(f!=e[l])return!1}else{if(o?f>e[l]:f<e[l])return!1;f!=e[l]&&(u=!1)}else if("s"!=s&&"n"!=s){if(o||l<=n)return!1;u=!1,l--}else{if(l<=n||c<s!=o)return!1;u=!1}else"s"!=s&&"n"!=s&&(u=!1,l--)}}var d=[],h=d.pop.bind(d);for(i=1;i<e.length;i++){var p=e[i];d.push(1==p?h()|h():2==p?h()&h():p?a(p,r):!h())}return!!h()},i=(e,r)=>e&&T.o(e,r),l=e=>(e.loaded=1,e.get()),u=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),f=(e,r,t)=>{var o=t?u(e[r]):e[r];return(r=Object.keys(o).reduce(((e,r)=>!e||n(e,r)?r:e),0))&&o[r]},c=(e,r,t,o)=>{var i=o?u(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!a(t,r)||e&&!n(e,r)?e:r),0))&&i[r]},s=(e,r,t)=>{var o=t?u(e[r]):e[r];return Object.keys(o).reduce(((e,r)=>!e||!o[e].loaded&&n(e,r)?r:e),0)},d=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+o(n)+")",h=(e,r,t,n,a)=>{var i=e[t];return"No satisfying version ("+o(n)+")"+(a?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from "+i[e].from)).join(", ")},p=e=>{throw new Error(e)},m=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},b=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),g=(v=e=>function(r,t,n,o,a){var i=T.I(r);return i&&i.then&&!n?i.then(e.bind(e,r,T.S[r],t,!1,o,a)):e(r,T.S[r],t,n,o,a)})(((e,r,t,n,o)=>i(r,t)?l(f(r,t,n)):b(e,t,o))),y=v(((e,r,t,n,o,a)=>{if(!i(r,t))return b(e,t,a);var u=c(r,t,o,n);return u?l(u):a?a():void p(h(r,e,t,o,n))})),x=v(((e,r,t,n,o,u)=>{if(!i(r,t))return b(e,t,u);var f=s(r,t,n);return a(o,f)||m(d(r,t,f,o)),l(r[t][f])})),k={},w={8769:()=>y("default","react",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>T.e(41).then((()=>()=>T(4041))))),5821:()=>y("default","@next-core/element",!1,[1,1,2,14],(()=>T.e(426).then((()=>()=>T(1045))))),9435:()=>y("default","react-dom",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>T.e(144).then((()=>()=>T(3144))))),169:()=>g("default","@next-core/element",!1,(()=>T.e(807).then((()=>()=>T(1045))))),5617:()=>g("default","@next-core/react-element",!1,(()=>Promise.all([T.e(351),T.e(733)]).then((()=>()=>T(114))))),6477:()=>x("default","@next-core/theme",!1,[1,1,5,4],(()=>T.e(889).then((()=>()=>T(1889))))),6730:()=>x("default","@next-core/http",!1,[1,1,0,0],(()=>T.e(370).then((()=>()=>T(8989))))),9476:()=>y("default","@next-core/react-element",!1,[1,1,0,33],(()=>T.e(876).then((()=>()=>T(114)))))},S={210:[6730,9476],351:[5821,9435],769:[8769],901:[169,5617,6477]},j={},T.f.consumes=(e,r)=>{T.o(S,e)&&S[e].forEach((e=>{if(T.o(k,e))return r.push(k[e]);if(!j[e]){var t=r=>{k[e]=0,T.m[e]=t=>{delete T.c[e],t.exports=r()}};j[e]=!0;var n=r=>{delete k[e],T.m[e]=t=>{throw delete T.c[e],r}};try{var o=w[e]();o.then?r.push(k[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}}))},(()=>{T.b=document.baseURI||self.location.href;var e={792:0};T.f.j=(r,t)=>{var n=T.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(/^(351|769|901)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=T.p+T.u(r),i=new Error;T.l(a,(t=>{if(T.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,o,[a,i,l]=t,u=0;if(a.some((r=>0!==e[r]))){for(n in i)T.o(i,n)&&(T.m[n]=i[n]);l&&l(T)}for(r&&r(t);u<a.length;u++)o=a[u],T.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),T.nc=void 0,T(7934)})();
|
|
2
|
+
//# sourceMappingURL=main.1f35eca7.js.map
|