1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5452],{18126:function(e,t,a){function populateCommonDb(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{A:function(){return populateCommonDb}}),(0,a(2486).e)(populateCommonDb,"populateCommonDb")},55452:function(e,t,a){a.d(t,{diagram:function(){return A}});var i=a(18126),n=a(28174),r=a(82289),o=a(85995),l=a(2486),d=a(4346),s=a(46812),m="position frame",c="frame positioned",x="position relation",u="relation positioned",f=(0,l.e)(function(e){o.c.debug("options str",e)},"setOptions"),g=(0,l.e)(function(){return{}},"getOptions"),h=(0,l.e)(function(){reset(),(0,r.ZH)()},"clear");function reset(){w={}}(0,l.e)(reset,"reset");var p=r.vZ.eventmodeling,b=(0,l.e)(()=>{let e=(0,n.Rb)({...p,...(0,r.iE)().eventmodeling});return e},"getConfig"),w={};function getState(){let e=y,{ast:t}=w,a=getDiagramProps();if(!t)throw Error("No data for EventModel");return t.frames.forEach((i,n)=>{let r=calculateTextProps(i,t.dataEntities,a);e=dispatch(e,{$kind:m,index:n,frame:i,textProps:r}),hasSourceFrame(i)?(o.c.debug("source frame",i.sourceFrames),t.frames.filter(e=>i.sourceFrames.some(t=>t.$refText===e.name)).forEach(t=>{e=dispatch(e,{$kind:x,index:n,frame:i,sourceFrame:t})})):e=dispatch(e,{$kind:x,index:n,frame:i})}),e={...e,sortedSwimlanesArray:sortedSwimlanesArray(e.swimlanes)}}function setAst(e){w.ast=e}(0,l.e)(getState,"getState"),(0,l.e)(setAst,"setAst");var v={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function getDiagramProps(){return v}(0,l.e)(getDiagramProps,"getDiagramProps");var y={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function extractNamespace(e){let t=e.split(".");if(2===t.length)return t[0]}function extractName(e){let t=e.split(".");return 2===t.length?t[1]:e}function findSwimlaneByNamespace(e,t){if(t&&0!==t.length)return Object.values(e).find(e=>e.namespace===t)}function findNextAvailableIndex(e,t,a){return Math.max(t,...Object.keys(e).filter(e=>{let i=Number.parseInt(e);return i>t&&i<a}).map(e=>Number.parseInt(e)))+1}function calculateSwimlaneProps(e,t){let a=extractNamespace(e.entityIdentifier),i=findSwimlaneByNamespace(t,a);switch(e.modelEntityType){case"ui":case"pcr":case"processor":if(i)return{index:i.index,label:i.namespace||v.labelUiAutomation};if(a)return{index:findNextAvailableIndex(t,0,100),label:v.labelUiAutomationPrefix+a};return{index:0,label:v.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":if(i)return{index:i.index,label:i.namespace||v.labelCommandReadModel};if(a)return{index:findNextAvailableIndex(t,100,200),label:v.labelCommandReadModelPrefix+a};return{index:100,label:v.labelCommandReadModel};default:if(i)return{index:i.index,label:i.namespace||v.labelEvents};if(a)return{index:findNextAvailableIndex(t,200,300),label:v.labelEventsPrefix+a};return{index:200,label:v.labelEvents}}}function calculateEntityVisualProps(e){let{themeVariables:t}=(0,r.iE)();switch(e.modelEntityType){case"ui":return{fill:t.emUiFill??"white",stroke:t.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:t.emProcessorFill??"#edb3f6",stroke:t.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:t.emReadModelFill??"#d3f1a2",stroke:t.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:t.emCommandFill??"#bcd6fe",stroke:t.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:t.emEventFill??"#ffb778",stroke:t.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}function calculateTextProps(e,t,a){let i;let l=(0,r.iE)(),d=(0,r.oO)(extractName(e.entityIdentifier)??"",l),s={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},m=(0,n.X4)(d,a.textMaxWidth,s),c=`<b>${m}</b>`;if(e.dataInlineValue&&(i=(i=(i=e.dataInlineValue).substring(i.indexOf("{")+1)).substring(0,i.lastIndexOf("}")-1),i=(0,r.oO)(i,l),i=(i=(0,n.X4)(i,a.textMaxWidth,s)).replaceAll(" "," ")),e.dataReference){let o=t.find(t=>t.name===e.dataReference?.$refText);o&&(i=(i=(i=o.dataBlockValue).substring(i.indexOf("{\n")+2)).substring(0,i.lastIndexOf("}")-1),i=(0,r.oO)(i,l),i=(i=(0,n.X4)(i,a.textMaxWidth,s)).replaceAll(" "," ")+"<br/>")}let x=void 0!==i;x&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${a.textMaxWidth}px">${i}</code>`);let u={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=(0,n.iw)(c,u),g=x?f.width/3:f.width,h={content:c,width:g,height:f.height};return o.c.debug(`[${e.name}] ${e.entityIdentifier} text`,h),h}function decidePositionFrame(e,t){let a=calculateEntityVisualProps(t.frame),i={width:t.textProps.width+2*v.boxTextPadding,height:t.textProps.height+2*v.boxTextPadding},n={$kind:c,frame:t.frame,index:t.index,visual:a,dimension:i,textProps:t.textProps};return[n]}function calculateX(e,t,a){return void 0===t?v.contentStartX:t.index===e.index&&e.r?e.r+v.boxPadding:void 0===a?v.contentStartX:a.r-v.boxOverlap+v.boxPadding}function calculateMaxRight(e,t){let a=[...e.map(e=>e.r),t];return Math.max(...a)}function sortedSwimlanesArray(e){return Object.values(e).sort((e,t)=>
1e.index-t.index)}function evolveFramePositioned(e,t){let a;let i=calculateSwimlaneProps(t.frame,e.swimlanes);a=i.index in e.swimlanes?e.swimlanes[i.index]:{index:i.index,label:i.label,r:0,y:i.index*v.swimlaneMinHeight+v.swimlaneGap,height:v.swimlaneMinHeight,maxHeight:v.swimlaneMinHeight};let n=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,r=void 0!==e.previousSwimlaneNumber?e.swimlanes[e.previousSwimlaneNumber]:void 0,o={width:Math.max(v.boxMinWidth,Math.min(v.boxMaxWidth,t.dimension.width))+2*v.boxPadding,height:Math.max(v.boxMinHeight,Math.min(v.boxMaxHeight,t.dimension.height))+2*v.boxPadding},l=calculateX(a,r,n),d=l+o.width+v.boxPadding,s=calculateMaxRight(Object.values(e.swimlanes),d);a.r=l+o.width,a.maxHeight=Math.max(a.maxHeight,o.height),a.height=Math.max(v.swimlaneMinHeight,a.maxHeight)+2*v.swimlanePadding;let m={x:l,y:v.swimlanePadding+a.y,r:d,dimension:o,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},c={...e,boxes:[...e.boxes,m],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:s},x=sortedSwimlanesArray(c.swimlanes);x.length>0&&(x[0].y=0);for(let e=1;e<x.length;e++){let t=x[e],a=x[e-1];t.y=a.y+a.height+v.swimlaneGap}return c}function isFirstFrame(e,t){return 0===e&&0===t.sourceFrames.length}function hasSourceFrame(e){return void 0!==e.sourceFrames&&null!==e.sourceFrames&&e.sourceFrames.length>0}function findBoxByFrame(e,t){if(null!=t)return e.find(e=>e.frame.name===t.name)}function findBoxByLineIndex(e,t,a){if(!(a<0))for(let i=a;i>=0;i--){let a=e[i];if(a.swimlane.index!==t)return a}}function decidePositionRelation(e,t){let a;if((0,d.aj)(t.frame)||isFirstFrame(t.index,t.frame))return[];let i=findBoxByFrame(e.boxes,t.frame);if(void 0===i)throw Error(`Target box not found for frame ${t.frame.name}`);if(void 0===(a=t.sourceFrame?findBoxByFrame(e.boxes,t.sourceFrame):findBoxByLineIndex(e.boxes,i.swimlane.index,t.index-1)))return[];let n={$kind:u,frame:t.frame,index:t.index,sourceBox:a,targetBox:i};return[n]}function evolveRelationPositioned(e,t){let a={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox},i={...e,relations:[...e.relations,a]};return i}(0,l.e)(extractNamespace,"extractNamespace"),(0,l.e)(extractName,"extractName"),(0,l.e)(findSwimlaneByNamespace,"findSwimlaneByNamespace"),(0,l.e)(findNextAvailableIndex,"findNextAvailableIndex"),(0,l.e)(calculateSwimlaneProps,"calculateSwimlaneProps"),(0,l.e)(calculateEntityVisualProps,"calculateEntityVisualProps"),(0,l.e)(calculateTextProps,"calculateTextProps"),(0,l.e)(decidePositionFrame,"decidePositionFrame"),(0,l.e)(calculateX,"calculateX"),(0,l.e)(calculateMaxRight,"calculateMaxRight"),(0,l.e)(sortedSwimlanesArray,"sortedSwimlanesArray"),(0,l.e)(evolveFramePositioned,"evolveFramePositioned"),(0,l.e)(isFirstFrame,"isFirstFrame"),(0,l.e)(hasSourceFrame,"hasSourceFrame"),(0,l.e)(findBoxByFrame,"findBoxByFrame"),(0,l.e)(findBoxByLineIndex,"findBoxByLineIndex"),(0,l.e)(decidePositionRelation,"decidePositionRelation"),(0,l.e)(evolveRelationPositioned,"evolveRelationPositioned");var P={[m]:decidePositionFrame,[x]:decidePositionRelation},S={[c]:evolveFramePositioned,[u]:evolveRelationPositioned};function decide(e,t){let a=P[t.$kind];if(null==a)return[];let i=a(e,t);return o.c.debug("decided events",i),i}function evolve(e,t){let a=t.reduce((e,t)=>{let a=S[t.$kind];return null==a?e:a(e,t)},e);return o.c.debug("evolve events",{state:e,newState:a,events:t}),a}function dispatch(e,t){let a=decide(e,t),i=evolve(e,a);return i}(0,l.e)(decide,"decide"),(0,l.e)(evolve,"evolve"),(0,l.e)(dispatch,"dispatch");var B={getConfig:b,setOptions:f,getOptions:g,clear:h,setAccTitle:r.GN,getAccTitle:r.eu,getAccDescription:r.Mx,setAccDescription:r.U$,setDiagramTitle:r.g2,getDiagramTitle:r.Kr,setAst,getDiagramProps,getState},F={parse:(0,l.e)(async e=>{let t=await (0,d.Qc)("eventmodeling",e);o.c.debug(t),B.setAst(t),(0,i.A)(t,B)},"parse")},M=(0,r.nV)(),k=M?.eventmodeling;function renderD3Box(e,t){return a=>{let i=a.swimlane.y+t.swimlanePadding,n=e.append("g").attr("class","em-box");n.append("rect").attr("x",a.x).attr("y",i).attr("rx","3").attr("width",a.dimension.width).attr("height",a.dimension.height).attr("stroke",a.visual.stroke).attr("fill",a.visual.fill);let r=n.append("foreignObject").attr("x",a.x+t.boxPadding).attr("y",i+10).attr("width",a.dimension.width-2*t.boxPadding).attr("height",a.dimension.height-2*t.boxPadding),o=r.append("xhtml:div").style("display","table").style("height","100%").style("width","100%");o.append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(a.text)}}function dirUpwards(e,t){return e>t}function renderD3Relation(e,t,a,i){return n=>{let r,l;let d=n.sourceBox.swimlane.y+t.swimlanePadding,s=n.targetBox.swimlane.y+t.swimlanePadding,m=dirUpwards(d,s),c=n.sourceBox.x+2*n.sourceBox.dimension.width/3,x=n.targetBox.x+n.targetBox.dimension.width/3;o.c.debug(`rendering relation up=${m} for `,{sourceBox:n.sourceBox,targetBox:n.targetBox}),m?(r=d,l=s+n.targetBox.dimension.height):(r=d+n.sourceBox.dimension.height,l=s);let u=i.emRelationStroke??n.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",n.visual.fill).attr("stroke",u).attr("stroke-width","1").attr("marker-end",`url
1(#${a})`).attr("d",`M${c} ${r} L${x} ${l}`)}}function renderD3Swimlane(e,t,a,i){return n=>{let r=e.append("g").attr("class","em-swimlane"),o=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",n.y).attr("rx","3").attr("width",t+a.swimlanePadding).attr("height",n.height).attr("fill",o).attr("stroke",l),r.append("text").attr("font-weight",a.swimlaneTextFontWeight).attr("x",30).attr("y",n.y+30).text(n.label)}}(0,l.e)(renderD3Box,"renderD3Box"),(0,l.e)(dirUpwards,"dirUpwards"),(0,l.e)(renderD3Relation,"renderD3Relation"),(0,l.e)(renderD3Swimlane,"renderD3Swimlane");var A={parser:F,db:B,renderer:{draw:(0,l.e)(function(e,t,a,i){if(o.c.debug("in eventmodeling renderer",e+"\n","id:",t,a),!k)throw Error("EventModeling config not found");let n=i.db,{themeVariables:l,eventmodeling:d}=(0,r.nV)(),m=(0,s.Ys)(`[id="${t}"]`),c=n.getDiagramProps(),x=n.getState(),u=`em-arrowhead-${t}`,f=l.emArrowhead??"#000000";x.sortedSwimlanesArray.forEach(renderD3Swimlane(m,x.maxR,c,l)),x.boxes.forEach(renderD3Box(m,c)),x.relations.forEach(renderD3Relation(m,c,u,l));let g=m.append("defs").append("marker").attr("id",u).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto");g.append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),(0,r.Rw)(void 0,m,d?.padding??30,d?.useMaxWidth)},"draw")},styles:(0,l.e)(e=>"","getStyles")}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.