@netless/appliance-plugin 1.1.31 → 1.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/cdn.js +1 -1
- package/cdn/{fullWorker-8cQCRH.js → fullWorker-BuCr8Z.js} +1 -1
- package/cdn/{subWorker-Bj1Oy7.js → subWorker-00SXWn.js} +1 -1
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +1 -1
- package/dist/fullWorker.js +1 -1
- package/dist/{index-MwM-TUUF.mjs → index-B9IvzEGP.mjs} +1 -1
- package/dist/{index-DiHYEAGm.mjs → index-BA9yB27Q.mjs} +351 -352
- package/dist/{index-OfIZzgAi.js → index-CcTOfya8.js} +1 -1
- package/dist/{index-CpRTvTdJ.mjs → index-DFQ4hkMe.mjs} +1 -1
- package/dist/{index-XJ7wx0mr.js → index-DfV03MPS.js} +1 -1
- package/dist/index-DpQJ_LNL.js +1 -0
- package/dist/subWorker.js +1 -1
- package/package.json +1 -1
- package/dist/index-D-zGeAx1.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var K = Object.defineProperty;
|
|
2
2
|
var j = (o, e, t) => e in o ? K(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
|
|
3
3
|
var u = (o, e, t) => j(o, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
import { E as B, a as k, b as D, c as x, d as E, V as P, S as Z } from "./index-
|
|
4
|
+
import { E as B, a as k, b as D, c as x, d as E, V as P, S as Z } from "./index-BA9yB27Q.mjs";
|
|
5
5
|
import { isEqual as W, isString as _, clone as J, throttle as Q } from "lodash";
|
|
6
6
|
import "white-web-sdk";
|
|
7
7
|
import "spritejs";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";var j=Object.create;var N=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var R=(o,e,t)=>e in o?N(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var _=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of U(e))!Y.call(o,a)&&a!==t&&N(o,a,{get:()=>e[a],enumerable:!(r=G(e,a))||r.enumerable});return o};var Z=(o,e,t)=>(t=o!=null?j(X(o)):{},_(e||!o||!o.__esModule?N(t,"default",{value:o,enumerable:!0}):t,o));var g=(o,e,t)=>R(o,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./index-
|
|
1
|
+
"use strict";var j=Object.create;var N=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var R=(o,e,t)=>e in o?N(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var _=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of U(e))!Y.call(o,a)&&a!==t&&N(o,a,{get:()=>e[a],enumerable:!(r=G(e,a))||r.enumerable});return o};var Z=(o,e,t)=>(t=o!=null?j(X(o)):{},_(e||!o||!o.__esModule?N(t,"default",{value:o,enumerable:!0}):t,o));var g=(o,e,t)=>R(o,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./index-DpQJ_LNL.js"),M=require("lodash");require("white-web-sdk");require("spritejs");require("lz-string");require("clipper-lib");require("lineclip");require("xss");require("react-dom");require("react");const J=require("markmap-view"),Q=require("markmap-lib"),ee=require("./ObserverMap-DTz9zucn.js");function te(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const t in o)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>o[t]})}}return e.default=o,Object.freeze(e)}const $=te(J);class re{constructor(){g(this,"threadEngine")}registerBackgroundThread(e){return this.threadEngine=e,this}}class ae extends re{constructor(){super(...arguments);g(this,"emitEventType",u.EmitEventType.CopyNode)}async consume(t){const{msgType:r,dataType:a,emitEventType:i}=t;if(r===u.EPostMessageType.FullWork&&a===u.EDataType.Local&&i===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var a;const{workId:r}=t;r&&await((a=this.threadEngine)==null?void 0:a.consumeFull(t))}}class se{constructor(e){g(this,"builders",new Map);this.builders=new Map(e.map(t=>[t,this.build(t)]))}build(e){switch(e){case u.EmitEventType.CopyNode:return new ae}}registerForBackgroundThread(e){return this.builders.forEach(t=>{t&&t.registerBackgroundThread(e)}),this}async consumeForBackgroundThread(e){for(const t of this.builders.values())if(await(t==null?void 0:t.consume(e)))return!0;return!1}}let C=null,A=null,L=!1;function B(o){return!o||typeof o!="string"?!1:/```\s*mermaid[\s\S]*?```/i.test(o)}async function ie(){return C||A||(A=import("mermaid").then(o=>(C=o,A=null,o)).catch(o=>{throw A=null,o}),A)}async function ne(){const o=await ie();return L||(o.default.initialize({startOnLoad:!1,theme:"default"}),L=!0),o}function oe(){return(C==null?void 0:C.default)||null}const T=class T{constructor(){g(this,"mermaidCodeBlocksByWorkId",new Map)}static getInstance(){return T.instance||(T.instance=new T),T.instance}generateId(){return`mermaid-${Math.random().toString(36).substr(2,9)}`}createContainer(e,t,r){if(t&&r){let a=this.mermaidCodeBlocksByWorkId.get(r);a||(a=new Map,this.mermaidCodeBlocksByWorkId.set(r,a)),a.set(e,t)}return`<div class="mermaid-container" data-mermaid-id="${e}"><div class="mermaid-placeholder" id="${e}">正在渲染图表...</div></div>`}getCode(e,t){const r=this.mermaidCodeBlocksByWorkId.get(t);return r==null?void 0:r.get(e)}clear(e){e?this.mermaidCodeBlocksByWorkId.delete(e):this.mermaidCodeBlocksByWorkId.clear()}extendMarkdown(e,t){const r=e.md.renderer,a=r.rules.fence,i=this;r.rules.fence=(s,n,c,d,w)=>{const p=s[n];if(p.info.trim()==="mermaid"){const f=i.generateId();return i.createContainer(f,p.content,t)}return a?a(s,n,c,d,w):""}}static generateId(){return T.getInstance().generateId()}static createContainer(e,t,r){return T.getInstance().createContainer(e,t,r)}static getCode(e,t){return T.getInstance().getCode(e,t)}static clear(e){T.getInstance().clear(e)}static extendMarkdown(e,t){T.getInstance().extendMarkdown(e,t)}};g(T,"instance",null);let b=T;class I{static checkNodeHasMermaid(e){if(!e)return!1;if(e.content&&typeof e.content=="string"&&(e.content.includes('class="mermaid-container"')||e.content.includes("class='mermaid-container'")||e.content.includes("data-mermaid-id=")||e.content.includes("mermaid-placeholder")))return!0;if(e.children&&Array.isArray(e.children)){for(const t of e.children)if(I.checkNodeHasMermaid(t))return!0}return!1}static async renderMermaidAfterDOMUpdate(e,t){await I.renderMermaidBlocks(e,t)}static async renderMermaidBlocks(e,t){if(!e)return;try{await ne()}catch(n){console.error("[renderMermaidBlocks] error: ",n);return}const r=oe();if(!r)return;let a=null,i=!1;for(let n=0;n<30;n++){const c=e.querySelectorAll("foreignObject");if(a=e.querySelectorAll(".mermaid-container"),a.length>0||(c.length>0&&(i=!0),await new Promise(d=>setTimeout(d,50)),i&&n>=20))break}if(!a||a.length===0)return;const s=Array.from(a).map(async(n,c)=>{const d=n,w=d.getAttribute("data-mermaid-id"),p=w?b.getCode(w,t):void 0,l=d.querySelector(".mermaid-placeholder");if(!(!l||!p))try{const y=`mermaid-${t.replace(/[^a-zA-Z0-9_-]/g,"-")}-${Date.now()}-${c}`,{svg:v}=await r.render(y,p);if(l&&l.parentNode){const k=document.createElement("div");k.innerHTML=v;const m=k.querySelector("svg");if(m){if(!m.getAttribute("viewBox")&&m.getAttribute("width")&&m.getAttribute("height")){const O=m.getAttribute("width"),S=m.getAttribute("height"),x=parseFloat((O==null?void 0:O.replace(/px|%/,""))||"0"),E=parseFloat((S==null?void 0:S.replace(/px|%/,""))||"0");x>0&&E>0&&m.setAttribute("viewBox",`0 0 ${x} ${E}`)}m.style.display="block",m.style.maxWidth="100%",m.style.width="auto",m.style.height="auto",m.style.overflow="visible",m.style.verticalAlign="top",m.style.objectFit="contain";const h=document.createElement("div");h.className="mermaid-wrapper",h.style.width="100%",h.style.height="auto",h.style.overflow="hidden",h.style.display="inline-block",h.style.verticalAlign="top",h.style.margin="0",h.style.padding="0",h.style.boxSizing="border-box",h.style.position="relative",this.isSafari()&&(h.style.clipPath="inset(100% 0 0 0)",h.style.pointerEvents="none"),h.appendChild(m),m.style.width="100%",m.style.height="100%",m.style.maxWidth="100%",m.style.maxHeight="100%",m.style.objectFit="contain",m.setAttribute("data-type","mermaid"),this.isSafari()&&(m.style.opacity="0"),l.parentNode.replaceChild(h,l)}else l.outerHTML=v}}catch(f){const y=f instanceof Error?f.message:String(f);l&&(l.textContent=`Mermaid 渲染失败: ${y}`,l.style.color="red",l.style.fontSize="12px")}});await Promise.all(s)}static isSafari(){const e=navigator.userAgent.toLowerCase(),t=e.indexOf("safari")!==-1&&e.indexOf("chrome")===-1&&e.indexOf("chromium")===-1,r=!!(navigator.vendor&&navigator.vendor.indexOf("Apple")!==-1);return t||r}static async transformMermaidSvgToMarkmapSvg(e){if(!e)return;await new Promise(s=>setTimeout(s,200));const t=e.querySelectorAll('g[data-mermaid-wrapper][data-mermaid-clone="true"]'),r=e.querySelectorAll("foreignObject"),a=new Set;if(r.forEach(s=>{const n=s.querySelector(".mermaid-container"),c=n==null?void 0:n.getAttribute("data-mermaid-id");c&&a.add(c)}),t.forEach(s=>{const n=s.getAttribute("data-mermaid-id");n&&!a.has(n)&&s.remove()}),r.length===0)return;const i=Array.from(r).map(async s=>{let n=s.querySelector('svg[data-type="mermaid"]');if(!n){const w=s.querySelector(".mermaid-wrapper");w&&(n=w.querySelector('svg[data-type="mermaid"]'))}if(!n)return;const c=s.querySelector(".mermaid-container"),d=c==null?void 0:c.getAttribute("data-mermaid-id");if(d)try{const w=parseFloat(s.getAttribute("x")||"0"),p=parseFloat(s.getAttribute("y")||"0"),l=parseFloat(s.getAttribute("width")||"0"),f=parseFloat(s.getAttribute("height")||"0");if(l<=0||f<=0)return;const y=s.parentElement;if(!y||y.tagName!=="g")return;let v=y.getAttribute("transform");if(!v)v=`translate(${w}, ${p})`;else{const S=v.match(/translate\(([^,]+),([^)]+)\)/);if(S){const x=parseFloat(S[1]),E=parseFloat(S[2]),P=x+w,K=E+p;v=v.replace(/translate\([^)]+\)/,`translate(${P}, ${K})`)}else v=`translate(${w}, ${p}) ${v}`}const k=e.querySelector(`g[data-mermaid-wrapper][data-mermaid-id="${d}"][data-mermaid-clone="true"]`);let m;if(k){m=k;const S=m.querySelector('svg[data-type="mermaid"]');S&&m.removeChild(S)}else m=document.createElementNS("http://www.w3.org/2000/svg","g"),m.setAttribute("data-mermaid-wrapper","true"),m.setAttribute("data-mermaid-clone","true"),m.setAttribute("data-mermaid-id",d);m.setAttribute("transform",v);const h=n.cloneNode(!0);if(h.setAttribute("width",l.toString()),h.setAttribute("height",f.toString()),h.setAttribute("data-mermaid-transformed","true"),h.style.width="",h.style.height="",h.style.maxWidth="",h.style.maxHeight="",h.style.transform="",h.style.transformOrigin="",h.style.display="block",h.style.overflow="visible",h.style.opacity="1",!h.getAttribute("viewBox")){const S=h.getAttribute("width"),x=h.getAttribute("height");if(S&&x){const E=parseFloat(S.replace(/px|%/,"")||"0"),P=parseFloat(x.replace(/px|%/,"")||"0");E>0&&P>0&&h.setAttribute("viewBox",`0 0 ${E} ${P}`)}}m.appendChild(h),k||(y&&y.parentNode?y.parentNode.insertBefore(m,y.nextSibling):e.appendChild(m)),c&&(c.style.opacity="0",c.style.pointerEvents="none")}catch(w){console.error("[transformMermaidSvgToMarkmapSvg] error: ",w)}});await Promise.all(i)}static injectMermaidHtml(e,t,r){const a=[],i=t.split(`
|
|
2
2
|
`);let s="",n=!1,c=[],d=-1;for(let p=0;p<i.length;p++){const l=i[p],f=l.match(/^(#{1,6})\s+(.+)$/);if(f&&(s=f[2].trim()),l.trim().startsWith("```mermaid"))n=!0,c=[],d=p;else if(n&&l.trim()==="```"){n=!1;const y=c.join(`
|
|
3
3
|
`);y&&s&&a.push({title:s,content:y,index:d}),c=[]}else n&&c.push(l)}const w=p=>{if(!p)return;const l=p.content||"",f=I.decodeHtmlEntities(l);for(const y of a)if(f.includes(y.title)||l.includes(y.title)){const v=b.generateId(),k=b.createContainer(v,y.content,r);p.content?p.content=p.content+k:p.content=k;break}p.children&&p.children.length>0&&p.children.forEach(y=>{w(y)})};return w(e),e}static decodeHtmlEntities(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}static hasMermaidSvg(e){return e.querySelectorAll("svg[data-type='mermaid']").length>0}}class H extends Q.Transformer{constructor(t){super(t);g(this,"currentWorkId",null)}setWorkId(t){this.currentWorkId=t,t&&b.extendMarkdown(this,t)}transform(t,r){this.currentWorkId?b.clear(this.currentWorkId):b.clear();const a=this.convertKatexToText(t),i=super.transform(a,r);return i.root&&this.processKatexInRoot(i.root),i}convertKatexToText(t){if(!t)return t;let r=t.replace(/\$\$([\s\S]*?)\$\$/g,(a,i)=>i.replace(/\\/g,"").replace(/\{/g,"").replace(/\}/g,"").replace(/\\over/g,"/").replace(/\\pm/g,"±").replace(/\\sqrt/g,"√").replace(/\\frac/g,"/").trim());return r=r.replace(/\$([^$\n]+?)\$/g,(a,i)=>i.replace(/\\/g,"").replace(/\{/g,"").replace(/\}/g,"").replace(/\\over/g,"/").replace(/\\pm/g,"±").replace(/\\sqrt/g,"√").replace(/\\frac/g,"/").trim()),r}processKatexInRoot(t){if(t){if(t.content&&typeof t.content=="string"&&(t.content.includes("katex")||t.content.includes("katex-mathml"))){const r=t.content.match(/<annotation[^>]*encoding="application\/x-tex">([^<]+)<\/annotation>/);if(r){const a=r[1].replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/\\/g,"").replace(/\{/g,"").replace(/\}/g,"").replace(/\\over/g,"/").replace(/\\pm/g,"±").replace(/\\sqrt/g,"√").replace(/\\frac/g,"/").trim();t.content=t.content.replace(/<div[^>]*xmlns="http:\/\/www\.w3\.org\/1999\/xhtml"[^>]*>Katex:\s*<span[^>]*class="katex"[^>]*>[\s\S]*?<\/span><\/div>/g,a)}else{const a=document.createElement("div");a.innerHTML=t.content;const i=a.querySelector(".katex");if(i){let s=i.textContent||"";s=s.replace(/^Katex:\s*/i,"").trim(),t.content=t.content.replace(/<div[^>]*xmlns="http:\/\/www\.w3\.org\/1999\/xhtml"[^>]*>Katex:\s*<span[^>]*class="katex"[^>]*>[\s\S]*?<\/span><\/div>/g,s||"公式")}else{const s=t.content.replace(/<[^>]+>/g," ").replace(/\s+/g," ").replace(/^Katex:\s*/i,"").trim();t.content=s||"公式"}}}t.children&&Array.isArray(t.children)&&t.children.forEach(r=>{this.processKatexInRoot(r)})}}static async waitForImagesInForeignObjects(t,r=1e4){if(!t)return;const a=t.querySelectorAll("foreignObject.markmap-foreign img");if(a.length===0)return;const i=[],s=new Set;a.forEach(n=>{const c=n.src||n.getAttribute("src");if(!c||s.has(c)||(s.add(c),n.complete&&n.naturalWidth>0))return;const d=new Promise(w=>{const p=setTimeout(()=>{w()},r);if(n.complete&&n.naturalWidth>0){clearTimeout(p),w();return}const l=()=>{clearTimeout(p),n.removeEventListener("load",l),n.removeEventListener("error",f),w()},f=()=>{clearTimeout(p),n.removeEventListener("load",l),n.removeEventListener("error",f),w()};n.addEventListener("load",l),n.addEventListener("error",f),!n.src&&c&&(n.src=c)});i.push(d)}),i.length>0&&await Promise.all(i)}}const W=new H,{loadCSS:ce,loadJS:le,Markmap:he}=$,{scripts:F,styles:q}=W.getAssets();q&&ce(q);F&&le(F,{getMarkmap:()=>$});async function de(o){const e=o.querySelectorAll("img"),t=Array.from(e).map(i=>{if(!i.crossOrigin&&i.src&&!i.src.startsWith("data:")&&(i.crossOrigin="anonymous",i.complete)){const s=i.src;i.src="",i.src=s}return i.complete&&i.crossOrigin?Promise.resolve():new Promise(s=>{i.onload=()=>{s(void 0)},i.onerror=()=>{s(void 0)}})});return o.querySelectorAll("svg").forEach(i=>{i.querySelectorAll("image").forEach(n=>{n.href&&!n.href.baseVal.startsWith("data:")&&(n.getAttribute("crossorigin")||n.setAttribute("crossorigin","anonymous"),t.push(new Promise(c=>{const d=new Image;d.crossOrigin="anonymous",d.onload=()=>{c(void 0)},d.onerror=()=>{c(void 0)},d.src=n.href.baseVal})))})}),await Promise.all(t)}async function me(o){const r=Date.now();let a=!1;for(;Date.now()-r<5e3;){const i=o.querySelectorAll("path");if(i.length>0&&(a=Array.from(i).some(s=>{const n=s.getAttribute("d")||"";return n!=="M0,0C0,0,0,0,0,0"&&n.length>10}),a))break;await new Promise(s=>setTimeout(s,50))}}async function ue(o){const e=o.querySelectorAll("svg");if(!e.length)return;const t=[];for(let r=0;r<e.length;r++){const a=e[r];t.push(me(a))}await Promise.all(t)}async function V(o){if(I.hasMermaidSvg(o)){const r=Date.now();let a=!1;for(;Date.now()-r<5e3&&!a;){const i=o.querySelectorAll("foreignObject");if(i.length>0){let s=!0;for(const n of Array.from(i)){const c=parseFloat(n.getAttribute("width")||"0"),d=parseFloat(n.getAttribute("height")||"0");if(n.querySelector(".mermaid-container")&&(c<50||d<50)){s=!1;break}}if(s){a=!0;break}}else a=!0;await new Promise(s=>setTimeout(s,50))}}}async function pe(o,e={}){const{width:t=o.offsetWidth,height:r=o.offsetHeight}=e,a=o.offsetWidth||t,i=o.offsetHeight||r;try{const{loadSvgToImageLib:s,getSvgToImageLib:n}=await Promise.resolve().then(()=>require("./svgToImageLoader-DPRAAhwW.js"));let c=n();if(!c)try{c=await s()}catch(l){return console.error("[loadSvgToImageLib] error: ",l),null}const d=o.style.width,w=o.style.height,p=o.style.display;o.style.width||(o.style.width=`${a}px`),o.style.height||(o.style.height=`${i}px`),(!o.style.display||o.style.display==="none")&&(o.style.display="block");try{await new Promise(f=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{f()})})});const l=await c.toPng(o,{width:a,height:i,quality:1});return o.style.width=d,o.style.height=w,o.style.display=p,new Promise(f=>{const y=new Image;y.crossOrigin="anonymous",y.onload=()=>{f(y)},y.onerror=()=>{f(null)},y.src=l})}catch(l){return o.style.width=d,o.style.height=w,o.style.display=p,console.error("[divToImageElement] error: ",l),null}}catch(s){return console.error("[divToImageElement] error: ",s),null}}class ge{constructor(e){g(this,"toolsType",u.EToolsKey.BackgroundSVG);g(this,"vNodes");g(this,"workOptions");g(this,"workId");g(this,"markmapInstance",null);g(this,"isDestroyed",!1);g(this,"element");g(this,"manager");const{vNodes:t,workId:r,toolsOpt:a,manager:i}=e;this.workId=r,this.vNodes=t,this.workOptions=a,this.manager=i,this.element=this.createElement(),this.manager.fullLayer.appendChild(this.element),this.vNodes.setInfo(this.workId,{workShape:this})}get fullLayer(){return this.manager.fullLayer}get collector(){return this.manager.master.control.collector}get scenePath(){return this.manager.master.control.viewContainerManager.getCurScenePath(this.manager.viewId)}async init(){await this.render()}createElement(){const{type:e}=this.workOptions;let t;return e===u.ESVGType.markmap?(t=document.createElementNS("http://www.w3.org/2000/svg","svg"),t.classList.add("svg")):(t=document.createElement("img"),t.classList.add("img")),t.id=this.workId,t.setAttribute("data-id",this.workId),t}async render(e){this.isDestroyed||!this.element||!this.element.parentNode||(this.updateElementPosition(e),await this.updateSvg(e))}isSameSize(e){const{width:t,height:r}=e,{width:a,height:i}=this.workOptions,s=t*this.manager.camera.scale,n=r*this.manager.camera.scale,c=a*this.manager.camera.scale,d=i*this.manager.camera.scale;return s===c&&n===d}isSamePosition(e){const{centerX:t,centerY:r}=e,{centerX:a,centerY:i}=this.workOptions,s=this.manager.getPagePoint(a,i),n=this.manager.getPagePoint(t,r);return M.isEqual(n,s)}isSameZIndex(e){const{zIndex:t}=e,{zIndex:r}=this.workOptions;return t===r}isSameState(e){const{state:t}=e,{state:r}=this.workOptions;return M.isEqual(t,r)}isSameData(e){const{data:t}=e,{data:r}=this.workOptions;return M.isEqual(t,r)}updateElementPosition(e){if(this.isDestroyed||!this.element||!this.fullLayer)return;const{centerX:t,centerY:r,width:a,height:i,zIndex:s}=this.workOptions,n=this.manager.getPagePoint(t,r),c=a*this.manager.camera.scale,d=i*this.manager.camera.scale;(!e||e&&!this.isSameSize(e))&&(this.element.setAttribute("width",`${c}`),this.element.setAttribute("height",`${d}`),this.element.style.width=`${c}px`,this.element.style.height=`${d}px`),(!e||e&&!this.isSamePosition(e))&&(this.element.style.left=`${n.x}px`,this.element.style.top=`${n.y}px`),(!e||e&&!this.isSameZIndex(e))&&(this.element.style.zIndex=(s||0).toString())}async updateSvg(e){const{type:t,state:r}=this.workOptions;if(t===u.ESVGType.markmap){const{data:a}=this.workOptions;if(this.markmapInstance||(this.markmapInstance=he.create(this.element,this.manager.markmapOptions),this.markmapInstance.handleClick=async(n,c)=>{var p,l,f;(p=this.markmapInstance)==null||p.toggleNode(c);const d=this.serializeData((l=this.markmapInstance)==null?void 0:l.state.data);this.setWorkOptions({...this.workOptions,state:d},!1),I.checkNodeHasMermaid(c)&&await I.renderMermaidAfterDOMUpdate(this.element,this.workId),this.scenePath&&this.collector&&((f=this.collector)==null||f.dispatch({type:u.EPostMessageType.UpdateNode,workId:this.workId,opt:this.workOptions,isSync:!0,viewId:this.manager.viewId,scenePath:this.scenePath}))}),e&&this.isSameState(e)&&this.isSameSize(e)&&this.isSameData(e))return;W.setWorkId(this.workId);const i=W.transform(a);let{root:s}=i;a&&B(a)&&(s=I.injectMermaidHtml(s,a,this.workId));try{r&&Array.isArray(r)&&this.transformState(r,s),await this.markmapInstance.setData(s),!this.isDestroyed&&this.element&&this.fullLayer&&this.markmapInstance&&(window.markmapInstance=this.markmapInstance,a&&B(a)&&await I.renderMermaidAfterDOMUpdate(this.element,this.workId),await this.fit(!e||e&&!this.isSameData(e)))}catch(n){console.error("[updateSvg] error: ",n)}}else{const{src:a,crossOrigin:i}=this.workOptions;this.element.src=a,this.element.crossOrigin=M.isString(i)?i:"anonymous";try{await new Promise((s,n)=>{this.element.onload=()=>{s()},this.element.onerror=function(){n()}})}catch(s){console.error("[updateSvg] error: ",s)}}}async fit(e=!0){var t;!this.isDestroyed&&this.element&&this.fullLayer&&this.markmapInstance&&(e&&this.element&&await H.waitForImagesInForeignObjects(this.element),await((t=this.markmapInstance)==null?void 0:t.fit()),this.element&&I.isSafari()&&I.hasMermaidSvg(this.element)&&(await V(this.element),await I.transformMermaidSvgToMarkmapSvg(this.element)))}serializeData(e){var a;const t=[e],r=[];for(;t.length>0;){const i=t.pop();i&&(i!=null&&i.children&&t.push(...i.children),r.push(((a=i==null?void 0:i.payload)==null?void 0:a.fold)||0))}return r}transformState(e,t){const r=[t];for(;r.length>0;){const a=r.pop();a&&(a!=null&&a.children&&r.push(...a.children),a.payload?a.payload.fold=e.shift():e.shift())}}async updateCamera(){this.updateElementPosition(),await this.fit(!1)}async setWorkOptions(e,t=!0){if(!M.isEqual(this.workOptions,e)){const r=M.clone(this.workOptions);this.workOptions=e,t&&await this.render(r)}}destroy(){this.isDestroyed=!0,this.element.remove()}getRectFromLayer(){const e=this.element.getBoundingClientRect();return{x:e.x,y:e.y,w:e.width,h:e.height}}}function D(o){const{toolsType:e,...t}=o;switch(e){case u.EToolsKey.BackgroundSVG:return new ge(t);default:return}}class z{constructor(e){g(this,"viewId");g(this,"fullLayer");g(this,"curNodeMap");this.viewId=e,this.curNodeMap=new ee.ObserverMap}init(e){this.fullLayer=e}get(e){return this.curNodeMap.get(e)}setInfo(e,t){const r=this.curNodeMap.get(e)||{name:e,workShape:t.workShape};t.workShape&&(r.workShape=t.workShape),this.curNodeMap.set(e,r)}getNodeRectFormShape(e){const t=this.curNodeMap.get(e);if(t&&t.workShape)return t.workShape.getRectFromLayer()}delete(e){const t=this.curNodeMap.get(e);t&&t.workShape.destroy(),this.curNodeMap.delete(e)}clear(){for(const e of this.curNodeMap.values())e.workShape.destroy();this.curNodeMap.clear()}}class fe{constructor(e,t){g(this,"opt");g(this,"viewId");g(this,"fullLayer");g(this,"vNodes");g(this,"master");g(this,"cameraOpt");g(this,"methodBuilder");g(this,"updateCamera",M.throttle(async e=>{const{cameraOpt:t}=e;t&&!M.isEqual(this.cameraOpt,t)&&await this.setCameraOpt(t)},100));this.viewId=e,this.opt=t,this.master=t.master,this.fullLayer=t.container,this.methodBuilder=new se([u.EmitEventType.CopyNode]).registerForBackgroundThread(this),this.vNodes=new z(e),this.vNodes.init(this.fullLayer)}get camera(){return this.cameraOpt||{scale:1,centerX:0,centerY:0,width:0,height:0}}get view(){var e;return(e=this.master.control.viewContainerManager.getView(this.viewId))==null?void 0:e.viewData}get markmapOptions(){return this.master.control.pluginOptions.extras.markmap.options}getPagePoint(e,t){const{scale:r,centerX:a,centerY:i,width:s,height:n}=this.camera;return{x:(e-a)*r+s/2,y:(t-i)*r+n/2}}async setCameraOpt(e){this.cameraOpt=e;for(const t of this.vNodes.curNodeMap.values()){const{workShape:r}=t;r&&await r.updateCamera()}}clearAll(){this.vNodes.clear()}canUseFullLayer(e){return e===u.EToolsKey.BackgroundSVG}async consumeFull(e){const{toolsType:t,opt:r,workId:a}=e;if(a!=null&&a.toString()&&t&&this.canUseFullLayer(t))switch(t){case u.EToolsKey.BackgroundSVG:await this.setFullWork({toolsType:t,opt:r,workId:a});break}}async setFullWork(e){const{workId:t,opt:r,toolsType:a}=e;if(t&&r&&a){const i=t.toString();let s;const n=this.vNodes.get(i);return!n||!n.workShape?(s=this.createWorkShapeNode({toolsOpt:r,toolsType:u.EToolsKey.BackgroundSVG,workId:i}),s&&await s.init()):(s=n.workShape,await s.setWorkOptions(r)),s}}createWorkShapeNode(e){return D({...e,vNodes:this.vNodes,manager:this})}removeWork(e){const{workId:t}=e,r=t==null?void 0:t.toString();r&&this.removeNode(r)}removeNode(e){this.vNodes.delete(e)}async on(e){if(!await this.methodBuilder.consumeForBackgroundThread(e)){const{msgType:t,toolsType:r}=e;switch(t){case u.EPostMessageType.Destroy:{this.destroy();break}case u.EPostMessageType.Clear:{this.clearAll();break}case u.EPostMessageType.UpdateCamera:{this.updateCamera(e);break}case u.EPostMessageType.UpdateTools:{this.toggleFullLayer(r===u.EToolsKey.Clicker);break}case u.EPostMessageType.BackgroundSVGUpdate:case u.EPostMessageType.UpdateNode:case u.EPostMessageType.FullWork:{r&&this.canUseFullLayer(r)&&await this.consumeFull(e);break}case u.EPostMessageType.BackgroundSVGDelete:{this.removeWork(e);break}}}}toggleFullLayer(e){this.fullLayer.classList.toggle("appliance-plugin-background-svg-active",e)}destroy(){this.vNodes.clear()}}class ye{constructor(e,t){g(this,"viewId");g(this,"fullLayer");g(this,"master");g(this,"vNodes");g(this,"cameraOpt");g(this,"opt");g(this,"workShapes",new Map);this.viewId=e,this.opt=t,this.master=t.master,this.fullLayer=t.container,this.vNodes=new z(e),this.vNodes.init(this.fullLayer)}get camera(){return this.cameraOpt||{scale:1,centerX:0,centerY:0,width:0,height:0}}get view(){var e;return(e=this.master.control.viewContainerManager.getView(this.viewId))==null?void 0:e.viewData}get markmapOptions(){return this.master.control.pluginOptions.extras.markmap.options}createOffscreenCanvas(e){const{width:t,height:r}=e.canvasOpt,a=new OffscreenCanvas(e.canvasOpt.width,e.canvasOpt.height);a.width=t,a.height=r}async setCameraOpt(e){this.cameraOpt=e;for(const t of this.vNodes.curNodeMap.values()){const{workShape:r}=t;r&&await r.updateCamera()}}getPagePoint(e,t){const{scale:r,centerX:a,centerY:i,width:s,height:n}=this.camera;return{x:(e-a)*r+s/2,y:(t-i)*r+n/2}}async getSnapshot(e){const{scenePath:t,scenes:r,cameraOpt:a}=e;if(t&&r&&a){await this.setCameraOpt(a);for(const[i,s]of Object.entries(r))if(s!=null&&s.type&&(s==null?void 0:s.toolsType)===u.EToolsKey.BackgroundSVG)switch(s==null?void 0:s.type){case u.EPostMessageType.UpdateNode:case u.EPostMessageType.FullWork:{const{opt:n}=s,c={...s,opt:n,workId:i,msgType:u.EPostMessageType.FullWork,dataType:u.EDataType.Service,viewId:this.viewId};await this.runFullWork(c);break}}try{if(t){await V(this.fullLayer),await de(this.fullLayer),await ue(this.fullLayer);const i=await pe(this.fullLayer);i&&this.opt.post({sp:[{type:u.EPostMessageType.Snapshot,scenePath:t,imageElement:i,viewId:this.viewId,index:1}]})}}catch(i){const s=i&&i instanceof Error?i.message:i==null?void 0:i.toString();this.opt.post({sp:[{type:u.EPostMessageType.ReportError,reportString:`[SnapshotThreadImpl] getSnapshotRender error: ${s}`}]})}}}createWorkShapeNode(e){return D({...e,vNodes:this.vNodes,manager:this})}async setFullWork(e){const{workId:t,opt:r,toolsType:a}=e;if(t&&r&&a){const i=t.toString();let s;const n=this.vNodes.get(i);return!n||!n.workShape?(s=this.createWorkShapeNode({toolsOpt:r,toolsType:u.EToolsKey.BackgroundSVG,workId:i}),s&&await s.init()):(s=n.workShape,await s.setWorkOptions(r)),s}}async runFullWork(e){const{toolsType:t,opt:r,workId:a}=e;await this.setFullWork({toolsType:t,opt:r,workId:a})}destroy(){this.fullLayer.innerHTML="",this.fullLayer.style.width="",this.fullLayer.style.height=""}}class we{constructor(e){g(this,"backgroundThreadMap",new Map);g(this,"snapshotThread");g(this,"master");g(this,"post",e=>{const{sp:t}=e;t&&this.master.collectorSyncData(t)});this.master=e,this.backgroundThreadMap=new Map}createBackgroundThread(e,t){return new fe(e,t)}createSnapshotThread(e,t){return new ye(e,t)}async consume(e){var t,r,a,i,s;for(const n of e.values()){const{msgType:c,viewId:d,layerOpt:w,offscreenCanvasOpt:p,cameraOpt:l,tasksqueue:f,mainTasksqueueCount:y}=n;if(c===u.EPostMessageType.Console){console.log(this);continue}if(c===u.EPostMessageType.Init){const k=(t=this.master.control.viewContainerManager.getView(d))==null?void 0:t.displayer,m=(r=k==null?void 0:k.backgroundContainerRef)==null?void 0:r.current;if(k&&m&&w&&p){const h=this.createBackgroundThread(d,{displayer:k,container:m,layerOpt:w,master:this.master,canvasOpt:p,post:this.post});this.backgroundThreadMap.set(d,h),h&&l&&await h.setCameraOpt(l)}continue}if(c===u.EPostMessageType.Snapshot){const k=(a=this.master.control.viewContainerManager.getView(d))==null?void 0:a.displayer,h=(s=((i=this.master.control.viewContainerManager.mainView)==null?void 0:i.displayer).backgroundSnapshotContainerRef)==null?void 0:s.current;if(k&&h&&l){h.style.width=`${l.width}px`,h.style.height=`${l.height}px`;const O={...u.ViewContainerManager.defaultLayerOpt,offscreen:!1,width:l.width,height:l.height},S={...u.ViewContainerManager.defaultScreenCanvasOpt,width:l.width,height:l.height};this.snapshotThread=this.createSnapshotThread(d,{displayer:k,container:h,layerOpt:O,master:this.master,canvasOpt:S,post:this.post}),await this.snapshotThread.getSnapshot(n),this.snapshotThread.destroy(),this.snapshotThread=void 0;continue}}if(c===u.EPostMessageType.TasksQueue&&(f!=null&&f.size)){for(const[k,m]of this.backgroundThreadMap.entries()){const h=f.get(k);h&&(await m.on(h),y&&this.post({workerTasksqueueCount:y}))}continue}if(d===u.Storage_ViewId_ALL){for(const k of this.backgroundThreadMap.values())k.on(n),c===u.EPostMessageType.Destroy&&this.backgroundThreadMap.delete(d);continue}const v=this.backgroundThreadMap.get(d);v&&(v.on(n),c===u.EPostMessageType.Destroy&&this.backgroundThreadMap.delete(d))}}async consumeTargetOne(e,t){const r=this.backgroundThreadMap.get(e);r&&await r.on(t)}destroy(){this.backgroundThreadMap.clear()}}exports.BackgroundThreadManagerImpl=we;
|