PageSourceSearch

https://www.bildungsakademie.de/foerderprojekte/

html bildungsakademie.de collected 2026-10-06 03:59:01 UTC 259,194 bytes, 3,149 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de">
3	<head>
4		<meta charset="UTF-8">
5		<meta http-equiv="X-UA-Compatible" content="IE=edge">
6		<meta name="viewport" content="width=device-width, initial-scale=1">
7		<title>Förderprojekte - Bildungsakademie Konstanz Bildungsakademie Konstanz</title>
8		<link rel="shortcut icon" href="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/img/favicon.ico" type="image/x-icon" />
9		<link rel="apple-touch-icon" href="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/img/apple-touch-icon-precomposed.png" />
10		<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
11
12	<!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ -->
13	<meta name="description" content="Unsere Förderprojekte stärken Digitalisierung, Innovation und Nachhaltigkeit in der handwerklichen Aus-, Fort- und Weiterbildung." />
14	<link rel="canonical" href="https://www.bildungsakademie.de/foerderprojekte/" />
15	<meta property="og:locale" content="de_DE" />
16	<meta property="og:type" content="article" />
17	<meta property="og:title" content="Förderprojekte - Bildungsakademie Konstanz" />
18	<meta property="og:description" content="Unsere Förderprojekte stärken Digitalisierung, Innovation und Nachhaltigkeit in der handwerklichen Aus-, Fort- und Weiterbildung." />
19	<meta property="og:url" content="https://www.bildungsakademie.de/foerderprojekte/" />
20	<meta property="og:site_name" content="Bildungsakademie Konstanz" />
21	<meta property="article:modified_time" content="2026-06-15T07:53:15+00:00" />
22	<meta name="twitter:card" content="summary_large_image" />
23	<!-- / Yoast SEO plugin. -->
24
25
26<link rel="preload" href="https://www.bildungsakademie.de/wp-content/cache/borlabs-cookie/1/borlabs-cookie-config-de.json.js?ver=3.4.5-35" as="script">
27<link rel="preload" href="https://www.bildungsakademie.de/wp-content/cache/borlabs-cookie/1/borlabs-cookie-1-de.css?ver=3.4.5-26" as="style">
28<link rel="preload" href="https://www.bildungsakademie.de/wp-content/plugins/borlabs-cookie/assets/javascript/borlabs-cookie-prioritize.min.js?ver=3.4.5" as="script">
29<style id="wp-img-auto-sizes-contain-inline-css">
30img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
31/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
32</style>
33<link rel='stylesheet' id='wp-block-library-css' href='https://www.bildungsakademie.de/wp-includes/css/dist/block-library/style.min.css?ver=7.1.2' media='all' />
34<style id="global-styles-inline-css">
35:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
35--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--source-sans: 'Source Sans 3', 'Segoe UI', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{font-family: var(--wp--preset--font-family--source-sans);padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
35.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-source-sans-font-family{font-family: var(--wp--preset--font-family--source-sans) !important;}
36:root :where(.wp-block-icon svg){width: 24px;}
37:where(.wp-block-gallery.is-layout-flex){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}:where(.wp-block-gallery.is-layout-grid){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}
38:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
39:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
40:where(.wp-block-term-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-term-template.is-layout-grid){gap: 1.25em;}
41:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
42:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
43/*# sourceURL=global-styles-inline-css */
44</style>
45<link rel='stylesheet' id='uniplus-base-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/css/uniplus_base.css?ver=1.0.3' media='all' />
46<link rel='stylesheet' id='leaflet-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/dist/leaflet/leaflet.css?ver=1.0.0' media='all' />
47<link rel='stylesheet' id='leaflet-fullscreen-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/dist/leaflet-fullscreen/leaflet-fullscreen.css?ver=1.0.0' media='all' />
48<link rel='stylesheet' id='styles-css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-berufsdatenbank/css/berufsanzeige-styles.css?ver=1.0.1' media='all' />
49<link rel='stylesheet' id='bschulen-v2-css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-berufsdatenbank/css/bschulen-v2.css?ver=1.0.0' media='all' />
50<link rel='stylesheet' id='ladda-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/ladda.min.css?ver=1.0' media='all' />
51<link rel='stylesheet' id='ladda-theme-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/ladda-themeless.min.css?ver=1.0' media='all' />
52<link rel='stylesheet' id='uniplus-clientside-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/uniplus_clientside.css?ver=1.0.7' media='all' />
53<link rel='stylesheet' id='uniplus-mp-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/uni_mp.css?ver=1.1' media='all' />
54<link rel='stylesheet' id='uniplus-style-1-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/uniplus.css?ver=1.0' media='all' />
55<link rel='stylesheet' id='jquery-ui-css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/jquery-ui.css?ver=1.0' media='all' />
56<link rel='stylesheet' id='jquery-confirm-css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/jquery-confirm.css?ver=1.0' media='all' />
57<link rel='stylesheet' id='multiselect-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/multiselect.css?ver=1.0' media='all' />
58<link rel='stylesheet' id='animate-css-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/animate.css?ver=1.0' media='all' />
59<link rel='stylesheet' id='pure-css-grid-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/css/grids-min.css?ver=1.0' media='all' />
60<link rel='stylesheet' id='evaluation-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-evaluation/css/evaluation.css?ver=7.1.2' media='all' />
61<link rel='stylesheet' id='eval-callout-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-evaluation/css/callouts.css?ver=7.1.2' media='all' />
62<link rel='stylesheet' id='uni_faq.css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-faq/css/uni_faq_style.css?ver=1.1.1' media='all' />
63<style id="ufe-styles-inline-css">
64
65        .ufe-wrap *{box-sizing:border-box;}
66        .ufe-panel{background:#fff;border:1px solid #d6dce8;border-radius:8px;overflow:hidden;font-family:system-ui,-apple-system,sans-serif;max-width:640px;}
67        .ufe-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #d6dce8;background:#f4f6fa;}
68        .ufe-header-left{display:flex;flex-direction:column;gap:2px;}
69        .ufe-heading{font-size:13px;font-weight:600;color:#1b2b3c;letter-spacing:.01em;text-transform:uppercase;}
70        .ufe-subheading{font-size:12px;color:#6b7f96;font-variant-numeric:tabular-nums;}
71        .ufe-btn-all{display:inline-flex;align-items:center;gap:6px;background:#2e5fa3;color:#fff;font-size:12.5px;font-weight:500;padding:7px 14px;border-radius:5px;text-decoration:none;border:none;cursor:pointer;transition:background .15s;}
72        .ufe-btn-all:hover{background:#1e4a85;color:#fff;}
73        .ufe-btn-all svg{flex-shrink:0;}
74        .ufe-list{padding:6px 0;}
75        .ufe-row{display:flex;align-items:center;padding:9px 18px;gap:10px;border-bottom:1px solid #edf0f5;transition:background .1s;}
76        .ufe-row:last-child{border-bottom:none;}
77        .ufe-row:hover{background:#f7f9fd;}
78        .ufe-name{flex:1;font-size:13.5px;color:#1b2b3c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
79        .ufe-badge{flex-shrink:0;font-size:11.5px;font-weight:600;color:#2e5fa3;background:#e6ecf6;border-radius:12px;padding:2px 9px;font-variant-numeric:tabular-nums;letter-spacing:.01em;}
80        .ufe-btn-dl{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:5px;color:#4c6ead;text-decoration:none;border:1px solid #c8d4e8;background:#fff;transition:background .1s,color .1s,border-color .1s;}
81        .ufe-btn-dl:hover{background:#2e5fa3;color:#fff;border-color:#2e5fa3;}
82        .ufe-btn-dl svg{display:block;}
83        .ufe-empty{padding:20px 18px;font-size:13px;color:#6b7f96;}
84        .ufe-table-wrap{margin-top:24px;overflow-x:auto;}
85        .ufe-table{width:100%;border-collapse:collapse;font-family:system-ui,-apple-system,sans-serif;font-size:13px;}
86        .ufe-table th{background:#f4f6fa;color:#4c6070;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;border-bottom:2px solid #d6dce8;text-align:left;white-space:nowrap;}
87        .ufe-table td{padding:8px 12px;border-bottom:1px solid #edf0f5;color:#1b2b3c;vertical-align:top;}
88        .ufe-table tr:last-child td{border-bottom:none;}
89        .ufe-table tbody tr:hover td{background:#f7f9fd;}
90        .ufe-table .ufe-td-id{color:#8898a8;font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap;}
91        .ufe-table .ufe-td-type{font-weight:500;white-space:nowrap;}
92        .ufe-table .ufe-td-date{color:#6b7f96;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;}
93        .ufe-meta-table{width:100%;border-collapse:collapse;margin:0;}
94        .ufe-meta-table td{padding:3px 0;font-size:12px;vertical-align:top;border:none;}
95        .ufe-meta-table td:first-child{color:#6b7f96;width:180px;padding-right:12px;white-space:nowrap;}
96        .ufe-meta-table td:last-child{color:#1b2b3c;}
97        
98/*# sourceURL=ufe-styles-inline-css */
99</style>
100<link rel='stylesheet' id='uni-formularwesen-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-formularwesen/view/style.css?ver=7.1.2' media='all' />
101<link rel='stylesheet' id='gewewrke-css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-gewerkedatenbank/css/gewerksanzeige-styles.css?ver=1.0.3' media='all' />
102<link rel='stylesheet' id='veranstaltungs-tabelle-css-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-veranstaltungen/css/veranstaltungen.css?ver=1.0.1' media='all' />
103<link rel='stylesheet' id='select2_style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-vuejs/helper/../dist/select2-4.0.13/css/select2.css?ver=4.0.13' media='all' />
104<link rel='stylesheet' id='select2_style_min-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-vuejs/helper/../dist/select2-4.0.13/css/select2.min.css?ver=4.0.13' media='all' />
105<link rel='stylesheet' id='uni-warenkorb-callout-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-warenkorb-vuejs/css/callouts.css?ver=7.1.2' media='all' />
106<link rel='stylesheet' id='uni-warenkorb-style-css' href='https://www.bildungsakademie.de/wp-content/plugins/uniplus-warenkorb-vuejs/css/warenkorb.css?ver=7.1.2' media='all' />
107<link rel='stylesheet' id='style-common-css' href='https://www.bildungsakademie.de/wp-content/themes/chatty/css/common.min.css?ver=2.10.4' media='all' />
108<style id="style-common-inline-css">
109
110                img, div.bg-image, .appear {
111					opacity: 1;
112				}
113/*# sourceURL=style-common-inline-css */
114</style>
115<link rel='stylesheet' id='style-main-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/main.min.css?ver=1.3.0' media='screen' />
116<link rel='stylesheet' id='style-print-css' href='https://www.bildungsakademie.de/wp-content/themes/chatty/css/print.min.css?ver=2.10.4' media='print' />
117<style id="borlabs-cookie-critical-inline-css">
118body div.brlbs-cmpnt-container a,body div.brlbs-cmpnt-container abbr,body div.brlbs-cmpnt-container acronym,body div.brlbs-cmpnt-container address,body div.brlbs-cmpnt-container applet,body div.brlbs-cmpnt-container article,body div.brlbs-cmpnt-container aside,body div.brlbs-cmpnt-container audio,body div.brlbs-cmpnt-container b,body div.brlbs-cmpnt-container big,body div.brlbs-cmpnt-container blockquote,body div.brlbs-cmpnt-container canvas,body div.brlbs-cmpnt-container caption,body div.brlbs-cmpnt-container center,body div.brlbs-cmpnt-container cite,body div.brlbs-cmpnt-container code,body div.brlbs-cmpnt-container dd,body div.brlbs-cmpnt-container del,body div.brlbs-cmpnt-container details,body div.brlbs-cmpnt-container dfn,body div.brlbs-cmpnt-container div,body div.brlbs-cmpnt-container dl,body div.brlbs-cmpnt-container dt,body div.brlbs-cmpnt-container em,body div.brlbs-cmpnt-container embed,body div.brlbs-cmpnt-container fieldset,body div.brlbs-cmpnt-container figcaption,body div.brlbs-cmpnt-container figure,body div.brlbs-cmpnt-container footer,body div.brlbs-cmpnt-container form,body div.brlbs-cmpnt-container h1,body div.brlbs-cmpnt-container h2,body div.brlbs-cmpnt-container h3,body div.brlbs-cmpnt-container h4,body div.brlbs-cmpnt-container h5,body div.brlbs-cmpnt-container h6,body div.brlbs-cmpnt-container header,body div.brlbs-cmpnt-container hgroup,body div.brlbs-cmpnt-container i,body div.brlbs-cmpnt-container iframe,body div.brlbs-cmpnt-container img,body div.brlbs-cmpnt-container ins,body div.brlbs-cmpnt-container kbd,body div.brlbs-cmpnt-container label,body div.brlbs-cmpnt-container legend,body div.brlbs-cmpnt-container li,body div.brlbs-cmpnt-container mark,body div.brlbs-cmpnt-container menu,body div.brlbs-cmpnt-container nav,body div.brlbs-cmpnt-container object,body div.brlbs-cmpnt-container ol,body div.brlbs-cmpnt-container output,body div.brlbs-cmpnt-container p,body div.brlbs-cmpnt-container pre,body div.brlbs-cmpnt-container q,body div.brlbs-cmpnt-container ruby,body div.brlbs-cmpnt-container s,body div.brlbs-cmpnt-container samp,body div.brlbs-cmpnt-container section,body div.brlbs-cmpnt-container small,body div.brlbs-cmpnt-container span,body div.brlbs-cmpnt-container strike,body div.brlbs-cmpnt-container strong,body div.brlbs-cmpnt-container sub,body div.brlbs-cmpnt-container summary,body div.brlbs-cmpnt-container sup,body div.brlbs-cmpnt-container table,body div.brlbs-cmpnt-container tbody,body div.brlbs-cmpnt-container td,body div.brlbs-cmpnt-container tfoot,body div.brlbs-cmpnt-container th,body div.brlbs-cmpnt-container thead,body div.brlbs-cmpnt-container time,body div.brlbs-cmpnt-container tr,body div.brlbs-cmpnt-container tt,body div.brlbs-cmpnt-container u,body div.brlbs-cmpnt-container ul,body div.brlbs-cmpnt-container var,body div.brlbs-cmpnt-container video{margin:0;padding:0;border:0;font-size:100%;font-family:inherit;vertical-align:baseline}body div.brlbs-cmpnt-container article,body div.brlbs-cmpnt-container aside,body div.brlbs-cmpnt-container details,body div.brlbs-cmpnt-container figcaption,body div.brlbs-cmpnt-container figure,body div.brlbs-cmpnt-container footer,body div.brlbs-cmpnt-container header,body div.brlbs-cmpnt-container hgroup,body div.brlbs-cmpnt-container menu,body div.brlbs-cmpnt-container nav,body div.brlbs-cmpnt-container section{display:block}body div.brlbs-cmpnt-container blockquote,body div.brlbs-cmpnt-container q{quotes:none}body div.brlbs-cmpnt-container blockquote:after,body div.brlbs-cmpnt-container blockquote:before,body div.brlbs-cmpnt-container q:after,body div.brlbs-cmpnt-container q:before{content:none}body div.brlbs-cmpnt-container table{border-spacing:0}body div.brlbs-cmpnt-container,body div.brlbs-cmpnt-container *{box-sizing:border-box;color:inherit;font-family:inherit;line-height:inherit;position:static;inset:auto;width:auto;height:auto}body div.brlbs-cmpnt-container button,body div.brlbs-cmpnt-container input,body div.brlbs-cmpnt-container optgroup,body div.brlbs-cmpnt-container select,body div.brlbs-cmpnt-container textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}body div.brlbs-cmpnt-container button:after,body div.brlbs-cmpnt-container button:before{content:none}body div.brlbs-cmpnt-container button,body div.brlbs-cmpnt-container select{text-transform:none}body div.brlbs-cmpnt-container [type=button],body div.brlbs-cmpnt-container [type=reset],body div.brlbs-cmpnt-container [type=submit],body div.brlbs-cmpnt-container button{-webkit-appearance:button}body div.brlbs-cmpnt-container ::-moz-focus-inner{border-style:none;padding:0}body div.brlbs-cmpnt-container :-moz-focusring{outline:1px dotted ButtonText}body div.brlbs-cmpnt-container :-moz-ui-invalid{box-shadow:none}body div.brlbs-cmpnt-container legend{padding:0}body div.brlbs-cmpnt-container progress{vertical-align:baseline}body div.brlbs-cmpnt-container ::-webkit-inner-spin-button,body div.brlbs-cmpnt-container ::-webkit-outer-spin-button{height:auto}body div.brlbs-cmpnt-container [type=search]{-webkit-appearance:textfield;outline-offset:-2px}body div.brlbs-cmpnt-container ::-webkit-search-decoration{-webkit-appearance:none}body div.brlbs-cmpnt-container ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}body div.brlbs-cmpnt-container summary{display:list-item}body div.brlbs-cmpnt-container blockquote,body div.brlbs-cmpnt-container dd,body div.brlbs-cmpnt-container dl,body div.brlbs-cmpnt-container figure,body div.brlbs-cmpnt-container h1,body div.brlbs-cmpnt-container h2,body div.brlbs-cmpnt-container h3,body div.brlbs-cmpnt-container h4,body div.brlbs-cmpnt-container h5,body div.brlbs-cmpnt-container h6,body div.brlbs-cmpnt-container hr,body div.brlbs-cmpnt-container p,body div.brlbs-cmpnt-container pre{margin:0}body div.brlbs-cmpnt-container button{background-color:transparent;background-image:none}body div.brlbs-cmpnt-container button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}body div.brlbs-cmpnt-container fieldset{margin:0;padding:0}body div.brlbs-cmpnt-container ol,body div.brlbs-cmpnt-container ul{list-style:none;margin:0;padding:0}body div.brlbs-cmpnt-container *,body div.brlbs-cmpnt-container :after,body div.brlbs-cmpnt-container :before{box-sizing:border-box;border-color:#e5e7eb;border-style:solid;border-width:0}body div.brlbs-cmpnt-container hr{border-top-width:1px}body div.brlbs-cmpnt-container img{border-style:solid}body div.brlbs-cmpnt-container textarea{resize:vertical}body div.brlbs-cmpnt-container input::-moz-placeholder,body div.brlbs-cmpnt-container textarea::-moz-placeholder{color:#9ca3af}body div.brlbs-cmpnt-container input::placeholder,body div.brlbs-cmpnt-container textarea::placeholder{color:#9ca3af}body div.brlbs-cmpnt-container [role=button],body div.brlbs-cmpnt-container button{curs
118or:pointer}body div.brlbs-cmpnt-container table{border-collapse:collapse}body div.brlbs-cmpnt-container h1,body div.brlbs-cmpnt-container h2,body div.brlbs-cmpnt-container h3,body div.brlbs-cmpnt-container h4,body div.brlbs-cmpnt-container h5,body div.brlbs-cmpnt-container h6{font-size:inherit;font-weight:inherit}body div.brlbs-cmpnt-container a{color:inherit;text-decoration:inherit}body div.brlbs-cmpnt-container button,body div.brlbs-cmpnt-container input,body div.brlbs-cmpnt-container optgroup,body div.brlbs-cmpnt-container select,body div.brlbs-cmpnt-container textarea{padding:0;line-height:inherit;color:inherit}body div.brlbs-cmpnt-container code,body div.brlbs-cmpnt-container kbd,body div.brlbs-cmpnt-container pre,body div.brlbs-cmpnt-container samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}body div.brlbs-cmpnt-container audio,body div.brlbs-cmpnt-container canvas,body div.brlbs-cmpnt-container embed,body div.brlbs-cmpnt-container iframe,body div.brlbs-cmpnt-container img,body div.brlbs-cmpnt-container object,body div.brlbs-cmpnt-container svg,body div.brlbs-cmpnt-container video{display:block;vertical-align:middle}body div.brlbs-cmpnt-container img,body div.brlbs-cmpnt-container video{max-width:100%;height:auto}body div.brlbs-cmpnt-container [multiple],body div.brlbs-cmpnt-container [type=date],body div.brlbs-cmpnt-container [type=datetime-local],body div.brlbs-cmpnt-container [type=email],body div.brlbs-cmpnt-container [type=month],body div.brlbs-cmpnt-container [type=number],body div.brlbs-cmpnt-container [type=password],body div.brlbs-cmpnt-container [type=search],body div.brlbs-cmpnt-container [type=tel],body div.brlbs-cmpnt-container [type=text],body div.brlbs-cmpnt-container [type=time],body div.brlbs-cmpnt-container [type=url],body div.brlbs-cmpnt-container [type=week],body div.brlbs-cmpnt-container select,body div.brlbs-cmpnt-container textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}body div.brlbs-cmpnt-container [multiple]:focus,body div.brlbs-cmpnt-container [type=date]:focus,body div.brlbs-cmpnt-container [type=datetime-local]:focus,body div.brlbs-cmpnt-container [type=email]:focus,body div.brlbs-cmpnt-container [type=month]:focus,body div.brlbs-cmpnt-container [type=number]:focus,body div.brlbs-cmpnt-container [type=password]:focus,body div.brlbs-cmpnt-container [type=search]:focus,body div.brlbs-cmpnt-container [type=tel]:focus,body div.brlbs-cmpnt-container [type=text]:focus,body div.brlbs-cmpnt-container [type=time]:focus,body div.brlbs-cmpnt-container [type=url]:focus,body div.brlbs-cmpnt-container [type=week]:focus,body div.brlbs-cmpnt-container select:focus,body div.brlbs-cmpnt-container textarea:focus{outline:2px solid transparent;outline-offset:2px;--brlbs-tw-ring-inset:var(--brlbs-tw-empty, );--brlbs-tw-ring-offset-width:0px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:#2563eb;--brlbs-tw-ring-offset-shadow:var(--brlbs-tw-ring-inset) 0 0 0 var(--brlbs-tw-ring-offset-width) var(--brlbs-tw-ring-offset-color);--brlbs-tw-ring-shadow:var(--brlbs-tw-ring-inset) 0 0 0 calc(1px + var(--brlbs-tw-ring-offset-width)) var(--brlbs-tw-ring-color);box-shadow:var(--brlbs-tw-ring-offset-shadow),var(--brlbs-tw-ring-shadow),var(--brlbs-tw-shadow,0 0 transparent);border-color:#2563eb}body div.brlbs-cmpnt-container input::-moz-placeholder,body div.brlbs-cmpnt-container textarea::-moz-placeholder{color:#6b7280;opacity:1}body div.brlbs-cmpnt-container input::placeholder,body div.brlbs-cmpnt-container textarea::placeholder{color:#6b7280;opacity:1}body div.brlbs-cmpnt-container ::-webkit-datetime-edit-fields-wrapper{padding:0}body div.brlbs-cmpnt-container ::-webkit-date-and-time-value{min-height:1.5em}body div.brlbs-cmpnt-container select{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2020%2020%22%3E%3Cpath%20stroke%3D%22%236b7280%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%20d%3D%22m6%208%204%204%204-4%22%2F%3
118E%3C%2Fsvg%3E);background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}body div.brlbs-cmpnt-container [multiple]{background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}body div.brlbs-cmpnt-container [type=checkbox],body div.brlbs-cmpnt-container [type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px}body div.brlbs-cmpnt-container [type=checkbox]{border-radius:0}body div.brlbs-cmpnt-container [type=radio]{border-radius:100%}body div.brlbs-cmpnt-container [type=checkbox]:focus,body div.brlbs-cmpnt-container [type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--brlbs-tw-ring-inset:var(--brlbs-tw-empty, );--brlbs-tw-ring-offset-width:2px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:#2563eb;--brlbs-tw-ring-offset-shadow:var(--brlbs-tw-ring-inset) 0 0 0 var(--brlbs-tw-ring-offset-width) var(--brlbs-tw-ring-offset-color);--brlbs-tw-ring-shadow:var(--brlbs-tw-ring-inset) 0 0 0 calc(2px + var(--brlbs-tw-ring-offset-width)) var(--brlbs-tw-ring-color);box-shadow:var(--brlbs-tw-ring-offset-shadow),var(--brlbs-tw-ring-shadow),var(--brlbs-tw-shadow,0 0 transparent)}body div.brlbs-cmpnt-container [type=checkbox]:checked,body div.brlbs-cmpnt-container [type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}body div.brlbs-cmpnt-container [type=checkbox]:checked{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%200%201%200%201.414l-5%205a1%201%200%200%201-1.414%200l-2-2a1%201%200%200%201%201.414-1.414L6.5%209.086l4.293-4.293a1%201%200%200%201%201.414%200%22%2F%3E%3C%2Fsvg%3E)}body div.brlbs-cmpnt-container [type=radio]:checked{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2016%2016%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E)}body div.brlbs-cmpnt-container [type=checkbox]:checked:focus,body div.brlbs-cmpnt-container [type=checkbox]:checked:hover,body div.brlbs-cmpnt-container [type=radio]:checked:focus,body div.brlbs-cmpnt-container [type=radio]:checked:hover{border-color:transparent;background-color:currentColor}body div.brlbs-cmpnt-container [type=checkbox]:indeterminate{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20stroke%3D%22%23fff%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M4%208h8%22%2F%3E%3C%2Fsvg%3E);border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}body div.brlbs-cmpnt-container [type=checkbox]:indeterminate:focus,body div.brlbs-cmpnt-container [type=checkbox]:indeterminate:hover{border-color:transparent;background-color:currentColor}body div.brlbs-cmpnt-container [type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}:root{--brlbs-tw-border-spacing-x:0;--brlbs-tw-border-spacing-y:0;--brlbs-tw-translate-x:0;--brlbs-tw-translate-y:0;--brlbs-tw-rotate:0;--brlbs-tw-skew-x:0;--brlbs-tw-skew-y:0;--brlbs-tw-scale-x:1;--brlbs-tw-scale-y:1;--brlbs-tw-pan-x:;--brlbs-tw-pan-y:;--brlbs-tw-pinch-zoom:;--brlbs-tw-scroll-snap-strictness:proximity;--brlbs-tw-gradient-from-position:;
118--brlbs-tw-gradient-via-position:;--brlbs-tw-gradient-to-position:;--brlbs-tw-ordinal:;--brlbs-tw-slashed-zero:;--brlbs-tw-numeric-figure:;--brlbs-tw-numeric-spacing:;--brlbs-tw-numeric-fraction:;--brlbs-tw-ring-inset:;--brlbs-tw-ring-offset-width:0px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:rgba(59,130,246,.5);--brlbs-tw-ring-offset-shadow:0 0 #0000;--brlbs-tw-ring-shadow:0 0 #0000;--brlbs-tw-shadow:0 0 #0000;--brlbs-tw-shadow-colored:0 0 #0000;--brlbs-tw-blur:;--brlbs-tw-brightness:;--brlbs-tw-contrast:;--brlbs-tw-grayscale:;--brlbs-tw-hue-rotate:;--brlbs-tw-invert:;--brlbs-tw-saturate:;--brlbs-tw-sepia:;--brlbs-tw-drop-shadow:;--brlbs-tw-backdrop-blur:;--brlbs-tw-backdrop-brightness:;--brlbs-tw-backdrop-contrast:;--brlbs-tw-backdrop-grayscale:;--brlbs-tw-backdrop-hue-rotate:;--brlbs-tw-backdrop-invert:;--brlbs-tw-backdrop-opacity:;--brlbs-tw-backdrop-saturate:;--brlbs-tw-backdrop-sepia:;--brlbs-tw-contain-size:;--brlbs-tw-contain-layout:;--brlbs-tw-contain-paint:;--brlbs-tw-contain-style:}::backdrop{--brlbs-tw-border-spacing-x:0;--brlbs-tw-border-spacing-y:0;--brlbs-tw-translate-x:0;--brlbs-tw-translate-y:0;--brlbs-tw-rotate:0;--brlbs-tw-skew-x:0;--brlbs-tw-skew-y:0;--brlbs-tw-scale-x:1;--brlbs-tw-scale-y:1;--brlbs-tw-pan-x:;--brlbs-tw-pan-y:;--brlbs-tw-pinch-zoom:;--brlbs-tw-scroll-snap-strictness:proximity;--brlbs-tw-gradient-from-position:;--brlbs-tw-gradient-via-position:;--brlbs-tw-gradient-to-position:;--brlbs-tw-ordinal:;--brlbs-tw-slashed-zero:;--brlbs-tw-numeric-figure:;--brlbs-tw-numeric-spacing:;--brlbs-tw-numeric-fraction:;--brlbs-tw-ring-inset:;--brlbs-tw-ring-offset-width:0px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:rgba(59,130,246,.5);--brlbs-tw-ring-offset-shadow:0 0 #0000;--brlbs-tw-ring-shadow:0 0 #0000;--brlbs-tw-shadow:0 0 #0000;--brlbs-tw-shadow-colored:0 0 #0000;--brlbs-tw-blur:;--brlbs-tw-brightness:;--brlbs-tw-contrast:;--brlbs-tw-grayscale:;--brlbs-tw-hue-rotate:;--brlbs-tw-invert:;--brlbs-tw-saturate:;--brlbs-tw-sepia:;--brlbs-tw-drop-shadow:;--brlbs-tw-backdrop-blur:;--brlbs-tw-backdrop-brightness:;--brlbs-tw-backdrop-contrast:;--brlbs-tw-backdrop-grayscale:;--brlbs-tw-backdrop-hue-rotate:;--brlbs-tw-backdrop-invert:;--brlbs-tw-backdrop-opacity:;--brlbs-tw-backdrop-saturate:;--brlbs-tw-backdrop-sepia:;--brlbs-tw-contain-size:;--brlbs-tw-contain-layout:;--brlbs-tw-contain-paint:;--brlbs-tw-contain-style:}.brlbs-cmpnt-container .brlbs-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.brlbs-cmpnt-container .\!brlbs-hidden{display:none!important}.brlbs-cmpnt-container .brlbs-overflow-auto{overflow:auto}.brlbs-cmpnt-container .brlbs-overflow-hidden{overflow:hidden}.brlbs-cmpnt-container .brlbs-pt-4{padding-top:16px}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker{container-name:brlbsCmpntContentBlocker;container-type:inline-size;line-height:1.25em;height:100%;font-size:var(--content-blocker-font-size);font-family:var(--content-blocker-font-family)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a{color:var(--content-blocker-link-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a:hover{color:var(--content-blocker-link-color-hover)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker.brlbs-cmpnt-cb-card,body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker.brlbs-cmpnt-cb-provider-card{container-type:normal}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-details{position:relative;padding:16px;text-align:left}@media(min-width:768px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-details{padding:24px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-header{display:flex;align-items:center}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-header.brlbs-cmpnt-with-separator{margin-bottom:16px;border-bottom-width:1px;border-style:solid;padding-bottom:16px}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-button{display:flex;padding-bottom:16px}@media(min-width:768px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-button{padding-bottom:24px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a{align-items:center;justify-content:center;padding:16px;text-align:center;background:var(--content-blocker-background-color);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description{padding-bottom:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description{padding-bottom:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description{border-color:var(--content-blocker-separator-color);border-style:solid;border-bottom-width:var(--content-blocker-separator-width)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description strong{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b{position:relative;display:flex;height:100%;padding-top:96px;padding-bottom:96px;text-align:center;background:var(--content-blocker-background-color);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color);width:100%}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{position:relative;display:flex;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{flex-direction:row;gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{background:var(--content-blocker-background);color:var(--content-blocker-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-content{flex-basis:66.666667%}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-description{padding-bottom:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-description{padding-bottom:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-description strong{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-buttons{margin:0;display:flex;flex-basis:33.333333%;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-buttons{gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c{position:relative;display:flex;height:100%;text-align:center;background:var(--content-blocker-background-color);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color);width:100%}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{position:relative;margin:48px;display:flex;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{margin:96px;
118gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{background:var(--content-blocker-background);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-description{padding-bottom:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-description{padding-bottom:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-description strong{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-buttons{margin:0;display:flex;width:100%;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-buttons{gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-play-button{border-radius:50%;background:#fff;box-shadow:0 1px 5px #00000026;width:34px;height:34px;margin:0 auto;display:flex;align-items:center;justify-content:center;position:absolute;top:-17px;left:calc(50% - 17px)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-play-button:before{background:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2278%22%20height%3D%2278%22%20viewBox%3D%220%200%2078%2078%22%3E%3Cpath%20d%3D%22M7.5%2071.5v-64l48%2030.328z%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2212%22%20d%3D%22M7.5%2071.5v-64l48%2030.328z%22%2F%3E%3C%2Fsvg%3E) no-repeat 50%;background-size:contain;content:" ";margin-left:4px;display:inline-block;height:1.142857143em;width:.857142857em}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-thumbnail{position:absolute;top:0;left:0;height:100%;width:100%;background-size:cover;background-position:50%;border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-buttons{margin-top:8px;margin-bottom:8px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-buttons{margin-top:16px;margin-bottom:16px;flex-direction:row;gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-buttons .brlbs-cmpnt-cb-btn{display:flex;width:100%;align-items:center;justify-content:center;text-decoration-line:none}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d){position:fixed;height:auto}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-left\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-right\]){top:var(--content-blocker-icon-margin)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-left\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-right\]){bottom:var(--content-blocker-icon-margin)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-right\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-right\]){right:calc(var(--content-blocker-icon-width) + var(--content-blocker-icon-margin))}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-left\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-left\]){left:var(--content-blocker-icon-margin)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-display\[flex\]){position:relative;display:inline-block;display:flex}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[float-left\]){float:left}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[float-right\]){float:right}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-d .brlbs-cmpnt-cb-icon{display:inline-block;height:var(--content-blocker-icon-height);width:var(--content-blocker-icon-width)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list{display:table}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list>div{display:table-row}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list dt{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list dd,body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list dt{display:table-cell;padding:2px 4px}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn{all:unset;box-sizing:border-box;
118cursor:pointer;align-items:center;justify-content:center;padding:12px 20px;text-align:center;font-size:var(--dialog-font-size);line-height:calc(1.5 * var(--dialog-font-size));font-weight:600;text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.4s;border-top-left-radius:var(--content-blocker-button-border-radius-top-left);border-top-right-radius:var(--content-blocker-button-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-button-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-button-border-radius-bottom-right);background-color:var(--content-blocker-button-color);color:var(--content-blocker-button-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:hover{background-color:var(--content-blocker-button-color-hover);color:var(--content-blocker-button-text-color-hover)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:active,body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:focus{outline:2px solid transparent;outline-offset:2px;--brlbs-tw-ring-offset-shadow:var(--brlbs-tw-ring-inset) 0 0 0 var(--brlbs-tw-ring-offset-width) var(--brlbs-tw-ring-offset-color);--brlbs-tw-ring-shadow:var(--brlbs-tw-ring-inset) 0 0 0 calc(2px + var(--brlbs-tw-ring-offset-width)) var(--brlbs-tw-ring-color);box-shadow:var(--brlbs-tw-ring-offset-shadow),var(--brlbs-tw-ring-shadow),var(--brlbs-tw-shadow,0 0 #0000)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-provider-toggle{all:unset;box-sizing:border-box;color:var(--content-blocker-link-color);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration-line:none}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-provider-toggle:hover{all:unset;box-sizing:border-box;color:var(--content-blocker-link-color-hover);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration-line:none}@container brlbsCmpntContentBlocker (480px <= width < 620px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b{padding-top:12%;padding-bottom:12%}}@container brlbsCmpntContentBlocker (width < 480px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b{padding:0}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{margin:6%;flex-direction:column;gap:8px;justify-content:normal;overflow:auto}}@container brlbsCmpntContentBlocker (640px <= width < 750px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{margin:10%!important}}@container brlbsCmpntContentBlocker (540px <= width < 640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{margin:6%!important}}@container brlbsCmpntContentBlocker (width < 540px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker{position:static}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{gap:8px;margin:6%!important;justify-content:normal;overflow:auto}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main .brlbs-cmpnt-cb-play-button{display:none}}@container brlbsCmpntContentBlocker (width < 375px){.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main,.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{height:100%;justify-content:normal;overflow:auto}.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main .brlbs-cmpnt-cb-play-button,.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main .brlbs-cmpnt-cb-play-button{display:none}}.wp-embed-aspect-16-9:has(.brlbs-cmpnt-container.brlbs-cmpnt-content-blocker) div.wp-block-embed__wrapper{padding:0}.wp-embed-aspect-16-9:has(.brlbs-cmpnt-container.brlbs-cmpnt-content-blocker) div.wp-block-embed__wrapper:before{padding:0}#BorlabsCookieBox,.brlbs-cmpnt-container{font-family:var(--dialog-font-family);font-weight:400;line-height:calc(1.2 * var(--dialog-font-size))}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element{container-name:brlbsCmpntShortcodeElement;container-type:inline-size;line-height:1.25em;height:100%}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list{display:table}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list>div{display:table-row}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list dt{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list dd,body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list dt{display:table-cell;padding:2px 4px}
119:root{--content-blocker-background-color: #fafafa;
120--content-blocker-button-color: #0063e3;
121--content-blocker-button-color-hover: #1a66ff;
122--content-blocker-button-text-color: #fff;
123--content-blocker-button-text-color-hover: #fff;
124--content-blocker-font-family: inherit;
125--content-blocker-link-color: #2563eb;
126--content-blocker-link-color-hover: #1e40af;
127--content-blocker-separator-color: #e5e5e5;
128--content-blocker-text-color: #555;
129--content-blocker-border-radius-top-left: 4px;
130--content-blocker-border-radius-top-right: 4px;
131--content-blocker-border-radius-bottom-left: 4px;
132--content-blocker-border-radius-bottom-right: 4px;
133--content-blocker-button-border-radius-top-left: 4px;
134--content-blocker-button-border-radius-top-right: 4px;
135--content-blocker-button-border-radius-bottom-left: 4px;
136--content-blocker-button-border-radius-bottom-right: 4px;
137--content-blocker-font-size: 14px;
138--content-blocker-separator-width: 1px;
139--content-blocker-background-opacity: 0.85;
140--content-blocker-background: rgba(250, 250, 250 ,0.85);
141}
142
143/*# sourceURL=borlabs-cookie-critical-inline-css */
144</style>
145<link onload="this.media='all';this.onload=null" data-borlabs-cookie-deferred-style="1" rel='stylesheet' id='borlabs-cookie-custom-css' href='https://www.bildungsakademie.de/wp-content/cache/borlabs-cookie/1/borlabs-cookie-1-de.css?ver=3.4.5-26' media="print" />
146<noscript><link rel='stylesheet' id='borlabs-cookie-custom-css' href='https://www.bildungsakademie.de/wp-content/cache/borlabs-cookie/1/borlabs-cookie-1-de.css?ver=3.4.5-26' media='all' />
147</noscript>
148<link rel='stylesheet' id='print-css-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/print.css?ver=7.1.2' media='print' />
149<link rel='stylesheet' id='style-font-awesome-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/res/fontawesome-free-5.15.4-web/css/all.css?ver=5.15.4' media='all' />
150<link rel='stylesheet' id='evaluation-hwk-style-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/evaluation-hwk.css?ver=7.1.2' media='all' />
151<link rel='stylesheet' id='bs4-margin-padding-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/bootstrap4-padding-and-margin-classes.css?ver=7.1.2' media='all' />
152<link rel='stylesheet' id='bs4-form-check-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/bootstrap4-form-check-classes.css?ver=7.1.2' media='all' />
153<link rel='stylesheet' id='toastr-css-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/res/toastr-2.1.4-dist/toastr.min.css?ver=7.1.2' media='all' />
154<link rel='stylesheet' id='chart-css-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/res/Chart.js-2.8.0/dist/Chart.min.css?ver=7.1.2' media='all' />
155<link rel='stylesheet' id='uni-hwk-redesign-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/style-uni.css?ver=1.1.46' media='all' />
156<link rel='stylesheet' id='uni-base-custom-style-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/custom.css?ver=1.2.4' media='all' />
157<link rel='stylesheet' id='navbar-brand-css' href='https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/css/navbar-brand-hwkkonstanzbtz.css?ver=1.3.51' media='all' />
158<script id="jquery-core-js" src="https://www.bildungsakademie.de/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 158
158
159<script id="moment-js-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/moment-with-locales-2.29.4.js?ver=2.29.4"></script>
vendor: 1 bytes, line 159
159
160<script id="moment-precise-range-js-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/moment-precise-range.js?ver=7.1.2"></script>
vendor: 1 bytes, line 160
160
161<script id="leaflet-js-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/dist/leaflet/leaflet.js?ver=7.1.2"></script>
vendor: 1 bytes, line 161
161
162<script id="leaflet-fullscreen-js-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/dist/leaflet-fullscreen/leaflet-fullscreen.min.js?ver=7.1.2"></script>
vendor: 1 bytes, line 162
162
163<script id="vue-js-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/vue-2.7.14.min.js?ver=2.7.14"></script>
vendor: 1 bytes, line 163
163
164<script id="vue-js-router-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/vue-router.min.js?ver=3.0.7"></script>
vendor: 1 bytes, line 164
164
165<script id="vue-js-resource-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/vue-resource.min.js?ver=3.0.7"></script>
vendor: 1 bytes, line 165
165
166<script id="uni_helper_js-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/helper/js/uni_helper_js.js?ver=1.0.1"></script>
vendor: 1 bytes, line 166
166
167<script id="select2_script_min-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-vuejs/helper/../dist/select2-4.0.13/js/select2.full.min.js?ver=4.0.13"></script>
vendor: 1 bytes, line 167
167
168<script data-no-optimize="1" data-no-minify="1" data-cfasync="false" id="borlabs-cookie-config-js" src="https://www.bildungsakademie.de/wp-content/cache/borlabs-cookie/1/borlabs-cookie-config-de.json.js?ver=3.4.5-35"></script>
vendor: 1 bytes, line 168
168
169<script data-no-optimize="1" data-no-minify="1" data-cfasync="false" id="borlabs-cookie-prioritize-js" src="https://www.bildungsakademie.de/wp-content/plugins/borlabs-cookie/assets/javascript/borlabs-cookie-prioritize.min.js?ver=3.4.5"></script>
vendor: 1 bytes, line 169
169
170<script id="uni-hwk-comments-js" src="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/js/uni-hwk-comments.js?ver=1.0"></script>
vendor: 1 bytes, line 170
170
171<script id="uni-hwk-theme-js" src="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/js/uni-hwk.js?ver=1.0"></script>
vendor: 1 bytes, line 171
171
172<script id="toastr-script-js" src="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/res/toastr-2.1.4-dist/toastr.min.js?ver=1.0"></script>
vendor: 1 bytes, line 172
172
173<script id="chart-script-js" src="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/res/Chart.js-2.8.0/dist/Chart.js?ver=1.0"></script>
vendor: 1 bytes, line 173
173
174<script async data-wp-strategy="async" id="eyeable-client-config-js" src="https://www.bildungsakademie.de/eyeable/clientConfig.js"></script>
vendor: 1 bytes, line 174
174
175<script async data-wp-strategy="async" id="eyeable-js-js" src="https://www.bildungsakademie.de/eyeable/public/js/eyeAble.js"></script>
175
176<link rel="https://api.w.org/" href="https://www.bildungsakademie.de/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.bildungsakademie.de/wp-json/wp/v2/pages/305724" /><link rel='shortlink' href='https://www.bildungsakademie.de/?p=305724' />
177        <link rel="stylesheet" href="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/dist/bootstrap-icons-1.13.1/bootstrap-icons.css">
178                <meta name="ai-tools" content="client=29f014e522b01969173c26401e75a41a;baseUrl=https://ai.uniplus-software.de;elementId=uni-ai-tools-language;title=Language" />
179        
179<script type="text/javascript" id="spscript" src="https://speiseplanapp.de/snippet/spAppWebSnipv3.js"> </script>
179        <meta property="og:image" content="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-redesign/img/hwk_schraube.png"/>
180        <meta property="og:image:width" content="200"/>
181        <meta property="og:image:height" content="200"/>
182                    <meta name="description" content="Ein Unternehmen der Handwerkskammer Konstanz"/>
183            <meta property="og:description" content="Ein Unternehmen der Handwerkskammer Konstanz"/>
184        	</head>
185	
186	<body data-spy="scroll" data-target="#scrollspyContent"  class="wp-singular page-template page-template-page-scrollspy page-template-page-scrollspy-php page page-id-305724 wp-theme-chatty wp-child-theme-uni-hwk-ba-konstanz has-menu-top top-parent-slug-foerderprojekte top-parent-id-305724 has-header header-collapse form-no-floating-label submenu-default" id="foerderprojekte">
187        		<div id="browser-warning" class="sr-only"></div>
188		
189		<div id="wrapper" class="container">
190<div id="header" class="hidden-print">
191	<a href="https://www.bildungsakademie.de" class="home-link-xs visible-xs"><span class="sr-only">Home Link auf dem Handy</span></a>
192	<header class="site-header-bar">
193		<div class="container">
194			<div class="row">
195								<div id="logo" class="col-md-3 col-sm-4"><a class="navbar-brand" href="https://www.bildungsakademie.de"><span class="screen-reader">Logo</span></a><a class="search visible-xs" title="Suche" role="button" aria-label="Öffnet die Suche" aria-describedby="searchbar"><span class="glyphicon glyphicon-suche" aria-hidden="true"></span></a></div>				<div class="col-md-9 col-sm-8 hidden-xs">
196					<div class="row">
197							<div class="header-menu col-sm-12">
198								                                <nav class="header-menu-nav" role="navigation" aria-label="Kopfnavigation">
199																		<ul id="menu-02-second" class="nav header-menu-ul"><li id="menu-item-277673" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277673"><a title="Leichte Sprache" href="https://www.bildungsakademie.de/leichte-sprache/">Leichte Sprache</a></li>
200<li role="presentation" class="divider"></li>
201<li id="menu-item-272637" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-272637 active  dropdown"><a title="Über uns" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Über uns <span class="caret"></span></a>
202<ul role="menu" class=" dropdown-menu">
203	<li id="menu-item-272638" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-272638"><a title="Die Bildungsakademie" href="https://www.bildungsakademie.de/bauen-sie-mit-uns-ihre-karriere/">Die Bildungsakademie</a></li>
204	<li id="menu-item-277386" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277386"><a title="Unsere Dozenten" href="https://www.bildungsakademie.de/unsere-dozenten/">Unsere Dozenten</a></li>
205	<li id="menu-item-277387" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277387"><a title="Zertifizierung" href="https://www.bildungsakademie.de/beste-voraussetzungen-fuer-unsere-kunden/">Zertifizierung</a></li>
206	<li id="menu-item-305753" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-305724 current_page_item menu-item-305753 active  active"><a title="Förderprojekte" href="https://www.bildungsakademie.de/foerderprojekte/">Förderprojekte</a></li>
207	<li id="menu-item-277385" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277385"><a title="Partner" href="https://www.bildungsakademie.de/partner/">Partner</a></li>
208</ul>
209</li>
210<li role="presentation" class="divider"></li>
211<li id="menu-item-307938" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-307938"><a title="Karriere" href="https://www.bildungsakademie.de/karriere/">Karriere</a></li>
212<li role="presentation" class="divider"></li>
213<li id="menu-item-305687" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-305687 dropdown"><a title="Kontakt" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">
213Kontakt <span class="caret"></span></a>
214<ul role="menu" class=" dropdown-menu">
215	<li id="menu-item-305688" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-305688"><a title="Beratung" href="https://www.bildungsakademie.de/beratung/">Beratung</a></li>
216	<li id="menu-item-339665" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-339665"><a title="Bildungsakademie Rottweil" href="https://www.bildungsakademie.de/kontakte-ba-rottweil/">Bildungsakademie Rottweil</a></li>
217	<li id="menu-item-339666" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-339666"><a title="Bildungsakademie Singen" href="https://www.bildungsakademie.de/kontakte-ba-singen/">Bildungsakademie Singen</a></li>
218	<li id="menu-item-339664" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-339664"><a title="Bildungsakademie Waldshut" href="https://www.bildungsakademie.de/kontakte-ba-waldshut/">Bildungsakademie Waldshut</a></li>
219	<li id="menu-item-305774" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-305774"><a title="Handwerkskammer Konstanz" href="https://hwk-konstanz.uniplus-software.de/oeffnungszeiten/">Handwerkskammer Konstanz</a></li>
220</ul>
221</li>
222<li role="presentation" class="divider"></li>
223<li id="menu-item-272639" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-272639"><a title="ILIAS" href="https://ilias.bildungsakademie.de/">ILIAS</a></li>
224<li role="presentation" class="divider"></li>
225<li id="menu-item-877" class="text-hidden menu-item menu-item-type-custom menu-item-object-custom menu-item-877"><a title="Facebook" href="https://www.facebook.com/bildungsakademie"><span class="glyphicon glyphicon-facebook"></span>&nbsp;Facebook</a></li>
226<li id="menu-item-305989" class="text-hidden menu-item menu-item-type-custom menu-item-object-custom menu-item-305989"><a title="Instagram" target="_blank" href="https://www.instagram.com/bildungsakademie_/"><span class="glyphicon glyphicon-instagram"></span>&nbsp;Instagram</a></li>
227<li role="presentation" class="divider"></li>
228</ul>									        <ul class="nav header-menu-ul">
229            <li id="uni-ai-tools-language" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item current_page_item "></li>
230        </ul>
231                                            <ul class="nav header-menu-ul">
232                                        <li class="text-hidden hidden-xs"><a class="search" role="button" aria-label="Öffnet die Suche" aria-controls="searchbar"><span class="glyphicon glyphicon-suche"></span>&nbsp;Suche</a></li>
233                                    </ul>
234								</nav>
235															</div><!-- /.header-menu -->
236						</div>
237					</div>
238				</div>
239			</div><!-- .container -->
240	</header>
241</div><!-- /header -->			<div class="main-menu navbar navbar-default navbar-fixed-top top has-header">
242										<nav>
243							<div class="container">
244																<a href="https://www.bildungsakademie.de" class="home-link-xs visible-xs"><span class="sr-only">Home Link auf dem Handy</span></a>
245								<div class="navbar-header">
246									<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse" data-menu-mobile="top">
247										<span class="sr-only">Toggle navigation</span>
248									<span class="icon-bar"></span>
249									<span class="icon-bar"></span>
250									<span class="icon-bar"></span>									</button>
251								</div><!-- /.navbar-header -->
252
253								<div class="navbar-collapse collapse">
254
255									
256									<ul id="main-menu-ul" class="nav navbar-nav"><li id="menu-item-272626" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-272626"><a title="Meisterkurse" href="https://www.bildungsakademie.de/meister/">Meisterkurse</a></li>
257<li id="menu-item-277379" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277379"><a title="techn. Kurse" href="https://www.bildungsakademie.de/unsere-technischen-kurse/">techn. Kurse</a></li>
258<li id="menu-item-277380" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277380"><a title="kaufm. Kurse" href="https://www.bildungsakademie.de/unsere-kaufmaennischen-kurse/">kaufm. Kurse</a></li>
259<li id="menu-item-43188" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-43188 dropdown"><a title="Ausbildung" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Ausbildung <span class="caret"></span></a>
260<ul role="menu" class=" dropdown-menu">
261	<li id="menu-item-307398" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-307398"><a title="Ausbildungsberufe A-Z" href="https://hwk-konstanz.uniplus-software.de/beruf/">Ausbildungsberufe A-Z</a></li>
262	<li id="menu-item-307396" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-307396"><a title="Die überbetriebliche Ausbildung (ÜBA)" href="https://www.bildungsakademie.de/ueba/">Die überbetriebliche Ausbildung (ÜBA)</a></li>
263	<li id="menu-item-341145" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-341145"><a title="Design Thinking in der ÜBA" href="https://www.hwk-konstanz.de/dtm/">Design Thinking in der ÜBA</a></li>
264	<li id="menu-item-307397" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-307397"><a title="Berufsorientierung in der Praxis" href="https://www.bildungsakademie.de/berufsorientierung-in-der-praxis/">Berufsorientierung in der Praxis</a></li>
265	<li id="menu-item-307399" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-307399"><a title="Berufsintegriert studieren" href="https://www.bildungsakademie.de/berufsintegriert-studieren/">Berufsintegriert studieren</a></li>
266</ul>
267</li>
268<li id="menu-item-272627" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-272627 dropdown"><a title="Service" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Service <span class="caret"></span></a>
269<ul role="menu" class=" dropdown-menu">
270	<li id="menu-item-278812" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-278812"><a title="Infoveranstaltungen Meisterkurse" href="https://www.bildungsakademie.de/meisterinfoabende/">Infoveranstaltungen Meisterkurse</a></li>
271	<li id="menu-item-278811" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-278811"><a title="Infoveranstaltungen kaufm. Kurse" href="https://www.bildungsakademie.de/infos-kaufmaennische-kurse/">Infoveranstaltungen kaufm. Kurse</a></li>
272	<li id="menu-item-278813" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-278813"><a title="Fördermöglichkeiten" href="https://www.bildungsakademie.de/foerderungen/">Fördermöglichkeiten</a></li>
273	<li id="menu-item-277383" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277383"><a title="Karriere im Handwerk" href="https://www.bildungsakademie.de/karriere-im-handwerk/">Karriere im Handwerk</a></li>
274	<li id="menu-item-278827" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-278827"><a title="Kündigung bestehender Verträge" href="https://www.bildungsakademie.de/kuendigung/">Kündigung bestehender Verträge</a></li>
275	<li id="menu-item-308899" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-308899"><a title="Firmenseminare" href="https://www.bildungsakademie.de/firmenseminare/">Firmenseminare</a></li>
276	<li id="menu-item-312297" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-312297"><a title="Formulare und Downloads" href="https://www.bildungsakademie.de/download/">Formulare und Downloads</a></li>
277	<li id="menu-item-277384" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277384"><a title="Zimmerer-Portal" href="https://www.bildungsakademie.de/informationen-fuer-zimmerer/">Zimmerer-Portal</a></li>
278</ul>
279</li>
280</ul>											<div class="header-menu visible-xs">
281
282																									<div class="clearfix">
283<form role="search" method="get" class="search-form" action="https://www.bildungsakademie.de/">
284    <div class="search-bar">
285        <div class="form-group" onclick="
286                document.getElementById('inputSearch93528').focus();
287                document.getElementById('inputSearch93528').select(); ">
288            <input type="search" class="form-control search-field" name="s" id="inputSearch93528" placeholder="">
289            <label for="inputSearch">Suche </label>
290        </div>
291        <button type="submit" value="search" class="btn btn-default" aria-label="Suche "><span class="glyphicon glyphicon-suche" aria-hidden="true"></span></button>
292    </div>
293</form></div>
294																										<nav>
295																											<ul id="menu-02-second-1" class="nav navbar-nav header-menu-ul"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277673"><a title="Leichte Sprache" href="https://www.bildungsakademie.de/leichte-sprache/">Leichte Sprache</a></li>
296<li role="presentation" class="divider"></li>
297<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-272637 active  dropdown"><a title="Über uns" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Über uns <span class="caret"></span></a>
298<ul role="menu" class=" dropdown-menu">
299	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-272638"><a title="Die Bildungsakademie" href="https://www.bildungsakademie.de/bauen-sie-mit-uns-ihre-karriere/">Die Bildungsakademie</a></li>
300	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277386"><a title="Unsere Dozenten" href="https://www.bildungsakademie.de/unsere-dozenten/">Unsere Dozenten</a></li>
301	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277387"><a title="Zertifizierung" href="https://www.bildungsakademie.de/beste-voraussetzungen-fuer-unsere-kunden/">Zertifizierung</a></li>
302	<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-305724 current_page_item menu-item-305753 active  active"><a title="Förderprojekte" href="https://www.bildungsakademie.de/foerderprojekte/">Förderprojekte</a></li>
303	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277385"><a title="Partner" href="https://www.bildungsakademie.de/partner/">Partner</a></li>
304</ul>
305</li>
306<li role="presentation" class="divider"></li>
307<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-307938"><a title="Karriere" href="https://www.bildungsakademie.de/karriere/">Karriere</a></li>
308<li role="presentation" class="divider"></li>
309<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-305687 dropdown"><a title="Kontakt" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">
309Kontakt <span class="caret"></span></a>
310<ul role="menu" class=" dropdown-menu">
311	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-305688"><a title="Beratung" href="https://www.bildungsakademie.de/beratung/">Beratung</a></li>
312	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-339665"><a title="Bildungsakademie Rottweil" href="https://www.bildungsakademie.de/kontakte-ba-rottweil/">Bildungsakademie Rottweil</a></li>
313	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-339666"><a title="Bildungsakademie Singen" href="https://www.bildungsakademie.de/kontakte-ba-singen/">Bildungsakademie Singen</a></li>
314	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-339664"><a title="Bildungsakademie Waldshut" href="https://www.bildungsakademie.de/kontakte-ba-waldshut/">Bildungsakademie Waldshut</a></li>
315	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-305774"><a title="Handwerkskammer Konstanz" href="https://hwk-konstanz.uniplus-software.de/oeffnungszeiten/">Handwerkskammer Konstanz</a></li>
316</ul>
317</li>
318<li role="presentation" class="divider"></li>
319<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-272639"><a title="ILIAS" href="https://ilias.bildungsakademie.de/">ILIAS</a></li>
320<li role="presentation" class="divider"></li>
321<li class="text-hidden menu-item menu-item-type-custom menu-item-object-custom menu-item-877"><a title="Facebook" href="https://www.facebook.com/bildungsakademie"><span class="glyphicon glyphicon-facebook"></span>&nbsp;Facebook</a></li>
322<li class="text-hidden menu-item menu-item-type-custom menu-item-object-custom menu-item-305989"><a title="Instagram" target="_blank" href="https://www.instagram.com/bildungsakademie_/"><span class="glyphicon glyphicon-instagram"></span>&nbsp;Instagram</a></li>
323<li role="presentation" class="divider"></li>
324</ul>															        <ul class="nav header-menu-ul">
325            <li id="uni-ai-tools-language" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item current_page_item "></li>
326        </ul>
327        														</nav>
328												
329											</div>
330										
331									<div id="logo-s" class="hide"><a class="navbar-brand" href="https://www.bildungsakademie.de"><span class="screen-reader">Logo</span></a><a class="search visible-xs" title="Suche" role="button" aria-label="Öffnet die Suche" aria-describedby="searchbar"><span class="glyphicon glyphicon-suche" aria-hidden="true"></span></a></div>									
332									
333								</div><!-- /.navbar-collapse -->
334
335							</div><!-- /.container -->
336						</nav>
337					
338							<div id="searchbar" aria-expanded="false">
339				<div class="container">
340					<div class="row">
341						<div class="col col-sm-12">
342							
343<form role="search" method="get" class="search-form" action="https://www.bildungsakademie.de/">
344    <div class="search-bar">
345        <div class="form-group" onclick="
346                document.getElementById('inputSearch12067').focus();
347                document.getElementById('inputSearch12067').select(); ">
348            <input type="search" class="form-control search-field" name="s" id="inputSearch12067" placeholder="">
349            <label for="inputSearch">Suche </label>
350        </div>
351        <button type="submit" value="search" class="btn btn-default" aria-label="Suche "><span class="glyphicon glyphicon-suche" aria-hidden="true"></span></button>
352    </div>
353</form>						</div>
354					</div>
355				</div>
356			</div>
357			
358			</div><!-- /.navbar -->
359
360		
361		<div id="page"><!-- everything except menu -->
362				<div id="content">
363            <div id="vue_app">
364
365                
366		<div id="header-nav-3" class="container"><!-- nav 3rd level -->
367			<div class="row">
368				<div class="col-md-12">
369					<div id="div-head-nav-3">
370						<p id="head-nav-3" class="h1"></p>
371					</div>
372					<div id="nav-level-3"></div>
373					<div class="clearfix"></div>
374					<hr/>
375				</div>
376			</div>
377		</div>
377<!-- / nav 3rd level -->
378                            <div class="container scroll-adjust">
379                                <div class="row">
380                                    <div class="col-md-9 content">
381                                                            <section id="section-0">
382                    
383                                <div class="row new-chapter" >
384                <div id="foerderprojekte_0"  class="col col-md-12 col-sm-12"><img decoding="async" data-id="305723" data-src-thumbnail="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1-150x64.jpg" data-src-medium="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1-768x329.jpg" data-src-medium_large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1-768x329.jpg" data-src-large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1-1024x439.jpg" data-src-small="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1-480x206.jpg" data-src-full="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1.jpg" src="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/hwk-kn-zertifikatsverleihung-klimaschutzmanager_ines-janas-1-150x64.jpg" alt="Gruppenbild der ersten Absolventen des Zertifikatslehrgangs Nachhaltigkeits- und Klimaschutzmanager/-in im Handwerk." class="img-responsive" width="150" height="64" />
385<p class="small">Die glücklichen Absolventinnen und Absolventen des Zertifikatslehrgangs zum Nachhaltigkeits- und Klimaschutzmanager/-in im Handwerk mit ihren Zertifikaten. Foto: HWK KN / Ines Janas</p>
386<br /><br />
387<h1>Förderprojekte</h1>
388<p>Um die Digitalisierung und Innovation in der Aus-, Fort- und Weiterbildung aktiv mitzugestalten, arbeiten die Handwerkskammer Konstanz und ihre handwerklichen Bildungsstätten mit dem Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz zusammen. Dabei werden Fördermittel aus verschiedenen Förderprogrammen genutzt.</p>
389</div>                </div><!-- /. row -->
390                
391                                <div class="row " >
392                <div id="foerderprojekte_1"  class="col col-md-12 col-sm-12"><h2>Fördergeber</h2>
393<h3>Bundesministerium für Bildung, Familie, Senioren, Frauen und Jugend (BMBFSFJ)</h3>
394</div>                </div><!-- /. row -->
395                
396                                <div class="row " >
397                <div id="foerderprojekte_2"  class="col col-md-8 col-sm-8"><p>Das Projekt „DTM-Handwerk“ wird gefördert im Rahmen der „Initiative für eine exzellente überbetriebliche Ausbildung des Bundesministeriums für Bildung, Familie, Senioren, Frauen und Jugend (BMBFSFJ). INex-ÜBA wird durchgeführt vom Bundesinstitut für Berufsbildung (BIBB).</p>
398<p>Ziel der Förderung aus INex-ÜBA ist es, innovative, auf die Ausbildung bezogene Konzepte zur Gestaltung exzellenter Lehr-/Lernorte zu erproben und umzusetzen. Diese sollen insbesondere zur Qualitätssteigerung und -entwicklung der ÜBA auch unter Anwendung zukunftsorientierter Technologien und innovativen Methoden beitragen, um exzellente Bildungsarbeit zu ermöglichen. Dies dient der Erhöhung der überfachlichen Kompetenzen der Auszubildenden und erweitert das didaktische Repertoire der handwerklichen Lehrkräfte.</p>
399<p>Das Projekt „Design Thinking als Methode in der überbetrieblichen Ausbildung im Handwerk (DTM-Handwerk)“ ermöglicht es den Handwerkskammern Konstanz und Aachen, in die Einrichtung von Kreativräumen in der Beruflichen Bildungsstätte Tuttlingen und dem Bildungszentrum Simmerath der Handwerkskammer Aachen zu investieren. In diesem innovativen Lehr- und Lernort können Auszubildende aller Gewerke in mehrtägigen Workshops die Methode des Design Thinking erlernen und gewerkübergreifende Lösungen für komplexe Anforderungen entwickeln und dabei individuelle Kundenwünsche berücksichtigen. Lesen Sie mehr dazu weiter unter „Geförderte Projekte“.</p>
400</div><div id="foerderprojekte_3"  class="col col-md-4 col-sm-4"><a href="https://www.bmbfsfj.bund.de/">
400<img decoding="async" data-id="305725" data-src-thumbnail="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-150x94.png" data-src-medium="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-768x479.png" data-src-medium_large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-768x479.png" data-src-large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-1024x639.png" data-src-1536x1536="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-1536x958.png" data-src-small="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-480x299.png" data-src-full="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-1600x998.png" title="" src="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BMBFSFJ_de_v1__DTP_CMYK-150x94.png" alt="Logo: BMBFSFJ" class="img-responsive" /></a>
401<a href="https://www.bibb.de/"><img decoding="async" data-id="305726" data-src-thumbnail="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-150x50.jpg" data-src-medium="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-768x256.jpg" data-src-medium_large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-768x256.jpg" data-src-large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-1024x341.jpg" data-src-1536x1536="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-1536x512.jpg" data-src-2048x2048="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-2048x683.jpg" data-src-small="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-480x160.jpg" data-src-full="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-1600x533.jpg" title="" src="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/BIBB-Logo_DE-150x50.jpg" alt="Logo: BiBB" class="img-responsive" /></a>
402<a href="http://www.bibb.de/uebs"><img decoding="async" data-id="337904" data-src-thumbnail="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-150x131.png" data-src-medium="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-768x672.png" data-src-medium_large="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-768x672.png" data-src-large="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-1024x896.png" data-src-1536x1536="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-1536x1345.png" data-src-2048x2048="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-2048x1793.png" data-src-small="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-480x420.png" data-src-full="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-1600x1401.png" title="" src="//www.bildungsakademie.de/wp-content/uploads/Wort-Bild-Marke_UeBS_final_mit-Schutzzone-150x131.png" alt="Logo: Wort-Bild-Marke ÜBS" class="img-responsive" /></a>
403</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
404                
405                                <div class="row " >
406                <div id="foerderprojekte_4"  class="col col-md-12 col-sm-12"><h3>Wirtschaftsministerium Baden-Württemberg</h3>
407</div>                </div><!-- /. row -->
408                
409                                <div class="row " >
410                <div id="foerderprojekte_5"  class="col col-md-8 col-sm-8"><p>Das Ministerium für Wirtschaft, Handwerk und Tourismus Baden-Württemberg fördert die Handwerkskammer Konstanz und ihre handwerklichen Bildungsstätten in Projekten zur Digitalisierung in der beruflichen Aus-, Fort- und Weiterbildung. Hierbei kooperiert die Handwerkskammer Konstanz mit dem Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz, um wissenschaftliche Erkenntnis und betriebliche Praxis miteinander zu verzahnen. Ziel ist, die Entwicklungen in der Digitalisierung in der Bildung auf die Bedürfnisse und Rahmenbedingungen der handwerklichen Aus-, Fort- und Weiterbildung anzupassen und zu optimieren. Ein besonderer Schwerpunkt liegt auf der Erarbeitung, Erprobung und Weiterentwicklung von methodisch-didaktischen Konzepten, die auf die Zielgruppe Handwerk zugeschnitten sind.</p>
411</div><div id="foerderprojekte_6"  class="col col-md-4 col-sm-4"><a href="https://wm.baden-wuerttemberg.de/de/startseite">
411<img decoding="async" data-id="336395" data-src-thumbnail="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-150x22.png" data-src-medium="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-768x111.png" data-src-medium_large="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-768x111.png" data-src-large="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-1024x147.png" data-src-1536x1536="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-1536x221.png" data-src-2048x2048="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-2048x295.png" data-src-small="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-480x69.png" data-src-full="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-1600x230.png" title="" src="//www.bildungsakademie.de/wp-content/uploads/BaWue_Logo_rgb_pos_gefoerdert_freigestellt-150x22.png" alt="Logo des Ministeriums für Wirtschaft, Handwerk und Tourismus (2026)" class="img-responsive" /></a>
412</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
413                
414                                <div class="row " >
415                <div id="foerderprojekte_7"  class="col col-md-12 col-sm-12"><h3>Baden-Württemberg Stiftung gGmbH / Klimaschutzstiftung Baden-Württemberg</h3>
416</div>                </div><!-- /. row -->
417                
418                                <div class="row " >
419                <div id="foerderprojekte_8"  class="col col-md-8 col-sm-8"><p>Die Baden-Württemberg Stiftung gGmbH mit ihrer Unterstiftung Klimaschutzstiftung Baden-Württemberg fördern die Handwerkskammer Konstanz in einem Projekt zur Entwicklung eines „Zertifikatslehrgangs Nachhaltigkeits- und Klimaschutzmanager/in im Handwerk“. Hierbei beauftragt die Handwerkskammer Konstanz das Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz zur Mitarbeit in dem Projekt, um wissenschaftliche Erkenntnis und betriebliche Praxis miteinander zu verzahnen. Ziel ist die Entwicklung eines Zertifikatslehrgangs für Nachhaltigkeits- und Klimaschutzmanagement, welcher speziell auf die Bedürfnisse und Rahmenbedingungen im Handwerk zugeschnitten ist. Der Zertifikatslehrgang wird im Blended Learning-Format entwickelt, um der Arbeitsrealität der Betriebsinhaber/innen und Führungskräfte aus dem Handwerk gerecht zu werden.</p>
420</div><div id="foerderprojekte_9"  class="col col-md-4 col-sm-4"><a href="https://www.klimaschutzstiftung-bw.de/de/"><img decoding="async" data-id="305730" data-src-thumbnail="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo-150x71.png" data-src-medium="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo-768x363.png" data-src-medium_large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo-768x363.png" data-src-large="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo-1024x484.png" data-src-small="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo-480x227.png" data-src-full="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo.png" title="" src="//bildungsakademie.hwk-konstanz.uniplus-software.de/wp-content/uploads/KSS_logo-150x71.png" alt="" class="img-responsive" /></a>
421</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
422                                        </section>
423                                            <section id="section-1">
424                    
425                                <div class="row new-chapter" >
426                <div id="foerderprojekte_10"  class="col col-md-12 col-sm-12"><h2>Geförderte Projekte</h2>
427<h3>„Design Thinking als Methode in der überbetrieblichen Ausbildung im Handwerk (DTM-Handwerk)“</h3>
428</div>                </div><!-- /. row -->
429                
430                                <div class="row " >
431                <div id="foerderprojekte_11"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Bundesministerium für Bildung, Familie, Senioren, Frauen und Jugend (BMBFSFJ)/ Durchführung Bundesinstitut für Berufsbildung (BIBB)</p>
432<p><strong>Förderprogramm:</strong> „Initiative für eine exzellente überbetriebliche Ausbildung (INex-ÜBA)“</p>
433<p><strong>Projekttitel:</strong> Design Thinking als Methode in der überbetrieblichen Ausbildung im Handwerk (DTM-Handwerk)</p>
434<p><strong>Verbundprojektpartner:</strong> Berufliche Bildungsstätte Tuttlingen GmbH und Handwerkskammer Aachen</p>
435<p><strong>Projektlaufzeit:</strong> 01.10.2025 – 30.09.2028</p>
436<p><strong>Ausgangssituation und Projektziel:</strong></p>
437<p>Der wirtschaftliche Erfolg eines Unternehmens, Produkts oder einer Dienstleistung wird zunehmend durch die Gestaltungskompetenz der Akteure innerhalb des Unternehmens beeinflusst. Mit wachsender Bedeutung von Design als strategischem Faktor erkennen Unternehmen, dass der Erfolg nicht nur auf technischen Innovationen beruht, sondern auch auf einer starken Gestaltungskompetenz, die sowohl die Funktionalität als auch die Ästhetik und Benutzerfreundlichkeit umfasst. Design Thinking ist eine lösungsorientierte, gewerkunabhängige professionelle Innovationsmethode, die dabei unterstützt, unter Anwendung von unterschiedlichen Kreativitätstechniken und technologischen Anwendungen, Prozesse effizienter zu gestalten, neue Ideen zu kreieren und innovative Produkte und Lösungen hervorzubringen. Sie versteht sich als Werkzeugkasten, den jeder, auch ohne besondere Begabung für Kreativität, anwenden kann. Durch die Einrichtung der Kreativräume in den beiden Bildungsstätten Tuttlingen (BW) und Simmerath (NRW) wollen wir an zwei Standorten einen inspirierenden Raum für Auszubildende schaffen, die Design Thinking Methode zu erlernen und auf konkrete Projekte anzuwenden. Geschult und betreut werden die Teilnehmenden von Lehrmeisterinnen und Lehrmeister und Ausbilderinnen und Ausbilder aus der Region Baden-Württemberg und dem Kammergebiet Aachen, die von professionellen Trainern und Coaches der Akademie für Handwerksdesign Gut Rosenberg in der Vermittlung der Design Thinking Methode geschult wurden. Die Kurse für die Auszubildenden finden als freiwillige Zusatzkurse im Rahmen ihrer ÜBA statt. Folgen Sie der Projektwebseite (derzeit noch im Aufbau), um die Angebote und Aktivitäten im Projekt zu verfolgen.</p>
438<p><strong>Umsetzung:</strong></p>
439<ul>
440<li><span>Einrichtung von Kreativräumen in der BBT Tuttlingen und dem BGZ Simmerath</span></li>
441<li><span>Schulungskonzept für DTM-Kurse für Azubis im Handwerk</span></li>
442<li><span>Schulungskonzept für die Ausbildung von Trainern zur Vermittlung der DTM im Handwerk</span></li>
443<li><span>Nutzungskonzept für die Kreativräume</span></li>
444<li><span>Ausgearbeitete Transferstrategie und Marketingkampagne für die Integration der DTM in die Regel-ÜBA</span></li>
445<li><span>Ausgelastete Kreativräume</span></li>
446</ul>
447</div><div id="foerderprojekte_12"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
448                
449                    
450
451                                    <div class="pt-3"></div>
452                                <div class="teaser-text">
453                    <h3 class="h4 teaser-title">
454                                                Externer Projektpartner                    </h3>
455                    <div class="teaser-content"><p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
456Prof. Dr. Jürgen Wagenmann</p>
457<p>Wissenschaftliche Begleitung, Konzepterstellung, Evaluationen.</p>
458</div>
459                                    </div>
460                                    <div class="teaser-url-chevron">
461                        <span class=""><i class="fas fa-chevron-right"></i></span>
462                    </div>
463                                
464            </div>
465        
466</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
467                                        </section>
468                                            <section id="section-2">
469                    
470                                <div class="row new-chapter" >
471                <div id="foerderprojekte_13"  class="col col-md-12 col-sm-12"><h3>Zertifikatslehrgang Nachhaltigkeits- und Klimaschutzmanager/in im Handwerk</h3>
472</div>                </div><!-- /. row -->
473                
474                                <div class="row " >
475                <div id="foerderprojekte_14"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Baden-Württemberg Stiftung gGmbH / Klimaschutzstiftung Baden-Württemberg</p>
476<p><strong>Förderprogramm:</strong> „Klimaschutz in der beruflichen Bildung“, ein Programm der Klimaschutzstiftung Baden-Württemberg</p>
477<p><strong>Projekttitel:</strong> Zertifikatslehrgang Nachhaltigkeits- und Klimaschutzmanager/in im Handwerk</p>
478<p><strong>Projektlaufzeit:</strong> 01.05.2023 – 30.04.2025</p>
479<p><strong>Ausgangssituation und Projektziel:</strong></p>
480<p>Der Megatrend Neo-Ökologie (Umwelt- und Klimaschutz/ Nachhaltigkeit) ist einer der mächtigsten Megatrends unserer Zeit. Nachhaltiges Handeln ist im Handwerk traditionell verankert, wird aber oftmals als solches nicht wahrgenommen. Die Nachhaltigkeit handwerklicher Tätigkeiten entwickelt sich zu einem bedeutenden Wettbewerbsvorteil und wirkt mittel- und langfristig kostensenkend für Betriebe und Kunden. Durch die Weiterbildung soll ein allgemeines Verständnis der ökologischen Dimension der Nachhaltigkeit geschaffen und ein methodisches Instrumentarium vermittelt werden, ökologische Nachhaltigkeitsaspekte und Klimaschutz speziell für Handwerksbetriebe zu definieren und messbar zu machen. Nach der Weiterbildung sind die Teilnehmer/innen Experten in ökologischer Nachhaltigkeit und in der Lage, ein Innovationsmanagement für Nachhaltigkeit und Klimaschutz in ihrem Handwerksbetrieb einzurichten und anzuwenden. Die Teilnehmer/innen kennen die relevanten Daten in ihren Betrieben und können diese erheben, sie können daraus die relevanten Kennzahlen errechnen, sie können einen ökologischen Nachhaltigkeitsbericht auf einfachem Niveau erstellen und sind in der Lage, die ökologischen Nachhaltigkeitsmaßnahmen in ihren Betrieben zu überwachen (Monitoring), langfristig am Laufen zu halten und sukzessive zu verbessern.</p>
481<p><strong>Umsetzung:</strong></p>
482<ul>
483<li><span>Definition der speziell für das Handwerk relevanten Nachhaltigkeits- und Klimaschutzaspekte</span></li>
484<li><span>Identifikation von Gewerken, welche hinsichtlich ökologischer Nachhaltigkeit vor vergleichbaren Rahmenbedingungen und Herausforderungen stehen (Clusterbildung)</span></li>
485<li><span>Entwicklung eines modularen Blended Learning-Formats mit Online-Selbstlernmodulen, Live-Online-Seminaren und Präsenzworkshops</span></li>
486<li><span>Entwicklung der Curricula für die einzelnen Module</span></li>
487<li><span>Pilotdurchlauf, Zwischen- und Schlussevaluation</span></li>
488</ul>
489</div><div id="foerderprojekte_15"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
490                
491                    
492
493                                    <div class="pt-3"></div>
494                                <div class="teaser-text">
495                    <h3 class="h4 teaser-title">
496                                                Externer Projektpartner                    </h3>
497                    <div class="teaser-content"><p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
498Prof. Dr. Jürgen Wagenmann</p>
499<p>Methodisch-didaktisches Konzept, Curricula, Umsetzungsunterstützung, Zwischen- und Schlussevaluation</p>
500</div>
501                                    </div>
502                                    <div class="teaser-url-chevron">
503                        <span class=""><i class="fas fa-chevron-right"></i></span>
504                    </div>
505                                
506            </div>
507        
508</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
509                                        </section>
510                                            <section id="section-3">
511                    
512                                <div class="row new-chapter" >
513                <div id="foerderprojekte_16"  class="col col-md-12 col-sm-12"><h3>ÜBA/ÜLU Lernkonzeption präsent, digital und nachhaltig</h3>
514</div>                </div><!-- /. row -->
515                
516                                <div class="row " >
517                <div id="foerderprojekte_17"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Ministerium für Wirtschaft, Arbeit und Tourismus Baden-Württemberg</p>
518<p><strong>Förderaufruf:</strong> Berufsausbildung 4.0 – Innovationen in der digitalen Beruflichen Orientierung und in der digitalen überbetrieblichen Berufsausbildung</p>
519<p><strong>Projekttitel:</strong> ÜBA/ÜLU Lernkonzeption präsent, digital und nachhaltig</p>
520<p><strong>Projektlaufzeit:</strong> 01.01.2022 – 31.05.2023</p>
521<p><strong>Ausgangssituation und Projektziel:</strong></p>
522<p>Wie stelle ich ein Verlängerungskabel her? Was habe ich beim Ein- oder Ausschalten eines CNC-gesteuerten Bearbeitungszentrums zu beachten? Wie mache ich einen Brettriss? Was habe ich beim Umgang mit handgeführtem Elektrowerkzeug nochmals zu beachten? Fragen, die sich die Auszubildenden immer wieder stellen. Fragen, zu denen sie bereits in der vorherigen ÜLU eine Unterweisung erhalten haben, aber nicht mehr genau wissen, was sie tun sollen. Dieses einfache und notwendige Wissen soll über kurze Tutorials konserviert werden, sodass die Auszubildenden jederzeit nochmals darauf zurückgreifen können. Die Tutorials werden insgesamt durch Bild, Ton und Text zu einem multifunktionalen Lernkanal-Modul angereichert.</p>
523<p><strong>Umsetzung:</strong></p>
524<ul>
525<li><span>Produktion selbstgedrehter Erklärvideos durch die handwerklichen Lehrkräfte für die Berufsorientierung und den ÜBA-Unterricht mit professioneller Nachbearbeitung durch einen Dienstleister für digitale Lernmedien</span></li>
526<li><span>Bereitstellung professioneller Tutorials auf einer digitalen Wissensplattform für das Handwerk</span></li>
527<li><span>Nutzung der Tutorials für die Mitgliedsbetriebe der HWK Konstanz</span></li>
528</ul>
529</div><div id="foerderprojekte_18"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
530                
531                    
532
533                                    <div class="pt-3"></div>
534                                <div class="teaser-text">
535                    <h3 class="h4 teaser-title">
536                                                Externe Projektpartner                    </h3>
537                    <div class="teaser-content"><p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
538Prof. Dr. Jürgen Wagenmann</p>
539<p>Methodisch-didaktisches Konzept, Zwischen- und Schlussevaluation</p>
540<p><a href="https://de.craftguide.com/">craftguide GmbH, München</a></p>
541<p>Verarbeitung des von den Lehrkräften selbsterstellten Video-Rohmaterials zu professionellen Erklärvideos</p>
542</div>
543                                    </div>
544                                    <div class="teaser-url-chevron">
545                        <span class=""><i class="fas fa-chevron-right"></i></span>
546                    </div>
547                                
548            </div>
549        
550</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
551                                        </section>
552                                            <section id="section-4">
553                    
554                                <div class="row new-chapter" >
555                <div id="foerderprojekte_19"  class="col col-md-12 col-sm-12"><h3>Niederschwellige digitale Lernmedienentwicklung mit Bordmitteln</h3>
556</div>                </div><!-- /. row -->
557                
558                                <div class="row " >
559                <div id="foerderprojekte_20"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Ministerium für Wirtschaft, Arbeit und Wohnungsbau Baden-Württemberg</p>
560<p><strong>Förderaufruf:</strong> ZukunftsKompetenzen@bw</p>
561<p><strong>Projekttitel:</strong> Niederschwellige digitale Lernmedienentwicklung mit Bordmitteln</p>
562<p><strong>Projektlaufzeit:</strong> 01.12.2020 – 31.05.2024</p>
563<p><strong>Ausgangssituation und Projektziele:</strong></p>
564<p>Während bei der Produktion der ersten visuellen und gamifizierten Lernmedien in de
564n vorangegangenen Digitalisierungsprojekten großen Wert auf eine hochwertige technische Ausstattung und eine professionelle Erscheinung gelegt und auch auf externe Unterstützung bei der Fertigstellung der Medien gesetzt wurde, verfolgen wir mit diesem Projekt das Ziel, mit vorhandener Hardware (z.B. Smartphone und Laptop) und vorhandener Software (z.B. Office-Programme, Windows-Apps, ILIAS) Erklärvideos, animierte Tutorials und Quiz / Lernstandskontrollen / Online-Tests für den eigenen Werkstattunterricht zu produzieren. Die Lehrkräfte sollen befähigt werden, Lehrvideos, Tutorials und Quizze zu erstellen und als standardmäßige Instrumente in das didaktische Repertoire ihrer Unterrichtsgestaltung einzubinden.</p>
565<p><strong>Umsetzung:</strong></p>
566<ul>
567<li><span>Produktion von selbstgedrehten Erklärvideos, animierten Tutorials und Quiz / Lernstandskontrollen / Online-Tests für den eigenen Werkstattunterricht mit Bordmitteln</span></li>
568<li><span>Entwicklung eines Schulungsangebots zur niederschwelligen Erstellung digitaler Lernmedien für den Einsatz im Werkstattunterricht</span></li>
569<li><span>Schulung der handwerklichen Lehrkräfte sowohl in Gruppenseminaren als auch in Individualcoachings</span></li>
570</ul>
571</div><div id="foerderprojekte_21"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
572                
573                    
574
575                                    <div class="pt-3"></div>
576                                <div class="teaser-text">
577                    <h3 class="h4 teaser-title">
578                                                Externe Projektpartner                    </h3>
579                    <div class="teaser-content"><p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
580Prof. Dr. Jürgen Wagenmann</p>
581<p>Methodisch-didaktisches Konzept, <span>Curricula, Umsetzungsunterstützung, Zwischen- und Schlussevaluation</span></p>
582<p><a href="https://zwh.de/">ZWH Zentralstelle für die Weiterbildung im Handwerk, Düsseldorf</a></p>
583<p>Durchführung eines Großteils der Gruppenseminare und des Individualcoachings</p>
584</div>
585                                    </div>
586                                    <div class="teaser-url-chevron">
587                        <span class=""><i class="fas fa-chevron-right"></i></span>
588                    </div>
589                                
590            </div>
591        
592</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
593                                        </section>
594                                            <section id="section-5">
595                    
596                                <div class="row new-chapter" >
597                <div id="foerderprojekte_22"  class="col col-md-12 col-sm-12"><h3>New Work: Der Einfluss von Megatrends und Geschäftsmodellinnovationen auf die Arbeit im Handwerk der Zukunft – konkretisiert am Schreinerhandwerk und mit Handlungsempfehlungen für Betriebe, Handwerksorganisation und Politik</h3>
598</div>                </div><!-- /. row -->
599                
600                                <div class="row " >
601                <div id="foerderprojekte_23"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Ministerium für Wirtschaft, Arbeit und Wohnungsbau Baden-Württemberg</p>
602<p><strong>Förderaufruf:</strong> Zukunftsinitiative Handwerk 2025 (jetzt: Horizont Handwerk)</p>
603<p><strong>Projekttitel:</strong> Modellprojekt-Studie „New Work: Der Einfluss von Megatrends und Geschäftsmodellinnovationen auf die Arbeit im Handwerk der Zukunft – konkretisiert am Schreinerhandwerk und mit Handlungsempfehlungen für Betriebe, Handwerksorganisation und Politik“</p>
604<p><strong>Projektlaufzeit:</strong> 15.12.2020 – 28.02.2022</p>
605<p><strong>Ausgangssituation und Projektziele:</strong></p>
606<p>Technische Innovationen und der gesellschaftliche Wandel beeinflussen nicht nur Produkte und Dienstleistungen, sondern ganz massiv auch die Arbeit im Handwerk. Viele insbesondere Handwerks-Kleinstbetriebe haben diese zukünftigen Herausforderungen entweder noch nicht auf dem Radar oder begreifen den Veränderungsdruck eher als Bedrohung. Mit der Modellprojekt-Studie sollten Zukunftsszenarien entwickelt bzw. Antworten gefunden werden, welche aktuellen und zukünftigen Herausforderungen sich aus den Megatrends für die Mitgliedsbetriebe der Handwerkskammer Konstanz ergeben, inwieweit die Mitgliedsbetriebe diese Herausforderungen meistern können und ob die Handwerkskammer Konstanz und die gesamte Handwerksorganisation für die zukünftigen Herausforderungen gut aufgestellt sind. Aus den Analysen sollten anschließend Denkanstöße und Handlungsempfehlungen für die Handwerksbetriebe, die Handwerkskammer Konstanz, die Handwerksorganisation allgemein sowie die Politik abgeleitet werden.</p>
607<p><strong>Umsetzung:</strong></p>
608<ul>
609<li><span>Erforschung des Einflusses von Megatrends und der dadurch induzierten Geschäftsmodellinnovationen auf das Handwerk der Zukunft und Identifikation der Herausforderungen und Chancen. Hierbei wurden sowohl allgemein zugängliche Informationsquellen herangezogen als auch drei Ganztages-Workshops mit Schreinerbetrieben aus dem eigenen und benachbarten Kammerbezirken durchgeführt, um Erfahrungen der Handwerksbetriebe einfließen zu lassen und Lösungsvorschläge zusammen mit der Praxis zu erarbeiten.</span></li>
610<li><span>Analyse ausgewählter Geschäftsmodellinnovationen aus Industrie und Handel und deren Übertragbarkeit auf das Schreinerhandwerk bzw. das Handwerk allgemein.</span></li>
611<li><span>Entwicklung von realistischen Zukunftsszenarien für das Schreinerhandwerk.</span></li>
612<li><span>Kritische Analyse der heutigen deutschen Handwerksorganisation mit Adressierung der historisch gewac
612hsenen Ineffizienzen und Verkrustungen.</span></li>
613<li><span>Formulierung von Denkanstößen und Handlungsempfehlungen für Handwerksbetriebe, für die Handwerkskammer Konstanz, die gesamte Handwerksorganisation und die Politik.</span></li>
614</ul>
615</div><div id="foerderprojekte_24"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
616                
617                    
618
619                                    <div class="pt-3"></div>
620                                <div class="teaser-text">
621                    <h3 class="h4 teaser-title">
622                                                Externe Projektpartner                    </h3>
623                    <div class="teaser-content"><p><a href="https://horizont-handwerk.de/">Horizont Handwerk</a></p>
624<p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
625Prof. Dr. Jürgen Wagenmann</p>
626<p><span>Wissenschaftliche Leitung, Konzeption der Studie, Co-Autor</span></p>
627<p><a href="https://zwh.de/">ZWH Zentralstelle für die Weiterbildung im Handwerk, Düsseldorf</a></p>
628<p>Download der Studie</p>
629</div>
630                                    </div>
631                                    <div class="teaser-url-chevron">
632                        <span class=""><i class="fas fa-chevron-right"></i></span>
633                    </div>
634                                
635            </div>
636        
637</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
638                                        </section>
639                                            <section id="section-6">
640                    
641                                <div class="row new-chapter" >
642                <div id="foerderprojekte_25"  class="col col-md-12 col-sm-12"><h3>Digitalisierung und vernetztes Lernen in der Überbetrieblichen Ausbildung (ÜBA) im Handwerk</h3>
643</div>                </div><!-- /. row -->
644                
645                                <div class="row " >
646                <div id="foerderprojekte_26"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Ministerium für Wirtschaft, Arbeit und Wohnungsbau Baden-Württemberg</p>
647<p><strong>Förderaufruf:</strong> Digitalisierung und berufliche Ausbildung</p>
648<p><strong>Projekttitel:</strong> Digitalisierung und vernetztes Lernen in der Überbetrieblichen Ausbildung (ÜBA) im Handwerk</p>
649<p><strong>Projektlaufzeit:</strong> 01.06.2018 – 31.05.2021</p>
650<p><strong>Ausgangssituation und Projektziele:</strong></p>
651<p>Anschlussprojekt an das vorherige Projekt &#8222;Digitalisierung und berufliche Weiterbildung&#8220;. Das mit dem vorherigen Projekt eingeführte Lernmanagementsystem ILIAS wurde auf die Überbetriebliche Ausbildung im Handwerk (ÜBA) erweitert. Hierbei musste die Zielgruppe der in der Regel jugendlichen Teilnehmer sowie die starke fachpraktische Orientierung des Werkstattunterrichts besondere Beachtung finden. Pro Bildungshaus der Handwerkskammer Konstanz wurden jeweils zwei Gewerke in der ÜBA vollständig digital abgebildet.</p>
652<p><strong>Umsetzung:</strong></p>
653<ul>
654<li><span>Blended-Learning-Angebote in der Überbetrieblichen Ausbildung (ÜBA) in den Bildungsakademien Rottweil, Singen und Waldshut: Erweiterung des Lernmanagementsystems (LMS) ILIAS auf den Bereich der ÜBA, Digitalisierung der Lernunterlagen, Integration von selbsterstellten und fremdproduzierten Erklärvideo-Sequenzen zu ausgewählten Themen in den Unterricht, Erstellung von Online-Lernstandskontrollen und Online-Tests.</span></li>
655</ul>
656</div><div id="foerderprojekte_27"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
657                
658                    
659
660                                    <div class="pt-3"></div>
661                                <div class="teaser-text">
662                    <h3 class="h4 teaser-title">
663                                                Externer Projektpartner                    </h3>
664                    <div class="teaser-content"><p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
665Prof. Dr. Jürgen Wagenmann</p>
666<p><span>Methodisch-didaktisches Konzept, Umsetzungsunterstützung, Zwischen- und Schlussevaluation</span></p>
667</div>
668                                    </div>
669                                    <div class="teaser-url-chevron">
670                        <span class=""><i class="fas fa-chevron-right"></i></span>
671                    </div>
672                                
673            </div>
674        
675</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
676                                        </section>
677                                            <section id="section-7">
678                    
679                                <div class="row new-chapter" >
680                <div id="foerderprojekte_28"  class="col col-md-12 col-sm-12"><h3>Digitalisierung und vernetztes Lernen in der dualen beruflichen Weiterbildung im Handwerk</h3>
681</div>                </div><!-- /. row -->
682                
683                                <div class="row margin-bottom-m" >
684                <div id="foerderprojekte_29"  class="col col-md-8 col-sm-8"><p><strong>Fördergeber:</strong> Ministerium für Wirtschaft, Arbeit und Wohnungsbau Baden-Württemberg</p>
685<p><strong>Förderaufruf:</strong> Digitalisierung und berufliche Weiterbildung</p>
686<p><strong>Projekttitel:</strong> Digitalisierung und vernetztes Lernen in der dualen beruflichen Weiterbildung im Handwerk</p>
687<p><strong>Projektlaufzeit:</strong> 18.04.2017 – 17.10.2019</p>
688<p><strong>Ausgangssituation und Projektziele:</strong></p>
689<p>Die Digitalisierung als vierte industrielle Revolution transformiert unsere Wirtschaft und die Gesellschaft. Daraus ergibt sich, dass auch die duale berufliche Weiterbildung im Handwerk stärker an die „Generation Internet“ angepasst und die Bildungsteilnehmer besser auf die zunehmende Digitalisierung der Arbeitswelt im Handwerk trainiert werden müssen. Ausnahmslos alle Handwerksberufe erfordern mehr und mehr digitale Kompetenzen.</p>
690<p>Neben der digitalen Transformation des Lernumfeldes und der zukunftsorientierten Weiterbildung im Handwerk sollten mit dem vorliegenden Projektvorhaben auch Kosteneinsparpotenzial gehoben und eine Organisationserleichterung für die Bildungsakademien der Handwerkskammer Konstanz geschaffen werden. Mit dem Projektvorhaben wurde eine Online-Lern- und Kommunikationsplattform auf der Basis ILIAS für die spezifischen Anforderungen in der Weiterbildung (insbesondere Meistervorbereitung, Weiterbildungsprogramme) im Handwerk aufgebaut. Hierbei musste die Zielgruppe der erwachsenen Teilnehmer mit Berufserfahrung sowie die kombiniert fachpraktische, fachtheoretische und betriebswirtschaftliche Orientierung der Meistervorbereitung besondere Beachtung finden. Pro Bildungshaus der Handwerkskammer Konstanz wurden jeweils zwei Gewerke vollständig digital abgebildet.</p>
691<p><strong>Umsetzung:</strong></p>
692<ul>
693<li><span>Blended-Learning-Angebote in der Meistervorbereitung (MV) in den Bildungsakademien Rottweil, Singen und Waldshut: Einführung des Lernmanagementsystems (LMS) ILIAS und erste Befüllung im Bereich MV, Digitalisierung der Lernunterlagen, Integration von selbsterstellten und fremdproduzierten Erklärvideo-Sequenzen zu ausgewählten Themen in den Unterricht, Erstellung von Online-Lernstandskontrollen</span></li>
694</ul>
695</div><div id="foerderprojekte_30"  class="col col-md-4 col-sm-4">                    <div class="teaser-tile teaser-box uni-kachel ">
696                
697                    
698
699                                    <div class="pt-3"></div>
700                                <div class="teaser-text">
701                    <h3 class="h4 teaser-title">
702                                                Externer Projektpartner                    </h3>
703                    <div class="teaser-content"><p><a href="https://www.allensbach-hochschule.de/hochschule/institut-kmu-handwerk/">Institut für KMU und Handwerk an der Allensbach Hochschule Konstanz</a><br />
704Prof. Dr. Jürgen Wagenmann</p>
705<p><span>Methodisch-didaktisches Konzept, Umsetzungsunterstützung, Zwischen- und Schlussevaluation</span></p>
706</div>
707                                    </div>
708                                    <div class="teaser-url-chevron">
709                        <span class=""><i class="fas fa-chevron-right"></i></span>
710                    </div>
711                                
712            </div>
713        
714</div><div class="clearfix visible-sm visible-md visible-lg"></div>                </div><!-- /. row -->
715                
716                                <div class="row " >
717                <div id="foerderprojekte_31"  class="col col-md-12 col-sm-12"><h2>Kontakt</h2>
718</div>                </div><!-- /. row -->
719                
720                                <div class="row " >
721                <div id="foerderprojekte_32"  class="col col-md-4 col-sm-4">            <div class="teaser-box business-card uni-ansprechpartner" style="display: block !important;">
722                <div class="row">
723                                            <div class="col-12 col-xs-12 ">
724                            <img src="https://www.bildungsakademie.de/wp-content/uploads/photo_385214-1.jpg" class="img img-responsive wp-post-image" alt="" style="max-width: 165px; min-width: 100px;" decoding="async" />                        </div>
725                                                            <div class="col-12 col-xs-12 ">
726                        <p class="uni-kontakt ">
727                                                        <a href="https://www.bildungsakademie.de/mitarbeiter/kreiner-maria/">                                                                    <label class="m-b-n " >Dr. Maria Kreiner </label>
728                                                                </a>                                                                                                                
729                            <span style="margin-bottom: 4px;"></span>
730                            <br>                                                                                                                                                            <br>Webersteig 3                                <br>78462 Konstanz                                                                                                 <br>                                                        <br><span class="uni-ansprechpartner-telefon-label">Telefon </span>07531 205 429                                                                                    <br><a class="" href="mailto:[email protected]">[email protected]</a>                                                    </p>
731                    </div>
732                </div>
733
734            </div>
735        
736</div><div id="foerderprojekte_33"  class="col col-md-4 col-sm-4">
737</div>                </div><!-- /. row -->
738                		</section>
739	                                    </div><!-- /.content -->
740
741                                    <div id="scrollspyContent" class="scrollspy col-md-3 visible-md visible-lg hidden-print">
742                                                                                        <ul class="nav nav-tabs nav-stacked affix-top" data-spy="affix" data-offset-top="10">
743                                                    <li class="static">Inhalt</li>
744                                                    <li class="active"><a href="#section-0">Allgemeines</a></li><li><a href="#section-1">Design-Thinking in der ÜBA</a></li><li><a href="#section-2">Nachhaltigkeits- und Klimaschutzmanager/in</a></li><li><a href="#section-3">ÜBA Lernkonzeption</a></li><li><a href="#section-4">Digitale Lernmedienentwicklung</a></li><li><a href="#section-5">New Work</a></li><li><a href="#section-6">Digitalisierung in der ÜBA</a></li><li><a href="#section-7">Digitalisierung in der dualen Weiterbildung</a></li>                                                </ul>
745                                            
746                                    </div>
747                                </div>
748                            </div><!-- /.scroll-adjust -->
749                                        </div>
750		</div><!-- /#content -->
751		    <div class="hidden-print">
752                        <footer class="site-footer">
753                    <div id="footer-bottom" class="container-fluid">
754                        <div class="container">
755                                                        <div class="row">
756                                                                <div class="col-xs-12 col-md-12 mt-4 mb-5 pb-3">
757                                     
758        <div class="uni-breadcrump-menu">
759
760            <div class="row">
761                <div class="col-xs-12 col-12 col-sm-10">
762                    <p>
763                        <a class="uni-breadcrump-item" class="" href="https://www.bildungsakademie.de/">Startseite</a>
764                                                        <span class="fas fa-chevron-right" aria-hidden="true" style="font-size: 12px; color: #9e9e9e;"></span>
765                                    <label style="font-weight: unset;">Über uns</label>
766                                    <span class="fas fa-chevron-right" aria-hidden="true" style="font-size: 12px; color: #9e9e9e;"></span>
767                                    <a class=" uni-breadcrump-item" href="https://www.bildungsakademie.de/foerderprojekte/">Förderprojekte</a>
768                                                </p>
769                </div>
770
771            </div>
772
773        </div>
774                                        </div>
775                            </div>
776                            <div class="row stretch">
777                                                                    <div class="col col-xs-12 col-md-3 col-sm-6 margin-bottom-s border-top">
778                                        <ul>
779                                                                                            <li><strong>Service</strong></li>
780                                                                                                                                        <li><a  href="https://bildungsakademie.hwk-konstanz.uniplus-software.de/seminare/suche/" class=" ">Kurs-Suche</a></li>
781                                                                                            <li><a  href="https://www.bildungsakademie.de/foerderungen/" class=" ">Fördermöglichkeiten</a></li>
782                                                                                            <li><a  href="https://www.bildungsakademie.de/karriere/" class=" ">Stellenangebote</a></li>
783                                                                                    </ul>
784                                    </div>
785                                                                    <div class="col col-xs-12 col-md-3 col-sm-6 margin-bottom-s border-top">
786                                        <ul>
787                                                                                            <li><strong>Beratung</strong></li>
788                                                                                                                                        <li><a  href="https://www.bildungsakademie.de/meisterinfoabende/" class=" ">Meister-Infoabende</a></li>
789                                                                                            <li><a  href="https://www.bildungsakademie.de/infos-kaufmaennische-kurse/" class=" ">
789Infos zu kaufmännischen Kursen</a></li>
790                                                                                    </ul>
791                                    </div>
792                                                                    <div class="col col-xs-12 col-md-3 col-sm-6 margin-bottom-s border-top">
793                                        <ul>
794                                                                                            <li><strong>Bildungszentren vor Ort</strong></li>
795                                                                                                                                        <li><a  href="https://www.bildungsakademie.de/bildungsakademie-rottweil/" class=" ">Bildungsakademie Rottweil</a></li>
796                                                                                            <li><a  href="https://www.bildungsakademie.de/bildungsakademie-singen/" class=" ">Bildungsakademie Singen</a></li>
797                                                                                            <li><a  href="https://www.bildungsakademie.de/bildungsakademie-waldshut/" class=" ">Bildungsakademie Waldshut</a></li>
798                                                                                    </ul>
799                                    </div>
800                                                                <div class="col col-xs-12 col-md-3 col-sm-6 margin-bottom-s border-top">
801                                                                                                            <p><strong>Ein Unternehmen der Handwerkskammer Konstanz</strong></p>
802                                    <p>
803                                        Webersteig 3                                        <br>
804                                        78462 Konstanz                                    </p>
805                                    <p>
806                                        Telefon 07531 205-205<br>
807                                                                                <a href="mailto:[email protected]">[email protected]</a>
808                                    </p>
809                                                                    </div>
810                            </div>
811                            <div class="row border-top">
812                                                                <div class="col-xs-12 col-sm-6 copyright"><p>Copyright © 2026 UNIPLUS Software GmbH</p></div>
813                                <div class="col-xs-12 col-sm-6 text-right">
814                                                                                                                        <a style="margin-left: 15px;" class="" href="https://www.bildungsakademie.de/impressum/"><i class="fas fa-caret-right"></i> Impressum</a>
815                                                                                    <a style="margin-left: 15px;" class="" href="https://www.bildungsakademie.de/agb/"><i class="fas fa-caret-right"></i> AGB</a>
816                                                                                    <a style="margin-left: 15px;" class="" href="https://www.bildungsakademie.de/hausordnung/"><i class="fas fa-caret-right"></i> Hausordnung</a>
817                                                                                    <a style="margin-left: 15px;" class="" href="https://www.bildungsakademie.de/datenschutz/"><i class="fas fa-caret-right"></i> Datenschutz</a>
818                                                                                    <a style="margin-left: 15px;" class="" href="https://www.bildungsakademie.de/erklaerung-zur-barrierefreiheit/"><i class="fas fa-caret-right"></i> Barrierefreiheit</a>
819                                                                                                                <a style="margin-left: 15px;" class="borlabs-cookie-preference cookie-settings-link" title="Cookie Einstellungen" href="#"><i class="fas fa-caret-right"></i> Cookie Einstellungen</a>
820                                </div>
821
822                            </div>
823                        </div><!-- /.container -->
824                    </div><!-- /#footer-bottom -->
825
826                </footer>
827        
828                </div><!-- /everything except menu -->
829
830                </div><!-- / #wrapper -->
831
832                
832<script type="speculationrules">
833{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/uni-hwk-ba-konstanz/*","/wp-content/themes/chatty/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
834</script>
834
835		
835<script>
836			jQuery(document).ready(function($) {
837				$('.klappbox-head').each(function(e) {
838					$(this).click(function(e) {
839						$(this).find('span:nth-child(2) i').toggleClass('fas fa-chevron-down');
840						$(this).find('span:nth-child(2) i').toggleClass('fas fa-chevron-up');
841					});
842				});
843			});
844		</script>
844
845		        
845<script type=text/javascript>
846            jQuery(document).ready(function ($) {
847                function addLogoutTrigger() {
848                    $("a[href*='action=logout']").each(function(id, e) {
849                        $(e).click(function() {
850                            $(document).trigger('uni-logout');
851                        });
852                    });
853                }
854                addLogoutTrigger();
855                setTimeout(addLogoutTrigger, 1000);
856                setTimeout(addLogoutTrigger, 3000);
857
858            });
859        </script>
859
860                
860<script src="https://ai.uniplus-software.de/dist/aitools.js" defer></script>
860
861         
862		
862<script>
863			function toggle_sem_pfeil(a, b) {
864				(function($) {
865					$('#' + b).show();
866					$('#' + a).hide();    
867				})(jQuery);
868			}
869		</script>
869
870	    
870<script>
871        jQuery(document).ready(function($) {
872            $('.btn-toggle-kurs-data').each(function(i, obj) {
873                $(this).on('click', function(e) {
874                    var self = $(this);
875                    var div = $('#kursData_' + $(this).attr('with-id'));
876                    div.toggle('show');
877
878                    setTimeout(function() {
879                        if(div.is(':visible')) {
880                            self.val('weniger\u2026');
881                        } else {
882                            self.val('mehr\u2026');
883                        }
884                    }, 500);
885                    setTimeout(function() {
886                        $(div)[0].scrollIntoView({ behavior: 'smooth', block: 'nearest' });
887                    }, 500);
888                    $(div)[0].scrollTop -= 20;
889                });
890            });
891        });
892    </script>
892
893	    
893<script>
894
895        jQuery(document).ready(function($) {
896            var selected = $('#fbgr_select option:selected').val();
897            if(selected > 0) {
898                $('#fbunter_select').prop('disabled', false);
899            }
900            else {
901                $('#fbunter_select').prop('disabled', true);
902            }
903            if(selected > 0) {
904                $.ajax({
905                    url: "https://www.bildungsakademie.de/wp-content/plugins/uniplus-seminarwesen-fachbereiche/inc/unterfachbereich.php",
906                    data: {
907                        format: 'json',
908                        fbgr: selected,
909                        nonce: 'e5be9e94e3',
910                    },
911                    error: function() {
912                        //$('#info').html('<p>An error has occurred</p>');
913                        //console.log('An error has occurred');
914                    },
915                    dataType: 'json',
916                    success: function(result) {
917                        $('#fbunter_select').empty();
918                        $('#fbunter_select').append('<option value=\'0\'>&nbsp;Bitte ausw&auml;hlen</option>');
919                        $.each(result, function(index, value){
920                            var sub_category_selected = $('#hidden_fbunter_select').val();
921                            if(sub_category_selected == value || sub_category_selected == index) {
922                                $('#fbunter_select').append('<option selected value=\'' + value + '\'>&nbsp;' + index + '</option>');
923                            } else {
924                                $('#fbunter_select').append('<option value=\'' + value + '\'>&nbsp;' + index + '</option>');
925                            }
926                        });
927                    },
928                    type: 'POST'
929                });
930            }
931            $('#fbgr_select').change(function() {
932
933                var selected = $('#fbgr_select option:selected').val();
934                if(selected > 0) {
935                    $('#fbunter_select').prop('disabled', false);
936                }
937                else {
938                    $('#fbunter_select').prop('disabled', true);
939                }
940                $.ajax({
941                    url: "https://www.bildungsakademie.de/wp-content/plugins/uniplus-seminarwesen-fachbereiche/inc/unterfachbereich.php",
942                    data: {
943                        format: 'json',
944                        fbgr: selected,
945                        nonce: 'e5be9e94e3',
946                    },
947                    error: function() {
948                        //$('#info').html('<p>An error has occurred</p>');
949                        //console.log('An error has occurred');
950                    },
951                    dataType: 'json',
952                    success: function(result) {
953                        $('#fbunter_select').empty();
954                        $('#fbunter_select').append('<option value=\'0\'>&nbsp;Bitte ausw&auml;hlen</option>');
955                        $.each(result, function(index, value){
956                            $('#fbunter_select').append('<option value=\'' + value + '\'>&nbsp;' + index + '</option>');
957                        });
958                    },
959                    type: 'POST'
960                });
961
962            });
963        });
964    </script>
964
965	        
965<script>
966            jQuery(document).ready(function($) {
967                let user_id = null;
968                let client = 'hwkkonstanzbtz';
969
970                let ls_key = 'uni_wk_kurse_'+client;
971                if(user_id) {
972                    ls_key += '_'+user_id;
973                }
974                let items = localStorage.getItem(ls_key);
975                if(!items) {
976                    items = localStorage.getItem('uni_wk_kurse_'+client); // item added to local storage before logging in
977                }
978                if(!items) {
979                    items = localStorage.getItem('items'); // This can be removed in the future.
980                }
981
982                //const items = localStorage.getItem('items');
983                if(items) {
984                    const numItems = JSON.parse(items).length;
985                    if(numItems > 0) {
986                        [ 'span.glyphicon-shopping-cart' ]
987                            .forEach(function(_e) {
988                                const es = $(_e);
989                                for(let i = 0; i < es.length; i++) {
990                                    const e = $(es[i]);
991                                    e.css('color', '#ff8d25');
992                                }
993                            });
994                    }
995                }
996            });
997        </script>
997
998                
998<script>
999            window.addEventListener('load', init);
1000
1001            function init() {
1002                // Add event listener to "In den Warenkorb" button
1003                document.querySelectorAll('.uni_warenkorb_buy_form > button[type="submit"]').forEach(function(element){
1004                    element.addEventListener('click', addItemToCart);
1005                }, this);
1006
1007                // console.log('Warenkorb init');
1008                // // Add event listener to logout-links
1009                // document.querySelectorAll('a[href*="action=logout"]').forEach(function(element){
1010                //     element.addEventListener('click', clearLocalStorage);
1011                // }, this);
1012            }
1013
1014            jQuery(document).ready(function ($) {
1015                $(document).on('uni-logout', function () {
1016                    // Clean all the data
1017                    Object.keys(localStorage)
1018                        .filter(ls_key =>
1019                            ls_key.startsWith('uni_wk_'))
1020                        .forEach(ls_key =>
1021                            localStorage.removeItem(ls_key));
1022
1023                    localStorage.clear(); // Delete this line in the future, so that only items related to warenkorb get removed.
1024                });
1025            });
1026
1027            function clearLocalStorage(event) {
1028                Object.keys(localStorage)
1029                    .filter(ls_key =>
1030                        ls_key.startsWith('uni_wk_'))
1031                    .forEach(ls_key =>
1032                        localStorage.removeItem(ls_key));
1033
1034                localStorage.clear(); // Delete this line in the future, so that only items related to warenkorb get removed.
1035            }
1036
1037            function item_already_in_cart(item, itemsArray) {
1038                for(var i=0; i<itemsArray.length; i++) {
1039                    if(itemsArray[i].semnr == item.semnr && itemsArray[i].vernr == item.vernr) {
1040                        return true;
1041                    }
1042                };
1043                return false;
1044            }
1045
1046            function addItemToCart(event) {
1047                event.target.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
1048
1049                var parentForm = event.target.closest('form'); // In uni_hwk theme, event.target is NOT the button, but a child span of the button
1050
1051                let semnr = parentForm.querySelector('[name="semnr"]').value;
1052                let vernr = parentForm.querySelector('[name="vernr"]').value;
1053                let booked_modules = parentForm.querySelector('[name="modules"]').value; // = Modul-Nr. or 'all' or 'none'
1054                let waitlist = (parentForm.querySelector('[name="waitlist"]').value == 'true');
1055                let interessenbekundung = (parentForm.querySelector('[name="interessenbekundung"]').value == 'true');
1056
1057                let new_item = {
1058                    'semnr': semnr,
1059                    'vernr': vernr,
1060                    'booked_modules': booked_modules,
1061                    'waitlist': waitlist,
1062                    'interessenbekundung': interessenbekundung,
1063                };
1064
1065                let user_id = null;
1066                let client = 'hwkkonstanzbtz';
1067                let ls_key = 'uni_wk_kurse_'+client;
1068                if(user_id) {
1069                    ls_key += '_'+user_id;
1070                }
1071                let items = localStorage.getItem(ls_key);
1072                if(!items) {
1073                    items = localStorage.getItem('uni_wk_kurse_'+client); // item added to local storage before logging in
1074                }
1075                if(!items) {
1076                    items = localStorage.getItem('items'); // This can be removed in the future.
1077                }
1078                if(items) {
1079                    items = JSON.parse(items);
1080                } else { // no items stored yet
1081                    items = [];
1082                }
1083
1084                /*
1085                 * If item not in cart => add item to cart
1086                 * If item in cart and adding whole course => do nothing (because the user might have manually un-selected some modules)
1087                 * If item in cart and adding single module => Search for this module and set it to 'booked'
1088                 */
1089                for(var i=0; i<items.length; i++) {
1090                    if(items[i].semnr == new_item.semnr && items[i].vernr == new_item.vernr) {
1091                        if(new_item.booked_modules != 'all' && new_item.booked_modules != 'none') {
1092                            // Look for module, set booked
1093                            for(var j=0; j<items[i].modules.length; j++) {
1094                                if(items[i].modules[j].modulnr === new_item.booked_modules) {
1095                                    items[i].modules[j].gebucht = true;
1096                                    items[i].modules[j].anzahl = 1;
1097                                    //localStorage.setItem('items', JSON.stringify(items));
1098                                    localStorage.setItem(ls_key, JSON.stringify(items));
1099                                    return;
1100                                }
1101                            }
1102                        } else {
1103                            return;
1104                        }
1105                    }
1106                }
1107                // Add new item to cart via local storage
1108                items.push(new_item);
1109                //localStorage.setItem('items', JSON.stringify(items));
1110                localStorage.setItem(ls_key, JSON.stringify(items));
1111            }
1112        </script>
1112
1113                
1113<script>
1114            jQuery(document).ready(function ($) {
1115                $(':input[id="inputSearch"]').click(function () {
1116                    if ($('#inputSearch').val().length === 0) {
1117                        return false;
1118                    }
1119                });
1120            });
1121        </script>
1121
1122        
1122<script data-cfasync="false" data-no-minify="1" data-no-optimize="1" id="borlabs-cookie-core-js-module" src="https://www.bildungsakademie.de/wp-content/plugins/borlabs-cookie/assets/javascript/borlabs-cookie.min.js?ver=3.4.5" type="module"></script>
1122
1123<!--googleoff: all--><div data-nosnippet data-borlabs-cookie-consent-required='true' id='BorlabsCookieBox'></div><div id='BorlabsCookieWidget' class='brlbs-cmpnt-container'></div><!--googleon: all-->
1123<script id="uniplus-base-script-js-extra">
1124var uniplus = {"ajax_url":"https://www.bildungsakademie.de/wp-admin/admin-ajax.php"};
1125//# sourceURL=uniplus-base-script-js-extra
1126</script>
vendor: 1 bytes, line 1126
1126
1127<script id="uniplus-base-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/uniplus_base.js?ver=1.0.1"></script>
vendor: 1 bytes, line 1127
1127
1128<script id="uniplus-maps-cluster-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-base/js/markerclusterer.js?ver=1.0.2"></script>
vendor: 1 bytes, line 1128
1128
1129<script id="uniplus-clientside-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/js/uniplus_clientside.js?ver=1.2"></script>
vendor: 1 bytes, line 1129
1129
1130<script id="jquery-ui-core-js-before">
1131jQuery.uiBackCompat = true;
1132//# sourceURL=jquery-ui-core-js-before
1133</script>
vendor: 1 bytes, line 1133
1133
1134<script id="jquery-ui-core-js" src="https://www.bildungsakademie.de/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 1134
1134
1135<script id="jquery-ui-datepicker-js" src="https://www.bildungsakademie.de/wp-includes/js/jquery/ui/datepicker.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 1135
1135
1136<script id="jquery-ui-datepicker-js-after">
1137jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Schlie\u00dfen","currentText":"Heute","monthNames":["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"monthNamesShort":["Jan.","Feb.","M\u00e4rz","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],"nextText":"N\u00e4chster","prevText":"Vorheriger","dayNames":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dayNamesShort":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dayNamesMin":["S","M","D","M","D","F","S"],"dateFormat":"d. MM yy","firstDay":1,"isRTL":false});});
1138//# sourceURL=jquery-ui-datepicker-js-after
1139</script>
vendor: 1 bytes, line 1139
1139
1140<script id="datepicker-min-lang-de-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/js/jquery.datepicker.de.js?ver=1.0"></script>
vendor: 1 bytes, line 1140
1140
1141<script id="validate-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/js/jquery.validate.js?ver=1.0"></script>
vendor: 1 bytes, line 1141
1141
1142<script id="jquery-confirm-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/js/jquery-confirm.js?ver=1.0"></script>
vendor: 1 bytes, line 1142
1142
1143<script id="multiselect-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-clientside/js/multiselect.js?ver=1.0"></script>
vendor: 1 bytes, line 1143
1143
1144<script id="uni_faq_live_search.js-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-faq/js/uni_faq_live_search.js?ver=1.1"></script>
vendor: 1 bytes, line 1144
1144
1145<script id="uni_base_filter-letter-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-glossar/js/filter-letters.js?ver=1.0"></script>
vendor: 1 bytes, line 1145
1145
1146<script id="uniplus-kundenportal-script-js" src="https://www.bildungsakademie.de/wp-content/plugins/uniplus-kundenportal/js/uni-kundenportal.js?ver=1.0"></script>
vendor: 1 bytes, line 1146
1146
1147<script id="script-main-js-extra">
1148var wp_variables = {"browserWarning":"Diese Internetseite ist nicht f\u00fcr diesen Browser optimiert. Bitte benutzen Sie einen aktuelleren Browser, um diese Seite optimal angezeigt zu bekommen.","googlemapSettings":{"confirm_load":false,"placeholder_map":"https://www.bildungsakademie.de/wp-content/themes/chatty/img/placeholder_map.jpg","placeholder_map_sw":"https://www.bildungsakademie.de/wp-content/themes/chatty/img/placeholder_map_sw.jpg"},"jqueryFitvidsEnabled":"1","jqueryAppearEnabled":"","jqueryStickyEnabled":"1","retinaDisabled":"1","scrollOffsetTopAdd":"40","scrollDuration":"1000","scrollDurationExternal":"1","templateUrl":"https://www.bildungsakademie.de/wp-content/themes/chatty","teaserTileSameHeightImage":"0","teaserTileSameHeightImageMd":"0","teaserTileSameHeightImageSm":"0"};
1149//# sourceURL=script-main-js-extra
1150</script>
vendor: 1 bytes, line 1150
1150
1151<script id="script-main-js" src="https://www.bildungsakademie.de/wp-content/themes/chatty/js/main.min.js?ver=2.10.4"></script>
vendor: 1 bytes, line 1151
1151
1152<script id="chatty-load-google-map-js" src="https://www.bildungsakademie.de/wp-content/themes/chatty/js/chatty-google-map.min.js?ver=2.10.4"></script>
vendor: 1 bytes, line 1152
1152
1153<script id="script-child-js-extra">
1154var hwk_variables = {"hwk_form_floating_labels":"","hwk_mega_menu":"","hwk_no_retina":"1"};
1155//# sourceURL=script-child-js-extra
1156</script>
vendor: 1 bytes, line 1156
1156
1157<script id="script-child-js" src="https://www.bildungsakademie.de/wp-content/themes/uni-hwk-ba-konstanz/js/child.min.js?ver=1.3.0"></script>
1157
1158        <!-- UNIPLUS-CACHE-9F726243D38434738CAD93E159E41-2026-10-06T03:59:01+00:00 -->
1159        
1160			
1160<script type="text/javascript">
1161				function appendStyle(styles) {
1162					var css = document.createElement('style');
1163					css.type = 'text/css';
1164					if (css.styleSheet) css.styleSheet.cssText = styles; 	// IE check
1165					else css.appendChild(document.createTextNode(styles));	// needs appendChild to also work in Chrome
1166					document.getElementsByTagName("head")[0].appendChild(css);
1167				}
1168				var styles = 'div.color-blue-light-25 { background-color: #d1e3f6; } div.color-blue-dark-25 { background-color: #c1cbdb; } div.color-grey-light { background-color: #eeeeee; } h1.color-hwk-blue-light, h2.color-hwk-blue-light, h3.color-hwk-blue-light, h4.color-hwk-blue-light, h5.color-hwk-blue-light, h6.color-hwk-blue-light, p.color-hwk-blue-light, span.color-hwk-blue-light, a.color-hwk-blue-light, li.color-hwk-blue-light, input.color-hwk-blue-light, label.color-hwk-blue-light, textarea.color-hwk-blue-light, caption.color-hwk-blue-light, blockquote.color-hwk-blue-light, font.color-hwk-blue-light, code.color-hwk-blue-light { color: #448dde !important; } div.color-hwk-blue-light { background-color: #448dde !important; } div.color-hwk-blue-light-secondary { background-color: #76abe4 !important; } h1.color-hwk-blue-dark, h2.color-hwk-blue-dark, h3.color-hwk-blue-dark, h4.color-hwk-blue-dark, h5.color-hwk-blue-dark, h6.color-hwk-blue-dark, p.color-hwk-blue-dark, span.color-hwk-blue-dark, a.color-hwk-blue-dark, li.color-hwk-blue-dark, input.color-hwk-blue-dark, label.color-hwk-blue-dark, textarea.color-hwk-blue-dark, caption.color-hwk-blue-dark, blockquote.color-hwk-blue-dark, font.color-hwk-blue-dark, code.color-hwk-blue-dark { color: #073070 !important; } div.color-hwk-blue-dark { background-color: #073070 !important; } div.color-hwk-blue-dark-secondary { background-color: #456494 !important; } h1.color-hwk-red-dark, h2.color-hwk-red-dark, h3.color-hwk-red-dark, h4.color-hwk-red-dark, h5.color-hwk-red-dark, h6.color-hwk-red-dark, p.color-hwk-red-dark, span.color-hwk-red-dark, a.color-hwk-red-dark, li.color-hwk-red-dark, input.color-hwk-red-dark, label.color-hwk-red-dark, textarea.color-hwk-red-dark, caption.color-hwk-red-dark, blockquote.color-hwk-red-dark, font.color-hwk-red-dark, code.color-hwk-red-dark { color: #b82c44 !important; } div.color-hwk-red-dark { background-color: #b82c44 !important; } div.color-hwk-red-dark-secondary { background-color: #ca6173 !important; } h1.color-hwk-red-light, h2.color-hwk-red-light, h3.color-hwk-red-light, h4.color-hwk-red-light, h5.color-hwk-red-light, h6.color-hwk-red-light, p.color-hwk-red-light, span.color-hwk-red-light, a.color-hwk-red-light, li.color-hwk-red-light, input.color-hwk-red-light, label.color-hwk-red-light, textarea.color-hwk-red-light, caption.color-hwk-red-light, blockquote.color-hwk-red-light, font.color-hwk-red-light, code.color-hwk-red-light { color: #ee234a !important; } div.color-hwk-red-light { background-color: #ee234a !important; } div.color-hwk-red-light-secondary { background-color: #f25a77 !important; } h1.color-hwk-yellow, h2.color-hwk-yellow, h3.color-hwk-yellow, h4.color-hwk-yellow, h5.color-hwk-yellow, h6.color-hwk-yellow, p.color-hwk-yellow, span.color-hwk-yellow, a.color-hwk-yellow, li.color-hwk-yellow, input.color-hwk-yellow, label.color-hwk-yellow, textarea.color-hwk-yellow, caption.color-hwk-yellow, blockquote.color-hwk-yellow, font.color-hwk-yellow, code.color-hwk-yellow { color: #fbcb3d !important; } div.color-hwk-yellow { background-color: #fbcb3d !important; } div.color-hwk-yellow-secondary { background-color: #fcd86e !important; } h1.color-hwk-orange, h2.color-hwk-orange, h3.color-hwk-orange, h4.color-hwk-orange, h5.color-hwk-orange, h6.color-hwk-orange, p.color-hwk-orange, span.color-hwk-orange, a.color-hwk-orange, li.color-hwk-orange, input.color-hwk-orange, label.color-hwk-orange, textarea.color-hwk-orange, caption.color-hwk-orange, blockquote.color-hwk-orange, font.color-hwk-orange, code.color-hwk-orange { color: #ff9933 !important; } div.color-hwk-orange { background-color: #ff9933 !important; } div.color-hwk-orange-secondary { background-color: #ffb366 !important; } h1.color-hwk-green-dark, h2.color-hwk-green-dark, h3.color-hwk-green-dark, h4.color-hwk-green-dark, h5.color-hwk-green-dark, h6.color-hwk-green-dark, p.color-hwk-green-dark, span.color-hwk-green-dark, a.color-hwk-green-dark, li.color-hwk-green-dark, input.color-hwk-green-dark, label.color-hwk-green-dark, textarea.color-hwk-green-dark, caption.color-hwk-green-dark, blockquote.color-hwk-green-dark, font.color-hwk-green-dark, code.color-hwk-green-dark { color: #5a8e1e !important; } div.color-hwk-green-dark { background-color: #5a8e1e !important; } div.color-hwk-green-dark-secondary { background-color: #83aa56 !important; } h1.color-hwk-green-light, h2.color-hwk-green-light, h3.color-hwk-green-light, h4.color-hwk-green-light, h5.color-hwk-green-light, h6.color-hwk-green-light, p.color-hwk-green-light, span.color-hwk-green-light, a.color-hwk-green-light, li.color-hwk-green-light, input.color-hwk-green-light, label.color-hwk-green-light, textarea.color-hwk-green-light, caption.color-hwk-green-light, blockquote.color-hwk-green-light, font.color-hwk-green-light, code.color-hwk-green-light { color: #b4bd00 !important; } div.color-hwk-green-light { background-color: #b4bd00 !important; } div.color-hwk-green-light-secondary { background-color: #c7ce40 !important; } #scrollspyContent ul.nav-tabs { margin-top: 50px; } ';
1169				//window.onload = function() { appendStyle(styles) };
1170				(function() { // self executing function here
1171					appendStyle(styles); // the DOM will be available here
1172				})();
1173			</script>
1173
1174			
1175                <a id="top" href="#" class="hidden-print"><span class="glyphicon glyphicon-chevron-up"></span></a>
1176
1177                                        
1177<script type="text/x-template" id="eval-submit-template">
1178			<div>
1179				<div class="row">
1180					<div v-if="show_progress_bar" class="col-xs-12 col-12 mb-4">
1181						<progress id="uni-eval-progress-bar" :value="progress"></progress>
1182					</div>
1183					<div v-if="args.total_page_nr > 1" class="col-xs-12 col-12 mb-4">
1184                        <button v-if="!isFirstPage" @click="go_to_previous_page" class="btn btn-primary btn-back"><span class="uni-eval-nav-button-icon">&lang;&nbsp;</span> Vorherige Seite</button>
1185                        <button v-if="!isLastPageWithContent" @click="go_to_next_page" class="btn btn-primary float-right">Nächste Seite <span class="uni-eval-nav-button-icon">&nbsp;&rang;</span></button>
1186					</div>
1187					<div class="col-xs-12 col-12 d-flex justify-content-center">
1188						<button v-if="!isLastPageWithContent"  @click="save_locally" class="btn btn-primary">Zwischenspeichern</button>
1189						<button v-if="isLastPageWithContent"   @click="$eventBus.$emit('eval-submit-form', $event.target)" class="btn btn-primary">Absenden</button>
1190					</div>
1191				</div>
1192				<div v-if="error_code == 'insert' || error_code == 'json'" class="col-xs-12 col-12 callout callout-danger">
1193					<h4>Fehler</h4>
1194					Ihre Angaben konnten nicht gespeichert werden.
1195				</div>
1196				<div v-else-if="error_code == 'export'" class="col-xs-12 col-12 callout callout-danger">
1197					<h4>Fehler</h4>
1198					Ihre Angaben konnten nicht übermittelt werden.
1199				</div>
1200				<div v-else-if="error_code == 'token'" class="col-xs-12 col-12 callout callout-danger">
1201					<h4>Fehler</h4>
1202					Ihr Token ist ungültig.
1203				</div>
1204				<div v-else-if="error_code == 'invalid'" class="col-xs-12 col-12 callout callout-warning">
1205					<h4>Fehlende oder ungültige Eingabe</h4>
1206					Die Seite enthält eine unzulässige Eingabe oder ein Pflichtfeld fehlt.<br>
1207					Bitte kontrollieren Sie Ihre Eingaben. Die betroffenen Felder sind rot hervorgehoben. 
1208				</div>
1209				<div v-else-if="error_code == 'pruefungsmerkmalauswahl_gesperrt'" class="col-xs-12 col-12 callout callout-danger">
1210					<h4>Eintragung fehlgeschlagen</h4>
1211					Sie können keine Änderungen mehr vornehmen.
1212				</div>
1213				<div v-else-if="error_code == 'pruefungsmerkmalauswahl_nicht_angemeldet'" class="col-xs-12 col-12 callout callout-danger">
1214					<h4>Eintragung fehlgeschlagen</h4>
1215					Sie sind nicht zu der ausgewählten Prüfung angemeldet. Bitte überprüfen Sie Ihre Angaben, insbesondere die Lehrlingsrollennummer.
1216				</div>
1217			</div>
1218        </script>
1218
1219        <template id="uni_vue_login_template">
1220    <div class="uni-login-form">
1221        <div v-if="login_failed" class="bs-callout bs-callout-danger">
1222            <h5>Login fehlgeschlagen</h5>
1223            <label>Benutzername oder Passwort ist falsch.</label>
1224        </div>
1225        <div v-if="wrong_pin" class="bs-callout bs-callout-danger">
1226            <h5>Login fehlgeschlagen</h5>
1227            <label>Die eingegebene PIN ist nicht korrekt.</label>
1228        </div>
1229        <div v-if="content == 'form'" class="uni-form">
1230            <form enctype="multipart/form-data" v-bind:action="action" method="POST" v-on:submit.prevent="onLoginHandler">
1231                <fieldset>
1232                    <input type="hidden" name="nonce" v-bind:value="nonce" />
1233                    <input type="hidden" name="post_id" v-bind:value="post_id" />
1234                    <div v-if="confirmed" class="col-xs-12 col-12">
1235                        <div class="bs-callout bs-callout-info">
1236                            <h5>Konto bestätigt</h5>
1237                            <label>Sie können sich nun am {{ getTheTitle() }} anmelden.</label>
1238                        </div>
1239                    </div>
1240
1241                    <div class="pt-2 row">
1242                        <template v-for="input in inputs">
1243                            <div v-if="!input.hidden" v-bind:class="getInputClass(input.width)">
1244                                <label v-if="!compact" class="control-label">
1245                                    {{ input.display_name }}
1246                                    <span v-if="input.required">*</span>:
1247                                </label>
1248                                <input
1249                                    autocomplete="off"
1250                                    autocapitalize="off"
1251                                    v-model="input.value"
1252                                    v-bind:type="input.type"
1253                                    v-bind:name="input.name"
1254                                    v-bind:placeholder="input.display_name"
1255                                    class="form-control"
1256                                    v-on:keyup.enter="onLoginHandler"
1257                                    v-bind:class="[ input.invalid ? 'is-invalid has-error' : '', input.class ? input.class : '']"
1258                                />
1259                            </div>
1260                        </template>
1261                        <div v-if="!inputs.password.hidden" class="col-xs-12 col-12 pb-2">
1262                            <span class="cursor-pointer" @click="toggleShowPassword()">
1263                                <span v-if="inputs.password.type !== 'password'">
1264                                                                      <i class="bi bi-eye"></i>
1265                                                                     Passwort verstecken
1266                                </span>
1267                                <span v-else>
1268                                                                      <i class="bi bi-eye-slash"></i>
1269                                                                      Passwort anzeigen
1270                                </span>
1271                            </span>
1272                        </div>
1273                                                <div class="col-xs-12 col-sm-12 text-right form-group has-feedback">
1274                            <a v-if="otp"
1275                               class="btn btn-link d-inline"
1276                               v-on:click.prevent="newOTP"
1277                            >neue PIN anfordern</a>
1278                            <a
1279                                type="submit"
1280                                class="btn btn-primary d-inline"
1281                                v-on:click.prevent="onLoginHandler"
1282                            >Anmelden</a>
1283                        </div>
1284                        
1285                    </div>
1286                </fieldset>
1287            </form>
1288        </div>
1289        <div v-else-if="content == 'loading'" class>
1290            <template v-if="show_progress_bar">
1291                <div class="bs-callout bs-callout-info">
1292                    <h4 class="mb-3"><i class="fas fa-circle-notch fa-spin"></i>&nbsp;Wird geladen …</h4>
1293                    <div v-if="progress_hint">
1294                        <p class="mb-0 pb-0" v-html="progress_hint"></p>
1295                    </div>
1296                    <div v-else-if="progress > 1">
1297                        <div id="uni-login-progress-bar" style="height:18px; background-color: #9FC8F2; border-radius: 5px;" :style="{ width: progress + '%' }">&nbsp;</div>
1298                    </div>
1299                </div>
1300            </template>
1301            <template v-else>
1302                <div class="bs-callout bs-callout-info">
1303    <h4 class="m-0"><i class="fas fa-circle-notch fa-spin"></i>
1304        &nbsp;Wird geladen &hellip;
1305    </h4>
1306</div>            </template>
1307        </div>
1308        <div v-else-if="content == 'logged_in'" class>
1309            <div class="bs-callout bs-callout-info">
1310                <h4>Sie sind angemeldet <span v-if="data.first_name" class="uni-just-a-hack-for-hwk-theme">als </span><span v-if="data.first_name" class="logged-in-as" v-html="data.first_name+' '+data.name1"></span></h4>
1311                <p class="mt-3 mb-0 p-0">
1312                  <a href="/kundenportal">
1313                                          <i class="bi bi-house"></i>
1314                                        {{ getTheTitle() }}
1315                  </a>
1316                </p>
1317                <p class="mt-3 mb-0 p-0">
1318                  <a href="https://www.bildungsakademie.de/wp-login.php?action=logout&amp;redirect_to=https%3A%2F%2Fwww.bildungsakademie.de&amp;_wpnonce=19faf3d575">
1319                                        <i class="bi bi-box-arrow-right"></i>
1320                    
1321                    Abmelden
1322                  </a>
1323                </p>
1324            </div>
1325        </div>
1326        <div v-else-if="content == 'logging_in'" class>
1327            <div class="bs-callout bs-callout-info">
1328                <h4>Anmeldung erfolgreich</h4>
1329                <p>Sie werden automatisch weitergeleitet &hellip;</p>
1330            </div>
1331        </div>
1332    </div>
1333</template>
1334<script setup lang="ts">
1335</script>
1335        <template id="uni-warenkorb-button-icon-template">
1336            <div v-if="!route.path.includes('bestellung')  && count > 0" id="uni-warenkorb-button-icon" @click="handleClick">
1337                <i class="bi bi-cart-check"></i>
1338            </div>
1339        </template>
1340
1341                                
1341<script>
1342            Vue.component('eval-submit-component', {
1343				props: ['name'],
1344				template: '#eval-submit-template',
1345
1346                data: function() {
1347                    return {
1348                        post_id: '305724',
1349                        action: 'https://www.bildungsakademie.de/wp-content/plugins/uniplus-evaluation/inc/forms/submit.php',
1350                        nonce: '4e34d1bd88',
1351						restriction_nonce: '1f3c20e88c',
1352						redirect_page: '',
1353						endpoints: [],
1354						return_after_sending: 0,
1355						args: { 
1356							current_page_nr: 1,
1357							total_page_nr: 0						},
1358						page_has_visible_content: new Array(1).fill(false), // "+1" so that the indexes range from [1] to [total_page_nr]. Index [0] is not used.
1359						previousPageWithContent: false,
1360						nextPageWithContent: false,
1361						sending_data: false,
1362						error_code: '',
1363						show_progress_bar: false,
1364						progress: 0,
1365                    };
1366                },
1367                methods: {
1368					go_to_previous_page: function() {
1369						if( !this.isFirstPage ) {
1370							current_page = document.getElementById('page-' + this.args.current_page_nr);
1371							current_page.classList.remove('show');
1372							current_page.classList.remove('in');
1373							current_page.classList.remove('active');
1374							previous_page_nr = this.previousPageWithContent;
1375							previous_page = document.getElementById('page-' + previous_page_nr);
1376							previous_page.classList.add('show');
1377							previous_page.classList.add('in');
1378							previous_page.classList.add('active');
1379							this.args.current_page_nr = this.previousPageWithContent;
1380							window.scrollTo(0, 0);
1381						}
1382					},
1383					go_to_next_page: function() {
1384						if(this.validateCurrentPageQuestions()) {
1385							if(!this.isLastPageWithContent) {
1386								current_page = document.getElementById('page-' + this.args.current_page_nr);
1387								current_page.classList.remove('show');
1388								current_page.classList.remove('in');
1389								current_page.classList.remove('active');
1390								next_page_nr = this.nextPageWithContent;
1391								next_page = document.getElementById('page-' + next_page_nr);
1392								next_page.classList.add('show');
1393								next_page.classList.add('in');
1394								next_page.classList.add('active');
1395								this.args.current_page_nr = this.nextPageWithContent;
1396								window.scrollTo(0, 0);
1397							}
1398						}
1399					},
1400					validateCurrentPageQuestions: function() {
1401						var ret = true;
1402						for(var question of this.$evaluation.questions)	{
1403							if(this.$evaluation.getPageNr(question) == this.args.current_page_nr) {
1404								var should_scroll = true;
1405								if(!question.validate()) {
1406									ret = false;
1407									if(should_scroll) {
1408										question.$el.scrollIntoView(false);
1409										should_scroll = false;
1410									}
1411								}
1412							}
1413						}
1414						this.error_code = ret ? '' : 'invalid';
1415						return ret;
1416					},
1417					save_locally: function() {
1418						for(var q_id in this.$evaluation.questions) {
1419							let question = this.$evaluation.questions[q_id];
1420							var entry = {};
1421							if(question.value !== undefined) {entry.value = question.value;}
1422							if(question.values !== undefined) {entry.values = question.values;}
1423							if(question.customCaptions !== undefined) {entry.customCaptions = question.customCaptions;}
1424							localStorage.setItem('UniEvalFormSave_' + this.name + '_q' + q_id, JSON.stringify(entry));
1425						}
1426					},
1427					checkVisibility: function() {
1428						// Check which pages have visible content
1429						for(var i=1; i<= this.args.total_page_nr; i++) {
1430							// this.page_has_visible_content[i] = false;
1431							this.page_has_visible_content[i] = 0;
1432						}
1433						for(var question of this.$evaluation.questions)	{
1434							if(!question.hide && question.qtype != 'summary') {
1435								var pageNr = this.$evaluation.getPageNr(question);
1436								// this.page_has_visible_content[pageNr] = true;
1437								this.page_has_visible_content[pageNr]++;
1438							}
1439						}
1440						this.updatePageWithContent();
1441						this.updateProgress();
1442					},
1443					updatePageWithContent: function() {
1444						var pageNr;
1445						pageNr = this.args.current_page_nr;
1446						if(1 == this.args.current_page_nr) {
1447							this.previousPageWithContent = false;
1448						} else {
1449							this.previousPageWithContent = 1; // Always treat page 1 as page with content.
1450						}
1451						while(pageNr > 1) {
1452							pageNr--;
1453							if(this.page_has_visible_content[pageNr]) {
1454								this.previousPageWithContent = pageNr;
1455								break;
1456							}
1457						}
1458						pageNr = this.args.current_page_nr;
1459						this.nextPageWithContent = false;
1460						while(pageNr < this.args.total_page_nr) {
1461							pageNr++;
1462							if(this.page_has_visible_content[pageNr]) {
1463								this.nextPageWithContent = pageNr;
1464								break;
1465							}
1466						}
1467					},
1468					updateProgress() {
1469						var num_past_questions = 0;
1470						var total_num_questions = 0;
1471						for(var i=1; i < this.page_has_visible_content.length; i++) {
1472							total_num_questions += this.page_has_visible_content[i];
1473							if(i < this.args.current_page_nr) {
1474								num_past_questions += this.page_has_visible_content[i];
1475							}
1476						}
1477						if(total_num_questions > 0) {
1478							this.progress = num_past_questions/total_num_questions;
1479						} else {
1480							this.progress = 1;
1481						}
1482					}
1483                },
1484                mounted: function() {
1485					// Check local storage for saved data
1486					for(var q_id in this.$evaluation.questions) {
1487						if (localStorage.getItem('UniEvalFormSave_' + this.name + '_q' + q_id)) {
1488							let object_from_local_storage = JSON.parse(localStorage.getItem('UniEvalFormSave_' + this.name + '_q' + q_id));
1489							var vue_component = this.$evaluation.questions[q_id];
1490							if(object_from_local_storage.value !== undefined) {vue_component.value = object_from_local_storage.value;}
1491							if(object_from_local_storage.values !== undefined) {vue_component.values = object_from_local_storage.values;}
1492							if(object_from_local_storage.customCaptions !== undefined) {vue_component.customCaptions = object_from_local_storage.customCaptions;}
1493						}
1494					}
1495
1496
1497                    this.$eventBus.$on('eval-submit-form', function(event_target) {
1498						if(!this.sending_data) {
1499							event_target.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
1500							this.sending_data = true;
1501							this.error_code = '';
1502							var is_valid = true;
1503							for(var question of this.$evaluation.questions)	{
1504								var should_scroll = true;
1505								if(!question.validate()) {
1506									is_valid = false;
1507									if(should_scroll) {
1508										question.$el.scrollIntoView(false);
1509										should_scroll = false;
1510									}
1511								}
1512							}
1513							if(is_valid) {
1514								// Submit the form... 
1515								var formData = this.$root.createFormData(this.inputs);
1516								formData.append('post_id', this.post_id);
1517								formData.append('nonce', this.nonce);
1518								formData.append('restriction_nonce',this.restriction_nonce);
1519								formData.append('token_id', '');
1520								formData.append('fragebogen_name', this.name);
1521								formData.append('semnr', '');
1522								formData.append('modnr', '');
1523								formData.append('vernr', '');
1524								formData.append('group', '');
1525								formData.append('generic_parameter_1', '');
1526								formData.append('generic_parameter_2', '');
1527								formData.append('generic_parameter_3', '');
1528								formData.append('generic_parameter_4', '');
1529								formData.append('lfdnr', '');
1530								formData.append('kurs_vdat', '');
1531								formData.append('kurs_bdat', '');
1532								formData.append('token_vdat', '');
1533								formData.append('export', 0);
1534								formData.append('endpoints', JSON.stringify(this.endpoints));
1535                                formData.append('immediate_mail', 'null');
1536
1537								// console.log(this.$evaluation.question_bundles);
1538								var q_data_bundle = {};
1539								for(var category in this.$evaluation.question_bundles) {
1540									q_data_bundle[category] = {};
1541									for(var bundle_index in this.$evaluation.question_bundles[category]) {
1542										var bundle = this.$evaluation.question_bundles[category][bundle_index];
1543										q_data_bundle[category][bundle_index] = {};
1544										q_data_bundle[category][bundle_index].doznr 	= bundle.doznr;
1545										q_data_bundle[category][bundle_index].dozent 	= bundle.dozent;
1546										q_data_bundle[category][bundle_index].thema_id 	= bundle.thema_id;
1547										q_data_bundle[category][bundle_index].thema_bez = bundle.thema_bez;
1548										q_data_bundle[category][bundle_index].questions = [];
1549										var questions = bundle.questions;
1550										for(var q_id in questions) {
1551											let question = questions[q_id];
1552											q_data_bundle[category][bundle_index].questions.push(
1553												{
1554													data: question._data
1555												}
1556											)
1557										}
1558									}
1559								}
1560								var q_data_bundle_json = JSON.stringify(q_data_bundle)
1561								formData.append('q_data_bundle_json', q_data_bundle_json);
1562
1563								this.$http.post(this.action, formData).then(function(res) {
1564									let response = JSON.parse(res.bodyText);
1565									console.log(response); // XXX DEV
1566									// Ok, wir haben die Request an den Server geschickt und Antwort erhalten.
1567									/* Delete local storage */
1568									for(var q_id in this.$evaluation.questions) {
1569										var question = this.$evaluation.questions[q_id];
1570										if(!(question.args.do_not_delete_on_submit || ('options' in question.args && question.args.options.do_not_delete_on_submit))) {
1571											localStorage.removeItem('UniEvalFormSave_' + this.name + '_q' + q_id);
1572										}
1573									}
1574									/* Pruefungswesen PDF export */
1575									if(false) {
1576										// TODO: Aufruf von createPdf nur im endpoint-Erfolgsfall!
1577										// if(response.ergebnis_post_id != 0) {
1578										if(response.success) {
1579											// Check if q-type pruefungswesen_merkmalliste is present
1580											if(q_data_bundle_json.indexOf('pruefungswesen_merkmalliste') >= 0) {
1581												var nonce = response.pruefungswesen_pdf_nonce;
1582												var post_id = response.ergebnis_post_id;
1583												var url = 'https://www.bildungsakademie.de/wp-content/plugins/uniplus-pruefungswesen/inc/forms/createPdf.php' + '?post_id='+post_id+'&nonce='+nonce;
1584												// window.open(url);
1585                                                this.redirect_page = url;
1586											}
1587										}
1588									}
1589									/* On error: show error message. On success: redirect. */
1590									if(response.success) {
1591										/* Redirect */
1592										if(this.return_after_sending) {
1593											location.reload();
1594										} else {
1595											document.location = this.redirect_page;
1596										}
1597									} else {
1598										this.error_code = response.error_code;
1599									}
1600									this.sending_data = false;
1601									event_target.innerHTML = 'Absenden';
1602								}, function(res) {
1603									console.log('err');
1604									this.sending_data = false;
1605									event_target.innerHTML = 'Absenden';
1606								});
1607							} else {
1608								this.sending_data = false;
1609								event_target.innerHTML = 'Absenden';
1610								this.error_code = 'invalid';
1611							}
1612						}
1613                    }.bind(this));
1614
1615                    // this.$eventBus.$on('eval-page-changed', function(page_id) {
1616					// 	this.args.current_page_nr = page_id;
1617                    // }.bind(this));
1618
1619                    this.$eventBus.$on('eval-visibility-changed', function() {
1620						this.checkVisibility();
1621                    }.bind(this));
1622
1623					/* Check query string, preset values */
1624					/* Won't work on Multiple Choice because query string only provides strings and arrays of strings */
1625					let query = this.$root.$route.query;
1626					Object.keys(query).forEach(function (item) {
1627						// key: 	item
1628						// value: 	query[item]
1629						if(item.substr(0,1) == 'q') {
1630							var qindex = item.substr(1) -1;
1631							if(this.$evaluation.questions[qindex]) {
1632								var the_question = this.$evaluation.questions[qindex];
1633								if(the_question.value !== undefined) {the_question.value = query[item];}
1634								else if(the_question.values !== undefined) {the_question.values = query[item];}
1635							}
1636						}
1637						
1638					}, this);
1639
1640					this.$nextTick(function () {
1641                        // Code that will run only after the entire view has been rendered
1642						this.checkVisibility();
1643                    })
1644                },
1645				computed: {
1646					isFirstPage: function() {
1647						return this.args.current_page_nr == 1;
1648					},
1649					isLastPage: function() {
1650						return this.args.current_page_nr == this.args.total_page_nr;
1651					},
1652					isFirstPageWithContent: function() {
1653						return !this.previousPageWithContent;
1654					},
1655					isLastPageWithContent: function() {
1656						return !this.nextPageWithContent;
1657					},
1658				},
1659				watch: {
1660					args: {
1661						handler: function() {
1662							this.updatePageWithContent();
1663							this.updateProgress();
1664						},
1665						deep: true,
1666						immediate: false,
1667					},
1668				}
1669
1670            });
1671
1672        </script>
1672
1673                
1673<script>
1674            Vue.component('uni-vue-login', {
1675                template: '#uni_vue_login_template',
1676                props: {
1677                    compact: Boolean,
1678                    redirect: String,
1679                    keepsignedin: Boolean,
1680                    redirect_while_logged_in: Boolean,
1681                    show_progress_bar: Boolean
1682                },
1683                kundenportal_title: '',
1684                data:  function() {
1685                    return {
1686                        post_id: '51688',
1687                        action: 'https://www.bildungsakademie.de/wp-content/plugins/uniplus-signup/inc/forms/signin.php',
1688                        nonce: '85a6c0fc35',
1689                        zfaNonce: 'cda78d74b2',
1690                        apiNonce: 'd9d01772dc',
1691                        login_failed: false,
1692                        wrong_pin: '',
1693                        confirmed: false,
1694                        content: 'loading',
1695                        client: 'hwkkonstanzbtz',
1696                        data: false,
1697                        otp: false,
1698                        otp_success: false,
1699                        otp_error: false,
1700                        progress: 0,
1701                        progress_ticks: 0,
1702                        progress_hint: '',
1703                        saveDevice: false,
1704                        zfaToken: '',
1705                        inputs: {
1706                            email: {
1707                                value: '',
1708                                type: 'text',
1709                                display_name: 'Benutzername',
1710                                required: true,
1711                                width: 12,
1712                                name: 'username',
1713                                invalid: false,
1714                                hidden: false,
1715                                autocapitalize: false
1716                            },
1717                            password: {
1718                                value: '',
1719                                type: 'password',
1720                                display_name: 'Passwort',
1721                                required: true,
1722                                width: 12,
1723                                name: 'password',
1724                                invalid: false,
1725                                hidden: false
1726                            },
1727                            pin: {
1728                                value: '',
1729                                type: 'text',
1730                                display_name: 'Ihre PIN',
1731                                required: true,
1732                                width: 12,
1733                                name: 'pin',
1734                                hidden: true,
1735                                class: 'input-letter-spacing-3',
1736                                invalid: false,
1737                                autocapitalize: false
1738                            },
1739                        }
1740                    }
1741                },
1742                methods: {
1743                    toggleShowPassword: function() {
1744                        this.inputs.password.type = this.inputs.password.type === 'password' ? 'text' : 'password';
1745                    },
1746                    getTheTitle: function() {
1747                                                    this.kundenportal_title = 'Kundenportal';
1748                                                return this.kundenportal_title;
1749                    },
1750                    getInputClass : function(w) {
1751                        return 'col-xs-12 col-12 col-sm-' + w + ' form-group has-feedback';
1752                    },
1753                    onLoginHandler : function() {
1754                        setTimeout(function() {
1755                            if(this.compact && document.querySelector('.uni-dropdown-menu')) {
1756                                document.querySelector('.uni-dropdown-menu').classList.add('show');
1757                            }
1758                        }.bind(this), 50);
1759
1760                        this.inputs.email.invalid = (!this.inputs.email.value);
1761                        this.inputs.password.invalid = (!this.inputs.password.value);
1762
1763                        if(this.inputs.email.value && this.inputs.password.value) {
1764                            this.$eventBus.$emit('uni-on-logging-in');
1765                            this.login_failed = false;
1766                            this.wrong_pin = false;
1767                            var formData = this.$form.createFormData(this.inputs);
1768                            formData.append('post_id', this.post_id);
1769                            formData.append('nonce', this.nonce);
1770                            formData.append('keepsignedin', this.keepsignedin ? 'J' : 'N');
1771                            formData.append('saveDevice', this.saveDevice ? 'J': 'N');
1772                            formData.append('token', this.zfaToken);
1773
1774                            this.$http.post(this.action, formData).then(function(res) {
1775                                let json = JSON.parse(res.bodyText);
1776                                if(json.success) {
1777                                    if(this.saveDevice && json.token) {
1778                                        let a = new Date();
1779                                        a = new Date(a.getTime() +1000*60*60*24*30);
1780                                        document.cookie = this.client+'_zfa_token='+json.token+'; expires='+
1781                                            a.toGMTString()+';';
1782                                    }
1783                                    this.$eventBus.$emit('uni-on-login-success');
1784                                } else {
1785                                    this.content = 'form';
1786                                    if(!json.success) {
1787                                        if(json.zfa) {
1788                                            if(this.otp === true && this.inputs.pin.hidden === false) {
1789                                                this.wrong_pin = true;
1790                                            }
1791                                            this.content = 'loading';
1792                                            this.inputs.email.hidden = true;
1793                                            this.inputs.password.hidden = true;
1794                                            this.inputs.pin.hidden = false;
1795                                            this.otp = true;
1796                                            setTimeout((e) => {
1797                                                this.content = 'form';
1798                                            }, 1);
1799                                        } else {
1800                                            this.$eventBus.$emit('uni-on-login-failed');
1801                                        }
1802                                    }
1803                                    // Show login box with error message
1804                                    if(this.compact && document.querySelector('.uni-dropdown-menu') && !json.zfa) {
1805                                        document.querySelector('.uni-dropdown-menu').classList.add('show');
1806                                        document.location = 'https://www.bildungsakademie.de/login?state=failed';
1807                                    }
1808                                }
1809
1810                            }.bind(this), function(res) {
1811                                this.$eventBus.$emit('uni-on-login-failed');
1812                            });
1813                        }
1814                    },
1815                    newOTP() {
1816                        this.content = 'loading';
1817                        this.otp_error = false;
1818                        this.otp_success = false;
1819                        var formData = this.$form.createFormData(this.inputs);
1820                        formData.append('post_id', this.post_id);
1821                        formData.append('nonce', this.zfaNonce);
1822                        this.$http.post('/wp-json/uniplus/2FA/v1/new-otp', formData,
1823                            {headers: {'X-WP-Nonce': '0b2209e170'}})
1824                            .then(function (response) {
1825                                response.json().then(json => {
1826                                    if (!json.status == 'success') {
1827                                        this.otp_error = true;
1828                                        this.content = 'form';
1829                                    } else {
1830                                        this.otp_success = true;
1831                                        this.content = 'form';
1832                                    }
1833                                });
1834                            }.bind(this));
1835                    },
1836                    init : function() {
1837                        let formData = new FormData();
1838                        formData.append('post_id', this.post_id);
1839                        formData.append('nonce', this.apiNonce);
1840                        this.$uniplus.apiRequest('/wp-json/uniplus/signup/v1/userdata', formData,
1841                            (json) => {
1842                                if(json.status === 'success' && json.data.is_user_logged_in) {
1843                                    this.data = json.data.user_data;
1844
1845                                    if(this.redirect_while_logged_in) {
1846                                                                                this.content = 'logging_in';
1847                                        setTimeout(() => {
1848                                            document.location = this.redirect ? this.redirect : '/kundenportal';
1849                                        }, 2000);
1850                                                                            } else {
1851                                        this.content = 'logged_in';
1852                                    }
1853                                } else {
1854                                    this.content = 'form';
1855                                }
1856                            },
1857                            (err) => {
1858                                this.content = 'form';
1859                            });
1860
1861                        if(this.$route.query.state === 'failed') {
1862                            this.login_failed = true;
1863                            this.inputs.email.invalid = true;
1864                            this.inputs.password.invalid = true;
1865                        }
1866                    },
1867                    updateLoginProgress() {
1868                        this.progress_ticks += Math.floor(Math.random() * 10);
1869
1870                        if(this.progress_ticks > 100 && !this.progress_hint) {
1871                            this.progress = 100;
1872                            this.progress_hint = 'Einen Moment Geduld bitte, wir müssen Ihre Daten noch aufbereiten.';
1873                        } else {
1874                            this.progress = this.progress_ticks % 100;
1875                        }
1876                    }
1877                },
1878                watch: {
1879                    content(newVal, oldVal) {
1880                        if(oldVal === 'form' && newVal === 'loading') {
1881                            this.progress = 0;
1882                            this.progress_ticks = 0;
1883                            this.progress_hint = '';
1884                        }
1885
1886                        if(oldVal === 'loading' && newVal === 'logged_in') {
1887                            this.progress = 100;
1888                            this.progress_ticks = 100;
1889                            this.progress_hint = '';
1890                        }
1891                    }
1892                },
1893                mounted: function() {
1894                    if(typeof this.$route.query.confirmed !== 'undefined') {
1895                        this.confirmed = true;
1896                    }
1897
1898                    this.$eventBus.$on('uni-on-logging-in', () => {
1899                        this.login_failed = false;
1900                        this.content = 'loading';
1901                    });
1902
1903                    this.$eventBus.$on('uni-on-login-success', () => {
1904                        this.content = 'logging_in';
1905                        setTimeout(() => {
1906                            document.location = this.redirect ? this.redirect : '/kundenportal';
1907                        }, 250);
1908                    });
1909
1910                    this.$eventBus.$on('uni-on-login-failed', () => {
1911                        this.content = 'form';
1912                        this.login_failed = true;
1913                        this.inputs.email.invalid = true;
1914                        this.inputs.password.invalid = true;
1915                    });
1916
1917                    this.init();
1918                    if(document.cookie) {
1919                        let cookieStr = document.cookie;
1920                        let cookieArr = cookieStr.split('; ');
1921                        let name = this.client+'_zfa_token=';
1922                        for(let i = 0; i < cookieArr.length; i++) {
1923                            let cookie = cookieArr[i];
1924                            while (cookie.charAt(0) == ' ') {
1925                                cookie = cookie.substring(1);
1926                            }
1927                            if (cookie.indexOf(name) == 0) {
1928                                this.zfaToken = cookie.substring(name.length, cookie.length);
1929                            }
1930                        }
1931                    }
1932                    setInterval(() => this.updateLoginProgress(), 980);
1933
1934                                    }
1935            });
1936
1937        </script>
1937
1938                
1938<script>
1939            Vue.component('warenkorb-button-icon-page', {
1940                template: '#uni-warenkorb-button-icon-template',
1941
1942                data: function() {
1943                    return {
1944                        route: this.$route,
1945                        client: 'hwkkonstanzbtz',
1946                        user_id: null,
1947                    };
1948                },
1949                methods: {
1950                    handleClick(e) {
1951                        window.location.href = '/bestellung/';
1952                    },
1953                    read_kurse_from_local_storage: function() {
1954                        let ls_key = 'uni_wk_kurse_'+this.client;
1955                        if(this.user_id) {
1956                            ls_key += '_'+this.user_id;
1957                        }
1958                        let kurse = localStorage.getItem(ls_key);
1959                        if(!kurse) {
1960                            kurse = localStorage.getItem('uni_wk_kurse_'+this.client); // item added to local storage before logging in
1961                        }
1962                        if(!kurse) {
1963                            kurse = localStorage.getItem('items'); // This can be removed in the future.
1964                        }
1965                        return kurse;
1966                    },
1967                },
1968                watch:{
1969                    $route (to, from){
1970                        this.route = this.$route;
1971                        let kurse = this.read_kurse_from_local_storage();
1972                        this.items = JSON.parse(kurse);
1973                        if(this.items !== null) {
1974                            this.count = this.items.length;
1975                        }
1976                    },
1977                },
1978                computed: {
1979                    items() {
1980                        let kurse = this.read_kurse_from_local_storage();
1981                        return JSON.parse(kurse);
1982                    },
1983                    count() {
1984                        let kurse = this.read_kurse_from_local_storage();
1985                        return JSON.parse(kurse)?.length;
1986                    }
1987                },
1988                mounted: function() {
1989                    this.route = this.$route;
1990                }
1991            });
1992        </script>
1992
1993                                
1993<script>
1994
1995            if(!!document.getElementById("vue_app")) {
1996
1997                Vue.prototype.$evaluation = new Vue({
1998                    data: function() {
1999                        return {
2000                            questions: [],
2001                            question_bundles: {
2002                                Normal: {},
2003                                Dozenten: {},
2004                                Themen: {}
2005                            },
2006                        }
2007                    },
2008                    methods: {
2009                        getPageNr: function($question) {
2010                            // let the_question = document.getElementById('uni_q' + $question.args.qnr);
2011                            // let the_section = the_question.parentElement;
2012                            let the_section = $question.$el.parentElement;
2013                            let pageNr = the_section.getAttribute('uni-with-page');
2014                            return pageNr;
2015                        },
2016                        addQuestion: function(question) {
2017                            var category = 'Normal';
2018                            var index = '0';
2019                            // if(question.args.hasOwnProperty('personenid')) {
2020                            //     personenid = question.args.personenid;
2021                            // }
2022                            let the_section = question.$el.parentElement;
2023
2024                            var doznr = the_section.getAttribute('doznr');
2025                            var dozent = the_section.getAttribute('dozent');
2026                            if(doznr === null) {
2027                                doznr = 'none';
2028                            } else { // Ist Dozentenfrage
2029                                category = 'Dozenten';
2030                                index = doznr;
2031                            }
2032                            if(dozent === null) {
2033                                dozent = '';
2034                            }
2035
2036                            var thema_id = the_section.getAttribute('thema_id');
2037                            var thema_bez = the_section.getAttribute('thema_bez');
2038                            if(thema_id === null) {
2039                                thema_id = 'none';
2040                            } else { // Ist Themen-Frage
2041                                category = 'Themen';
2042                                index = thema_id;
2043                            }
2044                            if(thema_bez === null) {
2045                                thema_bez = '';
2046                            }
2047
2048                            if(!this.question_bundles[category].hasOwnProperty(index)) {
2049                                this.question_bundles[category][index] = {
2050                                    doznr: doznr,
2051                                    dozent: dozent,
2052                                    thema_id: thema_id,
2053                                    thema_bez: thema_bez,
2054                                    questions: []
2055                                };
2056                            }
2057                            this.question_bundles[category][index].questions.push(question);
2058                            // console.log(this.question_bundles);
2059                        }
2060                    }
2061                });
2062
2063            }
2064        </script>
2064
2065                
2065<script>
2066
2067            let __uniHasUnsavedChanges = false;
2068
2069            window.addEventListener("beforeunload", (e) => {
2070                if (__uniHasUnsavedChanges) {
2071                    e.preventDefault();
2072                    e.returnValue = '';
2073                }
2074            });
2075
2076            Vue.prototype.$uniplus = new Vue({
2077                data: function() {
2078                    return {
2079                        post_id: '305724',
2080                        action: 'https://www.bildungsakademie.de/wp-content/plugins/uniplus-signup/inc/forms/userdata.php',
2081                        nonce: 'c8cb5de6ce',
2082
2083                    }
2084                },
2085                methods: {
2086                    apiRequest(action, formData, successHandler, errorHandler) {
2087
2088                        this.$http.post(action, formData,
2089                            { headers: {'X-WP-Nonce': '0b2209e170'} })
2090                            .then(async function(response) {
2091                                response.json().then(async json => {
2092                                    if(json.status === 'success') {
2093                                        successHandler(json);
2094                                    } else {
2095                                        errorHandler(json);
2096                                    }
2097                                }).catch(ex => errorHandler(ex));
2098                            }, function(reason) {
2099                                errorHandler(reason);
2100                            });
2101                    },
2102                    apiGetRequest(action, successHandler, errorHandler) {
2103                        this.$http.get(action,
2104                            { headers: {'X-WP-Nonce': '0b2209e170'} })
2105                            .then(async function(response) {
2106                                response.json().then(async json => {
2107                                    if(json.status === 'success') {
2108                                        successHandler(json);
2109                                    } else {
2110                                        errorHandler(json);
2111                                    }
2112                                });
2113                            }, function(reason) {
2114                                errorHandler(reason);
2115                            });
2116                    },
2117                    toast(status, title, message) {
2118                        toastr.options = {
2119                            "closeButton": true,
2120                            "debug": false,
2121                            "newestOnTop": true,
2122                            "progressBar": false,
2123                            "positionClass": "toast-bottom-right",
2124                            "preventDuplicates": false,
2125                            "onclick": null,
2126                            "showDuration": "300",
2127                            "hideDuration": "1000",
2128                            "timeOut": "7000",
2129                            "extendedTimeOut": "1000",
2130                            "showEasing": "swing",
2131                            "hideEasing": "linear",
2132                            "showMethod": "fadeIn",
2133                            "hideMethod": "fadeOut"
2134                        }
2135                        let msg = '<small><i>'+ moment(new Date()).format('DD.MM.YYYY HH:mm') +' Uhr</i></small></br>';
2136                        if(typeof message !== 'undefined') {
2137                            msg += message;
2138                        }
2139                        toastr[status](msg, title);
2140                    },
2141                    toastInfo : function(title, message) {
2142                        this.toast('info', title, message);
2143                    },
2144                    toastSuccess : function(title, message) {
2145                        this.toast('success', title, message);
2146                    },
2147                    toastError : function(title, message) {
2148                        this.toast('error', title, message);
2149                    },
2150                    uniDecimalToTime : function(val) {
2151                        let str = String(val);
2152                        if(str.includes('.')) {
2153                            let h = str.split('.')[0];
2154                            let m = str.split('.')[1];
2155                            if(h.length === 1) {
2156                                h = '0' + h;
2157                            }
2158                            if(m.length === 1) {
2159                                m = m + '0';
2160                            }
2161                            return `${h}:${m}`;
2162                        } else if(str.includes(',')) {
2163                            let h = str.split(',')[0];
2164                            let m = str.split(',')[1];
2165                            if(h.length === 1) {
2166                                h = '0' + h;
2167                            }
2168                            if(m.length === 1) {
2169                                m = m + '0';
2170                            }
2171                            return `${h}:${m}`;
2172                        } else {
2173                            let h = str;
2174                            if(h.length === 1) {
2175                                h = '0' + h;
2176                            }
2177                            return `${h}:00`;
2178                        }
2179                    },
2180                    loadUserData: function(handler) {
2181                        var formData = new FormData();
2182                        formData.append('get_user_data', 'get_user_data');
2183                        formData.append('post_id', this.post_id);
2184                        formData.append('nonce', this.nonce);
2185                        this.$http.post(this.action, formData).then(function(res) {
2186                            let json = JSON.parse(res.bodyText);
2187                            handler(json);
2188                        }, function(res) {
2189                            console.log('err');
2190                            // this.content = 'error';
2191                        });
2192                    },
2193                    downloadFile: function(guid, fileName, type, successCallback, errorCallback, controller = 'file') {
2194                        let action = 'https://www.bildungsakademie.de/wp-content/plugins/uniplus-download-center/inc/forms/UniVueDownloadCenterSingleItem.php';
2195                        var formData = new FormData();
2196                                                formData.append('post_id', 812235);
2197                        formData.append('nonce', '3925e101ea');
2198                        formData.append('guid', guid);
2199                        formData.append('fileName', fileName);
2200                        formData.append('type', type);
2201                        formData.append('controller', controller);
2202
2203                        this.$http.post(action, formData).then(function(res) {
2204                            if(res == null || res.body == '') {
2205                                if(typeof errorCallback !== 'undefined') {
2206                                    errorCallback(res);
2207                                }
2208                            } else {
2209                                let binaryString = window.atob(res.data);
2210                                let binaryLen = binaryString.length;
2211                                let bytes = new Uint8Array(binaryLen);
2212                                for (let i = 0; i < binaryLen; i++) {
2213                                    let ascii = binaryString.charCodeAt(i);
2214                                    bytes[i] = ascii;
2215                                }
2216                                const blob = new Blob([bytes], {type: type});
2217                                const link = document.createElement('a');
2218                                link.href = URL.createObjectURL(blob);
2219                                link.download = fileName;
2220                                link.click();
2221                                URL.revokeObjectURL(link.href);
2222                                if(typeof successCallback !== 'undefined') {
2223                                    successCallback(res);
2224                                }
2225                            }
2226                        }).catch(console.error);
2227                    },
2228                    initUnsavedChanges(formIdWrapper) {
2229                        setTimeout(function() {
2230                            const div = document.getElementById(formIdWrapper);
2231                            if(div !== null) {
2232                                const self = this;
2233                                div.querySelectorAll(`input, select, textarea`).forEach(el => {
2234                                    el.addEventListener("input", () => {
2235                                        __uniHasUnsavedChanges = true;
2236                                    });
2237
2238                                    // für select / checkbox / radio zuverlässiger
2239                                    el.addEventListener("change", () => {
2240                                        __uniHasUnsavedChanges = true;
2241                                    });
2242                                });
2243                            }
2244                        }, 2000);
2245
2246                    },
2247                    resetUnsavedChanges() {
2248                        __uniHasUnsavedChanges = false;
2249                    },
2250                    clearUnsavedChanges() {
2251                        this.resetUnsavedChanges();
2252                    }
2253                }
2254            });
2255        </script>
2255
2256                
2256<script>
2257            Vue.prototype.$openStreetMap = new Vue({
2258                data: function() {
2259                    return {
2260                        done: false,
2261                    }
2262                },
2263                methods: {
2264                    addBorlabsEventListener() {
2265
2266                        window.addEventListener('borlabs-cookie-after-init', () => {
2267
2268                            if(this.checkConsent()) {
2269                                this.$eventBus.$on('ready_for_leaflet', function() {
2270                                    this.createMapIfConsent();
2271                                }.bind(this));
2272                            } else {
2273                                window.addEventListener('borlabs-cookie-consent-saved', () => {
2274                                    this.$eventBus.$on('ready_for_leaflet', function() {
2275                                        this.createMapIfConsent();
2276                                    }.bind(this));
2277                                });
2278                            }
2279                            return false;
2280                        });
2281                    },
2282                    createMapIfConsent() {
2283                        if(!window.BorlabsCookie) {
2284                            console.log('h')
2285                            // this.$eventBus.$emit('load_osm_leaflet');
2286                            return true;
2287                        }
2288                        if(this.checkConsent()) {
2289                            this.unblockOpenStreetMap();
2290                            if(!this.done) {
2291                                this.$eventBus.$emit('load_osm_leaflet');
2292                                this.done = true;
2293                            }
2294                            return true;
2295                        }
2296                        return false;
2297                    },
2298                    setConsent() {
2299                        if(!window.BorlabsCookie) {
2300                            this.$eventBus.$emit('load_osm_leaflet');
2301                            return true;
2302                        }
2303                        window.BorlabsCookie.Consents.addConsent('open-street-map','external-media');
2304                        if(this.checkConsent()) {
2305                            this.unblockOpenStreetMap();
2306                            if(!this.done) {
2307                                this.$eventBus.$emit('load_osm_leaflet');
2308                                this.done = true;
2309                            }
2310                            return true;
2311                        }
2312                    },
2313                    checkConsent() {
2314
2315                        return window.BorlabsCookie.Consents.hasConsent('open-street-map','external-media');
2316                    },
2317                    unblockOpenStreetMap() {
2318                        window.BorlabsCookie.Unblock.unblockScriptBlockerId('open-street-map-leaflet-map');
2319                        window.BorlabsCookie.Unblock.unblockStyleBlockerId('open-street-map-leaflet-map');
2320                    },
2321                }
2322            });
2323        </script>
2323
2324                
2324<script>
2325            Vue.prototype.$form = new Vue({
2326                data: function() {
2327                    return {
2328                        date_names: ["wfvar_geburtstag","wfvar_geburtsdatum","wfvar_gebdat","wfvar_gebdatum","hwkgop_geburtsname"],
2329                        types: {
2330                            file: {
2331                                /** @var {int} */
2332                                maxFileSizeDefault: 5000000,
2333                                /** @var {object} */
2334                                acceptedMediaTypesDefault: JSON.parse('{"application\/pdf":{"type":"application","subtype":"pdf","file_extensions":[".pdf"]},"image\/jpeg":{"type":"image","subtype":"jpeg","file_extensions":[".jpeg",".jpg"]},"image\/png":{"type":"image","subtype":"pdf","file_extensions":[".png"]}}'),
2335                            },
2336                        },
2337                    }
2338                },
2339                computed: {
2340                    /**
2341                     *
2342                     *
2343                     * @return {object}
2344                     */
2345                    acceptedMediaTypesDefaultMap() {
2346                        let acceptedMediaTypesDefaultMap = {};
2347
2348                        if(this.types.file.acceptedMediaTypesDefault) {
2349                            Object.entries(this.types.file.acceptedMediaTypesDefault).forEach(([key, val]) => {
2350                                acceptedMediaTypesDefaultMap[key] = val.file_extensions;
2351                            });
2352                        }
2353
2354                        return acceptedMediaTypesDefaultMap;
2355                    }
2356                },
2357                methods: {
2358                    ensureInput: function(inputs, logInvalidFields = false) {
2359                        let success = true;
2360
2361                        for(let inp in inputs) {
2362                            let input = inputs[inp];
2363                            input.invalid = false;
2364
2365                            if(input.type === 'hidden') { continue; }
2366                            if(input.readonly) { continue; }
2367                            if(input.type === 'file' && !input.hidden) {
2368                                /** @var {File} */
2369                                let inputFile = this.getFile(input);
2370
2371                                // test if file not exists but required
2372                                if(!inputFile) {
2373                                    if(input.required) {
2374                                        input.invalid = true;
2375                                        success = false;
2376                                    }
2377
2378                                    continue;
2379                                }
2380
2381                                // test if file-size too large
2382                                if(inputFile.size > this.types.file.maxFileSizeDefault) {
2383                                    input.invalid = true;
2384                                    input.invalidationMessage = `Die maximal erlaubte Dateigröße beträgt: 5MB`
2385                                    success = false;
2386
2387                                    continue;
2388                                }
2389
2390                                let acceptedMediaTypes = {};
2391
2392                                if(input.accept?.length > 1) {
2393                                    let accept = [];
2394
2395                                    if(typeof input.accept === 'string') {
2396                                        accept = input.accept.split(',');
2397                                    }
2398                                    else if(input.accept instanceof Array) {
2399                                        accept = input.accept;
2400                                    }
2401
2402                                    accept = accept.map((item) => item.trim());
2403
2404                                    acceptedMediaTypes = this.parseFileAccept(accept);
2405                                }
2406                                else {
2407                                    acceptedMediaTypes = this.acceptedMediaTypesDefaultMap;
2408                                }
2409
2410                                //console.debug(Object.keys(acceptedMediaTypes));
2411                                //console.debug(Object.values(acceptedMediaTypes).flat());
2412
2413                                // get input-file-extension
2414                                const parts = inputFile.name.split('.');
2415                                //console.debug(parts);
2416                                const inputFileExt = ('.' + parts[parts.length - 1]).trim().toLowerCase();
2417                                //console.debug(inputFileExt);
2418
2419                                // test if file-media-type not allowed (mime-type)
2420                                const acceptedMimeTypes = Object.keys(acceptedMediaTypes);
2421                                if(inputFile.type && inputFile.type !== '' && !acceptedMimeTypes.includes(inputFile.type)) {
2422                                    console.error(`Error: MIME-Type "${inputFile.type}" not accepted.`);
2423                                    input.invalid = true;
2424                                    success = false;
2425
2426                                    continue;
2427                                }
2428
2429                                // test if file-media-type not allowed (file-extension)
2430                                const acceptedFileExtensions = Object.values(acceptedMediaTypes).flat();
2431                                if(inputFileExt && !acceptedFileExtensions.includes(inputFileExt)) {
2432                                    console.error(`Error: File-Extensions "${inputFileExt}" not accepted.`);
2433                                    input.invalid = true;
2434                                    success = false;
2435
2436                                    continue;
2437                                }
2438
2439                                //if((input.required && !length) || (length && (typeof input.accept === 'string') && !input.accept.includes(fileInputs[0].files[0].type))) {
2440                                //    input.invalid = true;
2441                                //    success = false;
2442                                //}
2443                            }
2444                            else if((input.type === 'file_storage') && input.required && input.value === '' && !input.hidden) {
2445                                input.invalid = true;
2446                                success = false;
2447                            }
2448                            else if((input.type === 'email') && !(input.value === null || input.value === '' || (/^[A-Za-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(input.value)))) {
2449                                input.invalid = true;
2450                                success = false;
2451                            }
2452                            else if(input.type === 'date') {
2453                                // console.log(input.min);
2454                                // console.log(moment(input.value, 'YYYY-MM-DD'));
2455                                // console.log(moment(input.min, 'YYYY-MM-DD'));
2456                                // console.log(moment(input.value, 'YYYY-MM-DD').isBefore(moment(input.min, 'YYYY-MM-DD')));
2457                                // console.log(input.max);
2458                                // console.log(moment(input.value, 'YYYY-MM-DD'));
2459                                // console.log(moment(input.max, 'YYYY-MM-DD'));
2460                                // console.log(moment(input.value, 'YYYY-MM-DD').isBefore(moment(input.max, 'YYYY-MM-DD')));
2461                                if(((this.date_names.includes(input.name)) && (new Date(input.value) >= new Date())) || // e.g. birth date cant be in the future
2462                                    (input.min && moment(input.value, 'YYYY-MM-DD').isBefore(moment(input.min, 'YYYY-MM-DD'))) || 
2463                                    (input.max && moment(input.value, 'YYYY-MM-DD').isAfter(moment(input.max, 'YYYY-MM-DD')))) { 
2464                                        input.invalid = true;
2465                                        success = false;
2466                                }
2467                                if(new Date(input.value) < new Date('1800-01-01')) {
2468                                    input.invalid = true;
2469                                    success = false;
2470                                }
2471                                if(input.required && !input.hidden && !input.value) {
2472                                    input.invalid = true;
2473                                    success = false;
2474                                }
2475                                // commented out because of other date-formats that are longer than 10 chars and often not user input (HTML-Element )
2476                                //if(input.value.length > 10) {
2477                                //    input.invalid = true;
2478                                //    success = false;
2479                                //}
2480                            }
2481                            else if(input.type === 'termin') {
2482                                input.ft_invalid = false;
2483                                input.tt_invalid = false;
2484                                if(((this.date_names.includes(input.name)) && (new Date(input.value) >= new Date())) || // e.g. birth date cant be in the future
2485                                    (input.min && moment(input.value, 'YYYY-MM-DD').isBefore(moment(input.min, 'YYYY-MM-DD'))) || 
2486                                    (input.max && moment(input.value, 'YYYY-MM-DD').isAfter(moment(input.max, 'YYYY-MM-DD')))) { 
2487                                        input.invalid = true;
2488                                        success = false;
2489                                }
2490                                if(new Date(input.value) < new Date('1800-01-01')) {
2491                                    input.invalid = true;
2492                                    success = false;
2493                                }
2494                                if(input.required && !input.hidden && !input.value) {
2495                                    input.invalid = true;
2496                                    success = false;
2497                                }
2498                                if(input.ft_required && !input.hidden && !input.ft) {
2499                                    input.ft_invalid = true;
2500                                    success = false;
2501                                }
2502                                if(input.tt_required && !input.hidden && !input.tt) {
2503                                    input.tt_invalid = true;
2504                                    success = false;
2505                                }
2506                            }
2507                            else if(input.type === 'number') {
2508                                if(
2509                                    (
2510                                        (input.max && (Number(input.value) > Number(input.max)))
2511                                        ||
2512                                        (input.min && (Number(input.value) < Number(input.min)))
2513                                        ||
2514                                        input.value === ''
2515                                    ) &&
2516                                    (input.value !== '' || input.required)) {
2517                                    input.invalid = true;
2518                                    success = false;
2519                                }
2520                                // check number format/pattern, if set
2521                                if(input.format && input.pattern) {
2522                                    let regex = new RegExp(input.pattern);
2523                                    if(!regex.test(input.value)) {
2524                                        input.invalid = true;
2525                                        success = false;
2526                                    }
2527                                }
2528                            }
2529                            else if((input.type === 'numeric') && !(input.value === null || /^\d*$/.test(input.value))) { // e.g. for telephone numbers
2530                                input.invalid = true;
2531                                success = false;
2532                            }
2533                            else if((input.type === 'plz') && !(input.value === null || input.value === '' || /^[0-9A-Z -]{4,10}$/.test(input.value))) {
2534                                input.invalid = true;
2535                                success = false;
2536                            }
2537                            else if((input.type === 'phone_number_apo_berlin') && !(input.value === null || input.value === '' || /^\+[1-9][0-9]{0,3} [1-9][0-9]* [1-9][0-9]*(\-[0-9]+)?$/.test(input.value))) {
2538                                input.invalid = true;
2539                                success = false;
2540                            }
2541                            else if((input.type === 'iban') && !(input.value === null || input.value === '' || uni_helper_js__validate_iban(input.value))) {
2542                                input.invalid = true;
2543                                success = false;
2544                            }
2545                            else if(input.required && (!input.hidden)) {
2546                                if(input.type === 'checkbox') {
2547                                    let truevalue = 'J';
2548                                    if(input.truevalue) {
2549                                        truevalue = input.truevalue;
2550                                    }
2551                                    if(input.value !== truevalue) {
2552                                        input.invalid = true;
2553                                        success = false;
2554                                    }
2555                                }
2556                                else if(input.type === 'selectable2' && ((!input.value) || (input.value === -1) || (input.value === '-1'))) {
2557                                    let go_on = false;
2558                                    for(let field in input.option_fields) {
2559                                        if(input.option_fields[field] === 'J') {
2560                                            go_on = true;
2561                                            input.invalid = false;
2562                                            break;
2563                                        }
2564                                    }
2565                                    if(!go_on) {
2566                                        input.invalid = true;
2567                                        success = false;
2568                                    }
2569                                }
2570                                else if((input.type === 'select' || input.type === 'select2') && (input.value === -1 || input.value === '-1' || input.value === '__null__' || input.value === null || input.value.length === 0 )) {
2571                                    input.invalid = true;
2572                                    success = false;
2573                                }
2574                                else if((input.type === 'checkboxgroup') && (!input.value || input.value.length === 0 )) {
2575                                    input.invalid = true;
2576                                    success = false;
2577                                }
2578                                else if((input.type === 'pruefberufe')) {
2579                                    if(Object.keys(input.option_fields).length === 0) {
2580                                        input.invalid = true;
2581                                        success = false;
2582                                    }
2583                                }
2584                                else if((input.type === 'berufe')) {
2585                                    if(Object.keys(input.option_fields).length === 0) {
2586                                        input.invalid = true;
2587                                        success = false;
2588                                    }
2589                                }
2590                                else if((input.type === 'beruf_fachrichtung')) {
2591                                    if(Object.keys(input.option_fields).length === 0) {
2592                                        input.invalid = true;
2593                     
2593                   success = false;
2594                                    }
2595                                }
2596                                else if((input.type === 'beruf_fachrichtung_vue_lvt')) {
2597                                    if(Object.keys(input.option_fields).length === 0) {
2598                                        input.invalid = true;
2599                                        success = false;
2600                                    } else {
2601                                        if(input.option_fields.l_aberuf === '-1' || input.option_fields.l_fachr === '-1') {
2602                                            input.invalid = true;
2603                                            success = false;
2604                                        }
2605                                    }
2606                                }
2607                                else if((!input.value) && (input.value !== 0)) {
2608                                    input.invalid = true;
2609                                    success = false;
2610                                }
2611                            }
2612                            if((input.type === 'text' || input.type === 'textarea' || input.type === 'wp_editor' ) && input.max) {
2613                                if(input.value) {
2614                                    if(input.value.length > input.max) {
2615                                        input.invalid = true;
2616                                        success = false;
2617                                    }
2618                                }
2619                            }
2620                            // if(input.minlen && Number(input.minlen) > 0) {
2621                            //     valuelen = String(input.value).length;
2622                            //     if(valuelen < Number(input.minlen)) {
2623                            //         input.invalid = true;
2624                            //         success = false;
2625                            //     }
2626                            // } else if(input.maxlen && Number(input.maxlen) > 0) {
2627                            //     valuelen = String(input.value).length;
2628                            //     if(valuelen > Number(input.maxlen)) {
2629                            //         input.invalid = true;
2630                            //         success = false;
2631                            //     }
2632                            // }
2633
2634                            //if(input.invalid && logInvalidFields && //) {
2635                            //    console.log(input);
2636                            //}
2637                        }
2638
2639                        let rtnObj = {};
2640                        rtnObj.success = success;
2641                        rtnObj.inputs = inputs;
2642
2643                        //for(let inp in inputs) {
2644                        //    let input = inputs[inp];
2645                        //     if(input.invalid === true) {
2646                        //         console.log(input);
2647                        //     }
2648                        //}
2649
2650                        return rtnObj;
2651                    },
2652                    postData: function(action, formData) {
2653                        let promise = new Promise(function(res) {
2654                            this.$http.post(action,
2655                                formData)
2656                                .then( function(response) {
2657                                    var data = response.data;
2658                                    res({ success:true, data: data });
2659                                })
2660                                .catch( function(e) {
2661                                    res({ success:false, data: e });
2662                                });
2663                        }.bind(this));
2664                        return promise;
2665                    },
2666                    /**
2667                     * Do not use this method.
2668                     * Use $this.uniplus.apiRequest instead.
2669                     *
2670                     * @param successHandler
2671                     * @param errorHandler
2672                     * @param action
2673                     * @param data
2674                     */
2675                    wpApiRequest(successHandler, errorHandler, action, data = {}) {
2676                        let formData = new FormData();
2677                        if(data instanceof FormData) {
2678                            formData = data;
2679                        } else {
2680                            formData = this.$form.createFormData(this.inputs, this.post_id, this.nonce);
2681                            if(data) {
2682                                for(const formDataKey of Object.keys(data)) {
2683                                    formData.append(formDataKey, data[formDataKey]);
2684                                }
2685                            }
2686                        }
2687                        this.$http.post(action, formData,
2688                            { headers: {'X-WP-Nonce': '0b2209e170'} })
2689                            .then(async function(response) {
2690                                response.json().then(async json => {
2691                                    if(json.status === 'success') {
2692                                        successHandler(json);
2693                                    } else {
2694                                        errorHandler(json);
2695                                    }
2696                                });
2697                            }.bind(this), function(reason) {
2698                                errorHandler(reason);
2699                            }.bind(this));
2700                    },
2701                    getInputClass: function(input) {
2702                        if(input.hidden || input.type === 'hidden') { return ''; }
2703                        if(input.type === 'hr') { return 'col-xs-12 col-12'; }
2704                        return input.width ?
2705                            'col-xs-12 col-12 col-sm-' + 
2706                            input.width + 
2707                            ' form-group has-feedback' + 
2708                            (input.inputclass ? 
2709                            ' ' + 
2710                            input.inputclass 
2711                            : '') 
2712                            : '';
2713                    },
2714                    createFormTypeDesc: function(inputs) {
2715                        var types = {};
2716                        for (var input_key in inputs) {
2717                            let input = inputs[input_key];
2718                            types[input_key] = {
2719                                type: input.type
2720                            };
2721                        }
2722                        return types;
2723                    },
2724                    formatDate(date, format = 'DD.MM.YYYY') {
2725                        var rtnDate = date;
2726                        var momentDate = moment(new Date(date));
2727                        if (momentDate.isValid()) {
2728                            rtnDate = momentDate.format(format);
2729                        }
2730                        return rtnDate;
2731                    },
2732                    createFormData: function(inputs, post_id, nonce, fix_dates, save_empty_fields = false) {
2733                        /* Never set save_empty_fields = true when the formData are to be sent to the Middleware!
2734                         * This is only meant for saving the formData, e.g. in a custom post type.
2735                         */
2736                        var formData = new FormData();
2737                        post_id = (typeof post_id !== 'undefined') ? post_id : false;
2738                        nonce = (typeof nonce !== 'undefined') ? nonce : false;
2739                        fix_dates = (typeof fix_dates !== 'undefined') ? fix_dates : false;
2740                        if(post_id) {
2741                            formData.append('post_id', post_id);
2742                        }
2743                        if(nonce) {
2744                            formData.append('nonce', nonce);
2745                        }
2746
2747                        if(!inputs) { return formData; }
2748
2749                        for (var input_key in inputs) {
2750                            let input = inputs[input_key];
2751                            switch(input.type) {
2752                                case 'headline':
2753                                case 'headline2':
2754                                case 'headline3':
2755                                case 'headline4':
2756                                case 'label':
2757                                case 'small':
2758                                case 'link':
2759                                case 'clearfix':
2760                                case 'clear':
2761                                case 'callout':
2762                                case 'offset':
2763                                case 'hr':
2764                                case 'paragraph':
2765                                    continue;
2766                                case 'file':
2767                                    /** @var {File} */
2768                                    let inputFile = this.getFile(input);
2769
2770                                    if(inputFile) {
2771                                        let inputFileData = {
2772                                            name: inputFile.name,
2773                                            size: inputFile.size,
2774                                            type: inputFile.type,
2775                                        }
2776                                        formData.append(input.name, inputFile);
2777                                        formData.append(input.name, JSON.stringify(inputFileData));
2778                                    }
2779                                    break;
2780                                case 'file_storage':
2781                                    if(input.value) {
2782                                        formData.append(input.name, input.value);
2783                                    }
2784                                    break;
2785                                case 'select':
2786                                    if(input.name === 'ausbilder_berufauswahl') {
2787                                        formData.append(input.name, input.value);
2788                                    } else if(input.name === 'averh') {
2789                                        formData.append(input.name, input.value);
2790                                    } else if(input.name === 'l_mitlz') {
2791                                        formData.append(input.name, input.value);
2792                                    } else if(input.name === 'l_lehrzver') {
2793                                        formData.append(input.name, input.value);
2794                                    } else if(typeof input.value !== 'undefined' && input.value && input.value !== '-1' && input.value !== -1 && input.value !== '__null__') {
2795                                        formData.append(input.name, input.value);
2796                                    }
2797                                    break;
2798                                case 'selectable2':
2799                                case 'beruf_fachrichtung':
2800                                    var option_fields = input.option_fields;
2801                                    for(let field in option_fields) {
2802                                        formData.append(field, option_fields[field]);
2803                                    }
2804                                    break;
2805                                case 'beruf_fachrichtung_vue_lvt':
2806                                    var option_fields = input.option_fields;
2807                                    for(let field in option_fields) {
2808                                        formData.append(field, option_fields[field]);
2809                                    }
2810                                    break;
2811                                case 'pruefberufe':
2812                                    var option_fields = input.option_fields;
2813                                    for(let field in option_fields) {
2814                                        formData.append(field, option_fields[field]);
2815                                    }
2816                                    break;
2817                                case 'berufe':
2818                                    var option_fields = input.option_fields;
2819                                    for(let field in option_fields) {
2820                                        formData.append(field, option_fields[field]);
2821                                    }
2822                                    break;
2823                                case 'checkbox':
2824                                    if(input.checked) {
2825                                        formData.append(input.name, input.checked);
2826                                    } else {
2827                                        formData.append(input.name, input.value);
2828                                    }
2829                                    break;
2830                                case 'checkboxgroup':
2831                                    if(typeof input.value === 'object' && input.value && input.value.length > 0 ) {
2832                                        formData.append(input.name, input.value);
2833                                    }
2834                                    break;
2835                                case 'date':
2836                                    if(fix_dates) {
2837                                        if(typeof input.value !== 'undefined' && input.value && input.value !== '-1' && input.value !== -1) {
2838                                            // if(input.format)
2839                                            formData.append(input.name, input.value);
2840                                        }
2841                                    } else if(input.value !== null) {
2842                                        formData.append(input.name, input.value);
2843                                    }
2844                                    break;
2845                                case 'number':
2846                                    if(typeof input.value !== 'undefined' && input.value !== '' && input.value !== null) {
2847                                        if(input.format && input.pattern) { 
2848                                            let convValue = input.value.replace(/\./, ',');
2849                                            formData.append(input.name, convValue);
2850                                        } else {
2851                                            formData.append(input.name, input.value);
2852                                        }
2853                                    }
2854                                    break;
2855                                case 'seminare-gaeste':
2856                                    let guests = [];
2857                                    for(const guest of input.value) {
2858                                        let anotherGuest = {};
2859                                        for(const inputKey of Object.keys(guest)) {
2860                                            const input = guest[inputKey];
2861                                            anotherGuest[input.name] = input.value;
2862                                        }
2863                                        guests.push(anotherGuest);
2864                                    }
2865                                    formData.append(input.name, JSON.stringify(guests));
2866                                    break;
2867                                case 'hidden':
2868                                    if(input.name === 'p_persnr' && input.value == 0) {
2869                                        formData.append(input.name, input.value);
2870                                    } else if(typeof input.value !== 'undefined' && input.value && input.value !== '-1' && input.value !== -1) {
2871                                        formData.append(input.name, input.value);
2872                                    }
2873                                    break;
2874                                default:
2875                                    if(typeof input.value !== 'undefined' && input.value !== null) {
2876                                        if((input.value !== '' && input.value !== '-1' && input.value !== -1) || save_empty_fields) {
2877                                            if((input.value.constructor === Object || input.value.constructor === Ar
2877ray)) {
2878                                                formData.append(input.name, JSON.stringify(input.value));
2879                                            } else {
2880                                                formData.append(input.name, input.value);
2881                                            }
2882                                        }
2883                                    }
2884                                    break;
2885                            }
2886                        }
2887                        return formData;
2888                    },
2889
2890                    // region Form-Helper--Input-Getter
2891
2892                    /**
2893                     * @param {object} input
2894                     *
2895                     * @returns {FileList|undefined}
2896                     */
2897                    getFiles(input) {
2898                        let inputElement;
2899                        let inputFiles;
2900
2901                        if(input.id) {
2902                            inputElement = document.getElementById(input.id);
2903                        }
2904                        else if(input.name) {
2905                            let inputElements = document.getElementsByName(input.name);
2906
2907                            if(inputElements && inputElements.length > 0) {
2908                                inputElement = inputElements[0];
2909                            }
2910                        }
2911
2912                        if(inputElement
2913                            && inputElement instanceof HTMLInputElement
2914                            && inputElement.files
2915                            && inputElement.files instanceof FileList
2916                            && inputElement.files.length > 0
2917                        ) {
2918                            inputFiles = inputElement.files;
2919                        }
2920
2921                        return inputFiles;
2922                    },
2923
2924                    /**
2925                     * @param {object} input
2926                     *
2927                     * @returns {File|undefined}
2928                     */
2929                    getFile(input) {
2930                        let inputFile;
2931
2932                        let inputFiles = this.getFiles(input);
2933
2934                        if(inputFiles
2935                            && inputFiles instanceof FileList
2936                            && inputFiles.length > 0
2937                        ) {
2938                            inputFile = inputFiles[0];
2939                        }
2940
2941                        return inputFile;
2942                    },
2943
2944                    // endregion Form-Helper--Input-Getter
2945
2946                    // region Form-Helper--Input-Setter
2947
2948                    setValue : function(input, value) {
2949                        if(input !== undefined) {
2950                            input.value = value;
2951                        }
2952                    },
2953                    setHidden : function(input, value) {
2954                        if(input !== undefined) {
2955                            input.hidden = value;
2956                        }
2957                    },
2958                    setRequired : function(input, value) {
2959                        if(input !== undefined) {
2960                            input.required = value;
2961                        }
2962                    },
2963                    setReadonly : function(input, value) {
2964                        if(input !== undefined) {
2965                            input.readonly = value;
2966                        }
2967                    },
2968                    setDisabled : function(input, value) {
2969                        if(input !== undefined) {
2970                            input.disabled = value;
2971                        }
2972                    },
2973                    setOptions : function(input, value) {
2974                        if(input !== undefined) {
2975                            input.options = value;
2976                        }
2977                    },
2978                    setWidth : function(input, value) {
2979                        if(input !== undefined) {
2980                            input.width = value;
2981                        }
2982                    },
2983                    setType : function(input, value) {
2984                        if(input !== undefined) {
2985                            input.type = value;
2986                        }
2987                    },
2988
2989                    // endregion Form-Helper--Input-Setter
2990
2991                    submitFileStorage : function(input) {
2992
2993                    },
2994                    reset : function(input) {
2995                        if(input !== undefined && 'initial_value' in input) {
2996                            input.value = input.initial_value;
2997                        }
2998                    },
2999                    /**
3000                     * parses/filters accept attribut of input type 'file' against defaults
3001                     *
3002                     * @param {array} accept
3003                     *
3004                     * @return {object}
3005                     */
3006                    parseFileAccept(accept) {
3007                        let parsedAccept = {};
3008
3009                        const regex = /^(image|application)\/\*$/;
3010
3011                        if(Object.keys(this.acceptedMediaTypesDefaultMap).length > 0) {
3012                            accept.forEach((acceptItem) => {
3013
3014                                let acceptItemTopLevel = false;
3015                                if(regex.test(acceptItem)) {
3016                                    acceptItemTopLevel = acceptItem.split('/')[0];
3017                                }
3018
3019                                Object.entries(this.acceptedMediaTypesDefaultMap).forEac
3019h(([k,v]) => {
3020                                    // check mime-type-top-level
3021                                    if(acceptItemTopLevel && k.startsWith(acceptItemTopLevel + '/')) {
3022                                        if(!Object.hasOwn(parsedAccept, k)) {
3023                                            parsedAccept[k] = v;
3024                                        }
3025                                    // check mime-type
3026                                    } else if(acceptItem === k) {
3027                                        if(!Object.hasOwn(parsedAccept, k)) {
3028                                            parsedAccept[acceptItem] = v;
3029                                        }
3030                                    // check file-extension
3031                                    } else if(v.includes(acceptItem)) {
3032                                        if(!Object.hasOwn(parsedAccept, k) || !(parsedAccept[k] instanceof Array)) {
3033                                            parsedAccept[k] = [];
3034                                        }
3035                                        parsedAccept[k].push(acceptItem);
3036                                    }
3037                                });
3038                            });
3039                        }
3040
3041                        return parsedAccept;
3042                    }
3043                },
3044            });
3045        </script>
3045
3046                
3046<script>
3047
3048        function scrollToTop() {
3049            window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
3050        }
3051
3052        function scrollToElement(elementId, offset = 0) {
3053            const element = document.getElementById(elementId);
3054            if(typeof element !== "undefined") {
3055
3056                const y = element.getBoundingClientRect().top + window.scrollY;
3057                //console.log(y + offset);
3058                window.scroll({
3059                    top: y + offset,
3060                    behavior: 'smooth'
3061                });
3062            }
3063        }
3064
3065        function openInNewTab(url) {
3066            window.open(url, '_blank').focus();
3067        }
3068
3069        if(!!document.getElementById("vue_app")) {
3070
3071            Vue.prototype.$window = window;
3072
3073            Vue.prototype.$eventBus = new Vue();
3074
3075            Vue.prototype.$storage = new Vue({
3076                data: function() {
3077                    return {
3078                        cachePrefix: 'unicache_',
3079                        defaultCacheTimeoutInSeconds: 60 * 60
3080                    }
3081                },
3082                methods: {
3083                    cacheKey(key) {
3084                        return `${this.cachePrefix}${key}`;
3085                    },
3086                    getCache(_key, fallbackHandler, _cacheTimeoutInSeconds = null) {
3087                        const timeout = _cacheTimeoutInSeconds ? _cacheTimeoutInSeconds : this.defaultCacheTimeoutInSeconds;
3088                        const key = this.cacheKey(_key);
3089                        const cData = localStorage.getItem(key);
3090                        if(cData !== null) {
3091                            const cDataObj = JSON.parse(cData);
3092                            const now = Math.round((new Date()).getTime() / 1000);
3093                            if(cDataObj.time + timeout > now) {
3094                                return cDataObj.data;
3095                            }
3096                        }
3097                        const data = fallbackHandler(key);
3098                        this.setCache(_key, data);
3099                        return data;
3100                    },
3101                    setCache(_key, data) {
3102                        const key = this.cacheKey(_key);
3103                        const now = Math.round((new Date()).getTime() / 1000);
3104                        localStorage.setItem(key, JSON.stringify({
3105                            time: now,
3106                            data: data
3107                        }));
3108                    },
3109                    unsetCache(_key) {
3110                        const key = this.cacheKey(_key);
3111                        localStorage.removeItem(key);
3112                    },
3113                    clear() {
3114                        localStorage.Clear();
3115                    }
3116                }
3117            });
3118
3119            Vue.prototype.getTheId = function(input) {
3120                if(!input.id) {
3121                    input.id = 'input-' + Math.floor(Math.random() * 999999);
3122                }
3123
3124                return input.id;
3125
3126            }
3127
3128            
3129            
3130            var router = new VueRouter({
3131                mode: 'history',
3132                routes: []
3133            });
3134            new Vue({
3135                router: router,
3136                el: '#vue_app',
3137                methods: {
3138                    createFormData: function(inputs) {
3139                        console.log('createFormData have been moved to $form.createFormData');
3140                        return this.$form.createFormData(inputs);
3141                    }
3142                }
3143            });
3144        }
3145        </script>
3145
3146                        
3147        </div> <!-- <div class="hidden-print"> -->
3148	</body>
3149</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.