cc-viewer 1.8.11 → 1.8.13

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 (118) hide show
  1. package/dist/assets/{App-vpm6omRY.js → App-R6odqLoE.js} +2 -2
  2. package/dist/assets/MdxEditorPanel-CTqsETwc.js +1 -0
  3. package/dist/assets/{Mobile-BHIBdqHs.js → Mobile-o_QrQ_eI.js} +1 -1
  4. package/dist/assets/{ProxyStatsModal-DdV7wN2V.js → ProxyStatsModal-CM2H8JYh.js} +1 -1
  5. package/dist/assets/{_baseUniq-C2FCldN4.js → _baseUniq-B3e4JaL0.js} +1 -1
  6. package/dist/assets/{arc-CSzd_bdT.js → arc-DnoPn_qY.js} +1 -1
  7. package/dist/assets/architectureDiagram-Q4EWVU46-DrPKTbxH.js +1 -0
  8. package/dist/assets/blockDiagram-DXYQGD6D-CEaO0Vcw.js +1 -0
  9. package/dist/assets/c4Diagram-AHTNJAMY-BLaawFeg.js +1 -0
  10. package/dist/assets/{channel-xMmQtLq9.js → channel-DnYR1fF4.js} +1 -1
  11. package/dist/assets/{chunk-4BX2VUAB-DnFoMzQG.js → chunk-4BX2VUAB-Bfd4edKZ.js} +1 -1
  12. package/dist/assets/{chunk-4TB4RGXK-Dc5reuwv.js → chunk-4TB4RGXK-t2nMQmY7.js} +1 -1
  13. package/dist/assets/{chunk-55IACEB6-DTKTLKcJ.js → chunk-55IACEB6-C6tLOjGX.js} +1 -1
  14. package/dist/assets/{chunk-EDXVE4YY-BNqgeN9r.js → chunk-EDXVE4YY-dWCvxbCb.js} +1 -1
  15. package/dist/assets/{chunk-FMBD7UC4-DzJVZ11t.js → chunk-FMBD7UC4-BHELZLPK.js} +1 -1
  16. package/dist/assets/{chunk-OYMX7WX6-CjYwzMor.js → chunk-OYMX7WX6-C8XTkH1S.js} +1 -1
  17. package/dist/assets/{chunk-QZHKN3VN-C0KVKecr.js → chunk-QZHKN3VN-CD0j6SAs.js} +1 -1
  18. package/dist/assets/{chunk-YZCP3GAM-3VhNeNVm.js → chunk-YZCP3GAM-D4dKfXJJ.js} +1 -1
  19. package/dist/assets/classDiagram-6PBFFD2Q-BecPAAuk.js +1 -0
  20. package/dist/assets/classDiagram-v2-HSJHXN6E-BecPAAuk.js +1 -0
  21. package/dist/assets/clone-B0_ghF3F.js +1 -0
  22. package/dist/assets/cose-bilkent-S5V4N54A-BF2HsiSD.js +1 -0
  23. package/dist/assets/dagre-KV5264BT-f3h967yx.js +1 -0
  24. package/dist/assets/diagram-5BDNPKRD-B9PzHQfh.js +1 -0
  25. package/dist/assets/diagram-G4DWMVQ6-kR953Bqm.js +1 -0
  26. package/dist/assets/diagram-MMDJMWI5-DAewa2eg.js +1 -0
  27. package/dist/assets/diagram-TYMM5635-C8HNTH6I.js +1 -0
  28. package/dist/assets/erDiagram-SMLLAGMA-BQ5P8wWK.js +1 -0
  29. package/dist/assets/flowDiagram-DWJPFMVM-BIpEkrMR.js +1 -0
  30. package/dist/assets/ganttDiagram-T4ZO3ILL-CWqSfB5v.js +1 -0
  31. package/dist/assets/gitGraphDiagram-UUTBAWPF-Ba-9yEbQ.js +1 -0
  32. package/dist/assets/{graph-CwiXMdRR.js → graph-D3zXKQ6P.js} +1 -1
  33. package/dist/assets/index--yjDHxJD.js +2 -0
  34. package/dist/assets/index-Bm3A5VLb.js +1 -0
  35. package/dist/assets/index-C9N0rZ7Z.js +1 -0
  36. package/dist/assets/index-DClD_EkN.js +1 -0
  37. package/dist/assets/index-DSd5P3WQ.js +1 -0
  38. package/dist/assets/index-G3xd-gLo.js +1 -0
  39. package/dist/assets/index-HLrnYsI1.js +1 -0
  40. package/dist/assets/index-Q8wp4Nof.js +1 -0
  41. package/dist/assets/infoDiagram-42DDH7IO-Cxm79ZJR.js +1 -0
  42. package/dist/assets/ishikawaDiagram-UXIWVN3A-Cd0vZP1B.js +1 -0
  43. package/dist/assets/journeyDiagram-VCZTEJTY-B2b57HXk.js +1 -0
  44. package/dist/assets/{jszip.min-Bq1JxqcN.js → jszip.min-Bj5uiEb2.js} +1 -1
  45. package/dist/assets/kanban-definition-6JOO6SKY-YCERiUCO.js +1 -0
  46. package/dist/assets/{layout-BQFiWq71.js → layout-Do5TlO2U.js} +1 -1
  47. package/dist/assets/{linear-BNV4po81.js → linear-BiJNTDgN.js} +1 -1
  48. package/dist/assets/{mermaid.core-DvwEdatr.js → mermaid.core-Dg0McRZt.js} +2 -2
  49. package/dist/assets/{min-DFik8k4L.js → min-T51iefht.js} +1 -1
  50. package/dist/assets/mindmap-definition-QFDTVHPH-Cu_GJxY3.js +1 -0
  51. package/dist/assets/pieDiagram-DEJITSTG-DldHHZXi.js +1 -0
  52. package/dist/assets/quadrantDiagram-34T5L4WZ-BzyTPNAJ.js +1 -0
  53. package/dist/assets/requirementDiagram-MS252O5E-C5xxFkvG.js +1 -0
  54. package/dist/assets/sankeyDiagram-XADWPNL6-OxdjoaE1.js +1 -0
  55. package/dist/assets/seqResourceLoaders-BgeRQt8C.js +2 -0
  56. package/dist/assets/{seqResourceLoaders-1EWxJwEP.css → seqResourceLoaders-Xx6a8E03.css} +2 -2
  57. package/dist/assets/sequenceDiagram-FGHM5R23-C7c89uIS.js +1 -0
  58. package/dist/assets/stateDiagram-FHFEXIEX-ssdJnDrO.js +1 -0
  59. package/dist/assets/stateDiagram-v2-QKLJ7IA2-BP-0WClK.js +1 -0
  60. package/dist/assets/timeline-definition-GMOUNBTQ-sWScEpSM.js +1 -0
  61. package/dist/assets/{vendor-antd-BTBRwbax.js → vendor-antd-DKIytXho.js} +1 -1
  62. package/dist/assets/vendor-codemirror-4qgXq03k.js +1 -0
  63. package/dist/assets/vendor-mdxeditor-D5Z5D9fq.js +2 -0
  64. package/dist/assets/{vendor-qrcode-E9ld0lSz.js → vendor-qrcode-B7lb5qk1.js} +1 -1
  65. package/dist/assets/vendor-virtuoso-BqoXlbhH.js +1 -0
  66. package/dist/assets/vennDiagram-DHZGUBPP-DNfXR0ge.js +1 -0
  67. package/dist/assets/{wardley-RL74JXVD-BFcIn2-Q.js → wardley-RL74JXVD-JXd--CRD.js} +1 -1
  68. package/dist/assets/wardleyDiagram-NUSXRM2D-DHmNyVPM.js +1 -0
  69. package/dist/assets/xychartDiagram-5P7HB3ND-CTb0gltZ.js +1 -0
  70. package/dist/index.html +4 -5
  71. package/package.json +1 -1
  72. package/server/routes/files-content.js +2 -1
  73. package/server/routes/files-fs.js +3 -1
  74. package/dist/assets/MdxEditorPanel-CpknU7SR.js +0 -1
  75. package/dist/assets/architectureDiagram-Q4EWVU46-CjEbBe2R.js +0 -1
  76. package/dist/assets/blockDiagram-DXYQGD6D-BYzl2ukW.js +0 -1
  77. package/dist/assets/c4Diagram-AHTNJAMY-0x0_8O_X.js +0 -1
  78. package/dist/assets/classDiagram-6PBFFD2Q-DdUtH789.js +0 -1
  79. package/dist/assets/classDiagram-v2-HSJHXN6E-DdUtH789.js +0 -1
  80. package/dist/assets/clone-C6d2XDvR.js +0 -1
  81. package/dist/assets/cose-bilkent-S5V4N54A-DGE02sJS.js +0 -1
  82. package/dist/assets/dagre-KV5264BT-CY4eCcwS.js +0 -1
  83. package/dist/assets/diagram-5BDNPKRD-DHq2THYn.js +0 -1
  84. package/dist/assets/diagram-G4DWMVQ6-DD_76oJg.js +0 -1
  85. package/dist/assets/diagram-MMDJMWI5-BvQxk1jl.js +0 -1
  86. package/dist/assets/diagram-TYMM5635-B_tMXPJl.js +0 -1
  87. package/dist/assets/erDiagram-SMLLAGMA-DpuGbN9e.js +0 -1
  88. package/dist/assets/flowDiagram-DWJPFMVM-BW0xGFBf.js +0 -1
  89. package/dist/assets/ganttDiagram-T4ZO3ILL-BSzTiT93.js +0 -1
  90. package/dist/assets/gitGraphDiagram-UUTBAWPF-1tsgBlcn.js +0 -1
  91. package/dist/assets/index-9e6BGquk.js +0 -1
  92. package/dist/assets/index-BmpXfVQ8.js +0 -1
  93. package/dist/assets/index-CZWNaOo8.js +0 -1
  94. package/dist/assets/index-Cixs7aRD.js +0 -1
  95. package/dist/assets/index-Ct6Fi103.js +0 -1
  96. package/dist/assets/index-DIAMN9QO.js +0 -1
  97. package/dist/assets/index-DhjwHRxk.js +0 -1
  98. package/dist/assets/index-tnWldUm3.js +0 -2
  99. package/dist/assets/infoDiagram-42DDH7IO-Dk1ESZFk.js +0 -1
  100. package/dist/assets/ishikawaDiagram-UXIWVN3A-DcPyNwkI.js +0 -1
  101. package/dist/assets/journeyDiagram-VCZTEJTY-CZWieu1U.js +0 -1
  102. package/dist/assets/kanban-definition-6JOO6SKY-S1sSSTKx.js +0 -1
  103. package/dist/assets/mindmap-definition-QFDTVHPH-CebeX76u.js +0 -1
  104. package/dist/assets/pieDiagram-DEJITSTG-DMB5JbMP.js +0 -1
  105. package/dist/assets/quadrantDiagram-34T5L4WZ-BAYzoLVo.js +0 -1
  106. package/dist/assets/requirementDiagram-MS252O5E-CUQoAuOc.js +0 -1
  107. package/dist/assets/sankeyDiagram-XADWPNL6-Dt0AQuLW.js +0 -1
  108. package/dist/assets/seqResourceLoaders-C-QHRkUq.js +0 -2
  109. package/dist/assets/sequenceDiagram-FGHM5R23-HyZFUlMU.js +0 -1
  110. package/dist/assets/stateDiagram-FHFEXIEX-B8x24fuD.js +0 -1
  111. package/dist/assets/stateDiagram-v2-QKLJ7IA2-2qtHlnwO.js +0 -1
  112. package/dist/assets/timeline-definition-GMOUNBTQ-TnbjDVtB.js +0 -1
  113. package/dist/assets/vendor-codemirror-CPWlhuQ1.js +0 -1
  114. package/dist/assets/vendor-mdxeditor-Cy5Xg_90.js +0 -2
  115. package/dist/assets/vendor-virtuoso-Bq6QMhgG.js +0 -1
  116. package/dist/assets/vennDiagram-DHZGUBPP-BqgIjkBO.js +0 -1
  117. package/dist/assets/wardleyDiagram-NUSXRM2D-CYDWQLb6.js +0 -1
  118. package/dist/assets/xychartDiagram-5P7HB3ND-zfusE3BC.js +0 -1
@@ -1 +0,0 @@
1
- import{r as requireReact,R as React,a as reactExports,b as ReactDOM}from"./vendor-antd-BTBRwbax.js";var hasRequiredReactJsxRuntime_production_min,hasRequiredJsxRuntime,jsxRuntime={exports:{}},reactJsxRuntime_production_min={};var jsxRuntimeExports=(hasRequiredJsxRuntime||(hasRequiredJsxRuntime=1,jsxRuntime.exports=function(){if(hasRequiredReactJsxRuntime_production_min)return reactJsxRuntime_production_min;hasRequiredReactJsxRuntime_production_min=1;var f=requireReact(),k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;for(b in void 0!==g&&(e=""+g),void 0!==a.key&&(e=""+a.key),void 0!==a.ref&&(h=a.ref),a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}return reactJsxRuntime_production_min.Fragment=l,reactJsxRuntime_production_min.jsx=q,reactJsxRuntime_production_min.jsxs=q,reactJsxRuntime_production_min}()),jsxRuntime.exports);function un(t){return()=>t}function fo(t){t()}function re(t,e){return n=>t(e(n))}function an(t,e){return()=>t(e)}function Ae(t){return void 0!==t}function Xt(){}function ye(t,e){return e(t),t}function ho(t,e){return e(t)}function ot(...t){return t}function Y(t,e){return t(1,e)}function _(t,e){t(0,e)}function Me(t){t(2)}function it(t){return t(4)}function L(t,e){return Y(t,function(t,e){return n=>t(e,n)}(e,0))}function yt(t,e){const n=t(1,o=>{n(),e(o)});return n}function dn(t){let e,n;return o=>r=>{e=r,n&&clearTimeout(n),n=setTimeout(()=>{o(e)},t)}}function Ln(t,e){return t===e}function et(t=Ln){let e;return n=>o=>{t(e,o)||(e=o,n(o))}}function W(t){return e=>n=>{t(n)&&e(n)}}function B(t){return e=>re(e,t)}function Bt(t){return e=>()=>{e(t)}}function I(t,...e){const n=function(...t){return e=>t.reduceRight(ho,e)}(...e);return(o,r)=>{switch(o){case 2:return void Me(t);case 1:return Y(t,n(r))}}}function Ot(t,e){return n=>o=>{n(e=t(e,o))}}function $t(t){return e=>n=>{t>0?t--:e(n)}}function zt(t){let n,e=null;return o=>r=>{e=r,!n&&(n=setTimeout(()=>{n=void 0,o(e)},t))}}function $(...t){const e=new Array(t.length);let n=0,o=null;const r=2**t.length-1;return t.forEach((s,i)=>{const l=2**i;Y(s,c=>{const d=n;n|=l,e[i]=c,d!==r&&n===r&&o&&(o(),o=null)})}),s=>i=>{const l=()=>{s([i].concat(e))};n===r?l():o=l}}function v(t){let e=t;const n=U();return(o,r)=>{switch(o){case 0:e=r;break;case 1:r(e);break;case 4:return e}return n(o,r)}}function ht(t,e){return ye(v(e),n=>L(t,n))}function U(){const t=[];return(e,n)=>{switch(e){case 0:return void t.slice().forEach(o=>{o(n)});case 2:return void t.splice(0,t.length);case 1:return t.push(n),()=>{const o=t.indexOf(n);o>-1&&t.splice(o,1)}}}}function vt(t){return ye(U(),e=>L(t,e))}function j(t,e=[],{singleton:n}={singleton:!0}){return{constructor:t,dependencies:e,id:xo(),singleton:n}}const xo=()=>Symbol();function at(...t){const e=U(),n=new Array(t.length);let o=0;const r=2**t.length-1;return t.forEach((s,i)=>{const l=2**i;Y(s,c=>{n[i]=c,o|=l,o===r&&_(e,n)})}),function(s,i){switch(s){case 2:return void Me(e);case 1:return o===r&&i(n),Y(e,i)}}}function P(t,e=Ln){return I(t,et(e))}function ze(...t){return function(e,n){switch(e){case 2:return;case 1:return function(...t){return()=>{t.map(fo)}}(...t.map(o=>Y(o,n)))}}}const ft_DEBUG=0,ft_INFO=1,ft_WARN=2,ft_ERROR=3,To={[ft_DEBUG]:"debug",[ft_ERROR]:"error",[ft_INFO]:"log",[ft_WARN]:"warn"},Gt=j(()=>{const t=v(ft_ERROR);return{log:v((n,o,r=ft_INFO)=>{r>=((typeof globalThis>"u"?window:globalThis).VIRTUOSO_LOG_LEVEL??it(t))&&console[To[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",n,o)}),logLevel:t}},[],{singleton:!0});function kt(t,e,n){return _e(t,e,n).callbackRef}function _e(t,e,n){const o=React.useRef(null);let r=i=>{};const s=React.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(i=>{const l=()=>{const c=i[0].target;null!==c.offsetParent&&t(c)};n?l():requestAnimationFrame(l)}):null,[t,n]);return r=i=>{i&&e?(null==s||s.observe(i),o.current=i):(o.current&&(null==s||s.unobserve(o.current)),o.current=null)},{callbackRef:r,ref:o}}function zn(t,e,n,o,r,s,i,l,c){const d=React.useCallback(m=>{const x=function(t,e,n,o){const r=t.length;if(0===r)return null;const s=[];for(let i=0;i<r;i++){const l=t.item(i);if(void 0===l.dataset.index)continue;const c=parseInt(l.dataset.index),d=parseFloat(l.dataset.knownSize),m=e(l,n);if(0===m&&o("Zero-sized element, this should not happen",{child:l},ft_ERROR),m===d)continue;const x=s[s.length-1];0===s.length||x.size!==m||x.endIndex!==c-1?s.push({endIndex:c,size:m,startIndex:c}):s[s.length-1].endIndex++}return s}(m.children,e,l?"offsetWidth":"offsetHeight",r);let p=m.parentElement;for(;void 0===p.dataset.virtuosoScroller;)p=p.parentElement;const T="window"===p.lastElementChild.dataset.viewportType;let w;T&&(w=p.ownerDocument.defaultView);const R=i?l?i.scrollLeft:i.scrollTop:T?l?w.scrollX||w.document.documentElement.scrollLeft:w.scrollY||w.document.documentElement.scrollTop:l?p.scrollLeft:p.scrollTop,h=i?l?i.scrollWidth:i.scrollHeight:T?l?w.document.documentElement.scrollWidth:w.document.documentElement.scrollHeight:l?p.scrollWidth:p.scrollHeight,f=i?l?i.offsetWidth:i.offsetHeight:T?l?w.innerWidth:w.innerHeight:l?p.offsetWidth:p.offsetHeight;o({scrollHeight:h,scrollTop:Math.max(R,0),viewportHeight:f}),null==s||s(l?fn("column-gap",getComputedStyle(m).columnGap,r):fn("row-gap",getComputedStyle(m).rowGap,r)),null!==x&&t(x)},[t,e,r,s,i,o,l]);return _e(d,n,c)}function fn(t,e,n){return"normal"!==e&&!0!==(null==e?void 0:e.endsWith("px"))&&n(`${t} was not resolved to pixel value correctly`,e,ft_WARN),"normal"===e?0:parseInt(e??"0",10)}function Ne(t,e,n){const o=React.useRef(null),r=React.useCallback(c=>{if(!(null==c?void 0:c.offsetParent))return;const d=c.getBoundingClientRect(),m=d.width;let x,p;if(e){const T=e.getBoundingClientRect(),w=d.top-T.top;p=T.height-Math.max(0,w),x=w+e.scrollTop}else{const T=i.current.ownerDocument.defaultView;p=T.innerHeight-Math.max(0,d.top),x=d.top+T.scrollY}o.current={listHeight:d.height,offsetTop:x,visibleHeight:p,visibleWidth:m},t(o.current)},[t,e]),{callbackRef:s,ref:i}=_e(r,!0,n),l=React.useCallback(()=>{r(i.current)},[r,i]);return React.useEffect(()=>{var _a;if(e){e.addEventListener("scroll",l);const d=new ResizeObserver(()=>{requestAnimationFrame(l)});return d.observe(e),()=>{e.removeEventListener("scroll",l),d.unobserve(e)}}const c=null==(_a=i.current)?void 0:_a.ownerDocument.defaultView;return null==c||c.addEventListener("scroll",l),null==c||c.addEventListener("resize",l),()=>{null==c||c.removeEventListener("scroll",l),null==c||c.removeEventListener("resize",l)}},[l,e,i]),s}const It=j(()=>{const t=U(),e=U(),n=v(0),o=U(),r=v(0),s=U(),i=U(),l=v(0),c=v(0),d=v(0),m=v(0),x=U(),p=U(),T=v(!1),w=v(!1),R=v(!1);return L(I(t,B(({scrollTop:h})=>h)),e),L(I(t,B(({scrollHeight:h})=>h)),i),L(e,r),{deviation:n,fixedFooterHeight:d,fixedHeaderHeight:c,footerHeight:m,headerHeight:l,horizontalDirection:w,scrollBy:p,scrollContainerState:t,scrollHeight:i,scrollingInProgress:T,scrollTo:x,scrollTop:e,skipAnimationFrameInResizeObserver:R,smoothScrollTargetReached:o,statefulScrollTop:r,viewportHeight:s}},[],{singleton:!0}),se={lvl:0};function Fn(t,e){const n=t.length;if(0===n)return[];let{index:o,value:r}=e(t[0]);const s=[];for(let i=1;i<n;i++){const{index:l,value:c}=e(t[i]);s.push({end:l-1,start:o,value:r}),o=l,r=c}return s.push({end:1/0,start:o,value:r}),s}function J(t){return t===se}function ie(t,e){if(!J(t))return e===t.k?t.v:e<t.k?ie(t.l,e):ie(t.r,e)}function Rt(t,e,n="k"){if(J(t))return[-1/0,void 0];if(Number(t[n])===e)return[t.k,t.v];if(Number(t[n])<e){const o=Rt(t.r,e,n);return o[0]===-1/0?[t.k,t.v]:o}return Rt(t.l,e,n)}function Tt(t,e,n){return J(t)?Wn(e,n,1):e===t.k?dt(t,{k:e,v:n}):e<t.k?mn(dt(t,{l:Tt(t.l,e,n)})):mn(dt(t,{r:Tt(t.r,e,n)}))}function qt(){return se}function Yt(t,e,n){if(J(t))return[];return function(t){return Fn(t,({k:e,v:n})=>({index:e,value:n}))}(Ve(t,Rt(t,e)[0],n))}function Fe(t,e){if(J(t))return se;const{k:n,l:o,r:r}=t;if(e===n){if(J(o))return r;if(J(r))return o;const[s,i]=Pn(o);return Se(dt(t,{k:s,l:Vn(o),v:i}))}return Se(dt(t,e<n?{l:Fe(o,e)}:{r:Fe(r,e)}))}function _t(t){return J(t)?[]:[..._t(t.l),{k:t.k,v:t.v},..._t(t.r)]}function Ve(t,e,n){if(J(t))return[];const{k:o,l:r,r:s,v:i}=t;let l=[];return o>e&&(l=l.concat(Ve(r,e,n))),o>=e&&o<=n&&l.push({k:o,v:i}),o<=n&&(l=l.concat(Ve(s,e,n))),l}function Se(t){const{l:e,lvl:n,r:o}=t;if(o.lvl>=n-1&&e.lvl>=n-1)return t;if(n>o.lvl+1){if(Ee(e))return Gn(dt(t,{lvl:n-1}));if(!J(e)&&!J(e.r))return dt(e.r,{l:dt(e,{r:e.r.l}),lvl:n,r:dt(t,{l:e.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}if(Ee(t))return Pe(dt(t,{lvl:n-1}));if(!J(o)&&!J(o.l)){const r=o.l,s=Ee(r)?o.lvl-1:o.lvl;return dt(r,{l:dt(t,{lvl:n-1,r:r.l}),lvl:r.lvl+1,r:Pe(dt(o,{l:r.r,lvl:s}))})}throw new Error("Unexpected empty nodes")}function dt(t,e){return Wn(void 0!==e.k?e.k:t.k,void 0!==e.v?e.v:t.v,void 0!==e.lvl?e.lvl:t.lvl,void 0!==e.l?e.l:t.l,void 0!==e.r?e.r:t.r)}function Vn(t){return J(t.r)?t.l:Se(dt(t,{r:Vn(t.r)}))}function Ee(t){return J(t)||t.lvl>t.r.lvl}function Pn(t){return J(t.r)?[t.k,t.v]:Pn(t.r)}function Wn(t,e,n,o=se,r=se){return{k:t,l:o,lvl:n,r:r,v:e}}function mn(t){return Pe(Gn(t))}function Gn(t){const{l:e}=t;return J(e)||e.lvl!==t.lvl?t:dt(e,{r:dt(t,{l:e.r})})}function Pe(t){const{lvl:e,r:n}=t;return J(n)||J(n.r)||n.lvl!==e||n.r.lvl!==e?t:dt(n,{l:dt(t,{r:n.l}),lvl:e+1})}function An(t,e){return!(!t||t.startIndex!==e.startIndex||t.endIndex!==e.endIndex)}function le(t,e){return!(!t||t[0]!==e[0]||t[1]!==e[1])}const De=j(()=>({recalcInProgress:v(!1)}),[],{singleton:!0});function Mn(t,e,n){return t[ve(t,e,n)]}function ve(t,e,n,o=0){let r=t.length-1;for(;o<=r;){const s=Math.floor((o+r)/2),l=n(t[s],e);if(0===l)return s;if(-1===l){if(r-o<2)return s-1;r=s-1}else{if(r===o)return s;o=s+1}}throw new Error(`Failed binary finding record in array - ${t.join(",")}, searched for ${e}`)}function Ht(t,e){return Math.round(t.getBoundingClientRect()[e])}function be(t){return!J(t.groupOffsetTree)}function $e({index:t},e){return e===t?0:e<t?-1:1}function Eo({offset:t},e){return e===t?0:e<t?-1:1}function ce(t,e,n){if(0===e.length)return 0;const{index:o,offset:r,size:s}=Mn(e,t,$e),i=t-o,l=s*i+(i-1)*n+r;return l>0?l+n:l}function _n(t,e){if(!be(e))return t;let n=0;for(;e.groupIndices[n]<=t+n;)n++;return t+n}function Nn(t,e,n){if(function(t){return typeof t.groupIndex<"u"}(t))return e.groupIndices[t.groupIndex]+1;let r=_n("LAST"===t.index?n:t.index,e);return r=Math.max(0,r,Math.min(n,r)),r}function Bo(t,e,n,o=0){return o>0&&(e=Math.max(e,Mn(t,o,$e).offset)),Fn(function(t,e,n,o){const r=ve(t,e,o),s=ve(t,n,o,r);return t.slice(r,s+1)}(t,e,n,Eo),Lo)}function Oo(t,[e,n,o,r]){e.length>0&&o("received item sizes",e,ft_DEBUG);const s=t.sizeTree;let i=s,l=0;if(n.length>0&&J(s)&&2===e.length){const p=e[0].size,T=e[1].size;i=n.reduce((w,R)=>Tt(Tt(w,R,p),R+1,T),i)}else[i,l]=function(t,e){let n=J(t)?0:1/0;for(const o of e){const{endIndex:r,size:s,startIndex:i}=o;if(n=Math.min(n,i),J(t)){t=Tt(t,0,s);continue}const l=Yt(t,i-1,r+1);if(l.some(zo(o)))continue;let c=!1,d=!1;for(const{end:m,start:x,value:p}of l)c?(r>=x||s===p)&&(t=Fe(t,x)):(d=p!==s,c=!0),m>r&&r>=x&&p!==s&&(t=Tt(t,r+1,p));d&&(t=Tt(t,i,s))}return[t,n]}(i,e);if(i===s)return t;const{lastIndex:c,lastOffset:d,lastSize:m,offsetTree:x}=We(t.offsetTree,l,i,r);return{groupIndices:n,groupOffsetTree:n.reduce((p,T)=>Tt(p,T,ce(T,x,r)),qt()),lastIndex:c,lastOffset:d,lastSize:m,offsetTree:x,sizeTree:i}}function pn(t,e){let n=0,o=0;for(;n<t;)n+=e[o+1]-e[o]-1,o++;return o-(n===t?0:1)}function We(t,e,n,o){let r=t,s=0,i=0,l=0,c=0;if(0!==e){c=ve(r,e-1,$e),l=r[c].offset;const m=Rt(n,e-1);s=m[0],i=m[1],r.length&&r[c].size===Rt(n,e)[1]&&(c-=1),r=r.slice(0,c+1)}else r=[];for(const{start:d,value:m}of Yt(n,e,1/0)){const x=d-s,p=x*i+l+x*o;r.push({index:d,offset:p,size:m}),s=d,l=p,i=m}return{lastIndex:s,lastOffset:l,lastSize:i,offsetTree:r}}function Lo(t){return{index:t.index,value:t}}function zo(t){const{endIndex:e,size:n,startIndex:o}=t;return r=>r.start===o&&(r.end===e||r.end===1/0)&&r.value===n}const Fo={offsetHeight:"height",offsetWidth:"width"},Lt=j(([{log:t},{recalcInProgress:e}])=>{const n=U(),o=U(),r=ht(o,0),s=U(),i=U(),l=v(0),c=v([]),d=v(void 0),m=v(void 0),x=v(void 0),p=v(void 0),T=v((u,g)=>Ht(u,Fo[g])),w=v(void 0),R=v(0),h={groupIndices:[],groupOffsetTree:qt(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:qt()},f=ht(I(n,$(c,t,R),Ot(Oo,h),et()),h),a=ht(I(c,et(),Ot((u,g)=>({current:g,prev:u.current}),{current:[],prev:[]}),B(({prev:u})=>u)),[]);L(I(c,W(u=>u.length>0),$(f,R),B(([u,g,C])=>{const z=u.reduce((O,V,N)=>Tt(O,V,ce(V,g.offsetTree,C)||N),qt());return{...g,groupIndices:u,groupOffsetTree:z}})),f),L(I(o,$(f),W(([u,{lastIndex:g}])=>u<g),B(([u,{lastIndex:g,lastSize:C}])=>[{endIndex:g,size:C,startIndex:u}])),n),L(d,m);const S=ht(I(d,B(u=>void 0===u)),!0);L(I(m,W(u=>void 0!==u&&J(it(f).sizeTree)),B(u=>{const g=it(x),C=it(c).length>0;return void 0!==g&&0!==g?C?[{endIndex:0,size:g,startIndex:0},{endIndex:1,size:u,startIndex:1}]:[]:[{endIndex:0,size:u,startIndex:0}]})),n),L(I(p,W(u=>void 0!==u&&u.length>0&&J(it(f).sizeTree)),B(u=>{const g=[];let C=u[0],z=0;for(let O=1;O<u.length;O++){const V=u[O];V!==C&&(g.push({endIndex:O-1,size:C,startIndex:z}),C=V,z=O)}return g.push({endIndex:u.length-1,size:C,startIndex:z}),g})),n),L(I(c,$(x,m),W(([,u,g])=>void 0!==u&&void 0!==g),B(([u,g,C])=>{const z=[];for(let O=0;O<u.length;O++){const V=u[O],N=u[O+1];z.push({startIndex:V,endIndex:V,size:g}),void 0!==N&&z.push({startIndex:V+1,endIndex:N-1,size:C})}return z})),n);const H=vt(I(n,$(f),Ot(({sizes:u},[g,C])=>({changed:C!==u,sizes:C}),{changed:!1,sizes:h}),B(u=>u.changed)));Y(I(l,Ot((u,g)=>({diff:u.prev-g,prev:g}),{diff:0,prev:0}),B(u=>u.diff)),u=>{const{groupIndices:g}=it(f);if(u>0)_(e,!0),_(s,u+pn(u,g));else if(u<0){const C=it(a);C.length>0&&(u-=pn(-u,C)),_(i,u)}}),Y(I(l,$(t)),([u,g])=>{u<0&&g("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:l},ft_ERROR)});const y=vt(s);L(I(s,$(f),B(([u,g])=>{const C=g.groupIndices.length>0,z=[],O=g.lastSize;if(C){const V=ie(g.sizeTree,0);let N=0,Z=0;for(;N<u;){const q=g.groupIndices[Z],Q=g.groupIndices.length===Z+1?1/0:g.groupIndices[Z+1]-q-1;z.push({endIndex:q,size:V,startIndex:q}),z.push({endIndex:q+1+Q-1,size:O,startIndex:q+1}),Z++,N+=Q+1}const F=_t(g.sizeTree);return N!==u&&F.shift(),F.reduce((q,{k:Q,v:gt})=>{let ut=q.ranges;return 0!==q.prevSize&&(ut=[...q.ranges,{endIndex:Q+u-1,size:q.prevSize,startIndex:q.prevIndex}]),{prevIndex:Q+u,prevSize:gt,ranges:ut}},{prevIndex:u,prevSize:0,ranges:z}).ranges}return _t(g.sizeTree).reduce((V,{k:N,v:Z})=>({prevIndex:N+u,prevSize:Z,ranges:[...V.ranges,{endIndex:N+u-1,size:V.prevSize,startIndex:V.prevIndex}]}),{prevIndex:0,prevSize:O,ranges:[]}).ranges})),n);const k=vt(I(i,$(f,R),B(([u,{offsetTree:g},C])=>ce(-u,g,C))));return L(I(i,$(f,R),B(([u,g,C])=>{if(g.groupIndices.length>0){if(J(g.sizeTree))return g;let V=qt();const N=it(a);let Z=0,F=0,mt=0;for(;Z<-u;){mt=N[F];const Q=N[F+1]-mt-1;F++,Z+=Q+1}if(V=_t(g.sizeTree).reduce((Q,{k:gt,v:ut})=>Tt(Q,Math.max(0,gt+u),ut),V),Z!==-u){V=Tt(V,0,ie(g.sizeTree,mt));V=Tt(V,1,Rt(g.sizeTree,1-u)[1])}return{...g,sizeTree:V,...We(g.offsetTree,0,V,C)}}const O=_t(g.sizeTree).reduce((V,{k:N,v:Z})=>Tt(V,Math.max(0,N+u),Z),qt());return{...g,sizeTree:O,...We(g.offsetTree,0,O,C)}})),f),{beforeUnshiftWith:y,data:w,defaultItemSize:m,firstItemIndex:l,fixedItemSize:d,fixedGroupSize:x,gap:R,groupIndices:c,heightEstimates:p,itemSize:T,listRefresh:H,shiftWith:i,shiftWithOffset:k,sizeRanges:n,sizes:f,statefulTotalCount:r,totalCount:o,trackItemSizes:S,unshiftWith:s}},ot(Gt,De),{singleton:!0});function Vo(t){return t.reduce((e,n)=>(e.groupIndices.push(e.totalCount),e.totalCount+=n+1,e),{groupIndices:[],totalCount:0})}const Dn=j(([{groupIndices:t,sizes:e,totalCount:n},{headerHeight:o,scrollTop:r}])=>{const s=U(),i=U(),l=vt(I(s,B(Vo)));return L(I(l,B(c=>c.totalCount)),n),L(I(l,B(c=>c.groupIndices)),t),L(I(at(r,e,o),W(([c,d])=>be(d)),B(([c,d,m])=>Rt(d.groupOffsetTree,Math.max(c-m,0),"v")[0]),et(),B(c=>[c])),i),{groupCounts:s,topItemsIndexes:i}},ot(Lt,It)),At=j(([{log:t}])=>{const e=v(!1),n=vt(I(e,W(o=>o),et()));return Y(e,o=>{o&&it(t)("props updated",{},ft_DEBUG)}),{didMount:n,propsReady:e}},ot(Gt),{singleton:!0}),Po=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function $n(t){const e="number"==typeof t?{index:t}:t;return e.align||(e.align="start"),(!e.behavior||!Po)&&(e.behavior="auto"),void 0===e.offset&&(e.offset=0),e}const fe=j(([{gap:t,listRefresh:e,sizes:n,totalCount:o},{fixedFooterHeight:r,fixedHeaderHeight:s,footerHeight:i,headerHeight:l,scrollingInProgress:c,scrollTo:d,smoothScrollTargetReached:m,viewportHeight:x},{log:p}])=>{const T=U(),w=U(),R=v(0);let h=null,f=null,a=null;function S(){null!==h&&(h(),h=null),null!==a&&(a(),a=null),f&&(clearTimeout(f),f=null),_(c,!1)}return L(I(T,$(n,x,o,R,l,i,p),$(t,s,r),B(([[H,y,k,u,g,C,z,O],V,N,Z])=>{const F=$n(H),{align:mt,behavior:q,offset:Q}=F,gt=u-1,ut=Nn(F,y,gt);let xt=ce(ut,y.offsetTree,V)+C;"end"===mt?(xt+=N+Rt(y.sizeTree,ut)[1]-k+Z,ut===gt&&(xt+=z)):"center"===mt?xt+=(N+Rt(y.sizeTree,ut)[1]-k+Z)/2:xt-=g,void 0!==Q&&0!==Q&&(xt+=Q);const Ft=pt=>{S(),pt?(O("retrying to scroll to",{location:H},ft_DEBUG),_(T,H)):(_(w,!0),O("list did not change, scroll successful",{},ft_DEBUG))};if(S(),"smooth"===q){let pt=!1;a=Y(e,Kt=>{pt=pt||Kt}),h=yt(m,()=>{Ft(pt)})}else h=yt(I(e,function(t){return e=>{const n=setTimeout(()=>{e(!1)},t);return o=>{o&&(e(!0),clearTimeout(n))}}}(150)),Ft);return f=setTimeout(()=>{S()},1200),_(c,!0),O("scrolling from index to",{behavior:q,index:ut,top:xt},ft_DEBUG),{behavior:q,top:xt}})),d),{scrollTargetReached:w,scrollToIndex:T,topListHeight:R}},ot(Lt,It,Gt),{singleton:!0});function Ue(t,e){0===t?e():requestAnimationFrame(()=>{Ue(t-1,e)})}function Ke(t,e){const n=e-1;return"number"==typeof t?t:"LAST"===t.index?n:t.index}const me=j(([{defaultItemSize:t,listRefresh:e,sizes:n},{scrollTop:o},{scrollTargetReached:r,scrollToIndex:s},{didMount:i}])=>{const l=v(!0),c=v(0),d=v(!0);return L(I(i,$(c),W(([m,x])=>0!==x),Bt(!1)),l),L(I(i,$(c),W(([m,x])=>0!==x),Bt(!1)),d),Y(I(at(e,i),$(l,n,t,d),W(([[,m],x,{sizeTree:p},T,w])=>m&&(!J(p)||Ae(T))&&!x&&!w),$(c)),([,m])=>{yt(r,()=>{_(d,!0)}),Ue(4,()=>{yt(o,()=>{_(l,!0)}),_(s,m)})}),{initialItemFinalLocationReached:d,initialTopMostItemIndex:c,scrolledToInitialItem:l}},ot(Lt,It,fe,At),{singleton:!0});function Un(t,e){return Math.abs(t-e)<1.01}const ue="up",ne="down",Ao={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},pe=j(([{footerHeight:t,headerHeight:e,scrollBy:n,scrollContainerState:o,scrollTop:r,viewportHeight:s}])=>{const i=v(!1),l=v(!0),c=U(),d=U(),m=v(4),x=v(0),p=ht(I(ze(I(P(r),$t(1),Bt(!0)),I(P(r),$t(1),Bt(!1),dn(100))),et()),!1),T=ht(I(ze(I(n,Bt(!0)),I(n,Bt(!1),dn(200))),et()),!1);L(I(at(P(r),P(x)),B(([a,S])=>a<=S),et()),l),L(I(l,zt(50)),d);const w=vt(I(at(o,P(s),P(e),P(t),P(m)),Ot((a,[{scrollHeight:S,scrollTop:H},y,k,u,g])=>{const z={scrollHeight:S,scrollTop:H,viewportHeight:y};if(H+y-S>-g){let V,N;return H>a.state.scrollTop?(V="SCROLLED_DOWN",N=a.state.scrollTop-H):(V="SIZE_DECREASED",N=a.state.scrollTop-H||a.scrollTopDelta),{atBottom:!0,atBottomBecause:V,scrollTopDelta:N,state:z}}let O;return O=z.scrollHeight>a.state.scrollHeight?"SIZE_INCREASED":y<a.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":H<a.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:O,state:z}},Ao),et((a,S)=>void 0!==a&&a.atBottom===S.atBottom))),R=ht(I(o,Ot((a,{scrollHeight:S,scrollTop:H,viewportHeight:y})=>{if(!Un(a.scrollHeight,S)){const k=S-(H+y)<1;return a.scrollTop!==H&&k?{changed:!0,jump:a.scrollTop-H,scrollHeight:S,scrollTop:H}:{changed:!0,jump:0,scrollHeight:S,scrollTop:H}}return{changed:!1,jump:0,scrollHeight:S,scrollTop:H}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),W(a=>a.changed),B(a=>a.jump)),0);L(I(w,B(a=>a.atBottom)),i),L(I(i,zt(50)),c);const h=v(ne);L(I(o,B(({scrollTop:a})=>a),et(),Ot((a,S)=>it(T)?{direction:a.direction,prevScrollTop:S}:{direction:S<a.prevScrollTop?ue:ne,prevScrollTop:S},{direction:ne,prevScrollTop:0}),B(a=>a.direction)),h),L(I(o,zt(50),Bt("none")),h);const f=v(0);return L(I(p,W(a=>!a),Bt(0)),f),L(I(r,zt(100),$(p),W(([a,S])=>S),Ot(([a,S],[H])=>[S,H],[0,0]),B(([a,S])=>S-a)),f),{atBottomState:w,atBottomStateChange:c,atBottomThreshold:m,atTopStateChange:d,atTopThreshold:x,isAtBottom:i,isAtTop:l,isScrolling:p,lastJumpDueToItemResize:R,scrollDirection:h,scrollVelocity:f}},ot(It)),ae="top",de="bottom";function gn(t,e,n){return"number"==typeof t?n===ue&&e===ae||n===ne&&e===de?t:0:n===ue?e===ae?t.main:t.reverse:e===de?t.main:t.reverse}function In(t,e){return"number"==typeof t?t:t[e]??0}const je=j(([{deviation:t,fixedHeaderHeight:e,headerHeight:n,scrollTop:o,viewportHeight:r}])=>{const s=U(),i=v(0),l=v(0),c=v(0);return{increaseViewportBy:l,listBoundary:s,overscan:c,topListHeight:i,visibleRange:ht(I(at(P(o),P(r),P(n),P(s,le),P(c),P(i),P(e),P(t),P(l)),B(([m,x,p,[T,w],R,h,f,a,S])=>{const H=m-a,y=h+f,k=Math.max(p-H,0);let u="none";const g=In(S,ae),C=In(S,de);return T-=a,w+=p+f,(T+=p+f)>m+y-g&&(u=ue),(w-=a)<m-k+x+C&&(u=ne),"none"!==u?[Math.max(H-p-gn(R,ae,u)-g,0),H-k-f+x+gn(R,de,u)+C]:null}),W(m=>null!==m),et(le)),[0,0])}},ot(It),{singleton:!0});const Be={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Te(t,e,n,o,r,s){const{lastIndex:i,lastOffset:l,lastSize:c}=r;let d=0,m=0;if(t.length>0){d=t[0].offset;const R=t[t.length-1];m=R.offset+R.size}const x=n-i,T=d,w=l+x*c+(x-1)*o-m;return{bottom:m,firstItemIndex:s,items:xn(t,r,s),offsetBottom:w,offsetTop:d,top:T,topItems:xn(e,r,s),topListHeight:e.reduce((R,h)=>h.size+R,0),totalCount:n}}function Kn(t,e,n,o,r,s){let i=0;if(n.groupIndices.length>0)for(const m of n.groupIndices){if(m-i>=t)break;i++}const l=t+i,c=Ke(e,l);return Te(Array.from({length:l}).map((m,x)=>({data:s[x+c],index:x+c,offset:0,size:0})),[],l,r,n,o)}function xn(t,e,n){if(0===t.length)return[];if(!be(e))return t.map(d=>({...d,index:d.index+n,originalIndex:d.index}));const o=t[0].index,r=t[t.length-1].index,s=[],i=Yt(e.groupOffsetTree,o,r);let l,c=0;for(const d of t){let m;(!l||l.end<d.index)&&(l=i.shift(),c=e.groupIndices.indexOf(l.start)),m=d.index===l.start?{index:c,type:"group"}:{groupIndex:c,index:d.index-(c+1)+n},s.push({...m,data:d.data,offset:d.offset,originalIndex:d.index,size:d.size})}return s}function Sn(t,e){return void 0===t?0:"number"==typeof t?t:t[e]??0}const Ut=j(([{data:t,firstItemIndex:e,gap:n,sizes:o,totalCount:r},s,{listBoundary:i,topListHeight:l,visibleRange:c},{initialTopMostItemIndex:d,scrolledToInitialItem:m},{topListHeight:x},p,{didMount:T},{recalcInProgress:w}])=>{const R=v([]),h=v(0),f=U(),a=v(0);L(s.topItemsIndexes,R);const S=ht(I(at(T,w,P(c,le),P(r),P(o),P(d),m,P(R),P(e),P(n),P(a),t),W(([u,g,,C,,,,,,,,z])=>{const O=void 0!==z&&z.length!==C;return u&&!g&&!O}),B(([,,[u,g],C,z,O,V,N,Z,F,mt,q])=>{var _a,_b;const Q=z,{offsetTree:gt,sizeTree:ut}=Q,xt=it(h);if(0===C)return{...Be,totalCount:C};if(0===u&&0===g)return 0===xt?{...Be,totalCount:C}:Kn(xt,O,z,Z,F,q||[]);if(J(ut))return xt>0?null:Te(function(t,e,n){if(be(e)){const o=_n(t,e);return[{index:Rt(e.groupOffsetTree,o)[0],offset:0,size:0},{data:null==n?void 0:n[0],index:o,offset:0,size:0}]}return[{data:null==n?void 0:n[0],index:t,offset:0,size:0}]}(Ke(O,C),Q,q),[],C,F,Q,Z);const Ft=[];if(N.length>0){const D=N[0],K=N[N.length-1];let rt=0;for(const tt of Yt(ut,D,K)){const X=tt.value,lt=Math.max(tt.start,D),St=Math.min(tt.end,K);for(let ct=lt;ct<=St;ct++)Ft.push({data:null==q?void 0:q[ct],index:ct,offset:rt,size:X}),rt+=X}}if(!V)return Te([],Ft,C,F,Q,Z);const pt=N.length>0?N[N.length-1]+1:0,Kt=Bo(gt,u,g,pt);if(0===Kt.length)return null;const Qt=C-1,Et=ye([],D=>{for(const K of Kt){const rt=K.value;let tt=rt.offset,X=K.start;const lt=rt.size;if(rt.offset<u){X+=Math.floor((u-rt.offset+F)/(lt+F));const ct=X-K.start;tt+=ct*lt+ct*F}X<pt&&(tt+=(pt-X)*lt,X=pt);const St=Math.min(K.end,Qt);for(let ct=X;ct<=St&&!(tt>=g);ct++)D.push({data:null==q?void 0:q[ct],index:ct,offset:tt,size:lt}),tt+=lt+F}}),te=Sn(mt,ae),b=Sn(mt,de);if(Et.length>0&&(te>0||b>0)){const D=Et[0],K=Et[Et.length-1];if(te>0&&D.index>pt){const rt=Math.min(te,D.index-pt),tt=[];let X=D.offset;for(let lt=D.index-1;lt>=D.index-rt;lt--){const ct=(null==(_a=Yt(ut,lt,lt)[0])?void 0:_a.value)??D.size;X-=ct+F,tt.unshift({data:null==q?void 0:q[lt],index:lt,offset:X,size:ct})}Et.unshift(...tt)}if(b>0&&K.index<Qt){const rt=Math.min(b,Qt-K.index);let tt=K.offset+K.size+F;for(let X=K.index+1;X<=K.index+rt;X++){const St=(null==(_b=Yt(ut,X,X)[0])?void 0:_b.value)??K.size;Et.push({data:null==q?void 0:q[X],index:X,offset:tt,size:St}),tt+=St+F}}}return Te(Et,Ft,C,F,Q,Z)}),W(u=>null!==u),et()),Be);L(I(t,W(Ae),B(u=>null==u?void 0:u.length)),r),L(I(S,B(u=>u.topListHeight)),x),L(x,l),L(I(S,B(u=>[u.top,u.bottom])),i),L(I(S,B(u=>u.items)),f);const H=vt(I(S,W(({items:u})=>u.length>0),$(r,t),W(([{items:u},g])=>u[u.length-1].originalIndex===g-1),B(([,u,g])=>[u-1,g]),et(le),B(([u])=>u))),y=vt(I(S,zt(200),W(({items:u,topItems:g})=>u.length>0&&u[0].originalIndex===g.length),B(({items:u})=>u[0].index),et())),k=vt(I(S,W(({items:u})=>u.length>0),B(({items:u})=>{let g=0,C=u.length-1;for(;"group"===u[g].type&&g<C;)g++;for(;"group"===u[C].type&&C>g;)C--;return{endIndex:u[C].index,startIndex:u[g].index}}),et(An)));return{endReached:H,initialItemCount:h,itemsRendered:f,listState:S,minOverscanItemCount:a,rangeChanged:k,startReached:y,topItemsIndexes:R,...p}},ot(Lt,Dn,je,me,fe,pe,At,De),{singleton:!0}),jn=j(([{fixedFooterHeight:t,fixedHeaderHeight:e,footerHeight:n,headerHeight:o},{listState:r}])=>{const s=U(),i=ht(I(at(n,t,o,e,r),B(([l,c,d,m,x])=>l+c+d+m+x.offsetBottom+x.bottom)),0);return L(P(i),s),{totalListHeight:i,totalListHeightChanged:s}},ot(It,Ut),{singleton:!0}),No=j(([{viewportHeight:t},{totalListHeight:e}])=>{const n=v(!1);return{alignToBottom:n,paddingTopAddition:ht(I(at(n,t,e),W(([r])=>r),B(([,r,s])=>Math.max(0,r-s)),zt(0),et()),0)}},ot(It,jn),{singleton:!0}),qn=j(()=>({context:v(null)})),Do=({itemBottom:t,itemTop:e,locationParams:{align:n,behavior:o,...r},viewportBottom:s,viewportTop:i})=>e<i?{...r,align:n??"start",...void 0!==o?{behavior:o}:{}}:t>s?{...r,align:n??"end",...void 0!==o?{behavior:o}:{}}:null,Yn=j(([{gap:t,sizes:e,totalCount:n},{fixedFooterHeight:o,fixedHeaderHeight:r,headerHeight:s,scrollingInProgress:i,scrollTop:l,viewportHeight:c},{scrollToIndex:d}])=>{const m=U();return L(I(m,$(e,c,n,s,r,o,l),$(t),B(([[x,p,T,w,R,h,f,a],S])=>{const{calculateViewLocation:H=Do,done:y,...k}=x,u=Nn(x,p,w-1),g=ce(u,p.offsetTree,S)+R+h,V=H({itemBottom:g+Rt(p.sizeTree,u)[1],itemTop:g,locationParams:k,viewportBottom:a+T-f,viewportTop:a+h});return null!==V?y&&yt(I(i,W(N=>!N),$t(it(i)?1:2)),y):null==y||y(),V}),W(x=>null!==x)),d),{scrollIntoView:m}},ot(Lt,It,fe,Ut,Gt),{singleton:!0});function Tn(t){return!1!==t&&("smooth"===t?"smooth":"auto")}const Uo=j(([{listRefresh:t,totalCount:e,fixedItemSize:n,data:o},{atBottomState:r,isAtBottom:s},{scrollToIndex:i},{scrolledToInitialItem:l},{didMount:c,propsReady:d},{log:m},{scrollingInProgress:x},{context:p},{scrollIntoView:T}])=>{const w=v(!1),R=U();let h=null;function f(y){_(i,{align:"end",behavior:y,index:"LAST"})}function a(y){const k=yt(r,u=>{y&&!u.atBottom&&"SIZE_INCREASED"===u.notAtBottomBecause&&null===h&&(it(m)("scrolling to bottom due to increased size",{},ft_DEBUG),f("auto"))});setTimeout(k,100)}Y(I(at(I(P(e),$t(1)),c),$(P(w),s,l,x),B(([[y,k],u,g,C,z])=>{let O=k&&C,V="auto";return O&&(V=((t,e)=>"function"==typeof t?Tn(t(e)):e&&Tn(t))(u,g||z),O=O&&!1!==V),{followOutputBehavior:V,shouldFollow:O,totalCount:y}}),W(({shouldFollow:y})=>y)),({followOutputBehavior:y,totalCount:k})=>{null!==h&&(h(),h=null),void 0!==it(n)?requestAnimationFrame(()=>{it(m)("following output to ",{totalCount:k},ft_DEBUG),f(y)}):h=yt(t,()=>{it(m)("following output to ",{totalCount:k},ft_DEBUG),f(y),h=null})}),Y(I(at(P(w),e,d),W(([y,,k])=>!1!==y&&k),Ot(({value:y},[,k])=>({refreshed:y===k,value:k}),{refreshed:!1,value:0}),W(({refreshed:y})=>y),$(w,e)),([,y])=>{it(l)&&a(!1!==y)}),Y(R,()=>{a(!1!==it(w))}),Y(at(P(w),r),([y,k])=>{!1!==y&&!k.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===k.notAtBottomBecause&&f("auto")});const S=v(null),H=U();return L(ze(I(P(o),B(y=>(null==y?void 0:y.length)??0)),I(P(e))),H),Y(I(at(I(H,$t(1)),c),$(P(S),l,x,p),B(([[y,k],u,g,C,z])=>k&&g&&(null==u?void 0:u({context:z,totalCount:y,scrollingInProgress:C}))),W(y=>!!y),zt(0)),y=>{null!==h&&(h(),h=null),void 0!==it(n)?requestAnimationFrame(()=>{it(m)("scrolling into view",{}),_(T,y)}):h=yt(t,()=>{it(m)("scrolling into view",{}),_(T,y),h=null})}),{autoscrollToBottom:R,followOutput:w,scrollIntoViewOnChange:S}},ot(Lt,pe,fe,me,At,Gt,It,qn,Yn)),Ko=j(([{data:t,firstItemIndex:e,gap:n,sizes:o},{initialTopMostItemIndex:r},{initialItemCount:s,listState:i},{didMount:l}])=>(L(I(l,$(s),W(([,c])=>0!==c),$(r,o,e,n,t),B(([[,c],d,m,x,p,T=[]])=>Kn(c,d,m,x,p,T))),i),{}),ot(Lt,me,Ut,At),{singleton:!0}),jo=j(([{didMount:t},{scrollTo:e},{listState:n}])=>{const o=v(0);return Y(I(t,$(o),W(([,r])=>0!==r),B(([,r])=>({top:r}))),r=>{yt(I(n,$t(1),W(s=>s.items.length>1)),()=>{requestAnimationFrame(()=>{_(e,r)})})}),{initialScrollTop:o}},ot(At,It,Ut),{singleton:!0}),Zn=j(([{scrollVelocity:t}])=>{const e=v(!1),n=U(),o=v(!1);return L(I(t,$(o,e,n),W(([r,s])=>!1!==s&&void 0!==s),B(([r,s,i,l])=>{const{enter:c,exit:d}=s;if(i){if(d(r,l))return!1}else if(c(r,l))return!0;return i}),et()),e),Y(I(at(e,t,n),$(o)),([[r,s,i],l])=>{r&&!1!==l&&void 0!==l&&l.change&&l.change(s,i)}),{isSeeking:e,scrollSeekConfiguration:o,scrollSeekRangeChanged:n,scrollVelocity:t}},ot(pe),{singleton:!0}),qe=j(([{scrollContainerState:t,scrollTo:e}])=>{const n=U(),o=U(),r=U(),s=v(!1),i=v(void 0);return L(I(at(n,o),B(([{scrollTop:l,viewportHeight:c},{offsetTop:d,listHeight:m}])=>({scrollHeight:m,scrollTop:Math.max(0,l-d),viewportHeight:c}))),t),L(I(e,$(o),B(([l,{offsetTop:c}])=>({...l,top:l.top+c}))),r),{customScrollParent:i,useWindowScroll:s,windowScrollContainerState:n,windowScrollTo:r,windowViewportRect:o}},ot(It)),qo=j(([{sizeRanges:t,sizes:e},{headerHeight:n,scrollTop:o},{initialTopMostItemIndex:r},{didMount:s},{useWindowScroll:i,windowScrollContainerState:l,windowViewportRect:c}])=>{const d=U(),m=v(void 0),x=v(null),p=v(null);return L(l,x),L(c,p),Y(I(d,$(e,o,i,x,p,n)),([T,w,R,h,f,a,S])=>{const H=function(t){return _t(t).map(({k:e,v:n},o,r)=>{const s=r[o+1];return{endIndex:void 0!==s?s.k-1:1/0,size:n,startIndex:e}})}(w.sizeTree);h&&null!==f&&null!==a&&(R=f.scrollTop-a.offsetTop),T({ranges:H,scrollTop:R-=S})}),L(I(m,W(Ae),B(Yo)),r),L(I(s,$(m),W(([,T])=>void 0!==T),et(),B(([,T])=>T.ranges)),t),{getState:d,restoreStateFrom:m}},ot(Lt,It,me,At,qe));function Yo(t){return{align:"start",index:0,offset:t.scrollTop}}const Zo=j(([{topItemsIndexes:t}])=>{const e=v(0);return L(I(e,W(n=>n>=0),B(n=>Array.from({length:n}).map((o,r)=>r))),t),{topItemCount:e}},ot(Ut));function Xn(t){let n,e=!1;return()=>(e||(e=!0,n=t()),n)}const Xo=Xn(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),Jo=j(([{deviation:t,scrollBy:e,scrollingInProgress:n,scrollTop:o},{isAtBottom:r,isScrolling:s,lastJumpDueToItemResize:i,scrollDirection:l},{listState:c},{beforeUnshiftWith:d,gap:m,shiftWithOffset:x,sizes:p},{log:T},{recalcInProgress:w}])=>{const R=vt(I(c,$(i),Ot(([,f,a,S],[{bottom:H,items:y,offsetBottom:k,totalCount:u},g])=>{const C=H+k;let z=0;return a===u&&f.length>0&&y.length>0&&(0===y[0].originalIndex&&0===f[0].originalIndex||(z=C-S,0!==z&&(z+=g))),[z,y,u,C]},[0,[],0,0]),W(([f])=>0!==f),$(o,l,n,r,T,w),W(([,f,a,S,,,H])=>!H&&!S&&0!==f&&a===ue),B(([[f],,,,,a])=>(a("Upward scrolling compensation",{amount:f},ft_DEBUG),f))));function h(f){f>0?(_(e,{behavior:"auto",top:-f}),_(t,0)):(_(t,0),_(e,{behavior:"auto",top:-f}))}return Y(I(R,$(t,s)),([f,a,S])=>{S&&Xo()?_(t,a-f):h(-f)}),Y(I(at(ht(s,!1),t,w),W(([f,a,S])=>!f&&!S&&0!==a),B(([f,a])=>a),zt(1)),h),L(I(x,B(f=>({top:-f}))),e),Y(I(d,$(p,m),B(([f,{groupIndices:a,lastSize:S,sizeTree:H},y])=>{function k(O){return O*(S+y)}if(0===a.length)return k(f);let u=0;const g=ie(H,0);let C=0,z=0;for(;C<f;){C++,u+=g;let O=a.length===z+1?1/0:a[z+1]-a[z]-1;C+O>f&&(u-=g,O=f-C+1),C+=O,u+=k(O),z++}return u})),f=>{_(t,f),requestAnimationFrame(()=>{_(e,{top:f}),requestAnimationFrame(()=>{_(t,0),_(w,!1)})})}),{deviation:t}},ot(It,pe,Ut,Lt,Gt,De)),Qo=j(([t,e,n,o,r,s,i,l,c,d,m])=>({...t,...e,...n,...o,...r,...s,...i,...l,...c,...d,...m}),ot(je,Ko,At,Zn,jn,jo,No,qe,Yn,Gt,qn)),Jn=j(([{data:t,defaultItemSize:e,firstItemIndex:n,fixedItemSize:o,fixedGroupSize:r,gap:s,groupIndices:i,heightEstimates:l,itemSize:c,sizeRanges:d,sizes:m,statefulTotalCount:x,totalCount:p,trackItemSizes:T},{initialItemFinalLocationReached:w,initialTopMostItemIndex:R,scrolledToInitialItem:h},f,a,S,H,{scrollToIndex:y},k,{topItemCount:u},{groupCounts:g},C])=>{const{listState:z,minOverscanItemCount:O,topItemsIndexes:V,rangeChanged:N,...Z}=H;return L(N,C.scrollSeekRangeChanged),L(I(C.windowViewportRect,B(F=>F.visibleHeight)),f.viewportHeight),{data:t,defaultItemHeight:e,firstItemIndex:n,fixedItemHeight:o,fixedGroupHeight:r,gap:s,groupCounts:g,heightEstimates:l,initialItemFinalLocationReached:w,initialTopMostItemIndex:R,scrolledToInitialItem:h,sizeRanges:d,topItemCount:u,topItemsIndexes:V,totalCount:p,...S,groupIndices:i,itemSize:c,listState:z,minOverscanItemCount:O,scrollToIndex:y,statefulTotalCount:x,trackItemSizes:T,rangeChanged:N,...Z,...C,...f,sizes:m,...a}},ot(Lt,me,It,qo,Uo,Ut,fe,Jo,Zo,Dn,Qo));function tr(t,e){const n={},o={};let r=0;const s=t.length;for(;r<s;)o[t[r]]=1,r+=1;for(const i in e)Object.hasOwn(o,i)||(n[i]=e[i]);return n}const Ie=typeof document<"u"?React.useLayoutEffect:React.useEffect;function Ye(t,e,n){const o=Object.keys(e.required||{}),r=Object.keys(e.optional||{}),s=Object.keys(e.methods||{}),i=Object.keys(e.events||{}),l=React.createContext({});function c(f,a){void 0!==f.propsReady&&_(f.propsReady,!1);for(const S of o){_(f[e.required[S]],a[S])}for(const S of r)if(S in a){_(f[e.optional[S]],a[S])}void 0!==f.propsReady&&_(f.propsReady,!0)}function m(f){return i.reduce((a,S)=>(a[S]=function(t){let e,n;const o=()=>null==e?void 0:e();return function(r,s){switch(r){case 1:return s?n===s?void 0:(o(),n=s,e=Y(t,s),e):(o(),Xt);case 2:return o(),void(n=null)}}}(f[e.events[S]]),a),{})}const x=React.forwardRef(function(a,S){const{children:H,...y}=a,[k]=React.useState(()=>ye(function(t){const e=new Map,n=({constructor:o,dependencies:r,id:s,singleton:i})=>{if(i&&e.has(s))return e.get(s);const l=o(r.map(c=>n(c)));return i&&e.set(s,l),l};return n(t)}(t),C=>{c(C,y)})),[u]=React.useState(an(m,k));var f;Ie(()=>{for(const C of i)C in y&&Y(u[C],y[C]);return()=>{Object.values(u).map(Me)}},[y,u,k]),Ie(()=>{c(k,y)}),React.useImperativeHandle(S,un((f=k,s.reduce((a,S)=>(a[S]=H=>{_(f[e.methods[S]],H)},a),{}))));const g=n;return jsxRuntimeExports.jsx(l.Provider,{value:k,children:void 0!==n?jsxRuntimeExports.jsx(g,{...tr([...o,...r,...i],y),children:H}):H})});return{Component:x,useEmitter:(f,a)=>{const H=React.useContext(l)[f];Ie(()=>Y(H,a),[a,H])},useEmitterValue:React.version.startsWith("18")?f=>{const S=React.useContext(l)[f],H=React.useCallback(y=>Y(S,y),[S]);return React.useSyncExternalStore(H,()=>it(S),()=>it(S))}:f=>{const S=React.useContext(l)[f],[H,y]=React.useState(an(it,S));return Ie(()=>Y(S,k=>{k!==H&&y(un(k))}),[S,H]),H},usePublisher:f=>{const a=React.useContext(l);return React.useCallback(S=>{_(a[f],S)},[a,f])}}}const Re=React.createContext(void 0),Qn=React.createContext(void 0),Oe="-webkit-sticky",Ze=Xn(()=>{if(typeof document>"u")return"sticky";const t=document.createElement("div");return t.style.position=Oe,t.style.position===Oe?Oe:"sticky"}),to=typeof document<"u"?React.useLayoutEffect:React.useEffect;function ke(t){return"self"in t}function eo(t,e,n,o=Xt,r,s){const i=React.useRef(null),l=React.useRef(null),c=React.useRef(null),d=React.useCallback(p=>{let T,w,R;const h=p.target;if(function(t){return"body"in t}(h)||ke(h)){const a=ke(h)?h:h.defaultView;R=!0===s?a.scrollX:a.scrollY,T=!0===s?a.document.documentElement.scrollWidth:a.document.documentElement.scrollHeight,w=!0===s?a.innerWidth:a.innerHeight}else R=!0===s?h.scrollLeft:h.scrollTop,T=!0===s?h.scrollWidth:h.scrollHeight,w=!0===s?h.offsetWidth:h.offsetHeight;const f=()=>{t({scrollHeight:T,scrollTop:Math.max(R,0),viewportHeight:w})};!0===p.suppressFlushSync?f():ReactDOM.flushSync(f),null!==l.current&&(R===l.current||R<=0||R===T-w)&&(l.current=null,e(!0),c.current&&(clearTimeout(c.current),c.current=null))},[t,e,s]);return React.useEffect(()=>{const p=r||i.current;return o(r||i.current),d({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",d,{passive:!0}),()=>{o(null),p.removeEventListener("scroll",d)}},[i,d,n,o,r]),{scrollByCallback:function(p){!0===s&&(p={...void 0!==p.behavior?{behavior:p.behavior}:{},...void 0!==p.top?{left:p.top}:{}}),i.current.scrollBy(p)},scrollerRef:i,scrollToCallback:function(p){const T=i.current;if(!T||(!0===s?"offsetWidth"in T&&0===T.offsetWidth:"offsetHeight"in T&&0===T.offsetHeight))return;const w="smooth"===p.behavior;let R,h,f;ke(T)?(h=Math.max(Ht(T.document.documentElement,!0===s?"width":"height"),!0===s?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight),R=!0===s?T.innerWidth:T.innerHeight,f=!0===s?window.scrollX:window.scrollY):(h=T[!0===s?"scrollWidth":"scrollHeight"],R=Ht(T,!0===s?"width":"height"),f=T[!0===s?"scrollLeft":"scrollTop"]);const a=h-R;if(p.top=Math.ceil(Math.max(Math.min(a,p.top),0)),Un(R,h)||p.top===f)return t({scrollHeight:h,scrollTop:f,viewportHeight:R}),void(w&&e(!0));w?(l.current=p.top,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,l.current=null,e(!0)},1e3)):l.current=null,!0===s&&(p={...void 0!==p.behavior?{behavior:p.behavior}:{},left:p.top}),T.scrollTo(p)}}}function Xe(t){return t}const or=j(([t,e])=>({...t,...e}),ot(Jn,j(()=>{const t=v(l=>`Item ${l}`),e=v(l=>`Group ${l}`),n=v({}),o=v(Xe),r=v("div"),s=v(Xt),i=(l,c=null)=>ht(I(n,B(d=>d[l]),et()),c);return{components:n,computeItemKey:o,EmptyPlaceholder:i("EmptyPlaceholder"),FooterComponent:i("Footer"),GroupComponent:i("Group","div"),groupContent:e,HeaderComponent:i("Header"),HeaderFooterTag:r,ItemComponent:i("Item","div"),itemContent:t,ListComponent:i("List","div"),ScrollerComponent:i("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:i("ScrollSeekPlaceholder"),TopItemListComponent:i("TopItemList")}}))),rr=({height:t})=>jsxRuntimeExports.jsx("div",{style:{height:t}}),sr={overflowAnchor:"none",position:Ze(),zIndex:1},no={overflowAnchor:"none"},ir={...no,display:"inline-block",height:"100%"},Cn=React.memo(function({showTopList:e=!1}){const n=A("listState"),o=Ct("sizeRanges"),r=A("useWindowScroll"),s=A("customScrollParent"),i=Ct("windowScrollContainerState"),l=Ct("scrollContainerState"),c=s||r?i:l,d=A("itemContent"),m=A("context"),x=A("groupContent"),p=A("trackItemSizes"),T=A("itemSize"),w=A("log"),R=Ct("gap"),h=A("horizontalDirection"),{callbackRef:f}=zn(o,T,p,e?Xt:c,w,R,s,h,A("skipAnimationFrameInResizeObserver")),[a,S]=React.useState(0);tn("deviation",F=>{a!==F&&S(F)});const H=A("EmptyPlaceholder"),y=A("ScrollSeekPlaceholder")??rr,k=A("ListComponent"),u=A("ItemComponent"),g=A("GroupComponent"),C=A("computeItemKey"),z=A("isSeeking"),O=A("groupIndices").length>0,V=A("alignToBottom"),N=A("initialItemFinalLocationReached"),Z=e?{}:{boxSizing:"border-box",...h?{display:"inline-block",height:"100%",marginLeft:0!==a?a:V?"auto":0,paddingLeft:n.offsetTop,paddingRight:n.offsetBottom,whiteSpace:"nowrap"}:{marginTop:0!==a?a:V?"auto":0,paddingBottom:n.offsetBottom,paddingTop:n.offsetTop},...N?{}:{visibility:"hidden"}};return e||0!==n.totalCount||null==H?jsxRuntimeExports.jsx(k,{...nt(k,m),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:f,style:Z,children:(e?n.topItems:n.items).map(F=>{const mt=F.originalIndex,q=C(mt+n.firstItemIndex,F.data,m);return z?reactExports.createElement(y,{...nt(y,m),height:F.size,index:F.index,key:q,type:F.type||"item",..."group"===F.type?{}:{groupIndex:F.groupIndex}}):"group"===F.type?reactExports.createElement(g,{...nt(g,m),"data-index":mt,"data-item-index":F.index,"data-known-size":F.size,key:q,style:sr},x(F.index,m)):reactExports.createElement(u,{...nt(u,m),...oo(u,F.data),"data-index":mt,"data-item-group-index":F.groupIndex,"data-item-index":F.index,"data-known-size":F.size,key:q,style:h?ir:no},O?d(F.index,F.groupIndex,F.data,m):d(F.index,F.data,m))})}):jsxRuntimeExports.jsx(H,{...nt(H,m)})}),lr={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},cr={outline:"none",overflowX:"auto",position:"relative"},Jt=t=>({height:"100%",position:"absolute",top:0,width:"100%",...t?{display:"flex",flexDirection:"column"}:void 0}),ur={position:Ze(),top:0,width:"100%",zIndex:1};function nt(t,e){if("string"!=typeof t)return{context:e}}function oo(t,e){return{item:"string"==typeof t?void 0:e}}const ar=React.memo(function(){const e=A("HeaderComponent"),n=Ct("headerHeight"),o=A("HeaderFooterTag"),r=kt(React.useMemo(()=>i=>{n(Ht(i,"height"))},[n]),!0,A("skipAnimationFrameInResizeObserver")),s=A("context");return null!=e?jsxRuntimeExports.jsx(o,{ref:r,children:jsxRuntimeExports.jsx(e,{...nt(e,s)})}):null}),dr=React.memo(function(){const e=A("FooterComponent"),n=Ct("footerHeight"),o=A("HeaderFooterTag"),r=kt(React.useMemo(()=>i=>{n(Ht(i,"height"))},[n]),!0,A("skipAnimationFrameInResizeObserver")),s=A("context");return null!=e?jsxRuntimeExports.jsx(o,{ref:r,children:jsxRuntimeExports.jsx(e,{...nt(e,s)})}):null});function Je({useEmitter:t,useEmitterValue:e,usePublisher:n}){return React.memo(function({children:s,style:i,context:l,...c}){const d=n("scrollContainerState"),m=e("ScrollerComponent"),x=n("smoothScrollTargetReached"),p=e("scrollerRef"),T=e("horizontalDirection")||!1,{scrollByCallback:w,scrollerRef:R,scrollToCallback:h}=eo(d,x,m,p,void 0,T);return t("scrollTo",h),t("scrollBy",w),jsxRuntimeExports.jsx(m,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:R,style:{...T?cr:lr,...i},tabIndex:0,...c,...nt(m,l),children:s})})}function Qe({useEmitter:t,useEmitterValue:e,usePublisher:n}){return React.memo(function({children:s,style:i,context:l,...c}){const d=n("windowScrollContainerState"),m=e("ScrollerComponent"),x=n("smoothScrollTargetReached"),p=e("totalListHeight"),T=e("deviation"),w=e("customScrollParent"),R=React.useRef(null),h=e("scrollerRef"),{scrollByCallback:f,scrollerRef:a,scrollToCallback:S}=eo(d,x,m,h,w);return to(()=>{var _a;return a.current=w||(null==(_a=R.current)?void 0:_a.ownerDocument.defaultView),()=>{a.current=null}},[a,w]),t("windowScrollTo",S),t("scrollBy",f),jsxRuntimeExports.jsx(m,{ref:R,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...0!==p?{height:p+T}:void 0},...c,...nt(m,l),children:s})})}const fr=({children:t})=>{const e=React.useContext(Re),n=Ct("viewportHeight"),o=Ct("fixedItemHeight"),r=A("alignToBottom"),s=A("horizontalDirection"),l=kt(React.useMemo(()=>re(n,c=>Ht(c,s?"width":"height")),[n,s]),!0,A("skipAnimationFrameInResizeObserver"));return React.useEffect(()=>{e&&(n(e.viewportHeight),o(e.itemHeight))},[e,n,o]),jsxRuntimeExports.jsx("div",{"data-viewport-type":"element",ref:l,style:Jt(r),children:t})},mr=({children:t})=>{const e=React.useContext(Re),n=Ct("windowViewportRect"),o=Ct("fixedItemHeight"),r=A("customScrollParent"),s=Ne(n,r,A("skipAnimationFrameInResizeObserver")),i=A("alignToBottom");return React.useEffect(()=>{e&&(o(e.itemHeight),n({listHeight:0,offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,o]),jsxRuntimeExports.jsx("div",{"data-viewport-type":"window",ref:s,style:Jt(i),children:t})},pr=({children:t})=>{const e=A("TopItemListComponent")??"div",n=A("headerHeight"),o={...ur,marginTop:`${n}px`},r=A("context");return jsxRuntimeExports.jsx(e,{style:o,...nt(e,r),children:t})},hr=React.memo(function(e){const n=A("useWindowScroll"),o=A("topItemsIndexes").length>0,r=A("customScrollParent"),s=A("context");return jsxRuntimeExports.jsxs(r||n?Ir:gr,{...e,context:s,children:[o&&jsxRuntimeExports.jsx(pr,{children:jsxRuntimeExports.jsx(Cn,{showTopList:!0})}),jsxRuntimeExports.jsxs(r||n?mr:fr,{children:[jsxRuntimeExports.jsx(ar,{}),jsxRuntimeExports.jsx(Cn,{}),jsxRuntimeExports.jsx(dr,{})]})]})}),{Component:ro,useEmitter:tn,useEmitterValue:A,usePublisher:Ct}=Ye(or,{optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",heightEstimates:"heightEstimates",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},hr),gr=Je({useEmitter:tn,useEmitterValue:A,usePublisher:Ct}),Ir=Qe({useEmitter:tn,useEmitterValue:A,usePublisher:Ct}),qr=ro;ot(Jn,j(()=>{const t=v(d=>jsxRuntimeExports.jsxs("td",{children:["Item $",d]})),e=v(null),n=v(d=>jsxRuntimeExports.jsxs("td",{colSpan:1e3,children:["Group ",d]})),o=v(null),r=v(null),s=v({}),i=v(Xe),l=v(Xt),c=(d,m=null)=>ht(I(s,B(x=>x[d]),et()),m);return{components:s,computeItemKey:i,context:e,EmptyPlaceholder:c("EmptyPlaceholder"),FillerRow:c("FillerRow"),fixedFooterContent:r,fixedHeaderContent:o,itemContent:t,groupContent:n,ScrollerComponent:c("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),TableBodyComponent:c("TableBody","tbody"),TableComponent:c("Table","table"),TableFooterComponent:c("TableFoot","tfoot"),TableHeadComponent:c("TableHead","thead"),TableRowComponent:c("TableRow","tr"),GroupComponent:c("Group","tr")}})),Ze();const bn={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},Br={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Rn,floor:Ce,max:oe,min:Le,round:Hn}=Math;function En(t,e,n){return Array.from({length:e-t+1}).map((o,r)=>({data:null===n?null:n[r+t],index:r+t}))}function xe(t,e){return void 0!==t&&t.width===e.width&&t.height===e.height}function kr(t,e){return void 0!==t&&t.column===e.column&&t.row===e.row}const Lr=j(([{increaseViewportBy:t,listBoundary:e,overscan:n,visibleRange:o},{footerHeight:r,headerHeight:s,scrollBy:i,scrollContainerState:l,scrollTo:c,scrollTop:d,smoothScrollTargetReached:m,viewportHeight:x},p,T,{didMount:w,propsReady:R},{customScrollParent:h,useWindowScroll:f,windowScrollContainerState:a,windowScrollTo:S,windowViewportRect:H},y])=>{const k=v(0),u=v(0),g=v(bn),C=v({height:0,width:0}),z=v({height:0,width:0}),O=U(),V=U(),N=v(0),Z=v(null),F=v({column:0,row:0}),mt=U(),q=U(),Q=v(!1),gt=v(0),ut=v(!0),xt=v(!1),Ft=v(!1);Y(I(w,$(gt),W(([b,D])=>0!==D)),()=>{_(ut,!1)}),Y(I(at(w,ut,z,C,gt,xt),W(([b,D,K,rt,,tt])=>b&&!D&&0!==K.height&&0!==rt.height&&!tt)),([,,,,b])=>{_(xt,!0),Ue(1,()=>{_(O,b)}),yt(I(d),()=>{_(e,[0,0]),_(ut,!0)})}),L(I(q,W(b=>null!=b&&b.scrollTop>0),Bt(0)),u),Y(I(w,$(q),W(([,b])=>null!=b)),([,b])=>{b&&(_(C,b.viewport),_(z,b.item),_(F,b.gap),b.scrollTop>0&&(_(Q,!0),yt(I(d,$t(1)),D=>{_(Q,!1)}),_(c,{top:b.scrollTop})))}),L(I(C,B(({height:b})=>b)),x),L(I(at(P(C,xe),P(z,xe),P(F,(b,D)=>void 0!==b&&b.column===D.column&&b.row===D.row),P(d)),B(([b,D,K,rt])=>({gap:K,item:D,scrollTop:rt,viewport:b}))),mt),L(I(at(P(k),o,P(F,kr),P(z,xe),P(C,xe),P(Z),P(u),P(Q),P(ut),P(gt)),W(([,,,,,,,b])=>!b),B(([b,[D,K],rt,tt,X,lt,St,,ct,Vt])=>{const{column:Pt,row:ee}=rt,{height:he,width:He}=tt,{width:nn}=X;if(0===St&&(0===b||0===nn))return bn;if(0===He){const cn=Ke(Vt,b);return function(t){return{...Br,items:t}}(En(cn,cn+Math.max(St-1,0),lt))}const ge=io(nn,He,Pt);let jt,Mt;ct?0===D&&0===K&&St>0?(jt=0,Mt=St-1):(jt=ge*Ce((D+ee)/(he+ee)),Mt=ge*Rn((K+ee)/(he+ee))-1,Mt=Le(b-1,oe(Mt,ge-1)),jt=Le(Mt,oe(0,jt))):(jt=0,Mt=-1);const on=En(jt,Mt,lt),{bottom:rn,top:sn}=Bn(X,rt,tt,on),ln=Rn(b/ge);return{bottom:rn,itemHeight:he,items:on,itemWidth:He,offsetBottom:ln*he+(ln-1)*ee-rn,offsetTop:sn,top:sn}})),g),L(I(Z,W(b=>null!==b),B(b=>b.length)),k),L(I(at(C,z,g,F),W(([b,D,{items:K}])=>K.length>0&&0!==D.height&&0!==b.height),B(([b,D,{items:K},rt])=>{const{bottom:tt,top:X}=Bn(b,rt,D,K);return[X,tt]}),et(le)),e);const pt=v(!1);L(I(d,$(pt),B(([b,D])=>D||0!==b)),pt);const Kt=vt(I(at(g,k),W(([{items:b}])=>b.length>0),$(pt),W(([[b,D],K])=>{const tt=b.items[b.items.length-1].index===D-1;return(K||b.bottom>0&&b.itemHeight>0&&0===b.offsetBottom&&b.items.length===D)&&tt}),B(([[,b]])=>b-1),et())),Qt=vt(I(P(g),W(({items:b})=>b.length>0&&0===b[0].index),Bt(0),et())),Et=vt(I(P(g),$(Q),W(([{items:b},D])=>b.length>0&&!D),B(([{items:b}])=>({endIndex:b[b.length-1].index,startIndex:b[0].index})),et(An),zt(0)));L(Et,T.scrollSeekRangeChanged),L(I(O,$(C,z,k,F),B(([b,D,K,rt,tt])=>{const X=$n(b),{align:lt,behavior:St,offset:ct}=X;let Vt=X.index;"LAST"===Vt&&(Vt=rt-1),Vt=oe(0,Vt,Le(rt-1,Vt));let Pt=Ge(D,tt,K,Vt);return"end"===lt?Pt=Hn(Pt-D.height+K.height):"center"===lt&&(Pt=Hn(Pt-D.height/2+K.height/2)),void 0!==ct&&0!==ct&&(Pt+=ct),{behavior:St,top:Pt}})),c);const te=ht(I(g,B(b=>b.offsetBottom+b.bottom)),0);return L(I(H,B(b=>({height:b.visibleHeight,width:b.visibleWidth}))),C),{customScrollParent:h,data:Z,deviation:N,footerHeight:r,gap:F,headerHeight:s,increaseViewportBy:t,initialItemCount:u,itemDimensions:z,overscan:n,restoreStateFrom:q,scrollBy:i,scrollContainerState:l,scrollHeight:V,scrollTo:c,scrollToIndex:O,scrollTop:d,smoothScrollTargetReached:m,totalCount:k,useWindowScroll:f,viewportDimensions:C,windowScrollContainerState:a,windowScrollTo:S,windowViewportRect:H,...T,gridState:g,horizontalDirection:Ft,initialTopMostItemIndex:gt,totalListHeight:te,...p,endReached:Kt,propsReady:R,rangeChanged:Et,startReached:Qt,stateChanged:mt,stateRestoreInProgress:Q,...y}},ot(je,It,pe,Zn,At,qe,Gt));function io(t,e,n){return oe(1,Ce((t+n)/(Ce(e)+n)))}function Bn(t,e,n,o){const{height:r}=n;if(void 0===r||0===o.length)return{bottom:0,top:0};const s=Ge(t,e,n,o[0].index);return{bottom:Ge(t,e,n,o[o.length-1].index)+r,top:s}}function Ge(t,e,n,o){const r=io(t.width,n.width,e.column),s=Ce(o/r),i=s*n.height+oe(0,s-1)*e.row;return i>0?i+e.row:i}const Fr=j(([t,e])=>({...t,...e}),ot(Lr,j(()=>{const t=v(x=>`Item ${x}`),e=v({}),n=v(null),o=v("virtuoso-grid-item"),r=v("virtuoso-grid-list"),s=v(Xe),i=v("div"),l=v(Xt),c=(x,p=null)=>ht(I(e,B(T=>T[x]),et()),p),d=v(!1),m=v(!1);return L(P(m),d),{components:e,computeItemKey:s,context:n,FooterComponent:c("Footer"),HeaderComponent:c("Header"),headerFooterTag:i,itemClassName:o,ItemComponent:c("Item","div"),itemContent:t,listClassName:r,ListComponent:c("List","div"),readyStateChanged:d,reportReadyState:m,ScrollerComponent:c("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}}))),Vr=React.memo(function(){const e=st("gridState"),n=st("listClassName"),o=st("itemClassName"),r=st("itemContent"),s=st("computeItemKey"),i=st("isSeeking"),l=wt("scrollHeight"),c=st("ItemComponent"),d=st("ListComponent"),m=st("ScrollSeekPlaceholder"),x=st("context"),p=wt("itemDimensions"),T=wt("gap"),w=st("log"),R=st("stateRestoreInProgress"),h=wt("reportReadyState"),f=kt(React.useMemo(()=>a=>{const S=a.parentElement.parentElement.scrollHeight;l(S);const H=a.firstChild;if(null!==H){const{height:y,width:k}=H.getBoundingClientRect();p({height:y,width:k})}T({column:On("column-gap",getComputedStyle(a).columnGap,w),row:On("row-gap",getComputedStyle(a).rowGap,w)})},[l,p,T,w]),!0,!1);return to(()=>{e.itemHeight>0&&e.itemWidth>0&&h(!0)},[e]),R?null:jsxRuntimeExports.jsx(d,{className:n,ref:f,...nt(d,x),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(a=>{const S=s(a.index,a.data,x);return i?jsxRuntimeExports.jsx(m,{...nt(m,x),height:e.itemHeight,index:a.index,width:e.itemWidth},S):reactExports.createElement(c,{...nt(c,x),className:o,"data-index":a.index,key:S},r(a.index,a.data,x))})})}),Pr=React.memo(function(){const e=st("HeaderComponent"),n=wt("headerHeight"),o=st("headerFooterTag"),r=kt(React.useMemo(()=>i=>{n(Ht(i,"height"))},[n]),!0,!1),s=st("context");return null!=e?jsxRuntimeExports.jsx(o,{ref:r,children:jsxRuntimeExports.jsx(e,{...nt(e,s)})}):null}),Wr=React.memo(function(){const e=st("FooterComponent"),n=wt("footerHeight"),o=st("headerFooterTag"),r=kt(React.useMemo(()=>i=>{n(Ht(i,"height"))},[n]),!0,!1),s=st("context");return null!=e?jsxRuntimeExports.jsx(o,{ref:r,children:jsxRuntimeExports.jsx(e,{...nt(e,s)})}):null}),Gr=({children:t})=>{const e=React.useContext(Qn),n=wt("itemDimensions"),o=wt("viewportDimensions"),r=kt(React.useMemo(()=>s=>{o(s.getBoundingClientRect())},[o]),!0,!1);return React.useEffect(()=>{e&&(o({height:e.viewportHeight,width:e.viewportWidth}),n({height:e.itemHeight,width:e.itemWidth}))},[e,o,n]),jsxRuntimeExports.jsx("div",{ref:r,style:Jt(!1),children:t})},Ar=({children:t})=>{const e=React.useContext(Qn),n=wt("windowViewportRect"),o=wt("itemDimensions"),r=st("customScrollParent"),s=Ne(n,r,!1);return React.useEffect(()=>{e&&(o({height:e.itemHeight,width:e.itemWidth}),n({listHeight:0,offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:e.viewportWidth}))},[e,n,o]),jsxRuntimeExports.jsx("div",{ref:s,style:Jt(!1),children:t})},Mr=React.memo(function({...e}){const n=st("useWindowScroll"),o=st("customScrollParent"),r=o||n?Dr:Nr,s=o||n?Ar:Gr,i=st("context");return jsxRuntimeExports.jsx(r,{...e,...nt(r,i),children:jsxRuntimeExports.jsxs(s,{children:[jsxRuntimeExports.jsx(Pr,{}),jsxRuntimeExports.jsx(Vr,{}),jsxRuntimeExports.jsx(Wr,{})]})})}),{useEmitter:lo,useEmitterValue:st,usePublisher:wt}=Ye(Fr,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},Mr),Nr=Je({useEmitter:lo,useEmitterValue:st,usePublisher:wt}),Dr=Qe({useEmitter:lo,useEmitterValue:st,usePublisher:wt});function On(t,e,n){return"normal"!==e&&!0!==(null==e?void 0:e.endsWith("px"))&&n(`${t} was not resolved to pixel value correctly`,e,ft_WARN),"normal"===e?0:parseInt(e??"0",10)}export{jsxRuntimeExports as j,qr as q};
@@ -1 +0,0 @@
1
- import{aC as adjustChannel,s as setAccDescription,g as getAccDescription,q as getDiagramTitle,p as setDiagramTitle,a as getAccTitle,b as setAccTitle,_ as __name,C as getConfig,H as selectSvgElement,d as select,ar as at,U as isDark,V as lighten,W as darken,e as configureSvgSize,y as clear,E as cleanAndMerge,F as defaultConfig_default}from"./mermaid.core-DvwEdatr.js";import"./vendor-mdxeditor-Cy5Xg_90.js";import"./vendor-antd-BTBRwbax.js";import"./vendor-virtuoso-Bq6QMhgG.js";import"./vendor-codemirror-CPWlhuQ1.js";import"./vendor-markdown-DOJHsAxX.js";const transparentize=(color,amount)=>adjustChannel(color,"a",-amount);function intersectionArea(circles,stats){const intersectionPoints=function(circles){const ret=[];for(let i=0;i<circles.length;++i)for(let j=i+1;j<circles.length;++j){const intersect=circleCircleIntersection(circles[i],circles[j]);for(const p of intersect)p.parentIndex=[i,j],ret.push(p)}return ret}(circles),innerPoints=intersectionPoints.filter(p=>function(point,circles){return circles.every(circle=>distance(point,circle)<circle.radius+1e-10)}(p,circles));let arcArea=0,polygonArea=0;const arcs=[];if(innerPoints.length>1){const center=getCenter(innerPoints);for(let i=0;i<innerPoints.length;++i){const p=innerPoints[i];p.angle=Math.atan2(p.x-center.x,p.y-center.y)}innerPoints.sort((a,b)=>b.angle-a.angle);let p2=innerPoints[innerPoints.length-1];for(let i=0;i<innerPoints.length;++i){const p1=innerPoints[i];polygonArea+=(p2.x+p1.x)*(p1.y-p2.y);const midPoint={x:(p1.x+p2.x)/2,y:(p1.y+p2.y)/2};let arc=null;for(let j=0;j<p1.parentIndex.length;++j)if(p2.parentIndex.includes(p1.parentIndex[j])){const circle=circles[p1.parentIndex[j]],a1=Math.atan2(p1.x-circle.x,p1.y-circle.y),a2=Math.atan2(p2.x-circle.x,p2.y-circle.y);let angleDiff=a2-a1;angleDiff<0&&(angleDiff+=2*Math.PI);const a=a2-angleDiff/2;let width=distance(midPoint,{x:circle.x+circle.radius*Math.sin(a),y:circle.y+circle.radius*Math.cos(a)});width>2*circle.radius&&(width=2*circle.radius),(null==arc||arc.width>width)&&(arc={circle:circle,width:width,p1:p1,p2:p2,large:width>circle.radius,sweep:!0})}null!=arc&&(arcs.push(arc),arcArea+=circleArea(arc.circle.radius,arc.width),p2=p1)}}else{let smallest=circles[0];for(let i=1;i<circles.length;++i)circles[i].radius<smallest.radius&&(smallest=circles[i]);let disjoint=!1;for(let i=0;i<circles.length;++i)if(distance(circles[i],smallest)>Math.abs(smallest.radius-circles[i].radius)){disjoint=!0;break}disjoint?arcArea=polygonArea=0:(arcArea=smallest.radius*smallest.radius*Math.PI,arcs.push({circle:smallest,p1:{x:smallest.x,y:smallest.y+smallest.radius},p2:{x:smallest.x-1e-10,y:smallest.y+smallest.radius},width:2*smallest.radius,large:!0,sweep:!0}))}return polygonArea/=2,stats&&(stats.area=arcArea+polygonArea,stats.arcArea=arcArea,stats.polygonArea=polygonArea,stats.arcs=arcs,stats.innerPoints=innerPoints,stats.intersectionPoints=intersectionPoints),arcArea+polygonArea}function circleArea(r,width){return r*r*Math.acos(1-width/r)-(r-width)*Math.sqrt(width*(2*r-width))}function distance(p1,p2){return Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y))}function circleOverlap(r1,r2,d){if(d>=r1+r2)return 0;if(d<=Math.abs(r1-r2))return Math.PI*Math.min(r1,r2)*Math.min(r1,r2);const w2=r2-(d*d-r1*r1+r2*r2)/(2*d);return circleArea(r1,r1-(d*d-r2*r2+r1*r1)/(2*d))+circleArea(r2,w2)}function circleCircleIntersection(p1,p2){const d=distance(p1,p2),r1=p1.radius,r2=p2.radius;if(d>=r1+r2||d<=Math.abs(r1-r2))return[];const a=(r1*r1-r2*r2+d*d)/(2*d),h=Math.sqrt(r1*r1-a*a),x0=p1.x+a*(p2.x-p1.x)/d,y0=p1.y+a*(p2.y-p1.y)/d,rx=-(p2.y-p1.y)*(h/d),ry=-(p2.x-p1.x)*(h/d);return[{x:x0+rx,y:y0-ry},{x:x0-rx,y:y0+ry}]}function getCenter(points){const center={x:0,y:0};for(const point of points)center.x+=point.x,center.y+=point.y;return center.x/=points.length,center.y/=points.length,center}function zeros(x){const r=new Array(x);for(let i=0;i<x;++i)r[i]=0;return r}function zerosM(x,y){return zeros(x).map(()=>zeros(y))}function dot(a,b){let ret=0;for(let i=0;i<a.length;++i)ret+=a[i]*b[i];return ret}function norm2(a){return Math.sqrt(dot(a,a))}function scale(ret,value,c){for(let i=0;i<value.length;++i)ret[i]=value[i]*c}function weightedSum(ret,w1,v1,w2,v2){for(let j=0;j<ret.length;++j)ret[j]=w1*v1[j]+w2*v2[j]}function nelderMead(f,x0,parameters){const maxIterations=(parameters=parameters||{}).maxIterations||200*x0.length,nonZeroDelta=parameters.nonZeroDelta||1.05,zeroDelta=parameters.zeroDelta||.001,minErrorDelta=parameters.minErrorDelta||1e-6,minTolerance=parameters.minErrorDelta||1e-5,rho=void 0!==parameters.rho?parameters.rho:1,chi=void 0!==parameters.chi?parameters.chi:2,psi=void 0!==parameters.psi?parameters.psi:-.5,sigma=void 0!==parameters.sigma?parameters.sigma:.5;let maxDiff;const N=x0.length,simplex=new Array(N+1);simplex[0]=x0,simplex[0].fx=f(x0),simplex[0].id=0;for(let i=0;i<N;++i){const point=x0.slice();point[i]=point[i]?point[i]*nonZeroDelta:zeroDelta,simplex[i+1]=point,simplex[i+1].fx=f(point),simplex[i+1].id=i+1}function updateSimplex(value){for(let i=0;i<value.length;i++)simplex[N][i]=value[i];simplex[N].fx=value.fx}const sortOrder=(a,b)=>a.fx-b.fx,centroid=x0.slice(),reflected=x0.slice(),contracted=x0.slice(),expanded=x0.slice();for(let iteration=0;iteration<maxIterations;++iteration){if(simplex.sort(sortOrder),parameters.history){const sortedSimplex=simplex.map(x=>{const state=x.slice();return state.fx=x.fx,state.id=x.id,state});sortedSimplex.sort((a,b)=>a.id-b.id),parameters.history.push({x:simplex[0].slice(),fx:simplex[0].fx,simplex:sortedSimplex})}maxDiff=0;for(let i=0;i<N;++i)maxDiff=Math.max(maxDiff,Math.abs(simplex[0][i]-simplex[1][i]));if(Math.abs(simplex[0].fx-simplex[N].fx)<minErrorDelta&&maxDiff<minTolerance)break;for(let i=0;i<N;++i){centroid[i]=0;for(let j=0;j<N;++j)centroid[i]+=simplex[j][i];centroid[i]/=N}const worst=simplex[N];if(weightedSum(reflected,1+rho,centroid,-rho,worst),reflected.fx=f(reflected),reflected.fx<simplex[0].fx)weightedSum(expanded,1+chi,centroid,-chi,worst),expanded.fx=f(expanded),expanded.fx<reflected.fx?updateSimplex(expanded):updateSimplex(reflected);else if(reflected.fx>=simplex[N-1].fx){let shouldReduce=!1;if(reflected.fx>worst.fx?(weightedSum(contracted,1+psi,centroid,-psi,worst),contracted.fx=f(contracted),contracted.fx<worst.fx?updateSimplex(contracted):shouldReduce=!0):(weightedSum(contracted,1-psi*rho,centroid,psi*rho,worst),contracted.fx=f(contracted),contracted.fx<reflected.fx?updateSimplex(contracted):shouldReduce=!0),shouldReduce){if(sigma>=1)break;for(let i=1;i<simplex.length;++i)weightedSum(simplex[i],1-sigma,simplex[0],sigma,simplex[i]),simplex[i].fx=f(simplex[i])}}else updateSimplex(reflected)}return simplex.sort(sortOrder),{fx:simplex[0].fx,x:simplex[0]}}function wolfeLineSearch(f,pk,current,next,a,c1,c2){const phi0=current.fx,phiPrime0=dot(current.fxprime,pk);let phi=phi0,phi_old=phi0,phiPrime=phiPrime0,a0=0;function zoom(a_lo,a_high,phi_lo){for(let iteration=0;iteration<16;++iteration)if(a=(a_lo+a_high)/2,weightedSum(next.x,1,current.x,a,pk),phi=next.fx=f(next.x,next.fxprime),phiPrime=dot(next.fxprime,pk),phi>phi0+c1*a*phiPrime0||phi>=phi_lo)a_high=a;else{if(Math.abs(phiPrime)<=-c2*phiPrime0)return a;phiPrime*(a_high-a_lo)>=0&&(a_high=a_lo),a_lo=a,phi_lo=phi}return 0}a=a||1,c1=c1||1e-6,c2=c2||.1;for(let iteration=0;iteration<10;++iteration){if(weightedSum(next.x,1,current.x,a,pk),phi=next.fx=f(next.x,next.fxprime),phiPrime=dot(next.fxprime,pk),phi>phi0+c1*a*phiPrime0||iteration&&phi>=phi_old)return zoom(a0,a,phi_old);if(Math.abs(phiPrime)<=-c2*phiPrime0)return a;if(phiPrime>=0)return zoom(a,a0,phi);phi_old=phi,a0=a,a*=2}return a}function conjugateGradient(f,initial,params){let current={x:initial.slice(),fx:0,fxprime:initial.slice()},next={x:initial.slice(),fx:0,fxprime:initial.slice()};const yk=initial.slice();let pk,temp,maxIterations,a=1;maxIterations=(params=params||{}).maxIterations||20*initial.length,current.fx=f(current.x,current.fxprime),pk=current.fxprime.slice(),scale(pk,current.fxprime,-1);for(let i=0;i<maxIterations;++i){if(a=wolfeLineSearch(f,pk,current,next,a),params.history&&params.history.push({x:current.x.slice(),fx:current.fx,fxprime:current.fxprime.slice(),alpha:a}),a){weightedSum(yk,1,next.fxprime,-1,current.fxprime);const delta_k=dot(current.fxprime,current.fxprime);weightedSum(pk,Math.max(0,dot(yk,next.fxprime)/delta_k),pk,-1,next.fxprime),temp=current,current=next,next=temp}else scale(pk,current.fxprime,-1);if(norm2(current.fxprime)<=1e-5)break}return params.history&&params.history.push({x:current.x.slice(),fx:current.fx,fxprime:current.fxprime.slice(),alpha:a}),current}function venn(sets,parameters={}){parameters.maxIterations=parameters.maxIterations||500;const initialLayout=parameters.initialLayout||bestInitialLayout,loss=parameters.lossFunction||lossFunction,areas=function(areas,parameters={}){const distinct=parameters.distinct,r=areas.map(s=>Object.assign({},s));function toKey(arr){return arr.join(";")}if(distinct){const count=new Map;for(const area of r)for(let i=0;i<area.sets.length;i++){const si=String(area.sets[i]);count.set(si,area.size+(count.get(si)||0));for(let j=i+1;j<area.sets.length;j++){const sj=String(area.sets[j]),k1=`${si};${sj}`,k2=`${sj};${si}`;count.set(k1,area.size+(count.get(k1)||0)),count.set(k2,area.size+(count.get(k2)||0))}}for(const area of r)area.sets.length<3&&(area.size=count.get(toKey(area.sets)))}const ids=[],pairs=new Set;for(const area of r)if(1===area.sets.length)ids.push(area.sets[0]);else if(2===area.sets.length){const a=area.sets[0],b=area.sets[1];pairs.add(toKey(area.sets)),pairs.add(toKey([b,a]))}ids.sort((a,b)=>a===b?0:a<b?-1:1);for(let i=0;i<ids.length;++i){const a=ids[i];for(let j=i+1;j<ids.length;++j){const b=ids[j];pairs.has(toKey([a,b]))||r.push({sets:[a,b],size:0})}}return r}(sets,parameters),circles=initialLayout(areas,parameters),setids=Object.keys(circles),initial=[];for(const setid of setids)initial.push(circles[setid].x),initial.push(circles[setid].y);const positions=nelderMead(values=>{const current={};for(let i=0;i<setids.length;++i){const setid=setids[i];current[setid]={x:values[2*i],y:values[2*i+1],radius:circles[setid].radius}}return loss(current,areas)},initial,parameters).x;for(let i=0;i<setids.length;++i){const setid=setids[i];circles[setid].x=positions[2*i],circles[setid].y=positions[2*i+1]}return circles}const SMALL=1e-10;function distanceFromIntersectArea(r1,r2,overlap){return Math.min(r1,r2)*Math.min(r1,r2)*Math.PI<=overlap+SMALL?Math.abs(r1-r2):function(f,a,b,parameters){const maxIterations=(parameters=parameters||{}).maxIterations||100,tolerance=parameters.tolerance||1e-10,fA=f(a),fB=f(b);let delta=b-a;if(fA*fB>0)throw"Initial bisect points must have opposite signs";if(0===fA)return a;if(0===fB)return b;for(let i=0;i<maxIterations;++i){delta/=2;const mid=a+delta,fMid=f(mid);if(fMid*fA>=0&&(a=mid),Math.abs(delta)<tolerance||0===fMid)return mid}return a+delta}(distance2=>circleOverlap(r1,r2,distance2)-overlap,0,r1+r2)}function bestInitialLayout(areas,params={}){let initial=function(areas,params){const loss=params&&params.lossFunction?params.lossFunction:lossFunction,circles={},setOverlaps={};for(const area of areas)if(1===area.sets.length){const set=area.sets[0];circles[set]={x:1e10,y:1e10,rowid:circles.length,size:area.size,radius:Math.sqrt(area.size/Math.PI)},setOverlaps[set]=[]}areas=areas.filter(a=>2===a.sets.length);for(const current of areas){let weight=null!=current.weight?current.weight:1;const left=current.sets[0],right=current.sets[1];current.size+SMALL>=Math.min(circles[left].size,circles[right].size)&&(weight=0),setOverlaps[left].push({set:right,size:current.size,weight:weight}),setOverlaps[right].push({set:left,size:current.size,weight:weight})}const mostOverlapped=[];function sortOrder(a,b){return b.size-a.size}Object.keys(setOverlaps).forEach(set=>{let size=0;for(let i=0;i<setOverlaps[set].length;++i)size+=setOverlaps[set][i].size*setOverlaps[set][i].weight;mostOverlapped.push({set:set,size:size})}),mostOverlapped.sort(sortOrder);const positioned={};function isPositioned(element){return element.set in positioned}function positionSet(point,index){circles[index].x=point.x,circles[index].y=point.y,positioned[index]=!0}positionSet({x:0,y:0},mostOverlapped[0].set);for(let i=1;i<mostOverlapped.length;++i){const setIndex=mostOverlapped[i].set,overlap=setOverlaps[setIndex].filter(isPositioned),set=circles[setIndex];if(overlap.sort(sortOrder),0===overlap.length)throw"ERROR: missing pairwise overlap information";const points=[];for(var j=0;j<overlap.length;++j){const p1=circles[overlap[j].set],d1=distanceFromIntersectArea(set.radius,p1.radius,overlap[j].size);points.push({x:p1.x+d1,y:p1.y}),points.push({x:p1.x-d1,y:p1.y}),points.push({y:p1.y+d1,x:p1.x}),points.push({y:p1.y-d1,x:p1.x});for(let k=j+1;k<overlap.length;++k){const p2=circles[overlap[k].set],d2=distanceFromIntersectArea(set.radius,p2.radius,overlap[k].size),extraPoints=circleCircleIntersection({x:p1.x,y:p1.y,radius:d1},{x:p2.x,y:p2.y,radius:d2});points.push(...extraPoints)}}let bestLoss=1e50,bestPoint=points[0];for(const point of points){circles[setIndex].x=point.x,circles[setIndex].y=point.y;const localLoss=loss(circles,areas);localLoss<bestLoss&&(bestLoss=localLoss,bestPoint=point)}positionSet(bestPoint,setIndex)}return circles}(areas,params);const loss=params.lossFunction||lossFunction;if(areas.length>=8){const constrained=function(areas,params={}){const restarts=params.restarts||10,sets=[],setids={};for(const area of areas)1===area.sets.length&&(setids[area.sets[0]]=sets.length,sets.push(area));let{distances:distances,constraints:constraints}=function(areas,sets,setids){const distances=zerosM(sets.length,sets.length),constraints=zerosM(sets.length,sets.length);return areas.filter(x=>2===x.sets.length).forEach(current=>{const left=setids[current.sets[0]],right=setids[current.sets[1]],distance2=distanceFromIntersectArea(Math.sqrt(sets[left].size/Math.PI),Math.sqrt(sets[right].size/Math.PI),current.size);distances[left][right]=distances[right][left]=distance2;let c=0;current.size+1e-10>=Math.min(sets[left].size,sets[right].size)?c=1:current.size<=1e-10&&(c=-1),constraints[left][right]=constraints[right][left]=c}),{distances:distances,constraints:constraints}}(areas,sets,setids);const norm=norm2(distances.map(norm2))/distances.length;distances=distances.map(row=>row.map(value=>value/norm));const obj=(x,fxprime)=>function(x,fxprime,distances,constraints){for(let i=0;i<fxprime.length;++i)fxprime[i]=0;let loss=0;for(let i=0;i<distances.length;++i){const xi=x[2*i],yi=x[2*i+1];for(let j=i+1;j<distances.length;++j){const xj=x[2*j],yj=x[2*j+1],dij=distances[i][j],constraint=constraints[i][j],squaredDistance=(xj-xi)*(xj-xi)+(yj-yi)*(yj-yi),distance2=Math.sqrt(squaredDistance),delta=squaredDistance-dij*dij;constraint>0&&distance2<=dij||constraint<0&&distance2>=dij||(loss+=2*delta*delta,fxprime[2*i]+=4*delta*(xi-xj),fxprime[2*i+1]+=4*delta*(yi-yj),fxprime[2*j]+=4*delta*(xj-xi),fxprime[2*j+1]+=4*delta*(yj-yi))}}return loss}(x,fxprime,distances,constraints);let best=null;for(let i=0;i<restarts;++i){const current=conjugateGradient(obj,zeros(2*distances.length).map(Math.random),params);(!best||current.fx<best.fx)&&(best=current)}const positions=best.x,circles={};for(let i=0;i<sets.length;++i){const set=sets[i];circles[set.sets[0]]={x:positions[2*i]*norm,y:positions[2*i+1]*norm,radius:Math.sqrt(set.size/Math.PI)}}if(params.history)for(const h of params.history)scale(h.x,norm);return circles}(areas,params);loss(constrained,areas)+1e-8<loss(initial,areas)&&(initial=constrained)}return initial}function lossFunction(circles,overlaps){let output=0;for(const area of overlaps){if(1===area.sets.length)continue;let overlap;if(2===area.sets.length){const left=circles[area.sets[0]],right=circles[area.sets[1]];overlap=circleOverlap(left.radius,right.radius,distance(left,right))}else overlap=intersectionArea(area.sets.map(d=>circles[d]));output+=(null!=area.weight?area.weight:1)*(overlap-area.size)*(overlap-area.size)}return output}function logRatioLossFunction(circles,overlaps){let output=0;for(const area of overlaps){if(1===area.sets.length)continue;let overlap;if(2===area.sets.length){const left=circles[area.sets[0]],right=circles[area.sets[1]];overlap=circleOverlap(left.radius,right.radius,distance(left,right))}else overlap=intersectionArea(area.sets.map(d=>circles[d]));const weight=null!=area.weight?area.weight:1,differenceFromIdeal=Math.log((overlap+1)/(area.size+1));output+=weight*differenceFromIdeal*differenceFromIdeal}return output}function orientateCircles(circles,orientation,orientationOrder){if(null==orientationOrder?circles.sort((a,b)=>b.radius-a.radius):circles.sort(orientationOrder),circles.length>0){const largestX=circles[0].x,largestY=circles[0].y;for(const circle of circles)circle.x-=largestX,circle.y-=largestY}if(2===circles.length){distance(circles[0],circles[1])<Math.abs(circles[1].radius-circles[0].radius)&&(circles[1].x=circles[0].x+circles[0].radius-circles[1].radius-1e-10,circles[1].y=circles[0].y)}if(circles.length>1){const rotation=Math.atan2(circles[1].x,circles[1].y)-orientation,c=Math.cos(rotation),s=Math.sin(rotation);for(const circle of circles){const x=circle.x,y=circle.y;circle.x=c*x-s*y,circle.y=s*x+c*y}}if(circles.length>2){let angle=Math.atan2(circles[2].x,circles[2].y)-orientation;for(;angle<0;)angle+=2*Math.PI;for(;angle>2*Math.PI;)angle-=2*Math.PI;if(angle>Math.PI){const slope=circles[1].y/(1e-10+circles[1].x);for(const circle of circles){var d=(circle.x+slope*circle.y)/(1+slope*slope);circle.x=2*d-circle.x,circle.y=2*d*slope-circle.y}}}}function getBoundingBox(circles){const minMax=d=>({max:circles.reduce((acc,c)=>Math.max(acc,c[d]+c.radius),Number.NEGATIVE_INFINITY),min:circles.reduce((acc,c)=>Math.min(acc,c[d]-c.radius),Number.POSITIVE_INFINITY)});return{xRange:minMax("x"),yRange:minMax("y")}}function normalizeSolution(solution,orientation,orientationOrder){null==orientation&&(orientation=Math.PI/2);let circles=fromObjectNotation(solution).map(d=>Object.assign({},d));const clusters=function(circles){function find(circle){return circle.parent!==circle&&(circle.parent=find(circle.parent)),circle.parent}function union(x,y){const xRoot=find(x),yRoot=find(y);xRoot.parent=yRoot}circles.forEach(circle=>{circle.parent=circle});for(let i=0;i<circles.length;++i)for(let j=i+1;j<circles.length;++j){const maxDistance=circles[i].radius+circles[j].radius;distance(circles[i],circles[j])+1e-10<maxDistance&&union(circles[j],circles[i])}const disjointClusters=new Map;for(let i=0;i<circles.length;++i){const setid=find(circles[i]).parent.setid;disjointClusters.has(setid)||disjointClusters.set(setid,[]),disjointClusters.get(setid).push(circles[i])}return circles.forEach(circle=>{delete circle.parent}),Array.from(disjointClusters.values())}(circles);for(const cluster of clusters){orientateCircles(cluster,orientation,orientationOrder);const bounds=getBoundingBox(cluster);cluster.size=(bounds.xRange.max-bounds.xRange.min)*(bounds.yRange.max-bounds.yRange.min),cluster.bounds=bounds}clusters.sort((a,b)=>b.size-a.size),circles=clusters[0];let returnBounds=circles.bounds;const spacing=(returnBounds.xRange.max-returnBounds.xRange.min)/50;function addCluster(cluster,right,bottom){if(!cluster)return;const bounds=cluster.bounds;let xOffset,yOffset;if(right)xOffset=returnBounds.xRange.max-bounds.xRange.min+spacing;else{xOffset=returnBounds.xRange.max-bounds.xRange.max;const centreing=(bounds.xRange.max-bounds.xRange.min)/2-(returnBounds.xRange.max-returnBounds.xRange.min)/2;centreing<0&&(xOffset+=centreing)}if(bottom)yOffset=returnBounds.yRange.max-bounds.yRange.min+spacing;else{yOffset=returnBounds.yRange.max-bounds.yRange.max;const centreing=(bounds.yRange.max-bounds.yRange.min)/2-(returnBounds.yRange.max-returnBounds.yRange.min)/2;centreing<0&&(yOffset+=centreing)}for(const c of cluster)c.x+=xOffset,c.y+=yOffset,circles.push(c)}let index=1;for(;index<clusters.length;)addCluster(clusters[index],!0,!1),addCluster(clusters[index+1],!1,!0),addCluster(clusters[index+2],!0,!0),index+=3,returnBounds=getBoundingBox(circles);return toObjectNotation(circles)}function scaleSolution(solution,width,height,padding,scaleToFit){const circles=fromObjectNotation(solution);width-=2*padding,height-=2*padding;const{xRange:xRange,yRange:yRange}=getBoundingBox(circles);if(xRange.max===xRange.min||yRange.max===yRange.min)return console.log("not scaling solution: zero size detected"),solution;let xScaling,yScaling;if(scaleToFit){const toScaleDiameter=2*Math.sqrt(scaleToFit/Math.PI);xScaling=width/toScaleDiameter,yScaling=height/toScaleDiameter}else xScaling=width/(xRange.max-xRange.min),yScaling=height/(yRange.max-yRange.min);const scaling=Math.min(yScaling,xScaling),xOffset=(width-(xRange.max-xRange.min)*scaling)/2,yOffset=(height-(yRange.max-yRange.min)*scaling)/2;return toObjectNotation(circles.map(circle=>({radius:scaling*circle.radius,x:padding+xOffset+(circle.x-xRange.min)*scaling,y:padding+yOffset+(circle.y-yRange.min)*scaling,setid:circle.setid})))}function toObjectNotation(circles){const r={};for(const circle of circles)r[circle.setid]=circle;return r}function fromObjectNotation(solution){return Object.keys(solution).map(id=>Object.assign(solution[id],{setid:id}))}function VennDiagram(options={}){let useViewBox=!1,width=600,height=350,padding=15,duration=1e3,orientation=Math.PI/2,normalize=!0,scaleToFit=null,wrap=!0,styled=!0,fontSize=null,orientationOrder=null,distinct=!1,round=null,symmetricalTextCentre=!(!options||!options.symmetricalTextCentre)&&options.symmetricalTextCentre,colourMap={},colourScheme=options&&options.colourScheme?options.colourScheme:options&&options.colorScheme?options.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],colourIndex=0,colours=function(key){if(key in colourMap)return colourMap[key];var ret=colourMap[key]=colourScheme[colourIndex];return colourIndex+=1,colourIndex>=colourScheme.length&&(colourIndex=0),ret},layoutFunction=venn,loss=lossFunction;function chart(selection){let data=selection.datum();const toRemove=new Set;data.forEach(datum=>{0==datum.size&&1==datum.sets.length&&toRemove.add(datum.sets[0])}),data=data.filter(datum=>!datum.sets.some(set=>toRemove.has(set)));let circles={},textCentres={};if(data.length>0){let solution=layoutFunction(data,{lossFunction:loss,distinct:distinct});normalize&&(solution=normalizeSolution(solution,orientation,orientationOrder)),circles=scaleSolution(solution,width,height,padding,scaleToFit),textCentres=computeTextCentres(circles,data,symmetricalTextCentre)}const labels={};function label(d){return d.sets in labels?labels[d.sets]:1==d.sets.length?""+d.sets[0]:void 0}data.forEach(datum=>{datum.label&&(labels[datum.sets]=datum.label)}),selection.selectAll("svg").data([circles]).enter().append("svg");const svg=selection.select("svg");useViewBox?svg.attr("viewBox",`0 0 ${width} ${height}`):svg.attr("width",width).attr("height",height);const previous={};let hasPrevious=!1;function pathTween(d){return t=>intersectionAreaPath(d.sets.map(set=>{let start=previous[set],end=circles[set];return start||(start={x:width/2,y:height/2,radius:1}),end||(end={x:width/2,y:height/2,radius:1}),{x:start.x*(1-t)+end.x*t,y:start.y*(1-t)+end.y*t,radius:start.radius*(1-t)+end.radius*t}}),round)}svg.selectAll(".venn-area path").each(function(d){const path=this.getAttribute("d");1==d.sets.length&&path&&!distinct&&(hasPrevious=!0,previous[d.sets[0]]=function(path){const tokens=path.split(" ");return{x:Number.parseFloat(tokens[1]),y:Number.parseFloat(tokens[2]),radius:-Number.parseFloat(tokens[4])}}(path))});const nodes=svg.selectAll(".venn-area").data(data,d=>d.sets),enter=nodes.enter().append("g").attr("class",d=>`venn-area venn-${1==d.sets.length?"circle":"intersection"}${d.colour||d.color?" venn-coloured":""}`).attr("data-venn-sets",d=>d.sets.join("_")),enterPath=enter.append("path"),enterText=enter.append("text").attr("class","label").text(d=>label(d)).attr("text-anchor","middle").attr("dy",".35em").attr("x",width/2).attr("y",height/2);function asTransition(s){return"function"==typeof s.transition?s.transition("venn").duration(duration):s}styled&&(enterPath.style("fill-opacity","0").filter(d=>1==d.sets.length).style("fill",d=>d.colour?d.colour:d.color?d.color:colours(d.sets)).style("fill-opacity",".25"),enterText.style("fill",d=>d.colour||d.color?"#FFF":options.textFill?options.textFill:1==d.sets.length?colours(d.sets):"#444"));let update=selection;hasPrevious&&"function"==typeof update.transition?(update=asTransition(selection),update.selectAll("path").attrTween("d",pathTween)):update.selectAll("path").attr("d",d=>intersectionAreaPath(d.sets.map(set=>circles[set])),round);const updateText=update.selectAll("text").filter(d=>d.sets in textCentres).text(d=>label(d)).attr("x",d=>Math.floor(textCentres[d.sets].x)).attr("y",d=>Math.floor(textCentres[d.sets].y));wrap&&(hasPrevious?"on"in updateText?updateText.on("end",wrapText(circles,label)):updateText.each("end",wrapText(circles,label)):updateText.each(wrapText(circles,label)));const exit=asTransition(nodes.exit()).remove();"function"==typeof nodes.transition&&exit.selectAll("path").attrTween("d",pathTween);const exitText=exit.selectAll("text").attr("x",width/2).attr("y",height/2);return null!==fontSize&&(enterText.style("font-size","0px"),updateText.style("font-size",fontSize),exitText.style("font-size","0px")),{circles:circles,textCentres:textCentres,nodes:nodes,enter:enter,update:update,exit:exit}}return chart.wrap=function(_){return arguments.length?(wrap=_,chart):wrap},chart.useViewBox=function(){return useViewBox=!0,chart},chart.width=function(_){return arguments.length?(width=_,chart):width},chart.height=function(_){return arguments.length?(height=_,chart):height},chart.padding=function(_){return arguments.length?(padding=_,chart):padding},chart.distinct=function(_){return arguments.length?(distinct=_,chart):distinct},chart.colours=function(_){return arguments.length?(colours=_,chart):colours},chart.colors=function(_){return arguments.length?(colours=_,chart):colours},chart.fontSize=function(_){return arguments.length?(fontSize=_,chart):fontSize},chart.round=function(_){return arguments.length?(round=_,chart):round},chart.duration=function(_){return arguments.length?(duration=_,chart):duration},chart.layoutFunction=function(_){return arguments.length?(layoutFunction=_,chart):layoutFunction},chart.normalize=function(_){return arguments.length?(normalize=_,chart):normalize},chart.scaleToFit=function(_){return arguments.length?(scaleToFit=_,chart):scaleToFit},chart.styled=function(_){return arguments.length?(styled=_,chart):styled},chart.orientation=function(_){return arguments.length?(orientation=_,chart):orientation},chart.orientationOrder=function(_){return arguments.length?(orientationOrder=_,chart):orientationOrder},chart.lossFunction=function(_){return arguments.length?(loss="default"===_?lossFunction:"logRatio"===_?logRatioLossFunction:_,chart):loss},chart}function wrapText(circles,labeller){return function(data){const text=this,width=circles[data.sets[0]].radius||50,label=labeller(data)||"",words=label.split(/\s+/).reverse(),minChars=(label.length+words.length)/3;let word=words.pop(),line=[word],lineNumber=0;text.textContent=null;const tspans=[];function append(word2){const tspan2=text.ownerDocument.createElementNS(text.namespaceURI,"tspan");return tspan2.textContent=word2,tspans.push(tspan2),text.append(tspan2),tspan2}let tspan=append(word);for(;word=words.pop(),word;){line.push(word);const joined=line.join(" ");tspan.textContent=joined,joined.length>minChars&&tspan.getComputedTextLength()>width&&(line.pop(),tspan.textContent=line.join(" "),line=[word],tspan=append(word),lineNumber++)}const initial=.35-1.1*lineNumber/2,x=text.getAttribute("x"),y=text.getAttribute("y");tspans.forEach((t,i)=>{t.setAttribute("x",x),t.setAttribute("y",y),t.setAttribute("dy",`${initial+1.1*i}em`)})}}function circleMargin(current,interior,exterior){let margin=interior[0].radius-distance(interior[0],current);for(let i=1;i<interior.length;++i){const m=interior[i].radius-distance(interior[i],current);m<=margin&&(margin=m)}for(let i=0;i<exterior.length;++i){const m=distance(exterior[i],current)-exterior[i].radius;m<=margin&&(margin=m)}return margin}function computeTextCentre(interior,exterior,symmetricalTextCentre){const points=[];for(const c of interior)points.push({x:c.x,y:c.y}),points.push({x:c.x+c.radius/2,y:c.y}),points.push({x:c.x-c.radius/2,y:c.y}),points.push({x:c.x,y:c.y+c.radius/2}),points.push({x:c.x,y:c.y-c.radius/2});let initial=points[0],margin=circleMargin(points[0],interior,exterior);for(let i=1;i<points.length;++i){const m=circleMargin(points[i],interior,exterior);m>=margin&&(initial=points[i],margin=m)}const solution=nelderMead(p=>-1*circleMargin({x:p[0],y:p[1]},interior,exterior),[initial.x,initial.y],{maxIterations:500,minErrorDelta:1e-10}).x,ret={x:symmetricalTextCentre?0:solution[0],y:solution[1]};let valid=!0;for(const i of interior)if(distance(ret,i)>i.radius){valid=!1;break}for(const e of exterior)if(distance(ret,e)<e.radius){valid=!1;break}if(valid)return ret;if(1==interior.length)return{x:interior[0].x,y:interior[0].y};const areaStats={};return intersectionArea(interior,areaStats),0===areaStats.arcs.length?{x:0,y:-1e3,disjoint:!0}:1==areaStats.arcs.length?{x:areaStats.arcs[0].circle.x,y:areaStats.arcs[0].circle.y}:exterior.length?computeTextCentre(interior,[]):getCenter(areaStats.arcs.map(a=>a.p1))}function computeTextCentres(circles,areas,symmetricalTextCentre){const ret={},overlapped=function(circles){const ret={},circleids=Object.keys(circles);for(const circleid of circleids)ret[circleid]=[];for(let i=0;i<circleids.length;i++){const ci=circleids[i],a=circles[ci];for(let j=i+1;j<circleids.length;++j){const cj=circleids[j],b=circles[cj],d=distance(a,b);d+b.radius<=a.radius+1e-10?ret[cj].push(ci):d+a.radius<=b.radius+1e-10&&ret[ci].push(cj)}}return ret}(circles);for(let i=0;i<areas.length;++i){const area=areas[i].sets,areaids={},exclude={};for(let j=0;j<area.length;++j){areaids[area[j]]=!0;const overlaps=overlapped[area[j]];for(let k=0;k<overlaps.length;++k)exclude[overlaps[k]]=!0}const interior=[],exterior=[];for(let setid in circles)setid in areaids?interior.push(circles[setid]):setid in exclude||exterior.push(circles[setid]);const centre=computeTextCentre(interior,exterior,symmetricalTextCentre);ret[area]=centre,centre.disjoint&&areas[i].size>0&&console.log("WARNING: area "+area+" not represented on screen")}return ret}function intersectionAreaArcs(circles){if(0===circles.length)return[];const stats={};return intersectionArea(circles,stats),stats.arcs}function arcsToPath(arcs,round){if(0===arcs.length)return"M 0 0";const rFactor=Math.pow(10,round||0),r=null!=round?v=>Math.round(v*rFactor)/rFactor:v=>v;if(1==arcs.length){const circle=arcs[0].circle;return function(x,y,r){const ret=[];return ret.push("\nM",x,y),ret.push("\nm",-r,0),ret.push("\na",r,r,0,1,0,2*r,0),ret.push("\na",r,r,0,1,0,2*-r,0),ret.join(" ")}(r(circle.x),r(circle.y),r(circle.radius))}const ret=["\nM",r(arcs[0].p2.x),r(arcs[0].p2.y)];for(const arc of arcs){const radius=r(arc.circle.radius);ret.push("\nA",radius,radius,0,arc.large?1:0,arc.sweep?1:0,r(arc.p1.x),r(arc.p1.y))}return ret.join(" ")}function intersectionAreaPath(circles,round){return arcsToPath(intersectionAreaArcs(circles),round)}var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[5,8],$V1=[7,8,11,12,17,19,22,24],$V2=[1,17],$V3=[1,18],$V4=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],$V5=[1,31],$V6=[1,39],$V7=[7,8,11,12,17,19,22,24,27],$V8=[1,57],$V9=[1,56],$Va=[1,58],$Vb=[1,59],$Vc=[1,60],$Vd=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return $$[$0-1];case 2:case 3:case 4:case 6:this.$=[];break;case 5:case 35:$$[$0-1].push($$[$0]),this.$=$$[$0-1];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:case 43:case 44:this.$=$$[$0];break;case 8:yy.setDiagramTitle($$[$0].substr(6)),this.$=$$[$0].substr(6);break;case 9:yy.addSubsetData([$$[$0]],void 0,void 0),yy.setIndentMode&&yy.setIndentMode(!0);break;case 10:yy.addSubsetData([$$[$0-1]],$$[$0],void 0),yy.setIndentMode&&yy.setIndentMode(!0);break;case 11:yy.addSubsetData([$$[$0-2]],void 0,parseFloat($$[$0])),yy.setIndentMode&&yy.setIndentMode(!0);break;case 12:yy.addSubsetData([$$[$0-3]],$$[$0-2],parseFloat($$[$0])),yy.setIndentMode&&yy.setIndentMode(!0);break;case 13:if($$[$0].length<2)throw new Error("union requires multiple identifiers");yy.validateUnionIdentifiers&&yy.validateUnionIdentifiers($$[$0]),yy.addSubsetData($$[$0],void 0,void 0),yy.setIndentMode&&yy.setIndentMode(!0);break;case 14:if($$[$0-1].length<2)throw new Error("union requires multiple identifiers");yy.validateUnionIdentifiers&&yy.validateUnionIdentifiers($$[$0-1]),yy.addSubsetData($$[$0-1],$$[$0],void 0),yy.setIndentMode&&yy.setIndentMode(!0);break;case 15:if($$[$0-2].length<2)throw new Error("union requires multiple identifiers");yy.validateUnionIdentifiers&&yy.validateUnionIdentifiers($$[$0-2]),yy.addSubsetData($$[$0-2],void 0,parseFloat($$[$0])),yy.setIndentMode&&yy.setIndentMode(!0);break;case 16:if($$[$0-3].length<2)throw new Error("union requires multiple identifiers");yy.validateUnionIdentifiers&&yy.validateUnionIdentifiers($$[$0-3]),yy.addSubsetData($$[$0-3],$$[$0-2],parseFloat($$[$0])),yy.setIndentMode&&yy.setIndentMode(!0);break;case 17:case 18:case 19:yy.addTextData($$[$0-1],$$[$0],void 0);break;case 20:case 21:yy.addTextData($$[$0-2],$$[$0-1],$$[$0]);break;case 23:yy.addStyleData($$[$0-1],$$[$0]);break;case 24:case 25:case 26:if(!(cs=yy.getCurrentSets()))throw new Error("text requires set");yy.addTextData(cs,$$[$0],void 0);break;case 27:case 28:var cs;if(!(cs=yy.getCurrentSets()))throw new Error("text requires set");yy.addTextData(cs,$$[$0-1],$$[$0]);break;case 29:case 41:case 34:this.$=[$$[$0]];break;case 30:case 42:this.$=[...$$[$0-2],$$[$0]];break;case 31:this.$=[$$[$0-2],$$[$0]];break;case 33:this.$=$$[$0].join(" ")}},"anonymous"),table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},o($V1,[2,4],{6:5}),o($V0,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},o($V1,[2,5]),o($V1,[2,6]),o($V1,[2,7]),o($V1,[2,8]),{13:16,20:$V2,21:$V3},{13:20,18:19,20:$V2,21:$V3},{13:20,18:21,20:$V2,21:$V3},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:$V2,21:$V3},o($V1,[2,9],{14:[1,27],15:[1,28]}),o($V4,[2,43]),o($V4,[2,44]),o($V1,[2,13],{14:[1,29],15:[1,30],27:$V5}),o($V4,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:$V5},o($V1,[2,22]),o($V1,[2,24],{14:[1,35]}),o($V1,[2,25],{14:[1,36]}),o($V1,[2,26]),{20:$V6,25:37,26:38,27:$V5},o($V1,[2,10],{15:[1,40]}),{16:[1,41]},o($V1,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:$V2,21:$V3},o($V1,[2,17],{14:[1,45]}),o($V1,[2,18],{14:[1,46]}),o($V1,[2,19]),o($V1,[2,27]),o($V1,[2,28]),o($V1,[2,23],{27:[1,47]}),o($V7,[2,29]),{15:[1,48]},{16:[1,49]},o($V1,[2,11]),{16:[1,50]},o($V1,[2,15]),o($V4,[2,42]),o($V1,[2,20]),o($V1,[2,21]),{20:$V6,26:51},{16:$V8,20:$V9,21:[1,53],28:52,29:54,30:55,31:$Va,32:$Vb,33:$Vc},o($V1,[2,12]),o($V1,[2,16]),o($V7,[2,30]),o($V7,[2,31]),o($V7,[2,32]),o($V7,[2,33],{30:61,16:$V8,20:$V9,31:$Va,32:$Vb,33:$Vc}),o($Vd,[2,34]),o($Vd,[2,36]),o($Vd,[2,37]),o($Vd,[2,38]),o($Vd,[2,39]),o($Vd,[2,40]),o($Vd,[2,35])],defaultActions:{6:[2,1]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 1:case 2:case 4:case 7:case 8:break;case 3:if(yy.getIndentMode&&yy.getIndentMode())return yy.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 5:yy.setIndentMode&&yy.setIndentMode(!1),this.begin("INITIAL"),this.unput(yy_.yytext);break;case 6:return this.begin("bol"),8;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(!yy.consumeIndentText)return 19;yy.consumeIndentText=!1;break;case 15:return 24;case 16:return yy_.yytext=yy_.yytext.slice(2,-2),14;case 17:return yy_.yytext=yy_.yytext.slice(1,-1).trim(),14;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var currentSets,venn_default=parser,subsets=[],textNodes=[],styleEntries=[],knownSets=new Set,indentMode=!1,addSubsetData=__name((identifierList,label,size)=>{const sets=normalizeIdentifierList(identifierList).sort(),resolvedSize=size??10/Math.pow(identifierList.length,2);currentSets=sets,1===sets.length&&knownSets.add(sets[0]),subsets.push({sets:sets,size:resolvedSize,label:label?normalizeText(label):void 0})},"addSubsetData"),getSubsetData=__name(()=>subsets,"getSubsetData"),normalizeText=__name(text=>{const trimmed=text.trim();return trimmed.length>=2&&trimmed.startsWith('"')&&trimmed.endsWith('"')?trimmed.slice(1,-1):trimmed},"normalizeText"),normalizeStyleValue=__name(value=>value?normalizeText(value):value,"normalizeStyleValue"),addTextData=__name((identifierList,id,label)=>{const normalizedId=normalizeText(id);textNodes.push({sets:normalizeIdentifierList(identifierList).sort(),id:normalizedId,label:label?normalizeText(label):void 0})},"addTextData"),addStyleData=__name((identifierList,data)=>{const targets=normalizeIdentifierList(identifierList).sort(),styles={};for(const[key,value]of data)styles[key]=normalizeStyleValue(value)??value;styleEntries.push({targets:targets,styles:styles})},"addStyleData"),getStyleData=__name(()=>styleEntries,"getStyleData"),normalizeIdentifierList=__name(identifierList=>identifierList.map(identifier=>normalizeText(identifier)),"normalizeIdentifierList"),validateUnionIdentifiers=__name(identifierList=>{const unknown=normalizeIdentifierList(identifierList).filter(identifier=>!knownSets.has(identifier));if(unknown.length>0)throw new Error(`unknown set identifier: ${unknown.join(", ")}`)},"validateUnionIdentifiers"),getTextData=__name(()=>textNodes,"getTextData"),getCurrentSets=__name(()=>currentSets,"getCurrentSets"),getIndentMode=__name(()=>indentMode,"getIndentMode"),setIndentMode=__name(enabled=>{indentMode=enabled},"setIndentMode"),DEFAULT_VENN_CONFIG=defaultConfig_default.venn;function getConfig2(){return cleanAndMerge(DEFAULT_VENN_CONFIG,getConfig().venn)}__name(getConfig2,"getConfig");var db={getConfig:getConfig2,clear:__name(()=>{clear(),subsets.length=0,textNodes.length=0,styleEntries.length=0,knownSets.clear(),currentSets=void 0,indentMode=!1},"customClear"),setAccTitle:setAccTitle,getAccTitle:getAccTitle,setDiagramTitle:setDiagramTitle,getDiagramTitle:getDiagramTitle,getAccDescription:getAccDescription,setAccDescription:setAccDescription,addSubsetData:addSubsetData,getSubsetData:getSubsetData,addTextData:addTextData,addStyleData:addStyleData,validateUnionIdentifiers:validateUnionIdentifiers,getTextData:getTextData,getStyleData:getStyleData,getCurrentSets:getCurrentSets,getIndentMode:getIndentMode,setIndentMode:setIndentMode},styles_default=__name(options=>`\n .venn-title {\n font-size: 32px;\n fill: ${options.vennTitleTextColor};\n font-family: ${options.fontFamily};\n }\n\n .venn-circle text {\n font-size: 48px;\n font-family: ${options.fontFamily};\n }\n\n .venn-intersection text {\n font-size: 48px;\n fill: ${options.vennSetTextColor};\n font-family: ${options.fontFamily};\n }\n\n .venn-text-node {\n font-family: ${options.fontFamily};\n color: ${options.vennSetTextColor};\n }\n`,"getStyles");function buildStyleByKey(styleData){const map=new Map;for(const entry of styleData){const key=entry.targets.join("|"),existing=map.get(key);existing?Object.assign(existing,entry.styles):map.set(key,{...entry.styles})}return map}__name(buildStyleByKey,"buildStyleByKey");var draw=__name((_text,id,_version,diagObj)=>{var _a,_b,_c;const db2=diagObj.db,config=null==(_a=db2.getConfig)?void 0:_a.call(db2),{themeVariables:themeVariables,look:look,handDrawnSeed:handDrawnSeed}=getConfig(),isHandDrawn="handDrawn"===look,themeColors=[themeVariables.venn1,themeVariables.venn2,themeVariables.venn3,themeVariables.venn4,themeVariables.venn5,themeVariables.venn6,themeVariables.venn7,themeVariables.venn8].filter(Boolean),title=null==(_b=db2.getDiagramTitle)?void 0:_b.call(db2),sets=db2.getSubsetData(),textNodes2=db2.getTextData(),styleByKey=buildStyleByKey(db2.getStyleData()),svgWidth=(null==config?void 0:config.width)??800,svgHeight=(null==config?void 0:config.height)??450,scale2=svgWidth/1600,titleHeight=title?48*scale2:0,defaultTextColor=themeVariables.primaryTextColor??themeVariables.textColor,svg=selectSvgElement(id);svg.attr("viewBox",`0 0 ${svgWidth} ${svgHeight}`),title&&svg.append("text").text(title).attr("class","venn-title").attr("font-size",32*scale2+"px").attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*scale2).style("fill",themeVariables.vennTitleTextColor||themeVariables.titleColor);const dummyD3root=select(document.createElement("div")),vennDiagram=VennDiagram().width(svgWidth).height(svgHeight-titleHeight);dummyD3root.datum(sets).call(vennDiagram);const roughSvg=isHandDrawn?at.svg(dummyD3root.select("svg").node()):void 0,layoutAreas=function(data,options={}){const{lossFunction:loss,layoutFunction:layout2=venn,normalize:normalize=!0,orientation:orientation=Math.PI/2,orientationOrder:orientationOrder,width:width=600,height:height=350,padding:padding=15,scaleToFit:scaleToFit=!1,symmetricalTextCentre:symmetricalTextCentre=!1,distinct:distinct,round:round=2}=options;let solution=layout2(data,{lossFunction:"default"!==loss&&loss?"logRatio"===loss?logRatioLossFunction:loss:lossFunction,distinct:distinct});normalize&&(solution=normalizeSolution(solution,orientation,orientationOrder));const circles=scaleSolution(solution,width,height,padding,scaleToFit),textCentres=computeTextCentres(circles,data,symmetricalTextCentre),circleLookup=new Map(Object.keys(circles).map(set=>[set,{set:set,x:circles[set].x,y:circles[set].y,radius:circles[set].radius}])),helpers=data.map(area=>{const circles2=area.sets.map(s=>circleLookup.get(s)),arcs=intersectionAreaArcs(circles2);return{circles:circles2,arcs:arcs,path:arcsToPath(arcs,round),area:area,has:new Set(area.sets)}});function genDistinctPath(sets){let r="";for(const e of helpers)e.has.size>sets.length&&sets.every(s=>e.has.has(s))&&(r+=" "+e.path);return r}return helpers.map(({circles:circles2,arcs:arcs,path:path,area:area})=>({data:area,text:textCentres[area.sets],circles:circles2,arcs:arcs,path:path,distinctPath:path+genDistinctPath(area.sets)}))}(sets,{width:svgWidth,height:svgHeight-titleHeight,padding:(null==config?void 0:config.padding)??15}),layoutByKey=new Map;for(const area of layoutAreas){const key=stableSetsKey([...area.data.sets].sort());layoutByKey.set(key,area)}textNodes2.length>0&&renderTextNodes(config,layoutByKey,dummyD3root,textNodes2,scale2,styleByKey);const themeDark=isDark(themeVariables.background||"#f4f4f4");dummyD3root.selectAll(".venn-circle").each(function(d,i){var _a2;const group=select(this),setsKey=stableSetsKey([...d.sets].sort()),customStyle=styleByKey.get(setsKey),baseColor=(null==customStyle?void 0:customStyle.fill)||themeColors[i%themeColors.length]||themeVariables.primaryColor;group.classed("venn-set-"+i%8,!0);const fillOpacity=(null==customStyle?void 0:customStyle["fill-opacity"])??.1,strokeColor=(null==customStyle?void 0:customStyle.stroke)||baseColor,strokeWidthVal=(null==customStyle?void 0:customStyle["stroke-width"])||""+5*scale2;if(isHandDrawn&&roughSvg){const layoutArea=layoutByKey.get(setsKey);if(layoutArea&&layoutArea.circles.length>0){const c=layoutArea.circles[0],roughNode=roughSvg.circle(c.x,c.y,2*c.radius,{roughness:.7,seed:handDrawnSeed,fill:transparentize(baseColor,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:60*i-41,stroke:strokeColor,strokeWidth:parseFloat(String(strokeWidthVal))});group.select("path").remove(),null==(_a2=group.node())||_a2.insertBefore(roughNode,group.select("text").node())}}else group.select("path").style("fill",baseColor).style("fill-opacity",fillOpacity).style("stroke",strokeColor).style("stroke-width",strokeWidthVal).style("stroke-opacity",.95);const textColor=(null==customStyle?void 0:customStyle.color)||(themeDark?lighten(baseColor,30):darken(baseColor,30));group.select("text").style("font-size",48*scale2+"px").style("fill",textColor)}),isHandDrawn&&roughSvg?dummyD3root.selectAll(".venn-intersection").each(function(d){var _a2;const group=select(this),setsKey=stableSetsKey([...d.sets].sort()),customStyle=styleByKey.get(setsKey),customFill=null==customStyle?void 0:customStyle.fill;if(customFill){const pathEl=group.select("path"),pathD=pathEl.attr("d");if(pathD){const roughNode=roughSvg.path(pathD,{roughness:.7,seed:handDrawnSeed,fill:transparentize(customFill,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),existingPath=pathEl.node();null==(_a2=null==existingPath?void 0:existingPath.parentNode)||_a2.insertBefore(roughNode,existingPath),pathEl.remove()}}else group.select("path").style("fill-opacity",0);group.select("text").style("font-size",48*scale2+"px").style("fill",(null==customStyle?void 0:customStyle.color)??themeVariables.vennSetTextColor??defaultTextColor)}):(dummyD3root.selectAll(".venn-intersection text").style("font-size",48*scale2+"px").style("fill",e=>{var _a2;const setsKey=stableSetsKey([...e.sets].sort());return(null==(_a2=styleByKey.get(setsKey))?void 0:_a2.color)??themeVariables.vennSetTextColor??defaultTextColor}),dummyD3root.selectAll(".venn-intersection path").style("fill-opacity",e=>{var _a2;const setsKey=stableSetsKey([...e.sets].sort());return(null==(_a2=styleByKey.get(setsKey))?void 0:_a2.fill)?1:0}).style("fill",e=>{var _a2;const setsKey=stableSetsKey([...e.sets].sort());return(null==(_a2=styleByKey.get(setsKey))?void 0:_a2.fill)??"transparent"}));const vennGroup=svg.append("g").attr("transform",`translate(0, ${titleHeight})`),dummySvg=dummyD3root.select("svg").node();if(dummySvg&&"childNodes"in dummySvg)for(const child of[...dummySvg.childNodes])null==(_c=vennGroup.node())||_c.appendChild(child);configureSvgSize(svg,svgHeight,svgWidth,(null==config?void 0:config.useMaxWidth)??!0)},"draw");function stableSetsKey(setIds){return setIds.join("|")}function renderTextNodes(config,layoutByKey,dummyD3root,textNodes2,scale2,styleByKey){var _a;const useDebugLayout=(null==config?void 0:config.useDebugLayout)??!1,textGroup=dummyD3root.select("svg").append("g").attr("class","venn-text-nodes"),nodesByArea=new Map;for(const node of textNodes2){const key=stableSetsKey(node.sets),existing=nodesByArea.get(key);existing?existing.push(node):nodesByArea.set(key,[node])}for(const[key,nodes]of nodesByArea.entries()){const area=layoutByKey.get(key);if(!(null==area?void 0:area.text))continue;const centerX=area.text.x,centerY=area.text.y,minCircleRadius=Math.min(...area.circles.map(c=>c.radius)),innerRadiusRaw=Math.min(...area.circles.map(c=>c.radius-Math.hypot(centerX-c.x,centerY-c.y)));let innerRadius=Number.isFinite(innerRadiusRaw)?Math.max(0,innerRadiusRaw):0;0===innerRadius&&Number.isFinite(minCircleRadius)&&(innerRadius=.6*minCircleRadius);const areaGroup=textGroup.append("g").attr("class","venn-text-area").attr("font-size",40*scale2+"px");useDebugLayout&&areaGroup.append("circle").attr("class","venn-text-debug-circle").attr("cx",centerX).attr("cy",centerY).attr("r",innerRadius).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*scale2).attr("stroke-dasharray",`${6*scale2} ${4*scale2}`);const innerWidth=Math.max(80*scale2,2*innerRadius*.95),innerHeight=Math.max(60*scale2,2*innerRadius*.95),labelOffset=(area.data.label&&area.data.label.length>0?Math.min(32*scale2,.25*innerRadius):0)+(nodes.length<=2?30*scale2:0),startX=centerX-innerWidth/2,startY=centerY-innerHeight/2+labelOffset,cols=Math.max(1,Math.ceil(Math.sqrt(nodes.length))),cellWidth=innerWidth/cols,cellHeight=innerHeight/Math.max(1,Math.ceil(nodes.length/cols));for(const[i,node]of nodes.entries()){const col=i%cols,row=Math.floor(i/cols),x=startX+cellWidth*(col+.5),y=startY+cellHeight*(row+.5);useDebugLayout&&areaGroup.append("rect").attr("class","venn-text-debug-cell").attr("x",startX+cellWidth*col).attr("y",startY+cellHeight*row).attr("width",cellWidth).attr("height",cellHeight).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*scale2).attr("stroke-dasharray",`${4*scale2} ${3*scale2}`);const boxWidth=.9*cellWidth,boxHeight=.9*cellHeight,container=areaGroup.append("foreignObject").attr("class","venn-text-node-fo").attr("width",boxWidth).attr("height",boxHeight).attr("x",x-boxWidth/2).attr("y",y-boxHeight/2).attr("overflow","visible"),textColor=null==(_a=styleByKey.get(node.id))?void 0:_a.color,text=container.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(node.label??node.id);textColor&&text.style("color",textColor)}}}__name(stableSetsKey,"stableSetsKey"),__name(renderTextNodes,"renderTextNodes");var diagram={parser:venn_default,db:db,renderer:{draw:draw},styles:styles_default};export{diagram};
@@ -1 +0,0 @@
1
- var _a;import{s as setAccDescription,g as getAccDescription,q as getDiagramTitle,p as setDiagramTitle,a as getAccTitle,b as setAccTitle,_ as __name,l as log,H as selectSvgElement,e as configureSvgSize,y as clear,c as getConfig2$1,i as sanitizeText}from"./mermaid.core-DvwEdatr.js";import{p as populateCommonDb}from"./chunk-4BX2VUAB-DnFoMzQG.js";import{p as parse}from"./wardley-RL74JXVD-BFcIn2-Q.js";import"./vendor-mdxeditor-Cy5Xg_90.js";import"./vendor-antd-BTBRwbax.js";import"./vendor-virtuoso-Bq6QMhgG.js";import"./vendor-codemirror-CPWlhuQ1.js";import"./vendor-markdown-DOJHsAxX.js";import"./min-DFik8k4L.js";import"./_baseUniq-C2FCldN4.js";var toPercent=__name((value,context)=>{const normalized=value<=1?100*value:value;if(normalized<0||normalized>100)throw new Error(`${context} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${value}`);return normalized},"toPercent"),toCoordinates=__name((visibility,evolution,context)=>({x:toPercent(evolution,`${context} evolution`),y:toPercent(visibility,`${context} visibility`)}),"toCoordinates"),getFlowFromPort=__name(port=>{if(port)return"+<>"===port?"bidirectional":"+<"===port?"backward":"+>"===port?"forward":void 0},"getFlowFromPort"),extractFlowFromArrow=__name(arrow=>{if(!(null==arrow?void 0:arrow.startsWith("+")))return{};const labelMatch=/^\+'([^']*)'/.exec(arrow),flowLabel=null==labelMatch?void 0:labelMatch[1];return arrow.includes("<>")?{flow:"bidirectional",label:flowLabel}:arrow.includes("<")?{flow:"backward",label:flowLabel}:arrow.includes(">")?{flow:"forward",label:flowLabel}:{label:flowLabel}},"extractFlowFromArrow"),populateDb=__name((ast,db)=>{if(populateCommonDb(ast,db),ast.size&&db.setSize(ast.size.width,ast.size.height),ast.evolution){const stages=ast.evolution.stages.map(stage=>stage.secondName?`${stage.name.trim()} / ${stage.secondName.trim()}`:stage.name.trim()),stageBoundaries=ast.evolution.stages.filter(stage=>void 0!==stage.boundary).map(stage=>stage.boundary);db.updateAxes({stages:stages,stageBoundaries:stageBoundaries})}if(ast.anchors.forEach(anchor=>{const coords=toCoordinates(anchor.visibility,anchor.evolution,`Anchor "${anchor.name}"`);db.addNode(anchor.name,anchor.name,coords.x,coords.y,"anchor")}),ast.components.forEach(component=>{var _a2;const coords=toCoordinates(component.visibility,component.evolution,`Component "${component.name}"`),labelOffsetX=component.label?(component.label.negX?-1:1)*component.label.offsetX:void 0,labelOffsetY=component.label?(component.label.negY?-1:1)*component.label.offsetY:void 0,sourceStrategy=null==(_a2=component.decorator)?void 0:_a2.strategy;db.addNode(component.name,component.name,coords.x,coords.y,"component",labelOffsetX,labelOffsetY,component.inertia,sourceStrategy)}),ast.notes.forEach(note=>{const coords=toCoordinates(note.visibility,note.evolution,`Note "${note.text}"`);db.addNote(note.text,coords.x,coords.y)}),ast.pipelines.forEach(pipeline=>{const parentNode=db.getNode(pipeline.parent);if(!parentNode||"number"!=typeof parentNode.y)throw new Error(`Pipeline "${pipeline.parent}" must reference an existing component with coordinates.`);const parentY=parentNode.y;db.startPipeline(pipeline.parent),pipeline.components.forEach(component=>{const componentId=`${pipeline.parent}_${component.name}`,labelOffsetX=component.label?(component.label.negX?-1:1)*component.label.offsetX:void 0,labelOffsetY=component.label?(component.label.negY?-1:1)*component.label.offsetY:void 0,x=toPercent(component.evolution,`Pipeline component "${component.name}" evolution`);db.addNode(componentId,component.name,x,parentY,"pipeline-component",labelOffsetX,labelOffsetY),db.addPipelineComponent(pipeline.parent,componentId)})}),ast.links.forEach(link=>{const isDashed=!!link.arrow&&(link.arrow.includes("-.->")||link.arrow.includes(".-."));let flow=getFlowFromPort(link.fromPort)??getFlowFromPort(link.toPort);const{flow:arrowFlow,label:flowLabel}=extractFlowFromArrow(link.arrow);!flow&&arrowFlow&&(flow=arrowFlow);const annotation=link.linkLabel,label=flowLabel??annotation;db.addLink(link.from,link.to,isDashed,label,flow)}),ast.evolves.forEach(evolve=>{const node=db.getNode(evolve.component);if(void 0!==(null==node?void 0:node.y)){const target=toPercent(evolve.target,`Evolve target for "${evolve.component}"`);db.addTrend(evolve.component,target,node.y)}}),ast.annotations.length>0){const annotationsBox=ast.annotations[0],coords=toCoordinates(annotationsBox.x,annotationsBox.y,"Annotations box");db.setAnnotationsBox(coords.x,coords.y)}ast.annotation.forEach(annotation=>{const coords=toCoordinates(annotation.x,annotation.y,`Annotation ${annotation.number}`);db.addAnnotation(annotation.number,[{x:coords.x,y:coords.y}],annotation.text)}),ast.accelerators.forEach(accelerator=>{const coords=toCoordinates(accelerator.x,accelerator.y,`Accelerator "${accelerator.name}"`);db.addAccelerator(accelerator.name,coords.x,coords.y)}),ast.deaccelerators.forEach(deaccelerator=>{const coords=toCoordinates(deaccelerator.x,deaccelerator.y,`Deaccelerator "${deaccelerator.name}"`);db.addDeaccelerator(deaccelerator.name,coords.x,coords.y)})},"populateDb"),parser={parser:{yy:void 0},parse:__name(async input=>{var _a2;const ast=await parse("wardley",input);log.debug(ast);const db=null==(_a2=parser.parser)?void 0:_a2.yy;if(!db||"function"!=typeof db.addNode)throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");populateDb(ast,db)},"parse")},builder=new(__name(_a=class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}addNode(node){const existing=this.nodes.get(node.id)??{id:node.id,label:node.label},merged={...existing,...node,className:node.className??existing.className,labelOffsetX:node.labelOffsetX??existing.labelOffsetX,labelOffsetY:node.labelOffsetY??existing.labelOffsetY};this.nodes.set(node.id,merged)}addLink(link){this.links.push(link)}addTrend(trend){this.trends.set(trend.nodeId,trend)}startPipeline(nodeId){this.pipelines.set(nodeId,{nodeId:nodeId,componentIds:[]});const node=this.nodes.get(nodeId);node&&(node.isPipelineParent=!0)}addPipelineComponent(pipelineNodeId,componentId){const pipeline=this.pipelines.get(pipelineNodeId);pipeline&&pipeline.componentIds.push(componentId);const node=this.nodes.get(componentId);node&&(node.inPipeline=!0)}addAnnotation(annotation){this.annotations.push(annotation)}addNote(note){this.notes.push(note)}addAccelerator(accelerator){this.accelerators.push(accelerator)}addDeaccelerator(deaccelerator){this.deaccelerators.push(deaccelerator)}setAnnotationsBox(x,y){this.annotationsBox={x:x,y:y}}setAxes(partial){this.axes={...this.axes,...partial}}setSize(width,height){this.size={width:width,height:height}}getNode(id){return this.nodes.get(id)}build(){const nodes=[];for(const node of this.nodes.values()){if("number"!=typeof node.x||"number"!=typeof node.y)throw new Error(`Node "${node.label}" is missing coordinates`);nodes.push(node)}return{nodes:nodes,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}},"WardleyBuilder"),_a);function textSanitizer(text){const config=getConfig2$1();return sanitizeText(text.trim(),config)}function getConfig2(){return getConfig2$1()["wardley-beta"]}function addNode(id,label,x,y,className,labelOffsetX,labelOffsetY,inertia,sourceStrategy){builder.addNode({id:id,label:textSanitizer(label),x:x,y:y,className:className,labelOffsetX:labelOffsetX,labelOffsetY:labelOffsetY,inertia:inertia,sourceStrategy:sourceStrategy})}function addLink(sourceId,targetId,dashed=!1,label,flow){builder.addLink({source:sourceId,target:targetId,dashed:dashed,label:label,flow:flow})}function addTrend(nodeId,targetX,targetY){builder.addTrend({nodeId:nodeId,targetX:targetX,targetY:targetY})}function addAnnotation(number,coordinates,text){builder.addAnnotation({number:number,coordinates:coordinates,text:text?textSanitizer(text):void 0})}function addNote(text,x,y){builder.addNote({text:textSanitizer(text),x:x,y:y})}function addAccelerator(name,x,y){builder.addAccelerator({name:textSanitizer(name),x:x,y:y})}function addDeaccelerator(name,x,y){builder.addDeaccelerator({name:textSanitizer(name),x:x,y:y})}function setAnnotationsBox(x,y){builder.setAnnotationsBox(x,y)}function setSize(width,height){builder.setSize(width,height)}function startPipeline(nodeId){builder.startPipeline(nodeId)}function addPipelineComponent(pipelineNodeId,componentId){builder.addPipelineComponent(pipelineNodeId,componentId)}function updateAxes(partial){const sanitized={};partial.xLabel&&(sanitized.xLabel=textSanitizer(partial.xLabel)),partial.yLabel&&(sanitized.yLabel=textSanitizer(partial.yLabel)),partial.stages&&(sanitized.stages=partial.stages.map(stage=>textSanitizer(stage))),partial.stageBoundaries&&(sanitized.stageBoundaries=partial.stageBoundaries),builder.setAxes(sanitized)}function getNode(id){return builder.getNode(id)}function getWardleyData(){return builder.build()}function clear2(){builder.clear(),clear()}__name(textSanitizer,"textSanitizer"),__name(getConfig2,"getConfig"),__name(addNode,"addNode"),__name(addLink,"addLink"),__name(addTrend,"addTrend"),__name(addAnnotation,"addAnnotation"),__name(addNote,"addNote"),__name(addAccelerator,"addAccelerator"),__name(addDeaccelerator,"addDeaccelerator"),__name(setAnnotationsBox,"setAnnotationsBox"),__name(setSize,"setSize"),__name(startPipeline,"startPipeline"),__name(addPipelineComponent,"addPipelineComponent"),__name(updateAxes,"updateAxes"),__name(getNode,"getNode"),__name(getWardleyData,"getWardleyData"),__name(clear2,"clear");var wardleyDb_default={getConfig:getConfig2,addNode:addNode,addLink:addLink,addTrend:addTrend,addAnnotation:addAnnotation,addNote:addNote,addAccelerator:addAccelerator,addDeaccelerator:addDeaccelerator,setAnnotationsBox:setAnnotationsBox,setSize:setSize,startPipeline:startPipeline,addPipelineComponent:addPipelineComponent,updateAxes:updateAxes,getNode:getNode,getWardleyData:getWardleyData,clear:clear2,setAccTitle:setAccTitle,getAccTitle:getAccTitle,setDiagramTitle:setDiagramTitle,getDiagramTitle:getDiagramTitle,getAccDescription:getAccDescription,setAccDescription:setAccDescription},DEFAULT_STAGES=["Genesis","Custom Built","Product","Commodity"],getTheme=__name(()=>{var _a2,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l;const{themeVariables:themeVariables}=getConfig2$1();return{backgroundColor:(null==(_a2=themeVariables.wardley)?void 0:_a2.backgroundColor)??themeVariables.background??"#fff",axisColor:(null==(_b=themeVariables.wardley)?void 0:_b.axisColor)??"#000",axisTextColor:(null==(_c=themeVariables.wardley)?void 0:_c.axisTextColor)??themeVariables.primaryTextColor??"#222",gridColor:(null==(_d=themeVariables.wardley)?void 0:_d.gridColor)??"rgba(100, 100, 100, 0.2)",componentFill:(null==(_e=themeVariables.wardley)?void 0:_e.componentFill)??"#fff",componentStroke:(null==(_f=themeVariables.wardley)?void 0:_f.componentStroke)??"#000",componentLabelColor:(null==(_g=themeVariables.wardley)?void 0:_g.componentLabelColor)??themeVariables.primaryTextColor??"#222",linkStroke:(null==(_h=themeVariables.wardley)?void 0:_h.linkStroke)??"#000",evolutionStroke:(null==(_i=themeVariables.wardley)?void 0:_i.evolutionStroke)??"#dc3545",annotationStroke:(null==(_j=themeVariables.wardley)?void 0:_j.annotationStroke)??"#000",annotationTextColor:(null==(_k=themeVariables.wardley)?void 0:_k.annotationTextColor)??themeVariables.primaryTextColor??"#222",annotationFill:(null==(_l=themeVariables.wardley)?void 0:_l.annotationFill)??themeVariables.background??"#fff"}},"getTheme"),getConfigValues=__name(()=>{const wardleyConfig=getConfig2$1()["wardley-beta"];return{width:(null==wardleyConfig?void 0:wardleyConfig.width)??900,height:(null==wardleyConfig?void 0:wardleyConfig.height)??600,padding:(null==wardleyConfig?void 0:wardleyConfig.padding)??48,nodeRadius:(null==wardleyConfig?void 0:wardleyConfig.nodeRadius)??6,nodeLabelOffset:(null==wardleyConfig?void 0:wardleyConfig.nodeLabelOffset)??8,axisFontSize:(null==wardleyConfig?void 0:wardleyConfig.axisFontSize)??12,labelFontSize:(null==wardleyConfig?void 0:wardleyConfig.labelFontSize)??10,showGrid:(null==wardleyConfig?void 0:wardleyConfig.showGrid)??!1,useMaxWidth:(null==wardleyConfig?void 0:wardleyConfig.useMaxWidth)??!0}},"getConfigValues"),diagram={parser:parser,db:wardleyDb_default,renderer:{draw:__name((text,id,_version,diagObj)=>{var _a2,_b;log.debug("Rendering Wardley map\n"+text);const configValues=getConfigValues(),theme=getTheme(),squareSize=1.6*configValues.nodeRadius,db=diagObj.db,data=db.getWardleyData(),title=db.getDiagramTitle(),width=(null==(_a2=data.size)?void 0:_a2.width)??configValues.width,height=(null==(_b=data.size)?void 0:_b.height)??configValues.height,svg=selectSvgElement(id);svg.selectAll("*").remove(),configureSvgSize(svg,height,width,configValues.useMaxWidth),svg.attr("viewBox",`0 0 ${width} ${height}`);const root=svg.append("g").attr("class","wardley-map"),defs=svg.append("defs");defs.append("marker").attr("id",`arrow-${id}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",theme.evolutionStroke).attr("stroke","none"),defs.append("marker").attr("id",`link-arrow-end-${id}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",theme.linkStroke).attr("stroke","none"),defs.append("marker").attr("id",`link-arrow-start-${id}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",theme.linkStroke).attr("stroke","none"),root.append("rect").attr("class","wardley-background").attr("width",width).attr("height",height).attr("fill",theme.backgroundColor);const chartWidth=width-2*configValues.padding,chartHeight=height-2*configValues.padding;title&&root.append("text").attr("class","wardley-title").attr("x",width/2).attr("y",configValues.padding/2).attr("fill",theme.axisTextColor).attr("font-size",1.05*configValues.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(title);const projectX=__name(value=>configValues.padding+value/100*chartWidth,"projectX"),projectY=__name(value=>height-configValues.padding-value/100*chartHeight,"projectY"),axisGroup=root.append("g").attr("class","wardley-axes");axisGroup.append("line").attr("x1",configValues.padding).attr("x2",width-configValues.padding).attr("y1",height-configValues.padding).attr("y2",height-configValues.padding).attr("stroke",theme.axisColor).attr("stroke-width",1),axisGroup.append("line").attr("x1",configValues.padding).attr("x2",configValues.padding).attr("y1",configValues.padding).attr("y2",height-configValues.padding).attr("stroke",theme.axisColor).attr("stroke-width",1);const xLabel=data.axes.xLabel??"Evolution",yLabel=data.axes.yLabel??"Visibility";axisGroup.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",configValues.padding+chartWidth/2).attr("y",height-configValues.padding/4).attr("fill",theme.axisTextColor).attr("font-size",configValues.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(xLabel),axisGroup.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",configValues.padding/3).attr("y",configValues.padding+chartHeight/2).attr("fill",theme.axisTextColor).attr("font-size",configValues.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${configValues.padding/3} ${configValues.padding+chartHeight/2})`).text(yLabel);const stages=data.axes.stages&&data.axes.stages.length>0?data.axes.stages:DEFAULT_STAGES;if(stages.length>0){const stageGroup=root.append("g").attr("class","wardley-stages"),boundaries=data.axes.stageBoundaries,stagePositions=[];if(boundaries&&boundaries.length===stages.length){let prevBoundary=0;boundaries.forEach(boundary=>{stagePositions.push({start:prevBoundary,end:boundary}),prevBoundary=boundary})}else{const stageWidth=1/stages.length;stages.forEach((_,index)=>{stagePositions.push({start:index*stageWidth,end:(index+1)*stageWidth})})}stages.forEach((stage,index)=>{const pos=stagePositions[index],startX=configValues.padding+pos.start*chartWidth,centerX=(startX+(configValues.padding+pos.end*chartWidth))/2;index>0&&stageGroup.append("line").attr("x1",startX).attr("x2",startX).attr("y1",configValues.padding).attr("y2",height-configValues.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),stageGroup.append("text").attr("class","wardley-stage-label").attr("x",centerX).attr("y",height-configValues.padding/1.5).attr("fill",theme.axisTextColor).attr("font-size",configValues.axisFontSize-2).attr("text-anchor","middle").text(stage)})}if(configValues.showGrid){const gridGroup=root.append("g").attr("class","wardley-grid");for(let i=1;i<4;i++){const ratio=i/4,x=configValues.padding+chartWidth*ratio;gridGroup.append("line").attr("x1",x).attr("x2",x).attr("y1",configValues.padding).attr("y2",height-configValues.padding).attr("stroke",theme.gridColor).attr("stroke-dasharray","2 6"),gridGroup.append("line").attr("x1",configValues.padding).attr("x2",width-configValues.padding).attr("y1",height-configValues.padding-chartHeight*ratio).attr("y2",height-configValues.padding-chartHeight*ratio).attr("stroke",theme.gridColor).attr("stroke-dasharray","2 6")}}const positions=new Map;if(data.nodes.forEach(node=>{positions.set(node.id,{x:projectX(node.x),y:projectY(node.y),node:node})}),data.pipelines.length>0){const pipelineGroup=root.append("g").attr("class","wardley-pipelines"),pipelineLinksGroup=root.append("g").attr("class","wardley-pipeline-links");data.pipelines.forEach(pipeline=>{if(0===pipeline.componentIds.length)return;const sortedComponents=pipeline.componentIds.map(id2=>({id:id2,pos:positions.get(id2),node:data.nodes.find(n=>n.id===id2)})).filter(c=>c.pos&&c.node).sort((a,b)=>a.node.x-b.node.x);for(let i=0;i<sortedComponents.length-1;i++){const current=sortedComponents[i],next=sortedComponents[i+1];pipelineLinksGroup.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",current.pos.x).attr("y1",current.pos.y).attr("x2",next.pos.x).attr("y2",next.pos.y).attr("stroke",theme.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let minX=1/0,maxX=-1/0,y=0;if(pipeline.componentIds.forEach(componentId=>{const pos=positions.get(componentId);pos&&(minX=Math.min(minX,pos.x),maxX=Math.max(maxX,pos.x),y=pos.y)}),minX!==1/0&&maxX!==-1/0){const padding=15,height2=4*configValues.nodeRadius,boxTop=y-height2/2,parentPos=positions.get(pipeline.nodeId);if(parentPos){const centerX=(minX+maxX)/2;parentPos.x=centerX,parentPos.y=boxTop-squareSize/6}pipelineGroup.append("rect").attr("class","wardley-pipeline-box").attr("x",minX-padding).attr("y",boxTop).attr("width",maxX-minX+2*padding).attr("height",height2).attr("fill","none").attr("stroke",theme.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}const linksGroup=root.append("g").attr("class","wardley-links"),pipelineMap=new Map;data.pipelines.forEach(pipeline=>{pipelineMap.set(pipeline.nodeId,new Set(pipeline.componentIds))});const validLinks=data.links.filter(link=>{if(!positions.has(link.source)||!positions.has(link.target))return!1;const pipelineComponents=pipelineMap.get(link.target);return!(null==pipelineComponents?void 0:pipelineComponents.has(link.source))});linksGroup.selectAll("line").data(validLinks).enter().append("line").attr("class",link=>"wardley-link"+(link.dashed?" wardley-link--dashed":"")).attr("x1",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),radius=data.nodes.find(n=>n.id===link.source).isPipelineParent?squareSize/Math.sqrt(2):configValues.nodeRadius,dx=targetPos.x-sourcePos.x,dy=targetPos.y-sourcePos.y,distance=Math.sqrt(dx*dx+dy*dy);return sourcePos.x+dx/distance*radius}).attr("y1",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),radius=data.nodes.find(n=>n.id===link.source).isPipelineParent?squareSize/Math.sqrt(2):configValues.nodeRadius,dx=targetPos.x-sourcePos.x,dy=targetPos.y-sourcePos.y,distance=Math.sqrt(dx*dx+dy*dy);return sourcePos.y+dy/distance*radius}).attr("x2",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),radius=data.nodes.find(n=>n.id===link.target).isPipelineParent?squareSize/Math.sqrt(2):configValues.nodeRadius,dx=sourcePos.x-targetPos.x,dy=sourcePos.y-targetPos.y,distance=Math.sqrt(dx*dx+dy*dy);return targetPos.x+dx/distance*radius}).attr("y2",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),radius=data.nodes.find(n=>n.id===link.target).isPipelineParent?squareSize/Math.sqrt(2):configValues.nodeRadius,dx=sourcePos.x-targetPos.x,dy=sourcePos.y-targetPos.y,distance=Math.sqrt(dx*dx+dy*dy);return targetPos.y+dy/distance*radius}).attr("stroke",theme.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",link=>link.dashed?"6 6":null).attr("marker-end",link=>"forward"===link.flow||"bidirectional"===link.flow?`url(#link-arrow-end-${id})`:null).attr("marker-start",link=>"backward"===link.flow||"bidirectional"===link.flow?`url(#link-arrow-start-${id})`:null),linksGroup.selectAll("text").data(validLinks.filter(link=>link.label)).enter().append("text").attr("class","wardley-link-label").attr("x",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),midX=(sourcePos.x+targetPos.x)/2,dy=targetPos.y-sourcePos.y,dx=targetPos.x-sourcePos.x;return midX+8*(dy/Math.sqrt(dx*dx+dy*dy))}).attr("y",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),midY=(sourcePos.y+targetPos.y)/2,dx=targetPos.x-sourcePos.x,dy=targetPos.y-sourcePos.y;return midY+8*(-dx/Math.sqrt(dx*dx+dy*dy))}).attr("fill",theme.axisTextColor).attr("font-size",configValues.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",link=>{const sourcePos=positions.get(link.source),targetPos=positions.get(link.target),midX=(sourcePos.x+targetPos.x)/2,midY=(sourcePos.y+targetPos.y)/2,dx=targetPos.x-sourcePos.x,dy=targetPos.y-sourcePos.y,distance=Math.sqrt(dx*dx+dy*dy),labelX=midX+8*(dy/distance),labelY=midY+8*(-dx/distance);let angle=180*Math.atan2(dy,dx)/Math.PI;return(angle>90||angle<-90)&&(angle+=180),`rotate(${angle} ${labelX} ${labelY})`}).text(link=>link.label);const trendGroup=root.append("g").attr("class","wardley-trends"),trendsWithPositions=data.trends.map(trend=>{const origin=positions.get(trend.nodeId);if(!origin)return null;const targetX=projectX(trend.targetX),targetY=projectY(trend.targetY),dx=targetX-origin.x,dy=targetY-origin.y,distance=Math.sqrt(dx*dx+dy*dy),shortenBy=configValues.nodeRadius+2;return{origin:origin,targetX:targetX,targetY:targetY,adjustedX2:distance>shortenBy?targetX-dx/distance*shortenBy:targetX,adjustedY2:distance>shortenBy?targetY-dy/distance*shortenBy:targetY}}).filter(trend=>null!==trend);trendGroup.selectAll("line").data(trendsWithPositions).enter().append("line").attr("class","wardley-trend").attr("x1",trend=>trend.origin.x).attr("y1",trend=>trend.origin.y).attr("x2",trend=>trend.adjustedX2).attr("y2",trend=>trend.adjustedY2).attr("stroke",theme.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${id})`);const nodeEnter=root.append("g").attr("class","wardley-nodes").selectAll("g").data(data.nodes).enter().append("g").attr("class",node=>["wardley-node",node.className?`wardley-node--${node.className}`:""].filter(Boolean).join(" "));nodeEnter.filter(node=>"outsource"===node.sourceStrategy).append("circle").attr("class","wardley-outsource-overlay").attr("cx",node=>positions.get(node.id).x).attr("cy",node=>positions.get(node.id).y).attr("r",2*configValues.nodeRadius).attr("fill","#666").attr("stroke",theme.componentStroke).attr("stroke-width",1),nodeEnter.filter(node=>"buy"===node.sourceStrategy).append("circle").attr("class","wardley-buy-overlay").attr("cx",node=>positions.get(node.id).x).attr("cy",node=>positions.get(node.id).y).attr("r",2*configValues.nodeRadius).attr("fill","#ccc").attr("stroke",theme.componentStroke).attr("stroke-width",1),nodeEnter.filter(node=>"build"===node.sourceStrategy).append("circle").attr("class","wardley-build-overlay").attr("cx",node=>positions.get(node.id).x).attr("cy",node=>positions.get(node.id).y).attr("r",2*configValues.nodeRadius).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);const marketNodes=nodeEnter.filter(node=>"market"===node.sourceStrategy);marketNodes.append("circle").attr("class","wardley-market-overlay").attr("cx",node=>positions.get(node.id).x).attr("cy",node=>positions.get(node.id).y).attr("r",2*configValues.nodeRadius).attr("fill","white").attr("stroke",theme.componentStroke).attr("stroke-width",1),nodeEnter.filter(node=>!node.isPipelineParent&&"market"!==node.sourceStrategy&&"anchor"!==node.className).append("circle").attr("cx",node=>positions.get(node.id).x).attr("cy",node=>positions.get(node.id).y).attr("r",configValues.nodeRadius).attr("fill",theme.componentFill).attr("stroke",theme.componentStroke).attr("stroke-width",1);const smallCircleRadius=.7*configValues.nodeRadius,triangleRadius=1.2*configValues.nodeRadius;if(marketNodes.append("line").attr("class","wardley-market-line").attr("x1",node=>positions.get(node.id).x).attr("y1",node=>positions.get(node.id).y-triangleRadius).attr("x2",node=>positions.get(node.id).x-triangleRadius*Math.cos(Math.PI/6)).attr("y2",node=>positions.get(node.id).y+triangleRadius*Math.sin(Math.PI/6)).attr("stroke",theme.componentStroke).attr("stroke-width",1),marketNodes.append("line").attr("class","wardley-market-line").attr("x1",node=>positions.get(node.id).x-triangleRadius*Math.cos(Math.PI/6)).attr("y1",node=>positions.get(node.id).y+triangleRadius*Math.sin(Math.PI/6)).attr("x2",node=>positions.get(node.id).x+triangleRadius*Math.cos(Math.PI/6)).attr("y2",node=>positions.get(node.id).y+triangleRadius*Math.sin(Math.PI/6)).attr("stroke",theme.componentStroke).attr("stroke-width",1),marketNodes.append("line").attr("class","wardley-market-line").attr("x1",node=>positions.get(node.id).x+triangleRadius*Math.cos(Math.PI/6)).attr("y1",node=>positions.get(node.id).y+triangleRadius*Math.sin(Math.PI/6)).attr("x2",node=>positions.get(node.id).x).attr("y2",node=>positions.get(node.id).y-triangleRadius).attr("stroke",theme.componentStroke).attr("stroke-width",1),marketNodes.append("circle").attr("class","wardley-market-dot").attr("cx",node=>positions.get(node.id).x).attr("cy",node=>positions.get(node.id).y-triangleRadius).attr("r",smallCircleRadius).attr("fill","white").attr("stroke",theme.componentStroke).attr("stroke-width",2),marketNodes.append("circle").attr("class","wardley-market-dot").attr("cx",node=>positions.get(node.id).x-triangleRadius*Math.cos(Math.PI/6)).attr("cy",node=>positions.get(node.id).y+triangleRadius*Math.sin(Math.PI/6)).attr("r",smallCircleRadius).attr("fill","white").attr("stroke",theme.componentStroke).attr("stroke-width",2),marketNodes.append("circle").attr("class","wardley-market-dot").attr("cx",node=>positions.get(node.id).x+triangleRadius*Math.cos(Math.PI/6)).attr("cy",node=>positions.get(node.id).y+triangleRadius*Math.sin(Math.PI/6)).attr("r",smallCircleRadius).attr("fill","white").attr("stroke",theme.componentStroke).attr("stroke-width",2),nodeEnter.filter(node=>!0===node.isPipelineParent).append("rect").attr("x",node=>positions.get(node.id).x-squareSize/2).attr("y",node=>positions.get(node.id).y-squareSize/2).attr("width",squareSize).attr("height",squareSize).attr("fill",theme.componentFill).attr("stroke",theme.componentStroke).attr("stroke-width",1),nodeEnter.filter(node=>!0===node.inertia).append("line").attr("class","wardley-inertia").attr("x1",node=>{const pos=positions.get(node.id);let offset=node.isPipelineParent?squareSize/2+15:configValues.nodeRadius+15;return node.sourceStrategy&&(offset+=configValues.nodeRadius+10),pos.x+offset}).attr("y1",node=>{const pos=positions.get(node.id),lineHeight=node.isPipelineParent?squareSize:2*configValues.nodeRadius;return pos.y-lineHeight/2}).attr("x2",node=>{const pos=positions.get(node.id);let offset=node.isPipelineParent?squareSize/2+15:configValues.nodeRadius+15;return node.sourceStrategy&&(offset+=configValues.nodeRadius+10),pos.x+offset}).attr("y2",node=>{const pos=positions.get(node.id),lineHeight=node.isPipelineParent?squareSize:2*configValues.nodeRadius;return pos.y+lineHeight/2}).attr("stroke",theme.componentStroke).attr("stroke-width",6),nodeEnter.append("text").attr("x",node=>{const pos=positions.get(node.id);if("anchor"===node.className)return void 0!==node.labelOffsetX?pos.x+node.labelOffsetX:pos.x;let defaultOffset=configValues.nodeLabelOffset;node.sourceStrategy&&void 0===node.labelOffsetX&&(defaultOffset+=10);const customOffset=node.labelOffsetX??defaultOffset;return pos.x+customOffset}).attr("y",node=>{const pos=positions.get(node.id);if("anchor"===node.className)return void 0!==node.labelOffsetY?pos.y+node.labelOffsetY:pos.y-3;let defaultOffset=-configValues.nodeLabelOffset;node.sourceStrategy&&void 0===node.labelOffsetY&&(defaultOffset-=10);const customOffset=node.labelOffsetY??defaultOffset;return pos.y+customOffset}).attr("class","wardley-node-label").attr("fill",node=>"evolved"===node.className?theme.evolutionStroke:"anchor"===node.className?"#000":theme.componentLabelColor).attr("font-size",configValues.labelFontSize).attr("font-weight",node=>"anchor"===node.className?"bold":"normal").attr("text-anchor",node=>"anchor"===node.className?"middle":"start").attr("dominant-baseline",node=>"anchor"===node.className?"middle":"auto").text(node=>node.label),data.annotations.length>0){const annotationsGroup=root.append("g").attr("class","wardley-annotations");if(data.annotations.forEach(annotation=>{const projectedCoords=annotation.coordinates.map(coord=>({x:projectX(coord.x),y:projectY(coord.y)}));if(projectedCoords.length>1)for(let i=0;i<projectedCoords.length-1;i++)annotationsGroup.append("line").attr("class","wardley-annotation-line").attr("x1",projectedCoords[i].x).attr("y1",projectedCoords[i].y).attr("x2",projectedCoords[i+1].x).attr("y2",projectedCoords[i+1].y).attr("stroke",theme.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");projectedCoords.forEach(coord=>{const annotationNode=annotationsGroup.append("g").attr("class","wardley-annotation");annotationNode.append("circle").attr("cx",coord.x).attr("cy",coord.y).attr("r",10).attr("fill","white").attr("stroke",theme.axisColor).attr("stroke-width",1.5),annotationNode.append("text").attr("x",coord.x).attr("y",coord.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",theme.axisTextColor).attr("font-weight","bold").text(annotation.number)})}),data.annotationsBox){let boxX=projectX(data.annotationsBox.x),boxY=projectY(data.annotationsBox.y);const padding=10,lineHeight=16,fontSize=11,textBoxGroup=annotationsGroup.append("g").attr("class","wardley-annotations-box"),sortedAnnotations=[...data.annotations].filter(a=>a.text).sort((a,b)=>a.number-b.number),textElements=[];if(sortedAnnotations.forEach((annotation,idx)=>{const text2=textBoxGroup.append("text").attr("x",boxX+padding).attr("y",boxY+padding+(idx+1)*lineHeight).attr("font-size",fontSize).attr("fill",theme.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${annotation.number}. ${annotation.text}`);textElements.push(text2)}),textElements.length>0){let maxWidth=0,maxHeight=0;textElements.forEach(text2=>{const textNode=text2.node(),textWidth=textNode.getComputedTextLength();maxWidth=Math.max(maxWidth,textWidth);const bbox=textNode.getBBox();maxHeight=Math.max(maxHeight,bbox.height)});const boxWidth=maxWidth+2*padding+105,boxHeight=sortedAnnotations.length*lineHeight+2*padding+maxHeight/2,minX=configValues.padding,maxX=width-configValues.padding-boxWidth,minY=configValues.padding,maxY=height-configValues.padding-boxHeight;boxX=Math.max(minX,Math.min(boxX,maxX)),boxY=Math.max(minY,Math.min(boxY,maxY)),textElements.forEach((text2,idx)=>{text2.attr("x",boxX+padding).attr("y",boxY+padding+(idx+1)*lineHeight)}),textBoxGroup.insert("rect","text").attr("x",boxX).attr("y",boxY).attr("width",boxWidth).attr("height",boxHeight).attr("fill","white").attr("stroke",theme.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(data.notes.length>0){const notesGroup=root.append("g").attr("class","wardley-notes");data.notes.forEach(note=>{const noteX=projectX(note.x),noteY=projectY(note.y);notesGroup.append("text").attr("x",noteX).attr("y",noteY).attr("text-anchor","start").attr("font-size",11).attr("fill",theme.axisTextColor).attr("font-weight","bold").text(note.text)})}if(data.accelerators.length>0){const acceleratorsGroup=root.append("g").attr("class","wardley-accelerators");data.accelerators.forEach(accelerator=>{const accX=projectX(accelerator.x),accY=projectY(accelerator.y),arrowPath=`\n M ${accX} ${accY-15}\n L ${accX+60-20} ${accY-15}\n L ${accX+60-20} ${accY-15-8}\n L ${accX+60} ${accY}\n L ${accX+60-20} ${accY+15+8}\n L ${accX+60-20} ${accY+15}\n L ${accX} ${accY+15}\n Z\n `;acceleratorsGroup.append("path").attr("d",arrowPath).attr("fill","white").attr("stroke",theme.componentStroke).attr("stroke-width",1),acceleratorsGroup.append("text").attr("x",accX+30).attr("y",accY+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",theme.axisTextColor).attr("font-weight","bold").text(accelerator.name)})}if(data.deaccelerators.length>0){const deacceleratorsGroup=root.append("g").attr("class","wardley-deaccelerators");data.deaccelerators.forEach(deaccelerator=>{const decX=projectX(deaccelerator.x),decY=projectY(deaccelerator.y),arrowPath=`\n M ${decX+60} ${decY-15}\n L ${decX+20} ${decY-15}\n L ${decX+20} ${decY-15-8}\n L ${decX} ${decY}\n L ${decX+20} ${decY+15+8}\n L ${decX+20} ${decY+15}\n L ${decX+60} ${decY+15}\n Z\n `;deacceleratorsGroup.append("path").attr("d",arrowPath).attr("fill","white").attr("stroke",theme.componentStroke).attr("stroke-width",1),deacceleratorsGroup.append("text").attr("x",decX+30).attr("y",decY+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",theme.axisTextColor).attr("font-weight","bold").text(deaccelerator.name)})}},"draw")},styles:__name(()=>"","styles")};export{diagram};
@@ -1 +0,0 @@
1
- var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j;import{s as setAccDescription,g as getAccDescription,q as getDiagramTitle,p as setDiagramTitle,a as getAccTitle,b as setAccTitle,_ as __name,l as log,H as selectSvgElement,e as configureSvgSize,y as clear,C as getConfig,i as sanitizeText,E as cleanAndMerge,F as defaultConfig_default,I as getThemeVariables3,aB as computeDimensionOfText,Q as line}from"./mermaid.core-DvwEdatr.js";import{i as initRange}from"./init-DMZMl1PR.js";import{o as ordinal}from"./ordinal-DA-_8pMy.js";import{l as linear}from"./linear-BNV4po81.js";import"./vendor-mdxeditor-Cy5Xg_90.js";import"./vendor-antd-BTBRwbax.js";import"./vendor-virtuoso-Bq6QMhgG.js";import"./vendor-codemirror-CPWlhuQ1.js";import"./vendor-markdown-DOJHsAxX.js";import"./defaultLocale-DZ7E7S9R.js";function band(){var step,bandwidth,scale=ordinal().unknown(void 0),domain=scale.domain,ordinalRange=scale.range,r0=0,r1=1,round=!1,paddingInner=0,paddingOuter=0,align=.5;function rescale(){var n=domain().length,reverse=r1<r0,start=reverse?r1:r0,stop=reverse?r0:r1;step=(stop-start)/Math.max(1,n-paddingInner+2*paddingOuter),round&&(step=Math.floor(step)),start+=(stop-start-step*(n-paddingInner))*align,bandwidth=step*(1-paddingInner),round&&(start=Math.round(start),bandwidth=Math.round(bandwidth));var values=function(start,stop,step){start=+start,stop=+stop,step=(n=arguments.length)<2?(stop=start,start=0,1):n<3?1:+step;for(var i=-1,n=0|Math.max(0,Math.ceil((stop-start)/step)),range2=new Array(n);++i<n;)range2[i]=start+i*step;return range2}(n).map(function(i){return start+step*i});return ordinalRange(reverse?values.reverse():values)}return delete scale.unknown,scale.domain=function(_){return arguments.length?(domain(_),rescale()):domain()},scale.range=function(_){return arguments.length?([r0,r1]=_,r0=+r0,r1=+r1,rescale()):[r0,r1]},scale.rangeRound=function(_){return[r0,r1]=_,r0=+r0,r1=+r1,round=!0,rescale()},scale.bandwidth=function(){return bandwidth},scale.step=function(){return step},scale.round=function(_){return arguments.length?(round=!!_,rescale()):round},scale.padding=function(_){return arguments.length?(paddingInner=Math.min(1,paddingOuter=+_),rescale()):paddingInner},scale.paddingInner=function(_){return arguments.length?(paddingInner=Math.min(1,_),rescale()):paddingInner},scale.paddingOuter=function(_){return arguments.length?(paddingOuter=+_,rescale()):paddingOuter},scale.align=function(_){return arguments.length?(align=Math.max(0,Math.min(1,_)),rescale()):align},scale.copy=function(){return band(domain(),[r0,r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align)},initRange.apply(rescale(),arguments)}var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,10,12,14,16,18,19,21,23],$V1=[2,6],$V2=[1,3],$V3=[1,5],$V4=[1,6],$V5=[1,7],$V6=[1,5,10,12,14,16,18,19,21,23,34,35,36],$V7=[1,25],$V8=[1,26],$V9=[1,28],$Va=[1,29],$Vb=[1,30],$Vc=[1,31],$Vd=[1,32],$Ve=[1,33],$Vf=[1,34],$Vg=[1,35],$Vh=[1,36],$Vi=[1,37],$Vj=[1,43],$Vk=[1,42],$Vl=[1,47],$Vm=[1,50],$Vn=[1,10,12,14,16,18,19,21,23,34,35,36],$Vo=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],$Vp=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],$Vq=[1,64],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 5:yy.setOrientation($$[$0]);break;case 9:yy.setDiagramTitle($$[$0].text.trim());break;case 12:yy.setLineData({text:"",type:"text"},$$[$0]);break;case 13:yy.setLineData($$[$0-1],$$[$0]);break;case 14:yy.setBarData({text:"",type:"text"},$$[$0]);break;case 15:yy.setBarData($$[$0-1],$$[$0]);break;case 16:this.$=$$[$0].trim(),yy.setAccTitle(this.$);break;case 17:case 18:this.$=$$[$0].trim(),yy.setAccDescription(this.$);break;case 19:case 27:this.$=$$[$0-1];break;case 20:this.$=[Number($$[$0-2]),...$$[$0]];break;case 21:this.$=[Number($$[$0])];break;case 22:yy.setXAxisTitle($$[$0]);break;case 23:yy.setXAxisTitle($$[$0-1]);break;case 24:yy.setXAxisTitle({type:"text",text:""});break;case 25:yy.setXAxisBand($$[$0]);break;case 26:yy.setXAxisRangeData(Number($$[$0-2]),Number($$[$0]));break;case 28:this.$=[$$[$0-2],...$$[$0]];break;case 29:this.$=[$$[$0]];break;case 30:yy.setYAxisTitle($$[$0]);break;case 31:yy.setYAxisTitle($$[$0-1]);break;case 32:yy.setYAxisTitle({type:"text",text:""});break;case 33:yy.setYAxisRangeData(Number($$[$0-2]),Number($$[$0]));break;case 37:case 38:this.$={text:$$[$0],type:"text"};break;case 39:this.$={text:$$[$0],type:"markdown"};break;case 40:this.$=$$[$0];break;case 41:this.$=$$[$0-1]+""+$$[$0]}},"anonymous"),table:[o($V0,$V1,{3:1,4:2,7:4,5:$V2,34:$V3,35:$V4,36:$V5}),{1:[3]},o($V0,$V1,{4:2,7:4,3:8,5:$V2,34:$V3,35:$V4,36:$V5}),o($V0,$V1,{4:2,7:4,6:9,3:10,5:$V2,8:[1,11],34:$V3,35:$V4,36:$V5}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},o($V6,[2,34]),o($V6,[2,35]),o($V6,[2,36]),{1:[2,1]},o($V0,$V1,{4:2,7:4,3:21,5:$V2,34:$V3,35:$V4,36:$V5}),{1:[2,3]},o($V6,[2,5]),o($V0,[2,7],{4:22,34:$V3,35:$V4,36:$V5}),{11:23,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},{11:39,13:38,24:$Vj,27:$Vk,29:40,30:41,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},{11:45,15:44,27:$Vl,33:46,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},{11:49,17:48,24:$Vm,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},{11:52,17:51,24:$Vm,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},{20:[1,53]},{22:[1,54]},o($Vn,[2,18]),{1:[2,2]},o($Vn,[2,8]),o($Vn,[2,9]),o($Vo,[2,37],{40:55,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi}),o($Vo,[2,38]),o($Vo,[2,39]),o($Vp,[2,40]),o($Vp,[2,42]),o($Vp,[2,43]),o($Vp,[2,44]),o($Vp,[2,45]),o($Vp,[2,46]),o($Vp,[2,47]),o($Vp,[2,48]),o($Vp,[2,49]),o($Vp,[2,50]),o($Vp,[2,51]),o($Vn,[2,10]),o($Vn,[2,22],{30:41,29:56,24:$Vj,27:$Vk}),o($Vn,[2,24]),o($Vn,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},o($Vn,[2,11]),o($Vn,[2,30],{33:60,27:$Vl}),o($Vn,[2,32]),{31:[1,61]},o($Vn,[2,12]),{17:62,24:$Vm},{25:63,27:$Vq},o($Vn,[2,14]),{17:65,24:$Vm},o($Vn,[2,16]),o($Vn,[2,17]),o($Vp,[2,41]),o($Vn,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},o($Vn,[2,31]),{27:[1,69]},o($Vn,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},o($Vn,[2,15]),o($Vn,[2,26]),o($Vn,[2,27]),{11:59,32:72,37:24,38:$V7,39:$V8,40:27,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,46:$Ve,47:$Vf,48:$Vg,49:$Vh,50:$Vi},o($Vn,[2,33]),o($Vn,[2,19]),{25:73,27:$Vq},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 1:case 5:case 44:break;case 2:case 3:return this.popState(),34;case 4:return 34;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 26:case 28:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";case 18:return this.pushState("axis_data"),"Y_AXIS";case 19:return this.pushState("axis_band_data"),24;case 20:return 31;case 21:return this.pushState("data"),16;case 22:return this.pushState("data"),18;case 23:return this.pushState("data_inner"),24;case 24:return 27;case 25:return this.popState(),26;case 27:this.pushState("string");break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 43;case 33:return"COLON";case 34:return 44;case 35:return 28;case 36:return 45;case 37:return 46;case 38:return 48;case 39:return 50;case 40:return 47;case 41:return 41;case 42:return 49;case 43:return 42;case 45:return 35;case 46:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var xychart_default=parser;function isBarPlot(data){return"bar"===data.type}function isBandAxisData(data){return"band"===data.type}function isLinearAxisData(data){return"linear"===data.type}__name(isBarPlot,"isBarPlot"),__name(isBandAxisData,"isBandAxisData"),__name(isLinearAxisData,"isLinearAxisData");var TextDimensionCalculatorWithFont=(__name(_a=class{constructor(parentGroup){this.parentGroup=parentGroup}getMaxDimension(texts,fontSize){if(!this.parentGroup)return{width:texts.reduce((acc,cur)=>Math.max(cur.length,acc),0)*fontSize,height:fontSize};const dimension={width:0,height:0},elem=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",fontSize);for(const t of texts){const bbox=computeDimensionOfText(elem,1,t),width=bbox?bbox.width:t.length*fontSize,height=bbox?bbox.height:fontSize;dimension.width=Math.max(dimension.width,width),dimension.height=Math.max(dimension.height,height)}return elem.remove(),dimension}},"TextDimensionCalculatorWithFont"),_a),BaseAxis=(__name(_b=class{constructor(axisConfig,title,textDimensionCalculator,axisThemeConfig){this.axisConfig=axisConfig,this.title=title,this.textDimensionCalculator=textDimensionCalculator,this.axisThemeConfig=axisThemeConfig,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(range2){this.range=range2,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=range2[1]-range2[0]:this.boundingRect.width=range2[1]-range2[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(axisPosition){this.axisPosition=axisPosition,this.setRange(this.range)}getTickDistance(){const range2=this.getRange();return Math.abs(range2[0]-range2[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(tick=>tick.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(availableSpace){let availableHeight=availableSpace.height;if(this.axisConfig.showAxisLine&&availableHeight>this.axisConfig.axisLineWidth&&(availableHeight-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const spaceRequired=this.getLabelDimension(),maxPadding=.2*availableSpace.width;this.outerPadding=Math.min(spaceRequired.width/2,maxPadding);const heightRequired=spaceRequired.height+2*this.axisConfig.labelPadding;this.labelTextHeight=spaceRequired.height,heightRequired<=availableHeight&&(availableHeight-=heightRequired,this.showLabel=!0)}if(this.axisConfig.showTick&&availableHeight>=this.axisConfig.tickLength&&(this.showTick=!0,availableHeight-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const spaceRequired=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),heightRequired=spaceRequired.height+2*this.axisConfig.titlePadding;this.titleTextHeight=spaceRequired.height,heightRequired<=availableHeight&&(availableHeight-=heightRequired,this.showTitle=!0)}this.boundingRect.width=availableSpace.width,this.boundingRect.height=availableSpace.height-availableHeight}calculateSpaceIfDrawnVertical(availableSpace){let availableWidth=availableSpace.width;if(this.axisConfig.showAxisLine&&availableWidth>this.axisConfig.axisLineWidth&&(availableWidth-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const spaceRequired=this.getLabelDimension(),maxPadding=.2*availableSpace.height;this.outerPadding=Math.min(spaceRequired.height/2,maxPadding);const widthRequired=spaceRequired.width+2*this.axisConfig.labelPadding;widthRequired<=availableWidth&&(availableWidth-=widthRequired,this.showLabel=!0)}if(this.axisConfig.showTick&&availableWidth>=this.axisConfig.tickLength&&(this.showTick=!0,availableWidth-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const spaceRequired=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),widthRequired=spaceRequired.height+2*this.axisConfig.titlePadding;this.titleTextHeight=spaceRequired.height,widthRequired<=availableWidth&&(availableWidth-=widthRequired,this.showTitle=!0)}this.boundingRect.width=availableSpace.width-availableWidth,this.boundingRect.height=availableSpace.height}calculateSpace(availableSpace){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(availableSpace):this.calculateSpaceIfDrawnHorizontally(availableSpace),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(point){this.boundingRect.x=point.x,this.boundingRect.y=point.y}getDrawableElementsForLeftAxis(){const drawableElement=[];if(this.showAxisLine){const x=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;drawableElement.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&drawableElement.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(tick=>({text:tick.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(tick),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const x=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);drawableElement.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(tick=>({path:`M ${x},${this.getScaleValue(tick)} L ${x-this.axisConfig.tickLength},${this.getScaleValue(tick)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&drawableElement.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),drawableElement}getDrawableElementsForBottomAxis(){const drawableElement=[];if(this.showAxisLine){const y=this.boundingRect.y+this.axisConfig.axisLineWidth/2;drawableElement.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${y} L ${this.boundingRect.x+this.boundingRect.width},${y}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&drawableElement.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(tick=>({text:tick.toString(),x:this.getScaleValue(tick),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const y=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);drawableElement.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(tick=>({path:`M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&drawableElement.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),drawableElement}getDrawableElementsForTopAxis(){const drawableElement=[];if(this.showAxisLine){const y=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;drawableElement.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${y} L ${this.boundingRect.x+this.boundingRect.width},${y}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&drawableElement.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(tick=>({text:tick.toString(),x:this.getScaleValue(tick),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const y=this.boundingRect.y;drawableElement.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(tick=>({path:`M ${this.getScaleValue(tick)},${y+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(tick)},${y+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&drawableElement.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),drawableElement}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}},"BaseAxis"),_b),BandAxis=(__name(_c=class extends BaseAxis{constructor(axisConfig,axisThemeConfig,categories,title,textDimensionCalculator){super(axisConfig,title,textDimensionCalculator,axisThemeConfig),this.categories=categories,this.scale=band().domain(this.categories).range(this.getRange())}setRange(range2){super.setRange(range2)}recalculateScale(){this.scale=band().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),log.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(value){return this.scale(value)??this.getRange()[0]}},"BandAxis"),_c),LinearAxis=(__name(_d=class extends BaseAxis{constructor(axisConfig,axisThemeConfig,domain,title,textDimensionCalculator){super(axisConfig,title,textDimensionCalculator,axisThemeConfig),this.domain=domain,this.scale=linear().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const domain=[...this.domain];"left"===this.axisPosition&&domain.reverse(),this.scale=linear().domain(domain).range(this.getRange())}getScaleValue(value){return this.scale(value)}},"LinearAxis"),_d);function getAxis(data,axisConfig,axisThemeConfig,tmpSVGGroup2){const textDimensionCalculator=new TextDimensionCalculatorWithFont(tmpSVGGroup2);return isBandAxisData(data)?new BandAxis(axisConfig,axisThemeConfig,data.categories,data.title,textDimensionCalculator):new LinearAxis(axisConfig,axisThemeConfig,[data.min,data.max],data.title,textDimensionCalculator)}__name(getAxis,"getAxis");var ChartTitle=(__name(_e=class{constructor(textDimensionCalculator,chartConfig,chartData,chartThemeConfig){this.textDimensionCalculator=textDimensionCalculator,this.chartConfig=chartConfig,this.chartData=chartData,this.chartThemeConfig=chartThemeConfig,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(point){this.boundingRect.x=point.x,this.boundingRect.y=point.y}calculateSpace(availableSpace){const titleDimension=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),widthRequired=Math.max(titleDimension.width,availableSpace.width),heightRequired=titleDimension.height+2*this.chartConfig.titlePadding;return titleDimension.width<=widthRequired&&titleDimension.height<=heightRequired&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=widthRequired,this.boundingRect.height=heightRequired,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const drawableElem=[];return this.showChartTitle&&drawableElem.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),drawableElem}},"ChartTitle"),_e);function getChartTitleComponent(chartConfig,chartData,chartThemeConfig,tmpSVGGroup2){const textDimensionCalculator=new TextDimensionCalculatorWithFont(tmpSVGGroup2);return new ChartTitle(textDimensionCalculator,chartConfig,chartData,chartThemeConfig)}__name(getChartTitleComponent,"getChartTitleComponent");var LinePlot=(__name(_f=class{constructor(plotData,xAxis,yAxis,orientation,plotIndex2){this.plotData=plotData,this.xAxis=xAxis,this.yAxis=yAxis,this.orientation=orientation,this.plotIndex=plotIndex2}getDrawableElement(){const finalData=this.plotData.data.map(d=>[this.xAxis.getScaleValue(d[0]),this.yAxis.getScaleValue(d[1])]);let path;return path="horizontal"===this.orientation?line().y(d=>d[0]).x(d=>d[1])(finalData):line().x(d=>d[0]).y(d=>d[1])(finalData),path?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:path,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}},"LinePlot"),_f),BarPlot=(__name(_g=class{constructor(barData,boundingRect,xAxis,yAxis,orientation,plotIndex2){this.barData=barData,this.boundingRect=boundingRect,this.xAxis=xAxis,this.yAxis=yAxis,this.orientation=orientation,this.plotIndex=plotIndex2}getDrawableElement(){const finalData=this.barData.data.map(d=>[this.xAxis.getScaleValue(d[0]),this.yAxis.getScaleValue(d[1])]),barWidth=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),barWidthHalf=barWidth/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:finalData.map(data=>({x:this.boundingRect.x,y:data[0]-barWidthHalf,height:barWidth,width:data[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:finalData.map(data=>({x:data[0]-barWidthHalf,y:data[1],width:barWidth,height:this.boundingRect.y+this.boundingRect.height-data[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},"BarPlot"),_g),BasePlot=(__name(_h=class{constructor(chartConfig,chartData,chartThemeConfig){this.chartConfig=chartConfig,this.chartData=chartData,this.chartThemeConfig=chartThemeConfig,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(xAxis,yAxis){this.xAxis=xAxis,this.yAxis=yAxis}setBoundingBoxXY(point){this.boundingRect.x=point.x,this.boundingRect.y=point.y}calculateSpace(availableSpace){return this.boundingRect.width=availableSpace.width,this.boundingRect.height=availableSpace.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!this.xAxis||!this.yAxis)throw Error("Axes must be passed to render Plots");const drawableElem=[];for(const[i,plot]of this.chartData.plots.entries())switch(plot.type){case"line":{const linePlot=new LinePlot(plot,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);drawableElem.push(...linePlot.getDrawableElement())}break;case"bar":{const barPlot=new BarPlot(plot,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);drawableElem.push(...barPlot.getDrawableElement())}}return drawableElem}},"BasePlot"),_h);function getPlotComponent(chartConfig,chartData,chartThemeConfig){return new BasePlot(chartConfig,chartData,chartThemeConfig)}__name(getPlotComponent,"getPlotComponent");var tmpSVGGroup,Orchestrator=(__name(_i=class{constructor(chartConfig,chartData,chartThemeConfig,tmpSVGGroup2){this.chartConfig=chartConfig,this.chartData=chartData,this.componentStore={title:getChartTitleComponent(chartConfig,chartData,chartThemeConfig,tmpSVGGroup2),plot:getPlotComponent(chartConfig,chartData,chartThemeConfig),xAxis:getAxis(chartData.xAxis,chartConfig.xAxis,{titleColor:chartThemeConfig.xAxisTitleColor,labelColor:chartThemeConfig.xAxisLabelColor,tickColor:chartThemeConfig.xAxisTickColor,axisLineColor:chartThemeConfig.xAxisLineColor},tmpSVGGroup2),yAxis:getAxis(chartData.yAxis,chartConfig.yAxis,{titleColor:chartThemeConfig.yAxisTitleColor,labelColor:chartThemeConfig.yAxisLabelColor,tickColor:chartThemeConfig.yAxisTickColor,axisLineColor:chartThemeConfig.yAxisLineColor},tmpSVGGroup2)}}calculateVerticalSpace(){let availableWidth=this.chartConfig.width,availableHeight=this.chartConfig.height,plotX=0,plotY=0,chartWidth=Math.floor(availableWidth*this.chartConfig.plotReservedSpacePercent/100),chartHeight=Math.floor(availableHeight*this.chartConfig.plotReservedSpacePercent/100),spaceUsed=this.componentStore.plot.calculateSpace({width:chartWidth,height:chartHeight});availableWidth-=spaceUsed.width,availableHeight-=spaceUsed.height,spaceUsed=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:availableHeight}),plotY=spaceUsed.height,availableHeight-=spaceUsed.height,this.componentStore.xAxis.setAxisPosition("bottom"),spaceUsed=this.componentStore.xAxis.calculateSpace({width:availableWidth,height:availableHeight}),availableHeight-=spaceUsed.height,this.componentStore.yAxis.setAxisPosition("left"),spaceUsed=this.componentStore.yAxis.calculateSpace({width:availableWidth,height:availableHeight}),plotX=spaceUsed.width,availableWidth-=spaceUsed.width,availableWidth>0&&(chartWidth+=availableWidth,availableWidth=0),availableHeight>0&&(chartHeight+=availableHeight,availableHeight=0),this.componentStore.plot.calculateSpace({width:chartWidth,height:chartHeight}),this.componentStore.plot.setBoundingBoxXY({x:plotX,y:plotY}),this.componentStore.xAxis.setRange([plotX,plotX+chartWidth]),this.componentStore.xAxis.setBoundingBoxXY({x:plotX,y:plotY+chartHeight}),this.componentStore.yAxis.setRange([plotY,plotY+chartHeight]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:plotY}),this.chartData.plots.some(p=>isBarPlot(p))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let availableWidth=this.chartConfig.width,availableHeight=this.chartConfig.height,titleYEnd=0,plotX=0,plotY=0,chartWidth=Math.floor(availableWidth*this.chartConfig.plotReservedSpacePercent/100),chartHeight=Math.floor(availableHeight*this.chartConfig.plotReservedSpacePercent/100),spaceUsed=this.componentStore.plot.calculateSpace({width:chartWidth,height:chartHeight});availableWidth-=spaceUsed.width,availableHeight-=spaceUsed.height,spaceUsed=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:availableHeight}),titleYEnd=spaceUsed.height,availableHeight-=spaceUsed.height,this.componentStore.xAxis.setAxisPosition("left"),spaceUsed=this.componentStore.xAxis.calculateSpace({width:availableWidth,height:availableHeight}),availableWidth-=spaceUsed.width,plotX=spaceUsed.width,this.componentStore.yAxis.setAxisPosition("top"),spaceUsed=this.componentStore.yAxis.calculateSpace({width:availableWidth,height:availableHeight}),availableHeight-=spaceUsed.height,plotY=titleYEnd+spaceUsed.height,availableWidth>0&&(chartWidth+=availableWidth,availableWidth=0),availableHeight>0&&(chartHeight+=availableHeight,availableHeight=0),this.componentStore.plot.calculateSpace({width:chartWidth,height:chartHeight}),this.componentStore.plot.setBoundingBoxXY({x:plotX,y:plotY}),this.componentStore.yAxis.setRange([plotX,plotX+chartWidth]),this.componentStore.yAxis.setBoundingBoxXY({x:plotX,y:titleYEnd}),this.componentStore.xAxis.setRange([plotY,plotY+chartHeight]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:plotY}),this.chartData.plots.some(p=>isBarPlot(p))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const drawableElem=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const component of Object.values(this.componentStore))drawableElem.push(...component.getDrawableElements());return drawableElem}},"Orchestrator"),_i),XYChartBuilder=(__name(_j=class{static build(config,chartData,chartThemeConfig,tmpSVGGroup2){return new Orchestrator(config,chartData,chartThemeConfig,tmpSVGGroup2).getDrawableElement()}},"XYChartBuilder"),_j),plotIndex=0,xyChartConfig=getChartDefaultConfig(),xyChartThemeConfig=getChartDefaultThemeConfig(),xyChartData=getChartDefaultData(),plotColorPalette=xyChartThemeConfig.plotColorPalette.split(",").map(color=>color.trim()),hasSetXAxis=!1,hasSetYAxis=!1;function getChartDefaultThemeConfig(){const defaultThemeVariables=getThemeVariables3(),config=getConfig();return cleanAndMerge(defaultThemeVariables.xyChart,config.themeVariables.xyChart)}function getChartDefaultConfig(){const config=getConfig();return cleanAndMerge(defaultConfig_default.xyChart,config.xyChart)}function getChartDefaultData(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function textSanitizer(text){const config=getConfig();return sanitizeText(text.trim(),config)}function setTmpSVGG(SVGG){tmpSVGGroup=SVGG}function setOrientation(orientation){xyChartConfig.chartOrientation="horizontal"===orientation?"horizontal":"vertical"}function setXAxisTitle(title){xyChartData.xAxis.title=textSanitizer(title.text)}function setXAxisRangeData(min,max){xyChartData.xAxis={type:"linear",title:xyChartData.xAxis.title,min:min,max:max},hasSetXAxis=!0}function setXAxisBand(categories){xyChartData.xAxis={type:"band",title:xyChartData.xAxis.title,categories:categories.map(c=>textSanitizer(c.text))},hasSetXAxis=!0}function setYAxisTitle(title){xyChartData.yAxis.title=textSanitizer(title.text)}function setYAxisRangeData(min,max){xyChartData.yAxis={type:"linear",title:xyChartData.yAxis.title,min:min,max:max},hasSetYAxis=!0}function setYAxisRangeFromPlotData(data){const minValue=Math.min(...data),maxValue=Math.max(...data),prevMinValue=isLinearAxisData(xyChartData.yAxis)?xyChartData.yAxis.min:1/0,prevMaxValue=isLinearAxisData(xyChartData.yAxis)?xyChartData.yAxis.max:-1/0;xyChartData.yAxis={type:"linear",title:xyChartData.yAxis.title,min:Math.min(prevMinValue,minValue),max:Math.max(prevMaxValue,maxValue)}}function transformDataWithoutCategory(data){let retData=[];if(0===data.length)return retData;if(!hasSetXAxis){const prevMinValue=isLinearAxisData(xyChartData.xAxis)?xyChartData.xAxis.min:1/0,prevMaxValue=isLinearAxisData(xyChartData.xAxis)?xyChartData.xAxis.max:-1/0;setXAxisRangeData(Math.min(prevMinValue,1),Math.max(prevMaxValue,data.length))}if(hasSetYAxis||setYAxisRangeFromPlotData(data),isBandAxisData(xyChartData.xAxis)&&(retData=xyChartData.xAxis.categories.map((c,i)=>[c,data[i]])),isLinearAxisData(xyChartData.xAxis)){const min=xyChartData.xAxis.min,max=xyChartData.xAxis.max,step=(max-min)/(data.length-1),categories=[];for(let i=min;i<=max;i+=step)categories.push(`${i}`);retData=categories.map((c,i)=>[c,data[i]])}return retData}function getPlotColorFromPalette(plotIndex2){return plotColorPalette[0===plotIndex2?0:plotIndex2%plotColorPalette.length]}function setLineData(title,data){const plotData=transformDataWithoutCategory(data);xyChartData.plots.push({type:"line",strokeFill:getPlotColorFromPalette(plotIndex),strokeWidth:2,data:plotData}),plotIndex++}function setBarData(title,data){const plotData=transformDataWithoutCategory(data);xyChartData.plots.push({type:"bar",fill:getPlotColorFromPalette(plotIndex),data:plotData}),plotIndex++}function getDrawableElem(){if(0===xyChartData.plots.length)throw Error("No Plot to render, please provide a plot with some data");return xyChartData.title=getDiagramTitle(),XYChartBuilder.build(xyChartConfig,xyChartData,xyChartThemeConfig,tmpSVGGroup)}function getChartThemeConfig(){return xyChartThemeConfig}function getChartConfig(){return xyChartConfig}function getXYChartData(){return xyChartData}__name(getChartDefaultThemeConfig,"getChartDefaultThemeConfig"),__name(getChartDefaultConfig,"getChartDefaultConfig"),__name(getChartDefaultData,"getChartDefaultData"),__name(textSanitizer,"textSanitizer"),__name(setTmpSVGG,"setTmpSVGG"),__name(setOrientation,"setOrientation"),__name(setXAxisTitle,"setXAxisTitle"),__name(setXAxisRangeData,"setXAxisRangeData"),__name(setXAxisBand,"setXAxisBand"),__name(setYAxisTitle,"setYAxisTitle"),__name(setYAxisRangeData,"setYAxisRangeData"),__name(setYAxisRangeFromPlotData,"setYAxisRangeFromPlotData"),__name(transformDataWithoutCategory,"transformDataWithoutCategory"),__name(getPlotColorFromPalette,"getPlotColorFromPalette"),__name(setLineData,"setLineData"),__name(setBarData,"setBarData"),__name(getDrawableElem,"getDrawableElem"),__name(getChartThemeConfig,"getChartThemeConfig"),__name(getChartConfig,"getChartConfig"),__name(getXYChartData,"getXYChartData");var diagram={parser:xychart_default,db:{getDrawableElem:getDrawableElem,clear:__name(function(){clear(),plotIndex=0,xyChartConfig=getChartDefaultConfig(),xyChartData={yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]},xyChartThemeConfig=getChartDefaultThemeConfig(),plotColorPalette=xyChartThemeConfig.plotColorPalette.split(",").map(color=>color.trim()),hasSetXAxis=!1,hasSetYAxis=!1},"clear"),setAccTitle:setAccTitle,getAccTitle:getAccTitle,setDiagramTitle:setDiagramTitle,getDiagramTitle:getDiagramTitle,getAccDescription:getAccDescription,setAccDescription:setAccDescription,setOrientation:setOrientation,setXAxisTitle:setXAxisTitle,setXAxisRangeData:setXAxisRangeData,setXAxisBand:setXAxisBand,setYAxisTitle:setYAxisTitle,setYAxisRangeData:setYAxisRangeData,setLineData:setLineData,setBarData:setBarData,setTmpSVGG:setTmpSVGG,getChartThemeConfig:getChartThemeConfig,getChartConfig:getChartConfig,getXYChartData:getXYChartData},renderer:{draw:__name((txt,id,_version,diagObj)=>{const db=diagObj.db,themeConfig=db.getChartThemeConfig(),chartConfig=db.getChartConfig(),labelData=db.getXYChartData().plots[0].data.map(data=>data[1]);function getDominantBaseLine(horizontalPos){return"top"===horizontalPos?"text-before-edge":"middle"}function getTextAnchor(verticalPos){return"left"===verticalPos?"start":"right"===verticalPos?"end":"middle"}function getTextTransformation(data){return`translate(${data.x}, ${data.y}) rotate(${data.rotation||0})`}__name(getDominantBaseLine,"getDominantBaseLine"),__name(getTextAnchor,"getTextAnchor"),__name(getTextTransformation,"getTextTransformation"),log.debug("Rendering xychart chart\n"+txt);const svg=selectSvgElement(id),group=svg.append("g").attr("class","main"),background=group.append("rect").attr("width",chartConfig.width).attr("height",chartConfig.height).attr("class","background");configureSvgSize(svg,chartConfig.height,chartConfig.width,!0),svg.attr("viewBox",`0 0 ${chartConfig.width} ${chartConfig.height}`),background.attr("fill",themeConfig.backgroundColor),db.setTmpSVGG(svg.append("g").attr("class","mermaid-tmp-group"));const shapes=db.getDrawableElem(),groups={};function getGroup(gList){let elem=group,prefix="";for(const[i]of gList.entries()){let parent=group;i>0&&groups[prefix]&&(parent=groups[prefix]),prefix+=gList[i],elem=groups[prefix],elem||(elem=groups[prefix]=parent.append("g").attr("class",gList[i]))}return elem}__name(getGroup,"getGroup");for(const shape of shapes){if(0===shape.data.length)continue;const shapeGroup=getGroup(shape.groupTexts);switch(shape.type){case"rect":if(shapeGroup.selectAll("rect").data(shape.data).enter().append("rect").attr("x",data=>data.x).attr("y",data=>data.y).attr("width",data=>data.width).attr("height",data=>data.height).attr("fill",data=>data.fill).attr("stroke",data=>data.strokeFill).attr("stroke-width",data=>data.strokeWidth),chartConfig.showDataLabel){const showDataLabelOutsideBar=chartConfig.showDataLabelOutsideBar;if("horizontal"===chartConfig.chartOrientation){let fitsHorizontally2=function(item,fontSize){const{data:data,label:label}=item;return fontSize*label.length*charWidthFactor<=data.width-rightMargin};__name(fitsHorizontally2,"fitsHorizontally");const charWidthFactor=.7,rightMargin=10,validItems=shape.data.map((d,i)=>({data:d,label:labelData[i].toString()})).filter(item=>item.data.width>0&&item.data.height>0),candidateFontSizes=validItems.map(item=>{const{data:data}=item;let fontSize=.7*data.height;for(;!fitsHorizontally2(item,fontSize)&&fontSize>0;)fontSize-=1;return fontSize}),uniformFontSize=Math.floor(Math.min(...candidateFontSizes)),determineLabelXPosition=__name(item=>showDataLabelOutsideBar?item.data.x+item.data.width+rightMargin:item.data.x+item.data.width-rightMargin,"determineLabelXPosition");shapeGroup.selectAll("text").data(validItems).enter().append("text").attr("x",determineLabelXPosition).attr("y",item=>item.data.y+item.data.height/2).attr("text-anchor",showDataLabelOutsideBar?"start":"end").attr("dominant-baseline","middle").attr("fill",themeConfig.dataLabelColor).attr("font-size",`${uniformFontSize}px`).text(item=>item.label)}else{let fitsInBar2=function(item,fontSize,yOffset2){const{data:data,label:label}=item,textWidth=fontSize*label.length*.7,centerX=data.x+data.width/2,rightEdge=centerX+textWidth/2,horizontalFits=centerX-textWidth/2>=data.x&&rightEdge<=data.x+data.width,verticalFits=data.y+yOffset2+fontSize<=data.y+data.height;return horizontalFits&&verticalFits};__name(fitsInBar2,"fitsInBar");const yOffset=10,validItems=shape.data.map((d,i)=>({data:d,label:labelData[i].toString()})).filter(item=>item.data.width>0&&item.data.height>0),candidateFontSizes=validItems.map(item=>{const{data:data,label:label}=item;let fontSize=data.width/(.7*label.length);for(;!fitsInBar2(item,fontSize,yOffset)&&fontSize>0;)fontSize-=1;return fontSize}),uniformFontSize=Math.floor(Math.min(...candidateFontSizes)),determineLabelYPosition=__name(item=>showDataLabelOutsideBar?item.data.y-yOffset:item.data.y+yOffset,"determineLabelYPosition");shapeGroup.selectAll("text").data(validItems).enter().append("text").attr("x",item=>item.data.x+item.data.width/2).attr("y",determineLabelYPosition).attr("text-anchor","middle").attr("dominant-baseline",showDataLabelOutsideBar?"auto":"hanging").attr("fill",themeConfig.dataLabelColor).attr("font-size",`${uniformFontSize}px`).text(item=>item.label)}}break;case"text":shapeGroup.selectAll("text").data(shape.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",data=>data.fill).attr("font-size",data=>data.fontSize).attr("dominant-baseline",data=>getDominantBaseLine(data.verticalPos)).attr("text-anchor",data=>getTextAnchor(data.horizontalPos)).attr("transform",data=>getTextTransformation(data)).text(data=>data.text);break;case"path":shapeGroup.selectAll("path").data(shape.data).enter().append("path").attr("d",data=>data.path).attr("fill",data=>data.fill?data.fill:"none").attr("stroke",data=>data.strokeFill).attr("stroke-width",data=>data.strokeWidth)}}},"draw")}};export{diagram};