INTO-CPS-Association/DTaaS

View on GitHub
docs/developer/client/src.svg

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: G Pages: 1 -->
<svg width="1184pt" height="1167pt"
 viewBox="0.00 0.00 1184.44 1166.56" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(21.6 1144.96)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-21.6,21.6 -21.6,-1144.96 1162.84,-1144.96 1162.84,21.6 -21.6,21.6"/>
<!-- AppProvider.tsx -->
<g id="node1" class="node">
<title>AppProvider.tsx</title>
<path fill="none" stroke="black" d="M823.84,-756.63C823.84,-756.63 750.51,-756.63 750.51,-756.63 747.34,-756.63 744.18,-753.47 744.18,-750.3 744.18,-750.3 744.18,-743.97 744.18,-743.97 744.18,-740.8 747.34,-737.63 750.51,-737.63 750.51,-737.63 823.84,-737.63 823.84,-737.63 827.01,-737.63 830.18,-740.8 830.18,-743.97 830.18,-743.97 830.18,-750.3 830.18,-750.3 830.18,-753.47 827.01,-756.63 823.84,-756.63"/>
<text text-anchor="middle" x="787.18" y="-744.63" font-family="Arial" font-size="10.00">AppProvider.tsx</text>
</g>
<!-- route/auth/AuthProvider.tsx -->
<g id="node2" class="node">
<title>route/auth/AuthProvider.tsx</title>
<path fill="none" stroke="black" d="M1040.57,-857.06C1040.57,-857.06 917.24,-857.06 917.24,-857.06 914.07,-857.06 910.91,-853.89 910.91,-850.73 910.91,-850.73 910.91,-844.39 910.91,-844.39 910.91,-841.23 914.07,-838.06 917.24,-838.06 917.24,-838.06 1040.57,-838.06 1040.57,-838.06 1043.74,-838.06 1046.91,-841.23 1046.91,-844.39 1046.91,-844.39 1046.91,-850.73 1046.91,-850.73 1046.91,-853.89 1043.74,-857.06 1040.57,-857.06"/>
<text text-anchor="middle" x="978.91" y="-845.06" font-family="Arial" font-size="10.00">route/auth/AuthProvider.tsx</text>
</g>
<!-- AppProvider.tsx&#45;&gt;route/auth/AuthProvider.tsx -->
<g id="edge1" class="edge">
<title>AppProvider.tsx&#45;&gt;route/auth/AuthProvider.tsx</title>
<path fill="none" stroke="green" d="M803.63,-756.76C891.62,-808.2 913.28,-820.57 945.47,-834.13"/>
<polygon fill="green" stroke="green" points="944.32,-837.44 954.9,-838.02 946.99,-830.97 944.32,-837.44"/>
</g>
<!-- store/store.ts -->
<g id="node3" class="node">
<title>store/store.ts</title>
<path fill="none" stroke="black" d="M644.59,-852.36C644.59,-852.36 583.26,-852.36 583.26,-852.36 580.09,-852.36 576.92,-849.19 576.92,-846.02 576.92,-846.02 576.92,-839.69 576.92,-839.69 576.92,-836.52 580.09,-833.36 583.26,-833.36 583.26,-833.36 644.59,-833.36 644.59,-833.36 647.76,-833.36 650.92,-836.52 650.92,-839.69 650.92,-839.69 650.92,-846.02 650.92,-846.02 650.92,-849.19 647.76,-852.36 644.59,-852.36"/>
<text text-anchor="middle" x="613.92" y="-840.36" font-family="Arial" font-size="10.00">store/store.ts</text>
</g>
<!-- AppProvider.tsx&#45;&gt;store/store.ts -->
<g id="edge2" class="edge">
<title>AppProvider.tsx&#45;&gt;store/store.ts</title>
<path fill="none" stroke="green" d="M779.22,-756.87C730.6,-816.21 718.88,-827.49 661.06,-836.54"/>
<polygon fill="green" stroke="green" points="660.33,-833.11 650.96,-838.04 661.36,-840.03 660.33,-833.11"/>
</g>
<!-- util/auth/useOidcConfig.ts -->
<g id="node32" class="node">
<title>util/auth/useOidcConfig.ts</title>
<path fill="none" stroke="black" d="M923.56,-701.61C923.56,-701.61 806.23,-701.61 806.23,-701.61 803.06,-701.61 799.9,-698.45 799.9,-695.28 799.9,-695.28 799.9,-688.95 799.9,-688.95 799.9,-685.78 803.06,-682.61 806.23,-682.61 806.23,-682.61 923.56,-682.61 923.56,-682.61 926.73,-682.61 929.9,-685.78 929.9,-688.95 929.9,-688.95 929.9,-695.28 929.9,-695.28 929.9,-698.45 926.73,-701.61 923.56,-701.61"/>
<text text-anchor="middle" x="864.9" y="-689.61" font-family="Arial" font-size="10.00">util/auth/useOidcConfig.ts</text>
</g>
<!-- route/auth/AuthProvider.tsx&#45;&gt;util/auth/useOidcConfig.ts -->
<g id="edge36" class="edge">
<title>route/auth/AuthProvider.tsx&#45;&gt;util/auth/useOidcConfig.ts</title>
<path fill="none" stroke="green" d="M974.94,-837.92C956.1,-792.39 950.51,-784.69 880.74,-709.23"/>
<polygon fill="green" stroke="green" points="883.15,-706.68 873.79,-701.72 878.01,-711.44 883.15,-706.68"/>
</g>
<!-- store/menu.slice.ts -->
<g id="node27" class="node">
<title>store/menu.slice.ts</title>
<path fill="none" stroke="green" d="M560.83,-1010.58C560.83,-1010.58 473.5,-1010.58 473.5,-1010.58 470.33,-1010.58 467.17,-1007.41 467.17,-1004.25 467.17,-1004.25 467.17,-997.91 467.17,-997.91 467.17,-994.75 470.33,-991.58 473.5,-991.58 473.5,-991.58 560.83,-991.58 560.83,-991.58 564,-991.58 567.17,-994.75 567.17,-997.91 567.17,-997.91 567.17,-1004.25 567.17,-1004.25 567.17,-1007.41 564,-1010.58 560.83,-1010.58"/>
<text text-anchor="middle" x="517.17" y="-998.58" font-family="Arial" font-size="10.00" fill="green">store/menu.slice.ts</text>
</g>
<!-- store/store.ts&#45;&gt;store/menu.slice.ts -->
<g id="edge57" class="edge">
<title>store/store.ts&#45;&gt;store/menu.slice.ts</title>
<path fill="none" stroke="green" d="M609.88,-852.45C571.89,-942.69 565.1,-957.4 535.73,-984.53"/>
<polygon fill="green" stroke="green" points="533.28,-982.04 528.21,-991.34 537.97,-987.23 533.28,-982.04"/>
</g>
<!-- store/auth.slice.ts -->
<g id="node36" class="node">
<title>store/auth.slice.ts</title>
<path fill="none" stroke="green" d="M747.73,-978.04C747.73,-978.04 665.4,-978.04 665.4,-978.04 662.23,-978.04 659.07,-974.87 659.07,-971.71 659.07,-971.71 659.07,-965.37 659.07,-965.37 659.07,-962.21 662.23,-959.04 665.4,-959.04 665.4,-959.04 747.73,-959.04 747.73,-959.04 750.9,-959.04 754.07,-962.21 754.07,-965.37 754.07,-965.37 754.07,-971.71 754.07,-971.71 754.07,-974.87 750.9,-978.04 747.73,-978.04"/>
<text text-anchor="middle" x="706.57" y="-966.04" font-family="Arial" font-size="10.00" fill="green">store/auth.slice.ts</text>
</g>
<!-- store/store.ts&#45;&gt;store/auth.slice.ts -->
<g id="edge56" class="edge">
<title>store/store.ts&#45;&gt;store/auth.slice.ts</title>
<path fill="none" stroke="green" d="M619.59,-852.59C658.29,-919.01 667.01,-933.23 687.69,-952.17"/>
<polygon fill="green" stroke="green" points="685.42,-954.84 695.23,-958.86 690.07,-949.6 685.42,-954.84"/>
</g>
<!-- components/Iframe.tsx -->
<g id="node4" class="node">
<title>components/Iframe.tsx</title>
<path fill="none" stroke="green" d="M515.45,-313.38C515.45,-313.38 411.12,-313.38 411.12,-313.38 407.95,-313.38 404.78,-310.21 404.78,-307.05 404.78,-307.05 404.78,-300.71 404.78,-300.71 404.78,-297.55 407.95,-294.38 411.12,-294.38 411.12,-294.38 515.45,-294.38 515.45,-294.38 518.62,-294.38 521.78,-297.55 521.78,-300.71 521.78,-300.71 521.78,-307.05 521.78,-307.05 521.78,-310.21 518.62,-313.38 515.45,-313.38"/>
<text text-anchor="middle" x="463.28" y="-301.38" font-family="Arial" font-size="10.00" fill="green">components/Iframe.tsx</text>
</g>
<!-- components/LinkButtons.tsx -->
<g id="node5" class="node">
<title>components/LinkButtons.tsx</title>
<path fill="none" stroke="black" d="M396.51,-624.04C396.51,-624.04 268.18,-624.04 268.18,-624.04 265.01,-624.04 261.84,-620.87 261.84,-617.7 261.84,-617.7 261.84,-611.37 261.84,-611.37 261.84,-608.2 265.01,-605.04 268.18,-605.04 268.18,-605.04 396.51,-605.04 396.51,-605.04 399.68,-605.04 402.84,-608.2 402.84,-611.37 402.84,-611.37 402.84,-617.7 402.84,-617.7 402.84,-620.87 399.68,-624.04 396.51,-624.04"/>
<text text-anchor="middle" x="332.34" y="-612.04" font-family="Arial" font-size="10.00">components/LinkButtons.tsx</text>
</g>
<!-- components/LinkIconsLib.tsx -->
<g id="node6" class="node">
<title>components/LinkIconsLib.tsx</title>
<path fill="none" stroke="green" d="M178.88,-586.78C178.88,-586.78 47.54,-586.78 47.54,-586.78 44.38,-586.78 41.21,-583.62 41.21,-580.45 41.21,-580.45 41.21,-574.12 41.21,-574.12 41.21,-570.95 44.38,-567.78 47.54,-567.78 47.54,-567.78 178.88,-567.78 178.88,-567.78 182.04,-567.78 185.21,-570.95 185.21,-574.12 185.21,-574.12 185.21,-580.45 185.21,-580.45 185.21,-583.62 182.04,-586.78 178.88,-586.78"/>
<text text-anchor="middle" x="113.21" y="-574.78" font-family="Arial" font-size="10.00" fill="green">components/LinkIconsLib.tsx</text>
</g>
<!-- components/LinkButtons.tsx&#45;&gt;components/LinkIconsLib.tsx -->
<g id="edge3" class="edge">
<title>components/LinkButtons.tsx&#45;&gt;components/LinkIconsLib.tsx</title>
<path fill="none" stroke="green" d="M261.83,-607.89C200.32,-601.84 177.99,-598.37 150.45,-589.9"/>
<polygon fill="green" stroke="green" points="151.43,-586.54 140.84,-586.83 149.3,-593.21 151.43,-586.54"/>
</g>
<!-- util/envUtil.ts -->
<g id="node7" class="node">
<title>util/envUtil.ts</title>
<path fill="none" stroke="black" d="M664.27,-622.97C664.27,-622.97 602.94,-622.97 602.94,-622.97 599.77,-622.97 596.6,-619.8 596.6,-616.63 596.6,-616.63 596.6,-610.3 596.6,-610.3 596.6,-607.13 599.77,-603.97 602.94,-603.97 602.94,-603.97 664.27,-603.97 664.27,-603.97 667.44,-603.97 670.6,-607.13 670.6,-610.3 670.6,-610.3 670.6,-616.63 670.6,-616.63 670.6,-619.8 667.44,-622.97 664.27,-622.97"/>
<text text-anchor="middle" x="633.6" y="-610.97" font-family="Arial" font-size="10.00">util/envUtil.ts</text>
</g>
<!-- components/LinkButtons.tsx&#45;&gt;util/envUtil.ts -->
<g id="edge4" class="edge">
<title>components/LinkButtons.tsx&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M363.99,-624.09C427.38,-642.49 450.82,-641.56 586.46,-620.76"/>
<polygon fill="green" stroke="green" points="587.07,-624.2 596.43,-619.23 586.01,-617.29 587.07,-624.2"/>
</g>
<!-- util/envUtil.ts&#45;&gt;store/store.ts -->
<g id="edge61" class="edge">
<title>util/envUtil.ts&#45;&gt;store/store.ts</title>
<path fill="none" stroke="green" d="M633.86,-623.02C637.36,-756.75 637.33,-771.63 620.41,-823.4"/>
<polygon fill="green" stroke="green" points="617,-822.56 617.18,-833.15 623.65,-824.76 617,-822.56"/>
</g>
<!-- components/tab/TabComponent.tsx -->
<g id="node8" class="node">
<title>components/tab/TabComponent.tsx</title>
<path fill="none" stroke="black" d="M926.2,-344.42C926.2,-344.42 766.86,-344.42 766.86,-344.42 763.7,-344.42 760.53,-341.26 760.53,-338.09 760.53,-338.09 760.53,-331.76 760.53,-331.76 760.53,-328.59 763.7,-325.42 766.86,-325.42 766.86,-325.42 926.2,-325.42 926.2,-325.42 929.36,-325.42 932.53,-328.59 932.53,-331.76 932.53,-331.76 932.53,-338.09 932.53,-338.09 932.53,-341.26 929.36,-344.42 926.2,-344.42"/>
<text text-anchor="middle" x="846.53" y="-332.42" font-family="Arial" font-size="10.00">components/tab/TabComponent.tsx</text>
</g>
<!-- components/tab/subcomponents/TabRender.tsx -->
<g id="node9" class="node">
<title>components/tab/subcomponents/TabRender.tsx</title>
<path fill="none" stroke="green" d="M892.42,-225.9C892.42,-225.9 680.08,-225.9 680.08,-225.9 676.92,-225.9 673.75,-222.73 673.75,-219.57 673.75,-219.57 673.75,-213.23 673.75,-213.23 673.75,-210.07 676.92,-206.9 680.08,-206.9 680.08,-206.9 892.42,-206.9 892.42,-206.9 895.58,-206.9 898.75,-210.07 898.75,-213.23 898.75,-213.23 898.75,-219.57 898.75,-219.57 898.75,-222.73 895.58,-225.9 892.42,-225.9"/>
<text text-anchor="middle" x="786.25" y="-213.9" font-family="Arial" font-size="10.00" fill="green">components/tab/subcomponents/TabRender.tsx</text>
</g>
<!-- components/tab/TabComponent.tsx&#45;&gt;components/tab/subcomponents/TabRender.tsx -->
<g id="edge5" class="edge">
<title>components/tab/TabComponent.tsx&#45;&gt;components/tab/subcomponents/TabRender.tsx</title>
<path fill="none" stroke="green" d="M844.94,-325.11C835.53,-267.13 832.6,-256.27 805.72,-232.72"/>
<polygon fill="green" stroke="green" points="807.8,-229.89 797.92,-226.06 803.26,-235.22 807.8,-229.89"/>
</g>
<!-- components/tab/subcomponents/TabStyles.ts -->
<g id="node10" class="node">
<title>components/tab/subcomponents/TabStyles.ts</title>
<path fill="none" stroke="green" d="M1134.9,-224.86C1134.9,-224.86 931.57,-224.86 931.57,-224.86 928.4,-224.86 925.24,-221.7 925.24,-218.53 925.24,-218.53 925.24,-212.2 925.24,-212.2 925.24,-209.03 928.4,-205.86 931.57,-205.86 931.57,-205.86 1134.9,-205.86 1134.9,-205.86 1138.07,-205.86 1141.24,-209.03 1141.24,-212.2 1141.24,-212.2 1141.24,-218.53 1141.24,-218.53 1141.24,-221.7 1138.07,-224.86 1134.9,-224.86"/>
<text text-anchor="middle" x="1033.24" y="-212.86" font-family="Arial" font-size="10.00" fill="green">components/tab/subcomponents/TabStyles.ts</text>
</g>
<!-- components/tab/TabComponent.tsx&#45;&gt;components/tab/subcomponents/TabStyles.ts -->
<g id="edge6" class="edge">
<title>components/tab/TabComponent.tsx&#45;&gt;components/tab/subcomponents/TabStyles.ts</title>
<path fill="none" stroke="green" d="M860.65,-325.36C954.12,-262.05 972.62,-249.69 1006.9,-230.17"/>
<polygon fill="green" stroke="green" points="1009.03,-232.98 1016.01,-225.01 1005.58,-226.89 1009.03,-232.98"/>
</g>
<!-- index.tsx -->
<g id="node11" class="node">
<title>index.tsx</title>
<path fill="none" stroke="black" d="M757.16,-529.1C757.16,-529.1 713.83,-529.1 713.83,-529.1 710.66,-529.1 707.49,-525.94 707.49,-522.77 707.49,-522.77 707.49,-516.44 707.49,-516.44 707.49,-513.27 710.66,-510.1 713.83,-510.1 713.83,-510.1 757.16,-510.1 757.16,-510.1 760.33,-510.1 763.49,-513.27 763.49,-516.44 763.49,-516.44 763.49,-522.77 763.49,-522.77 763.49,-525.94 760.33,-529.1 757.16,-529.1"/>
<text text-anchor="middle" x="735.49" y="-517.1" font-family="Arial" font-size="10.00">index.tsx</text>
</g>
<!-- index.tsx&#45;&gt;AppProvider.tsx -->
<g id="edge7" class="edge">
<title>index.tsx&#45;&gt;AppProvider.tsx</title>
<path fill="none" stroke="green" d="M740.65,-529.27C800.2,-640.84 804.27,-651.24 790.77,-727.33"/>
<polygon fill="green" stroke="green" points="787.27,-727 788.95,-737.46 794.16,-728.24 787.27,-727"/>
</g>
<!-- index.tsx&#45;&gt;util/envUtil.ts -->
<g id="edge15" class="edge">
<title>index.tsx&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M730.66,-529.56C714.26,-562.96 708.03,-569.69 658.83,-598.73"/>
<polygon fill="green" stroke="green" points="657.05,-595.71 650.2,-603.79 660.6,-601.75 657.05,-595.71"/>
</g>
<!-- page/LayoutPublic.tsx -->
<g id="node12" class="node">
<title>page/LayoutPublic.tsx</title>
<path fill="none" stroke="black" d="M465.6,-478.55C465.6,-478.55 365.27,-478.55 365.27,-478.55 362.1,-478.55 358.93,-475.38 358.93,-472.22 358.93,-472.22 358.93,-465.88 358.93,-465.88 358.93,-462.72 362.1,-459.55 365.27,-459.55 365.27,-459.55 465.6,-459.55 465.6,-459.55 468.77,-459.55 471.93,-462.72 471.93,-465.88 471.93,-465.88 471.93,-472.22 471.93,-472.22 471.93,-475.38 468.77,-478.55 465.6,-478.55"/>
<text text-anchor="middle" x="415.43" y="-466.55" font-family="Arial" font-size="10.00">page/LayoutPublic.tsx</text>
</g>
<!-- index.tsx&#45;&gt;page/LayoutPublic.tsx -->
<g id="edge8" class="edge">
<title>index.tsx&#45;&gt;page/LayoutPublic.tsx</title>
<path fill="none" stroke="green" d="M718.82,-509.96C596.35,-439.25 577.26,-431.96 465.84,-457.19"/>
<polygon fill="green" stroke="green" points="464.82,-453.84 455.85,-459.48 466.38,-460.66 464.82,-453.84"/>
</g>
<!-- route/auth/Account.tsx -->
<g id="node13" class="node">
<title>route/auth/Account.tsx</title>
<path fill="none" stroke="black" d="M746.1,-347.16C746.1,-347.16 642.76,-347.16 642.76,-347.16 639.6,-347.16 636.43,-343.99 636.43,-340.83 636.43,-340.83 636.43,-334.49 636.43,-334.49 636.43,-331.33 639.6,-328.16 642.76,-328.16 642.76,-328.16 746.1,-328.16 746.1,-328.16 749.26,-328.16 752.43,-331.33 752.43,-334.49 752.43,-334.49 752.43,-340.83 752.43,-340.83 752.43,-343.99 749.26,-347.16 746.1,-347.16"/>
<text text-anchor="middle" x="694.43" y="-335.16" font-family="Arial" font-size="10.00">route/auth/Account.tsx</text>
</g>
<!-- index.tsx&#45;&gt;route/auth/Account.tsx -->
<g id="edge9" class="edge">
<title>index.tsx&#45;&gt;route/auth/Account.tsx</title>
<path fill="none" stroke="green" d="M736.06,-510C741.71,-414.25 741.22,-402.97 707.39,-355.54"/>
<polygon fill="green" stroke="green" points="710.12,-353.33 701.43,-347.27 704.44,-357.43 710.12,-353.33"/>
</g>
<!-- route/auth/PrivateRoute.tsx -->
<g id="node14" class="node">
<title>route/auth/PrivateRoute.tsx</title>
<path fill="none" stroke="black" d="M994.42,-611.01C994.42,-611.01 870.09,-611.01 870.09,-611.01 866.92,-611.01 863.76,-607.84 863.76,-604.67 863.76,-604.67 863.76,-598.34 863.76,-598.34 863.76,-595.17 866.92,-592.01 870.09,-592.01 870.09,-592.01 994.42,-592.01 994.42,-592.01 997.59,-592.01 1000.76,-595.17 1000.76,-598.34 1000.76,-598.34 1000.76,-604.67 1000.76,-604.67 1000.76,-607.84 997.59,-611.01 994.42,-611.01"/>
<text text-anchor="middle" x="932.26" y="-599.01" font-family="Arial" font-size="10.00">route/auth/PrivateRoute.tsx</text>
</g>
<!-- index.tsx&#45;&gt;route/auth/PrivateRoute.tsx -->
<g id="edge10" class="edge">
<title>index.tsx&#45;&gt;route/auth/PrivateRoute.tsx</title>
<path fill="none" stroke="green" d="M763.57,-527.73C858.76,-555.35 876.52,-561.68 910.55,-585.69"/>
<polygon fill="green" stroke="green" points="908.93,-588.84 919.09,-591.83 913.01,-583.16 908.93,-588.84"/>
</g>
<!-- route/auth/Signin.tsx -->
<g id="node15" class="node">
<title>route/auth/Signin.tsx</title>
<path fill="none" stroke="green" d="M1011.43,-459.02C1011.43,-459.02 917.1,-459.02 917.1,-459.02 913.93,-459.02 910.76,-455.86 910.76,-452.69 910.76,-452.69 910.76,-446.36 910.76,-446.36 910.76,-443.19 913.93,-440.02 917.1,-440.02 917.1,-440.02 1011.43,-440.02 1011.43,-440.02 1014.6,-440.02 1017.76,-443.19 1017.76,-446.36 1017.76,-446.36 1017.76,-452.69 1017.76,-452.69 1017.76,-455.86 1014.6,-459.02 1011.43,-459.02"/>
<text text-anchor="middle" x="964.26" y="-447.02" font-family="Arial" font-size="10.00" fill="green">route/auth/Signin.tsx</text>
</g>
<!-- index.tsx&#45;&gt;route/auth/Signin.tsx -->
<g id="edge11" class="edge">
<title>index.tsx&#45;&gt;route/auth/Signin.tsx</title>
<path fill="none" stroke="green" d="M763.76,-511.19C864.02,-481.34 890.71,-473.33 925.48,-462.14"/>
<polygon fill="green" stroke="green" points="926.61,-465.45 935.05,-459.05 924.46,-458.79 926.61,-465.45"/>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx -->
<g id="node16" class="node">
<title>route/digitaltwins/DigitalTwins.tsx</title>
<path fill="none" stroke="black" d="M695.72,-393.02C695.72,-393.02 545.39,-393.02 545.39,-393.02 542.22,-393.02 539.05,-389.85 539.05,-386.68 539.05,-386.68 539.05,-380.35 539.05,-380.35 539.05,-377.18 542.22,-374.02 545.39,-374.02 545.39,-374.02 695.72,-374.02 695.72,-374.02 698.89,-374.02 702.05,-377.18 702.05,-380.35 702.05,-380.35 702.05,-386.68 702.05,-386.68 702.05,-389.85 698.89,-393.02 695.72,-393.02"/>
<text text-anchor="middle" x="620.55" y="-381.02" font-family="Arial" font-size="10.00">route/digitaltwins/DigitalTwins.tsx</text>
</g>
<!-- index.tsx&#45;&gt;route/digitaltwins/DigitalTwins.tsx -->
<g id="edge12" class="edge">
<title>index.tsx&#45;&gt;route/digitaltwins/DigitalTwins.tsx</title>
<path fill="none" stroke="green" d="M732.17,-510.08C706.63,-436.98 701.18,-426.35 647.97,-397.83"/>
<polygon fill="green" stroke="green" points="649.49,-394.68 639.01,-393.09 646.21,-400.86 649.49,-394.68"/>
</g>
<!-- route/library/Library.tsx -->
<g id="node17" class="node">
<title>route/library/Library.tsx</title>
<path fill="none" stroke="black" d="M690.62,-478.96C690.62,-478.96 587.28,-478.96 587.28,-478.96 584.12,-478.96 580.95,-475.79 580.95,-472.63 580.95,-472.63 580.95,-466.29 580.95,-466.29 580.95,-463.13 584.12,-459.96 587.28,-459.96 587.28,-459.96 690.62,-459.96 690.62,-459.96 693.78,-459.96 696.95,-463.13 696.95,-466.29 696.95,-466.29 696.95,-472.63 696.95,-472.63 696.95,-475.79 693.78,-478.96 690.62,-478.96"/>
<text text-anchor="middle" x="638.95" y="-466.96" font-family="Arial" font-size="10.00">route/library/Library.tsx</text>
</g>
<!-- index.tsx&#45;&gt;route/library/Library.tsx -->
<g id="edge13" class="edge">
<title>index.tsx&#45;&gt;route/library/Library.tsx</title>
<path fill="none" stroke="green" d="M727.63,-510.06C714.61,-494.5 707.19,-487.64 691.05,-482.03"/>
<polygon fill="green" stroke="green" points="691.69,-478.57 681.1,-479 689.65,-485.26 691.69,-478.57"/>
</g>
<!-- route/workbench/Workbench.tsx -->
<g id="node18" class="node">
<title>route/workbench/Workbench.tsx</title>
<path fill="none" stroke="black" d="M582.2,-624.46C582.2,-624.46 437.86,-624.46 437.86,-624.46 434.7,-624.46 431.53,-621.3 431.53,-618.13 431.53,-618.13 431.53,-611.8 431.53,-611.8 431.53,-608.63 434.7,-605.46 437.86,-605.46 437.86,-605.46 582.2,-605.46 582.2,-605.46 585.36,-605.46 588.53,-608.63 588.53,-611.8 588.53,-611.8 588.53,-618.13 588.53,-618.13 588.53,-621.3 585.36,-624.46 582.2,-624.46"/>
<text text-anchor="middle" x="510.03" y="-612.46" font-family="Arial" font-size="10.00">route/workbench/Workbench.tsx</text>
</g>
<!-- index.tsx&#45;&gt;route/workbench/Workbench.tsx -->
<g id="edge14" class="edge">
<title>index.tsx&#45;&gt;route/workbench/Workbench.tsx</title>
<path fill="none" stroke="green" d="M723.85,-529.2C676.76,-567.79 663.78,-574.15 555.99,-602.83"/>
<polygon fill="green" stroke="green" points="555.09,-599.45 546.32,-605.4 556.89,-606.22 555.09,-599.45"/>
</g>
<!-- page/LayoutPublic.tsx&#45;&gt;components/LinkButtons.tsx -->
<g id="edge21" class="edge">
<title>page/LayoutPublic.tsx&#45;&gt;components/LinkButtons.tsx</title>
<path fill="none" stroke="green" d="M404.99,-478.73C347.03,-532.57 340.88,-540.85 334.55,-594.6"/>
<polygon fill="green" stroke="green" points="331.05,-594.47 333.4,-604.8 338,-595.25 331.05,-594.47"/>
</g>
<!-- page/Footer.tsx -->
<g id="node23" class="node">
<title>page/Footer.tsx</title>
<path fill="none" stroke="green" d="M318.67,-397.38C318.67,-397.38 246.33,-397.38 246.33,-397.38 243.17,-397.38 240,-394.22 240,-391.05 240,-391.05 240,-384.72 240,-384.72 240,-381.55 243.17,-378.38 246.33,-378.38 246.33,-378.38 318.67,-378.38 318.67,-378.38 321.83,-378.38 325,-381.55 325,-384.72 325,-384.72 325,-391.05 325,-391.05 325,-394.22 321.83,-397.38 318.67,-397.38"/>
<text text-anchor="middle" x="282.5" y="-385.38" font-family="Arial" font-size="10.00" fill="green">page/Footer.tsx</text>
</g>
<!-- page/LayoutPublic.tsx&#45;&gt;page/Footer.tsx -->
<g id="edge22" class="edge">
<title>page/LayoutPublic.tsx&#45;&gt;page/Footer.tsx</title>
<path fill="none" stroke="green" d="M399.51,-459.37C342.64,-424.8 326.34,-414.88 306.87,-402.91"/>
<polygon fill="green" stroke="green" points="308.55,-399.83 298.2,-397.57 304.88,-405.79 308.55,-399.83"/>
</g>
<!-- util/toolbarUtil.ts -->
<g id="node26" class="node">
<title>util/toolbarUtil.ts</title>
<path fill="none" stroke="black" d="M433.45,-660.65C433.45,-660.65 358.12,-660.65 358.12,-660.65 354.95,-660.65 351.79,-657.48 351.79,-654.31 351.79,-654.31 351.79,-647.98 351.79,-647.98 351.79,-644.81 354.95,-641.65 358.12,-641.65 358.12,-641.65 433.45,-641.65 433.45,-641.65 436.62,-641.65 439.79,-644.81 439.79,-647.98 439.79,-647.98 439.79,-654.31 439.79,-654.31 439.79,-657.48 436.62,-660.65 433.45,-660.65"/>
<text text-anchor="middle" x="395.79" y="-648.65" font-family="Arial" font-size="10.00">util/toolbarUtil.ts</text>
</g>
<!-- page/LayoutPublic.tsx&#45;&gt;util/toolbarUtil.ts -->
<g id="edge23" class="edge">
<title>page/LayoutPublic.tsx&#45;&gt;util/toolbarUtil.ts</title>
<path fill="none" stroke="green" d="M410.45,-478.78C372.35,-553.36 370.1,-562.11 390.06,-631.49"/>
<polygon fill="green" stroke="green" points="386.73,-632.58 392.88,-641.21 393.45,-630.63 386.73,-632.58"/>
</g>
<!-- route/auth/Account.tsx&#45;&gt;components/tab/TabComponent.tsx -->
<g id="edge31" class="edge">
<title>route/auth/Account.tsx&#45;&gt;components/tab/TabComponent.tsx</title>
<path fill="none" stroke="green" d="M733.07,-328.11C773.58,-318.45 789.73,-316.76 811.16,-322.5"/>
<polygon fill="green" stroke="green" points="810.16,-325.86 820.75,-325.41 812.2,-319.16 810.16,-325.86"/>
</g>
<!-- route/auth/Account.tsx&#45;&gt;components/tab/subcomponents/TabRender.tsx -->
<g id="edge32" class="edge">
<title>route/auth/Account.tsx&#45;&gt;components/tab/subcomponents/TabRender.tsx</title>
<path fill="none" stroke="green" d="M701.36,-327.88C744.86,-266.51 754.43,-253.21 771.26,-233.57"/>
<polygon fill="green" stroke="green" points="773.96,-235.8 777.87,-225.95 768.67,-231.22 773.96,-235.8"/>
</g>
<!-- page/Layout.tsx -->
<g id="node24" class="node">
<title>page/Layout.tsx</title>
<path fill="none" stroke="black" d="M525.93,-505.55C525.93,-505.55 452.59,-505.55 452.59,-505.55 449.43,-505.55 446.26,-502.39 446.26,-499.22 446.26,-499.22 446.26,-492.89 446.26,-492.89 446.26,-489.72 449.43,-486.55 452.59,-486.55 452.59,-486.55 525.93,-486.55 525.93,-486.55 529.09,-486.55 532.26,-489.72 532.26,-492.89 532.26,-492.89 532.26,-499.22 532.26,-499.22 532.26,-502.39 529.09,-505.55 525.93,-505.55"/>
<text text-anchor="middle" x="489.26" y="-493.55" font-family="Arial" font-size="10.00">page/Layout.tsx</text>
</g>
<!-- route/auth/Account.tsx&#45;&gt;page/Layout.tsx -->
<g id="edge33" class="edge">
<title>route/auth/Account.tsx&#45;&gt;page/Layout.tsx</title>
<path fill="none" stroke="green" d="M662.4,-347.26C601.08,-366.57 586.85,-380.55 504.11,-478.47"/>
<polygon fill="green" stroke="green" points="501.28,-476.4 497.5,-486.29 506.62,-480.91 501.28,-476.4"/>
</g>
<!-- route/auth/AccountTabData.tsx -->
<g id="node31" class="node">
<title>route/auth/AccountTabData.tsx</title>
<path fill="none" stroke="black" d="M804.97,-92.45C804.97,-92.45 665.63,-92.45 665.63,-92.45 662.47,-92.45 659.3,-89.29 659.3,-86.12 659.3,-86.12 659.3,-79.79 659.3,-79.79 659.3,-76.62 662.47,-73.45 665.63,-73.45 665.63,-73.45 804.97,-73.45 804.97,-73.45 808.13,-73.45 811.3,-76.62 811.3,-79.79 811.3,-79.79 811.3,-86.12 811.3,-86.12 811.3,-89.29 808.13,-92.45 804.97,-92.45"/>
<text text-anchor="middle" x="735.3" y="-80.45" font-family="Arial" font-size="10.00">route/auth/AccountTabData.tsx</text>
</g>
<!-- route/auth/Account.tsx&#45;&gt;route/auth/AccountTabData.tsx -->
<g id="edge34" class="edge">
<title>route/auth/Account.tsx&#45;&gt;route/auth/AccountTabData.tsx</title>
<path fill="none" stroke="green" d="M696.62,-328.09C730.99,-177.71 734.15,-162.74 735.06,-102.68"/>
<polygon fill="green" stroke="green" points="738.56,-102.67 735.19,-92.62 731.56,-102.58 738.56,-102.67"/>
</g>
<!-- route/auth/WaitAndNavigate.tsx -->
<g id="node33" class="node">
<title>route/auth/WaitAndNavigate.tsx</title>
<path fill="none" stroke="black" d="M937.68,-827.35C937.68,-827.35 795.34,-827.35 795.34,-827.35 792.18,-827.35 789.01,-824.19 789.01,-821.02 789.01,-821.02 789.01,-814.69 789.01,-814.69 789.01,-811.52 792.18,-808.35 795.34,-808.35 795.34,-808.35 937.68,-808.35 937.68,-808.35 940.84,-808.35 944.01,-811.52 944.01,-814.69 944.01,-814.69 944.01,-821.02 944.01,-821.02 944.01,-824.19 940.84,-827.35 937.68,-827.35"/>
<text text-anchor="middle" x="866.51" y="-815.35" font-family="Arial" font-size="10.00">route/auth/WaitAndNavigate.tsx</text>
</g>
<!-- route/auth/PrivateRoute.tsx&#45;&gt;route/auth/WaitAndNavigate.tsx -->
<g id="edge37" class="edge">
<title>route/auth/PrivateRoute.tsx&#45;&gt;route/auth/WaitAndNavigate.tsx</title>
<path fill="none" stroke="green" d="M932.9,-611.27C940.01,-719.78 938.89,-729.66 881.18,-800.06"/>
<polygon fill="green" stroke="green" points="878.3,-798.06 874.65,-808.01 883.7,-802.51 878.3,-798.06"/>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx&#45;&gt;components/Iframe.tsx -->
<g id="edge40" class="edge">
<title>route/digitaltwins/DigitalTwins.tsx&#45;&gt;components/Iframe.tsx</title>
<path fill="none" stroke="green" d="M609.82,-373.89C570.69,-338.79 551.71,-322.54 531.48,-314.29"/>
<polygon fill="green" stroke="green" points="532.62,-310.98 522.02,-311.02 530.33,-317.6 532.62,-310.98"/>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx&#45;&gt;util/envUtil.ts -->
<g id="edge45" class="edge">
<title>route/digitaltwins/DigitalTwins.tsx&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M624.95,-393.05C656.15,-460.95 656.79,-469.55 636.8,-593.68"/>
<polygon fill="green" stroke="green" points="633.34,-593.19 635.2,-603.62 640.25,-594.31 633.34,-593.19"/>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx&#45;&gt;components/tab/TabComponent.tsx -->
<g id="edge41" class="edge">
<title>route/digitaltwins/DigitalTwins.tsx&#45;&gt;components/tab/TabComponent.tsx</title>
<path fill="none" stroke="green" d="M642.98,-374C695.6,-351.71 725.96,-339.32 750.18,-333.38"/>
<polygon fill="green" stroke="green" points="751.2,-336.74 760.24,-331.22 749.72,-329.9 751.2,-336.74"/>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx&#45;&gt;components/tab/subcomponents/TabRender.tsx -->
<g id="edge42" class="edge">
<title>route/digitaltwins/DigitalTwins.tsx&#45;&gt;components/tab/subcomponents/TabRender.tsx</title>
<path fill="none" stroke="green" d="M628.58,-373.85C710.98,-274.53 723.93,-259.54 763.66,-231.81"/>
<polygon fill="green" stroke="green" points="765.75,-234.62 771.99,-226.06 761.77,-228.86 765.75,-234.62"/>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx&#45;&gt;page/Layout.tsx -->
<g id="edge43" class="edge">
<title>route/digitaltwins/DigitalTwins.tsx&#45;&gt;page/Layout.tsx</title>
<path fill="none" stroke="green" d="M591.14,-393.05C552.47,-406.64 542.13,-418.19 501.56,-477.89"/>
<polygon fill="green" stroke="green" points="498.62,-475.99 495.91,-486.23 504.42,-479.92 498.62,-475.99"/>
</g>
<!-- route/digitaltwins/DigitalTwinTabData.ts -->
<g id="node34" class="node">
<title>route/digitaltwins/DigitalTwinTabData.ts</title>
<path fill="none" stroke="black" d="M570.15,-170.85C570.15,-170.85 393.82,-170.85 393.82,-170.85 390.65,-170.85 387.49,-167.68 387.49,-164.51 387.49,-164.51 387.49,-158.18 387.49,-158.18 387.49,-155.01 390.65,-151.85 393.82,-151.85 393.82,-151.85 570.15,-151.85 570.15,-151.85 573.32,-151.85 576.49,-155.01 576.49,-158.18 576.49,-158.18 576.49,-164.51 576.49,-164.51 576.49,-167.68 573.32,-170.85 570.15,-170.85"/>
<text text-anchor="middle" x="481.99" y="-158.85" font-family="Arial" font-size="10.00">route/digitaltwins/DigitalTwinTabData.ts</text>
</g>
<!-- route/digitaltwins/DigitalTwins.tsx&#45;&gt;route/digitaltwins/DigitalTwinTabData.ts -->
<g id="edge44" class="edge">
<title>route/digitaltwins/DigitalTwins.tsx&#45;&gt;route/digitaltwins/DigitalTwinTabData.ts</title>
<path fill="none" stroke="green" d="M616.17,-373.67C554.9,-236.21 547.44,-220.89 500.28,-177.81"/>
<polygon fill="green" stroke="green" points="502.45,-175.06 492.69,-170.94 497.75,-180.25 502.45,-175.06"/>
</g>
<!-- route/library/Library.tsx&#45;&gt;components/Iframe.tsx -->
<g id="edge46" class="edge">
<title>route/library/Library.tsx&#45;&gt;components/Iframe.tsx</title>
<path fill="none" stroke="green" d="M632.03,-459.75C558.88,-357.13 546.26,-340.86 495.18,-317.64"/>
<polygon fill="green" stroke="green" points="496.47,-314.38 485.91,-313.52 493.63,-320.78 496.47,-314.38"/>
</g>
<!-- route/library/Library.tsx&#45;&gt;util/envUtil.ts -->
<g id="edge51" class="edge">
<title>route/library/Library.tsx&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M642.68,-479C661.77,-528.14 662.31,-536.04 640.92,-593.89"/>
<polygon fill="green" stroke="green" points="637.51,-593.02 637.3,-603.62 644.07,-595.47 637.51,-593.02"/>
</g>
<!-- route/library/Library.tsx&#45;&gt;components/tab/TabComponent.tsx -->
<g id="edge47" class="edge">
<title>route/library/Library.tsx&#45;&gt;components/tab/TabComponent.tsx</title>
<path fill="none" stroke="green" d="M652.45,-459.74C757.99,-383.73 777.09,-370.31 818.28,-349.13"/>
<polygon fill="green" stroke="green" points="820.12,-352.12 827.45,-344.47 816.95,-345.88 820.12,-352.12"/>
</g>
<!-- route/library/Library.tsx&#45;&gt;page/Layout.tsx -->
<g id="edge48" class="edge">
<title>route/library/Library.tsx&#45;&gt;page/Layout.tsx</title>
<path fill="none" stroke="green" d="M590.34,-459.94C562.43,-456.39 547.84,-461.55 514.26,-481.13"/>
<polygon fill="green" stroke="green" points="512.12,-478.33 505.29,-486.42 515.68,-484.35 512.12,-478.33"/>
</g>
<!-- util/auth/Authentication.ts -->
<g id="node28" class="node">
<title>util/auth/Authentication.ts</title>
<path fill="none" stroke="black" d="M697.01,-748.29C697.01,-748.29 581.68,-748.29 581.68,-748.29 578.51,-748.29 575.34,-745.12 575.34,-741.95 575.34,-741.95 575.34,-735.62 575.34,-735.62 575.34,-732.45 578.51,-729.29 581.68,-729.29 581.68,-729.29 697.01,-729.29 697.01,-729.29 700.18,-729.29 703.34,-732.45 703.34,-735.62 703.34,-735.62 703.34,-741.95 703.34,-741.95 703.34,-745.12 700.18,-748.29 697.01,-748.29"/>
<text text-anchor="middle" x="639.34" y="-736.29" font-family="Arial" font-size="10.00">util/auth/Authentication.ts</text>
</g>
<!-- route/library/Library.tsx&#45;&gt;util/auth/Authentication.ts -->
<g id="edge50" class="edge">
<title>route/library/Library.tsx&#45;&gt;util/auth/Authentication.ts</title>
<path fill="none" stroke="green" d="M641.72,-479.29C682.1,-622.52 683.94,-633.74 647.53,-719.62"/>
<polygon fill="green" stroke="green" points="644.23,-718.46 643.53,-729.03 650.67,-721.2 644.23,-718.46"/>
</g>
<!-- route/library/LibraryTabData.ts -->
<g id="node35" class="node">
<title>route/library/LibraryTabData.ts</title>
<path fill="none" stroke="black" d="M659.31,-230.21C659.31,-230.21 523.97,-230.21 523.97,-230.21 520.81,-230.21 517.64,-227.05 517.64,-223.88 517.64,-223.88 517.64,-217.55 517.64,-217.55 517.64,-214.38 520.81,-211.21 523.97,-211.21 523.97,-211.21 659.31,-211.21 659.31,-211.21 662.47,-211.21 665.64,-214.38 665.64,-217.55 665.64,-217.55 665.64,-223.88 665.64,-223.88 665.64,-227.05 662.47,-230.21 659.31,-230.21"/>
<text text-anchor="middle" x="591.64" y="-218.21" font-family="Arial" font-size="10.00">route/library/LibraryTabData.ts</text>
</g>
<!-- route/library/Library.tsx&#45;&gt;route/library/LibraryTabData.ts -->
<g id="edge49" class="edge">
<title>route/library/Library.tsx&#45;&gt;route/library/LibraryTabData.ts</title>
<path fill="none" stroke="green" d="M638.22,-459.95C626.72,-311.14 625.12,-295.84 600.3,-239.93"/>
<polygon fill="green" stroke="green" points="603.39,-238.28 596.11,-230.58 597,-241.14 603.39,-238.28"/>
</g>
<!-- route/workbench/Workbench.tsx&#45;&gt;components/LinkButtons.tsx -->
<g id="edge53" class="edge">
<title>route/workbench/Workbench.tsx&#45;&gt;components/LinkButtons.tsx</title>
<path fill="none" stroke="green" d="M431.49,-622.07C424.89,-622.56 418.99,-622.94 413.6,-623.21"/>
<polygon fill="green" stroke="green" points="413.1,-619.72 403.24,-623.59 413.36,-626.72 413.1,-619.72"/>
</g>
<!-- route/workbench/Workbench.tsx&#45;&gt;util/envUtil.ts -->
<g id="edge55" class="edge">
<title>route/workbench/Workbench.tsx&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M535.43,-624.53C563.8,-634.67 575.69,-635.5 600.63,-626.64"/>
<polygon fill="green" stroke="green" points="601.92,-629.89 610.05,-623.1 599.46,-623.34 601.92,-629.89"/>
</g>
<!-- route/workbench/Workbench.tsx&#45;&gt;page/Layout.tsx -->
<g id="edge54" class="edge">
<title>route/workbench/Workbench.tsx&#45;&gt;page/Layout.tsx</title>
<path fill="none" stroke="green" d="M504.69,-605.4C479.58,-560.33 476.7,-551.99 484.72,-515.55"/>
<polygon fill="green" stroke="green" points="488.17,-516.17 486.99,-505.65 481.34,-514.61 488.17,-516.17"/>
</g>
<!-- page/DrawerComponent.tsx -->
<g id="node19" class="node">
<title>page/DrawerComponent.tsx</title>
<path fill="none" stroke="black" d="M320.77,-925.73C320.77,-925.73 194.43,-925.73 194.43,-925.73 191.27,-925.73 188.1,-922.56 188.1,-919.4 188.1,-919.4 188.1,-913.06 188.1,-913.06 188.1,-909.9 191.27,-906.73 194.43,-906.73 194.43,-906.73 320.77,-906.73 320.77,-906.73 323.93,-906.73 327.1,-909.9 327.1,-913.06 327.1,-913.06 327.1,-919.4 327.1,-919.4 327.1,-922.56 323.93,-925.73 320.77,-925.73"/>
<text text-anchor="middle" x="257.6" y="-913.73" font-family="Arial" font-size="10.00">page/DrawerComponent.tsx</text>
</g>
<!-- page/DrawerHeaderComponent.tsx -->
<g id="node20" class="node">
<title>page/DrawerHeaderComponent.tsx</title>
<path fill="none" stroke="green" d="M287.19,-1123.36C287.19,-1123.36 129.86,-1123.36 129.86,-1123.36 126.69,-1123.36 123.52,-1120.2 123.52,-1117.03 123.52,-1117.03 123.52,-1110.7 123.52,-1110.7 123.52,-1107.53 126.69,-1104.36 129.86,-1104.36 129.86,-1104.36 287.19,-1104.36 287.19,-1104.36 290.36,-1104.36 293.52,-1107.53 293.52,-1110.7 293.52,-1110.7 293.52,-1117.03 293.52,-1117.03 293.52,-1120.2 290.36,-1123.36 287.19,-1123.36"/>
<text text-anchor="middle" x="208.52" y="-1111.36" font-family="Arial" font-size="10.00" fill="green">page/DrawerHeaderComponent.tsx</text>
</g>
<!-- page/DrawerComponent.tsx&#45;&gt;page/DrawerHeaderComponent.tsx -->
<g id="edge16" class="edge">
<title>page/DrawerComponent.tsx&#45;&gt;page/DrawerHeaderComponent.tsx</title>
<path fill="none" stroke="green" d="M253.97,-925.99C213.89,-1033.9 209.32,-1047.46 208.65,-1094.03"/>
<polygon fill="green" stroke="green" points="205.15,-1094.13 208.56,-1104.16 212.15,-1094.19 205.15,-1094.13"/>
</g>
<!-- page/MenuItems.tsx -->
<g id="node21" class="node">
<title>page/MenuItems.tsx</title>
<path fill="none" stroke="green" d="M99.67,-955.36C99.67,-955.36 6.33,-955.36 6.33,-955.36 3.17,-955.36 0,-952.19 0,-949.02 0,-949.02 0,-942.69 0,-942.69 0,-939.52 3.17,-936.36 6.33,-936.36 6.33,-936.36 99.67,-936.36 99.67,-936.36 102.83,-936.36 106,-939.52 106,-942.69 106,-942.69 106,-949.02 106,-949.02 106,-952.19 102.83,-955.36 99.67,-955.36"/>
<text text-anchor="middle" x="53" y="-943.36" font-family="Arial" font-size="10.00" fill="green">page/MenuItems.tsx</text>
</g>
<!-- page/DrawerComponent.tsx&#45;&gt;page/MenuItems.tsx -->
<g id="edge17" class="edge">
<title>page/DrawerComponent.tsx&#45;&gt;page/MenuItems.tsx</title>
<path fill="none" stroke="green" d="M227.4,-925.8C168.07,-944.51 140.99,-952.18 116.33,-953.13"/>
<polygon fill="green" stroke="green" points="116.19,-949.63 106.2,-953.15 116.2,-956.63 116.19,-949.63"/>
</g>
<!-- page/MenuToolbar.tsx -->
<g id="node22" class="node">
<title>page/MenuToolbar.tsx</title>
<path fill="none" stroke="black" d="M401.68,-803.19C401.68,-803.19 301.35,-803.19 301.35,-803.19 298.18,-803.19 295.01,-800.02 295.01,-796.86 295.01,-796.86 295.01,-790.52 295.01,-790.52 295.01,-787.36 298.18,-784.19 301.35,-784.19 301.35,-784.19 401.68,-784.19 401.68,-784.19 404.85,-784.19 408.01,-787.36 408.01,-790.52 408.01,-790.52 408.01,-796.86 408.01,-796.86 408.01,-800.02 404.85,-803.19 401.68,-803.19"/>
<text text-anchor="middle" x="351.51" y="-791.19" font-family="Arial" font-size="10.00">page/MenuToolbar.tsx</text>
</g>
<!-- page/DrawerComponent.tsx&#45;&gt;page/MenuToolbar.tsx -->
<g id="edge18" class="edge">
<title>page/DrawerComponent.tsx&#45;&gt;page/MenuToolbar.tsx</title>
<path fill="none" stroke="green" d="M264.1,-906.72C282.65,-879.64 288.86,-871.59 337.12,-811.59"/>
<polygon fill="green" stroke="green" points="340,-813.58 343.54,-803.6 334.55,-809.2 340,-813.58"/>
</g>
<!-- page/MenuToolbar.tsx&#45;&gt;components/LinkButtons.tsx -->
<g id="edge28" class="edge">
<title>page/MenuToolbar.tsx&#45;&gt;components/LinkButtons.tsx</title>
<path fill="none" stroke="green" d="M345.92,-783.84C313.71,-727 312.4,-718.79 328.58,-634.08"/>
<polygon fill="green" stroke="green" points="332.02,-634.71 330.47,-624.22 325.15,-633.38 332.02,-634.71"/>
</g>
<!-- page/MenuToolbar.tsx&#45;&gt;util/toolbarUtil.ts -->
<g id="edge30" class="edge">
<title>page/MenuToolbar.tsx&#45;&gt;util/toolbarUtil.ts</title>
<path fill="none" stroke="green" d="M351.35,-784.17C350.76,-744.39 353.02,-736.6 386.33,-670.01"/>
<polygon fill="green" stroke="green" points="389.65,-671.19 391,-660.68 383.4,-668.05 389.65,-671.19"/>
</g>
<!-- page/MenuToolbar.tsx&#45;&gt;util/auth/Authentication.ts -->
<g id="edge29" class="edge">
<title>page/MenuToolbar.tsx&#45;&gt;util/auth/Authentication.ts</title>
<path fill="none" stroke="green" d="M395.49,-803.2C472.39,-818.59 494.33,-811.35 611.21,-752.9"/>
<polygon fill="green" stroke="green" points="612.79,-756.02 620.16,-748.42 609.66,-749.76 612.79,-756.02"/>
</g>
<!-- page/Layout.tsx&#45;&gt;page/Footer.tsx -->
<g id="edge19" class="edge">
<title>page/Layout.tsx&#45;&gt;page/Footer.tsx</title>
<path fill="none" stroke="green" d="M472.04,-486.46C370.88,-430.07 349.62,-418.41 312.92,-401.58"/>
<polygon fill="green" stroke="green" points="314.29,-398.36 303.74,-397.41 311.4,-404.74 314.29,-398.36"/>
</g>
<!-- page/Menu.tsx -->
<g id="node25" class="node">
<title>page/Menu.tsx</title>
<path fill="none" stroke="black" d="M490.71,-810.28C490.71,-810.28 422.38,-810.28 422.38,-810.28 419.21,-810.28 416.05,-807.11 416.05,-803.94 416.05,-803.94 416.05,-797.61 416.05,-797.61 416.05,-794.44 419.21,-791.28 422.38,-791.28 422.38,-791.28 490.71,-791.28 490.71,-791.28 493.88,-791.28 497.05,-794.44 497.05,-797.61 497.05,-797.61 497.05,-803.94 497.05,-803.94 497.05,-807.11 493.88,-810.28 490.71,-810.28"/>
<text text-anchor="middle" x="456.55" y="-798.28" font-family="Arial" font-size="10.00">page/Menu.tsx</text>
</g>
<!-- page/Layout.tsx&#45;&gt;page/Menu.tsx -->
<g id="edge20" class="edge">
<title>page/Layout.tsx&#45;&gt;page/Menu.tsx</title>
<path fill="none" stroke="green" d="M486.13,-505.78C430.76,-677.68 427.74,-690.07 451.46,-781.4"/>
<polygon fill="green" stroke="green" points="448.08,-782.31 453.99,-791.1 454.85,-780.54 448.08,-782.31"/>
</g>
<!-- page/Menu.tsx&#45;&gt;store/store.ts -->
<g id="edge27" class="edge">
<title>page/Menu.tsx&#45;&gt;store/store.ts</title>
<path fill="none" stroke="green" d="M470.03,-810.43C515.53,-842.89 529.96,-850.82 566.37,-848.42"/>
<polygon fill="green" stroke="green" points="567.03,-851.88 576.7,-847.54 566.44,-844.9 567.03,-851.88"/>
</g>
<!-- page/Menu.tsx&#45;&gt;page/DrawerComponent.tsx -->
<g id="edge24" class="edge">
<title>page/Menu.tsx&#45;&gt;page/DrawerComponent.tsx</title>
<path fill="none" stroke="green" d="M443.68,-810.46C358.57,-874.47 335.86,-890.9 300.34,-903.39"/>
<polygon fill="green" stroke="green" points="298.84,-900.2 290.46,-906.68 301.05,-906.84 298.84,-900.2"/>
</g>
<!-- page/Menu.tsx&#45;&gt;page/MenuToolbar.tsx -->
<g id="edge25" class="edge">
<title>page/Menu.tsx&#45;&gt;page/MenuToolbar.tsx</title>
<path fill="none" stroke="green" d="M415.85,-808.77C400.2,-811.15 390.93,-810.76 380.18,-807.08"/>
<polygon fill="green" stroke="green" points="381.22,-803.73 370.64,-803.21 378.58,-810.21 381.22,-803.73"/>
</g>
<!-- page/Menu.tsx&#45;&gt;store/menu.slice.ts -->
<g id="edge26" class="edge">
<title>page/Menu.tsx&#45;&gt;store/menu.slice.ts</title>
<path fill="none" stroke="green" d="M457.94,-810.45C474.66,-926.44 477.31,-940.91 504.96,-982.91"/>
<polygon fill="green" stroke="green" points="502.17,-985.03 510.62,-991.41 507.99,-981.15 502.17,-985.03"/>
</g>
<!-- util/toolbarUtil.ts&#45;&gt;util/envUtil.ts -->
<g id="edge62" class="edge">
<title>util/toolbarUtil.ts&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M439.9,-659.84C485.27,-667.02 508.91,-660.59 599.02,-626.59"/>
<polygon fill="green" stroke="green" points="600.43,-629.8 608.54,-622.99 597.95,-623.25 600.43,-629.8"/>
</g>
<!-- util/auth/Authentication.ts&#45;&gt;util/envUtil.ts -->
<g id="edge59" class="edge">
<title>util/auth/Authentication.ts&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M641.61,-729.07C648.21,-700.16 647.82,-692.04 637.15,-632.96"/>
<polygon fill="green" stroke="green" points="640.57,-632.24 635.35,-623.03 633.69,-633.49 640.57,-632.24"/>
</g>
<!-- util/auth/Authentication.ts&#45;&gt;store/auth.slice.ts -->
<g id="edge58" class="edge">
<title>util/auth/Authentication.ts&#45;&gt;store/auth.slice.ts</title>
<path fill="none" stroke="green" d="M642.32,-748.43C683.94,-883.14 688.58,-898.35 701.59,-949.07"/>
<polygon fill="green" stroke="green" points="698.26,-950.17 704.13,-958.99 705.04,-948.44 698.26,-950.17"/>
</g>
<!-- page/Title.tsx -->
<g id="node29" class="node">
<title>page/Title.tsx</title>
<path fill="none" stroke="green" d="M939.67,-976C939.67,-976 876.33,-976 876.33,-976 873.17,-976 870,-972.83 870,-969.67 870,-969.67 870,-963.33 870,-963.33 870,-960.17 873.17,-957 876.33,-957 876.33,-957 939.67,-957 939.67,-957 942.83,-957 946,-960.17 946,-963.33 946,-963.33 946,-969.67 946,-969.67 946,-972.83 942.83,-976 939.67,-976"/>
<text text-anchor="middle" x="908" y="-964" font-family="Arial" font-size="10.00" fill="green">page/Title.tsx</text>
</g>
<!-- route/IData.ts -->
<g id="node30" class="node">
<title>route/IData.ts</title>
<path fill="none" stroke="green" d="M600.46,-19C600.46,-19 536.12,-19 536.12,-19 532.96,-19 529.79,-15.83 529.79,-12.67 529.79,-12.67 529.79,-6.33 529.79,-6.33 529.79,-3.17 532.96,0 536.12,0 536.12,0 600.46,0 600.46,0 603.62,0 606.79,-3.17 606.79,-6.33 606.79,-6.33 606.79,-12.67 606.79,-12.67 606.79,-15.83 603.62,-19 600.46,-19"/>
<text text-anchor="middle" x="568.29" y="-7" font-family="Arial" font-size="10.00" fill="green">route/IData.ts</text>
</g>
<!-- route/auth/AccountTabData.tsx&#45;&gt;route/IData.ts -->
<g id="edge35" class="edge">
<title>route/auth/AccountTabData.tsx&#45;&gt;route/IData.ts</title>
<path fill="none" stroke="green" d="M724.85,-73.19C673.42,-25.24 658.83,-13.76 617.32,-10.73"/>
<polygon fill="green" stroke="green" points="617.28,-7.22 607.1,-10.16 616.89,-14.21 617.28,-7.22"/>
</g>
<!-- util/auth/useOidcConfig.ts&#45;&gt;util/envUtil.ts -->
<g id="edge60" class="edge">
<title>util/auth/useOidcConfig.ts&#45;&gt;util/envUtil.ts</title>
<path fill="none" stroke="green" d="M825.8,-682.59C789.32,-673.14 763.77,-663.73 667.98,-626.75"/>
<polygon fill="green" stroke="green" points="669.08,-623.42 658.49,-623.08 666.56,-629.95 669.08,-623.42"/>
</g>
<!-- route/auth/WaitAndNavigate.tsx&#45;&gt;util/auth/Authentication.ts -->
<g id="edge38" class="edge">
<title>route/auth/WaitAndNavigate.tsx&#45;&gt;util/auth/Authentication.ts</title>
<path fill="none" stroke="green" d="M788.7,-809.84C761.5,-802.39 730.75,-786.96 666.43,-753.08"/>
<polygon fill="green" stroke="green" points="668.04,-749.97 657.56,-748.4 664.78,-756.16 668.04,-749.97"/>
</g>
<!-- route/digitaltwins/DigitalTwinTabData.ts&#45;&gt;route/IData.ts -->
<g id="edge39" class="edge">
<title>route/digitaltwins/DigitalTwinTabData.ts&#45;&gt;route/IData.ts</title>
<path fill="none" stroke="green" d="M485.5,-151.59C516.14,-66.5 521.93,-52.26 549.96,-26"/>
<polygon fill="green" stroke="green" points="552.57,-28.35 557.59,-19.02 547.85,-23.19 552.57,-28.35"/>
</g>
<!-- route/library/LibraryTabData.ts&#45;&gt;route/IData.ts -->
<g id="edge52" class="edge">
<title>route/library/LibraryTabData.ts&#45;&gt;route/IData.ts</title>
<path fill="none" stroke="green" d="M590.93,-210.96C582.03,-88.84 580.77,-73.41 572.16,-29.06"/>
<polygon fill="green" stroke="green" points="575.56,-28.25 570.2,-19.11 568.69,-29.6 575.56,-28.25"/>
</g>
</g>
</svg>