@next-bricks/markdown 1.15.1 → 1.15.3

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.
Files changed (58) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/{9641.4938f7a1.js → 1298.f78f9898.js} +3 -3
  3. package/dist/chunks/1298.f78f9898.js.map +1 -0
  4. package/dist/chunks/{1889.c37a5b1c.js → 1889.ffb946f6.js} +2 -2
  5. package/dist/chunks/{1889.c37a5b1c.js.map → 1889.ffb946f6.js.map} +1 -1
  6. package/dist/chunks/{2587.6b482a20.js → 2587.bfaefb65.js} +2 -2
  7. package/dist/chunks/2587.bfaefb65.js.map +1 -0
  8. package/dist/chunks/3171.90317f4f.js +2 -0
  9. package/dist/chunks/3171.90317f4f.js.map +1 -0
  10. package/dist/chunks/4015.a112c57f.js +3 -0
  11. package/dist/chunks/4015.a112c57f.js.LICENSE.txt +11 -0
  12. package/dist/chunks/4015.a112c57f.js.map +1 -0
  13. package/dist/chunks/5399.7d52f7e3.js +2 -0
  14. package/dist/chunks/5399.7d52f7e3.js.map +1 -0
  15. package/dist/chunks/5552.71f1161d.js +2 -0
  16. package/dist/chunks/5552.71f1161d.js.map +1 -0
  17. package/dist/chunks/6376.125ca9c5.js +2 -0
  18. package/dist/chunks/6376.125ca9c5.js.map +1 -0
  19. package/dist/chunks/7613.b4599370.js.map +1 -1
  20. package/dist/chunks/948.430dac25.js +3 -0
  21. package/dist/chunks/948.430dac25.js.map +1 -0
  22. package/dist/chunks/eo-markdown-display.2f79ccbd.js.map +1 -1
  23. package/dist/chunks/{eo-markdown-editor.308379bd.js → eo-markdown-editor.b7031fb0.js} +2 -2
  24. package/dist/chunks/eo-markdown-editor.b7031fb0.js.map +1 -0
  25. package/dist/chunks/main.1bf1c913.js +2 -0
  26. package/dist/chunks/main.1bf1c913.js.map +1 -0
  27. package/dist/examples.json +2 -2
  28. package/dist/index.49ce6975.js +2 -0
  29. package/dist/index.49ce6975.js.map +1 -0
  30. package/dist/manifest.json +7 -4
  31. package/dist-types/markdown-display/index.d.ts +3 -0
  32. package/dist-types/markdown-editor/index.d.ts +7 -0
  33. package/docs/eo-markdown-display.md +42 -3
  34. package/docs/eo-markdown-display.react.md +87 -0
  35. package/docs/eo-markdown-editor.md +41 -2
  36. package/docs/eo-markdown-editor.react.md +97 -0
  37. package/package.json +2 -2
  38. package/dist/chunks/2587.6b482a20.js.map +0 -1
  39. package/dist/chunks/3171.5c08dc23.js +0 -2
  40. package/dist/chunks/3171.5c08dc23.js.map +0 -1
  41. package/dist/chunks/4837.138212ea.js +0 -2
  42. package/dist/chunks/4837.138212ea.js.map +0 -1
  43. package/dist/chunks/5399.be7d5a38.js +0 -2
  44. package/dist/chunks/5399.be7d5a38.js.map +0 -1
  45. package/dist/chunks/5552.a2beb716.js +0 -2
  46. package/dist/chunks/5552.a2beb716.js.map +0 -1
  47. package/dist/chunks/7218.2e9c211b.js +0 -2
  48. package/dist/chunks/7218.2e9c211b.js.map +0 -1
  49. package/dist/chunks/948.377ff516.js +0 -3
  50. package/dist/chunks/948.377ff516.js.map +0 -1
  51. package/dist/chunks/9641.4938f7a1.js.map +0 -1
  52. package/dist/chunks/eo-markdown-editor.308379bd.js.map +0 -1
  53. package/dist/chunks/main.581c3425.js +0 -2
  54. package/dist/chunks/main.581c3425.js.map +0 -1
  55. package/dist/index.217627f4.js +0 -2
  56. package/dist/index.217627f4.js.map +0 -1
  57. /package/dist/chunks/{9641.4938f7a1.js.LICENSE.txt → 1298.f78f9898.js.LICENSE.txt} +0 -0
  58. /package/dist/chunks/{948.377ff516.js.LICENSE.txt → 948.430dac25.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[2587],{47148:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(36758),r=n.n(o),a=n(40935),i=n.n(a)()(r());i.push([e.id,':root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}',""]);const l=i},74724:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(36758),r=n.n(o),a=n(40935),i=n.n(a)()(r());i.push([e.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)}",""]);const l=i.toString()},82587:(e,t,n)=>{var o,r=n(24586),a=n(74635),i=n(70918),l=n(26902),s=n(5536),c=n(86121),d=n(70829),m=n(62740),h=n(89575),u=n(18769),p=n.n(u),k=n(90870),g=n(30981),b=(n(34419),n(90998)),y=n(61408),w=n(27647),f=n(92466),v=n(1854),A=n(9760),x=n(135),E=n(16486),N=n(16512),C=n(8653),S=n(30537),M=n(35435),T=n(29796),$=n(33971),j=n(37082),W=n(26816),q=n(24758),L=n(41757),V=n(42736),B=n(53373),D=n.n(B);let F,I,P,_,O,z,U,R,G,H,X,Y,J,K,Z,Q,ee,te,ne,oe,re,ae,ie;const le=(0,g.wrapBrick)("eo-form-item"),se=(0,g.wrapBrick)("eo-icon"),ce=e=>{let{icon:t,onClick:n,tooltip:o}=e;return p().createElement("div",{className:"menu-btn-box",onMouseDown:e=>{null==n||n(),e.preventDefault()}},p().createElement(se,(0,h.A)({style:{verticalAlign:"middle"}},t)),o&&p().createElement("div",{className:"menuIconTooltip"},o))},{defineElement:de,property:me,event:he}=(0,k.createDecorators)();let ue;var pe=new WeakMap,ke=new WeakMap,ge=new WeakMap,be=new WeakMap,ye=new WeakMap,we=new WeakMap,fe=new WeakMap,ve=new WeakMap,Ae=new WeakSet,xe=new WeakMap;class Ee extends L.N{constructor(){super(...arguments),(0,a.A)(this,Ae),(0,i.A)(this,pe,I(this)),(0,i.A)(this,ke,(P(this),_(this))),(0,i.A)(this,ge,(O(this),z(this))),(0,i.A)(this,be,(U(this),R(this))),(0,i.A)(this,ye,(G(this),H(this))),(0,i.A)(this,we,(X(this),Y(this))),(0,i.A)(this,fe,(J(this),K(this))),(0,i.A)(this,ve,(Z(this),Q(this))),(0,r.A)(this,"handleUploadImage",(ne(this),e=>{(0,s.A)(Ae,this,ee).emit(e)})),(0,i.A)(this,xe,oe(this)),(0,r.A)(this,"handleMarkdownValueChange",(ie(this),e=>{var t;null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),this.value=e,(0,s.A)(Ae,this,re).emit(e)}))}get name(){return(0,d.A)(pe,this)}set name(e){(0,c.A)(pe,this,e)}get label(){return(0,d.A)(ke,this)}set label(e){(0,c.A)(ke,this,e)}get required(){return(0,d.A)(ge,this)}set required(e){(0,c.A)(ge,this,e)}get value(){return(0,d.A)(be,this)}set value(e){(0,c.A)(be,this,e)}get bucketName(){return(0,d.A)(ye,this)}set bucketName(e){(0,c.A)(ye,this,e)}get readonly(){return(0,d.A)(we,this)}set readonly(e){(0,c.A)(we,this,e)}get containerStyle(){return(0,d.A)(fe,this)}set containerStyle(e){(0,c.A)(fe,this,e)}render(){return p().createElement(f.pb,null,p().createElement($.vo,null,p().createElement(Ne,{formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,curElement:this,bucketName:this.bucketName,value:this.value,readonly:this.readonly,containerStyle:this.containerStyle,onUploadImage:this.handleUploadImage,onMarkdownValueChange:this.handleMarkdownValueChange})))}}function Ne(e){const{bucketName:t,containerStyle:n,value:o,formElement:r,readonly:a,onUploadImage:i,onMarkdownValueChange:l}=e,[s,c]=(0,u.useState)(!1),d=async(n,o)=>{const r=[];let a=[];for(let e=0;e<n.length;e++){const t=n.item(e);t&&t.type.includes("image")&&r.push(t)}try{a=await Promise.all(r.map((async n=>{const r=await(0,y.i)(t,{file:n,width:0,height:0}),a=(l=null==r?void 0:r.objectName,`/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${e.bucketName}/object/${l}`);var l;const s=n.name;return i&&i({name:s,src:a}),o.nodes.image.createAndFill({src:a,alt:s})})))}catch(e){console.error("upload failed:",e)}return a},m=(0,$.Uv)(),k=(0,$.rJ)(),g=(0,$.$X)(),b=(0,u.useMemo)((()=>a?[]:[S.Te,W.EI,W.nk,e=>async()=>{e.set(W.EI.key,{view:m({component:W.ST})})},(0,W.jp)(k)].flat()),[a,m,k]),{get:L}=(0,f.hG)((e=>w.KE.make().config((n=>{n.set(w.k,e),n.update(w.QM,(e=>({...e,editable:()=>!a}))),o&&n.set(w.CI,o),n.get(C.Ob).markdownUpdated(((e,t,n)=>{l&&l(t)})).focus((()=>{c(!0)})).blur((()=>{c(!1)})),t&&n.update(E.wu.key,(e=>({...e,uploader:d}))),n.update(T.mS.key,(e=>({...e,configureRefractor:()=>j.L})))})).config(A.E).use(C.F_).use(v.PD).use(x.b6).use(S.Te).use(M.pZ).use(E.Se).use(b).use(T.Wj).use(a?[]:(0,N.m5)(v.Ay.node,(()=>g({component:q.N}))))),[]);function B(e,t){var n;return null===(n=L())||void 0===n?void 0:n.action((0,N.KD)(e,t))}(0,u.useEffect)((()=>{var e;r&&void 0!==o&&!s&&(null===(e=L())||void 0===e||e.action((0,N.yh)(o)))}),[L(),o]);const F=[{icon:{lib:"antd",icon:"undo"},onClick:()=>B(x.Eb.key),tooltip:"撤销"},{icon:{lib:"antd",icon:"redo"},onClick:()=>B(x.eD.key),tooltip:"重做"},{icon:{lib:"antd",icon:"bold"},onClick:()=>B(v.vY.key),tooltip:"粗体"},{icon:{lib:"antd",icon:"italic"},onClick:()=>B(v.e0.key),tooltip:"斜体"},{icon:{lib:"antd",icon:"strikethrough"},onClick:()=>B(S.$l.key),tooltip:"删除线"},{icon:{lib:"antd",icon:"table"},onClick:()=>B(S.f$.key),tooltip:"表格"},{icon:{lib:"antd",icon:"unordered-list"},onClick:()=>B(v.Xk.key),tooltip:"无序列表"},{icon:{lib:"antd",icon:"ordered-list"},onClick:()=>B(v.Ej.key),tooltip:"有序列表"},{icon:{lib:"fa",icon:"quote-right"},onClick:()=>B(v.oO.key),tooltip:"块引用"}];return p().createElement(le,(0,h.A)({exportparts:"message"},(0,V.v)(e)),p().createElement("div",{className:D()("markdown-container",{readonly:a}),style:n},!a&&p().createElement("div",{className:"menu-container-outter"},p().createElement("div",{className:"menu-container-inner prose"},F.map((e=>p().createElement(ce,(0,h.A)({},e,{key:JSON.stringify(e.icon)})))))),p().createElement("div",{className:"editor-container"},p().createElement(f.y5,null))))}o=Ee,({e:[I,P,_,O,z,U,R,G,H,X,Y,J,K,Z,Q,ee,te,ne,oe,re,ae,ie],c:[ue,F]}=(0,m.A)(o,[de("eo-markdown-editor",{styleTexts:[b.A],alias:["markdown.markdown-editor"]})],[[me(),1,"name"],[me(),1,"label"],[me({type:Boolean}),1,"required"],[me(),1,"value"],[me(),1,"bucketName"],[me({type:Boolean}),1,"readonly"],[me({attribute:!1}),1,"containerStyle"],[he({type:"image.upload"}),1,"uploadImage",e=>(0,d.A)(ve,e),(e,t)=>(0,c.A)(ve,e,t)],[he({type:"markdown.value.change"}),1,"markdownValueChange",e=>(0,d.A)(xe,e),(e,t)=>(0,c.A)(xe,e,t)]],0,(e=>Ae.has((0,l.A)(e))),L.N)),F();var Ce=n(60128),Se=n(64986),Me=n(31085),Te=n(21420),$e=n(35301),je=n(52967),We=n(35342),qe=n(97545),Le=n(51846),Ve=n(45619),Be=n(74269),De=n(62142),Fe=n(56948),Ie=n(32147),Pe=n(29755);const _e={json:()=>n.e(4190).then(n.bind(n,64190)),javascript:()=>n.e(5065).then(n.bind(n,15065)),js:()=>n.e(5065).then(n.bind(n,15065)),typescript:()=>n.e(2449).then(n.bind(n,72449)),ts:()=>n.e(2449).then(n.bind(n,72449)),html:()=>Promise.all([n.e(5065),n.e(2593),n.e(4735)]).then(n.bind(n,74735)),"html-derivative":()=>Promise.all([n.e(5065),n.e(2593),n.e(4735),n.e(9251)]).then(n.bind(n,9251)),xml:()=>n.e(8263).then(n.bind(n,28263)),css:()=>n.e(2593).then(n.bind(n,62593)),markdown:()=>n.e(8311).then(n.bind(n,88311)),md:()=>n.e(8311).then(n.bind(n,88311)),mermaid:()=>n.e(8757).then(n.bind(n,58757)),mmd:()=>n.e(8757).then(n.bind(n,58757)),jsx:()=>n.e(1136).then(n.bind(n,58755)),tsx:()=>n.e(4609).then(n.bind(n,54609)),shellscript:()=>n.e(1215).then(n.bind(n,1215)),bash:()=>n.e(1215).then(n.bind(n,1215)),sh:()=>n.e(1215).then(n.bind(n,1215)),shell:()=>n.e(1215).then(n.bind(n,1215)),zsh:()=>n.e(1215).then(n.bind(n,1215)),python:()=>n.e(2510).then(n.bind(n,82510)),py:()=>n.e(2510).then(n.bind(n,82510)),go:()=>n.e(5498).then(n.bind(n,75498)),sql:()=>n.e(1120).then(n.bind(n,21120)),yaml:()=>n.e(7729).then(n.bind(n,7729))},Oe={"light-plus":De.A,"dark-plus":Fe.A},ze=(0,Ie.q6)({langs:_e,themes:Oe,engine:()=>(0,Pe.Mk)(n.e(5032).then(n.bind(n,75032)))}),{codeToHtml:Ue,codeToHast:Re,codeToTokensBase:Ge,codeToTokens:He,codeToTokensWithThemes:Xe,getSingletonHighlighter:Ye,getLastGrammarState:Je}=(0,Ie.CZ)(ze,{guessEmbeddedLanguages(e,t){if("markdown"===t||"md"===t)return["mermaid"]}});var Ke=n(74650),Ze=n(96271);function Qe(e){const t=e.properties.className||[];for(const e of t)if("language-"===e.slice(0,9))return e.slice(9).toLowerCase();return null}let et;let tt=0;const nt=new DOMParser,ot=new XMLSerializer;function rt(){return async e=>{const t=[];(0,Be.YR)(e,"element",((e,o,r)=>{r&&"element"===r.type&&"pre"===r.tagName&&"code"===e.tagName&&"mermaid"===Qe(e)&&t.push((async()=>{const t="mermaid-"+tt++;let a;try{const o=await(et||(et=async function(){const e=(await n.e(7367).then(n.bind(n,67367))).default;return e.initialize({startOnLoad:!1,theme:"base",themeVariables:{fontSize:"14px",lineColor:"#979797",primaryColor:"#DCD2F3",primaryBorderColor:"#0000001A"}}),e}(),et));a=(await o.render(t,(0,Ke.d)(e))).svg}catch(e){var i;return console.error("Error rendering mermaid diagram:",e),void(null===(i=document.getElementById(t))||void 0===i||i.remove())}const l=nt.parseFromString(a,"text/html"),s=l.querySelector("svg"),c=l.createElementNS("http://www.w3.org/2000/svg","defs");c.innerHTML=`<linearGradient id="linear-gradient-${t}" 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>`,s.prepend(c);const d=l.createElementNS("http://www.w3.org/2000/svg","style");d.textContent=`\n#${t} .node rect,\n#${t} .node circle,\n#${t} .node ellipse,\n#${t} .node polygon,\n#${t} .node path {\n fill: url(#linear-gradient-${t});\n}\n#${t} .node rect {\n rx: 4;\n ry: 4;\n}\n#${t} .labelBkg {\n background-color: #f5f8ff;\n}\n#${t} .edgeLabel,\n#${t} .edgeLabel p {\n background-color: transparent;\n}\n#${t} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`,s.appendChild(d);const m=ot.serializeToString(s),h=(0,Ze.f)(m,{fragment:!0}).children;r.children.splice(o,1,...h),r.properties.className=(r.properties.className||[]).concat("mermaid")})())})),await Promise.all(t)}}const at={Fragment:Me.Fragment,jsx:Me.jsx,jsxs:Me.jsxs};function it(){return e=>{(0,Be.YR)(e,"element",((e,t,n)=>{if(!n||"element"!==n.type||"pre"!==n.tagName||"code"!==e.tagName)return;const o=Qe(e);o&&!Object.prototype.hasOwnProperty.call(_e,o)&&(e.properties.className=e.properties.className.map((e=>e.startsWith("language-")?"language-text":e)))}))}}function lt(e){var t;let{content:n,components:o,shiki:r,externalLinks:a}=e;const[i,l]=(0,u.useState)(null),s=null!==(t=null==r?void 0:r.theme)&&void 0!==t?t:"dark-plus";return(0,u.useEffect)((()=>{let e=!1;return(async()=>{try{const t=await Ye({themes:[s]});if(e)return;const r=await(0,Te.l)().use($e.A).use(je.A).use(We.A).use(qe.A,a).use(rt).use(it).use(Ve.A,t,{theme:s,lazy:!0,defaultLanguage:"text"}).use(Le.A,{...at,passNode:!0,components:o}).process(n);e||l(r.result)}catch(t){e||(console.error("Convert markdown failed:",t),l(u.createElement("div",{style:{color:"var(--color-error)"}},"Convert markdown failed: ",String(t))))}})(),()=>{e=!0}}),[o,n,a,s]),i}var st,ct=n(74724),dt=n(72591),mt=n.n(dt),ht=n(1740),ut=n.n(ht),pt=n(88128),kt=n.n(pt),gt=n(30855),bt=n.n(gt),yt=n(93051),wt=n.n(yt),ft=n(73656),vt=n.n(ft),At=n(47148),xt={};let Et,Nt,Ct,St,Mt;xt.styleTagTransform=vt(),xt.setAttributes=bt(),xt.insert=kt().bind(null,"head"),xt.domAPI=ut(),xt.insertStyleElement=wt(),mt()(At.A,xt),At.A&&At.A.locals&&At.A.locals;const Tt=(0,g.wrapBrick)("presentational.code-wrapper"),{defineElement:$t,property:jt}=(0,k.createDecorators)(),Wt={target:"_blank",rel:["nofollow","noopener","noreferrer"],test:e=>function(e){if("string"!=typeof e)return!1;try{return new URL(e,`${location.origin}${(0,Ce.getBasePath)()}`).origin!==location.origin}catch{return!0}}(e.properties.href),content(e){if(!Ft(e))return{type:"element",tagName:"eo-icon",properties:{lib:"lucide",icon:"external-link"},children:[]}},contentProperties:{className:"external-link-icon"}};let qt;var Lt=new WeakMap,Vt=new WeakMap;class Bt extends g.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,Lt,Nt(this)),(0,i.A)(this,Vt,(Ct(this),St(this))),Mt(this)}get content(){return(0,d.A)(Lt,this)}set content(e){(0,c.A)(Lt,this,e)}get themeVariant(){return(0,d.A)(Vt,this)}set themeVariant(e){(0,c.A)(Vt,this,e)}render(){return p().createElement(Dt,{content:this.content,themeVariant:this.themeVariant})}}function Dt(e){let{content:t,themeVariant:n}=e;const o=(0,Se.useCurrentTheme)(),r=(0,u.useMemo)((()=>({theme:"dark-v2"===o?"dark-plus":"light-plus"})),[o]),a=(0,u.useMemo)((()=>({pre:function(e){var t;let{node:o,...r}=e;return p().createElement(Tt,{preProps:r,showCopyButton:!(null===(t=r.className)||void 0===t||!t.includes("shiki")),themeVariant:n,exportparts:"pre, copy, mermaid"})}})),[n]);return p().createElement(lt,{content:t,components:a,shiki:r,externalLinks:Wt})}function Ft(e){return e.children.some((e=>"element"===e.type&&("img"===e.tagName||Ft(e))))}st=Bt,({e:[Nt,Ct,St,Mt],c:[qt,Et]}=(0,m.A)(st,[$t("eo-markdown-display",{styleTexts:[ct.A]})],[[jt(),1,"content"],[jt(),1,"themeVariant"]],0,void 0,g.ReactNextElement)),Et()}}]);
2
- //# sourceMappingURL=2587.6b482a20.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[2587],{47148:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(36758),r=n.n(o),a=n(40935),i=n.n(a)()(r());i.push([e.id,':root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}',""]);const l=i},74724:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(36758),r=n.n(o),a=n(40935),i=n.n(a)()(r());i.push([e.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)}",""]);const l=i.toString()},82587:(e,t,n)=>{var o,r=n(24586),a=n(74635),i=n(70918),l=n(26902),s=n(5536),c=n(86121),d=n(70829),m=n(62740),h=n(89575),u=n(18769),p=n.n(u),k=n(90870),g=n(30981),b=(n(34419),n(90998)),y=n(73717),w=n(27647),f=n(92466),v=n(1854),A=n(9760),x=n(135),E=n(16486),N=n(16512),C=n(8653),S=n(30537),M=n(35435),T=n(29796),$=n(33971),j=n(37082),W=n(26816),q=n(24758),L=n(41757),V=n(42736),B=n(53373),D=n.n(B);let F,I,P,_,O,z,U,R,G,H,X,Y,J,K,Z,Q,ee,te,ne,oe,re,ae,ie;const le=(0,g.wrapBrick)("eo-form-item"),se=(0,g.wrapBrick)("eo-icon"),ce=e=>{let{icon:t,onClick:n,tooltip:o}=e;return p().createElement("div",{className:"menu-btn-box",onMouseDown:e=>{null==n||n(),e.preventDefault()}},p().createElement(se,(0,h.A)({style:{verticalAlign:"middle"}},t)),o&&p().createElement("div",{className:"menuIconTooltip"},o))},{defineElement:de,property:me,event:he}=(0,k.createDecorators)();let ue;var pe=new WeakMap,ke=new WeakMap,ge=new WeakMap,be=new WeakMap,ye=new WeakMap,we=new WeakMap,fe=new WeakMap,ve=new WeakMap,Ae=new WeakSet,xe=new WeakMap;class Ee extends L.N{constructor(){super(...arguments),(0,a.A)(this,Ae),(0,i.A)(this,pe,I(this)),(0,i.A)(this,ke,(P(this),_(this))),(0,i.A)(this,ge,(O(this),z(this))),(0,i.A)(this,be,(U(this),R(this))),(0,i.A)(this,ye,(G(this),H(this))),(0,i.A)(this,we,(X(this),Y(this))),(0,i.A)(this,fe,(J(this),K(this))),(0,i.A)(this,ve,(Z(this),Q(this))),(0,r.A)(this,"handleUploadImage",(ne(this),e=>{(0,s.A)(Ae,this,ee).emit(e)})),(0,i.A)(this,xe,oe(this)),(0,r.A)(this,"handleMarkdownValueChange",(ie(this),e=>{var t;null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),this.value=e,(0,s.A)(Ae,this,re).emit(e)}))}get name(){return(0,d.A)(pe,this)}set name(e){(0,c.A)(pe,this,e)}get label(){return(0,d.A)(ke,this)}set label(e){(0,c.A)(ke,this,e)}get required(){return(0,d.A)(ge,this)}set required(e){(0,c.A)(ge,this,e)}get value(){return(0,d.A)(be,this)}set value(e){(0,c.A)(be,this,e)}get bucketName(){return(0,d.A)(ye,this)}set bucketName(e){(0,c.A)(ye,this,e)}get readonly(){return(0,d.A)(we,this)}set readonly(e){(0,c.A)(we,this,e)}get containerStyle(){return(0,d.A)(fe,this)}set containerStyle(e){(0,c.A)(fe,this,e)}render(){return p().createElement(f.pb,null,p().createElement($.vo,null,p().createElement(Ne,{formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,curElement:this,bucketName:this.bucketName,value:this.value,readonly:this.readonly,containerStyle:this.containerStyle,onUploadImage:this.handleUploadImage,onMarkdownValueChange:this.handleMarkdownValueChange})))}}function Ne(e){const{bucketName:t,containerStyle:n,value:o,formElement:r,readonly:a,onUploadImage:i,onMarkdownValueChange:l}=e,[s,c]=(0,u.useState)(!1),d=async(n,o)=>{const r=[];let a=[];for(let e=0;e<n.length;e++){const t=n.item(e);t&&t.type.includes("image")&&r.push(t)}try{a=await Promise.all(r.map((async n=>{const r=await(0,y.i)(t,{file:n,width:0,height:0}),a=(l=null==r?void 0:r.objectName,`/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${e.bucketName}/object/${l}`);var l;const s=n.name;return i&&i({name:s,src:a}),o.nodes.image.createAndFill({src:a,alt:s})})))}catch(e){console.error("upload failed:",e)}return a},m=(0,$.Uv)(),k=(0,$.rJ)(),g=(0,$.$X)(),b=(0,u.useMemo)((()=>a?[]:[S.Te,W.EI,W.nk,e=>async()=>{e.set(W.EI.key,{view:m({component:W.ST})})},(0,W.jp)(k)].flat()),[a,m,k]),{get:L}=(0,f.hG)((e=>w.KE.make().config((n=>{n.set(w.k,e),n.update(w.QM,(e=>({...e,editable:()=>!a}))),o&&n.set(w.CI,o),n.get(C.Ob).markdownUpdated(((e,t,n)=>{l&&l(t)})).focus((()=>{c(!0)})).blur((()=>{c(!1)})),t&&n.update(E.wu.key,(e=>({...e,uploader:d}))),n.update(T.mS.key,(e=>({...e,configureRefractor:()=>j.L})))})).config(A.E).use(C.F_).use(v.PD).use(x.b6).use(S.Te).use(M.pZ).use(E.Se).use(b).use(T.Wj).use(a?[]:(0,N.m5)(v.Ay.node,(()=>g({component:q.N}))))),[]);function B(e,t){var n;return null===(n=L())||void 0===n?void 0:n.action((0,N.KD)(e,t))}(0,u.useEffect)((()=>{var e;r&&void 0!==o&&!s&&(null===(e=L())||void 0===e||e.action((0,N.yh)(o)))}),[L(),o]);const F=[{icon:{lib:"antd",icon:"undo"},onClick:()=>B(x.Eb.key),tooltip:"撤销"},{icon:{lib:"antd",icon:"redo"},onClick:()=>B(x.eD.key),tooltip:"重做"},{icon:{lib:"antd",icon:"bold"},onClick:()=>B(v.vY.key),tooltip:"粗体"},{icon:{lib:"antd",icon:"italic"},onClick:()=>B(v.e0.key),tooltip:"斜体"},{icon:{lib:"antd",icon:"strikethrough"},onClick:()=>B(S.$l.key),tooltip:"删除线"},{icon:{lib:"antd",icon:"table"},onClick:()=>B(S.f$.key),tooltip:"表格"},{icon:{lib:"antd",icon:"unordered-list"},onClick:()=>B(v.Xk.key),tooltip:"无序列表"},{icon:{lib:"antd",icon:"ordered-list"},onClick:()=>B(v.Ej.key),tooltip:"有序列表"},{icon:{lib:"fa",icon:"quote-right"},onClick:()=>B(v.oO.key),tooltip:"块引用"}];return p().createElement(le,(0,h.A)({exportparts:"message"},(0,V.v)(e)),p().createElement("div",{className:D()("markdown-container",{readonly:a}),style:n},!a&&p().createElement("div",{className:"menu-container-outter"},p().createElement("div",{className:"menu-container-inner prose"},F.map((e=>p().createElement(ce,(0,h.A)({},e,{key:JSON.stringify(e.icon)})))))),p().createElement("div",{className:"editor-container"},p().createElement(f.y5,null))))}o=Ee,({e:[I,P,_,O,z,U,R,G,H,X,Y,J,K,Z,Q,ee,te,ne,oe,re,ae,ie],c:[ue,F]}=(0,m.A)(o,[de("eo-markdown-editor",{styleTexts:[b.A],alias:["markdown.markdown-editor"]})],[[me(),1,"name"],[me(),1,"label"],[me({type:Boolean}),1,"required"],[me(),1,"value"],[me(),1,"bucketName"],[me({type:Boolean}),1,"readonly"],[me({attribute:!1}),1,"containerStyle"],[he({type:"image.upload"}),1,"uploadImage",e=>(0,d.A)(ve,e),(e,t)=>(0,c.A)(ve,e,t)],[he({type:"markdown.value.change"}),1,"markdownValueChange",e=>(0,d.A)(xe,e),(e,t)=>(0,c.A)(xe,e,t)]],0,(e=>Ae.has((0,l.A)(e))),L.N)),F();var Ce=n(60128),Se=n(64986),Me=n(31085),Te=n(21420),$e=n(35301),je=n(52967),We=n(35342),qe=n(97545),Le=n(51846),Ve=n(45619),Be=n(74269),De=n(62142),Fe=n(56948),Ie=n(32147),Pe=n(29755);const _e={json:()=>n.e(4190).then(n.bind(n,64190)),javascript:()=>n.e(5065).then(n.bind(n,15065)),js:()=>n.e(5065).then(n.bind(n,15065)),typescript:()=>n.e(2449).then(n.bind(n,72449)),ts:()=>n.e(2449).then(n.bind(n,72449)),html:()=>Promise.all([n.e(5065),n.e(2593),n.e(4735)]).then(n.bind(n,74735)),"html-derivative":()=>Promise.all([n.e(5065),n.e(2593),n.e(4735),n.e(9251)]).then(n.bind(n,9251)),xml:()=>n.e(8263).then(n.bind(n,28263)),css:()=>n.e(2593).then(n.bind(n,62593)),markdown:()=>n.e(8311).then(n.bind(n,88311)),md:()=>n.e(8311).then(n.bind(n,88311)),mermaid:()=>n.e(8757).then(n.bind(n,58757)),mmd:()=>n.e(8757).then(n.bind(n,58757)),jsx:()=>n.e(1136).then(n.bind(n,58755)),tsx:()=>n.e(4609).then(n.bind(n,54609)),shellscript:()=>n.e(1215).then(n.bind(n,1215)),bash:()=>n.e(1215).then(n.bind(n,1215)),sh:()=>n.e(1215).then(n.bind(n,1215)),shell:()=>n.e(1215).then(n.bind(n,1215)),zsh:()=>n.e(1215).then(n.bind(n,1215)),python:()=>n.e(2510).then(n.bind(n,82510)),py:()=>n.e(2510).then(n.bind(n,82510)),go:()=>n.e(5498).then(n.bind(n,75498)),sql:()=>n.e(1120).then(n.bind(n,21120)),yaml:()=>n.e(7729).then(n.bind(n,7729))},Oe={"light-plus":De.A,"dark-plus":Fe.A},ze=(0,Ie.q6)({langs:_e,themes:Oe,engine:()=>(0,Pe.Mk)(n.e(5032).then(n.bind(n,75032)))}),{codeToHtml:Ue,codeToHast:Re,codeToTokensBase:Ge,codeToTokens:He,codeToTokensWithThemes:Xe,getSingletonHighlighter:Ye,getLastGrammarState:Je}=(0,Ie.CZ)(ze,{guessEmbeddedLanguages(e,t){if("markdown"===t||"md"===t)return["mermaid"]}});var Ke=n(74650),Ze=n(96271);function Qe(e){const t=e.properties.className||[];for(const e of t)if("language-"===e.slice(0,9))return e.slice(9).toLowerCase();return null}let et;let tt=0;const nt=new DOMParser,ot=new XMLSerializer;function rt(){return async e=>{const t=[];(0,Be.YR)(e,"element",((e,o,r)=>{r&&"element"===r.type&&"pre"===r.tagName&&"code"===e.tagName&&"mermaid"===Qe(e)&&t.push((async()=>{const t="mermaid-"+tt++;let a;try{const o=await(et||(et=async function(){const e=(await n.e(7367).then(n.bind(n,67367))).default;return e.initialize({startOnLoad:!1,theme:"base",themeVariables:{fontSize:"14px",lineColor:"#979797",primaryColor:"#DCD2F3",primaryBorderColor:"#0000001A"}}),e}(),et));a=(await o.render(t,(0,Ke.d)(e))).svg}catch(e){var i;return console.error("Error rendering mermaid diagram:",e),void(null===(i=document.getElementById(t))||void 0===i||i.remove())}const l=nt.parseFromString(a,"text/html"),s=l.querySelector("svg"),c=l.createElementNS("http://www.w3.org/2000/svg","defs");c.innerHTML=`<linearGradient id="linear-gradient-${t}" 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>`,s.prepend(c);const d=l.createElementNS("http://www.w3.org/2000/svg","style");d.textContent=`\n#${t} .node rect,\n#${t} .node circle,\n#${t} .node ellipse,\n#${t} .node polygon,\n#${t} .node path {\n fill: url(#linear-gradient-${t});\n}\n#${t} .node rect {\n rx: 4;\n ry: 4;\n}\n#${t} .labelBkg {\n background-color: #f5f8ff;\n}\n#${t} .edgeLabel,\n#${t} .edgeLabel p {\n background-color: transparent;\n}\n#${t} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`,s.appendChild(d);const m=ot.serializeToString(s),h=(0,Ze.f)(m,{fragment:!0}).children;r.children.splice(o,1,...h),r.properties.className=(r.properties.className||[]).concat("mermaid")})())})),await Promise.all(t)}}const at={Fragment:Me.Fragment,jsx:Me.jsx,jsxs:Me.jsxs};function it(){return e=>{(0,Be.YR)(e,"element",((e,t,n)=>{if(!n||"element"!==n.type||"pre"!==n.tagName||"code"!==e.tagName)return;const o=Qe(e);o&&!Object.prototype.hasOwnProperty.call(_e,o)&&(e.properties.className=e.properties.className.map((e=>e.startsWith("language-")?"language-text":e)))}))}}function lt(e){var t;let{content:n,components:o,shiki:r,externalLinks:a}=e;const[i,l]=(0,u.useState)(null),s=null!==(t=null==r?void 0:r.theme)&&void 0!==t?t:"dark-plus";return(0,u.useEffect)((()=>{let e=!1;return(async()=>{try{const t=await Ye({themes:[s]});if(e)return;const r=await(0,Te.l)().use($e.A).use(je.A).use(We.A).use(qe.A,a).use(rt).use(it).use(Ve.A,t,{theme:s,lazy:!0,defaultLanguage:"text"}).use(Le.A,{...at,passNode:!0,components:o}).process(n);e||l(r.result)}catch(t){e||(console.error("Convert markdown failed:",t),l(u.createElement("div",{style:{color:"var(--color-error)"}},"Convert markdown failed: ",String(t))))}})(),()=>{e=!0}}),[o,n,a,s]),i}var st,ct=n(74724),dt=n(72591),mt=n.n(dt),ht=n(1740),ut=n.n(ht),pt=n(88128),kt=n.n(pt),gt=n(30855),bt=n.n(gt),yt=n(93051),wt=n.n(yt),ft=n(73656),vt=n.n(ft),At=n(47148),xt={};let Et,Nt,Ct,St,Mt;xt.styleTagTransform=vt(),xt.setAttributes=bt(),xt.insert=kt().bind(null,"head"),xt.domAPI=ut(),xt.insertStyleElement=wt(),mt()(At.A,xt),At.A&&At.A.locals&&At.A.locals;const Tt=(0,g.wrapBrick)("presentational.code-wrapper"),{defineElement:$t,property:jt}=(0,k.createDecorators)(),Wt={target:"_blank",rel:["nofollow","noopener","noreferrer"],test:e=>function(e){if("string"!=typeof e)return!1;try{return new URL(e,`${location.origin}${(0,Ce.getBasePath)()}`).origin!==location.origin}catch{return!0}}(e.properties.href),content(e){if(!Ft(e))return{type:"element",tagName:"eo-icon",properties:{lib:"lucide",icon:"external-link"},children:[]}},contentProperties:{className:"external-link-icon"}};let qt;var Lt=new WeakMap,Vt=new WeakMap;class Bt extends g.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,Lt,Nt(this)),(0,i.A)(this,Vt,(Ct(this),St(this))),Mt(this)}get content(){return(0,d.A)(Lt,this)}set content(e){(0,c.A)(Lt,this,e)}get themeVariant(){return(0,d.A)(Vt,this)}set themeVariant(e){(0,c.A)(Vt,this,e)}render(){return p().createElement(Dt,{content:this.content,themeVariant:this.themeVariant})}}function Dt(e){let{content:t,themeVariant:n}=e;const o=(0,Se.useCurrentTheme)(),r=(0,u.useMemo)((()=>({theme:"dark-v2"===o?"dark-plus":"light-plus"})),[o]),a=(0,u.useMemo)((()=>({pre:function(e){var t;let{node:o,...r}=e;return p().createElement(Tt,{preProps:r,showCopyButton:!(null===(t=r.className)||void 0===t||!t.includes("shiki")),themeVariant:n,exportparts:"pre, copy, mermaid"})}})),[n]);return p().createElement(lt,{content:t,components:a,shiki:r,externalLinks:Wt})}function Ft(e){return e.children.some((e=>"element"===e.type&&("img"===e.tagName||Ft(e))))}st=Bt,({e:[Nt,Ct,St,Mt],c:[qt,Et]}=(0,m.A)(st,[$t("eo-markdown-display",{styleTexts:[ct.A]})],[[jt(),1,"content"],[jt(),1,"themeVariant"]],0,void 0,g.ReactNextElement)),Et()}}]);
2
+ //# sourceMappingURL=2587.bfaefb65.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/2587.bfaefb65.js","mappings":"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","sources":["webpack:///./src/markdown-display/host-context.css","webpack:///./src/markdown-display/styles.shadow.css","webpack:///./src/markdown-editor/index.tsx","webpack:///../../src/index.ts","webpack:///../../src/utils.ts","webpack:///../../src/rehypeMermaid.ts","webpack:///../../src/MarkdownComponent.tsx","webpack:///./src/markdown-display/host-context.css?6555","webpack:///./src/markdown-display/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\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","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","// 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","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","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 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","\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, { 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"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","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","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","bundledLanguages","json","javascript","js","typescript","ts","html","html-derivative","xml","css","md","mermaid","mmd","jsx","tsx","shellscript","bash","sh","shell","zsh","python","py","go","sql","yaml","bundledThemes","lightPlus","darkPlus","createHighlighter","createdBundledHighlighter","langs","themes","engine","createOnigurumaEngine","codeToHtml","codeToHast","codeToTokensBase","codeToTokens","codeToTokensWithThemes","getSingletonHighlighter","getLastGrammarState","createSingletonShorthands","guessEmbeddedLanguages","code","lang","getCodeLanguage","properties","classListItem","slice","toLowerCase","mermaidPromise","count","parser","DOMParser","serializer","XMLSerializer","rehypeMermaid","promises","visit","tree","index","parent","tagName","svg","default","initialize","startOnLoad","theme","themeVariables","fontSize","lineColor","primaryColor","primaryBorderColor","doLoadMermaid","_document$getElementB","document","getElementById","remove","parseFromString","svgElement","querySelector","defs","createElementNS","innerHTML","prepend","textContent","appendChild","modifiedSvg","serializeToString","replacements","fromHtmlIsomorphic","fragment","children","splice","concat","production","Fragment","jsxs","rehypeFallbackLanguage","Object","prototype","hasOwnProperty","startsWith","MarkdownComponent","_shiki$theme","content","components","shiki","externalLinks","reactContent","setReactContent","ignore","highlighter","vFile","unified","remarkParse","remarkGfm","remarkToRehype","rehypeExternalLinks","rehypeShikiFromHighlighter","lazy","defaultLanguage","rehypeReact","passNode","process","result","color","String","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrappedCodeWrapper","target","rel","test","element","href","URL","location","origin","getBasePath","isExternalLink","containsImg","contentProperties","_MarkdownDisplay","MarkdownDisplay","ReactNextElement","_init_content","_init_extra_content","_init_themeVariant","_init_extra_themeVariant","themeVariant","MarkdownDisplayComponent","systemTheme","useCurrentTheme","shikiOptions","pre","_ref2","_props$className","preProps","showCopyButton","some","child","_MarkdownDisplay2"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[3171,5552],{75552:(n,e,t)=>{t.r(e),t.d(e,{i18n:()=>d,i18nText:()=>l,initializeI18n:()=>u});var i=t(75630),r=t(99733),s=t(848);let o=!1;const a=new Set;function u(n,e){if(o||(o=!0,r.i18n.use(s.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},returnNull:!1,compatibilityJSON:"v3",resources:{}})),n&&e&&!a.has(n)){a.add(n);for(const[t,i]of Object.entries(e))r.i18n.addResourceBundle(t,n,i)}}var c=t(49523);function l(n){var e;if(!n)return;const t=null!==(e=r.i18n.language)&&void 0!==e?e:"zh-CN";if((0,c.hasOwnProperty)(n,t))return n[t];const i=t.split("-")[0];if(i!==t)return(0,c.hasOwnProperty)(n,i)?n[i]:void 0;const s=`${i}-`;for(const e of Object.keys(n))if(e.startsWith(s))return n[e]}const d=i.default||i}}]);
2
+ //# sourceMappingURL=3171.90317f4f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/3171.90317f4f.js","mappings":"kPAEA,IAAIA,GAAc,EAClB,MAAMC,EAAwB,IAAIC,IAC3B,SAASC,EAAeC,EAAIC,GAyBjC,GAxBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,YAAY,EACZC,kBAAmB,KACnBC,UAAW,CAAC,KAGXf,GAAOC,IAAWJ,EAAsBmB,IAAIhB,GAAjD,CAGAH,EAAsBoB,IAAIjB,GAC1B,IAAK,MAAOkB,EAAMH,KAAcI,OAAOC,QAAQnB,GAC7C,EAAAC,KAAKmB,kBAAkBH,EAAMlB,EAAIe,EAHnC,CAKF,C,eClCO,SAASO,EAASC,GACvB,IAAIC,EACJ,IAAKD,EACH,OAEF,MAAME,EAAgD,QAApCD,EAAiB,EAAAtB,KAAKuB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAE3G,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOZ,OAAOa,KAAKT,GAC5B,GAAIQ,EAAIE,WAAWH,GACjB,OAAOP,EAAKQ,EAGlB,CC3BO,MAAM7B,EAA6E,WAAmB,C","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nlet initialized = false;\nconst initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n returnNull: false,\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (const [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n const language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport const i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default || i18next;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","returnNull","compatibilityJSON","resources","has","add","lang","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 4015.a112c57f.js.LICENSE.txt */
2
+ "use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[4015],{5536:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(12559);function o(e,t,n){return n((0,r.A)(e,t))}},11369:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(17545);function o(e){var t=function(e){if("object"!=(0,r.A)(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=(0,r.A)(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,r.A)(t)?t:t+""}},12559:(e,t,n)=>{function r(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}n.d(t,{A:()=>r})},17545:(e,t,n)=>{function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})},24586:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(11369);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},70829:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(12559);function o(e,t){return e.get((0,r.A)(e,t))}},70918:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(72016);function o(e,t,n){(0,r.A)(e,t),t.set(e,n)}},72016:(e,t,n)=>{function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{A:()=>r})},74635:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(72016);function o(e,t){(0,r.A)(e,t),t.add(e)}},84015:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>wt,checkInstalledApps:()=>o,checkPermissions:()=>At,flowApi:()=>i,menu:()=>s,messageDispatcher:()=>yt});var r={};n.r(r),n.d(r,{addPathToBlackList:()=>S,authenticate:()=>A,getAuth:()=>y,isBlockedHref:()=>k,isBlockedPath:()=>P,isBlockedUrl:()=>O,isLoggedIn:()=>b,logout:()=>w});var o={};n.r(o),n.d(o,{getCheckedApp:()=>ce,preCheckInstalledApps:()=>se,waitForCheckingApps:()=>ae});var i={};n.r(i),n.d(i,{FLOW_API_PROVIDER:()=>le,clearCollectWidgetContract:()=>Se,clearDebugContract:()=>Ie,collectContract:()=>we,collectDebugContract:()=>Pe,collectWidgetContract:()=>be,getArgsOfFlowApi:()=>Ee,isFlowApiProvider:()=>ke,registerFlowApiProvider:()=>fe});var s={};n.r(s),n.d(s,{fetchMenuById:()=>Ze,getMenuById:()=>Xe});var a={};n.r(a),n.d(a,{onRequest:()=>ft,onResponse:()=>ht,onResponseError:()=>mt});var c={};n.r(c),n.d(c,{create:()=>vt});var u={};n.r(u),n.d(u,{http:()=>a,initialize:()=>pt,pageView:()=>c});var l=n(85801),p=n(86330),d=n(41361),f=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),h=n(60128),m=n(11732);const g={};let v=new Set;function A(e){var t;Object.assign(g,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,accessToken:e.accessToken,userShowValue:e.userShowValue}),v=new Set(null===(t=e.license)||void 0===t?void 0:t.blackList)}function y(){return{...g}}function w(){for(const e of Object.keys(g))g[e]=void 0;E.clear(),C.length=0,M.clear()}function b(){return void 0!==g.username}function S(e){v.add(e)}function P(e){return[...v].some((t=>{const[n,r]=t.split("?"),[o,i]=e.split("?");if(!(0,h.matchPath)(o,{path:n}))return!1;if(!r)return!0;if(!i)return!1;const s=new URLSearchParams(r),a=new URLSearchParams(i);for(const[e,t]of s.entries())if(a.get(e)!==t)return!1;return!0}))}function I(e,t){const n=(0,h.getRuntime)().getFeatureFlags();return(null==n?void 0:n["blacklist-preserve-query-string"])&&t?e+t:e}function O(e){const t="string"==typeof e?(0,m.createLocation)(e):e,n=t.pathname;return"string"==typeof n&&P(I(n,t.search))}function k(e){const t=(0,h.getBasePath)(),n=new URL(e,`${location.origin}${t}`);return!(n.origin!==location.origin||!n.pathname.startsWith(t))&&P(I(n.pathname.substring(t.length-1),n.search))}const E=new Map,C=[],M=new Map;function T(e){if(b()&&!y().isAdmin)return _((0,l.scanPermissionActionsInAny)(e))}async function _(e){const t=e.filter((e=>!C.includes(e)));if(0===t.length)return;const n=[],r=[];for(const e of t){const t=E.get(e);t?n.push(t):r.push(e)}if(r.length>0){const e=(async()=>{try{const e=await f({actions:r},{noAbortOnRouteChange:!0});for(const t of e.actions)M.set(t.action,t.authorizationStatus),"undefined"===t.authorizationStatus&&console.error(`Undefined permission action: "${t.action}"`)}catch(e){console.error("Pre-check permissions failed",e)}finally{C.push(...r)}})();for(const t of r)E.set(t,e);n.push(e)}await Promise.all(n)}var j=n(74635),N=n(70918),$=n(5536),R=n(12559),L=n(86121),D=n(70829),B=n(20563),W=new WeakMap,x=new WeakMap,U=new WeakMap,F=new WeakMap,q=new WeakMap,z=new WeakMap,H=new WeakMap,G=new WeakSet;class J{constructor(e){(0,j.A)(this,G),(0,N.A)(this,W,void 0),(0,N.A)(this,x,void 0),(0,N.A)(this,U,[]),(0,N.A)(this,F,new Set),(0,N.A)(this,q,new Set),(0,N.A)(this,z,0),(0,N.A)(this,H,!1),(0,L.A)(W,this,e)}send(e){(0,D.A)(x,this)||(0,L.A)(x,this,(0,R.A)(G,this,V).call(this));const t=JSON.stringify(e);(0,D.A)(x,this).readyState===WebSocket.OPEN?(0,D.A)(x,this).send(t):(0,D.A)(U,this).push(t)}onMessage(e){return(0,D.A)(F,this).add(e),()=>{(0,D.A)(F,this).delete(e)}}onClose(e){return(0,D.A)(q,this).add(e),()=>{(0,D.A)(q,this).delete(e)}}reset(){(0,D.A)(U,this).length=0,(0,D.A)(F,this).clear(),(0,D.A)(q,this).clear()}close(){var e;(0,L.A)(H,this,!0),(null===(e=(0,D.A)(x,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,D.A)(x,this).close()}}function V(){console.log("WebSocket connecting ...");const e=new WebSocket((0,D.A)(W,this));let t;return e.addEventListener("open",(n=>{console.log("WebSocket open:",n),t=setTimeout((()=>{t=void 0,(0,L.A)(z,this,0)}),1e3);for(const t of(0,D.A)(U,this))e.send(t);(0,D.A)(U,this).length=0})),e.addEventListener("close",(e=>{(0,D.A)(H,this)||(void 0!==t&&clearTimeout(t),console.log("WebSocket close:",e),1e3!==e.code&&(0,R.A)(G,this,Y).call(this))})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{const t=JSON.parse(e.data);for(const e of(0,D.A)(F,this))e(t)})),e}function Y(){if((0,D.A)(z,this)>=5){console.error("WebSocket connect retry limit exceeded");for(const e of(0,D.A)(q,this))e();return}const e=1e3*Math.pow(2,(0,D.A)(z,this));console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,L.A)(z,this,(e=(0,D.A)(z,this),++e)),(0,L.A)(x,this,(0,R.A)(G,this,V).call(this))}),e)}var K=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakSet;function ee(e){if(!(0,D.A)(K,e)){const t=`${"https:"===location.protocol?"wss:":"ws:"}//${window.location.host}${(0,h.getBasePath)()}api/websocket_service/v1/ws`;(0,L.A)(K,e,new J(t))}return(0,D.A)(K,e)}function te(e,t,n,r){const o=(0,D.A)(Q,this)[e].get(r);if(o)return o;const i={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},s=new Promise(((t,r)=>{const o=ne(n),s=(0,$.A)(Z,this,ee).onMessage((n=>{const i=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),c=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(i||c)&&o===ne(n.payload)&&((i?t:r)(n),s(),a())})),a=(0,$.A)(Z,this,ee).onClose((()=>{r({retryCount:5}),s(),a()}));(0,$.A)(Z,this,ee).send(i)}));return"sub"===e&&(0,D.A)(X,this).set(t,r),(0,D.A)(Q,this)[e].set(r,s),s}function ne(e){const{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var re=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}();const oe=new Map,ie=new Map;function se(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){const n=function(e){var t;const n={usedArgs:new Set},{customTemplates:r,menus:o}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,l.traverseStoryboardExpressions)([e.routes,r,o],((e,t)=>{(0,l.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),r=[];for(const e of n)oe.has(e)||t(e)||r.push(e);if(0===r.length)return;const o=re({query:{appId:{$in:r}},fields:["appId","currentVersion","installStatus"]},{noAbortOnRouteChange:!0}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)}));for(const e of r)oe.set(e,o.then((t=>{var n;const r=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),o=r?{...r,id:e}:void 0;return ie.set(e,o),o})))}}async function ae(e){await Promise.all(e.map((e=>oe.get(e))))}function ce(e){if(window.STANDALONE_MICRO_APPS)return ie.get(e)}var ue=n(49523);const le="core.provider-flow-api";function pe(e,t){return null==e?void 0:e.some((e=>e.source===t))}async function de(e){let{url:t,originalUri:n,method:r="GET",responseWrapper:o=!0,ext_fields:i,request:s,isFileType:a,stream:c}=e;const u=["get","delete","head"].includes(r.toLowerCase()),l=a?{responseType:"blob"}:{};let p;for(var f=arguments.length,h=new Array(f>1?f-1:0),m=1;m<f;m++)h[m-1]=arguments[m];if(u){var g,v,A,y;let e,o;var w,b;if(n&&"object"===(null==s?void 0:s.type)&&(null!==(g=null===(v=n.match(/:([^/]+)/g))||void 0===v?void 0:v.length)&&void 0!==g?g:0)===(null!==(A=null===(y=s.fields)||void 0===y?void 0:y.length)&&void 0!==A?A:0)?[o]=h:[e,o]=h,c)return await(0,ue.createSSEStream)(d.http.getUrlWithParams(t,e),{...l,...o,method:r,headers:Object.fromEntries([...new Headers(null!==(w=null===(b=o)||void 0===b?void 0:b.headers)&&void 0!==w?w:{}).entries()])});p=await d.http.simpleRequest(r,t,{params:e,...l,...o})}else{const e=function(e){if("object"!==(null==e?void 0:e.type))return!1;const t=e=>!(0,B.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),n=function(e){const t=pe(e,"query");for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];if(t){if(pe(e,"body")){const[e,t,n]=r;return{data:e,options:{params:t,...n}}}const[t,n]=r;return{data:{},options:{params:t,...n}}}const[i,s]=r;return{data:i,options:s}}(i,...h),o=e?function(e){if(e instanceof FormData)return e;const t=new FormData;for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>{t.append(n,e)})):!(0,B.isObject)(r)||r instanceof Blob||r instanceof Date?t.append(n,r):Object.entries(r).forEach((e=>{let[r,o]=e;t.append(`${n}[${r}]`,o)}));return t}(n.data):n.data;if(c){var S;const{body:e,headers:i}=d.http.getBodyAndHeaders(o,null===(S=n.options)||void 0===S?void 0:S.headers);return await(0,ue.createSSEStream)(t,{...l,...n.options,method:r,headers:Object.fromEntries([...new Headers(null!=i?i:{}).entries()]),body:e})}p=await d.http.requestWithBody(r,t,o,{...l,...n.options})}return!a&&o?p.data:p}function fe(){customElements.define(le,(0,ue.createProviderClass)(de))}var he=n(55310);const me=async(e,t)=>(await d.http.post("api/gateway/next_builder.contract_center.BatchSearchContract/api/v1/contract/batch_search",e,t)).data,ge=new Map,ve=new Map,Ae=new Map,ye=(e,t)=>{null==e||e.forEach((e=>{t.set(`${e.namespaceId}.${e.name}`,e)}))};function we(e){ye(e,ge)}function be(e){ye(e,ve)}function Se(){ve.clear()}function Pe(e){ye(e,Ae)}function Ie(){Ae.clear()}const Oe=new Map;function ke(e){return e.includes("@")}async function Ee(e,t,n,r){if(!e.includes(":"))throw new Error(`You're using legacy Custom API "${e}" which is dropped in v3, please use Flow API instead`);const o=await async function(e){const[t,n]=e.split("@"),[r,o]=n.split(":"),i=function(e){return ge.get(e)||ve.get(e)||Ae.get(e)}(`${t}.${r}`);if(i)return{name:i.name,namespace:i.namespaceId,serviceName:i.serviceName,version:i.version,contract:{endpoint:i.endpoint,response:i.response,request:i.request}};let s=Oe.get(e);return s||(s=async function(e,t,n){let r;const o=`${e}@${t}`;let i;try{const{list:e}=await me({contract:[{fullContractName:o,version:n}]});r=e[0]}catch(e){if((0,h.isUnauthenticatedError)(e))throw e;i=e}return r?{name:r.name,namespace:r.namespaceId,serviceName:r.serviceName,version:r.version,contract:{endpoint:r.endpoint,response:r.response,request:r.request}}:(console.error(`Failed to fetch Flow API definition for "${o}:${n}"`,null!=i?i:"Contract not found"),null)}(t,r,o),Oe.set(e,s)),s}(e);if(!o)throw new Ce(`Flow API not found: "${e}"`);const i=function(e,t){var n,r;const o="string"==typeof t.contract?he.safeLoad(t.contract,{schema:he.JSON_SCHEMA,json:!0}):t.contract,{uri:i,method:s="GET",ext_fields:a}=null!==(n=null==o?void 0:o.endpoint)&&void 0!==n?n:{},c=!(null==o||!o.response)&&!1!==o.response.wrapper;if(!i)throw new Error(`Missing endpoint.uri in contract of provider "${e}"`);return{uri:i,method:"list"===s.toLowerCase()?"get":s,ext_fields:a,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==o||null===(r=o.response)||void 0===r?void 0:r.type),responseWrapper:c,request:null==o?void 0:o.request}}(e,o);return function(e,t,n,r){const{uri:o,method:i,ext_fields:s,responseWrapper:a,isFileType:c,request:u}=e,l="saveAs"===n;let p,d=t;l&&(Array.isArray(t)?(d=t.slice(),p=d.shift()):p=t.filename);const{url:f,args:h}=function(e,t){const{uri:n,name:r,namespace:o,serviceName:i,version:s,method:a="GET",request:c,ext_fields:u}=e,l=s?"logic.api.gateway"===i||null!=i&&i.startsWith("logic.api.gateway.")?"":i?`api/gateway/${i}`:`api/gateway/${o}.${r}@${s}`:`api/gateway/api_service.${o}.${r}`;let p,d=[];if(Array.isArray(t))d=t.slice(),p=n.replace(/:([^/]+)/g,(()=>d.shift()));else{const e={...t.params};if(p=n.replace(/:([^/]+)/g,((t,n)=>{if((0,ue.hasOwnProperty)(e,n)){const t=e[n];return delete e[n],t}throw new Error(`Missing required param: "${n}"`)})),["get","delete","head"].includes(a.toLowerCase())){var f,h,m,g;"object"===(null==c?void 0:c.type)&&(null!==(f=null===(h=n.match(/:([^/]+)/g))||void 0===h?void 0:h.length)&&void 0!==f?f:0)===(null!==(m=null===(g=c.fields)||void 0===g?void 0:g.length)&&void 0!==m?m:0)||d.push(e)}else{const t=null==u?void 0:u.find((e=>"body"===e.source));if(t){let n;t.name&&(0,ue.hasOwnProperty)(e,t.name)&&(n=e[t.name],delete e[t.name]),d.push(n)}const n=null==u?void 0:u.find((e=>"query"===e.source));if(n){let t;n.name&&(0,ue.hasOwnProperty)(e,n.name)&&(t=e[n.name],delete e[n.name]),d.push(t)}t||n||d.push(e)}t.options&&d.push(t.options)}return{url:l?l+p:p.replace(/^\//,""),args:d}}(e,d);return[...l?[p]:[],{url:f,originalUri:o,method:i,ext_fields:s,responseWrapper:a,request:u,isFileType:c,stream:r},...h]}(i,t,n,r)}class Ce extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,Ce)}}var Me=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Te=n(24586);function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_e(Object(n),!0).forEach((function(t){(0,Te.A)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ne=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),je(je({},n),{},{params:t}))).data}));return function(t,n,r){return e.apply(this,arguments)}}(),$e=n(99733);const Re=Symbol("appId"),Le=Symbol("menuI18nNamespace"),De=Symbol("overrideApp");async function Be(e,t,n){const r=e.find((e=>"inject"!==e.type));if(!r)return;const o=[],i=new Map,s=new WeakMap;for(const t of e)if(t.i18n){const e=`menu/${t.menuId}~${t.app[0].appId}+${t.instanceId}`;Object.entries(t.i18n).forEach((t=>{let[n,r]=t;$e.i18n.addResourceBundle(n,e,r)})),s.set(t,e)}await Promise.all(e.map((e=>async function(e,t,n,r){if(e.dynamicItems&&e.itemsResolve){const i=e.app[0].appId,s={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,T(e.itemsResolve)]};var o;i!==t.app.id&&(s.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(o=r.getStoryboardByAppId(i))||void 0===o?void 0:o.app,s.appendI18nNamespace=n.get(e));const a=await r.resolveData({transform:"items",...e.itemsResolve},s);e.items=a.items}}(e,t,s,n))));for(const t of e){var a;if(null!==(a=t.items)&&void 0!==a&&a.length)if("inject"===t.type&&t.injectMenuGroupId){let e=i.get(t.injectMenuGroupId);e||(e=[],i.set(t.injectMenuGroupId,e)),e.push(t)}else o.push(t)}return{...r,items:o.flatMap((e=>We(e.items,e,i,s))),[Le]:s.get(r),[De]:r.overrideApp}}function We(e,t,n,r){return null==e?void 0:e.map((e=>{var o;const i=e.groupId&&n.get(e.groupId);return i&&n.delete(e.groupId),{...e,children:(null!==(o=We(e.children,t,n,r))&&void 0!==o?o:[]).concat(i?i.flatMap((e=>We(e.items,e,n,r))):[]),[Re]:t.app[0].appId,[Le]:r.get(t),[De]:t.overrideApp}}))}function xe(e){e.items=Ue(e.items)}function Ue(e){return function(e){return(0,B.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>({...e,children:Ue(e.children)})))}var Fe=n(59933),qe=n(71321);function ze(e,t,n,r){if("titleDataSource"in e&&(0,ue.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{let[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,qe.isEvaluable)(e.to)){const t=Fe.pipes.yaml(e.to);(0,ue.isObject)(t)&&["pathname","search","hash"].some((e=>(0,ue.hasOwnProperty)(t,e)))&&(e.to=t)}let o=n;if(t!==n.app.id){var i;const s=window.STANDALONE_MICRO_APPS?e[De]:null===(i=r.getStoryboardByAppId(t))||void 0===i?void 0:i.app;o={...n,overrideApp:s,appendI18nNamespace:e[Le]}}return r.asyncComputeRealValue(e,o,{ignoreSymbols:!0})}function He(e,t,n){return Promise.all(e.map((async e=>{let{children:r,...o}=e;const[i,s]=await Promise.all([ze(o,o[Re],t,n),r&&await He(r,t,n)]);return{...i,children:s}})))}var Ge=function(){var e=(0,p.A)((function*(e,t,n,r){return(yield d.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),je(je({},r),{},{params:n}))).data}));return function(t,n,r,o){return e.apply(this,arguments)}}();const Je=new Map;async function Ve(e){if(e.title||(0,B.isEmpty)(e.titleDataSource))return e.title;const t=JSON.stringify(e.titleDataSource),n=Je.get(t);if(void 0!==n)return n;const{objectId:r,instanceId:o,attributeId:i}=e.titleDataSource,s=null!=i?i:"name",a=await Ge(r,o,{fields:s});let c;if("#showKey"===i&&Array.isArray(a[s])){const[e,...t]=a[s];c=t.length>0?`${e}(${t.join(",")})`:String(e)}else c=String(a[s]);return Je.set(t,c),c}const Ye=new Map,Ke=new Map;function Qe(e){return null==e?void 0:e.filter(h.checkIfOfComputed).map((e=>{const t=Qe(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t,groupId:e.groupId,groupFrom:e.groupFrom}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:function(e){return e.href?k(e.href):!!e.to&&O(e.to)}(e)?null:(0,B.omit)(e,["type","items","children"])})).filter(Boolean)}function Xe(e){return Ke.get(e)}function Ze(e,t,n){let r=Ye.get(e);return r||(r=async function(e,t,n){const r=window.STANDALONE_MICRO_APPS?function(e,t,n){var r,o,i,s;const a=n.getStoryboardByAppId(t);return(null!==(r=null!==(o=null===(i=a.meta)||void 0===i?void 0:i.injectMenus)&&void 0!==o?o:null===(s=a.meta)||void 0===s?void 0:s.menus)&&void 0!==r?r:[]).filter((t=>t.menuId===e)).map((e=>{var n;return{...e,...null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]}}}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(await Ne(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(await Me("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,o=await Be(r,t,n);if(!o)throw new Error(`Menu not found: ${e}`);xe(o);const{items:i,app:s,...a}=o,c={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,T([i,a])]};delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex,delete c.forEachSize;const u=s[0].appId,[l,p]=await Promise.all([ze(a,u,c,n),He(i,c,n)]),d={title:await Ve(l),...(0,B.pick)(l,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"]),menuItems:Qe(p)};Ke.set(e,d)}(e,t,n)),r}const et=[];let tt=null;const nt={maxWaitingTime:5e3,maxLoggedEvents:10};function rt(){clearTimeout(tt),et.length>nt.maxLoggedEvents?ot():tt=setTimeout(ot,nt.maxWaitingTime)}function ot(){if(0===et.length)return;const e={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:et.splice(0,nt.maxLoggedEvents)};var t;!function(e,t){const n=new Blob([JSON.stringify(t)],{type:"application/json"});window.navigator.sendBeacon(e,n)}(nt.api,e),et.length&&(t=ot,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(t))}function it(){window.addEventListener("beforeunload",ot,!1)}let st,at=!1,ct=null,ut=!0;const lt=[];function pt(e){at||(at=!0,st||(st=function(e,t){return Object.assign(nt,{...t,api:e}),{sendOnExit:it,emit:rt}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),st.sendOnExit()))}const dt=Symbol("HttpAnalytics");function ft(e){const t=Math.round(performance.now()),n=Date.now();return e[dt]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function ht(e,t){return gt(!1,e,t)}function mt(e,t){return gt(!0,e,t)}function gt(e,t,n){const r=Math.round(performance.now()),o=Date.now(),{[dt]:i,url:s}=n;if(i&&!(e&&t instanceof d.HttpAbortError)){delete n[dt];const{st:c,time:u,perfStartTime:l}=i,{userInstanceId:p,username:f}=y();let h,m,g,v,A,w,b;if(e){const e=t instanceof d.HttpResponseError;(e||t instanceof d.HttpParseError)&&(({status:A,headers:w}=t.response),e&&(b=t.responseJson))}else({status:A,data:b,headers:w}=t);(0,ue.isObject)(b)&&({code:h,message:m}=b),w instanceof Headers&&(g=w.get("x-b3-traceid"),v=w.get("content-length")),a={st:c,_ver:c,uid:p,username:f,time:u,et:o,page:location.href,duration:r-l,api:s,type:"api",code:null!=h?h:-1,msg:null!=m?m:"",status:A,traceId:null!=g?g:"",size:v?Number(v):-1},ct?et.push({...a,type:"apiRequest",...ct}):lt.push(a)}var a;return e?Promise.reject(t):t}function vt(){const e=Math.round(performance.now()),t=Date.now();return lt.length=0,ct=null,function(n){let{status:r,path:o,pageTitle:i}=n;if("ok"!==r)return et.push(...lt),void(lt.length=0);const s=Math.round(performance.now())-e,a=Date.now(),{username:c}=y();(function(e){const t=function(){const e=URL.createObjectURL(new Blob([]));let t=e.substring(e.lastIndexOf("/")+1);return URL.revokeObjectURL(e),ut&&(t="88-"+t,ut=!1),t}(),{lt:n,route:r}=e;ct={lt:n,route:r,pageId:t},et.push({...e,pageId:t,apiCount:lt.length,maxApiTimeCost:Math.max(0,...lt.map((e=>e.duration))),size:lt.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)});for(const e of lt)et.push({...e,...ct});lt.length=0,st.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:a,lt:s,pageTitle:i,username:c,route:o}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:s}}))}}const At=Object.freeze({checkPermissions:function(){if(!b())return!1;if(y().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(const e of t)switch(M.get(e)){case"unauthorized":case"undefined":return!1;case void 0:return console.error(`Un-checked permission action: "${e}", please make sure the permission to check is defined in permissionsPreCheck.`),!1}return!0},preCheckPermissions:function(e){if(b()&&!y().isAdmin)return _((0,l.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:async function(e,t){if(b()&&!y().isAdmin&&Array.isArray(e.permissionsPreCheck))return _(await t(e.permissionsPreCheck))}}),yt=new class{constructor(){(0,j.A)(this,Z),(0,N.A)(this,K,void 0),(0,N.A)(this,Q,{sub:new Map,unsub:new Map}),(0,N.A)(this,X,new Map)}subscribe(e,t){const n=JSON.stringify(t);return(0,R.A)(Z,this,te).call(this,"sub",e,t,n)}unsubscribe(e){const t=(0,D.A)(X,this).get(e);if(!t){const t=`The message channel to unsubscribe "${e}" is not found`;return console.error(t),Promise.reject(new Error(t))}const n=JSON.parse(t),r=(0,R.A)(Z,this,te).call(this,"unsub",e,n,t);return(0,D.A)(Q,this).sub.delete(t),r.then((()=>{(0,D.A)(X,this).delete(e)})),r}onMessage(e,t){let n=(0,D.A)(X,this).get(e),r=!1;return(0,$.A)(Z,this,ee).onMessage((o=>{n||(n=(0,D.A)(X,this).get(e)),n?"MESSAGE.PUSH"===o.event&&function(e,t){const n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp(`^${n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>`${(0,B.escapeRegExp)(t)}[^/]*${(0,B.escapeRegExp)(n)}`))}$`).test(t.topic))}(n,o.payload)&&t(o.payload.message):r||(console.error(`Message channel: "${e}" not found`),r=!0)}))}onClose(e){return(0,$.A)(Z,this,ee).onClose(e)}reset(){var e;(0,D.A)(Q,this).sub.clear(),(0,D.A)(Q,this).unsub.clear(),(0,D.A)(X,this).clear(),null===(e=(0,D.A)(K,this))||void 0===e||e.reset()}},wt=function(){const e=(0,h.getV2RuntimeFromDll)();if(e)return Object.freeze((0,B.pick)(e,["authenticate","getAuth","isLoggedIn","logout","addPathToBlackList","isBlockedPath","isBlockedUrl","isBlockedHref"]))}()||r},86121:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(12559);function o(e,t,n){return e.set((0,r.A)(e,t),n),n}},86330:(e,t,n)=>{function r(e,t,n,r,o,i,s){try{var a=e[i](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var s=e.apply(t,n);function a(e){r(s,o,i,a,c,"next",e)}function c(e){r(s,o,i,a,c,"throw",e)}a(void 0)}))}}n.d(t,{A:()=>o})}}]);
3
+ //# sourceMappingURL=4015.a112c57f.js.map
@@ -0,0 +1,11 @@
1
+ /**! @contract easyops.api.cmdb.instance.GetDetail@1.0.0 */
2
+
3
+ /**! @contract easyops.api.cmdb.instance.PostSearch@1.1.0 */
4
+
5
+ /**! @contract easyops.api.micro_app.installed_micro_app.GetMenusInfo@1.0.0 */
6
+
7
+ /**! @contract easyops.api.micro_app.permission.ValidatePermissions@1.0.0 */
8
+
9
+ /**! @contract easyops.api.micro_app_standalone.runtime.SearchMicroAppStandalone@1.0.1 */
10
+
11
+ /**! @contract easyops.api.next_builder.contract_center.BatchSearchContract@1.0.0 */