@zenuml/core 3.35.2 → 3.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/zenuml.esm.mjs +1 -1
- package/dist/zenuml.js +1 -1
- package/package.json +1 -1
- package/test-mermaid-zenuml.html +57 -0
package/dist/zenuml.esm.mjs
CHANGED
|
@@ -71154,7 +71154,7 @@ const t$ = (i, e) => {
|
|
|
71154
71154
|
]
|
|
71155
71155
|
}
|
|
71156
71156
|
);
|
|
71157
|
-
}, a$ = "3.
|
|
71157
|
+
}, a$ = "3.36.0";
|
|
71158
71158
|
function s$(i) {
|
|
71159
71159
|
const e = Math.floor(i / 1e3), t = Math.floor(i % 1e3), n = Math.floor((i % 1e3 - t) * 1e3);
|
|
71160
71160
|
return e + "s " + t + "ms " + n + "μs";
|
package/dist/zenuml.js
CHANGED
|
@@ -3392,7 +3392,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),c4=L2,se=b2);const B1=
|
|
|
3392
3392
|
`+d).trim(),this.textStyle={...f,...L,...p},this.classNames=[...h,..._,...m],this.commentStyle={...f,...L},this.messageStyle={...f,...p},this.commentClassNames=[...h,..._],this.messageClassNames=[...h,...m]}}const LH=i=>{const e=i.context.getComment()||"",t=new dH(e),n={className:G2("text-left text-sm text-skin-message",{hidden:i.collapsed&&!i.context.ret()}),context:i.context,origin:i.origin,comment:e,commentObj:t,number:i.number};switch(!0){case!!i.context.loop():return S.jsx(Zz,{...n});case!!i.context.alt():return S.jsx(Bz,{...n});case!!i.context.par():return S.jsx(Gz,{...n});case!!i.context.opt():return S.jsx(zz,{...n});case!!i.context.section():return S.jsx(Yz,{...n});case!!i.context.critical():return S.jsx(Vz,{...n});case!!i.context.tcf():return S.jsx(qz,{...n});case!!i.context.ref():return S.jsx(Wz,{...n});case!!i.context.creation():return S.jsx(Jz,{...n});case!!i.context.message():return S.jsx(tH,{...n});case!!i.context.asyncMessage():return S.jsx(iH,{...n});case!!i.context.divider():return S.jsx(lH,{...n});case!!i.context.ret():return S.jsx(cH,{...n,className:"text-left text-sm text-skin-message"})}},S3=i=>{var n;const e=((n=i.context)==null?void 0:n.stat())||[],t=s=>i.number?i.incremental?LU(i.number,s):`${i.number}.${s+1}`:String(s+1);return S.jsx("div",{className:G2("block",i.className),style:i.style,"data-origin":i.origin,children:e.map((s,l)=>S.jsx("div",{className:G2("statement-container my-4",l===e.length-1&&"[&>.return]:-mb-4 [&>.return]:bottom-[-1px]"),"data-origin":i.origin,children:S.jsx(LH,{origin:i.origin||"",context:s,collapsed:!!i.collapsed,number:t(l)})},l))})};var Bl=typeof document<"u"?v.useLayoutEffect:v.useEffect;const CH={...En}.useInsertionEffect||(i=>i());function _H(i){const e=v.useRef(()=>{});return CH(()=>{e.current=i}),v.useCallback(function(){for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return e.current==null?void 0:e.current(...n)},[])}const gH={...En};let Zf=!1,pH=0;const Bf=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+pH++;function mH(){const[i,e]=v.useState(()=>Zf?Bf():void 0);return Bl(()=>{i==null&&e(Bf())},[]),v.useEffect(()=>{Zf=!0},[]),i}const hH=gH.useId||mH;function fH(){const i=new Map;return{emit(e,t){var n;(n=i.get(e))==null||n.forEach(s=>s(t))},on(e,t){i.has(e)||i.set(e,new Set),i.get(e).add(t)},off(e,t){var n;(n=i.get(e))==null||n.delete(t)}}}const EH=v.createContext(null),SH=v.createContext(null),TH=()=>{var i;return((i=v.useContext(EH))==null?void 0:i.id)||null},vH=()=>v.useContext(SH);function RH(i){const{open:e=!1,onOpenChange:t,elements:n}=i,s=hH(),l=v.useRef({}),[c]=v.useState(()=>fH()),d=TH()!=null,[L,_]=v.useState(n.reference),p=_H((h,R,b)=>{l.current.openEvent=h?R:void 0,c.emit("openchange",{open:h,event:R,reason:b,nested:d}),t==null||t(h,R,b)}),m=v.useMemo(()=>({setPositionReference:_}),[]),f=v.useMemo(()=>({reference:L||n.reference||null,floating:n.floating||null,domReference:n.reference}),[L,n.reference,n.floating]);return v.useMemo(()=>({dataRef:l,open:e,onOpenChange:p,elements:f,events:c,floatingId:s,refs:m}),[e,p,f,c,s,m])}function bH(i){i===void 0&&(i={});const{nodeId:e}=i,t=RH({...i,elements:{reference:null,floating:null,...i.elements}}),n=i.rootContext||t,s=n.elements,[l,c]=v.useState(null),[d,L]=v.useState(null),p=(s==null?void 0:s.domReference)||l,m=v.useRef(null),f=vH();Bl(()=>{p&&(m.current=p)},[p]);const h=BP({...i,elements:{...s,...d&&{reference:d}}}),R=v.useCallback(D=>{const N=Ke(D)?{getBoundingClientRect:()=>D.getBoundingClientRect(),getClientRects:()=>D.getClientRects(),contextElement:D}:D;L(N),h.refs.setReference(N)},[h.refs]),b=v.useCallback(D=>{(Ke(D)||D===null)&&(m.current=D,c(D)),(Ke(h.refs.reference.current)||h.refs.reference.current===null||D!==null&&!Ke(D))&&h.refs.setReference(D)},[h.refs]),M=v.useMemo(()=>({...h.refs,setReference:b,setPositionReference:R,domReference:m}),[h.refs,b,R]),w=v.useMemo(()=>({...h.elements,domReference:p}),[h.elements,p]),O=v.useMemo(()=>({...h,...n,refs:M,elements:w,nodeId:e}),[h,M,w,e,n]);return Bl(()=>{n.dataRef.current.floatingContext=O;const D=f==null?void 0:f.nodesRef.current.find(N=>N.id===e);D&&(D.context=O)}),v.useMemo(()=>({...h,context:O,refs:M,elements:w}),[h,M,w,O])}function xH(i){const e=v.useRef(i);return v.useEffect(()=>{e.current=i},[i]),e}function wH(i,e,t){const n=xH(e);v.useEffect(()=>{function s(l){n.current(l)}return document.addEventListener(i,s,t),()=>document.removeEventListener(i,s,t)},[i,t,n])}const MH=(i,e)=>{wH("click",t=>{i&&(i.contains(t.target)||e(t))},{capture:!0})},AH=[{name:"bold",content:"B",class:"font-bold"},{name:"italic",content:"I",class:"italic"},{name:"underline",content:"U",class:"underline"},{name:"strikethrough",content:"S",class:"line-through"}],yH=()=>{const[i,e]=t4(jt),t=Q2(K0),n=M9(Xi),[s,l]=v.useState(!1),[c,d]=v.useState([]),[L,_]=v.useState(""),p=b=>{e(b),t(b)},m=v.useRef({start:0,lineHead:0,prevLine:"",leadingSpaces:"",prevLineIsComment:!1,hasStyleBrackets:!1}),{refs:f,floatingStyles:h}=bH({open:s,onOpenChange:l}),R=b=>{var w;if(l(!1),!L)return;const M=m.current;if(M.prevLineIsComment){let O="";if(M.hasStyleBrackets){let D;c.includes(b)?D=c.filter(N=>N!==b):D=[...c,b],O=`${M.leadingSpaces}// [${D.filter(Boolean).join(", ")}] ${M.prevLine.slice(M.prevLine.indexOf("]")+1).trimStart()}`}else O=`${M.leadingSpaces}// [${b}] ${M.prevLine.slice((((w=M.prevLine.match(/\/\/*/))==null?void 0:w.index)||-2)+2).trimStart()}`;O.endsWith(`
|
|
3393
3393
|
`)||(O+=`
|
|
3394
3394
|
`),p(i.slice(0,ZL(i,M.start))+O+i.slice(M.lineHead))}else p(i.slice(0,M.lineHead)+`${M.leadingSpaces}// [${b}]
|
|
3395
|
-
`+i.slice(M.lineHead))};return MH(f.floating.current,()=>{l(!1)}),v.useEffect(()=>{n((b,M)=>{setTimeout(()=>{var O;const w=m.current;if(w.start=b.start.start,w.lineHead=Yi(i,w.start),w.prevLine=mb(i,w.start),w.leadingSpaces=((O=i.slice(w.lineHead).match(/^\s*/))==null?void 0:O[0])||"",w.prevLineIsComment=w.prevLine.trim().startsWith("//"),w.prevLineIsComment){const D=w.prevLine.trimStart().slice(2).trimStart(),N=D.indexOf("["),F=D.indexOf("]");w.hasStyleBrackets=!!(N===0&&F),w.hasStyleBrackets?d(D.slice(N+1,F).split(",").map(U=>U.trim())):d([])}f.setReference(M),_(b),l(!0)},0)})},[i,f,n]),S.jsx("div",{id:"style-panel",ref:f.setFloating,style:h,children:s&&S.jsx("div",{className:"flex bg-white shadow-md z-10 rounded-md p-1",children:AH.map(b=>S.jsx("div",{onClick:()=>R(b.class),children:S.jsx("div",{className:G2("w-6 mx-1 py-1 rounded-md text-black text-center cursor-pointer hover:bg-gray-200",[b.class,{"bg-gray-100":c.includes(b.class)}]),children:b.content})},b.name))})})},Gf=J6.child({name:"MessageLayer"}),zf=i=>{const e=Q2(B9),t=Q2(U3),n=v.useMemo(()=>{const d=Xn(e);return d.length===0?Pe:d[0].from||Pe},[e]),s=Z3(t,n)+1,[l,c]=v.useState(!1);return l&&Gf.debug("MessageLayer updated"),v.useEffect(()=>{c(!0),Gf.debug("MessageLayer mounted")},[]),S.jsxs("div",{className:"message-layer relative z-30 pt-14 pb-10",style:i.style,children:[S.jsx(S3,{context:i.context,style:{paddingLeft:`${s}px`},origin:n}),S.jsx(yH,{})]})},Hf=i=>{const e=Q2(G9),t=Q2(I4),n=Q2(B9),s=Q2(U3),l=M9(Qi),c=v.useRef(null);v.useEffect(()=>{l(c.current)}),v.useImperativeHandle(i.ref,()=>c.current);const d=v.useMemo(()=>{const _=s.orderedParticipantNames(),m=new A8(_).getFrame(n);return m?y8(m).left:0},[s,n]),L=v.useMemo(()=>bg(n,s)-d,[n,s,d]);return S.jsx("div",{className:G2("zenuml sequence-diagram relative box-border text-left overflow-visible px-2.5",e,i.className),style:i.style,ref:c,children:S.jsx("div",{style:{paddingLeft:`${d}px`},className:"relative z-container",children:t===F3.Dynamic?S.jsxs(S.Fragment,{children:[S.jsx($r,{leftGap:d,context:n==null?void 0:n.head(),renderLifeLine:!0}),S.jsx(zf,{context:n==null?void 0:n.block(),style:{width:`${L}px`}}),S.jsx($r,{leftGap:d,context:n==null?void 0:n.head(),renderParticipants:!0})]}):S.jsxs(S.Fragment,{children:[S.jsx($r,{leftGap:d,context:n==null?void 0:n.head(),renderParticipants:!0,renderLifeLine:!0}),S.jsx(zf,{context:n==null?void 0:n.block(),style:{width:`${L}px`}})]})})})},V8={backgroundColor:"white",filter:i=>{var e;return!((e=i==null?void 0:i.classList)!=null&&e.contains("hide-export"))}},NH=({ref:i,children:e})=>{const t=v.useRef(null),n=v.useRef(null),s=Q2(B9),[l,c]=t4(XL),[d,L]=t4(jL),[_,p]=t4(G9),[m,f]=t4(JL),h=Q2(QL),R=Q2(I4),b=s==null?void 0:s.title(),M=()=>{c(!0)},w=async()=>{if(t.current)return EC(t.current,V8)},O=async()=>{if(t.current)return rr(t.current,V8)},D=async()=>{if(t.current)return Ox(t.current,V8)},N=async()=>{if(t.current)return Nx(t.current,V8)},F=()=>{const K=Math.min(1,d+.1);L(K)},U=()=>{L(d-.1)},k=K=>{const X="zenuml-style";let r2;r2=document.createElement("style"),r2.id=X,document.head.append(r2),r2.textContent=K},n2=K=>{const X=new URL(K).hostname;if(X==="https://github.com"||X==="https://githubusercontent.com"){fetch(K.replace("github.com","raw.githubusercontent.com").replace("blob/","")).then(g2=>g2.text()).then(g2=>{k(g2)});return}const r2="zenuml-remote-css";let t2;t2=document.createElement("link"),t2.id=r2,t2.rel="stylesheet",document.head.append(t2),t2.href=K};return v.useImperativeHandle(i,()=>({toPng:w,toSvg:O,toBlob:D,toJpeg:N,zoomIn:F,zoomOut:U,setTheme:p,setRemoteCss:n2})),S.jsxs("div",{ref:t,className:G2("p-1 bg-skin-canvas inline-block",_),children:[S.jsx(Sw,{}),S.jsxs("div",{className:"frame text-skin-base bg-skin-frame border-skin-frame relative m-1 origin-top-left whitespace-nowrap border rounded",children:[S.jsxs("div",{ref:n,children:[S.jsxs("div",{className:"header text-skin-title bg-skin-title border-skin-frame border-b p-1 flex justify-between rounded-t",children:[S.jsx("div",{className:"left hide-export",children:e}),S.jsxs("div",{className:"right flex-grow flex justify-between",children:[S.jsx(vw,{context:b}),S.jsx(Tw,{className:"hide-export flex items-center"})]})]}),l&&S.jsx("div",{className:"fixed z-40 inset-0 overflow-y-auto","aria-labelledby":"modal-title",role:"dialog","aria-modal":"true",children:S.jsx(YD,{})}),S.jsx(Hf,{className:"origin-top-left",style:{transform:`scale(${d})`}})]}),S.jsx("div",{className:"footer rounded text-skin-control bg-skin-title px-4 py-1 flex justify-between items-center gap-3",children:R===F3.Dynamic&&S.jsxs(S.Fragment,{children:[S.jsxs("div",{className:"flex items-center gap-3 color-base",children:[S.jsx("button",{className:"bottom-1 flex items-center left-1 hide-export",onClick:M,children:S.jsx(Ce,{name:"tip",className:"filter grayscale w-4 h-4"})}),h&&S.jsx(KF,{}),S.jsxs("div",{className:"flex items-center",children:[S.jsx("input",{type:"checkbox",id:"order-display",className:"mr-1",checked:!!m,onChange:()=>f(!m)}),S.jsx("label",{htmlFor:"order-display",title:"Numbering the diagram",className:"select-none",children:S.jsx(Ce,{name:"numbering",className:"w-6 h-6"})})]})]}),S.jsxs("div",{className:"zoom-controls flex hide-export gap-1",children:[S.jsx("button",{className:"zoom-in",onClick:F,children:S.jsx(Ce,{name:"zoom-in",className:"w-4 h-4"})}),S.jsxs("label",{className:"w-12 block text-center",children:[Number(d*100).toFixed(0),"%"]}),S.jsx("button",{className:"zoom-out",onClick:U,children:S.jsx(Ce,{name:"zoom-out",className:"w-4 h-4"})})]}),S.jsx("a",{target:"_blank",href:"https://zenuml.com",className:"brand text-xs hover:underline",children:"ZenUML.com"})]})})]})]})},OH="3.
|
|
3395
|
+
`+i.slice(M.lineHead))};return MH(f.floating.current,()=>{l(!1)}),v.useEffect(()=>{n((b,M)=>{setTimeout(()=>{var O;const w=m.current;if(w.start=b.start.start,w.lineHead=Yi(i,w.start),w.prevLine=mb(i,w.start),w.leadingSpaces=((O=i.slice(w.lineHead).match(/^\s*/))==null?void 0:O[0])||"",w.prevLineIsComment=w.prevLine.trim().startsWith("//"),w.prevLineIsComment){const D=w.prevLine.trimStart().slice(2).trimStart(),N=D.indexOf("["),F=D.indexOf("]");w.hasStyleBrackets=!!(N===0&&F),w.hasStyleBrackets?d(D.slice(N+1,F).split(",").map(U=>U.trim())):d([])}f.setReference(M),_(b),l(!0)},0)})},[i,f,n]),S.jsx("div",{id:"style-panel",ref:f.setFloating,style:h,children:s&&S.jsx("div",{className:"flex bg-white shadow-md z-10 rounded-md p-1",children:AH.map(b=>S.jsx("div",{onClick:()=>R(b.class),children:S.jsx("div",{className:G2("w-6 mx-1 py-1 rounded-md text-black text-center cursor-pointer hover:bg-gray-200",[b.class,{"bg-gray-100":c.includes(b.class)}]),children:b.content})},b.name))})})},Gf=J6.child({name:"MessageLayer"}),zf=i=>{const e=Q2(B9),t=Q2(U3),n=v.useMemo(()=>{const d=Xn(e);return d.length===0?Pe:d[0].from||Pe},[e]),s=Z3(t,n)+1,[l,c]=v.useState(!1);return l&&Gf.debug("MessageLayer updated"),v.useEffect(()=>{c(!0),Gf.debug("MessageLayer mounted")},[]),S.jsxs("div",{className:"message-layer relative z-30 pt-14 pb-10",style:i.style,children:[S.jsx(S3,{context:i.context,style:{paddingLeft:`${s}px`},origin:n}),S.jsx(yH,{})]})},Hf=i=>{const e=Q2(G9),t=Q2(I4),n=Q2(B9),s=Q2(U3),l=M9(Qi),c=v.useRef(null);v.useEffect(()=>{l(c.current)}),v.useImperativeHandle(i.ref,()=>c.current);const d=v.useMemo(()=>{const _=s.orderedParticipantNames(),m=new A8(_).getFrame(n);return m?y8(m).left:0},[s,n]),L=v.useMemo(()=>bg(n,s)-d,[n,s,d]);return S.jsx("div",{className:G2("zenuml sequence-diagram relative box-border text-left overflow-visible px-2.5",e,i.className),style:i.style,ref:c,children:S.jsx("div",{style:{paddingLeft:`${d}px`},className:"relative z-container",children:t===F3.Dynamic?S.jsxs(S.Fragment,{children:[S.jsx($r,{leftGap:d,context:n==null?void 0:n.head(),renderLifeLine:!0}),S.jsx(zf,{context:n==null?void 0:n.block(),style:{width:`${L}px`}}),S.jsx($r,{leftGap:d,context:n==null?void 0:n.head(),renderParticipants:!0})]}):S.jsxs(S.Fragment,{children:[S.jsx($r,{leftGap:d,context:n==null?void 0:n.head(),renderParticipants:!0,renderLifeLine:!0}),S.jsx(zf,{context:n==null?void 0:n.block(),style:{width:`${L}px`}})]})})})},V8={backgroundColor:"white",filter:i=>{var e;return!((e=i==null?void 0:i.classList)!=null&&e.contains("hide-export"))}},NH=({ref:i,children:e})=>{const t=v.useRef(null),n=v.useRef(null),s=Q2(B9),[l,c]=t4(XL),[d,L]=t4(jL),[_,p]=t4(G9),[m,f]=t4(JL),h=Q2(QL),R=Q2(I4),b=s==null?void 0:s.title(),M=()=>{c(!0)},w=async()=>{if(t.current)return EC(t.current,V8)},O=async()=>{if(t.current)return rr(t.current,V8)},D=async()=>{if(t.current)return Ox(t.current,V8)},N=async()=>{if(t.current)return Nx(t.current,V8)},F=()=>{const K=Math.min(1,d+.1);L(K)},U=()=>{L(d-.1)},k=K=>{const X="zenuml-style";let r2;r2=document.createElement("style"),r2.id=X,document.head.append(r2),r2.textContent=K},n2=K=>{const X=new URL(K).hostname;if(X==="https://github.com"||X==="https://githubusercontent.com"){fetch(K.replace("github.com","raw.githubusercontent.com").replace("blob/","")).then(g2=>g2.text()).then(g2=>{k(g2)});return}const r2="zenuml-remote-css";let t2;t2=document.createElement("link"),t2.id=r2,t2.rel="stylesheet",document.head.append(t2),t2.href=K};return v.useImperativeHandle(i,()=>({toPng:w,toSvg:O,toBlob:D,toJpeg:N,zoomIn:F,zoomOut:U,setTheme:p,setRemoteCss:n2})),S.jsxs("div",{ref:t,className:G2("p-1 bg-skin-canvas inline-block",_),children:[S.jsx(Sw,{}),S.jsxs("div",{className:"frame text-skin-base bg-skin-frame border-skin-frame relative m-1 origin-top-left whitespace-nowrap border rounded",children:[S.jsxs("div",{ref:n,children:[S.jsxs("div",{className:"header text-skin-title bg-skin-title border-skin-frame border-b p-1 flex justify-between rounded-t",children:[S.jsx("div",{className:"left hide-export",children:e}),S.jsxs("div",{className:"right flex-grow flex justify-between",children:[S.jsx(vw,{context:b}),S.jsx(Tw,{className:"hide-export flex items-center"})]})]}),l&&S.jsx("div",{className:"fixed z-40 inset-0 overflow-y-auto","aria-labelledby":"modal-title",role:"dialog","aria-modal":"true",children:S.jsx(YD,{})}),S.jsx(Hf,{className:"origin-top-left",style:{transform:`scale(${d})`}})]}),S.jsx("div",{className:"footer rounded text-skin-control bg-skin-title px-4 py-1 flex justify-between items-center gap-3",children:R===F3.Dynamic&&S.jsxs(S.Fragment,{children:[S.jsxs("div",{className:"flex items-center gap-3 color-base",children:[S.jsx("button",{className:"bottom-1 flex items-center left-1 hide-export",onClick:M,children:S.jsx(Ce,{name:"tip",className:"filter grayscale w-4 h-4"})}),h&&S.jsx(KF,{}),S.jsxs("div",{className:"flex items-center",children:[S.jsx("input",{type:"checkbox",id:"order-display",className:"mr-1",checked:!!m,onChange:()=>f(!m)}),S.jsx("label",{htmlFor:"order-display",title:"Numbering the diagram",className:"select-none",children:S.jsx(Ce,{name:"numbering",className:"w-6 h-6"})})]})]}),S.jsxs("div",{className:"zoom-controls flex hide-export gap-1",children:[S.jsx("button",{className:"zoom-in",onClick:F,children:S.jsx(Ce,{name:"zoom-in",className:"w-4 h-4"})}),S.jsxs("label",{className:"w-12 block text-center",children:[Number(d*100).toFixed(0),"%"]}),S.jsx("button",{className:"zoom-out",onClick:U,children:S.jsx(Ce,{name:"zoom-out",className:"w-4 h-4"})})]}),S.jsx("a",{target:"_blank",href:"https://zenuml.com",className:"brand text-xs hover:underline",children:"ZenUML.com"})]})})]})]})},OH="3.36.0";function IH(i){const e=Math.floor(i/1e3),t=Math.floor(i%1e3),n=Math.floor((i%1e3-t)*1e3);return e+"s "+t+"ms "+n+"μs"}const DH=(i,e)=>{const n=Yf()-e;return console.debug(i+" cost: "+IH(n)),n},Yf=()=>performance.now();var Gl={exports:{}},S5={},zl={exports:{}},Hl={};/**
|
|
3396
3396
|
* @license React
|
|
3397
3397
|
* scheduler.production.js
|
|
3398
3398
|
*
|
package/package.json
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
|
+
<title>Mermaid Zenuml Test Page</title>
|
|
7
|
+
</head>
|
|
8
|
+
|
|
9
|
+
<body>
|
|
10
|
+
<h1>Zenuml demos</h1>
|
|
11
|
+
<pre class="mermaid">
|
|
12
|
+
zenuml
|
|
13
|
+
BookLibService.Borrow(id) {
|
|
14
|
+
User = Session.GetUser()
|
|
15
|
+
if(User.isActive) {
|
|
16
|
+
try {
|
|
17
|
+
BookRepository.Update(id, onLoan, User)
|
|
18
|
+
receipt = new Receipt(id, dueDate)
|
|
19
|
+
} catch (BookNotFoundException) {
|
|
20
|
+
ErrorService.onException(BookNotFoundException)
|
|
21
|
+
} finally {
|
|
22
|
+
Connection.close()
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return receipt
|
|
26
|
+
}
|
|
27
|
+
</pre>
|
|
28
|
+
<pre class="mermaid">
|
|
29
|
+
zenuml
|
|
30
|
+
title Async Messages (SPA Authentication)
|
|
31
|
+
// ```
|
|
32
|
+
// GET https://${account.namespace}/authorize/?
|
|
33
|
+
// response_type=token
|
|
34
|
+
// &client_id=${account.clientId}
|
|
35
|
+
// &redirect_url=YOUR_CALLBACK_URL
|
|
36
|
+
// &state=VALUE_THAT_SURVIVES_REDIRECTS
|
|
37
|
+
// &scope=openid
|
|
38
|
+
// ```
|
|
39
|
+
Browser->Auth0: 1. initiate the authentication
|
|
40
|
+
Auth0->"Identity Provider": 2. OAuth2 / SAML, etc
|
|
41
|
+
"Identity Provider"->"Identity Provider": 3. user gets authenticated
|
|
42
|
+
Auth0->Browser: 4. redirect to ${YOUR_CALLBACK_URL}/#id_token=e68...
|
|
43
|
+
Browser->Auth0: 5. validate id_token and get user profile
|
|
44
|
+
Browser->"Your API": 6. call API sending JWT in Authorization header
|
|
45
|
+
"Your API"->"Your API": 7. validate token
|
|
46
|
+
</pre>
|
|
47
|
+
|
|
48
|
+
<script type="module">
|
|
49
|
+
import mermaid from 'https://unpkg.com/mermaid/dist/mermaid.esm.mjs';
|
|
50
|
+
import zenuml from 'https://unpkg.com/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.mjs';
|
|
51
|
+
await mermaid.registerExternalDiagrams([zenuml]);
|
|
52
|
+
mermaid.initialize({
|
|
53
|
+
logLevel: 3,
|
|
54
|
+
});
|
|
55
|
+
</script>
|
|
56
|
+
</body>
|
|
57
|
+
</html>
|