{const locale = document.querySelector('html').getAttribute('lang') || 'de-DE';const localeLoader = document.createElement('script');localeLoader.id = 'd21-locale';localeLoader.type = 'application/json';document.head.appendChild(localeLoader);fetch('https://js-sdk.dirs21.de/locale/' + locale + "?version=IBE").then(async (x) => { x.json().then(t => document.querySelector('#d21-locale').innerHTML = JSON.stringify(t)); });const styles = document.createElement('style');styles.type = 'text/css';styles.id = 'd21-widget-style';styles.textContent = ``;document.head.appendChild(styles);sessionStorage.setItem('d21_config', '{"General":{"Directory":"/testhotel-juliaw/","IsGroup":false,"ShouldOpenInNewTab":false,"CustomDomain":null,"ShouldWaitUntilDocumentReady":false,"UseShadowDOM":true,"Theme":{"Light":{"PrimaryColor":"#6C3AD9","SecondaryColor":"#16263F","BorderRadius":0.5,"Font":{"Default":"https://cdn.dirs21.de/v1/cdn/fonts/98214/spacegrotesk-bold.ttf","Decorative":"https://cdn.dirs21.de/v1/cdn/fonts/98214/spacegrotesk-bold.ttf","Body":"Montserrat"}},"Dark":{"PrimaryColor":"#6C3AD9","SecondaryColor":"#16263F","BorderRadius":0.5,"Font":{"Default":"https://cdn.dirs21.de/v1/cdn/fonts/98214/spacegrotesk-variablefont-wght.ttf","Decorative":"https://cdn.dirs21.de/v1/cdn/fonts/98214/spacegrotesk-bold.ttf","Body":"Montserrat"}}},"Preselect":{"LOS":1,"Adults":2,"Children":[]},"ProductLimit":5,"HideChildrenInput":false,"ExchangeRates":{}},"Properties":[{"WidgetId":"9f32ea2b-e979-442a-9831-dfca27cef7cf","WidgetType":"quickbook","Description":"Default QuickBook","DisplayTheme":"Light","IsCenteredAutomatically":true,"IsPrimaryConfig":true,"Fields":{"IsHorizontal":false,"IsJustButton":false,"HasSmallSearchButton":false,"HasDropdownsOnTop":false,"InputMode":"TravelPeriod","Filter":"RoomAddressFilter","PreselectedRoom":null,"HasSlimMode":false,"OccupancyDiffersFromIBE":false,"CustomLos":3,"CustomOccupancyAdults":2,"CustomOccupancyChildren":[],"MaximumPersons":10,"MinimumPersons":1,"HasPromotionCode":false,"ExtraField":"None","PreselectedProperties":[],"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{"IsHorizontal":null,"HasSmallSearchButton":null,"HasDropdownsOnTop":false,"Filter":"NoFilter","InputMode":1,"IsJustButton":false,"HasPromotionCode":null}},{"WidgetId":"8c69edc9-370e-452b-a32c-5bfa4030e598","WidgetType":"roomList","Description":"Wo wird das angezeigt?","DisplayTheme":"Light","IsCenteredAutomatically":false,"IsPrimaryConfig":true,"Fields":{"UsePages":true,"ItemsPerPage":4,"GroupFilter":"NoFilter","HasFilterPrice":false,"FilterMinimumPrice":50.0,"FilterMaximumPrice":150.0,"FilterPriceLap":5.0,"UseFilter":true,"UseCalendar":true,"RoomBuild":"Default","PreselectedHotels":[],"FixedPrice":[{"_uuid":"4d1c3a06-41d1-4c3e-99bf-fe1906add693","IsActive":false,"MinPrice":null,"Name":"Doppelzimmer "},{"_uuid":"2fbc76b6-1d78-36ef-60a2-1af00eab84f9","IsActive":false,"MinPrice":null,"Name":"Einzelzimmer Komfort"},{"_uuid":"056ecbb5-b7a9-251c-a553-4c6059491689","IsActive":false,"MinPrice":null,"Name":"Doppelzimmer zur Einzelnutzung"},{"_uuid":"19ccd503-a950-d163-0d8d-614ce23466a3","IsActive":false,"MinPrice":null,"Name":"Familienzimmer"},{"_uuid":"92f9aa9d-3e2a-a2fc-f849-4b36bc5d228d","IsActive":false,"MinPrice":null,"Name":"Stammkunden Einzelzimmer"},{"_uuid":"d799a6d6-6dd5-0a71-ea20-79c1b6de32fc","IsActive":false,"MinPrice":null,"Name":"Chantals Zimmer"},{"_uuid":"2fa5d407-ad83-b0fc-015c-75ec576180bc","IsActive":false,"MinPrice":null,"Name":"Doppelzimmer Ticket"}],"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{"HasLargeImage":false,"SlideAnimation":true,"UseBullets":true,"FilterMinimumPrice":50,"FilterMaximumPrice":65,"FilterPriceLap":5,"GroupFilter":"NoFilter"}},{"WidgetId":"00ebed1f-aade-4c52-b54e-69ce32c049b3","WidgetType":"packageList","Description":"Unsere Angebote","DisplayTheme":"System","IsCenteredAutomatically":true,"IsPrimaryConfig":true,"Fields":{"UsePages":false,"ItemsPerPage":0,"GroupFilter":"NoFilter","HasFilterPrice":false,"FilterMinimumPrice":null,"FilterMaximumPrice":null,"FilterPriceLap":null,"UseFilter":false,"UseCalendar":false,"PreselectedHotels":[],"PreselectedCategories":[],"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{"HasLargeImage":false,"SlideAnimation":false,"UseBullets":true,"GroupFilter":"NoFilter","undefined":null,"useCustomStyles":true,"IsPagination":false,"UseFilter":false,"ItemsPerPage":7,"VisiblePageCount":5,"FilterMinimumPrice":50,"FilterMaximumPrice":65,"FilterPriceLap":5}},{"WidgetId":"461d67fc-2b42-4fd2-8907-7f100b1bff8d","WidgetType":"availabilityCalendar","Description":"Verfügbarkeitskalender","DisplayTheme":"System","IsCenteredAutomatically":false,"IsPrimaryConfig":true,"Fields":{"CustomLos":5,"HasAdditionalRow":true,"HasDoubleView":true,"HasPromotionCode":true,"HasLargeView":true,"ProductIds":[],"TariffIds":[],"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{"HasLargeView":false,"HasAdditionalRow":true,"HasPromotionCode":true,"HasDoubleView":false,"CustomLOS":1,"RestrictToRoom":"null"}},{"WidgetId":"b8669342-c71f-1973-db48-472345f4e774","WidgetType":"conferenceRooms","Description":"","DisplayTheme":"Light","IsCenteredAutomatically":true,"IsPrimaryConfig":true,"Fields":{"ConferenceRoomsBuild":"sca","UsePages":false,"ItemsPerPage":5,"UseFilter":true,"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{}},{"WidgetId":"dbe0c007-24b2-6c2b-c170-32530526ba66","WidgetType":"addOnList","Description":"","DisplayTheme":"Light","IsCenteredAutomatically":true,"IsPrimaryConfig":true,"Fields":{"AddOnBuild":"sa1","UseFilter":true,"UsePages":false,"ItemsPerPage":5,"GroupFilter":"NoFilter","FilterMinimumPrice":50.0,"FilterMaximumPrice":500.0,"FilterPriceLap":5.0,"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{}},{"WidgetId":"c26f1e56-a33a-5561-0a74-51f6ce30aeaf","WidgetType":"voucherShop","Description":"Gutscheinshop","DisplayTheme":"Light","IsCenteredAutomatically":false,"IsPrimaryConfig":false,"Fields":{"VoucherBuild":"sva","UsePages":true,"ItemsPerPage":2,"UseFilter":true,"CustomStyles":"","UseCustomStyles":false},"WidgetProperties":{}}]}');sessionStorage.setItem('d21_uuid', 'ddf9d0b5-8cc5-4669-8349-e689fe5e858b'); (function() { const ibeStyle = document.createElement('style'); ibeStyle.type = 'text/css'; ibeStyle.id = 'd21-ibe-style'; ibeStyle.textContent = ` :host { --ibe-load-time: 0.5s; /* Set a default; override from outside if needed */ --color-container: #fff; } .d21-ibe { z-index: -1 !important; transition-duration: var(--ibe-load-time) !important; transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1) !important; position: fixed !important; width: 100vw !important; height: 100vh !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; opacity: 0 !important; transform: translateY(10%) scale(0.85) !important; border: none !important; background-color: var(--color-container); } .d21-ibe-visible { z-index: 999999999 !important; opacity: 1 !important; background-color: var(--color-container); transform: translateY(0) scale(1) !important; } `; // Try a few ways to find the shadow root let root = null; // 1) If your app exposes one globally, use it (customize as needed) if (window.d21ShadowRoot && window.d21ShadowRoot instanceof ShadowRoot) { root = window.d21ShadowRoot; } // 2) Otherwise, try a known host element id (adjust '#d21-root' to your host) if (!root) { const host = document.querySelector('#d21-root'); if (host && host.shadowRoot) { root = host.shadowRoot; } } // 3) Fallback: append to
if (root) { // Avoid duplicates if (!root.getElementById('d21-ibe-style')) { root.appendChild(ibeStyle); } } else { if (!document.getElementById('d21-ibe-style')) { document.head.appendChild(ibeStyle); } } })(); const quickbook = document.createElement('script');quickbook.src = 'https://v5.widgets.dirs21.de/quickbook.js?v=5.0.0.0.782';quickbook.async = true;quickbook.type = 'module';quickbook.defer = true;document.body.appendChild(quickbook);if (Array.from(document.querySelectorAll('.d21-roomList, #d21-roomList')).length > 0) { const roomList = document.createElement('script'); roomList.src = 'https://v5.widgets.dirs21.de/roomList.js?v=5.0.0.0.782'; roomList.async = true; roomList.type = 'module'; roomList.defer = true; document.body.appendChild(roomList);}if (Array.from(document.querySelectorAll('.d21-packageList, #d21-packageList, #d21-widgets-packages')).length > 0) { const packageList = document.createElement('script'); packageList.src = 'https://v5.widgets.dirs21.de/packageList.js?v=5.0.0.0.782'; packageList.async = true; packageList.type = 'module'; packageList.defer = true; document.body.appendChild(packageList);}if (Array.from(document.querySelectorAll('.d21-availabilityCalendar, .d21-smallAvailabilityCalendar, #d21-bigAvailabilityCalendar, .d21-roomAvailability')).length > 0) { const availabilityCalendar = document.createElement('script'); availabilityCalendar.src = 'https://v5.widgets.dirs21.de/availabilityCalendar.js?v=5.0.0.0.782'; availabilityCalendar.async = true; availabilityCalendar.type = 'module'; availabilityCalendar.defer = true; document.body.appendChild(availabilityCalendar);}if (Array.from(document.querySelectorAll('.d21-voucherShop')).length > 0) { const voucherShop = document.createElement('script'); voucherShop.src = 'https://v5.widgets.dirs21.de/voucherShop.js?v=5.0.0.0.782'; voucherShop.async = true; voucherShop.type = 'module'; voucherShop.defer = true; document.body.appendChild(voucherShop);}if (Array.from(document.querySelectorAll('.d21-addOnList')).length > 0) { const addOnList = document.createElement('script'); addOnList.src = 'https://v5.widgets.dirs21.de/addOnList.js?v=5.0.0.0.782'; addOnList.async = true; addOnList.type = 'module'; addOnList.defer = true; document.body.appendChild(addOnList);}if (Array.from(document.querySelectorAll('.d21-conferenceRooms')).length > 0) { const conferenceRooms = document.createElement('script'); conferenceRooms.src = 'https://v5.widgets.dirs21.de/conferenceRooms.js?v=5.0.0.0.782'; conferenceRooms.async = true; conferenceRooms.type = 'module'; conferenceRooms.defer = true; document.body.appendChild(conferenceRooms);}}