"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6571],{51916:(t,e,a)=>{a.d(e,{S:()=>i});var r=a(6047);function i(t,e){if(t.accDescr){e.setAccDescription?.(t.accDescr)}if(t.accTitle){e.setAccTitle?.(t.accTitle)}if(t.title){e.setDiagramTitle?.(t.title)}}(0,r.K2)(i,"populateCommonDb")},46571:(t,e,a)=>{a.d(e,{diagram:()=>v});var r=a(51916);var i=a(52724);var n=a(84222);var o=a(6047);var s=a(24010);var l=o.UI.packet;var c=class{constructor(){this.packet=[];this.setAccTitle=o.SV;this.getAccTitle=o.iN;this.setDiagramTitle=o.ke;this.getDiagramTitle=o.ab;this.getAccDescription=o.m7;this.setAccDescription=o.EI}static{(0,o.K2)(this,"PacketDB")}getConfig(){const t=(0,i.$t)({...l,...(0,o.zj)().packet});if(t.showBits){t.paddingY+=10}return t}getPacket(){return this.packet}pushWord(t){if(t.length>0){this.packet.push(t)}}clear(){(0,o.IU)();this.packet=[]}};var d=1e4;var p=(0,o.K2)(((t,e)=>{(0,r.S)(t,e);let a=-1;let i=[];let n=1;const{bitsPerRow:s}=e.getConfig();for(let{start:r,end:l,bits:c,label:p}of t.blocks){if(r!==void 0&&l!==void 0&&l<r){throw new Error(`Packet block ${r} - ${l} is invalid. End must be greater than start.`)}r??=a+1;if(r!==a+1){throw new Error(`Packet block ${r} - ${l??r} is not contiguous. It should start from ${a+1}.`)}if(c===0){throw new Error(`Packet block ${r} is invalid. Cannot have a zero bit field.`)}l??=r+(c??1)-1;c??=l-r+1;a=l;o.Rm.debug(`Packet block ${r} - ${a} with label ${p}`);while(i.length<=s+1&&e.getPacket().length<d){const[t,a]=b({start:r,end:l,bits:c,label:p},n,s);i.push(t);if(t.end+1===n*s){e.pushWord(i);i=[];n++}if(!a){break}({start:r,end:l,bits:c,label:p}=a)}}e.pushWord(i)}),"populate");var b=(0,o.K2)(((t,e,a)=>{if(t.start===void 0){throw new Error("start should have been set during first phase")}if(t.end===void 0){throw new Error("end should have been set during first phase")}if(t.start>t.end){throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`)}if(t.end+1<=e*a){return[t,void 0]}const r=e*a-1;const i=e*a;return[{start:t.start,end:r,label:t.label,bits:r-t.start},{start:i,end:t.end,label:t.label,bits:t.end-i}]}),"getNextFittingBlock");var h={parser:{yy:void 0},parse:(0,o.K2)((async t=>{const e=await(0,s.qg)("packet",t);const a=h.parser?.yy;if(!(a instanceof c)){throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.")}o.Rm.debug(e);p(e,a)}),"parse")};var k=(0,o.K2)(((t,e,a,r)=>{const i=r.db;const s=i.getConfig();const{rowHeight:l,paddingY:c,bitWidth:d,bitsPerRow:p}=s;const b=i.getPacket();const h=i.getDiagramTitle();const k=l+c;const g=k*(b.length+1)-(h?0:l);const u=d*p+2;const w=(0,n.D)(e);w.attr("viewbox",`0 0 ${u} ${g}`);(0,o.a$)(w,g,u,s.useMaxWidth);for(const[n,o]of b.entries()){f(w,o,n,s)}w.append("text").text(h).attr("x",u/2).attr("y",g-k/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")}),"draw");var f=(0,o.K2)(((t,e,a,{rowHeight:r,paddingX:i,paddingY:n,bitWidth:o,bitsPerRow:s,showBits:l})=>{const c=t.append("g");const d=a*(r+n)+n;for(const p of e){const t=p.start%s*o+1;const e=(p.end-p.start+1)*o-i;c.append("rect").attr("x",t).attr("y",d).attr("width",e).attr("height",r).attr("class","packetBlock");c.append("text").attr("x",t+e/2).attr("y",d+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(p.label);if(!l){continue}const a=p.end===p.start;const n=d-2;c.append("text").attr("x",t+(a?e/2:0)).attr("y",n).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",a?"middle":"start").text(p.start);if(!a){c.append("text").attr("x",t+e).attr("y",n).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(p.end)}}}),"drawWord");var g={draw:k};var u={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"};var w=(0,o.K2)((({packet:t}={})=>{const e=(0,i.$t)(u,t);return`\n\t.packetByte {\n\t\tfont-size: ${e.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${e.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${e.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${e.labelColor};\n\t\tfont-size: ${e.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${e.titleColor};\n\t\tfont-size: ${e.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${e.blockStrokeColor};\n\t\tstroke-width: ${e.blockStrokeWidth};\n\t\tfill: ${e.blockFillColor};\n\t}\n\t`}),"styles");var v={parser:h,get db(){return new c},renderer:g,styles:w}}}]);