@next-bricks/markdown 1.15.0 → 1.15.2
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 +6 -6
- package/dist/chunks/2587.6b482a20.js.map +1 -1
- package/dist/chunks/7613.b4599370.js +2 -0
- package/dist/chunks/7613.b4599370.js.map +1 -0
- package/dist/chunks/{7768.078dabf3.js → 9641.4938f7a1.js} +3 -3
- package/dist/chunks/9641.4938f7a1.js.map +1 -0
- package/dist/chunks/eo-markdown-display.2f79ccbd.js.map +1 -1
- package/dist/chunks/eo-markdown-editor.308379bd.js.map +1 -1
- package/dist/chunks/{main.891446ba.js → main.581c3425.js} +2 -2
- package/dist/chunks/{main.891446ba.js.map → main.581c3425.js.map} +1 -1
- package/dist/examples.json +4 -4
- package/dist/{index.98e1d883.js → index.217627f4.js} +2 -2
- package/dist/{index.98e1d883.js.map → index.217627f4.js.map} +1 -1
- package/dist/manifest.json +26 -23
- package/dist-types/markdown-display/index.d.ts +3 -0
- package/dist-types/markdown-editor/index.d.ts +7 -0
- package/docs/eo-markdown-display.md +42 -3
- package/docs/eo-markdown-display.react.md +87 -0
- package/docs/eo-markdown-editor.md +41 -2
- package/docs/eo-markdown-editor.react.md +97 -0
- package/package.json +2 -2
- package/dist/chunks/7613.6f573203.js +0 -2
- package/dist/chunks/7613.6f573203.js.map +0 -1
- package/dist/chunks/7768.078dabf3.js.map +0 -1
- /package/dist/chunks/{7768.078dabf3.js.LICENSE.txt → 9641.4938f7a1.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-markdown-display.2f79ccbd.js","mappings":"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","sources":["webpack:///./src/markdown-display/index.tsx","webpack:///../../src/rehypeMermaid.ts","webpack:///../../src/utils.ts","webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/host-context.css?6555","webpack:///../../src/MarkdownComponent.tsx","webpack:///../../src/index.ts","webpack:///./src/markdown-display/styles.shadow.css"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport \"@next-core/theme\";\nimport {\n MarkdownComponent,\n type Element,\n type MarkdownComponentProps,\n type RehypeExternalLinksOptions,\n} from \"@next-shared/markdown\";\nimport {\n CodeWrapper,\n type CodeWrapperProps,\n} from \"@next-bricks/presentational/code-wrapper\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst WrappedCodeWrapper = wrapBrick<CodeWrapper, CodeWrapperProps>(\n \"presentational.code-wrapper\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n themeVariant?: \"default\" | \"elevo\";\n}\n\nconst externalLinks: RehypeExternalLinksOptions = {\n target: \"_blank\",\n rel: [\"nofollow\", \"noopener\", \"noreferrer\"],\n test: (element: Element) => {\n return isExternalLink(element.properties.href);\n },\n content(element) {\n if (containsImg(element)) {\n return;\n }\n return {\n type: \"element\",\n tagName: \"eo-icon\",\n properties: {\n lib: \"lucide\",\n icon: \"external-link\",\n },\n children: [],\n };\n },\n contentProperties: {\n className: \"external-link-icon\",\n },\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 /**\n * 主题变体\n */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n render() {\n return (\n <MarkdownDisplayComponent\n content={this.content}\n themeVariant={this.themeVariant}\n />\n );\n }\n}\n\nfunction MarkdownDisplayComponent({\n content,\n themeVariant,\n}: MarkdownDisplayProps) {\n const systemTheme = useCurrentTheme();\n const shikiOptions = useMemo<MarkdownComponentProps[\"shiki\"]>(\n () => ({\n theme: systemTheme === \"dark-v2\" ? \"dark-plus\" : \"light-plus\",\n }),\n [systemTheme]\n );\n\n const components = useMemo<MarkdownComponentProps[\"components\"]>(\n () => ({\n pre: function Pre({ node, ...props }) {\n return (\n <WrappedCodeWrapper\n preProps={props}\n showCopyButton={!!props.className?.includes(\"shiki\")}\n themeVariant={themeVariant}\n exportparts=\"pre, copy, mermaid\"\n />\n );\n },\n }),\n [themeVariant]\n );\n\n return (\n <MarkdownComponent\n content={content}\n components={components}\n shiki={shikiOptions}\n externalLinks={externalLinks}\n />\n );\n}\n\nfunction containsImg(element: Element): boolean {\n return element.children.some((child) => {\n if (child.type === \"element\") {\n return child.tagName === \"img\" || containsImg(child);\n }\n return false;\n });\n}\n\nfunction isExternalLink(href: unknown): boolean {\n if (typeof href !== \"string\") {\n return false;\n }\n try {\n const url = new URL(href, `${location.origin}${getBasePath()}`);\n return url.origin !== location.origin;\n } catch {\n return true;\n }\n}\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport type { Element } from \"hast\";\nimport type Mermaid from \"mermaid\";\nimport { fromHtmlIsomorphic } from \"hast-util-from-html-isomorphic\";\nimport { getCodeLanguage } from \"./utils.js\";\n\nlet mermaidPromise: Promise<typeof Mermaid> | undefined;\n\nfunction loadMermaid() {\n if (mermaidPromise) {\n return mermaidPromise;\n }\n mermaidPromise = doLoadMermaid();\n return mermaidPromise;\n}\n\nasync function doLoadMermaid() {\n const mermaid = (await import(\"mermaid\")).default;\n mermaid.initialize({\n startOnLoad: false,\n theme: \"base\",\n themeVariables: {\n fontSize: \"14px\",\n lineColor: \"#979797\",\n primaryColor: \"#DCD2F3\",\n primaryBorderColor: \"#0000001A\",\n },\n });\n return mermaid;\n}\n\nlet count = 0;\n\nconst parser = new DOMParser();\nconst serializer = new XMLSerializer();\n\n// Reference https://github.com/remcohaszing/rehype-mermaid\nexport function rehypeMermaid() {\n return async (tree: Element) => {\n const promises: Promise<void>[] = [];\n\n visit(tree, \"element\", (node, index, parent) => {\n if (\n !parent ||\n parent.type !== \"element\" ||\n parent.tagName !== \"pre\" ||\n node.tagName !== \"code\"\n ) {\n return;\n }\n\n const lang = getCodeLanguage(node);\n\n if (lang !== \"mermaid\") {\n return;\n }\n\n promises.push(\n (async () => {\n const id = `mermaid-${count++}`;\n let svg: string;\n try {\n const mermaid = await loadMermaid();\n const result = await mermaid.render(id, toString(node));\n svg = result.svg;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error rendering mermaid diagram:\", error);\n document.getElementById(id)?.remove();\n return;\n }\n const root = parser.parseFromString(svg, \"text/html\");\n const svgElement = root.querySelector(\"svg\") as SVGSVGElement;\n\n const defs = root.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"defs\"\n );\n defs.innerHTML = `<linearGradient id=\"linear-gradient-${id}\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <stop offset=\"0%\" stop-color=\"#F0EBFA\" />\n <stop offset=\"75%\" stop-color=\"#DED4F4\" />\n <stop offset=\"100%\" stop-color=\"#C5C7FA\" />\n</linearGradient>`;\n svgElement.prepend(defs);\n\n const style = root.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"style\"\n );\n style.textContent = `\n#${id} .node rect,\n#${id} .node circle,\n#${id} .node ellipse,\n#${id} .node polygon,\n#${id} .node path {\n fill: url(#linear-gradient-${id});\n}\n#${id} .node rect {\n rx: 4;\n ry: 4;\n}\n#${id} .labelBkg {\n background-color: #f5f8ff;\n}\n#${id} .edgeLabel,\n#${id} .edgeLabel p {\n background-color: transparent;\n}\n#${id} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`;\n svgElement.appendChild(style);\n\n const modifiedSvg = serializer.serializeToString(svgElement);\n\n const replacements = fromHtmlIsomorphic(modifiedSvg, {\n fragment: true,\n }).children as Element[];\n parent.children.splice(index!, 1, ...replacements);\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"mermaid\");\n })()\n );\n });\n\n await Promise.all(promises);\n };\n}\n","import type { Element } from \"hast\";\n\nexport function getCodeLanguage(node: Element) {\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","// 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","\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, { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeExternalLinks, {\n type Options as RehypeExternalLinksOptions,\n} from \"rehype-external-links\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport type { Components } from \"hast-util-to-jsx-runtime\";\nimport rehypeShikiFromHighlighter from \"@shikijs/rehype/core\";\nimport type { Element } from \"hast\";\nimport { visit } from \"unist-util-visit\";\nimport { getSingletonHighlighter, bundledLanguages } from \"@next-shared/shiki\";\nimport { rehypeMermaid } from \"./rehypeMermaid.js\";\nimport { getCodeLanguage } from \"./utils.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport type { RehypeExternalLinksOptions, Element };\n\nexport interface MarkdownComponentProps {\n content?: string;\n components?: Partial<Components>;\n shiki?: {\n /** @default \"dark-plus\" */\n theme?: \"light-plus\" | \"dark-plus\";\n };\n externalLinks?: RehypeExternalLinksOptions;\n}\n\nexport async function preloadHighlighter(\n theme: \"light-plus\" | \"dark-plus\"\n): Promise<void> {\n await getSingletonHighlighter({\n themes: [theme],\n });\n}\n\nfunction rehypeFallbackLanguage() {\n return (tree: Element) => {\n visit(tree, \"element\", (node, index, parent) => {\n if (\n !parent ||\n parent.type !== \"element\" ||\n parent.tagName !== \"pre\" ||\n node.tagName !== \"code\"\n ) {\n return;\n }\n\n const lang = getCodeLanguage(node);\n if (\n lang &&\n !Object.prototype.hasOwnProperty.call(bundledLanguages, lang)\n ) {\n node.properties.className = (node.properties.className as string[]).map(\n (c) => (c.startsWith(\"language-\") ? \"language-text\" : c)\n );\n }\n });\n };\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({\n content,\n components,\n shiki,\n externalLinks,\n}: MarkdownComponentProps): JSX.Element | null {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n const theme = shiki?.theme ?? \"dark-plus\";\n\n useEffect(() => {\n let ignore = false;\n (async () => {\n try {\n const highlighter = await getSingletonHighlighter({\n themes: [theme],\n });\n if (ignore) {\n return;\n }\n const vFile = await unified()\n .use(remarkParse)\n .use(remarkGfm)\n .use(remarkToRehype)\n .use(rehypeExternalLinks, externalLinks)\n .use(rehypeMermaid)\n .use(rehypeFallbackLanguage)\n .use(rehypeShikiFromHighlighter, highlighter as any, {\n theme,\n lazy: true,\n defaultLanguage: \"text\",\n })\n .use(rehypeReact, {\n ...production,\n passNode: true,\n components,\n } as RehypeReactOptions)\n .process(content);\n if (!ignore) {\n setReactContent(vFile.result);\n }\n } catch (error) {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(\n <div style={{ color: \"var(--color-error)\" }}>\n Convert markdown failed: {String(error)}\n </div>\n );\n }\n }\n })();\n return () => {\n ignore = true;\n };\n }, [components, content, externalLinks, theme]);\n\n return reactContent;\n}\n","// istanbul ignore file\n\n/*\nnpx shiki-codegen \\\n --langs json,javascript,typescript,html,html-derivative,xml,css,markdown,mermaid,jsx,tsx,shellscript,python,go,sql \\\n --themes light-plus,dark-plus \\\n --engine oniguruma \\\n ./shared/shiki/src/bundle.ts\n*/\n\nimport lightPlus from \"@shikijs/themes/light-plus\";\nimport darkPlus from \"@shikijs/themes/dark-plus\";\n\n/* Generate by @shikijs/codegen */\nimport type {\n DynamicImportLanguageRegistration,\n HighlighterGeneric,\n ThemeInput,\n} from \"@shikijs/types\";\nimport {\n createSingletonShorthands,\n createdBundledHighlighter,\n} from \"@shikijs/core\";\nimport { createOnigurumaEngine } from \"@shikijs/engine-oniguruma\";\n\ntype BundledLanguage =\n | \"json\"\n | \"javascript\"\n | \"js\"\n | \"typescript\"\n | \"ts\"\n | \"html\"\n | \"html-derivative\"\n | \"xml\"\n | \"css\"\n | \"markdown\"\n | \"md\"\n | \"mermaid\"\n | \"mmd\"\n | \"jsx\"\n | \"tsx\"\n | \"shellscript\"\n | \"bash\"\n | \"sh\"\n | \"shell\"\n | \"zsh\"\n | \"python\"\n | \"py\"\n | \"go\"\n | \"sql\"\n | \"yaml\";\ntype BundledTheme = \"light-plus\" | \"dark-plus\";\ntype Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\nconst bundledLanguages = {\n json: () => import(\"@shikijs/langs/json\"),\n javascript: () => import(\"@shikijs/langs/javascript\"),\n js: () => import(\"@shikijs/langs/javascript\"),\n typescript: () => import(\"@shikijs/langs/typescript\"),\n ts: () => import(\"@shikijs/langs/typescript\"),\n html: () => import(\"@shikijs/langs/html\"),\n \"html-derivative\": () => import(\"@shikijs/langs/html-derivative\"),\n xml: () => import(\"@shikijs/langs/xml\"),\n css: () => import(\"@shikijs/langs/css\"),\n markdown: () => import(\"@shikijs/langs/markdown\"),\n md: () => import(\"@shikijs/langs/markdown\"),\n mermaid: () => import(\"@shikijs/langs/mermaid\"),\n mmd: () => import(\"@shikijs/langs/mermaid\"),\n jsx: () => import(\"@shikijs/langs/jsx\"),\n tsx: () => import(\"@shikijs/langs/tsx\"),\n shellscript: () => import(\"@shikijs/langs/shellscript\"),\n bash: () => import(\"@shikijs/langs/shellscript\"),\n sh: () => import(\"@shikijs/langs/shellscript\"),\n shell: () => import(\"@shikijs/langs/shellscript\"),\n zsh: () => import(\"@shikijs/langs/shellscript\"),\n python: () => import(\"@shikijs/langs/python\"),\n py: () => import(\"@shikijs/langs/python\"),\n go: () => import(\"@shikijs/langs/go\"),\n sql: () => import(\"@shikijs/langs/sql\"),\n yaml: () => import(\"@shikijs/langs/yaml\"),\n} as Record<BundledLanguage, DynamicImportLanguageRegistration>;\n\nconst bundledThemes = {\n \"light-plus\": lightPlus,\n \"dark-plus\": darkPlus,\n} as Record<BundledTheme, ThemeInput>;\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter<\n BundledLanguage,\n BundledTheme\n>({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createOnigurumaEngine(import(\"shiki/wasm\")),\n});\n\nconst {\n codeToHtml,\n codeToHast,\n codeToTokensBase,\n codeToTokens,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState,\n} = /* @__PURE__ */ createSingletonShorthands<BundledLanguage, BundledTheme>(\n createHighlighter,\n {\n guessEmbeddedLanguages(code, lang) {\n if (lang === \"markdown\" || lang === \"md\") {\n return [\"mermaid\"];\n }\n },\n }\n);\n\nexport {\n bundledLanguages,\n bundledThemes,\n codeToHast,\n codeToHtml,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getLastGrammarState,\n getSingletonHighlighter,\n};\nexport type { BundledLanguage, BundledTheme, Highlighter };\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, `:host{display:block}:host([hidden]){display:none}: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}a{color:var(--antd-btn-link-color);-webkit-text-decoration:none;text-decoration:none}a:hover{color:var(--antd-btn-link-hover-color)}.external-link-icon{margin-left:3px;color:var(--text-color-disabled)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["WrappedCodeWrapper","wrapBrick","defineElement","property","createDecorators","externalLinks","target","rel","test","element","href","URL","location","origin","getBasePath","isExternalLink","properties","content","containsImg","type","tagName","lib","icon","children","contentProperties","className","_MarkdownDisplay","_A","WeakMap","_B","MarkdownDisplay","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_content","_init_extra_content","_init_themeVariant","_init_extra_themeVariant","_classPrivateFieldGet","v","_classPrivateFieldSet","themeVariant","render","React","MarkdownDisplayComponent","this","_ref","systemTheme","useCurrentTheme","shikiOptions","useMemo","theme","components","pre","_ref2","_props$className","node","props","preProps","showCopyButton","includes","exportparts","MarkdownComponent","shiki","some","child","_MarkdownDisplay2","e","c","_initClass","_applyDecs","styleTexts","styleText","mermaidPromise","count","parser","DOMParser","serializer","XMLSerializer","rehypeMermaid","async","promises","visit","tree","index","parent","getCodeLanguage","push","id","svg","mermaid","default","initialize","startOnLoad","themeVariables","fontSize","lineColor","primaryColor","primaryBorderColor","doLoadMermaid","toString","error","_document$getElementB","console","document","getElementById","remove","root","parseFromString","svgElement","querySelector","defs","createElementNS","innerHTML","prepend","style","textContent","appendChild","modifiedSvg","serializeToString","replacements","fromHtmlIsomorphic","fragment","splice","concat","Promise","all","classListItem","slice","toLowerCase","___CSS_LOADER_EXPORT___","module","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","production","Fragment","jsx","jsxs","rehypeFallbackLanguage","lang","Object","prototype","hasOwnProperty","call","bundledLanguages","map","startsWith","_shiki$theme","reactContent","setReactContent","useState","useEffect","ignore","highlighter","getSingletonHighlighter","themes","vFile","unified","use","remarkParse","remarkGfm","remarkToRehype","rehypeExternalLinks","rehypeShikiFromHighlighter","lazy","defaultLanguage","rehypeReact","passNode","process","result","color","String","json","javascript","js","typescript","ts","html","html-derivative","xml","css","markdown","md","mmd","tsx","shellscript","bash","sh","shell","zsh","python","py","go","sql","yaml","bundledThemes","lightPlus","darkPlus","createHighlighter","createdBundledHighlighter","langs","engine","createOnigurumaEngine","codeToHtml","codeToHast","codeToTokensBase","codeToTokens","codeToTokensWithThemes","getLastGrammarState","createSingletonShorthands","guessEmbeddedLanguages","code"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/eo-markdown-display.2f79ccbd.js","mappings":"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","sources":["webpack:///./src/markdown-display/index.tsx","webpack:///../../src/rehypeMermaid.ts","webpack:///../../src/utils.ts","webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/host-context.css?6555","webpack:///../../src/MarkdownComponent.tsx","webpack:///../../src/index.ts","webpack:///./src/markdown-display/styles.shadow.css"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport \"@next-core/theme\";\nimport {\n MarkdownComponent,\n type Element,\n type MarkdownComponentProps,\n type RehypeExternalLinksOptions,\n} from \"@next-shared/markdown\";\nimport {\n CodeWrapper,\n type CodeWrapperProps,\n} from \"@next-bricks/presentational/code-wrapper\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst WrappedCodeWrapper = wrapBrick<CodeWrapper, CodeWrapperProps>(\n \"presentational.code-wrapper\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n themeVariant?: \"default\" | \"elevo\";\n}\n\nconst externalLinks: RehypeExternalLinksOptions = {\n target: \"_blank\",\n rel: [\"nofollow\", \"noopener\", \"noreferrer\"],\n test: (element: Element) => {\n return isExternalLink(element.properties.href);\n },\n content(element) {\n if (containsImg(element)) {\n return;\n }\n return {\n type: \"element\",\n tagName: \"eo-icon\",\n properties: {\n lib: \"lucide\",\n icon: \"external-link\",\n },\n children: [],\n };\n },\n contentProperties: {\n className: \"external-link-icon\",\n },\n};\n\n/**\n * 用于展示 markdown 内容的构件。\n */\nexport\n@defineElement(\"eo-markdown-display\", {\n styleTexts: [styleText],\n})\nclass MarkdownDisplay extends ReactNextElement implements MarkdownDisplayProps {\n /**\n * Markdown 文本内容\n */\n @property()\n accessor content: string | undefined;\n\n /**\n * 主题变体\n */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n render() {\n return (\n <MarkdownDisplayComponent\n content={this.content}\n themeVariant={this.themeVariant}\n />\n );\n }\n}\n\nfunction MarkdownDisplayComponent({\n content,\n themeVariant,\n}: MarkdownDisplayProps) {\n const systemTheme = useCurrentTheme();\n const shikiOptions = useMemo<MarkdownComponentProps[\"shiki\"]>(\n () => ({\n theme: systemTheme === \"dark-v2\" ? \"dark-plus\" : \"light-plus\",\n }),\n [systemTheme]\n );\n\n const components = useMemo<MarkdownComponentProps[\"components\"]>(\n () => ({\n pre: function Pre({ node, ...props }) {\n return (\n <WrappedCodeWrapper\n preProps={props}\n showCopyButton={!!props.className?.includes(\"shiki\")}\n themeVariant={themeVariant}\n exportparts=\"pre, copy, mermaid\"\n />\n );\n },\n }),\n [themeVariant]\n );\n\n return (\n <MarkdownComponent\n content={content}\n components={components}\n shiki={shikiOptions}\n externalLinks={externalLinks}\n />\n );\n}\n\nfunction containsImg(element: Element): boolean {\n return element.children.some((child) => {\n if (child.type === \"element\") {\n return child.tagName === \"img\" || containsImg(child);\n }\n return false;\n });\n}\n\nfunction isExternalLink(href: unknown): boolean {\n if (typeof href !== \"string\") {\n return false;\n }\n try {\n const url = new URL(href, `${location.origin}${getBasePath()}`);\n return url.origin !== location.origin;\n } catch {\n return true;\n }\n}\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport type { Element } from \"hast\";\nimport type Mermaid from \"mermaid\";\nimport { fromHtmlIsomorphic } from \"hast-util-from-html-isomorphic\";\nimport { getCodeLanguage } from \"./utils.js\";\n\nlet mermaidPromise: Promise<typeof Mermaid> | undefined;\n\nfunction loadMermaid() {\n if (mermaidPromise) {\n return mermaidPromise;\n }\n mermaidPromise = doLoadMermaid();\n return mermaidPromise;\n}\n\nasync function doLoadMermaid() {\n const mermaid = (await import(\"mermaid\")).default;\n mermaid.initialize({\n startOnLoad: false,\n theme: \"base\",\n themeVariables: {\n fontSize: \"14px\",\n lineColor: \"#979797\",\n primaryColor: \"#DCD2F3\",\n primaryBorderColor: \"#0000001A\",\n },\n });\n return mermaid;\n}\n\nlet count = 0;\n\nconst parser = new DOMParser();\nconst serializer = new XMLSerializer();\n\n// Reference https://github.com/remcohaszing/rehype-mermaid\nexport function rehypeMermaid() {\n return async (tree: Element) => {\n const promises: Promise<void>[] = [];\n\n visit(tree, \"element\", (node, index, parent) => {\n if (\n !parent ||\n parent.type !== \"element\" ||\n parent.tagName !== \"pre\" ||\n node.tagName !== \"code\"\n ) {\n return;\n }\n\n const lang = getCodeLanguage(node);\n\n if (lang !== \"mermaid\") {\n return;\n }\n\n promises.push(\n (async () => {\n const id = `mermaid-${count++}`;\n let svg: string;\n try {\n const mermaid = await loadMermaid();\n const result = await mermaid.render(id, toString(node));\n svg = result.svg;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error rendering mermaid diagram:\", error);\n document.getElementById(id)?.remove();\n return;\n }\n const root = parser.parseFromString(svg, \"text/html\");\n const svgElement = root.querySelector(\"svg\") as SVGSVGElement;\n\n const defs = root.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"defs\"\n );\n defs.innerHTML = `<linearGradient id=\"linear-gradient-${id}\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <stop offset=\"0%\" stop-color=\"#F0EBFA\" />\n <stop offset=\"75%\" stop-color=\"#DED4F4\" />\n <stop offset=\"100%\" stop-color=\"#C5C7FA\" />\n</linearGradient>`;\n svgElement.prepend(defs);\n\n const style = root.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"style\"\n );\n style.textContent = `\n#${id} .node rect,\n#${id} .node circle,\n#${id} .node ellipse,\n#${id} .node polygon,\n#${id} .node path {\n fill: url(#linear-gradient-${id});\n}\n#${id} .node rect {\n rx: 4;\n ry: 4;\n}\n#${id} .labelBkg {\n background-color: #f5f8ff;\n}\n#${id} .edgeLabel,\n#${id} .edgeLabel p {\n background-color: transparent;\n}\n#${id} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`;\n svgElement.appendChild(style);\n\n const modifiedSvg = serializer.serializeToString(svgElement);\n\n const replacements = fromHtmlIsomorphic(modifiedSvg, {\n fragment: true,\n }).children as Element[];\n parent.children.splice(index!, 1, ...replacements);\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"mermaid\");\n })()\n );\n });\n\n await Promise.all(promises);\n };\n}\n","import type { Element } from \"hast\";\n\nexport function getCodeLanguage(node: Element) {\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","// 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","\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, { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeExternalLinks, {\n type Options as RehypeExternalLinksOptions,\n} from \"rehype-external-links\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport type { Components } from \"hast-util-to-jsx-runtime\";\nimport rehypeShikiFromHighlighter from \"@shikijs/rehype/core\";\nimport type { Element } from \"hast\";\nimport { visit } from \"unist-util-visit\";\nimport { getSingletonHighlighter, bundledLanguages } from \"@next-shared/shiki\";\nimport { rehypeMermaid } from \"./rehypeMermaid.js\";\nimport { getCodeLanguage } from \"./utils.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport type { RehypeExternalLinksOptions, Element };\n\nexport interface MarkdownComponentProps {\n content?: string;\n components?: Partial<Components>;\n shiki?: {\n /** @default \"dark-plus\" */\n theme?: \"light-plus\" | \"dark-plus\";\n };\n externalLinks?: RehypeExternalLinksOptions;\n}\n\nexport async function preloadHighlighter(\n theme: \"light-plus\" | \"dark-plus\"\n): Promise<void> {\n await getSingletonHighlighter({\n themes: [theme],\n });\n}\n\nfunction rehypeFallbackLanguage() {\n return (tree: Element) => {\n visit(tree, \"element\", (node, index, parent) => {\n if (\n !parent ||\n parent.type !== \"element\" ||\n parent.tagName !== \"pre\" ||\n node.tagName !== \"code\"\n ) {\n return;\n }\n\n const lang = getCodeLanguage(node);\n if (\n lang &&\n !Object.prototype.hasOwnProperty.call(bundledLanguages, lang)\n ) {\n node.properties.className = (node.properties.className as string[]).map(\n (c) => (c.startsWith(\"language-\") ? \"language-text\" : c)\n );\n }\n });\n };\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({\n content,\n components,\n shiki,\n externalLinks,\n}: MarkdownComponentProps): JSX.Element | null {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n const theme = shiki?.theme ?? \"dark-plus\";\n\n useEffect(() => {\n let ignore = false;\n (async () => {\n try {\n const highlighter = await getSingletonHighlighter({\n themes: [theme],\n });\n if (ignore) {\n return;\n }\n const vFile = await unified()\n .use(remarkParse)\n .use(remarkGfm)\n .use(remarkToRehype)\n .use(rehypeExternalLinks, externalLinks)\n .use(rehypeMermaid)\n .use(rehypeFallbackLanguage)\n .use(rehypeShikiFromHighlighter, highlighter as any, {\n theme,\n lazy: true,\n defaultLanguage: \"text\",\n })\n .use(rehypeReact, {\n ...production,\n passNode: true,\n components,\n } as RehypeReactOptions)\n .process(content);\n if (!ignore) {\n setReactContent(vFile.result);\n }\n } catch (error) {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(\n <div style={{ color: \"var(--color-error)\" }}>\n Convert markdown failed: {String(error)}\n </div>\n );\n }\n }\n })();\n return () => {\n ignore = true;\n };\n }, [components, content, externalLinks, theme]);\n\n return reactContent;\n}\n","// istanbul ignore file\n\n/*\nnpx shiki-codegen \\\n --langs json,javascript,typescript,html,html-derivative,xml,css,markdown,mermaid,jsx,tsx,shellscript,python,go,sql \\\n --themes light-plus,dark-plus \\\n --engine oniguruma \\\n ./shared/shiki/src/bundle.ts\n*/\n\nimport lightPlus from \"@shikijs/themes/light-plus\";\nimport darkPlus from \"@shikijs/themes/dark-plus\";\n\n/* Generate by @shikijs/codegen */\nimport type {\n DynamicImportLanguageRegistration,\n HighlighterGeneric,\n ThemeInput,\n} from \"@shikijs/types\";\nimport {\n createSingletonShorthands,\n createdBundledHighlighter,\n} from \"@shikijs/core\";\nimport { createOnigurumaEngine } from \"@shikijs/engine-oniguruma\";\n\ntype BundledLanguage =\n | \"json\"\n | \"javascript\"\n | \"js\"\n | \"typescript\"\n | \"ts\"\n | \"html\"\n | \"html-derivative\"\n | \"xml\"\n | \"css\"\n | \"markdown\"\n | \"md\"\n | \"mermaid\"\n | \"mmd\"\n | \"jsx\"\n | \"tsx\"\n | \"shellscript\"\n | \"bash\"\n | \"sh\"\n | \"shell\"\n | \"zsh\"\n | \"python\"\n | \"py\"\n | \"go\"\n | \"sql\"\n | \"yaml\";\ntype BundledTheme = \"light-plus\" | \"dark-plus\";\ntype Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\nconst bundledLanguages = {\n json: () => import(\"@shikijs/langs/json\"),\n javascript: () => import(\"@shikijs/langs/javascript\"),\n js: () => import(\"@shikijs/langs/javascript\"),\n typescript: () => import(\"@shikijs/langs/typescript\"),\n ts: () => import(\"@shikijs/langs/typescript\"),\n html: () => import(\"@shikijs/langs/html\"),\n \"html-derivative\": () => import(\"@shikijs/langs/html-derivative\"),\n xml: () => import(\"@shikijs/langs/xml\"),\n css: () => import(\"@shikijs/langs/css\"),\n markdown: () => import(\"@shikijs/langs/markdown\"),\n md: () => import(\"@shikijs/langs/markdown\"),\n mermaid: () => import(\"@shikijs/langs/mermaid\"),\n mmd: () => import(\"@shikijs/langs/mermaid\"),\n jsx: () => import(\"@shikijs/langs/jsx\"),\n tsx: () => import(\"@shikijs/langs/tsx\"),\n shellscript: () => import(\"@shikijs/langs/shellscript\"),\n bash: () => import(\"@shikijs/langs/shellscript\"),\n sh: () => import(\"@shikijs/langs/shellscript\"),\n shell: () => import(\"@shikijs/langs/shellscript\"),\n zsh: () => import(\"@shikijs/langs/shellscript\"),\n python: () => import(\"@shikijs/langs/python\"),\n py: () => import(\"@shikijs/langs/python\"),\n go: () => import(\"@shikijs/langs/go\"),\n sql: () => import(\"@shikijs/langs/sql\"),\n yaml: () => import(\"@shikijs/langs/yaml\"),\n} as Record<BundledLanguage, DynamicImportLanguageRegistration>;\n\nconst bundledThemes = {\n \"light-plus\": lightPlus,\n \"dark-plus\": darkPlus,\n} as Record<BundledTheme, ThemeInput>;\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter<\n BundledLanguage,\n BundledTheme\n>({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createOnigurumaEngine(import(\"shiki/wasm\")),\n});\n\nconst {\n codeToHtml,\n codeToHast,\n codeToTokensBase,\n codeToTokens,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState,\n} = /* @__PURE__ */ createSingletonShorthands<BundledLanguage, BundledTheme>(\n createHighlighter,\n {\n guessEmbeddedLanguages(code, lang) {\n if (lang === \"markdown\" || lang === \"md\") {\n return [\"mermaid\"];\n }\n },\n }\n);\n\nexport {\n bundledLanguages,\n bundledThemes,\n codeToHast,\n codeToHtml,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getLastGrammarState,\n getSingletonHighlighter,\n};\nexport type { BundledLanguage, BundledTheme, Highlighter };\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, `:host{display:block}:host([hidden]){display:none}: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}a{color:var(--antd-btn-link-color);-webkit-text-decoration:none;text-decoration:none}a:hover{color:var(--antd-btn-link-hover-color)}.external-link-icon{margin-left:3px;color:var(--text-color-disabled)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["WrappedCodeWrapper","wrapBrick","defineElement","property","createDecorators","externalLinks","target","rel","test","element","href","URL","location","origin","getBasePath","isExternalLink","properties","content","containsImg","type","tagName","lib","icon","children","contentProperties","className","_MarkdownDisplay","_A","WeakMap","_B","MarkdownDisplay","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_content","_init_extra_content","_init_themeVariant","_init_extra_themeVariant","_classPrivateFieldGet","v","_classPrivateFieldSet","themeVariant","render","React","MarkdownDisplayComponent","this","_ref","systemTheme","useCurrentTheme","shikiOptions","useMemo","theme","components","pre","_ref2","_props$className","node","props","preProps","showCopyButton","includes","exportparts","MarkdownComponent","shiki","some","child","_MarkdownDisplay2","e","c","_initClass","_applyDecs","styleTexts","styleText","mermaidPromise","count","parser","DOMParser","serializer","XMLSerializer","rehypeMermaid","async","promises","visit","tree","index","parent","getCodeLanguage","push","id","svg","mermaid","default","initialize","startOnLoad","themeVariables","fontSize","lineColor","primaryColor","primaryBorderColor","doLoadMermaid","toString","error","_document$getElementB","console","document","getElementById","remove","root","parseFromString","svgElement","querySelector","defs","createElementNS","innerHTML","prepend","style","textContent","appendChild","modifiedSvg","serializeToString","replacements","fromHtmlIsomorphic","fragment","splice","concat","Promise","all","classListItem","slice","toLowerCase","___CSS_LOADER_EXPORT___","module","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","production","Fragment","jsx","jsxs","rehypeFallbackLanguage","lang","Object","prototype","hasOwnProperty","call","bundledLanguages","map","startsWith","_shiki$theme","reactContent","setReactContent","useState","useEffect","ignore","highlighter","getSingletonHighlighter","themes","vFile","unified","use","remarkParse","remarkGfm","remarkToRehype","rehypeExternalLinks","rehypeShikiFromHighlighter","lazy","defaultLanguage","rehypeReact","passNode","process","result","color","String","json","javascript","js","typescript","ts","html","html-derivative","xml","css","markdown","md","mmd","tsx","shellscript","bash","sh","shell","zsh","python","py","go","sql","yaml","bundledThemes","lightPlus","darkPlus","createHighlighter","createdBundledHighlighter","langs","engine","createOnigurumaEngine","codeToHtml","codeToHast","codeToTokensBase","codeToTokens","codeToTokensWithThemes","getLastGrammarState","createSingletonShorthands","guessEmbeddedLanguages","code"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-markdown-editor.308379bd.js","mappings":"soBA6DA,MAAMA,IAAkBC,EAAAA,EAAAA,WAAmC,gBAErDC,IAAcD,EAAAA,EAAAA,WAAyC,WAEvDE,GAAkCC,IAAgC,IAA/B,KAAEC,EAAI,QAAEC,EAAO,QAAEC,GAASH,EACjE,OACEI,IAAAA,cAAA,OACEC,UAAU,eACVC,YAAcC,IACZL,SAAAA,IACAK,EAAEC,gBAAgB,GAGpBJ,IAAAA,cAACN,IAAWW,EAAAA,EAAAA,GAAA,CAACC,MAAO,CAAEC,cAAe,WAAgBV,IACpDE,GAAWC,IAAAA,cAAA,OAAKC,UAAU,mBAAmBF,GAC1C,GAkCJ,cAAES,GAAa,SAAEC,GAAQ,MAAEC,KAAUC,EAAAA,EAAAA,oBAAmB,IAAAC,GAAA,IAAAC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAC,QAAAC,GAAA,IAAAV,QAE9D,MAAAW,WAY6BC,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAP,KAC/CQ,EAAAA,EAAAA,GAAA,KAAAjB,GAAAkB,EAAA,QAKAD,EAAAA,EAAAA,GAAA,KAAAf,IAAAiB,EAAA,MAAAC,EAAA,SAKAH,EAAAA,EAAAA,GAAA,KAAAd,IAAAkB,EAAA,MAAAC,EAAA,SAMAL,EAAAA,EAAAA,GAAA,KAAAb,IAAAmB,EAAA,MAAAC,EAAA,SAMAP,EAAAA,EAAAA,GAAA,KAAAZ,IAAAoB,EAAA,MAAAC,EAAA,SAMAT,EAAAA,EAAAA,GAAA,KAAAX,IAAAqB,EAAA,MAAAC,EAAA,SAQAX,EAAAA,EAAAA,GAAA,KAAAV,IAAAsB,EAAA,MAAAC,EAAA,SAQAb,EAAAA,EAAAA,GAAA,KAAAT,IAAAuB,EAAA,MAAAC,EAAA,SAAAC,EAAAA,EAAAA,GAAA,0BAAAC,GAAA,MAO6BC,KAC3BC,EAAAA,EAAAA,GAAA3B,GAAA4B,KAAKC,IAAaC,KAAKJ,EAAM,KAG/BlB,EAAAA,EAAAA,GAAA,KAAAN,GAAA6B,GAAA,QAAAP,EAAAA,EAAAA,GAAA,kCAAAQ,GAAA,MAO6BN,IAAwB,IAAAO,EAC9B,QAArBA,EAAAL,KAAKM,wBAAgB,IAAAD,GAArBA,EAAuBE,UAAUC,SAASR,KAAKS,KAAOX,GACtDE,KAAKF,MAAQA,GACbC,EAAAA,EAAAA,GAAA3B,GAAA4B,KAAKU,IAAqBR,KAAKJ,EAAM,GACtC,SA/DoBW,GAAI,OAAAE,EAAAA,EAAAA,GAAAhD,GAAA,cAAJ8C,CAAIG,IAAAC,EAAAA,EAAAA,GAAAlD,GAAA,KAAAiD,EAAA,UAKJE,GAAK,OAAAH,EAAAA,EAAAA,GAAA9C,GAAA,eAALiD,CAAKF,IAAAC,EAAAA,EAAAA,GAAAhD,GAAA,KAAA+C,EAAA,aAMjBG,GAAQ,OAAAJ,EAAAA,EAAAA,GAAA7C,GAAA,kBAARiD,CAAQH,IAAAC,EAAAA,EAAAA,GAAA/C,GAAA,KAAA8C,EAAA,UAMId,GAAK,OAAAa,EAAAA,EAAAA,GAAA5C,GAAA,eAAL+B,CAAKc,IAAAC,EAAAA,EAAAA,GAAA9C,GAAA,KAAA6C,EAAA,eAMLI,GAAU,OAAAL,EAAAA,EAAAA,GAAA3C,GAAA,oBAAVgD,CAAUJ,IAAAC,EAAAA,EAAAA,GAAA7C,GAAA,KAAA4C,EAAA,aAQtBK,GAAQ,OAAAN,EAAAA,EAAAA,GAAA1C,GAAA,kBAARgD,CAAQL,IAAAC,EAAAA,EAAAA,GAAA5C,GAAA,KAAA2C,EAAA,mBAQRM,GAAc,OAAAP,EAAAA,EAAAA,GAAAzC,GAAA,wBAAdgD,CAAcN,IAAAC,EAAAA,EAAAA,GAAA3C,GAAA,KAAA0C,EAAA,CA0BvBO,MAAAA,GACE,OACErE,IAAAA,cAACsE,EAAAA,GAAgB,KACftE,IAAAA,cAACuE,EAAAA,GAA0B,KACzBvE,IAAAA,cAACwE,GAAuB,CACtBC,YAAavB,KAAKM,iBAClBG,KAAMT,KAAKS,KACXK,MAAOd,KAAKc,MACZC,SAAUf,KAAKe,SACfS,WAAYxB,KACZgB,WAAYhB,KAAKgB,WACjBlB,MAAOE,KAAKF,MACZmB,SAAUjB,KAAKiB,SACfC,eAAgBlB,KAAKkB,eACrBO,cAAezB,KAAK0B,kBACpBC,sBAAuB3B,KAAK4B,6BAKtC,EAKK,SAASN,GAAwBO,GACtC,MAAM,WACJb,EAAU,eACVE,EAAc,MACdpB,EAAK,YACLyB,EAAW,SACXN,EAAQ,cACRQ,EAAa,sBACbE,GACEE,GAEGC,EAASC,IAAcC,EAAAA,EAAAA,WAAS,GAMjCC,EAAqBC,MAAOC,EAAiBC,KACjD,MAAMC,EAAiB,GACvB,IAAIC,EAAgB,GAEpB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAMK,OAAQD,IAAK,CACrC,MAAME,EAAON,EAAMO,KAAKH,GAEnBE,GAKAA,EAAKE,KAAKC,SAAS,UAIxBP,EAAOQ,KAAKJ,EACd,CAGA,IACEH,QAAcQ,QAAQC,IACpBV,EAAOW,KAAId,UACT,MAAMe,QAAsBC,EAAAA,EAAAA,GAC1BlC,EACA,CACEyB,KAAMU,EACNC,MAAO,EACPC,OAAQ,IAGNC,GAnCkBC,EAmCWN,aAAQ,EAARA,EAAUM,WAlC5C,mFAAmF1B,EAAMb,qBAAqBuC,KADvFA,MAoCxB,MAAMC,EAAML,EAAM1C,KAElB,OADAgB,GAAiBA,EAAc,CAAEhB,KAAM+C,EAAKF,QACrClB,EAAOE,MAAMa,MAAMM,cAAc,CACtCH,MACAE,OACA,IAGR,CAAE,MAAOE,GAEPC,QAAQC,MAAM,iBAAkBF,EAClC,CAEA,OAAOpB,CAAK,EAGRuB,GAAoBC,EAAAA,EAAAA,MACpBC,GAAoBC,EAAAA,EAAAA,MACpBC,GAAkBC,EAAAA,EAAAA,MAElBC,GAA+BC,EAAAA,EAAAA,UAAQ,IACpCnD,EACH,GACA,CACEoD,EAAAA,GACAC,EAAAA,GACAC,EAAAA,GACCC,GAAatC,UACZsC,EAAIC,IAAIH,EAAAA,GAAaI,IAAK,CACxBC,KAAMd,EAAkB,CACtBe,UAAWC,EAAAA,MAEb,GAEJC,EAAAA,EAAAA,IAAoBf,IACpBgB,QACL,CAAC9D,EAAU4C,EAAmBE,KAE3B,IAAEiB,IAAQC,EAAAA,EAAAA,KAAWC,GAClBC,EAAAA,GAAOC,OACXC,QAAQb,IAEPA,EAAIC,IAAIa,EAAAA,EAASJ,GACjBV,EAAIe,OAAOC,EAAAA,IAAuBC,IAAS,IACtCA,EACHC,SAAUA,KAAOzE,MAGnBnB,GAAS0E,EAAIC,IAAIkB,EAAAA,GAAiB7F,GAElC0E,EACGQ,IAAIY,EAAAA,IACJC,iBAEC,CAACrB,EAAUsB,EAAkBC,KAC3BpE,GAAyBA,EAAsBmE,EAAS,IAG3DE,OAAM,KACLjE,GAAW,EAAK,IAEjBkE,MAAK,KACJlE,GAAW,EAAM,IAGrBf,GACEwD,EAAIe,OAAOW,EAAAA,GAAaxB,KAAMe,IAAS,IAClCA,EACHxD,eAGJuC,EAAIe,OAAOY,EAAAA,GAAYzB,KAAMe,IAAS,IACjCA,EACHW,mBAAoBA,IAAMC,EAAAA,KACzB,IAEJhB,OAAOiB,EAAAA,GACPC,IAAIC,EAAAA,IACJD,IAAIE,EAAAA,IACJF,IAAIG,EAAAA,IACJH,IAAIlC,EAAAA,IACJkC,IAAII,EAAAA,IACJJ,IAAIK,EAAAA,IACJL,IAAIpC,GACJoC,IAAIM,EAAAA,IACJN,IACCtF,EACI,IACA6F,EAAAA,EAAAA,IAAMC,EAAAA,GAAgBC,MAAM,IAC1B/C,EAAgB,CAAEW,UAAWqC,EAAAA,QAGtC,IAUH,SAASC,EAAQC,EAAoBC,GAAa,IAAAC,EAChD,OAAY,QAAZA,EAAOrC,WAAK,IAAAqC,OAAA,EAALA,EAAOC,QAAOC,EAAAA,EAAAA,IAAYJ,EAASC,GAC5C,EAVAI,EAAAA,EAAAA,YAAU,KAG4C,IAAAC,EAAhDlG,QAAyBmG,IAAV5H,IAAwBgC,IACpC,QAAL2F,EAAAzC,WAAK,IAAAyC,GAALA,EAAOH,QAAOK,EAAAA,EAAAA,IAAW7H,IAC3B,GACC,CAACkF,IAAOlF,IAMX,MAAM8H,EAAiC,CACrC,CACEjL,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,QAC3BC,QAASA,IAAMsK,EAAKY,EAAAA,GAAYpD,KAChC7H,QAAS,MAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,QAC3BC,QAASA,IAAMsK,EAAKa,EAAAA,GAAYrD,KAChC7H,QAAS,MAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,QAC3BC,QAASA,IAAMsK,EAAKc,EAAAA,GAAoBtD,KACxC7H,QAAS,MAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,UAC3BC,QAASA,IAAMsK,EAAKe,EAAAA,GAAsBvD,KAC1C7H,QAAS,MAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,iBAC3BC,QAASA,IAAMsK,EAAKgB,EAAAA,GAA2BxD,KAC/C7H,QAAS,OAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,SAC3BC,QAASA,IAAMsK,EAAKiB,EAAAA,GAAmBzD,KACvC7H,QAAS,MAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,kBAC3BC,QAASA,IAAMsK,EAAKkB,EAAAA,GAAwB1D,KAC5C7H,QAAS,QAEX,CACEF,KAAM,CAAEkL,IAAK,OAAQlL,KAAM,gBAC3BC,QAASA,IAAMsK,EAAKmB,EAAAA,GAAyB3D,KAC7C7H,QAAS,QAEX,CACEF,KAAM,CAAEkL,IAAK,KAAMlL,KAAM,eACzBC,QAASA,IAAMsK,EAAKoB,EAAAA,GAAwB5D,KAC5C7H,QAAS,QAIb,OACEC,IAAAA,cAACR,IAAea,EAAAA,EAAAA,GAAA,CAACoL,YAAY,YAAcC,EAAAA,EAAAA,GAAkB3G,IAC3D/E,IAAAA,cAAA,OACEC,UAAW0L,IAAW,qBAAsB,CAC1CxH,aAEF7D,MAAO8D,IAELD,GACAnE,IAAAA,cAAA,OAAKC,UAAU,yBACbD,IAAAA,cAAA,OAAKC,UAAU,8BACZ6K,EAAY5E,KAAKN,GAChB5F,IAAAA,cAACL,IAAUU,EAAAA,EAAAA,GAAA,GAAKuF,EAAI,CAAEgC,IAAKgE,KAAKC,UAAUjG,EAAK/F,aAKvDG,IAAAA,cAAA,OAAKC,UAAU,oBACbD,IAAAA,cAAC8L,EAAAA,GAAQ,QAKnB,CAtOCC,EAAAtK,KAAAtB,GAAA4B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAM,GAAA6I,GAAAjJ,GAAAM,GAAAO,GAAAqI,GAAA3I,IAAA4I,GAAAtL,GAAAuL,KAAAC,EAAAA,EAAAA,GAAAL,EAAA,CAtGAvL,GAAc,qBAAsB,CACnC6L,WAAY,CAACC,EAAAA,GACbC,MAAO,CAAC,+BACR,EAaC9L,KAAU,WAKVA,KAAU,YAKVA,GAAS,CAAEoF,KAAM2G,UAAU,eAO3B/L,KAAU,YAMVA,KAAU,iBAKVA,GAAS,CACRoF,KAAM2G,UACN,eAMD/L,GAAS,CACRgM,WAAW,IACX,qBAOD/L,GAAM,CAAEmF,KAAM,iBAAiB,gBAAA6G,IAAA7I,EAAAA,EAAAA,GAAAxC,GAAAqL,GAAA,CAAAA,EAAA5I,KAAAC,EAAAA,EAAAA,GAAA1C,GAAAqL,EAAA5I,IAAA,CAW/BpD,GAAM,CAAEmF,KAAM,0BAA0B,wBAAA6G,IAAA7I,EAAAA,EAAAA,GAAArC,GAAAkL,GAAA,CAAAA,EAAA5I,KAAAC,EAAAA,EAAAA,GAAAvC,GAAAkL,EAAA5I,KAAA,GAAA6I,GAAArL,GAAAsL,KAAAC,EAAAA,EAAAA,GAAAF,KA5DdjL,EAAAA,IAAmByK,G","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, pickFormItemProps } 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 MarkdownEditorEventsMap {\n \"image.upload\": CustomEvent<ImageInfo>;\n \"markdown.value.change\": CustomEvent<string>;\n}\n\nexport interface MarkdownEditorEventsMapping {\n onImageUpload: \"image.upload\";\n onMarkdownValueChange: \"markdown.value.change\";\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\" {...pickFormItemProps(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","pickFormItemProps","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.308379bd.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, pickFormItemProps } 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 MarkdownEditorEventsMap {\n \"image.upload\": CustomEvent<ImageInfo>;\n \"markdown.value.change\": CustomEvent<string>;\n}\n\nexport interface MarkdownEditorEventsMapping {\n onImageUpload: \"image.upload\";\n onMarkdownValueChange: \"markdown.value.change\";\n}\n\nexport interface ImageInfo {\n name: string;\n src: string;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * Markdown 编辑器,基于 Milkdown 实现,支持富文本编辑、表格、代码高亮及图片上传。\n * @docKind brick\n * @author kehua\n * @noInheritDoc\n * @category form-input-advanced\n */\n@defineElement(\"eo-markdown-editor\", {\n styleTexts: [styleText],\n alias: [\"markdown.markdown-editor\"],\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 { name: 图片文件名, src: 图片存储路径 }\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 当前编辑器的 markdown 文本内容\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\" {...pickFormItemProps(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","pickFormItemProps","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,t,r,n,a,o,l,c,i,d,f,s,u,h,p,m,b,v,g,x,y,P,k,w={24861:(e,t,r)=>{Promise.all([r.e(977),r.e(7768),r.e(8257),r.e(563),r.e(8769),r.e(870),r.e(9435),r.e(981),r.e(4419),r.e(128),r.e(1361),r.e(7613),r.e(4986),r.e(2587)]).then(r.bind(r,82587))}},j={};function S(e){var t=j[e];if(void 0!==t)return t.exports;var r=j[e]={id:e,loaded:!1,exports:{}};return w[e].call(r.exports,r,r.exports,S),r.loaded=!0,r.exports}S.m=w,S.c=j,S.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return S.d(t,{a:t}),t},S.d=(e,t)=>{for(var r in t)S.o(t,r)&&!S.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},S.f={},S.e=e=>Promise.all(Object.keys(S.f).reduce(((t,r)=>(S.f[r](e,t),t)),[])),S.u=e=>"chunks/"+e+"."+{114:"f3f72497",721:"32270fea",726:"5c69e0d9",843:"b8ebd092",871:"4fe12c65",879:"f7faa1e3",948:"377ff516",977:"43af46a2",1045:"e71ff56b",1120:"5a76c02b",1122:"d91a2f80",1136:"471adb75",1215:"a147b81c",1370:"daa622cc",1889:"c37a5b1c",1931:"69d4b3e3",1940:"d31144f6",2052:"49cd67b8",2260:"d376d870",2277:"45f27aa4",2432:"9f3bbe02",2449:"a41329e9",2508:"5b9d97d6",2510:"498443ea",2587:"6b482a20",2593:"98de447b",3003:"b20f3c7c",3144:"8c384c55",3171:"5c08dc23",3208:"5b201312",3331:"c26468bc",3419:"be3f7348",3426:"52feb899",3744:"25e82d26",3816:"0bccf03d",3935:"2c11ee4c",4041:"ece8b3c3",4190:"295fb4b1",4228:"331e9e66",4281:"33cfc352",4306:"f0ce09ac",4474:"f7c2dc06",4491:"0693e3a7",4609:"e2673dde",4658:"f45c1d27",4735:"5fc56fbe",4765:"f639fdee",4837:"138212ea",5032:"9f3df162",5065:"8219b061",5191:"8fe65060",5250:"29f3448a",5307:"961a7ee1",5384:"c34ff7aa",5399:"be7d5a38",5498:"85475ec5",5548:"dc634fc5",5552:"a2beb716",5727:"e8f88cda",5807:"179aabfc",5936:"894016ea",6023:"d03e3dae",6029:"b69625f9",6161:"e10fa084",6519:"6a847bc1",6530:"90902927",6773:"39c6524b",7146:"609dc277",7218:"2e9c211b",7302:"ce4e2555",7353:"2866e67d",7367:"93104d6d",7613:"6f573203",7721:"eca6fce8",7729:"d2ce47e5",7733:"616ee5b4",7768:"078dabf3",7842:"be04bb24",8231:"cbeb1420",8257:"6fd1229f",8263:"85d13fb1",8311:"628275a1",8348:"f719db25",8588:"4f45b1e3",8633:"3f16d1fc",8755:"4052aaf3",8757:"c44719b3",8936:"e34c7f82",8989:"fb597dff",9034:"db9eeeca",9251:"115f469f",9263:"c8740fab",9515:"ab9207b6",9559:"c31c66aa",9634:"d1612688",9831:"fd0b33e8",9844:"22891540"}[e]+".js",S.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),S.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="@next-bricks/markdown:",S.l=(r,n,a,o)=>{if(e[r])e[r].push(n);else{var l,c;if(void 0!==a)for(var i=document.getElementsByTagName("script"),d=0;d<i.length;d++){var f=i[d];if(f.getAttribute("src")==r||f.getAttribute("data-webpack")==t+a){l=f;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,S.nc&&l.setAttribute("nonce",S.nc),l.setAttribute("data-webpack",t+a),l.src=r),e[r]=[n];var s=(t,n)=>{l.onerror=l.onload=null,clearTimeout(u);var a=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach((e=>e(n))),t)return t(n)},u=setTimeout(s.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=s.bind(null,l.onerror),l.onload=s.bind(null,l.onload),c&&document.head.appendChild(l)}},S.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},S.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{S.S={};var e={},t={};S.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[r])return e[r];S.o(S.S,r)||(S.S[r]={});var o=S.S[r],l="@next-bricks/markdown",c=(e,t,r,n)=>{var a=o[e]=o[e]||{},c=a[t];(!c||!c.loaded&&(!n!=!c.eager?n:l>c.from))&&(a[t]={get:r,from:l,eager:!!n})},i=[];return"default"===r&&(c("@babel/parser","7.27.2",(()=>S.e(6773).then((()=>()=>S(46773))))),c("@easyops-cn/brick-next-pipes","0.7.6",(()=>Promise.all([S.e(4306),S.e(563),S.e(1916),S.e(5310)]).then((()=>()=>S(34306))))),c("@next-core/cook","2.5.12",(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(61122))))),c("@next-core/element","1.2.19",(()=>S.e(1045).then((()=>()=>S(21045))))),c("@next-core/http","1.2.14",(()=>S.e(8989).then((()=>()=>S(48989))))),c("@next-core/i18n","1.0.87",(()=>Promise.all([S.e(9523),S.e(671),S.e(9733),S.e(5552)]).then((()=>()=>S(75552))))),c("@next-core/inject","1.0.62",(()=>Promise.all([S.e(563),S.e(9933),S.e(2277)]).then((()=>()=>S(72277))))),c("@next-core/loader","1.6.17",(()=>S.e(5399).then((()=>()=>S(35399))))),c("@next-core/pipes","2.0.36",(()=>S.e(6519).then((()=>()=>S(76519))))),c("@next-core/react-element","1.0.38",(()=>Promise.all([S.e(8769),S.e(870),S.e(9435),S.e(114)]).then((()=>()=>S(20114))))),c("@next-core/react-runtime","1.7.43",(()=>Promise.all([S.e(563),S.e(8769),S.e(981),S.e(128),S.e(4837)]).then((()=>()=>S(64837))))),c("@next-core/runtime","1.71.4",(()=>Promise.all([S.e(948),S.e(563),S.e(1916),S.e(9523),S.e(1361),S.e(9733),S.e(1321),S.e(5789)]).then((()=>()=>S(30948))))),c("@next-core/supply","2.3.9",(()=>Promise.all([S.e(563),S.e(9933),S.e(1916),S.e(9559)]).then((()=>()=>S(49559))))),c("@next-core/theme","1.6.1",(()=>Promise.all([S.e(1889),S.e(2052)]).then((()=>()=>S(51889))))),c("@next-core/utils/general","1.8.8",(()=>S.e(871).then((()=>()=>S(40871))))),c("@next-core/utils/storyboard","1.8.8",(()=>Promise.all([S.e(563),S.e(9523),S.e(1321),S.e(7146)]).then((()=>()=>S(97146))))),c("history","4.10.1",(()=>S.e(3003).then((()=>()=>S(65384))))),c("i18next-browser-languagedetector","7.2.2",(()=>S.e(726).then((()=>()=>S(50726))))),c("i18next","22.5.1",(()=>S.e(843).then((()=>()=>S(20843))))),c("js-yaml","3.14.1",(()=>S.e(9515).then((()=>()=>S(19515))))),c("lodash","4.17.21",(()=>S.e(5250).then((()=>()=>S(45250))))),c("moment/locale/zh-cn.js","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(61329))))),c("moment","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(99420))))),c("react-dom","0.0.0-experimental-ee8509801-20230117",(()=>Promise.all([S.e(3144),S.e(8769)]).then((()=>()=>S(43144))))),c("react","0.0.0-experimental-ee8509801-20230117",(()=>S.e(4041).then((()=>()=>S(14041)))))),e[r]=i.length?Promise.all(i).then((()=>e[r]=1)):1}}})(),(()=>{var e;S.g.importScripts&&(e=S.g.location+"");var t=S.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),S.p=e+"../"})(),r=e=>{var t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=r[1]?t(r[1]):[];return r[2]&&(n.length++,n.push.apply(n,t(r[2]))),r[3]&&(n.push([]),n.push.apply(n,t(r[3]))),n},n=(e,t)=>{e=r(e),t=r(t);for(var n=0;;){if(n>=e.length)return n<t.length&&"u"!=(typeof t[n])[0];var a=e[n],o=(typeof a)[0];if(n>=t.length)return"u"==o;var l=t[n],c=(typeof l)[0];if(o!=c)return"o"==o&&"n"==c||"s"==c||"u"==o;if("o"!=o&&"u"!=o&&a!=l)return a<l;n++}},a=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,r+="u"==(typeof(c=e[o]))[0]?"-":(n>0?".":"")+(n=2,c);return r}var l=[];for(o=1;o<e.length;o++){var c=e[o];l.push(0===c?"not("+i()+")":1===c?"("+i()+" || "+i()+")":2===c?l.pop()+" "+l.pop():a(c))}return i();function i(){return l.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,t)=>{if(0 in e){t=r(t);var n=e[0],a=n<0;a&&(n=-n-1);for(var l=0,c=1,i=!0;;c++,l++){var d,f,s=c<e.length?(typeof e[c])[0]:"";if(l>=t.length||"o"==(f=(typeof(d=t[l]))[0]))return!i||("u"==s?c>n&&!a:""==s!=a);if("u"==f){if(!i||"u"!=s)return!1}else if(i)if(s==f)if(c<=n){if(d!=e[c])return!1}else{if(a?d>e[c]:d<e[c])return!1;d!=e[c]&&(i=!1)}else if("s"!=s&&"n"!=s){if(a||c<=n)return!1;i=!1,c--}else{if(c<=n||f<s!=a)return!1;i=!1}else"s"!=s&&"n"!=s&&(i=!1,c--)}}var u=[],h=u.pop.bind(u);for(l=1;l<e.length;l++){var p=e[l];u.push(1==p?h()|h():2==p?h()&h():p?o(p,t):!h())}return!!h()},l=(e,t)=>e&&S.o(e,t),c=e=>(e.loaded=1,e.get()),i=e=>Object.keys(e).reduce(((t,r)=>(e[r].eager&&(t[r]=e[r]),t)),{}),d=(e,t,r,a)=>{var l=a?i(e[t]):e[t];return(t=Object.keys(l).reduce(((e,t)=>!o(r,t)||e&&!n(e,t)?e:t),0))&&l[t]},f=(e,t,r)=>{var a=r?i(e[t]):e[t];return Object.keys(a).reduce(((e,t)=>!e||!a[e].loaded&&n(e,t)?t:e),0)},s=(e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+a(n)+")",u=(e,t,r,n,o)=>{var l=e[r];return"No satisfying version ("+a(n)+")"+(o?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map((e=>e+" from "+l[e].from)).join(", ")},h=e=>{throw new Error(e)},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},b=(e,t,r)=>r?r():((e,t)=>h("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),v=(m=e=>function(t,r,n,a,o){var l=S.I(t);return l&&l.then&&!n?l.then(e.bind(e,t,S.S[t],r,!1,a,o)):e(t,S.S[t],r,n,a,o)})(((e,t,r,n,a,o)=>{if(!l(t,r))return b(e,r,o);var i=d(t,r,a,n);return i?c(i):o?o():void h(u(t,e,r,a,n))})),g=m(((e,t,r,n,a,i)=>{if(!l(t,r))return b(e,r,i);var d=f(t,r,n);return o(a,d)||p(s(t,r,d,a)),c(t[r][d])})),x={},y={20563:()=>g("default","lodash",!1,[0],(()=>S.e(5250).then((()=>()=>S(45250))))),18769:()=>v("default","react",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(4041).then((()=>()=>S(14041))))),90870:()=>v("default","@next-core/element",!1,[1,1,2,19],(()=>S.e(3426).then((()=>()=>S(21045))))),59435:()=>v("default","react-dom",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(3144).then((()=>()=>S(43144))))),30981:()=>v("default","@next-core/react-element",!1,[1,1,0,38],(()=>Promise.all([S.e(870),S.e(9435),S.e(7733)]).then((()=>()=>S(20114))))),34419:()=>g("default","@next-core/theme",!1,[1,1,6,1],(()=>S.e(1889).then((()=>()=>S(51889))))),60128:()=>g("default","@next-core/runtime",!1,[1,1,71,4],(()=>Promise.all([S.e(948),S.e(563),S.e(1916),S.e(9523),S.e(1361),S.e(9733),S.e(1321),S.e(5789)]).then((()=>()=>S(30948))))),41361:()=>g("default","@next-core/http",!1,[0],(()=>S.e(1370).then((()=>()=>S(48989))))),64986:()=>v("default","@next-core/react-runtime",!1,[1,1,0,0],(()=>Promise.all([S.e(563),S.e(7218)]).then((()=>()=>S(64837))))),91916:()=>g("default","moment",!1,[0],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(99420))))),55310:()=>g("default","js-yaml",!1,[0],(()=>S.e(9515).then((()=>()=>S(19515))))),40580:()=>g("default","@babel/parser",!1,[0],(()=>S.e(6773).then((()=>()=>S(46773))))),49523:()=>g("default","@next-core/utils/general",!1,[0],(()=>S.e(871).then((()=>()=>S(40871))))),848:()=>g("default","i18next-browser-languagedetector",!1,[0],(()=>S.e(726).then((()=>()=>S(50726))))),75630:()=>g("default","i18next",!1,[0],(()=>S.e(843).then((()=>()=>S(20843))))),99733:()=>g("default","@next-core/i18n",!1,[0],(()=>Promise.all([S.e(671),S.e(3171)]).then((()=>()=>S(75552))))),59933:()=>g("default","@next-core/pipes",!1,[0],(()=>S.e(6519).then((()=>()=>S(76519))))),58377:()=>g("default","@easyops-cn/brick-next-pipes",!1,[0],(()=>Promise.all([S.e(4306),S.e(563),S.e(1916),S.e(5310)]).then((()=>()=>S(34306))))),71321:()=>g("default","@next-core/cook",!1,[0],(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(61122))))),11732:()=>g("default","history",!1,[0],(()=>S.e(3003).then((()=>()=>S(65384))))),29283:()=>g("default","@next-core/inject",!1,[0],(()=>Promise.all([S.e(9933),S.e(4658)]).then((()=>()=>S(72277))))),45599:()=>g("default","@next-core/loader",!1,[0],(()=>S.e(5399).then((()=>()=>S(35399))))),71858:()=>g("default","moment/locale/zh-cn.js",!1,[0],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(61329))))),85801:()=>g("default","@next-core/utils/storyboard",!1,[0],(()=>S.e(4765).then((()=>()=>S(97146))))),94167:()=>g("default","@next-core/supply",!1,[0],(()=>Promise.all([S.e(9933),S.e(1940)]).then((()=>()=>S(49559)))))},P={128:[60128],563:[20563],580:[40580],671:[848,75630],870:[90870],981:[30981],1321:[71321],1361:[41361],1916:[91916],4419:[34419],4986:[64986],5310:[55310],5789:[11732,29283,45599,71858,85801,94167],6519:[58377],8769:[18769],9435:[59435],9523:[49523],9733:[99733],9933:[59933]},k={},S.f.consumes=(e,t)=>{S.o(P,e)&&P[e].forEach((e=>{if(S.o(x,e))return t.push(x[e]);if(!k[e]){var r=t=>{x[e]=0,S.m[e]=r=>{delete S.c[e],r.exports=t()}};k[e]=!0;var n=t=>{delete x[e],S.m[e]=r=>{throw delete S.c[e],t}};try{var a=y[e]();a.then?t.push(x[e]=a.then(r).catch(n)):r(a)}catch(e){n(e)}}}))},(()=>{S.b=document.baseURI||self.location.href;var e={8792:0};S.f.j=(t,r)=>{var n=S.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else if(/^(1(28|321|361|916)|5(310|63|789|80)|87(0|69)|9((52|73|93)3|435|81)|4419|4986|671)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=S.p+S.u(t),l=new Error;S.l(o,(r=>{if(S.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,n[1](l)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,a,[o,l,c]=r,i=0;if(o.some((t=>0!==e[t]))){for(n in l)S.o(l,n)&&(S.m[n]=l[n]);c&&c(S)}for(t&&t(r);i<o.length;i++)a=o[i],S.o(e,a)&&e[a]&&e[a][0](),e[a]=0},r=globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),S.nc=void 0,S(24861)})();
|
|
2
|
-
//# sourceMappingURL=main.
|
|
1
|
+
(()=>{var e,t,r,n,a,o,l,c,i,d,f,s,u,h,p,m,b,v,g,x,y,P,k,w={24861:(e,t,r)=>{Promise.all([r.e(977),r.e(9641),r.e(8257),r.e(563),r.e(8769),r.e(870),r.e(9435),r.e(981),r.e(4419),r.e(128),r.e(1361),r.e(7613),r.e(4986),r.e(2587)]).then(r.bind(r,82587))}},j={};function S(e){var t=j[e];if(void 0!==t)return t.exports;var r=j[e]={id:e,loaded:!1,exports:{}};return w[e].call(r.exports,r,r.exports,S),r.loaded=!0,r.exports}S.m=w,S.c=j,S.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return S.d(t,{a:t}),t},S.d=(e,t)=>{for(var r in t)S.o(t,r)&&!S.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},S.f={},S.e=e=>Promise.all(Object.keys(S.f).reduce(((t,r)=>(S.f[r](e,t),t)),[])),S.u=e=>"chunks/"+e+"."+{114:"f3f72497",721:"32270fea",726:"5c69e0d9",843:"b8ebd092",871:"4fe12c65",879:"f7faa1e3",948:"377ff516",977:"43af46a2",1045:"e71ff56b",1120:"5a76c02b",1122:"d91a2f80",1136:"471adb75",1215:"a147b81c",1370:"daa622cc",1889:"c37a5b1c",1931:"69d4b3e3",1940:"d31144f6",2052:"49cd67b8",2260:"d376d870",2277:"45f27aa4",2432:"9f3bbe02",2449:"a41329e9",2508:"5b9d97d6",2510:"498443ea",2587:"6b482a20",2593:"98de447b",3003:"b20f3c7c",3144:"8c384c55",3171:"5c08dc23",3208:"5b201312",3331:"c26468bc",3419:"be3f7348",3426:"52feb899",3744:"25e82d26",3816:"0bccf03d",3935:"2c11ee4c",4041:"ece8b3c3",4190:"295fb4b1",4228:"331e9e66",4281:"33cfc352",4306:"f0ce09ac",4474:"f7c2dc06",4491:"0693e3a7",4609:"e2673dde",4658:"f45c1d27",4735:"5fc56fbe",4765:"f639fdee",4837:"138212ea",5032:"9f3df162",5065:"8219b061",5191:"8fe65060",5250:"29f3448a",5307:"961a7ee1",5384:"c34ff7aa",5399:"be7d5a38",5498:"85475ec5",5548:"dc634fc5",5552:"a2beb716",5727:"e8f88cda",5807:"179aabfc",5936:"894016ea",6023:"d03e3dae",6029:"b69625f9",6161:"e10fa084",6519:"6a847bc1",6530:"90902927",6773:"39c6524b",7146:"609dc277",7218:"2e9c211b",7302:"ce4e2555",7353:"2866e67d",7367:"93104d6d",7613:"b4599370",7721:"eca6fce8",7729:"d2ce47e5",7733:"616ee5b4",7842:"be04bb24",8231:"cbeb1420",8257:"6fd1229f",8263:"85d13fb1",8311:"628275a1",8348:"f719db25",8588:"4f45b1e3",8633:"3f16d1fc",8755:"4052aaf3",8757:"c44719b3",8936:"e34c7f82",8989:"fb597dff",9034:"db9eeeca",9251:"115f469f",9263:"c8740fab",9515:"ab9207b6",9559:"c31c66aa",9634:"d1612688",9641:"4938f7a1",9831:"fd0b33e8",9844:"22891540"}[e]+".js",S.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),S.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="@next-bricks/markdown:",S.l=(r,n,a,o)=>{if(e[r])e[r].push(n);else{var l,c;if(void 0!==a)for(var i=document.getElementsByTagName("script"),d=0;d<i.length;d++){var f=i[d];if(f.getAttribute("src")==r||f.getAttribute("data-webpack")==t+a){l=f;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,S.nc&&l.setAttribute("nonce",S.nc),l.setAttribute("data-webpack",t+a),l.src=r),e[r]=[n];var s=(t,n)=>{l.onerror=l.onload=null,clearTimeout(u);var a=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach((e=>e(n))),t)return t(n)},u=setTimeout(s.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=s.bind(null,l.onerror),l.onload=s.bind(null,l.onload),c&&document.head.appendChild(l)}},S.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},S.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{S.S={};var e={},t={};S.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[r])return e[r];S.o(S.S,r)||(S.S[r]={});var o=S.S[r],l="@next-bricks/markdown",c=(e,t,r,n)=>{var a=o[e]=o[e]||{},c=a[t];(!c||!c.loaded&&(!n!=!c.eager?n:l>c.from))&&(a[t]={get:r,from:l,eager:!!n})},i=[];return"default"===r&&(c("@babel/parser","7.27.2",(()=>S.e(6773).then((()=>()=>S(46773))))),c("@easyops-cn/brick-next-pipes","0.7.6",(()=>Promise.all([S.e(4306),S.e(563),S.e(1916),S.e(5310)]).then((()=>()=>S(34306))))),c("@next-core/cook","2.5.12",(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(61122))))),c("@next-core/element","1.2.19",(()=>S.e(1045).then((()=>()=>S(21045))))),c("@next-core/http","1.2.14",(()=>S.e(8989).then((()=>()=>S(48989))))),c("@next-core/i18n","1.0.87",(()=>Promise.all([S.e(9523),S.e(671),S.e(9733),S.e(5552)]).then((()=>()=>S(75552))))),c("@next-core/inject","1.0.62",(()=>Promise.all([S.e(563),S.e(9933),S.e(2277)]).then((()=>()=>S(72277))))),c("@next-core/loader","1.6.17",(()=>S.e(5399).then((()=>()=>S(35399))))),c("@next-core/pipes","2.0.36",(()=>S.e(6519).then((()=>()=>S(76519))))),c("@next-core/react-element","1.0.38",(()=>Promise.all([S.e(8769),S.e(870),S.e(9435),S.e(114)]).then((()=>()=>S(20114))))),c("@next-core/react-runtime","1.7.43",(()=>Promise.all([S.e(563),S.e(8769),S.e(981),S.e(128),S.e(4837)]).then((()=>()=>S(64837))))),c("@next-core/runtime","1.71.4",(()=>Promise.all([S.e(948),S.e(563),S.e(1916),S.e(9523),S.e(1361),S.e(9733),S.e(1321),S.e(5789)]).then((()=>()=>S(30948))))),c("@next-core/supply","2.3.9",(()=>Promise.all([S.e(563),S.e(9933),S.e(1916),S.e(9559)]).then((()=>()=>S(49559))))),c("@next-core/theme","1.6.1",(()=>Promise.all([S.e(1889),S.e(2052)]).then((()=>()=>S(51889))))),c("@next-core/utils/general","1.8.8",(()=>S.e(871).then((()=>()=>S(40871))))),c("@next-core/utils/storyboard","1.8.8",(()=>Promise.all([S.e(563),S.e(9523),S.e(1321),S.e(7146)]).then((()=>()=>S(97146))))),c("history","4.10.1",(()=>S.e(3003).then((()=>()=>S(65384))))),c("i18next-browser-languagedetector","7.2.2",(()=>S.e(726).then((()=>()=>S(50726))))),c("i18next","22.5.1",(()=>S.e(843).then((()=>()=>S(20843))))),c("js-yaml","3.14.1",(()=>S.e(9515).then((()=>()=>S(19515))))),c("lodash","4.17.21",(()=>S.e(5250).then((()=>()=>S(45250))))),c("moment/locale/zh-cn.js","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(61329))))),c("moment","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(99420))))),c("react-dom","0.0.0-experimental-ee8509801-20230117",(()=>Promise.all([S.e(3144),S.e(8769)]).then((()=>()=>S(43144))))),c("react","0.0.0-experimental-ee8509801-20230117",(()=>S.e(4041).then((()=>()=>S(14041)))))),e[r]=i.length?Promise.all(i).then((()=>e[r]=1)):1}}})(),(()=>{var e;S.g.importScripts&&(e=S.g.location+"");var t=S.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),S.p=e+"../"})(),r=e=>{var t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=r[1]?t(r[1]):[];return r[2]&&(n.length++,n.push.apply(n,t(r[2]))),r[3]&&(n.push([]),n.push.apply(n,t(r[3]))),n},n=(e,t)=>{e=r(e),t=r(t);for(var n=0;;){if(n>=e.length)return n<t.length&&"u"!=(typeof t[n])[0];var a=e[n],o=(typeof a)[0];if(n>=t.length)return"u"==o;var l=t[n],c=(typeof l)[0];if(o!=c)return"o"==o&&"n"==c||"s"==c||"u"==o;if("o"!=o&&"u"!=o&&a!=l)return a<l;n++}},a=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,r+="u"==(typeof(c=e[o]))[0]?"-":(n>0?".":"")+(n=2,c);return r}var l=[];for(o=1;o<e.length;o++){var c=e[o];l.push(0===c?"not("+i()+")":1===c?"("+i()+" || "+i()+")":2===c?l.pop()+" "+l.pop():a(c))}return i();function i(){return l.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,t)=>{if(0 in e){t=r(t);var n=e[0],a=n<0;a&&(n=-n-1);for(var l=0,c=1,i=!0;;c++,l++){var d,f,s=c<e.length?(typeof e[c])[0]:"";if(l>=t.length||"o"==(f=(typeof(d=t[l]))[0]))return!i||("u"==s?c>n&&!a:""==s!=a);if("u"==f){if(!i||"u"!=s)return!1}else if(i)if(s==f)if(c<=n){if(d!=e[c])return!1}else{if(a?d>e[c]:d<e[c])return!1;d!=e[c]&&(i=!1)}else if("s"!=s&&"n"!=s){if(a||c<=n)return!1;i=!1,c--}else{if(c<=n||f<s!=a)return!1;i=!1}else"s"!=s&&"n"!=s&&(i=!1,c--)}}var u=[],h=u.pop.bind(u);for(l=1;l<e.length;l++){var p=e[l];u.push(1==p?h()|h():2==p?h()&h():p?o(p,t):!h())}return!!h()},l=(e,t)=>e&&S.o(e,t),c=e=>(e.loaded=1,e.get()),i=e=>Object.keys(e).reduce(((t,r)=>(e[r].eager&&(t[r]=e[r]),t)),{}),d=(e,t,r,a)=>{var l=a?i(e[t]):e[t];return(t=Object.keys(l).reduce(((e,t)=>!o(r,t)||e&&!n(e,t)?e:t),0))&&l[t]},f=(e,t,r)=>{var a=r?i(e[t]):e[t];return Object.keys(a).reduce(((e,t)=>!e||!a[e].loaded&&n(e,t)?t:e),0)},s=(e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+a(n)+")",u=(e,t,r,n,o)=>{var l=e[r];return"No satisfying version ("+a(n)+")"+(o?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map((e=>e+" from "+l[e].from)).join(", ")},h=e=>{throw new Error(e)},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},b=(e,t,r)=>r?r():((e,t)=>h("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),v=(m=e=>function(t,r,n,a,o){var l=S.I(t);return l&&l.then&&!n?l.then(e.bind(e,t,S.S[t],r,!1,a,o)):e(t,S.S[t],r,n,a,o)})(((e,t,r,n,a,o)=>{if(!l(t,r))return b(e,r,o);var i=d(t,r,a,n);return i?c(i):o?o():void h(u(t,e,r,a,n))})),g=m(((e,t,r,n,a,i)=>{if(!l(t,r))return b(e,r,i);var d=f(t,r,n);return o(a,d)||p(s(t,r,d,a)),c(t[r][d])})),x={},y={20563:()=>g("default","lodash",!1,[0],(()=>S.e(5250).then((()=>()=>S(45250))))),18769:()=>v("default","react",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(4041).then((()=>()=>S(14041))))),90870:()=>v("default","@next-core/element",!1,[1,1,2,19],(()=>S.e(3426).then((()=>()=>S(21045))))),59435:()=>v("default","react-dom",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(3144).then((()=>()=>S(43144))))),30981:()=>v("default","@next-core/react-element",!1,[1,1,0,38],(()=>Promise.all([S.e(870),S.e(9435),S.e(7733)]).then((()=>()=>S(20114))))),34419:()=>g("default","@next-core/theme",!1,[1,1,6,1],(()=>S.e(1889).then((()=>()=>S(51889))))),60128:()=>g("default","@next-core/runtime",!1,[1,1,71,4],(()=>Promise.all([S.e(948),S.e(563),S.e(1916),S.e(9523),S.e(1361),S.e(9733),S.e(1321),S.e(5789)]).then((()=>()=>S(30948))))),41361:()=>g("default","@next-core/http",!1,[0],(()=>S.e(1370).then((()=>()=>S(48989))))),64986:()=>v("default","@next-core/react-runtime",!1,[1,1,0,0],(()=>Promise.all([S.e(563),S.e(7218)]).then((()=>()=>S(64837))))),91916:()=>g("default","moment",!1,[0],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(99420))))),55310:()=>g("default","js-yaml",!1,[0],(()=>S.e(9515).then((()=>()=>S(19515))))),40580:()=>g("default","@babel/parser",!1,[0],(()=>S.e(6773).then((()=>()=>S(46773))))),49523:()=>g("default","@next-core/utils/general",!1,[0],(()=>S.e(871).then((()=>()=>S(40871))))),848:()=>g("default","i18next-browser-languagedetector",!1,[0],(()=>S.e(726).then((()=>()=>S(50726))))),75630:()=>g("default","i18next",!1,[0],(()=>S.e(843).then((()=>()=>S(20843))))),99733:()=>g("default","@next-core/i18n",!1,[0],(()=>Promise.all([S.e(671),S.e(3171)]).then((()=>()=>S(75552))))),59933:()=>g("default","@next-core/pipes",!1,[0],(()=>S.e(6519).then((()=>()=>S(76519))))),58377:()=>g("default","@easyops-cn/brick-next-pipes",!1,[0],(()=>Promise.all([S.e(4306),S.e(563),S.e(1916),S.e(5310)]).then((()=>()=>S(34306))))),71321:()=>g("default","@next-core/cook",!1,[0],(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(61122))))),11732:()=>g("default","history",!1,[0],(()=>S.e(3003).then((()=>()=>S(65384))))),29283:()=>g("default","@next-core/inject",!1,[0],(()=>Promise.all([S.e(9933),S.e(4658)]).then((()=>()=>S(72277))))),45599:()=>g("default","@next-core/loader",!1,[0],(()=>S.e(5399).then((()=>()=>S(35399))))),71858:()=>g("default","moment/locale/zh-cn.js",!1,[0],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(61329))))),85801:()=>g("default","@next-core/utils/storyboard",!1,[0],(()=>S.e(4765).then((()=>()=>S(97146))))),94167:()=>g("default","@next-core/supply",!1,[0],(()=>Promise.all([S.e(9933),S.e(1940)]).then((()=>()=>S(49559)))))},P={128:[60128],563:[20563],580:[40580],671:[848,75630],870:[90870],981:[30981],1321:[71321],1361:[41361],1916:[91916],4419:[34419],4986:[64986],5310:[55310],5789:[11732,29283,45599,71858,85801,94167],6519:[58377],8769:[18769],9435:[59435],9523:[49523],9733:[99733],9933:[59933]},k={},S.f.consumes=(e,t)=>{S.o(P,e)&&P[e].forEach((e=>{if(S.o(x,e))return t.push(x[e]);if(!k[e]){var r=t=>{x[e]=0,S.m[e]=r=>{delete S.c[e],r.exports=t()}};k[e]=!0;var n=t=>{delete x[e],S.m[e]=r=>{throw delete S.c[e],t}};try{var a=y[e]();a.then?t.push(x[e]=a.then(r).catch(n)):r(a)}catch(e){n(e)}}}))},(()=>{S.b=document.baseURI||self.location.href;var e={8792:0};S.f.j=(t,r)=>{var n=S.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else if(/^(1(28|321|361|916)|5(310|63|789|80)|87(0|69)|9((52|73|93)3|435|81)|4419|4986|671)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=S.p+S.u(t),l=new Error;S.l(o,(r=>{if(S.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,n[1](l)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,a,[o,l,c]=r,i=0;if(o.some((t=>0!==e[t]))){for(n in l)S.o(l,n)&&(S.m[n]=l[n]);c&&c(S)}for(t&&t(r);i<o.length;i++)a=o[i],S.o(e,a)&&e[a]&&e[a][0](),e[a]=0},r=globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),S.nc=void 0,S(24861)})();
|
|
2
|
+
//# sourceMappingURL=main.581c3425.js.map
|