Auto stash before checking out "origin/main"

.
This commit is contained in:
Robert Jagtiani
2025-04-02 18:48:52 +02:00
parent cfdfef039e
commit 78523171e9
33 changed files with 798 additions and 79 deletions

View File

@@ -0,0 +1 @@
<svg viewBox="0 0 149 32" xmlns="http://www.w3.org/2000/svg" class="css-1qno6kt"><title>Immonet Startseite</title><path fill="#00B6F5" d="M84.25 17.265v8.29h-3.494v-7.254c0-1.924-.872-2.96-2.473-2.96-1.454 0-2.764 1.036-2.764 2.96v7.254h-3.493V12.38h3.347v1.48c.873-1.332 2.328-1.924 3.783-1.924 3.056.148 5.093 2.22 5.093 5.33zm14.986 1.777v1.184H90.07c.437 1.924 1.746 2.665 3.347 2.665a4.473 4.473 0 0 0 3.201-1.333l2.037 2.22c-1.455 1.333-3.347 1.926-5.528 1.926-3.93 0-6.694-2.665-6.694-6.81 0-4.146 2.619-6.959 6.548-6.959 3.783.149 6.256 2.962 6.256 7.107zm-9.167-1.185h5.675c-.29-1.628-1.31-2.664-2.765-2.664-1.6 0-2.619 1.036-2.91 2.664zm20.953-2.22h-4.656v4.737c0 1.629.873 2.22 1.892 2.22.873 0 1.746-.444 2.473-.887l1.31 2.812c-1.164.74-2.474 1.333-4.22 1.333-3.202 0-4.801-1.777-4.801-5.182v-5.033h-2.474v-3.109h2.328v-3.85h3.493v3.85h4.656zm18.917-1.777V7.495h3.492v18.06h-3.347v-1.48c-.873 1.037-2.037 1.777-3.783 1.777-3.492 0-6.257-2.961-6.257-6.958 0-3.997 2.62-6.958 6.257-6.958a5.536 5.536 0 0 1 3.638 1.925zm-6.548 5.182c0 2.072 1.309 3.552 3.346 3.552 2.038 0 3.347-1.48 3.347-3.552 0-2.073-1.31-3.553-3.347-3.553s-3.346 1.48-3.346 3.553zm25.609 0v1.184h-9.168c.438 1.924 1.747 2.665 3.347 2.665a5.038 5.038 0 0 0 3.202-1.184l2.037 2.22c-1.455 1.332-3.346 1.924-5.529 1.924-3.929 0-6.694-2.665-6.694-6.81s2.619-6.957 6.548-6.957c3.638 0 6.257 2.813 6.257 6.958zm-9.168-1.185h5.675c-.29-1.628-1.309-2.664-2.764-2.664-1.746 0-2.619 1.036-2.911 2.664zm-21.388 5.626c.145 1.332-1.019 2.517-2.329 2.369-1.018 0-2.037-1.037-2.037-2.073-.146-1.332 1.018-2.516 2.328-2.369 1.019 0 2.038 1.037 2.038 2.073z"></path><path fill="#000" d="M4.365 8.235c0 1.332-1.018 2.22-2.182 2.22C.873 10.456 0 9.42 0 8.236c0-1.332 1.019-2.22 2.183-2.22 1.31-.149 2.182.888 2.182 2.22zm-.436 17.32H.436V12.38H3.93zm24.445-8.29v8.29h-3.492v-7.254c0-1.924-.873-2.96-2.474-2.96-1.455 0-2.765 1.036-2.765 2.96v7.254h-3.492v-7.254c0-1.924-.873-2.96-2.473-2.96-1.455 0-2.765 1.036-2.765 2.96v7.254H7.421V12.38h3.346v1.48c.873-1.332 2.328-1.924 3.783-1.924 1.892 0 3.347.888 4.22 2.22 1.019-1.628 2.62-2.22 4.365-2.22 3.202.148 5.24 2.22 5.24 5.33zm24.446 0v8.29h-3.493v-7.254c0-1.924-.873-2.96-2.474-2.96-1.454 0-2.764 1.036-2.764 2.96v7.254h-3.492v-7.254c0-1.924-.874-2.96-2.474-2.96-1.455 0-2.765 1.036-2.765 2.96v7.254h-3.492V12.38h3.346v1.48c.873-1.332 2.328-1.924 3.784-1.924 1.891 0 3.346.888 4.22 2.22 1.018-1.628 2.618-2.22 4.364-2.22 3.202.148 5.24 2.22 5.24 5.33zm16.587 1.777c0 3.997-2.91 6.958-6.984 6.958s-6.984-2.96-6.984-6.958c0-3.997 2.91-6.958 6.984-6.958s6.984 2.96 6.984 6.958zm-10.331 0c0 2.072 1.455 3.552 3.347 3.552 1.891 0 3.492-1.48 3.492-3.552 0-2.073-1.456-3.553-3.492-3.553-1.892 0-3.347 1.48-3.347 3.553z"></path></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1 @@
<svg viewBox="0 0 149 32" xmlns="http://www.w3.org/2000/svg" class="css-1qno6kt"><title>Immonet Startseite</title><path fill="#00B6F5" d="M84.25 17.265v8.29h-3.494v-7.254c0-1.924-.872-2.96-2.473-2.96-1.454 0-2.764 1.036-2.764 2.96v7.254h-3.493V12.38h3.347v1.48c.873-1.332 2.328-1.924 3.783-1.924 3.056.148 5.093 2.22 5.093 5.33zm14.986 1.777v1.184H90.07c.437 1.924 1.746 2.665 3.347 2.665a4.473 4.473 0 0 0 3.201-1.333l2.037 2.22c-1.455 1.333-3.347 1.926-5.528 1.926-3.93 0-6.694-2.665-6.694-6.81 0-4.146 2.619-6.959 6.548-6.959 3.783.149 6.256 2.962 6.256 7.107zm-9.167-1.185h5.675c-.29-1.628-1.31-2.664-2.765-2.664-1.6 0-2.619 1.036-2.91 2.664zm20.953-2.22h-4.656v4.737c0 1.629.873 2.22 1.892 2.22.873 0 1.746-.444 2.473-.887l1.31 2.812c-1.164.74-2.474 1.333-4.22 1.333-3.202 0-4.801-1.777-4.801-5.182v-5.033h-2.474v-3.109h2.328v-3.85h3.493v3.85h4.656zm18.917-1.777V7.495h3.492v18.06h-3.347v-1.48c-.873 1.037-2.037 1.777-3.783 1.777-3.492 0-6.257-2.961-6.257-6.958 0-3.997 2.62-6.958 6.257-6.958a5.536 5.536 0 0 1 3.638 1.925zm-6.548 5.182c0 2.072 1.309 3.552 3.346 3.552 2.038 0 3.347-1.48 3.347-3.552 0-2.073-1.31-3.553-3.347-3.553s-3.346 1.48-3.346 3.553zm25.609 0v1.184h-9.168c.438 1.924 1.747 2.665 3.347 2.665a5.038 5.038 0 0 0 3.202-1.184l2.037 2.22c-1.455 1.332-3.346 1.924-5.529 1.924-3.929 0-6.694-2.665-6.694-6.81s2.619-6.957 6.548-6.957c3.638 0 6.257 2.813 6.257 6.958zm-9.168-1.185h5.675c-.29-1.628-1.309-2.664-2.764-2.664-1.746 0-2.619 1.036-2.911 2.664zm-21.388 5.626c.145 1.332-1.019 2.517-2.329 2.369-1.018 0-2.037-1.037-2.037-2.073-.146-1.332 1.018-2.516 2.328-2.369 1.019 0 2.038 1.037 2.038 2.073z"></path><path fill="#000" d="M4.365 8.235c0 1.332-1.018 2.22-2.182 2.22C.873 10.456 0 9.42 0 8.236c0-1.332 1.019-2.22 2.183-2.22 1.31-.149 2.182.888 2.182 2.22zm-.436 17.32H.436V12.38H3.93zm24.445-8.29v8.29h-3.492v-7.254c0-1.924-.873-2.96-2.474-2.96-1.455 0-2.765 1.036-2.765 2.96v7.254h-3.492v-7.254c0-1.924-.873-2.96-2.473-2.96-1.455 0-2.765 1.036-2.765 2.96v7.254H7.421V12.38h3.346v1.48c.873-1.332 2.328-1.924 3.783-1.924 1.892 0 3.347.888 4.22 2.22 1.019-1.628 2.62-2.22 4.365-2.22 3.202.148 5.24 2.22 5.24 5.33zm24.446 0v8.29h-3.493v-7.254c0-1.924-.873-2.96-2.474-2.96-1.454 0-2.764 1.036-2.764 2.96v7.254h-3.492v-7.254c0-1.924-.874-2.96-2.474-2.96-1.455 0-2.765 1.036-2.765 2.96v7.254h-3.492V12.38h3.346v1.48c.873-1.332 2.328-1.924 3.784-1.924 1.891 0 3.346.888 4.22 2.22 1.018-1.628 2.618-2.22 4.364-2.22 3.202.148 5.24 2.22 5.24 5.33zm16.587 1.777c0 3.997-2.91 6.958-6.984 6.958s-6.984-2.96-6.984-6.958c0-3.997 2.91-6.958 6.984-6.958s6.984 2.96 6.984 6.958zm-10.331 0c0 2.072 1.455 3.552 3.347 3.552 1.891 0 3.492-1.48 3.492-3.552 0-2.073-1.456-3.553-3.492-3.553-1.892 0-3.347 1.48-3.347 3.553z"></path></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" width="95.61mm" height="39.29mm" viewBox="0 0 271.02 111.38">
<defs>
<style>
.cls-1 {
fill: #fc0;
}
.cls-2 {
fill: #222;
}
</style>
</defs>
<g id="Wellen">
<path class="cls-1" d="M271.01,65.51c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48h-.01Z"/>
<path class="cls-1" d="M.01,87.43c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64h.01Z"/>
</g>
<g id="Gewerbegebaeude">
<path class="cls-2" d="M102.43,66.76V0l-34.28,10.84v54.01c11.44-.32,22.93.35,34.28,1.92h0Z"/>
<path class="cls-2" d="M254.82,64.65c-.02-6.59,0-45.44,0-45.44l-24.88-6.69v66.43s11.96-.84,24.22-12.71c.42-.41.66-.99.65-1.6h.01Z"/>
<g>
<polygon class="cls-2" points="106.61 8.82 106.61 .65 226.67 21.34 226.67 28.05 106.61 8.82"/>
<polygon class="cls-2" points="107.24 23.27 107.24 14.47 226.67 31.7 226.67 37.55 107.24 23.27"/>
<polygon class="cls-2" points="107.24 37.33 107.24 28.54 226.67 40.36 226.67 46.21 107.24 37.33"/>
<polygon class="cls-2" points="107.24 51.47 107.24 42.68 226.67 49.62 226.67 55.47 107.24 51.47"/>
<polygon class="cls-2" points="107.24 64.67 107.24 55.88 226.67 58.51 226.67 64.36 107.24 64.67"/>
<path class="cls-2" d="M122.77,70.43c3.1.69,6.21,1.48,9.24,2.28,1.2.32,2.39.63,3.57.94l91.08.55v-5.86l-119.43-.7h-.09c5.22.81,10.49,1.66,15.63,2.79Z"/>
</g>
<g>
<polygon class="cls-2" points="9.36 49.75 9.24 44 65.31 20.7 65.31 40.13 9.36 49.75"/>
<polygon class="cls-2" points="65.31 55.18 9.62 60.96 9.45 53.35 65.31 44.42 65.31 55.18"/>
<path class="cls-2" d="M43.87,67.07c7.08-1.11,14.25-1.82,21.44-2.12v-5.15l-55.63,4.35.17,7.82s34.02-4.9,34.02-4.9Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View File

@@ -0,0 +1 @@
<svg viewBox="0 0 109 32" xmlns="http://www.w3.org/2000/svg" class="css-1qno6kt"><title>immowelt Startseite</title><g fill-rule="evenodd" clip-rule="evenodd"><path fill="#323232" d="M12.736 4.664C5.568 4.664.664 9.384.664 16.008c0 6.608 4.92 11.328 12.072 11.328h35.16c7.152 0 12.273-4.72 12.273-11.328 0-6.624-5.104-11.344-12.273-11.344z"></path><path fill="#fc0" d="M47.896 4.664c7.169 0 12.273 4.72 12.273 11.344 0 6.608-5.12 11.328-12.273 11.328h48.2c7.153 0 12.241-4.72 12.241-11.328 0-6.624-5.072-11.344-12.24-11.344z"></path><path fill="#fff" d="M12.264 7.784c-.864 0-1.536.664-1.536 1.512 0 .808.672 1.464 1.536 1.464.848 0 1.52-.672 1.52-1.464a1.513 1.513 0 0 0-1.52-1.512zm39.153 5.952c1.431 0 2.351 1.008 2.351 2.552 0 1.52-.952 2.56-2.352 2.56-1.392 0-2.344-1.04-2.344-2.56 0-1.512.952-2.552 2.344-2.552zM10.975 11.64v9.288h2.56V11.64zm9.48-.248c-1.128 0-2.096.48-2.68 1.288v-1.04h-2.4v9.288h2.56v-6.096c.328-.656 1.024-1.112 1.712-1.112.896 0 1.536.704 1.536 1.728v5.48h2.56v-6.096c.28-.656 1-1.112 1.728-1.112.896 0 1.496.704 1.496 1.728v5.48h2.56v-5.96c0-2.184-1.408-3.576-3.6-3.576-1.144 0-2.08.424-2.84 1.36-.6-.904-1.504-1.36-2.632-1.36zm15.832 0c-1.128 0-2.096.48-2.68 1.288v-1.04h-2.4v9.288h2.56v-6.096c.336-.656 1.024-1.112 1.712-1.112.896 0 1.536.704 1.536 1.728v5.48h2.56v-6.096c.28-.656 1.008-1.112 1.728-1.112.904 0 1.504.704 1.504 1.728v5.48h2.552v-5.96c0-2.184-1.408-3.576-3.6-3.576-1.144 0-2.08.424-2.84 1.36-.6-.904-1.496-1.36-2.632-1.36zm15.128 0c-2.823 0-4.904 2.08-4.904 4.896 0 2.824 2.08 4.904 4.904 4.904 2.849 0 4.912-2.064 4.912-4.904 0-2.848-2.048-4.896-4.912-4.896z"></path><path fill="#323232" d="M90.977 17.792c0 .648.28.968.863.968.249 0 .497-.056.729-.16l.312 2.128c-.456.216-1.024.32-1.625.32-1.8 0-2.887-1.072-2.887-2.888V8.608h2.608zM71.192 11.64l2.129 5.488 1.735-5.488h2.592l-3.016 9.288h-2.575l-2.177-5.816-2.135 5.816h-2.577L62.12 11.64h2.736l1.72 5.512 2.128-5.512zm28.257 6.696c-.44.28-.88.424-1.392.424-.816 0-1.288-.44-1.288-1.184v-3.664h3.16V11.64h-3.16V9.4h-2.616v2.24h-1.76v2.272h1.76v3.896c0 2.08 1.376 3.384 3.567 3.384 1.009 0 1.873-.248 2.649-.76zm-21.697-2.048c0-2.816 2.072-4.88 4.857-4.88 2.72 0 4.504 1.904 4.504 4.848 0 .32 0 .632-.033.88h-6.792c.289 1.152 1.169 1.848 2.392 1.848.92 0 1.64-.384 2.104-1.104l1.785 1.424c-.784 1.16-2.192 1.888-3.872 1.888-2.84 0-4.945-2.096-4.945-4.904zm6.857-1.016c-.208-1.072-.984-1.712-2.048-1.712-1.08 0-1.904.664-2.224 1.712z"></path><path fill="#fff" d="M96.073 28H12.736c-3.72 0-6.912-1.232-9.176-3.368C1.296 22.496 0 19.48 0 16.008c0-3.48 1.296-6.496 3.56-8.64C5.816 5.232 9.008 4 12.736 4h83.337C103.553 4 109 8.968 109 16.008 109 23.032 103.536 28 96.072 28zm0-.664H12.736c-7.152 0-12.072-4.72-12.072-11.328 0-6.624 4.904-11.344 12.072-11.344h83.337c7.168 0 12.264 4.72 12.264 11.344 0 6.608-5.112 11.328-12.264 11.328z"></path></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" width="95.61mm" height="39.47mm" viewBox="0 0 271.02 111.88">
<defs>
<style>
.cls-1 {
fill: #fc0;
}
.cls-2 {
fill: #222;
}
.cls-3 {
fill: #c6c6c6;
}
</style>
</defs>
<g id="Wellen">
<path class="cls-1" d="M271.01,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48h-.01Z"/>
<path class="cls-1" d="M.01,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64h.01Z"/>
</g>
<g id="Wohngebaeude">
<g>
<path class="cls-2" d="M62.11,66.01L103.84,11.59l52.17,63.63s72.22,24.35,98.81-11.35l-26.6-38.82-27.22-4.45V0h-19.83v39.66h-7.08v-22.76L101.53,4.02l-39.42,61.99Z"/>
<polygon class="cls-2" points="72.54 39.06 91.67 14.16 47.38 14.16 10.08 72.88 49.01 19.22 72.54 39.06"/>
<g>
<rect class="cls-3" x="90.52" y="35.34" width="11.33" height="12.75"/>
<rect class="cls-3" x="103.27" y="35.34" width="11.33" height="12.75"/>
<rect class="cls-3" x="90.52" y="49.51" width="11.33" height="12.75"/>
<rect class="cls-3" x="103.27" y="49.51" width="11.33" height="12.75"/>
</g>
<g>
<rect class="cls-3" x="40.94" y="35.41" width="5.67" height="8.5"/>
<rect class="cls-3" x="48.03" y="35.41" width="5.67" height="8.5"/>
<rect class="cls-3" x="40.94" y="45.33" width="5.67" height="8.5"/>
<rect class="cls-3" x="48.03" y="45.33" width="5.67" height="8.5"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1,77 +0,0 @@
---
import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
const { tabHover1 } = Astro.props;
const { tabHover2 } = Astro.props;
const { tabHover3 } = Astro.props;
const { tabHover4 } = Astro.props;
const { tabHover5 } = Astro.props;
const { tabHover6 } = Astro.props;
const { tabHover7 } = Astro.props;
---
<header id="header" class="w-full bg-white h-[81px] sm:pl-8">
<div class="grid grid-cols-[min-content_1fr] items-center">
<div class="w-[150px] h-[80px]">
<div class="w-full h-full grid grid-col-1 justify-items-center items-center">
<img class="w-[109px]" src="/images/immowelt/immowelt.svg" alt="immowelt"/>
</div>
</div>
<div>
<ul class="navlist">
<li><a href="/immowelt/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/"><button class={tabHover1}>Verbrauchsausweis</button></a></li>
<li><a href="/immowelt/energieausweis-erstellen/verbrauchsausweis-gewerbe/"><button class={tabHover2}>Verbrauchsausweis Gewerbe</button></a></li>
<li><a href="/immowelt/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"><button class={tabHover3}>Bedarfsausweis</button></a></li>
<li><a href="/immowelt/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/"><button class={tabHover4}>Bedarfsausweis Gewerbe</button></a></li>
<li><a href="/immowelt/angebot-anfragen/geg-nachweis-wohnen-anfragen/"><button class={tabHover5}>GEG Nachweis Wohngebäude</button></a></li>
<li><a href="/immowelt/angebot-anfragen/geg-nachweis-gewerbe-anfragen/"><button class={tabHover6}>GEG Nachweis Gewerbe</button></a></li>
<li><a href="/immowelt/welcher-ausweis/"><button class={tabHover7}>Welcher Ausweis</button></a></li>
</ul>
</div>
</div>
</header>
<div class="block w-full 2xl:h-[270px] lg:h-[148px] bg-cover" style="background-image: url('/images/immowelt/hero-desktop.png');
background-repeat:no-repeat; background-position:right;">
</div>
<style lang="postcss">
@font-face {
font-family: "immo Sans";
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
font-style: normal;
font-weight: 400;
}
.header-button {
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
}
.navlist {
@apply flex flex-wrap flex-col sm:flex-row pl-[1.75rem] sm:pl-[1.75rem];
}
.navlist li {
@apply pr-0 sm:pr-[6px] pb-1 sm:pb-0;
}
.navlist li button{@apply text-[0.75rem] md:text-[1rem] text-[#646464] sm:p-2 text-left
hover:rounded-[1rem] hover:bg-[rgba(50,50,50,0.1)];
font-family: "immo Sans";
font-weight:400;}
.glow{@apply rounded-[1rem] bg-[rgba(50,50,50,0.1)];}
</style>

View File

@@ -0,0 +1,110 @@
---
import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
const { tabHover1 } = Astro.props;
const { tabHover2 } = Astro.props;
const { tabHover3 } = Astro.props;
const { tabHover4 } = Astro.props;
const { tabHover5 } = Astro.props;
const { tabHover6 } = Astro.props;
const { tabHover7 } = Astro.props;
const { params, url } = Astro;
const partner = params.partner;
const url1 = new URL(Astro.request.url);
// Beispiel: prüfen, ob "immowelt" im Pfad vorkommt
const urlPath = url1.pathname; // z.B. "/immowelt/angebot-anfragen/..."
const isVA = urlPath.includes("verbrauchsausweis-wohngebaeude");
const isVAG = urlPath.includes("verbrauchsausweis-gewerbe");
const isBA = urlPath.includes("bedarfsausweis-wohngebaeude");
const isBAG = urlPath.includes("bedarfsausweis-gewerbe-anfragen");
const isGGW = urlPath.includes("geg-nachweis-wohnen-anfragen");
const isGGG = urlPath.includes("geg-nachweis-gewerbe-anfragen");
const isWEA = urlPath.includes("welcher-ausweis");
---
<header id="header" class="w-full bg-white h-[81px] sm:pl-8">
<div class="grid grid-cols-[min-content_1fr] items-center">
<div class="w-[150px] h-[80px]">
<div class="w-full h-full grid grid-col-1 justify-items-center items-center">
<img class="w-[109px]" src={`/images/partner/${partner}/${partner}.svg`} alt={partner} />
</div>
</div>
<div>
<ul class="navlist">
<li><a href={`/${partner}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/`}><button class={tabHover1}>Verbrauchsausweis</button></a></li>
<li><a href={`/${partner}/energieausweis-erstellen/verbrauchsausweis-gewerbe/`}><button class={tabHover2}>Verbrauchsausweis Gewerbe</button></a></li>
<li><a href={`/${partner}/energieausweis-erstellen/bedarfsausweis-wohngebaeude/`}><button class={tabHover3}>Bedarfsausweis</button></a></li>
<li><a href={`/${partner}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/`}><button class={tabHover4}>Bedarfsausweis Gewerbe</button></a></li>
<li><a href={`/${partner}/angebot-anfragen/geg-nachweis-wohnen-anfragen/`}><button class={tabHover5}>GEG Nachweis Wohngebäude</button></a></li>
<li><a href={`/${partner}/angebot-anfragen/geg-nachweis-gewerbe-anfragen/`}><button class={tabHover6}>GEG Nachweis Gewerbe</button></a></li>
<li><a href={`/${partner}/welcher-ausweis/`}><button class={tabHover7}>Welcher Ausweis</button></a></li>
</ul>
</div>
</div>
</header>
<div id="titel" class="block w-full 2xl:h-[270px] lg:h-[148px] bg-cover px-12 py-8"
style={`background-image: url('/images/partner/${partner}/hero-energieausweis.jpg');
background-repeat:no-repeat; background-position:right;`}>
{isVA ? <div>Hier komfortabel und einfach online den Verbrauchsausweis Wohngebäude bestellen</div> : ""}
{isVAG ? <div>Hier komfortabel und einfach online den Verbrauchsausweis Gewerbe bestellen</div> : ""}
{isBA ? <div>Hier komfortabel und einfach online den Bedarfsausweis Wohngebäude bestellen</div> : ""}
{isBAG ? <div>Hier komfortabel und einfach online den Bedarfsausweis Gewerbe bestellen</div> : ""}
{isGGW ? <div>Hier komfortabel und einfach online den GEG Nachweis Wohngebäude bestellen</div> : ""}
{isGGG ? <div>Hier komfortabel und einfach online den GEG Nachweis Gewerbe bestellen</div> : ""}
{isWEA ? <div>Hier komfortabel und einfach online den richtigen Ausweis finden</div> : ""}
</div>
<style lang="postcss">
@font-face {
font-family: "immo Sans";
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
font-style: normal;
font-weight: 400;
}
#titel{
font-family: "immo Sans";
font-weight:400;
}
.header-button {
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
}
.navlist {
@apply flex flex-wrap flex-col sm:flex-row pl-[1.75rem] sm:pl-[1.75rem];
}
.navlist li {
@apply pr-0 sm:pr-[6px] pb-1 sm:pb-0;
}
.navlist li button{@apply text-[0.75rem] md:text-[1rem] text-[#646464] sm:p-2 text-left
hover:rounded-[1rem] hover:bg-[rgba(50,50,50,0.1)];
font-family: "immo Sans";
font-weight:400;}
.glow{@apply rounded-[1rem] bg-[rgba(50,50,50,0.1)];}
</style>

View File

@@ -2,7 +2,7 @@
import "../style/global.css"; import "../style/global.css";
import "../style/formular.css"; import "../style/formular.css";
import "../../svelte-dialogs.config" import "../../svelte-dialogs.config"
import Header from "#components/design/header/AusweisHeader_immowelt.astro"; import Header from "#components/design/header/AusweisHeader_partner.astro";
import Footer from "#components/design/footer/Footer.astro"; import Footer from "#components/design/footer/Footer.astro";
import SidebarLeft from "#components/design/sidebars/SidebarLeft.astro"; import SidebarLeft from "#components/design/sidebars/SidebarLeft.astro";
import { NotificationWrapper } from "@ibcornelsen/ui"; import { NotificationWrapper } from "@ibcornelsen/ui";
@@ -15,8 +15,11 @@ export interface Props {
tabHover4: string; tabHover4: string;
tabHover5: string; tabHover5: string;
tabHover6: string; tabHover6: string;
tabHover7: string;
} }
const { title } = Astro.props; const { title } = Astro.props;
const { tabHover1 } = Astro.props; const { tabHover1 } = Astro.props;
const { tabHover2 } = Astro.props; const { tabHover2 } = Astro.props;
@@ -24,6 +27,8 @@ const { tabHover3 } = Astro.props;
const { tabHover4 } = Astro.props; const { tabHover4 } = Astro.props;
const { tabHover5 } = Astro.props; const { tabHover5 } = Astro.props;
const { tabHover6 } = Astro.props; const { tabHover6 } = Astro.props;
const { tabHover7 } = Astro.props;
--- ---
<script> <script>
@@ -139,7 +144,7 @@ window.addEventListener("scroll", () => {
<body> <body>
<Header {tabHover1} {tabHover2} {tabHover3} {tabHover4} {tabHover5} {tabHover6}/> <Header {tabHover1} {tabHover2} {tabHover3} {tabHover4} {tabHover5} {tabHover6} {tabHover7}/>
<main class="w-full p-0 grid grid-cols-1 rounded-none"> <main class="w-full p-0 grid grid-cols-1 rounded-none">

View File

@@ -0,0 +1,88 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
import { AufnahmeClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { Aufnahme, BedarfsausweisGewerbe, Bild, Enums, Objekt, Unterlage, VerbrauchsausweisWohnen } from "#lib/server/prisma";
import { getAufnahme, getBedarfsausweisGewerbe, getBilder, getObjekt, getUnterlagen, getVerbrauchsausweisWohnen } from "#lib/server/db";
import { getCurrentUser } from "#lib/server/user";
import BedarfsausweisGewerbeModule from "#modules/angebot-anfragen/BedarfsausweisGewerbeModule.svelte";
const id = Astro.url.searchParams.get("id");
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
let nachweis: BedarfsausweisGewerbe = {} as BedarfsausweisGewerbe;
let aufnahme: Aufnahme = {} as Aufnahme;
let objekt: Objekt = {} as Objekt;
let bilder: Bild[] = []
let unterlagen: Unterlage[] = []
const user = await getCurrentUser(Astro)
if (id) {
if (!user) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
nachweis = await getBedarfsausweisGewerbe(id) as BedarfsausweisGewerbe
if (!nachweis || nachweis.benutzer_id !== user.id) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
aufnahme = await getAufnahme(nachweis.aufnahme_id) as Aufnahme
if (!aufnahme) {
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
if (!objekt) {
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
bilder = await getBilder(aufnahme.id);
unterlagen = await getUnterlagen(aufnahme.id);
} else if (aufnahme_id) {
if (!user) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
aufnahme = await getAufnahme(nachweis.aufnahme_id) as Aufnahme
if (!aufnahme) {
// Die Aufnahme existiert wohl nicht.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
if (!objekt) {
// Das Objekt existiert nicht.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
}
---
<AusweisLayout title="Bedarfsausweis Gewerbe anfragen">
<BedarfsausweisGewerbeModule client:only {nachweis} {objekt} {aufnahme} {bilder} {unterlagen} {id} {ausweistyp} />
</AusweisLayout>

View File

@@ -0,0 +1,13 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import ProduktUebersichtBedarfsausweisGewerbe from "#components/design/content/ProduktUebersichtBedarfsausweisGewerbe.svelte";
---
<AusweisLayout title="Bedarfsausweis Gewerbe Produktübersicht">
<ProduktUebersichtBedarfsausweisGewerbe>
</ProduktUebersichtBedarfsausweisGewerbe>
</AusweisLayout>

View File

@@ -0,0 +1,90 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken.js";
import GEGNachweisGewerbeModule from "#modules/angebot-anfragen/GEGNachweisGewerbeModule.svelte";
const uid = Astro.url.searchParams.get("uid");
let nachweis: GEGNachweisWohnenClient = {} as GEGNachweisWohnenClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
let objekt: ObjektClient = {} as ObjektClient;
let bilder: UploadedGebaeudeBild[] = []
let unterlagen: UnterlageClient[] = []
const valid = validateAccessTokenServer(Astro);
const caller = createCaller(Astro);
if (uid) {
if (!valid) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
try {
nachweis = await caller["geg-nachweis-wohnen"]._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
});
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_aufnahme
}
})
objekt = await caller.objekt._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_objekt
}
})
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_aufnahme
}
})
unterlagen = await caller.aufnahme._uid.unterlagen.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_aufnahme
}
})
if (!nachweis) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/angebot-anfragen/geg-nachweis-wohnen-anfragen"
);
}
} catch(e) {
return Astro.redirect(
"/angebot-anfragen/geg-nachweis-wohnen-anfragen"
);
}
}
---
<AusweisLayout title="GEG Nachweis Wohnen anfragen" tabHover6="glow">
<GEGNachweisGewerbeModule client:only {nachweis} {objekt} {aufnahme} {bilder} {unterlagen} />
</AusweisLayout>

View File

@@ -0,0 +1,13 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import ProduktUebersichtGEGNachweisGewerbe from "#components/design/content/ProduktUebersichtGEGNachweisGewerbe.svelte";
---
<AusweisLayout title="GEG Nachweis Gewerbe Produktübersicht">
<ProduktUebersichtGEGNachweisGewerbe>
</ProduktUebersichtGEGNachweisGewerbe>
</AusweisLayout>

View File

@@ -0,0 +1,93 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken.js";
import GEGNachweisWohnenModule from "#modules/angebot-anfragen/GEGNachweisWohnenModule.svelte";
import { Enums } from "#lib/server/prisma";
const uid = Astro.url.searchParams.get("uid");
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
let nachweis: GEGNachweisWohnenClient = {} as GEGNachweisWohnenClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
let objekt: ObjektClient = {} as ObjektClient;
let bilder: UploadedGebaeudeBild[] = []
let unterlagen: UnterlageClient[] = []
const valid = validateAccessTokenServer(Astro);
const caller = createCaller(Astro);
if (uid) {
if (!valid) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
try {
nachweis = await caller["geg-nachweis-wohnen"]._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
});
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_aufnahme
}
})
objekt = await caller.objekt._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_objekt
}
})
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_aufnahme
}
})
unterlagen = await caller.aufnahme._uid.unterlagen.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: nachweis.uid_aufnahme
}
})
if (!nachweis) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/angebot-anfragen/geg-nachweis-wohnen-anfragen"
);
}
} catch(e) {
return Astro.redirect(
"/angebot-anfragen/geg-nachweis-wohnen-anfragen"
);
}
}
---
<AusweisLayout title="GEG Nachweis Wohnen anfragen" tabHover5="glow">
<GEGNachweisWohnenModule client:only {nachweis} {objekt} {aufnahme} {bilder} {ausweistyp} {unterlagen} />
</AusweisLayout>

View File

@@ -0,0 +1,13 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import ProduktUebersichtGEGNachweisWohnen from "#components/design/content/ProduktUebersichtGEGNachweisWohnen.svelte";
---
<AusweisLayout title="GEG Nachweis Wohnen Produktübersicht">
<ProduktUebersichtGEGNachweisWohnen>
</ProduktUebersichtGEGNachweisWohnen>
</AusweisLayout>

View File

@@ -0,0 +1,82 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
const uid = Astro.url.searchParams.get("uid");
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
let objekt: ObjektClient = {} as ObjektClient;
let bilder: UploadedGebaeudeBild[] = []
const valid = validateAccessTokenServer(Astro);
const caller = createCaller(Astro);
if (uid) {
if (!valid) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
try {
ausweis = await caller["bedarfsausweis-wohnen"]._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
});
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_aufnahme
}
})
objekt = await caller.objekt._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_objekt
}
})
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_aufnahme
}
})
if (!ausweis) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/bedarfsausweis-wohnen"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/bedarfsausweis-wohnen"
);
}
}
---
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen" tabHover3="glow">
<BedarfsausweisWohnenModule client:load {ausweis} {objekt} {aufnahme} {bilder}></BedarfsausweisWohnenModule>
</AusweisLayout>

View File

@@ -0,0 +1,13 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
---
<AusweisLayout title="Bedarfsausweis Wohngebäude Produktübersicht">
<div class="mx-auto my-8" style="width:85%">
<ProduktUebersichtBedarfsausweisWohnen ref="/immowelt"></ProduktUebersichtBedarfsausweisWohnen>
</div>
</AusweisLayout>

View File

@@ -0,0 +1,86 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { inferOutput } from "astro-typesafe-api/client";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
import { Enums } from "#lib/server/prisma";
const uid = Astro.url.searchParams.get("uid");
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
let objekt: ObjektClient = {} as ObjektClient;
let bilder: UploadedGebaeudeBild[] = []
const valid = validateAccessTokenServer(Astro);
const caller = createCaller(Astro);
if (uid) {
if (!valid) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
try {
let { uid_aufnahme, uid_objekt, uid_benutzer, ...result } = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
});
ausweis = result
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: uid_aufnahme
}
})
objekt = await caller.objekt._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: uid_objekt
}
})
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: uid_aufnahme
}
})
if (!ausweis) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
);
}
}
---
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen" tabHover2="glow">
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp}/>
</AusweisLayout>

View File

@@ -0,0 +1,14 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
---
<AusweisLayout title="Verbrauchsausweis Gewerbe Produktübersicht">
<div class="mx-auto my-8" style="width:85%">
<ProduktUebersichtVerbrauchsausweisGewerbe ref="/immowelt">
</ProduktUebersichtVerbrauchsausweisGewerbe>
</div>
</AusweisLayout>

View File

@@ -0,0 +1,85 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
import { Enums } from "#lib/server/prisma";
const uid = Astro.url.searchParams.get("uid");
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
let objekt: ObjektClient = {} as ObjektClient;
let bilder: UploadedGebaeudeBild[] = []
const valid = validateAccessTokenServer(Astro);
const caller = createCaller(Astro);
if (uid) {
if (!valid) {
return Astro.redirect(
`/auth/login?redirect=${Astro.url.toString()}`
);
}
try {
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
});
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_aufnahme
}
})
objekt = await caller.objekt._uid.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_objekt
}
})
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_aufnahme
}
})
if (!ausweis) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
}
---
<AusweisLayout title="Verbrauchsausweis erstellen" tabHover1="glow">
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} />
</AusweisLayout>

View File

@@ -0,0 +1,13 @@
---
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
---
<AusweisLayout title="Verbrauchsausweis Wohngebäude Produktübersicht">
<div class="mx-auto my-8" style="width:85%">
<ProduktUebersichtVerbrauchsausweisWohnen ref="/immowelt">
</ProduktUebersichtVerbrauchsausweisWohnen>
</div>
</AusweisLayout>