diff --git a/.github/workflows/dev-pipeline.yml b/.github/workflows/dev-pipeline.yml index bd2f8e23..1cc0fec5 100644 --- a/.github/workflows/dev-pipeline.yml +++ b/.github/workflows/dev-pipeline.yml @@ -1,5 +1,5 @@ name: Dev Pipeline - + on: pull_request: branches: [main] @@ -19,7 +19,7 @@ jobs: port: 22 script: | cd ~/online-energieausweis - git reset --hard HEAD + git reset --hard origin/main git clean -f -d git pull origin main git status diff --git a/package.json b/package.json index 3a4e042d..f9e1674d 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "body-scroll-lock": "^4.0.0-beta.0", "buffer": "^6.0.3", "bun": "^1.1.34", + "caniuse-lite": "^1.0.30001684", "csvtojson": "^2.0.10", "express": "^4.21.1", "flag-icons": "^6.15.0", @@ -44,10 +45,10 @@ "i18next-http-backend": "^2.6.2", "js-cookie": "^3.0.5", "js-interpolate": "^1.0.1", - "postcss-nested": "^7.0.2", "katex": "^0.16.11", "moment": "^2.30.1", "moment-timezone": "^0.5.46", + "postcss-nested": "^7.0.2", "radix-svelte-icons": "^1.0.0", "sass": "^1.80.6", "svelte": "^3.59.2", diff --git a/public/images/header/logo-IBC-big.svg b/public/images/header/logo-IBC-big.svg index 34378f2e..deb47bca 100644 --- a/public/images/header/logo-IBC-big.svg +++ b/public/images/header/logo-IBC-big.svg @@ -1,30 +1,32 @@ - + - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/server.ts b/server.ts index a898aa70..72120f8c 100644 --- a/server.ts +++ b/server.ts @@ -1,7 +1,5 @@ import express from 'express'; import { handler as ssrHandler } from './dist/server/entry.mjs'; -import https from "https" -import * as fs from "fs" const app = express(); @@ -13,21 +11,4 @@ app.listen(80, function() { console.log('Server started on http://localhost:80'); }); -const privateKey = fs.readFileSync('/etc/letsencrypt/live/ibcornelsen.de/privkey.pem', 'utf8'); -const certificate = fs.readFileSync('/etc/letsencrypt/live/ibcornelsen.de/cert.pem', 'utf8'); - -if (privateKey && certificate) { - https.createServer({ - key: privateKey, - cert: certificate - }, app).listen(443, function() { - console.log('Server started on https://localhost:443'); - }); -} else { - console.error('No SSL certificate found'); -} - - - - diff --git a/src/components/design/content/banner-saeule.svelte b/src/components/design/content/banner-saeule.svelte index 6077a35c..4a622de2 100644 --- a/src/components/design/content/banner-saeule.svelte +++ b/src/components/design/content/banner-saeule.svelte @@ -1,171 +1,119 @@ +
+
- -
-
-

- einfach -
-

-
-
-
-

Einfache Berechnung anhand von 3 - Jahresverbräuchen der Heizung. Das Enddatum darf nicht älter als 18 Monate sein.

-
-
-

-
-
-
-
-

- Zulässig bei Vermietung -
- oder Verkauf Ihres Immobilienobjektes. -

-
-
-

-
-
-
-
-

Unzulässig bei unsanierten Gebäuden vor - 1978 gebaut mit weniger als 5 Wohnungen.

-
-
-

-
-
-
-
-

Für bauliche und energetische Maßnahmen - ungeeignet. Starke Abweichungen durch individuelles Heizverhalten.

-
-
-

-
-
-
-
-

Wird nicht immer bei den Banken für die - Kreditunterlagen akzeptiert.

-
-
-

-
-
+
+ Wohnhaus Verbrauchsausweis +
Verbrauchsausweis
Wohngebäude
+
+ +
+
einfach
+
Einfache Berechnung anhand von 3 Jahresverbräuchen der Heizung. Das Enddatum darf nicht älter als 18 Monate sein.
+
Zulässig bei Vermietung oder Verkauf Ihres Immobilienobjektes.
+
Unzulässig bei unsanierten Gebäuden vor 1978 gebaut mit weniger als 5 Wohnungen.
+
Für bauliche und energetische Maßnahmen ungeeignet. Starke Abweichungen durch individuelles Heizverhalten.
+
Wird nicht immer bei den Banken für die Kreditunterlagen akzeptiert.
+
- zur Produktübersicht +
+ ab {PRICES.VerbrauchsausweisWohnen[0]} € inkl. 19% MwSt. +
+
+
- jetzt sofort Energieausweis
online erstellen +
jetzt online erstellen
+
+ +
+
zur Produktübersicht
- - -
-
-

- fundiert -
-

-
-
-
-

Berechnung anhand der - Gebäudegeometrie, U-Werte der Außenbauteile sowie dem Wirkungsgrad der Heizung.

-
-
-

-
-
-
-
-

Zulässig bei Vermietung, Verkauf, - Modernisierung und Neubau.

-
-
-

-
-
-
-
-

Zulässig für alle Gebäude, insbesondere - alte und unsanierte Objekte.

-
-
-

-
-
-
-
-

Kann als Grundlage für Sanierungsvarianten - sowie weitere Maßnahmen (z.B. iSFP) herangezogen werden.

-
-
-

-
-
-
-
-

Objektive  Berechnung die für die - Kreditunterlagen besser geeignet ist.

-
-
-

-
-
+
+ Wohnhaus Bedarfsausweis +
Bedarfssausweis
Wohngebäude
+
+ +
+
fundiert
+
Berechnung mit Erfassung der Gebäudegeometrie, U-Werte der Außenbauteile sowie dem Wirkungsgrad der Heizung.
+
Zulässig bei Vermietung, Verkauf, Modernisierung und Neubau.
+
Zulässig für alle Gebäude, insbesondere alte und unsanierte Objekte.
+
Kann als Grundlage für Sanierungsvarianten sowie weitere Maßnahmen (z.B. iSFP) herangezogen werden.
+
Objektive Berechnung die für die Kreditunterlagen besser geeignet ist.
- +
- zur Produktübersicht +
+ ab {PRICES.BedarfsausweisWohnen[0]} € inkl. 19% MwSt. +
+
- +
- jetzt sofort Energieausweis
online erstellen +
jetzt online erstellen
- + +
+
zur Produktübersicht
+
+
+ +
- \ No newline at end of file diff --git a/src/components/design/header/Header.astro b/src/components/design/header/Header.astro index 5beb3080..6a8eb7ff 100644 --- a/src/components/design/header/Header.astro +++ b/src/components/design/header/Header.astro @@ -1,18 +1,24 @@ --- import Login from "#sidebarCards/card-login.svelte"; - ---
-
+
-
-
- - + + - -
- +
+ +
- - - - -
+ lg:h-[12px] xl:h-[12px]">
+
diff --git a/src/components/design/sidebars/cards/card-login.svelte b/src/components/design/sidebars/cards/card-login.svelte index 6bde77f6..f19e84e9 100644 --- a/src/components/design/sidebars/cards/card-login.svelte +++ b/src/components/design/sidebars/cards/card-login.svelte @@ -23,47 +23,43 @@
+ id="card-login"> +
-
- -
- (errorHidden = true)} - required - /> - (errorHidden = true)} - required - /> - {#if !errorHidden} - - {/if} +
+ (errorHidden = true)} + required + /> + (errorHidden = true)} + required + /> + {#if !errorHidden} + - + {/if} -
-
+
+
+ + - -
- + +
diff --git a/src/components/design/sidebars/cards/card-navigation.svelte b/src/components/design/sidebars/cards/card-navigation.svelte index 5b3c35d0..35246e98 100644 --- a/src/components/design/sidebars/cards/card-navigation.svelte +++ b/src/components/design/sidebars/cards/card-navigation.svelte @@ -99,21 +99,22 @@ if(innerWidth>1024){
+ + + @@ -187,7 +191,20 @@ if(innerWidth>1024){ - diff --git a/src/modules/Ausweise/VerbrauchsausweisWohnenModule.svelte b/src/modules/Ausweise/VerbrauchsausweisWohnenModule.svelte index ee067d46..b3853ea4 100644 --- a/src/modules/Ausweise/VerbrauchsausweisWohnenModule.svelte +++ b/src/modules/Ausweise/VerbrauchsausweisWohnenModule.svelte @@ -119,7 +119,7 @@

-
+
-
+ +
+
- - -
- -
- -
- - - -
- -
-
- - -
-
- - -
-
- - -
- - Wenn bekannt geben Sie den Anteil der Warmwasser-Versorgung - hier ein. Standardmäßig wird ein Anteil von 18% angenommen. - - - -
- -
- - Wenn bekannt geben Sie den Anteil der Warmwasser-Versorgung - von der zusätzlichen Heizquelle hier ein. Standardmäßig wird - ein Anteil von 18% angenommen. - - -
- - -
- - Bitte setzen Sie den Haken falls nachhaltige CO2-Effiziente - Heizungssysteme vorhanden sind. Das wäre beispielsweise bei - Pelletofen, Wärmepumpe, BHKW, Solarsystem, etc. der Fall. - -
- - - - -
-
-
- -
- - - -
- -
- - Bitte wählen Sie hier den Gebäudetyp aus. - -
- -
-
- - -
- - Bitte geben Sie hier den Gebäudeteil ein. In den meisten - Fällen handelt es sich um das Gesamtgebäude. Sollte es sich - allerdings um ein Gebäude mit mehr als 10% Gewerbeanteil - handeln, so sollten 2 Ausweise erstellt werden. In diesem - Fall wählen Sie Gebäudeteil 'Wohnen' bzw. Gebäudeteil - 'Gewerbe'. - -
- -
-
- - -
- - Bitte geben Sie hier ein ob über die Fenster natürlich - belüftet wird oder über eine Lüftungsanlage. - -
- -
-
- - -
- - Bitte geben Sie an ob das Gebäude im Sommer zusätzlich - gekühlt wird. - -
- -
-
- - -
- - Bitte geben Sie hier den Leerstand in % des Gesamtzeitraumes - (3 Jahre) ein. Zum Beispiel 4 Monate Leerstand in 36 Monaten - wären dann ca. 11%. - -
- -
-
-
- -
- - - -
-
- - -
@@ -843,16 +566,4 @@ diff --git a/src/pages/index.astro b/src/pages/index.astro index e3c2e2a5..2c39d6f3 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -5,8 +5,10 @@ import BannerPrice from "#content/banner-saeule.svelte"; --- -

Energieausweis online erstellen

- + +

Unsere Ausweise im Detail:

+ +
diff --git a/src/pages/index_1.astro b/src/pages/index_1.astro index 2457d45f..d53fed97 100644 --- a/src/pages/index_1.astro +++ b/src/pages/index_1.astro @@ -6,7 +6,7 @@ import BannerPrice from "#content/banner-saeule.svelte";

Energieausweis online erstellen

- +
diff --git a/src/style/formular.css b/src/style/formular.css new file mode 100644 index 00000000..c82a345b --- /dev/null +++ b/src/style/formular.css @@ -0,0 +1,41 @@ + + +.Phase_und_Skala{grid-area:phase_und_skala;} +.Bereich_A{grid-area:a} +.Bereich_B{grid-area:b} + +#formular-box{ + @apply border-2 border-[#ffcc03] p-4 rounded-lg bg-formular-box; + /* background: linear-gradient( + 135deg, + rgba(252, 234, 187, 1) 0%, + rgba(253, 235, 189, 1) 52%, + rgba(251, 223, 147, 1) 100% + ); */ +} + + +.GRB { + @apply border-2 border-[#ffcc03] p-4 flex flex-row rounded-lg justify-between w-full bg-[rgba(252,234,187,0.2)]; + /* background: linear-gradient( + 135deg, + rgba(252, 234, 187, 1) 0%, + rgba(253, 235, 189, 1) 52%, + rgba(251, 223, 147, 1) 100% + ); */ +} + +/* + :global(input[type="number"]), + :global(input[type="text"]) { + @apply input input-bordered py-1.5 px-2 h-auto; + } + + :global(input[type="number"]:disabled) { + @apply bg-gray-200 border border-gray-300; + } + + :global(.linked) { + @apply border-2 border-red-400; + } + */ \ No newline at end of file diff --git a/src/style/global.css b/src/style/global.css index a7b5f345..7cb597f4 100644 --- a/src/style/global.css +++ b/src/style/global.css @@ -104,7 +104,7 @@ article { } .nav-element:hover > .dropdown-content{ - @apply lg:visible lg:opacity-100 lg:block lg:ml-[2px] + @apply lg:visible lg:opacity-100 lg:block lg:ml-[calc(100%+2px)] } .nav-element:hover:first-child > .nav-element-child{ @@ -129,7 +129,7 @@ article { li {@apply text-sm bg-white flex xl:text-lg} -li a {@apply w-full text-sm px-6 py-3 rounded-none no-underline text-white hover:text-white bg-secondary +li a {@apply w-full text-sm px-6 py-3 rounded-none no-underline text-white hover:text-white hover:bg-gradient-to-br from-secondary to-secondary-grad lg:px-4 lg:bg-[#efefef] lg:text-black lg:hover:bg-secondary xl:text-lg} diff --git a/svelte.config.js b/svelte.config.js index 79f059b7..b5d6643d 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,6 +1,5 @@ import { vitePreprocess } from "@astrojs/svelte"; import preprocess from "svelte-preprocess"; - export default { preprocess: [vitePreprocess(), preprocess()], }; diff --git a/tailwind.config.cjs b/tailwind.config.cjs index 490949fe..a7aff08f 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -3,7 +3,7 @@ module.exports = { content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}", "./node_modules/@ibcornelsen/ui/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], darkMode: "class", plugins: - [require("daisyui"), + [ require("@tailwindcss/typography")], important: true, theme: { @@ -11,14 +11,34 @@ module.exports = { screens: { xs: '480px' }, + content: { + 'nav-disc': ' ', + }, colors: { + 'primary': '#ff7d26', + 'primary-grad': '#ff7d26', + 'primary-focus': '#ec6a13', + 'primary-content': '#ffffff', + + 'secondary': '#444f94', + 'secondary-grad': '#546AB2', + 'secondary-focus': '#2f397f', + 'secondary-content': '#ffffff', + + 'base-200': '#f9fafb', + 'base-content': '#1e2734', + 'box-heading': '#3A4AB5', + + "formular-box": "rgba(252,234,187,0.2)", + "pdf-yellow-bright": "#f3cb00", "pdf-yellow-light": "#fff6ca", - "box-heading": 'var(--box-heading)' + }, boxShadow: { - 'box': '3px 3px 6px rgba(0, 0, 0, 0.1)', + 'box': '3px 3px 6px rgba(0, 0, 0, 0.1)', + 'saeule': '3px 3px 6px rgba(0, 0, 0, 0.1)', }, gridTemplateColumns: { @@ -37,104 +57,102 @@ module.exports = { } }, }, - daisyui: { - themes: [{ - light: { - 'primary': '#ff7d26', - 'primary-focus': '#ec6a13', - 'primary-content': '#ffffff', + //yui: { + //themes: [{ + // light: { + // 'primary': '#ff7d26', + // 'primary-focus': '#ec6a13', + // 'primary-content': '#ffffff', - 'secondary': '#444f94', - 'secondary-focus': '#2f397f', - 'secondary-content': '#ffffff', + // 'secondary': '#444f94', + // 'secondary-focus': '#2f397f', + // 'secondary-content': '#ffffff', - '--box-heading': '#3A4AB5', + // 'accent': '#7b37cd', + // 'accent-focus': '#5f25a7', + // 'accent-content': '#ffffff', - 'accent': '#7b37cd', - 'accent-focus': '#5f25a7', - 'accent-content': '#ffffff', + // 'neutral': '#3b424e', + // 'neutral-focus': '#2a2e37', + // 'neutral-content': '#ffffff', - 'neutral': '#3b424e', - 'neutral-focus': '#2a2e37', - 'neutral-content': '#ffffff', + // 'base-100': '#ffffff', + // 'base-200': '#f9fafb', + // 'base-300': '#ced3d9', + // 'base-content': '#1e2734', - 'base-100': '#ffffff', - 'base-200': '#f9fafb', - 'base-300': '#ced3d9', - 'base-content': '#1e2734', + // 'info': '#0689f4', + // 'success': '#04b964', + // "success-content": "#ffffff", + // 'warning': '#f49d1a', + // "warning-content": "#ffffff", + // 'error': '#e43f3f', + // "error-content": "#ffffff", - 'info': '#0689f4', - 'success': '#04b964', - "success-content": "#ffffff", - 'warning': '#f49d1a', - "warning-content": "#ffffff", - 'error': '#e43f3f', - "error-content": "#ffffff", + // '--rounded-box': '1rem', + // '--rounded-btn': '.5rem', + // '--rounded-badge': '1.9rem', - '--rounded-box': '1rem', - '--rounded-btn': '.5rem', - '--rounded-badge': '1.9rem', + // '--animation-btn': '.25s', + // '--animation-input': '.2s', - '--animation-btn': '.25s', - '--animation-input': '.2s', + // '--btn-text-case': 'normal', + // '--navbar-padding': '.5rem', + // '--border-btn': '1px' + // }, + // 'dark': { + // 'primary': '#ff7d26', + // 'primary-focus': '#ec6a13', + // 'primary-content': '#ffffff', - '--btn-text-case': 'normal', - '--navbar-padding': '.5rem', - '--border-btn': '1px' - }, - 'dark': { - 'primary': '#ff7d26', - 'primary-focus': '#ec6a13', - 'primary-content': '#ffffff', + // 'secondary': '#444f94', + // 'secondary-focus': '#2f397f', + // 'secondary-content': '#ffffff', - 'secondary': '#444f94', - 'secondary-focus': '#2f397f', - 'secondary-content': '#ffffff', + // '--box-heading': '#3A4AB5', - '--box-heading': '#3A4AB5', + // 'accent': '#8c45e3', + // 'accent-focus': '#7532c8', + // 'accent-content': '#ffffff', - 'accent': '#8c45e3', - 'accent-focus': '#7532c8', - 'accent-content': '#ffffff', + // 'neutral': '#2a2e37', + // 'neutral-focus': '#16181d', + // 'neutral-content': '#ffffff', - 'neutral': '#2a2e37', - 'neutral-focus': '#16181d', - 'neutral-content': '#ffffff', + // 'base-100': '#3b424e', + // 'base-200': '#2a2e37', + // 'base-300': '#16181d', + // 'base-content': '#ebecf0', - 'base-100': '#3b424e', - 'base-200': '#2a2e37', - 'base-300': '#16181d', - 'base-content': '#ebecf0', + // 'info': '#0689f4', + // 'success': '#04b964', + // 'warning': '#f49d1a', + // "warning-content": "#ffffff", + // 'error': '#ff6b6b', + // "error-content": "#ffffff", + // "pdf-yellow-bright": "#f3cb00", + // "pdf-yellow-light": "#fff6ca", - 'info': '#0689f4', - 'success': '#04b964', - 'warning': '#f49d1a', - "warning-content": "#ffffff", - 'error': '#ff6b6b', - "error-content": "#ffffff", - "pdf-yellow-bright": "#f3cb00", - "pdf-yellow-light": "#fff6ca", + // '--rounded-box': '1rem', + // '--rounded-btn': '.5rem', + // '--rounded-badge': '1.9rem', - '--rounded-box': '1rem', - '--rounded-btn': '.5rem', - '--rounded-badge': '1.9rem', + // '--animation-btn': '.25s', + // '--animation-input': '.2s', - '--animation-btn': '.25s', - '--animation-input': '.2s', - - '--btn-text-case': 'uppercase', - '--navbar-padding': '.5rem', - '--border-btn': '1px', - } - }, ], - darkTheme: "dark", // name of one of the included themes for dark mode - base: true, // applies background color and foreground color for root element by default - styled: true, // include daisyUI colors and design decisions for all components - utils: true, // adds responsive and modifier utility classes - prefix: "", // prefix for daisyUI classnames (components, modifiers and responsive class names. Not colors) - logs: true, // Shows info about daisyUI version and used config in the console when building your CSS - themeRoot: ":root", // The element that receives theme color CSS variables - }, + // '--btn-text-case': 'uppercase', + // '--navbar-padding': '.5rem', + // '--border-btn': '1px', + // } + //}, ], + //darkTheme: "dark", // name of one of the included themes for dark mode + //base: true, // applies background color and foreground color for root element by default + //styled: true, // include daisyUI colors and design decisions for all components + //utils: true, // adds responsive and modifier utility classes + //prefix: "", // prefix for daisyUI classnames (components, modifiers and responsive class names. Not colors) + //logs: true, // Shows info about daisyUI version and used config in the console when building your CSS + //themeRoot: ":root", // The element that receives theme color CSS variables + //}, fontSize: { sm: '0.750rem', base: '1rem',