FILTER-DEGREE-PROGRAMS (Sonstige Elemente )

src/app/shared/components/filter-degree-programs/templates

Demo Section

Each variation will be presented in the following section.

Default

Grundständige Studiengänge
Lehramtstudiengänge
Fachrichtung
Fakultät
test1
test2

Readme

filterDegreePrograms (component)

Description

This blueprint is based on the blueprint of Veams.


Requirements

  • Veams#5.0.0

Installation

Installation with Veams from local machine

veams install bp absolute/filepath/to/filter-degree-programs


Fields

filter-degree-programs.hbs

Settings

Parameter Type Default Description
settings.filterDegreeProgramsClasses String '' Modifier classes for component
settings.filterDegreeProgramsContextClass String 'default' Context class of component

Content

Parameter Type Description
content.filterDegreeProgramsField String Please add a description!

SASS

Variables

There are multiple variables which you can change:

Variable Value Description
$filter-degree-programs-my-custom-var 0px Please add a description!

Modifier Classes

There are modifier classes you can add to c-filter-degree-programs:

Modifier Description
is-modifier Please add a description!

Templates

filter-degree-programs.hbs

<div data-js-module="filter-degree-programs" class="c-filter-degree-programs{{#if settings.filterDegreeProgramsContextClass}}--{{settings.filterDegreeProgramsContextClass}}{{else}}--default{{/if}}{{#if settings.filterDegreeProgramsClasses}} {{settings.filterDegreeProgramsClasses}}{{/if}}"
 data-css="c-filter-degree-programs">
	<div class="filter-degree-programs__block">
		<div class="filter-degree-programs__area" data-js-item="js-filter-degree-programs-area">
			{{#each content.filterbox}}
			{{> filter-degree-programs__box}}
			{{/each}}
			<div class="filter-degree-programs__filtersearch">
				{{#each content.filtersearch}}
				{{> filter-degree-programs__filtersearch}}
				{{/each}}
			</div>
			<div class="filter-degree-programs__filter-item-area">
				<div class="filter-degree-programs__filter-item">test1</div>
				<div class="filter-degree-programs__filter-item">test2</div>
			</div>

		</div>

		<div class="filter-degree-programs__activeFilterArea is-hideFilter" data-js-item="js-filter-degree-programs-activeFilterArea"
		 aria-expanded="false">
			<div class="filter-degree-programs__activeFilterZone">
				<div class="filter-degree-programs__activeFilterZoneTextArea"><span class="filter-degree-programs__activeFilterZoneText">{{this.content.aktivFilterTitle}}</span></div>
				<div data-js-item="js-filter-degree-programs-activeFilterZone"></div>
				<div class="filter-degree-programs__emptyButton" data-js-item="js-filter-degree-programs-buttonPlaceholder"><button
					 class="filter-degree-programs__oneFilterButton" data-js-itemId="empty" data-js-zoneId="empty" data-js-item="js-filter-degree-programs-oneFilterButton">placeholder</button></div>
			</div>
			<div class="filter-degree-programs__filterDelete"><button class="filter-degree-programs__filterDeleteButton"
				 data-js-item="js-filter-degree-programs-filterDeleteButton">{{this.content.aktivFilterClose}}</button></div>
		</div>
	</div>
	<!--
	<div class="filter-degree-programs__results-info" data-js-item="filter-degree-programs__results-info">
		<strong class="filter-degree-programs__total-item-count">{{this.content.resultnumber}}</strong>
		<p class="filter-degree-programs__results-text"><strong>{{this.content.resulttext}}</strong><span class="filter-degree-programs__resultfiltertext"
			 data-js-item="js-filter-degree-programs-resultFilterText"> {{this.content.resultfiltertext}}</span></p>
	</div>
	-->
</div>

filter-degree-programs__box.hbs

<div class="filter-degree-programs__filterbox">
	{{#if this.content.filtertitle}}<span class="filter-degree-programs__title">{{this.content.filtertitle}}</span>{{/if}}
	<div class="filter-degree-programs__zone is-hideFilter" data-js-id="{{this.settings.filterid}}" data-js-filtertyp="{{this.settings.filtertyp}}"
	 {{#if this.settings.filterlng}} data-js-lng="{{this.settings.filterlng}}" {{/if}} data-js-item="js-filter-degree-programs-zone">
		<button class="filter-degree-programs__zone-title" data-js-item="js-filter-degree-programs-select" aria-haspopup="true"
		 aria-expanded="false">
			<span class="filter-degree-programs__zone-title-text">{{this.content.filterselecttext}}</span>
		</button>
		<div class="filter-degree-programs__zonecontent" {{#if this.content.filterdropdownrole}} role="{{this.content.filterdropdownrole}}"
		 {{/if}}>

			{{#each this.content.filterdropdown}}
			{{#if @first}}<div class="filter-degree-programs__zonecontent-scroll" data-js-item="js-filter-degree-programs-zonecontent-scroll">{{/if}}
				{{#if @last}}</div>{{/if}}
			{{> filter-degree-programs__select}}
			{{/each}}

		</div>
	</div>
</div>

filter-degree-programs__select.hbs

{{#if this.content.text}}
<div class="filter-degree-programs__text">
	{{this.content.text}}
</div>
{{/if}}
{{#if this.content.errortext}}
<div class="filter-degree-programs__errortext is-hideFilter" data-js-item="js-filter-degree-programs-errortext">
	{{this.content.errortext.content.text}}
</div>
{{/if}}
{{#if this.content.fieldsets}}
<div class="filter-degree-programs__formfields">
	{{#each this.content.fieldsets}}
	{{> form__fieldset}}
	{{/each}}
</div>
{{/if}}
{{#if this.content.submitbutton}}
<div class="filter-degree-programs__buttonarea">
	<button class="filter-degree-programs__submitbutton" {{#if this.content.submitbutton.settings.buttonid}} data-js-id="{{this.content.submitbutton.settings.buttonid}}"
	 {{/if}} data-js-item="js-filter-degree-programs-submitButton">
		{{this.content.submitbutton.content.buttontext}}
	</button>
</div>
{{/if}}
{{#if this.content.filterbutton}}
<div class="filter-degree-programs__filterbuttonarea">
	<button class="filter-degree-programs__filterbutton" {{#if this.content.filterbutton.settings.buttonid}} data-js-id="{{this.content.filterbutton.settings.buttonid}}"
	 {{/if}} {{#if this.content.filterbutton.settings.buttonjsinfo}} data-js-info="{{this.content.filterbutton.settings.buttonjsinfo}}"
	 {{/if}} {{#if this.content.filterbutton.settings.buttonjstype}} data-js-type="{{this.content.filterbutton.settings.buttonjstype}}"
	 {{/if}} data-js-item="js-filter-degree-programs-filterButton">
		{{this.content.filterbutton.content.buttontext}}
	</button>
</div>
{{/if}}

filter-degree-programs__filtersearch.hbs

{{#if this.content.fieldsets}}
<div class="filter-degree-programs__searchfilter-formfields">
	{{#each this.content.fieldsets}}
	{{> form__fieldset}}
	{{/each}}
</div>
{{/if}}

Data File

filter-degree-programs.hjson

{
	"variations": {
		"default": {
			"docs": {
				"variationName": "Default"
			},
			"settings": {
				"filterDegreeProgramsContextClass": "default",
				"filterDegreeProgramsClasses": ""
			},
			"content": {
				"filterbox": [
					{
						"settings": {
							"filterid": "fl_1",
							"filtertyp": "onecheckbox"
						},
						"content": {
							"filtertitle": "Grundständige Studiengänge",
							"filterselecttext": "Studiengang wählen",
							"filterdropdownrole": "Filterbereich für grundständige Studiengangwahl",
							"filterdropdown": [
								{
									"content": {
										"fieldsets": [
											{
												"settings": {
													"fieldsetClasses": "is-small",
													"legendClasses": "is-col-mobile-p-12"
												},
												"content": {
													"rows": [
														{
															"settings": {
																"rowClasses": "filter-degree-programs__checkboxarea"
															},
															"content": {
																"cols": [
																	{
																		"settings": {
																			"colClasses": "",
																			"typeOf": "checkbox",
																			"required": false,
																			"inputClasses": "is-checkboxes"
																		},
																		"content": {
																			"checkboxes": [
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_1_all",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "checked",
																								"attrValue": "checked"
																							},
																							{
																								"attrKey": "value",
																								"attrValue": "1_all"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Alle auswählen"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_1_01",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "1_01"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Bachelor"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_1_02",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "1_02"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Master"
																					}
																				}
																			]
																		}
																	}
																]
															}
														}
													]
												}
											}
										]
									}
								},
								{
									"content": {
										"submitbutton": {
											"settings": {
												"buttonid": "fl_b_1"
											},
											"content": {
												"buttontext": "Anwenden"
											}
										}
									}
								}
							]
						}
					},
					{
						"settings": {
							"filterid": "fl_2",
							"filtertyp": "onecheckbox"
						},
						"content": {
							"filtertitle": "Lehramtstudiengänge",
							"filterselecttext": "Studiengang wählen",
							"filterdropdownrole": "Filterbereich für Lehramtstudiengang",
							"filterdropdown": [
								{
									"content": {
										"fieldsets": [
											{
												"settings": {
													"fieldsetClasses": "is-small",
													"legendClasses": "is-col-mobile-p-12"
												},
												"content": {
													"rows": [
														{
															"settings": {
																"rowClasses": "filter-degree-programs__checkboxarea"
															},
															"content": {
																"cols": [
																	{
																		"settings": {
																			"colClasses": "",
																			"typeOf": "checkbox",
																			"required": false,
																			"inputClasses": "is-checkboxes"
																		},
																		"content": {
																			"checkboxes": [
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_all",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "checked",
																								"attrValue": "checked"
																							},
																							{
																								"attrKey": "value",
																								"attrValue": "2_all"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Alle auswählen"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_01",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "2_01"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Lehramt Grundschule"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_02",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "2_02"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Lehramt Mittelschule"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_03",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "2_03"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Lehramt Realschule"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_04",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "2_04"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Lehramt Gymnasium"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "is-empty",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_05",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "2_05"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Lehramt Sonderpädagogoik"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_2_06",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "2_06"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Lehramt an Beruflichen Schulen"
																					}
																				}
																			]
																		}
																	}
																]
															}
														}
													]
												}
											}
										]
									}
								},
								{
									"content": {
										"submitbutton": {
											"settings": {
												"buttonid": "fl_b_2"
											},
											"content": {
												"buttontext": "Anwenden"
											}
										}
									}
								}
							]
						}
					},
					{
						"settings": {
							"filterid": "fl_3",
							"filtertyp": "onecheckbox"
						},
						"content": {
							"filtertitle": "Fachrichtung",
							"filterselecttext": "Fachrichtung wählen",
							"filterdropdownrole": "Filterbereich für Fachrichtung",
							"filterdropdown": [
								{
									"content": {
										"fieldsets": [
											{
												"settings": {
													"fieldsetClasses": "is-small",
													"legendClasses": "is-col-mobile-p-12"
												},
												"content": {
													"rows": [
														{
															"settings": {
																"rowClasses": "filter-degree-programs__checkboxarea"
															},
															"content": {
																"cols": [
																	{
																		"settings": {
																			"colClasses": "",
																			"typeOf": "checkbox",
																			"required": false,
																			"inputClasses": "is-checkboxes"
																		},
																		"content": {
																			"checkboxes": [
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_3_all",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "checked",
																								"attrValue": "checked"
																							},
																							{
																								"attrKey": "value",
																								"attrValue": "3_all"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Alle auswählen"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_3_01",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "3_01"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Mathematik und Naturwissenschaften"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_3_02",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "3_02"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Kunst und Kunstwissenschaft"
																					}
																				}
																			]
																		}
																	}
																]
															}
														}
													]
												}
											}
										]
									}
								},
								{
									"content": {
										"submitbutton": {
											"settings": {
												"buttonid": "fl_b_3"
											},
											"content": {
												"buttontext": "Anwenden"
											}
										}
									}
								}
							]
						}
					},
					{
						"settings": {
							"filterid": "fl_4",
							"filtertyp": "onecheckbox"
						},
						"content": {
							"filtertitle": "Fakultät",
							"filterselecttext": "Fakultät wählen",
							"filterdropdownrole": "Filterbereich für Fakultät",
							"filterdropdown": [
								{
									"content": {
										"fieldsets": [
											{
												"settings": {
													"fieldsetClasses": "is-small",
													"legendClasses": "is-col-mobile-p-12"
												},
												"content": {
													"rows": [
														{
															"settings": {
																"rowClasses": "filter-degree-programs__checkboxarea"
															},
															"content": {
																"cols": [
																	{
																		"settings": {
																			"colClasses": "",
																			"typeOf": "checkbox",
																			"required": false,
																			"inputClasses": "is-checkboxes"
																		},
																		"content": {
																			"checkboxes": [
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_4_all",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "checked",
																								"attrValue": "checked"
																							},
																							{
																								"attrKey": "value",
																								"attrValue": "4_all"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Alle auswählen"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_4_01",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "4_01"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Fakultät für Physik"
																					}
																				},
																				{
																					"settings": {
																						"wrapperClass": "",
																						"inputClass": false,
																						"required": false,
																						"dataAttr": true,
																						"id": "fl_4_02",
																						"labelClasses": "",
																						"attributes": [
																							{
																								"attrKey": "value",
																								"attrValue": "4_02"
																							},
																							{
																								"attrKey": "data-js-item",
																								"attrValue": "js-filter-degree-programs-checkbox"
																							}
																						],
																						"labelAttributes": []
																					},
																					"content": {
																						"label": "Fakultät für Chemie"
																					}
																				}
																			]
																		}
																	}
																]
															}
														}
													]
												}
											}
										]
									}
								},
								{
									"content": {
										"submitbutton": {
											"settings": {
												"buttonid": "fl_b_4"
											},
											"content": {
												"buttontext": "Anwenden"
											}
										}
									}
								}
							]
						}
					}
				],
				"filtersearch": [
					{
						"content": {
							"fieldsets": [
								{
									"settings": {
										"fieldsetClasses": "filter-degree-programs__search",
										"legendClasses": ""
									},
									"content": {
										"rows": [
											{
												"settings": {
													"rowClasses": "filter-degree-programs__search-area"
												},
												"content": {
													"cols": [
														{
															"settings": {
																"colClasses": "",
																"labelClasses": "filter-degree-programs__title",
																"id": "filter-degree-programs-search",
																"required": false,
																"type": "text",
																"typeOf": "input"
															},
															"content": {
																"label": "Freitextsuche"
															}
														}
													]
												}
											}
										]
									}
								}
							]
						}
					}
				],
				"aktivFilterClose": "Filter zurücksetzen",
				"aktivFilterTitle": "Ihre Filterauswahl:",
				"resultnumber": "XX",
				"resulttext": "Ergebnisse",
				"resultfiltertext": "zur getroffenen Filterauswahl"
			}
		}
	}
}

Styles

filter-degree-programs.scss

/* ===================================================
component: filter-degree-programs
=================================================== */

/* ---------------------------------------------------
Global Styles
--------------------------------------------------- */
[data-css="c-filter-degree-programs"] {

	.filter-degree-programs__block {
		border-top: 2px solid $color-gray;
		border-bottom: 2px solid $color-gray-border;
		padding: 5px 0 30px;
		margin-bottom: 25px;

		@include bp($bp-tablet-p) {
			padding: 15px 0 30px;
		}

		@include print() {
			border: none;
			margin-bottom: 0;
			padding: 0;
		}
	}

	.filter-degree-programs__area {
		display: flex;
		flex-flow: row wrap;
		justify-content: space-between;
		align-items: flex-start;
		width: 100%;
		margin: 0;
		padding: 0;

		@include print() {
			display: none;
		}
	}

	.filter-degree-programs__filterbox {
		position: relative;
		flex: 0 0 100%;
		width: 100%;
		padding-bottom: 25px;

		@include bp($bp-tablet-p) {
			flex: 0 0 48.83333333333333%;
			width: 48.83333333333333%;
			float: left;
			padding-bottom: 20px;
		}

		@include bp($bp-tablet-l) {
			flex: 0 0 24.29378531073446%;
			width: 24.29378531073446%;
			float: left;
			padding-bottom: 30px;
		}

		@include bp($bp-desktop-l) {
			flex: 0 0 23.48178137651822%;
			width: 23.48178137651822%;
			float: left;
		}
	}

	.filter-degree-programs__filtersearch {
		position: relative;
		flex: 0 0 100%;
		width: 100%;
		padding-bottom: 20px;
		clear: left;

		@include bp($bp-tablet-p) {
			flex: 0 0 48.83333333333333%;
			width: 48.83333333333333%;
			float: left;
		}

		@include bp($bp-desktop-l) {
			padding-bottom: 0;
		}
	}

	.filter-degree-programs__filter-item-area {
		position: relative;
		flex: 0 0 100%;
		width: 100%;
		clear: left;
		display: flex;
		flex-flow: row wrap;
		justify-content: space-between;
		align-items: flex-start;
		width: 100%;
		margin: 0;

		@include bp($bp-desktop-l) {
			flex: 0 0 48.83333333333333%;
			width: 48.83333333333333%;
			float: left;
			clear: none;
			padding-bottom: 0;
		}

		.filter-degree-programs__filter-item {
			position: relative;
			flex: 0 0 100%;
			width: 100%;
			padding-bottom: 20px;

			@include bp($bp-tablet-p) {
				flex: 0 0 48.83333333333333%;
				width: 48.83333333333333%;
				float: left;
			}
		}
	}

	.filter-degree-programs__search-area {
		border: none;
		margin: 0;
		padding: 0;
	}

	.filter-degree-programs__title {
		font-family: $font-bold;
		color: $color-dark;
		font-size: 1.2rem;
		letter-spacing: .5px;
		line-height: (16/12);
		padding: 25px 0 5px;

		@include bp($bp-tablet-p) {
			padding: 15px 0 5px;
		}
	}

	.filter-degree-programs__zone {
		position: relative;
		display: inline-block;
		width: 100%;
		user-select: none;

		.filter-degree-programs__zonecontent {
			display: block;
			-webkit-transition: all .3s ease-out;
			transition: all .3s ease-out;

			/* transform: rotateX(90deg);
			transform-origin: top;
			*/
		}

		&.is-hideFilter {

			.filter-degree-programs__zone-title {
				border-left: 3px solid $color-light;
				border-top: 3px solid $color-light;
				border-right: 3px solid $color-light;
				background-color: $color-light;
			}

			.filter-degree-programs__zonecontent {
				max-height: 0;
				visibility: hidden;
				opacity: 0;
				border-left: 3px solid $color-light;
				border-top: 3px solid $color-light;
				border-right: 3px solid $color-light;
			}

			.filter-degree-programs__zone-title-text {

				&::after {
					@include sprites-icon-arrow-dropdown();

					@include hcm() {
						content: "V";
						top: auto;
					}
				}
			}
		}

		&.is-showFilter {
			z-index: 999;

			.filter-degree-programs__zone-title {
				border-bottom: 0;
				border-left: 3px solid $color-green;
				border-top: 3px solid $color-green;
				border-right: 3px solid $color-green;
				background-color: $color-white;

				/* Edge Hack for a white line under the button */
				margin-bottom: -1px;
			}

			.filter-degree-programs__zonecontent {
				display: block;
				visibility: visible;
				opacity: 1;

				/*
				transform: rotateX(0deg);
				transform-origin: top;

				*/
				border-left: 3px solid $color-green;
				border-bottom: 3px solid $color-green;
				border-right: 3px solid $color-green;
				max-height: 370px;
				z-index: 1000;
			}

			.filter-degree-programs__zone-title-text {

				&::after {
					@include sprites-icon-arrow-dropdown-up();

					@include hcm() {
						content: "X";
						top: auto;
					}
				}
			}
		}
	}

	.filter-degree-programs__zone-title {
		font-family: $font-bold;
		color: $color-dark;
		font-size: 1.6rem;
		letter-spacing: .3px;
		line-height: (24/16);
		height: 47px;
		padding: 0 40px 3px 20px;
		display: flex;
		align-items: center;
		cursor: pointer;
		outline: none;
		width: 100%;
		border-bottom: 0;

		@include bp($bp-tablet-l) {
			padding: 0 30px 3px 15px;
		}

		@include bp($bp-desktop-l) {
			padding: 0 40px 3px 20px;
		}

		&.a11y-focus-key {
			outline-offset: -2px;
		}
	}

	.filter-degree-programs__zone-title-text {
		width: 100%;
		display: inline-block;

		&::after {
			content: "";
			right: 20px;
			position: absolute;
			top: 43%;

			@include bp($bp-tablet-l) {
				right: 15px;
			}

			@include bp($bp-desktop-l) {
				right: 20px;
			}
		}
	}

	.filter-degree-programs__zonecontent {
		position: absolute;
		width: 100%;
		background-color: $color-white;
		z-index: 1;
		padding: 0 0 0 20px;
		overflow: hidden;
		display: none;
		transition: all .3s ease;

		.filter-degree-programs__zonecontent-scroll {
			max-height: 255px;
			overflow-y: auto;
		}
	}

	.filter-degree-programs__errortext {
		font-family: $font-bold;
		font-size: 1.2rem;
		letter-spacing: .5px;
		color: #d71919;
		padding: 5px 20px 5px 0;

		&.is-hideFilter {
			display: none;
		}

		&.is-showFilter {
			display: block;
		}
	}

	.filter-degree-programs__buttonarea {
		padding: 20px 20px 24px 0;
	}

	.filter-degree-programs__submitbutton {
		background-color: $color-green;
		color: $color-white;
		font-family: $font-bold;
		font-size: 1.6rem;
		letter-spacing: .3px;
		line-height: (24/16);
		border: none;
		padding: 16px 4px;
		text-align: center;
		text-decoration: none;
		display: inline-block;
		width: 100%;

		&:hover,
		&.a11y-focus-key {
			cursor: pointer;
			background-color: darken($color-green, 10);
		}

		@include hcm() {
			border: 1px solid $color-white;
		}
	}

	.filter-degree-programs__filterbuttonarea {
		padding: 0 20px 15px 0;

		&:first-child {
			padding: 5px 20px 15px 0;
		}
	}

	.filter-degree-programs__filterbutton {
		background-color: $color-light;
		color: $color-green;
		font-family: $font-bold;
		font-size: 1.5rem;
		letter-spacing: .28px;
		line-height: (24/15);
		border: 1px solid $color-light;
		padding: 11px 4px;
		text-align: center;
		text-decoration: none;
		display: inline-block;
		width: 100%;
		cursor: pointer;

		&:hover,
		&.a11y-focus-key {
			background-color: $color-white;
			border: 1px solid $color-green;
		}

		&.is-active {
			background-color: $color-white;
			border: 1px solid $color-green;
		}
	}

	.filter-degree-programs__activeFilterArea {

		&.is-hideFilter {
			display: none;
		}

		&.is-showFilter {
			display: flex;
			flex-flow: row wrap;
			justify-content: space-between;
			align-items: flex-start;
			width: 100%;
			margin: 0;
			padding: 18px 0 0;
			clear: left;

			@include print() {
				border-top: 1px solid $color-gray;
				border-bottom: 1px solid $color-gray-border;
				padding: 5px 0;
				margin-bottom: 25px;
			}
		}
	}

	.filter-degree-programs__activeFilterZone {
		@include grid-column(12);

		@include bp($bp-tablet-p) {
			@include grid-column(8);
		}

		@include bp($bp-tablet-l) {
			@include grid-column(9);
		}
	}

	.filter-degree-programs__activeFilterZoneTextArea {
		display: none;

		@include print() {
			display: block;
		}
	}

	.filter-degree-programs__activeFilterZoneText {
		font-family: $font-bold;
		font-size: 1.6rem;
		letter-spacing: .3px;
		line-height: (24/16);
	}

	.filter-degree-programs__filterDelete {
		@include grid-column(12);
		padding: 18px 0 0;

		@include bp($bp-tablet-p) {
			@include grid-column(4);
			padding: 0;
		}

		@include bp($bp-tablet-l) {
			@include grid-column(3);
		}

		@include print() {
			display: none;
		}
	}

	.filter-degree-programs__filterDeleteButton {
		float: right;
		border: none;
		color: $color-green;
		background-color: $color-white;
		font-family: $font-bold;
		font-size: 1.6rem;
		letter-spacing: .3px;
		line-height: (24/16);
		cursor: pointer;
		padding-right: 22px;
		position: relative;

		@include print() {
			display: none;
		}

		&::after {
			@include pseudo();
			@include sprites-icon-close-small-green();
			right: 0;
			top: 6px;

			@include hcm() {
				content: ">";
				top: 0;
			}
		}
	}

	.filter-degree-programs__emptyButton {
		display: none;
	}

	.filter-degree-programs__oneFilterButton {
		border: none;
		color: $color-dark;
		background-color: $color-light;
		font-family: $font-bold;
		font-size: .9rem;
		letter-spacing: .9px;
		line-height: (12/9);
		cursor: pointer;
		padding-right: 22px;
		position: relative;
		margin: 4px 20px 6px 0;
		height: 22px;

		@include print() {
			padding-right: 8px;
			background-color: $color-white;

			&::before {
				content: "-";
				top: 2px;
				left: 0;
			}
		}

		&::after {
			@include pseudo();
			@include sprites-icon-close-xs-dark();
			right: 6px;
			top: 7px;

			@include print() {
				background-image: none;
				width: 0;
				height: 0;
			}

			@include hcm() {
				content: "X";
				top: 2px;
			}
		}
	}

	.filter-degree-programs__checkboxarea {
		margin-bottom: 0;
		border-bottom: none;
		color: $color-green;
	}
}

/* ---------------------------------------------------
Context: Default
--------------------------------------------------- */
.c-filter-degree-programs--default {
}

Scripts

filter-degree-programs.js

/**
 * Description of FilterDegreePrograms.
 * Class properties and decorators are supported.
 *
 * @module FilterDegreePrograms
 * @version v1.0.0
 *
 * @author Ralf Arnert
 */

// Imports
import $ from 'jquery';
import Component from '@veams/component';

class FilterDegreePrograms extends Component {
	/**
	 * Class Properties
	 */
	$el = $(this.el);

	/**
	 * Constructor for our class
	 *
	 * @see module.js
	 *
	 * @param {Object} obj - Object which is passed to our class
	 * @param {Object} obj.el - element which will be saved in this.el
	 * @param {Object} obj.options - options which will be passed in as JSON object
	 */
	constructor(obj) {
		let options = {
			selectors: {},
			classes: {
				showFilter: 'is-showFilter',
				hideFilter: 'is-hideFilter',
				activeFilterItem: 'is-active',
				showFilteredInfo: 'is-filtered',
				showselectedFilter: 'is-showselectedFilter',
				hideselectedFilter: 'is-hideselectedFilter',
				notvisibleFilter: 'is-notvisibleFilter',
				noentriesFilter: 'is-noentriesFilter',
				checkInputAfterChange: 'is-inputchange'
			},
			filterArea: [],
			selFilterButtons: [],
			filterZones: [],
			submitFilterButton: [],
			delFilterButton: [],
			selCheckboxes: [],
			activeFilterZone: '',
			buttonPlaceholderArea: '',
			resultfiltertextArea: []
		};

		super(obj, options);
	}

	/**
	 * Event handling
	 */

	// Local Handlers
	get events() {}

	/**
	 * Bind events
	 *
	 */
	bindEvents() {
		this.options.filterArea = document.querySelector(
			'[data-js-item="js-filter-degree-programs-area"]'
		);

		this.options.selFilterButtons = [].slice.call(
			this.options.filterArea.querySelectorAll(
				'[data-js-item="js-filter-degree-programs-select"]'
			)
		);
		this.options.filterZones = [].slice.call(
			this.options.filterArea.querySelectorAll(
				'[data-js-item="js-filter-degree-programs-zone"]'
			)
		);
		this.options.selFilterButtons.forEach(opt => {
			opt.addEventListener('click', () => {
				this.toogleFilter(opt);
			});
		});

		// Click-Handler for cosing the FilterZones per Klick outside of the active filter
		document.addEventListener('click', event => {
			const target = event.target;
			let isElementinFilterArea = this.checkClickPosition(target);
			if (isElementinFilterArea == 0) {
				this.closeFilterZones();
			}
		});

		// Keydown-Handler for closing the Filter per esc
		document.addEventListener('keydown', event => {
			const keyCode = event.which || event.keyCode;
			switch (keyCode) {
				// esc key
				case 27:
					this.closeFilterZones();
					break;
			}
		});

		//Changeeventhandling for the Checkbox-input in the filterarea
		this.options.selCheckboxes = [].slice.call(
			this.options.filterArea.querySelectorAll(
				'[data-js-item="js-filter-degree-programs-checkbox"]'
			)
		);
		if (this.options.selCheckboxes.length > 0) {
			this.options.selCheckboxes.forEach(checkbox => {
				checkbox.addEventListener('keydown', event => {
					const keyCode = event.which || event.keyCode;
					switch (keyCode) {
						// esc key
						case 13:
							if (checkbox.checked) {
								checkbox.checked = false;
							} else {
								checkbox.checked = true;
							}
							let jq_oneFilterZone = $(checkbox).closest(
								'[data-js-item="js-filter-degree-programs-zone"]'
							);
							this.resetCheckboxesOnClick(jq_oneFilterZone[0], checkbox);
							break;
					}
				});
			});
			this.options.selCheckboxes.forEach(checkbox => {
				checkbox.addEventListener('change', event => {
					if (checkbox.checked) {
						let jq_oneFilterZone = $(checkbox).closest(
							'[data-js-item="js-filter-degree-programs-zone"]'
						);
						this.resetCheckboxesOnClick(jq_oneFilterZone[0], checkbox);
					}
				});
			});
		}

		//Clickeventhandling for the Submit-Buttons in the filterarea
		this.options.submitFilterButton = [].slice.call(
			this.options.filterArea.querySelectorAll(
				'[data-js-item="js-filter-degree-programs-submitButton"]'
			)
		);
		if (this.options.submitFilterButton.length > 0) {
			this.options.submitFilterButton.forEach(submitbutton => {
				submitbutton.addEventListener('click', event => {
					let jq_oneFilterZone = $(submitbutton).closest(
						'[data-js-item="js-filter-degree-programs-zone"]'
					);
					let reload = this.checkFilterItems(jq_oneFilterZone[0]);
					if (reload) {
						this.reloadEventList();
					}
				});
			});
		}

		//Clickeventhandling for the Delete-Filter-Button in the filterarea
		this.options.delFilterButton = document.querySelector(
			'[data-js-item="js-filter-degree-programs-filterDeleteButton"]'
		);
		this.options.delFilterButton.addEventListener('click', event => {
			this.resetAllAktivFilterItems();
			this.manageActiveFilterAreaView();
			this.closeFilterZones();
			this.reloadEventList();
		});

		this.options.activeFilterZone = document.querySelector(
			'[data-js-item="js-filter-degree-programs-activeFilterZone"]'
		);
		this.options.buttonPlaceholderArea = document.querySelector(
			'[data-js-item="js-filter-degree-programs-buttonPlaceholder"]'
		);
	}

	didMount() {
		//console.log("Component FilterDegreePrograms mounted!");
	}

	/**
	 * Render class
	 */
	render() {
		return this;
	}

	/** =================================================
	 * CUSTOM METHODS
	 * ================================================= */

	/**
	 * Reset all checkboxelements under a special ParentElement without the checkedElement
	 *
	 * @param {Object} oneFilterZone - FilterZone in which all the specific checkboxes are included
	 * @param {Object} checkedCheckbox - Checkbox-Object which will not loose the checked-Attribute
	 *
	 */
	resetCheckboxesOnClick(oneFilterZone, checkedCheckbox) {
		let checkedCheckboxId = checkedCheckbox.id;
		if (checkedCheckboxId.indexOf('_all') >= 0) {
			let checkboxesInFilterZone = [].slice.call(
				oneFilterZone.querySelectorAll('input[type=checkbox]')
			);
			checkboxesInFilterZone.forEach(checkbox => {
				if (checkedCheckbox.id != checkbox.id && $(checkbox).prop('checked')) {
					$(checkbox).prop('checked', false);
				}
			});
		} else {
			if (oneFilterZone.hasAttribute('data-js-id')) {
				let idCheckboxAllChecked = oneFilterZone.getAttribute('data-js-id') + '_all';
				let checkboxAllChecked = document.getElementById(idCheckboxAllChecked);
				if (checkboxAllChecked !== null && $(checkboxAllChecked).prop('checked')) {
					$(checkboxAllChecked).prop('checked', false);
				}
			}
		}
	}

	/**
	 * Check the clicked Element if it is in one of the filter Areas
	 *
	 * @param {Object} target - Event object
	 *
	 * @return {Number} - How often the clicked element was found in the filter areas 0= no clicked element found in the filterelements, >0 element found
	 *
	 */
	checkClickPosition(target) {
		let isinFilter = 0;
		if (this.options.filterArea.contains(target)) {
			if (this.options.selFilterButtons.indexOf(target) == -1) {
				this.options.filterZones.forEach(opt => {
					if (opt.contains(target)) {
						isinFilter++;
					}
				});
			} else {
				isinFilter++;
			}
		}
		return isinFilter;
	}

	/**
	 * Handle the toogle of the clicked filter
	 *
	 * @param {Object} oneSelFilterButton- Element selFilterButton for a specific filterZone
	 */
	toogleFilter(oneSelFilterButton) {
		let jq_oneFilterZone = $(oneSelFilterButton).closest(
			'[data-js-item="js-filter-degree-programs-zone"]'
		);
		if (jq_oneFilterZone.hasClass(this.options.classes.showFilter)) {
			jq_oneFilterZone.removeClass(this.options.classes.showFilter);
			jq_oneFilterZone.addClass(this.options.classes.hideFilter);
			this.setAriaExpanded(oneSelFilterButton, false);
		} else {
			this.closeFilterZones();
			jq_oneFilterZone.removeClass(this.options.classes.hideFilter);
			jq_oneFilterZone.addClass(this.options.classes.showFilter);
			this.setAriaExpanded(oneSelFilterButton, true);
		}
	}

	/**
	 * Close all dropdowns of the clicked filterarea
	 */
	closeFilterZones() {
		this.options.filterZones.forEach(oneFilterZone => {
			let jq_oneFilterZone = $(oneFilterZone);
			if (jq_oneFilterZone.hasClass(this.options.classes.showFilter)) {
				jq_oneFilterZone.removeClass(this.options.classes.showFilter);
				jq_oneFilterZone.addClass(this.options.classes.hideFilter);
				let oneSelFilterButton = oneFilterZone.querySelector(
					'[data-js-item="js-filter-degree-programs-select"]'
				);
				this.setAriaExpanded(oneSelFilterButton, false);
				this.unfillFilterItems(oneFilterZone);
				this.fillFilterItems(oneFilterZone);
			}
		});
	}

	/**
	 * Change aria-expanded Attribute for the Filter Select
	 *
	 * @param {Object} filterElement - the specific filter element z.B. oneSelFilterButton
	 * @param {Boolean} ariaexpandedstatus - The Status of the aris-expanded-Attribute 'false' or 'true'
	 *
	 */
	setAriaExpanded(filterElement, ariaexpandedstatus) {
		filterElement.setAttribute('aria-expanded', ariaexpandedstatus);
	}

	/**
	 * Change Filteritems depending on there filtertyp to unchecked or empty
	 *
	 * @param {Object} oneFilterZone - The Element (Filterzone) in which the Input-Items should get the unchecked , unselected or empty status.
	 *
	 */
	unfillFilterItems(oneFilterZone) {
		if (
			oneFilterZone.hasAttribute('data-js-filtertyp') &&
			oneFilterZone.hasAttribute('data-js-id')
		) {
			let filtertyp = oneFilterZone.getAttribute('data-js-filtertyp');
			switch (filtertyp.toUpperCase()) {
				case 'ONECHECKBOX': {
					let arrayItemsUnfill = [].slice.call(
						oneFilterZone.querySelectorAll('input[type=checkbox]:checked')
					);
					arrayItemsUnfill.forEach(filterItem => {
						$(filterItem).prop('checked', false);
					});
					break;
				}
				default: {
					//statements;
					break;
				}
			}
		}
	}

	/**
	 * Change Filteritems depending on there filtertyp and the active filter to checked, selected or filled with content
	 *
	 * @param {Object} oneFilterZone - The Element (Filterarea) in which the Input-Items should get the checked , elected or filled with content status.
	 *
	 */
	fillFilterItems(oneFilterZone) {
		if (
			oneFilterZone.hasAttribute('data-js-filtertyp') &&
			oneFilterZone.hasAttribute('data-js-id')
		) {
			let filtertyp = oneFilterZone.getAttribute('data-js-filtertyp');
			let filterid = oneFilterZone.getAttribute('data-js-id');
			let activeFilterItems = this.getActiveFilterItems(filterid);

			switch (filtertyp.toUpperCase()) {
				case 'ONECHECKBOX': {
					if (activeFilterItems.length > 0) {
						activeFilterItems.forEach(oneActiveFilterItem => {
							let filterZoneItemFill = oneFilterZone.querySelector(
								'input[id=' +
									oneActiveFilterItem.getAttribute('data-js-itemId') +
									']'
							);
							$(filterZoneItemFill).prop('checked', true);
						});
					} else {
						let filterZoneItemFill = oneFilterZone.querySelector(
							'input[id=' + filterid + '_all]'
						);
						$(filterZoneItemFill).prop('checked', true);
					}
					break;
				}
				default: {
					//statements;
					break;
				}
			}
		}
	}

	/**
	 * Check for the specific Filter the Items
	 *
	 * @param {Object} oneFilterZone - the specific filter zone element
	 *
	 * @return {Boolean} reloadList - True or false if a reload with new Parameters for the List is necessary
	 *
	 */
	checkFilterItems(oneFilterZone) {
		let reloadlist = false;
		if (oneFilterZone.hasAttribute('data-js-filtertyp')) {
			let filtertyp = oneFilterZone.getAttribute('data-js-filtertyp');
			switch (filtertyp.toUpperCase()) {
				case 'ONECHECKBOX': {
					reloadlist = this.checkCheckboxItems(oneFilterZone);
					this.manageActiveFilterAreaView();
					this.closeFilterZones();
					break;
				}
				default: {
					//statements;
					break;
				}
			}
		}
		return reloadlist;
	}

	/**
	 * Check for the specific checkboxes of the filter area
	 *
	 * @param {Object} oneFilterZone - the specific filter zone element
	 *
	 * @return {Boolean} reloadList - True or false if a reload with new Parameters for the List is necessary
	 */
	checkCheckboxItems(oneFilterZone) {
		let reloadList = false;
		if (oneFilterZone.hasAttribute('data-js-id')) {
			reloadList = true;
			let checkboxesCheckedInFilter = [].slice.call(
				oneFilterZone.querySelectorAll('input[type=checkbox]:checked')
			);
			let filterZoneId = oneFilterZone.getAttribute('data-js-id');
			let filterCheckedAllId = filterZoneId + '_all';
			// get active checked Items
			let aktFilterItemsForFilterZone = this.getActiveFilterItems(filterZoneId);
			if (
				checkboxesCheckedInFilter.length == 0 ||
				(checkboxesCheckedInFilter.length == 1 &&
					checkboxesCheckedInFilter[0].id == filterCheckedAllId)
			) {
				$(oneFilterZone.querySelector('[id=' + filterCheckedAllId + ']')).prop(
					'checked',
					true
				);
				if (aktFilterItemsForFilterZone.length > 0) {
					this.deleteAktivFilterItems(aktFilterItemsForFilterZone);
				} else {
					reloadList = false;
				}
			} else {
				let revcheckboxesCheckedInFilter = checkboxesCheckedInFilter.reverse();
				this.deleteAktivFilterItems(aktFilterItemsForFilterZone);

				revcheckboxesCheckedInFilter.forEach(checkbox => {
					let activeFilterZonehtml = this.options.activeFilterZone.innerHTML;
					let buttonPlaceholder = this.options.buttonPlaceholderArea.querySelector(
						'[data-js-item="js-filter-degree-programs-oneFilterButton"]'
					);
					buttonPlaceholder.setAttribute('data-js-itemId', checkbox.id);
					buttonPlaceholder.setAttribute('data-js-zoneId', filterZoneId);
					let activeFilterItemName = checkbox.parentNode.querySelector(
						'label[for=' + checkbox.id + ']'
					).innerHTML;
					buttonPlaceholder.innerHTML = activeFilterItemName;
					this.options.activeFilterZone.innerHTML =
						this.options.buttonPlaceholderArea.innerHTML + activeFilterZonehtml;
				});
			}
		}
		return reloadList;
	}

	/**
	 * Get the active filter for a special filterarea
	 *
	 * @param {String} filterZoneId - the specific filterareaid or 'all'
	 *
	 * @return {Array} - activeFilterZone Array with active Filter Elements
	 */
	getActiveFilterItems(filterZoneId) {
		filterZoneId = typeof filterZoneId !== 'undefined' ? filterZoneId : 'all';
		let activeFilterItems = [];
		if (filterZoneId == 'all') {
			activeFilterItems = [].slice.call(
				this.options.activeFilterZone.querySelectorAll(
					'[data-js-item="js-filter-degree-programs-oneFilterButton"]'
				)
			);
		} else {
			activeFilterItems = [].slice.call(
				this.options.activeFilterZone.querySelectorAll(
					'[data-js-zoneId=' + filterZoneId + ']'
				)
			);
		}

		return activeFilterItems;
	}

	/**
	 * Delete all active filter items (buttons) from AktivFilterzone
	 *
	 * @param {Array} activeFilterItems - the specific active filter items to delete
	 */
	deleteAktivFilterItems(activeFilterItems) {
		if (activeFilterItems.length > 0) {
			activeFilterItems.forEach(oneActiveFilterItem => {
				$(oneActiveFilterItem).remove();
			});
		}
	}

	/**
	 * Reset all FilterItems in the different Filterareas
	 */
	resetAllAktivFilterItems() {
		let activeFilterItems = [].slice.call(
			this.options.activeFilterZone.querySelectorAll(
				'[data-js-item="js-filter-degree-programs-oneFilterButton"]'
			)
		);
		this.deleteAktivFilterItems(activeFilterItems);
		this.options.filterZones.forEach(oneFilterZone => {
			this.unfillFilterItems(oneFilterZone);
			this.fillFilterItems(oneFilterZone);
		});
	}

	/**
	 * Check if a active filter area dropdown must be shown and handle it
	 */
	manageActiveFilterAreaView() {
		let activeFilterItems = this.getActiveFilterItems('all');
		let nrAktivFilterItems = activeFilterItems.length;
		let activeFilterArea = document.querySelector(
			'[data-js-item="js-filter-degree-programs-activeFilterArea"]'
		);
		let resultfiltertextArea = document.querySelector(
			'[data-js-item="js-filter-degree-programs-resultFilterText"]'
		);
		if (nrAktivFilterItems > 0) {
			if ($(activeFilterArea).hasClass(this.options.classes.hideFilter)) {
				$(activeFilterArea).removeClass(this.options.classes.hideFilter);
				$(activeFilterArea).addClass(this.options.classes.showFilter);
				this.setAriaExpanded(activeFilterArea, true);
				$(resultfiltertextArea).addClass(this.options.classes.showFilteredInfo);
			}
			this.addClickHandler(activeFilterItems);
		} else {
			if ($(activeFilterArea).hasClass(this.options.classes.showFilter)) {
				$(activeFilterArea).removeClass(this.options.classes.showFilter);
				$(activeFilterArea).addClass(this.options.classes.hideFilter);
				this.setAriaExpanded(activeFilterArea, false);
			}
			if ($(resultfiltertextArea).hasClass(this.options.classes.showFilteredInfo)) {
				$(resultfiltertextArea).removeClass(this.options.classes.showFilteredInfo);
			}
		}
	}

	/**
	 * Add a Click eventhandler to the activeFilterItems
	 */
	addClickHandler(activeFilterItems) {
		if (activeFilterItems.length > 0) {
			activeFilterItems.forEach(oneActiveFilterItem => {
				oneActiveFilterItem.addEventListener('click', event => {
					let arr_activeFilterItem = [];
					let length_activeFilterItem = arr_activeFilterItem.push(oneActiveFilterItem);
					this.deleteAktivFilterItems(arr_activeFilterItem);
					this.unfillOneFilterItem(oneActiveFilterItem);
					this.manageActiveFilterAreaView();
					this.reloadEventList();
				});
			});
		}
	}

	/**
	 * Change One Activefilteritem to inactive
	 *
	 * @param {Object} activeFilterItem - The activeFilterItem get unchecked , unselected or empty.
	 *
	 */
	unfillOneFilterItem(activeFilterItem) {
		if (
			activeFilterItem.hasAttribute('data-js-itemId') &&
			activeFilterItem.hasAttribute('data-js-zoneId')
		) {
			let filterItemId = activeFilterItem.getAttribute('data-js-itemId');
			let filterZoneId = activeFilterItem.getAttribute('data-js-zoneId');
			let filterZone = this.options.filterArea.querySelector(
				'[data-js-id="' + filterZoneId + '"]'
			);
			if (filterZone.hasAttribute('data-js-filtertyp')) {
				let filtertyp = filterZone.getAttribute('data-js-filtertyp');
				switch (filtertyp.toUpperCase()) {
					case 'ONECHECKBOX': {
						let filterIteminFilter = filterZone.querySelector(
							'[id=' + filterItemId + ']'
						);
						$(filterIteminFilter).prop('checked', false);
						let checkboxesCheckedInFilter = [].slice.call(
							filterZone.querySelectorAll('input[type=checkbox]:checked')
						);
						if (checkboxesCheckedInFilter.length == 0) {
							let filterCheckedAllId = filterZoneId + '_all';
							$(filterZone.querySelector('[id=' + filterCheckedAllId + ']')).prop(
								'checked',
								true
							);
						}
						break;
					}
					default: {
						//statements;
						break;
					}
				}
			}
		}
	}

	/**
	 * Reload the eventlist with new Filter
	 */
	reloadEventList() {
		console.info('reload');
	}
}

export default FilterDegreePrograms;

HTML Output

Default

<div data-js-module="filter-degree-programs" class="c-filter-degree-programs--default" data-css="c-filter-degree-programs">
	<div class="filter-degree-programs__block">
		<div class="filter-degree-programs__area" data-js-item="js-filter-degree-programs-area">
			<div class="filter-degree-programs__filterbox">
				<span class="filter-degree-programs__title">Grundständige Studiengänge</span>
				<div class="filter-degree-programs__zone is-hideFilter" data-js-id="fl_1" data-js-filtertyp="onecheckbox" data-js-item="js-filter-degree-programs-zone">
					<button class="filter-degree-programs__zone-title" data-js-item="js-filter-degree-programs-select" aria-haspopup="true" aria-expanded="false">
						<span class="filter-degree-programs__zone-title-text">Studiengang wählen</span>
					</button>
					<div class="filter-degree-programs__zonecontent" role="Filterbereich für grundständige Studiengangwahl">
						<div class="filter-degree-programs__zonecontent-scroll" data-js-item="js-filter-degree-programs-zonecontent-scroll">
							<div class="filter-degree-programs__formfields">
								<fieldset class="form__fieldset is-small">
									<div class="form__row filter-degree-programs__checkboxarea">
										<div class="form__col">
											<div class="form__checkbox">
												<div class="form__label-wrapper">
													<strong class="form__checkbox-legend"></strong>
												</div>
												<div class="form__checkbox-wrapper">
													<div class="form__checkbox-item">
														<input id="fl_1_all" name="fl_1_all" type="checkbox" checked="checked" value="1_all" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_1_all" class="form__checkbox-label">
															Alle auswählen
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_1_01" name="fl_1_01" type="checkbox" value="1_01" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_1_01" class="form__checkbox-label">
															Bachelor
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_1_02" name="fl_1_02" type="checkbox" value="1_02" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_1_02" class="form__checkbox-label">
															Master
														</label>
													</div>
												</div>
											</div>
										</div>
									</div>
								</fieldset>
							</div>
						</div>
						<div class="filter-degree-programs__buttonarea">
							<button class="filter-degree-programs__submitbutton" data-js-id="fl_b_1" data-js-item="js-filter-degree-programs-submitButton">
								Anwenden
							</button>
						</div>
					</div>
				</div>
			</div>
			<div class="filter-degree-programs__filterbox">
				<span class="filter-degree-programs__title">Lehramtstudiengänge</span>
				<div class="filter-degree-programs__zone is-hideFilter" data-js-id="fl_2" data-js-filtertyp="onecheckbox" data-js-item="js-filter-degree-programs-zone">
					<button class="filter-degree-programs__zone-title" data-js-item="js-filter-degree-programs-select" aria-haspopup="true" aria-expanded="false">
						<span class="filter-degree-programs__zone-title-text">Studiengang wählen</span>
					</button>
					<div class="filter-degree-programs__zonecontent" role="Filterbereich für Lehramtstudiengang">
						<div class="filter-degree-programs__zonecontent-scroll" data-js-item="js-filter-degree-programs-zonecontent-scroll">
							<div class="filter-degree-programs__formfields">
								<fieldset class="form__fieldset is-small">
									<div class="form__row filter-degree-programs__checkboxarea">
										<div class="form__col">
											<div class="form__checkbox">
												<div class="form__label-wrapper">
													<strong class="form__checkbox-legend"></strong>
												</div>
												<div class="form__checkbox-wrapper">
													<div class="form__checkbox-item">
														<input id="fl_2_all" name="fl_2_all" type="checkbox" checked="checked" value="2_all" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_all" class="form__checkbox-label">
															Alle auswählen
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_2_01" name="fl_2_01" type="checkbox" value="2_01" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_01" class="form__checkbox-label">
															Lehramt Grundschule
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_2_02" name="fl_2_02" type="checkbox" value="2_02" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_02" class="form__checkbox-label">
															Lehramt Mittelschule
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_2_03" name="fl_2_03" type="checkbox" value="2_03" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_03" class="form__checkbox-label">
															Lehramt Realschule
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_2_04" name="fl_2_04" type="checkbox" value="2_04" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_04" class="form__checkbox-label">
															Lehramt Gymnasium
														</label>
													</div>
													<div class="form__checkbox-item is-empty">
														<input id="fl_2_05" name="fl_2_05" type="checkbox" value="2_05" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_05" class="form__checkbox-label">
															Lehramt Sonderpädagogoik
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_2_06" name="fl_2_06" type="checkbox" value="2_06" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_2_06" class="form__checkbox-label">
															Lehramt an Beruflichen Schulen
														</label>
													</div>
												</div>
											</div>
										</div>
									</div>
								</fieldset>
							</div>
						</div>
						<div class="filter-degree-programs__buttonarea">
							<button class="filter-degree-programs__submitbutton" data-js-id="fl_b_2" data-js-item="js-filter-degree-programs-submitButton">
								Anwenden
							</button>
						</div>
					</div>
				</div>
			</div>
			<div class="filter-degree-programs__filterbox">
				<span class="filter-degree-programs__title">Fachrichtung</span>
				<div class="filter-degree-programs__zone is-hideFilter" data-js-id="fl_3" data-js-filtertyp="onecheckbox" data-js-item="js-filter-degree-programs-zone">
					<button class="filter-degree-programs__zone-title" data-js-item="js-filter-degree-programs-select" aria-haspopup="true" aria-expanded="false">
						<span class="filter-degree-programs__zone-title-text">Fachrichtung wählen</span>
					</button>
					<div class="filter-degree-programs__zonecontent" role="Filterbereich für Fachrichtung">
						<div class="filter-degree-programs__zonecontent-scroll" data-js-item="js-filter-degree-programs-zonecontent-scroll">
							<div class="filter-degree-programs__formfields">
								<fieldset class="form__fieldset is-small">
									<div class="form__row filter-degree-programs__checkboxarea">
										<div class="form__col">
											<div class="form__checkbox">
												<div class="form__label-wrapper">
													<strong class="form__checkbox-legend"></strong>
												</div>
												<div class="form__checkbox-wrapper">
													<div class="form__checkbox-item">
														<input id="fl_3_all" name="fl_3_all" type="checkbox" checked="checked" value="3_all" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_3_all" class="form__checkbox-label">
															Alle auswählen
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_3_01" name="fl_3_01" type="checkbox" value="3_01" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_3_01" class="form__checkbox-label">
															Mathematik und Naturwissenschaften
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_3_02" name="fl_3_02" type="checkbox" value="3_02" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_3_02" class="form__checkbox-label">
															Kunst und Kunstwissenschaft
														</label>
													</div>
												</div>
											</div>
										</div>
									</div>
								</fieldset>
							</div>
						</div>
						<div class="filter-degree-programs__buttonarea">
							<button class="filter-degree-programs__submitbutton" data-js-id="fl_b_3" data-js-item="js-filter-degree-programs-submitButton">
								Anwenden
							</button>
						</div>
					</div>
				</div>
			</div>
			<div class="filter-degree-programs__filterbox">
				<span class="filter-degree-programs__title">Fakultät</span>
				<div class="filter-degree-programs__zone is-hideFilter" data-js-id="fl_4" data-js-filtertyp="onecheckbox" data-js-item="js-filter-degree-programs-zone">
					<button class="filter-degree-programs__zone-title" data-js-item="js-filter-degree-programs-select" aria-haspopup="true" aria-expanded="false">
						<span class="filter-degree-programs__zone-title-text">Fakultät wählen</span>
					</button>
					<div class="filter-degree-programs__zonecontent" role="Filterbereich für Fakultät">
						<div class="filter-degree-programs__zonecontent-scroll" data-js-item="js-filter-degree-programs-zonecontent-scroll">
							<div class="filter-degree-programs__formfields">
								<fieldset class="form__fieldset is-small">
									<div class="form__row filter-degree-programs__checkboxarea">
										<div class="form__col">
											<div class="form__checkbox">
												<div class="form__label-wrapper">
													<strong class="form__checkbox-legend"></strong>
												</div>
												<div class="form__checkbox-wrapper">
													<div class="form__checkbox-item">
														<input id="fl_4_all" name="fl_4_all" type="checkbox" checked="checked" value="4_all" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_4_all" class="form__checkbox-label">
															Alle auswählen
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_4_01" name="fl_4_01" type="checkbox" value="4_01" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_4_01" class="form__checkbox-label">
															Fakultät für Physik
														</label>
													</div>
													<div class="form__checkbox-item">
														<input id="fl_4_02" name="fl_4_02" type="checkbox" value="4_02" data-js-item="js-filter-degree-programs-checkbox" class="form__checkbox-input" />
														<label for="fl_4_02" class="form__checkbox-label">
															Fakultät für Chemie
														</label>
													</div>
												</div>
											</div>
										</div>
									</div>
								</fieldset>
							</div>
						</div>
						<div class="filter-degree-programs__buttonarea">
							<button class="filter-degree-programs__submitbutton" data-js-id="fl_b_4" data-js-item="js-filter-degree-programs-submitButton">
								Anwenden
							</button>
						</div>
					</div>
				</div>
			</div>
			<div class="filter-degree-programs__filtersearch">
				<div class="filter-degree-programs__searchfilter-formfields">
					<fieldset class="form__fieldset filter-degree-programs__search">
						<div class="form__row filter-degree-programs__search-area">
							<div class="form__col">
								<div class="form__input">
									<div class="form__label-wrapper">
										<label for="filter-degree-programs-search" class="form__input-label filter-degree-programs__title">
											Freitextsuche
										</label>
									</div>
									<div class="form__input-wrapper">
										<input id="filter-degree-programs-search" name="filter-degree-programs-search" type="text" class="form__input-text" />
									</div>
								</div>
							</div>
						</div>
					</fieldset>
				</div>
			</div>
			<div class="filter-degree-programs__filter-item-area">
				<div class="filter-degree-programs__filter-item">test1</div>
				<div class="filter-degree-programs__filter-item">test2</div>
			</div>
		</div>
		<div class="filter-degree-programs__activeFilterArea is-hideFilter" data-js-item="js-filter-degree-programs-activeFilterArea" aria-expanded="false">
			<div class="filter-degree-programs__activeFilterZone">
				<div class="filter-degree-programs__activeFilterZoneTextArea"><span class="filter-degree-programs__activeFilterZoneText">Ihre Filterauswahl:</span></div>
				<div data-js-item="js-filter-degree-programs-activeFilterZone"></div>
				<div class="filter-degree-programs__emptyButton" data-js-item="js-filter-degree-programs-buttonPlaceholder"><button class="filter-degree-programs__oneFilterButton" data-js-itemId="empty" data-js-zoneId="empty" data-js-item="js-filter-degree-programs-oneFilterButton">placeholder</button></div>
			</div>
			<div class="filter-degree-programs__filterDelete"><button class="filter-degree-programs__filterDeleteButton" data-js-item="js-filter-degree-programs-filterDeleteButton">Filter zurücksetzen</button></div>
		</div>
	</div>
	<!--
	<div class="filter-degree-programs__results-info" data-js-item="filter-degree-programs__results-info">
		<strong class="filter-degree-programs__total-item-count">XX</strong>
		<p class="filter-degree-programs__results-text"><strong>Ergebnisse</strong><span class="filter-degree-programs__resultfiltertext"
			 data-js-item="js-filter-degree-programs-resultFilterText"> zur getroffenen Filterauswahl</span></p>
	</div>
	-->
</div>

Wonach suchst du?