1<!doctype html> 2<html lang="de"> 3<head > 4 <meta charset="utf-8"/> 5<meta name="title" content="Felix Meiner Verlag"/> 6<meta name="description" content="Felix Meiner Verlag"/> 7<meta name="keywords" content="Felix Meiner Verlag"/> 8<meta name="robots" content="INDEX,FOLLOW"/> 9<meta name="viewport" content="width=device-width, initial-scale=1"/> 10<title>Felix Meiner Verlag</title> 11<link rel="stylesheet" type="text/css" media="all" href="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/css/styles.css" /> 12<link rel="stylesheet" type="text/css" media="all" href="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/CleverReach_CleverReachIntegration/css/cr-form.css" /> 13<link rel="stylesheet" type="text/css" media="all" href="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/FMV_PageBuilderAccordion/css/accordion.css" /> 14<link rel="stylesheet" type="text/css" rel="stylesheet" type="text/css" href="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/Junicom_ElasticsuitePersons/css/style.css" />
15<script type="text/javascript" src="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/FMV_PageBuilderAccordion/js/accordion.js"></script>
vendor: 1 bytes, line 15
15
16<script type="text/javascript" src="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/Smile_ElasticsuiteTracker/js/tracking.js"></script>
vendor: 1 bytes, line 16
16
17<script type="text/javascript" src="https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE/js/script.js"></script>
17 18<link rel="icon" type="image/x-icon" href="https://meiner.de/media/favicon/stores/1/Meiner_32x32.ico" /> 19<link rel="shortcut icon" type="image/x-icon" href="https://meiner.de/media/favicon/stores/1/Meiner_32x32.ico" /> 20 21 <!-- Usercentrics --> 22 <link 23 rel="preconnect" 24 href="//privacy-proxy.usercentrics.eu"> 25 <link 26 rel="preload" 27 href="//privacy-proxy.usercentrics.eu/latest/uc-block.bundle.js" 28 as="script"> 29
29<script id="usercentrics-cmp" data-settings-id="HzlSV4Iqv" 30 src="https://web.cmp.usercentrics.eu/ui/loader.js" async></script>
30 31
31<script type="application/javascript" src="https://privacy-proxy.usercentrics.eu/latest/uc-block.bundle.js"></script>
31 32 <!-- End Usercentrics --> 33
33<script> 34 //<![CDATA[ 35 function userConsentEsTraking(config) 36 { 37 return config.cookieRestrictionEnabled == false || hyva.getCookie(config.cookieRestrictionName) !== null; 38 } 39 40 try { 41 smileTracker.setConfig({ 42 beaconUrl : 'https://meiner.de/fmv_de/elasticsuite/tracker/hit/image/h.png', 43 telemetryUrl : 'https://t.elasticsuite.io/track', 44 telemetryEnabled : '', 45 sessionConfig : {"visit_cookie_name":"STUID","visit_cookie_lifetime":"3600","visitor_cookie_lifetime":"365","visitor_cookie_name":"STVID","domain":"meiner.de","path":"\/"}, 46 endpointUrl : 'https://meiner.de/fmv_de/rest/V1/elasticsuite-tracker/hit' 47 }); 48 49 smileTracker.addPageVar('store_id', '1'); 50 51 document.addEventListener('DOMContentLoaded', function () { 52 if (userConsentEsTraking({"cookieRestrictionEnabled":"0","cookieRestrictionName":"user_allowed_save_cookie"})) { 53 smileTracker.sendTag(); 54 } 55 }); 56 } catch (err) { 57 ; 58 } 59 //]]> 60 </script>
60 61
61<script> 62 var BASE_URL = 'https://meiner.de/fmv_de/'; 63 var THEME_PATH = 'https://meiner.de/static/version1789027969/frontend/FMV/hyvaShop/de_DE'; 64 var COOKIE_CONFIG = { 65 "expires": null, 66 "path": "\u002F", 67 "domain": ".meiner.de", 68 "secure": true, 69 "lifetime": "3600", 70 "cookie_restriction_enabled": false }; 71 var CURRENT_STORE_CODE = 'fmv_de'; 72 var CURRENT_WEBSITE_ID = '1'; 73 74 window.hyva = window.hyva || {} 75 76 window.cookie_consent_groups = window.cookie_consent_groups || {} 77 window.cookie_consent_groups['necessary'] = true; 78 79 window.cookie_consent_config = window.cookie_consent_config || {}; 80 window.cookie_consent_config['necessary'] = [].concat( 81 window.cookie_consent_config['necessary'] || [], 82 [ 83 'user_allowed_save_cookie', 84 'form_key', 85 'mage-messages', 86 'private_content_version', 87 'mage-cache-sessid', 88 'last_visited_store', 89 'section_data_ids' 90 ] 91 ); 92</script>
vendor: 1 bytes, line 92
92
93<script> 94 'use strict'; 95 (function( hyva, undefined ) { 96 97 function lifetimeToExpires(options, defaults) { 98 99 const lifetime = options.lifetime || defaults.lifetime; 100 101 if (lifetime) { 102 const date = new Date; 103 date.setTime(date.getTime() + lifetime * 1000); 104 return date; 105 } 106 107 return null; 108 } 109 110 function generateRandomString() { 111 112 const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 113 length = 16; 114 115 let formKey = '', 116 charactersLength = allowedCharacters.length; 117 118 for (let i = 0; i < length; i++) { 119 formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] 120 } 121 122 return formKey; 123 } 124 125 const sessionCookieMarker = {noLifetime: true} 126 127 const cookieTempStorage = {}; 128 129 const internalCookie = { 130 get(name) { 131 const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 132 return v ? v[2] : null; 133 }, 134 set(name, value, days, skipSetDomain) { 135 let expires, 136 path, 137 domain, 138 secure, 139 samesite; 140 141 const defaultCookieConfig = { 142 expires: null, 143 path: '/', 144 domain: null, 145 secure: false, 146 lifetime: null, 147 samesite: 'lax' 148 }; 149 150 const cookieConfig = window.COOKIE_CONFIG || {}; 151 152 expires = days && days !== sessionCookieMarker 153 ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) 154 : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; 155 156 path = cookieConfig.path || defaultCookieConfig.path; 157 domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); 158 secure = cookieConfig.secure || defaultCookieConfig.secure; 159 samesite = cookieConfig.samesite || defaultCookieConfig.samesite; 160 161 document.cookie = name + "=" + encodeURIComponent(value) + 162 (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + 163 (path ? '; path=' + path : '') + 164 (domain ? '; domain=' + domain : '') + 165 (secure ? '; secure' : '') + 166 (samesite ? '; samesite=' + samesite : 'lax'); 167 }, 168 isWebsiteAllowedToSaveCookie() { 169 const allowedCookies = this.get('user_allowed_save_cookie'); 170 if (allowedCookies) { 171 const allowedWebsites = JSON.parse(unescape(allowedCookies)); 172 173 return allowedWebsites[CURRENT_WEBSITE_ID] === 1; 174 } 175 return false; 176 }, 177 getGroupByCookieName(name) { 178 const cookieConsentConfig = window.cookie_consent_config || {}; 179 let group = null; 180 for (let prop in cookieConsentConfig) { 181 if (!cookieConsentConfig.hasOwnProperty(prop)) continue; 182 if (cookieConsentConfig[prop].includes(name)) { 183 group = prop; 184 break; 185 } 186 } 187 return group; 188 }, 189 isCookieAllowed(name) { 190 const cookieGroup = this.getGroupByCookieName(name); 191 return cookieGroup 192 ? window.cookie_consent_groups[cookieGroup] 193 : this.isWebsiteAllowedToSaveCookie(); 194 }, 195 saveTempStorageCookies() { 196 for (const [name, data] of Object.entries(cookieTempStorage)) { 197 if (this.isCookieAllowed(name)) { 198 this.set(name, data['value'], data['days'], data['skipSetDomain']); 199 delete cookieTempStorage[name]; 200 } 201 } 202 } 203 }; 204 205 hyva.getCookie = (name) => { 206 const cookieConfig = window.COOKIE_CONFIG || {}; 207 208 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 209 return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; 210 } 211 212 return internalCookie.get(name); 213 } 214 215 hyva.setCookie = (name, value, days, skipSetDomain) => { 216 const cookieConfig = window.COOKIE_CONFIG || {}; 217 218 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 219 cookieTempStorage[name] = {value, days, skipSetDomain}; 220 return; 221 } 222 return internalCookie.set(name, value, days, skipSetDomain); 223 } 224 225 226 hyva.setSessionCookie = (name, value, skipSetDomain) => { 227 return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) 228 } 229 230 hyva.getBrowserStorage = () => { 231 const browserStorage = window.localStorage || window.sessionStorage; 232 if (!browserStorage) { 233 console.warn('Browser Storage is unavailable'); 234 return false;
235 } 236 try { 237 browserStorage.setItem('storage_test', '1'); 238 browserStorage.removeItem('storage_test'); 239 } catch (error) { 240 console.warn('Browser Storage is not accessible', error); 241 return false; 242 } 243 return browserStorage; 244 } 245 246 hyva.postForm = (postParams) => { 247 const form = document.createElement("form"); 248 249 let data = postParams.data; 250 251 if (! postParams.skipUenc && ! data.uenc) { 252 data.uenc = btoa(window.location.href); 253 } 254 form.method = "POST"; 255 form.action = postParams.action; 256 257 Object.keys(postParams.data).map(key => { 258 const field = document.createElement("input"); 259 field.type = 'hidden' 260 field.value = postParams.data[key]; 261 field.name = key; 262 form.appendChild(field); 263 }); 264 265 const form_key = document.createElement("input"); 266 form_key.type = 'hidden'; 267 form_key.value = hyva.getFormKey(); 268 form_key.name="form_key"; 269 form.appendChild(form_key); 270 271 document.body.appendChild(form); 272 273 form.submit(); 274 } 275 276 hyva.getFormKey = function () { 277 let formKey = hyva.getCookie('form_key'); 278 279 if (!formKey) { 280 formKey = generateRandomString(); 281 hyva.setCookie('form_key', formKey); 282 } 283 284 return formKey; 285 } 286 287 hyva.formatPrice = (value, showSign, options = {}) => { 288 const groupSeparator = options.groupSeparator; 289 const decimalSeparator = options.decimalSeparator 290 delete options.groupSeparator; 291 delete options.decimalSeparator; 292 const formatter = new Intl.NumberFormat( 293 'de\u002DDE', 294 Object.assign({ 295 style: 'currency', 296 currency: 'EUR', 297 signDisplay: showSign ? 'always' : 'auto' 298 }, options) 299 ); 300 return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? 301 formatter.formatToParts(value).map(({type, value}) => { 302 switch (type) { 303 case 'currency': 304 return '\u20AC' || value; 305 case 'minusSign': 306 return '- '; 307 case 'plusSign': 308 return '+ '; 309 case 'group': 310 return groupSeparator !== undefined ? groupSeparator : value; 311 case 'decimal': 312 return decimalSeparator !== undefined ? decimalSeparator : value; 313 default : 314 return value; 315 } 316 }).reduce((string, part) => string + part) : 317 formatter.format(value); 318 } 319 320 const formatStr = function (str, nStart) { 321 const args = Array.from(arguments).slice(2); 322 323 return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { 324 const idx = parseInt(n) - nStart; 325 326 if (args[idx] === null || args[idx] === void 0) { 327 return m; 328 } 329 return p.length % 2 330 ? p.slice(0, -1).replace('%%', '%') + args[idx] 331 : p.replace('%%', '%') + n; 332 }) 333 } 334 335 hyva.str = function (string) { 336 const args = Array.from(arguments); 337 args.splice(1, 0, 1); 338 339 return formatStr.apply(undefined, args); 340 } 341 342 hyva.strf = function () { 343 const args = Array.from(arguments); 344 args.splice(1, 0, 0); 345 346 return formatStr.apply(undefined, args); 347 } 348 349 /** 350 * Take a html string as `content` parameter and 351 * extract an element from the DOM to replace in 352 * the current page under the same selector, 353 * defined by `targetSelector` 354 */ 355 hyva.replaceDomElement = (targetSelector, content) => { 356 // Parse the content and extract the DOM node using the `targetSelector` 357 const parser = new DOMParser(); 358 const doc = parser.parseFromString(content, 'text/html');
359 const contentNode = doc.querySelector(targetSelector); 360 361 // Bail if content or target can't be found 362 if (!contentNode || !document.querySelector(targetSelector)) { 363 return; 364 } 365 366 hyva.activateScripts(contentNode); 367 368 // Replace the old DOM node with the new content 369 document.querySelector(targetSelector).replaceWith(contentNode); 370 371 // Reload customerSectionData and display cookie-messages if present 372 window.dispatchEvent(new CustomEvent("reload-customer-section-data")); 373 hyva.initMessages(); 374 } 375 376 hyva.removeScripts = (contentNode) => { 377 const scripts = contentNode.getElementsByTagName('script'); 378 for (let i = 0; i < scripts.length; i++) { 379 scripts[i].parentNode.removeChild(scripts[i]); 380 } 381 const templates = contentNode.getElementsByTagName('template'); 382 for (let i = 0; i < templates.length; i++) { 383 const container = document.createElement('div'); 384 container.innerHTML = templates[i].innerHTML; 385 hyva.removeScripts(container); 386 templates[i].innerHTML = container.innerHTML; 387 } 388 } 389 390 hyva.activateScripts = (contentNode) => { 391 // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM. 392 const scripts = Array.from(contentNode.getElementsByTagName('script')); 393 394 // Iterate over all script tags to duplicate+inject each into the head 395 for (const original of scripts) { 396 const script = document.createElement('script'); 397 original.type && (script.type = original.type); 398 script.innerHTML = original.innerHTML; 399 400 // Remove the original (non-executing) script from the contentNode 401 original.parentNode.removeChild(original) 402 403 // Add script to head 404 document.head.appendChild(script); 405 } 406 407 return contentNode; 408 } 409 410 const replace = {['+']: '-', ['/']: '_', ['=']: ','}; 411 hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); 412 413 let currentTrap; 414 415 const focusableElements = (rootElement) => { 416 const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; 417 return Array.from(rootElement.querySelectorAll(selector)) 418 .filter(el => { 419 return el.style.display !== 'none' 420 && !el.disabled 421 && el.tabIndex !== -1 422 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) 423 }) 424 } 425 426 const focusTrap = (e) => { 427 const isTabPressed = e.key === 'Tab' || e.keyCode === 9; 428 if (!isTabPressed) return; 429 430 const focusable = focusableElements(currentTrap) 431 const firstFocusableElement = focusable[0] 432 const lastFocusableElement = focusable[focusable.length - 1] 433 434 e.shiftKey 435 ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) 436 : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) 437 }; 438 439 hyva.releaseFocus = (rootElement) => { 440 if (currentTrap && (!rootElement || rootElement === currentTrap)) { 441 currentTrap.removeEventListener('keydown', focusTrap) 442 currentTrap = null 443 } 444 } 445 hyva.trapFocus = (rootElement) => { 446 if (!rootElement) return; 447 hyva.releaseFocus() 448 currentTrap = rootElement 449 rootElement.addEventListener('keydown', focusTrap) 450 const firstElement = focusableElements(rootElement)[0] 451 firstElement && firstElement.focus() 452 } 453 454 hyva.safeParseNumber = (rawValue) => { 455 const number = rawValue ? parseFloat(rawValue) : null; 456 457 return Array.isArray(number) || isNaN(number) ? rawValue : number; 458 } 459 460 const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(''); 461 hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => { 462 463 const camelCase = toCamelCase(name);
464 const key = '__hyva_bool_' + name 465 466 return new Proxy(Object.assign( 467 additionalMethods, 468 { 469 [key]: !!value, 470 [name]() {return !!this[key]}, 471 ['!' + name]() {return !this[key]}, 472 ['toggle' + camelCase]() {this[key] = !this[key]}, 473 [`set${camelCase}True`]() {this[key] = true}, 474 [`set${camelCase}False`]() {this[key] = false}, 475 } 476 ), { 477 set(target, prop, value) { 478 return prop === name 479 ? (target[key] = !!value) 480 : Reflect.set(...arguments); 481 } 482 }) 483 } 484 485 hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) 486 window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true}); 487 window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) 488 489 }( window.hyva = window.hyva || {} )); 490</script>
vendor: 1 bytes, line 490
490
491<script> 492 if (!window.IntersectionObserver) { 493 window.IntersectionObserver = function (callback) { 494 this.observe = el => el && callback(this.takeRecords()); 495 this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}]; 496 this.disconnect = () => {}; 497 this.unobserve = () => {}; 498 } 499 } 500</script>
vendor: 1 bytes, line 500
500
501<script> 502 'use strict'; 503 504 function amXnotifSubscribeComponentFactory(config) { 505 return { 506 productId: config.productId || null, 507 isAvailable: config.isAvailable || false, 508 isShowAlert: config.isShowAlert || false, 509 isAvailableConfigurableSimple: true, 510 isShowAlertConfigurableSimple: false, 511 isOutofstockConfigurable: config.isOutofstockConfigurable || false, 512 title: config.title || 'Verfügbarkeit', 513 attributesCount: config.attributesCount || 0, 514 options: {}, 515 productIndex: config.productId || null, 516 hideAddToCartBtn: "", 517 addToCartButton: "", 518 inStockLabel: 'Auf Lager', 519 outOfStockLabel: 'Nicht lieferbar', 520 notificationLabel: 'Benachrichtigen Sie mich, wenn dieses Produkt auf Lager ist', 521 containerClass: '.product-item, .product-item-info, .product-info-main, .item.product', 522 openAccessContainer: "", 523 openAccessExternalLink: "", 524 525 init() { 526 if (config.childProducts.length === 0) { 527 this.inStockLabel = config.availabilityMessages[this.productId]; 528 this.outOfStockLabel = config.availabilityMessages[this.productId]; 529 this.isAvailableConfigurableSimple = this.isAvailable; 530 } 531 this.updateOptions(); 532 533 if (typeof this.$watch === 'function') { 534 this.$watch('isAvailable', (value) => { 535 this.toggleElements(value); 536 }); 537 } 538 this.$nextTick(() => { 539 this.toggleElements(this.isAvailable); 540 }); 541 }, 542 543 toggleElements(isAvailable) { 544 const container = this.$el ? this.$el.closest(this.containerClass) : null; 545 if (!container) return; 546 547 const selectors = [ 548 '.product-info-price', 549 'button[data-addto="cart"]', 550 '.action.tocart', 551 'form[data-role="tocart-form"]', 552 '[x-data="initQtyField"]', 553 '[x-data="initQtyField()"]' 554 ]; 555 556 selectors.forEach(selector => { 557 const elements = container.querySelectorAll(selector); 558 elements.forEach(el => { 559 if (el.closest(this.containerClass) === container) { 560 el.style.display = isAvailable ? '' : 'none'; 561 } 562 }); 563 }); 564 }, 565 566 toggleOpenAccessElements(isOpenAccess) { 567 const container = this.$el ? this.$el.closest(this.containerClass) : null; 568 if (!container) return; 569 570 const selectors = [ 571 'button[data-addto="cart"]', 572 '.action.tocart', 573 'form[data-role="tocart-form"]', 574 '[x-data="initQtyField"]', 575 '[x-data="initQtyField()"]' 576 ]; 577 578 selectors.forEach(selector => { 579 const elements = container.querySelectorAll(selector); 580 581 elements.forEach(el => { 582 if (el.closest(this.containerClass) === container) { 583 // el.style.display = isOpenAccess ? 'none' : ''; 584 585 if (isOpenAccess) { 586 el.classList.add('hidden'); 587 588 } else { 589 el.classList.remove('hidden'); 590 591 } 592 } 593 }); 594 }); 595 }, 596 597 getSubscriptionUrl(productIndex, type) { 598 const urlParts = [ 599 'xnotif/email/', 600 type, 601 '/product_id/', 602 productIndex, 603 (parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', 604 '/uenc/', 605 config.encodedUrl || '' 606 ]; 607 return BASE_URL + urlParts.join(''); 608 }, 609 610 isEventFromSameProduct(event, element) { 611 const source = (event.detail ? event.detail.sourceElement : null) || window.__amxnotifLastSourceElement; 612 if (!source || !(source instanceof Element) || !(element instanceof Element)) { 613 return true; 614 } 615 616 let sourceContainer = source.closest('.product-item, .item.product, .cart.item, .cart-item'); 617 let targetContainer = element.closest('.product-item, .item.product, .cart.item, .cart-item'); 618 619 if (!sourceContainer) sourceContainer = source.closest('.product-item-info, .product-info-main'); 620 if (!targetContainer) targetContainer = element.closest('.product-item-info, .product-info-main'); 621 622 return (sourceContainer || targetContainer) ? (sourceContainer === targetContainer) : true; 623 }, 624 625 getSimpleProduct(data, el) { 626 if (parseInt(data.productId) !== parseInt(this.productId) || !data.selectedValues) return; 627 const children = config.childProducts || {}; 628 const childrenAlertStatus = config.childProductsAlertStatus || {}; 629 const swatchesCount = parseInt(config.attributesCount) || 0; 630 const selectedCount = Object.keys(data.selectedValues).length; 631 const allSelected = selectedCount >= swatchesCount; 632 const availabilityMessages = config.availabilityMessages; 633 const openAccessChildren = config.openAccess; 634 635 this.openAccessContainer = document.querySelector('.open-access-container-' + data.productId); 636 637 this.togglePriceLabel(allSelected); 638 639 if (!allSelected) { 640 this.isAvailable = true; 641 this.isAvailableConfigurableSimple = true; 642 this.isShowAlertConfigurableSimple = false;
643 this.updateOptions(); 644 return; 645 } 646 647 let resolvedIndex = data.productIndex || 0; 648 if (!resolvedIndex && data.selectedValues && config.indexMapping) { 649 const keyParts = Object.keys(data.selectedValues).map(attrId => parseInt(attrId) + ':' + data.selectedValues[attrId]); 650 keyParts.sort(); 651 const key = keyParts.join(','); 652 if (config.indexMapping[key]) { 653 resolvedIndex = config.indexMapping[key]; 654 } 655 } 656 657 this.productIndex = resolvedIndex; 658 const selectedChildState = children[this.productIndex]; 659 const selectedChildAlertState = childrenAlertStatus[this.productIndex]; 660 this.isAvailableConfigurableSimple = (typeof selectedChildState !== 'undefined') ? Boolean(Number(selectedChildState)) : true; 661 this.isShowAlertConfigurableSimple = (typeof selectedChildAlertState !== 'undefined') ? Boolean(Number(selectedChildAlertState)) : true; 662 this.inStockLabel = availabilityMessages[this.productIndex]; 663 this.outOfStockLabel = availabilityMessages[this.productIndex]; 664 665 if (this.productIndex != 0) { 666 if (this.openAccessContainer) { 667 let isOpenAccess = openAccessChildren[this.productIndex]['status']; 668 if (isOpenAccess) { 669 let openAccessExternalHref = this.openAccessContainer.querySelector('.open-access-external-link'); 670 this.openAccessExternalLink = openAccessChildren[this.productIndex]['openaccess_external_link']; 671 openAccessExternalHref.setAttribute('href', this.openAccessExternalLink); 672 this.openAccessContainer.classList.remove('hidden'); 673 this.toggleOpenAccessElements(isOpenAccess) 674 } else { 675 this.openAccessContainer.classList.add('hidden'); 676 this.toggleOpenAccessElements(isOpenAccess) 677 } 678 } 679 } 680 681 this.isAvailable = this.isAvailableConfigurableSimple; 682 this.isShowAlert = this.isShowAlertConfigurableSimple; 683 this.updateOptions(); 684 }, 685 686 togglePriceLabel(isFullSelection) { 687 const container = this.$el ? this.$el.closest(this.containerClass) : null; 688 if (!container) return; 689 const labels = container.querySelectorAll('.price-label'); 690 labels.forEach(el => { 691 if (isFullSelection) { 692 el.classList.add('hidden'); 693 el.style.setProperty('display', 'none', 'important'); 694 } else { 695 el.classList.remove('hidden', 'invisible'); 696 el.style.setProperty('display', 'inline-block', 'important'); 697 } 698 }); 699 }, 700 701 updateOptions() { 702 this.options = { 703 additionalClass: this.isAvailableConfigurableSimple ? 'bg-green-500' : 'bg-red-500', 704 label: this.isAvailableConfigurableSimple ? this.inStockLabel : this.outOfStockLabel, 705 categoryNotificationLabel: this.isShowAlertConfigurableSimple ? this.notificationLabel : '' 706 }; 707 }, 708 709 getAvailable() { 710 this.updateOptions(); 711 return this.isAvailable; 712 }, 713 714 getShowAlert() { 715 this.updateOptions(); 716 return this.isShowAlert; 717 } 718 }; 719 } 720 721 (() => { 722 if (window.__amxnotifSafetyInjected) return; 723 window.__amxnotifSafetyInjected = true; 724 725 window.amxnotif_wrap_attributes = (attributes) => { 726 if (!attributes || typeof attributes !== 'object' || attributes.__amxnotifWrapped) { 727 return attributes; 728 } 729 730 const items = Array.isArray(attributes) ? attributes : Object.values(attributes); 731 const map = {};
732 items.forEach((item) => { 733 const id = item && (item.id || item.attributeId || item.attribute_id); 734 if (id) map[id] = item; 735 }); 736 737 const wrapped = Object.assign(items, map); 738 Object.defineProperty(wrapped, '__amxnotifWrapped', { 739 value: true, 740 enumerable: false 741 }); 742 return wrapped; 743 }; 744 745 746 window.amxnotif_wrap_config = (component) => { 747 if (!component || typeof component !== 'object' || component.__amxnotifWrapped) return; 748 component.__amxnotifWrapped = true; 749 750 if (typeof component.calculatePriceLabelVisibility === 'function') { 751 const originalVisibility = component.calculatePriceLabelVisibility; 752 component.calculatePriceLabelVisibility = function() { 753 originalVisibility.apply(this, arguments); 754 755 this.showRegularPriceLabel = false; 756 }; 757 } 758 759 if (!component.optionConfig && component.config) component.optionConfig = component.config; 760 if (!component.swatchConfig) { 761 for (let k in component) { 762 if (k.toLowerCase().includes('swatch') && k.toLowerCase().includes('config')) { 763 component.swatchConfig = component[k]; 764 break; 765 } 766 } 767 } 768 769 if (component.optionConfig && component.optionConfig.attributes) { 770 component.optionConfig.attributes = window.amxnotif_wrap_attributes(component.optionConfig.attributes); 771 } 772 773 const scheduleInjectIds = (ctx) => { 774 const inject = () => { 775 if (typeof ctx._injectAttributeIds === 'function') ctx._injectAttributeIds(); 776 }; 777 if (typeof ctx.$nextTick === 'function') ctx.$nextTick(inject); 778 else setTimeout(inject, 50); 779 }; 780 781 const regularMethods = { 782 getOptions: function(attrId) { 783 return window.amxnotif_get_options(this.optionConfig, attrId); 784 }, 785 findAttributeId: function() { 786 if (this.item && this.item._amxnotif_attribute_id) { 787 return this.item._amxnotif_attribute_id; 788 } 789 const el = this.$el; 790 if (!el) return null; 791 let attrId = el.closest('[data-attribute-id]')?.dataset.attributeId; 792 if (!attrId) { 793 const input = (el.tagName === 'INPUT' && (el.name || '').includes('super_attribute')) ? 794 el : 795 el.querySelector('input[name*="super_attribute"]') || 796 el.parentElement?.querySelector('input[name*="super_attribute"]'); 797 const nameMatch = input?.name?.match(/super_attribute\[(\d+)\]/); 798 if (nameMatch) attrId = nameMatch[1]; 799 } 800 return attrId || null; 801 }, 802 _injectAttributeIds: function() { 803 const attrs = this.optionConfig?.attributes; 804 if (!attrs || typeof attrs.forEach !== 'function') return; 805 const root = this.$el || document; 806 attrs.forEach(attr => { 807 if (!attr) return; 808 const id = attr.id || attr.attributeId || attr.attribute_id; 809 if (!id) return; 810 const code = attr.code || attr.attribute_code || ''; 811 const candidates = root.querySelectorAll ? root.querySelectorAll('.swatch-attribute') : []; 812 candidates.forEach(div => { 813 if (div.dataset.attributeId) return; 814 if (code && (div.classList.contains(code) || div.className.includes(code))) { 815 div.dataset.attributeId = id; 816 } 817 }); 818 }); 819 }, 820 init: function() { 821 scheduleInjectIds(this); 822 if (typeof this.$watch === 'function') { 823 this.$watch('showSwatches', (val) => { 824 if (val) scheduleInjectIds(this); 825 }); 826 } 827 }, 828 unsetActiveTooltipItem: function() { 829 this.activeTooltipItem = false;
830 }, 831 _getItemId: function() { 832 if (this.item && this.item.id) return this.item.id; 833 if (this.itemId) return this.itemId; 834 const el = this.$el; 835 if (!el) return null; 836 const input = (el.tagName === 'INPUT' && el.name?.includes('super_attribute')) ? el : el.querySelector('input[name*="super_attribute"]'); 837 return el.dataset.optionId || (input ? input.value : el.closest('[data-option-id]')?.dataset.optionId); 838 } 839 }; 840 841 // Standardize component methods for cross-theme compatibility 842 component.getOptionsByAttrId = function(attrId) { 843 const id = attrId || (this.$el ? this.$el.dataset.attributeId : null) || this.findAttributeId(); 844 if (!id) return []; 845 const attributes = this.optionConfig?.attributes || []; 846 const attr = attributes[id] || (Array.isArray(attributes) ? attributes.find(a => a.id == id) : null); 847 return (attr && attr.options) ? attr.options : []; 848 }; 849 850 component.getAllAttributeOptions = function() { 851 return this.getOptionsByAttrId(); 852 }; 853 854 // Apply helper methods to component if not already present 855 for (let name in regularMethods) { 856 if (typeof component[name] === 'undefined') { 857 component[name] = regularMethods[name]; 858 } 859 } 860 861 // Wrap the init method to inject data-attribute-id into DOM after Alpine renders 862 if (typeof component.init === 'function' && !component.__amxnotifInitWrapped) { 863 const originalInit = component.init; 864 component.init = function() { 865 originalInit.apply(this, arguments); 866 scheduleInjectIds(this); 867 if (typeof this.$watch === 'function') { 868 this.$watch('showSwatches', (val) => { 869 if (val) scheduleInjectIds(this); 870 }); 871 } 872 }; 873 component.__amxnotifInitWrapped = true; 874 } 875 876 if (component.optionConfig && component.optionConfig.attributes) { 877 const attrs = component.optionConfig.attributes; 878 for (let attrId in attrs) { 879 const attr = attrs[attrId]; 880 if (attr && attr.options) { 881 attr.options.forEach(opt => { 882 opt._amxnotif_attribute_id = attrId; 883 }); 884 } 885 } 886 } 887 }; 888 })(); 889</script>
889 890</head> 891<body id="html-body" class="cms-home page-layout-1column cms-index-index page-layout-cms-full-width"> 892 893<input name="form_key" type="hidden" value="aWz8bSEf3XRKW3EU" /> 894 <noscript> 895 <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"> 896 <div class="container text-center"> 897 <p> 898 <strong>JavaScript scheint in Ihrem Browser deaktiviert zu sein.</strong> 899 <span> 900 Um unsere Website in bester Weise zu erfahren, aktivieren Sie Javascript in Ihrem Browser. </span> 901 </p> 902 </div> 903 </section> 904 </noscript> 905 906
907<script> 908 document.body.addEventListener('touchstart', () => {}, {passive: true}) 909</script>
vendor: 1 bytes, line 909
909
910<script> 911 window.addEventListener('DOMContentLoaded', () => { 912 if (hyva && hyva.formValidation) { 913 hyva.formValidation.addRule('postcode', function(value, options, field, context) { 914 return true; 915 }) 916 } 917 }) 918</script>
vendor: 1 bytes, line 918
918
919<script> 920 // https://github.com/Fischer-L/autoComplt 921 !function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.autoComplt=t.returnExports=e()}(this,function(){"use strict";Array.prototype.indexOf||(Array.prototype.indexOf=function(t,e){if(void 0===this||null===this)throw new TypeError('"this" is null or not defined');var o=this.length>>>0;for(e=+e||0,Math.abs(e)===1/0&&(e=0),0>e&&(e+=o,0>e&&(e=0));o>e;e++)if(this[e]===t)return e;return-1});var t=function(){var t=-1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent,o=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=o.exec(e)&&(t=+RegExp.$1)}return-1===t?NaN:t},e=function(){var e=window.navigator.userAgent.toLowerCase();return e.search(/mobile|windows phone/)>=0?i.modeMobile:t()<=9?i.modePC:o().windowWidth>i.modeMobileW?i.modePC:i.modeMobile},o=function(){return window.innerWidth?{windowWidth:window.innerWidth,windowHeight:window.innerHeight}:document.documentElement.offsetHeight?{windowWidth:document.documentElement.offsetWidth,windowHeight:document.documentElement.offsetHeight}:document.body.offsetHeight?{windowWidth:document.body.offsetWidth,windowHeight:document.body.offsetHeight}:document.documentElement.clientHeight?{windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight}:document.body.clientHeight?{windowWidth:document.body.clientWidth,windowHeight:document.body.clientHeight}:{windowWidth:-1,windowHeight:-1}},i=function(t){return i=t,t.modePC="modePC",t.modeMobile="modeMobile",t.modeMobileW=768,t.autoCompltListClass="autoComplt-list",t.autoCompltHintClass="autoComplt-hint",t.autoCompltHintSelectedClass="autoComplt-hint-selected",t.maxHintNum=e()===i.modePC?10:5,t.autoCompltDelay=250,t.hiddenArg_close_list_n_make_final_selection="hiddenArg_close_list_n_make_final_selection",t.listStatus={attr:"data-listStatus",open:"open"},t.keyCode={up:38,down:40,esc:27,enter:13},t.defaultStyles={autoCompltList:{maxHeight:"none",border:"1px solid #aaa",padding:"0",margin:"0",zIndex:99,overflowX:"hidden",overflowY:"auto",display:"none",position:"absolute",backgroundColor:"#fff"},autoCompltHint:{height:"1.5em",padding:e()===i.modePC?"2px 6px 2px 10px":"6px 6px 6px 10px",margin:"6px 0",overflow:"hidden",listStyleType:"none",color:"#000",backgroundColor:"#fff",cursor:"default",fontSize:"1em"},autoCompltHintSelected:{color:"#fff",backgroundColor:"#3399ff"}},t.adjStyleAttrs={autoCompltList:["border","maxHeight","backgroundColor"],autoCompltHint:["height","padding","margin","color","backgroundColor","fontSize"],autoCompltHintSelected:["color","backgroundColor"]},t.listenersSupported=["select"],i}({}),n=function(t){return t||(t=window.event),t.target||(t.target=t.srcElement),t.stopBubble=function(){this.cancelBubble=!0,this.stopPropoagation&&this.stopPropoagation()},t.stopDefault=function(){return this.preventDefault&&this.preventDefault(),this.returnValue=!1,!1},t},l=function(t,e,o){t.addEventListener?t.addEventListener(e,o):t.attachEvent&&t.attachEvent("on"+e,o)},s=function(t,e,o){t.removeEventListener?t.removeEventListener(e,o):t.detachEvent&&t.detachEvent("on"+e,o)},u=function(t,e){var o=null;if(window.getComputedStyle)o=window.getComputedStyle(t)[e]||null;else if(t.currentStyle){o=t.currentStyle&&t.currentStyle[e];var i,n,l=t.style;null==o&&l&&l[e]&&(o=l[e]),i=l.left,n=t.runtimeStyle&&t.runtimeStyle.left,n&&(t.runtimeStyle.left=t.currentStyle.left),l.left="fontSize"===e?"1em":o,o=l.pixelLeft+"px",l.left=i,n&&(t.runtimeStyle.left=n)}return o},a={buildElem:function(t){var e=document.createElement("DIV");return e.innerHTML=t,e.firstChild.cloneNode(!0)},buildHint:function(t,e){return"string"==typeof t&&t?(t=this.buildElem('<li class="'+i.autoCompltHintClass+'">'+t+"</li>"),t.style.height=t.style.lineHeight=e.autoCompltHint.height,t.style.padding=e.autoCompltHint.padding,t.style.margin=e.autoCompltHint.margin,t.style.overflow=e.autoCompltHint.overflow,t.style.listStyleType=e.autoCompltHint.listStyleType,t.style.color=e.autoCompltHint.color,t.style.backgroundColor=e.autoCompltHint.backgroundColor,t.style.cursor=e.autoCompltHint.cursor,t.style.fontSize=e.autoCompltHint.fontSize,t):null},buildList:function(t){var e=this.buildElem('<ul class="'+i.autoCompltListClass+'"></ul>');return e.style.maxHeight=t.autoCompltList.maxHeight,e.style.border=t.autoCompltList.border,e.style.padding=t.autoCompltList.padding,e.style.margin=t.autoCompltList.margin,e.style.zIndex=t.autoCompltList.zIndex,e.style.overflowX=t.autoCompltList.overflowX,e.style.overflowY=t.autoCompltList.overflowY,e.style.display=t.autoCompltList.display,e.style.position=t.autoCompltList.position,e.style.backgroundColor=t.autoCompltList.backgroundColor,e}},r=function(t){this.uiElem=null,this.assocInput=t,this.mouseOnList=!1,this.onMouseSelectionListener=null,this.maxHintNum=i.maxHintNum,this.styles=JSON.parse(JSON.stringify(i.defaultStyles))};r.prototype.genList=function(){if(!this.uiElem){var t=this;this.uiElem=a.buildList(this.styles),l(this.uiElem,"mouseover",function(e){e=n(e),t.isHint(e.target)&&(t.pick(e.target),t.autoScroll())}),l(this.uiElem,"mouseout",function(e){t.unpick()}),l(this.uiElem,"mousedown",function(e){t.mouseOnList=!0,setTimeout(function(){t.assocInput.focus()},50)}),l(this.uiElem,"mouseup",function(e){e=n(e),t.isHint(e.target)&&(t.pick(e.target),"function"==typeof t.onMouseSelectionListener&&t.onMouseSelectionListener())}),document.body.appendChild(this.uiElem)}},r.prototype.isHint=function(t){if(t&&"object"==typeof t&&1===t.nodeType){var e=" "+t.className+" ";return e.indexOf(" "+i.autoCompltHintClass+" ")>=0}return!1},r.prototype.putHints=function(t){var e=0;if(t instanceof Array){var o,i,n=[];for(i=Math.min(t.length,this.maxHintNum),o=0;i>o;o++)n.push(a.buildHint(t[o],this.styles)),n[n.length-1]||n.pop();if(n.length>0){var l=document.createDocumentFragment();for(o=0,e=n.length;e>o;o++)l.appendChild(n[o]);this.clearHints(),this.genList(),this.uiElem.appendChild(l)}}return e},r.prototype.clearHints=function(){this.uiElem&&(this.uiElem.innerHTML="")},r.prototype.isOpen=function(){return this.uiElem?this.uiElem.getAttribute(i.listStatus.attr)==i.listStatus.open:!1},r.prototype.open=function(){var t;if(this.uiElem&&(t=this.uiElem.querySelectorAll("."+i.autoCompltHintClass))&&t.length){var e,o;for(o=this.assocInput.getBoundingClientRect(),this.uiElem.style.top=(document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)+o.bottom+"px",this.uiElem.style.left=o.left+"px",o=o.right-o.left-parseFloat(u(this.uiElem,"borderLeftWidth"))-parseFloat(u(this.uiElem,"borderRightWidth")),this.uiElem.style.width=o+"px",e=0,o=0;e<t.length;
921e++)o+=parseFloat(u(t[e],"height"))+parseFloat(u(t[e],"paddingTop"))+parseFloat(u(t[e],"paddingBottom")),t[e+1]&&(o+=Math.max(parseFloat(u(t[e],"marginBottom")),parseFloat(u(t[e+1],"marginTop"))));o+=parseFloat(u(t[0],"marginTop"))+parseFloat(u(t[t.length-1],"marginBottom")),this.uiElem.style.height=o+1+"px",this.uiElem.setAttribute(i.listStatus.attr,i.listStatus.open),this.uiElem.style.display="block"}},r.prototype.close=function(){this.uiElem&&(this.mouseOnList=!1,this.uiElem.parentNode.removeChild(this.uiElem),this.uiElem=null)},r.prototype.autoScroll=function(){var t=this.getPicked();if(t){var e,o=0,i=0,n=t.clientHeight,l=parseFloat(u(t,"marginTop")),s=parseFloat(u(t,"marginBottom"));for(e=t.previousSibling,i=n+(e?Math.max(l,s):l);e;)o+=n,e=e.previousSibling,o+=e?Math.max(l,s):l;(this.uiElem.clientHeight+this.uiElem.scrollTop-o<i||o-this.uiElem.scrollTop<i)&&(this.uiElem.scrollTop=o)}},r.prototype.pick=function(t){if(this.uiElem){var e=null;if(this.isHint(t))e=t;else if("number"==typeof t&&(t>=0||-1===t)){var o=this.uiElem.querySelectorAll("."+i.autoCompltHintClass);o.length>0&&(e=+t,e=-1===e||e>o.length-1?o.length-1:e,e=o[e])}null!==e&&(this.unpick(),e.className+=" "+i.autoCompltHintSelectedClass,e.style.color=this.styles.autoCompltHintSelected.color,e.style.backgroundColor=this.styles.autoCompltHintSelected.backgroundColor)}},r.prototype.unpick=function(){if(this.uiElem){var t=this.getPicked();t&&(t.className=i.autoCompltHintClass,t.style.color=this.styles.autoCompltHint.color,t.style.backgroundColor=this.styles.autoCompltHint.backgroundColor)}},r.prototype.getPicked=function(){return this.uiElem?this.uiElem.querySelector("."+i.autoCompltHintSelectedClass)||null:null};var c={enable:function(t,o){if(t&&"object"==typeof t&&"string"==typeof t.tagName&&"input"==t.tagName.toLowerCase()&&"text"==t.type&&1===t.nodeType&&!t.autoComplt){t.autoComplt={};var u=i.autoCompltDelay,a=!0,c="",p=null,m=null,d=new r(t),f=function(){if(t.value.length>0&&a&&"function"==typeof p&&c!==t.value){var e={that:t,compltTarget:c=t.value,compltTargetMatchCurrentTarget:function(){return e.compltTarget===c},call:function(){e.compltTargetMatchCurrentTarget()&&p.call(e.that,e.compltTarget,e.openHint)},openHint:function(t){e.compltTargetMatchCurrentTarget()&&(d.putHints(t)?d.open():e.that.autoComplt.close())}};setTimeout(e.call,u)}},h=function(){if(a){var e=d.getPicked();e?t.value=e.innerHTML:t.value=c}},y=function(e){d.mouseOnList?(t.focus(),d.mouseOnList=!1):d.isOpen()&&t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection)},g=function(o){if(e()!==i.modeMobile&&(o=n(o),a))if("keydown"!=o.type||!d.isOpen()||o.keyCode!==i.keyCode.up&&o.keyCode!==i.keyCode.down){if("keyup"==o.type){var l=!1;switch(o.keyCode){case i.keyCode.up:case i.keyCode.down:d.isOpen()||(l=!0);break;case i.keyCode.esc:d.isOpen()&&(t.value=c,t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection));break;case i.keyCode.enter:d.isOpen()&&(h(),t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection));break;default:l=!0}l&&(t.value.length>0?f():t.autoComplt.close())}}else{var s=d.getPicked();o.keyCode===i.keyCode.up?s?s.previousSibling?d.pick(s.previousSibling):d.unpick():d.pick(-1):o.keyCode===i.keyCode.down&&(s?s.nextSibling?d.pick(s.nextSibling):d.unpick():d.pick(0)),d.autoScroll(),h()}},C=function(o){e()!==i.modePC&&(t.value.length>0?f():t.autoComplt.close())},H=function(e){null!=m&&"function"==typeof m[e]&&m[e].call(t)};return t.autoComplt.setHintsFetcher=function(t){return null===t||"function"==typeof t?(p=t,!0):!1},t.autoComplt.setListener=function(t,e){return(null===e||"function"==typeof e)&&i.listenersSupported.indexOf(t)>=0?(null==m&&(m={}),m[t]=e,!0):!1},t.autoComplt.setStyles=function(t,e){var o,n,l=!1;switch(t){case i.autoCompltListClass:o=d.styles.autoCompltList,n=i.adjStyleAttrs.autoCompltList;break;case i.autoCompltHintClass:o=d.styles.autoCompltHint,n=i.adjStyleAttrs.autoCompltHint;break;case i.autoCompltHintSelectedClass:o=d.styles.autoCompltHintSelected,n=i.adjStyleAttrs.autoCompltHintSelected}if(e instanceof Object&&o&&n)for(var s=0;s<n.length;s++)("string"==typeof e[n[s]]||"number"==typeof e[n[s]])&&(l||(l={}),l[n[s]]=o[n[s]]=e[n[s]]);return l},t.autoComplt.config=function(t){var e=!1;if(t instanceof Object){var o;void 0!==t.delay&&(o=Math.floor(t.delay))>0&&(e||(e={}),u=e.delay=o),void 0!==t.maxHintNum&&(o=Math.floor(t.maxHintNum))>0&&(e||(e={}),d.maxHintNum=e.maxHintNum=o)}return e},t.autoComplt.close=function(){c="",d.close(),a&&""!==t.value&&arguments[0]===i.hiddenArg_close_list_n_make_final_selection&&H("select")},t.autoComplt.enable=function(){a=!0},t.autoComplt.disable=function(){a=!1,this.close()},t.autoComplt.destroy=function(){s(t,"blur",y),s(t,"keyup",g),s(t,"keydown",g),this.disable(),delete t.autoComplt},d.onMouseSelectionListener=function(){h(),t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection)},l(t,"blur",y),l(t,"keyup",g),l(t,"keydown",g),l(t,"input",C),o instanceof Object&&(t.autoComplt.config(o),t.autoComplt.setHintsFetcher(o.hintsFetcher)),t}return null}};return c}); 922</script>
922 923<div class="page-wrapper"><header class="page-header"><a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white 924 contentarea" 925 href="#contentarea"> 926 <span> 927 Zum Inhalt springen </span> 928</a>
929<script> 930 function initHeader () { 931 return { 932 searchOpen: false, 933 cart: {}, 934 isCartOpen: false, 935 getData(data) { 936 if (data.cart) { this.cart = data.cart } 937 }, 938 isCartEmpty() { 939 return !this.cart.summary_count 940 }, 941 toggleCart(event) { 942 if (event.detail && event.detail.isOpen !== undefined) { 943 this.isCartOpen = event.detail.isOpen 944 if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { 945 this.$refs.cartButton.focus() 946 } 947 } else { 948 this.isCartOpen = true 949 } 950 } 951 } 952 } 953 function initCompareHeader() { 954 return { 955 compareProducts: null, 956 itemCount: 0, 957 receiveCompareData(data) { 958 if (data['compare-products']) { 959 this.compareProducts = data['compare-products']; 960 this.itemCount = this.compareProducts.count; 961 } 962 } 963 } 964 } 965</script>
965 966<div id="header" 967 class="relative z-30 w-full border-b shadow bg-container-lighter border-container-lighter" 968 x-data="initHeader()" 969 @private-content-loaded.window="getData(event.detail.data)" 970> 971 <div class="container flex flex-wrap lg:flex-nowrap items-center justify-between w-full px-6 py-3 mx-auto mt-0"> 972 <!--Logo--> 973 <div class="order-1 sm:order-2 lg:order-1 w-full pb-2 sm:w-auto sm:pb-0"> 974 <a 975 class="flex items-center justify-center text-xl font-medium tracking-wide text-gray-800 976 no-underline hover:no-underline font-title" 977 href="https://meiner.de/fmv_de/" 978 aria-label="Go to Home page" 979 > 980 <img 981 src="https://meiner.de/media/logo/websites/1/FMV_BW_quer_4c.png" 982 alt="Felix Meiner Verlag GmbH" 983 width="325" height="81" loading="eager" 984 /> 985 </a> 986</div> 987 988 <!--Main Navigation--> 989 990<nav 991 class="z-20 order-2 sm:order-1 lg:order-2 navigation lg:hidden w-12 h-12" 992 aria-label="Site navigation" 993 x-data="initMenuMobile_6ab96af40f1d4()" 994 @load.window="setActiveMenu($root)" 995 @keydown.window.escape="closeMenu()" 996> 997 <button 998 type="button" 999 class="block" 1000 aria-label="Open menu" 1001 :aria-expanded="open" 1002 x-ref="mobileMenuTrigger" 1003 x-show="!open" 1004 @click="openMenu()" 1005 > 1006 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="28" height="28" aria-hidden="true"> 1007 <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"/> 1008</svg> 1009 </button> 1010 <div 1011 x-ref="mobileMenuNavLinks" 1012 class=" 1013 z-50 fixed top-0 right-0 w-full h-full p-1 hidden 1014 flex-col border-t border-container bg-container-lighter 1015 overflow-y-auto overflow-x-hidden 1016 " 1017 :class="{ 'flex': open, 'hidden': !open }" 1018 :aria-hidden="open ? 'false' : 'true'" 1019 role="dialog" 1020 aria-modal="true" 1021 > 1022 <ul 1023 class="border-t flex flex-col gap-y-1 mt-16" 1024 aria-label="Site navigation links" 1025 > 1026 <li 1027 data-child-id="category-node-10-main" 1028 class="level-0" 1029 > 1030 <div 1031 class="flex items-center transition-transform duration-150 ease-in-out transform" 1032 :class="{ 1033 '-translate-x-full' : mobilePanelActiveId, 1034 'translate-x-0' : !mobilePanelActiveId 1035 }" 1036 > 1037 <a 1038 class="flex items-center w-full px-8 py-4 border-b cursor-pointer 1039 bg-container-lighter border-container level-0 1040 " 1041 href="https://meiner.de/fmv_de/programm" 1042 title="Programm" 1043 > 1044 Programm </a> 1045 <div 1046 @click="openSubcategory('category-node-10')" 1047 class="absolute right-0 flex items-center justify-center w-11 h-11 mr-8 cursor-pointer 1048 bg-container-lighter border-container" 1049 aria-label="Open Programm subcategories" 1050 aria-haspopup="true" 1051 :aria-expanded="mobilePanelActiveId === 'category-node-10'" 1052 > 1053 <div class="w-8 h-8 border rounded"> 1054 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-full h-full p-1" width="24" height="24" aria-hidden="true"> 1055 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 1056</svg> 1057 </div> 1058 </div> 1059 </div> 1060 <div 1061 data-child-id="category-node-10" 1062 class="absolute top-0 right-0 z-10 flex flex-col gap-1 w-full h-full p-1 bg-container-lighter" 1063 :class="{ 1064 'hidden': mobilePanelActiveId !== 'category-node-10' 1065 }" 1066 > 1067 <ul 1068 class="mt-16 transition-transform duration-200 ease-in-out translate-x-full transform" 1069 :class="{ 1070 'translate-x-full' : mobilePanelActiveId !== 'category-node-10', 1071 'translate-x-0' : mobilePanelActiveId === 'category-node-10', 1072 }" 1073 aria-label="Subcategories" 1074 > 1075 <li> 1076 <button 1077 type="button" 1078 class="flex items-center px-8 py-4 border-b cursor-pointer bg-container border-container w-full border-t" 1079 @click="backToMainCategories('category-node-10-main')" 1080 aria-label="Back to main categories" 1081 > 1082 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 1083 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> 1084</svg>
1085 <span class="ml-4"> 1086 Programm </span> 1087 </button> 1088 </li> 1089 <li> 1090 <a 1091 href="https://meiner.de/fmv_de/programm" 1092 title="Programm" 1093 class="flex items-center w-full px-8 py-4 border-b cursor-pointer 1094 bg-container-lighter border-container 1095 " 1096 > 1097 <span class=""> 1098 Alle anzeigen </span> 1099 </a> 1100 </li> 1101 <li x-data="{ open: false }"> 1102 <a 1103 href="https://meiner.de/fmv_de/programm/reihen" 1104 title="Reihen" 1105 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1106 bg-container-lighter border-container min-h-[77px]" 1107 > 1108 <span class="text-base text-gray-700"> 1109 Reihen </span> 1110 <button 1111 @click.prevent="open = !open" 1112 class="flex items-center justify-center w-11 h-11 cursor-pointer 1113 bg-container-lighter border-container" 1114 :class="{ 'rotate-90': open, 'rotate-0': !open }" 1115 aria-label="Open Reihen subcategories" 1116 > 1117 <div class="w-8 h-8 border rounded pointer-events-none"> 1118 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-full h-full p-1 pointer-events-none" width="24" height="24" aria-hidden="true"> 1119 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 1120</svg> 1121 </div> 1122 </button> 1123 </a> 1124 1125 <ul class="subsubmenu overflow-hidden" x-show="open" 1126 x-transition:enter="transition-all ease-out duration-300" 1127 x-transition:enter-start="h-0 overflow-hidden" 1128 x-transition:enter-end="h-auto overflow-hidden" 1129 x-transition:leave="transition-all ease-in duration-200" 1130 x-transition:leave-start="h-auto overflow-hidden" 1131 x-transition:leave-end="h-0 overflow-hidden"> 1132 <li x-data="{ open2: false }"> 1133 <a 1134 href="https://meiner.de/fmv_de/programm/reihen/acta-cusana-beihefte" 1135 title="Acta Cusana - Beihefte" 1136 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1137 bg-container-lighter border-container min-h-[77px]" 1138 >
1139 <span class="ml-6 text-base text-gray-700"> 1140 Acta Cusana - Beihefte </span> 1141 1142 <!----------------- 4te Ebene ------------------> 1143 <!----------------- ------------------> 1144 1145 </a> 1146 1147 <!----------------- 4te Ebene ------------------> 1148 <!----------------- ------------------> 1149 1150 </li> 1151 <li x-data="{ open2: false }"> 1152 <a 1153 href="https://meiner.de/fmv_de/programm/reihen/archiv-fur-begriffsgeschichte-sonderhefte" 1154 title="Archiv für Begriffsgeschichte - Sonderhefte" 1155 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1156 bg-container-lighter border-container min-h-[77px]" 1157 > 1158 <span class="ml-6 text-base text-gray-700"> 1159 Archiv für Begriffsgeschichte - Sonderhefte </span> 1160 1161 <!----------------- 4te Ebene ------------------> 1162 <!----------------- ------------------> 1163 1164 </a> 1165 1166 <!----------------- 4te Ebene ------------------> 1167 <!----------------- ------------------> 1168 1169 </li> 1170 <li x-data="{ open2: false }"> 1171 <a 1172 href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe" 1173 title="Blaue Reihe" 1174 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1175 bg-container-lighter border-container min-h-[77px]" 1176 > 1177 <span class="ml-6 text-base text-gray-700"> 1178 Blaue Reihe </span> 1179 1180 <!----------------- 4te Ebene ------------------> 1181 <!----------------- ------------------> 1182 1183 </a> 1184 1185 <!----------------- 4te Ebene ------------------> 1186 <!----------------- ------------------> 1187 1188 </li> 1189 <li x-data="{ open2: false }"> 1190 <a 1191 href="https://meiner.de/fmv_de/programm/reihen/cassirer-forschungen" 1192 title="Cassirer-Forschungen" 1193 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1194 bg-container-lighter border-container min-h-[77px]" 1195 >
1196 <span class="ml-6 text-base text-gray-700"> 1197 Cassirer-Forschungen </span> 1198 1199 <!----------------- 4te Ebene ------------------> 1200 <!----------------- ------------------> 1201 1202 </a> 1203 1204 <!----------------- 4te Ebene ------------------> 1205 <!----------------- ------------------> 1206 1207 </li> 1208 <li x-data="{ open2: false }"> 1209 <a 1210 href="https://meiner.de/fmv_de/programm/reihen/corpus-philosophorum-teutonicorum-medii-aevi-beihefte" 1211 title="Corpus Philosophorum Teutonicorum Medii Aevi - Beihefte" 1212 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1213 bg-container-lighter border-container min-h-[77px]" 1214 > 1215 <span class="ml-6 text-base text-gray-700"> 1216 Corpus Philosophorum Teutonicorum Medii Aevi - Beihefte </span> 1217 1218 <!----------------- 4te Ebene ------------------> 1219 <!----------------- ------------------> 1220 1221 </a> 1222 1223 <!----------------- 4te Ebene ------------------> 1224 <!----------------- ------------------> 1225 1226 </li> 1227 <li x-data="{ open2: false }"> 1228 <a 1229 href="https://meiner.de/fmv_de/programm/reihen/hegel-deutungen" 1230 title="Hegel-Deutungen" 1231 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1232 bg-container-lighter border-container min-h-[77px]" 1233 > 1234 <span class="ml-6 text-base text-gray-700"> 1235 Hegel-Deutungen </span> 1236 1237 <!----------------- 4te Ebene ------------------> 1238 <!----------------- ------------------> 1239 1240 </a> 1241 1242 <!----------------- 4te Ebene ------------------> 1243 <!----------------- ------------------> 1244 1245 </li> 1246 <li x-data="{ open2: false }"> 1247 <a 1248 href="https://meiner.de/fmv_de/programm/reihen/hegel-studien-beihefte" 1249 title="Hegel Studien - Beihefte" 1250 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1251 bg-container-lighter border-container min-h-[77px]" 1252 >
1253 <span class="ml-6 text-base text-gray-700"> 1254 Hegel Studien - Beihefte </span> 1255 1256 <!----------------- 4te Ebene ------------------> 1257 <!----------------- ------------------> 1258 1259 </a> 1260 1261 <!----------------- 4te Ebene ------------------> 1262 <!----------------- ------------------> 1263 1264 </li> 1265 <li x-data="{ open2: false }"> 1266 <a 1267 href="https://meiner.de/fmv_de/programm/reihen/kant-forschungen" 1268 title="Kant-Forschungen" 1269 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1270 bg-container-lighter border-container min-h-[77px]" 1271 > 1272 <span class="ml-6 text-base text-gray-700"> 1273 Kant-Forschungen </span> 1274 1275 <!----------------- 4te Ebene ------------------> 1276 <!----------------- ------------------> 1277 1278 </a> 1279 1280 <!----------------- 4te Ebene ------------------> 1281 <!----------------- ------------------> 1282 1283 </li> 1284 <li x-data="{ open2: false }"> 1285 <a 1286 href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht" 1287 title="Methoden im Philosophie- und Ethikunterricht" 1288 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1289 bg-container-lighter border-container min-h-[77px]" 1290 > 1291 <span class="ml-6 text-base text-gray-700"> 1292 Methoden im Philosophie- und Ethikunterricht </span> 1293 1294 <!----------------- 4te Ebene ------------------> 1295 <!----------------- ------------------> 1296 1297 </a> 1298 1299 <!----------------- 4te Ebene ------------------> 1300 <!----------------- ------------------> 1301 1302 </li> 1303 <li x-data="{ open2: false }"> 1304 <a 1305 href="https://meiner.de/fmv_de/programm/reihen/paradeigmata" 1306 title="Paradeigmata" 1307 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1308 bg-container-lighter border-container min-h-[77px]" 1309 >
1310 <span class="ml-6 text-base text-gray-700"> 1311 Paradeigmata </span> 1312 1313 <!----------------- 4te Ebene ------------------> 1314 <!----------------- ------------------> 1315 1316 </a> 1317 1318 <!----------------- 4te Ebene ------------------> 1319 <!----------------- ------------------> 1320 1321 </li> 1322 <li x-data="{ open2: false }"> 1323 <a 1324 href="https://meiner.de/fmv_de/programm/reihen/phanomenologische
1324-forschungen-beiheft" 1325 title="Phänomenologische Forschungen - Beihefte" 1326 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1327 bg-container-lighter border-container min-h-[77px]" 1328 > 1329 <span class="ml-6 text-base text-gray-700"> 1330 Phänomenologische Forschungen - Beihefte </span> 1331 1332 <!----------------- 4te Ebene ------------------> 1333 <!----------------- ------------------> 1334 1335 </a> 1336 1337 <!----------------- 4te Ebene ------------------> 1338 <!----------------- ------------------> 1339 1340 </li> 1341 <li x-data="{ open2: false }"> 1342 <a 1343 href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek" 1344 title="Philosophische Bibliothek" 1345 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1346 bg-container-lighter border-container min-h-[77px]" 1347 > 1348 <span class="ml-6 text-base text-gray-700"> 1349 Philosophische Bibliothek </span> 1350 1351 <!----------------- 4te Ebene ------------------> 1352 <!----------------- ------------------> 1353 1354 </a> 1355 1356 <!----------------- 4te Ebene ------------------> 1357 <!----------------- ------------------> 1358 1359 </li> 1360 <li x-data="{ open2: false }"> 1361 <a 1362 href="https://meiner.de/fmv_de/programm/reihen/philosophisch-literarische-streitsachen" 1363 title="Philosophisch-literarische Streitsachen" 1364 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1365 bg-container-lighter border-container min-h-[77px]" 1366 > 1367 <span class="ml-6 text-base text-gray-700"> 1368 Philosophisch-literarische Streitsachen </span> 1369 1370 <!----------------- 4te Ebene ------------------> 1371 <!----------------- ------------------> 1372 1373 </a> 1374 1375 <!----------------- 4te Ebene ------------------> 1376 <!----------------- ------------------> 1377 1378 </li> 1379 <li x-data="{ open2: false }"> 1380 <a 1381 href="https://meiner.de/fmv_de/programm/reihen/schriften-zur-transzendentalphilosophie" 1382 title="Schriften zur Transzendentalphilosophie" 1383 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1384 bg-container-lighter border-container min-h-[77px]" 1385 >
1386 <span class="ml-6 text-base text-gray-700"> 1387 Schriften zur Transzendentalphilosophie </span> 1388 1389 <!----------------- 4te Ebene ------------------> 1390 <!----------------- ------------------> 1391 1392 </a> 1393 1394 <!----------------- 4te Ebene ------------------> 1395 <!----------------- ------------------> 1396 1397 </li> 1398 <li x-data="{ open2: false }"> 1399 <a 1400 href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica" 1401 title="Sino-philosophica" 1402 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1403 bg-container-lighter border-container min-h-[77px]" 1404 > 1405 <span class="ml-6 text-base text-gray-700"> 1406 Sino-philosophica </span> 1407 1408 <!----------------- 4te Ebene ------------------> 1409 <!----------------- ------------------> 1410 1411 </a> 1412 1413 <!----------------- 4te Ebene ------------------> 1414 <!----------------- ------------------> 1415 1416 </li> 1417 <li x-data="{ open2: false }"> 1418 <a 1419 href="https://meiner.de/fmv_de/programm/reihen/studien-zu-den-quaestiones-disputatae-des-thomas-von-aquin" 1420 title="Studien zu den Quaestiones Disputatae des Thomas von Aquin" 1421 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1422 bg-container-lighter border-container min-h-[77px]" 1423 > 1424 <span class="ml-6 text-base text-gray-700"> 1425 Studien zu den Quaestiones Disputatae des Thomas von Aquin </span> 1426 1427 <!----------------- 4te Ebene ------------------> 1428 <!----------------- ------------------> 1429 1430 </a> 1431 1432 <!----------------- 4te Ebene ------------------> 1433 <!----------------- ------------------> 1434 1435 </li> 1436 <li x-data="{ open2: false }"> 1437 <a 1438 href="https://meiner.de/fmv_de/programm/reihen/studien-zum-achtzehnten-jahrhundert" 1439 title="Studien zum achtzehnten Jahrhundert" 1440 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1441 bg-container-lighter border-container min-h-[77px]" 1442 >
1443 <span class="ml-6 text-base text-gray-700"> 1444 Studien zum achtzehnten Jahrhundert </span> 1445 1446 <!----------------- 4te Ebene ------------------> 1447 <!----------------- ------------------> 1448 1449 </a> 1450 1451 <!----------------- 4te Ebene ------------------> 1452 <!----------------- ------------------> 1453 1454 </li> 1455 <li x-data="{ open2: false }"> 1456 <a 1457 href="https://meiner.de/fmv_de/programm/reihen/topos-poietikos" 1458 title="Topos Poietikos" 1459 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1460 bg-container-lighter border-container min-h-[77px]" 1461 > 1462 <span class="ml-6 text-base text-gray-700"> 1463 Topos Poietikos </span> 1464 1465 <!----------------- 4te Ebene ------------------> 1466 <!----------------- ------------------> 1467 1468 </a> 1469 1470 <!----------------- 4te Ebene ------------------> 1471 <!----------------- ------------------> 1472 1473 </li> 1474 <li x-data="{ open2: false }"> 1475 <a 1476 href="https://meiner.de/fmv_de/programm/reihen/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft-sonderhefte" 1477 title="Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft - Sonderhefte" 1478 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1479 bg-container-lighter border-container min-h-[77px]" 1480 > 1481 <span class="ml-6 text-base text-gray-700"> 1482 Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft - Sonderhefte </span> 1483 1484 <!----------------- 4te Ebene ------------------> 1485 <!----------------- ------------------> 1486 1487 </a> 1488 1489 <!----------------- 4te Ebene ------------------> 1490 <!----------------- ------------------> 1491 1492 </li> 1493 </ul> 1494 1495 </li> 1496 <li x-data="{ open: false }"> 1497 <a 1498 href="https://meiner.de/fmv_de/programm/zeitschriften" 1499 title="Zeitschriften & Jahrbücher" 1500 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1501 bg-container-lighter border-container min-h-[77px]" 1502 >
1503 <span class="text-base text-gray-700"> 1504 Zeitschriften & Jahrbücher </span> 1505 <button 1506 @click.prevent="open = !open" 1507 class="flex items-center justify-center w-11 h-11 cursor-pointer 1508 bg-container-lighter border-container" 1509 :class="{ 'rotate-90': open, 'rotate-0': !open }" 1510 aria-label="Open Zeitschriften & Jahrbücher subcategories" 1511 > 1512 <div class="w-8 h-8 border rounded pointer-events-none"> 1513 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-full h-full p-1 pointer-events-none" width="24" height="24" aria-hidden="true"> 1514 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 1515</svg> 1516 </div> 1517 </button> 1518 </a> 1519 1520 <ul class="subsubmenu overflow-hidden" x-show="open" 1521 x-transition:enter="transition-all ease-out duration-300" 1522 x-transition:enter-start="h-0 overflow-hidden" 1523 x-transition:enter-end="h-auto overflow-hidden" 1524 x-transition:leave="transition-all ease-in duration-200" 1525 x-transition:leave-start="h-auto overflow-hidden" 1526 x-transition:leave-end="h-0 overflow-hidden"> 1527 <li x-data="{ open2: false }"> 1528 <a 1529 href="https://meiner.de/fmv_de/programm/zeitschriften/aufklarung" 1530 title="Aufklärung" 1531 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1532 bg-container-lighter border-container min-h-[77px]" 1533 > 1534 <span class="ml-6 text-base text-gray-700"> 1535 Aufklärung </span> 1536 1537 <!----------------- 4te Ebene ------------------> 1538 <!----------------- ------------------> 1539 1540 </a> 1541 1542 <!----------------- 4te Ebene ------------------> 1543 <!----------------- ------------------> 1544 1545 </li> 1546 <li x-data="{ open2: false }"> 1547 <a 1548 href="https://meiner.de/fmv_de/programm/zeitschriften/archiv-fur-begriffsgeschichte" 1549 title="Archiv für Begriffsgeschichte" 1550 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1551 bg-container-lighter border-container min-h-[77px]" 1552 >
1553 <span class="ml-6 text-base text-gray-700"> 1554 Archiv für Begriffsgeschichte </span> 1555 1556 <!----------------- 4te Ebene ------------------> 1557 <!----------------- ------------------> 1558 1559 </a> 1560 1561 <!----------------- 4te Ebene ------------------> 1562 <!----------------- ------------------> 1563 1564 </li> 1565 <li x-data="{ open2: false }"> 1566 <a 1567 href="https://meiner.de/fmv_de/programm/zeitschriften/deutsches-jahrbuch-philosophie" 1568 title="Deutsches Jahrbuch Philosophie" 1569 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1570 bg-container-lighter border-container min-h-[77px]" 1571 > 1572 <span class="ml-6 text-base text-gray-700"> 1573 Deutsches Jahrbuch Philosophie </span> 1574 1575 <!----------------- 4te Ebene ------------------> 1576 <!----------------- ------------------> 1577 1578 </a> 1579 1580 <!----------------- 4te Ebene ------------------> 1581 <!----------------- ------------------> 1582 1583 </li> 1584 <li x-data="{ open2: false }"> 1585 <a 1586 href="https://meiner.de/fmv_de/programm/zeitschriften/hegel-studien" 1587 title="Hegel-Studien" 1588 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1589 bg-container-lighter border-container min-h-[77px]" 1590 > 1591 <span class="ml-6 text-base text-gray-700"> 1592 Hegel-Studien </span> 1593 1594 <!----------------- 4te Ebene ------------------> 1595 <!----------------- ------------------> 1596 1597 </a> 1598 1599 <!----------------- 4te Ebene ------------------> 1600 <!----------------- ------------------> 1601 1602 </li> 1603 <li x-data="{ open2: false }"> 1604 <a 1605 href="https://meiner.de/fmv_de/programm/zeitschriften/kulturwissenschaftliche-zeitschrift" 1606 title="Kulturwissenschaftliche Zeitschrift" 1607 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1608 bg-container-lighter border-container min-h-[77px]" 1609 >
1610 <span class="ml-6 text-base text-gray-700"> 1611 Kulturwissenschaftliche Zeitschrift </span> 1612 1613 <!----------------- 4te Ebene ------------------> 1614 <!----------------- ------------------> 1615 1616 </a> 1617 1618 <!----------------- 4te Ebene ------------------> 1619 <!----------------- ------------------> 1620 1621 </li> 1622 <li x-data="{ open2: false }"> 1623 <a 1624 href="https://meiner.de/fmv_de/programm/zeitschriften/phanomenologische
1624-forschungen" 1625 title="Phänomenologische Forschungen" 1626 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1627 bg-container-lighter border-container min-h-[77px]" 1628 > 1629 <span class="ml-6 text-base text-gray-700"> 1630 Phänomenologische Forschungen </span> 1631 1632 <!----------------- 4te Ebene ------------------> 1633 <!----------------- ------------------> 1634 1635 </a> 1636 1637 <!----------------- 4te Ebene ------------------> 1638 <!----------------- ------------------> 1639 1640 </li> 1641 <li x-data="{ open2: false }"> 1642 <a 1643 href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft" 1644 title="Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft" 1645 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1646 bg-container-lighter border-container min-h-[77px]" 1647 > 1648 <span class="ml-6 text-base text-gray-700"> 1649 Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft </span> 1650 1651 <!----------------- 4te Ebene ------------------> 1652 <!----------------- ------------------> 1653 1654 </a> 1655 1656 <!----------------- 4te Ebene ------------------> 1657 <!----------------- ------------------> 1658 1659 </li> 1660 <li x-data="{ open2: false }"> 1661 <a 1662 href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-kulturphilosophie" 1663 title="Zeitschrift für Kulturphilosophie" 1664 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1665 bg-container-lighter border-container min-h-[77px]" 1666 > 1667 <span class="ml-6 text-base text-gray-700"> 1668 Zeitschrift für Kulturphilosophie </span> 1669 1670 <!----------------- 4te Ebene ------------------> 1671 <!----------------- ------------------> 1672 1673 </a> 1674 1675 <!----------------- 4te Ebene ------------------> 1676 <!----------------- ------------------> 1677 1678 </li> 1679 <li x-data="{ open2: false }"> 1680 <a 1681 href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-medien-und-kulturforschung" 1682 title="Zeitschrift für Medien- und Kulturforschung" 1683 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1684 bg-container-lighter border-container min-h-[77px]" 1685 >
1686 <span class="ml-6 text-base text-gray-700"> 1687 Zeitschrift für Medien- und Kulturforschung </span> 1688 1689 <!----------------- 4te Ebene ------------------> 1690 <!----------------- ------------------> 1691 1692 </a> 1693 1694 <!----------------- 4te Ebene ------------------> 1695 <!----------------- ------------------> 1696 1697 </li> 1698 </ul> 1699 1700 </li> 1701 <li x-data="{ open: false }"> 1702 <a 1703 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben" 1704 title="Werk- & Gesamtausgaben" 1705 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1706 bg-container-lighter border-container min-h-[77px]" 1707 > 1708 <span class="text-base text-gray-700"> 1709 Werk- & Gesamtausgaben </span> 1710 <button 1711 @click.prevent="open = !open" 1712 class="flex items-center justify-center w-11 h-11 cursor-pointer 1713 bg-container-lighter border-container" 1714 :class="{ 'rotate-90': open, 'rotate-0': !open }" 1715 aria-label="Open Werk- & Gesamtausgaben subcategories" 1716 > 1717 <div class="w-8 h-8 border rounded pointer-events-none"> 1718 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-full h-full p-1 pointer-events-none" width="24" height="24" aria-hidden="true"> 1719 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 1720</svg> 1721 </div> 1722 </button> 1723 </a> 1724 1725 <ul class="subsubmenu overflow-hidden" x-show="open" 1726 x-transition:enter="transition-all ease-out duration-300" 1727 x-transition:enter-start="h-0 overflow-hidden" 1728 x-transition:enter-end="h-auto overflow-hidden" 1729 x-transition:leave="transition-all ease-in duration-200" 1730 x-transition:leave-start="h-auto overflow-hidden" 1731 x-transition:leave-end="h-0 overflow-hidden"> 1732 <li x-data="{ open2: false }"> 1733 <a 1734 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/acta-cusana-quellen-zur-lebensgeschichte-des-nikolaus-von-kues" 1735 title="Acta Cusana. Quellen zur Lebensgeschichte des Nikolaus von Kues" 1736 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1737 bg-container-lighter border-container min-h-[77px]" 1738 >
1739 <span class="ml-6 text-base text-gray-700"> 1740 Acta Cusana. Quellen zur Lebensgeschichte des Nikolaus von Kues </span> 1741 1742 <!----------------- 4te Ebene ------------------> 1743 <!----------------- ------------------> 1744 1745 </a> 1746 1747 <!----------------- 4te Ebene ------------------> 1748 <!----------------- ------------------> 1749 1750 </li> 1751 <li x-data="{ open2: false }"> 1752 <a 1753 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/carnap-tagebucher" 1754 title="Carnap Tagebücher" 1755 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1756 bg-container-lighter border-container min-h-[77px]" 1757 > 1758 <span class="ml-6 text-base text-gray-700"> 1759 Carnap Tagebücher </span> 1760 1761 <!----------------- 4te Ebene ------------------> 1762 <!----------------- ------------------> 1763 1764 </a> 1765 1766 <!----------------- 4te Ebene ------------------> 1767 <!----------------- ------------------> 1768 1769 </li> 1770 <li x-data="{ open2: false }"> 1771 <a 1772 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/corpus-philosophorum-teutonicorum-medii-aevi" 1773 title="Corpus Philosophorum Teutonicorum Medii Aevi" 1774 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1775 bg-container-lighter border-container min-h-[77px]" 1776 > 1777 <span class="ml-6 text-base text-gray-700"> 1778 Corpus Philosophorum Teutonicorum Medii Aevi </span> 1779 1780 <!----------------- 4te Ebene ------------------> 1781 <!----------------- ------------------> 1782 1783 </a> 1784 1785 <!----------------- 4te Ebene ------------------> 1786 <!----------------- ------------------> 1787 1788 </li> 1789 <li x-data="{ open2: false }"> 1790 <a 1791 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/ernst-cassirer-gesammelte-werke" 1792 title="Ernst Cassirer - Gesammelte Werke" 1793 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1794 bg-container-lighter border-container min-h-[77px]" 1795 >
1796 <span class="ml-6 text-base text-gray-700"> 1797 Ernst Cassirer - Gesammelte Werke </span> 1798 1799 <!----------------- 4te Ebene ------------------> 1800 <!----------------- ------------------> 1801 1802 </a> 1803 1804 <!----------------- 4te Ebene ------------------> 1805 <!----------------- ------------------> 1806 1807 </li> 1808 <li x-data="{ open2: false }"> 1809 <a 1810 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/ernst-cassirer-nachlass" 1811 title="Ernst Cassirer - Nachlass" 1812 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1813 bg-container-lighter border-container min-h-[77px]" 1814 > 1815 <span class="ml-6 text-base text-gray-700"> 1816 Ernst Cassirer - Nachlass </span> 1817 1818 <!----------------- 4te Ebene ------------------> 1819 <!----------------- ------------------> 1820 1821 </a> 1822 1823 <!----------------- 4te Ebene ------------------> 1824 <!----------------- ------------------> 1825 1826 </li> 1827 <li x-data="{ open2: false }"> 1828 <a 1829 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/friedrich-heinrich-jacobi-werke" 1830 title="Friedrich Heinrich Jacobi - Werke" 1831 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1832 bg-container-lighter border-container min-h-[77px]" 1833 > 1834 <span class="ml-6 text-base text-gray-700"> 1835 Friedrich Heinrich Jacobi - Werke </span> 1836 1837 <!----------------- 4te Ebene ------------------> 1838 <!----------------- ------------------> 1839 1840 </a> 1841 1842 <!----------------- 4te Ebene ------------------> 1843 <!----------------- ------------------> 1844 1845 </li> 1846 <li x-data="{ open2: false }"> 1847 <a 1848 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/f-w-j-schelling-philosophische-entwurfe-und-tagebucher" 1849 title="F.W.J. Schelling - Philosophische Entwürfe und Tagebücher" 1850 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1851 bg-container-lighter border-container min-h-[77px]" 1852 >
1853 <span class="ml-6 text-base text-gray-700"> 1854 F.W.J. Schelling - Philosophische Entwürfe und Tagebücher </span> 1855 1856 <!----------------- 4te Ebene ------------------> 1857 <!----------------- ------------------> 1858 1859 </a> 1860 1861 <!----------------- 4te Ebene ------------------> 1862 <!----------------- ------------------> 1863 1864 </li> 1865 <li x-data="{ open2: false }"> 1866 <a 1867 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/giordano-bruno-werke" 1868 title="Giordano Bruno - Werke" 1869 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1870 bg-container-lighter border-container min-h-[77px]" 1871 > 1872 <span class="ml-6 text-base text-gray-700"> 1873 Giordano Bruno - Werke </span> 1874 1875 <!----------------- 4te Ebene ------------------> 1876 <!----------------- ------------------> 1877 1878 </a> 1879 1880 <!----------------- 4te Ebene ------------------> 1881 <!----------------- ------------------> 1882 1883 </li> 1884 <li x-data="{ open2: false }"> 1885 <a 1886 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/g-w-f-hegel-gesammelte-werke" 1887 title="G.W.F. Hegel - Gesammelte Werke" 1888 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1889 bg-container-lighter border-container min-h-[77px]" 1890 > 1891 <span class="ml-6 text-base text-gray-700"> 1892 G.W.F. Hegel - Gesammelte Werke </span> 1893 1894 <!----------------- 4te Ebene ------------------> 1895 <!----------------- ------------------> 1896 1897 </a> 1898 1899 <!----------------- 4te Ebene ------------------> 1900 <!----------------- ------------------> 1901 1902 </li> 1903 <li x-data="{ open2: false }"> 1904 <a 1905 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/hegel-vorlesungen-ausgewahlte-nachschriften-und-manuskripte" 1906 title="G.W.F. Hegel, Vorlesungen. Ausgewählte Nachschriften und Manuskripte" 1907 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1908 bg-container-lighter border-container min-h-[77px]" 1909 >
1910 <span class="ml-6 text-base text-gray-700"> 1911 G.W.F. Hegel, Vorlesungen. Ausgewählte Nachschriften und Manuskripte </span> 1912 1913 <!----------------- 4te Ebene ------------------> 1914 <!----------------- ------------------> 1915 1916 </a> 1917 1918 <!----------------- 4te Ebene ------------------> 1919 <!----------------- ------------------> 1920 1921 </li> 1922 <li x-data="{ open2: false }"> 1923 <a 1924 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/josef-pieper-werke" 1925 title="Josef Pieper - Werke" 1926 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1927 bg-container-lighter border-container min-h-[77px]" 1928 > 1929 <span class="ml-6 text-base text-gray-700"> 1930 Josef Pieper - Werke </span> 1931 1932 <!----------------- 4te Ebene ------------------> 1933 <!----------------- ------------------> 1934 1935 </a> 1936 1937 <!----------------- 4te Ebene ------------------> 1938 <!----------------- ------------------> 1939 1940 </li> 1941 <li x-data="{ open2: false }"> 1942 <a 1943 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/leo-strauss-gesammelte-schriften" 1944 title="Leo Strauss - Gesammelte Schriften" 1945 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1946 bg-container-lighter border-container min-h-[77px]" 1947 > 1948 <span class="ml-6 text-base text-gray-700"> 1949 Leo Strauss - Gesammelte Schriften </span> 1950 1951 <!----------------- 4te Ebene ------------------> 1952 <!----------------- ------------------> 1953 1954 </a> 1955 1956 <!----------------- 4te Ebene ------------------> 1957 <!----------------- ------------------> 1958 1959 </li> 1960 <li x-data="{ open2: false }"> 1961 <a 1962 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/leonard-nelson-gesammelte-schriften" 1963 title="Leonard Nelson - Gesammelte Schriften" 1964 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1965 bg-container-lighter border-container min-h-[77px]" 1966 >
1967 <span class="ml-6 text-base text-gray-700"> 1968 Leonard Nelson - Gesammelte Schriften </span> 1969 1970 <!----------------- 4te Ebene ------------------> 1971 <!----------------- ------------------> 1972 1973 </a> 1974 1975 <!----------------- 4te Ebene ------------------> 1976 <!----------------- ------------------> 1977 1978 </li> 1979 <li x-data="{ open2: false }"> 1980 <a 1981 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/nikolaus-von-kues-opera-omnia" 1982 title="Nikolaus von Kues - Opera Omnia" 1983 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 1984 bg-container-lighter border-container min-h-[77px]" 1985 > 1986 <span class="ml-6 text-base text-gray-700"> 1987 Nikolaus von Kues - Opera Omnia </span> 1988 1989 <!----------------- 4te Ebene ------------------> 1990 <!----------------- ------------------> 1991 1992 </a> 1993 1994 <!----------------- 4te Ebene ------------------> 1995 <!----------------- ------------------> 1996 1997 </li> 1998 <li x-data="{ open2: false }"> 1999 <a 2000 href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/thomas-von-aquin-quaestiones-disputatae" 2001 title=" Thomas von Aquin - Quaestiones disputatae" 2002 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2003 bg-container-lighter border-container min-h-[77px]" 2004 > 2005 <span class="ml-6 text-base text-gray-700"> 2006 Thomas von Aquin - Quaestiones disputatae </span> 2007 2008 <!----------------- 4te Ebene ------------------> 2009 <!----------------- ------------------> 2010 2011 </a> 2012 2013 <!----------------- 4te Ebene ------------------> 2014 <!----------------- ------------------> 2015 2016 </li> 2017 </ul> 2018 2019 </li> 2020 <li x-data="{ open: false }"> 2021 <a 2022 href="https://meiner.de/fmv_de/programm/einzeltitel" 2023 title="Monographien" 2024 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2025 bg-container-lighter border-container min-h-[77px]" 2026 >
2027 <span class="text-base text-gray-700"> 2028 Monographien </span> 2029 <button 2030 @click.prevent="open = !open" 2031 class="flex items-center justify-center w-11 h-11 cursor-pointer 2032 bg-container-lighter border-container" 2033 :class="{ 'rotate-90': open, 'rotate-0': !open }" 2034 aria-label="Open Monographien subcategories" 2035 > 2036 <div class="w-8 h-8 border rounded pointer-events-none"> 2037 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-full h-full p-1 pointer-events-none" width="24" height="24" aria-hidden="true"> 2038 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 2039</svg> 2040 </div> 2041 </button> 2042 </a> 2043 2044 <ul class="subsubmenu overflow-hidden" x-show="open" 2045 x-transition:enter="transition-all ease-out duration-300" 2046 x-transition:enter-start="h-0 overflow-hidden" 2047 x-transition:enter-end="h-auto overflow-hidden" 2048 x-transition:leave="transition-all ease-in duration-200" 2049 x-transition:leave-start="h-auto overflow-hidden" 2050 x-transition:leave-end="h-0 overflow-hidden"> 2051 <li x-data="{ open2: false }"> 2052 <a 2053 href="https://meiner.de/fmv_de/programm/einzeltitel/grundrisse" 2054 title="Grundrisse" 2055 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2056 bg-container-lighter border-container min-h-[77px]" 2057 > 2058 <span class="ml-6 text-base text-gray-700"> 2059 Grundrisse </span> 2060 2061 <!----------------- 4te Ebene ------------------> 2062 <!----------------- ------------------> 2063 2064 </a> 2065 2066 <!----------------- 4te Ebene ------------------> 2067 <!----------------- ------------------> 2068 2069 </li> 2070 </ul> 2071 2072 </li> 2073 <li x-data="{ open: false }"> 2074 <a 2075 href="https://meiner.de/fmv_de/programm/lexika-und-nachschlagewerke" 2076 title="Lexika & Nachschlagewerke" 2077 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2078 bg-container-lighter border-container min-h-[77px]" 2079 >
2080 <span class="text-base text-gray-700"> 2081 Lexika & Nachschlagewerke </span> 2082 </a> 2083 2084 2085 </li> 2086 <li x-data="{ open: false }"> 2087 <a 2088 href="https://meiner.de/fmv_de/programm/sonderausgaben" 2089 title="Sonderausgaben" 2090 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2091 bg-container-lighter border-container min-h-[77px]" 2092 > 2093 <span class="text-base text-gray-700"> 2094 Sonderausgaben </span> 2095 </a> 2096 2097 2098 </li> 2099 <li x-data="{ open: false }"> 2100 <a 2101 href="https://meiner.de/fmv_de/programm/als-set-verfugbar" 2102 title="Als Set verfügbar" 2103 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2104 bg-container-lighter border-container min-h-[77px]" 2105 > 2106 <span class="text-base text-gray-700"> 2107 Als Set verfügbar </span> 2108 </a> 2109 2110 2111 </li> 2112 </ul> 2113 <button 2114 @click="closeMenu()" 2115 class="absolute flex justify-end w-16 self-end mb-1 transition-none" 2116 aria-label="Close menu" 2117 > 2118 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="hidden p-4" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" aria-hidden="true"> 2119 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2120</svg> 2121 </button> 2122 </div> 2123 </li> 2124 <li 2125 data-child-id="category-node-11-main" 2126 class="level-0" 2127 > 2128 <div 2129 class="flex items-center transition-transform duration-150 ease-in-out transform" 2130 :class="{ 2131 '-translate-x-full' : mobilePanelActiveId, 2132 'translate-x-0' : !mobilePanelActiveId 2133 }" 2134 > 2135 <a 2136 class="flex items-center w-full px-8 py-4 border-b cursor-pointer 2137 bg-container-lighter border-container level-0 2138 " 2139 href="https://meiner.de/fmv_de/programm/thema" 2140 title="Themen" 2141 > 2142 Themen </a> 2143 <div 2144 @click="openSubcategory('category-node-11')" 2145 class="absolute right-0 flex items-center justify-center w-11 h-11 mr-8 cursor-pointer 2146 bg-container-lighter border-container" 2147 aria-label="Open Themen subcategories" 2148 aria-haspopup="true" 2149 :aria-expanded="mobilePanelActiveId === 'category-node-11'" 2150 > 2151 <div class="w-8 h-8 border rounded"> 2152 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-full h-full p-1" width="24" height="24" aria-hidden="true"> 2153 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 2154</svg> 2155 </div> 2156 </div> 2157 </div> 2158 <div 2159 data-child-id="category-node-11" 2160 class="absolute top-0 right-0 z-10 flex flex-col gap-1 w-full h-full p-1 bg-container-lighter" 2161 :class="{ 2162 'hidden': mobilePanelActiveId !== 'category-node-11' 2163 }" 2164 > 2165 <ul 2166 class="mt-16 transition-transform duration-200 ease-in-out translate-x-full transform" 2167 :class="{ 2168 'translate-x-full' : mobilePanelActiveId !== 'category-node-11', 2169 'translate-x-0' : mobilePanelActiveId === 'category-node-11', 2170 }" 2171 aria-label="Subcategories" 2172 > 2173 <li> 2174 <button 2175 type="button" 2176 class="flex items-center px-8 py-4 border-b cursor-pointer bg-container border-container w-full border-t" 2177 @click="backToMainCategories('category-node-11-main')" 2178 aria-label="Back to main categories" 2179 > 2180 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 2181 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> 2182</svg>
2183 <span class="ml-4"> 2184 Themen </span> 2185 </button> 2186 </li> 2187 <li> 2188 <a 2189 href="https://meiner.de/fmv_de/programm/thema" 2190 title="Themen" 2191 class="flex items-center w-full px-8 py-4 border-b cursor-pointer 2192 bg-container-lighter border-container 2193 " 2194 > 2195 <span class=""> 2196 Alle anzeigen </span> 2197 </a> 2198 </li> 2199 <li x-data="{ open: false }"> 2200 <a 2201 href="https://meiner.de/fmv_de/thema/asthetik" 2202 title="Ästhetik" 2203 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2204 bg-container-lighter border-container min-h-[77px]" 2205 > 2206 <span class="text-base text-gray-700"> 2207 Ästhetik </span> 2208 </a> 2209 2210 2211 </li> 2212 <li x-data="{ open: false }"> 2213 <a 2214 href="https://meiner.de/fmv_de/thema/antike-philosophie" 2215 title="Antike Philosophie" 2216 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2217 bg-container-lighter border-container min-h-[77px]" 2218 > 2219 <span class="text-base text-gray-700"> 2220 Antike Philosophie </span> 2221 </a> 2222 2223 2224 </li> 2225 <li x-data="{ open: false }"> 2226 <a 2227 href="https://meiner.de/fmv_de/thema/digitale-philosophie" 2228 title="Digitalität und Künstliche Intelligenz" 2229 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2230 bg-container-lighter border-container min-h-[77px]" 2231 > 2232 <span class="text-base text-gray-700"> 2233 Digitalität und Künstliche Intelligenz </span> 2234 </a> 2235 2236 2237 </li> 2238 <li x-data="{ open: false }"> 2239 <a 2240 href="https://meiner.de/fmv_de/thema/klassische-deutsche-philosophie" 2241 title="Klassische Deutsche Philosophie" 2242 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2243 bg-container-lighter border-container min-h-[77px]" 2244 >
2245 <span class="text-base text-gray-700"> 2246 Klassische Deutsche Philosophie </span> 2247 </a> 2248 2249 2250 </li> 2251 <li x-data="{ open: false }"> 2252 <a 2253 href="https://meiner.de/fmv_de/thema/kultur-medienphilosophie" 2254 title="Kultur- & Medienphilosophie" 2255 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2256 bg-container-lighter border-container min-h-[77px]" 2257 > 2258 <span class="text-base text-gray-700"> 2259 Kultur- & Medienphilosophie </span> 2260 </a> 2261 2262 2263 </li> 2264 <li x-data="{ open: false }"> 2265 <a 2266 href="https://meiner.de/fmv_de/thema/logik-wissenschaftstheorie" 2267 title="Logik / Wissenschaftstheorie" 2268 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2269 bg-container-lighter border-container min-h-[77px]" 2270 > 2271 <span class="text-base text-gray-700"> 2272 Logik / Wissenschaftstheorie </span> 2273 </a> 2274 2275 2276 </li> 2277 <li x-data="{ open: false }"> 2278 <a 2279 href="https://meiner.de/fmv_de/thema/mittelalterliche-philosophie" 2280 title="Mittelalterliche Philosophie" 2281 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2282 bg-container-lighter border-container min-h-[77px]" 2283 > 2284 <span class="text-base text-gray-700"> 2285 Mittelalterliche Philosophie </span> 2286 </a> 2287 2288 2289 </li> 2290 <li x-data="{ open: false }"> 2291 <a 2292 href="https://meiner.de/fmv_de/thema/phanomenologie" 2293 title="Phänomenologie" 2294 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2295 bg-container-lighter border-container min-h-[77px]" 2296 > 2297 <span class="text-base text-gray-700"> 2298 Phänomenologie </span> 2299 </a> 2300 2301 2302 </li> 2303 <li x-data="{ open: false }"> 2304 <a 2305 href="https://meiner.de/fmv_de/thema/philosophie-des-19-20-jahrhunderts" 2306 title="Philosophie des 19. / 20. Jahrhunderts" 2307 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2308 bg-container-lighter border-container min-h-[77px]" 2309 >
2310 <span class="text-base text-gray-700"> 2311 Philosophie des 19. / 20. Jahrhunderts </span> 2312 </a> 2313 2314 2315 </li> 2316 <li x-data="{ open: false }"> 2317 <a 2318 href="https://meiner.de/fmv_de/thema/philosophiedidaktik" 2319 title="Philosophiedidaktik" 2320 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2321 bg-container-lighter border-container min-h-[77px]" 2322 > 2323 <span class="text-base text-gray-700"> 2324 Philosophiedidaktik </span> 2325 </a> 2326 2327 2328 </li> 2329 <li x-data="{ open: false }"> 2330 <a 2331 href="https://meiner.de/fmv_de/thema/renaissance-fruhe-neuzeit-aufklarung" 2332 title="Renaissance / Frühe Neuzeit / Aufklärung" 2333 class="flex items-center justify-between w-full px-8 py-4 border-b cursor-pointer 2334 bg-container-lighter border-container min-h-[77px]" 2335 > 2336 <span class="text-base text-gray-700"> 2337 Renaissance / Frühe Neuzeit / Aufklärung </span> 2338 </a> 2339 2340 2341 </li> 2342 </ul> 2343 <button 2344 @click="closeMenu()" 2345 class="absolute flex justify-end w-16 self-end mb-1 transition-none" 2346 aria-label="Close menu" 2347 > 2348 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="hidden p-4" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" aria-hidden="true"> 2349 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2350</svg> 2351 </button> 2352 </div> 2353 </li> 2354 <li 2355 data-child-id="category-node-28-main" 2356 class="level-0" 2357 > 2358 <div 2359 class="flex items-center transition-transform duration-150 ease-in-out transform" 2360 :class="{ 2361 '-translate-x-full' : mobilePanelActiveId, 2362 'translate-x-0' : !mobilePanelActiveId 2363 }" 2364 > 2365 <a 2366 class="flex items-center w-full px-8 py-4 border-b cursor-pointer 2367 bg-container-lighter border-container level-0 2368 " 2369 href="https://meiner.de/fmv_de/sonderangebote" 2370 title="Sonderangebote" 2371 > 2372 Sonderangebote </a> 2373 </div> 2374 </li> 2375 <li 2376 data-child-id="blog-category-node0-main" 2377 class="level-0" 2378 > 2379 <div 2380 class="flex items-center transition-transform duration-150 ease-in-out transform" 2381 :class="{
2382 '-translate-x-full' : mobilePanelActiveId, 2383 'translate-x-0' : !mobilePanelActiveId 2384 }" 2385 > 2386 <a 2387 class="flex items-center w-full px-8 py-4 border-b cursor-pointer 2388 bg-container-lighter border-container level-0 2389 " 2390 href="https://meiner.de/fmv_de/news" 2391 title="Neuigkeiten" 2392 > 2393 Neuigkeiten </a> 2394 </div> 2395 </li> 2396 </ul> 2397 <button 2398 @click="closeMenu()" 2399 class="absolute flex justify-end w-16 self-end mb-1" 2400 aria-label="Close menu" 2401 type="button" 2402 > 2403 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="hidden p-4" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" aria-hidden="true"> 2404 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2405</svg> 2406 </button> 2407 </div> 2408</nav>
2409<script> 2410 'use strict'; 2411 2412 const initMenuMobile_6ab96af40f1d4 = () => { 2413 return { 2414 mobilePanelActiveId: null, 2415 open: false, 2416 setActiveMenu(menuNode) { 2417 Array.from(menuNode.querySelectorAll('a')).filter(link => { 2418 return link.href === window.location.href.split('?')[0]; 2419 }).map(item => { 2420 item.classList.add('underline'); 2421 item.closest('li.level-0') && 2422 item.closest('li.level-0').querySelector('a.level-0').classList.add('underline'); 2423 }); 2424 }, 2425 openMenu() { 2426 this.open = true 2427 this.$nextTick(() => hyva.trapFocus(this.$refs['mobileMenuNavLinks'])); 2428 // Prevent from body scrolling while mobile menu opened 2429 document.body.style.position = 'fixed'; 2430 }, 2431 closeMenu() { 2432 document.body.style.position = ''; 2433 2434 if (this.open) { 2435 this.$nextTick(() => this.$refs['mobileMenuTrigger'].focus() || hyva.releaseFocus()); 2436 } 2437 2438 this.open = false 2439 this.mobilePanelActiveId = null 2440 }, 2441 openSubcategory(index) { 2442 const menuNodeRef = document.querySelector('[data-child-id=' + index + ']') 2443 this.mobilePanelActiveId = this.mobilePanelActiveId === index ? 0 : index 2444 this.$nextTick(() => hyva.trapFocus(menuNodeRef)) 2445 }, 2446 backToMainCategories(index) { 2447 const menuNodeRef = document.querySelector('[data-child-id=' + index + ']') 2448 this.mobilePanelActiveId = 0 2449 this.$nextTick(() => { 2450 hyva.trapFocus(this.$refs['mobileMenuNavLinks']) 2451 menuNodeRef.querySelector('a').focus() 2452 }) 2453 } 2454 } 2455 } 2456</script>
2456 2457 2458<nav class="main-navigation hidden lg:block z-20 order-2 sm:order-1 lg:order-2 navigation hidden lg:flex"> 2459 <ul class="menu flex justify-start flex-wrap py-4 gap-x-7"> 2460 <li class="menu-item relative level-0 border-b-2 border-transparent hover:border-primary data-[active]:border-primary"> 2461 <a href="https://meiner.de/fmv_de/programm" class="w-full text-base text-gray-700 level-0 py-2 px-0.5 hover:no-underline"> 2462 <span>Programm</span> 2463 <span class="inline items-center text-gray-500"> 2464 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" aria-hidden="true"> 2465 <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/> 2466</svg> 2467 </span> 2468 </a> 2469 <ul class="submenu submenu-level-1 top-full z-10 hidden mt-0.5 -ml-6 shadow-lg bg-container-lighter/95 py-4"> 2470 <li class="level-1 menu-item px-6 "> 2471 <a href="https://meiner.de/fmv_de/programm/reihen" 2472 title="Reihen" 2473 class="level-1 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2474 <span class="inline-block text-base text-gray-700">Reihen</span> 2475 2476 <span class="inline-block text-base text-gray-500"> 2477 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" aria-hidden="true"> 2478 <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> 2479</svg> 2480 </span> 2481 </a> 2482 <ul class="submenu submenu-level-2 ml-0 top-full z-10 hidden mt-0.5 -ml-6 shadow-lg bg-container-lighter/95 px-6 py-4"> 2483 <li class="level-2 menu-item"> 2484 <a href="https://meiner.de/fmv_de/programm/reihen/acta-cusana-beihefte" 2485 title="Acta Cusana - Beihefte" 2486 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Acta Cusana - Beihefte</a> 2487 </li> 2488 <li class="level-2 menu-item"> 2489 <a href="https://meiner.de/fmv_de/programm/reihen/archiv-fur-begriffsgeschichte-sonderhefte" 2490 title="Archiv für Begriffsgeschichte - Sonderhefte" 2491 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Archiv für Begriffsgeschichte - Sonderhefte</a> 2492 </li> 2493 <li class="level-2 menu-item"> 2494 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe" 2495 title="Blaue Reihe" 2496 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Blaue Reihe</a> 2497 </li> 2498 <li class="level-2 menu-item"> 2499 <a href="https://meiner.de/fmv_de/programm/reihen/cassirer-forschungen" 2500 title="Cassirer-Forschungen" 2501 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Cassirer-Forschungen</a> 2502 </li> 2503 <li class="level-2 menu-item"> 2504 <a href="https://meiner.de/fmv_de/programm/reihen/corpus-philosophorum-teutonicorum-medii-aevi-beihefte" 2505 title="Corpus Philosophorum Teutonicorum Medii Aevi 
2505- Beihefte" 2506 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Corpus Philosophorum Teutonicorum Medii Aevi - Beihefte</a> 2507 </li> 2508 <li class="level-2 menu-item"> 2509 <a href="https://meiner.de/fmv_de/programm/reihen/hegel-deutungen" 2510 title="Hegel-Deutungen" 2511 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Hegel-Deutungen</a> 2512 </li> 2513 <li class="level-2 menu-item"> 2514 <a href="https://meiner.de/fmv_de/programm/reihen/hegel-studien-beihefte" 2515 title="Hegel Studien - Beihefte" 2516 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Hegel Studien - Beihefte</a> 2517 </li> 2518 <li class="level-2 menu-item"> 2519 <a href="https://meiner.de/fmv_de/programm/reihen/kant-forschungen" 2520 title="Kant-Forschungen" 2521 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Kant-Forschungen</a> 2522 </li> 2523 <li class="level-2 menu-item"> 2524 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht" 2525 title="Methoden im Philosophie- und Ethikunterricht" 2526 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Methoden im Philosophie- und Ethikunterricht</a> 2527 </li> 2528 <li class="level-2 menu-item"> 2529 <a href="https://meiner.de/fmv_de/programm/reihen/paradeigmata" 2530 title="Paradeigmata" 2531 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Paradeigmata</a> 2532 </li> 2533 <li class="level-2 menu-item"> 2534 <a href="https://meiner.de/fmv_de/programm/reihen/phanomenologische
2534-forschungen-beiheft" 2535 title="Phänomenologische Forschungen - Beihefte" 2536 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Phänomenologische Forschungen - Beihefte</a> 2537 </li> 2538 <li class="level-2 menu-item"> 2539 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek" 2540 title="Philosophische Bibliothek" 2541 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Philosophische Bibliothek</a> 2542 </li> 2543 <li class="level-2 menu-item"> 2544 <a href="https://meiner.de/fmv_de/programm/reihen/philosophisch-literarische-streitsachen" 2545 title="Philosophisch-literarische Streitsachen" 2546 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Philosophisch-literarische Streitsachen</a> 2547 </li> 2548 <li class="level-2 menu-item"> 2549 <a href="https://meiner.de/fmv_de/programm/reihen/schriften-zur-transzendentalphilosophie" 2550 title="Schriften zur Transzendentalphilosophie" 2551 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Schriften zur Transzendentalphilosophie</a> 2552 </li> 2553 <li class="level-2 menu-item"> 2554 <a href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica" 2555 title="Sino-philosophica" 2556 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Sino-philosophica</a> 2557 </li> 2558 <li class="level-2 menu-item"> 2559 <a href="https://meiner.de/fmv_de/programm/reihen/studien-zu-den-quaestiones-disputatae-des-thomas-von-aquin" 2560 title="Studien zu den Quaestiones Disputatae des Thomas von Aquin" 2561 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Studien zu den Quaestiones Disputatae des Thomas von Aquin</a> 2562 </li> 2563 <li class="level-2 menu-item"> 2564 <a href="https://meiner.de/fmv_de/programm/reihen/studien-zum-achtzehnten-jahrhundert" 2565 title="Studien zum achtzehnten Jahrhundert" 2566 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Studien zum achtzehnten Jahrhundert</a> 2567 </li> 2568 <li class="level-2 menu-item"> 2569 <a href="https://meiner.de/fmv_de/programm/reihen/topos-poietikos" 2570 title="Topos Poietikos" 2571 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Topos Poietikos</a> 2572 </li> 2573 <li class="level-2 menu-item"> 2574 <a href="https://meiner.de/fmv_de/programm/reihen/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft-sonderhefte" 2575 title="Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft - Sonderhefte" 2576 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft - Sonderhefte</a> 2577 </li> 2578 </ul> 2579 </li> 2580 <li class="level-1 menu-item px-6 "> 2581 <a href="https://meiner.de/fmv_de/programm/zeitschriften" 2582 title="Zeitschriften & Jahrbücher" 2583 class="level-1 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">
2584 <span class="inline-block text-base text-gray-700">Zeitschriften & Jahrbücher</span> 2585 2586 <span class="inline-block text-base text-gray-500"> 2587 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" aria-hidden="true"> 2588 <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> 2589</svg> 2590 </span> 2591 </a> 2592 <ul class="submenu submenu-level-2 ml-0 top-full z-10 hidden mt-0.5 -ml-6 shadow-lg bg-container-lighter/95 px-6 py-4"> 2593 <li class="level-2 menu-item"> 2594 <a href="https://meiner.de/fmv_de/programm/zeitschriften/aufklarung" 2595 title="Aufklärung" 2596 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Aufklärung</a> 2597 </li> 2598 <li class="level-2 menu-item"> 2599 <a href="https://meiner.de/fmv_de/programm/zeitschriften/archiv-fur-begriffsgeschichte" 2600 title="Archiv für Begriffsgeschichte" 2601 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Archiv für Begriffsgeschichte</a> 2602 </li> 2603 <li class="level-2 menu-item"> 2604 <a href="https://meiner.de/fmv_de/programm/zeitschriften/deutsches-jahrbuch-philosophie" 2605 title="Deutsches Jahrbuch Philosophie" 2606 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Deutsches Jahrbuch Philosophie</a> 2607 </li> 2608 <li class="level-2 menu-item"> 2609 <a href="https://meiner.de/fmv_de/programm/zeitschriften/hegel-studien" 2610 title="Hegel-Studien" 2611 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Hegel-Studien</a> 2612 </li> 2613 <li class="level-2 menu-item"> 2614 <a href="https://meiner.de/fmv_de/programm/zeitschriften/kulturwissenschaftliche-zeitschrift" 2615 title="Kulturwissenschaftliche Zeitschrift" 2616 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Kulturwissenschaftliche Zeitschrift</a> 2617 </li> 2618 <li class="level-2 menu-item"> 2619 <a href="https://meiner.de/fmv_de/programm/zeitschriften/phanomenologische
2619-forschungen" 2620 title="Phänomenologische Forschungen" 2621 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Phänomenologische Forschungen</a> 2622 </li> 2623 <li class="level-2 menu-item"> 2624 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft" 2625 title="Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft" 2626 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft</a> 2627 </li> 2628 <li class="level-2 menu-item"> 2629 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-kulturphilosophie" 2630 title="Zeitschrift für Kulturphilosophie" 2631 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Zeitschrift für Kulturphilosophie</a> 2632 </li> 2633 <li class="level-2 menu-item"> 2634 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-medien-und-kulturforschung" 2635 title="Zeitschrift für Medien- und Kulturforschung" 2636 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Zeitschrift für Medien- und Kulturforschung</a> 2637 </li> 2638 </ul> 2639 </li> 2640 <li class="level-1 menu-item px-6 "> 2641 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben" 2642 title="Werk- & Gesamtausgaben" 2643 class="level-1 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2644 <span class="inline-block text-base text-gray-700">Werk- & Gesamtausgaben</span> 2645 2646 <span class="inline-block text-base text-gray-500"> 2647 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" aria-hidden="true"> 2648 <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> 2649</svg> 2650 </span> 2651 </a> 2652 <ul class="submenu submenu-level-2 ml-0 top-full z-10 hidden mt-0.5 -ml-6 shadow-lg bg-container-lighter/95 px-6 py-4"> 2653 <li class="level-2 menu-item"> 2654 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/acta-cusana-quellen-zur-lebensgeschichte-des-nikolaus-von-kues" 2655 title="Acta Cusana. Quellen zur Lebensgeschichte des Nikolaus von Kues" 2656 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Acta Cusana. Quellen zur Lebensgeschichte des Nikolaus von Kues</a> 2657 </li> 2658 <li class="level-2 menu-item"> 2659 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/carnap-tagebucher" 2660 title="Carnap Tagebücher" 2661 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Carnap Tagebücher</a> 2662 </li> 2663 <li class="level-2 menu-item"> 2664 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/corpus-philosophorum-teutonicorum-medii-aevi" 2665 title="Corpus Philosophorum Teutonicorum Medii Aevi" 2666 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Corpus Philosophorum Teutonicorum Medii Aevi</a> 2667 </li> 2668 <li class="level-2 menu-item"> 2669 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/ernst-cassirer-gesammelte-werke" 2670 title="Ernst Cassirer - Gesammelte Werke" 2671 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Ernst Cassirer - Gesammelte Werke</a> 2672 </li> 2673 <li class="level-2 menu-item"> 2674 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/ernst-cassirer-nachlass" 2675 title="Ernst Cassirer - Nachlass" 2676 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Ernst Cassirer - Nachlass</a> 2677 </li> 2678 <li class="level-2 menu-item"> 2679 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/friedrich-heinrich-jacobi-werke" 2680 title="Friedrich Heinrich Jacobi 
2680- Werke" 2681 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Friedrich Heinrich Jacobi - Werke</a> 2682 </li> 2683 <li class="level-2 menu-item"> 2684 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/f-w-j-schelling-philosophische-entwurfe-und-tagebucher" 2685 title="F.W.J. Schelling - Philosophische Entwürfe und Tagebücher" 2686 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">F.W.J. Schelling - Philosophische Entwürfe und Tagebücher</a> 2687 </li> 2688 <li class="level-2 menu-item"> 2689 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/giordano-bruno-werke" 2690 title="Giordano Bruno - Werke" 2691 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Giordano Bruno - Werke</a> 2692 </li> 2693 <li class="level-2 menu-item"> 2694 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/g-w-f-hegel-gesammelte-werke" 2695 title="G.W.F. Hegel - Gesammelte Werke" 2696 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">G.W.F. Hegel - Gesammelte Werke</a> 2697 </li> 2698 <li class="level-2 menu-item"> 2699 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/hegel-vorlesungen-ausgewahlte-nachschriften-und-manuskripte" 2700 title="G.W.F. Hegel, Vorlesungen. Ausgewählte Nachschriften und Manuskripte" 2701 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">G.W.F. Hegel, Vorlesungen. Ausgewählte Nachschriften und Manuskripte</a> 2702 </li> 2703 <li class="level-2 menu-item"> 2704 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/josef-pieper-werke" 2705 title="Josef Pieper - Werke" 2706 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Josef Pieper - Werke</a> 2707 </li> 2708 <li class="level-2 menu-item"> 2709 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/leo-strauss-gesammelte-schriften" 2710 title="Leo Strauss - Gesammelte Schriften" 2711 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Leo Strauss - Gesammelte Schriften</a> 2712 </li> 2713 <li class="level-2 menu-item"> 2714 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/leonard-nelson-gesammelte-schriften" 2715 title="Leonard Nelson - Gesammelte Schriften" 2716 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Leonard Nelson - Gesammelte Schriften</a> 2717 </li> 2718 <li class="level-2 menu-item"> 2719 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/nikolaus-von-kues-opera-omnia" 2720 title="Nikolaus von Kues 
2720- Opera Omnia" 2721 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Nikolaus von Kues - Opera Omnia</a> 2722 </li> 2723 <li class="level-2 menu-item"> 2724 <a href="https://meiner.de/fmv_de/programm/editionen-werkausgaben/thomas-von-aquin-quaestiones-disputatae" 2725 title=" Thomas von Aquin - Quaestiones disputatae" 2726 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> Thomas von Aquin - Quaestiones disputatae</a> 2727 </li> 2728 </ul> 2729 </li> 2730 <li class="level-1 menu-item px-6 "> 2731 <a href="https://meiner.de/fmv_de/programm/einzeltitel" 2732 title="Monographien" 2733 class="level-1 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2734 <span class="inline-block text-base text-gray-700">Monographien</span> 2735 2736 <span class="inline-block text-base text-gray-500"> 2737 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" aria-hidden="true"> 2738 <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> 2739</svg> 2740 </span> 2741 </a> 2742 <ul class="submenu submenu-level-2 ml-0 top-full z-10 hidden mt-0.5 -ml-6 shadow-lg bg-container-lighter/95 px-6 py-4"> 2743 <li class="level-2 menu-item"> 2744 <a href="https://meiner.de/fmv_de/programm/einzeltitel/grundrisse" 2745 title="Grundrisse" 2746 class="level-2 flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700">Grundrisse</a> 2747 </li> 2748 </ul> 2749 </li> 2750 <li class="level-1 menu-item px-6 "> 2751 <a href="https://meiner.de/fmv_de/programm/lexika-und-nachschlagewerke" 2752 title="Lexika & Nachschlagewerke" 2753 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2754 Lexika & Nachschlagewerke </a> 2755 </li> 2756 <li class="level-1 menu-item px-6 "> 2757 <a href="https://meiner.de/fmv_de/programm/sonderausgaben" 2758 title="Sonderausgaben" 2759 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2760 Sonderausgaben </a> 2761 </li> 2762 <li class="level-1 menu-item px-6 "> 2763 <a href="https://meiner.de/fmv_de/programm/als-set-verfugbar" 2764 title="Als Set verfügbar" 2765 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2766 Als Set verfügbar </a> 2767 </li> 2768 </ul> 2769 </li> 2770 <li class="menu-item relative level-0 border-b-2 border-transparent hover:border-primary data-[active]:border-primary"> 2771 <a href="https://meiner.de/fmv_de/programm/thema" class="w-full text-base text-gray-700 level-0 py-2 px-0.5 hover:no-underline">
2772 <span>Themen</span> 2773 <span class="inline items-center text-gray-500"> 2774 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" aria-hidden="true"> 2775 <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/> 2776</svg> 2777 </span> 2778 </a> 2779 <ul class="submenu submenu-level-1 top-full z-10 hidden mt-0.5 -ml-6 shadow-lg bg-container-lighter/95 py-4"> 2780 <li class="level-1 menu-item px-6 "> 2781 <a href="https://meiner.de/fmv_de/thema/asthetik" 2782 title="Ästhetik" 2783 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2784 Ästhetik </a> 2785 </li> 2786 <li class="level-1 menu-item px-6 "> 2787 <a href="https://meiner.de/fmv_de/thema/antike-philosophie" 2788 title="Antike Philosophie" 2789 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2790 Antike Philosophie </a> 2791 </li> 2792 <li class="level-1 menu-item px-6 "> 2793 <a href="https://meiner.de/fmv_de/thema/digitale-philosophie" 2794 title="Digitalität und Künstliche Intelligenz" 2795 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2796 Digitalität und Künstliche Intelligenz </a> 2797 </li> 2798 <li class="level-1 menu-item px-6 "> 2799 <a href="https://meiner.de/fmv_de/thema/klassische-deutsche-philosophie" 2800 title="Klassische Deutsche Philosophie" 2801 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2802 Klassische Deutsche Philosophie </a> 2803 </li> 2804 <li class="level-1 menu-item px-6 "> 2805 <a href="https://meiner.de/fmv_de/thema/kultur-medienphilosophie" 2806 title="Kultur- & Medienphilosophie" 2807 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2808 Kultur- & Medienphilosophie </a> 2809 </li> 2810 <li class="level-1 menu-item px-6 "> 2811 <a href="https://meiner.de/fmv_de/thema/logik-wissenschaftstheorie" 2812 title="Logik / Wissenschaftstheorie" 2813 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2814 Logik / Wissenschaftstheorie </a> 2815 </li> 2816 <li class="level-1 menu-item px-6 "> 2817 <a href="https://meiner.de/fmv_de/thema/mittelalterliche-philosophie" 2818 title="Mittelalterliche Philosophie" 2819 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2820 Mittelalterliche Philosophie </a> 2821 </li> 2822 <li class="level-1 menu-item px-6 "> 2823 <a href="https://meiner.de/fmv_de/thema/phanomenologie" 2824 title="Phänomenologie" 2825 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2826 Phänomenologie </a> 2827 </li> 2828 <li class="level-1 menu-item px-6 "> 2829 <a href="https://meiner.de/fmv_de/thema/philosophie-des-19-20-jahrhunderts" 2830 title="Philosophie des 19. / 20. Jahrhunderts" 2831 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2832 Philosophie des 19. / 20. Jahrhun
2832derts </a> 2833 </li> 2834 <li class="level-1 menu-item px-6 "> 2835 <a href="https://meiner.de/fmv_de/thema/philosophiedidaktik" 2836 title="Philosophiedidaktik" 2837 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2838 Philosophiedidaktik </a> 2839 </li> 2840 <li class="level-1 menu-item px-6 "> 2841 <a href="https://meiner.de/fmv_de/thema/renaissance-fruhe-neuzeit-aufklarung" 2842 title="Renaissance / Frühe Neuzeit / Aufklärung" 2843 class="level-1 text-base flex flex-row items-center justify-between block w-full px-3 py-1 my-1 whitespace-nowrap first:mt-0 hover:underline aria-[current=page]:underline text-base text-gray-700"> 2844 Renaissance / Frühe Neuzeit / Aufklärung </a> 2845 </li> 2846 </ul> 2847 </li> 2848 <li class="menu-item relative level-0 border-b-2 border-transparent hover:border-primary data-[active]:border-primary"> 2849 <a href="https://meiner.de/fmv_de/sonderangebote" class="w-full text-base text-gray-700 level-0 py-2 px-0.5 hover:no-underline"> 2850 <span>Sonderangebote</span> 2851 </a> 2852 </li> 2853 <li class="menu-item relative level-0 border-b-2 border-transparent hover:border-primary data-[active]:border-primary"> 2854 <a href="https://meiner.de/fmv_de/news" class="w-full text-base text-gray-700 level-0 py-2 px-0.5 hover:no-underline"> 2855 <span>Neuigkeiten</span> 2856 </a> 2857 </li> 2858 </ul> 2859</nav> 2860 2861 <div class="flex items-center gap-2 md:gap-1 order-3 md:-mr-1"> 2862 <!--Compare Icon--> 2863 <a id="compare-link" 2864 class="relative inline-block rounded p-1 hover:bg-primary/10 outline-offset-2 invisible" 2865 :class="{ 'invisible': !(itemCount > 0) }" 2866 href="https://meiner.de/fmv_de/catalog/product_compare/index/" 2867 title="Produkte vergleichen" 2868 x-data="initCompareHeader()" 2869 @private-content-loaded.window="receiveCompareData($event.detail.data)" 2870 :aria-label="` 2871 Produkte vergleichen, 2872 ${itemCount > 1 2873 ? hyva.str('\u00251\u0020Elemente', itemCount) 2874 : hyva.str('\u00251\u0020Artikel', itemCount) 2875 }`" 2876 > 2877 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="md:h-6 md:w-6" width="28" height="28" aria-hidden="true"> 2878 <path stroke-linecap="round" stroke-linejoin="round" d="M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3"/> 2879</svg> 2880 <span 2881 x-text="itemCount" 2882 class="absolute -top-1.5 -right-1.5 h-5 px-2 py-1 rounded-full bg-yellow-500 text-white 2883 text-xs font-semibold leading-none text-center uppercase tabular-nums" 2884 aria-hidden="true" 2885 ></span> 2886 </a> 2887 2888 <!--Search Icon--> 2889 <button 2890 id="menu-search-icon" 2891 class="rounded p-1 hover:bg-primary/10 outline-offset-2" 2892 @click.prevent=" 2893 searchOpen = !searchOpen;
2894 $dispatch('search-open'); 2895 " 2896 aria-label="Toggle search form" 2897 aria-haspopup="true" 2898 :aria-expanded="searchOpen" 2899 x-ref="searchButton" 2900 > 2901 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="md:h-6 md:w-6" width="28" height="28" aria-hidden="true"> 2902 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> 2903</svg> 2904 </button> 2905 2906 <!-- Additional Header Elements --> 2907 2908 <!--Customer Icon & Dropdown--> 2909 2910<div 2911 class="relative inline-block" 2912 x-data="{ open: false }" 2913 @keyup.escape="open = false" 2914 @click.outside="open = false" 2915> 2916 <button 2917 type="button" 2918 id="customer-menu" 2919 class="block rounded p-1 hover:bg-primary/10 outline-offset-2" 2920 @click="open = !open" 2921 :aria-expanded="open ? 'true' : 'false'" 2922 aria-label="Mein Konto" 2923 aria-haspopup="true" 2924 > 2925 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="md:h-6 md:w-6" width="28" height="28" aria-hidden="true"> 2926 <path stroke-linecap="round" stroke-linejoin="round" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/> 2927</svg> 2928 </button> 2929 <nav 2930 class=" 2931 absolute right-0 z-20 w-40 py-2 mt-2 -mr-4 px-1 overflow-auto origin-top-right rounded-sm 2932 shadow-lg sm:w-48 lg:mt-3 bg-container-lighter 2933 " 2934 x-cloak 2935 x-show="open" 2936 aria-labelledby="customer-menu" 2937 > 2938 2939<a id="customer.header.sign.in.link" 2940 class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100" 2941 onclick="hyva.setCookie && hyva.setCookie( 2942 'login_redirect', 2943 window.location.href, 2944 1 2945 )" 2946 href="https://meiner.de/fmv_de/customer/account/index/" 2947 title="Anmelden" 2948> 2949 Anmelden</a> 2950 2951 <a id="customer.header.register.link" 2952 class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100" 2953 href="https://meiner.de/fmv_de/customer/account/create/" 2954 title="Ein Konto erstellen" 2955 > 2956 Ein Konto erstellen </a> 2957 </nav> 2958</div> 2959 2960 <!--Cart Icon--> 2961 <button 2962 id="menu-cart-icon" 2963 class="relative inline-block rounded p-1 hover:bg-primary/10 outline-offset-2" 2964 x-ref="cartButton" 2965 :aria-disabled="isCartEmpty()" 2966 :aria-label="` 2967 Toggle minicart, 2968 ${isCartEmpty() 2969 ? 'Warenkorb ist leer' 2970 : cart.summary_count > 1 2971 ? hyva.str('%1 Artikel', cart.summary_count) 2972 : hyva.str('%1 item', cart.summary_count) 2973 }`" 2974 @click.prevent="() => { 2975 $dispatch('toggle-cart', { isOpen: true }) 2976 }" 2977 @toggle-cart.window="toggleCart($event)" 2978 :aria-expanded="isCartOpen" 2979 aria-haspopup="dialog" 2980 > 2981 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="md:h-6 md:w-6" width="28" height="28" aria-hidden="true"> 2982 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/> 2983</svg> 2984 <span 2985 x-text="cart.summary_count" 2986 x-show="!isCartEmpty()" 2987 x-cloak 2988 class="absolute -top-1.5 -right-1.5 h-5 px-2 py-1 rounded-full bg-primary text-white 2989 text-xs font-semibold leading-none text-center uppercase tabular-nums" 2990 aria-hidden="true" 2991 ></span> 2992 </button> 2993 </div> 2994 </div> 2995 <!--Search-->
2995 2996 <div class="absolute z-10 w-full border-t shadow-sm bg-container-lighter border-container-lighter" 2997 id="search-content" 2998 x-cloak x-show="searchOpen" 2999 @click.outside="searchOpen = false" 3000 @keydown.escape=" 3001 searchOpen = false; 3002 $refs.searchButton.focus(); 3003 " 3004 > 3005
3006<script> 3007 function initMiniSearchComponent() { 3008 "use strict"; 3009 3010 return { 3011 show:false, 3012 formSelector: "#search_mini_form", 3013 url: "https://meiner.de/fmv_de/search/ajax/suggest/", 3014 destinationSelector: "#search_autocomplete", 3015 templates: {"term":{"title":"Suchbegriffe","template":"Hyva_SmileElasticsuite::core\/autocomplete\/term.phtml"},"product":{"title":"Artikel","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/product.phtml"},"category":{"title":"Kategorien","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/category.phtml"},"product_attribute":{"title":"Attribute","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/product_attribute.phtml","titleRenderer":"renderEsAutocompleteTitleAttribute"},"cms_page":{"title":"Cms page","template":"Hyva_SmileElasticsuite::cms-search\/autocomplete\/cms.phtml"}}, 3016 priceFormat: {"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false}, 3017 minSearchLength: 2, 3018 searchResultsByType: {}, 3019 currentRequest: null, 3020 3021 /** 3022 * Get search results. 3023 */ 3024 getSearchResults: function () { 3025 let value = document.querySelector('#search').value.trim(); 3026 3027 if (value.length < parseInt(this.minSearchLength, 10)) { 3028 this.searchResultsByType = []; 3029 3030 return false; 3031 } 3032 3033 let url = this.url + '?' + new URLSearchParams({ 3034 q: document.querySelector('#search').value, 3035 _: Date.now() 3036 }).toString(); 3037 3038 if (this.currentRequest !== null) { 3039 this.currentRequest.abort(); 3040 } 3041 this.currentRequest = new AbortController(); 3042 3043 fetch(url, { 3044 method: 'GET', 3045 signal: this.currentRequest.signal, 3046 }).then((response) => { 3047 if (response.ok) { 3048 return response.json(); 3049 } 3050 }).then((data) => { 3051 this.show = data.length > 0; 3052 3053 this.searchResultsByType = data.reduce((acc, result) => { 3054 if (! acc[result.type]) acc[result.type] = []; 3055 acc[result.type].push(result); 3056 return acc; 3057 }, {}); 3058 }).catch((error) => { 3059 ; 3060 }); 3061 }, 3062 } 3063 } 3064</script>
3064 3065<div id="elasticsuite-search-container" x-show="true"> 3066 <div class="container py-2 mx-auto text-black" x-data="initMiniSearchComponent()" @click.away="show = false"> 3067 <form class="form minisearch" id="search_mini_form" action="https://meiner.de/fmv_de/catalogsearch/result/" method="get" role="search"> 3068 <div class="relative"> 3069 <label class="sr-only" for="search"> 3070 Gesamten Shop hier durchsuchen... </label> 3071 <input id="search" 3072 x-on:input.debounce="getSearchResults()" 3073 x-ref="searchInput" 3074 type="search" 3075 class="w-full p-2 text-lg leading-normal transition appearance-none text-grey-800 3076 focus:outline-none focus:border-transparent lg:text-xl" 3077 autocapitalize="off" autocomplete="off" autocorrect="off" 3078 name="q" 3079 value="" 3080 placeholder="Gesamten Shop hier durchsuchen..." 3081 maxlength="128" 3082 @search-open.window.debounce.10=" 3083 $el.focus(); 3084 $el.select(); 3085 " 3086 /> 3087 </div> 3088 <div id="search_autocomplete" class="search-autocomplete relative w-full" x-show="show" style="display:none;"> 3089 <div class="absolute bg-white border border-solid border-black z-50 w-full grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4"> 3090 <template x-for="searchResultByType in Object.values(searchResultsByType)"> 3091 <div class=""> 3092 <template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].title && templates[searchResultByType[0].type].titleRenderer === undefined"> 3093 <div class="font-bold pt-2 pl-2 text-center" x-text="templates[searchResultByType[0].type].title"></div> 3094 </template> 3095 <template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].titleRenderer !== undefined"> 3096 <div class="font-bold pt-2 pl-2 text-center" x-text="window[templates[searchResultByType[0].type].titleRenderer](searchResultByType)"></div> 3097 </template> 3098 3099 <template x-for="searchResult in searchResultByType"> 3100 <div class="hover:bg-gray-100"> 3101 3102<template x-if="searchResult.type == 'term'"> 3103 <a class="w-full block p-2" 3104 x-bind:href="'https://meiner.de/fmv_de/catalogsearch/result/?q=' + searchResult.title" 3105 :title="searchResult.title"> 3106 <span class="text-sm" x-text="searchResult.title"></span> 3107 <span class="text-sm" x-text="'(' + searchResult.num_results + ')'"></span> 3108 </a> 3109</template> 3110 3111<template x-if="searchResult.type == 'product'"> 3112 <a class="w-full block" :href="searchResult.url" :title="searchResult.title"> 3113 <div class="grid grid-cols-4 gap-4 p-3"> 3114 <div class="col-span-4"> 3115 <span class="text-sm" x-text="searchResult.title"></span> 3116 </div> 3117 </div> 3118 </a> 3119</template> 3120<template x-if="searchResult.type == 'category'"> 3121 <a class="w-full block p-2" :href="searchResult.url" :title="searchResult.title"> 3122 <span class="text-sm italic block text-gray-500" x-text="searchResult.breadcrumb.join(' > ').concat(' > ')"></span> 3123 <span class="text-sm" x-text="searchResult.title"></span> 3124 </a> 3125</template> 3126 3127<template x-if="searchResult.type == 'product_attribute'"> 3128 <a class="w-full block p-2" :href="searchResult.url" :title="searchResult.title">
3129 <span class="text-sm" x-text="searchResult.title"></span> 3130 <span class="text-xs uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span> 3131 </a> 3132</template> 3133
3134<script> 3135 function renderEsAutocompleteTitleAttribute(data) 3136 { 3137 data = data.filter(function(item) { 3138 return item.type === 'product_attribute'; 3139 }).map(function(item) { 3140 return item['attribute_label'] 3141 }).reduce(function(prev, item) { 3142 if (item in prev) { 3143 prev[item]++; 3144 } else { 3145 prev[item] = 1; 3146 } 3147 return prev; 3148 }, {}); 3149 3150 data = Object.entries(data).sort(function(item1, item2) { 3151 return item2[1] - item1[1] 3152 }).map(function(item) {return item[0]}); 3153 3154 if (data.length > 2) { 3155 data = data.slice(0, 2); 3156 data.push('...'); 3157 } 3158 3159 return data.join(', '); 3160 } 3161</script>
3161 3162 3163<template x-if="searchResult.type == 'cms_page'"> 3164 <a class="w-full block p-2" :href="searchResult.url" :title="searchResult.title"> 3165 <span class="text-sm" x-text="searchResult.title"></span> 3166 </a> 3167</template> 3168 </div> 3169 </template> 3170 </div> 3171 </template> 3172 </div> 3173 </div> 3174 </form> 3175 </div> 3176</div> 3177 </div> 3178 3179 <!--Cart Drawer--> 3180
3180<script> 3181 function initCartDrawer() { 3182 return { 3183 open: false, 3184 isLoading: false, 3185 cart: {}, 3186 maxItemsToDisplay: 10, 3187 itemsCount: 0, 3188 getData(data) { 3189 if (data.cart) { 3190 this.cart = data.cart; 3191 this.itemsCount = data.cart.items && data.cart.items.length || 0; 3192 this.setCartItems(); 3193 } 3194 this.isLoading = false; 3195 }, 3196 cartItems: [], 3197 getItemCountTitle() { 3198 return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount) 3199 }, 3200 setCartItems() { 3201 this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; 3202 3203 if (this.maxItemsToDisplay > 0) { 3204 this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); 3205 } 3206 }, 3207 deleteItemFromCart(itemId) { 3208 this.isLoading = true; 3209 3210 const itemData = this.cart.items.filter((item) => item['item_id'] === itemId); 3211 const formKey = hyva.getFormKey(); 3212 const postUrl = BASE_URL + 'checkout/sidebar/removeItem/'; 3213 3214 fetch(postUrl, { 3215 "headers": { 3216 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 3217 }, 3218 "body": "form_key=" + formKey + "&item_id=" + itemId, 3219 "method": "POST", 3220 "mode": "cors", 3221 "credentials": "include" 3222 }).then(response => { 3223 if (response.redirected) { 3224 window.location.href = response.url; 3225 } else if (response.ok) { 3226 return response.json(); 3227 } else { 3228 window.dispatchMessages && window.dispatchMessages([{ 3229 type: 'warning', 3230 text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.' 3231 }]); 3232 this.isLoading = false; 3233 } 3234 }).then(result => { 3235 window.dispatchMessages && window.dispatchMessages([{ 3236 type: result.success ? 'success' : 'error', 3237 text: result.success 3238 ? 'Sie\u0020haben\u0020den\u0020Artikel\u0020entfernt.' 3239 : result.error_message 3240 }], result.success ? 5000 : 0); 3241 3242 if (result.success && itemData) { 3243 window.dispatchEvent(new CustomEvent('cart-item-removed', { detail: itemData })); 3244 } 3245 3246 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 3247 }); 3248 }, 3249 scrollLock(use = true) { 3250 document.body.style.overflow = use ? "hidden" : ""; 3251 }, 3252 toggleCartDrawer(event) { 3253 if (event.detail && event.detail.isOpen !== undefined) { 3254 if (event.detail.isOpen) { 3255 this.openCartDrawer(); 3256 } else { 3257 this.open = false; 3258 this.scrollLock(false); 3259 this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent); 3260 } 3261 } else { 3262 this.openCartDrawer() 3263 } 3264 }, 3265 openCartDrawer() { 3266 this.open = true; 3267 this.scrollLock(true); 3268 this.$nextTick(() => { 3269 this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent) 3270 }) 3271 }, 3272 closeCartDrawer() { 3273 this.$dispatch('toggle-cart', { isOpen: false }) 3274 }, 3275 getSectionDataExtraActions() { 3276 if (!this.cart.extra_actions) { 3277 return ''; 3278 } 3279 3280 const contentNode = document.createElement('div'); 3281 contentNode.innerHTML = this.cart.extra_actions; 3282 3283 hyva.activateScripts(contentNode); 3284 3285 return contentNode.innerHTML; 3286 } 3287 } 3288 } 3289</script>
3289 3290<section x-cloak 3291 x-show="cart" 3292 id="cart-drawer" 3293 x-data="initCartDrawer()" 3294 @private-content-loaded.window="getData($event.detail.data)" 3295 @toggle-cart.window="toggleCartDrawer($event)" 3296 @keydown.escape="closeCartDrawer" 3297> 3298 <div role="dialog" 3299 aria-labelledby="cart-drawer-title" 3300 aria-modal="true" 3301 :aria-hidden="!open" 3302 class="fixed inset-y-0 right-0 z-30 flex max-w-full"> 3303 <div class="backdrop" 3304 x-show="open" 3305 x-transition:enter="ease-in-out duration-500" 3306 x-transition:enter-start="opacity-0" 3307 x-transition:enter-end="opacity-100" 3308 x-transition:leave="ease-in-out duration-500" 3309 x-transition:leave-start="opacity-100" 3310 x-transition:leave-end="opacity-0" 3311 role="button" 3312 @click="closeCartDrawer" 3313 aria-label="Close minicart"></div> 3314 <div class="relative w-screen max-w-md shadow-2xl" 3315 x-show="open" 3316 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 3317 x-transition:enter-start="translate-x-full" 3318 x-transition:enter-end="translate-x-0" 3319 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 3320 x-transition:leave-start="translate-x-0" 3321 x-transition:leave-end="translate-x-full" 3322 x-ref="cartDialogContent" 3323 role="region" 3324 :tabindex="open ? 0 : -1" 3325 aria-label="Mein Warenkorb" 3326 3327 > 3328 <div class="flex flex-col h-full max-h-screen bg-white text-black shadow-xl"> 3329 3330 <header class="relative px-4 py-6 sm:px-6"> 3331 <p id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900"> 3332 <strong>Mein Warenkorb</strong> 3333 <span class="items-total text-xs" 3334 x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount" 3335 x-text="getItemCountTitle()"> 3336 </span> 3337 </p> 3338 </header> 3339 3340 3341 <template x-if="!itemsCount"> 3342 <div class="relative px-4 py-6 bg-white border-bs sm:px-6 border-container"> 3343 Warenkorb ist leer </div> 3344 </template> 3345 3346 <template x-if="itemsCount"> 3347 <div class="relative grid gap-6 sm:gap-8 px-1 py-3 sm:px-3 bg-white border-b border-container overflow-y-auto overscroll-y-contain"> 3348 <template x-for="item in cartItems"> 3349 <div class="flex items-start p-3 space-x-4 transition duration-150 ease-in-out rounded-lg hover:bg-gray-100"> 3350 <template x-if="item.product_has_url && item.is_visible_in_site_visibility"> 3351 <a :href="item.product_url" 3352 class="w-1/4 !ml-0" 3353 :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)" 3354 > 3355 <img 3356 :src="item.product_image.src" 3357 :width="item.product_image.width" 3358 :height="item.product_image.height" 3359 loading="lazy" 3360 :alt="item.product_name" 3361 /> 3362 </a> 3363 </template> 3364 <template x-if="!item.product_has_url || !item.is_visible_in_site_visibility"> 3365 <div class="w-1/4 !ml-0"> 3366 <img 3367 :src="item.product_image.src" 3368 :width="item.product_image.width" 3369 :height="item.product_image.height" 3370 loading="lazy" 3371 :alt="item.product_name" 3372 /> 3373 </div> 3374 </template> 3375 <div class="w-3/4 space-y-2"> 3376 <div> 3377 <p class="text-xl">
3378 <span x-html="item.qty"></span> x <span x-html="item.product_name"></span> 3379 </p> 3380 <p class="text-sm"><span x-html="item.product_sku"></span></p> 3381 </div> 3382 <template x-for="option in item.options"> 3383 <div class="pt-2"> 3384 <p class="font-semibold" x-text="option.label + ':'"></p> 3385 <p class="text-secondary" x-html="option.value"></p> 3386 </div> 3387 </template> 3388 <p><span x-html="item.product_price"></span></p> 3389 <div class="pt-4"> 3390 <a :href="item.configure_url" 3391 x-show="item.product_type !== 'grouped' && item.is_visible_in_site_visibility" 3392 class="inline-flex p-2 mr-2 btn btn-primary" 3393 :aria-label="hyva.strf('Edit\u0020product\u0020\u0022\u00250\u0022', item.product_name)" 3394 > 3395 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" aria-hidden="true"> 3396 <path stroke-linecap="round" stroke-linejoin="round" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"/> 3397</svg> 3398 </a> 3399 <button type="button" 3400 class="inline-flex p-2 btn btn-primary" 3401 @click="deleteItemFromCart(item.item_id)" 3402 :aria-label="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)" 3403 > 3404 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" aria-hidden="true"> 3405 <path stroke-linecap="round" stroke-linejoin="round" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"/> 3406</svg> 3407 </button> 3408 </div> 3409 3410 </div> 3411 </div> 3412 </template> 3413 </div> 3414 </template> 3415 3416 <template x-if="itemsCount"> 3417 <div> 3418 3419 <div class="relative grid gap-6 sm:gap-8 py-3 px-1 sm:px-3 bg-white"> 3420 <div class="w-full p-3 space-x-4 transition duration-150 ease-in-out rounded-lg hover:bg-gray-100"> 3421 <p>Zwischensumme: <span x-html="cart.subtotal"></span></p> 3422 </div> 3423 <div class="w-full p-3 space-x-4 transition duration-150 ease-in-out rounded-lg hover:bg-gray-100"> 3424 <a @click.prevent.stop="closeCartDrawer; $dispatch('toggle-authentication', 3425 {url: 'https://meiner.de/fmv_de/checkout/'});" 3426 href="https://meiner.de/fmv_de/checkout/" 3427 class="inline-flex btn btn-primary" 3428 > 3429 Kasse </a> 3430 <span>oder</span> 3431 <a href="https://meiner.de/fmv_de/checkout/cart/" 3432 class="underline" 3433 > 3434 Warenkorb bearbeiten </a> 3435 </div>
3436 <div x-html="getSectionDataExtraActions()"></div> 3437 </div> 3438 </div> 3439 </template> 3440 3441 </div> 3442 3443 <button 3444 type="button" 3445 @click="closeCartDrawer" 3446 aria-label="Close minicart" 3447 class="absolute top-0 right-2 p-4 mt-2 text-gray-300 transition-colors hover:text-black" 3448 > 3449 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 3450 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 3451</svg> 3452 </button> 3453 </div> 3454 <div 3455 class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-primary" 3456 x-cloak 3457 x-show="isLoading" 3458 x-transition.opacity.duration.200ms 3459> 3460 <div class="flex gap-10 items-center p-4"> 3461 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> 3462 <style> 3463 @keyframes spinner-ball-triangle1 { 3464 0% { transform: translate(0%, 0%); } 3465 33% { transform: translate(38%, -79%); } 3466 66% { transform: translate(77%, 0%); } 3467 100% { transform: translate(0%, 0%); } 3468 } 3469 3470 @keyframes spinner-ball-triangle2 { 3471 0% { transform: translate(0%, 0%); } 3472 33% { transform: translate(38%, 79%); } 3473 66% { transform: translate(-38%, 79%); } 3474 100% { transform: translate(0%, 0%); } 3475 } 3476 3477 @keyframes spinner-ball-triangle3 { 3478 0% { transform: translate(0%, 0%); } 3479 33% { transform: translate(-77%, 0%); } 3480 66% { transform: translate(-38%, -79%); } 3481 100% { transform: translate(0%, 0%); } 3482 } 3483 </style> 3484 <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/> 3485 <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/> 3486 <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/> 3487</svg> 3488 <span class="text-xl select-none"> 3489 Wird geladen … </span> 3490 </div> 3491</div> 3492 </div> 3493 3494</section> 3495 3496 <!--Authentication Pop-Up--> 3497
3497<script> 3498 function initAuthentication() { 3499 return { 3500 open: false, 3501 close() { 3502 this.open = false; 3503 }, 3504 forceAuthentication: false, 3505 checkoutUrl: 'https://meiner.de/fmv_de/checkout/index/', 3506 errors: 0, 3507 hasCaptchaToken: 0, 3508 displayErrorMessage: false, 3509 errorMessages: [], 3510 setErrorMessages(message) { 3511 this.errorMessages = [message]; 3512 this.displayErrorMessage = true; 3513 }, 3514 submitForm() { 3515 // Do not rename $form, the variable is expected to be declared in the recaptcha output 3516 const $form = document.querySelector('#login-form'); 3517 3518 if (this.errors === 0) { 3519 this.dispatchLoginRequest($form); 3520 } 3521 }, 3522 onPrivateContentLoaded() { 3523 const data = this.$event.detail.data; 3524 const isLoggedIn = data.customer && data.customer.firstname; 3525 if (data.cart && !isLoggedIn) { 3526 this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; 3527 } 3528 }, 3529 redirectIfAuthenticated() { 3530 const event = this.$event; 3531 this.open = this.forceAuthentication; 3532 3533 if (event.detail && event.detail.url) { 3534 this.checkoutUrl = event.detail.url; 3535 } 3536 if (!this.forceAuthentication) { 3537 window.location.href = this.checkoutUrl; 3538 } 3539 }, 3540 resetErrors() { 3541 this.errors = 0; 3542 }, 3543 dispatchLoginRequest(form) { 3544 this.isLoading = true; 3545 const username = this.$refs['customer-email'].value; 3546 const password = this.$refs['customer-password'].value; 3547 const formKey = hyva.getFormKey(); 3548 const bodyFields = { 3549 'username': username, 3550 'password': password, 3551 'formKey': formKey 3552 }; 3553 const fieldName = 'g\u002Drecaptcha\u002Dresponse'; 3554 const recaptchaField = fieldName && form[fieldName]; 3555 if (recaptchaField) { 3556 bodyFields[fieldName] = recaptchaField.value; 3557 } 3558 fetch('https://meiner.de/fmv_de/customer/ajax/login/', { 3559 method: 'POST', 3560 headers: { 3561 'Content-Type': 'application/json', 3562 'X-Requested-With': 'XMLHttpRequest' 3563 }, 3564 body: JSON.stringify(bodyFields) 3565 } 3566 ).then(response => { 3567 return response.json() 3568 } 3569 ).then(data => { 3570 this.isLoading = false; 3571 if (data.errors) { 3572 this.setErrorMessages(data.message); 3573 this.errors = 1; 3574 this.hasCaptchaToken = 0; 3575 } else { 3576 window.location.href = this.checkoutUrl; 3577 } 3578 }); 3579 } 3580 } 3581 } 3582 3583 window.addEventListener('alpine:init', () => Alpine.data('initAuthentication', initAuthentication), {once: true}) 3584</script>
3584 3585<section id="authentication-popup" 3586 x-data="initAuthentication" 3587 @private-content-loaded.window="onPrivateContentLoaded" 3588 @toggle-authentication.window="redirectIfAuthenticated" 3589 @keydown.window.escape="close" 3590> 3591 <div 3592 class="backdrop" 3593 aria-hidden="true" 3594 x-cloak 3595 x-show="open" 3596 x-transition:enter="ease-in-out duration-500" 3597 x-transition:enter-start="opacity-0" 3598 x-transition:enter-end="opacity-100" 3599 x-transition:leave="ease-in-out duration-500" 3600 x-transition:leave-start="opacity-100" 3601 x-transition:leave-end="opacity-0" 3602 @click="close" 3603 ></div> 3604 <div role="dialog" 3605 aria-modal="true" 3606 @click.outside="close" 3607 class="inset-y-0 right-0 z-30 flex max-w-full fixed" 3608 x-cloak 3609 x-show="open" 3610 > 3611 <div class="relative w-screen max-w-md pt-16 bg-container-lighter" 3612 x-show="open" 3613 x-cloak 3614 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 3615 x-transition:enter-start="translate-x-full" 3616 x-transition:enter-end="translate-x-0" 3617 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 3618 x-transition:leave-start="translate-x-0" 3619 x-transition:leave-end="translate-x-full" 3620 > 3621 <div 3622 x-show="open" 3623 x-cloak 3624 x-transition:enter="ease-in-out duration-500" 3625 x-transition:enter-start="opacity-0" 3626 x-transition:enter-end="opacity-100" 3627 x-transition:leave="ease-in-out duration-500" 3628 x-transition:leave-start="opacity-100" 3629 x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2"> 3630 <button 3631 type="button" 3632 @click="close" 3633 aria-label="Panel schließen" 3634 class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black" 3635 > 3636 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 3637 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 3638</svg> 3639 </button> 3640 </div> 3641 <template x-if="open"> 3642 <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto"> 3643 <div class="mx-4"> 3644 <div class="message error mb-0" x-show="errors" x-cloak> 3645 <template x-for="(message, index) in errorMessages" :key="index"> 3646 <div> 3647 <template x-if="message"> 3648 <span x-html="message"></span> 3649 </template> 3650 </div> 3651 </template> 3652 </div> 3653 </div> 3654 <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm"> 3655 <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900"> 3656 <strong class="font-medium">Mit Ihrem Konto bestellen</strong> 3657 </p> 3658 3659 <form class="form form-login" 3660 method="post" 3661 @submit.prevent="submitForm" 3662 id="login-form" 3663 > 3664 <div class="fieldset login"> 3665 <div class="field email required"> 3666 <label class="label" for="form-login-username" form="login-form" > 3667 <span>E-Mailadresse</span> 3668 </label> 3669 <div class="control"> 3670 <input name="username" 3671 id="form-login-username" 3672 x-ref="customer-email" 3673 @change="resetErrors" 3674 type="email" 3675 required 3676 autocomplete="off" 3677 class="form-input" 3678 > 3679 </div> 3680 </div> 3681 <div class="field password required"> 3682 <label for="form-login-password" class="label" form="login-form">
3683 <span>Passwort</span> 3684 </label> 3685 <div class="control"> 3686 <input name="password" 3687 id="form-login-password" 3688 type="password" 3689 class="form-input" 3690 required 3691 x-ref="customer-password" 3692 autocomplete="off" 3693 @change="resetErrors" 3694 > 3695 </div> 3696 </div> 3697 3698 <input name="context" type="hidden" value="checkout" /> 3699 <div class="actions-toolbar pt-6 pb-2"> 3700 <button type="submit" class="inline-flex btn btn-primary disabled:opacity-75" 3701 > 3702 Anmelden </button> 3703 <a href="https://meiner.de/fmv_de/customer/account/forgotpassword/" 3704 > 3705 Passwort vergessen? </a> 3706 </div> 3707 3708 </div> 3709 </form> 3710 </div> 3711 <div class="mx-4"> 3712 </div> 3713 <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm"> 3714 <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900"> 3715 <strong class="font-medium">Als neuer Kunde bestellen</strong> 3716 </p> 3717 3718 <div class="block-content"> 3719 <p class="mb-1"> 3720 Das Erstellen eines Kontos hat viele Vorteile: </p> 3721 <ul class="list-disc pl-5"> 3722 <li> Bestell- und Versandstatus ansehen</li> 3723 <li> Bestellverlauf verfolgen</li> 3724 <li> Schneller bestellen</li> 3725 </ul> 3726 <div class="actions-toolbar mt-6 mb-2"> 3727 <a href="https://meiner.de/fmv_de/customer/account/create/" 3728 class="inline-flex btn btn-primary"> 3729 Ein Konto erstellen </a> 3730 </div> 3731 </div> 3732 </div> 3733 </div> 3734 </template> 3735 </div> 3736 </div> 3737</section> 3738</div> 3739 3740</header><main id="maincontent" class="page-main-full-width"><div id="contentarea" tabindex="-1"></div> 3741<div class="page messages">
3741<script> 3742 function initMessages() { 3743 "use strict"; 3744 return { 3745 messages: window.mageMessages || [], 3746 isEmpty() { 3747 return this.messages.reduce( 3748 function (isEmpty, message) { 3749 return isEmpty && message === undefined 3750 }, true 3751 ) 3752 }, 3753 hasMessages() { 3754 return !this.isEmpty(); 3755 }, 3756 hasMessage() { 3757 return !!this.message; 3758 }, 3759 removeMessage() { 3760 this.messages[this.index] = undefined; 3761 }, 3762 addMessages(messages, hideAfter) { 3763 messages.map((message) => { 3764 this.messages = this.messages.concat(message); 3765 if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { 3766 hideAfter = window.defaultSuccessMessageTimeout; 3767 } 3768 if (hideAfter) { 3769 this.setHideTimeOut(this.messages.length -1, hideAfter); 3770 } 3771 }); 3772 }, 3773 setHideTimeOut(messageIndex, hideAfter) { 3774 setTimeout((messageIndex) => { 3775 this.removeMessage(messageIndex); 3776 }, hideAfter, messageIndex); 3777 }, 3778 eventListeners: { 3779 ['@messages-loaded.window'](event) { 3780 this.addMessages(event.detail.messages, event.detail.hideAfter) 3781 }, 3782 ['@private-content-loaded.window'](event) { 3783 const data = event.detail.data; 3784 if ( 3785 data.messages && 3786 data.messages.messages && 3787 data.messages.messages.length 3788 ) { 3789 this.addMessages(data.messages.messages); 3790 } 3791 }, 3792 ['@clear-messages.window']() { 3793 this.messages = []; 3794 } 3795 }, 3796 getMessageUiId() { 3797 return 'message-' + this.message.type; 3798 } 3799 } 3800 } 3801 3802 window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true}) 3803</script>
3803 3804<section id="messages" 3805 x-data="initMessages" 3806 x-bind="eventListeners" 3807 aria-live="assertive" 3808 role="alert" 3809> 3810 <template x-if="hasMessages"> 3811 <div class="w-full"> 3812 <div class="messages container mx-auto py-3"> 3813 <template x-for="(message, index) in messages" :key="index"> 3814 <div> 3815 <template x-if="hasMessage"> 3816 <div class="message" 3817 :class="message.type" 3818 :ui-id="getMessageUiId" 3819 > 3820 <span x-html="message.text"></span> 3821 <button 3822 type="button" 3823 class="text-gray-600 hover:text-black" 3824 aria-label="Close message" 3825 @click.prevent="removeMessage" 3826 > 3827 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current" width="18" height="18" aria-hidden="true"> 3828 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 3829</svg> 3830 </button> 3831 </div> 3832 </template> 3833 </div> 3834 </template> 3835 </div> 3836 </div> 3837 </template> 3838</section> 3839</div><div class="columns"><div class="column main">
3840<script> 3841 'use strict'; 3842 3843 function initAwBlogAjax() { 3844 const settings = {"url":"https:\/\/meiner.de\/fmv_de\/aw_blog\/block\/render\/"}; 3845 3846 return { 3847 url: settings.url || '/', 3848 dataPattern: 'awBlogBlockName', 3849 placeholders: document.querySelectorAll('[data-aw-blog-block-name]'), 3850 3851 init() { 3852 if (this.placeholders && this.placeholders.length) { 3853 this.ajax(); 3854 } 3855 }, 3856 3857 ajax() { 3858 const self = this, 3859 blocks = []; 3860 3861 this.placeholders.forEach(function(elem) { 3862 blocks.push(elem.dataset[self.dataPattern]); 3863 }); 3864 3865 fetch(this.url + '?blocks=' + JSON.stringify(blocks), { 3866 headers: { 3867 'Content-Type': 'application/json', 3868 'X-Requested-With': 'XMLHttpRequest' 3869 } 3870 }).then((response) => { 3871 return response.json(); 3872 }).then((data) => { 3873 self.placeholders.forEach(function(elem) { 3874 const placeholderName = elem.dataset[self.dataPattern]; 3875 3876 if (data.hasOwnProperty(placeholderName)) { 3877 elem.insertAdjacentHTML('beforebegin', data[placeholderName]); 3878 elem.remove(); 3879 } 3880 }); 3881 }).catch((error) => { 3882 console.error(error); 3883 }) 3884 } 3885 } 3886 } 3887 3888 window.addEventListener('alpine:init', () => { 3889 Alpine.data('initAwBlogAjax', initAwBlogAjax); 3890 }, {
3891 once: true 3892 }); 3893</script>
3893 3894 3895<div x-data='initAwBlogAjax'></div>
3896<script>try { 3897smileTracker.addPageVar('cms.identifier', 'home'); 3898smileTracker.addPageVar('cms.title', 'Felix Meiner Verlag - meiner.de'); 3899} catch (err) { ; }</script>
3899<style>.cmsp2-block { 3900display: block 3901} 3902.cmsp2-p-5 { 3903padding: 1.25rem 3904}</style> 3905<style>#html-body [data-pb-style=BE6DLBB],#html-body [data-pb-style=HBNQ69W],#html-body [data-pb-style=IJNNBS8],#html-body [data-pb-style=IMJKJSS],#html-body [data-pb-style=K8EX2WY],#html-body [data-pb-style=LQNYKDT],#html-body [data-pb-style=MTOUR12],#html-body [data-pb-style=QXPL12C],#html-body [data-pb-style=VJ83SAS],#html-body [data-pb-style=XX0C0CC]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=EF0RDMC]{display:none}#html-body [data-pb-style=FUIYFW4],#html-body [data-pb-style=NIHBCNX]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=IRXUS1O]{min-height:300px}#html-body [data-pb-style=CBMJKYY]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=DQURHCH]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=HHRXWXR]{border-style:none;border-color:#f0f0f0}#html-body [data-pb-style=B50WSH3],#html-body [data-pb-style=EF95BS6],#html-body [data-pb-style=HHRXWXR],#html-body [data-pb-style=QHTY39W],#html-body [data-pb-style=UD26YMC],#html-body [data-pb-style=YPY77HD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=OEO9IIG]{background-position:left top;background-size:cover;background-repeat:no-repeat;min-height:300px}#html-body [data-pb-style=TJSIVC1]{min-height:300px;background-color:transparent}#html-body [data-pb-style=J39MA6K]{background-position:left top;background-size:cover;background-repeat:no-repeat;min-height:300px}#html-body [data-pb-style=R10REW0]{min-height:300px;background-color:transparent}#html-body [data-pb-style=HDXORVE]{background-position:left top;background-size:cover;background-repeat:no-repeat;min-height:300px}#html-body [data-pb-style=YFX3OXY]{min-height:300px;background-color:transparent}#html-body [data-pb-style=PRNSJRJ]{background-position:left top;background-size:cover;background-repeat:no-repeat;min-height:300px}#html-body [data-pb-style=Q7IN5DX]{min-height:300px;background-color:transparent}#html-body [data-pb-style=C8QVPX5]{background-position:left top;background-size:cover;background-repeat:no-repeat;min-height:300px}#html-body [data-pb-style=JGXAXL8]{min-height:300px;background-color:transparent}#html-body [data-pb-style=BBAPORQ],#html-body [data-pb-style=DQV92YO],#html-body [data-pb-style=ILN4LAN],#html-body [data-pb-style=OY6Q222],#html-body [data-pb-style=PD1C0BY],#html-body [data-pb-style=SUCVL14],#html-body [data-pb-style=YPEFH56]{display:flex;width:100%}#html-body [data-pb-style=HJDB5GU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:16.6667%;align-self:stretch}#html-body [data-pb-style=GSST2UT]{width:83.3333%}#html-body [data-pb-style=A3QU07G],#html-body [data-pb-style=CB11K18],#html-body [data-pb-style=GSST2UT]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=A3QU07G]{width:41.6667%;margin-right:0}#html-body [data-pb-style=CB11K18]{width:8.33333%}#html-body [data-pb-style=A0EEFDH],#html-body [data-pb-style=CT5JN59],#html-body [data-pb-style=ES6KTQP],#html-body [data-pb-style=EYKDCL7],#html-body [data-pb-style=W5FBXVQ],#html-body [data-pb-style=XEVNLJ0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=A0EEFDH],#html-body [data-pb-style=CT5JN59],#html-body [data-pb-style=EYKDCL7],#html-body [data-pb-style=W5FBXVQ],#html-body [data-pb-style=XEVNLJ0]{width:41.6667%}#html-body [data-pb-style=A0EEFDH],#html-body [data-pb-style=CT5JN59],#html-body [data-pb-style=EYKDCL7],#html-body [data-pb-style=W5FBXVQ]{width:8.33333%}#html-body [data-pb-style=A0EEFDH],#html-body [data-pb-style=CT5JN59],#html-body [data-pb-style=W5FBXVQ]{width:50%}#html-body [data-pb-style=A0EEFDH],#html-body [data-pb-style=CT5JN59]{width:100%}#html-body [data-pb-style=ECM6YD3],#html-body [data-pb-style=GLCHRV4],#html-body [data-pb-style=HNWY1JL],#html-body [data-pb-style=MXLJ7AI],#html-body [data-pb-style=PK9D1F2],#html-body [data-pb-style=RAUXYGH]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=ECM6YD3],#html-body [data-pb-style=GLCHRV4],#html-body [data-pb-style=HNWY1JL],#html-body [data-pb-style=MXLJ7AI],#html-body [data-pb-style=RAUXYGH]{width:8.33333%}#html-body [data-pb-style=GLCHRV4],#html-body [data-pb-style=HNWY1JL],#html-body [data-pb-style=MXLJ7AI],#html-body [data-pb-style=RAUXYGH]{width:50%}#html-body [data-pb-style=GLCHRV4],#html-body [data-pb-style=HNWY1JL],#html-body [data-pb-style=MXLJ7AI]{width:41.6667%}#html-body [data-pb-style=HNWY1JL],#html-body [data-pb-style=MXLJ7AI]{width:8.33333%}#html-body [data-pb-style=HNWY1JL]{width:50%}#html-body [data-pb-style=J9QYD4J],#html-body [data-pb-style=KBK5W12],#html-body [data-pb-style=U65D85F],#html-body [data-pb-style=VV1BAQX],#html-body [data-pb-style=YLG2MX7]{text-align:center;border-style:solid}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="VJ83SAS"><div class="pagebuilder-slider pagebuilder-slider-home" data-content-type="slider" data-appearance="default" data-autoplay="true" data-autoplay-speed="5000" data-fade="false" data-infinite-loop="true" data-show-arrows="true" data-show-dots="true" data-sli
3905des-to-show="1" data-slides-to-scroll="1" data-element="main" data-pb-style="IRXUS1O"><div data-content-type="slide" data-slide-name="Josef Früchtl - Von süßen Lügen und bilderlosen Bildern" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-element="main"><a href="/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982" target="" data-link-type="default" title="" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ab95c8257365" data-background-images='{\"desktop_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Fr_chtl_1488x350px.jpg\",\"mobile_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Fr_chtl_768x768px.jpg\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="OEO9IIG"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="" title="" data-element="overlay" data-pb-style="TJSIVC1"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ab95c8257365 {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Fr_chtl_1488x350px.jpg);}@media only screen and (max-width: 768px) and (min-width: 640px) {.background-image-6ab95c8257365 {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Fr_chtl_768x768px.jpg);}}@media only screen and (max-width: 640px) {.background-image-6ab95c8257365 {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Fr_chtl_768x768px.jpg);}}</style></a></div><div data-content-type="slide" data-slide-name="Blaue Reihe" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-element="main"><a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe" target="" data-link-type="category" title="Die Blaue Reihe in neuem Gewand" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ab95c825c9ba" data-background-images='{\"desktop_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Blaue_Reihe_1488x350px.jpg\",\"mobile_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Blaue_Reihe_768x768px.jpg\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="J39MA6K"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Die Blaue Reihe in neuem Gewand" title="Die Blaue Reihe in neuem Gewand" data-element="overlay" data-pb-style="R10REW0"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ab95c825c9ba {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Blaue_Reihe_1488x350px.jpg);}@media only screen and (max-width: 768px) and (min-width: 640px) {.background-image-6ab95c825c9ba {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Blaue_Reihe_768x768px.jpg);}}@media only screen and (max-width: 640px) {.background-image-6ab95c825c9ba {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Slider_Blaue_Reihe_768x768px.jpg);}}</style></a></div><div data-content-type="slide" data-slide-name="Schweppenhäuser" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-element="main"><a href="https://meiner.de/fmv_de/das-konstruktivistische-a-interesse-am-ka-rpera-19559" target="" data-link-type="product" title="" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ab95c825c9e8" data-background-images='{\"desktop_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Schweppenh_user_1488x350px.jpg\",\"mobile_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Schweppenh_user_768x768px.jpg\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="HDXORVE"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Schweppenhäuser" title="" data-element="overlay" data-pb-style="YFX3OXY"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ab95c825c9e8 {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Schweppenh_user_1488x350px.jpg);}@media only screen and (max-width: 768px) and (min-width: 640px) {.background-image-6ab95c825c9e8 {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Schweppenh_user_768x768px.jpg);}}@media only screen and (max-width: 640px) {.background-image-6ab95c825c9e8 {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Schweppenh_user_768x768px.jpg);}}</style></a></div>
3905<div data-content-type="slide" data-slide-name="Butterfield" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-element="main"><a href="https://meiner.de/fmv_de/die-whig-interpretation-der-geschichte-21391" target="" data-link-type="product" title="" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ab95c825ca0a" data-background-images='{\"desktop_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Butterfield_1488x350px.jpg\",\"mobile_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Butterfield_768x768px.jpg\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="PRNSJRJ"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Butterfield" title="" data-element="overlay" data-pb-style="Q7IN5DX"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ab95c825ca0a {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Butterfield_1488x350px.jpg);}@media only screen and (max-width: 768px) and (min-width: 640px) {.background-image-6ab95c825ca0a {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Butterfield_768x768px.jpg);}}@media only screen and (max-width: 640px) {.background-image-6ab95c825ca0a {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Butterfield_768x768px.jpg);}}</style></a></div><div data-content-type="slide" data-slide-name="Radikalität" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-element="main"><a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" target="" data-link-type="product" title="" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ab95c825ca2b" data-background-images='{\"desktop_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Detel_A_1488x350px.jpg\",\"mobile_image\":\"https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Detel_A_768x768px.jpg\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="C8QVPX5"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Radikalität" title="" data-element="overlay" data-pb-style="JGXAXL8"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ab95c825ca2b {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Detel_A_1488x350px.jpg);}@media only screen and (max-width: 768px) and (min-width: 640px) {.background-image-6ab95c825ca2b {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Detel_A_768x768px.jpg);}}@media only screen and (max-width: 640px) {.background-image-6ab95c825ca2b {background-image: url(https://meiner.de/media/wysiwyg/FMV/Banner/FMV_Banner_Detel_A_768x768px.jpg);}}</style></a></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="K8EX2WY"><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="CBMJKYY"></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="MTOUR12"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"> 3906 <div data-aw-blog-block-name="eyJuYW1lIjoiYXdfYmxvZ193aWRnZXRfcmVjZW50X3Bvc3Rfd2lkZ2V0XFxyZWNlbnRwb3N0XzAiLCJudW1iZXJfdG9fZGlzcGxheSI6IjQiLCJhcmVfaW1hZ2VzX2Rpc2FibGVkIjoiMCIsImNhdGVnb3J5X2lkcyI6bnVsbCwidGl0bGUiOiJOZXVpZ2tlaXRlbiIsInRlbXBsYXRlIjoid2lkZ2V0XC9yZWNlbnRfcG9zdFwvZGVmYXVsdC5waHRtbCJ9"></div> 3907 3908</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="LQNYKDT"><h3 data-content-type="heading" data-appearance="default" data-element="main">
3908Zuletzt erschienen</h3><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carousel"> 3909 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 3910 3911 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47165/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16064"> 3912 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47165"> 3913 <a href="https://meiner.de/fmv_de/traktat-a-ber-die-drei-betra-ger-16064" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 3914 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47165.window="$el.src = $event.detail" alt="Traktat über die drei Betrüger" title="Traktat über die drei Betrüger" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344192_3.jpg" :style="{ 3915 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 3916 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 3917 }"> 3918 </a> 3919 <div class="product-info flex flex-col flex-grow "> 3920 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 3921 <div class="mb-2 text-sm text-gray-500 font-medium"> 3922 <a href="https://meiner.de/fmv_de/person/Anonymus-4636/" class="mb-2"> 3923 Anonymus </a> 3924 </div> 3925 <a class="product-item-link" href="https://meiner.de/fmv_de/traktat-a-ber-die-drei-betra-ger-16064"> 3926 Traktat über die drei Betrüger </a> 3927 </div> 3928 3929 <div x-data="initEditionText_47165()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 3930 <!-- Marketing short text --> 3931 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 3932 </div> 3933 </div> 3934 3935 <div class="py-1 grid mb-4 "> 3936 3937 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47165,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47165,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"19306":"1","47092":"1"},"childProductsAlertStatus":{"19306":"0","47092":"0"},"indexMapping":{"163:15":19306,"163:8":47092},"availabilityMessages":{"19306":"Lieferbar innerhalb von 3-5 Tagen","47092":"Download sofort verf\u00fcgbar"},"openAccess":{"47165":{"status":0},"19306":{"status":0},"47092":{"status":0}}},"availabilityMessages":{"19306":"Lieferbar innerhalb von 3-5 Tagen","47092":"Download sofort verf\u00fcgbar"},"openAccess":{"47165":{"status":0},"19306":{"status":0},"47092":{"status":0}}}'> 3938 <template x-if="containerVisible"> 3939 <!-- Popup Trigger --> 3940 <div> 3941 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 3942 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
3943 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 3944 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 3945<title>bell</title></svg> 3946</span> 3947 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 3948 3949 <!-- Popup Modal --> 3950 <template x-if="showModal"> 3951 <template x-teleport=".page-wrapper"> 3952 <div x-cloak class="fixed inset-0 flex items-center justify-center 3953 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 3954 <div class="relative bg-white rounded-lg shadow-xl 3955 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 3956 <div class="p-6"> 3957 <!-- Subscription Form for Popup --> 3958 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 3959 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 3960 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 3961 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 3962 3963 <div class="flex flex-col gap-3"> 3964 <div class="flex-grow grow"> 3965 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 3966 shadow-xs focus:outline-none focus:outline-hidden 3967 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 3968 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 3969 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 3970 </div> 3971 <input type="hidden" name="product_id" :value="currentProductId"> 3972 <input type="hidden" name="type" value="email"> 3973 3974 3975 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 3976 3977 <div class="amxnotif_guest_action"> 3978 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 3979 rounded-md focus:outline-none 3980 focus:outline-hidden focus:ring-2 3981 focus:ring-offset-2 disabled:opacity-50 3982 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 3983 Benachrichtigen </button> 3984 </div> 3985 </div> 3986 3987 <div class="flex items-start pt-2"> 3988 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 3989 text-blue-600 border-gray-300 rounded-sm"> 3990 <label class="amxnotif-stock-gdrp-label cursor-pointer 3991 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 3992 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 3993 </div> 3994 </form> 3995 </div> 3996 3997 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 3998 hover:text-gray-600 transition-colors" aria-label="Schließen"> 3999 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 4000 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 4001<title>x</title></svg> 4002 </button> 4003 </div> 4004 </div> 4005 </template> 4006 </template> 4007 </div> 4008 </template> 4009 </div> 4010 4011<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47165" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47165,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"19306":"1","47092":"1"},"childProductsAlertStatus":{"19306":"0","47092":"0"}
4011,"indexMapping":"{\u0022163:15\u0022:19306,\u0022163:8\u0022:47092}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47165,"availabilityMessages":{"19306":"Lieferbar innerhalb von 3-5 Tagen","47092":"Download sofort verf\u00fcgbar"},"openAccess":{"47165":{"status":0},"19306":{"status":0},"47092":{"status":0}}}'> 4012 4013 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 4014 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 4015 <span x-html="optionsLabelText"></span> 4016 </p> 4017</div> </div> 4018 4019
4019<script> 4020 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 4021 try { 4022 const attributes = (config && config.attributes) ? config.attributes : null; 4023 if (!attributes) return []; 4024 let attr = null; 4025 if (Array.isArray(attributes)) { 4026 for (let i = 0; i < attributes.length; i++) { 4027 const a = attributes[i]; 4028 if (a && a.id == attrId) { 4029 attr = a; 4030 break; 4031 } 4032 } 4033 } else { 4034 attr = attributes[attrId]; 4035 } 4036 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 4037 } catch (e) { 4038 return []; 4039 } 4040 }; 4041 4042 function initConfigurableSwatchOptions_47165() { 4043 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["19306"]},{"id":"8","label":"PDF","products":["47092"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"19306":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47092":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":14.27730992437},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"47165","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"19306":{"163":"15"},"47092":{"163":"8"}},"salable":{"163":{"15":["19306"],"8":["47092"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"19306":"004419","47092":"004420"},"output":{"19306":"Kartoniert","47092":"PDF"},"original_name":{"19306":"Trait\u00e9 des trois imposteurs","47092":"Trait\u00e9 des trois imposteurs"},"openaccess_license_link":{"19306":"","47092":""},"openaccess_license_name":{"19306":"","47092":""},"openaccess_external_link":{"19306":"","47092":""},"gpsr_safety_info":{"19306":"","47092":""},"description":{"19306":"Die legend\u00e4re Abhandlung \u00fcber die drei Betr\u00fcger (Moses, Jesus und Mohammed) z\u00e4hlt zu den herausragenden Schl\u00fcsseltexten der franz\u00f6sischen Aufkl\u00e4rung. Die Schrift markiert den \u00dcbergang von der rationalen Religionskritik zum konsequenten Atheismus in der Philosophie der Neuzeit und war z.B. auch f\u00fcr de Sade ein wichtiger Ausgangspunkt. Es gibt weder Gott noch das Jenseits, weder Freiheit noch Verantwortung \u2013 sondern der Mensch ist sterblich und Teil der Natur. So lautet die radikale, den Standpunkt der Deisten \u00fcberbietende Botschaft des gegen Ende des 17. Jahrhunderts entstandenen \u00bbTrait\u00e9 des trois imposteurs\u00ab, der die Lehren von Moses, Jesus und Mohammed als Lug und Trug zur\u00fcckweist. <br\/><br\/>Die legendenumwobene Schrift fand im 18. Jhd. (zun\u00e4chst in einer Vielzahl von Abschriften, ab 1768 im Druck) gro\u00dfe Verbreitung. Sie gilt als Schl\u00fcsseldokument f\u00fcr die Anf\u00e4nge und das Programm des strikt materialistischen Fl\u00fcgels der franz\u00f6sischen Aufkl\u00e4rung: Bereits 50 Jahre vor d'Holbach bot der \u00bbTrait\u00e9\u00ab den Aufriss f\u00fcr dessen \u00bbSyst\u00e8me de la nature\u00ab und war sp\u00e4ter f\u00fcr den Marquis de Sade der Ausgangspunkt f\u00fcr die radikale Desavouierung des Begriffs der Moral. Der unbekannte Verfasser des \u00bbTrait\u00e9\u00ab begriff sich nicht als Autor, sondern als Vermittler: Sein Text st\u00fctzt sich auf Anleihen bei Hobbes, Spinoza und Vanini, d.h. auf Paraphrasen und Umdeutungen in aufkl\u00e4rerischem Pathos. <br\/><br\/>Der Band pr\u00e4sentiert den Text in kritischer Edition (nach der Ausgabe von 1768) mit deutscher \u00dcbersetzung und kommentierenden Anmerkungen des Herausgebers. F\u00fcr die Neuausgabe hat der Herausgeber eine neue Einleitung verfasst und die Bibliographie \u00fcberarbeitet.","47092":"Die legend\u00e4re Abhandlung \u00fcber die drei Betr\u00fcger (Moses, Jesus und Mohammed) z\u00e4hlt zu den herausragenden Schl\u00fcsseltexten der franz\u00f6sischen Aufkl\u00e4rung. Die Schrift markiert den \u00dcbergang von der rationalen Religionskritik zum konsequenten Athe
4043ismus in der Philosophie der Neuzeit und war z.B. auch f\u00fcr de Sade ein wichtiger Ausgangspunkt. Es gibt weder Gott noch das Jenseits, weder Freiheit noch Verantwortung \u2013 sondern der Mensch ist sterblich und Teil der Natur. So lautet die radikale, den Standpunkt der Deisten \u00fcberbietende Botschaft des gegen Ende des 17. Jahrhunderts entstandenen \u00bbTrait\u00e9 des trois imposteurs\u00ab, der die Lehren von Moses, Jesus und Mohammed als Lug und Trug zur\u00fcckweist. <br\/><br\/>Die legendenumwobene Schrift fand im 18. Jhd. (zun\u00e4chst in einer Vielzahl von Abschriften, ab 1768 im Druck) gro\u00dfe Verbreitung. Sie gilt als Schl\u00fcsseldokument f\u00fcr die Anf\u00e4nge und das Programm des strikt materialistischen Fl\u00fcgels der franz\u00f6sischen Aufkl\u00e4rung: Bereits 50 Jahre vor d'Holbach bot der \u00bbTrait\u00e9\u00ab den Aufriss f\u00fcr dessen \u00bbSyst\u00e8me de la nature\u00ab und war sp\u00e4ter f\u00fcr den Marquis de Sade der Ausgangspunkt f\u00fcr die radikale Desavouierung des Begriffs der Moral. Der unbekannte Verfasser des \u00bbTrait\u00e9\u00ab begriff sich nicht als Autor, sondern als Vermittler: Sein Text st\u00fctzt sich auf Anleihen bei Hobbes, Spinoza und Vanini, d.h. auf Paraphrasen und Umdeutungen in aufkl\u00e4rerischem Pathos. <br\/><br\/>Der Band pr\u00e4sentiert den Text in kritischer Edition (nach der Ausgabe von 1768) mit deutscher \u00dcbersetzung und kommentierenden Anmerkungen des Herausgebers. F\u00fcr die Neuausgabe hat der Herausgeber eine neue Einleitung verfasst und die Bibliographie \u00fcberarbeitet."},"doi":{"19306":"","47092":"10.28937\/978-3-7873-4420-8"},"isbn":{"19306":"978-3-7873-4419-2","47092":"978-3-7873-4420-8"},"marketing_short_text":{"19306":"","47092":""},"recension_text":{"19306":"<div class=\"reviews\">\r\n<div class=\"review\">Schr\u00f6ders Kommentar ist ein philologisches Glanzst\u00fcck.<\/div>\r\n<div class=\"source\">Frankfurter Allgemeine, 12. Mai 1993<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Die Menschen \u2013 das war das Verhei\u00dfende des Textes \u2013 sollten von den Fesseln befreit werden, die sie in ihrem Handeln und Denken einschr\u00e4nkten, von den Fesseln einer Moral, die im Bunde mit einer fragw\u00fcrdigen, repressiven Herrschaft stand. Darum wollte der Autor auch unbedingt mit der Vorstellung aufr\u00e4umen, es g\u00e4be Strafen im Jenseits. [\u2026] Wer\u2019s darauf anlegt, dem liefert der Traktat noch heute eine Menge polemische Munition. Unter anderem deshalb wird er im laizistischen Frankreich wieder so gern gelesen. Wichtig bleibt das B\u00fcchlein auf jeden Fall in historischer Perspektive: gerade weil es uns an die Wurzeln jener entzauberten modernen Welt f\u00fchrt, in der wir heute leben \u2013 und f\u00fcr die, wie nichts sonst, der Atheismus zu einer signifikanten Position geworden ist.<\/div>\r\n<div class=\"source\">Winfried Schr\u00f6der (im ZEIT-Interview vom 20. Mai 2010)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Ein wegweisendes Dokument des Atheismus! Es gibt weder Gott noch das Jenseits, weder Freiheit noch Verantwortung, sondern der Mensch ist sterblich und Teil der Natur.<\/div>\r\n<div class=\"source\">lehrerbibliothek.de<\/div>\r\n<\/div>","47092":"<div class=\"reviews\">\r\n<div class=\"review\">Schr\u00f6ders Kommentar ist ein philologisches Glanzst\u00fcck.<\/div>\r\n<div class=\"source\">Frankfurter Allgemeine, 12. Mai 1993<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Die Menschen \u2013 das war das Verhei\u00dfende des Textes \u2013 sollten von den Fesseln befreit werden, die sie in ihrem Handeln und Denken einschr\u00e4nkten, von den Fesseln einer Moral, die im Bunde mit einer fragw\u00fcrdigen, repressiven Herrschaft stand. Darum wollte der Autor auch unbedingt mit der Vorstellung aufr\u00e4umen, es g\u00e4be Strafen im Jenseits. [\u2026] Wer\u2019s darauf anlegt, dem liefert der Traktat noch heute eine Menge polemische Munition. Unter anderem deshalb wird er im laizistischen Frankreich wieder so gern gelesen. Wichtig bleibt das B\u00fcchlein auf jeden Fall in historischer Perspektive: gerade weil es uns an die Wurzeln jener entzauberten modernen Welt f\u00fchrt, in der wir heute leben \u2013 und f\u00fcr die, wie nichts sonst, der Atheismus zu einer signifikanten Position geworden ist.<\/div>\r\n<div class=\"source\">Winfried Schr\u00f6der (im ZEIT-Interview vom 20. Mai 2010)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Ein wegweisendes Dokument des Atheismus! Es gibt weder Gott noch das Jense
4043its, weder Freiheit noch Verantwortung, sondern der Mensch ist sterblich und Teil der Natur.<\/div>\r\n<div class=\"source\">lehrerbibliothek.de<\/div>\r\n<\/div>"},"language":{"19306":"Franz\u00f6sisch-Deutsch","47092":""},"cover":{"19306":"Kartoniert","47092":""},"pages":{"19306":"LXVIII, 171 Seiten.","47092":"LXVIII, 171 Seiten."},"edition":{"19306":"2., durchgesehene Auflage mit neuer Einleitung und aktualisierter Bibliographie","47092":"2., durchgesehene Auflage mit neuer Einleitung und aktualisierter Bibliographie"},"pod":{"19306":"Nein","47092":"Nein"},"copyright_year":{"19306":"","47092":""},"vlb_tix_link":{"19306":"https:\/\/neu.vlbtix.de\/products\/9783787344192?type=gtin","47092":""},"defaultValues":{"163":"15"}}; 4044 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 4045 4046 if (typeof window.amxnotif_wrap_attributes === 'function') { 4047 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 4048 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 4049 } 4050 4051 const configurableOptionsComponent = initConfigurableOptions( 4052 '47165', 4053 config 4054 ); 4055 const swatchOptionsComponent = initSwatchOptions( 4056 swatchConfig 4057 ); 4058 4059 // DWS - Configurable product preselect start 4060 const confProdPreSelect = () => { 4061 return { 4062 preselectQuerystringItems() { 4063 var data = {"id":"19306","output":"15"}; 4064 const urlQueryParams = new URLSearchParams(window.location.search); 4065 4066 this.$nextTick(() => { 4067 setTimeout(() => { 4068 const rootEl = this.$root || this.$el; 4069 if (!rootEl) return; 4070 4071 const applySelection = (attrCode, attrValue) => { 4072 if (attrValue === undefined || attrValue === null || attrValue === '') return; 4073 4074 const attributes = Object.values(this.optionConfig.attributes || {}); 4075 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 4076 4077 if (targetAttr) { 4078 const attrId = String(targetAttr.id); 4079 const optionVal = String(attrValue); 4080 4081 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 4082 4083 if (inputEl) { 4084 inputEl.click(); 4085 inputEl.dispatchEvent(new Event('change', { 4086 bubbles: true 4087 })); 4088 } else { 4089 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 4090 if (selectEl) { 4091 selectEl.value = optionVal; 4092 selectEl.dispatchEvent(new Event('change', { 4093 bubbles: true 4094 })); 4095 } 4096 } 4097 4098 this.changeOption(attrId, optionVal, false); 4099 } 4100 }; 4101 4102 if (data && typeof data === 'object') {
4103 Object.keys(data).forEach(key => applySelection(key, data[key])); 4104 } 4105 4106 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 4107 if (attribute && attribute.code) { 4108 let optionValue = urlQueryParams.get(attribute.code); 4109 if (optionValue) { 4110 let optionId = false; 4111 const attributes = Object.values(this.optionConfig.attributes || {}); 4112 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 4113 4114 let found = false; 4115 Object.values(targetAttr.options).map(option => { 4116 if (found === false && option.label === optionValue) { 4117 optionId = option.id; 4118 found = true; 4119 } 4120 }); 4121 4122 const attrId = String(targetAttr.id); 4123 let optionVal = String(optionValue); 4124 if (found) { 4125 optionVal = String(optionId); 4126 } 4127 4128 applySelection(attribute.code, optionVal); 4129 } 4130 } 4131 }); 4132 }, 100); 4133 }); 4134 } 4135 } 4136 }; 4137 // DWS - Configurable product preselect end 4138 4139 const result = Object.assign( 4140 configurableOptionsComponent, 4141 swatchOptionsComponent, { 4142 productId: '47165', 4143 productIndex: 0, 4144 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 4145 showSwatches: false, 4146 precalcOptions: {}, 4147 originalInit: configurableOptionsComponent.init, 4148 init() { 4149 try { 4150 this.precalcOptions = {}; 4151 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 4152 this.preselectQuerystringItems(); 4153 if (Array.isArray(attrSource)) { 4154 attrSource.forEach(attr => { 4155 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 4156 }); 4157 } else if (attrSource && typeof attrSource === 'object') { 4158 Object.keys(attrSource).forEach(id => { 4159 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 4160 }); 4161 } 4162 } catch (e) { 4163 console.error('Pre-calc error:', e); 4164 } 4165 4166 if (typeof this.originalInit === 'function') { 4167 this.originalInit(); 4168 } 4169 4170 try { 4171 this.initShowSwatchesIntersect(); 4172 } catch (e) { 4173 console.error('intersect error:', e); 4174 } 4175 }, 4176 4177 updateGallery() { 4178 if (!this.productIndex) return; 4179 4180 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 4181 method: 'GET', 4182 headers: { 4183 'Content-Type': 'application/json', 4184 'X-Requested-With': 'XMLHttpRequest' 4185 } 4186 }) 4187 .then(response => response.json()) 4188 .then(data => { 4189 if (data && data.medium) { 4190 window.dispatchEvent(new CustomEvent("update-gallery-47165", { 4191 detail: data.medium 4192 })); 4193 } 4194 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 4195 }, 4196 4197 4198 initShowSwatchesIntersect() { 4199 const observer = new IntersectionObserver(entries => { 4200 if (entries[0].isIntersecting) { 4201 this.showSwatches = true; 4202 observer.disconnect(); 4203 } 4204 }, { 4205 rootMargin: '512px' 4206 }); 4207 observer.observe(this.$el); 4208 }, 4209 getOptions(attrId) { 4210 return this.precalcOptions[attrId] || []; 4211 }, 4212 getOptionsByAttrId() { 4213 return this.getOptions(this.$el.dataset.attributeId); 4214 }, 4215 _getItemId() { 4216 if (this.item && this.item.id) return this.item.id; 4217 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 4218 }, 4219 getSwatchOptionHtmlId() { 4220 const itemId = this._getItemId(); 4221 return itemId ? this.$id(`attribute-option-47165-${itemId}`) : ''; 4222 }, 4223 getSwatchOptionHtmlIdGroup() { 4224 const itemId = this._getItemId(); 4225 return itemId ? [`attribute-option-47165-${itemId}`] : []; 4226 }, 4227 getAttributeSwatchData(attributeId) { 4228 const data = Object.assign({}, this.swatchConfig[attributeId]); 4229 if (data['additional_data']) { 4230 try { 4231 data['details'] = JSON.parse(data['additional_data']); 4232 } catch (e) { 4233 data['details'] = {}; 4234 } 4235 } 4236 return data; 4237 }, 4238 getSwatchType(attributeId, optionId) { 4239 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 4240 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 4241 } 4242 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 4243 this.swatchConfig[attributeId].details.swatch_input_type : 4244 "empty"; 4245 if (type === 'visual') { 4246 const config = this.swatchConfig[attributeId]; 4247 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 4248 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 4249 } 4250 // Fallback to first option type 4251 for (const oId in config) { 4252 if (config[oId] && typeof config[oId].type !== 'undefined') { 4253 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 4254 } 4255 } 4256 } 4257 return type; 4258 }, 4259 mapSwatchTypeNumberToTypeCode(type) { 4260 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 4261 }, 4262 isTextSwatch() { 4263 const itemId = this._getItemId(); 4264 if (!this.$el || !itemId) return false;
4265 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4266 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 4267 }, 4268 4269 getSwatchText() { 4270 const itemId = this._getItemId(); 4271 if (this.item) return this.item.label || ''; 4272 if (!this.$el || !itemId) return ''; 4273 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4274 const options = attrId ? this.getOptions(attrId) : []; 4275 const opt = options.find(o => o.id == itemId); 4276 return opt ? opt.label : ''; 4277 }, 4278 getSwatchBackgroundStyle() { 4279 const itemId = this._getItemId(); 4280 if (!this.$el || !itemId) return ''; 4281 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4282 if (!attrId) return ''; 4283 const type = this.getSwatchType(attrId, itemId); 4284 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 4285 this.swatchConfig[attrId][itemId] : 4286 null; 4287 if (!swatchData) return ''; 4288 if (type === "color") return 'background-color:' + swatchData.value; 4289 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 4290 return ''; 4291 }, 4292 swatchOptionClasses() { 4293 const itemId = this._getItemId(); 4294 if (!this.$el || !itemId) return {}; 4295 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4296 return { 4297 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 4298 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 4299 'w-6 h-6': !this.isTextSwatch() 4300 } 4301 }, 4302 4303 onFocusSwatchItem() { 4304 const itemId = this._getItemId(); 4305 if (itemId) this.focusedLabel = itemId; 4306 }, 4307 onChangeOption() { 4308 const itemId = this._getItemId(); 4309 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 4310 if (attrId && itemId) this.changeOption(attrId, itemId); 4311 }, 4312 changeOption(attributeId, value) { 4313 if (value === '') { 4314 return; 4315 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 4316 } else { 4317 this.selectedValues[attributeId] = value; 4318 } 4319 4320 this.findSimpleIndex(); 4321 this.findAllowedAttributeOptions(); 4322 this.updatePrices(); 4323 this.updateGallery(); 4324 4325 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 4326 this.findProductIdsForPartialSelection(this.selectedValues) : []; 4327 4328 const eventDetail = { 4329 productId: this.productId, 4330 optionId: attributeId, 4331 value: value, 4332 productIndex: this.productIndex || 0, 4333 selectedValues: this.selectedValues, 4334 candidates: candidates, 4335 sourceElement: this.$el 4336 }; 4337 4338 // Dispatch for Amasty 4339 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 4340 detail: eventDetail 4341 })); 4342 4343 // Dispatch for Hyva listing 4344 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 4345 detail: eventDetail 4346 })); 4347 }, 4348 4349 4350 clearOptionIfActive() { 4351 const itemId = this._getItemId(); 4352 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 4353 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 4354 this.changeOption(attrId, ''); 4355 4356 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 4357 if (!input && this.$el?.querySelector) { 4358 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 4359 } 4360 if (!input && this.$el?.closest) { 4361 const root = this.$el.closest('[data-product-id]') || this.$el; 4362 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 4363 } 4364 if (input) { 4365 input.checked = false;
4366 } 4367 } 4368 }, 4369 get optionIsEnabled() { 4370 const itemId = this._getItemId(); 4371 if (!this.$el || !itemId) return true; 4372 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4373 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 4374 return !!allowedOptions.find(opt => opt.id == itemId); 4375 }, 4376 get isSelected() { 4377 const itemId = this._getItemId(); 4378 if (!this.$el || !itemId) return false; 4379 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4380 return attrId ? (this.selectedValues[attrId] == itemId) : false; 4381 }, 4382 get isSwatchRequired() { 4383 if (!this.$el) return false; 4384 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4385 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 4386 }, 4387 focusedLabel: false, 4388 activeTooltipItem: false, 4389 tooltipPositionElement: false,
4390 setActiveTooltipItem() { 4391 const itemId = this._getItemId(); 4392 if (!this.$el || !itemId) return; 4393 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4394 this.activeTooltipItem = { 4395 attribute: attrId, 4396 item: itemId, 4397 index: 0 4398 }; 4399 this.tooltipPositionElement = this.$event ? this.$event.target : null; 4400 }, 4401 unsetActiveTooltipItem() { 4402 this.activeTooltipItem = false; 4403 } 4404 }, 4405 confProdPreSelect() 4406 ); 4407 4408 if (result.optionConfig && result.optionConfig.attributes) { 4409 const attributes = result.optionConfig.attributes; 4410 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 4411 let source = attributes; 4412 if (Array.isArray(attributes)) { 4413 source = {}; 4414 attributes.forEach(attr => { 4415 if (attr && attr.id) source[attr.id] = attr; 4416 }); 4417 } 4418 const values = Object.values(source); 4419 const wrapper = Object.assign(values, source); 4420 Object.defineProperty(wrapper, '__amxnotifWrapped', { 4421 value: true, 4422 enumerable: false 4423 }); 4424 result.optionConfig.attributes = wrapper; 4425 } 4426 } 4427 4428 return result; 4429 } 4430 4431 window.addEventListener('alpine:init', () => { 4432 Alpine.data('initConfigurableSwatchOptions_47165', initConfigurableSwatchOptions_47165); 4433 }, { 4434 once: true 4435 }); 4436 </script>
4436 4437 4438 <div x-data="initConfigurableSwatchOptions_47165" x-defer="intersect"> 4439 <div class="pagebuilder-home-hidden"> 4440 4441 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 4442 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 4443 <template x-if="showSwatches"> 4444 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47165-163" role="radiogroup" aria-label="Einband"> 4445 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 4446 <div :data-option-id="item.id" style="display: contents"> 4447 <div x-id="getSwatchOptionHtmlIdGroup"> 4448 <template x-if="optionIsEnabled"> 4449 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
4449self="unsetActiveTooltipItem"> 4450 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47165-163"> 4451 <div> 4452 <template x-if="isTextSwatch"> 4453 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 4454 </template> 4455 <template x-if="!optionIsActive(163, item.id)"> 4456 <div> 4457 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 4458 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 4459 </svg> 4460 </div> 4461 </template> 4462 </div> 4463 </label> 4464 </template> 4465</div> </div> 4466 </template> 4467 </div> 4468 </template> 4469 </div> 4470 </div> 4471 </div> 4472 </div> 4473 4474 <div class="meta py-4 pagebuilder-home-hidden"> 4475 <div x-data="initMarketingShortText_47165()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 4476 <!-- Marketing short text --> 4477 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 4478 </div> 4479 4480 <!-- Short description --> 4481 <div class="short-description"> 4482 Die legendäre Abhandlung über die drei Betrüger (Moses, Jesus und Mohammed) zählt zu den herausragenden Schlüsseltexten der französischen Aufklärung. Die Schrift markiert den Übergang von der ... <a href="https://meiner.de/fmv_de/traktat-a-ber-die-drei-betra-ger-16064" class="underline">mehr</a> 4483 </div> 4484 </div> 4485 4486 <!-- Series --> 4487 <div class="mb-1"> 4488 <span class="sr-only">Reihe:</span> 4489 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 4490 <span>Philosophische Bibliothek</span> 4491 </a> 4492 452 </div> 4493 4494 4495 <div class="mb-1"> 4496 <span x-data="initEditionText_47165()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 4497 <!-- Marketing short text --> 4498 <span class="edition-text" x-html="editionText"></span> 2026, LXVIII, 171 Seiten. </span> 4499 </div> 4500 4501 </div> 4502 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 4503 4504 <div class="justify-end" x-data="initPriceBox()" @update-prices-47165.window="updatePrice($event.detail);"> 4505 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47165" data-price-box="product-id-47165"><span class="normal-price"> 4506 <span x-data x-id="['product\u002Dprice\u002D47165']" class="price-container price-final_price tax weee"> 4507 <span class="price-label">Ab</span> 4508 <span class="approx-price">ca. </span>
4509 <span :id="$id('product\u002Dprice\u002D47165')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 4510 </span> 4511</span> 4512 4513 4514</div> </div> 4515 4516 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 4517 <div class="open-access-container open-access-container-47165 flex mt-4 ml-auto sm:mt-0 hidden"> 4518 <div class="text-gray-700"> 4519 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 4520 <a href="" target="_blank" class="open-access-external-link m-auto "> 4521 Kostenlos online lesen </a> 4522 </button> 4523 </div> 4524 </div> 4525 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Traktat über die drei Betrüger" aria-label="In den Warenkorb Traktat über die drei Betrüger" data-addto="cart"> 4526 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 4527 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 4528</svg> 4529 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 4530 In den Warenkorb </span> 4531 </button> 4532 4533<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47165)" aria-label="Zur Wunschliste hinzufügen Traktat über die drei Betrüger" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 4534 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 4535 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 4536</svg> 4537</button> 4538 </div> 4539 </div> 4540 </div> 4541
4541<script> 4542 function initMarketingShortText_47165() { 4543 var marketingShortTextConfig = {}; 4544 if (typeof window.initConfigurableSwatchOptions_47165 === "function") { 4545 var fullConfig = window.initConfigurableSwatchOptions_47165().optionConfig 4546 var marketingShortTextConfig = fullConfig.marketing_short_text; 4547 } 4548 return { 4549 marketingShortText: '', 4550 config: marketingShortTextConfig, 4551 productId: '47165', 4552 getMarketingShortText(detail) { 4553 this.marketingShortText = detail.productIndex ? 4554 this.config[detail.productIndex] : 4555 null; 4556 }, 4557 eventListeners: { 4558 ['@listing-configurable-selection-changed.window'](event) { 4559 if (this.productId == event.detail.productId) { 4560 this.getMarketingShortText(event.detail); 4561 } 4562 4563 } 4564 } 4565 } 4566 } 4567 4568 function initEditionText_47165() { 4569 var editionTextConfig = {}; 4570 if (typeof window.initConfigurableSwatchOptions_47165 === "function") { 4571 var fullConfig = window.initConfigurableSwatchOptions_47165().optionConfig 4572 var editionTextConfig = fullConfig.edition; 4573 } 4574 return { 4575 editionText: '', 4576 config: editionTextConfig, 4577 productId: '47165', 4578 getEditionText(detail) { 4579 this.editionText = detail.productIndex ? 4580 this.config[detail.productIndex] : 4581 null; 4582 }, 4583 eventListeners: { 4584 ['@listing-configurable-selection-changed.window'](event) { 4585 if (this.productId == event.detail.productId) { 4586 this.getEditionText(event.detail); 4587 } 4588 4589 } 4590 } 4591 } 4592 } 4593 </script>
4593 4594 </form> 4595 4596 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47160/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk22892"> 4597 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47160"> 4598 <a href="https://meiner.de/fmv_de/materie-als-aktives-gegena-ber-des-subjekts-22892" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 4599 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47160.window="$el.src = $event.detail" alt="Materie als aktives Gegenüber des Subjekts" title="Materie als aktives Gegenüber des Subjekts" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787352012_1.jpg" :style="{ 4600 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 4601 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 4602 }"> 4603 </a> 4604 <div class="product-info flex flex-col flex-grow "> 4605 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 4606 <div class="mb-2 text-sm text-gray-500 font-medium"> 4607 <a href="https://meiner.de/fmv_de/person/Thomas-Oehl-22893/" class="mb-2"> 4608 Thomas Oehl </a> 4609 </div> 4610 <a class="product-item-link" href="https://meiner.de/fmv_de/materie-als-aktives-gegena-ber-des-subjekts-22892"> 4611 Materie als aktives Gegenüber des Subjekts </a> 4612 </div> 4613 4614 <div x-data="initEditionText_47160()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 4615 <!-- Marketing short text --> 4616 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 4617 </div> 4618 </div> 4619 4620 <div class="py-1 grid mb-4 "> 4621 4622 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47160,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47160,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47095":"1","47139":"1","47141":"1"},"childProductsAlertStatus":{"47095":"0","47139":"0","47141":"0"},"indexMapping":{"163:15":47095,"163:8":47139,"163:9":47141},"availabilityMessages":{"47095":"Lieferbar innerhalb von 3-5 Tagen","47139":"Download sofort verf\u00fcgbar","47141":"Download sofort verf\u00fcgbar"},"openAccess":{"47160":{"status":0},"47095":{"status":0},"47139":{"status":0},"47141":{"status":0}}},"availabilityMessages":{"47095":"Lieferbar innerhalb von 3-5 Tagen","47139":"Download sofort verf\u00fcgbar","47141":"Download sofort verf\u00fcgbar"},"openAccess":{"47160":{"status":0},"47095":{"status":0},"47139":{"status":0},"47141":{"status":0}}}'> 4623 <template x-if="containerVisible"> 4624 <!-- Popup Trigger --> 4625 <div> 4626 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 4627 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
4628 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 4629 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 4630<title>bell</title></svg> 4631</span> 4632 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 4633 4634 <!-- Popup Modal --> 4635 <template x-if="showModal"> 4636 <template x-teleport=".page-wrapper"> 4637 <div x-cloak class="fixed inset-0 flex items-center justify-center 4638 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 4639 <div class="relative bg-white rounded-lg shadow-xl 4640 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 4641 <div class="p-6"> 4642 <!-- Subscription Form for Popup --> 4643 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 4644 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 4645 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 4646 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 4647 4648 <div class="flex flex-col gap-3"> 4649 <div class="flex-grow grow"> 4650 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 4651 shadow-xs focus:outline-none focus:outline-hidden 4652 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 4653 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 4654 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 4655 </div> 4656 <input type="hidden" name="product_id" :value="currentProductId"> 4657 <input type="hidden" name="type" value="email"> 4658 4659 4660 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 4661 4662 <div class="amxnotif_guest_action"> 4663 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 4664 rounded-md focus:outline-none 4665 focus:outline-hidden focus:ring-2 4666 focus:ring-offset-2 disabled:opacity-50 4667 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 4668 Benachrichtigen </button> 4669 </div> 4670 </div> 4671 4672 <div class="flex items-start pt-2"> 4673 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 4674 text-blue-600 border-gray-300 rounded-sm"> 4675 <label class="amxnotif-stock-gdrp-label cursor-pointer 4676 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 4677 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 4678 </div> 4679 </form> 4680 </div> 4681 4682 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 4683 hover:text-gray-600 transition-colors" aria-label="Schließen"> 4684 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 4685 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 4686<title>x</title></svg> 4687 </button> 4688 </div> 4689 </div> 4690 </template> 4691 </template> 4692 </div> 4693 </template> 4694 </div> 4695 4696<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47160" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47160,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47095":"1","47139":"1","47141":"
46961"},"childProductsAlertStatus":{"47095":"0","47139":"0","47141":"0"},"indexMapping":"{\u0022163:15\u0022:47095,\u0022163:8\u0022:47139,\u0022163:9\u0022:47141}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47160,"availabilityMessages":{"47095":"Lieferbar innerhalb von 3-5 Tagen","47139":"Download sofort verf\u00fcgbar","47141":"Download sofort verf\u00fcgbar"},"openAccess":{"47160":{"status":0},"47095":{"status":0},"47139":{"status":0},"47141":{"status":0}}}'> 4697 4698 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 4699 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 4700 <span x-html="optionsLabelText"></span> 4701 </p> 4702</div> </div> 4703 4704
4704<script> 4705 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 4706 try { 4707 const attributes = (config && config.attributes) ? config.attributes : null; 4708 if (!attributes) return []; 4709 let attr = null; 4710 if (Array.isArray(attributes)) { 4711 for (let i = 0; i < attributes.length; i++) { 4712 const a = attributes[i]; 4713 if (a && a.id == attrId) { 4714 attr = a; 4715 break; 4716 } 4717 } 4718 } else { 4719 attr = attributes[attrId]; 4720 } 4721 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 4722 } catch (e) { 4723 return []; 4724 } 4725 }; 4726 4727 function initConfigurableSwatchOptions_47160() { 4728 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["47095"]},{"id":"8","label":"PDF","products":["47139"]},{"id":"9","label":"EPUB","products":["47141"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47095":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47139":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47141":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":14.27730992437},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"47160","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"47095":{"163":"15"},"47139":{"163":"8"},"47141":{"163":"9"}},"salable":{"163":{"15":["47095"],"8":["47139"],"9":["47141"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"47095":"005199","47139":"005200","47141":"005201"},"output":{"47095":"Kartoniert","47139":"PDF","47141":"EPUB"},"original_name":{"47095":"","47139":"","47141":""},"openaccess_license_link":{"47095":"","47139":"","47141":""},"openaccess_license_name":{"47095":"","47139":"","47141":""},"openaccess_external_link":{"47095":"","47139":"","47141":""},"gpsr_safety_info":{"47095":"","47139":"","47141":""},"description":{"47095":"Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann.<br\/><br\/>Die Idee einer Aktivit\u00e4t der Materie zieht sich wie ein Versprechen durch die moderne, nachhegelsche Philosophie, insbesondere im \u00bbMaterialismus\u00ab, wie er von Marx und Adorno gepr\u00e4gt wurde. Sie stand und steht jedoch stets im Verdacht, der Materie irrationalerweise etwas zuschreiben zu wollen, das wir allein dem Subjekt zuschreiben d\u00fcrfen: Aktivit\u00e4t in einem starken Sinne. Der Gedankengang des Buches entwickelt diese Idee streng sachorientiert und verteidigt sie gegen den besagten Verdacht in drei Studien, die je einer bestimmten Gestalt von Aktivit\u00e4t der Materie gewidmet sind. Die Idee ist einerseits von metaphysischer Bedeutung, da mit ihr nicht weniger als ein ganz neuer Begriff von Materie verbunden ist, andererseits aber auch von sozialphilosophischer Relevanz: Denn in der Aktivit\u00e4t der Materie liegt die M\u00f6glichkeit, Materie in befreiender Weise als ein Gegen\u00fcber zu erfahren, etwa in bestimmten \u00e4sthetischen Konstellationen; eine freie Beziehung zu einem Gegen\u00fcber besteht gerade nicht allein in Intersubjektivit\u00e4t.<br\/><br\/>Das Buch ist im Dialog mit Horst Bredekamps Theorie des Bildakts geschrieben, in der verwandte Motive verfolgt werden, und um ein Nachwort Bredekamps erg\u00e4nzt.","47139":"Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann.
4728<br\/><br\/>Die Idee einer Aktivit\u00e4t der Materie zieht sich wie ein Versprechen durch die moderne, nachhegelsche Philosophie, insbesondere im \u00bbMaterialismus\u00ab, wie er von Marx und Adorno gepr\u00e4gt wurde. Sie stand und steht jedoch stets im Verdacht, der Materie irrationalerweise etwas zuschreiben zu wollen, das wir allein dem Subjekt zuschreiben d\u00fcrfen: Aktivit\u00e4t in einem starken Sinne. Der Gedankengang des Buches entwickelt diese Idee streng sachorientiert und verteidigt sie gegen den besagten Verdacht in drei Studien, die je einer bestimmten Gestalt von Aktivit\u00e4t der Materie gewidmet sind. Die Idee ist einerseits von metaphysischer Bedeutung, da mit ihr nicht weniger als ein ganz neuer Begriff von Materie verbunden ist, andererseits aber auch von sozialphilosophischer Relevanz: Denn in der Aktivit\u00e4t der Materie liegt die M\u00f6glichkeit, Materie in befreiender Weise als ein Gegen\u00fcber zu erfahren, etwa in bestimmten \u00e4sthetischen Konstellationen; eine freie Beziehung zu einem Gegen\u00fcber besteht gerade nicht allein in Intersubjektivit\u00e4t.<br\/><br\/>Das Buch ist im Dialog mit Horst Bredekamps Theorie des Bildakts geschrieben, in der verwandte Motive verfolgt werden, und um ein Nachwort Bredekamps erg\u00e4nzt.","47141":"Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann.<br\/><br\/>Die Idee einer Aktivit\u00e4t der Materie zieht sich wie ein Versprechen durch die moderne, nachhegelsche Philosophie, insbesondere im \u00bbMaterialismus\u00ab, wie er von Marx und Adorno gepr\u00e4gt wurde. Sie stand und steht jedoch stets im Verdacht, der Materie irrationalerweise etwas zuschreiben zu wollen, das wir allein dem Subjekt zuschreiben d\u00fcrfen: Aktivit\u00e4t in einem starken Sinne. Der Gedankengang des Buches entwickelt diese Idee streng sachorientiert und verteidigt sie gegen den besagten Verdacht in drei Studien, die je einer bestimmten Gestalt von Aktivit\u00e4t der Materie gewidmet sind. Die Idee ist einerseits von metaphysischer Bedeutung, da mit ihr nicht weniger als ein ganz neuer Begriff von Materie verbunden ist, andererseits aber auch von sozialphilosophischer Relevanz: Denn in der Aktivit\u00e4t der Materie liegt die M\u00f6glichkeit, Materie in befreiender Weise als ein Gegen\u00fcber zu erfahren, etwa in bestimmten \u00e4sthetischen Konstellationen; eine freie Beziehung zu einem Gegen\u00fcber besteht gerade nicht allein in Intersubjektivit\u00e4t.<br\/><br\/>Das Buch ist im Dialog mit Horst Bredekamps Theorie des Bildakts geschrieben, in der verwandte Motive verfolgt werden, und um ein Nachwort Bredekamps erg\u00e4nzt."},"doi":{"47095":"","47139":"10.28937\/978-3-7873-5200-5","47141":""},"isbn":{"47095":"978-3-7873-5199-2","47139":"978-3-7873-5200-5","47141":"978-3-7873-5201-2"},"marketing_short_text":{"47095":"","47139":"","47141":""},"recension_text":{"47095":"","47139":"","47141":""},"language":{"47095":"","47139":"","47141":""},"cover":{"47095":"Kartoniert","47139":"","47141":""},"pages":{"47095":"134 Seiten.","47139":"134 Seiten.","47141":"134 Seiten."},"edition":{"47095":"","47139":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","47141":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"47095":"Nein","47139":"Nein","47141":"Nein"},"copyright_year":{"47095":"","47139":"","47141":""},"vlb_tix_link":{"47095":"https:\/\/neu.vlbtix.de\/products\/9783787351992?type=gtin","47139":"","47141":""},"defaultValues":{"163":"15"}}; 4729 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 4730 4731 if (typeof window.amxnotif_wrap_attributes === 'function') { 4732 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 4733 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 4734 } 4735 4736 const configurableOptionsComponent = initConfigurableOptions( 4737 '47160', 4738 config 4739 ); 4740 const swatchOptionsComponent = initSwatchOptions( 4741 swatchConfig 4742 ); 4743 4744 // DWS - Configurable product preselect start 4745 const confProdPreSelect = () => { 4746 return { 4747 preselectQuerystringItems() { 4748 var data = {"id":"47095","output":"15"}; 4749 const urlQueryParams = new URLSearchParams(window.location.search); 4750 4751 this.$nextTick(() => { 4752 setTimeout(() => { 4753 const rootEl = this.$root || this.$el; 4754 if (!rootEl) return; 4755 4756 const applySelection = (attrCode, attrValue) => { 4757 if (attrValue === undefined || attrValue === null || attrValue === '') return; 4758 4759 const attributes = Object.values(this.optionConfig.attributes || {}); 4760 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 4761 4762 if (targetAttr) { 4763 const attrId = String(targetAttr.id); 4764 const optionVal = String(attrValue); 4765 4766 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 4767 4768 if (inputEl) { 4769 inputEl.click(); 4770 inputEl.dispatchEvent(new Event('change', { 4771 bubbles: true 4772 })); 4773 } else { 4774 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 4775 if (selectEl) { 4776 selectEl.value = optionVal; 4777 selectEl.dispatchEvent(new Event('change', { 4778 bubbles: true 4779 })); 4780 } 4781 } 4782 4783 this.changeOption(attrId, optionVal, false); 4784 } 4785 }; 4786 4787 if (data && typeof data === 'object') {
4788 Object.keys(data).forEach(key => applySelection(key, data[key])); 4789 } 4790 4791 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 4792 if (attribute && attribute.code) { 4793 let optionValue = urlQueryParams.get(attribute.code); 4794 if (optionValue) { 4795 let optionId = false; 4796 const attributes = Object.values(this.optionConfig.attributes || {}); 4797 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 4798 4799 let found = false; 4800 Object.values(targetAttr.options).map(option => { 4801 if (found === false && option.label === optionValue) { 4802 optionId = option.id; 4803 found = true; 4804 } 4805 }); 4806 4807 const attrId = String(targetAttr.id); 4808 let optionVal = String(optionValue); 4809 if (found) { 4810 optionVal = String(optionId); 4811 } 4812 4813 applySelection(attribute.code, optionVal); 4814 } 4815 } 4816 }); 4817 }, 100); 4818 }); 4819 } 4820 } 4821 }; 4822 // DWS - Configurable product preselect end 4823 4824 const result = Object.assign( 4825 configurableOptionsComponent, 4826 swatchOptionsComponent, { 4827 productId: '47160', 4828 productIndex: 0, 4829 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 4830 showSwatches: false, 4831 precalcOptions: {}, 4832 originalInit: configurableOptionsComponent.init, 4833 init() { 4834 try { 4835 this.precalcOptions = {}; 4836 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 4837 this.preselectQuerystringItems(); 4838 if (Array.isArray(attrSource)) { 4839 attrSource.forEach(attr => { 4840 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 4841 }); 4842 } else if (attrSource && typeof attrSource === 'object') { 4843 Object.keys(attrSource).forEach(id => { 4844 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 4845 }); 4846 } 4847 } catch (e) { 4848 console.error('Pre-calc error:', e); 4849 } 4850 4851 if (typeof this.originalInit === 'function') { 4852 this.originalInit(); 4853 } 4854 4855 try { 4856 this.initShowSwatchesIntersect(); 4857 } catch (e) { 4858 console.error('intersect error:', e); 4859 } 4860 }, 4861 4862 updateGallery() { 4863 if (!this.productIndex) return; 4864 4865 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 4866 method: 'GET', 4867 headers: { 4868 'Content-Type': 'application/json', 4869 'X-Requested-With': 'XMLHttpRequest' 4870 } 4871 }) 4872 .then(response => response.json()) 4873 .then(data => { 4874 if (data && data.medium) { 4875 window.dispatchEvent(new CustomEvent("update-gallery-47160", { 4876 detail: data.medium 4877 })); 4878 } 4879 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 4880 }, 4881 4882 4883 initShowSwatchesIntersect() { 4884 const observer = new IntersectionObserver(entries => { 4885 if (entries[0].isIntersecting) { 4886 this.showSwatches = true; 4887 observer.disconnect(); 4888 } 4889 }, { 4890 rootMargin: '512px' 4891 }); 4892 observer.observe(this.$el); 4893 }, 4894 getOptions(attrId) { 4895 return this.precalcOptions[attrId] || []; 4896 }, 4897 getOptionsByAttrId() { 4898 return this.getOptions(this.$el.dataset.attributeId); 4899 }, 4900 _getItemId() { 4901 if (this.item && this.item.id) return this.item.id; 4902 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 4903 }, 4904 getSwatchOptionHtmlId() { 4905 const itemId = this._getItemId(); 4906 return itemId ? this.$id(`attribute-option-47160-${itemId}`) : ''; 4907 }, 4908 getSwatchOptionHtmlIdGroup() { 4909 const itemId = this._getItemId(); 4910 return itemId ? [`attribute-option-47160-${itemId}`] : []; 4911 }, 4912 getAttributeSwatchData(attributeId) { 4913 const data = Object.assign({}, this.swatchConfig[attributeId]); 4914 if (data['additional_data']) { 4915 try { 4916 data['details'] = JSON.parse(data['additional_data']); 4917 } catch (e) { 4918 data['details'] = {}; 4919 } 4920 } 4921 return data; 4922 }, 4923 getSwatchType(attributeId, optionId) { 4924 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 4925 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 4926 } 4927 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 4928 this.swatchConfig[attributeId].details.swatch_input_type : 4929 "empty"; 4930 if (type === 'visual') { 4931 const config = this.swatchConfig[attributeId]; 4932 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 4933 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 4934 } 4935 // Fallback to first option type 4936 for (const oId in config) { 4937 if (config[oId] && typeof config[oId].type !== 'undefined') { 4938 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 4939 } 4940 } 4941 } 4942 return type; 4943 }, 4944 mapSwatchTypeNumberToTypeCode(type) { 4945 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 4946 }, 4947 isTextSwatch() { 4948 const itemId = this._getItemId(); 4949 if (!this.$el || !itemId) return false;
4950 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4951 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 4952 }, 4953 4954 getSwatchText() { 4955 const itemId = this._getItemId(); 4956 if (this.item) return this.item.label || ''; 4957 if (!this.$el || !itemId) return ''; 4958 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4959 const options = attrId ? this.getOptions(attrId) : []; 4960 const opt = options.find(o => o.id == itemId); 4961 return opt ? opt.label : ''; 4962 }, 4963 getSwatchBackgroundStyle() { 4964 const itemId = this._getItemId(); 4965 if (!this.$el || !itemId) return ''; 4966 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4967 if (!attrId) return ''; 4968 const type = this.getSwatchType(attrId, itemId); 4969 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 4970 this.swatchConfig[attrId][itemId] : 4971 null; 4972 if (!swatchData) return ''; 4973 if (type === "color") return 'background-color:' + swatchData.value; 4974 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 4975 return ''; 4976 }, 4977 swatchOptionClasses() { 4978 const itemId = this._getItemId(); 4979 if (!this.$el || !itemId) return {}; 4980 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 4981 return { 4982 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 4983 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 4984 'w-6 h-6': !this.isTextSwatch() 4985 } 4986 }, 4987 4988 onFocusSwatchItem() { 4989 const itemId = this._getItemId(); 4990 if (itemId) this.focusedLabel = itemId; 4991 }, 4992 onChangeOption() { 4993 const itemId = this._getItemId(); 4994 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 4995 if (attrId && itemId) this.changeOption(attrId, itemId); 4996 }, 4997 changeOption(attributeId, value) { 4998 if (value === '') { 4999 return; 5000 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 5001 } else { 5002 this.selectedValues[attributeId] = value; 5003 } 5004 5005 this.findSimpleIndex(); 5006 this.findAllowedAttributeOptions(); 5007 this.updatePrices(); 5008 this.updateGallery(); 5009 5010 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 5011 this.findProductIdsForPartialSelection(this.selectedValues) : []; 5012 5013 const eventDetail = { 5014 productId: this.productId, 5015 optionId: attributeId, 5016 value: value, 5017 productIndex: this.productIndex || 0, 5018 selectedValues: this.selectedValues, 5019 candidates: candidates, 5020 sourceElement: this.$el 5021 }; 5022 5023 // Dispatch for Amasty 5024 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 5025 detail: eventDetail 5026 })); 5027 5028 // Dispatch for Hyva listing 5029 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 5030 detail: eventDetail 5031 })); 5032 }, 5033 5034 5035 clearOptionIfActive() { 5036 const itemId = this._getItemId(); 5037 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 5038 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 5039 this.changeOption(attrId, ''); 5040 5041 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 5042 if (!input && this.$el?.querySelector) { 5043 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 5044 } 5045 if (!input && this.$el?.closest) { 5046 const root = this.$el.closest('[data-product-id]') || this.$el; 5047 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 5048 } 5049 if (input) { 5050 input.checked = false;
5051 } 5052 } 5053 }, 5054 get optionIsEnabled() { 5055 const itemId = this._getItemId(); 5056 if (!this.$el || !itemId) return true; 5057 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5058 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 5059 return !!allowedOptions.find(opt => opt.id == itemId); 5060 }, 5061 get isSelected() { 5062 const itemId = this._getItemId(); 5063 if (!this.$el || !itemId) return false; 5064 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5065 return attrId ? (this.selectedValues[attrId] == itemId) : false; 5066 }, 5067 get isSwatchRequired() { 5068 if (!this.$el) return false; 5069 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5070 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 5071 }, 5072 focusedLabel: false, 5073 activeTooltipItem: false, 5074 tooltipPositionElement: false,
5075 setActiveTooltipItem() { 5076 const itemId = this._getItemId(); 5077 if (!this.$el || !itemId) return; 5078 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5079 this.activeTooltipItem = { 5080 attribute: attrId, 5081 item: itemId, 5082 index: 0 5083 }; 5084 this.tooltipPositionElement = this.$event ? this.$event.target : null; 5085 }, 5086 unsetActiveTooltipItem() { 5087 this.activeTooltipItem = false; 5088 } 5089 }, 5090 confProdPreSelect() 5091 ); 5092 5093 if (result.optionConfig && result.optionConfig.attributes) { 5094 const attributes = result.optionConfig.attributes; 5095 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 5096 let source = attributes; 5097 if (Array.isArray(attributes)) { 5098 source = {}; 5099 attributes.forEach(attr => { 5100 if (attr && attr.id) source[attr.id] = attr; 5101 }); 5102 } 5103 const values = Object.values(source); 5104 const wrapper = Object.assign(values, source); 5105 Object.defineProperty(wrapper, '__amxnotifWrapped', { 5106 value: true, 5107 enumerable: false 5108 }); 5109 result.optionConfig.attributes = wrapper; 5110 } 5111 } 5112 5113 return result; 5114 } 5115 5116 window.addEventListener('alpine:init', () => { 5117 Alpine.data('initConfigurableSwatchOptions_47160', initConfigurableSwatchOptions_47160); 5118 }, { 5119 once: true 5120 }); 5121 </script>
5121 5122 5123 <div x-data="initConfigurableSwatchOptions_47160" x-defer="intersect"> 5124 <div class="pagebuilder-home-hidden"> 5125 5126 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 5127 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 5128 <template x-if="showSwatches"> 5129 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47160-163" role="radiogroup" aria-label="Einband"> 5130 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 5131 <div :data-option-id="item.id" style="display: contents"> 5132 <div x-id="getSwatchOptionHtmlIdGroup"> 5133 <template x-if="optionIsEnabled"> 5134 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
5134self="unsetActiveTooltipItem"> 5135 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47160-163"> 5136 <div> 5137 <template x-if="isTextSwatch"> 5138 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 5139 </template> 5140 <template x-if="!optionIsActive(163, item.id)"> 5141 <div> 5142 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 5143 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 5144 </svg> 5145 </div> 5146 </template> 5147 </div> 5148 </label> 5149 </template> 5150</div> </div> 5151 </template> 5152 </div> 5153 </template> 5154 </div> 5155 </div> 5156 </div> 5157 </div> 5158 5159 <div class="meta py-4 pagebuilder-home-hidden"> 5160 <div x-data="initMarketingShortText_47160()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 5161 <!-- Marketing short text --> 5162 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 5163 </div> 5164 5165 <!-- Short description --> 5166 <div class="short-description"> 5167 Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann. 5168 5169Die Idee einer Aktivität der Materie zieht sich ... <a href="https://meiner.de/fmv_de/materie-als-aktives-gegena-ber-des-subjekts-22892" class="underline">mehr</a> 5170 </div> 5171 </div> 5172 5173 <!-- Series --> 5174 <div class="mb-1"> 5175 <span class="sr-only">Reihe:</span> 5176 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 5177 <span>Blaue Reihe</span> 5178 </a> 5179 </div> 5180 5181 5182 <div class="mb-1"> 5183 <span x-data="initEditionText_47160()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 5184 <!-- Marketing short text --> 5185 <span class="edition-text" x-html="editionText"></span> 2026, 134 Seiten. </span> 5186 </div> 5187 5188 </div> 5189 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 5190 5191 <div class="justify-end" x-data="initPriceBox()" @update-prices-47160.window="updatePrice($event.detail);"> 5192 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47160" data-price-box="product-id-47160"><span class="normal-price"> 5193 <span x-data x-id="['product\u002Dprice\u002D47160']" class="price-container price-final_price tax weee"> 5194 <span class="price-label">Ab</span> 5195 <span class="approx-price">ca. </span> 5196 <span :id="$id('product\u002Dprice\u002D47160')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 5197 </span> 5198</span> 5199 5200 5201</div> </div> 5202 5203 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 5204 <div class="open-access-container open-access-container-47160 flex mt-4 ml-auto sm:mt-0 hidden"> 5205 <div class="text-gray-700"> 5206 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 5207 <a href="" target="_blank" class="open-access-external-link m-auto "> 5208 Kostenlos online lesen </a> 5209 </button> 5210 </div> 5211 </div> 5212 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Materie als aktives Gegenüber des Subjekts" aria-label="In den Warenkorb Materie als aktives Gegenüber des Subjekts" data-addto="cart"> 5213 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 5214 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
52140 014 0z"></path> 5215</svg> 5216 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 5217 In den Warenkorb </span> 5218 </button> 5219 5220<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47160)" aria-label="Zur Wunschliste hinzufügen Materie als aktives Gegenüber des Subjekts" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 5221 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 5222 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 5223</svg> 5224</button> 5225 </div> 5226 </div> 5227 </div> 5228
5228<script> 5229 function initMarketingShortText_47160() { 5230 var marketingShortTextConfig = {}; 5231 if (typeof window.initConfigurableSwatchOptions_47160 === "function") { 5232 var fullConfig = window.initConfigurableSwatchOptions_47160().optionConfig 5233 var marketingShortTextConfig = fullConfig.marketing_short_text; 5234 } 5235 return { 5236 marketingShortText: '', 5237 config: marketingShortTextConfig, 5238 productId: '47160', 5239 getMarketingShortText(detail) { 5240 this.marketingShortText = detail.productIndex ? 5241 this.config[detail.productIndex] : 5242 null; 5243 }, 5244 eventListeners: { 5245 ['@listing-configurable-selection-changed.window'](event) { 5246 if (this.productId == event.detail.productId) { 5247 this.getMarketingShortText(event.detail); 5248 } 5249 5250 } 5251 } 5252 } 5253 } 5254 5255 function initEditionText_47160() { 5256 var editionTextConfig = {}; 5257 if (typeof window.initConfigurableSwatchOptions_47160 === "function") { 5258 var fullConfig = window.initConfigurableSwatchOptions_47160().optionConfig 5259 var editionTextConfig = fullConfig.edition; 5260 } 5261 return { 5262 editionText: '', 5263 config: editionTextConfig, 5264 productId: '47160', 5265 getEditionText(detail) { 5266 this.editionText = detail.productIndex ? 5267 this.config[detail.productIndex] : 5268 null; 5269 }, 5270 eventListeners: { 5271 ['@listing-configurable-selection-changed.window'](event) { 5272 if (this.productId == event.detail.productId) { 5273 this.getEditionText(event.detail); 5274 } 5275 5276 } 5277 } 5278 } 5279 } 5280 </script>
5280 5281 </form> 5282 5283 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46708/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21370"> 5284 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46708"> 5285 <a href="https://meiner.de/fmv_de/der-briefwechsel-mit-constantijn-huygens-21370" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 5286 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46708.window="$el.src = $event.detail" alt="Der Briefwechsel mit Constantijn Huygens" title="Der Briefwechsel mit Constantijn Huygens" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351060_1.jpg" :style="{ 5287 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 5288 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 5289 }"> 5290 </a> 5291 <div class="product-info flex flex-col flex-grow "> 5292 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 5293 <div class="mb-2 text-sm text-gray-500 font-medium"> 5294 <a href="https://meiner.de/fmv_de/person/Rene-Descartes-3688/" class="mb-2"> 5295 René Descartes </a> 5296 </div> 5297 <a class="product-item-link" href="https://meiner.de/fmv_de/der-briefwechsel-mit-constantijn-huygens-21370"> 5298 Der Briefwechsel mit Constantijn Huygens </a> 5299 </div> 5300 5301 <div x-data="initEditionText_46708()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 5302 <!-- Marketing short text --> 5303 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 5304 </div> 5305 </div> 5306 5307 <div class="py-1 grid mb-4 "> 5308 5309 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46708,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46708,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46502":"1","46771":"1"},"childProductsAlertStatus":{"46502":"0","46771":"0"},"indexMapping":{"163:17":46502,"163:8":46771},"availabilityMessages":{"46502":"Lieferbar innerhalb von 3-5 Tagen","46771":"Download sofort verf\u00fcgbar"},"openAccess":{"46708":{"status":0},"46502":{"status":0},"46771":{"status":0}}},"availabilityMessages":{"46502":"Lieferbar innerhalb von 3-5 Tagen","46771":"Download sofort verf\u00fcgbar"},"openAccess":{"46708":{"status":0},"46502":{"status":0},"46771":{"status":0}}}'> 5310 <template x-if="containerVisible"> 5311 <!-- Popup Trigger --> 5312 <div> 5313 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 5314 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
5315 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 5316 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 5317<title>bell</title></svg> 5318</span> 5319 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 5320 5321 <!-- Popup Modal --> 5322 <template x-if="showModal"> 5323 <template x-teleport=".page-wrapper"> 5324 <div x-cloak class="fixed inset-0 flex items-center justify-center 5325 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 5326 <div class="relative bg-white rounded-lg shadow-xl 5327 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 5328 <div class="p-6"> 5329 <!-- Subscription Form for Popup --> 5330 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 5331 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 5332 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 5333 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 5334 5335 <div class="flex flex-col gap-3"> 5336 <div class="flex-grow grow"> 5337 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 5338 shadow-xs focus:outline-none focus:outline-hidden 5339 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 5340 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 5341 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 5342 </div> 5343 <input type="hidden" name="product_id" :value="currentProductId"> 5344 <input type="hidden" name="type" value="email"> 5345 5346 5347 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 5348 5349 <div class="amxnotif_guest_action"> 5350 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 5351 rounded-md focus:outline-none 5352 focus:outline-hidden focus:ring-2 5353 focus:ring-offset-2 disabled:opacity-50 5354 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 5355 Benachrichtigen </button> 5356 </div> 5357 </div> 5358 5359 <div class="flex items-start pt-2"> 5360 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 5361 text-blue-600 border-gray-300 rounded-sm"> 5362 <label class="amxnotif-stock-gdrp-label cursor-pointer 5363 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 5364 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 5365 </div> 5366 </form> 5367 </div> 5368 5369 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 5370 hover:text-gray-600 transition-colors" aria-label="Schließen"> 5371 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 5372 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 5373<title>x</title></svg> 5374 </button> 5375 </div> 5376 </div> 5377 </template> 5378 </template> 5379 </div> 5380 </template> 5381 </div> 5382 5383<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46708" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46708,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46502":"1","46771":"1"},"childProductsAlertStatus":{"46502":"0","46771":"0"},"indexMapping":"{\u0022163:17\u0022:46502,\u0022163:8\u0022:46771}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46708,"availabilityMessages":{"46502":"Lieferbar innerhalb von 3-5 Tagen","46771":"Download sofort verf\u00fcgbar"},"openAccess":{"46708":{"status":0},"46502":{"status":0},"46771":{"status":0}}}'> 5384 5385 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
5386 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 5387 <span x-html="optionsLabelText"></span> 5388 </p> 5389</div> </div> 5390 5391
5391<script> 5392 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 5393 try { 5394 const attributes = (config && config.attributes) ? config.attributes : null; 5395 if (!attributes) return []; 5396 let attr = null; 5397 if (Array.isArray(attributes)) { 5398 for (let i = 0; i < attributes.length; i++) { 5399 const a = attributes[i]; 5400 if (a && a.id == attrId) { 5401 attr = a; 5402 break; 5403 } 5404 } 5405 } else { 5406 attr = attributes[attrId]; 5407 } 5408 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 5409 } catch (e) { 5410 return []; 5411 } 5412 }; 5413 5414 function initConfigurableSwatchOptions_46708() { 5415 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"17","label":"Leinen","products":["46502"]},{"id":"8","label":"PDF","products":["46771"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46502":{"baseOldPrice":{"amount":83.177569093458},"oldPrice":{"amount":89},"basePrice":{"amount":83.177569093458},"finalPrice":{"amount":89},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46771":{"baseOldPrice":{"amount":63.542055074766},"oldPrice":{"amount":67.99},"basePrice":{"amount":63.542055074766},"finalPrice":{"amount":67.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":63.542055074766},"oldPrice":{"amount":67.99},"basePrice":{"amount":57.134452781513},"finalPrice":{"amount":67.99},"isApproxPrice":null},"productId":"46708","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46502":{"163":"17"},"46771":{"163":"8"}},"salable":{"163":{"17":["46502"],"8":["46771"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46502":"005105","46771":"005106"},"output":{"46502":"Leinen","46771":"PDF"},"original_name":{"46502":"","46771":""},"openaccess_license_link":{"46502":"","46771":""},"openaccess_license_name":{"46502":"","46771":""},"openaccess_external_link":{"46502":"","46771":""},"gpsr_safety_info":{"46502":"","46771":""},"description":{"46502":"Mit diesem Band liegt Descartes\u2019 umfangreicher Briefwechsel mit seinem langj\u00e4hrigen Freund Constantijn Huygens (1596\u20131687), dem Dichter, Musiker und vielseitig wissenschaftlich interessierten Diplomaten im Dienst des Hauses Oranien-Nassau, erstmals auf Deutsch vor.<br\/><br\/>Dieser Band in der Reihe der kongenialen Neu\u00fcbersetzungen des Descartes\u2019schen Werks durch Christian Wohlers enth\u00e4lt Briefe von und an Ren\u00e9 Descartes aus der Zeit von 1631 bis 1649, also \u00fcber fast die gesamte Zeit seines Aufenthalts in den Niederlanden bis kurz vor seinem Tod 1650 in Stockholm. Den gr\u00f6\u00dften Anteil daran macht der erhaltene Teil des Briefwechsels mit Huygens aus. Constantijn Huygens gilt als einer der bedeutendsten Dichter der Niederlande im 17. Jahrhundert, aber er spielte auch mehrere Instrumente, komponierte hunderte von St\u00fccken und war vielseitig wissenschaftlich interessiert, vor allem hinsichtlich der Optik. Der Briefwechsel dokumentiert u. a. seine vielf\u00e4ltigen Anregungen und Hilfestellungen in Bezug auf die ja auch von Descartes mit Nachdruck betriebenen Versuche einer Weiterentwicklung des Teleskops.<br\/><br\/>Hinzugenommen wurden weitere Korrespondenzen Descartes\u2019, u. a. mit David le Leu de Wilhelm, dem Mathematiker und Orientalisten Jacob Golius, einzelne St\u00fccke aus Descartes\u2019 Korrespondenz mit Alphonse Pollot und Briefe Descartes\u2019 an seinen langj\u00e4hrigen Freund Anton Studler van Surck.","46771":"Mit diesem Band liegt Descartes\u2019 umfangreicher Briefwechsel mit seinem langj\u00e4hrigen Freund Constantijn Huygens (1596\u20131687), dem Dichter, Musiker und vielseitig wissenschaftlich interessierten Diplomaten im Dienst des Hauses Oranien-Nassau, erstmals auf Deutsch vor.<br\/><br\/>Dieser Band in der Reihe der kongenialen Neu\u00fcbersetzungen des Descartes\u2019schen Werks durch Christian Wohlers enth\u00e4lt Briefe von und an Ren\u00e9 Descartes aus der Zeit von 1631 bis 1649, also \u00fcber fast die gesamte Zeit seines Aufenthalts in de
5415n Niederlanden bis kurz vor seinem Tod 1650 in Stockholm. Den gr\u00f6\u00dften Anteil daran macht der erhaltene Teil des Briefwechsels mit Huygens aus. Constantijn Huygens gilt als einer der bedeutendsten Dichter der Niederlande im 17. Jahrhundert, aber er spielte auch mehrere Instrumente, komponierte hunderte von St\u00fccken und war vielseitig wissenschaftlich interessiert, vor allem hinsichtlich der Optik. Der Briefwechsel dokumentiert u. a. seine vielf\u00e4ltigen Anregungen und Hilfestellungen in Bezug auf die ja auch von Descartes mit Nachdruck betriebenen Versuche einer Weiterentwicklung des Teleskops.<br\/><br\/>Hinzugenommen wurden weitere Korrespondenzen Descartes\u2019, u. a. mit David le Leu de Wilhelm, dem Mathematiker und Orientalisten Jacob Golius, einzelne St\u00fccke aus Descartes\u2019 Korrespondenz mit Alphonse Pollot und Briefe Descartes\u2019 an seinen langj\u00e4hrigen Freund Anton Studler van Surck."},"doi":{"46502":"","46771":"10.28937\/978-3-7873-5106-0"},"isbn":{"46502":"978-3-7873-5105-3","46771":"978-3-7873-5106-0"},"marketing_short_text":{"46502":"","46771":""},"recension_text":{"46502":"","46771":""},"language":{"46502":"","46771":""},"cover":{"46502":"Leinen","46771":""},"pages":{"46502":"XXXII, 442 Seiten.","46771":"XXXII, 442 Seiten."},"edition":{"46502":"","46771":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46502":"Nein","46771":"Nein"},"copyright_year":{"46502":"","46771":""},"vlb_tix_link":{"46502":"https:\/\/neu.vlbtix.de\/products\/9783787351053?type=gtin","46771":""},"defaultValues":{"163":"17"}}; 5416 const swatchConfig = {"163":{"17":{"type":"0","value":"Leinen","label":"Leinen"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 5417 5418 if (typeof window.amxnotif_wrap_attributes === 'function') { 5419 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 5420 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 5421 } 5422 5423 const configurableOptionsComponent = initConfigurableOptions( 5424 '46708', 5425 config 5426 ); 5427 const swatchOptionsComponent = initSwatchOptions( 5428 swatchConfig 5429 ); 5430 5431 // DWS - Configurable product preselect start 5432 const confProdPreSelect = () => { 5433 return { 5434 preselectQuerystringItems() { 5435 var data = {"id":"46502","output":"17"}; 5436 const urlQueryParams = new URLSearchParams(window.location.search); 5437 5438 this.$nextTick(() => { 5439 setTimeout(() => { 5440 const rootEl = this.$root || this.$el; 5441 if (!rootEl) return; 5442 5443 const applySelection = (attrCode, attrValue) => { 5444 if (attrValue === undefined || attrValue === null || attrValue === '') return; 5445 5446 const attributes = Object.values(this.optionConfig.attributes || {}); 5447 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 5448 5449 if (targetAttr) { 5450 const attrId = String(targetAttr.id); 5451 const optionVal = String(attrValue); 5452 5453 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 5454 5455 if (inputEl) { 5456 inputEl.click(); 5457 inputEl.dispatchEvent(new Event('change', { 5458 bubbles: true 5459 })); 5460 } else { 5461 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 5462 if (selectEl) { 5463 selectEl.value = optionVal; 5464 selectEl.dispatchEvent(new Event('change', { 5465 bubbles: true 5466 })); 5467 } 5468 } 5469 5470 this.changeOption(attrId, optionVal, false); 5471 } 5472 }; 5473 5474 if (data && typeof data === 'object') {
5475 Object.keys(data).forEach(key => applySelection(key, data[key])); 5476 } 5477 5478 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 5479 if (attribute && attribute.code) { 5480 let optionValue = urlQueryParams.get(attribute.code); 5481 if (optionValue) { 5482 let optionId = false; 5483 const attributes = Object.values(this.optionConfig.attributes || {}); 5484 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 5485 5486 let found = false; 5487 Object.values(targetAttr.options).map(option => { 5488 if (found === false && option.label === optionValue) { 5489 optionId = option.id; 5490 found = true; 5491 } 5492 }); 5493 5494 const attrId = String(targetAttr.id); 5495 let optionVal = String(optionValue); 5496 if (found) { 5497 optionVal = String(optionId); 5498 } 5499 5500 applySelection(attribute.code, optionVal); 5501 } 5502 } 5503 }); 5504 }, 100); 5505 }); 5506 } 5507 } 5508 }; 5509 // DWS - Configurable product preselect end 5510 5511 const result = Object.assign( 5512 configurableOptionsComponent, 5513 swatchOptionsComponent, { 5514 productId: '46708', 5515 productIndex: 0, 5516 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 5517 showSwatches: false, 5518 precalcOptions: {}, 5519 originalInit: configurableOptionsComponent.init, 5520 init() { 5521 try { 5522 this.precalcOptions = {}; 5523 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 5524 this.preselectQuerystringItems(); 5525 if (Array.isArray(attrSource)) { 5526 attrSource.forEach(attr => { 5527 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 5528 }); 5529 } else if (attrSource && typeof attrSource === 'object') { 5530 Object.keys(attrSource).forEach(id => { 5531 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 5532 }); 5533 } 5534 } catch (e) { 5535 console.error('Pre-calc error:', e); 5536 } 5537 5538 if (typeof this.originalInit === 'function') { 5539 this.originalInit(); 5540 } 5541 5542 try { 5543 this.initShowSwatchesIntersect(); 5544 } catch (e) { 5545 console.error('intersect error:', e); 5546 } 5547 }, 5548 5549 updateGallery() { 5550 if (!this.productIndex) return; 5551 5552 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 5553 method: 'GET', 5554 headers: { 5555 'Content-Type': 'application/json', 5556 'X-Requested-With': 'XMLHttpRequest' 5557 } 5558 }) 5559 .then(response => response.json()) 5560 .then(data => { 5561 if (data && data.medium) { 5562 window.dispatchEvent(new CustomEvent("update-gallery-46708", { 5563 detail: data.medium 5564 })); 5565 } 5566 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 5567 }, 5568 5569 5570 initShowSwatchesIntersect() { 5571 const observer = new IntersectionObserver(entries => { 5572 if (entries[0].isIntersecting) { 5573 this.showSwatches = true; 5574 observer.disconnect(); 5575 } 5576 }, { 5577 rootMargin: '512px' 5578 }); 5579 observer.observe(this.$el); 5580 }, 5581 getOptions(attrId) { 5582 return this.precalcOptions[attrId] || []; 5583 }, 5584 getOptionsByAttrId() { 5585 return this.getOptions(this.$el.dataset.attributeId); 5586 }, 5587 _getItemId() { 5588 if (this.item && this.item.id) return this.item.id; 5589 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 5590 }, 5591 getSwatchOptionHtmlId() { 5592 const itemId = this._getItemId(); 5593 return itemId ? this.$id(`attribute-option-46708-${itemId}`) : ''; 5594 }, 5595 getSwatchOptionHtmlIdGroup() { 5596 const itemId = this._getItemId(); 5597 return itemId ? [`attribute-option-46708-${itemId}`] : []; 5598 }, 5599 getAttributeSwatchData(attributeId) { 5600 const data = Object.assign({}, this.swatchConfig[attributeId]); 5601 if (data['additional_data']) { 5602 try { 5603 data['details'] = JSON.parse(data['additional_data']); 5604 } catch (e) { 5605 data['details'] = {}; 5606 } 5607 } 5608 return data; 5609 }, 5610 getSwatchType(attributeId, optionId) { 5611 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 5612 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 5613 } 5614 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 5615 this.swatchConfig[attributeId].details.swatch_input_type : 5616 "empty"; 5617 if (type === 'visual') { 5618 const config = this.swatchConfig[attributeId]; 5619 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 5620 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 5621 } 5622 // Fallback to first option type 5623 for (const oId in config) { 5624 if (config[oId] && typeof config[oId].type !== 'undefined') { 5625 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 5626 } 5627 } 5628 } 5629 return type; 5630 }, 5631 mapSwatchTypeNumberToTypeCode(type) { 5632 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 5633 }, 5634 isTextSwatch() { 5635 const itemId = this._getItemId(); 5636 if (!this.$el || !itemId) return false;
5637 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5638 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 5639 }, 5640 5641 getSwatchText() { 5642 const itemId = this._getItemId(); 5643 if (this.item) return this.item.label || ''; 5644 if (!this.$el || !itemId) return ''; 5645 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5646 const options = attrId ? this.getOptions(attrId) : []; 5647 const opt = options.find(o => o.id == itemId); 5648 return opt ? opt.label : ''; 5649 }, 5650 getSwatchBackgroundStyle() { 5651 const itemId = this._getItemId(); 5652 if (!this.$el || !itemId) return ''; 5653 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5654 if (!attrId) return ''; 5655 const type = this.getSwatchType(attrId, itemId); 5656 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 5657 this.swatchConfig[attrId][itemId] : 5658 null; 5659 if (!swatchData) return ''; 5660 if (type === "color") return 'background-color:' + swatchData.value; 5661 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 5662 return ''; 5663 }, 5664 swatchOptionClasses() { 5665 const itemId = this._getItemId(); 5666 if (!this.$el || !itemId) return {}; 5667 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5668 return { 5669 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 5670 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 5671 'w-6 h-6': !this.isTextSwatch() 5672 } 5673 }, 5674 5675 onFocusSwatchItem() { 5676 const itemId = this._getItemId(); 5677 if (itemId) this.focusedLabel = itemId; 5678 }, 5679 onChangeOption() { 5680 const itemId = this._getItemId(); 5681 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 5682 if (attrId && itemId) this.changeOption(attrId, itemId); 5683 }, 5684 changeOption(attributeId, value) { 5685 if (value === '') { 5686 return; 5687 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 5688 } else { 5689 this.selectedValues[attributeId] = value; 5690 } 5691 5692 this.findSimpleIndex(); 5693 this.findAllowedAttributeOptions(); 5694 this.updatePrices(); 5695 this.updateGallery(); 5696 5697 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 5698 this.findProductIdsForPartialSelection(this.selectedValues) : []; 5699 5700 const eventDetail = { 5701 productId: this.productId, 5702 optionId: attributeId, 5703 value: value, 5704 productIndex: this.productIndex || 0, 5705 selectedValues: this.selectedValues, 5706 candidates: candidates, 5707 sourceElement: this.$el 5708 }; 5709 5710 // Dispatch for Amasty 5711 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 5712 detail: eventDetail 5713 })); 5714 5715 // Dispatch for Hyva listing 5716 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 5717 detail: eventDetail 5718 })); 5719 }, 5720 5721 5722 clearOptionIfActive() { 5723 const itemId = this._getItemId(); 5724 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 5725 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 5726 this.changeOption(attrId, ''); 5727 5728 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 5729 if (!input && this.$el?.querySelector) { 5730 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 5731 } 5732 if (!input && this.$el?.closest) { 5733 const root = this.$el.closest('[data-product-id]') || this.$el; 5734 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 5735 } 5736 if (input) { 5737 input.checked = false;
5738 } 5739 } 5740 }, 5741 get optionIsEnabled() { 5742 const itemId = this._getItemId(); 5743 if (!this.$el || !itemId) return true; 5744 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5745 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 5746 return !!allowedOptions.find(opt => opt.id == itemId); 5747 }, 5748 get isSelected() { 5749 const itemId = this._getItemId(); 5750 if (!this.$el || !itemId) return false; 5751 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5752 return attrId ? (this.selectedValues[attrId] == itemId) : false; 5753 }, 5754 get isSwatchRequired() { 5755 if (!this.$el) return false; 5756 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5757 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 5758 }, 5759 focusedLabel: false, 5760 activeTooltipItem: false, 5761 tooltipPositionElement: false,
5762 setActiveTooltipItem() { 5763 const itemId = this._getItemId(); 5764 if (!this.$el || !itemId) return; 5765 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 5766 this.activeTooltipItem = { 5767 attribute: attrId, 5768 item: itemId, 5769 index: 0 5770 }; 5771 this.tooltipPositionElement = this.$event ? this.$event.target : null; 5772 }, 5773 unsetActiveTooltipItem() { 5774 this.activeTooltipItem = false; 5775 } 5776 }, 5777 confProdPreSelect() 5778 ); 5779 5780 if (result.optionConfig && result.optionConfig.attributes) { 5781 const attributes = result.optionConfig.attributes; 5782 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 5783 let source = attributes; 5784 if (Array.isArray(attributes)) { 5785 source = {}; 5786 attributes.forEach(attr => { 5787 if (attr && attr.id) source[attr.id] = attr; 5788 }); 5789 } 5790 const values = Object.values(source); 5791 const wrapper = Object.assign(values, source); 5792 Object.defineProperty(wrapper, '__amxnotifWrapped', { 5793 value: true, 5794 enumerable: false 5795 }); 5796 result.optionConfig.attributes = wrapper; 5797 } 5798 } 5799 5800 return result; 5801 } 5802 5803 window.addEventListener('alpine:init', () => { 5804 Alpine.data('initConfigurableSwatchOptions_46708', initConfigurableSwatchOptions_46708); 5805 }, { 5806 once: true 5807 }); 5808 </script>
5808 5809 5810 <div x-data="initConfigurableSwatchOptions_46708" x-defer="intersect"> 5811 <div class="pagebuilder-home-hidden"> 5812 5813 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 5814 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 5815 <template x-if="showSwatches"> 5816 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46708-163" role="radiogroup" aria-label="Einband"> 5817 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 5818 <div :data-option-id="item.id" style="display: contents"> 5819 <div x-id="getSwatchOptionHtmlIdGroup"> 5820 <template x-if="optionIsEnabled"> 5821 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
5821self="unsetActiveTooltipItem"> 5822 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46708-163"> 5823 <div> 5824 <template x-if="isTextSwatch"> 5825 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 5826 </template> 5827 <template x-if="!optionIsActive(163, item.id)"> 5828 <div> 5829 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 5830 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 5831 </svg> 5832 </div> 5833 </template> 5834 </div> 5835 </label> 5836 </template> 5837</div> </div> 5838 </template> 5839 </div> 5840 </template> 5841 </div> 5842 </div> 5843 </div> 5844 </div> 5845 5846 <div class="meta py-4 pagebuilder-home-hidden"> 5847 <div x-data="initMarketingShortText_46708()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 5848 <!-- Marketing short text --> 5849 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 5850 </div> 5851 5852 <!-- Short description --> 5853 <div class="short-description"> 5854 Mit diesem Band liegt Descartes’ umfangreicher Briefwechsel mit seinem langjährigen Freund Constantijn Huygens (1596–1687), dem Dichter, Musiker und vielseitig wissenschaftlich interessierten ... <a href="https://meiner.de/fmv_de/der-briefwechsel-mit-constantijn-huygens-21370" class="underline">mehr</a> 5855 </div> 5856 </div> 5857 5858 <!-- Series --> 5859 <div class="mb-1"> 5860 <span class="sr-only">Reihe:</span> 5861 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 5862 <span>Philosophische Bibliothek</span> 5863 </a> 5864 789 </div> 5865 5866 5867 <div class="mb-1"> 5868 <span x-data="initEditionText_46708()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 5869 <!-- Marketing short text --> 5870 <span class="edition-text" x-html="editionText"></span> 2026, XXXII, 442 Seiten. </span> 5871 </div> 5872 5873 </div> 5874 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 5875 5876 <div class="justify-end" x-data="initPriceBox()" @update-prices-46708.window="updatePrice($event.detail);"> 5877 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46708" data-price-box="product-id-46708"><span class="normal-price"> 5878 <span x-data x-id="['product\u002Dprice\u002D46708']" class="price-container price-final_price tax weee"> 5879 <span class="price-label">Ab</span> 5880 <span class="approx-price">ca. </span>
5881 <span :id="$id('product\u002Dprice\u002D46708')" data-price-amount="67.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">67,99 €</span></span> 5882 </span> 5883</span> 5884 5885 5886</div> </div> 5887 5888 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 5889 <div class="open-access-container open-access-container-46708 flex mt-4 ml-auto sm:mt-0 hidden"> 5890 <div class="text-gray-700"> 5891 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 5892 <a href="" target="_blank" class="open-access-external-link m-auto "> 5893 Kostenlos online lesen </a> 5894 </button> 5895 </div> 5896 </div> 5897 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Der Briefwechsel mit Constantijn Huygens" aria-label="In den Warenkorb Der Briefwechsel mit Constantijn Huygens" data-addto="cart"> 5898 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 5899 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 5900</svg> 5901 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 5902 In den Warenkorb </span> 5903 </button> 5904 5905<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46708)" aria-label="Zur Wunschliste hinzufügen Der Briefwechsel mit Constantijn Huygens" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 5906 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 5907 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 5908</svg> 5909</button> 5910 </div> 5911 </div> 5912 </div> 5913
5913<script> 5914 function initMarketingShortText_46708() { 5915 var marketingShortTextConfig = {}; 5916 if (typeof window.initConfigurableSwatchOptions_46708 === "function") { 5917 var fullConfig = window.initConfigurableSwatchOptions_46708().optionConfig 5918 var marketingShortTextConfig = fullConfig.marketing_short_text; 5919 } 5920 return { 5921 marketingShortText: '', 5922 config: marketingShortTextConfig, 5923 productId: '46708', 5924 getMarketingShortText(detail) { 5925 this.marketingShortText = detail.productIndex ? 5926 this.config[detail.productIndex] : 5927 null; 5928 }, 5929 eventListeners: { 5930 ['@listing-configurable-selection-changed.window'](event) { 5931 if (this.productId == event.detail.productId) { 5932 this.getMarketingShortText(event.detail); 5933 } 5934 5935 } 5936 } 5937 } 5938 } 5939 5940 function initEditionText_46708() { 5941 var editionTextConfig = {}; 5942 if (typeof window.initConfigurableSwatchOptions_46708 === "function") { 5943 var fullConfig = window.initConfigurableSwatchOptions_46708().optionConfig 5944 var editionTextConfig = fullConfig.edition; 5945 } 5946 return { 5947 editionText: '', 5948 config: editionTextConfig, 5949 productId: '46708', 5950 getEditionText(detail) { 5951 this.editionText = detail.productIndex ? 5952 this.config[detail.productIndex] : 5953 null; 5954 }, 5955 eventListeners: { 5956 ['@listing-configurable-selection-changed.window'](event) { 5957 if (this.productId == event.detail.productId) { 5958 this.getEditionText(event.detail); 5959 } 5960 5961 } 5962 } 5963 } 5964 } 5965 </script>
5965 5966 </form> 5967 5968 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9375/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk15888"> 5969 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9375"> 5970 <a href="https://meiner.de/fmv_de/rollenspiel-theatrales-philosophieren-musik-und-videoclips-im-philosophie-und-ethikunterricht-15888" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 5971 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9375.window="$el.src = $event.detail" alt="Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" title="Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787336661_6.jpg" :style="{ 5972 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 5973 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 5974 }"> 5975 </a> 5976 <div class="product-info flex flex-col flex-grow "> 5977 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 5978 <div class="mb-2 text-sm text-gray-500 font-medium"> 5979 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 5980 Jörg Peters </a> 5981 <span>|</span> 5982 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 5983 Martina Peters (Hrsg.) 5984 </a> 5985 </div> 5986 <a class="product-item-link" href="https://meiner.de/fmv_de/rollenspiel-theatrales-philosophieren-musik-und-videoclips-im-philosophie-und-ethikunterricht-15888"> 5987 Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht </a> 5988 </div> 5989 5990 <div x-data="initEditionText_9375()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 5991 <!-- Marketing short text --> 5992 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 5993 </div> 5994 </div> 5995 5996 <div class="py-1 grid mb-4 "> 5997 5998 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9375,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9375,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7618":"1","7619":"1","40009":"1"},"childProductsAlertStatus":{"7618":"0","7619":"0","40009":"0"},"indexMapping":{"163:15":7618,"163:8":7619,"163:9":40009},"availabilityMessages":{"7618":"Lieferbar innerhalb von 3-5 Tagen","7619":"Download sofort verf\u00fcgbar","40009":"Download sofort verf\u00fcgbar"},"openAccess":{"9375":{"status":0}
5998,"7618":{"status":0},"7619":{"status":0},"40009":{"status":0}}},"availabilityMessages":{"7618":"Lieferbar innerhalb von 3-5 Tagen","7619":"Download sofort verf\u00fcgbar","40009":"Download sofort verf\u00fcgbar"},"openAccess":{"9375":{"status":0},"7618":{"status":0},"7619":{"status":0},"40009":{"status":0}}}'> 5999 <template x-if="containerVisible"> 6000 <!-- Popup Trigger --> 6001 <div> 6002 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 6003 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 6004 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 6005 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 6006<title>bell</title></svg> 6007</span> 6008 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 6009 6010 <!-- Popup Modal --> 6011 <template x-if="showModal"> 6012 <template x-teleport=".page-wrapper"> 6013 <div x-cloak class="fixed inset-0 flex items-center justify-center 6014 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 6015 <div class="relative bg-white rounded-lg shadow-xl 6016 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 6017 <div class="p-6"> 6018 <!-- Subscription Form for Popup --> 6019 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 6020 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 6021 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 6022 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 6023 6024 <div class="flex flex-col gap-3"> 6025 <div class="flex-grow grow"> 6026 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 6027 shadow-xs focus:outline-none focus:outline-hidden 6028 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 6029 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 6030 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 6031 </div> 6032 <input type="hidden" name="product_id" :value="currentProductId"> 6033 <input type="hidden" name="type" value="email"> 6034 6035 6036 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 6037 6038 <div class="amxnotif_guest_action"> 6039 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 6040 rounded-md focus:outline-none 6041 focus:outline-hidden focu
6041s:ring-2 6042 focus:ring-offset-2 disabled:opacity-50 6043 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 6044 Benachrichtigen </button> 6045 </div> 6046 </div> 6047 6048 <div class="flex items-start pt-2"> 6049 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 6050 text-blue-600 border-gray-300 rounded-sm"> 6051 <label class="amxnotif-stock-gdrp-label cursor-pointer 6052 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 6053 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 6054 </div> 6055 </form> 6056 </div> 6057 6058 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 6059 hover:text-gray-600 transition-colors" aria-label="Schließen"> 6060 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 6061 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 6062<title>x</title></svg> 6063 </button> 6064 </div> 6065 </div> 6066 </template> 6067 </template> 6068 </div> 6069 </template> 6070 </div> 6071 6072<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9375" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9375,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7618":"1","7619":"1","40009":"1"},"childProductsAlertStatus":{"7618":"0","7619":"0","40009":"0"},"indexMapping":"{\u0022163:15\u0022:7618,\u0022163:8\u0022:7619,\u0022163:9\u0022:40009}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9375,"availabilityMessages":{"7618":"Lieferbar innerhalb von 3-5 Tagen","7619":"Download sofort verf\u00fcgbar","40009":"Download sofort verf\u00fcgbar"},"openAccess":{"9375":{"status":0},"7618":{"status":0},"7619":{"status":0},"40009":{"status":0}}}'> 6073 6074 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 6075 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 6076 <span x-html="optionsLabelText"></span> 6077 </p> 6078</div> </div> 6079 6080
6080<script> 6081 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 6082 try { 6083 const attributes = (config && config.attributes) ? config.attributes : null; 6084 if (!attributes) return []; 6085 let attr = null; 6086 if (Array.isArray(attributes)) { 6087 for (let i = 0; i < attributes.length; i++) { 6088 const a = attributes[i]; 6089 if (a && a.id == attrId) { 6090 attr = a; 6091 break; 6092 } 6093 } 6094 } else { 6095 attr = attributes[attrId]; 6096 } 6097 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 6098 } catch (e) { 6099 return []; 6100 } 6101 }; 6102 6103 function initConfigurableSwatchOptions_9375() { 6104 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7618"]},{"id":"8","label":"PDF","products":["7619"]},{"id":"9","label":"EPUB","products":["40009"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7618":{"baseOldPrice":{"amount":25.140185915888},"oldPrice":{"amount":26.9},"basePrice":{"amount":25.140185915888},"finalPrice":{"amount":26.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7619":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"40009":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"9375","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7618":{"163":"15"},"7619":{"163":"8"},"40009":{"163":"9"}},"salable":{"163":{"15":["7618"],"8":["7619"],"9":["40009"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7618":"003658","7619":"003666","40009":"004978"},"output":{"7618":"Kartoniert","7619":"PDF","40009":"EPUB"},"original_name":{"7618":"","7619":"","40009":""},"openaccess_license_link":{"7618":"","7619":"","40009":""},"openaccess_license_name":{"7618":"","7619":"","40009":""},"openaccess_external_link":{"7618":"","7619":"","40009":""},"gpsr_safety_info":{"7618":"","7619":"","40009":""},"description":{"7618":"Pr\u00e4sentative Darstellungsformen und pr\u00e4sentative Medien erfreuen sich immer gr\u00f6\u00dferer Beliebtheit im Philosophie- und Ethikunterricht. Der Band gibt deshalb Anregungen, wie Sch\u00fclerinnen und Sch\u00fcler mit Hilfe von Rollenspielen, theatralem Philosophieren, Videoclips und Musik an philosophische Theorien, Fragestellungen oder Probleme herangef\u00fchrt werden k\u00f6nnen.<br\/><br\/>W\u00e4hrend es in den pr\u00e4sentativen Darstellungsformen darum geht, Philosophisches darstellend umzusetzen, k\u00f6nnen in pr\u00e4sentativen Medien philosophische Fragen veranschaulicht werden. Der vorliegende Band bietet zum einen das theoretische Fundament f\u00fcr die Arbeit mit pr\u00e4sentativen Formaten im Philosophie- und Ethikunterricht und stellt zum anderen zahlreiche praxistaugliche Handreichungen f\u00fcr die Unterrichtsgestaltung vor. Die Herausgeber erl\u00e4utern einleitend, inwiefern die gew\u00e4hlte Zusammenstellung von vier unterschiedlichen Methoden bzw. Medien sinnvoll ist, bevor sich separate Kapitel zu Rollenspiel, theatralem Philosophieren, Video-Clips und Musik anschlie\u00dfen, die alle jeweils Theorie- und Praxisbeitr\u00e4ge enthalten. Die ausgew\u00e4hlten Beispiele und die entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Eine umfangreiche Auswahlbibliographie l\u00e4dt zur Weiterarbeit ein und schlie\u00dft das Kompendium ab.","7619":"Pr\u00e4sentative Darstellungsformen und pr\u00e4sentative Medien erfreuen sich immer gr\u00f6\u00dferer Beliebtheit im Philosophie- und Ethikunterricht. Der Band gibt deshalb Anregungen, wie Sch\u00fclerinnen und Sch\u00fcler mit Hilfe von Rollenspielen, theatralem Philosophieren, Videoclips und Musik an philosophische Theorien, Fragestellungen oder Probleme herangef\u00fchrt werden k\u00f6nnen.<br\/><br\/>W\u00e4hrend es in den pr\u00e4sentativen Darstellungsformen darum geht, Philosophisches darstellend umzusetzen, k\u00f6nnen in pr\u00e4sentativen Medien philosophische Fragen veranschaulicht werden. Der vorliegende Band bietet zum einen das theoretische Fundament f\u00fcr die Arbeit mit pr\u00e4sentativen Formaten im Philosophie- und Ethikunterricht und stellt zum anderen zahlreiche praxistaugliche Handreichungen f\u00fcr die Unterrichtsgestaltung vor. Die Herausgeber erl\u00e4utern einleitend, inwiefern die gew\u00e4hlte Zusammenstellung von vier unterschiedlichen Methoden bzw. Medie
6104n sinnvoll ist, bevor sich separate Kapitel zu Rollenspiel, theatralem Philosophieren, Video-Clips und Musik anschlie\u00dfen, die alle jeweils Theorie- und Praxisbeitr\u00e4ge enthalten. Die ausgew\u00e4hlten Beispiele und die entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Eine umfangreiche Auswahlbibliographie l\u00e4dt zur Weiterarbeit ein und schlie\u00dft das Kompendium ab.","40009":"Pr\u00e4sentative Darstellungsformen und pr\u00e4sentative Medien erfreuen sich immer gr\u00f6\u00dferer Beliebtheit im Philosophie- und Ethikunterricht. Der Band gibt deshalb Anregungen, wie Sch\u00fclerinnen und Sch\u00fcler mit Hilfe von Rollenspielen, theatralem Philosophieren, Videoclips und Musik an philosophische Theorien, Fragestellungen oder Probleme herangef\u00fchrt werden k\u00f6nnen.<br\/><br\/>W\u00e4hrend es in den pr\u00e4sentativen Darstellungsformen darum geht, Philosophisches darstellend umzusetzen, k\u00f6nnen in pr\u00e4sentativen Medien philosophische Fragen veranschaulicht werden. Der vorliegende Band bietet zum einen das theoretische Fundament f\u00fcr die Arbeit mit pr\u00e4sentativen Formaten im Philosophie- und Ethikunterricht und stellt zum anderen zahlreiche praxistaugliche Handreichungen f\u00fcr die Unterrichtsgestaltung vor. Die Herausgeber erl\u00e4utern einleitend, inwiefern die gew\u00e4hlte Zusammenstellung von vier unterschiedlichen Methoden bzw. Medien sinnvoll ist, bevor sich separate Kapitel zu Rollenspiel, theatralem Philosophieren, Video-Clips und Musik anschlie\u00dfen, die alle jeweils Theorie- und Praxisbeitr\u00e4ge enthalten. Die ausgew\u00e4hlten Beispiele und die entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Eine umfangreiche Auswahlbibliographie l\u00e4dt zur Weiterarbeit ein und schlie\u00dft das Kompendium ab."},"doi":{"7618":"","7619":"10.28937\/978-3-7873-3666-1","40009":""},"isbn":{"7618":"978-3-7873-3658-6","7619":"978-3-7873-3666-1","40009":"978-3-7873-4978-4"},"marketing_short_text":{"7618":"","7619":"","40009":""},"recension_text":{"7618":"","7619":"","40009":""},"language":{"7618":"","7619":"","40009":""},"cover":{"7618":"Kartoniert","7619":"","40009":""},"pages":{"7618":"288 Seiten","7619":"288 Seiten","40009":"288 Seiten"},"edition":{"7618":"","7619":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","40009":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"7618":"Nein","7619":"Nein","40009":"Nein"},"copyright_year":{"7618":"","7619":"","40009":""},"vlb_tix_link":{"7618":"https:\/\/neu.vlbtix.de\/products\/9783787336586?type=gtin","7619":"","40009":""},"defaultValues":{"163":"15"}}; 6105 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 6106 6107 if (typeof window.amxnotif_wrap_attributes === 'function') { 6108 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 6109 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 6110 } 6111 6112 const configurableOptionsComponent = initConfigurableOptions( 6113 '9375', 6114 config 6115 ); 6116 const swatchOptionsComponent = initSwatchOptions( 6117 swatchConfig 6118 ); 6119 6120 // DWS - Configurable product preselect start 6121 const confProdPreSelect = () => { 6122 return { 6123 preselectQuerystringItems() { 6124 var data = {"id":"7618","output":"15"}; 6125 const urlQueryParams = new URLSearchParams(window.location.search); 6126 6127 this.$nextTick(() => { 6128 setTimeout(() => { 6129 const rootEl = this.$root || this.$el; 6130 if (!rootEl) return; 6131 6132 const applySelection = (attrCode, attrValue) => { 6133 if (attrValue === undefined || attrValue === null || attrValue === '') return; 6134 6135 const attributes = Object.values(this.optionConfig.attributes || {}); 6136 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 6137 6138 if (targetAttr) { 6139 const attrId = String(targetAttr.id); 6140 const optionVal = String(attrValue); 6141 6142 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 6143 6144 if (inputEl) { 6145 inputEl.click(); 6146 inputEl.dispatchEvent(new Event('change', { 6147 bubbles: true 6148 })); 6149 } else { 6150 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 6151 if (selectEl) { 6152 selectEl.value = optionVal; 6153 selectEl.dispatchEvent(new Event('change', { 6154 bubbles: true 6155 })); 6156 } 6157 } 6158 6159 this.changeOption(attrId, optionVal, false); 6160 } 6161 }; 6162 6163 if (data && typeof data === 'object') {
6164 Object.keys(data).forEach(key => applySelection(key, data[key])); 6165 } 6166 6167 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 6168 if (attribute && attribute.code) { 6169 let optionValue = urlQueryParams.get(attribute.code); 6170 if (optionValue) { 6171 let optionId = false; 6172 const attributes = Object.values(this.optionConfig.attributes || {}); 6173 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 6174 6175 let found = false; 6176 Object.values(targetAttr.options).map(option => { 6177 if (found === false && option.label === optionValue) { 6178 optionId = option.id; 6179 found = true; 6180 } 6181 }); 6182 6183 const attrId = String(targetAttr.id); 6184 let optionVal = String(optionValue); 6185 if (found) { 6186 optionVal = String(optionId); 6187 } 6188 6189 applySelection(attribute.code, optionVal); 6190 } 6191 } 6192 }); 6193 }, 100); 6194 }); 6195 } 6196 } 6197 }; 6198 // DWS - Configurable product preselect end 6199 6200 const result = Object.assign( 6201 configurableOptionsComponent, 6202 swatchOptionsComponent, { 6203 productId: '9375', 6204 productIndex: 0, 6205 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 6206 showSwatches: false, 6207 precalcOptions: {}, 6208 originalInit: configurableOptionsComponent.init, 6209 init() { 6210 try { 6211 this.precalcOptions = {}; 6212 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 6213 this.preselectQuerystringItems(); 6214 if (Array.isArray(attrSource)) { 6215 attrSource.forEach(attr => { 6216 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 6217 }); 6218 } else if (attrSource && typeof attrSource === 'object') { 6219 Object.keys(attrSource).forEach(id => { 6220 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 6221 }); 6222 } 6223 } catch (e) { 6224 console.error('Pre-calc error:', e); 6225 } 6226 6227 if (typeof this.originalInit === 'function') { 6228 this.originalInit(); 6229 } 6230 6231 try { 6232 this.initShowSwatchesIntersect(); 6233 } catch (e) { 6234 console.error('intersect error:', e); 6235 } 6236 }, 6237 6238 updateGallery() { 6239 if (!this.productIndex) return; 6240 6241 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 6242 method: 'GET', 6243 headers: { 6244 'Content-Type': 'application/json', 6245 'X-Requested-With': 'XMLHttpRequest' 6246 } 6247 }) 6248 .then(response => response.json()) 6249 .then(data => { 6250 if (data && data.medium) { 6251 window.dispatchEvent(new CustomEvent("update-gallery-9375", { 6252 detail: data.medium 6253 })); 6254 } 6255 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 6256 }, 6257 6258 6259 initShowSwatchesIntersect() { 6260 const observer = new IntersectionObserver(entries => { 6261 if (entries[0].isIntersecting) { 6262 this.showSwatches = true; 6263 observer.disconnect(); 6264 } 6265 }, { 6266 rootMargin: '512px' 6267 }); 6268 observer.observe(this.$el); 6269 }, 6270 getOptions(attrId) { 6271 return this.precalcOptions[attrId] || []; 6272 }, 6273 getOptionsByAttrId() { 6274 return this.getOptions(this.$el.dataset.attributeId); 6275 }, 6276 _getItemId() { 6277 if (this.item && this.item.id) return this.item.id; 6278 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 6279 }, 6280 getSwatchOptionHtmlId() { 6281 const itemId = this._getItemId(); 6282 return itemId ? this.$id(`attribute-option-9375-${itemId}`) : ''; 6283 }, 6284 getSwatchOptionHtmlIdGroup() { 6285 const itemId = this._getItemId(); 6286 return itemId ? [`attribute-option-9375-${itemId}`] : []; 6287 }, 6288 getAttributeSwatchData(attributeId) { 6289 const data = Object.assign({}, this.swatchConfig[attributeId]); 6290 if (data['additional_data']) { 6291 try { 6292 data['details'] = JSON.parse(data['additional_data']); 6293 } catch (e) { 6294 data['details'] = {}; 6295 } 6296 } 6297 return data; 6298 }, 6299 getSwatchType(attributeId, optionId) { 6300 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 6301 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 6302 } 6303 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 6304 this.swatchConfig[attributeId].details.swatch_input_type : 6305 "empty"; 6306 if (type === 'visual') { 6307 const config = this.swatchConfig[attributeId]; 6308 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 6309 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 6310 } 6311 // Fallback to first option type 6312 for (const oId in config) { 6313 if (config[oId] && typeof config[oId].type !== 'undefined') { 6314 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 6315 } 6316 } 6317 } 6318 return type; 6319 }, 6320 mapSwatchTypeNumberToTypeCode(type) { 6321 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 6322 }, 6323 isTextSwatch() { 6324 const itemId = this._getItemId(); 6325 if (!this.$el || !itemId) return false;
6326 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6327 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 6328 }, 6329 6330 getSwatchText() { 6331 const itemId = this._getItemId(); 6332 if (this.item) return this.item.label || ''; 6333 if (!this.$el || !itemId) return ''; 6334 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6335 const options = attrId ? this.getOptions(attrId) : []; 6336 const opt = options.find(o => o.id == itemId); 6337 return opt ? opt.label : ''; 6338 }, 6339 getSwatchBackgroundStyle() { 6340 const itemId = this._getItemId(); 6341 if (!this.$el || !itemId) return ''; 6342 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6343 if (!attrId) return ''; 6344 const type = this.getSwatchType(attrId, itemId); 6345 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 6346 this.swatchConfig[attrId][itemId] : 6347 null; 6348 if (!swatchData) return ''; 6349 if (type === "color") return 'background-color:' + swatchData.value; 6350 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 6351 return ''; 6352 }, 6353 swatchOptionClasses() { 6354 const itemId = this._getItemId(); 6355 if (!this.$el || !itemId) return {}; 6356 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6357 return { 6358 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 6359 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 6360 'w-6 h-6': !this.isTextSwatch() 6361 } 6362 }, 6363 6364 onFocusSwatchItem() { 6365 const itemId = this._getItemId(); 6366 if (itemId) this.focusedLabel = itemId; 6367 }, 6368 onChangeOption() { 6369 const itemId = this._getItemId(); 6370 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 6371 if (attrId && itemId) this.changeOption(attrId, itemId); 6372 }, 6373 changeOption(attributeId, value) { 6374 if (value === '') { 6375 return; 6376 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 6377 } else { 6378 this.selectedValues[attributeId] = value; 6379 } 6380 6381 this.findSimpleIndex(); 6382 this.findAllowedAttributeOptions(); 6383 this.updatePrices(); 6384 this.updateGallery(); 6385 6386 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 6387 this.findProductIdsForPartialSelection(this.selectedValues) : []; 6388 6389 const eventDetail = { 6390 productId: this.productId, 6391 optionId: attributeId, 6392 value: value, 6393 productIndex: this.productIndex || 0, 6394 selectedValues: this.selectedValues, 6395 candidates: candidates, 6396 sourceElement: this.$el 6397 }; 6398 6399 // Dispatch for Amasty 6400 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 6401 detail: eventDetail 6402 })); 6403 6404 // Dispatch for Hyva listing 6405 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 6406 detail: eventDetail 6407 })); 6408 }, 6409 6410 6411 clearOptionIfActive() { 6412 const itemId = this._getItemId(); 6413 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 6414 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 6415 this.changeOption(attrId, ''); 6416 6417 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 6418 if (!input && this.$el?.querySelector) { 6419 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 6420 } 6421 if (!input && this.$el?.closest) { 6422 const root = this.$el.closest('[data-product-id]') || this.$el; 6423 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 6424 } 6425 if (input) { 6426 input.checked = false;
6427 } 6428 } 6429 }, 6430 get optionIsEnabled() { 6431 const itemId = this._getItemId(); 6432 if (!this.$el || !itemId) return true; 6433 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6434 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 6435 return !!allowedOptions.find(opt => opt.id == itemId); 6436 }, 6437 get isSelected() { 6438 const itemId = this._getItemId(); 6439 if (!this.$el || !itemId) return false; 6440 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6441 return attrId ? (this.selectedValues[attrId] == itemId) : false; 6442 }, 6443 get isSwatchRequired() { 6444 if (!this.$el) return false; 6445 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6446 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 6447 }, 6448 focusedLabel: false, 6449 activeTooltipItem: false, 6450 tooltipPositionElement: false,
6451 setActiveTooltipItem() { 6452 const itemId = this._getItemId(); 6453 if (!this.$el || !itemId) return; 6454 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 6455 this.activeTooltipItem = { 6456 attribute: attrId, 6457 item: itemId, 6458 index: 0 6459 }; 6460 this.tooltipPositionElement = this.$event ? this.$event.target : null; 6461 }, 6462 unsetActiveTooltipItem() { 6463 this.activeTooltipItem = false; 6464 } 6465 }, 6466 confProdPreSelect() 6467 ); 6468 6469 if (result.optionConfig && result.optionConfig.attributes) { 6470 const attributes = result.optionConfig.attributes; 6471 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 6472 let source = attributes; 6473 if (Array.isArray(attributes)) { 6474 source = {}; 6475 attributes.forEach(attr => { 6476 if (attr && attr.id) source[attr.id] = attr; 6477 }); 6478 } 6479 const values = Object.values(source); 6480 const wrapper = Object.assign(values, source); 6481 Object.defineProperty(wrapper, '__amxnotifWrapped', { 6482 value: true, 6483 enumerable: false 6484 }); 6485 result.optionConfig.attributes = wrapper; 6486 } 6487 } 6488 6489 return result; 6490 } 6491 6492 window.addEventListener('alpine:init', () => { 6493 Alpine.data('initConfigurableSwatchOptions_9375', initConfigurableSwatchOptions_9375); 6494 }, { 6495 once: true 6496 }); 6497 </script>
6497 6498 6499 <div x-data="initConfigurableSwatchOptions_9375" x-defer="intersect"> 6500 <div class="pagebuilder-home-hidden"> 6501 6502 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 6503 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 6504 <template x-if="showSwatches"> 6505 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9375-163" role="radiogroup" aria-label="Einband"> 6506 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 6507 <div :data-option-id="item.id" style="display: contents"> 6508 <div x-id="getSwatchOptionHtmlIdGroup"> 6509 <template x-if="optionIsEnabled"> 6510 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
6510self="unsetActiveTooltipItem"> 6511 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9375-163"> 6512 <div> 6513 <template x-if="isTextSwatch"> 6514 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 6515 </template> 6516 <template x-if="!optionIsActive(163, item.id)"> 6517 <div> 6518 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 6519 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 6520 </svg> 6521 </div> 6522 </template> 6523 </div> 6524 </label> 6525 </template> 6526</div> </div> 6527 </template> 6528 </div> 6529 </template> 6530 </div> 6531 </div> 6532 </div> 6533 </div> 6534 6535 <div class="meta py-4 pagebuilder-home-hidden"> 6536 <div x-data="initMarketingShortText_9375()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 6537 <!-- Marketing short text --> 6538 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 6539 </div> 6540 6541 <!-- Short description --> 6542 <div class="short-description"> 6543 Musik und Videoclips prägen den Alltag vieler Jugendlicher, weshalb sich diese beiden präsentativen Medien für einen Einsatz im Philosophie- und Ethikunterricht in besonderem Maße eignen. … <a href="https://meiner.de/fmv_de/rollenspiel-theatrales-philosophieren-musik-und-videoclips-im-philosophie-und-ethikunterricht-15888" class="underline">mehr</a> 6544 </div> 6545 </div> 6546 6547 <!-- Series --> 6548 <div class="mb-1"> 6549 <span class="sr-only">Reihe:</span> 6550 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 6551 <span>Methoden im Philosophie- und Ethikunterricht</span> 6552 </a> 6553 9 </div> 6554 6555 6556 <div class="mb-1"> 6557 <span x-data="initEditionText_9375()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 6558 <!-- Marketing short text --> 6559 <span class="edition-text" x-html="editionText"></span> 2026, 288 Seiten </span> 6560 </div> 6561 6562 </div> 6563 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 6564 6565 <div class="justify-end" x-data="initPriceBox()" @update-prices-9375.window="updatePrice($event.detail);"> 6566 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9375" data-price-box="product-id-9375"><span class="normal-price"> 6567 <span x-data x-id="['product\u002Dprice\u002D9375']" class="price-container price-final_price tax weee"> 6568 <span class="price-label">Ab</span>
6569 <span class="approx-price">ca. </span> 6570 <span :id="$id('product\u002Dprice\u002D9375')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 6571 </span> 6572</span> 6573 6574 6575</div> </div> 6576 6577 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 6578 <div class="open-access-container open-access-container-9375 flex mt-4 ml-auto sm:mt-0 hidden"> 6579 <div class="text-gray-700"> 6580 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 6581 <a href="" target="_blank" class="open-access-external-link m-auto "> 6582 Kostenlos online lesen </a> 6583 </button> 6584 </div> 6585 </div> 6586 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" aria-label="In den Warenkorb Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" data-addto="cart"> 6587 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 6588 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 6589</svg> 6590 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 6591 In den Warenkorb </span> 6592 </button> 6593 6594<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9375)" aria-label="Zur Wunschliste hinzufügen Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 6595 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 6596 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 6597</svg> 6598</button> 6599 </div> 6600 </div> 6601 </div> 6602
6602<script> 6603 function initMarketingShortText_9375() { 6604 var marketingShortTextConfig = {}; 6605 if (typeof window.initConfigurableSwatchOptions_9375 === "function") { 6606 var fullConfig = window.initConfigurableSwatchOptions_9375().optionConfig 6607 var marketingShortTextConfig = fullConfig.marketing_short_text; 6608 } 6609 return { 6610 marketingShortText: '', 6611 config: marketingShortTextConfig, 6612 productId: '9375', 6613 getMarketingShortText(detail) { 6614 this.marketingShortText = detail.productIndex ? 6615 this.config[detail.productIndex] : 6616 null; 6617 }, 6618 eventListeners: { 6619 ['@listing-configurable-selection-changed.window'](event) { 6620 if (this.productId == event.detail.productId) { 6621 this.getMarketingShortText(event.detail); 6622 } 6623 6624 } 6625 } 6626 } 6627 } 6628 6629 function initEditionText_9375() { 6630 var editionTextConfig = {}; 6631 if (typeof window.initConfigurableSwatchOptions_9375 === "function") { 6632 var fullConfig = window.initConfigurableSwatchOptions_9375().optionConfig 6633 var editionTextConfig = fullConfig.edition; 6634 } 6635 return { 6636 editionText: '', 6637 config: editionTextConfig, 6638 productId: '9375', 6639 getEditionText(detail) { 6640 this.editionText = detail.productIndex ? 6641 this.config[detail.productIndex] : 6642 null; 6643 }, 6644 eventListeners: { 6645 ['@listing-configurable-selection-changed.window'](event) { 6646 if (this.productId == event.detail.productId) { 6647 this.getEditionText(event.detail); 6648 } 6649 6650 } 6651 } 6652 } 6653 } 6654 </script>
6654 6655 </form> 6656 6657 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47280/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk25422"> 6658 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47280"> 6659 <a href="https://meiner.de/fmv_de/a-sthetik-des-computerspiels-25422" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 6660 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47280.window="$el.src = $event.detail" alt="Ästhetik des Computerspiels" title="Ästhetik des Computerspiels" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787352272_2.jpg" :style="{ 6661 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 6662 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 6663 }"> 6664 </a> 6665 <div class="product-info flex flex-col flex-grow "> 6666 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 6667 <div class="mb-2 text-sm text-gray-500 font-medium"> 6668 <a href="https://meiner.de/fmv_de/person/Philipp-Theisohn-3440/" class="mb-2"> 6669 Philipp Theisohn </a> 6670 <span>|</span> 6671 <a href="https://meiner.de/fmv_de/person/Reinold-Schmucker-5063/" class="mb-2"> 6672 Reinold Schmücker (Hrsg.) 6673 </a> 6674 </div> 6675 <a class="product-item-link" href="https://meiner.de/fmv_de/a-sthetik-des-computerspiels-25422"> 6676 Ästhetik des Computerspiels </a> 6677 </div> 6678 6679 <div x-data="initEditionText_47280()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 6680 <!-- Marketing short text --> 6681 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 6682 </div> 6683 </div> 6684 6685 <div class="py-1 grid mb-4 "> 6686 6687 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47280,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47280,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47254":"1","47266":"1"},"childProductsAlertStatus":{"47254":"0","47266":"0"},"indexMapping":{"163:15":47254,"163:8":47266},"availabilityMessages":{"47254":"Lieferbar innerhalb von 3-5 Tagen","47266":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47280":{"status":0},"47254":{"status":0},"47266":{"status":0}}},"availabilityMessages":{"47254":"Lieferbar innerhalb von 3-5 Tagen","47266":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47280":{"status":0},"47254":{"status":0},"47266":{"status":0}}}'> 6688 <template x-if="containerVisible"> 6689 <!-- Popup Trigger --> 6690 <div> 6691 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 6692 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
6693 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 6694 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 6695<title>bell</title></svg> 6696</span> 6697 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 6698 6699 <!-- Popup Modal --> 6700 <template x-if="showModal"> 6701 <template x-teleport=".page-wrapper"> 6702 <div x-cloak class="fixed inset-0 flex items-center justify-center 6703 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 6704 <div class="relative bg-white rounded-lg shadow-xl 6705 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 6706 <div class="p-6"> 6707 <!-- Subscription Form for Popup --> 6708 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 6709 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 6710 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 6711 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 6712 6713 <div class="flex flex-col gap-3"> 6714 <div class="flex-grow grow"> 6715 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 6716 shadow-xs focus:outline-none focus:outline-hidden 6717 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 6718 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 6719 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 6720 </div> 6721 <input type="hidden" name="product_id" :value="currentProductId"> 6722 <input type="hidden" name="type" value="email"> 6723 6724 6725 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 6726 6727 <div class="amxnotif_guest_action"> 6728 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 6729 rounded-md focus:outline-none 6730 focus:outline-hidden focus:ring-2 6731 focus:ring-offset-2 disabled:opacity-50 6732 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 6733 Benachrichtigen </button> 6734 </div> 6735 </div> 6736 6737 <div class="flex items-start pt-2"> 6738 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 6739 text-blue-600 border-gray-300 rounded-sm"> 6740 <label class="amxnotif-stock-gdrp-label cursor-pointer 6741 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 6742 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 6743 </div> 6744 </form> 6745 </div> 6746 6747 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 6748 hover:text-gray-600 transition-colors" aria-label="Schließen"> 6749 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 6750 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 6751<title>x</title></svg> 6752 </button> 6753 </div> 6754 </div> 6755 </template> 6756 </template> 6757 </div> 6758 </template> 6759 </div> 6760 6761<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47280" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47280,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47254":"1","47266":"1"},"childProductsAlertStatus":{"47254":"0","47266":"0"},"indexMapping":"{\u0022163:15\u0022:47254,\u0022163:8\u0022:47266}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47280,"availabilityMessages":{"47254":"Lieferbar innerhalb von 3-5 Tagen","47266":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47280":{"status":0},"47254":{"status":0},"47266":{"status":0}}}'> 6762 6763 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
6764 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 6765 <span x-html="optionsLabelText"></span> 6766 </p> 6767</div> </div> 6768 6769
6769<script> 6770 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 6771 try { 6772 const attributes = (config && config.attributes) ? config.attributes : null; 6773 if (!attributes) return []; 6774 let attr = null; 6775 if (Array.isArray(attributes)) { 6776 for (let i = 0; i < attributes.length; i++) { 6777 const a = attributes[i]; 6778 if (a && a.id == attrId) { 6779 attr = a; 6780 break; 6781 } 6782 } 6783 } else { 6784 attr = attributes[attrId]; 6785 } 6786 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 6787 } catch (e) { 6788 return []; 6789 } 6790 }; 6791 6792 function initConfigurableSwatchOptions_47280() { 6793 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["47254"]},{"id":"8","label":"PDF","products":["47266"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47254":{"baseOldPrice":{"amount":92.523363485981},"oldPrice":{"amount":99},"basePrice":{"amount":92.523363485981},"finalPrice":{"amount":99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47266":{"baseOldPrice":{"amount":70.084111149533},"oldPrice":{"amount":74.99},"basePrice":{"amount":70.084111149533},"finalPrice":{"amount":74.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":70.084111149533},"oldPrice":{"amount":74.99},"basePrice":{"amount":63.016805722689},"finalPrice":{"amount":74.99},"isApproxPrice":null},"productId":"47280","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"47254":{"163":"15"},"47266":{"163":"8"}},"salable":{"163":{"15":["47254"],"8":["47266"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"47254":"000132-71-1","47266":"eZ\u00c4K-71-1"},"output":{"47254":"Kartoniert","47266":"PDF"},"original_name":{"47254":"","47266":""},"openaccess_license_link":{"47254":"","47266":""},"openaccess_license_name":{"47254":"","47266":""},"openaccess_external_link":{"47254":"","47266":""},"gpsr_safety_info":{"47254":"","47266":""},"description":{"47254":"Was ist mit \u00bb\u00c4sthetik des Computerspiels\u00ab gemeint? Und wo w\u00e4re diese zu finden? Der Schwerpunkt dieser Ausgabe sucht sie in den Zwischenr\u00e4umen und Sollbruchstellen, die die medialen Architekturen des Computerspiels durchziehen. Die Einheit von fiktionaler Welt, operativer Struktur und technischer Konditionierung, von narrativer und ludischer Ebene, von Programmierung, Spielmechanik, Hardware und Interfaces ist jedoch nur eine scheinbare. Stattdessen wird diese Einheit in ihrer Faktur aus den Spielwelten heraus sichtbar. Dabei gew\u00e4hren die selbstreflexiven Momente einen Zugang zu dem, was man den \u00bb\u00e4sthetischen Effekt\u00ab des Computerspiels nennen k\u00f6nnte. Von dort aus beginnt das Nachdenken \u00fcber jene junge und massenhaft verbreitete Kunstform, deren genauer Analyse sich die Beitr\u00e4ge widmen.","47266":"Was ist mit \u00bb\u00c4sthetik des Computerspiels\u00ab gemeint? Und wo w\u00e4re diese zu finden? Der Schwerpunkt dieser Ausgabe sucht sie in den Zwischenr\u00e4umen und Sollbruchstellen, die die medialen Architekturen des Computerspiels durchziehen. Die Einheit von fiktionaler Welt, operativer Struktur und technischer Konditionierung, von narrativer und ludischer Ebene, von Programmierung, Spielmechanik, Hardware und Interfaces ist jedoch nur eine scheinbare. Stattdessen wird diese Einheit in ihrer Faktur aus den Spielwelten heraus sichtbar. Dabei gew\u00e4hren die selbstreflexiven Momente einen Zugang zu dem, was man den \u00bb\u00e4sthetischen Effekt\u00ab des Computerspiels nennen k\u00f6nnte. Von dort aus beginnt das Nachdenken \u00fcber jene junge und massenhaft verbreitete Kunstform, deren genauer Analyse sich die Beitr\u00e4ge widmen."},"doi":{"47254":"","47266":"10.28937\/978-3-7873-5228-9"},"isbn":{"47254":"978-3-7873-5227-2","47266":""},"marketing_short_text":{"47254":"","47266":""},"recension_text":{"47254":"","47266":""},"language":{"47254":"","47266":""},"cover":{"47254":"Kartoniert","47266":""},"pages":{"47254":"168 Seiten.","47266":"168 Seiten."},"edition":{"47254":"","47266":"Unver\u00e4ndertes eJournal der 1. Auflage von 2026"},"pod":{"47254":"Nein","47266":"Nein"},"copyright_year":{"47254":"","47266":""},"vlb_tix_link":{"47254":"https:\/\/neu.vlbtix.de\/products\/9783787352272?type=gtin","47266":""},"defaultValues":{"163":"15"}}; 6794 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 6795 6796 if (typeof window.amxnotif_wrap_attributes === 'function') { 6797 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 6798 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 6799 } 6800 6801 const configurableOptionsComponent = initConfigurableOptions( 6802 '47280', 6803 config 6804 ); 6805 const swatchOptionsComponent = initSwatchOptions( 6806 swatchConfig 6807 ); 6808 6809 // DWS - Configurable product preselect start 6810 const confProdPreSelect = () => { 6811 return { 6812 preselectQuerystringItems() { 6813 var data = {"id":"47254","output":"15"}; 6814 const urlQueryParams = new URLSearchParams(window.location.search); 6815 6816 this.$nextTick(() => { 6817 setTimeout(() => { 6818 const rootEl = this.$root || this.$el; 6819 if (!rootEl) return; 6820 6821 const applySelection = (attrCode, attrValue) => { 6822 if (attrValue === undefined || attrValue === null || attrValue === '') return; 6823 6824 const attributes = Object.values(this.optionConfig.attributes || {}); 6825 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 6826 6827 if (targetAttr) { 6828 const attrId = String(targetAttr.id); 6829 const optionVal = String(attrValue); 6830 6831 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 6832 6833 if (inputEl) { 6834 inputEl.click(); 6835 inputEl.dispatchEvent(new Event('change', { 6836 bubbles: true 6837 })); 6838 } else { 6839 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 6840 if (selectEl) { 6841 selectEl.value = optionVal; 6842 selectEl.dispatchEvent(new Event('change', { 6843 bubbles: true 6844 })); 6845 } 6846 } 6847 6848 this.changeOption(attrId, optionVal, false); 6849 } 6850 }; 6851 6852 if (data && typeof data === 'object') {
6853 Object.keys(data).forEach(key => applySelection(key, data[key])); 6854 } 6855 6856 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 6857 if (attribute && attribute.code) { 6858 let optionValue = urlQueryParams.get(attribute.code); 6859 if (optionValue) { 6860 let optionId = false; 6861 const attributes = Object.values(this.optionConfig.attributes || {}); 6862 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 6863 6864 let found = false; 6865 Object.values(targetAttr.options).map(option => { 6866 if (found === false && option.label === optionValue) { 6867 optionId = option.id; 6868 found = true; 6869 } 6870 }); 6871 6872 const attrId = String(targetAttr.id); 6873 let optionVal = String(optionValue); 6874 if (found) { 6875 optionVal = String(optionId); 6876 } 6877 6878 applySelection(attribute.code, optionVal); 6879 } 6880 } 6881 }); 6882 }, 100); 6883 }); 6884 } 6885 } 6886 }; 6887 // DWS - Configurable product preselect end 6888 6889 const result = Object.assign( 6890 configurableOptionsComponent, 6891 swatchOptionsComponent, { 6892 productId: '47280', 6893 productIndex: 0, 6894 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 6895 showSwatches: false, 6896 precalcOptions: {}, 6897 originalInit: configurableOptionsComponent.init, 6898 init() { 6899 try { 6900 this.precalcOptions = {}; 6901 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 6902 this.preselectQuerystringItems(); 6903 if (Array.isArray(attrSource)) { 6904 attrSource.forEach(attr => { 6905 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 6906 }); 6907 } else if (attrSource && typeof attrSource === 'object') { 6908 Object.keys(attrSource).forEach(id => { 6909 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 6910 }); 6911 } 6912 } catch (e) { 6913 console.error('Pre-calc error:', e); 6914 } 6915 6916 if (typeof this.originalInit === 'function') { 6917 this.originalInit(); 6918 } 6919 6920 try { 6921 this.initShowSwatchesIntersect(); 6922 } catch (e) { 6923 console.error('intersect error:', e); 6924 } 6925 }, 6926 6927 updateGallery() { 6928 if (!this.productIndex) return; 6929 6930 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 6931 method: 'GET', 6932 headers: { 6933 'Content-Type': 'application/json', 6934 'X-Requested-With': 'XMLHttpRequest' 6935 } 6936 }) 6937 .then(response => response.json()) 6938 .then(data => { 6939 if (data && data.medium) { 6940 window.dispatchEvent(new CustomEvent("update-gallery-47280", { 6941 detail: data.medium 6942 })); 6943 } 6944 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 6945 }, 6946 6947 6948 initShowSwatchesIntersect() { 6949 const observer = new IntersectionObserver(entries => { 6950 if (entries[0].isIntersecting) { 6951 this.showSwatches = true; 6952 observer.disconnect(); 6953 } 6954 }, { 6955 rootMargin: '512px' 6956 }); 6957 observer.observe(this.$el); 6958 }, 6959 getOptions(attrId) { 6960 return this.precalcOptions[attrId] || []; 6961 }, 6962 getOptionsByAttrId() { 6963 return this.getOptions(this.$el.dataset.attributeId); 6964 }, 6965 _getItemId() { 6966 if (this.item && this.item.id) return this.item.id; 6967 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 6968 }, 6969 getSwatchOptionHtmlId() { 6970 const itemId = this._getItemId(); 6971 return itemId ? this.$id(`attribute-option-47280-${itemId}`) : ''; 6972 }, 6973 getSwatchOptionHtmlIdGroup() { 6974 const itemId = this._getItemId(); 6975 return itemId ? [`attribute-option-47280-${itemId}`] : []; 6976 }, 6977 getAttributeSwatchData(attributeId) { 6978 const data = Object.assign({}, this.swatchConfig[attributeId]); 6979 if (data['additional_data']) { 6980 try { 6981 data['details'] = JSON.parse(data['additional_data']); 6982 } catch (e) { 6983 data['details'] = {}; 6984 } 6985 } 6986 return data; 6987 }, 6988 getSwatchType(attributeId, optionId) { 6989 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 6990 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 6991 } 6992 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 6993 this.swatchConfig[attributeId].details.swatch_input_type : 6994 "empty"; 6995 if (type === 'visual') { 6996 const config = this.swatchConfig[attributeId]; 6997 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 6998 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 6999 } 7000 // Fallback to first option type 7001 for (const oId in config) { 7002 if (config[oId] && typeof config[oId].type !== 'undefined') { 7003 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 7004 } 7005 } 7006 } 7007 return type; 7008 }, 7009 mapSwatchTypeNumberToTypeCode(type) { 7010 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 7011 }, 7012 isTextSwatch() { 7013 const itemId = this._getItemId(); 7014 if (!this.$el || !itemId) return false;
7015 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7016 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 7017 }, 7018 7019 getSwatchText() { 7020 const itemId = this._getItemId(); 7021 if (this.item) return this.item.label || ''; 7022 if (!this.$el || !itemId) return ''; 7023 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7024 const options = attrId ? this.getOptions(attrId) : []; 7025 const opt = options.find(o => o.id == itemId); 7026 return opt ? opt.label : ''; 7027 }, 7028 getSwatchBackgroundStyle() { 7029 const itemId = this._getItemId(); 7030 if (!this.$el || !itemId) return ''; 7031 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7032 if (!attrId) return ''; 7033 const type = this.getSwatchType(attrId, itemId); 7034 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 7035 this.swatchConfig[attrId][itemId] : 7036 null; 7037 if (!swatchData) return ''; 7038 if (type === "color") return 'background-color:' + swatchData.value; 7039 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 7040 return ''; 7041 }, 7042 swatchOptionClasses() { 7043 const itemId = this._getItemId(); 7044 if (!this.$el || !itemId) return {}; 7045 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7046 return { 7047 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 7048 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 7049 'w-6 h-6': !this.isTextSwatch() 7050 } 7051 }, 7052 7053 onFocusSwatchItem() { 7054 const itemId = this._getItemId(); 7055 if (itemId) this.focusedLabel = itemId; 7056 }, 7057 onChangeOption() { 7058 const itemId = this._getItemId(); 7059 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 7060 if (attrId && itemId) this.changeOption(attrId, itemId); 7061 }, 7062 changeOption(attributeId, value) { 7063 if (value === '') { 7064 return; 7065 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 7066 } else { 7067 this.selectedValues[attributeId] = value; 7068 } 7069 7070 this.findSimpleIndex(); 7071 this.findAllowedAttributeOptions(); 7072 this.updatePrices(); 7073 this.updateGallery(); 7074 7075 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 7076 this.findProductIdsForPartialSelection(this.selectedValues) : []; 7077 7078 const eventDetail = { 7079 productId: this.productId, 7080 optionId: attributeId, 7081 value: value, 7082 productIndex: this.productIndex || 0, 7083 selectedValues: this.selectedValues, 7084 candidates: candidates, 7085 sourceElement: this.$el 7086 }; 7087 7088 // Dispatch for Amasty 7089 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 7090 detail: eventDetail 7091 })); 7092 7093 // Dispatch for Hyva listing 7094 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 7095 detail: eventDetail 7096 })); 7097 }, 7098 7099 7100 clearOptionIfActive() { 7101 const itemId = this._getItemId(); 7102 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 7103 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 7104 this.changeOption(attrId, ''); 7105 7106 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 7107 if (!input && this.$el?.querySelector) { 7108 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 7109 } 7110 if (!input && this.$el?.closest) { 7111 const root = this.$el.closest('[data-product-id]') || this.$el; 7112 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 7113 } 7114 if (input) { 7115 input.checked = false;
7116 } 7117 } 7118 }, 7119 get optionIsEnabled() { 7120 const itemId = this._getItemId(); 7121 if (!this.$el || !itemId) return true; 7122 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7123 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 7124 return !!allowedOptions.find(opt => opt.id == itemId); 7125 }, 7126 get isSelected() { 7127 const itemId = this._getItemId(); 7128 if (!this.$el || !itemId) return false; 7129 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7130 return attrId ? (this.selectedValues[attrId] == itemId) : false; 7131 }, 7132 get isSwatchRequired() { 7133 if (!this.$el) return false; 7134 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7135 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 7136 }, 7137 focusedLabel: false, 7138 activeTooltipItem: false, 7139 tooltipPositionElement: false,
7140 setActiveTooltipItem() { 7141 const itemId = this._getItemId(); 7142 if (!this.$el || !itemId) return; 7143 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7144 this.activeTooltipItem = { 7145 attribute: attrId, 7146 item: itemId, 7147 index: 0 7148 }; 7149 this.tooltipPositionElement = this.$event ? this.$event.target : null; 7150 }, 7151 unsetActiveTooltipItem() { 7152 this.activeTooltipItem = false; 7153 } 7154 }, 7155 confProdPreSelect() 7156 ); 7157 7158 if (result.optionConfig && result.optionConfig.attributes) { 7159 const attributes = result.optionConfig.attributes; 7160 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 7161 let source = attributes; 7162 if (Array.isArray(attributes)) { 7163 source = {}; 7164 attributes.forEach(attr => { 7165 if (attr && attr.id) source[attr.id] = attr; 7166 }); 7167 } 7168 const values = Object.values(source); 7169 const wrapper = Object.assign(values, source); 7170 Object.defineProperty(wrapper, '__amxnotifWrapped', { 7171 value: true, 7172 enumerable: false 7173 }); 7174 result.optionConfig.attributes = wrapper; 7175 } 7176 } 7177 7178 return result; 7179 } 7180 7181 window.addEventListener('alpine:init', () => { 7182 Alpine.data('initConfigurableSwatchOptions_47280', initConfigurableSwatchOptions_47280); 7183 }, { 7184 once: true 7185 }); 7186 </script>
7186 7187 7188 <div x-data="initConfigurableSwatchOptions_47280" x-defer="intersect"> 7189 <div class="pagebuilder-home-hidden"> 7190 7191 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 7192 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 7193 <template x-if="showSwatches"> 7194 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47280-163" role="radiogroup" aria-label="Einband"> 7195 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 7196 <div :data-option-id="item.id" style="display: contents"> 7197 <div x-id="getSwatchOptionHtmlIdGroup"> 7198 <template x-if="optionIsEnabled"> 7199 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
7199self="unsetActiveTooltipItem"> 7200 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47280-163"> 7201 <div> 7202 <template x-if="isTextSwatch"> 7203 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 7204 </template> 7205 <template x-if="!optionIsActive(163, item.id)"> 7206 <div> 7207 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 7208 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 7209 </svg> 7210 </div> 7211 </template> 7212 </div> 7213 </label> 7214 </template> 7215</div> </div> 7216 </template> 7217 </div> 7218 </template> 7219 </div> 7220 </div> 7221 </div> 7222 </div> 7223 7224 <div class="meta py-4 pagebuilder-home-hidden"> 7225 <div x-data="initMarketingShortText_47280()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 7226 <!-- Marketing short text --> 7227 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 7228 </div> 7229 7230 <!-- Short description --> 7231 </div> 7232 7233 <!-- Series --> 7234 <div class="mb-1"> 7235 <span class="sr-only">Reihe:</span> 7236 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft"> 7237 <span>Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft</span> 7238 </a> 7239 71/1 </div> 7240 7241 7242 <div class="mb-1"> 7243 <span x-data="initEditionText_47280()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 7244 <!-- Marketing short text --> 7245 <span class="edition-text" x-html="editionText"></span> 2026, 168 Seiten. </span> 7246 </div> 7247 7248 </div> 7249 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 7250 7251 <div class="justify-end" x-data="initPriceBox()" @update-prices-47280.window="updatePrice($event.detail);"> 7252 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47280" data-price-box="product-id-47280"><span class="normal-price"> 7253 <span x-data x-id="['product\u002Dprice\u002D47280']" class="price-container price-final_price tax weee"> 7254 <span class="price-label">Ab</span> 7255 <span class="approx-price">ca. </span> 7256 <span :id="$id('product\u002Dprice\u002D47280')" data-price-amount="74.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">74,99 €</span></span> 7257 </span> 7258</span> 7259 7260 7261</div> </div> 7262 7263 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 7264 <div class="open-access-container open-access-container-47280 flex mt-4 ml-auto sm:mt-0 hidden"> 7265 <div class="text-gray-700"> 7266 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 7267 <a href="" target="_blank" class="open-access-external-link m-auto "> 7268 Kostenlos online lesen </a> 7269 </button> 7270 </div> 7271 </div> 7272 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Ästhetik des Computerspiels" aria-label="In den Warenkorb Ästhetik des Computerspiels" data-addto="cart"> 7273 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 7274 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
72740 014 0z"></path> 7275</svg> 7276 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 7277 In den Warenkorb </span> 7278 </button> 7279 7280<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47280)" aria-label="Zur Wunschliste hinzufügen Ästhetik des Computerspiels" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 7281 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 7282 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 7283</svg> 7284</button> 7285 </div> 7286 </div> 7287 </div> 7288
7288<script> 7289 function initMarketingShortText_47280() { 7290 var marketingShortTextConfig = {}; 7291 if (typeof window.initConfigurableSwatchOptions_47280 === "function") { 7292 var fullConfig = window.initConfigurableSwatchOptions_47280().optionConfig 7293 var marketingShortTextConfig = fullConfig.marketing_short_text; 7294 } 7295 return { 7296 marketingShortText: '', 7297 config: marketingShortTextConfig, 7298 productId: '47280', 7299 getMarketingShortText(detail) { 7300 this.marketingShortText = detail.productIndex ? 7301 this.config[detail.productIndex] : 7302 null; 7303 }, 7304 eventListeners: { 7305 ['@listing-configurable-selection-changed.window'](event) { 7306 if (this.productId == event.detail.productId) { 7307 this.getMarketingShortText(event.detail); 7308 } 7309 7310 } 7311 } 7312 } 7313 } 7314 7315 function initEditionText_47280() { 7316 var editionTextConfig = {}; 7317 if (typeof window.initConfigurableSwatchOptions_47280 === "function") { 7318 var fullConfig = window.initConfigurableSwatchOptions_47280().optionConfig 7319 var editionTextConfig = fullConfig.edition; 7320 } 7321 return { 7322 editionText: '', 7323 config: editionTextConfig, 7324 productId: '47280', 7325 getEditionText(detail) { 7326 this.editionText = detail.productIndex ? 7327 this.config[detail.productIndex] : 7328 null; 7329 }, 7330 eventListeners: { 7331 ['@listing-configurable-selection-changed.window'](event) { 7332 if (this.productId == event.detail.productId) { 7333 this.getEditionText(event.detail); 7334 } 7335 7336 } 7337 } 7338 } 7339 } 7340 </script>
7340 7341 </form> 7342 7343 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47264/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21161"> 7344 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47264"> 7345 <a href="https://meiner.de/fmv_de/hegel-studien-band-59-21161" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 7346 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47264.window="$el.src = $event.detail" alt="Hegel-Studien Band 59" title="Hegel-Studien Band 59" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350681_1.jpg" :style="{ 7347 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 7348 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 7349 }"> 7350 </a> 7351 <div class="product-info flex flex-col flex-grow "> 7352 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 7353 <div class="mb-2 text-sm text-gray-500 font-medium"> 7354 <a href="https://meiner.de/fmv_de/person/Brady-Bowman-3358/" class="mb-2"> 7355 Brady Bowman </a> 7356 <span>|</span> 7357 <a href="https://meiner.de/fmv_de/person/Dina-Emundts-4132/" class="mb-2"> 7358 Dina Emundts </a> 7359 <span>|</span> 7360 <a href="https://meiner.de/fmv_de/person/Johannes-Georg-Schulein-3356/" class="mb-2"> 7361 Johannes-Georg Schülein (Hrsg.) 7362 </a> 7363 </div> 7364 <a class="product-item-link" href="https://meiner.de/fmv_de/hegel-studien-band-59-21161"> 7365 Hegel-Studien Band 59 </a> 7366 </div> 7367 7368 <div x-data="initEditionText_47264()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 7369 <!-- Marketing short text --> 7370 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 7371 </div> 7372 </div> 7373 7374 <div class="py-1 grid mb-4 "> 7375 7376 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47264,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47264,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46911":"1","47260":"1"},"childProductsAlertStatus":{"46911":"0","47260":"0"},"indexMapping":{"163:15":46911,"163:8":47260},"availabilityMessages":{"46911":"Lieferbar innerhalb von 3-5 Tagen","47260":"Download sofort verf\u00fcgbar"},"openAccess":{"47264":{"status":0},"46911":{"status":0},"47260":{"status":0}}},"availabilityMessages":{"46911":"Lieferbar innerhalb von 3-5 Tagen","47260":"Download sofort verf\u00fcgbar"},"openAccess":{"47264":{"status":0},"46911":{"status":0},"47260":{"status":0}}}'> 7377 <template x-if="containerVisible"> 7378 <!-- Popup Trigger --> 7379 <div> 7380 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 7381 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
7382 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 7383 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 7384<title>bell</title></svg> 7385</span> 7386 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 7387 7388 <!-- Popup Modal --> 7389 <template x-if="showModal"> 7390 <template x-teleport=".page-wrapper"> 7391 <div x-cloak class="fixed inset-0 flex items-center justify-center 7392 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 7393 <div class="relative bg-white rounded-lg shadow-xl 7394 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 7395 <div class="p-6"> 7396 <!-- Subscription Form for Popup --> 7397 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 7398 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 7399 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 7400 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 7401 7402 <div class="flex flex-col gap-3"> 7403 <div class="flex-grow grow"> 7404 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 7405 shadow-xs focus:outline-none focus:outline-hidden 7406 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 7407 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 7408 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 7409 </div> 7410 <input type="hidden" name="product_id" :value="currentProductId"> 7411 <input type="hidden" name="type" value="email"> 7412 7413 7414 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 7415 7416 <div class="amxnotif_guest_action"> 7417 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 7418 rounded-md focus:outline-none 7419 focus:outline-hidden focus:ring-2 7420 focus:ring-offset-2 disabled:opacity-50 7421 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 7422 Benachrichtigen </button> 7423 </div> 7424 </div> 7425 7426 <div class="flex items-start pt-2"> 7427 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 7428 text-blue-600 border-gray-300 rounded-sm"> 7429 <label class="amxnotif-stock-gdrp-label cursor-pointer 7430 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 7431 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 7432 </div> 7433 </form> 7434 </div> 7435 7436 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 7437 hover:text-gray-600 transition-colors" aria-label="Schließen"> 7438 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 7439 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 7440<title>x</title></svg> 7441 </button> 7442 </div> 7443 </div> 7444 </template> 7445 </template> 7446 </div> 7447 </template> 7448 </div> 7449 7450<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47264" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47264,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46911":"1","47260":"1"},"childProductsAlertStatus":{"46911":"0","47260":"0"},"indexMapping":"{\u0022163:15\u0022:46911,\u0022163:8\u0022:47260}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47264,"availabilityMessages":{"46911":"Lieferbar innerhalb von 3-5 Tagen","47260":"Download sofort verf\u00fcgbar"},"openAccess":{"47264":{"status":0},"46911":{"status":0},"47260":{"status":0}}}'> 7451 7452 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
7453 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 7454 <span x-html="optionsLabelText"></span> 7455 </p> 7456</div> </div> 7457 7458
7458<script> 7459 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 7460 try { 7461 const attributes = (config && config.attributes) ? config.attributes : null; 7462 if (!attributes) return []; 7463 let attr = null; 7464 if (Array.isArray(attributes)) { 7465 for (let i = 0; i < attributes.length; i++) { 7466 const a = attributes[i]; 7467 if (a && a.id == attrId) { 7468 attr = a; 7469 break; 7470 } 7471 } 7472 } else { 7473 attr = attributes[attrId]; 7474 } 7475 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 7476 } catch (e) { 7477 return []; 7478 } 7479 }; 7480 7481 function initConfigurableSwatchOptions_47264() { 7482 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46911"]},{"id":"8","label":"PDF","products":["47260"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46911":{"baseOldPrice":{"amount":119.6261672243},"oldPrice":{"amount":128},"basePrice":{"amount":119.6261672243},"finalPrice":{"amount":128},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47260":{"baseOldPrice":{"amount":88.775699934579},"oldPrice":{"amount":94.99},"basePrice":{"amount":88.775699934579},"finalPrice":{"amount":94.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":88.775699934579},"oldPrice":{"amount":94.99},"basePrice":{"amount":79.823528411765},"finalPrice":{"amount":94.99},"isApproxPrice":null},"productId":"47264","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46911":{"163":"15"},"47260":{"163":"8"}},"salable":{"163":{"15":["46911"],"8":["47260"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46911":"005067","47260":"005068"},"output":{"46911":"Kartoniert","47260":"PDF"},"original_name":{"46911":"","47260":""},"openaccess_license_link":{"46911":"","47260":""},"openaccess_license_name":{"46911":"","47260":""},"openaccess_external_link":{"46911":"","47260":""},"gpsr_safety_info":{"46911":"","47260":""},"description":{"46911":"","47260":""},"doi":{"46911":"","47260":"10.28937\/978-3-7873-5068-1"},"isbn":{"46911":"978-3-7873-5067-4","47260":"978-3-7873-5068-1"},"marketing_short_text":{"46911":"","47260":""},"recension_text":{"46911":"","47260":""},"language":{"46911":"","47260":""},"cover":{"46911":"Kartoniert","47260":""},"pages":{"46911":"278 Seiten.","47260":""},"edition":{"46911":"","47260":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46911":"Nein","47260":"Nein"},"copyright_year":{"46911":"","47260":""},"vlb_tix_link":{"46911":"https:\/\/neu.vlbtix.de\/products\/9783787350674?type=gtin","47260":""},"defaultValues":{"163":"15"}}; 7483 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 7484 7485 if (typeof window.amxnotif_wrap_attributes === 'function') { 7486 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 7487 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 7488 } 7489 7490 const configurableOptionsComponent = initConfigurableOptions( 7491 '47264', 7492 config 7493 ); 7494 const swatchOptionsComponent = initSwatchOptions( 7495 swatchConfig 7496 ); 7497 7498 // DWS - Configurable product preselect start 7499 const confProdPreSelect = () => { 7500 return { 7501 preselectQuerystringItems() { 7502 var data = {"id":"46911","output":"15"}; 7503 const urlQueryParams = new URLSearchParams(window.location.search); 7504 7505 this.$nextTick(() => { 7506 setTimeout(() => { 7507 const rootEl = this.$root || this.$el; 7508 if (!rootEl) return; 7509 7510 const applySelection = (attrCode, attrValue) => { 7511 if (attrValue === undefined || attrValue === null || attrValue === '') return; 7512 7513 const attributes = Object.values(this.optionConfig.attributes || {}); 7514 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 7515 7516 if (targetAttr) { 7517 const attrId = String(targetAttr.id); 7518 const optionVal = String(attrValue); 7519 7520 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 7521 7522 if (inputEl) { 7523 inputEl.click(); 7524 inputEl.dispatchEvent(new Event('change', { 7525 bubbles: true 7526 })); 7527 } else { 7528 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 7529 if (selectEl) { 7530 selectEl.value = optionVal; 7531 selectEl.dispatchEvent(new Event('change', { 7532 bubbles: true 7533 })); 7534 } 7535 } 7536 7537 this.changeOption(attrId, optionVal, false); 7538 } 7539 }; 7540 7541 if (data && typeof data === 'object') {
7542 Object.keys(data).forEach(key => applySelection(key, data[key])); 7543 } 7544 7545 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 7546 if (attribute && attribute.code) { 7547 let optionValue = urlQueryParams.get(attribute.code); 7548 if (optionValue) { 7549 let optionId = false; 7550 const attributes = Object.values(this.optionConfig.attributes || {}); 7551 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 7552 7553 let found = false; 7554 Object.values(targetAttr.options).map(option => { 7555 if (found === false && option.label === optionValue) { 7556 optionId = option.id; 7557 found = true; 7558 } 7559 }); 7560 7561 const attrId = String(targetAttr.id); 7562 let optionVal = String(optionValue); 7563 if (found) { 7564 optionVal = String(optionId); 7565 } 7566 7567 applySelection(attribute.code, optionVal); 7568 } 7569 } 7570 }); 7571 }, 100); 7572 }); 7573 } 7574 } 7575 }; 7576 // DWS - Configurable product preselect end 7577 7578 const result = Object.assign( 7579 configurableOptionsComponent, 7580 swatchOptionsComponent, { 7581 productId: '47264', 7582 productIndex: 0, 7583 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 7584 showSwatches: false, 7585 precalcOptions: {}, 7586 originalInit: configurableOptionsComponent.init, 7587 init() { 7588 try { 7589 this.precalcOptions = {}; 7590 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 7591 this.preselectQuerystringItems(); 7592 if (Array.isArray(attrSource)) { 7593 attrSource.forEach(attr => { 7594 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 7595 }); 7596 } else if (attrSource && typeof attrSource === 'object') { 7597 Object.keys(attrSource).forEach(id => { 7598 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 7599 }); 7600 } 7601 } catch (e) { 7602 console.error('Pre-calc error:', e); 7603 } 7604 7605 if (typeof this.originalInit === 'function') { 7606 this.originalInit(); 7607 } 7608 7609 try { 7610 this.initShowSwatchesIntersect(); 7611 } catch (e) { 7612 console.error('intersect error:', e); 7613 } 7614 }, 7615 7616 updateGallery() { 7617 if (!this.productIndex) return; 7618 7619 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 7620 method: 'GET', 7621 headers: { 7622 'Content-Type': 'application/json', 7623 'X-Requested-With': 'XMLHttpRequest' 7624 } 7625 }) 7626 .then(response => response.json()) 7627 .then(data => { 7628 if (data && data.medium) { 7629 window.dispatchEvent(new CustomEvent("update-gallery-47264", { 7630 detail: data.medium 7631 })); 7632 } 7633 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 7634 }, 7635 7636 7637 initShowSwatchesIntersect() { 7638 const observer = new IntersectionObserver(entries => { 7639 if (entries[0].isIntersecting) { 7640 this.showSwatches = true; 7641 observer.disconnect(); 7642 } 7643 }, { 7644 rootMargin: '512px' 7645 }); 7646 observer.observe(this.$el); 7647 }, 7648 getOptions(attrId) { 7649 return this.precalcOptions[attrId] || []; 7650 }, 7651 getOptionsByAttrId() { 7652 return this.getOptions(this.$el.dataset.attributeId); 7653 }, 7654 _getItemId() { 7655 if (this.item && this.item.id) return this.item.id; 7656 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 7657 }, 7658 getSwatchOptionHtmlId() { 7659 const itemId = this._getItemId(); 7660 return itemId ? this.$id(`attribute-option-47264-${itemId}`) : ''; 7661 }, 7662 getSwatchOptionHtmlIdGroup() { 7663 const itemId = this._getItemId(); 7664 return itemId ? [`attribute-option-47264-${itemId}`] : []; 7665 }, 7666 getAttributeSwatchData(attributeId) { 7667 const data = Object.assign({}, this.swatchConfig[attributeId]); 7668 if (data['additional_data']) { 7669 try { 7670 data['details'] = JSON.parse(data['additional_data']); 7671 } catch (e) { 7672 data['details'] = {}; 7673 } 7674 } 7675 return data; 7676 }, 7677 getSwatchType(attributeId, optionId) { 7678 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 7679 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 7680 } 7681 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 7682 this.swatchConfig[attributeId].details.swatch_input_type : 7683 "empty"; 7684 if (type === 'visual') { 7685 const config = this.swatchConfig[attributeId]; 7686 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 7687 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 7688 } 7689 // Fallback to first option type 7690 for (const oId in config) { 7691 if (config[oId] && typeof config[oId].type !== 'undefined') { 7692 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 7693 } 7694 } 7695 } 7696 return type; 7697 }, 7698 mapSwatchTypeNumberToTypeCode(type) { 7699 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 7700 }, 7701 isTextSwatch() { 7702 const itemId = this._getItemId(); 7703 if (!this.$el || !itemId) return false;
7704 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7705 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 7706 }, 7707 7708 getSwatchText() { 7709 const itemId = this._getItemId(); 7710 if (this.item) return this.item.label || ''; 7711 if (!this.$el || !itemId) return ''; 7712 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7713 const options = attrId ? this.getOptions(attrId) : []; 7714 const opt = options.find(o => o.id == itemId); 7715 return opt ? opt.label : ''; 7716 }, 7717 getSwatchBackgroundStyle() { 7718 const itemId = this._getItemId(); 7719 if (!this.$el || !itemId) return ''; 7720 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7721 if (!attrId) return ''; 7722 const type = this.getSwatchType(attrId, itemId); 7723 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 7724 this.swatchConfig[attrId][itemId] : 7725 null; 7726 if (!swatchData) return ''; 7727 if (type === "color") return 'background-color:' + swatchData.value; 7728 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 7729 return ''; 7730 }, 7731 swatchOptionClasses() { 7732 const itemId = this._getItemId(); 7733 if (!this.$el || !itemId) return {}; 7734 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7735 return { 7736 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 7737 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 7738 'w-6 h-6': !this.isTextSwatch() 7739 } 7740 }, 7741 7742 onFocusSwatchItem() { 7743 const itemId = this._getItemId(); 7744 if (itemId) this.focusedLabel = itemId; 7745 }, 7746 onChangeOption() { 7747 const itemId = this._getItemId(); 7748 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 7749 if (attrId && itemId) this.changeOption(attrId, itemId); 7750 }, 7751 changeOption(attributeId, value) { 7752 if (value === '') { 7753 return; 7754 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 7755 } else { 7756 this.selectedValues[attributeId] = value; 7757 } 7758 7759 this.findSimpleIndex(); 7760 this.findAllowedAttributeOptions(); 7761 this.updatePrices(); 7762 this.updateGallery(); 7763 7764 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 7765 this.findProductIdsForPartialSelection(this.selectedValues) : []; 7766 7767 const eventDetail = { 7768 productId: this.productId, 7769 optionId: attributeId, 7770 value: value, 7771 productIndex: this.productIndex || 0, 7772 selectedValues: this.selectedValues, 7773 candidates: candidates, 7774 sourceElement: this.$el 7775 }; 7776 7777 // Dispatch for Amasty 7778 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 7779 detail: eventDetail 7780 })); 7781 7782 // Dispatch for Hyva listing 7783 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 7784 detail: eventDetail 7785 })); 7786 }, 7787 7788 7789 clearOptionIfActive() { 7790 const itemId = this._getItemId(); 7791 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 7792 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 7793 this.changeOption(attrId, ''); 7794 7795 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 7796 if (!input && this.$el?.querySelector) { 7797 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 7798 } 7799 if (!input && this.$el?.closest) { 7800 const root = this.$el.closest('[data-product-id]') || this.$el; 7801 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 7802 } 7803 if (input) { 7804 input.checked = false;
7805 } 7806 } 7807 }, 7808 get optionIsEnabled() { 7809 const itemId = this._getItemId(); 7810 if (!this.$el || !itemId) return true; 7811 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7812 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 7813 return !!allowedOptions.find(opt => opt.id == itemId); 7814 }, 7815 get isSelected() { 7816 const itemId = this._getItemId(); 7817 if (!this.$el || !itemId) return false; 7818 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7819 return attrId ? (this.selectedValues[attrId] == itemId) : false; 7820 }, 7821 get isSwatchRequired() { 7822 if (!this.$el) return false; 7823 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7824 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 7825 }, 7826 focusedLabel: false, 7827 activeTooltipItem: false, 7828 tooltipPositionElement: false,
7829 setActiveTooltipItem() { 7830 const itemId = this._getItemId(); 7831 if (!this.$el || !itemId) return; 7832 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 7833 this.activeTooltipItem = { 7834 attribute: attrId, 7835 item: itemId, 7836 index: 0 7837 }; 7838 this.tooltipPositionElement = this.$event ? this.$event.target : null; 7839 }, 7840 unsetActiveTooltipItem() { 7841 this.activeTooltipItem = false; 7842 } 7843 }, 7844 confProdPreSelect() 7845 ); 7846 7847 if (result.optionConfig && result.optionConfig.attributes) { 7848 const attributes = result.optionConfig.attributes; 7849 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 7850 let source = attributes; 7851 if (Array.isArray(attributes)) { 7852 source = {}; 7853 attributes.forEach(attr => { 7854 if (attr && attr.id) source[attr.id] = attr; 7855 }); 7856 } 7857 const values = Object.values(source); 7858 const wrapper = Object.assign(values, source); 7859 Object.defineProperty(wrapper, '__amxnotifWrapped', { 7860 value: true, 7861 enumerable: false 7862 }); 7863 result.optionConfig.attributes = wrapper; 7864 } 7865 } 7866 7867 return result; 7868 } 7869 7870 window.addEventListener('alpine:init', () => { 7871 Alpine.data('initConfigurableSwatchOptions_47264', initConfigurableSwatchOptions_47264); 7872 }, { 7873 once: true 7874 }); 7875 </script>
7875 7876 7877 <div x-data="initConfigurableSwatchOptions_47264" x-defer="intersect"> 7878 <div class="pagebuilder-home-hidden"> 7879 7880 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 7881 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 7882 <template x-if="showSwatches"> 7883 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47264-163" role="radiogroup" aria-label="Einband"> 7884 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 7885 <div :data-option-id="item.id" style="display: contents"> 7886 <div x-id="getSwatchOptionHtmlIdGroup"> 7887 <template x-if="optionIsEnabled"> 7888 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
7888self="unsetActiveTooltipItem"> 7889 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47264-163"> 7890 <div> 7891 <template x-if="isTextSwatch"> 7892 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 7893 </template> 7894 <template x-if="!optionIsActive(163, item.id)"> 7895 <div> 7896 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 7897 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 7898 </svg> 7899 </div> 7900 </template> 7901 </div> 7902 </label> 7903 </template> 7904</div> </div> 7905 </template> 7906 </div> 7907 </template> 7908 </div> 7909 </div> 7910 </div> 7911 </div> 7912 7913 <div class="meta py-4 pagebuilder-home-hidden"> 7914 <div x-data="initMarketingShortText_47264()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 7915 <!-- Marketing short text --> 7916 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 7917 </div> 7918 7919 <!-- Short description --> 7920 </div> 7921 7922 <!-- Series --> 7923 7924 7925 <div class="mb-1"> 7926 <span x-data="initEditionText_47264()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 7927 <!-- Marketing short text --> 7928 <span class="edition-text" x-html="editionText"></span> 2026, 278 Seiten. </span> 7929 </div> 7930 7931 </div> 7932 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 7933 7934 <div class="justify-end" x-data="initPriceBox()" @update-prices-47264.window="updatePrice($event.detail);"> 7935 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47264" data-price-box="product-id-47264"><span class="normal-price"> 7936 <span x-data x-id="['product\u002Dprice\u002D47264']" class="price-container price-final_price tax weee"> 7937 <span class="price-label">Ab</span> 7938 <span class="approx-price">ca. </span> 7939 <span :id="$id('product\u002Dprice\u002D47264')" data-price-amount="94.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">94,99 €</span></span> 7940 </span> 7941</span> 7942 7943 7944</div> </div> 7945 7946 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 7947 <div class="open-access-container open-access-container-47264 flex mt-4 ml-auto sm:mt-0 hidden"> 7948 <div class="text-gray-700"> 7949 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 7950 <a href="" target="_blank" class="open-access-external-link m-auto "> 7951 Kostenlos online lesen </a> 7952 </button> 7953 </div> 7954 </div> 7955 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Hegel-Studien Band 59" aria-label="In den Warenkorb Hegel-Studien Band 59" data-addto="cart"> 7956 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 7957 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
79570 014 0z"></path> 7958</svg> 7959 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 7960 In den Warenkorb </span> 7961 </button> 7962 7963<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47264)" aria-label="Zur Wunschliste hinzufügen Hegel-Studien Band 59" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 7964 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 7965 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 7966</svg> 7967</button> 7968 </div> 7969 </div> 7970 </div> 7971
7971<script> 7972 function initMarketingShortText_47264() { 7973 var marketingShortTextConfig = {}; 7974 if (typeof window.initConfigurableSwatchOptions_47264 === "function") { 7975 var fullConfig = window.initConfigurableSwatchOptions_47264().optionConfig 7976 var marketingShortTextConfig = fullConfig.marketing_short_text; 7977 } 7978 return { 7979 marketingShortText: '', 7980 config: marketingShortTextConfig, 7981 productId: '47264', 7982 getMarketingShortText(detail) { 7983 this.marketingShortText = detail.productIndex ? 7984 this.config[detail.productIndex] : 7985 null; 7986 }, 7987 eventListeners: { 7988 ['@listing-configurable-selection-changed.window'](event) { 7989 if (this.productId == event.detail.productId) { 7990 this.getMarketingShortText(event.detail); 7991 } 7992 7993 } 7994 } 7995 } 7996 } 7997 7998 function initEditionText_47264() { 7999 var editionTextConfig = {}; 8000 if (typeof window.initConfigurableSwatchOptions_47264 === "function") { 8001 var fullConfig = window.initConfigurableSwatchOptions_47264().optionConfig 8002 var editionTextConfig = fullConfig.edition; 8003 } 8004 return { 8005 editionText: '', 8006 config: editionTextConfig, 8007 productId: '47264', 8008 getEditionText(detail) { 8009 this.editionText = detail.productIndex ? 8010 this.config[detail.productIndex] : 8011 null; 8012 }, 8013 eventListeners: { 8014 ['@listing-configurable-selection-changed.window'](event) { 8015 if (this.productId == event.detail.productId) { 8016 this.getEditionText(event.detail); 8017 } 8018 8019 } 8020 } 8021 } 8022 } 8023 </script>
8023 8024 </form> 8025 8026 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47209/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21935"> 8027 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47209"> 8028 <a href="https://meiner.de/fmv_de/mythos-21935" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 8029 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47209.window="$el.src = $event.detail" alt="Mythos" title="Mythos" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351732_1.jpg" :style="{ 8030 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 8031 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 8032 }"> 8033 </a> 8034 <div class="product-info flex flex-col flex-grow "> 8035 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 8036 <div class="mb-2 text-sm text-gray-500 font-medium"> 8037 <a href="https://meiner.de/fmv_de/person/Ralf-Becker-3266/" class="mb-2"> 8038 Ralf Becker </a> 8039 <span>|</span> 8040 <a href="https://meiner.de/fmv_de/person/Christian-Bermes-3208/" class="mb-2"> 8041 Christian Bermes </a> 8042 <span>|</span> 8043 <a href="https://meiner.de/fmv_de/person/Annika-Schlitte-8726/" class="mb-2"> 8044 Annika Schlitte (Hrsg.) 8045 </a> 8046 </div> 8047 <a class="product-item-link" href="https://meiner.de/fmv_de/mythos-21935"> 8048 Mythos </a> 8049 </div> 8050 8051 <div x-data="initEditionText_47209()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 8052 <!-- Marketing short text --> 8053 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 8054 </div> 8055 </div> 8056 8057 <div class="py-1 grid mb-4 "> 8058 8059 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47209,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47209,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46908":"1","47250":"1"},"childProductsAlertStatus":{"46908":"0","47250":"0"},"indexMapping":{"163:15":46908,"163:8":47250},"availabilityMessages":{"46908":"Lieferbar innerhalb von 3-5 Tagen","47250":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47209":{"status":0}
8059,"46908":{"status":0},"47250":{"status":0}}},"availabilityMessages":{"46908":"Lieferbar innerhalb von 3-5 Tagen","47250":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47209":{"status":0},"46908":{"status":0},"47250":{"status":0}}}'> 8060 <template x-if="containerVisible"> 8061 <!-- Popup Trigger --> 8062 <div> 8063 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 8064 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 8065 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 8066 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 8067<title>bell</title></svg> 8068</span> 8069 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 8070 8071 <!-- Popup Modal --> 8072 <template x-if="showModal"> 8073 <template x-teleport=".page-wrapper"> 8074 <div x-cloak class="fixed inset-0 flex items-center justify-center 8075 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 8076 <div class="relative bg-white rounded-lg shadow-xl 8077 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 8078 <div class="p-6"> 8079 <!-- Subscription Form for Popup --> 8080 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 8081 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 8082 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 8083 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 8084 8085 <div class="flex flex-col gap-3"> 8086 <div class="flex-grow grow"> 8087 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 8088 shadow-xs focus:outline-none focus:outline-hidden 8089 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 8090 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 8091 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 8092 </div> 8093 <input type="hidden" name="product_id" :value="currentProductId"> 8094 <input type="hidden" name="type" value="email"> 8095 8096 8097 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 8098 8099 <div class="amxnotif_guest_action"> 8100 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 8101 rounded-md focus:outline-none 8102 focus:outline-hidden focu
8102s:ring-2 8103 focus:ring-offset-2 disabled:opacity-50 8104 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 8105 Benachrichtigen </button> 8106 </div> 8107 </div> 8108 8109 <div class="flex items-start pt-2"> 8110 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 8111 text-blue-600 border-gray-300 rounded-sm"> 8112 <label class="amxnotif-stock-gdrp-label cursor-pointer 8113 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 8114 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 8115 </div> 8116 </form> 8117 </div> 8118 8119 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 8120 hover:text-gray-600 transition-colors" aria-label="Schließen"> 8121 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 8122 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 8123<title>x</title></svg> 8124 </button> 8125 </div> 8126 </div> 8127 </template> 8128 </template> 8129 </div> 8130 </template> 8131 </div> 8132 8133<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47209" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47209,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46908":"1","47250":"1"},"childProductsAlertStatus":{"46908":"0","47250":"0"},"indexMapping":"{\u0022163:15\u0022:46908,\u0022163:8\u0022:47250}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47209,"availabilityMessages":{"46908":"Lieferbar innerhalb von 3-5 Tagen","47250":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47209":{"status":0},"46908":{"status":0},"47250":{"status":0}}}'> 8134 8135 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 8136 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 8137 <span x-html="optionsLabelText"></span> 8138 </p> 8139</div> </div> 8140 8141
8141<script> 8142 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 8143 try { 8144 const attributes = (config && config.attributes) ? config.attributes : null; 8145 if (!attributes) return []; 8146 let attr = null; 8147 if (Array.isArray(attributes)) { 8148 for (let i = 0; i < attributes.length; i++) { 8149 const a = attributes[i]; 8150 if (a && a.id == attrId) { 8151 attr = a; 8152 break; 8153 } 8154 } 8155 } else { 8156 attr = attributes[attrId]; 8157 } 8158 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 8159 } catch (e) { 8160 return []; 8161 } 8162 }; 8163 8164 function initConfigurableSwatchOptions_47209() { 8165 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46908"]},{"id":"8","label":"PDF","products":["47250"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46908":{"baseOldPrice":{"amount":67.289718626168},"oldPrice":{"amount":72},"basePrice":{"amount":67.289718626168},"finalPrice":{"amount":72},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47250":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":46.719625168224},"finalPrice":{"amount":49.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":42.008402361345},"finalPrice":{"amount":49.99},"isApproxPrice":null},"productId":"47209","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46908":{"163":"15"},"47250":{"163":"8"}},"salable":{"163":{"15":["46908"],"8":["47250"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46908":"000845-2026-1","47250":"eZKPh-2026-1"},"output":{"46908":"Kartoniert","47250":"PDF"},"original_name":{"46908":"","47250":""},"openaccess_license_link":{"46908":"","47250":""},"openaccess_license_name":{"46908":"","47250":""},"openaccess_external_link":{"46908":"","47250":""},"gpsr_safety_info":{"46908":"","47250":""},"description":{"46908":"Ernst Cassirer erkannte, dass der Mythos keine veraltete Lebensweise ist, sondern eine Form der Sinnstiftung und Weltgestaltung, die unser gesellschaftliches und politisches Leben noch heute ma\u00dfgeblich mitpr\u00e4gt. Mythen bieten zwar Orientierungsm\u00f6glichkeiten, bergen aber auch die Gefahr, in Ideologien umzuschlagen und somit individuelle sowie gesellschaftliche Selbstbestimmung zu gef\u00e4hrden. <br\/><br\/>Der Band reflektiert diese Ambivalenz des Mythos in aktuellen politischen und gesellschaftlichen Kontexten. Die Beitr\u00e4ge verbinden philosophische, anthropologische, rechtspolitische und \u00e4sthetische Perspektiven und zeigen, wie Mythen politische Orientierung, Meinungsbildung und Vorstellungen von Gerechtigkeit beeinflussen, zugleich aber nicht immun gegen Verblendung sind. ","47250":"Ernst Cassirer erkannte, dass der Mythos keine veraltete Lebensweise ist, sondern eine Form der Sinnstiftung und Weltgestaltung, die unser gesellschaftliches und politisches Leben noch heute ma\u00dfgeblich mitpr\u00e4gt. Mythen bieten zwar Orientierungsm\u00f6glichkeiten, bergen aber auch die Gefahr, in Ideologien umzuschlagen und somit individuelle sowie gesellschaftliche Selbstbestimmung zu gef\u00e4hrden. <br\/><br\/>Der Band reflektiert diese Ambivalenz des Mythos in aktuellen politischen und gesellschaftlichen Kontexten. Die Beitr\u00e4ge verbinden philosophische, anthropologische, rechtspolitische und \u00e4sthetische Perspektiven und zeigen, wie Mythen politische Orientierung, Meinungsbildung und Vorstellungen von Gerechtigkeit beeinflussen, zugleich aber nicht immun gegen Verblendung sind. "},"doi":{"46908":"","47250":"10.28937\/978-3-7873-5173-2"},"isbn":{"46908":"978-3-7873-5172-5","47250":"978-3-7873-5173-2"},"marketing_short_text":{"46908":"","47250":""},"recension_text":{"46908":"","47250":""},"language":{"46908":"","47250":""},"cover":{"46908":"Kartoniert","47250":""},"pages":{"46908":"184 Seiten.","47250":"184"},"edition":{"46908":"","47250":"Unver\u00e4ndertes eJournal der 1. Auflage von 2026"},"pod":{"46908":"Nein","47250":"Nein"},"copyright_year":{"46908":"","47250":""},"vlb_tix_link":{"46908":"https:\/\/neu.vlbtix.de\/products\/9783787351725?type=gtin","47250":""},"defaultValues":{"163":"15"}}; 8166 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 8167 8168 if (typeof window.amxnotif_wrap_attributes === 'function') { 8169 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 8170 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 8171 } 8172 8173 const configurableOptionsComponent = initConfigurableOptions( 8174 '47209', 8175 config 8176 ); 8177 const swatchOptionsComponent = initSwatchOptions( 8178 swatchConfig 8179 ); 8180 8181 // DWS - Configurable product preselect start 8182 const confProdPreSelect = () => { 8183 return { 8184 preselectQuerystringItems() { 8185 var data = {"id":"46908","output":"15"}; 8186 const urlQueryParams = new URLSearchParams(window.location.search); 8187 8188 this.$nextTick(() => { 8189 setTimeout(() => { 8190 const rootEl = this.$root || this.$el; 8191 if (!rootEl) return; 8192 8193 const applySelection = (attrCode, attrValue) => { 8194 if (attrValue === undefined || attrValue === null || attrValue === '') return; 8195 8196 const attributes = Object.values(this.optionConfig.attributes || {}); 8197 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 8198 8199 if (targetAttr) { 8200 const attrId = String(targetAttr.id); 8201 const optionVal = String(attrValue); 8202 8203 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 8204 8205 if (inputEl) { 8206 inputEl.click(); 8207 inputEl.dispatchEvent(new Event('change', { 8208 bubbles: true 8209 })); 8210 } else { 8211 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 8212 if (selectEl) { 8213 selectEl.value = optionVal; 8214 selectEl.dispatchEvent(new Event('change', { 8215 bubbles: true 8216 })); 8217 } 8218 } 8219 8220 this.changeOption(attrId, optionVal, false); 8221 } 8222 }; 8223 8224 if (data && typeof data === 'object') {
8225 Object.keys(data).forEach(key => applySelection(key, data[key])); 8226 } 8227 8228 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 8229 if (attribute && attribute.code) { 8230 let optionValue = urlQueryParams.get(attribute.code); 8231 if (optionValue) { 8232 let optionId = false; 8233 const attributes = Object.values(this.optionConfig.attributes || {}); 8234 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 8235 8236 let found = false; 8237 Object.values(targetAttr.options).map(option => { 8238 if (found === false && option.label === optionValue) { 8239 optionId = option.id; 8240 found = true; 8241 } 8242 }); 8243 8244 const attrId = String(targetAttr.id); 8245 let optionVal = String(optionValue); 8246 if (found) { 8247 optionVal = String(optionId); 8248 } 8249 8250 applySelection(attribute.code, optionVal); 8251 } 8252 } 8253 }); 8254 }, 100); 8255 }); 8256 } 8257 } 8258 }; 8259 // DWS - Configurable product preselect end 8260 8261 const result = Object.assign( 8262 configurableOptionsComponent, 8263 swatchOptionsComponent, { 8264 productId: '47209', 8265 productIndex: 0, 8266 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 8267 showSwatches: false, 8268 precalcOptions: {}, 8269 originalInit: configurableOptionsComponent.init, 8270 init() { 8271 try { 8272 this.precalcOptions = {}; 8273 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 8274 this.preselectQuerystringItems(); 8275 if (Array.isArray(attrSource)) { 8276 attrSource.forEach(attr => { 8277 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 8278 }); 8279 } else if (attrSource && typeof attrSource === 'object') { 8280 Object.keys(attrSource).forEach(id => { 8281 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 8282 }); 8283 } 8284 } catch (e) { 8285 console.error('Pre-calc error:', e); 8286 } 8287 8288 if (typeof this.originalInit === 'function') { 8289 this.originalInit(); 8290 } 8291 8292 try { 8293 this.initShowSwatchesIntersect(); 8294 } catch (e) { 8295 console.error('intersect error:', e); 8296 } 8297 }, 8298 8299 updateGallery() { 8300 if (!this.productIndex) return; 8301 8302 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 8303 method: 'GET', 8304 headers: { 8305 'Content-Type': 'application/json', 8306 'X-Requested-With': 'XMLHttpRequest' 8307 } 8308 }) 8309 .then(response => response.json()) 8310 .then(data => { 8311 if (data && data.medium) { 8312 window.dispatchEvent(new CustomEvent("update-gallery-47209", { 8313 detail: data.medium 8314 })); 8315 } 8316 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 8317 }, 8318 8319 8320 initShowSwatchesIntersect() { 8321 const observer = new IntersectionObserver(entries => { 8322 if (entries[0].isIntersecting) { 8323 this.showSwatches = true; 8324 observer.disconnect(); 8325 } 8326 }, { 8327 rootMargin: '512px' 8328 }); 8329 observer.observe(this.$el); 8330 }, 8331 getOptions(attrId) { 8332 return this.precalcOptions[attrId] || []; 8333 }, 8334 getOptionsByAttrId() { 8335 return this.getOptions(this.$el.dataset.attributeId); 8336 }, 8337 _getItemId() { 8338 if (this.item && this.item.id) return this.item.id; 8339 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 8340 }, 8341 getSwatchOptionHtmlId() { 8342 const itemId = this._getItemId(); 8343 return itemId ? this.$id(`attribute-option-47209-${itemId}`) : ''; 8344 }, 8345 getSwatchOptionHtmlIdGroup() { 8346 const itemId = this._getItemId(); 8347 return itemId ? [`attribute-option-47209-${itemId}`] : []; 8348 }, 8349 getAttributeSwatchData(attributeId) { 8350 const data = Object.assign({}, this.swatchConfig[attributeId]); 8351 if (data['additional_data']) { 8352 try { 8353 data['details'] = JSON.parse(data['additional_data']); 8354 } catch (e) { 8355 data['details'] = {}; 8356 } 8357 } 8358 return data; 8359 }, 8360 getSwatchType(attributeId, optionId) { 8361 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 8362 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 8363 } 8364 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 8365 this.swatchConfig[attributeId].details.swatch_input_type : 8366 "empty"; 8367 if (type === 'visual') { 8368 const config = this.swatchConfig[attributeId]; 8369 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 8370 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 8371 } 8372 // Fallback to first option type 8373 for (const oId in config) { 8374 if (config[oId] && typeof config[oId].type !== 'undefined') { 8375 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 8376 } 8377 } 8378 } 8379 return type; 8380 }, 8381 mapSwatchTypeNumberToTypeCode(type) { 8382 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 8383 }, 8384 isTextSwatch() { 8385 const itemId = this._getItemId(); 8386 if (!this.$el || !itemId) return false;
8387 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8388 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 8389 }, 8390 8391 getSwatchText() { 8392 const itemId = this._getItemId(); 8393 if (this.item) return this.item.label || ''; 8394 if (!this.$el || !itemId) return ''; 8395 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8396 const options = attrId ? this.getOptions(attrId) : []; 8397 const opt = options.find(o => o.id == itemId); 8398 return opt ? opt.label : ''; 8399 }, 8400 getSwatchBackgroundStyle() { 8401 const itemId = this._getItemId(); 8402 if (!this.$el || !itemId) return ''; 8403 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8404 if (!attrId) return ''; 8405 const type = this.getSwatchType(attrId, itemId); 8406 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 8407 this.swatchConfig[attrId][itemId] : 8408 null; 8409 if (!swatchData) return ''; 8410 if (type === "color") return 'background-color:' + swatchData.value; 8411 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 8412 return ''; 8413 }, 8414 swatchOptionClasses() { 8415 const itemId = this._getItemId(); 8416 if (!this.$el || !itemId) return {}; 8417 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8418 return { 8419 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 8420 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 8421 'w-6 h-6': !this.isTextSwatch() 8422 } 8423 }, 8424 8425 onFocusSwatchItem() { 8426 const itemId = this._getItemId(); 8427 if (itemId) this.focusedLabel = itemId; 8428 }, 8429 onChangeOption() { 8430 const itemId = this._getItemId(); 8431 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 8432 if (attrId && itemId) this.changeOption(attrId, itemId); 8433 }, 8434 changeOption(attributeId, value) { 8435 if (value === '') { 8436 return; 8437 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 8438 } else { 8439 this.selectedValues[attributeId] = value; 8440 } 8441 8442 this.findSimpleIndex(); 8443 this.findAllowedAttributeOptions(); 8444 this.updatePrices(); 8445 this.updateGallery(); 8446 8447 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 8448 this.findProductIdsForPartialSelection(this.selectedValues) : []; 8449 8450 const eventDetail = { 8451 productId: this.productId, 8452 optionId: attributeId, 8453 value: value, 8454 productIndex: this.productIndex || 0, 8455 selectedValues: this.selectedValues, 8456 candidates: candidates, 8457 sourceElement: this.$el 8458 }; 8459 8460 // Dispatch for Amasty 8461 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 8462 detail: eventDetail 8463 })); 8464 8465 // Dispatch for Hyva listing 8466 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 8467 detail: eventDetail 8468 })); 8469 }, 8470 8471 8472 clearOptionIfActive() { 8473 const itemId = this._getItemId(); 8474 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 8475 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 8476 this.changeOption(attrId, ''); 8477 8478 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 8479 if (!input && this.$el?.querySelector) { 8480 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 8481 } 8482 if (!input && this.$el?.closest) { 8483 const root = this.$el.closest('[data-product-id]') || this.$el; 8484 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 8485 } 8486 if (input) { 8487 input.checked = false;
8488 } 8489 } 8490 }, 8491 get optionIsEnabled() { 8492 const itemId = this._getItemId(); 8493 if (!this.$el || !itemId) return true; 8494 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8495 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 8496 return !!allowedOptions.find(opt => opt.id == itemId); 8497 }, 8498 get isSelected() { 8499 const itemId = this._getItemId(); 8500 if (!this.$el || !itemId) return false; 8501 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8502 return attrId ? (this.selectedValues[attrId] == itemId) : false; 8503 }, 8504 get isSwatchRequired() { 8505 if (!this.$el) return false; 8506 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8507 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 8508 }, 8509 focusedLabel: false, 8510 activeTooltipItem: false, 8511 tooltipPositionElement: false,
8512 setActiveTooltipItem() { 8513 const itemId = this._getItemId(); 8514 if (!this.$el || !itemId) return; 8515 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 8516 this.activeTooltipItem = { 8517 attribute: attrId, 8518 item: itemId, 8519 index: 0 8520 }; 8521 this.tooltipPositionElement = this.$event ? this.$event.target : null; 8522 }, 8523 unsetActiveTooltipItem() { 8524 this.activeTooltipItem = false; 8525 } 8526 }, 8527 confProdPreSelect() 8528 ); 8529 8530 if (result.optionConfig && result.optionConfig.attributes) { 8531 const attributes = result.optionConfig.attributes; 8532 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 8533 let source = attributes; 8534 if (Array.isArray(attributes)) { 8535 source = {}; 8536 attributes.forEach(attr => { 8537 if (attr && attr.id) source[attr.id] = attr; 8538 }); 8539 } 8540 const values = Object.values(source); 8541 const wrapper = Object.assign(values, source); 8542 Object.defineProperty(wrapper, '__amxnotifWrapped', { 8543 value: true, 8544 enumerable: false 8545 }); 8546 result.optionConfig.attributes = wrapper; 8547 } 8548 } 8549 8550 return result; 8551 } 8552 8553 window.addEventListener('alpine:init', () => { 8554 Alpine.data('initConfigurableSwatchOptions_47209', initConfigurableSwatchOptions_47209); 8555 }, { 8556 once: true 8557 }); 8558 </script>
8558 8559 8560 <div x-data="initConfigurableSwatchOptions_47209" x-defer="intersect"> 8561 <div class="pagebuilder-home-hidden"> 8562 8563 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 8564 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 8565 <template x-if="showSwatches"> 8566 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47209-163" role="radiogroup" aria-label="Einband"> 8567 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 8568 <div :data-option-id="item.id" style="display: contents"> 8569 <div x-id="getSwatchOptionHtmlIdGroup"> 8570 <template x-if="optionIsEnabled"> 8571 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
8571self="unsetActiveTooltipItem"> 8572 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47209-163"> 8573 <div> 8574 <template x-if="isTextSwatch"> 8575 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 8576 </template> 8577 <template x-if="!optionIsActive(163, item.id)"> 8578 <div> 8579 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 8580 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 8581 </svg> 8582 </div> 8583 </template> 8584 </div> 8585 </label> 8586 </template> 8587</div> </div> 8588 </template> 8589 </div> 8590 </template> 8591 </div> 8592 </div> 8593 </div> 8594 </div> 8595 8596 <div class="meta py-4 pagebuilder-home-hidden"> 8597 <div x-data="initMarketingShortText_47209()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 8598 <!-- Marketing short text --> 8599 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 8600 </div> 8601 8602 <!-- Short description --> 8603 <div class="short-description"> 8604 Ernst Cassirer erkannte, dass der Mythos keine veraltete Lebensweise ist, sondern eine Form der Sinnstiftung und Weltgestaltung, die unser gesellschaftliches und politisches Leben noch heute ... <a href="https://meiner.de/fmv_de/mythos-21935" class="underline">mehr</a> 8605 </div> 8606 </div> 8607 8608 <!-- Series --> 8609 <div class="mb-1"> 8610 <span class="sr-only">Reihe:</span> 8611 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-kulturphilosophie"> 8612 <span>Zeitschrift für Kulturphilosophie</span> 8613 </a> 8614 2026/1 </div> 8615 8616 8617 <div class="mb-1"> 8618 <span x-data="initEditionText_47209()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 8619 <!-- Marketing short text --> 8620 <span class="edition-text" x-html="editionText"></span> 2026, 184 Seiten. </span> 8621 </div> 8622 8623 </div> 8624 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 8625 8626 <div class="justify-end" x-data="initPriceBox()" @update-prices-47209.window="updatePrice($event.detail);"> 8627 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47209" data-price-box="product-id-47209"><span class="normal-price"> 8628 <span x-data x-id="['product\u002Dprice\u002D47209']" class="price-container price-final_price tax weee"> 8629 <span class="price-label">Ab</span> 8630 <span class="approx-price">ca. </span> 8631 <span :id="$id('product\u002Dprice\u002D47209')" data-price-amount="49.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">49,99 €</span></span> 8632 </span> 8633</span> 8634 8635 8636</div> </div> 8637 8638 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 8639 <div class="open-access-container open-access-container-47209 flex mt-4 ml-auto sm:mt-0 hidden"> 8640 <div class="text-gray-700"> 8641 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 8642 <a href="" target="_blank" class="open-access-external-link m-auto "> 8643 Kostenlos online lesen </a> 8644 </button> 8645 </div> 8646 </div> 8647 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Mythos" aria-label="In den Warenkorb Mythos" data-addto="cart"> 8648 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 8649 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
86490 014 0z"></path> 8650</svg> 8651 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 8652 In den Warenkorb </span> 8653 </button> 8654 8655<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47209)" aria-label="Zur Wunschliste hinzufügen Mythos" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 8656 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 8657 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 8658</svg> 8659</button> 8660 </div> 8661 </div> 8662 </div> 8663
8663<script> 8664 function initMarketingShortText_47209() { 8665 var marketingShortTextConfig = {}; 8666 if (typeof window.initConfigurableSwatchOptions_47209 === "function") { 8667 var fullConfig = window.initConfigurableSwatchOptions_47209().optionConfig 8668 var marketingShortTextConfig = fullConfig.marketing_short_text; 8669 } 8670 return { 8671 marketingShortText: '', 8672 config: marketingShortTextConfig, 8673 productId: '47209', 8674 getMarketingShortText(detail) { 8675 this.marketingShortText = detail.productIndex ? 8676 this.config[detail.productIndex] : 8677 null; 8678 }, 8679 eventListeners: { 8680 ['@listing-configurable-selection-changed.window'](event) { 8681 if (this.productId == event.detail.productId) { 8682 this.getMarketingShortText(event.detail); 8683 } 8684 8685 } 8686 } 8687 } 8688 } 8689 8690 function initEditionText_47209() { 8691 var editionTextConfig = {}; 8692 if (typeof window.initConfigurableSwatchOptions_47209 === "function") { 8693 var fullConfig = window.initConfigurableSwatchOptions_47209().optionConfig 8694 var editionTextConfig = fullConfig.edition; 8695 } 8696 return { 8697 editionText: '', 8698 config: editionTextConfig, 8699 productId: '47209', 8700 getEditionText(detail) { 8701 this.editionText = detail.productIndex ? 8702 this.config[detail.productIndex] : 8703 null; 8704 }, 8705 eventListeners: { 8706 ['@listing-configurable-selection-changed.window'](event) { 8707 if (this.productId == event.detail.productId) { 8708 this.getEditionText(event.detail); 8709 } 8710 8711 } 8712 } 8713 } 8714 } 8715 </script>
8715 8716 </form> 8717 8718 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46707/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21368"> 8719 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46707"> 8720 <a href="https://meiner.de/fmv_de/die-formen-des-denkens-21368" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 8721 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46707.window="$el.src = $event.detail" alt="Die Formen des Denkens" title="Die Formen des Denkens" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351046_1.jpg" :style="{ 8722 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 8723 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 8724 }"> 8725 </a> 8726 <div class="product-info flex flex-col flex-grow "> 8727 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 8728 <div class="mb-2 text-sm text-gray-500 font-medium"> 8729 <a href="https://meiner.de/fmv_de/person/Rolf-Schonberger-3862/" class="mb-2"> 8730 Rolf Schönberger </a> 8731 </div> 8732 <a class="product-item-link" href="https://meiner.de/fmv_de/die-formen-des-denkens-21368"> 8733 Die Formen des Denkens </a> 8734 </div> 8735 8736 <div x-data="initEditionText_46707()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 8737 <!-- Marketing short text --> 8738 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 8739 </div> 8740 </div> 8741 8742 <div class="py-1 grid mb-4 "> 8743 8744 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46707,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46707,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46501":"1","46868":"1"},"childProductsAlertStatus":{"46501":"0","46868":"0"},"indexMapping":{"163:15":46501,"163:8":46868},"availabilityMessages":{"46501":"Lieferbar innerhalb von 3-5 Tagen","46868":"Download sofort verf\u00fcgbar"},"openAccess":{"46707":{"status":0},"46501":{"status":0},"46868":{"status":0}}},"availabilityMessages":{"46501":"Lieferbar innerhalb von 3-5 Tagen","46868":"Download sofort verf\u00fcgbar"},"openAccess":{"46707":{"status":0},"46501":{"status":0},"46868":{"status":0}}}'> 8745 <template x-if="containerVisible"> 8746 <!-- Popup Trigger --> 8747 <div> 8748 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 8749 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
8750 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 8751 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 8752<title>bell</title></svg> 8753</span> 8754 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 8755 8756 <!-- Popup Modal --> 8757 <template x-if="showModal"> 8758 <template x-teleport=".page-wrapper"> 8759 <div x-cloak class="fixed inset-0 flex items-center justify-center 8760 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 8761 <div class="relative bg-white rounded-lg shadow-xl 8762 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 8763 <div class="p-6"> 8764 <!-- Subscription Form for Popup --> 8765 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 8766 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 8767 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 8768 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 8769 8770 <div class="flex flex-col gap-3"> 8771 <div class="flex-grow grow"> 8772 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 8773 shadow-xs focus:outline-none focus:outline-hidden 8774 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 8775 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 8776 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 8777 </div> 8778 <input type="hidden" name="product_id" :value="currentProductId"> 8779 <input type="hidden" name="type" value="email"> 8780 8781 8782 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 8783 8784 <div class="amxnotif_guest_action"> 8785 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 8786 rounded-md focus:outline-none 8787 focus:outline-hidden focus:ring-2 8788 focus:ring-offset-2 disabled:opacity-50 8789 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 8790 Benachrichtigen </button> 8791 </div> 8792 </div> 8793 8794 <div class="flex items-start pt-2"> 8795 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 8796 text-blue-600 border-gray-300 rounded-sm"> 8797 <label class="amxnotif-stock-gdrp-label cursor-pointer 8798 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 8799 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 8800 </div> 8801 </form> 8802 </div> 8803 8804 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 8805 hover:text-gray-600 transition-colors" aria-label="Schließen"> 8806 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 8807 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 8808<title>x</title></svg> 8809 </button> 8810 </div> 8811 </div> 8812 </template> 8813 </template> 8814 </div> 8815 </template> 8816 </div> 8817 8818<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46707" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46707,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46501":"1","46868":"1"},"childProductsAlertStatus":{"46501":"0","46868":"0"},"indexMapping":"{\u0022163:15\u0022:46501,\u0022163:8\u0022:46868}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46707,"availabilityMessages":{"46501":"Lieferbar innerhalb von 3-5 Tagen","46868":"Download sofort verf\u00fcgbar"},"openAccess":{"46707":{"status":0},"46501":{"status":0},"46868":{"status":0}}}'> 8819 8820 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
8821 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 8822 <span x-html="optionsLabelText"></span> 8823 </p> 8824</div> </div> 8825 8826
8826<script> 8827 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 8828 try { 8829 const attributes = (config && config.attributes) ? config.attributes : null; 8830 if (!attributes) return []; 8831 let attr = null; 8832 if (Array.isArray(attributes)) { 8833 for (let i = 0; i < attributes.length; i++) { 8834 const a = attributes[i]; 8835 if (a && a.id == attrId) { 8836 attr = a; 8837 break; 8838 } 8839 } 8840 } else { 8841 attr = attributes[attrId]; 8842 } 8843 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 8844 } catch (e) { 8845 return []; 8846 } 8847 }; 8848 8849 function initConfigurableSwatchOptions_46707() { 8850 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46501"]},{"id":"8","label":"PDF","products":["46868"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46501":{"baseOldPrice":{"amount":87.85046628972},"oldPrice":{"amount":94},"basePrice":{"amount":87.85046628972},"finalPrice":{"amount":94},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46868":{"baseOldPrice":{"amount":65.411213953271},"oldPrice":{"amount":69.99},"basePrice":{"amount":65.411213953271},"finalPrice":{"amount":69.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":65.411213953271},"oldPrice":{"amount":69.99},"basePrice":{"amount":58.81512505042},"finalPrice":{"amount":69.99},"isApproxPrice":null},"productId":"46707","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46501":{"163":"15"},"46868":{"163":"8"}},"salable":{"163":{"15":["46501"],"8":["46868"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46501":"005103","46868":"005104"},"output":{"46501":"Kartoniert","46868":"PDF"},"original_name":{"46501":"","46868":""},"openaccess_license_link":{"46501":"","46868":""},"openaccess_license_name":{"46501":"","46868":""},"openaccess_external_link":{"46501":"","46868":""},"gpsr_safety_info":{"46501":"","46868":""},"description":{"46501":"Dass man Thesen und Argumente verstehen kann, ist in der Philosophie nicht kontrovers. Aber kann man eine Philosophie als ganze verstehen? Die Suche nach einer leitenden Intention ist vielleicht anf\u00e4nglich hilfreich, aber sie st\u00f6\u00dft schnell auf die Frage: Woher stammt diese Intention?<br\/><br\/>Im 20. Jahrhundert ist der Begriff \u203aDenkform\u2039 in Mode gekommen, um all das zu fassen, was f\u00fcr einen philosophischen Versuch bestimmend ist: der grundlegende Ansatz, die leitenden Gesichtspunkte, die unausgesprochenen Grenzen zwischen dem stillschweigend Vorausgesetzten und dem Begr\u00fcndungsbed\u00fcrftigen, die Voraussetzungen der Pr\u00e4missen etc.<br\/><br\/>Die vorliegende Untersuchung will zeigen, dass die Denkform bereits in der Philosophie des Mittelalters entdeckt worden ist \u2013 also in einem Kontext, in dem es prim\u00e4r \u203anur\u2039 um die Wahrheit von Aussagen und die B\u00fcndigkeit von Begr\u00fcndungen ging. Falls der Befund zutrifft, liegt darin ein bemerkenswerter Beleg f\u00fcr ein genuin philosophisches Interesse im Denken des Mittelalters. Insbesondere bei Thomas von Aquin l\u00e4sst sich dieses Interesse im Umgang mit den bedeutenden Philosophien der Antike \u2013 Platon und Aristoteles \u2013, aber auch mit den pr\u00e4genden Orientierungsautoren wie Augustinus nachweisen. Thomas hat sogar versucht, die erste Epoche der Philosophie in ihrer Schrittfolge nicht blo\u00df doxographisch zu beschreiben, sondern in ihrer Folgerichtigkeit verst\u00e4ndlich zu machen.","46868":"Dass man Thesen und Argumente verstehe
8850n kann, ist in der Philosophie nicht kontrovers. Aber kann man eine Philosophie als ganze verstehen? Die Suche nach einer leitenden Intention ist vielleicht anf\u00e4nglich hilfreich, aber sie st\u00f6\u00dft schnell auf die Frage: Woher stammt diese Intention?<br\/><br\/>Im 20. Jahrhundert ist der Begriff \u203aDenkform\u2039 in Mode gekommen, um all das zu fassen, was f\u00fcr einen philosophischen Versuch bestimmend ist: der grundlegende Ansatz, die leitenden Gesichtspunkte, die unausgesprochenen Grenzen zwischen dem stillschweigend Vorausgesetzten und dem Begr\u00fcndungsbed\u00fcrftigen, die Voraussetzungen der Pr\u00e4missen etc.<br\/><br\/>Die vorliegende Untersuchung will zeigen, dass die Denkform bereits in der Philosophie des Mittelalters entdeckt worden ist \u2013 also in einem Kontext, in dem es prim\u00e4r \u203anur\u2039 um die Wahrheit von Aussagen und die B\u00fcndigkeit von Begr\u00fcndungen ging. Falls der Befund zutrifft, liegt darin ein bemerkenswerter Beleg f\u00fcr ein genuin philosophisches Interesse im Denken des Mittelalters. Insbesondere bei Thomas von Aquin l\u00e4sst sich dieses Interesse im Umgang mit den bedeutenden Philosophien der Antike \u2013 Platon und Aristoteles \u2013, aber auch mit den pr\u00e4genden Orientierungsautoren wie Augustinus nachweisen. Thomas hat sogar versucht, die erste Epoche der Philosophie in ihrer Schrittfolge nicht blo\u00df doxographisch zu beschreiben, sondern in ihrer Folgerichtigkeit verst\u00e4ndlich zu machen."},"doi":{"46501":"","46868":"10.28937\/978-3-7873-5104-6"},"isbn":{"46501":"978-3-7873-5103-9","46868":"978-3-7873-5104-6"},"marketing_short_text":{"46501":"","46868":""},"recension_text":{"46501":"","46868":""},"language":{"46501":"","46868":""},"cover":{"46501":"Kartoniert","46868":""},"pages":{"46501":"240 Seiten.","46868":"240 Seiten."},"edition":{"46501":"","46868":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46501":"Nein","46868":"Nein"},"copyright_year":{"46501":"","46868":""},"vlb_tix_link":{"46501":"https:\/\/neu.vlbtix.de\/products\/9783787351039?type=gtin","46868":""},"defaultValues":{"163":"15"}}; 8851 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 8852 8853 if (typeof window.amxnotif_wrap_attributes === 'function') { 8854 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 8855 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 8856 } 8857 8858 const configurableOptionsComponent = initConfigurableOptions( 8859 '46707', 8860 config 8861 ); 8862 const swatchOptionsComponent = initSwatchOptions( 8863 swatchConfig 8864 ); 8865 8866 // DWS - Configurable product preselect start 8867 const confProdPreSelect = () => { 8868 return { 8869 preselectQuerystringItems() { 8870 var data = {"id":"46501","output":"15"}; 8871 const urlQueryParams = new URLSearchParams(window.location.search); 8872 8873 this.$nextTick(() => { 8874 setTimeout(() => { 8875 const rootEl = this.$root || this.$el; 8876 if (!rootEl) return; 8877 8878 const applySelection = (attrCode, attrValue) => { 8879 if (attrValue === undefined || attrValue === null || attrValue === '') return; 8880 8881 const attributes = Object.values(this.optionConfig.attributes || {}); 8882 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 8883 8884 if (targetAttr) { 8885 const attrId = String(targetAttr.id); 8886 const optionVal = String(attrValue); 8887 8888 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 8889 8890 if (inputEl) { 8891 inputEl.click(); 8892 inputEl.dispatchEvent(new Event('change', { 8893 bubbles: true 8894 })); 8895 } else { 8896 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 8897 if (selectEl) { 8898 selectEl.value = optionVal; 8899 selectEl.dispatchEvent(new Event('change', { 8900 bubbles: true 8901 })); 8902 } 8903 } 8904 8905 this.changeOption(attrId, optionVal, false); 8906 } 8907 }; 8908 8909 if (data && typeof data === 'object') {
8910 Object.keys(data).forEach(key => applySelection(key, data[key])); 8911 } 8912 8913 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 8914 if (attribute && attribute.code) { 8915 let optionValue = urlQueryParams.get(attribute.code); 8916 if (optionValue) { 8917 let optionId = false; 8918 const attributes = Object.values(this.optionConfig.attributes || {}); 8919 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 8920 8921 let found = false; 8922 Object.values(targetAttr.options).map(option => { 8923 if (found === false && option.label === optionValue) { 8924 optionId = option.id; 8925 found = true; 8926 } 8927 }); 8928 8929 const attrId = String(targetAttr.id); 8930 let optionVal = String(optionValue); 8931 if (found) { 8932 optionVal = String(optionId); 8933 } 8934 8935 applySelection(attribute.code, optionVal); 8936 } 8937 } 8938 }); 8939 }, 100); 8940 }); 8941 } 8942 } 8943 }; 8944 // DWS - Configurable product preselect end 8945 8946 const result = Object.assign( 8947 configurableOptionsComponent, 8948 swatchOptionsComponent, { 8949 productId: '46707', 8950 productIndex: 0, 8951 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 8952 showSwatches: false, 8953 precalcOptions: {}, 8954 originalInit: configurableOptionsComponent.init, 8955 init() { 8956 try { 8957 this.precalcOptions = {}; 8958 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 8959 this.preselectQuerystringItems(); 8960 if (Array.isArray(attrSource)) { 8961 attrSource.forEach(attr => { 8962 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 8963 }); 8964 } else if (attrSource && typeof attrSource === 'object') { 8965 Object.keys(attrSource).forEach(id => { 8966 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 8967 }); 8968 } 8969 } catch (e) { 8970 console.error('Pre-calc error:', e); 8971 } 8972 8973 if (typeof this.originalInit === 'function') { 8974 this.originalInit(); 8975 } 8976 8977 try { 8978 this.initShowSwatchesIntersect(); 8979 } catch (e) { 8980 console.error('intersect error:', e); 8981 } 8982 }, 8983 8984 updateGallery() { 8985 if (!this.productIndex) return; 8986 8987 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 8988 method: 'GET', 8989 headers: { 8990 'Content-Type': 'application/json', 8991 'X-Requested-With': 'XMLHttpRequest' 8992 } 8993 }) 8994 .then(response => response.json()) 8995 .then(data => { 8996 if (data && data.medium) { 8997 window.dispatchEvent(new CustomEvent("update-gallery-46707", { 8998 detail: data.medium 8999 })); 9000 } 9001 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 9002 }, 9003 9004 9005 initShowSwatchesIntersect() { 9006 const observer = new IntersectionObserver(entries => { 9007 if (entries[0].isIntersecting) { 9008 this.showSwatches = true; 9009 observer.disconnect(); 9010 } 9011 }, { 9012 rootMargin: '512px' 9013 }); 9014 observer.observe(this.$el); 9015 }, 9016 getOptions(attrId) { 9017 return this.precalcOptions[attrId] || []; 9018 }, 9019 getOptionsByAttrId() { 9020 return this.getOptions(this.$el.dataset.attributeId); 9021 }, 9022 _getItemId() { 9023 if (this.item && this.item.id) return this.item.id; 9024 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 9025 }, 9026 getSwatchOptionHtmlId() { 9027 const itemId = this._getItemId(); 9028 return itemId ? this.$id(`attribute-option-46707-${itemId}`) : ''; 9029 }, 9030 getSwatchOptionHtmlIdGroup() { 9031 const itemId = this._getItemId(); 9032 return itemId ? [`attribute-option-46707-${itemId}`] : []; 9033 }, 9034 getAttributeSwatchData(attributeId) { 9035 const data = Object.assign({}, this.swatchConfig[attributeId]); 9036 if (data['additional_data']) { 9037 try { 9038 data['details'] = JSON.parse(data['additional_data']); 9039 } catch (e) { 9040 data['details'] = {}; 9041 } 9042 } 9043 return data; 9044 }, 9045 getSwatchType(attributeId, optionId) { 9046 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 9047 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 9048 } 9049 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 9050 this.swatchConfig[attributeId].details.swatch_input_type : 9051 "empty"; 9052 if (type === 'visual') { 9053 const config = this.swatchConfig[attributeId]; 9054 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 9055 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 9056 } 9057 // Fallback to first option type 9058 for (const oId in config) { 9059 if (config[oId] && typeof config[oId].type !== 'undefined') { 9060 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 9061 } 9062 } 9063 } 9064 return type; 9065 }, 9066 mapSwatchTypeNumberToTypeCode(type) { 9067 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 9068 }, 9069 isTextSwatch() { 9070 const itemId = this._getItemId(); 9071 if (!this.$el || !itemId) return false;
9072 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9073 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 9074 }, 9075 9076 getSwatchText() { 9077 const itemId = this._getItemId(); 9078 if (this.item) return this.item.label || ''; 9079 if (!this.$el || !itemId) return ''; 9080 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9081 const options = attrId ? this.getOptions(attrId) : []; 9082 const opt = options.find(o => o.id == itemId); 9083 return opt ? opt.label : ''; 9084 }, 9085 getSwatchBackgroundStyle() { 9086 const itemId = this._getItemId(); 9087 if (!this.$el || !itemId) return ''; 9088 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9089 if (!attrId) return ''; 9090 const type = this.getSwatchType(attrId, itemId); 9091 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 9092 this.swatchConfig[attrId][itemId] : 9093 null; 9094 if (!swatchData) return ''; 9095 if (type === "color") return 'background-color:' + swatchData.value; 9096 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 9097 return ''; 9098 }, 9099 swatchOptionClasses() { 9100 const itemId = this._getItemId(); 9101 if (!this.$el || !itemId) return {}; 9102 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9103 return { 9104 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 9105 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 9106 'w-6 h-6': !this.isTextSwatch() 9107 } 9108 }, 9109 9110 onFocusSwatchItem() { 9111 const itemId = this._getItemId(); 9112 if (itemId) this.focusedLabel = itemId; 9113 }, 9114 onChangeOption() { 9115 const itemId = this._getItemId(); 9116 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 9117 if (attrId && itemId) this.changeOption(attrId, itemId); 9118 }, 9119 changeOption(attributeId, value) { 9120 if (value === '') { 9121 return; 9122 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 9123 } else { 9124 this.selectedValues[attributeId] = value; 9125 } 9126 9127 this.findSimpleIndex(); 9128 this.findAllowedAttributeOptions(); 9129 this.updatePrices(); 9130 this.updateGallery(); 9131 9132 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 9133 this.findProductIdsForPartialSelection(this.selectedValues) : []; 9134 9135 const eventDetail = { 9136 productId: this.productId, 9137 optionId: attributeId, 9138 value: value, 9139 productIndex: this.productIndex || 0, 9140 selectedValues: this.selectedValues, 9141 candidates: candidates, 9142 sourceElement: this.$el 9143 }; 9144 9145 // Dispatch for Amasty 9146 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 9147 detail: eventDetail 9148 })); 9149 9150 // Dispatch for Hyva listing 9151 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 9152 detail: eventDetail 9153 })); 9154 }, 9155 9156 9157 clearOptionIfActive() { 9158 const itemId = this._getItemId(); 9159 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 9160 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 9161 this.changeOption(attrId, ''); 9162 9163 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 9164 if (!input && this.$el?.querySelector) { 9165 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 9166 } 9167 if (!input && this.$el?.closest) { 9168 const root = this.$el.closest('[data-product-id]') || this.$el; 9169 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 9170 } 9171 if (input) { 9172 input.checked = false;
9173 } 9174 } 9175 }, 9176 get optionIsEnabled() { 9177 const itemId = this._getItemId(); 9178 if (!this.$el || !itemId) return true; 9179 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9180 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 9181 return !!allowedOptions.find(opt => opt.id == itemId); 9182 }, 9183 get isSelected() { 9184 const itemId = this._getItemId(); 9185 if (!this.$el || !itemId) return false; 9186 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9187 return attrId ? (this.selectedValues[attrId] == itemId) : false; 9188 }, 9189 get isSwatchRequired() { 9190 if (!this.$el) return false; 9191 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9192 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 9193 }, 9194 focusedLabel: false, 9195 activeTooltipItem: false, 9196 tooltipPositionElement: false,
9197 setActiveTooltipItem() { 9198 const itemId = this._getItemId(); 9199 if (!this.$el || !itemId) return; 9200 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9201 this.activeTooltipItem = { 9202 attribute: attrId, 9203 item: itemId, 9204 index: 0 9205 }; 9206 this.tooltipPositionElement = this.$event ? this.$event.target : null; 9207 }, 9208 unsetActiveTooltipItem() { 9209 this.activeTooltipItem = false; 9210 } 9211 }, 9212 confProdPreSelect() 9213 ); 9214 9215 if (result.optionConfig && result.optionConfig.attributes) { 9216 const attributes = result.optionConfig.attributes; 9217 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 9218 let source = attributes; 9219 if (Array.isArray(attributes)) { 9220 source = {}; 9221 attributes.forEach(attr => { 9222 if (attr && attr.id) source[attr.id] = attr; 9223 }); 9224 } 9225 const values = Object.values(source); 9226 const wrapper = Object.assign(values, source); 9227 Object.defineProperty(wrapper, '__amxnotifWrapped', { 9228 value: true, 9229 enumerable: false 9230 }); 9231 result.optionConfig.attributes = wrapper; 9232 } 9233 } 9234 9235 return result; 9236 } 9237 9238 window.addEventListener('alpine:init', () => { 9239 Alpine.data('initConfigurableSwatchOptions_46707', initConfigurableSwatchOptions_46707); 9240 }, { 9241 once: true 9242 }); 9243 </script>
9243 9244 9245 <div x-data="initConfigurableSwatchOptions_46707" x-defer="intersect"> 9246 <div class="pagebuilder-home-hidden"> 9247 9248 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 9249 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 9250 <template x-if="showSwatches"> 9251 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46707-163" role="radiogroup" aria-label="Einband"> 9252 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 9253 <div :data-option-id="item.id" style="display: contents"> 9254 <div x-id="getSwatchOptionHtmlIdGroup"> 9255 <template x-if="optionIsEnabled"> 9256 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
9256self="unsetActiveTooltipItem"> 9257 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46707-163"> 9258 <div> 9259 <template x-if="isTextSwatch"> 9260 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 9261 </template> 9262 <template x-if="!optionIsActive(163, item.id)"> 9263 <div> 9264 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 9265 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 9266 </svg> 9267 </div> 9268 </template> 9269 </div> 9270 </label> 9271 </template> 9272</div> </div> 9273 </template> 9274 </div> 9275 </template> 9276 </div> 9277 </div> 9278 </div> 9279 </div> 9280 9281 <div class="meta py-4 pagebuilder-home-hidden"> 9282 <div x-data="initMarketingShortText_46707()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 9283 <!-- Marketing short text --> 9284 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 9285 </div> 9286 9287 <!-- Short description --> 9288 <div class="short-description"> 9289 Dass man Thesen und Argumente verstehen kann, ist in der Philosophie nicht kontrovers. Aber kann man eine Philosophie als ganze verstehen? Die Suche nach einer leitenden Intention ist vielleicht ... <a href="https://meiner.de/fmv_de/die-formen-des-denkens-21368" class="underline">mehr</a> 9290 </div> 9291 </div> 9292 9293 <!-- Series --> 9294 <div class="mb-1"> 9295 <span class="sr-only">Reihe:</span> 9296 <a href="https://meiner.de/fmv_de/programm/reihen/studien-zu-den-quaestiones-disputatae-des-thomas-von-aquin"> 9297 <span>Studien zu den Quaestiones Disputatae des Thomas von Aquin</span> 9298 </a> 9299 </div> 9300 9301 9302 <div class="mb-1"> 9303 <span x-data="initEditionText_46707()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 9304 <!-- Marketing short text --> 9305 <span class="edition-text" x-html="editionText"></span> 2026, 240 Seiten. </span> 9306 </div> 9307 9308 </div> 9309 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 9310 9311 <div class="justify-end" x-data="initPriceBox()" @update-prices-46707.window="updatePrice($event.detail);"> 9312 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46707" data-price-box="product-id-46707"><span class="normal-price"> 9313 <span x-data x-id="['product\u002Dprice\u002D46707']" class="price-container price-final_price tax weee"> 9314 <span class="price-label">Ab</span> 9315 <span class="approx-price">ca. </span> 9316 <span :id="$id('product\u002Dprice\u002D46707')" data-price-amount="69.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">69,99 €</span></span> 9317 </span> 9318</span> 9319 9320 9321</div> </div> 9322 9323 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 9324 <div class="open-access-container open-access-container-46707 flex mt-4 ml-auto sm:mt-0 hidden"> 9325 <div class="text-gray-700"> 9326 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 9327 <a href="" target="_blank" class="open-access-external-link m-auto "> 9328 Kostenlos online lesen </a> 9329 </button> 9330 </div> 9331 </div> 9332 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Die Formen des Denkens" aria-label="In den Warenkorb Die Formen des Denkens" data-addto="cart"> 9333 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 9334 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
93340 014 0z"></path> 9335</svg> 9336 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 9337 In den Warenkorb </span> 9338 </button> 9339 9340<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46707)" aria-label="Zur Wunschliste hinzufügen Die Formen des Denkens" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 9341 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 9342 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 9343</svg> 9344</button> 9345 </div> 9346 </div> 9347 </div> 9348
9348<script> 9349 function initMarketingShortText_46707() { 9350 var marketingShortTextConfig = {}; 9351 if (typeof window.initConfigurableSwatchOptions_46707 === "function") { 9352 var fullConfig = window.initConfigurableSwatchOptions_46707().optionConfig 9353 var marketingShortTextConfig = fullConfig.marketing_short_text; 9354 } 9355 return { 9356 marketingShortText: '', 9357 config: marketingShortTextConfig, 9358 productId: '46707', 9359 getMarketingShortText(detail) { 9360 this.marketingShortText = detail.productIndex ? 9361 this.config[detail.productIndex] : 9362 null; 9363 }, 9364 eventListeners: { 9365 ['@listing-configurable-selection-changed.window'](event) { 9366 if (this.productId == event.detail.productId) { 9367 this.getMarketingShortText(event.detail); 9368 } 9369 9370 } 9371 } 9372 } 9373 } 9374 9375 function initEditionText_46707() { 9376 var editionTextConfig = {}; 9377 if (typeof window.initConfigurableSwatchOptions_46707 === "function") { 9378 var fullConfig = window.initConfigurableSwatchOptions_46707().optionConfig 9379 var editionTextConfig = fullConfig.edition; 9380 } 9381 return { 9382 editionText: '', 9383 config: editionTextConfig, 9384 productId: '46707', 9385 getEditionText(detail) { 9386 this.editionText = detail.productIndex ? 9387 this.config[detail.productIndex] : 9388 null; 9389 }, 9390 eventListeners: { 9391 ['@listing-configurable-selection-changed.window'](event) { 9392 if (this.productId == event.detail.productId) { 9393 this.getEditionText(event.detail); 9394 } 9395 9396 } 9397 } 9398 } 9399 } 9400 </script>
9400 9401 </form> 9402 9403 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46699/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17982"> 9404 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="46699"> 9405 <a href="https://meiner.de/fmv_de/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 9406 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46699.window="$el.src = $event.detail" alt="Von süßen Lügen und bilderlosen Bildern" title="Von süßen Lügen und bilderlosen Bildern" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787349517_1.jpg" :style="{ 9407 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 9408 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 9409 }"> 9410 </a> 9411 <div class="product-info flex flex-col flex-grow "> 9412 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 9413 <div class="mb-2 text-sm text-gray-500 font-medium"> 9414 <a href="https://meiner.de/fmv_de/person/Josef-Fruchtl-3439/" class="mb-2"> 9415 Josef Früchtl </a> 9416 </div> 9417 <a class="product-item-link" href="https://meiner.de/fmv_de/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982"> 9418 Von süßen Lügen und bilderlosen Bildern </a> 9419 </div> 9420 9421 <div x-data="initEditionText_46699()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 9422 <!-- Marketing short text --> 9423 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 9424 </div> 9425 </div> 9426 9427 <div class="py-1 grid mb-4 "> 9428 9429 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46699,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46699,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46488":"1","46737":"1","46736":"1"},"childProductsAlertStatus":{"46488":"0","46737":"0","46736":"0"},"indexMapping":{"163:15":46488,"163:9":46737,"163:8":46736},"availabilityMessages":{"46488":"Lieferbar innerhalb von 3-5 Tagen","46737":"Download sofort verf\u00fcgbar","46736":"Download sofort verf\u00fcgbar"},"openAccess":{"46699":{"status":0},"46488":{"status":0},"46737":{"status":0},"46736":{"status":0}}},"availabilityMessages":{"46488":"Lieferbar innerhalb von 3-5 Tagen","46737":"Download sofort verf\u00fcgbar","46736":"Download sofort verf\u00fcgbar"},"openAccess":{"46699":{"status":0},"46488":{"status":0},"46737":{"status":0},"46736":{"status":0}}}'> 9430 <template x-if="containerVisible"> 9431 <!-- Popup Trigger --> 9432 <div> 9433 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 9434 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
9435 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 9436 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 9437<title>bell</title></svg> 9438</span> 9439 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 9440 9441 <!-- Popup Modal --> 9442 <template x-if="showModal"> 9443 <template x-teleport=".page-wrapper"> 9444 <div x-cloak class="fixed inset-0 flex items-center justify-center 9445 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 9446 <div class="relative bg-white rounded-lg shadow-xl 9447 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 9448 <div class="p-6"> 9449 <!-- Subscription Form for Popup --> 9450 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 9451 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 9452 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 9453 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 9454 9455 <div class="flex flex-col gap-3"> 9456 <div class="flex-grow grow"> 9457 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 9458 shadow-xs focus:outline-none focus:outline-hidden 9459 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 9460 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 9461 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 9462 </div> 9463 <input type="hidden" name="product_id" :value="currentProductId"> 9464 <input type="hidden" name="type" value="email"> 9465 9466 9467 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 9468 9469 <div class="amxnotif_guest_action"> 9470 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 9471 rounded-md focus:outline-none 9472 focus:outline-hidden focus:ring-2 9473 focus:ring-offset-2 disabled:opacity-50 9474 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 9475 Benachrichtigen </button> 9476 </div> 9477 </div> 9478 9479 <div class="flex items-start pt-2"> 9480 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 9481 text-blue-600 border-gray-300 rounded-sm"> 9482 <label class="amxnotif-stock-gdrp-label cursor-pointer 9483 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 9484 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 9485 </div> 9486 </form> 9487 </div> 9488 9489 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 9490 hover:text-gray-600 transition-colors" aria-label="Schließen"> 9491 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 9492 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 9493<title>x</title></svg> 9494 </button> 9495 </div> 9496 </div> 9497 </template> 9498 </template> 9499 </div> 9500 </template> 9501 </div> 9502 9503<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46699" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46699,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46488":"1","46737":"1","46736":"1"}
9503,"childProductsAlertStatus":{"46488":"0","46737":"0","46736":"0"},"indexMapping":"{\u0022163:15\u0022:46488,\u0022163:9\u0022:46737,\u0022163:8\u0022:46736}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46699,"availabilityMessages":{"46488":"Lieferbar innerhalb von 3-5 Tagen","46737":"Download sofort verf\u00fcgbar","46736":"Download sofort verf\u00fcgbar"},"openAccess":{"46699":{"status":0},"46488":{"status":0},"46737":{"status":0},"46736":{"status":0}}}'> 9504 9505 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 9506 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 9507 <span x-html="optionsLabelText"></span> 9508 </p> 9509</div> </div> 9510 9511
9511<script> 9512 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 9513 try { 9514 const attributes = (config && config.attributes) ? config.attributes : null; 9515 if (!attributes) return []; 9516 let attr = null; 9517 if (Array.isArray(attributes)) { 9518 for (let i = 0; i < attributes.length; i++) { 9519 const a = attributes[i]; 9520 if (a && a.id == attrId) { 9521 attr = a; 9522 break; 9523 } 9524 } 9525 } else { 9526 attr = attributes[attrId]; 9527 } 9528 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 9529 } catch (e) { 9530 return []; 9531 } 9532 }; 9533 9534 function initConfigurableSwatchOptions_46699() { 9535 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46488"]},{"id":"8","label":"PDF","products":["46736"]},{"id":"9","label":"EPUB","products":["46737"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46488":{"baseOldPrice":{"amount":23.271027037383},"oldPrice":{"amount":24.9},"basePrice":{"amount":23.271027037383},"finalPrice":{"amount":24.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46737":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46736":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":16.798318327731},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"46699","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46488":{"163":"15"},"46737":{"163":"9"},"46736":{"163":"8"}},"salable":{"163":{"15":["46488"],"9":["46737"],"8":["46736"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46488":"004949","46737":"004951","46736":"004950"},"output":{"46488":"Kartoniert","46736":"PDF","46737":"EPUB"},"original_name":{"46488":"","46736":"","46737":""},"openaccess_license_link":{"46488":"","46736":"","46737":""},"openaccess_license_name":{"46488":"","46736":"","46737":""},"openaccess_external_link":{"46488":"","46736":"","46737":""},"gpsr_safety_info":{"46488":"","46736":"","46737":""},"description":{"46488":"Die Filmphilosophie ist im Laufe des 20. Jahrhunderts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo M\u00fcnsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried Kracauer \u00fcber Benjamin und Adorno bis zu Stanley Cavell und Gilles Deleuze sind eine Vielzahl an philosophischen Abhandlungen und Theorien zum Film entstanden, die den Film schlie\u00dflich auf eine neue Reflexions- und Bedeutungsebene gehoben haben.<br\/><br\/>Von Beginn an zogen Fragen nach dem Verh\u00e4ltnis von Film und Kunst, Film und Gesellschaft, der anregenden Kraft cinematischer Fiktionen und Imaginationen, dem Stellenwert von Emotionen und der besonderen Art von Narration das theoretische Interesse auf sich. Josef Fr\u00fcchtl f\u00fchrt in diesem Band zahlreiche Beitr\u00e4ge zur Philosophie des Films zusammen: von Adornos Pl\u00e4doyer f\u00fcr einen Film der unsichtbaren, bilderlosen Bilder \u00fcber die Selbstreflexion der Helden-figur im Kino, die De-\/Legitimation einer panoptischen Gesellschaft in einem Film wie \u00bbMinority Report\u00ab, metaphysische Gro\u00dferz\u00e4hlungen wie etwa \u00bbAvatar\u00ab, filmische Verarbeitungen von traumatisierenden Ereignissen im Film \u00bbUnited 93\u00ab und im Science-Fiction am Beispiel von Christopher Nolans Film \u00bbInterstellar\u00ab bis zur Filmkom\u00f6die.<br\/><br\/>Das Buch bietet damit einen guten, anschaulichen Einstieg in die Filmphilosophie.","46736":"Die Filmphilosophie ist im Laufe des 20. Jahrhun
9535derts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo M\u00fcnsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried Kracauer \u00fcber Benjamin und Adorno bis zu Stanley Cavell und Gilles Deleuze sind eine Vielzahl an philosophischen Abhandlungen und Theorien zum Film entstanden, die den Film schlie\u00dflich auf eine neue Reflexions- und Bedeutungsebene gehoben haben.<br\/><br\/>Von Beginn an zogen Fragen nach dem Verh\u00e4ltnis von Film und Kunst, Film und Gesellschaft, der anregenden Kraft cinematischer Fiktionen und Imaginationen, dem Stellenwert von Emotionen und der besonderen Art von Narration das theoretische Interesse auf sich. Josef Fr\u00fcchtl f\u00fchrt in diesem Band zahlreiche Beitr\u00e4ge zur Philosophie des Films zusammen: von Adornos Pl\u00e4doyer f\u00fcr einen Film der unsichtbaren, bilderlosen Bilder \u00fcber die Selbstreflexion der Helden-figur im Kino, die De-\/Legitimation einer panoptischen Gesellschaft in einem Film wie \u00bbMinority Report\u00ab, metaphysische Gro\u00dferz\u00e4hlungen wie etwa \u00bbAvatar\u00ab, filmische Verarbeitungen von traumatisierenden Ereignissen im Film \u00bbUnited 93\u00ab und im Science-Fiction am Beispiel von Christopher Nolans Film \u00bbInterstellar\u00ab bis zur Filmkom\u00f6die.<br\/><br\/>Das Buch bietet damit einen guten, anschaulichen Einstieg in die Filmphilosophie.","46737":"Die Filmphilosophie ist im Laufe des 20. Jahrhunderts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo M\u00fcnsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried Kracauer \u00fcber Benjamin und Adorno bis zu Stanley Cavell und Gilles Deleuze sind eine Vielzahl an philosophischen Abhandlungen und Theorien zum Film entstanden, die den Film schlie\u00dflich auf eine neue Reflexions- und Bedeutungsebene gehoben haben.<br\/><br\/>Von Beginn an zogen Fragen nach dem Verh\u00e4ltnis von Film und Kunst, Film und Gesellschaft, der anregenden Kraft cinematischer Fiktionen und Imaginationen, dem Stellenwert von Emotionen und der besonderen Art von Narration das theoretische Interesse auf sich. Josef Fr\u00fcchtl f\u00fchrt in diesem Band zahlreiche Beitr\u00e4ge zur Philosophie des Films zusammen: von Adornos Pl\u00e4doyer f\u00fcr einen Film der unsichtbaren, bilderlosen Bilder \u00fcber die Selbstreflexion der Helden-figur im Kino, die De-\/Legitimation einer panoptischen Gesellschaft in einem Film wie \u00bbMinority Report\u00ab, metaphysische Gro\u00dferz\u00e4hlungen wie etwa \u00bbAvatar\u00ab, filmische Verarbeitungen von traumatisierenden Ereignissen im Film \u00bbUnited 93\u00ab und im Science-Fiction am Beispiel von Christopher Nolans Film \u00bbInterstellar\u00ab bis zur Filmkom\u00f6die.<br\/><br\/>Das Buch bietet damit einen guten, anschaulichen Einstieg in die Filmphilosophie."},"doi":{"46488":"","46736":"10.28937\/978-3-7873-4950-0","46737":""},"isbn":{"46488":"978-3-7873-4949-4","46736":"978-3-7873-4950-0","46737":"978-3-7873-4951-7"},"marketing_short_text":{"46488":"","46736":"","46737":""},"recension_text":{"46488":"","46736":"","46737":""},"language":{"46488":"","46736":"","46737":""},"cover":{"46488":"Kartoniert","46736":"","46737":""},"pages":{"46488":"208 Seiten.","46736":"208 Seiten.","46737":"208 Seiten."},"edition":{"46488":"","46736":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","46737":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46488":"Nein","46736":"Nein","46737":"Nein"},"copyright_year":{"46488":"","46736":"","46737":""},"vlb_tix_link":{"46488":"https:\/\/neu.vlbtix.de\/products\/9783787349494?type=gtin","46736":"","46737":""},"defaultValues":{"163":"15"}}; 9536 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 9537 9538 if (typeof window.amxnotif_wrap_attributes === 'function') { 9539 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 9540 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 9541 } 9542 9543 const configurableOptionsComponent = initConfigurableOptions( 9544 '46699', 9545 config 9546 ); 9547 const swatchOptionsComponent = initSwatchOptions( 9548 swatchConfig 9549 ); 9550 9551 // DWS - Configurable product preselect start 9552 const confProdPreSelect = () => { 9553 return { 9554 preselectQuerystringItems() { 9555 var data = {"id":"46488","output":"15"}; 9556 const urlQueryParams = new URLSearchParams(window.location.search); 9557 9558 this.$nextTick(() => { 9559 setTimeout(() => { 9560 const rootEl = this.$root || this.$el; 9561 if (!rootEl) return; 9562 9563 const applySelection = (attrCode, attrValue) => { 9564 if (attrValue === undefined || attrValue === null || attrValue === '') return; 9565 9566 const attributes = Object.values(this.optionConfig.attributes || {}); 9567 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 9568 9569 if (targetAttr) { 9570 const attrId = String(targetAttr.id); 9571 const optionVal = String(attrValue); 9572 9573 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 9574 9575 if (inputEl) { 9576 inputEl.click(); 9577 inputEl.dispatchEvent(new Event('change', { 9578 bubbles: true 9579 })); 9580 } else { 9581 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 9582 if (selectEl) { 9583 selectEl.value = optionVal; 9584 selectEl.dispatchEvent(new Event('change', { 9585 bubbles: true 9586 })); 9587 } 9588 } 9589 9590 this.changeOption(attrId, optionVal, false); 9591 } 9592 }; 9593 9594 if (data && typeof data === 'object') {
9595 Object.keys(data).forEach(key => applySelection(key, data[key])); 9596 } 9597 9598 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 9599 if (attribute && attribute.code) { 9600 let optionValue = urlQueryParams.get(attribute.code); 9601 if (optionValue) { 9602 let optionId = false; 9603 const attributes = Object.values(this.optionConfig.attributes || {}); 9604 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 9605 9606 let found = false; 9607 Object.values(targetAttr.options).map(option => { 9608 if (found === false && option.label === optionValue) { 9609 optionId = option.id; 9610 found = true; 9611 } 9612 }); 9613 9614 const attrId = String(targetAttr.id); 9615 let optionVal = String(optionValue); 9616 if (found) { 9617 optionVal = String(optionId); 9618 } 9619 9620 applySelection(attribute.code, optionVal); 9621 } 9622 } 9623 }); 9624 }, 100); 9625 }); 9626 } 9627 } 9628 }; 9629 // DWS - Configurable product preselect end 9630 9631 const result = Object.assign( 9632 configurableOptionsComponent, 9633 swatchOptionsComponent, { 9634 productId: '46699', 9635 productIndex: 0, 9636 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 9637 showSwatches: false, 9638 precalcOptions: {}, 9639 originalInit: configurableOptionsComponent.init, 9640 init() { 9641 try { 9642 this.precalcOptions = {}; 9643 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 9644 this.preselectQuerystringItems(); 9645 if (Array.isArray(attrSource)) { 9646 attrSource.forEach(attr => { 9647 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 9648 }); 9649 } else if (attrSource && typeof attrSource === 'object') { 9650 Object.keys(attrSource).forEach(id => { 9651 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 9652 }); 9653 } 9654 } catch (e) { 9655 console.error('Pre-calc error:', e); 9656 } 9657 9658 if (typeof this.originalInit === 'function') { 9659 this.originalInit(); 9660 } 9661 9662 try { 9663 this.initShowSwatchesIntersect(); 9664 } catch (e) { 9665 console.error('intersect error:', e); 9666 } 9667 }, 9668 9669 updateGallery() { 9670 if (!this.productIndex) return; 9671 9672 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 9673 method: 'GET', 9674 headers: { 9675 'Content-Type': 'application/json', 9676 'X-Requested-With': 'XMLHttpRequest' 9677 } 9678 }) 9679 .then(response => response.json()) 9680 .then(data => { 9681 if (data && data.medium) { 9682 window.dispatchEvent(new CustomEvent("update-gallery-46699", { 9683 detail: data.medium 9684 })); 9685 } 9686 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 9687 }, 9688 9689 9690 initShowSwatchesIntersect() { 9691 const observer = new IntersectionObserver(entries => { 9692 if (entries[0].isIntersecting) { 9693 this.showSwatches = true; 9694 observer.disconnect(); 9695 } 9696 }, { 9697 rootMargin: '512px' 9698 }); 9699 observer.observe(this.$el); 9700 }, 9701 getOptions(attrId) { 9702 return this.precalcOptions[attrId] || []; 9703 }, 9704 getOptionsByAttrId() { 9705 return this.getOptions(this.$el.dataset.attributeId); 9706 }, 9707 _getItemId() { 9708 if (this.item && this.item.id) return this.item.id; 9709 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 9710 }, 9711 getSwatchOptionHtmlId() { 9712 const itemId = this._getItemId(); 9713 return itemId ? this.$id(`attribute-option-46699-${itemId}`) : ''; 9714 }, 9715 getSwatchOptionHtmlIdGroup() { 9716 const itemId = this._getItemId(); 9717 return itemId ? [`attribute-option-46699-${itemId}`] : []; 9718 }, 9719 getAttributeSwatchData(attributeId) { 9720 const data = Object.assign({}, this.swatchConfig[attributeId]); 9721 if (data['additional_data']) { 9722 try { 9723 data['details'] = JSON.parse(data['additional_data']); 9724 } catch (e) { 9725 data['details'] = {}; 9726 } 9727 } 9728 return data; 9729 }, 9730 getSwatchType(attributeId, optionId) { 9731 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 9732 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 9733 } 9734 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 9735 this.swatchConfig[attributeId].details.swatch_input_type : 9736 "empty"; 9737 if (type === 'visual') { 9738 const config = this.swatchConfig[attributeId]; 9739 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 9740 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 9741 } 9742 // Fallback to first option type 9743 for (const oId in config) { 9744 if (config[oId] && typeof config[oId].type !== 'undefined') { 9745 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 9746 } 9747 } 9748 } 9749 return type; 9750 }, 9751 mapSwatchTypeNumberToTypeCode(type) { 9752 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 9753 }, 9754 isTextSwatch() { 9755 const itemId = this._getItemId(); 9756 if (!this.$el || !itemId) return false;
9757 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9758 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 9759 }, 9760 9761 getSwatchText() { 9762 const itemId = this._getItemId(); 9763 if (this.item) return this.item.label || ''; 9764 if (!this.$el || !itemId) return ''; 9765 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9766 const options = attrId ? this.getOptions(attrId) : []; 9767 const opt = options.find(o => o.id == itemId); 9768 return opt ? opt.label : ''; 9769 }, 9770 getSwatchBackgroundStyle() { 9771 const itemId = this._getItemId(); 9772 if (!this.$el || !itemId) return ''; 9773 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9774 if (!attrId) return ''; 9775 const type = this.getSwatchType(attrId, itemId); 9776 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 9777 this.swatchConfig[attrId][itemId] : 9778 null; 9779 if (!swatchData) return ''; 9780 if (type === "color") return 'background-color:' + swatchData.value; 9781 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 9782 return ''; 9783 }, 9784 swatchOptionClasses() { 9785 const itemId = this._getItemId(); 9786 if (!this.$el || !itemId) return {}; 9787 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9788 return { 9789 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 9790 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 9791 'w-6 h-6': !this.isTextSwatch() 9792 } 9793 }, 9794 9795 onFocusSwatchItem() { 9796 const itemId = this._getItemId(); 9797 if (itemId) this.focusedLabel = itemId; 9798 }, 9799 onChangeOption() { 9800 const itemId = this._getItemId(); 9801 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 9802 if (attrId && itemId) this.changeOption(attrId, itemId); 9803 }, 9804 changeOption(attributeId, value) { 9805 if (value === '') { 9806 return; 9807 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 9808 } else { 9809 this.selectedValues[attributeId] = value; 9810 } 9811 9812 this.findSimpleIndex(); 9813 this.findAllowedAttributeOptions(); 9814 this.updatePrices(); 9815 this.updateGallery(); 9816 9817 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 9818 this.findProductIdsForPartialSelection(this.selectedValues) : []; 9819 9820 const eventDetail = { 9821 productId: this.productId, 9822 optionId: attributeId, 9823 value: value, 9824 productIndex: this.productIndex || 0, 9825 selectedValues: this.selectedValues, 9826 candidates: candidates, 9827 sourceElement: this.$el 9828 }; 9829 9830 // Dispatch for Amasty 9831 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 9832 detail: eventDetail 9833 })); 9834 9835 // Dispatch for Hyva listing 9836 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 9837 detail: eventDetail 9838 })); 9839 }, 9840 9841 9842 clearOptionIfActive() { 9843 const itemId = this._getItemId(); 9844 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 9845 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 9846 this.changeOption(attrId, ''); 9847 9848 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 9849 if (!input && this.$el?.querySelector) { 9850 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 9851 } 9852 if (!input && this.$el?.closest) { 9853 const root = this.$el.closest('[data-product-id]') || this.$el; 9854 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 9855 } 9856 if (input) { 9857 input.checked = false;
9858 } 9859 } 9860 }, 9861 get optionIsEnabled() { 9862 const itemId = this._getItemId(); 9863 if (!this.$el || !itemId) return true; 9864 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9865 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 9866 return !!allowedOptions.find(opt => opt.id == itemId); 9867 }, 9868 get isSelected() { 9869 const itemId = this._getItemId(); 9870 if (!this.$el || !itemId) return false; 9871 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9872 return attrId ? (this.selectedValues[attrId] == itemId) : false; 9873 }, 9874 get isSwatchRequired() { 9875 if (!this.$el) return false; 9876 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9877 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 9878 }, 9879 focusedLabel: false, 9880 activeTooltipItem: false, 9881 tooltipPositionElement: false,
9882 setActiveTooltipItem() { 9883 const itemId = this._getItemId(); 9884 if (!this.$el || !itemId) return; 9885 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 9886 this.activeTooltipItem = { 9887 attribute: attrId, 9888 item: itemId, 9889 index: 0 9890 }; 9891 this.tooltipPositionElement = this.$event ? this.$event.target : null; 9892 }, 9893 unsetActiveTooltipItem() { 9894 this.activeTooltipItem = false; 9895 } 9896 }, 9897 confProdPreSelect() 9898 ); 9899 9900 if (result.optionConfig && result.optionConfig.attributes) { 9901 const attributes = result.optionConfig.attributes; 9902 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 9903 let source = attributes; 9904 if (Array.isArray(attributes)) { 9905 source = {}; 9906 attributes.forEach(attr => { 9907 if (attr && attr.id) source[attr.id] = attr; 9908 }); 9909 } 9910 const values = Object.values(source); 9911 const wrapper = Object.assign(values, source); 9912 Object.defineProperty(wrapper, '__amxnotifWrapped', { 9913 value: true, 9914 enumerable: false 9915 }); 9916 result.optionConfig.attributes = wrapper; 9917 } 9918 } 9919 9920 return result; 9921 } 9922 9923 window.addEventListener('alpine:init', () => { 9924 Alpine.data('initConfigurableSwatchOptions_46699', initConfigurableSwatchOptions_46699); 9925 }, { 9926 once: true 9927 }); 9928 </script>
9928 9929 9930 <div x-data="initConfigurableSwatchOptions_46699" x-defer="intersect"> 9931 <div class="pagebuilder-home-hidden"> 9932 9933 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 9934 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 9935 <template x-if="showSwatches"> 9936 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46699-163" role="radiogroup" aria-label="Einband"> 9937 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 9938 <div :data-option-id="item.id" style="display: contents"> 9939 <div x-id="getSwatchOptionHtmlIdGroup"> 9940 <template x-if="optionIsEnabled"> 9941 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
9941self="unsetActiveTooltipItem"> 9942 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46699-163"> 9943 <div> 9944 <template x-if="isTextSwatch"> 9945 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 9946 </template> 9947 <template x-if="!optionIsActive(163, item.id)"> 9948 <div> 9949 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 9950 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 9951 </svg> 9952 </div> 9953 </template> 9954 </div> 9955 </label> 9956 </template> 9957</div> </div> 9958 </template> 9959 </div> 9960 </template> 9961 </div> 9962 </div> 9963 </div> 9964 </div> 9965 9966 <div class="meta py-4 pagebuilder-home-hidden"> 9967 <div x-data="initMarketingShortText_46699()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 9968 <!-- Marketing short text --> 9969 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 9970 </div> 9971 9972 <!-- Short description --> 9973 <div class="short-description"> 9974 Die Filmphilosophie ist im Laufe des 20. Jahrhunderts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo Münsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried ... <a href="https://meiner.de/fmv_de/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982" class="underline">mehr</a> 9975 </div> 9976 </div> 9977 9978 <!-- Series --> 9979 <div class="mb-1"> 9980 <span class="sr-only">Reihe:</span> 9981 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 9982 <span>Blaue Reihe</span> 9983 </a> 9984 </div> 9985 9986 9987 <div class="mb-1"> 9988 <span x-data="initEditionText_46699()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 9989 <!-- Marketing short text --> 9990 <span class="edition-text" x-html="editionText"></span> 2026, 208 Seiten. </span> 9991 </div> 9992 9993 </div> 9994 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 9995 9996 <div class="justify-end" x-data="initPriceBox()" @update-prices-46699.window="updatePrice($event.detail);"> 9997 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46699" data-price-box="product-id-46699"><span class="normal-price"> 9998 <span x-data x-id="['product\u002Dprice\u002D46699']" class="price-container price-final_price tax weee"> 9999 <span class="price-label">Ab</span> 10000 <span class="approx-price">ca. </span> 10001 <span :id="$id('product\u002Dprice\u002D46699')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 10002 </span> 10003</span> 10004 10005 10006</div> </div> 10007 10008 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 10009 <div class="open-access-container open-access-container-46699 flex mt-4 ml-auto sm:mt-0 hidden"> 10010 <div class="text-gray-700"> 10011 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 10012 <a href="" target="_blank" class="open-access-external-link m-auto "> 10013 Kostenlos online lesen </a> 10014 </button> 10015 </div> 10016 </div> 10017 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Von süßen Lügen und bilderlosen Bildern" aria-label="In den Warenkorb Von süßen Lügen und bilderlosen Bildern" data-addto="cart"> 10018 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 10019 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
100190 014 0z"></path> 10020</svg> 10021 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 10022 In den Warenkorb </span> 10023 </button> 10024 10025<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46699)" aria-label="Zur Wunschliste hinzufügen Von süßen Lügen und bilderlosen Bildern" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 10026 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 10027 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 10028</svg> 10029</button> 10030 </div> 10031 </div> 10032 </div> 10033
10033<script> 10034 function initMarketingShortText_46699() { 10035 var marketingShortTextConfig = {}; 10036 if (typeof window.initConfigurableSwatchOptions_46699 === "function") { 10037 var fullConfig = window.initConfigurableSwatchOptions_46699().optionConfig 10038 var marketingShortTextConfig = fullConfig.marketing_short_text; 10039 } 10040 return { 10041 marketingShortText: '', 10042 config: marketingShortTextConfig, 10043 productId: '46699', 10044 getMarketingShortText(detail) { 10045 this.marketingShortText = detail.productIndex ? 10046 this.config[detail.productIndex] : 10047 null; 10048 }, 10049 eventListeners: { 10050 ['@listing-configurable-selection-changed.window'](event) { 10051 if (this.productId == event.detail.productId) { 10052 this.getMarketingShortText(event.detail); 10053 } 10054 10055 } 10056 } 10057 } 10058 } 10059 10060 function initEditionText_46699() { 10061 var editionTextConfig = {}; 10062 if (typeof window.initConfigurableSwatchOptions_46699 === "function") { 10063 var fullConfig = window.initConfigurableSwatchOptions_46699().optionConfig 10064 var editionTextConfig = fullConfig.edition; 10065 } 10066 return { 10067 editionText: '', 10068 config: editionTextConfig, 10069 productId: '46699', 10070 getEditionText(detail) { 10071 this.editionText = detail.productIndex ? 10072 this.config[detail.productIndex] : 10073 null; 10074 }, 10075 eventListeners: { 10076 ['@listing-configurable-selection-changed.window'](event) { 10077 if (this.productId == event.detail.productId) { 10078 this.getEditionText(event.detail); 10079 } 10080 10081 } 10082 } 10083 } 10084 } 10085 </script>
10085 10086 </form> 10087 10088 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47158/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21427"> 10089 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47158"> 10090 <a href="https://meiner.de/fmv_de/rousseau-21427" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 10091 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47158.window="$el.src = $event.detail" alt="Rousseau" title="Rousseau" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351299_1.jpg" :style="{ 10092 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 10093 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 10094 }"> 10095 </a> 10096 <div class="product-info flex flex-col flex-grow "> 10097 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 10098 <div class="mb-2 text-sm text-gray-500 font-medium"> 10099 <a href="https://meiner.de/fmv_de/person/Skadi-Siiri-Krause-21426/" class="mb-2"> 10100 Skadi Siiri Krause </a> 10101 </div> 10102 <a class="product-item-link" href="https://meiner.de/fmv_de/rousseau-21427"> 10103 Rousseau </a> 10104 </div> 10105 10106 <div x-data="initEditionText_47158()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 10107 <!-- Marketing short text --> 10108 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 10109 </div> 10110 </div> 10111 10112 <div class="py-1 grid mb-4 "> 10113 10114 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47158,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47158,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46503":"1","47114":"1","47115":"1"},"childProductsAlertStatus":{"46503":"0","47114":"0","47115":"0"},"indexMapping":{"163:15":46503,"163:8":47114,"163:9":47115},"availabilityMessages":{"46503":"Lieferbar innerhalb von 3-5 Tagen","47114":"Download sofort verf\u00fcgbar","47115":"Download sofort verf\u00fcgbar"},"openAccess":{"47158":{"status":0},"46503":{"status":0},"47114":{"status":0},"47115":{"status":0}}},"availabilityMessages":{"46503":"Lieferbar innerhalb von 3-5 Tagen","47114":"Download sofort verf\u00fcgbar","47115":"Download sofort verf\u00fcgbar"},"openAccess":{"47158":{"status":0},"46503":{"status":0},"47114":{"status":0},"47115":{"status":0}}}'> 10115 <template x-if="containerVisible"> 10116 <!-- Popup Trigger --> 10117 <div> 10118 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 10119 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
10120 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 10121 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 10122<title>bell</title></svg> 10123</span> 10124 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 10125 10126 <!-- Popup Modal --> 10127 <template x-if="showModal"> 10128 <template x-teleport=".page-wrapper"> 10129 <div x-cloak class="fixed inset-0 flex items-center justify-center 10130 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 10131 <div class="relative bg-white rounded-lg shadow-xl 10132 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 10133 <div class="p-6"> 10134 <!-- Subscription Form for Popup --> 10135 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 10136 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 10137 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 10138 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 10139 10140 <div class="flex flex-col gap-3"> 10141 <div class="flex-grow grow"> 10142 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 10143 shadow-xs focus:outline-none focus:outline-hidden 10144 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 10145 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 10146 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 10147 </div> 10148 <input type="hidden" name="product_id" :value="currentProductId"> 10149 <input type="hidden" name="type" value="email"> 10150 10151 10152 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 10153 10154 <div class="amxnotif_guest_action"> 10155 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 10156 rounded-md focus:outline-none 10157 focus:outline-hidden focus:ring-2 10158 focus:ring-offset-2 disabled:opacity-50 10159 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 10160 Benachrichtigen </button> 10161 </div> 10162 </div> 10163 10164 <div class="flex items-start pt-2"> 10165 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 10166 text-blue-600 border-gray-300 rounded-sm"> 10167 <label class="amxnotif-stock-gdrp-label cursor-pointer 10168 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 10169 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 10170 </div> 10171 </form> 10172 </div> 10173 10174 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 10175 hover:text-gray-600 transition-colors" aria-label="Schließen"> 10176 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 10177 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 10178<title>x</title></svg> 10179 </button> 10180 </div> 10181 </div> 10182 </template> 10183 </template> 10184 </div> 10185 </template> 10186 </div> 10187 10188<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47158" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47158,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46503":"1","47114":"1","47115":"1"},"childProductsAlertStatus":{"46503":"0","47114":"0","47115":"0"},"indexMapping":"{\u0022163:15\u0022:46503,\u0022163:8\u0022:47114,\u0022163:9\u0022:47115}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47158,"availabilityMessages":{"46503":"Lieferbar innerhalb von 3-5 Tagen","47114":"Download sofort verf\u00fcgbar","47115":"Download sofort verf\u00fcgbar"},"openAccess":{"47158":{"status":0},"46503":{"status":0},"47114":{"status":0},"47115":{"status":0}}}'> 10189 10190 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
10191 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 10192 <span x-html="optionsLabelText"></span> 10193 </p> 10194</div> </div> 10195 10196
10196<script> 10197 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 10198 try { 10199 const attributes = (config && config.attributes) ? config.attributes : null; 10200 if (!attributes) return []; 10201 let attr = null; 10202 if (Array.isArray(attributes)) { 10203 for (let i = 0; i < attributes.length; i++) { 10204 const a = attributes[i]; 10205 if (a && a.id == attrId) { 10206 attr = a; 10207 break; 10208 } 10209 } 10210 } else { 10211 attr = attributes[attrId]; 10212 } 10213 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 10214 } catch (e) { 10215 return []; 10216 } 10217 }; 10218 10219 function initConfigurableSwatchOptions_47158() { 10220 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46503"]},{"id":"8","label":"PDF","products":["47114"]},{"id":"9","label":"EPUB","products":["47115"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46503":{"baseOldPrice":{"amount":32.616821429907},"oldPrice":{"amount":34.9},"basePrice":{"amount":32.616821429907},"finalPrice":{"amount":34.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47114":{"baseOldPrice":{"amount":24.289718626168},"oldPrice":{"amount":25.99},"basePrice":{"amount":24.289718626168},"finalPrice":{"amount":25.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47115":{"baseOldPrice":{"amount":24.289718626168},"oldPrice":{"amount":25.99},"basePrice":{"amount":24.289718626168},"finalPrice":{"amount":25.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":24.289718626168},"oldPrice":{"amount":25.99},"basePrice":{"amount":21.840335134454},"finalPrice":{"amount":25.99},"isApproxPrice":null},"productId":"47158","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46503":{"163":"15"},"47114":{"163":"8"},"47115":{"163":"9"}},"salable":{"163":{"15":["46503"],"8":["47114"],"9":["47115"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46503":"005127","47114":"005128","47115":"005129"},"output":{"46503":"Kartoniert","47114":"PDF","47115":"EPUB"},"original_name":{"46503":"","47114":"","47115":""},"openaccess_license_link":{"46503":"","47114":"","47115":""},"openaccess_license_name":{"46503":"","47114":"","47115":""},"openaccess_external_link":{"46503":"","47114":"","47115":""},"gpsr_safety_info":{"46503":"","47114":"","47115":""},"description":{"46503":"Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufkl\u00e4rung. Zugleich war er derjenige, der die selbsternannten \u00bbphilosophes\u00ab am grundlegendsten kritisierte, da er dem individuell-menschlichen Aufkl\u00e4rungsprogramm die Forderung nach politischer Emanzipation der B\u00fcrger entgegenstellte. Dadurch wurde er auch zu einem scharfen Kritiker der Naturrechtstheorien, deren wichtigste Grundannahmen \u2013 die Gleichheit und Freiheit der B\u00fcrger sowie die vermeintliche K\u00fcnstlichkeit des Staates und seiner Grundgesetze \u2013 er jedoch \u00fcbernahm.<br\/><br\/>Doch Rousseau rechtfertigte weder die Monarchie noch eine feudale Gesellschaftsordnung, wie es seine Vorg\u00e4nger und Zeitgenossen taten. Er kritisierte sogar den von den \u00d6konomen seiner Zeit verteidigten Eigentumsbegriff, der die Interessen gro\u00dfer Landbesitzer und H\u00e4ndler \u00fcber die des Staates stellte. Welche Ziele aber verfolgte Rousseau mit seiner Kritik? Dieser Frage geht der vorliegende Band nach, indem er den Autor in die Diskurse seiner Zeit einordnet und insbesondere auch dessen Rolle in den politischen Debatten seiner Heimatstadt Genf eingehend er\u00f6rtert.<br\/><br\/>Der Band bietet dar\u00fcber hinaus eine Einf\u00fchrung in Rousseaus Schriften im Kontext zeitgen\u00f6ssischer Auseinandersetzungen.","47114":"Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufkl\u00e4rung. Zugleich war er derjenige, der die selbsternannten \u00bbphilosophes\u00ab am grundlegendsten kritisierte, da er dem individuell-menschlichen Aufkl\u00e4rungsprogramm die Forderung nach politischer Emanzipation der B\u00fcrger entgegenstellte. Dadurch wurde er auch zu einem scharfen Kritiker der Naturrechtstheorien, deren wichtigste Grundannahmen \u2013 die Gleichheit und Freiheit der B\u00fcrger sowie die vermeintliche K\u00fcnstlichkeit des Staates und seiner Grundgesetze \u2013 er jedoch \u00fcbernahm.<br\/><br\/>Doch Rousseau rechtfertigte weder die Monarchie noch eine feudale Gesellschaftsordnung, wie es seine Vorg\u00e4nger und Zeitgenossen taten. Er kritisierte sogar den von den \u00d6konomen seiner Zeit verteidigten Eigentumsbegriff, der die Interessen gro\u00dfer Landbesitzer und H\u00e4ndler \u
1022000fcber die des Staates stellte. Welche Ziele aber verfolgte Rousseau mit seiner Kritik? Dieser Frage geht der vorliegende Band nach, indem er den Autor in die Diskurse seiner Zeit einordnet und insbesondere auch dessen Rolle in den politischen Debatten seiner Heimatstadt Genf eingehend er\u00f6rtert.<br\/><br\/>Der Band bietet dar\u00fcber hinaus eine Einf\u00fchrung in Rousseaus Schriften im Kontext zeitgen\u00f6ssischer Auseinandersetzungen.","47115":"Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufkl\u00e4rung. Zugleich war er derjenige, der die selbsternannten \u00bbphilosophes\u00ab am grundlegendsten kritisierte, da er dem individuell-menschlichen Aufkl\u00e4rungsprogramm die Forderung nach politischer Emanzipation der B\u00fcrger entgegenstellte. Dadurch wurde er auch zu einem scharfen Kritiker der Naturrechtstheorien, deren wichtigste Grundannahmen \u2013 die Gleichheit und Freiheit der B\u00fcrger sowie die vermeintliche K\u00fcnstlichkeit des Staates und seiner Grundgesetze \u2013 er jedoch \u00fcbernahm.<br\/><br\/>Doch Rousseau rechtfertigte weder die Monarchie noch eine feudale Gesellschaftsordnung, wie es seine Vorg\u00e4nger und Zeitgenossen taten. Er kritisierte sogar den von den \u00d6konomen seiner Zeit verteidigten Eigentumsbegriff, der die Interessen gro\u00dfer Landbesitzer und H\u00e4ndler \u00fcber die des Staates stellte. Welche Ziele aber verfolgte Rousseau mit seiner Kritik? Dieser Frage geht der vorliegende Band nach, indem er den Autor in die Diskurse seiner Zeit einordnet und insbesondere auch dessen Rolle in den politischen Debatten seiner Heimatstadt Genf eingehend er\u00f6rtert.<br\/><br\/>Der Band bietet dar\u00fcber hinaus eine Einf\u00fchrung in Rousseaus Schriften im Kontext zeitgen\u00f6ssischer Auseinandersetzungen."},"doi":{"46503":"","47114":"10.28937\/978-3-7873-5128-2","47115":""},"isbn":{"46503":"978-3-7873-5127-5","47114":"978-3-7873-5128-2","47115":"978-3-7873-5129-9"},"marketing_short_text":{"46503":"","47114":"","47115":""},"recension_text":{"46503":"","47114":"","47115":""},"language":{"46503":"","47114":"","47115":""},"cover":{"46503":"Kartoniert","47114":"","47115":""},"pages":{"46503":"372 Seiten.","47114":"372 Seiten.","47115":"372 Seiten."},"edition":{"46503":"","47114":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","47115":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46503":"Nein","47114":"Nein","47115":"Nein"},"copyright_year":{"46503":"","47114":"","47115":""},"vlb_tix_link":{"46503":"https:\/\/neu.vlbtix.de\/products\/9783787351275?type=gtin","47114":"","47115":""},"defaultValues":{"163":"15"}}; 10221 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 10222 10223 if (typeof window.amxnotif_wrap_attributes === 'function') { 10224 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 10225 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 10226 } 10227 10228 const configurableOptionsComponent = initConfigurableOptions( 10229 '47158', 10230 config 10231 ); 10232 const swatchOptionsComponent = initSwatchOptions( 10233 swatchConfig 10234 ); 10235 10236 // DWS - Configurable product preselect start 10237 const confProdPreSelect = () => { 10238 return { 10239 preselectQuerystringItems() { 10240 var data = {"id":"46503","output":"15"}; 10241 const urlQueryParams = new URLSearchParams(window.location.search); 10242 10243 this.$nextTick(() => { 10244 setTimeout(() => { 10245 const rootEl = this.$root || this.$el; 10246 if (!rootEl) return; 10247 10248 const applySelection = (attrCode, attrValue) => { 10249 if (attrValue === undefined || attrValue === null || attrValue === '') return; 10250 10251 const attributes = Object.values(this.optionConfig.attributes || {}); 10252 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 10253 10254 if (targetAttr) { 10255 const attrId = String(targetAttr.id); 10256 const optionVal = String(attrValue); 10257 10258 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 10259 10260 if (inputEl) { 10261 inputEl.click(); 10262 inputEl.dispatchEvent(new Event('change', { 10263 bubbles: true 10264 })); 10265 } else { 10266 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 10267 if (selectEl) { 10268 selectEl.value = optionVal; 10269 selectEl.dispatchEvent(new Event('change', { 10270 bubbles: true 10271 })); 10272 } 10273 } 10274 10275 this.changeOption(attrId, optionVal, false); 10276 } 10277 }; 10278 10279 if (data && typeof data === 'object') {
10280 Object.keys(data).forEach(key => applySelection(key, data[key])); 10281 } 10282 10283 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 10284 if (attribute && attribute.code) { 10285 let optionValue = urlQueryParams.get(attribute.code); 10286 if (optionValue) { 10287 let optionId = false; 10288 const attributes = Object.values(this.optionConfig.attributes || {}); 10289 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 10290 10291 let found = false; 10292 Object.values(targetAttr.options).map(option => { 10293 if (found === false && option.label === optionValue) { 10294 optionId = option.id; 10295 found = true; 10296 } 10297 }); 10298 10299 const attrId = String(targetAttr.id); 10300 let optionVal = String(optionValue); 10301 if (found) { 10302 optionVal = String(optionId); 10303 } 10304 10305 applySelection(attribute.code, optionVal); 10306 } 10307 } 10308 }); 10309 }, 100); 10310 }); 10311 } 10312 } 10313 }; 10314 // DWS - Configurable product preselect end 10315 10316 const result = Object.assign( 10317 configurableOptionsComponent, 10318 swatchOptionsComponent, { 10319 productId: '47158', 10320 productIndex: 0, 10321 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 10322 showSwatches: false, 10323 precalcOptions: {}, 10324 originalInit: configurableOptionsComponent.init, 10325 init() { 10326 try { 10327 this.precalcOptions = {}; 10328 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 10329 this.preselectQuerystringItems(); 10330 if (Array.isArray(attrSource)) { 10331 attrSource.forEach(attr => { 10332 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 10333 }); 10334 } else if (attrSource && typeof attrSource === 'object') { 10335 Object.keys(attrSource).forEach(id => { 10336 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 10337 }); 10338 } 10339 } catch (e) { 10340 console.error('Pre-calc error:', e); 10341 } 10342 10343 if (typeof this.originalInit === 'function') { 10344 this.originalInit(); 10345 } 10346 10347 try { 10348 this.initShowSwatchesIntersect(); 10349 } catch (e) { 10350 console.error('intersect error:', e); 10351 } 10352 }, 10353 10354 updateGallery() { 10355 if (!this.productIndex) return; 10356 10357 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 10358 method: 'GET', 10359 headers: { 10360 'Content-Type': 'application/json', 10361 'X-Requested-With': 'XMLHttpRequest' 10362 } 10363 }) 10364 .then(response => response.json()) 10365 .then(data => { 10366 if (data && data.medium) { 10367 window.dispatchEvent(new CustomEvent("update-gallery-471
1036758", { 10368 detail: data.medium 10369 })); 10370 } 10371 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 10372 }, 10373 10374 10375 initShowSwatchesIntersect() { 10376 const observer = new IntersectionObserver(entries => { 10377 if (entries[0].isIntersecting) { 10378 this.showSwatches = true; 10379 observer.disconnect(); 10380 } 10381 }, { 10382 rootMargin: '512px' 10383 }); 10384 observer.observe(this.$el); 10385 }, 10386 getOptions(attrId) { 10387 return this.precalcOptions[attrId] || []; 10388 }, 10389 getOptionsByAttrId() { 10390 return this.getOptions(this.$el.dataset.attributeId); 10391 }, 10392 _getItemId() { 10393 if (this.item && this.item.id) return this.item.id; 10394 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 10395 }, 10396 getSwatchOptionHtmlId() { 10397 const itemId = this._getItemId(); 10398 return itemId ? this.$id(`attribute-option-47158-${itemId}`) : ''; 10399 }, 10400 getSwatchOptionHtmlIdGroup() { 10401 const itemId = this._getItemId(); 10402 return itemId ? [`attribute-option-47158-${itemId}`] : []; 10403 }, 10404 getAttributeSwatchData(attributeId) { 10405 const data = Object.assign({}, this.swatchConfig[attributeId]); 10406 if (data['additional_data']) { 10407 try { 10408 data['details'] = JSON.parse(data['additional_data']); 10409 } catch (e) { 10410 data['details'] = {}; 10411 } 10412 } 10413 return data; 10414 }, 10415 getSwatchType(attributeId, optionId) { 10416 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 10417 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 10418 } 10419 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 10420 this.swatchConfig[attributeId].details.swatch_input_type : 10421 "empty"; 10422 if (type === 'visual') { 10423 const config = this.swatchConfig[attributeId]; 10424 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 10425 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 10426 } 10427 // Fallback to first option type 10428 for (const oId in config) { 10429 if (config[oId] && typeof config[oId].type !== 'undefined') { 10430 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 10431 } 10432 } 10433 } 10434 return type; 10435 }, 10436 mapSwatchTypeNumberToTypeCode(type) { 10437 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 10438 }, 10439 isTextSwatch() { 10440 const itemId = this._getItemId(); 10441 if (!this.$el || !itemId) return false; 10442 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10443 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false;
10444 }, 10445 10446 getSwatchText() { 10447 const itemId = this._getItemId(); 10448 if (this.item) return this.item.label || ''; 10449 if (!this.$el || !itemId) return ''; 10450 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10451 const options = attrId ? this.getOptions(attrId) : []; 10452 const opt = options.find(o => o.id == itemId); 10453 return opt ? opt.label : ''; 10454 }, 10455 getSwatchBackgroundStyle() { 10456 const itemId = this._getItemId(); 10457 if (!this.$el || !itemId) return ''; 10458 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10459 if (!attrId) return ''; 10460 const type = this.getSwatchType(attrId, itemId); 10461 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 10462 this.swatchConfig[attrId][itemId] : 10463 null; 10464 if (!swatchData) return ''; 10465 if (type === "color") return 'background-color:' + swatchData.value; 10466 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 10467 return ''; 10468 }, 10469 swatchOptionClasses() { 10470 const itemId = this._getItemId(); 10471 if (!this.$el || !itemId) return {}; 10472 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10473 return { 10474 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 10475 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 10476 'w-6 h-6': !this.isTextSwatch() 10477 } 10478 }, 10479 10480 onFocusSwatchItem() { 10481 const itemId = this._getItemId(); 10482 if (itemId) this.focusedLabel = itemId; 10483 }, 10484 onChangeOption() { 10485 const itemId = this._getItemId(); 10486 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 10487 if (attrId && itemId) this.changeOption(attrId, itemId); 10488 }, 10489 changeOption(attributeId, value) { 10490 if (value === '') { 10491 return; 10492 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 10493 } else { 10494 this.selectedValues[attributeId] = value; 10495 } 10496 10497 this.findSimpleIndex(); 10498 this.findAllowedAttributeOptions(); 10499 this.updatePrices(); 10500 this.updateGallery(); 10501 10502 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 10503 this.findProductIdsForPartialSelection(this.selectedValues) : []; 10504 10505 const eventDetail = { 10506 productId: this.productId, 10507 optionId: attributeId, 10508 value: value, 10509 productIndex: this.productIndex || 0, 10510 selectedValues: this.selectedValues, 10511 candidates: candidates, 10512 sourceElement: this.$el 10513 }; 10514 10515 // Dispatch for Amasty 10516 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 10517 detail: eventDetail 10518 })); 10519 10520 // Dispatch for Hyva listing 10521 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 10522 detail: eventDetail 10523 })); 10524 }, 10525 10526 10527 clearOptionIfActive() { 10528 const itemId = this._getItemId(); 10529 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 10530 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 10531 this.changeOption(attrId, ''); 10532 10533 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 10534 if (!input && this.$el?.querySelector) { 10535 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 10536 } 10537 if (!input && this.$el?.closest) { 10538 const root = this.$el.closest('[data-product-id]') || this.$el; 10539 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 10540 } 10541 if (input) { 10542 input.checked = false;
10543 } 10544 } 10545 }, 10546 get optionIsEnabled() { 10547 const itemId = this._getItemId(); 10548 if (!this.$el || !itemId) return true; 10549 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10550 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 10551 return !!allowedOptions.find(opt => opt.id == itemId); 10552 }, 10553 get isSelected() { 10554 const itemId = this._getItemId(); 10555 if (!this.$el || !itemId) return false; 10556 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10557 return attrId ? (this.selectedValues[attrId] == itemId) : false; 10558 }, 10559 get isSwatchRequired() { 10560 if (!this.$el) return false; 10561 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10562 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 10563 }, 10564 focusedLabel: false, 10565 activeTooltipItem: false, 10566 tooltipPositionElement: false,
10567 setActiveTooltipItem() { 10568 const itemId = this._getItemId(); 10569 if (!this.$el || !itemId) return; 10570 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 10571 this.activeTooltipItem = { 10572 attribute: attrId, 10573 item: itemId, 10574 index: 0 10575 }; 10576 this.tooltipPositionElement = this.$event ? this.$event.target : null; 10577 }, 10578 unsetActiveTooltipItem() { 10579 this.activeTooltipItem = false; 10580 } 10581 }, 10582 confProdPreSelect() 10583 ); 10584 10585 if (result.optionConfig && result.optionConfig.attributes) { 10586 const attributes = result.optionConfig.attributes; 10587 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 10588 let source = attributes; 10589 if (Array.isArray(attributes)) { 10590 source = {}; 10591 attributes.forEach(attr => { 10592 if (attr && attr.id) source[attr.id] = attr; 10593 }); 10594 } 10595 const values = Object.values(source); 10596 const wrapper = Object.assign(values, source); 10597 Object.defineProperty(wrapper, '__amxnotifWrapped', { 10598 value: true, 10599 enumerable: false 10600 }); 10601 result.optionConfig.attributes = wrapper; 10602 } 10603 } 10604 10605 return result; 10606 } 10607 10608 window.addEventListener('alpine:init', () => { 10609 Alpine.data('initConfigurableSwatchOptions_47158', initConfigurableSwatchOptions_47158); 10610 }, { 10611 once: true 10612 }); 10613 </script>
10613 10614 10615 <div x-data="initConfigurableSwatchOptions_47158" x-defer="intersect"> 10616 <div class="pagebuilder-home-hidden"> 10617 10618 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 10619 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 10620 <template x-if="showSwatches"> 10621 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47158-163" role="radiogroup" aria-label="Einband"> 10622 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 10623 <div :data-option-id="item.id" style="display: contents"> 10624 <div x-id="getSwatchOptionHtmlIdGroup"> 10625 <template x-if="optionIsEnabled"> 10626 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
10626self="unsetActiveTooltipItem"> 10627 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47158-163"> 10628 <div> 10629 <template x-if="isTextSwatch"> 10630 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 10631 </template> 10632 <template x-if="!optionIsActive(163, item.id)"> 10633 <div> 10634 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 10635 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 10636 </svg> 10637 </div> 10638 </template> 10639 </div> 10640 </label> 10641 </template> 10642</div> </div> 10643 </template> 10644 </div> 10645 </template> 10646 </div> 10647 </div> 10648 </div> 10649 </div> 10650 10651 <div class="meta py-4 pagebuilder-home-hidden"> 10652 <div x-data="initMarketingShortText_47158()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 10653 <!-- Marketing short text --> 10654 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 10655 </div> 10656 10657 <!-- Short description --> 10658 <div class="short-description"> 10659 Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufklärung. Zugleich war er derjenige, der die selbsternannten »philosophes« am grundlegendsten kritisierte, da ... <a href="https://meiner.de/fmv_de/rousseau-21427" class="underline">mehr</a> 10660 </div> 10661 </div> 10662 10663 <!-- Series --> 10664 <div class="mb-1"> 10665 <span class="sr-only">Reihe:</span> 10666 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 10667 <span>Blaue Reihe</span> 10668 </a> 10669 </div> 10670 10671 10672 <div class="mb-1"> 10673 <span x-data="initEditionText_47158()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 10674 <!-- Marketing short text --> 10675 <span class="edition-text" x-html="editionText"></span> 2026, 372 Seiten. </span> 10676 </div> 10677 10678 </div> 10679 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 10680 10681 <div class="justify-end" x-data="initPriceBox()" @update-prices-47158.window="updatePrice($event.detail);"> 10682 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47158" data-price-box="product-id-47158"><span class="normal-price"> 10683 <span x-data x-id="['product\u002Dprice\u002D47158']" class="price-container price-final_price tax weee"> 10684 <span class="price-label">Ab</span> 10685 <span class="approx-price">ca. </span> 10686 <span :id="$id('product\u002Dprice\u002D47158')" data-price-amount="25.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">25,99 €</span></span> 10687 </span> 10688</span> 10689 10690 10691</div> </div> 10692 10693 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 10694 <div class="open-access-container open-access-container-47158 flex mt-4 ml-auto sm:mt-0 hidden"> 10695 <div class="text-gray-700"> 10696 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 10697 <a href="" target="_blank" class="open-access-external-link m-auto "> 10698 Kostenlos online lesen </a> 10699 </button> 10700 </div> 10701 </div> 10702 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Rousseau" aria-label="In den Warenkorb Rousseau" data-addto="cart"> 10703 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 10704 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
107040 014 0z"></path> 10705</svg> 10706 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 10707 In den Warenkorb </span> 10708 </button> 10709 10710<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47158)" aria-label="Zur Wunschliste hinzufügen Rousseau" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 10711 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 10712 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 10713</svg> 10714</button> 10715 </div> 10716 </div> 10717 </div> 10718
10718<script> 10719 function initMarketingShortText_47158() { 10720 var marketingShortTextConfig = {}; 10721 if (typeof window.initConfigurableSwatchOptions_47158 === "function") { 10722 var fullConfig = window.initConfigurableSwatchOptions_47158().optionConfig 10723 var marketingShortTextConfig = fullConfig.marketing_short_text; 10724 } 10725 return { 10726 marketingShortText: '', 10727 config: marketingShortTextConfig, 10728 productId: '47158', 10729 getMarketingShortText(detail) { 10730 this.marketingShortText = detail.productIndex ? 10731 this.config[detail.productIndex] : 10732 null; 10733 }, 10734 eventListeners: { 10735 ['@listing-configurable-selection-changed.window'](event) { 10736 if (this.productId == event.detail.productId) { 10737 this.getMarketingShortText(event.detail); 10738 } 10739 10740 } 10741 } 10742 } 10743 } 10744 10745 function initEditionText_47158() { 10746 var editionTextConfig = {}; 10747 if (typeof window.initConfigurableSwatchOptions_47158 === "function") { 10748 var fullConfig = window.initConfigurableSwatchOptions_47158().optionConfig 10749 var editionTextConfig = fullConfig.edition; 10750 } 10751 return { 10752 editionText: '', 10753 config: editionTextConfig, 10754 productId: '47158', 10755 getEditionText(detail) { 10756 this.editionText = detail.productIndex ? 10757 this.config[detail.productIndex] : 10758 null; 10759 }, 10760 eventListeners: { 10761 ['@listing-configurable-selection-changed.window'](event) { 10762 if (this.productId == event.detail.productId) { 10763 this.getEditionText(event.detail); 10764 } 10765 10766 } 10767 } 10768 } 10769 } 10770 </script>
10770 10771 </form> 10772 10773 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47111/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21363"> 10774 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="47111"> 10775 <a href="https://meiner.de/fmv_de/a-ber-die-gefahr-21363" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 10776 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47111.window="$el.src = $event.detail" alt="Über die Gefahr" title="Über die Gefahr" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350988_1.jpg" :style="{ 10777 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 10778 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 10779 }"> 10780 </a> 10781 <div class="product-info flex flex-col flex-grow "> 10782 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 10783 <div class="mb-2 text-sm text-gray-500 font-medium"> 10784 <a href="https://meiner.de/fmv_de/person/Heiko-Christians-3418/" class="mb-2"> 10785 Heiko Christians </a> 10786 </div> 10787 <a class="product-item-link" href="https://meiner.de/fmv_de/a-ber-die-gefahr-21363"> 10788 Über die Gefahr </a> 10789 </div> 10790 10791 <div x-data="initEditionText_47111()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 10792 <!-- Marketing short text --> 10793 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 10794 </div> 10795 </div> 10796 10797 <div class="py-1 grid mb-4 "> 10798 10799 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47111,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47111,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46919":"1","47093":"1","47218":"1"},"childProductsAlertStatus":{"46919":"0","47093":"0","47218":"0"},"indexMapping":{"163:15":46919,"163:8":47093,"163:9":47218},"availabilityMessages":{"46919":"Lieferbar innerhalb von 3-5 Tagen","47093":"Download sofort verf\u00fcgbar","47218":"Download sofort verf\u00fcgbar"},"openAccess":{"47111":{"status":0},"46919":{"status":0},"47093":{"status":0},"47218":{"status":0}}},"availabilityMessages":{"46919":"Lieferbar innerhalb von 3-5 Tagen","47093":"Download sofort verf\u00fcgbar","47218":"Download sofort verf\u00fcgbar"},"openAccess":{"47111":{"status":0},"46919":{"status":0},"47093":{"status":0},"47218":{"status":0}}}'> 10800 <template x-if="containerVisible"> 10801 <!-- Popup Trigger --> 10802 <div> 10803 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 10804 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
10805 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 10806 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 10807<title>bell</title></svg> 10808</span> 10809 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 10810 10811 <!-- Popup Modal --> 10812 <template x-if="showModal"> 10813 <template x-teleport=".page-wrapper"> 10814 <div x-cloak class="fixed inset-0 flex items-center justify-center 10815 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 10816 <div class="relative bg-white rounded-lg shadow-xl 10817 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 10818 <div class="p-6"> 10819 <!-- Subscription Form for Popup --> 10820 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 10821 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 10822 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 10823 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 10824 10825 <div class="flex flex-col gap-3"> 10826 <div class="flex-grow grow"> 10827 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 10828 shadow-xs focus:outline-none focus:outline-hidden 10829 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 10830 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 10831 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 10832 </div> 10833 <input type="hidden" name="product_id" :value="currentProductId"> 10834 <input type="hidden" name="type" value="email"> 10835 10836 10837 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 10838 10839 <div class="amxnotif_guest_action"> 10840 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 10841 rounded-md focus:outline-none 10842 focus:outline-hidden focus:ring-2 10843 focus:ring-offset-2 disabled:opacity-50 10844 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 10845 Benachrichtigen </button> 10846 </div> 10847 </div> 10848 10849 <div class="flex items-start pt-2"> 10850 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 10851 text-blue-600 border-gray-300 rounded-sm"> 10852 <label class="amxnotif-stock-gdrp-label cursor-pointer 10853 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 10854 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 10855 </div> 10856 </form> 10857 </div> 10858 10859 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 10860 hover:text-gray-600 transition-colors" aria-label="Schließen"> 10861 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 10862 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 10863<title>x</title></svg> 10864 </button> 10865 </div> 10866 </div> 10867 </template> 10868 </template> 10869 </div> 10870 </template> 10871 </div> 10872 10873<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47111" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47111,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46919":"1","47093":"1","47218":"1"},"childProductsAlertStatus":{"46919":"0","47093":"0","47218":"0"},"indexMapping":"{\u0022163:15\u0022:46919,\u0022163:8\u0022:47093,\u0022163:9\u0022:47218}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47111,"availabilityMessages":{"46919":"Lieferbar innerhalb von 3-5 Tagen","47093":"Download sofort verf\u00fcgbar","47218":"Download sofort verf\u00fcgbar"},"openAccess":{"47111":{"status":0},"46919":{"status":0},"47093":{"status":0},"47218":{"status":0}}}'> 10874 10875 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
10876 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 10877 <span x-html="optionsLabelText"></span> 10878 </p> 10879</div> </div> 10880 10881
10881<script> 10882 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 10883 try { 10884 const attributes = (config && config.attributes) ? config.attributes : null; 10885 if (!attributes) return []; 10886 let attr = null; 10887 if (Array.isArray(attributes)) { 10888 for (let i = 0; i < attributes.length; i++) { 10889 const a = attributes[i]; 10890 if (a && a.id == attrId) { 10891 attr = a; 10892 break; 10893 } 10894 } 10895 } else { 10896 attr = attributes[attrId]; 10897 } 10898 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 10899 } catch (e) { 10900 return []; 10901 } 10902 }; 10903 10904 function initConfigurableSwatchOptions_47111() { 10905 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46919"]},{"id":"8","label":"PDF","products":["47093"]},{"id":"9","label":"EPUB","products":["47218"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46919":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47093":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47218":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"47111","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46919":{"163":"15"},"47093":{"163":"8"},"47218":{"163":"9"}},"salable":{"163":{"15":["46919"],"8":["47093"],"9":["47218"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46919":"005098","47093":"005099","47218":"005100"},"output":{"46919":"Kartoniert","47093":"PDF","47218":"EPUB"},"original_name":{"46919":"","47093":"","47218":""},"openaccess_license_link":{"46919":"","47093":"","47218":""},"openaccess_license_name":{"46919":"","47093":"","47218":""},"openaccess_external_link":{"46919":"","47093":"","47218":""},"gpsr_safety_info":{"46919":"","47093":"","47218":""},"description":{"46919":"Dies ist ein Buch \u00fcber die Gefahr. Tats\u00e4chlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine braucht. Wir leben in Zeiten, in denen die Gefahr wieder Konjunktur hat. Sie tritt ein, sie wird geahnt, taxiert, beschworen. \u2013 Nur erkl\u00e4rt wird sie als historisches, \u00e4sthetisches und semantisches Ph\u00e4nomen bisher nicht. Es gibt hingegen ganze soziologische Bibliotheken \u00fcber das Risiko. Das ist der plausible Komplement\u00e4rbegriff \u2013 solange es um Gewinne und Kalk\u00fcle, solange es um Wirtschaft geht. Die Semantik aber hat sich langsam, aber sicher verschoben \u2013 zugunsten der Gefahr. Die Weltlage legt das nahe bzw. best\u00e4tigt das. Die Gefahr hat eine lange und interessante Geschichte hinter sich, bevor sie die Gegenwart erreicht. Je nach Perspektive. Genau das aber ist bis heute g\u00e4nzlich unbearbeitet. Mit diesem Buch liegt erstmals ein historisch fundiertes, medienwissenschaftlich informiertes, gut lesbares philosophisches Essay zum Thema vor.","47093":"Dies ist ein Buch \u00fcber die Gefahr. Tats\u00e4chlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine braucht. Wir leben in Zeiten, in denen die Gefahr wieder Konjunktur hat. Sie tritt ein, sie wird geahnt, taxiert, beschworen. \u2013 Nur erkl\u00e4rt wird sie als historisches, \u00e4sthetisches und semantisches Ph\u00e4nomen bisher nicht. Es gibt hingegen ganze soziologische Bibliotheken \u00fcber das Risiko. Das ist der plausible Komplement\u00e4rbegriff \u2013 solange es um Gewinne und Kalk\u00fcle, solange es um Wirtschaft geht. Die Semantik aber hat sich langsam, aber sicher verschoben \u2013 zugunsten der Gefahr. Die Weltlage legt das nahe bzw. best\u00e4tigt das. Die Gefahr hat eine lange und interessante Geschichte hinter sich, bevor sie die Gegenwart erreicht. Je nach Perspektive. Genau das aber ist bis heute g\u00e4nzlich unbearbeitet. Mit diesem Buch liegt erstmals ein historisch fundiertes, medienwissenschaftlich informiertes, gut lesbares philosophisches Essay zum Thema vor.","47218":"Dies ist ein Buch \u00fcber die Gefahr. Tats\u00e4chlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine braucht. Wir leben in Zeiten, in denen die Gefahr wieder Konjunktur hat. Sie tritt ein, sie wird geahnt, taxiert, beschworen. \u2013 Nur erkl\u00e4rt wird sie als historisches, \u00e4sthetisches und semantisches Ph\u00e4nomen bisher nicht. Es gibt hingegen ganze soziologische Bibliotheken \u00fcber das Risiko. Das ist der plausible Komplement\u00e4rbegriff \u2013 solange es um Gewinne und Kalk\u00fcle, solange es um Wirtschaft geht. Die Semantik aber hat sich langsam, aber sicher verschoben \u2013 zugunsten der Gefahr. Die Weltlage legt das nahe bzw. best\u00e4tigt das. Die Gefahr hat eine lange und interessante Geschichte hinter sich, bevor sie die Gegenwart erreicht. Je nach Perspektive. Genau das aber ist bis heute g\u00e4nzlich unbearbeitet. Mit diesem Buch liegt erstmals ein historisch fundiertes, medienwissenschaftlich informiertes, gut lesbares philosophisches Essay zum Thema vor."},"doi":{"46919":"","47093":"10.28937\/978-3-7873-5099-5","47218":""},"isbn":{"46919":"978-3-7873-5098-8","47093":"978-3-7873-5099-5","47218":"978-3-7873-5100-8"},"marketing_short_text":{"46919":"","47093":"","47218":""},"recension_text":{"46919":"<div class=\"reviews\">\r\n<div class=\"review\">Christians hat ein kleines B\u00fcchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 29.07.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Nils Schniederjann bespricht \u00dcber die Gefahr bei Deutschlandfunk Kultur. Besonders hebt er Christians\u2019 ph\u00e4nomenologischen Blick hervor, der weder in \"rei\u00dferische Heldenverehrung\" noch in moralische Verurteilung verf\u00e4llt. Entstanden sei so ein \"gelehrtes, materialreiches Panorama eines Ph\u00e4nomens, das gerade jetzt wieder allgegenw\u00e4rtig scheint\".<\/div>\r\n<div class=\"source\"><a href=\"https:\/\/www.deutschlandfunkkultur.de\/buchkritik-heiko-christians-ueber-die-gefahr-eine-vorsichtige-annaeherung-100.html\"><em>Deutschlandfunk Kultur, Studio 9, 1. Juli 2026<\/em><\/a><\/div>\r\n<\/div>
10905","47093":"<div class=\"reviews\">\r\n<div class=\"review\">Christians hat ein kleines B\u00fcchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 29.07.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Nils Schniederjann bespricht \u00dcber die Gefahr bei Deutschlandfunk Kultur. Besonders hebt er Christians\u2019 ph\u00e4nomenologischen Blick hervor, der weder in \"rei\u00dferische Heldenverehrung\" noch in moralische Verurteilung verf\u00e4llt. Entstanden sei so ein \"gelehrtes, materialreiches Panorama eines Ph\u00e4nomens, das gerade jetzt wieder allgegenw\u00e4rtig scheint\".<\/div>\r\n<div class=\"source\"><a href=\"https:\/\/www.deutschlandfunkkultur.de\/buchkritik-heiko-christians-ueber-die-gefahr-eine-vorsichtige-annaeherung-100.html\"><em>Deutschlandfunk Kultur, Studio 9, 1. Juli 2026<\/em><\/a><\/div>\r\n<\/div>","47218":"<div class=\"reviews\">\r\n<div class=\"review\">Christians hat ein kleines B\u00fcchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 29.07.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Nils Schniederjann bespricht \u00dcber die Gefahr bei Deutschlandfunk Kultur. Besonders hebt er Christians\u2019 ph\u00e4nomenologischen Blick hervor, der weder in \"rei\u00dferische Heldenverehrung\" noch in moralische Verurteilung verf\u00e4llt. Entstanden sei so ein \"gelehrtes, materialreiches Panorama eines Ph\u00e4nomens, das gerade jetzt wieder allgegenw\u00e4rtig scheint\".<\/div>\r\n<div class=\"source\"><a href=\"https:\/\/www.deutschlandfunkkultur.de\/buchkritik-heiko-christians-ueber-die-gefahr-eine-vorsichtige-annaeherung-100.html\"><em>Deutschlandfunk Kultur, Studio 9, 1. Juli 2026<\/em><\/a><\/div>\r\n<\/div>"},"language":{"46919":"","47093":"","47218":""},"cover":{"46919":"Kartoniert","47093":"","47218":""},"pages":{"46919":"144","47093":"144","47218":"144"},"edition":{"46919":"","47093":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","47218":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46919":"Nein","47093":"Nein","47218":"Nein"},"copyright_year":{"46919":"","47093":"","47218":""},"vlb_tix_link":{"46919":"https:\/\/neu.vlbtix.de\/products\/9783787350988?type=gtin","47093":"","47218":""},"defaultValues":{"163":"15"}}; 10906 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 10907 10908 if (typeof window.amxnotif_wrap_attributes === 'function') { 10909 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 10910 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 10911 } 10912 10913 const configurableOptionsComponent = initConfigurableOptions( 10914 '47111', 10915 config 10916 ); 10917 const swatchOptionsComponent = initSwatchOptions( 10918 swatchConfig 10919 ); 10920 10921 // DWS - Configurable product preselect start 10922 const confProdPreSelect = () => { 10923 return { 10924 preselectQuerystringItems() { 10925 var data = {"id":"46919","output":"15"}; 10926 const urlQueryParams = new URLSearchParams(window.location.search); 10927 10928 this.$nextTick(() => { 10929 setTimeout(() => { 10930 const rootEl = this.$root || this.$el; 10931 if (!rootEl) return; 10932 10933 const applySelection = (attrCode, attrValue) => { 10934 if (attrValue === undefined || attrValue === null || attrValue === '') return; 10935 10936 const attributes = Object.values(this.optionConfig.attributes || {}); 10937 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 10938 10939 if (targetAttr) { 10940 const attrId = String(targetAttr.id); 10941 const optionVal = String(attrValue); 10942 10943 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 10944 10945 if (inputEl) { 10946 inputEl.click(); 10947 inputEl.dispatchEvent(new Event('change', { 10948 bubbles: true 10949 })); 10950 } else { 10951 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 10952 if (selectEl) { 10953 selectEl.value = optionVal; 10954 selectEl.dispatchEvent(new Event('change', { 10955 bubbles: true 10956 })); 10957 } 10958 } 10959 10960 this.changeOption(attrId, optionVal, false); 10961 } 10962 }; 10963 10964 if (data && typeof data === 'object') {
10965 Object.keys(data).forEach(key => applySelection(key, data[key])); 10966 } 10967 10968 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 10969 if (attribute && attribute.code) { 10970 let optionValue = urlQueryParams.get(attribute.code); 10971 if (optionValue) { 10972 let optionId = false; 10973 const attributes = Object.values(this.optionConfig.attributes || {}); 10974 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 10975 10976 let found = false; 10977 Object.values(targetAttr.options).map(option => { 10978 if (found === false && option.label === optionValue) { 10979 optionId = option.id; 10980 found = true; 10981 } 10982 }); 10983 10984 const attrId = String(targetAttr.id); 10985 let optionVal = String(optionValue); 10986 if (found) { 10987 optionVal = String(optionId); 10988 } 10989 10990 applySelection(attribute.code, optionVal); 10991 } 10992 } 10993 }); 10994 }, 100); 10995 }); 10996 } 10997 } 10998 }; 10999 // DWS - Configurable product preselect end 11000 11001 const result = Object.assign( 11002 configurableOptionsComponent, 11003 swatchOptionsComponent, { 11004 productId: '47111', 11005 productIndex: 0, 11006 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 11007 showSwatches: false, 11008 precalcOptions: {}, 11009 originalInit: configurableOptionsComponent.init, 11010 init() { 11011 try { 11012 this.precalcOptions = {}; 11013 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 11014 this.preselectQuerystringItems(); 11015 if (Array.isArray(attrSource)) { 11016 attrSource.forEach(attr => { 11017 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 11018 }); 11019 } else if (attrSource && typeof attrSource === 'object') { 11020 Object.keys(attrSource).forEach(id => { 11021 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 11022 }); 11023 } 11024 } catch (e) { 11025 console.error('Pre-calc error:', e); 11026 } 11027 11028 if (typeof this.originalInit === 'function') { 11029 this.originalInit(); 11030 } 11031 11032 try { 11033 this.initShowSwatchesIntersect(); 11034 } catch (e) { 11035 console.error('intersect error:', e); 11036 } 11037 }, 11038 11039 updateGallery() { 11040 if (!this.productIndex) return; 11041 11042 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 11043 method: 'GET', 11044 headers: { 11045 'Content-Type': 'application/json', 11046 'X-Requested-With': 'XMLHttpRequest' 11047 } 11048 }) 11049 .then(response => response.json()) 11050 .then(data => { 11051 if (data && data.medium) { 11052 window.dispatchEvent(new CustomEvent("update-gallery-47111", { 11053 detail: data.medium 11054 })); 11055 } 11056 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 11057 }, 11058 11059 11060 initShowSwatchesIntersect() { 11061 const observer = new IntersectionObserver(entries => { 11062 if (entries[0].isIntersecting) { 11063 this.showSwatches = true; 11064 observer.disconnect(); 11065 } 11066 }, { 11067 rootMargin: '512px' 11068 }); 11069 observer.observe(this.$el); 11070 }, 11071 getOptions(attrId) { 11072 return this.precalcOptions[attrId] || []; 11073 }, 11074 getOptionsByAttrId() { 11075 return this.getOptions(this.$el.dataset.attributeId); 11076 }, 11077 _getItemId() { 11078 if (this.item && this.item.id) return this.item.id; 11079 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 11080 }, 11081 getSwatchOptionHtmlId() { 11082 const itemId = this._getItemId(); 11083 return itemId ? this.$id(`attribute-option-47111-${itemId}`) : ''; 11084 }, 11085 getSwatchOptionHtmlIdGroup() { 11086 const itemId = this._getItemId(); 11087 return itemId ? [`attribute-option-47111-${itemId}`] : []; 11088 }, 11089 getAttributeSwatchData(attributeId) { 11090 const data = Object.assign({}, this.swatchConfig[attributeId]); 11091 if (data['additional_data']) { 11092 try { 11093 data['details'] = JSON.parse(data['additional_data']); 11094 } catch (e) { 11095 data['details'] = {}; 11096 } 11097 } 11098 return data; 11099 }, 11100 getSwatchType(attributeId, optionId) { 11101 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 11102 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 11103 } 11104 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 11105 this.swatchConfig[attributeId].details.swatch_input_type : 11106 "empty"; 11107 if (type === 'visual') { 11108 const config = this.swatchConfig[attributeId]; 11109 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 11110 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 11111 } 11112 // Fallback to first option type 11113 for (const oId in config) { 11114 if (config[oId] && typeof config[oId].type !== 'undefined') { 11115 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 11116 } 11117 } 11118 } 11119 return type; 11120 }, 11121 mapSwatchTypeNumberToTypeCode(type) { 11122 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 11123 }, 11124 isTextSwatch() { 11125 const itemId = this._getItemId(); 11126 if (!this.$el || !itemId) return false;
11127 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11128 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 11129 }, 11130 11131 getSwatchText() { 11132 const itemId = this._getItemId(); 11133 if (this.item) return this.item.label || ''; 11134 if (!this.$el || !itemId) return ''; 11135 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11136 const options = attrId ? this.getOptions(attrId) : []; 11137 const opt = options.find(o => o.id == itemId); 11138 return opt ? opt.label : ''; 11139 }, 11140 getSwatchBackgroundStyle() { 11141 const itemId = this._getItemId(); 11142 if (!this.$el || !itemId) return ''; 11143 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11144 if (!attrId) return ''; 11145 const type = this.getSwatchType(attrId, itemId); 11146 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 11147 this.swatchConfig[attrId][itemId] : 11148 null; 11149 if (!swatchData) return ''; 11150 if (type === "color") return 'background-color:' + swatchData.value; 11151 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 11152 return ''; 11153 }, 11154 swatchOptionClasses() { 11155 const itemId = this._getItemId(); 11156 if (!this.$el || !itemId) return {}; 11157 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11158 return { 11159 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 11160 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 11161 'w-6 h-6': !this.isTextSwatch() 11162 } 11163 }, 11164 11165 onFocusSwatchItem() { 11166 const itemId = this._getItemId(); 11167 if (itemId) this.focusedLabel = itemId; 11168 }, 11169 onChangeOption() { 11170 const itemId = this._getItemId(); 11171 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 11172 if (attrId && itemId) this.changeOption(attrId, itemId); 11173 }, 11174 changeOption(attributeId, value) { 11175 if (value === '') { 11176 return; 11177 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 11178 } else { 11179 this.selectedValues[attributeId] = value; 11180 } 11181 11182 this.findSimpleIndex(); 11183 this.findAllowedAttributeOptions(); 11184 this.updatePrices(); 11185 this.updateGallery(); 11186 11187 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 11188 this.findProductIdsForPartialSelection(this.selectedValues) : []; 11189 11190 const eventDetail = { 11191 productId: this.productId, 11192 optionId: attributeId, 11193 value: value, 11194 productIndex: this.productIndex || 0, 11195 selectedValues: this.selectedValues, 11196 candidates: candidates, 11197 sourceElement: this.$el 11198 }; 11199 11200 // Dispatch for Amasty 11201 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 11202 detail: eventDetail 11203 })); 11204 11205 // Dispatch for Hyva listing 11206 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 11207 detail: eventDetail 11208 })); 11209 }, 11210 11211 11212 clearOptionIfActive() { 11213 const itemId = this._getItemId(); 11214 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 11215 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 11216 this.changeOption(attrId, ''); 11217 11218 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 11219 if (!input && this.$el?.querySelector) { 11220 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 11221 } 11222 if (!input && this.$el?.closest) { 11223 const root = this.$el.closest('[data-product-id]') || this.$el; 11224 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 11225 } 11226 if (input) { 11227 input.checked = false;
11228 } 11229 } 11230 }, 11231 get optionIsEnabled() { 11232 const itemId = this._getItemId(); 11233 if (!this.$el || !itemId) return true; 11234 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11235 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 11236 return !!allowedOptions.find(opt => opt.id == itemId); 11237 }, 11238 get isSelected() { 11239 const itemId = this._getItemId(); 11240 if (!this.$el || !itemId) return false; 11241 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11242 return attrId ? (this.selectedValues[attrId] == itemId) : false; 11243 }, 11244 get isSwatchRequired() { 11245 if (!this.$el) return false; 11246 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11247 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 11248 }, 11249 focusedLabel: false, 11250 activeTooltipItem: false, 11251 tooltipPositionElement: false,
11252 setActiveTooltipItem() { 11253 const itemId = this._getItemId(); 11254 if (!this.$el || !itemId) return; 11255 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11256 this.activeTooltipItem = { 11257 attribute: attrId, 11258 item: itemId, 11259 index: 0 11260 }; 11261 this.tooltipPositionElement = this.$event ? this.$event.target : null; 11262 }, 11263 unsetActiveTooltipItem() { 11264 this.activeTooltipItem = false; 11265 } 11266 }, 11267 confProdPreSelect() 11268 ); 11269 11270 if (result.optionConfig && result.optionConfig.attributes) { 11271 const attributes = result.optionConfig.attributes; 11272 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 11273 let source = attributes; 11274 if (Array.isArray(attributes)) { 11275 source = {}; 11276 attributes.forEach(attr => { 11277 if (attr && attr.id) source[attr.id] = attr; 11278 }); 11279 } 11280 const values = Object.values(source); 11281 const wrapper = Object.assign(values, source); 11282 Object.defineProperty(wrapper, '__amxnotifWrapped', { 11283 value: true, 11284 enumerable: false 11285 }); 11286 result.optionConfig.attributes = wrapper; 11287 } 11288 } 11289 11290 return result; 11291 } 11292 11293 window.addEventListener('alpine:init', () => { 11294 Alpine.data('initConfigurableSwatchOptions_47111', initConfigurableSwatchOptions_47111); 11295 }, { 11296 once: true 11297 }); 11298 </script>
11298 11299 11300 <div x-data="initConfigurableSwatchOptions_47111" x-defer="intersect"> 11301 <div class="pagebuilder-home-hidden"> 11302 11303 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 11304 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 11305 <template x-if="showSwatches"> 11306 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47111-163" role="radiogroup" aria-label="Einband"> 11307 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 11308 <div :data-option-id="item.id" style="display: contents"> 11309 <div x-id="getSwatchOptionHtmlIdGroup"> 11310 <template x-if="optionIsEnabled"> 11311 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
11311self="unsetActiveTooltipItem"> 11312 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47111-163"> 11313 <div> 11314 <template x-if="isTextSwatch"> 11315 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 11316 </template> 11317 <template x-if="!optionIsActive(163, item.id)"> 11318 <div> 11319 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 11320 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 11321 </svg> 11322 </div> 11323 </template> 11324 </div> 11325 </label> 11326 </template> 11327</div> </div> 11328 </template> 11329 </div> 11330 </template> 11331 </div> 11332 </div> 11333 </div> 11334 </div> 11335 11336 <div class="meta py-4 pagebuilder-home-hidden"> 11337 <div x-data="initMarketingShortText_47111()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 11338 <!-- Marketing short text --> 11339 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 11340 </div> 11341 11342 <!-- Short description --> 11343 <div class="short-description"> 11344 Dies ist ein Buch über die Gefahr. Tatsächlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine ... <a href="https://meiner.de/fmv_de/a-ber-die-gefahr-21363" class="underline">mehr</a> 11345 </div> 11346 </div> 11347 11348 <!-- Series --> 11349 <div class="mb-1"> 11350 <span class="sr-only">Reihe:</span> 11351 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 11352 <span>Blaue Reihe</span> 11353 </a> 11354 </div> 11355 11356 11357 <div class="mb-1"> 11358 <span x-data="initEditionText_47111()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 11359 <!-- Marketing short text --> 11360 <span class="edition-text" x-html="editionText"></span> 2026, 144 </span> 11361 </div> 11362 11363 </div> 11364 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 11365 11366 <div class="justify-end" x-data="initPriceBox()" @update-prices-47111.window="updatePrice($event.detail);"> 11367 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47111" data-price-box="product-id-47111"><span class="normal-price"> 11368 <span x-data x-id="['product\u002Dprice\u002D47111']" class="price-container price-final_price tax weee"> 11369 <span class="price-label">Ab</span> 11370 <span class="approx-price">ca. </span> 11371 <span :id="$id('product\u002Dprice\u002D47111')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 11372 </span> 11373</span> 11374 11375 11376</div> </div> 11377 11378 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 11379 <div class="open-access-container open-access-container-47111 flex mt-4 ml-auto sm:mt-0 hidden"> 11380 <div class="text-gray-700"> 11381 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 11382 <a href="" target="_blank" class="open-access-external-link m-auto "> 11383 Kostenlos online lesen </a> 11384 </button> 11385 </div> 11386 </div> 11387 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Über die Gefahr" aria-label="In den Warenkorb Über die Gefahr" data-addto="cart"> 11388 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 11389 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
113890 014 0z"></path> 11390</svg> 11391 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 11392 In den Warenkorb </span> 11393 </button> 11394 11395<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47111)" aria-label="Zur Wunschliste hinzufügen Über die Gefahr" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 11396 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 11397 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 11398</svg> 11399</button> 11400 </div> 11401 </div> 11402 </div> 11403
11403<script> 11404 function initMarketingShortText_47111() { 11405 var marketingShortTextConfig = {}; 11406 if (typeof window.initConfigurableSwatchOptions_47111 === "function") { 11407 var fullConfig = window.initConfigurableSwatchOptions_47111().optionConfig 11408 var marketingShortTextConfig = fullConfig.marketing_short_text; 11409 } 11410 return { 11411 marketingShortText: '', 11412 config: marketingShortTextConfig, 11413 productId: '47111', 11414 getMarketingShortText(detail) { 11415 this.marketingShortText = detail.productIndex ? 11416 this.config[detail.productIndex] : 11417 null; 11418 }, 11419 eventListeners: { 11420 ['@listing-configurable-selection-changed.window'](event) { 11421 if (this.productId == event.detail.productId) { 11422 this.getMarketingShortText(event.detail); 11423 } 11424 11425 } 11426 } 11427 } 11428 } 11429 11430 function initEditionText_47111() { 11431 var editionTextConfig = {}; 11432 if (typeof window.initConfigurableSwatchOptions_47111 === "function") { 11433 var fullConfig = window.initConfigurableSwatchOptions_47111().optionConfig 11434 var editionTextConfig = fullConfig.edition; 11435 } 11436 return { 11437 editionText: '', 11438 config: editionTextConfig, 11439 productId: '47111', 11440 getEditionText(detail) { 11441 this.editionText = detail.productIndex ? 11442 this.config[detail.productIndex] : 11443 null; 11444 }, 11445 eventListeners: { 11446 ['@listing-configurable-selection-changed.window'](event) { 11447 if (this.productId == event.detail.productId) { 11448 this.getEditionText(event.detail); 11449 } 11450 11451 } 11452 } 11453 } 11454 } 11455 </script>
11455 11456 </form> 11457 11458 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46706/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21359"> 11459 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46706"> 11460 <a href="https://meiner.de/fmv_de/vorlesung-a-ber-die-philosophie-der-weltgeschichte-21359" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 11461 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46706.window="$el.src = $event.detail" alt="Vorlesung über die Philosophie der Weltgeschichte" title="Vorlesung über die Philosophie der Weltgeschichte" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350940_1.jpg" :style="{ 11462 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 11463 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 11464 }"> 11465 </a> 11466 <div class="product-info flex flex-col flex-grow "> 11467 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 11468 <div class="mb-2 text-sm text-gray-500 font-medium"> 11469 <a href="https://meiner.de/fmv_de/person/Georg-Wilhelm-Friedrich-Hegel-3139/" class="mb-2"> 11470 Georg Wilhelm Friedrich Hegel </a> 11471 </div> 11472 <a class="product-item-link" href="https://meiner.de/fmv_de/vorlesung-a-ber-die-philosophie-der-weltgeschichte-21359"> 11473 Vorlesung über die Philosophie der Weltgeschichte </a> 11474 </div> 11475 11476 <div x-data="initEditionText_46706()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 11477 <!-- Marketing short text --> 11478 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 11479 </div> 11480 </div> 11481 11482 <div class="py-1 grid mb-4 "> 11483 11484 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46706,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46706,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46500":"1","46770":"1"},"childProductsAlertStatus":{"46500":"0","46770":"0"},"indexMapping":{"163:15":46500,"163:8":46770},"availabilityMessages":{"46500":"Lieferbar innerhalb von 3-5 Tagen","46770":"Download sofort verf\u00fcgbar"},"openAccess":{"46706":{"status":0},"46500":{"status":0},"46770":{"status":0}}},"availabilityMessages":{"46500":"Lieferbar innerhalb von 3-5 Tagen","46770":"Download sofort verf\u00fcgbar"},"openAccess":{"46706":{"status":0},"46500":{"status":0},"46770":{"status":0}}}'> 11485 <template x-if="containerVisible"> 11486 <!-- Popup Trigger --> 11487 <div> 11488 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 11489 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
11490 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 11491 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 11492<title>bell</title></svg> 11493</span> 11494 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 11495 11496 <!-- Popup Modal --> 11497 <template x-if="showModal"> 11498 <template x-teleport=".page-wrapper"> 11499 <div x-cloak class="fixed inset-0 flex items-center justify-center 11500 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 11501 <div class="relative bg-white rounded-lg shadow-xl 11502 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 11503 <div class="p-6"> 11504 <!-- Subscription Form for Popup --> 11505 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 11506 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 11507 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 11508 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 11509 11510 <div class="flex flex-col gap-3"> 11511 <div class="flex-grow grow"> 11512 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 11513 shadow-xs focus:outline-none focus:outline-hidden 11514 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 11515 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 11516 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 11517 </div> 11518 <input type="hidden" name="product_id" :value="currentProductId"> 11519 <input type="hidden" name="type" value="email"> 11520 11521 11522 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 11523 11524 <div class="amxnotif_guest_action"> 11525 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 11526 rounded-md focus:outline-none 11527 focus:outline-hidden focus:ring-2 11528 focus:ring-offset-2 disabled:opacity-50 11529 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 11530 Benachrichtigen </button> 11531 </div> 11532 </div> 11533 11534 <div class="flex items-start pt-2"> 11535 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 11536 text-blue-600 border-gray-300 rounded-sm"> 11537 <label class="amxnotif-stock-gdrp-label cursor-pointer 11538 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 11539 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 11540 </div> 11541 </form> 11542 </div> 11543 11544 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 11545 hover:text-gray-600 transition-colors" aria-label="Schließen"> 11546 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 11547 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 11548<title>x</title></svg> 11549 </button> 11550 </div> 11551 </div> 11552 </template> 11553 </template> 11554 </div> 11555 </template> 11556 </div> 11557 11558<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46706" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46706,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46500":"1","46770":"1"}
11558,"childProductsAlertStatus":{"46500":"0","46770":"0"},"indexMapping":"{\u0022163:15\u0022:46500,\u0022163:8\u0022:46770}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46706,"availabilityMessages":{"46500":"Lieferbar innerhalb von 3-5 Tagen","46770":"Download sofort verf\u00fcgbar"},"openAccess":{"46706":{"status":0},"46500":{"status":0},"46770":{"status":0}}}'> 11559 11560 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 11561 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 11562 <span x-html="optionsLabelText"></span> 11563 </p> 11564</div> </div> 11565 11566
11566<script> 11567 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 11568 try { 11569 const attributes = (config && config.attributes) ? config.attributes : null; 11570 if (!attributes) return []; 11571 let attr = null; 11572 if (Array.isArray(attributes)) { 11573 for (let i = 0; i < attributes.length; i++) { 11574 const a = attributes[i]; 11575 if (a && a.id == attrId) { 11576 attr = a; 11577 break; 11578 } 11579 } 11580 } else { 11581 attr = attributes[attrId]; 11582 } 11583 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 11584 } catch (e) { 11585 return []; 11586 } 11587 }; 11588 11589 function initConfigurableSwatchOptions_46706() { 11590 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46500"]},{"id":"8","label":"PDF","products":["46770"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46500":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46770":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":16.798318327731},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"46706","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46500":{"163":"15"},"46770":{"163":"8"}},"salable":{"163":{"15":["46500"],"8":["46770"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46500":"005093","46770":"005094"},"output":{"46500":"Kartoniert","46770":"PDF"},"original_name":{"46500":"","46770":""},"openaccess_license_link":{"46500":"","46770":""},"openaccess_license_name":{"46500":"","46770":""},"openaccess_external_link":{"46500":"","46770":""},"gpsr_safety_info":{"46500":"","46770":""},"description":{"46500":"Hegels geschichtsphilosophische Vorlesungen sind fast nur durch die Mit- und Nachschriften seiner Sch\u00fcler und H\u00f6rer zug\u00e4nglich \u2013 ein Faktum, das fr\u00fchere Ausgaben, die aus verschiedenen Nachschriften und einigen unver\u00f6ffentlichten Manuskripten kompiliert wurden, \u00fcberdeckt haben. Dieser Band gibt hingegen eine einzelne authentische Nachschrift wieder, n\u00e4mlich die von Hegels Sohn Karl Hegel von 1830\/31 \u2013 aus dem letzten Semester, in dem Hegel noch lehren konnte.<br\/><br\/>Karl Hegels Nachschrift dokumentiert damit die reifste Gestalt von Hegels Geschichtsphilosophie. In seiner Vorlesung skizzierte Hegel die politische, gesellschaftliche und religi\u00f6se Entwicklung eines einheitlichen Weltethos und des zugeh\u00f6rigen Personseins, wobei erst in Persien, u. a. von Zarathustra, die Idee der Wahrheit und des Guten allgemein gefasst und erst im Laufe der Geschichte des Christentums die W\u00fcrde des einzelnen Menschen und seine basalen Rechte erfasst werden.<br\/><br\/>Diese Ausgabe k\u00f6nnte, so der Herausgeber, \u00bbzu einer Art Game-Changer f\u00fcr die Lekt\u00fcre Hegels insgesamt werden, weil es auf Kants dogmatische Rede von einem moralischen Gesetz a priori in uns antwortet\u00ab. Bis auf leichte Korrekturen und behutsame Anpassungen an heutige Schreibweisen folgt der Text Band 27,4 der historisch-kritischen Ausgabe \u00bbG.W.F. Hegel: Gesammelte Werke\u00ab.","46770":"Hegels geschichtsphilosophische Vorlesungen sind fast nur durch die Mit- und Nachschriften seiner Sch\u00fcler und H\u00f6rer zug\u00e4nglich \u2013 ein Faktum, das fr\u00fchere Ausgaben, die aus verschiedenen Nachschriften und einigen unver\u00f6ffentlichten Manuskripten kompiliert wurden, \u00fcberdeckt haben. Dieser Band gibt hingegen eine einzelne authentische Nachschrift wieder, n\u00e4mlich die von Hegels Sohn Karl Hegel von 1830\/31 \u2013 aus dem letzten Semester, in dem Hegel noch lehren konnte.<br\/><br\/>Karl Hegels Nachschrift dokumentiert damit die reifste Gestalt von Hegels Geschichtsphilosophie. In seiner Vorlesung skizzierte Hegel die politische, gesellschaftliche und religi\u00f6se Entwicklung eines einheitlichen Weltethos und des zugeh\u00f6rigen Personseins, wobei erst in Persien, u. a. von Zarathustra, die Idee der Wahrheit und des Guten allgemein gefasst und erst im Laufe der Geschichte des Christentums die W\u00fcrde des einzelnen Menschen und seine basalen Rechte erfasst werden.<br\/><br\/>Diese Ausgabe k\u00f6nnte, so der Herausgeber, \u00bbzu einer Art Game-Changer f\u00fcr die Lekt\u00fcre Hegels insgesamt werden, weil es auf Kants dogmatische Rede von einem moralischen Gesetz a priori in uns antwortet\u00ab. Bis auf leichte Korrekturen und behutsame Anpassungen an heutige Schreibweisen folgt der Text Band 27,4 der historisch-kritischen Ausgabe \u00bbG.W.F. Hegel: Gesammelte Werke\u00ab."},"doi":{"46500":"","46770":"10.28937\/978-3-7873-5094-0"},"isbn":{"46500":"978-3-7873-5093-3","46770":"978-3-7873-5094-0"},"marketing_short_text":{"46500":"","46770":""},"recension_text":{"46500":"","46770":""},"language":{"46500":"","46770":""},"cover":{"46500":"Kartoniert","46770":""},"pages":{"46500":"LXII, 366 Seiten.","46770":"LXII, 366 Seiten."},"edition":{"46500":"","46770":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46500":"Nein","46770":"Nein"},"copyright_year":{"46500":"","46770":""},"vlb_tix_link":{"46500":"https:\/\/neu.vlbtix.de\/products\/9783787350933?type=gtin","46770":""},"defaultValues":{"163":"15"}}; 11591 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 11592 11593 if (typeof window.amxnotif_wrap_attributes === 'function') { 11594 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 11595 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 11596 } 11597 11598 const configurableOptionsComponent = initConfigurableOptions( 11599 '46706', 11600 config 11601 ); 11602 const swatchOptionsComponent = initSwatchOptions( 11603 swatchConfig 11604 ); 11605 11606 // DWS - Configurable product preselect start 11607 const confProdPreSelect = () => { 11608 return { 11609 preselectQuerystringItems() { 11610 var data = {"id":"46500","output":"15"}; 11611 const urlQueryParams = new URLSearchParams(window.location.search); 11612 11613 this.$nextTick(() => { 11614 setTimeout(() => { 11615 const rootEl = this.$root || this.$el; 11616 if (!rootEl) return; 11617 11618 const applySelection = (attrCode, attrValue) => { 11619 if (attrValue === undefined || attrValue === null || attrValue === '') return; 11620 11621 const attributes = Object.values(this.optionConfig.attributes || {}); 11622 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 11623 11624 if (targetAttr) { 11625 const attrId = String(targetAttr.id); 11626 const optionVal = String(attrValue); 11627 11628 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 11629 11630 if (inputEl) { 11631 inputEl.click(); 11632 inputEl.dispatchEvent(new Event('change', { 11633 bubbles: true 11634 })); 11635 } else { 11636 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 11637 if (selectEl) { 11638 selectEl.value = optionVal; 11639 selectEl.dispatchEvent(new Event('change', { 11640 bubbles: true 11641 })); 11642 } 11643 } 11644 11645 this.changeOption(attrId, optionVal, false); 11646 } 11647 }; 11648 11649 if (data && typeof data === 'object') {
11650 Object.keys(data).forEach(key => applySelection(key, data[key])); 11651 } 11652 11653 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 11654 if (attribute && attribute.code) { 11655 let optionValue = urlQueryParams.get(attribute.code); 11656 if (optionValue) { 11657 let optionId = false; 11658 const attributes = Object.values(this.optionConfig.attributes || {}); 11659 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 11660 11661 let found = false; 11662 Object.values(targetAttr.options).map(option => { 11663 if (found === false && option.label === optionValue) { 11664 optionId = option.id; 11665 found = true; 11666 } 11667 }); 11668 11669 const attrId = String(targetAttr.id); 11670 let optionVal = String(optionValue); 11671 if (found) { 11672 optionVal = String(optionId); 11673 } 11674 11675 applySelection(attribute.code, optionVal); 11676 } 11677 } 11678 }); 11679 }, 100); 11680 }); 11681 } 11682 } 11683 }; 11684 // DWS - Configurable product preselect end 11685 11686 const result = Object.assign( 11687 configurableOptionsComponent, 11688 swatchOptionsComponent, { 11689 productId: '46706', 11690 productIndex: 0, 11691 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 11692 showSwatches: false, 11693 precalcOptions: {}, 11694 originalInit: configurableOptionsComponent.init, 11695 init() { 11696 try { 11697 this.precalcOptions = {}; 11698 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 11699 this.preselectQuerystringItems(); 11700 if (Array.isArray(attrSource)) { 11701 attrSource.forEach(attr => { 11702 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 11703 }); 11704 } else if (attrSource && typeof attrSource === 'object') { 11705 Object.keys(attrSource).forEach(id => { 11706 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 11707 }); 11708 } 11709 } catch (e) { 11710 console.error('Pre-calc error:', e); 11711 } 11712 11713 if (typeof this.originalInit === 'function') { 11714 this.originalInit(); 11715 } 11716 11717 try { 11718 this.initShowSwatchesIntersect(); 11719 } catch (e) { 11720 console.error('intersect error:', e); 11721 } 11722 }, 11723 11724 updateGallery() { 11725 if (!this.productIndex) return; 11726 11727 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 11728 method: 'GET', 11729 headers: { 11730 'Content-Type': 'application/json', 11731 'X-Requested-With': 'XMLHttpRequest' 11732 } 11733 }) 11734 .then(response => response.json()) 11735 .then(data => { 11736 if (data && data.medium) { 11737 window.dispatchEvent(new CustomEvent("update-gallery-46706", { 11738 detail: data.medium 11739 })); 11740 } 11741 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 11742 }, 11743 11744 11745 initShowSwatchesIntersect() { 11746 const observer = new IntersectionObserver(entries => { 11747 if (entries[0].isIntersecting) { 11748 this.showSwatches = true; 11749 observer.disconnect(); 11750 } 11751 }, { 11752 rootMargin: '512px' 11753 }); 11754 observer.observe(this.$el); 11755 }, 11756 getOptions(attrId) { 11757 return this.precalcOptions[attrId] || []; 11758 }, 11759 getOptionsByAttrId() { 11760 return this.getOptions(this.$el.dataset.attributeId); 11761 }, 11762 _getItemId() { 11763 if (this.item && this.item.id) return this.item.id; 11764 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 11765 }, 11766 getSwatchOptionHtmlId() { 11767 const itemId = this._getItemId(); 11768 return itemId ? this.$id(`attribute-option-46706-${itemId}`) : ''; 11769 }, 11770 getSwatchOptionHtmlIdGroup() { 11771 const itemId = this._getItemId(); 11772 return itemId ? [`attribute-option-46706-${itemId}`] : []; 11773 }, 11774 getAttributeSwatchData(attributeId) { 11775 const data = Object.assign({}, this.swatchConfig[attributeId]); 11776 if (data['additional_data']) { 11777 try { 11778 data['details'] = JSON.parse(data['additional_data']); 11779 } catch (e) { 11780 data['details'] = {}; 11781 } 11782 } 11783 return data; 11784 }, 11785 getSwatchType(attributeId, optionId) { 11786 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 11787 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 11788 } 11789 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 11790 this.swatchConfig[attributeId].details.swatch_input_type : 11791 "empty"; 11792 if (type === 'visual') { 11793 const config = this.swatchConfig[attributeId]; 11794 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 11795 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 11796 } 11797 // Fallback to first option type 11798 for (const oId in config) { 11799 if (config[oId] && typeof config[oId].type !== 'undefined') { 11800 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 11801 } 11802 } 11803 } 11804 return type; 11805 }, 11806 mapSwatchTypeNumberToTypeCode(type) { 11807 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 11808 }, 11809 isTextSwatch() { 11810 const itemId = this._getItemId(); 11811 if (!this.$el || !itemId) return false;
11812 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11813 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 11814 }, 11815 11816 getSwatchText() { 11817 const itemId = this._getItemId(); 11818 if (this.item) return this.item.label || ''; 11819 if (!this.$el || !itemId) return ''; 11820 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11821 const options = attrId ? this.getOptions(attrId) : []; 11822 const opt = options.find(o => o.id == itemId); 11823 return opt ? opt.label : ''; 11824 }, 11825 getSwatchBackgroundStyle() { 11826 const itemId = this._getItemId(); 11827 if (!this.$el || !itemId) return ''; 11828 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11829 if (!attrId) return ''; 11830 const type = this.getSwatchType(attrId, itemId); 11831 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 11832 this.swatchConfig[attrId][itemId] : 11833 null; 11834 if (!swatchData) return ''; 11835 if (type === "color") return 'background-color:' + swatchData.value; 11836 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 11837 return ''; 11838 }, 11839 swatchOptionClasses() { 11840 const itemId = this._getItemId(); 11841 if (!this.$el || !itemId) return {}; 11842 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11843 return { 11844 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 11845 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 11846 'w-6 h-6': !this.isTextSwatch() 11847 } 11848 }, 11849 11850 onFocusSwatchItem() { 11851 const itemId = this._getItemId(); 11852 if (itemId) this.focusedLabel = itemId; 11853 }, 11854 onChangeOption() { 11855 const itemId = this._getItemId(); 11856 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 11857 if (attrId && itemId) this.changeOption(attrId, itemId); 11858 }, 11859 changeOption(attributeId, value) { 11860 if (value === '') { 11861 return; 11862 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 11863 } else { 11864 this.selectedValues[attributeId] = value; 11865 } 11866 11867 this.findSimpleIndex(); 11868 this.findAllowedAttributeOptions(); 11869 this.updatePrices(); 11870 this.updateGallery(); 11871 11872 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 11873 this.findProductIdsForPartialSelection(this.selectedValues) : []; 11874 11875 const eventDetail = { 11876 productId: this.productId, 11877 optionId: attributeId, 11878 value: value, 11879 productIndex: this.productIndex || 0, 11880 selectedValues: this.selectedValues, 11881 candidates: candidates, 11882 sourceElement: this.$el 11883 }; 11884 11885 // Dispatch for Amasty 11886 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 11887 detail: eventDetail 11888 })); 11889 11890 // Dispatch for Hyva listing 11891 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 11892 detail: eventDetail 11893 })); 11894 }, 11895 11896 11897 clearOptionIfActive() { 11898 const itemId = this._getItemId(); 11899 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 11900 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 11901 this.changeOption(attrId, ''); 11902 11903 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 11904 if (!input && this.$el?.querySelector) { 11905 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 11906 } 11907 if (!input && this.$el?.closest) { 11908 const root = this.$el.closest('[data-product-id]') || this.$el; 11909 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 11910 } 11911 if (input) { 11912 input.checked = false;
11913 } 11914 } 11915 }, 11916 get optionIsEnabled() { 11917 const itemId = this._getItemId(); 11918 if (!this.$el || !itemId) return true; 11919 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11920 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 11921 return !!allowedOptions.find(opt => opt.id == itemId); 11922 }, 11923 get isSelected() { 11924 const itemId = this._getItemId(); 11925 if (!this.$el || !itemId) return false; 11926 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11927 return attrId ? (this.selectedValues[attrId] == itemId) : false; 11928 }, 11929 get isSwatchRequired() { 11930 if (!this.$el) return false; 11931 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11932 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 11933 }, 11934 focusedLabel: false, 11935 activeTooltipItem: false, 11936 tooltipPositionElement: false,
11937 setActiveTooltipItem() { 11938 const itemId = this._getItemId(); 11939 if (!this.$el || !itemId) return; 11940 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 11941 this.activeTooltipItem = { 11942 attribute: attrId, 11943 item: itemId, 11944 index: 0 11945 }; 11946 this.tooltipPositionElement = this.$event ? this.$event.target : null; 11947 }, 11948 unsetActiveTooltipItem() { 11949 this.activeTooltipItem = false; 11950 } 11951 }, 11952 confProdPreSelect() 11953 ); 11954 11955 if (result.optionConfig && result.optionConfig.attributes) { 11956 const attributes = result.optionConfig.attributes; 11957 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 11958 let source = attributes; 11959 if (Array.isArray(attributes)) { 11960 source = {}; 11961 attributes.forEach(attr => { 11962 if (attr && attr.id) source[attr.id] = attr; 11963 }); 11964 } 11965 const values = Object.values(source); 11966 const wrapper = Object.assign(values, source); 11967 Object.defineProperty(wrapper, '__amxnotifWrapped', { 11968 value: true, 11969 enumerable: false 11970 }); 11971 result.optionConfig.attributes = wrapper; 11972 } 11973 } 11974 11975 return result; 11976 } 11977 11978 window.addEventListener('alpine:init', () => { 11979 Alpine.data('initConfigurableSwatchOptions_46706', initConfigurableSwatchOptions_46706); 11980 }, { 11981 once: true 11982 }); 11983 </script>
11983 11984 11985 <div x-data="initConfigurableSwatchOptions_46706" x-defer="intersect"> 11986 <div class="pagebuilder-home-hidden"> 11987 11988 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 11989 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 11990 <template x-if="showSwatches"> 11991 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46706-163" role="radiogroup" aria-label="Einband"> 11992 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 11993 <div :data-option-id="item.id" style="display: contents"> 11994 <div x-id="getSwatchOptionHtmlIdGroup"> 11995 <template x-if="optionIsEnabled"> 11996 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
11996self="unsetActiveTooltipItem"> 11997 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46706-163"> 11998 <div> 11999 <template x-if="isTextSwatch"> 12000 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 12001 </template> 12002 <template x-if="!optionIsActive(163, item.id)"> 12003 <div> 12004 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 12005 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 12006 </svg> 12007 </div> 12008 </template> 12009 </div> 12010 </label> 12011 </template> 12012</div> </div> 12013 </template> 12014 </div> 12015 </template> 12016 </div> 12017 </div> 12018 </div> 12019 </div> 12020 12021 <div class="meta py-4 pagebuilder-home-hidden"> 12022 <div x-data="initMarketingShortText_46706()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 12023 <!-- Marketing short text --> 12024 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 12025 </div> 12026 12027 <!-- Short description --> 12028 <div class="short-description"> 12029 Hegels geschichtsphilosophische Vorlesungen sind fast nur durch die Mit- und Nachschriften seiner Schüler und Hörer zugänglich – ein Faktum, das frühere Ausgaben, die aus verschiedenen ... <a href="https://meiner.de/fmv_de/vorlesung-a-ber-die-philosophie-der-weltgeschichte-21359" class="underline">mehr</a> 12030 </div> 12031 </div> 12032 12033 <!-- Series --> 12034 <div class="mb-1"> 12035 <span class="sr-only">Reihe:</span> 12036 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 12037 <span>Philosophische Bibliothek</span> 12038 </a> 12039 797 </div> 12040 12041 12042 <div class="mb-1"> 12043 <span x-data="initEditionText_46706()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 12044 <!-- Marketing short text --> 12045 <span class="edition-text" x-html="editionText"></span> 2026, LXII, 366 Seiten. </span> 12046 </div> 12047 12048 </div> 12049 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 12050 12051 <div class="justify-end" x-data="initPriceBox()" @update-prices-46706.window="updatePrice($event.detail);"> 12052 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46706" data-price-box="product-id-46706"><span class="normal-price"> 12053 <span x-data x-id="['product\u002Dprice\u002D46706']" class="price-container price-final_price tax weee"> 12054 <span class="price-label">Ab</span> 12055 <span class="approx-price">ca. </span>
12056 <span :id="$id('product\u002Dprice\u002D46706')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 12057 </span> 12058</span> 12059 12060 12061</div> </div> 12062 12063 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 12064 <div class="open-access-container open-access-container-46706 flex mt-4 ml-auto sm:mt-0 hidden"> 12065 <div class="text-gray-700"> 12066 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 12067 <a href="" target="_blank" class="open-access-external-link m-auto "> 12068 Kostenlos online lesen </a> 12069 </button> 12070 </div> 12071 </div> 12072 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Vorlesung über die Philosophie der Weltgeschichte" aria-label="In den Warenkorb Vorlesung über die Philosophie der Weltgeschichte" data-addto="cart"> 12073 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 12074 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 12075</svg> 12076 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 12077 In den Warenkorb </span> 12078 </button> 12079 12080<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46706)" aria-label="Zur Wunschliste hinzufügen Vorlesung über die Philosophie der Weltgeschichte" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 12081 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 12082 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 12083</svg> 12084</button> 12085 </div> 12086 </div> 12087 </div> 12088
12088<script> 12089 function initMarketingShortText_46706() { 12090 var marketingShortTextConfig = {}; 12091 if (typeof window.initConfigurableSwatchOptions_46706 === "function") { 12092 var fullConfig = window.initConfigurableSwatchOptions_46706().optionConfig 12093 var marketingShortTextConfig = fullConfig.marketing_short_text; 12094 } 12095 return { 12096 marketingShortText: '', 12097 config: marketingShortTextConfig, 12098 productId: '46706', 12099 getMarketingShortText(detail) { 12100 this.marketingShortText = detail.productIndex ? 12101 this.config[detail.productIndex] : 12102 null; 12103 }, 12104 eventListeners: { 12105 ['@listing-configurable-selection-changed.window'](event) { 12106 if (this.productId == event.detail.productId) { 12107 this.getMarketingShortText(event.detail); 12108 } 12109 12110 } 12111 } 12112 } 12113 } 12114 12115 function initEditionText_46706() { 12116 var editionTextConfig = {}; 12117 if (typeof window.initConfigurableSwatchOptions_46706 === "function") { 12118 var fullConfig = window.initConfigurableSwatchOptions_46706().optionConfig 12119 var editionTextConfig = fullConfig.edition; 12120 } 12121 return { 12122 editionText: '', 12123 config: editionTextConfig, 12124 productId: '46706', 12125 getEditionText(detail) { 12126 this.editionText = detail.productIndex ? 12127 this.config[detail.productIndex] : 12128 null; 12129 }, 12130 eventListeners: { 12131 ['@listing-configurable-selection-changed.window'](event) { 12132 if (this.productId == event.detail.productId) { 12133 this.getEditionText(event.detail); 12134 } 12135 12136 } 12137 } 12138 } 12139 } 12140 </script>
12140 12141 </form> 12142 12143 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46705/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21230"> 12144 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46705"> 12145 <a href="https://meiner.de/fmv_de/weltuntergang-21230" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 12146 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46705.window="$el.src = $event.detail" alt="Weltuntergang" title="Weltuntergang" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350759_1.jpg" :style="{ 12147 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 12148 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 12149 }"> 12150 </a> 12151 <div class="product-info flex flex-col flex-grow "> 12152 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 12153 <div class="mb-2 text-sm text-gray-500 font-medium"> 12154 <a href="https://meiner.de/fmv_de/person/Florian-Baab-3674/" class="mb-2"> 12155 Florian Baab </a> 12156 </div> 12157 <a class="product-item-link" href="https://meiner.de/fmv_de/weltuntergang-21230"> 12158 Weltuntergang </a> 12159 </div> 12160 12161 <div x-data="initEditionText_46705()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 12162 <!-- Marketing short text --> 12163 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 12164 </div> 12165 </div> 12166 12167 <div class="py-1 grid mb-4 "> 12168 12169 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46705,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46705,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46499":"1","46741":"1","46738":"1"},"childProductsAlertStatus":{"46499":"0","46741":"0","46738":"0"},"indexMapping":{"163:15":46499,"163:9":46741,"163:8":46738},"availabilityMessages":{"46499":"Lieferbar innerhalb von 3-5 Tagen","46741":"Download sofort verf\u00fcgbar","46738":"Download sofort verf\u00fcgbar"},"openAccess":{"46705":{"status":0},"46499":{"status":0},"46741":{"status":0},"46738":{"status":0}}},"availabilityMessages":{"46499":"Lieferbar innerhalb von 3-5 Tagen","46741":"Download sofort verf\u00fcgbar","46738":"Download sofort verf\u00fcgbar"},"openAccess":{"46705":{"status":0},"46499":{"status":0},"46741":{"status":0},"46738":{"status":0}}}'> 12170 <template x-if="containerVisible"> 12171 <!-- Popup Trigger --> 12172 <div> 12173 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 12174 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
12175 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 12176 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 12177<title>bell</title></svg> 12178</span> 12179 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 12180 12181 <!-- Popup Modal --> 12182 <template x-if="showModal"> 12183 <template x-teleport=".page-wrapper"> 12184 <div x-cloak class="fixed inset-0 flex items-center justify-center 12185 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 12186 <div class="relative bg-white rounded-lg shadow-xl 12187 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 12188 <div class="p-6"> 12189 <!-- Subscription Form for Popup --> 12190 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 12191 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 12192 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 12193 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 12194 12195 <div class="flex flex-col gap-3"> 12196 <div class="flex-grow grow"> 12197 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 12198 shadow-xs focus:outline-none focus:outline-hidden 12199 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 12200 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 12201 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 12202 </div> 12203 <input type="hidden" name="product_id" :value="currentProductId"> 12204 <input type="hidden" name="type" value="email"> 12205 12206 12207 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 12208 12209 <div class="amxnotif_guest_action"> 12210 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 12211 rounded-md focus:outline-none 12212 focus:outline-hidden focus:ring-2 12213 focus:ring-offset-2 disabled:opacity-50 12214 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 12215 Benachrichtigen </button> 12216 </div> 12217 </div> 12218 12219 <div class="flex items-start pt-2"> 12220 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 12221 text-blue-600 border-gray-300 rounded-sm"> 12222 <label class="amxnotif-stock-gdrp-label cursor-pointer 12223 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 12224 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 12225 </div> 12226 </form> 12227 </div> 12228 12229 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 12230 hover:text-gray-600 transition-colors" aria-label="Schließen"> 12231 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 12232 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 12233<title>x</title></svg> 12234 </button> 12235 </div> 12236 </div> 12237 </template> 12238 </template> 12239 </div> 12240 </template> 12241 </div> 12242 12243<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46705" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46705,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46499":"1","46741":"1","46738":"1"},"childProductsAlertStatus":{"46499":"0","46741":"0","46738":"0"},"indexMapping":"{\u0022163:15\u0022:46499,\u0022163:9\u0022:46741,\u0022163:8\u0022:46738}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46705,"availabilityMessages":{"46499":"Lieferbar innerhalb von 3-5 Tagen","46741":"Download sofort verf\u00fcgbar","46738":"Download sofort verf\u00fcgbar"},"openAccess":{"46705":{"status":0},"46499":{"status":0},"46741":{"status":0},"46738":{"status":0}}}'> 12244 12245 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
12246 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 12247 <span x-html="optionsLabelText"></span> 12248 </p> 12249</div> </div> 12250 12251
12251<script> 12252 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 12253 try { 12254 const attributes = (config && config.attributes) ? config.attributes : null; 12255 if (!attributes) return []; 12256 let attr = null; 12257 if (Array.isArray(attributes)) { 12258 for (let i = 0; i < attributes.length; i++) { 12259 const a = attributes[i]; 12260 if (a && a.id == attrId) { 12261 attr = a; 12262 break; 12263 } 12264 } 12265 } else { 12266 attr = attributes[attrId]; 12267 } 12268 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 12269 } catch (e) { 12270 return []; 12271 } 12272 }; 12273 12274 function initConfigurableSwatchOptions_46705() { 12275 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46499"]},{"id":"8","label":"PDF","products":["46738"]},{"id":"9","label":"EPUB","products":["46741"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46499":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46741":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46738":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"46705","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46499":{"163":"15"},"46741":{"163":"9"},"46738":{"163":"8"}},"salable":{"163":{"15":["46499"],"9":["46741"],"8":["46738"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46499":"005073","46741":"005075","46738":"005074"},"output":{"46499":"Kartoniert","46738":"PDF","46741":"EPUB"},"original_name":{"46499":"","46738":"","46741":""},"openaccess_license_link":{"46499":"","46738":"","46741":""},"openaccess_license_name":{"46499":"","46738":"","46741":""},"openaccess_external_link":{"46499":"","46738":"","46741":""},"gpsr_safety_info":{"46499":"","46738":"","46741":""},"description":{"46499":"Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Sp\u00e4testens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhunderts ist das Konzept reale M\u00f6glichkeit, und Menschen unterschiedlicher Zeiten sind unterschiedlich mit ihm umgegangen. So entstand eine charakteristisch moderne Form des Weltverh\u00e4ltnisses: Wenn die Zukunft bedroht ist, wird die Gegenwart zum Ort der Entscheidung. Raum f\u00fcr Hoffnung bleibt dennoch, selbst nach dem Untergang des Abendlandes (Spengler) und nach dem Ende der Geschichte (Fukuyama): Solange es die Welt gibt, erm\u00f6glicht jedes Ende einen neuen Anfang. ","46738":"Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Sp\u00e4testens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhunderts ist das Konzept reale M\u00f6glichkeit, und Menschen unterschiedlicher Zeiten sind unterschiedlich mit ihm umgegangen. So entstand eine charakteristisch moderne Form des Weltverh\u00e4ltnisses: Wenn die Zukunft bedroht ist, wird die Gegenwart zum Ort der Entscheidung. Raum f\u00fcr Hoffnung bleibt dennoch, selbst nach dem Untergang des Abendlandes (Spengler) und nach dem Ende der Geschichte (Fukuyama): Solange es die Welt gibt, erm\u00f6glicht jedes Ende einen neuen Anfang. ","46741":"Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Sp\u00e4testens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhun
12275derts ist das Konzept reale M\u00f6glichkeit, und Menschen unterschiedlicher Zeiten sind unterschiedlich mit ihm umgegangen. So entstand eine charakteristisch moderne Form des Weltverh\u00e4ltnisses: Wenn die Zukunft bedroht ist, wird die Gegenwart zum Ort der Entscheidung. Raum f\u00fcr Hoffnung bleibt dennoch, selbst nach dem Untergang des Abendlandes (Spengler) und nach dem Ende der Geschichte (Fukuyama): Solange es die Welt gibt, erm\u00f6glicht jedes Ende einen neuen Anfang. "},"doi":{"46499":"","46738":"10.28937\/978-3-7873-5074-2","46741":""},"isbn":{"46499":"978-3-7873-5073-5","46738":"978-3-7873-5074-2","46741":"978-3-7873-5075-9"},"marketing_short_text":{"46499":"","46738":"","46741":""},"recension_text":{"46499":"","46738":"","46741":""},"language":{"46499":"","46738":"","46741":""},"cover":{"46499":"Kartoniert","46738":"","46741":""},"pages":{"46499":"138 Seiten","46738":"138","46741":"138"},"edition":{"46499":"","46738":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","46741":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46499":"Nein","46738":"Nein","46741":"Nein"},"copyright_year":{"46499":"","46738":"","46741":""},"vlb_tix_link":{"46499":"https:\/\/neu.vlbtix.de\/products\/9783787350735?type=gtin","46738":"","46741":""},"defaultValues":{"163":"15"}}; 12276 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 12277 12278 if (typeof window.amxnotif_wrap_attributes === 'function') { 12279 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 12280 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 12281 } 12282 12283 const configurableOptionsComponent = initConfigurableOptions( 12284 '46705', 12285 config 12286 ); 12287 const swatchOptionsComponent = initSwatchOptions( 12288 swatchConfig 12289 ); 12290 12291 // DWS - Configurable product preselect start 12292 const confProdPreSelect = () => { 12293 return { 12294 preselectQuerystringItems() { 12295 var data = {"id":"46499","output":"15"}; 12296 const urlQueryParams = new URLSearchParams(window.location.search); 12297 12298 this.$nextTick(() => { 12299 setTimeout(() => { 12300 const rootEl = this.$root || this.$el; 12301 if (!rootEl) return; 12302 12303 const applySelection = (attrCode, attrValue) => { 12304 if (attrValue === undefined || attrValue === null || attrValue === '') return; 12305 12306 const attributes = Object.values(this.optionConfig.attributes || {}); 12307 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 12308 12309 if (targetAttr) { 12310 const attrId = String(targetAttr.id); 12311 const optionVal = String(attrValue); 12312 12313 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 12314 12315 if (inputEl) { 12316 inputEl.click(); 12317 inputEl.dispatchEvent(new Event('change', { 12318 bubbles: true 12319 })); 12320 } else { 12321 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 12322 if (selectEl) { 12323 selectEl.value = optionVal; 12324 selectEl.dispatchEvent(new Event('change', { 12325 bubbles: true 12326 })); 12327 } 12328 } 12329 12330 this.changeOption(attrId, optionVal, false); 12331 } 12332 }; 12333 12334 if (data && typeof data === 'object') {
12335 Object.keys(data).forEach(key => applySelection(key, data[key])); 12336 } 12337 12338 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 12339 if (attribute && attribute.code) { 12340 let optionValue = urlQueryParams.get(attribute.code); 12341 if (optionValue) { 12342 let optionId = false; 12343 const attributes = Object.values(this.optionConfig.attributes || {}); 12344 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 12345 12346 let found = false; 12347 Object.values(targetAttr.options).map(option => { 12348 if (found === false && option.label === optionValue) { 12349 optionId = option.id; 12350 found = true; 12351 } 12352 }); 12353 12354 const attrId = String(targetAttr.id); 12355 let optionVal = String(optionValue); 12356 if (found) { 12357 optionVal = String(optionId); 12358 } 12359 12360 applySelection(attribute.code, optionVal); 12361 } 12362 } 12363 }); 12364 }, 100); 12365 }); 12366 } 12367 } 12368 }; 12369 // DWS - Configurable product preselect end 12370 12371 const result = Object.assign( 12372 configurableOptionsComponent, 12373 swatchOptionsComponent, { 12374 productId: '46705', 12375 productIndex: 0, 12376 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 12377 showSwatches: false, 12378 precalcOptions: {}, 12379 originalInit: configurableOptionsComponent.init, 12380 init() { 12381 try { 12382 this.precalcOptions = {}; 12383 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 12384 this.preselectQuerystringItems(); 12385 if (Array.isArray(attrSource)) { 12386 attrSource.forEach(attr => { 12387 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 12388 }); 12389 } else if (attrSource && typeof attrSource === 'object') { 12390 Object.keys(attrSource).forEach(id => { 12391 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 12392 }); 12393 } 12394 } catch (e) { 12395 console.error('Pre-calc error:', e); 12396 } 12397 12398 if (typeof this.originalInit === 'function') { 12399 this.originalInit(); 12400 } 12401 12402 try { 12403 this.initShowSwatchesIntersect(); 12404 } catch (e) { 12405 console.error('intersect error:', e); 12406 } 12407 }, 12408 12409 updateGallery() { 12410 if (!this.productIndex) return; 12411 12412 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 12413 method: 'GET', 12414 headers: { 12415 'Content-Type': 'application/json', 12416 'X-Requested-With': 'XMLHttpRequest' 12417 } 12418 }) 12419 .then(response => response.json()) 12420 .then(data => { 12421 if (data && data.medium) { 12422 window.dispatchEvent(new CustomEvent("update-gallery-46705", { 12423 detail: data.medium 12424 })); 12425 } 12426 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 12427 }, 12428 12429 12430 initShowSwatchesIntersect() { 12431 const observer = new IntersectionObserver(entries => { 12432 if (entries[0].isIntersecting) { 12433 this.showSwatches = true; 12434 observer.disconnect(); 12435 } 12436 }, { 12437 rootMargin: '512px' 12438 }); 12439 observer.observe(this.$el); 12440 }, 12441 getOptions(attrId) { 12442 return this.precalcOptions[attrId] || []; 12443 }, 12444 getOptionsByAttrId() { 12445 return this.getOptions(this.$el.dataset.attributeId); 12446 }, 12447 _getItemId() { 12448 if (this.item && this.item.id) return this.item.id; 12449 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 12450 }, 12451 getSwatchOptionHtmlId() { 12452 const itemId = this._getItemId(); 12453 return itemId ? this.$id(`attribute-option-46705-${itemId}`) : ''; 12454 }, 12455 getSwatchOptionHtmlIdGroup() { 12456 const itemId = this._getItemId(); 12457 return itemId ? [`attribute-option-46705-${itemId}`] : []; 12458 }, 12459 getAttributeSwatchData(attributeId) { 12460 const data = Object.assign({}, this.swatchConfig[attributeId]); 12461 if (data['additional_data']) { 12462 try { 12463 data['details'] = JSON.parse(data['additional_data']); 12464 } catch (e) { 12465 data['details'] = {}; 12466 } 12467 } 12468 return data; 12469 }, 12470 getSwatchType(attributeId, optionId) { 12471 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 12472 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 12473 } 12474 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 12475 this.swatchConfig[attributeId].details.swatch_input_type : 12476 "empty"; 12477 if (type === 'visual') { 12478 const config = this.swatchConfig[attributeId]; 12479 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 12480 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 12481 } 12482 // Fallback to first option type 12483 for (const oId in config) { 12484 if (config[oId] && typeof config[oId].type !== 'undefined') { 12485 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 12486 } 12487 } 12488 } 12489 return type; 12490 }, 12491 mapSwatchTypeNumberToTypeCode(type) { 12492 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 12493 }, 12494 isTextSwatch() { 12495 const itemId = this._getItemId(); 12496 if (!this.$el || !itemId) return false;
12497 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12498 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 12499 }, 12500 12501 getSwatchText() { 12502 const itemId = this._getItemId(); 12503 if (this.item) return this.item.label || ''; 12504 if (!this.$el || !itemId) return ''; 12505 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12506 const options = attrId ? this.getOptions(attrId) : []; 12507 const opt = options.find(o => o.id == itemId); 12508 return opt ? opt.label : ''; 12509 }, 12510 getSwatchBackgroundStyle() { 12511 const itemId = this._getItemId(); 12512 if (!this.$el || !itemId) return ''; 12513 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12514 if (!attrId) return ''; 12515 const type = this.getSwatchType(attrId, itemId); 12516 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 12517 this.swatchConfig[attrId][itemId] : 12518 null; 12519 if (!swatchData) return ''; 12520 if (type === "color") return 'background-color:' + swatchData.value; 12521 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 12522 return ''; 12523 }, 12524 swatchOptionClasses() { 12525 const itemId = this._getItemId(); 12526 if (!this.$el || !itemId) return {}; 12527 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12528 return { 12529 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 12530 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 12531 'w-6 h-6': !this.isTextSwatch() 12532 } 12533 }, 12534 12535 onFocusSwatchItem() { 12536 const itemId = this._getItemId(); 12537 if (itemId) this.focusedLabel = itemId; 12538 }, 12539 onChangeOption() { 12540 const itemId = this._getItemId(); 12541 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 12542 if (attrId && itemId) this.changeOption(attrId, itemId); 12543 }, 12544 changeOption(attributeId, value) { 12545 if (value === '') { 12546 return; 12547 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 12548 } else { 12549 this.selectedValues[attributeId] = value; 12550 } 12551 12552 this.findSimpleIndex(); 12553 this.findAllowedAttributeOptions(); 12554 this.updatePrices(); 12555 this.updateGallery(); 12556 12557 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 12558 this.findProductIdsForPartialSelection(this.selectedValues) : []; 12559 12560 const eventDetail = { 12561 productId: this.productId, 12562 optionId: attributeId, 12563 value: value, 12564 productIndex: this.productIndex || 0, 12565 selectedValues: this.selectedValues, 12566 candidates: candidates, 12567 sourceElement: this.$el 12568 }; 12569 12570 // Dispatch for Amasty 12571 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 12572 detail: eventDetail 12573 })); 12574 12575 // Dispatch for Hyva listing 12576 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 12577 detail: eventDetail 12578 })); 12579 }, 12580 12581 12582 clearOptionIfActive() { 12583 const itemId = this._getItemId(); 12584 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 12585 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 12586 this.changeOption(attrId, ''); 12587 12588 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 12589 if (!input && this.$el?.querySelector) { 12590 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 12591 } 12592 if (!input && this.$el?.closest) { 12593 const root = this.$el.closest('[data-product-id]') || this.$el; 12594 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 12595 } 12596 if (input) { 12597 input.checked = false;
12598 } 12599 } 12600 }, 12601 get optionIsEnabled() { 12602 const itemId = this._getItemId(); 12603 if (!this.$el || !itemId) return true; 12604 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12605 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 12606 return !!allowedOptions.find(opt => opt.id == itemId); 12607 }, 12608 get isSelected() { 12609 const itemId = this._getItemId(); 12610 if (!this.$el || !itemId) return false; 12611 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12612 return attrId ? (this.selectedValues[attrId] == itemId) : false; 12613 }, 12614 get isSwatchRequired() { 12615 if (!this.$el) return false; 12616 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12617 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 12618 }, 12619 focusedLabel: false, 12620 activeTooltipItem: false, 12621 tooltipPositionElement: false,
12622 setActiveTooltipItem() { 12623 const itemId = this._getItemId(); 12624 if (!this.$el || !itemId) return; 12625 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 12626 this.activeTooltipItem = { 12627 attribute: attrId, 12628 item: itemId, 12629 index: 0 12630 }; 12631 this.tooltipPositionElement = this.$event ? this.$event.target : null; 12632 }, 12633 unsetActiveTooltipItem() { 12634 this.activeTooltipItem = false; 12635 } 12636 }, 12637 confProdPreSelect() 12638 ); 12639 12640 if (result.optionConfig && result.optionConfig.attributes) { 12641 const attributes = result.optionConfig.attributes; 12642 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 12643 let source = attributes; 12644 if (Array.isArray(attributes)) { 12645 source = {}; 12646 attributes.forEach(attr => { 12647 if (attr && attr.id) source[attr.id] = attr; 12648 }); 12649 } 12650 const values = Object.values(source); 12651 const wrapper = Object.assign(values, source); 12652 Object.defineProperty(wrapper, '__amxnotifWrapped', { 12653 value: true, 12654 enumerable: false 12655 }); 12656 result.optionConfig.attributes = wrapper; 12657 } 12658 } 12659 12660 return result; 12661 } 12662 12663 window.addEventListener('alpine:init', () => { 12664 Alpine.data('initConfigurableSwatchOptions_46705', initConfigurableSwatchOptions_46705); 12665 }, { 12666 once: true 12667 }); 12668 </script>
12668 12669 12670 <div x-data="initConfigurableSwatchOptions_46705" x-defer="intersect"> 12671 <div class="pagebuilder-home-hidden"> 12672 12673 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 12674 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 12675 <template x-if="showSwatches"> 12676 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46705-163" role="radiogroup" aria-label="Einband"> 12677 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 12678 <div :data-option-id="item.id" style="display: contents"> 12679 <div x-id="getSwatchOptionHtmlIdGroup"> 12680 <template x-if="optionIsEnabled"> 12681 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
12681self="unsetActiveTooltipItem"> 12682 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46705-163"> 12683 <div> 12684 <template x-if="isTextSwatch"> 12685 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 12686 </template> 12687 <template x-if="!optionIsActive(163, item.id)"> 12688 <div> 12689 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 12690 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 12691 </svg> 12692 </div> 12693 </template> 12694 </div> 12695 </label> 12696 </template> 12697</div> </div> 12698 </template> 12699 </div> 12700 </template> 12701 </div> 12702 </div> 12703 </div> 12704 </div> 12705 12706 <div class="meta py-4 pagebuilder-home-hidden"> 12707 <div x-data="initMarketingShortText_46705()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 12708 <!-- Marketing short text --> 12709 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 12710 </div> 12711 12712 <!-- Short description --> 12713 <div class="short-description"> 12714 Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Spätestens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhunderts ... 12715 <a href="https://meiner.de/fmv_de/weltuntergang-21230" class="underline">mehr</a> 12716 </div> 12717 </div> 12718 12719 <!-- Series --> 12720 <div class="mb-1"> 12721 <span class="sr-only">Reihe:</span> 12722 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 12723 <span>Blaue Reihe</span> 12724 </a> 12725 </div> 12726 12727 12728 <div class="mb-1"> 12729 <span x-data="initEditionText_46705()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 12730 <!-- Marketing short text --> 12731 <span class="edition-text" x-html="editionText"></span> 2026, 138 Seiten </span> 12732 </div> 12733 12734 </div> 12735 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 12736 12737 <div class="justify-end" x-data="initPriceBox()" @update-prices-46705.window="updatePrice($event.detail);"> 12738 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46705" data-price-box="product-id-46705"><span class="normal-price"> 12739 <span x-data x-id="['product\u002Dprice\u002D46705']" class="price-container price-final_price tax weee"> 12740 <span class="price-label">Ab</span> 12741 <span class="approx-price">ca. </span> 12742 <span :id="$id('product\u002Dprice\u002D46705')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 12743 </span> 12744</span> 12745 12746 12747</div> </div> 12748 12749 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 12750 <div class="open-access-container open-access-container-46705 flex mt-4 ml-auto sm:mt-0 hidden"> 12751 <div class="text-gray-700"> 12752 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 12753 <a href="" target="_blank" class="open-access-external-link m-auto "> 12754 Kostenlos online lesen </a> 12755 </button> 12756 </div> 12757 </div> 12758 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Weltuntergang" aria-label="In den Warenkorb Weltuntergang" data-addto="cart"> 12759 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 12760 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
127600 014 0z"></path> 12761</svg> 12762 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 12763 In den Warenkorb </span> 12764 </button> 12765 12766<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46705)" aria-label="Zur Wunschliste hinzufügen Weltuntergang" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 12767 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 12768 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 12769</svg> 12770</button> 12771 </div> 12772 </div> 12773 </div> 12774
12774<script> 12775 function initMarketingShortText_46705() { 12776 var marketingShortTextConfig = {}; 12777 if (typeof window.initConfigurableSwatchOptions_46705 === "function") { 12778 var fullConfig = window.initConfigurableSwatchOptions_46705().optionConfig 12779 var marketingShortTextConfig = fullConfig.marketing_short_text; 12780 } 12781 return { 12782 marketingShortText: '', 12783 config: marketingShortTextConfig, 12784 productId: '46705', 12785 getMarketingShortText(detail) { 12786 this.marketingShortText = detail.productIndex ? 12787 this.config[detail.productIndex] : 12788 null; 12789 }, 12790 eventListeners: { 12791 ['@listing-configurable-selection-changed.window'](event) { 12792 if (this.productId == event.detail.productId) { 12793 this.getMarketingShortText(event.detail); 12794 } 12795 12796 } 12797 } 12798 } 12799 } 12800 12801 function initEditionText_46705() { 12802 var editionTextConfig = {}; 12803 if (typeof window.initConfigurableSwatchOptions_46705 === "function") { 12804 var fullConfig = window.initConfigurableSwatchOptions_46705().optionConfig 12805 var editionTextConfig = fullConfig.edition; 12806 } 12807 return { 12808 editionText: '', 12809 config: editionTextConfig, 12810 productId: '46705', 12811 getEditionText(detail) { 12812 this.editionText = detail.productIndex ? 12813 this.config[detail.productIndex] : 12814 null; 12815 }, 12816 eventListeners: { 12817 ['@listing-configurable-selection-changed.window'](event) { 12818 if (this.productId == event.detail.productId) { 12819 this.getEditionText(event.detail); 12820 } 12821 12822 } 12823 } 12824 } 12825 } 12826 </script>
12826 12827 </form> 12828 12829 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4150/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk13216"> 12830 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4150"> 12831 <a href="https://meiner.de/fmv_de/a-ber-das-recht-des-volks-zu-einer-revolution-13216" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 12832 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4150.window="$el.src = $event.detail" alt="Über das Recht des Volks zu einer Revolution" title="Über das Recht des Volks zu einer Revolution" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344505_4.jpg" :style="{ 12833 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 12834 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 12835 }"> 12836 </a> 12837 <div class="product-info flex flex-col flex-grow "> 12838 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 12839 <div class="mb-2 text-sm text-gray-500 font-medium"> 12840 <a href="https://meiner.de/fmv_de/person/Johann-Benjamin-Erhard-13217/" class="mb-2"> 12841 Johann Benjamin Erhard </a> 12842 </div> 12843 <a class="product-item-link" href="https://meiner.de/fmv_de/a-ber-das-recht-des-volks-zu-einer-revolution-13216"> 12844 Über das Recht des Volks zu einer Revolution </a> 12845 </div> 12846 12847 <div x-data="initEditionText_4150()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 12848 <!-- Marketing short text --> 12849 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 12850 </div> 12851 </div> 12852 12853 <div class="py-1 grid mb-4 "> 12854 12855 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4150,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4150,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"9909":"1","15378":"1"},"childProductsAlertStatus":{"9909":"0","15378":"0"},"indexMapping":{"163:15":9909,"163:8":15378},"availabilityMessages":{"9909":"Lieferbar innerhalb von 3-5 Tagen","15378":"Download sofort verf\u00fcgbar"},"openAccess":{"4150":{"status":0},"9909":{"status":0},"15378":{"status":0}}},"availabilityMessages":{"9909":"Lieferbar innerhalb von 3-5 Tagen","15378":"Download sofort verf\u00fcgbar"},"openAccess":{"4150":{"status":0},"9909":{"status":0},"15378":{"status":0}}}'> 12856 <template x-if="containerVisible"> 12857 <!-- Popup Trigger --> 12858 <div> 12859 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 12860 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
12861 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 12862 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 12863<title>bell</title></svg> 12864</span> 12865 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 12866 12867 <!-- Popup Modal --> 12868 <template x-if="showModal"> 12869 <template x-teleport=".page-wrapper"> 12870 <div x-cloak class="fixed inset-0 flex items-center justify-center 12871 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 12872 <div class="relative bg-white rounded-lg shadow-xl 12873 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 12874 <div class="p-6"> 12875 <!-- Subscription Form for Popup --> 12876 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 12877 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 12878 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 12879 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 12880 12881 <div class="flex flex-col gap-3"> 12882 <div class="flex-grow grow"> 12883 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 12884 shadow-xs focus:outline-none focus:outline-hidden 12885 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 12886 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 12887 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 12888 </div> 12889 <input type="hidden" name="product_id" :value="currentProductId"> 12890 <input type="hidden" name="type" value="email"> 12891 12892 12893 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 12894 12895 <div class="amxnotif_guest_action"> 12896 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 12897 rounded-md focus:outline-none 12898 focus:outline-hidden focus:ring-2 12899 focus:ring-offset-2 disabled:opacity-50 12900 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 12901 Benachrichtigen </button> 12902 </div> 12903 </div> 12904 12905 <div class="flex items-start pt-2"> 12906 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 12907 text-blue-600 border-gray-300 rounded-sm"> 12908 <label class="amxnotif-stock-gdrp-label cursor-pointer 12909 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 12910 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 12911 </div> 12912 </form> 12913 </div> 12914 12915 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 12916 hover:text-gray-600 transition-colors" aria-label="Schließen"> 12917 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 12918 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 12919<title>x</title></svg> 12920 </button> 12921 </div> 12922 </div> 12923 </template> 12924 </template> 12925 </div> 12926 </template> 12927 </div> 12928 12929<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4150" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4150,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"9909":"1","15378":"1"},"childProductsAlertStatus":{"9909":"0","15378":"0"},"indexMapping":"{\u0022163:15\u0022:9909,\u0022163:8\u0022:15378}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4150,"availabilityMessages":{"9909":"Lieferbar innerhalb von 3-5 Tagen","15378":"Download sofort verf\u00fcgbar"},"openAccess":{"4150":{"status":0},"9909":{"status":0},"15378":{"status":0}}}'> 12930 12931 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
12932 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 12933 <span x-html="optionsLabelText"></span> 12934 </p> 12935</div> </div> 12936 12937
12937<script> 12938 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 12939 try { 12940 const attributes = (config && config.attributes) ? config.attributes : null; 12941 if (!attributes) return []; 12942 let attr = null; 12943 if (Array.isArray(attributes)) { 12944 for (let i = 0; i < attributes.length; i++) { 12945 const a = attributes[i]; 12946 if (a && a.id == attrId) { 12947 attr = a; 12948 break; 12949 } 12950 } 12951 } else { 12952 attr = attributes[attrId]; 12953 } 12954 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 12955 } catch (e) { 12956 return []; 12957 } 12958 }; 12959 12960 function initConfigurableSwatchOptions_4150() { 12961 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["9909"]},{"id":"8","label":"PDF","products":["15378"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"9909":{"baseOldPrice":{"amount":23.271027037383},"oldPrice":{"amount":24.9},"basePrice":{"amount":23.271027037383},"finalPrice":{"amount":24.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15378":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"isApproxPrice":null},"productId":"4150","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"9909":{"163":"15"},"15378":{"163":"8"}},"salable":{"163":{"15":["9909"],"8":["15378"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"9909":"004277","15378":"004450"},"output":{"9909":"Kartoniert","15378":"PDF"},"original_name":{"9909":"","15378":""},"openaccess_license_link":{"9909":"","15378":""},"openaccess_license_name":{"9909":"","15378":""},"openaccess_external_link":{"9909":"","15378":""},"gpsr_safety_info":{"9909":"","15378":""},"description":{"9909":"\u00bbUeber das Recht des Volks zu einer Revolution\u00ab des N\u00fcrnberger Arztes und Kantianers Johann Benjamin Erhard ist ein Schl\u00fcsseltext der deutschen Revolutionstheorie um 1800 und ein Werk von besonderer ideengeschichtlicher Bedeutung. Als Klassiker im Feld der Menschenrechtstheorie ist das Buch unver\u00e4ndert diskussionsw\u00fcrdig.<br\/><br\/>Erhard z\u00e4hlt zu den Denkern der nachkantischen Philosophie, die ihre theoretischen \u00dcberlegungen nicht in einem systematischen Hauptwerk zusammengefasst haben. Seine wichtigsten Beitr\u00e4ge liegen in Briefen und Rezensionen vor. Seine politische Theorie hat er allerdings in der Revolutions-Schrift ausf\u00fchrlicher entwickelt. Nach der \u00dcbersetzung von \u00c9tienne de La Bo\u00e9ties Abhandlung \u00bbFreiwillige Knechtschaft\u00ab arbeitete Erhard 1793 zun\u00e4chst als Entgegnung auf La Bo\u00e9tie eine \u00bbPr\u00fcfung der Alleinherrschaft nach moralischen Prinzipien\u00ab f\u00fcr Wielands \u00bbNeuen Teutschen Merkur\u00ab aus. Sein Verleger Friedrich Carl Forberg urteilte dar\u00fcber: \u00bbIch kenne niemanden, der \u00fcber Gegenst\u00e4nde des Staatsrechts mit dem Tiefsinne, und dem mutigen Blicke philosophirt h\u00e4tte [\u2026].\u00ab <br\/>Die Revolutionsschrift setzt diese \u00dcberlegungen fort. Sie wurde nach ihrem Erscheinen 1795 in mehreren Staaten verboten und hat dennoch eine gr\u00f6\u00dfere Wirkung entfalten k\u00f6nnen: In Fichtes Rechtstheorie, Schillers Dramenwerk oder der politischen Philosophie der Fr\u00fchromantik finden sich Reaktionen auf Erhards Ausf\u00fchrungen.","15378":"\u00bbUeber das Recht des Volks zu einer Revolution\u00ab des N\u00fcrnberger Arztes und Kantianers Johann Benjamin Erhard ist ein Schl\u00fcsseltext der deutschen Revolutionstheorie um 1800 und ein Werk von besonderer ideengeschichtlicher Bedeutung. Als Klassiker im Feld der Menschenrechtstheorie ist das Buch unver\u00e4ndert diskussionsw\u00fcrdig.<br\/><br\/>Erhard z\u00e4hlt zu den Denkern der nachkantischen Philosophie, die ihre theoretischen \u00dcberlegungen nicht in einem systematischen Hauptwerk zusammengefasst haben. Seine wichtigsten Beitr\u00e4ge liegen in Briefen und Rezensionen vor. Seine politische Theorie hat er allerdings in der Revolutions-Schrift ausf\u00fchrlicher entwickelt. Nach der \u00dcbersetzung von \u00c9tienne de La Bo\u00e9ties Abhandlung \u00bbFreiwillige Knechtschaft\u00ab arbeitete Erhard 1793 zun\u00e4chst als Entgegnung auf La Bo\u00e9tie eine \u00bbPr\u00fcfung der Alleinherrschaft nach moralischen Prinzipien\u00ab f\u00fcr Wielands \u00bbNeuen Teutschen Merkur\u00ab aus. Sein Verleger Friedrich Carl Forberg urteilte dar\u00fcber: \u00bbIch kenne niemanden, der \u00fcber Gegenst\u00e4nde des Staatsrechts mit dem Tiefsinne, und dem mutigen Blicke philosophirt h\u00e4tte [\u2026].\u00ab <br\/>Die Revolutionsschrift setzt diese \u00dcberlegungen fort. Sie wurde nach ihrem Erscheinen 1795 in mehreren Staaten verboten und hat dennoch eine gr\u00f6\u00dfere Wirkung entfalten k\u00f6nnen: In Fichtes Rechtstheorie, Schillers Dramenwerk oder der politischen Philosophie der Fr\u00fchromantik finden sich Reaktionen auf Erhards Ausf\u00fchrungen."},"doi":{"9909":"","15378":"10.28937\/978-3-7873-4450-5"},"isbn":{"9909":"978-3-7873-4277-8","15378":"978-3-7873-4450-5"},"marketing_short_text":{"9909":"","15378":""},"recension_text":{"9909":"","15378":""},"language":{"9909":"","15378":""},"cover":{"9909":"Kartoniert","15378":""},"pages":{"9909":"XCVIII, 140 Seiten","15378":"172 Seiten"},"edition":{"9909":"","15378":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"9909":"Nein","15378":"Nein"},"copyright_year":{"9909":"","15378":""},"vlb_tix_link":{"9909":"https:\/\/neu.vlbtix.de\/products\/9783787342778?type=gtin","15378":""},"defaultValues":{"163":"15"}}; 12962 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 12963 12964 if (typeof window.amxnotif_wrap_attributes === 'function') { 12965 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 12966 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 12967 } 12968 12969 const configurableOptionsComponent = initConfigurableOptions( 12970 '4150', 12971 config 12972 ); 12973 const swatchOptionsComponent = initSwatchOptions( 12974 swatchConfig 12975 ); 12976 12977 // DWS - Configurable product preselect start 12978 const confProdPreSelect = () => { 12979 return { 12980 preselectQuerystringItems() { 12981 var data = {"id":"9909","output":"15"}; 12982 const urlQueryParams = new URLSearchParams(window.location.search); 12983 12984 this.$nextTick(() => { 12985 setTimeout(() => { 12986 const rootEl = this.$root || this.$el; 12987 if (!rootEl) return; 12988 12989 const applySelection = (attrCode, attrValue) => { 12990 if (attrValue === undefined || attrValue === null || attrValue === '') return; 12991 12992 const attributes = Object.values(this.optionConfig.attributes || {}); 12993 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 12994 12995 if (targetAttr) { 12996 const attrId = String(targetAttr.id); 12997 const optionVal = String(attrValue); 12998 12999 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 13000 13001 if (inputEl) { 13002 inputEl.click(); 13003 inputEl.dispatchEvent(new Event('change', { 13004 bubbles: true 13005 })); 13006 } else { 13007 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 13008 if (selectEl) { 13009 selectEl.value = optionVal; 13010 selectEl.dispatchEvent(new Event('change', { 13011 bubbles: true 13012 })); 13013 } 13014 } 13015 13016 this.changeOption(attrId, optionVal, false); 13017 } 13018 }; 13019 13020 if (data && typeof data === 'object') {
13021 Object.keys(data).forEach(key => applySelection(key, data[key])); 13022 } 13023 13024 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 13025 if (attribute && attribute.code) { 13026 let optionValue = urlQueryParams.get(attribute.code); 13027 if (optionValue) { 13028 let optionId = false; 13029 const attributes = Object.values(this.optionConfig.attributes || {}); 13030 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 13031 13032 let found = false; 13033 Object.values(targetAttr.options).map(option => { 13034 if (found === false && option.label === optionValue) { 13035 optionId = option.id; 13036 found = true; 13037 } 13038 }); 13039 13040 const attrId = String(targetAttr.id); 13041 let optionVal = String(optionValue); 13042 if (found) { 13043 optionVal = String(optionId); 13044 } 13045 13046 applySelection(attribute.code, optionVal); 13047 } 13048 } 13049 }); 13050 }, 100); 13051 }); 13052 } 13053 } 13054 }; 13055 // DWS - Configurable product preselect end 13056 13057 const result = Object.assign( 13058 configurableOptionsComponent, 13059 swatchOptionsComponent, { 13060 productId: '4150', 13061 productIndex: 0, 13062 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 13063 showSwatches: false, 13064 precalcOptions: {}, 13065 originalInit: configurableOptionsComponent.init, 13066 init() { 13067 try { 13068 this.precalcOptions = {}; 13069 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 13070 this.preselectQuerystringItems(); 13071 if (Array.isArray(attrSource)) { 13072 attrSource.forEach(attr => { 13073 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 13074 }); 13075 } else if (attrSource && typeof attrSource === 'object') { 13076 Object.keys(attrSource).forEach(id => { 13077 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 13078 }); 13079 } 13080 } catch (e) { 13081 console.error('Pre-calc error:', e); 13082 } 13083 13084 if (typeof this.originalInit === 'function') { 13085 this.originalInit(); 13086 } 13087 13088 try { 13089 this.initShowSwatchesIntersect(); 13090 } catch (e) { 13091 console.error('intersect error:', e); 13092 } 13093 }, 13094 13095 updateGallery() { 13096 if (!this.productIndex) return; 13097 13098 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 13099 method: 'GET', 13100 headers: { 13101 'Content-Type': 'application/json', 13102 'X-Requested-With': 'XMLHttpRequest' 13103 } 13104 }) 13105 .then(response => response.json()) 13106 .then(data => { 13107 if (data && data.medium) { 13108 window.dispatchEvent(new CustomEvent("update-gallery-4150", { 13109 detail: data.medium 13110 })); 13111 } 13112 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 13113 }, 13114 13115 13116 initShowSwatchesIntersect() { 13117 const observer = new IntersectionObserver(entries => { 13118 if (entries[0].isIntersecting) { 13119 this.showSwatches = true; 13120 observer.disconnect(); 13121 } 13122 }, { 13123 rootMargin: '512px' 13124 }); 13125 observer.observe(this.$el); 13126 }, 13127 getOptions(attrId) { 13128 return this.precalcOptions[attrId] || []; 13129 }, 13130 getOptionsByAttrId() { 13131 return this.getOptions(this.$el.dataset.attributeId); 13132 }, 13133 _getItemId() { 13134 if (this.item && this.item.id) return this.item.id; 13135 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 13136 }, 13137 getSwatchOptionHtmlId() { 13138 const itemId = this._getItemId(); 13139 return itemId ? this.$id(`attribute-option-4150-${itemId}`) : ''; 13140 }, 13141 getSwatchOptionHtmlIdGroup() { 13142 const itemId = this._getItemId(); 13143 return itemId ? [`attribute-option-4150-${itemId}`] : []; 13144 }, 13145 getAttributeSwatchData(attributeId) { 13146 const data = Object.assign({}, this.swatchConfig[attributeId]); 13147 if (data['additional_data']) { 13148 try { 13149 data['details'] = JSON.parse(data['additional_data']); 13150 } catch (e) { 13151 data['details'] = {}; 13152 } 13153 } 13154 return data; 13155 }, 13156 getSwatchType(attributeId, optionId) { 13157 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 13158 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 13159 } 13160 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 13161 this.swatchConfig[attributeId].details.swatch_input_type : 13162 "empty"; 13163 if (type === 'visual') { 13164 const config = this.swatchConfig[attributeId]; 13165 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 13166 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 13167 } 13168 // Fallback to first option type 13169 for (const oId in config) { 13170 if (config[oId] && typeof config[oId].type !== 'undefined') { 13171 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 13172 } 13173 } 13174 } 13175 return type; 13176 }, 13177 mapSwatchTypeNumberToTypeCode(type) { 13178 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 13179 }, 13180 isTextSwatch() { 13181 const itemId = this._getItemId(); 13182 if (!this.$el || !itemId) return false;
13183 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13184 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 13185 }, 13186 13187 getSwatchText() { 13188 const itemId = this._getItemId(); 13189 if (this.item) return this.item.label || ''; 13190 if (!this.$el || !itemId) return ''; 13191 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13192 const options = attrId ? this.getOptions(attrId) : []; 13193 const opt = options.find(o => o.id == itemId); 13194 return opt ? opt.label : ''; 13195 }, 13196 getSwatchBackgroundStyle() { 13197 const itemId = this._getItemId(); 13198 if (!this.$el || !itemId) return ''; 13199 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13200 if (!attrId) return ''; 13201 const type = this.getSwatchType(attrId, itemId); 13202 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 13203 this.swatchConfig[attrId][itemId] : 13204 null; 13205 if (!swatchData) return ''; 13206 if (type === "color") return 'background-color:' + swatchData.value; 13207 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 13208 return ''; 13209 }, 13210 swatchOptionClasses() { 13211 const itemId = this._getItemId(); 13212 if (!this.$el || !itemId) return {}; 13213 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13214 return { 13215 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 13216 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 13217 'w-6 h-6': !this.isTextSwatch() 13218 } 13219 }, 13220 13221 onFocusSwatchItem() { 13222 const itemId = this._getItemId(); 13223 if (itemId) this.focusedLabel = itemId; 13224 }, 13225 onChangeOption() { 13226 const itemId = this._getItemId(); 13227 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 13228 if (attrId && itemId) this.changeOption(attrId, itemId); 13229 }, 13230 changeOption(attributeId, value) { 13231 if (value === '') { 13232 return; 13233 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 13234 } else { 13235 this.selectedValues[attributeId] = value; 13236 } 13237 13238 this.findSimpleIndex(); 13239 this.findAllowedAttributeOptions(); 13240 this.updatePrices(); 13241 this.updateGallery(); 13242 13243 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 13244 this.findProductIdsForPartialSelection(this.selectedValues) : []; 13245 13246 const eventDetail = { 13247 productId: this.productId, 13248 optionId: attributeId, 13249 value: value, 13250 productIndex: this.productIndex || 0, 13251 selectedValues: this.selectedValues, 13252 candidates: candidates, 13253 sourceElement: this.$el 13254 }; 13255 13256 // Dispatch for Amasty 13257 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 13258 detail: eventDetail 13259 })); 13260 13261 // Dispatch for Hyva listing 13262 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 13263 detail: eventDetail 13264 })); 13265 }, 13266 13267 13268 clearOptionIfActive() { 13269 const itemId = this._getItemId(); 13270 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 13271 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 13272 this.changeOption(attrId, ''); 13273 13274 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 13275 if (!input && this.$el?.querySelector) { 13276 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 13277 } 13278 if (!input && this.$el?.closest) { 13279 const root = this.$el.closest('[data-product-id]') || this.$el; 13280 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 13281 } 13282 if (input) { 13283 input.checked = false;
13284 } 13285 } 13286 }, 13287 get optionIsEnabled() { 13288 const itemId = this._getItemId(); 13289 if (!this.$el || !itemId) return true; 13290 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13291 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 13292 return !!allowedOptions.find(opt => opt.id == itemId); 13293 }, 13294 get isSelected() { 13295 const itemId = this._getItemId(); 13296 if (!this.$el || !itemId) return false; 13297 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13298 return attrId ? (this.selectedValues[attrId] == itemId) : false; 13299 }, 13300 get isSwatchRequired() { 13301 if (!this.$el) return false; 13302 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13303 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 13304 }, 13305 focusedLabel: false, 13306 activeTooltipItem: false, 13307 tooltipPositionElement: false,
13308 setActiveTooltipItem() { 13309 const itemId = this._getItemId(); 13310 if (!this.$el || !itemId) return; 13311 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13312 this.activeTooltipItem = { 13313 attribute: attrId, 13314 item: itemId, 13315 index: 0 13316 }; 13317 this.tooltipPositionElement = this.$event ? this.$event.target : null; 13318 }, 13319 unsetActiveTooltipItem() { 13320 this.activeTooltipItem = false; 13321 } 13322 }, 13323 confProdPreSelect() 13324 ); 13325 13326 if (result.optionConfig && result.optionConfig.attributes) { 13327 const attributes = result.optionConfig.attributes; 13328 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 13329 let source = attributes; 13330 if (Array.isArray(attributes)) { 13331 source = {}; 13332 attributes.forEach(attr => { 13333 if (attr && attr.id) source[attr.id] = attr; 13334 }); 13335 } 13336 const values = Object.values(source); 13337 const wrapper = Object.assign(values, source); 13338 Object.defineProperty(wrapper, '__amxnotifWrapped', { 13339 value: true, 13340 enumerable: false 13341 }); 13342 result.optionConfig.attributes = wrapper; 13343 } 13344 } 13345 13346 return result; 13347 } 13348 13349 window.addEventListener('alpine:init', () => { 13350 Alpine.data('initConfigurableSwatchOptions_4150', initConfigurableSwatchOptions_4150); 13351 }, { 13352 once: true 13353 }); 13354 </script>
13354 13355 13356 <div x-data="initConfigurableSwatchOptions_4150" x-defer="intersect"> 13357 <div class="pagebuilder-home-hidden"> 13358 13359 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 13360 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 13361 <template x-if="showSwatches"> 13362 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4150-163" role="radiogroup" aria-label="Einband"> 13363 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 13364 <div :data-option-id="item.id" style="display: contents"> 13365 <div x-id="getSwatchOptionHtmlIdGroup"> 13366 <template x-if="optionIsEnabled"> 13367 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
13367self="unsetActiveTooltipItem"> 13368 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4150-163"> 13369 <div> 13370 <template x-if="isTextSwatch"> 13371 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 13372 </template> 13373 <template x-if="!optionIsActive(163, item.id)"> 13374 <div> 13375 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 13376 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 13377 </svg> 13378 </div> 13379 </template> 13380 </div> 13381 </label> 13382 </template> 13383</div> </div> 13384 </template> 13385 </div> 13386 </template> 13387 </div> 13388 </div> 13389 </div> 13390 </div> 13391 13392 <div class="meta py-4 pagebuilder-home-hidden"> 13393 <div x-data="initMarketingShortText_4150()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 13394 <!-- Marketing short text --> 13395 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 13396 </div> 13397 13398 <!-- Short description --> 13399 <div class="short-description"> 13400 »Ueber das Recht des Volks zu einer Revolution« des Nürnberger Arztes und Kantianers Johann Benjamin Erhard ist ein Schlüsseltext der deutschen Revolutionstheorie um 1800 und ein Werk von ... <a href="https://meiner.de/fmv_de/a-ber-das-recht-des-volks-zu-einer-revolution-13216" class="underline">mehr</a> 13401 </div> 13402 </div> 13403 13404 <!-- Series --> 13405 <div class="mb-1"> 13406 <span class="sr-only">Reihe:</span> 13407 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 13408 <span>Philosophische Bibliothek</span> 13409 </a> 13410 771 </div> 13411 13412 13413 <div class="mb-1"> 13414 <span x-data="initEditionText_4150()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 13415 <!-- Marketing short text --> 13416 <span class="edition-text" x-html="editionText"></span> 2026, XCVIII, 140 Seiten </span> 13417 </div> 13418 13419 </div> 13420 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 13421 13422 <div class="justify-end" x-data="initPriceBox()" @update-prices-4150.window="updatePrice($event.detail);"> 13423 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4150" data-price-box="product-id-4150"><span class="normal-price"> 13424 <span x-data x-id="['product\u002Dprice\u002D4150']" class="price-container price-final_price tax weee"> 13425 <span class="price-label">Ab</span> 13426 <span class="approx-price">ca. </span>
13427 <span :id="$id('product\u002Dprice\u002D4150')" data-price-amount="18.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">18,99 €</span></span> 13428 </span> 13429</span> 13430 13431 13432</div> </div> 13433 13434 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 13435 <div class="open-access-container open-access-container-4150 flex mt-4 ml-auto sm:mt-0 hidden"> 13436 <div class="text-gray-700"> 13437 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 13438 <a href="" target="_blank" class="open-access-external-link m-auto "> 13439 Kostenlos online lesen </a> 13440 </button> 13441 </div> 13442 </div> 13443 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Über das Recht des Volks zu einer Revolution" aria-label="In den Warenkorb Über das Recht des Volks zu einer Revolution" data-addto="cart"> 13444 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 13445 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 13446</svg> 13447 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 13448 In den Warenkorb </span> 13449 </button> 13450 13451<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4150)" aria-label="Zur Wunschliste hinzufügen Über das Recht des Volks zu einer Revolution" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 13452 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 13453 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 13454</svg> 13455</button> 13456 </div> 13457 </div> 13458 </div> 13459
13459<script> 13460 function initMarketingShortText_4150() { 13461 var marketingShortTextConfig = {}; 13462 if (typeof window.initConfigurableSwatchOptions_4150 === "function") { 13463 var fullConfig = window.initConfigurableSwatchOptions_4150().optionConfig 13464 var marketingShortTextConfig = fullConfig.marketing_short_text; 13465 } 13466 return { 13467 marketingShortText: '', 13468 config: marketingShortTextConfig, 13469 productId: '4150', 13470 getMarketingShortText(detail) { 13471 this.marketingShortText = detail.productIndex ? 13472 this.config[detail.productIndex] : 13473 null; 13474 }, 13475 eventListeners: { 13476 ['@listing-configurable-selection-changed.window'](event) { 13477 if (this.productId == event.detail.productId) { 13478 this.getMarketingShortText(event.detail); 13479 } 13480 13481 } 13482 } 13483 } 13484 } 13485 13486 function initEditionText_4150() { 13487 var editionTextConfig = {}; 13488 if (typeof window.initConfigurableSwatchOptions_4150 === "function") { 13489 var fullConfig = window.initConfigurableSwatchOptions_4150().optionConfig 13490 var editionTextConfig = fullConfig.edition; 13491 } 13492 return { 13493 editionText: '', 13494 config: editionTextConfig, 13495 productId: '4150', 13496 getEditionText(detail) { 13497 this.editionText = detail.productIndex ? 13498 this.config[detail.productIndex] : 13499 null; 13500 }, 13501 eventListeners: { 13502 ['@listing-configurable-selection-changed.window'](event) { 13503 if (this.productId == event.detail.productId) { 13504 this.getEditionText(event.detail); 13505 } 13506 13507 } 13508 } 13509 } 13510 } 13511 </script>
13511 13512 </form> 13513 13514 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/39968/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17366"> 13515 <input name="form_key" type="hidden" value="YDP9RAeVFUo72arn"> <input type="hidden" name="product" value="39968"> 13516 <a href="https://meiner.de/fmv_de/kritik-der-digitalisierung-17366" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 13517 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-39968.window="$el.src = $event.detail" alt="Kritik der Digitalisierung" title="Kritik der Digitalisierung" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351923_1.jpg" :style="{ 13518 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 13519 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 13520 }"> 13521 </a> 13522 <div class="product-info flex flex-col flex-grow "> 13523 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 13524 <div class="mb-2 text-sm text-gray-500 font-medium"> 13525 <a href="https://meiner.de/fmv_de/person/Daniel-Martin-Feige-3273/" class="mb-2"> 13526 Daniel Martin Feige </a> 13527 </div> 13528 <a class="product-item-link" href="https://meiner.de/fmv_de/kritik-der-digitalisierung-17366"> 13529 Kritik der Digitalisierung </a> 13530 </div> 13531 13532 <div x-data="initEditionText_39968()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 13533 <!-- Marketing short text --> 13534 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 13535 </div> 13536 </div> 13537 13538 <div class="py-1 grid mb-4 "> 13539 13540 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":39968,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":39968,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2RpZS1zYWNoZS1kZXItbG9naWs~","childProducts":{"47023":"1","47057":"1","47058":"1"},"childProductsAlertStatus":{"47023":"0","47057":"0","47058":"0"},"indexMapping":{"163:15":47023,"163:8":47057,"163:9":47058},"availabilityMessages":{"47023":"Lieferbar innerhalb von 3-5 Tagen","47057":"Download sofort verf\u00fcgbar","47058":"Download sofort verf\u00fcgbar"},"openAccess":{"39968":{"status":0},"47023":{"status":0},"47057":{"status":0},"47058":{"status":0}}},"availabilityMessages":{"47023":"Lieferbar innerhalb von 3-5 Tagen","47057":"Download sofort verf\u00fcgbar","47058":"Download sofort verf\u00fcgbar"},"openAccess":{"39968":{"status":0},"47023":{"status":0},"47057":{"status":0},"47058":{"status":0}}}'> 13541 <template x-if="containerVisible"> 13542 <!-- Popup Trigger --> 13543 <div> 13544 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 13545 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
13546 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 13547 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 13548<title>bell</title></svg> 13549</span> 13550 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 13551 13552 <!-- Popup Modal --> 13553 <template x-if="showModal"> 13554 <template x-teleport=".page-wrapper"> 13555 <div x-cloak class="fixed inset-0 flex items-center justify-center 13556 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 13557 <div class="relative bg-white rounded-lg shadow-xl 13558 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 13559 <div class="p-6"> 13560 <!-- Subscription Form for Popup --> 13561 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 13562 <input name="form_key" type="hidden" value="YDP9RAeVFUo72arn"> 13563 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 13564 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 13565 13566 <div class="flex flex-col gap-3"> 13567 <div class="flex-grow grow"> 13568 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 13569 shadow-xs focus:outline-none focus:outline-hidden 13570 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 13571 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 13572 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 13573 </div> 13574 <input type="hidden" name="product_id" :value="currentProductId"> 13575 <input type="hidden" name="type" value="email"> 13576 13577 <input type="hidden" name="parent_id" value="4130"> 13578 13579 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2RpZS1zYWNoZS1kZXItbG9naWs~"> 13580 13581 <div class="amxnotif_guest_action"> 13582 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 13583 rounded-md focus:outline-none 13584 focus:outline-hidden focus:ring-2 13585 focus:ring-offset-2 disabled:opacity-50 13586 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 13587 Benachrichtigen </button> 13588 </div> 13589 </div> 13590 13591 <div class="flex items-start pt-2"> 13592 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 13593 text-blue-600 border-gray-300 rounded-sm"> 13594 <label class="amxnotif-stock-gdrp-label cursor-pointer 13595 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 13596 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 13597 </div> 13598 </form> 13599 </div> 13600 13601 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 13602 hover:text-gray-600 transition-colors" aria-label="Schließen"> 13603 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 13604 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 13605<title>x</title></svg> 13606 </button> 13607 </div> 13608 </div> 13609 </template> 13610 </template> 13611 </div> 13612 </template> 13613 </div> 13614 13615<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_39968" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":39968,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2RpZS1zYWNoZS1kZXItbG9naWs~","childProducts":{"47023":"1","47057":"1","47058":"1"},"childProductsAlertStatus":{"47023":"0","47057":"0","47058":"0"},"indexMapping":"{\u0022163:15\u0022:47023,\u0022163:8\u0022:47057,\u0022163:9\u0022:47058}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":39968,"availabilityMessages":{"47023":"Lieferbar innerhalb von 3-5 Tagen","47057":"Download sofort verf\u00fcgbar","47058":"Download sofort verf\u00fcgbar"},"openAccess":{"39968":{"status":0},"47023":{"status":0},"47057":{"status":0},"47058":{"status":0}}}'> 13616 13617 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
13618 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 13619 <span x-html="optionsLabelText"></span> 13620 </p> 13621</div> </div> 13622 13623
13623<script> 13624 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 13625 try { 13626 const attributes = (config && config.attributes) ? config.attributes : null; 13627 if (!attributes) return []; 13628 let attr = null; 13629 if (Array.isArray(attributes)) { 13630 for (let i = 0; i < attributes.length; i++) { 13631 const a = attributes[i]; 13632 if (a && a.id == attrId) { 13633 attr = a; 13634 break; 13635 } 13636 } 13637 } else { 13638 attr = attributes[attrId]; 13639 } 13640 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 13641 } catch (e) { 13642 return []; 13643 } 13644 }; 13645 13646 function initConfigurableSwatchOptions_39968() { 13647 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["47023"]},{"id":"8","label":"PDF","products":["47057"]},{"id":"9","label":"EPUB","products":["47058"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47023":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47057":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47058":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"39968","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"47023":{"163":"15"},"47057":{"163":"8"},"47058":{"163":"9"}},"salable":{"163":{"15":["47023"],"8":["47057"],"9":["47058"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"47023":"005190","47057":"005191","47058":"005192"},"output":{"47023":"Kartoniert","47057":"PDF","47058":"EPUB"},"original_name":{"47023":"","47057":"","47058":""},"openaccess_license_link":{"47023":"","47057":"","47058":""},"openaccess_license_name":{"47023":"","47057":"","47058":""},"openaccess_external_link":{"47023":"","47057":"","47058":""},"gpsr_safety_info":{"47023":"","47057":"","47058":""},"description":{"47023":"\u203aDigitalisierung\u2039 ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der Digitalisierung verbundenen Technologien weder neutrale noch unschuldige Mittel zu beliebigen Zwecken sind und soziale Medien keine Orte des Diskurses. Es weist nach, dass wir Begriffe wie Geist, Denken und Handeln KI-Systemen nicht sinnvoll zuschreiben k\u00f6nnen und entsprechende Diskurse einer Umarbeitung von Begriffen dienen, die wir eigentlich nur auf Menschen anwenden k\u00f6nnen.<br\/><br\/>Feige entwickelt seine Kritik an der Datifizierung unseres gesellschaftlichen Lebens in drei Schritten: aus technikphilosophischer, anthropologischer und kunstphilosophischer Perspektive. Dabei macht er plausibel, dass Kunst unter den Bedingungen der Digitalisierung eine kritische Rolle erf\u00fcllen kann und dass wir auf umstrittene Begriffe wie Autonomie und selbst Genie nicht verzichten k\u00f6nnen.<br\/><br\/>Sein Buch bietet zum ersten Mal den systematischen Entwurf einer kritischen Theorie der Digitalisierung. Dass sich vor dem Hintergrund seiner Diagnose sowohl Analysen, die die Digitalisierung bis in die Vor- und Fr\u00fchgeschichte verl\u00e4ngern, als auch Diskurse, die der K\u00fcnstlichen Intelligenz die F\u00e4higkeit zu handeln und zu denken zusprechen, als h\u00f6c
13647hst problematisch erweisen, zeigt Feige in seinem differenziert argumentierenden Essay.","47057":"\u203aDigitalisierung\u2039 ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der Digitalisierung verbundenen Technologien weder neutrale noch unschuldige Mittel zu beliebigen Zwecken sind und soziale Medien keine Orte des Diskurses. Es weist nach, dass wir Begriffe wie Geist, Denken und Handeln KI-Systemen nicht sinnvoll zuschreiben k\u00f6nnen und entsprechende Diskurse einer Umarbeitung von Begriffen dienen, die wir eigentlich nur auf Menschen anwenden k\u00f6nnen.<br\/><br\/>Feige entwickelt seine Kritik an der Datifizierung unseres gesellschaftlichen Lebens in drei Schritten: aus technikphilosophischer, anthropologischer und kunstphilosophischer Perspektive. Dabei macht er plausibel, dass Kunst unter den Bedingungen der Digitalisierung eine kritische Rolle erf\u00fcllen kann und dass wir auf umstrittene Begriffe wie Autonomie und selbst Genie nicht verzichten k\u00f6nnen.<br\/><br\/>Sein Buch bietet zum ersten Mal den systematischen Entwurf einer kritischen Theorie der Digitalisierung. Dass sich vor dem Hintergrund seiner Diagnose sowohl Analysen, die die Digitalisierung bis in die Vor- und Fr\u00fchgeschichte verl\u00e4ngern, als auch Diskurse, die der K\u00fcnstlichen Intelligenz die F\u00e4higkeit zu handeln und zu denken zusprechen, als h\u00f6chst problematisch erweisen, zeigt Feige in seinem differenziert argumentierenden Essay.","47058":"\u203aDigitalisierung\u2039 ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der Digitalisierung verbundenen Technologien weder neutrale noch unschuldige Mittel zu beliebigen Zwecken sind und soziale Medien keine Orte des Diskurses. Es weist nach, dass wir Begriffe wie Geist, Denken und Handeln KI-Systemen nicht sinnvoll zuschreiben k\u00f6nnen und entsprechende Diskurse einer Umarbeitung von Begriffen dienen, die wir eigentlich nur auf Menschen anwenden k\u00f6nnen.<br\/><br\/>Feige entwickelt seine Kritik an der Datifizierung unseres gesellschaftlichen Lebens in drei Schritten: aus technikphilosophischer, anthropologischer und kunstphilosophischer Perspektive. Dabei macht er plausibel, dass Kunst unter den Bedingungen der Digitalisierung eine kritische Rolle erf\u00fcllen kann und dass wir auf umstrittene Begriffe wie Autonomie und selbst Genie nicht verzichten k\u00f6nnen.<br\/><br\/>Sein Buch bietet zum ersten Mal den systematischen Entwurf einer kritischen Theorie der Digitalisierung. Dass sich vor dem Hintergrund seiner Diagnose sowohl Analysen, die die Digitalisierung bis in die Vor- und Fr\u00fchgeschichte verl\u00e4ngern, als auch Diskurse, die der K\u00fcnstlichen Intelligenz die F\u00e4higkeit zu handeln und zu denken zusprechen, als h\u00f6chst problematisch erweisen, zeigt Feige in seinem differenziert argumentierenden Essay."},"doi":{"47023":"","47057":"10.28937\/978-3-7873-5191-6","47058":""},"isbn":{"47023":"978-3-7873-5190-9","47057":"978-3-7873-5191-6","47058":"978-3-7873-5192-3"},"marketing_short_text":{"47023":"","47057":"","47058":""},"recension_text":{"47023":"<div class=\"reviews\">\r\n<div class=\"review\">\u203aKritik der Digitalisierung\u2039 ist eine wichtige und philosophisch fundierte Auseinandersetzung mit den Technologien, Konzepten und Begriffen, die unser Leben heute pr\u00e4gen. Wer dieses Buch gelesen hat, wird \u00fcber \u203aDigitalisierung\u2039 oder \u203ak\u00fcnstliche Intelligenz\u2039 sicher pr\u00e4ziser denken und sprechen k\u00f6nnen als vor der Lekt\u00fcre.<\/div>\r\n<div class=\"source\"><\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Daniel Martin Feige zeigt mit seinem Essay \u203aKritik der Digitalisierung\u2039 gekonnt M\u00f6glichkeiten der Reaktualisierung der \u00e4lteren kritischen Theorie zur Analyse des Digitalzeitalters auf.\n<\/div>\r\n<div class=\"source\">Dr. Marcel Remme, f\u00fcr lehrerbibliothek.de, 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige bietet eine gr\u00fcndliche und systematische Darstellung.<\/div>\r\n<div class=\"source\">Thomas Gro\u00df in zeitzeichen 08\/2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige gelingt es, die Tiefe philosophischen Nachdenkens f\u00fcr den KI-Diskurs zu erschlie\u00dfen, ohne bereits den Anspruch zu erheben, sie ganz au
13647szuloten. Er zeigt, was m\u00f6glich ist, wenn man die philosophische Tradition in Anspruch nimmt und \u00fcber reine Schlagworte und eine blo\u00df politische Bewertung der Digitalisierung hinauskommt.<\/div>\r\n<div class=\"source\">Marc P\u00fcschel in Junge Welt vom 29.07.2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch zeigt sehr anschaulich, warum digitale Systeme nur etwas Nachgebautes sind. Warum sie das, was menschliche Vernunft leisten kann, eben nicht leisten, auch nicht die sogenannte K\u00fcnstliche Intelligenz. Und dass es deshalb fatal ist, wenn wir uns der Logik des Digitalen unterwerfen. [\u2026] Das ist die Pointe dieses spannenden Buchs von Daniel Martin Feige, seine \u203aKritik der Digitalisierung\u2039: Nicht dass der Mensch digitale Technik nutzt, ist das Problem. Sondern dass er zugleich beginnt, die eigene Vernunft auszuschalten.<\/div>\r\n<div class=\"source\">Wilm H\u00fcffer auf SWR Kultur<\/div>\r\n<\/div>","47057":"<div class=\"reviews\">\r\n<div class=\"review\">\u203aKritik der Digitalisierung\u2039 ist eine wichtige und philosophisch fundierte Auseinandersetzung mit den Technologien, Konzepten und Begriffen, die unser Leben heute pr\u00e4gen. Wer dieses Buch gelesen hat, wird \u00fcber \u203aDigitalisierung\u2039 oder \u203ak\u00fcnstliche Intelligenz\u2039 sicher pr\u00e4ziser denken und sprechen k\u00f6nnen als vor der Lekt\u00fcre.<\/div>\r\n<div class=\"source\"><\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Daniel Martin Feige zeigt mit seinem Essay \u203aKritik der Digitalisierung\u2039 gekonnt M\u00f6glichkeiten der Reaktualisierung der \u00e4lteren kritischen Theorie zur Analyse des Digitalzeitalters auf.\n<\/div>\r\n<div class=\"source\">Dr. Marcel Remme, f\u00fcr lehrerbibliothek.de, 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige bietet eine gr\u00fcndliche und systematische Darstellung.<\/div>\r\n<div class=\"source\">Thomas Gro\u00df in zeitzeichen 08\/2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige gelingt es, die Tiefe philosophischen Nachdenkens f\u00fcr den KI-Diskurs zu erschlie\u00dfen, ohne bereits den Anspruch zu erheben, sie ganz auszuloten. Er zeigt, was m\u00f6glich ist, wenn man die philosophische Tradition in Anspruch nimmt und \u00fcber reine Schlagworte und eine blo\u00df politische Bewertung der Digitalisierung hinauskommt.<\/div>\r\n<div class=\"source\">Marc P\u00fcschel in Junge Welt vom 29.07.2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch zeigt sehr anschaulich, warum digitale Systeme nur etwas Nachgebautes sind. Warum sie das, was menschliche Vernunft leisten kann, eben nicht leisten, auch nicht die sogenannte K\u00fcnstliche Intelligenz. Und dass es deshalb fatal ist, wenn wir uns der Logik des Digitalen unterwerfen. [\u2026] Das ist die Pointe dieses spannenden Buchs von Daniel Martin Feige, seine \u203aKritik der Digitalisierung\u2039: Nicht dass der Mensch digitale Technik nutzt, ist das Problem. Sondern dass er zugleich beginnt, die eigene Vernunft auszuschalten.<\/div>\r\n<div class=\"source\">Wilm H\u00fcffer auf SWR Kultur<\/div>\r\n<\/div>","47058":"<div class=\"reviews\">\r\n<div class=\"review\">\u203aKritik der Digitalisierung\u2039 ist eine wichtige und philosophisch fundierte Auseinandersetzung mit den Technologien, Konzepten und Begriffen, die unser Leben heute pr\u00e4gen. Wer dieses Buch gelesen hat, wird \u00fcber \u203aDigitalisierung\u2039 oder \u203ak\u00fcnstliche Intelligenz\u2039 sicher pr\u00e4ziser denken und sprechen k\u00f6nnen als vor der Lekt\u00fcre.<\/div>\r\n<div class=\"source\"><\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Daniel Martin Feige zeigt mit seinem Essay \u203aKritik der Digitalisierung\u2039 gekonnt M\u00f6glichkeiten der Reaktualisierung der \u00e4lteren kritischen Theorie zur Analyse des Digitalzeitalters auf.\n<\/div>\r\n<div class=\"source\">Dr. Marcel Remme, f\u00fcr lehrerbibliothek.de, 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige bietet eine gr\u00fcndliche und systematische Darstellung.<\/div>\r\n<div class=\"source\">Thomas Gro\u00df in zeitzeichen 08\/2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige gelingt es, die Tiefe philosophischen Nachdenkens f\u00fcr den KI-Diskurs zu erschlie\u00dfen, ohne bereits den Anspruch zu erheben, sie ganz au
13647szuloten. Er zeigt, was m\u00f6glich ist, wenn man die philosophische Tradition in Anspruch nimmt und \u00fcber reine Schlagworte und eine blo\u00df politische Bewertung der Digitalisierung hinauskommt.<\/div>\r\n<div class=\"source\">Marc P\u00fcschel in Junge Welt vom 29.07.2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch zeigt sehr anschaulich, warum digitale Systeme nur etwas Nachgebautes sind. Warum sie das, was menschliche Vernunft leisten kann, eben nicht leisten, auch nicht die sogenannte K\u00fcnstliche Intelligenz. Und dass es deshalb fatal ist, wenn wir uns der Logik des Digitalen unterwerfen. [\u2026] Das ist die Pointe dieses spannenden Buchs von Daniel Martin Feige, seine \u203aKritik der Digitalisierung\u2039: Nicht dass der Mensch digitale Technik nutzt, ist das Problem. Sondern dass er zugleich beginnt, die eigene Vernunft auszuschalten.<\/div>\r\n<div class=\"source\">Wilm H\u00fcffer auf SWR Kultur<\/div>\r\n<\/div>"},"language":{"47023":"","47057":"","47058":""},"cover":{"47023":"Kartoniert","47057":"","47058":""},"pages":{"47023":"186 Seiten","47057":"186 Seiten","47058":"186 Seiten"},"edition":{"47023":"2., geringf\u00fcgig korrigierte Auflage","47057":"2., geringf\u00fcgig korrigierte Auflage","47058":"2., geringf\u00fcgig korrigierte Auflage"},"pod":{"47023":"Nein","47057":"Nein","47058":"Nein"},"copyright_year":{"47023":"","47057":"","47058":""},"vlb_tix_link":{"47023":"https:\/\/neu.vlbtix.de\/products\/9783787351909?type=gtin","47057":"","47058":""},"defaultValues":{"163":"15"}}; 13648 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 13649 13650 if (typeof window.amxnotif_wrap_attributes === 'function') { 13651 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 13652 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 13653 } 13654 13655 const configurableOptionsComponent = initConfigurableOptions( 13656 '39968', 13657 config 13658 ); 13659 const swatchOptionsComponent = initSwatchOptions( 13660 swatchConfig 13661 ); 13662 13663 // DWS - Configurable product preselect start 13664 const confProdPreSelect = () => { 13665 return { 13666 preselectQuerystringItems() { 13667 var data = {"id":"47023","output":"15"}; 13668 const urlQueryParams = new URLSearchParams(window.location.search); 13669 13670 this.$nextTick(() => { 13671 setTimeout(() => { 13672 const rootEl = this.$root || this.$el; 13673 if (!rootEl) return; 13674 13675 const applySelection = (attrCode, attrValue) => { 13676 if (attrValue === undefined || attrValue === null || attrValue === '') return; 13677 13678 const attributes = Object.values(this.optionConfig.attributes || {}); 13679 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 13680 13681 if (targetAttr) { 13682 const attrId = String(targetAttr.id); 13683 const optionVal = String(attrValue); 13684 13685 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 13686 13687 if (inputEl) { 13688 inputEl.click(); 13689 inputEl.dispatchEvent(new Event('change', { 13690 bubbles: true 13691 })); 13692 } else { 13693 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 13694 if (selectEl) { 13695 selectEl.value = optionVal; 13696 selectEl.dispatchEvent(new Event('change', { 13697 bubbles: true 13698 })); 13699 } 13700 } 13701 13702 this.changeOption(attrId, optionVal, false); 13703 } 13704 }; 13705 13706 if (data && typeof data === 'object') {
13707 Object.keys(data).forEach(key => applySelection(key, data[key])); 13708 } 13709 13710 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 13711 if (attribute && attribute.code) { 13712 let optionValue = urlQueryParams.get(attribute.code); 13713 if (optionValue) { 13714 let optionId = false; 13715 const attributes = Object.values(this.optionConfig.attributes || {}); 13716 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 13717 13718 let found = false; 13719 Object.values(targetAttr.options).map(option => { 13720 if (found === false && option.label === optionValue) { 13721 optionId = option.id; 13722 found = true; 13723 } 13724 }); 13725 13726 const attrId = String(targetAttr.id); 13727 let optionVal = String(optionValue); 13728 if (found) { 13729 optionVal = String(optionId); 13730 } 13731 13732 applySelection(attribute.code, optionVal); 13733 } 13734 } 13735 }); 13736 }, 100); 13737 }); 13738 } 13739 } 13740 }; 13741 // DWS - Configurable product preselect end 13742 13743 const result = Object.assign( 13744 configurableOptionsComponent, 13745 swatchOptionsComponent, { 13746 productId: '39968', 13747 productIndex: 0, 13748 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 13749 showSwatches: false, 13750 precalcOptions: {}, 13751 originalInit: configurableOptionsComponent.init, 13752 init() { 13753 try { 13754 this.precalcOptions = {}; 13755 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 13756 this.preselectQuerystringItems(); 13757 if (Array.isArray(attrSource)) { 13758 attrSource.forEach(attr => { 13759 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 13760 }); 13761 } else if (attrSource && typeof attrSource === 'object') { 13762 Object.keys(attrSource).forEach(id => { 13763 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 13764 }); 13765 } 13766 } catch (e) { 13767 console.error('Pre-calc error:', e); 13768 } 13769 13770 if (typeof this.originalInit === 'function') { 13771 this.originalInit(); 13772 } 13773 13774 try { 13775 this.initShowSwatchesIntersect(); 13776 } catch (e) { 13777 console.error('intersect error:', e); 13778 } 13779 }, 13780 13781 updateGallery() { 13782 if (!this.productIndex) return; 13783 13784 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 13785 method: 'GET', 13786 headers: { 13787 'Content-Type': 'application/json', 13788 'X-Requested-With': 'XMLHttpRequest' 13789 } 13790 }) 13791 .then(response => response.json()) 13792 .then(data => { 13793 if (data && data.medium) { 13794 window.dispatchEvent(new CustomEvent("update-gallery-39968", { 13795 detail: data.medium 13796 })); 13797 } 13798 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 13799 }, 13800 13801 13802 initShowSwatchesIntersect() { 13803 const observer = new IntersectionObserver(entries => { 13804 if (entries[0].isIntersecting) { 13805 this.showSwatches = true; 13806 observer.disconnect(); 13807 } 13808 }, { 13809 rootMargin: '512px' 13810 }); 13811 observer.observe(this.$el); 13812 }, 13813 getOptions(attrId) { 13814 return this.precalcOptions[attrId] || []; 13815 }, 13816 getOptionsByAttrId() { 13817 return this.getOptions(this.$el.dataset.attributeId); 13818 }, 13819 _getItemId() { 13820 if (this.item && this.item.id) return this.item.id; 13821 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 13822 }, 13823 getSwatchOptionHtmlId() { 13824 const itemId = this._getItemId(); 13825 return itemId ? this.$id(`attribute-option-39968-${itemId}`) : ''; 13826 }, 13827 getSwatchOptionHtmlIdGroup() { 13828 const itemId = this._getItemId(); 13829 return itemId ? [`attribute-option-39968-${itemId}`] : []; 13830 }, 13831 getAttributeSwatchData(attributeId) { 13832 const data = Object.assign({}, this.swatchConfig[attributeId]); 13833 if (data['additional_data']) { 13834 try { 13835 data['details'] = JSON.parse(data['additional_data']); 13836 } catch (e) { 13837 data['details'] = {}; 13838 } 13839 } 13840 return data; 13841 }, 13842 getSwatchType(attributeId, optionId) { 13843 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 13844 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 13845 } 13846 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 13847 this.swatchConfig[attributeId].details.swatch_input_type : 13848 "empty"; 13849 if (type === 'visual') { 13850 const config = this.swatchConfig[attributeId]; 13851 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 13852 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 13853 } 13854 // Fallback to first option type 13855 for (const oId in config) { 13856 if (config[oId] && typeof config[oId].type !== 'undefined') { 13857 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 13858 } 13859 } 13860 } 13861 return type; 13862 }, 13863 mapSwatchTypeNumberToTypeCode(type) { 13864 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 13865 }, 13866 isTextSwatch() { 13867 const itemId = this._getItemId(); 13868 if (!this.$el || !itemId) return false;
13869 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13870 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 13871 }, 13872 13873 getSwatchText() { 13874 const itemId = this._getItemId(); 13875 if (this.item) return this.item.label || ''; 13876 if (!this.$el || !itemId) return ''; 13877 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13878 const options = attrId ? this.getOptions(attrId) : []; 13879 const opt = options.find(o => o.id == itemId); 13880 return opt ? opt.label : ''; 13881 }, 13882 getSwatchBackgroundStyle() { 13883 const itemId = this._getItemId(); 13884 if (!this.$el || !itemId) return ''; 13885 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13886 if (!attrId) return ''; 13887 const type = this.getSwatchType(attrId, itemId); 13888 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 13889 this.swatchConfig[attrId][itemId] : 13890 null; 13891 if (!swatchData) return ''; 13892 if (type === "color") return 'background-color:' + swatchData.value; 13893 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 13894 return ''; 13895 }, 13896 swatchOptionClasses() { 13897 const itemId = this._getItemId(); 13898 if (!this.$el || !itemId) return {}; 13899 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13900 return { 13901 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 13902 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 13903 'w-6 h-6': !this.isTextSwatch() 13904 } 13905 }, 13906 13907 onFocusSwatchItem() { 13908 const itemId = this._getItemId(); 13909 if (itemId) this.focusedLabel = itemId; 13910 }, 13911 onChangeOption() { 13912 const itemId = this._getItemId(); 13913 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 13914 if (attrId && itemId) this.changeOption(attrId, itemId); 13915 }, 13916 changeOption(attributeId, value) { 13917 if (value === '') { 13918 return; 13919 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 13920 } else { 13921 this.selectedValues[attributeId] = value; 13922 } 13923 13924 this.findSimpleIndex(); 13925 this.findAllowedAttributeOptions(); 13926 this.updatePrices(); 13927 this.updateGallery(); 13928 13929 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 13930 this.findProductIdsForPartialSelection(this.selectedValues) : []; 13931 13932 const eventDetail = { 13933 productId: this.productId, 13934 optionId: attributeId, 13935 value: value, 13936 productIndex: this.productIndex || 0, 13937 selectedValues: this.selectedValues, 13938 candidates: candidates, 13939 sourceElement: this.$el 13940 }; 13941 13942 // Dispatch for Amasty 13943 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 13944 detail: eventDetail 13945 })); 13946 13947 // Dispatch for Hyva listing 13948 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 13949 detail: eventDetail 13950 })); 13951 }, 13952 13953 13954 clearOptionIfActive() { 13955 const itemId = this._getItemId(); 13956 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 13957 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 13958 this.changeOption(attrId, ''); 13959 13960 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 13961 if (!input && this.$el?.querySelector) { 13962 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 13963 } 13964 if (!input && this.$el?.closest) { 13965 const root = this.$el.closest('[data-product-id]') || this.$el; 13966 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 13967 } 13968 if (input) { 13969 input.checked = false;
13970 } 13971 } 13972 }, 13973 get optionIsEnabled() { 13974 const itemId = this._getItemId(); 13975 if (!this.$el || !itemId) return true; 13976 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13977 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 13978 return !!allowedOptions.find(opt => opt.id == itemId); 13979 }, 13980 get isSelected() { 13981 const itemId = this._getItemId(); 13982 if (!this.$el || !itemId) return false; 13983 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13984 return attrId ? (this.selectedValues[attrId] == itemId) : false; 13985 }, 13986 get isSwatchRequired() { 13987 if (!this.$el) return false; 13988 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13989 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 13990 }, 13991 focusedLabel: false, 13992 activeTooltipItem: false, 13993 tooltipPositionElement: false,
13994 setActiveTooltipItem() { 13995 const itemId = this._getItemId(); 13996 if (!this.$el || !itemId) return; 13997 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 13998 this.activeTooltipItem = { 13999 attribute: attrId, 14000 item: itemId, 14001 index: 0 14002 }; 14003 this.tooltipPositionElement = this.$event ? this.$event.target : null; 14004 }, 14005 unsetActiveTooltipItem() { 14006 this.activeTooltipItem = false; 14007 } 14008 }, 14009 confProdPreSelect() 14010 ); 14011 14012 if (result.optionConfig && result.optionConfig.attributes) { 14013 const attributes = result.optionConfig.attributes; 14014 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 14015 let source = attributes; 14016 if (Array.isArray(attributes)) { 14017 source = {}; 14018 attributes.forEach(attr => { 14019 if (attr && attr.id) source[attr.id] = attr; 14020 }); 14021 } 14022 const values = Object.values(source); 14023 const wrapper = Object.assign(values, source); 14024 Object.defineProperty(wrapper, '__amxnotifWrapped', { 14025 value: true, 14026 enumerable: false 14027 }); 14028 result.optionConfig.attributes = wrapper; 14029 } 14030 } 14031 14032 return result; 14033 } 14034 14035 window.addEventListener('alpine:init', () => { 14036 Alpine.data('initConfigurableSwatchOptions_39968', initConfigurableSwatchOptions_39968); 14037 }, { 14038 once: true 14039 }); 14040 </script>
14040 14041 14042 <div x-data="initConfigurableSwatchOptions_39968" x-defer="intersect"> 14043 <div class="pagebuilder-home-hidden"> 14044 14045 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 14046 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 14047 <template x-if="showSwatches"> 14048 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-39968-163" role="radiogroup" aria-label="Einband"> 14049 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 14050 <div :data-option-id="item.id" style="display: contents"> 14051 <div x-id="getSwatchOptionHtmlIdGroup"> 14052 <template x-if="optionIsEnabled"> 14053 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
14053self="unsetActiveTooltipItem"> 14054 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-39968-163"> 14055 <div> 14056 <template x-if="isTextSwatch"> 14057 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 14058 </template> 14059 <template x-if="!optionIsActive(163, item.id)"> 14060 <div> 14061 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 14062 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 14063 </svg> 14064 </div> 14065 </template> 14066 </div> 14067 </label> 14068 </template> 14069</div> </div> 14070 </template> 14071 </div> 14072 </template> 14073 </div> 14074 </div> 14075 </div> 14076 </div> 14077 14078 <div class="meta py-4 pagebuilder-home-hidden"> 14079 <div x-data="initMarketingShortText_39968()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 14080 <!-- Marketing short text --> 14081 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 14082 </div> 14083 14084 <!-- Short description --> 14085 <div class="short-description"> 14086 ›Digitalisierung‹ ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der ... <a href="https://meiner.de/fmv_de/kritik-der-digitalisierung-17366" class="underline">mehr</a> 14087 </div> 14088 </div> 14089 14090 <!-- Series --> 14091 <div class="mb-1"> 14092 <span class="sr-only">Reihe:</span> 14093 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 14094 <span>Blaue Reihe</span> 14095 </a> 14096 </div> 14097 14098 14099 <div class="mb-1"> 14100 <span x-data="initEditionText_39968()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 14101 <!-- Marketing short text --> 14102 <span class="edition-text" x-html="editionText"></span> 2025, 186 Seiten </span> 14103 </div> 14104 14105 </div> 14106 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 14107 14108 <div class="justify-end" x-data="initPriceBox()" @update-prices-39968.window="updatePrice($event.detail);"> 14109 <div class="price-box price-final_price" data-role="priceBox" data-product-id="39968" data-price-box="product-id-39968"><span class="normal-price"> 14110 <span x-data x-id="['product\u002Dprice\u002D39968']" class="price-container price-final_price tax weee"> 14111 <span class="price-label">Ab</span> 14112 <span class="approx-price">ca. </span> 14113 <span :id="$id('product\u002Dprice\u002D39968')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 14114 </span> 14115</span> 14116 14117 14118</div> </div> 14119 14120 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 14121 <div class="open-access-container open-access-container-39968 flex mt-4 ml-auto sm:mt-0 hidden"> 14122 <div class="text-gray-700"> 14123 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 14124 <a href="" target="_blank" class="open-access-external-link m-auto "> 14125 Kostenlos online lesen </a> 14126 </button> 14127 </div> 14128 </div> 14129 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kritik der Digitalisierung" aria-label="In den Warenkorb Kritik der Digitalisierung" data-addto="cart"> 14130 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 14131 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
141310 014 0z"></path> 14132</svg> 14133 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 14134 In den Warenkorb </span> 14135 </button> 14136 14137<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(39968)" aria-label="Zur Wunschliste hinzufügen Kritik der Digitalisierung" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 14138 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 14139 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 14140</svg> 14141</button> 14142 </div> 14143 </div> 14144 </div> 14145
14145<script> 14146 function initMarketingShortText_39968() { 14147 var marketingShortTextConfig = {}; 14148 if (typeof window.initConfigurableSwatchOptions_39968 === "function") { 14149 var fullConfig = window.initConfigurableSwatchOptions_39968().optionConfig 14150 var marketingShortTextConfig = fullConfig.marketing_short_text; 14151 } 14152 return { 14153 marketingShortText: '', 14154 config: marketingShortTextConfig, 14155 productId: '39968', 14156 getMarketingShortText(detail) { 14157 this.marketingShortText = detail.productIndex ? 14158 this.config[detail.productIndex] : 14159 null; 14160 }, 14161 eventListeners: { 14162 ['@listing-configurable-selection-changed.window'](event) { 14163 if (this.productId == event.detail.productId) { 14164 this.getMarketingShortText(event.detail); 14165 } 14166 14167 } 14168 } 14169 } 14170 } 14171 14172 function initEditionText_39968() { 14173 var editionTextConfig = {}; 14174 if (typeof window.initConfigurableSwatchOptions_39968 === "function") { 14175 var fullConfig = window.initConfigurableSwatchOptions_39968().optionConfig 14176 var editionTextConfig = fullConfig.edition; 14177 } 14178 return { 14179 editionText: '', 14180 config: editionTextConfig, 14181 productId: '39968', 14182 getEditionText(detail) { 14183 this.editionText = detail.productIndex ? 14184 this.config[detail.productIndex] : 14185 null; 14186 }, 14187 eventListeners: { 14188 ['@listing-configurable-selection-changed.window'](event) { 14189 if (this.productId == event.detail.productId) { 14190 this.getEditionText(event.detail); 14191 } 14192 14193 } 14194 } 14195 } 14196 } 14197 </script>
14197 14198 </form> 14199 14200 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47049/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk22146"> 14201 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47049"> 14202 <a href="https://meiner.de/fmv_de/archiv-fa-r-begriffsgeschichte-band-672-22146" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 14203 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47049.window="$el.src = $event.detail" alt="Archiv für Begriffsgeschichte. Band 67,2" title="Archiv für Begriffsgeschichte. Band 67,2" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351770_15.jpg" :style="{ 14204 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 14205 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 14206 }"> 14207 </a> 14208 <div class="product-info flex flex-col flex-grow "> 14209 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 14210 <div class="mb-2 text-sm text-gray-500 font-medium"> 14211 <a href="https://meiner.de/fmv_de/person/Carsten-Dutt-8730/" class="mb-2"> 14212 Carsten Dutt </a> 14213 <span>|</span> 14214 <a href="https://meiner.de/fmv_de/person/Hubertus-Busche-3209/" class="mb-2"> 14215 Hubertus Busche </a> 14216 <span>|</span> 14217 <a href="https://meiner.de/fmv_de/person/Michael-Erler-3210/" class="mb-2"> 14218 Michael Erler (Hrsg.) 14219 </a> 14220 </div> 14221 <a class="product-item-link" href="https://meiner.de/fmv_de/archiv-fa-r-begriffsgeschichte-band-672-22146"> 14222 Archiv für Begriffsgeschichte. Band 67,2 </a> 14223 </div> 14224 14225 <div x-data="initEditionText_47049()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 14226 <!-- Marketing short text --> 14227 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 14228 </div> 14229 </div> 14230 14231 <div class="py-1 grid mb-4 "> 14232 14233 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47049,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47049,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46920":"1","47024":"1"},"childProductsAlertStatus":{"46920":"0","47024":"0"},"indexMapping":{"163:15":46920,"163:8":47024},"availabilityMessages":{"46920":"Lieferbar innerhalb von 3-5 Tagen","47024":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47049":{"status":0},"46920":{"status":0},"47024":{"status":0}}},"availabilityMessages":{"46920":"Lieferbar innerhalb von 3-5 Tagen","47024":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47049":{"status":0},"46920":{"status":0},"47024":{"status":0}}}'> 14234 <template x-if="containerVisible"> 14235 <!-- Popup Trigger --> 14236 <div> 14237 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 14238 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
14239 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 14240 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 14241<title>bell</title></svg> 14242</span> 14243 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 14244 14245 <!-- Popup Modal --> 14246 <template x-if="showModal"> 14247 <template x-teleport=".page-wrapper"> 14248 <div x-cloak class="fixed inset-0 flex items-center justify-center 14249 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 14250 <div class="relative bg-white rounded-lg shadow-xl 14251 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 14252 <div class="p-6"> 14253 <!-- Subscription Form for Popup --> 14254 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 14255 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 14256 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 14257 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 14258 14259 <div class="flex flex-col gap-3"> 14260 <div class="flex-grow grow"> 14261 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 14262 shadow-xs focus:outline-none focus:outline-hidden 14263 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 14264 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 14265 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 14266 </div> 14267 <input type="hidden" name="product_id" :value="currentProductId"> 14268 <input type="hidden" name="type" value="email"> 14269 14270 14271 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 14272 14273 <div class="amxnotif_guest_action"> 14274 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 14275 rounded-md focus:outline-none 14276 focus:outline-hidden focus:ring-2 14277 focus:ring-offset-2 disabled:opacity-50 14278 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 14279 Benachrichtigen </button> 14280 </div> 14281 </div> 14282 14283 <div class="flex items-start pt-2"> 14284 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 14285 text-blue-600 border-gray-300 rounded-sm"> 14286 <label class="amxnotif-stock-gdrp-label cursor-pointer 14287 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 14288 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 14289 </div> 14290 </form> 14291 </div> 14292 14293 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 14294 hover:text-gray-600 transition-colors" aria-label="Schließen"> 14295 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 14296 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 14297<title>x</title></svg> 14298 </button> 14299 </div> 14300 </div> 14301 </template> 14302 </template> 14303 </div> 14304 </template> 14305 </div> 14306 14307<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47049" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47049,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46920":"1","47024":"1"},"childProductsAlertStatus":{"46920":"0","47024":"0"},"indexMapping":"{\u0022163:15\u0022:46920,\u0022163:8\u0022:47024}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47049,"availabilityMessages":{"46920":"Lieferbar innerhalb von 3-5 Tagen","47024":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47049":{"status":0},"46920":{"status":0},"47024":{"status":0}}}'> 14308 14309 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
14310 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 14311 <span x-html="optionsLabelText"></span> 14312 </p> 14313</div> </div> 14314 14315
14315<script> 14316 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 14317 try { 14318 const attributes = (config && config.attributes) ? config.attributes : null; 14319 if (!attributes) return []; 14320 let attr = null; 14321 if (Array.isArray(attributes)) { 14322 for (let i = 0; i < attributes.length; i++) { 14323 const a = attributes[i]; 14324 if (a && a.id == attrId) { 14325 attr = a; 14326 break; 14327 } 14328 } 14329 } else { 14330 attr = attributes[attrId]; 14331 } 14332 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 14333 } catch (e) { 14334 return []; 14335 } 14336 }; 14337 14338 function initConfigurableSwatchOptions_47049() { 14339 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46920"]},{"id":"8","label":"PDF","products":["47024"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46920":{"baseOldPrice":{"amount":62.616821429907},"oldPrice":{"amount":67},"basePrice":{"amount":62.616821429907},"finalPrice":{"amount":67},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47024":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":46.719625168224},"finalPrice":{"amount":49.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":42.008402361345},"finalPrice":{"amount":49.99},"isApproxPrice":null},"productId":"47049","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46920":{"163":"15"},"47024":{"163":"8"}},"salable":{"163":{"15":["46920"],"8":["47024"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46920":"000369-67-2","47024":"eAFB-67-2"},"output":{"46920":"Kartoniert","47024":"PDF"},"original_name":{"46920":"","47024":""},"openaccess_license_link":{"46920":"","47024":""},"openaccess_license_name":{"46920":"","47024":""},"openaccess_external_link":{"46920":"","47024":""},"gpsr_safety_info":{"46920":"","47024":""},"description":{"46920":"Mit dem von Nadja Germann und Frieder Vogelmann kuratierten Schwerpunkt \u00bbWissen \u00fcber Grenzen\u00ab versammelt das Archiv f\u00fcr Begriffsgeschichte theoretisch-methodologische Reflexionen und materiale Studien zu einer \u00bbkritisch-aufkl\u00e4rerischen, transkulturell geweiteten Begriffsgeschichte\u00ab. Der einleitende Beitrag profiliert ihre Erkenntnisziele und Verfahren als Revision der bisherigen Praxis philosophischer Begriffsgeschichtsschreibung. Die sich anschlie\u00dfenden Studien von Germann, Maarten J. F. M. Hoenen und Bret W. Davis gehen je auf ihre Weise Grenzziehungen und -verschiebungen des Wissensbegriffs in der arabisch-islamischen Philosophie des Mittelalters, im sp\u00e4tmittelalterlichen Thomismus sowie im Zen-Buddhismus nach. Eine abschlie\u00dfende Replik von Carsten Dutt nimmt zu den kritischen und konstruktiven Anspr\u00fcchen des Heftschwerpunkts Stellung.","47024":"Mit dem von Nadja Germann und Frieder Vogelmann kuratierten Schwerpunkt \u00bbWissen \u00fcber Grenzen\u00ab versammelt das Archiv f\u00fcr Begriffsgeschichte theoretisch-methodologische Reflexionen und materiale Studien zu einer \u00bbkritisch-aufkl\u00e4rerischen, transkulturell geweiteten Begriffsgeschichte\u00ab. Der einleitende Beitrag profiliert ihre Erkenntnisziele und Verfahren als Revision der bisherigen Praxis philosophischer Begriffsgeschichtsschreibung. Die sich anschlie\u00dfenden Studien von Germann, Maarten J. F. M. Hoenen und Bret W. Davis gehen je auf ihre Weise Grenzziehungen und -verschiebungen des Wissensbegriffs in der arabisch-islamischen Philosophie des Mittelalters, im sp\u00e4tmittelalterlichen Thomismus sowie im Zen-Buddhismus nach. Eine abschlie\u00dfende Replik von Carsten Dutt nimmt zu den kritischen und konstruktiven Anspr\u00fcchen des Heftschwerpunkts Stellung."},"doi":{"46920":"","47024":"10.28937\/978-3-7873-5177-0"},"isbn":{"46920":"978-3-7873-5176-3","47024":""},"marketing_short_text":{"46920":"","47024":""},"recension_text":{"46920":"","47024":""},"language":{"46920":"","47024":""},"cover":{"46920":"Kartoniert","47024":""},"pages":{"46920":"191 Seiten.","47024":"191 Seiten."},"edition":{"46920":"","47024":"Unver\u00e4ndertes eJournal der 1. Auflage von 2025"},"pod":{"46920":"Nein","47024":"Nein"},"copyright_year":{"46920":"","47024":""},"vlb_tix_link":{"46920":"https:\/\/neu.vlbtix.de\/products\/9783787351763?type=gtin","47024":""},"defaultValues":{"163":"15"}}; 14340 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 14341 14342 if (typeof window.amxnotif_wrap_attributes === 'function') { 14343 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 14344 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 14345 } 14346 14347 const configurableOptionsComponent = initConfigurableOptions( 14348 '47049', 14349 config 14350 ); 14351 const swatchOptionsComponent = initSwatchOptions( 14352 swatchConfig 14353 ); 14354 14355 // DWS - Configurable product preselect start 14356 const confProdPreSelect = () => { 14357 return { 14358 preselectQuerystringItems() { 14359 var data = {"id":"46920","output":"15"}; 14360 const urlQueryParams = new URLSearchParams(window.location.search); 14361 14362 this.$nextTick(() => { 14363 setTimeout(() => { 14364 const rootEl = this.$root || this.$el; 14365 if (!rootEl) return; 14366 14367 const applySelection = (attrCode, attrValue) => { 14368 if (attrValue === undefined || attrValue === null || attrValue === '') return; 14369 14370 const attributes = Object.values(this.optionConfig.attributes || {}); 14371 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 14372 14373 if (targetAttr) { 14374 const attrId = String(targetAttr.id); 14375 const optionVal = String(attrValue); 14376 14377 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 14378 14379 if (inputEl) { 14380 inputEl.click(); 14381 inputEl.dispatchEvent(new Event('change', { 14382 bubbles: true 14383 })); 14384 } else { 14385 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 14386 if (selectEl) { 14387 selectEl.value = optionVal; 14388 selectEl.dispatchEvent(new Event('change', { 14389 bubbles: true 14390 })); 14391 } 14392 } 14393 14394 this.changeOption(attrId, optionVal, false); 14395 } 14396 }; 14397 14398 if (data && typeof data === 'object') {
14399 Object.keys(data).forEach(key => applySelection(key, data[key])); 14400 } 14401 14402 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 14403 if (attribute && attribute.code) { 14404 let optionValue = urlQueryParams.get(attribute.code); 14405 if (optionValue) { 14406 let optionId = false; 14407 const attributes = Object.values(this.optionConfig.attributes || {}); 14408 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 14409 14410 let found = false; 14411 Object.values(targetAttr.options).map(option => { 14412 if (found === false && option.label === optionValue) { 14413 optionId = option.id; 14414 found = true; 14415 } 14416 }); 14417 14418 const attrId = String(targetAttr.id); 14419 let optionVal = String(optionValue); 14420 if (found) { 14421 optionVal = String(optionId); 14422 } 14423 14424 applySelection(attribute.code, optionVal); 14425 } 14426 } 14427 }); 14428 }, 100); 14429 }); 14430 } 14431 } 14432 }; 14433 // DWS - Configurable product preselect end 14434 14435 const result = Object.assign( 14436 configurableOptionsComponent, 14437 swatchOptionsComponent, { 14438 productId: '47049', 14439 productIndex: 0, 14440 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 14441 showSwatches: false, 14442 precalcOptions: {}, 14443 originalInit: configurableOptionsComponent.init, 14444 init() { 14445 try { 14446 this.precalcOptions = {}; 14447 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 14448 this.preselectQuerystringItems(); 14449 if (Array.isArray(attrSource)) { 14450 attrSource.forEach(attr => { 14451 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 14452 }); 14453 } else if (attrSource && typeof attrSource === 'object') { 14454 Object.keys(attrSource).forEach(id => { 14455 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 14456 }); 14457 } 14458 } catch (e) { 14459 console.error('Pre-calc error:', e); 14460 } 14461 14462 if (typeof this.originalInit === 'function') { 14463 this.originalInit(); 14464 } 14465 14466 try { 14467 this.initShowSwatchesIntersect(); 14468 } catch (e) { 14469 console.error('intersect error:', e); 14470 } 14471 }, 14472 14473 updateGallery() { 14474 if (!this.productIndex) return; 14475 14476 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 14477 method: 'GET', 14478 headers: { 14479 'Content-Type': 'application/json', 14480 'X-Requested-With': 'XMLHttpRequest' 14481 } 14482 }) 14483 .then(response => response.json()) 14484 .then(data => { 14485 if (data && data.medium) { 14486 window.dispatchEvent(new CustomEvent("update-gallery-47049", { 14487 detail: data.medium 14488 })); 14489 } 14490 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 14491 }, 14492 14493 14494 initShowSwatchesIntersect() { 14495 const observer = new IntersectionObserver(entries => { 14496 if (entries[0].isIntersecting) { 14497 this.showSwatches = true; 14498 observer.disconnect(); 14499 } 14500 }, { 14501 rootMargin: '512px' 14502 }); 14503 observer.observe(this.$el); 14504 }, 14505 getOptions(attrId) { 14506 return this.precalcOptions[attrId] || []; 14507 }, 14508 getOptionsByAttrId() { 14509 return this.getOptions(this.$el.dataset.attributeId); 14510 }, 14511 _getItemId() { 14512 if (this.item && this.item.id) return this.item.id; 14513 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 14514 }, 14515 getSwatchOptionHtmlId() { 14516 const itemId = this._getItemId(); 14517 return itemId ? this.$id(`attribute-option-47049-${itemId}`) : ''; 14518 }, 14519 getSwatchOptionHtmlIdGroup() { 14520 const itemId = this._getItemId(); 14521 return itemId ? [`attribute-option-47049-${itemId}`] : []; 14522 }, 14523 getAttributeSwatchData(attributeId) { 14524 const data = Object.assign({}, this.swatchConfig[attributeId]); 14525 if (data['additional_data']) { 14526 try { 14527 data['details'] = JSON.parse(data['additional_data']); 14528 } catch (e) { 14529 data['details'] = {}; 14530 } 14531 } 14532 return data; 14533 }, 14534 getSwatchType(attributeId, optionId) { 14535 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 14536 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 14537 } 14538 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 14539 this.swatchConfig[attributeId].details.swatch_input_type : 14540 "empty"; 14541 if (type === 'visual') { 14542 const config = this.swatchConfig[attributeId]; 14543 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 14544 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 14545 } 14546 // Fallback to first option type 14547 for (const oId in config) { 14548 if (config[oId] && typeof config[oId].type !== 'undefined') { 14549 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 14550 } 14551 } 14552 } 14553 return type; 14554 }, 14555 mapSwatchTypeNumberToTypeCode(type) { 14556 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 14557 }, 14558 isTextSwatch() { 14559 const itemId = this._getItemId(); 14560 if (!this.$el || !itemId) return false;
14561 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14562 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 14563 }, 14564 14565 getSwatchText() { 14566 const itemId = this._getItemId(); 14567 if (this.item) return this.item.label || ''; 14568 if (!this.$el || !itemId) return ''; 14569 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14570 const options = attrId ? this.getOptions(attrId) : []; 14571 const opt = options.find(o => o.id == itemId); 14572 return opt ? opt.label : ''; 14573 }, 14574 getSwatchBackgroundStyle() { 14575 const itemId = this._getItemId(); 14576 if (!this.$el || !itemId) return ''; 14577 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14578 if (!attrId) return ''; 14579 const type = this.getSwatchType(attrId, itemId); 14580 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 14581 this.swatchConfig[attrId][itemId] : 14582 null; 14583 if (!swatchData) return ''; 14584 if (type === "color") return 'background-color:' + swatchData.value; 14585 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 14586 return ''; 14587 }, 14588 swatchOptionClasses() { 14589 const itemId = this._getItemId(); 14590 if (!this.$el || !itemId) return {}; 14591 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14592 return { 14593 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 14594 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 14595 'w-6 h-6': !this.isTextSwatch() 14596 } 14597 }, 14598 14599 onFocusSwatchItem() { 14600 const itemId = this._getItemId(); 14601 if (itemId) this.focusedLabel = itemId; 14602 }, 14603 onChangeOption() { 14604 const itemId = this._getItemId(); 14605 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 14606 if (attrId && itemId) this.changeOption(attrId, itemId); 14607 }, 14608 changeOption(attributeId, value) { 14609 if (value === '') { 14610 return; 14611 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 14612 } else { 14613 this.selectedValues[attributeId] = value; 14614 } 14615 14616 this.findSimpleIndex(); 14617 this.findAllowedAttributeOptions(); 14618 this.updatePrices(); 14619 this.updateGallery(); 14620 14621 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 14622 this.findProductIdsForPartialSelection(this.selectedValues) : []; 14623 14624 const eventDetail = { 14625 productId: this.productId, 14626 optionId: attributeId, 14627 value: value, 14628 productIndex: this.productIndex || 0, 14629 selectedValues: this.selectedValues, 14630 candidates: candidates, 14631 sourceElement: this.$el 14632 }; 14633 14634 // Dispatch for Amasty 14635 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 14636 detail: eventDetail 14637 })); 14638 14639 // Dispatch for Hyva listing 14640 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 14641 detail: eventDetail 14642 })); 14643 }, 14644 14645 14646 clearOptionIfActive() { 14647 const itemId = this._getItemId(); 14648 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 14649 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 14650 this.changeOption(attrId, ''); 14651 14652 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 14653 if (!input && this.$el?.querySelector) { 14654 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 14655 } 14656 if (!input && this.$el?.closest) { 14657 const root = this.$el.closest('[data-product-id]') || this.$el; 14658 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 14659 } 14660 if (input) { 14661 input.checked = false;
14662 } 14663 } 14664 }, 14665 get optionIsEnabled() { 14666 const itemId = this._getItemId(); 14667 if (!this.$el || !itemId) return true; 14668 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14669 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 14670 return !!allowedOptions.find(opt => opt.id == itemId); 14671 }, 14672 get isSelected() { 14673 const itemId = this._getItemId(); 14674 if (!this.$el || !itemId) return false; 14675 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14676 return attrId ? (this.selectedValues[attrId] == itemId) : false; 14677 }, 14678 get isSwatchRequired() { 14679 if (!this.$el) return false; 14680 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14681 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 14682 }, 14683 focusedLabel: false, 14684 activeTooltipItem: false, 14685 tooltipPositionElement: false,
14686 setActiveTooltipItem() { 14687 const itemId = this._getItemId(); 14688 if (!this.$el || !itemId) return; 14689 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 14690 this.activeTooltipItem = { 14691 attribute: attrId, 14692 item: itemId, 14693 index: 0 14694 }; 14695 this.tooltipPositionElement = this.$event ? this.$event.target : null; 14696 }, 14697 unsetActiveTooltipItem() { 14698 this.activeTooltipItem = false; 14699 } 14700 }, 14701 confProdPreSelect() 14702 ); 14703 14704 if (result.optionConfig && result.optionConfig.attributes) { 14705 const attributes = result.optionConfig.attributes; 14706 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 14707 let source = attributes; 14708 if (Array.isArray(attributes)) { 14709 source = {}; 14710 attributes.forEach(attr => { 14711 if (attr && attr.id) source[attr.id] = attr; 14712 }); 14713 } 14714 const values = Object.values(source); 14715 const wrapper = Object.assign(values, source); 14716 Object.defineProperty(wrapper, '__amxnotifWrapped', { 14717 value: true, 14718 enumerable: false 14719 }); 14720 result.optionConfig.attributes = wrapper; 14721 } 14722 } 14723 14724 return result; 14725 } 14726 14727 window.addEventListener('alpine:init', () => { 14728 Alpine.data('initConfigurableSwatchOptions_47049', initConfigurableSwatchOptions_47049); 14729 }, { 14730 once: true 14731 }); 14732 </script>
14732 14733 14734 <div x-data="initConfigurableSwatchOptions_47049" x-defer="intersect"> 14735 <div class="pagebuilder-home-hidden"> 14736 14737 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 14738 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 14739 <template x-if="showSwatches"> 14740 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47049-163" role="radiogroup" aria-label="Einband"> 14741 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 14742 <div :data-option-id="item.id" style="display: contents"> 14743 <div x-id="getSwatchOptionHtmlIdGroup"> 14744 <template x-if="optionIsEnabled"> 14745 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
14745self="unsetActiveTooltipItem"> 14746 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47049-163"> 14747 <div> 14748 <template x-if="isTextSwatch"> 14749 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 14750 </template> 14751 <template x-if="!optionIsActive(163, item.id)"> 14752 <div> 14753 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 14754 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 14755 </svg> 14756 </div> 14757 </template> 14758 </div> 14759 </label> 14760 </template> 14761</div> </div> 14762 </template> 14763 </div> 14764 </template> 14765 </div> 14766 </div> 14767 </div> 14768 </div> 14769 14770 <div class="meta py-4 pagebuilder-home-hidden"> 14771 <div x-data="initMarketingShortText_47049()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 14772 <!-- Marketing short text --> 14773 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 14774 </div> 14775 14776 <!-- Short description --> 14777 <div class="short-description"> 14778 Mit dem von Nadja Germann und Frieder Vogelmann kuratierten Schwerpunkt »Wissen über Grenzen« versammelt das Archiv für Begriffsgeschichte theoretisch-methodologische Reflexionen und materiale ... <a href="https://meiner.de/fmv_de/archiv-fa-r-begriffsgeschichte-band-672-22146" class="underline">mehr</a> 14779 </div> 14780 </div> 14781 14782 <!-- Series --> 14783 <div class="mb-1"> 14784 <span class="sr-only">Reihe:</span> 14785 <a href="https://meiner.de/fmv_de/programm/zeitschriften/archiv-fur-begriffsgeschichte"> 14786 <span>Archiv für Begriffsgeschichte</span> 14787 </a> 14788 67,2 </div> 14789 14790 14791 <div class="mb-1"> 14792 <span x-data="initEditionText_47049()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 14793 <!-- Marketing short text --> 14794 <span class="edition-text" x-html="editionText"></span> 2026, 191 Seiten. </span> 14795 </div> 14796 14797 </div> 14798 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 14799 14800 <div class="justify-end" x-data="initPriceBox()" @update-prices-47049.window="updatePrice($event.detail);"> 14801 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47049" data-price-box="product-id-47049"><span class="normal-price"> 14802 <span x-data x-id="['product\u002Dprice\u002D47049']" class="price-container price-final_price tax weee"> 14803 <span class="price-label">Ab</span> 14804 <span class="approx-price">ca. </span>
14805 <span :id="$id('product\u002Dprice\u002D47049')" data-price-amount="49.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">49,99 €</span></span> 14806 </span> 14807</span> 14808 14809 14810</div> </div> 14811 14812 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 14813 <div class="open-access-container open-access-container-47049 flex mt-4 ml-auto sm:mt-0 hidden"> 14814 <div class="text-gray-700"> 14815 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 14816 <a href="" target="_blank" class="open-access-external-link m-auto "> 14817 Kostenlos online lesen </a> 14818 </button> 14819 </div> 14820 </div> 14821 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Archiv für Begriffsgeschichte. Band 67,2" aria-label="In den Warenkorb Archiv für Begriffsgeschichte. Band 67,2" data-addto="cart"> 14822 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 14823 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 14824</svg> 14825 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 14826 In den Warenkorb </span> 14827 </button> 14828 14829<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47049)" aria-label="Zur Wunschliste hinzufügen Archiv für Begriffsgeschichte. Band 67,2" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 14830 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 14831 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 14832</svg> 14833</button> 14834 </div> 14835 </div> 14836 </div> 14837
14837<script> 14838 function initMarketingShortText_47049() { 14839 var marketingShortTextConfig = {}; 14840 if (typeof window.initConfigurableSwatchOptions_47049 === "function") { 14841 var fullConfig = window.initConfigurableSwatchOptions_47049().optionConfig 14842 var marketingShortTextConfig = fullConfig.marketing_short_text; 14843 } 14844 return { 14845 marketingShortText: '', 14846 config: marketingShortTextConfig, 14847 productId: '47049', 14848 getMarketingShortText(detail) { 14849 this.marketingShortText = detail.productIndex ? 14850 this.config[detail.productIndex] : 14851 null; 14852 }, 14853 eventListeners: { 14854 ['@listing-configurable-selection-changed.window'](event) { 14855 if (this.productId == event.detail.productId) { 14856 this.getMarketingShortText(event.detail); 14857 } 14858 14859 } 14860 } 14861 } 14862 } 14863 14864 function initEditionText_47049() { 14865 var editionTextConfig = {}; 14866 if (typeof window.initConfigurableSwatchOptions_47049 === "function") { 14867 var fullConfig = window.initConfigurableSwatchOptions_47049().optionConfig 14868 var editionTextConfig = fullConfig.edition; 14869 } 14870 return { 14871 editionText: '', 14872 config: editionTextConfig, 14873 productId: '47049', 14874 getEditionText(detail) { 14875 this.editionText = detail.productIndex ? 14876 this.config[detail.productIndex] : 14877 null; 14878 }, 14879 eventListeners: { 14880 ['@listing-configurable-selection-changed.window'](event) { 14881 if (this.productId == event.detail.productId) { 14882 this.getEditionText(event.detail); 14883 } 14884 14885 } 14886 } 14887 } 14888 } 14889 </script>
14889 14890 </form> 14891 14892 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46700/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17995"> 14893 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46700"> 14894 <a href="https://meiner.de/fmv_de/ka-nste-der-medien-medien-der-ka-nste-17995" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 14895 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46700.window="$el.src = $event.detail" alt="Künste der Medien / Medien der Künste" title="Künste der Medien / Medien der Künste" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787349579_1.jpg" :style="{ 14896 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 14897 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 14898 }"> 14899 </a> 14900 <div class="product-info flex flex-col flex-grow "> 14901 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 14902 <div class="mb-2 text-sm text-gray-500 font-medium"> 14903 <a href="https://meiner.de/fmv_de/person/Emmanuel-Alloa-8902/" class="mb-2"> 14904 Emmanuel Alloa </a> 14905 <span>|</span> 14906 <a href="https://meiner.de/fmv_de/person/Eva-Schurmann-4846/" class="mb-2"> 14907 Eva Schürmann (Hrsg.) 14908 </a> 14909 </div> 14910 <a class="product-item-link" href="https://meiner.de/fmv_de/ka-nste-der-medien-medien-der-ka-nste-17995"> 14911 Künste der Medien / Medien der Künste </a> 14912 </div> 14913 14914 <div x-data="initEditionText_46700()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 14915 <!-- Marketing short text --> 14916 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 14917 </div> 14918 </div> 14919 14920 <div class="py-1 grid mb-4 "> 14921 14922 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46700,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46700,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46489":"1","46869":"1"},"childProductsAlertStatus":{"46489":"0","46869":"0"},"indexMapping":{"163:15":46489,"163:8":46869},"availabilityMessages":{"46489":"Lieferbar innerhalb von 3-5 Tagen","46869":"Download sofort verf\u00fcgbar"},"openAccess":{"46700":{"status":0},"46489":{"status":0},"46869":{"status":0}}},"availabilityMessages":{"46489":"Lieferbar innerhalb von 3-5 Tagen","46869":"Download sofort verf\u00fcgbar"},"openAccess":{"46700":{"status":0},"46489":{"status":0},"46869":{"status":0}}}'> 14923 <template x-if="containerVisible"> 14924 <!-- Popup Trigger --> 14925 <div> 14926 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 14927 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
14928 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 14929 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 14930<title>bell</title></svg> 14931</span> 14932 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 14933 14934 <!-- Popup Modal --> 14935 <template x-if="showModal"> 14936 <template x-teleport=".page-wrapper"> 14937 <div x-cloak class="fixed inset-0 flex items-center justify-center 14938 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 14939 <div class="relative bg-white rounded-lg shadow-xl 14940 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 14941 <div class="p-6"> 14942 <!-- Subscription Form for Popup --> 14943 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 14944 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 14945 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 14946 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 14947 14948 <div class="flex flex-col gap-3"> 14949 <div class="flex-grow grow"> 14950 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 14951 shadow-xs focus:outline-none focus:outline-hidden 14952 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 14953 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 14954 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 14955 </div> 14956 <input type="hidden" name="product_id" :value="currentProductId"> 14957 <input type="hidden" name="type" value="email"> 14958 14959 14960 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 14961 14962 <div class="amxnotif_guest_action"> 14963 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 14964 rounded-md focus:outline-none 14965 focus:outline-hidden focus:ring-2 14966 focus:ring-offset-2 disabled:opacity-50 14967 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 14968 Benachrichtigen </button> 14969 </div> 14970 </div> 14971 14972 <div class="flex items-start pt-2"> 14973 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 14974 text-blue-600 border-gray-300 rounded-sm"> 14975 <label class="amxnotif-stock-gdrp-label cursor-pointer 14976 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 14977 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 14978 </div> 14979 </form> 14980 </div> 14981 14982 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 14983 hover:text-gray-600 transition-colors" aria-label="Schließen"> 14984 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 14985 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 14986<title>x</title></svg> 14987 </button> 14988 </div> 14989 </div> 14990 </template> 14991 </template> 14992 </div> 14993 </template> 14994 </div> 14995 14996<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46700" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46700,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46489":"1","46869":"1"},"childProductsAlertStatus":{"46489":"0","46869":"0"},"indexMapping":"{\u0022163:15\u0022:46489,\u0022163:8\u0022:46869}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46700,"availabilityMessages":{"46489":"Lieferbar innerhalb von 3-5 Tagen","46869":"Download sofort verf\u00fcgbar"},"openAccess":{"46700":{"status":0},"46489":{"status":0},"46869":{"status":0}}}'> 14997 14998 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
14999 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 15000 <span x-html="optionsLabelText"></span> 15001 </p> 15002</div> </div> 15003 15004
15004<script> 15005 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 15006 try { 15007 const attributes = (config && config.attributes) ? config.attributes : null; 15008 if (!attributes) return []; 15009 let attr = null; 15010 if (Array.isArray(attributes)) { 15011 for (let i = 0; i < attributes.length; i++) { 15012 const a = attributes[i]; 15013 if (a && a.id == attrId) { 15014 attr = a; 15015 break; 15016 } 15017 } 15018 } else { 15019 attr = attributes[attrId]; 15020 } 15021 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 15022 } catch (e) { 15023 return []; 15024 } 15025 }; 15026 15027 function initConfigurableSwatchOptions_46700() { 15028 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46489"]},{"id":"8","label":"PDF","products":["46869"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46489":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":91.588784046729},"finalPrice":{"amount":98},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46869":{"baseOldPrice":{"amount":70.084111149533},"oldPrice":{"amount":74.99},"basePrice":{"amount":70.084111149533},"finalPrice":{"amount":74.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":70.084111149533},"oldPrice":{"amount":74.99},"basePrice":{"amount":63.016805722689},"finalPrice":{"amount":74.99},"isApproxPrice":null},"productId":"46700","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46489":{"163":"15"},"46869":{"163":"8"}},"salable":{"163":{"15":["46489"],"8":["46869"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46489":"004956","46869":"004957"},"output":{"46489":"Kartoniert","46869":"PDF"},"original_name":{"46489":"","46869":""},"openaccess_license_link":{"46489":"","46869":""},"openaccess_license_name":{"46489":"","46869":""},"openaccess_external_link":{"46489":"","46869":""},"gpsr_safety_info":{"46489":"","46869":""},"description":{"46489":"Medienkunst gibt es nicht erst, seitdem technische Medien sich ins Kunstgeschehen einschalten. Vielmehr gab es medienfreie K\u00fcnste noch nie, ob man unter Medien Bild, Klang, Licht, Raum oder Sprache versteht. Ebenso wenig sind Materialien wie Marmor oder Bronze, T\u00f6ne oder Farben einem Kunstwerk jemals \u00e4u\u00dferlich, vielmehr entsteht \u00e4sthetische Bedeutung erst durch die jeweilige medial-materielle Konfiguration und lie\u00dfe sich ohne sie gar nicht artikulieren.<br\/><br\/>Der Band dokumentiert eine Auswahl der Beitr\u00e4ge zum XII. Kongress der Deutschen Gesellschaft f\u00fcr \u00c4sthetik in Fribourg, der medientheoretische Fragen in historischer oder zeitgen\u00f6ssischer, in systematischer oder angewandter Absicht zum Thema gemacht hat. Es geht dabei um den Eigensinn ikonischer, choreographischer, filmischer oder architektonischer Artefakte, um die Analog-digital-Differenz, um die medialen Voraussetzungen in der Massenproduktion und -reproduktion von Kunst sowie um die Funktion von Medien bei der Verbreitung, Kommentierung und Archivierung k\u00fcnstlerischer Arbeit bis hin zum Einsatz von KI im Schaffensprozess. Jede Kunst kann in diesem Sinne als Medienkunst gelten, wenn und weil sie mit Medien reflexiv und kritisch arbeitet und aufzeigt, wie diese arbeiten.<br\/><br\/>Mit Beitr\u00e4gen von Florian Arnold, Johannes Bennke, Kathrin Busch, Christian Gr\u00fcny, Christoph Haffter, Dieter Mersch, Alva No\u00eb, Mirjam Schaub, Ludger Schwarte, Martin Seel, J. Emil Sennewald, Luca Viglialoro, Christiane Voss und Lambert Wiesing.","46869":"Medienkunst gibt es nicht erst, seitdem technische Medien sich ins Kunstgeschehen einschalten. Vielmehr gab es medienfreie K\u00fcnste noch nie, ob man unter Medien Bild, Klang, Licht, Raum oder Sprache versteht. Ebenso wenig sind Materialien wie Marmor oder Bronze, T\u00f6ne oder Farben einem Kunstwerk jemals \u00e4u\u00dferlich, vielmehr entsteht \u00e4sthetische Bedeutung erst durch die jeweilige medial-materielle Konfiguration und lie\u00dfe sich ohne sie gar nicht artikulieren.<br\/><br\/>Der Band dokumentiert eine Auswahl der Beitr\u00e4ge zum XII. Kongress der Deutschen Gesellschaft f\u00fcr \u00c4sthetik in Fribourg, der medientheoretische Fragen in historischer oder zeitgen\u00f6ssischer, in systematischer oder angewandter Absicht zum Thema gemacht hat. Es geht dabei um den Eigensinn ikonischer, choreographischer, filmischer oder architektonischer Artefakte, um die Analog-digital-Differenz, um die medialen Voraussetzungen in der Massenproduktion und -reproduktion von Kunst sowie um die Funktion von Medien bei der Verbreitung, Kommentierung und Archiv
15028ierung k\u00fcnstlerischer Arbeit bis hin zum Einsatz von KI im Schaffensprozess. Jede Kunst kann in diesem Sinne als Medienkunst gelten, wenn und weil sie mit Medien reflexiv und kritisch arbeitet und aufzeigt, wie diese arbeiten.<br\/><br\/>Mit Beitr\u00e4gen von Florian Arnold, Johannes Bennke, Kathrin Busch, Christian Gr\u00fcny, Christoph Haffter, Dieter Mersch, Alva No\u00eb, Mirjam Schaub, Ludger Schwarte, Martin Seel, J. Emil Sennewald, Luca Viglialoro, Christiane Voss und Lambert Wiesing."},"doi":{"46489":"","46869":"10.28937\/978-3-7873-4957-9"},"isbn":{"46489":"978-3-7873-4956-2","46869":"978-3-7873-4957-9"},"marketing_short_text":{"46489":"","46869":""},"recension_text":{"46489":"","46869":""},"language":{"46489":"","46869":""},"cover":{"46489":"Kartoniert","46869":""},"pages":{"46489":"230 Seiten","46869":"230 Seiten"},"edition":{"46489":"","46869":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46489":"Nein","46869":"Nein"},"copyright_year":{"46489":"","46869":""},"vlb_tix_link":{"46489":"https:\/\/neu.vlbtix.de\/products\/9783787349562?type=gtin","46869":""},"defaultValues":{"163":"15"}}; 15029 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 15030 15031 if (typeof window.amxnotif_wrap_attributes === 'function') { 15032 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 15033 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 15034 } 15035 15036 const configurableOptionsComponent = initConfigurableOptions( 15037 '46700', 15038 config 15039 ); 15040 const swatchOptionsComponent = initSwatchOptions( 15041 swatchConfig 15042 ); 15043 15044 // DWS - Configurable product preselect start 15045 const confProdPreSelect = () => { 15046 return { 15047 preselectQuerystringItems() { 15048 var data = {"id":"46489","output":"15"}; 15049 const urlQueryParams = new URLSearchParams(window.location.search); 15050 15051 this.$nextTick(() => { 15052 setTimeout(() => { 15053 const rootEl = this.$root || this.$el; 15054 if (!rootEl) return; 15055 15056 const applySelection = (attrCode, attrValue) => { 15057 if (attrValue === undefined || attrValue === null || attrValue === '') return; 15058 15059 const attributes = Object.values(this.optionConfig.attributes || {}); 15060 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 15061 15062 if (targetAttr) { 15063 const attrId = String(targetAttr.id); 15064 const optionVal = String(attrValue); 15065 15066 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 15067 15068 if (inputEl) { 15069 inputEl.click(); 15070 inputEl.dispatchEvent(new Event('change', { 15071 bubbles: true 15072 })); 15073 } else { 15074 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 15075 if (selectEl) { 15076 selectEl.value = optionVal; 15077 selectEl.dispatchEvent(new Event('change', { 15078 bubbles: true 15079 })); 15080 } 15081 } 15082 15083 this.changeOption(attrId, optionVal, false); 15084 } 15085 }; 15086 15087 if (data && typeof data === 'object') {
15088 Object.keys(data).forEach(key => applySelection(key, data[key])); 15089 } 15090 15091 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 15092 if (attribute && attribute.code) { 15093 let optionValue = urlQueryParams.get(attribute.code); 15094 if (optionValue) { 15095 let optionId = false; 15096 const attributes = Object.values(this.optionConfig.attributes || {}); 15097 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 15098 15099 let found = false; 15100 Object.values(targetAttr.options).map(option => { 15101 if (found === false && option.label === optionValue) { 15102 optionId = option.id; 15103 found = true; 15104 } 15105 }); 15106 15107 const attrId = String(targetAttr.id); 15108 let optionVal = String(optionValue); 15109 if (found) { 15110 optionVal = String(optionId); 15111 } 15112 15113 applySelection(attribute.code, optionVal); 15114 } 15115 } 15116 }); 15117 }, 100); 15118 }); 15119 } 15120 } 15121 }; 15122 // DWS - Configurable product preselect end 15123 15124 const result = Object.assign( 15125 configurableOptionsComponent, 15126 swatchOptionsComponent, { 15127 productId: '46700', 15128 productIndex: 0, 15129 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 15130 showSwatches: false, 15131 precalcOptions: {}, 15132 originalInit: configurableOptionsComponent.init, 15133 init() { 15134 try { 15135 this.precalcOptions = {}; 15136 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 15137 this.preselectQuerystringItems(); 15138 if (Array.isArray(attrSource)) { 15139 attrSource.forEach(attr => { 15140 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 15141 }); 15142 } else if (attrSource && typeof attrSource === 'object') { 15143 Object.keys(attrSource).forEach(id => { 15144 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 15145 }); 15146 } 15147 } catch (e) { 15148 console.error('Pre-calc error:', e); 15149 } 15150 15151 if (typeof this.originalInit === 'function') { 15152 this.originalInit(); 15153 } 15154 15155 try { 15156 this.initShowSwatchesIntersect(); 15157 } catch (e) { 15158 console.error('intersect error:', e); 15159 } 15160 }, 15161 15162 updateGallery() { 15163 if (!this.productIndex) return; 15164 15165 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 15166 method: 'GET', 15167 headers: { 15168 'Content-Type': 'application/json', 15169 'X-Requested-With': 'XMLHttpRequest' 15170 } 15171 }) 15172 .then(response => response.json()) 15173 .then(data => { 15174 if (data && data.medium) { 15175 window.dispatchEvent(new CustomEvent("update-gallery-46700", { 15176 detail: data.medium 15177 })); 15178 } 15179 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 15180 }, 15181 15182 15183 initShowSwatchesIntersect() { 15184 const observer = new IntersectionObserver(entries => { 15185 if (entries[0].isIntersecting) { 15186 this.showSwatches = true; 15187 observer.disconnect(); 15188 } 15189 }, { 15190 rootMargin: '512px' 15191 }); 15192 observer.observe(this.$el); 15193 }, 15194 getOptions(attrId) { 15195 return this.precalcOptions[attrId] || []; 15196 }, 15197 getOptionsByAttrId() { 15198 return this.getOptions(this.$el.dataset.attributeId); 15199 }, 15200 _getItemId() { 15201 if (this.item && this.item.id) return this.item.id; 15202 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 15203 }, 15204 getSwatchOptionHtmlId() { 15205 const itemId = this._getItemId(); 15206 return itemId ? this.$id(`attribute-option-46700-${itemId}`) : ''; 15207 }, 15208 getSwatchOptionHtmlIdGroup() { 15209 const itemId = this._getItemId(); 15210 return itemId ? [`attribute-option-46700-${itemId}`] : []; 15211 }, 15212 getAttributeSwatchData(attributeId) { 15213 const data = Object.assign({}, this.swatchConfig[attributeId]); 15214 if (data['additional_data']) { 15215 try { 15216 data['details'] = JSON.parse(data['additional_data']); 15217 } catch (e) { 15218 data['details'] = {}; 15219 } 15220 } 15221 return data; 15222 }, 15223 getSwatchType(attributeId, optionId) { 15224 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 15225 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 15226 } 15227 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 15228 this.swatchConfig[attributeId].details.swatch_input_type : 15229 "empty"; 15230 if (type === 'visual') { 15231 const config = this.swatchConfig[attributeId]; 15232 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 15233 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 15234 } 15235 // Fallback to first option type 15236 for (const oId in config) { 15237 if (config[oId] && typeof config[oId].type !== 'undefined') { 15238 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 15239 } 15240 } 15241 } 15242 return type; 15243 }, 15244 mapSwatchTypeNumberToTypeCode(type) { 15245 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 15246 }, 15247 isTextSwatch() { 15248 const itemId = this._getItemId(); 15249 if (!this.$el || !itemId) return false;
15250 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15251 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 15252 }, 15253 15254 getSwatchText() { 15255 const itemId = this._getItemId(); 15256 if (this.item) return this.item.label || ''; 15257 if (!this.$el || !itemId) return ''; 15258 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15259 const options = attrId ? this.getOptions(attrId) : []; 15260 const opt = options.find(o => o.id == itemId); 15261 return opt ? opt.label : ''; 15262 }, 15263 getSwatchBackgroundStyle() { 15264 const itemId = this._getItemId(); 15265 if (!this.$el || !itemId) return ''; 15266 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15267 if (!attrId) return ''; 15268 const type = this.getSwatchType(attrId, itemId); 15269 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 15270 this.swatchConfig[attrId][itemId] : 15271 null; 15272 if (!swatchData) return ''; 15273 if (type === "color") return 'background-color:' + swatchData.value; 15274 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 15275 return ''; 15276 }, 15277 swatchOptionClasses() { 15278 const itemId = this._getItemId(); 15279 if (!this.$el || !itemId) return {}; 15280 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15281 return { 15282 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 15283 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 15284 'w-6 h-6': !this.isTextSwatch() 15285 } 15286 }, 15287 15288 onFocusSwatchItem() { 15289 const itemId = this._getItemId(); 15290 if (itemId) this.focusedLabel = itemId; 15291 }, 15292 onChangeOption() { 15293 const itemId = this._getItemId(); 15294 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 15295 if (attrId && itemId) this.changeOption(attrId, itemId); 15296 }, 15297 changeOption(attributeId, value) { 15298 if (value === '') { 15299 return; 15300 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 15301 } else { 15302 this.selectedValues[attributeId] = value; 15303 } 15304 15305 this.findSimpleIndex(); 15306 this.findAllowedAttributeOptions(); 15307 this.updatePrices(); 15308 this.updateGallery(); 15309 15310 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 15311 this.findProductIdsForPartialSelection(this.selectedValues) : []; 15312 15313 const eventDetail = { 15314 productId: this.productId, 15315 optionId: attributeId, 15316 value: value, 15317 productIndex: this.productIndex || 0, 15318 selectedValues: this.selectedValues, 15319 candidates: candidates, 15320 sourceElement: this.$el 15321 }; 15322 15323 // Dispatch for Amasty 15324 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 15325 detail: eventDetail 15326 })); 15327 15328 // Dispatch for Hyva listing 15329 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 15330 detail: eventDetail 15331 })); 15332 }, 15333 15334 15335 clearOptionIfActive() { 15336 const itemId = this._getItemId(); 15337 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 15338 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 15339 this.changeOption(attrId, ''); 15340 15341 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 15342 if (!input && this.$el?.querySelector) { 15343 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 15344 } 15345 if (!input && this.$el?.closest) { 15346 const root = this.$el.closest('[data-product-id]') || this.$el; 15347 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 15348 } 15349 if (input) { 15350 input.checked = false;
15351 } 15352 } 15353 }, 15354 get optionIsEnabled() { 15355 const itemId = this._getItemId(); 15356 if (!this.$el || !itemId) return true; 15357 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15358 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 15359 return !!allowedOptions.find(opt => opt.id == itemId); 15360 }, 15361 get isSelected() { 15362 const itemId = this._getItemId(); 15363 if (!this.$el || !itemId) return false; 15364 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15365 return attrId ? (this.selectedValues[attrId] == itemId) : false; 15366 }, 15367 get isSwatchRequired() { 15368 if (!this.$el) return false; 15369 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15370 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 15371 }, 15372 focusedLabel: false, 15373 activeTooltipItem: false, 15374 tooltipPositionElement: false,
15375 setActiveTooltipItem() { 15376 const itemId = this._getItemId(); 15377 if (!this.$el || !itemId) return; 15378 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15379 this.activeTooltipItem = { 15380 attribute: attrId, 15381 item: itemId, 15382 index: 0 15383 }; 15384 this.tooltipPositionElement = this.$event ? this.$event.target : null; 15385 }, 15386 unsetActiveTooltipItem() { 15387 this.activeTooltipItem = false; 15388 } 15389 }, 15390 confProdPreSelect() 15391 ); 15392 15393 if (result.optionConfig && result.optionConfig.attributes) { 15394 const attributes = result.optionConfig.attributes; 15395 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 15396 let source = attributes; 15397 if (Array.isArray(attributes)) { 15398 source = {}; 15399 attributes.forEach(attr => { 15400 if (attr && attr.id) source[attr.id] = attr; 15401 }); 15402 } 15403 const values = Object.values(source); 15404 const wrapper = Object.assign(values, source); 15405 Object.defineProperty(wrapper, '__amxnotifWrapped', { 15406 value: true, 15407 enumerable: false 15408 }); 15409 result.optionConfig.attributes = wrapper; 15410 } 15411 } 15412 15413 return result; 15414 } 15415 15416 window.addEventListener('alpine:init', () => { 15417 Alpine.data('initConfigurableSwatchOptions_46700', initConfigurableSwatchOptions_46700); 15418 }, { 15419 once: true 15420 }); 15421 </script>
15421 15422 15423 <div x-data="initConfigurableSwatchOptions_46700" x-defer="intersect"> 15424 <div class="pagebuilder-home-hidden"> 15425 15426 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 15427 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 15428 <template x-if="showSwatches"> 15429 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46700-163" role="radiogroup" aria-label="Einband"> 15430 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 15431 <div :data-option-id="item.id" style="display: contents"> 15432 <div x-id="getSwatchOptionHtmlIdGroup"> 15433 <template x-if="optionIsEnabled"> 15434 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
15434self="unsetActiveTooltipItem"> 15435 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46700-163"> 15436 <div> 15437 <template x-if="isTextSwatch"> 15438 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 15439 </template> 15440 <template x-if="!optionIsActive(163, item.id)"> 15441 <div> 15442 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 15443 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 15444 </svg> 15445 </div> 15446 </template> 15447 </div> 15448 </label> 15449 </template> 15450</div> </div> 15451 </template> 15452 </div> 15453 </template> 15454 </div> 15455 </div> 15456 </div> 15457 </div> 15458 15459 <div class="meta py-4 pagebuilder-home-hidden"> 15460 <div x-data="initMarketingShortText_46700()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 15461 <!-- Marketing short text --> 15462 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 15463 </div> 15464 15465 <!-- Short description --> 15466 <div class="short-description"> 15467 Medienkunst gibt es nicht erst, seitdem technische Medien sich ins Kunstgeschehen einschalten. Vielmehr gab es medienfreie Künste noch nie, ob man unter Medien Bild, Klang, Licht, Raum oder ... <a href="https://meiner.de/fmv_de/ka-nste-der-medien-medien-der-ka-nste-17995" class="underline">mehr</a> 15468 </div> 15469 </div> 15470 15471 <!-- Series --> 15472 <div class="mb-1"> 15473 <span class="sr-only">Reihe:</span> 15474 <a href="https://meiner.de/fmv_de/programm/reihen/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft-sonderhefte"> 15475 <span>Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft - Sonderhefte</span> 15476 </a> 15477 27 </div> 15478 15479 15480 <div class="mb-1"> 15481 <span x-data="initEditionText_46700()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 15482 <!-- Marketing short text --> 15483 <span class="edition-text" x-html="editionText"></span> 2026, 230 Seiten </span> 15484 </div> 15485 15486 </div> 15487 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 15488 15489 <div class="justify-end" x-data="initPriceBox()" @update-prices-46700.window="updatePrice($event.detail);"> 15490 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46700" data-price-box="product-id-46700"><span class="normal-price"> 15491 <span x-data x-id="['product\u002Dprice\u002D46700']" class="price-container price-final_price tax weee"> 15492 <span class="price-label">Ab</span>
15493 <span class="approx-price">ca. </span> 15494 <span :id="$id('product\u002Dprice\u002D46700')" data-price-amount="74.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">74,99 €</span></span> 15495 </span> 15496</span> 15497 15498 15499</div> </div> 15500 15501 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 15502 <div class="open-access-container open-access-container-46700 flex mt-4 ml-auto sm:mt-0 hidden"> 15503 <div class="text-gray-700"> 15504 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 15505 <a href="" target="_blank" class="open-access-external-link m-auto "> 15506 Kostenlos online lesen </a> 15507 </button> 15508 </div> 15509 </div> 15510 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Künste der Medien / Medien der Künste" aria-label="In den Warenkorb Künste der Medien / Medien der Künste" data-addto="cart"> 15511 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 15512 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 15513</svg> 15514 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 15515 In den Warenkorb </span> 15516 </button> 15517 15518<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46700)" aria-label="Zur Wunschliste hinzufügen Künste der Medien / Medien der Künste" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 15519 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 15520 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 15521</svg> 15522</button> 15523 </div> 15524 </div> 15525 </div> 15526
15526<script> 15527 function initMarketingShortText_46700() { 15528 var marketingShortTextConfig = {}; 15529 if (typeof window.initConfigurableSwatchOptions_46700 === "function") { 15530 var fullConfig = window.initConfigurableSwatchOptions_46700().optionConfig 15531 var marketingShortTextConfig = fullConfig.marketing_short_text; 15532 } 15533 return { 15534 marketingShortText: '', 15535 config: marketingShortTextConfig, 15536 productId: '46700', 15537 getMarketingShortText(detail) { 15538 this.marketingShortText = detail.productIndex ? 15539 this.config[detail.productIndex] : 15540 null; 15541 }, 15542 eventListeners: { 15543 ['@listing-configurable-selection-changed.window'](event) { 15544 if (this.productId == event.detail.productId) { 15545 this.getMarketingShortText(event.detail); 15546 } 15547 15548 } 15549 } 15550 } 15551 } 15552 15553 function initEditionText_46700() { 15554 var editionTextConfig = {}; 15555 if (typeof window.initConfigurableSwatchOptions_46700 === "function") { 15556 var fullConfig = window.initConfigurableSwatchOptions_46700().optionConfig 15557 var editionTextConfig = fullConfig.edition; 15558 } 15559 return { 15560 editionText: '', 15561 config: editionTextConfig, 15562 productId: '46700', 15563 getEditionText(detail) { 15564 this.editionText = detail.productIndex ? 15565 this.config[detail.productIndex] : 15566 null; 15567 }, 15568 eventListeners: { 15569 ['@listing-configurable-selection-changed.window'](event) { 15570 if (this.productId == event.detail.productId) { 15571 this.getEditionText(event.detail); 15572 } 15573 15574 } 15575 } 15576 } 15577 } 15578 </script>
15578 15579 </form> 15580 15581 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46696/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16806"> 15582 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46696"> 15583 <a href="https://meiner.de/fmv_de/das-groa-e-ruhen-und-kontemplieren-16806" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 15584 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46696.window="$el.src = $event.detail" alt="Das Große Ruhen und Kontemplieren" title="Das Große Ruhen und Kontemplieren" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787345922_1.jpg" :style="{ 15585 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 15586 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 15587 }"> 15588 </a> 15589 <div class="product-info flex flex-col flex-grow "> 15590 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 15591 <div class="mb-2 text-sm text-gray-500 font-medium"> 15592 <a href="https://meiner.de/fmv_de/person/Zhiyi-21155/" class="mb-2"> 15593 Zhìyǐ </a> 15594 </div> 15595 <a class="product-item-link" href="https://meiner.de/fmv_de/das-groa-e-ruhen-und-kontemplieren-16806"> 15596 Das Große Ruhen und Kontemplieren </a> 15597 </div> 15598 15599 <div x-data="initEditionText_46696()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 15600 <!-- Marketing short text --> 15601 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 15602 </div> 15603 </div> 15604 15605 <div class="py-1 grid mb-4 "> 15606 15607 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46696,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46696,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"45602":"1","47037":"1"},"childProductsAlertStatus":{"45602":"0","47037":"0"},"indexMapping":{"163:11":45602,"163:8":47037},"availabilityMessages":{"45602":"Lieferbar innerhalb von 3-5 Tagen","47037":"Download sofort verf\u00fcgbar"},"openAccess":{"46696":{"status":0},"45602":{"status":0},"47037":{"status":0}}},"availabilityMessages":{"45602":"Lieferbar innerhalb von 3-5 Tagen","47037":"Download sofort verf\u00fcgbar"},"openAccess":{"46696":{"status":0},"45602":{"status":0},"47037":{"status":0}}}'> 15608 <template x-if="containerVisible"> 15609 <!-- Popup Trigger --> 15610 <div> 15611 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 15612 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
15613 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 15614 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 15615<title>bell</title></svg> 15616</span> 15617 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 15618 15619 <!-- Popup Modal --> 15620 <template x-if="showModal"> 15621 <template x-teleport=".page-wrapper"> 15622 <div x-cloak class="fixed inset-0 flex items-center justify-center 15623 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 15624 <div class="relative bg-white rounded-lg shadow-xl 15625 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 15626 <div class="p-6"> 15627 <!-- Subscription Form for Popup --> 15628 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 15629 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 15630 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 15631 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 15632 15633 <div class="flex flex-col gap-3"> 15634 <div class="flex-grow grow"> 15635 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 15636 shadow-xs focus:outline-none focus:outline-hidden 15637 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 15638 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 15639 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 15640 </div> 15641 <input type="hidden" name="product_id" :value="currentProductId"> 15642 <input type="hidden" name="type" value="email"> 15643 15644 15645 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 15646 15647 <div class="amxnotif_guest_action"> 15648 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 15649 rounded-md focus:outline-none 15650 focus:outline-hidden focus:ring-2 15651 focus:ring-offset-2 disabled:opacity-50 15652 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 15653 Benachrichtigen </button> 15654 </div> 15655 </div> 15656 15657 <div class="flex items-start pt-2"> 15658 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 15659 text-blue-600 border-gray-300 rounded-sm"> 15660 <label class="amxnotif-stock-gdrp-label cursor-pointer 15661 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 15662 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 15663 </div> 15664 </form> 15665 </div> 15666 15667 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 15668 hover:text-gray-600 transition-colors" aria-label="Schließen"> 15669 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 15670 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 15671<title>x</title></svg> 15672 </button> 15673 </div> 15674 </div> 15675 </template> 15676 </template> 15677 </div> 15678 </template> 15679 </div> 15680 15681<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46696" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46696,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"45602":"1","47037":"1"},"childProductsAlertStatus":{"45602":"0","47037":"0"},"indexMapping":"{\u0022163:11\u0022:45602,\u0022163:8\u0022:47037}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46696,"availabilityMessages":{"45602":"Lieferbar innerhalb von 3-5 Tagen","47037":"Download sofort verf\u00fcgbar"},"openAccess":{"46696":{"status":0},"45602":{"status":0},"47037":{"status":0}}}'> 15682 15683 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
15684 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 15685 <span x-html="optionsLabelText"></span> 15686 </p> 15687</div> </div> 15688 15689
15689<script> 15690 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 15691 try { 15692 const attributes = (config && config.attributes) ? config.attributes : null; 15693 if (!attributes) return []; 15694 let attr = null; 15695 if (Array.isArray(attributes)) { 15696 for (let i = 0; i < attributes.length; i++) { 15697 const a = attributes[i]; 15698 if (a && a.id == attrId) { 15699 attr = a; 15700 break; 15701 } 15702 } 15703 } else { 15704 attr = attributes[attrId]; 15705 } 15706 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 15707 } catch (e) { 15708 return []; 15709 } 15710 }; 15711 15712 function initConfigurableSwatchOptions_46696() { 15713 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["45602"]},{"id":"8","label":"PDF","products":["47037"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"45602":{"baseOldPrice":{"amount":232.71027937383},"oldPrice":{"amount":249},"basePrice":{"amount":232.71027937383},"finalPrice":{"amount":249},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47037":{"baseOldPrice":{"amount":177.56074666355},"oldPrice":{"amount":189.99},"basePrice":{"amount":177.56074666355},"finalPrice":{"amount":189.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":177.56074666355},"oldPrice":{"amount":189.99},"basePrice":{"amount":159.65546118487},"finalPrice":{"amount":189.99},"isApproxPrice":null},"productId":"46696","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"45602":{"163":"11"},"47037":{"163":"8"}},"salable":{"163":{"11":["45602"],"8":["47037"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"45602":"004591","47037":"004592"},"output":{"45602":"Gebunden","47037":"PDF"},"original_name":{"45602":"M\u00f3h\u0113 zh\u01d0gu\u0101n","47037":"M\u00f3h\u0113 zh\u01d0gu\u0101n"},"openaccess_license_link":{"45602":"","47037":""},"openaccess_license_name":{"45602":"","47037":""},"openaccess_external_link":{"45602":"","47037":""},"gpsr_safety_info":{"45602":"","47037":""},"description":{"45602":"In der ostasiatischen Tradition des Mah\u0101y\u0101na gilt die Tiantai-Lehre als eine der ersten und historisch einflussreichsten Schulen des chinesischen Buddhismus. Eines der fr\u00fchen Hauptwerke, das noch heute als Lehrgrundlage f\u00fcr Praktizierende in ganz Ostasien dient, wurde von dem gelehrten M\u00f6nch Zh\u00ecy\u01d0 (538\u2013597) verfasst und tr\u00e4gt den Titel \u00bbDas gro\u00dfe Ruhen und Kontemplieren\u00ab. <br\/><br\/>Sein umfangreicher Textkorpus ber\u00fccksichtigt die damals in China bekannte indisch-buddhistische Lehrliteratur, die ab dem zweiten Jahrhundert n. Chr. in die klassische chinesische Schriftsprache \u00fcbersetzt wurde. Es ist der erste Text der chinesischen Tradition, der eine komplexe Hermeneutik vorlegt, die der doktrin\u00e4ren Vielfalt in der \u00fcbersetzten Lehrliteratur eine innere Einheit zuspricht und das Erfassen derselben mit der Introspektion, das hei\u00dft mit der geistigen Selbstbeobachtung, verkn\u00fcpft. In dieser Verbindung definiert der Text nicht nur das Wesen der buddhistischen Praxis, sondern entwickelt auch eine an der Exegese ausgerichteten Theorie von ihr. <br\/><br\/>\u00bbDas allumschlie\u00dfende Dekonstruieren\u00ab ist das philosophisch relevanteste Kapitel, da es sich mit der wahren Erkenntnis aller T\u00e4uschungen und der existenziellen Bedeutung dieser Erkenntnis sowie der der T\u00e4uschung besch\u00e4ftigt. Mit der philosophischen Praxis des dekonstruierenden Kontemplierens der Geistesaktivit\u00e4t beschreibt Zh\u00ecy\u01d0s Werk die ambivalente Signifikanz des unausweichlichen Scheins f\u00fcr die Gestaltung unseres Daseins, die sich in der Einheit von vita contemplativa und vita activa erf\u00fcllt.","47037":"In der ostasiatischen Tradition des Mah\u0101y\u0101na gilt die Tiantai-Lehre als eine der ersten und historisch einflussreichsten Schulen des chinesischen Buddhismus. Eines der fr\u00fchen Hauptwerke, das noch heute als Lehrgrundlage f\u00fcr Praktizierende in ganz Ostasien dient, wurde von dem gelehrten M\u00f6nch Zh\u00ecy\u01d0 (538\u2013597) verfasst und tr\u00e4gt den Titel \u00bbDas gro\u00dfe Ruhen und
15713Kontemplieren\u00ab. <br\/><br\/>Sein umfangreicher Textkorpus ber\u00fccksichtigt die damals in China bekannte indisch-buddhistische Lehrliteratur, die ab dem zweiten Jahrhundert n. Chr. in die klassische chinesische Schriftsprache \u00fcbersetzt wurde. Es ist der erste Text der chinesischen Tradition, der eine komplexe Hermeneutik vorlegt, die der doktrin\u00e4ren Vielfalt in der \u00fcbersetzten Lehrliteratur eine innere Einheit zuspricht und das Erfassen derselben mit der Introspektion, das hei\u00dft mit der geistigen Selbstbeobachtung, verkn\u00fcpft. In dieser Verbindung definiert der Text nicht nur das Wesen der buddhistischen Praxis, sondern entwickelt auch eine an der Exegese ausgerichteten Theorie von ihr. <br\/><br\/>\u00bbDas allumschlie\u00dfende Dekonstruieren\u00ab ist das philosophisch relevanteste Kapitel, da es sich mit der wahren Erkenntnis aller T\u00e4uschungen und der existenziellen Bedeutung dieser Erkenntnis sowie der der T\u00e4uschung besch\u00e4ftigt. Mit der philosophischen Praxis des dekonstruierenden Kontemplierens der Geistesaktivit\u00e4t beschreibt Zh\u00ecy\u01d0s Werk die ambivalente Signifikanz des unausweichlichen Scheins f\u00fcr die Gestaltung unseres Daseins, die sich in der Einheit von vita contemplativa und vita activa erf\u00fcllt."},"doi":{"45602":"","47037":"10.28937\/978-3-7873-4592-2"},"isbn":{"45602":"978-3-7873-4591-5","47037":"978-3-7873-4592-2"},"marketing_short_text":{"45602":"","47037":""},"recension_text":{"45602":"","47037":""},"language":{"45602":"","47037":""},"cover":{"45602":"Gebunden","47037":""},"pages":{"45602":"928 Seiten.","47037":"928 Seiten."},"edition":{"45602":"","47037":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"45602":"Nein","47037":"Nein"},"copyright_year":{"45602":"","47037":""},"vlb_tix_link":{"45602":"https:\/\/neu.vlbtix.de\/products\/9783787345915?type=gtin","47037":""},"defaultValues":{"163":"11"}}; 15714 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 15715 15716 if (typeof window.amxnotif_wrap_attributes === 'function') { 15717 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 15718 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 15719 } 15720 15721 const configurableOptionsComponent = initConfigurableOptions( 15722 '46696', 15723 config 15724 ); 15725 const swatchOptionsComponent = initSwatchOptions( 15726 swatchConfig 15727 ); 15728 15729 // DWS - Configurable product preselect start 15730 const confProdPreSelect = () => { 15731 return { 15732 preselectQuerystringItems() { 15733 var data = {"id":"45602","output":"11"}; 15734 const urlQueryParams = new URLSearchParams(window.location.search); 15735 15736 this.$nextTick(() => { 15737 setTimeout(() => { 15738 const rootEl = this.$root || this.$el; 15739 if (!rootEl) return; 15740 15741 const applySelection = (attrCode, attrValue) => { 15742 if (attrValue === undefined || attrValue === null || attrValue === '') return; 15743 15744 const attributes = Object.values(this.optionConfig.attributes || {}); 15745 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 15746 15747 if (targetAttr) { 15748 const attrId = String(targetAttr.id); 15749 const optionVal = String(attrValue); 15750 15751 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 15752 15753 if (inputEl) { 15754 inputEl.click(); 15755 inputEl.dispatchEvent(new Event('change', { 15756 bubbles: true 15757 })); 15758 } else { 15759 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 15760 if (selectEl) { 15761 selectEl.value = optionVal; 15762 selectEl.dispatchEvent(new Event('change', { 15763 bubbles: true 15764 })); 15765 } 15766 } 15767 15768 this.changeOption(attrId, optionVal, false); 15769 } 15770 }; 15771 15772 if (data && typeof data === 'object') {
15773 Object.keys(data).forEach(key => applySelection(key, data[key])); 15774 } 15775 15776 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 15777 if (attribute && attribute.code) { 15778 let optionValue = urlQueryParams.get(attribute.code); 15779 if (optionValue) { 15780 let optionId = false; 15781 const attributes = Object.values(this.optionConfig.attributes || {}); 15782 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 15783 15784 let found = false; 15785 Object.values(targetAttr.options).map(option => { 15786 if (found === false && option.label === optionValue) { 15787 optionId = option.id; 15788 found = true; 15789 } 15790 }); 15791 15792 const attrId = String(targetAttr.id); 15793 let optionVal = String(optionValue); 15794 if (found) { 15795 optionVal = String(optionId); 15796 } 15797 15798 applySelection(attribute.code, optionVal); 15799 } 15800 } 15801 }); 15802 }, 100); 15803 }); 15804 } 15805 } 15806 }; 15807 // DWS - Configurable product preselect end 15808 15809 const result = Object.assign( 15810 configurableOptionsComponent, 15811 swatchOptionsComponent, { 15812 productId: '46696', 15813 productIndex: 0, 15814 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 15815 showSwatches: false, 15816 precalcOptions: {}, 15817 originalInit: configurableOptionsComponent.init, 15818 init() { 15819 try { 15820 this.precalcOptions = {}; 15821 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 15822 this.preselectQuerystringItems(); 15823 if (Array.isArray(attrSource)) { 15824 attrSource.forEach(attr => { 15825 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 15826 }); 15827 } else if (attrSource && typeof attrSource === 'object') { 15828 Object.keys(attrSource).forEach(id => { 15829 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 15830 }); 15831 } 15832 } catch (e) { 15833 console.error('Pre-calc error:', e); 15834 } 15835 15836 if (typeof this.originalInit === 'function') { 15837 this.originalInit(); 15838 } 15839 15840 try { 15841 this.initShowSwatchesIntersect(); 15842 } catch (e) { 15843 console.error('intersect error:', e); 15844 } 15845 }, 15846 15847 updateGallery() { 15848 if (!this.productIndex) return; 15849 15850 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 15851 method: 'GET', 15852 headers: { 15853 'Content-Type': 'application/json', 15854 'X-Requested-With': 'XMLHttpRequest' 15855 } 15856 }) 15857 .then(response => response.json()) 15858 .then(data => { 15859 if (data && data.medium) { 15860 window.dispatchEvent(new CustomEvent("update-gallery-46696", { 15861 detail: data.medium 15862 })); 15863 } 15864 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 15865 }, 15866 15867 15868 initShowSwatchesIntersect() { 15869 const observer = new IntersectionObserver(entries => { 15870 if (entries[0].isIntersecting) { 15871 this.showSwatches = true; 15872 observer.disconnect(); 15873 } 15874 }, { 15875 rootMargin: '512px' 15876 }); 15877 observer.observe(this.$el); 15878 }, 15879 getOptions(attrId) { 15880 return this.precalcOptions[attrId] || []; 15881 }, 15882 getOptionsByAttrId() { 15883 return this.getOptions(this.$el.dataset.attributeId); 15884 }, 15885 _getItemId() { 15886 if (this.item && this.item.id) return this.item.id; 15887 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 15888 }, 15889 getSwatchOptionHtmlId() { 15890 const itemId = this._getItemId(); 15891 return itemId ? this.$id(`attribute-option-46696-${itemId}`) : ''; 15892 }, 15893 getSwatchOptionHtmlIdGroup() { 15894 const itemId = this._getItemId(); 15895 return itemId ? [`attribute-option-46696-${itemId}`] : []; 15896 }, 15897 getAttributeSwatchData(attributeId) { 15898 const data = Object.assign({}, this.swatchConfig[attributeId]); 15899 if (data['additional_data']) { 15900 try { 15901 data['details'] = JSON.parse(data['additional_data']); 15902 } catch (e) { 15903 data['details'] = {}; 15904 } 15905 } 15906 return data; 15907 }, 15908 getSwatchType(attributeId, optionId) { 15909 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 15910 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 15911 } 15912 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 15913 this.swatchConfig[attributeId].details.swatch_input_type : 15914 "empty"; 15915 if (type === 'visual') { 15916 const config = this.swatchConfig[attributeId]; 15917 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 15918 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 15919 } 15920 // Fallback to first option type 15921 for (const oId in config) { 15922 if (config[oId] && typeof config[oId].type !== 'undefined') { 15923 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 15924 } 15925 } 15926 } 15927 return type; 15928 }, 15929 mapSwatchTypeNumberToTypeCode(type) { 15930 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 15931 }, 15932 isTextSwatch() { 15933 const itemId = this._getItemId(); 15934 if (!this.$el || !itemId) return false;
15935 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15936 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 15937 }, 15938 15939 getSwatchText() { 15940 const itemId = this._getItemId(); 15941 if (this.item) return this.item.label || ''; 15942 if (!this.$el || !itemId) return ''; 15943 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15944 const options = attrId ? this.getOptions(attrId) : []; 15945 const opt = options.find(o => o.id == itemId); 15946 return opt ? opt.label : ''; 15947 }, 15948 getSwatchBackgroundStyle() { 15949 const itemId = this._getItemId(); 15950 if (!this.$el || !itemId) return ''; 15951 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15952 if (!attrId) return ''; 15953 const type = this.getSwatchType(attrId, itemId); 15954 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 15955 this.swatchConfig[attrId][itemId] : 15956 null; 15957 if (!swatchData) return ''; 15958 if (type === "color") return 'background-color:' + swatchData.value; 15959 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 15960 return ''; 15961 }, 15962 swatchOptionClasses() { 15963 const itemId = this._getItemId(); 15964 if (!this.$el || !itemId) return {}; 15965 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 15966 return { 15967 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 15968 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 15969 'w-6 h-6': !this.isTextSwatch() 15970 } 15971 }, 15972 15973 onFocusSwatchItem() { 15974 const itemId = this._getItemId(); 15975 if (itemId) this.focusedLabel = itemId; 15976 }, 15977 onChangeOption() { 15978 const itemId = this._getItemId(); 15979 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 15980 if (attrId && itemId) this.changeOption(attrId, itemId); 15981 }, 15982 changeOption(attributeId, value) { 15983 if (value === '') { 15984 return; 15985 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 15986 } else { 15987 this.selectedValues[attributeId] = value; 15988 } 15989 15990 this.findSimpleIndex(); 15991 this.findAllowedAttributeOptions(); 15992 this.updatePrices(); 15993 this.updateGallery(); 15994 15995 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 15996 this.findProductIdsForPartialSelection(this.selectedValues) : []; 15997 15998 const eventDetail = { 15999 productId: this.productId, 16000 optionId: attributeId, 16001 value: value, 16002 productIndex: this.productIndex || 0, 16003 selectedValues: this.selectedValues, 16004 candidates: candidates, 16005 sourceElement: this.$el 16006 }; 16007 16008 // Dispatch for Amasty 16009 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 16010 detail: eventDetail 16011 })); 16012 16013 // Dispatch for Hyva listing 16014 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 16015 detail: eventDetail 16016 })); 16017 }, 16018 16019 16020 clearOptionIfActive() { 16021 const itemId = this._getItemId(); 16022 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 16023 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 16024 this.changeOption(attrId, ''); 16025 16026 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 16027 if (!input && this.$el?.querySelector) { 16028 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 16029 } 16030 if (!input && this.$el?.closest) { 16031 const root = this.$el.closest('[data-product-id]') || this.$el; 16032 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 16033 } 16034 if (input) { 16035 input.checked = false;
16036 } 16037 } 16038 }, 16039 get optionIsEnabled() { 16040 const itemId = this._getItemId(); 16041 if (!this.$el || !itemId) return true; 16042 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16043 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 16044 return !!allowedOptions.find(opt => opt.id == itemId); 16045 }, 16046 get isSelected() { 16047 const itemId = this._getItemId(); 16048 if (!this.$el || !itemId) return false; 16049 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16050 return attrId ? (this.selectedValues[attrId] == itemId) : false; 16051 }, 16052 get isSwatchRequired() { 16053 if (!this.$el) return false; 16054 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16055 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 16056 }, 16057 focusedLabel: false, 16058 activeTooltipItem: false, 16059 tooltipPositionElement: false,
16060 setActiveTooltipItem() { 16061 const itemId = this._getItemId(); 16062 if (!this.$el || !itemId) return; 16063 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16064 this.activeTooltipItem = { 16065 attribute: attrId, 16066 item: itemId, 16067 index: 0 16068 }; 16069 this.tooltipPositionElement = this.$event ? this.$event.target : null; 16070 }, 16071 unsetActiveTooltipItem() { 16072 this.activeTooltipItem = false; 16073 } 16074 }, 16075 confProdPreSelect() 16076 ); 16077 16078 if (result.optionConfig && result.optionConfig.attributes) { 16079 const attributes = result.optionConfig.attributes; 16080 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 16081 let source = attributes; 16082 if (Array.isArray(attributes)) { 16083 source = {}; 16084 attributes.forEach(attr => { 16085 if (attr && attr.id) source[attr.id] = attr; 16086 }); 16087 } 16088 const values = Object.values(source); 16089 const wrapper = Object.assign(values, source); 16090 Object.defineProperty(wrapper, '__amxnotifWrapped', { 16091 value: true, 16092 enumerable: false 16093 }); 16094 result.optionConfig.attributes = wrapper; 16095 } 16096 } 16097 16098 return result; 16099 } 16100 16101 window.addEventListener('alpine:init', () => { 16102 Alpine.data('initConfigurableSwatchOptions_46696', initConfigurableSwatchOptions_46696); 16103 }, { 16104 once: true 16105 }); 16106 </script>
16106 16107 16108 <div x-data="initConfigurableSwatchOptions_46696" x-defer="intersect"> 16109 <div class="pagebuilder-home-hidden"> 16110 16111 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 16112 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 16113 <template x-if="showSwatches"> 16114 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46696-163" role="radiogroup" aria-label="Einband"> 16115 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 16116 <div :data-option-id="item.id" style="display: contents"> 16117 <div x-id="getSwatchOptionHtmlIdGroup"> 16118 <template x-if="optionIsEnabled"> 16119 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
16119self="unsetActiveTooltipItem"> 16120 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46696-163"> 16121 <div> 16122 <template x-if="isTextSwatch"> 16123 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 16124 </template> 16125 <template x-if="!optionIsActive(163, item.id)"> 16126 <div> 16127 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 16128 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 16129 </svg> 16130 </div> 16131 </template> 16132 </div> 16133 </label> 16134 </template> 16135</div> </div> 16136 </template> 16137 </div> 16138 </template> 16139 </div> 16140 </div> 16141 </div> 16142 </div> 16143 16144 <div class="meta py-4 pagebuilder-home-hidden"> 16145 <div x-data="initMarketingShortText_46696()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 16146 <!-- Marketing short text --> 16147 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 16148 </div> 16149 16150 <!-- Short description --> 16151 <div class="short-description"> 16152 In der ostasiatischen Tradition des Mahāyāna gilt die Tiantai-Lehre als eine der ersten und historisch einflussreichsten Schulen des chinesischen Buddhismus. Eines der frühen Hauptwerke, das noch ... <a href="https://meiner.de/fmv_de/das-groa-e-ruhen-und-kontemplieren-16806" class="underline">mehr</a> 16153 </div> 16154 </div> 16155 16156 <!-- Series --> 16157 <div class="mb-1"> 16158 <span class="sr-only">Reihe:</span> 16159 <a href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica"> 16160 <span>Sino-philosophica</span> 16161 </a> 16162 4 </div> 16163 16164 16165 <div class="mb-1"> 16166 <span x-data="initEditionText_46696()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 16167 <!-- Marketing short text --> 16168 <span class="edition-text" x-html="editionText"></span> 2026, 928 Seiten. </span> 16169 </div> 16170 16171 </div> 16172 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 16173 16174 <div class="justify-end" x-data="initPriceBox()" @update-prices-46696.window="updatePrice($event.detail);"> 16175 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46696" data-price-box="product-id-46696"><span class="normal-price"> 16176 <span x-data x-id="['product\u002Dprice\u002D46696']" class="price-container price-final_price tax weee"> 16177 <span class="price-label">Ab</span> 16178 <span class="approx-price">ca. </span> 16179 <span :id="$id('product\u002Dprice\u002D46696')" data-price-amount="189.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">189,99 €</span></span> 16180 </span> 16181</span> 16182 16183 16184</div> </div> 16185 16186 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 16187 <div class="open-access-container open-access-container-46696 flex mt-4 ml-auto sm:mt-0 hidden"> 16188 <div class="text-gray-700"> 16189 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 16190 <a href="" target="_blank" class="open-access-external-link m-auto "> 16191 Kostenlos online lesen </a> 16192 </button> 16193 </div> 16194 </div> 16195 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Das Groß
16195e Ruhen und Kontemplieren" aria-label="In den Warenkorb Das Große Ruhen und Kontemplieren" data-addto="cart"> 16196 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 16197 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 16198</svg> 16199 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 16200 In den Warenkorb </span> 16201 </button> 16202 16203<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46696)" aria-label="Zur Wunschliste hinzufügen Das Große Ruhen und Kontemplieren" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 16204 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 16205 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 16206</svg> 16207</button> 16208 </div> 16209 </div> 16210 </div> 16211
16211<script> 16212 function initMarketingShortText_46696() { 16213 var marketingShortTextConfig = {}; 16214 if (typeof window.initConfigurableSwatchOptions_46696 === "function") { 16215 var fullConfig = window.initConfigurableSwatchOptions_46696().optionConfig 16216 var marketingShortTextConfig = fullConfig.marketing_short_text; 16217 } 16218 return { 16219 marketingShortText: '', 16220 config: marketingShortTextConfig, 16221 productId: '46696', 16222 getMarketingShortText(detail) { 16223 this.marketingShortText = detail.productIndex ? 16224 this.config[detail.productIndex] : 16225 null; 16226 }, 16227 eventListeners: { 16228 ['@listing-configurable-selection-changed.window'](event) { 16229 if (this.productId == event.detail.productId) { 16230 this.getMarketingShortText(event.detail); 16231 } 16232 16233 } 16234 } 16235 } 16236 } 16237 16238 function initEditionText_46696() { 16239 var editionTextConfig = {}; 16240 if (typeof window.initConfigurableSwatchOptions_46696 === "function") { 16241 var fullConfig = window.initConfigurableSwatchOptions_46696().optionConfig 16242 var editionTextConfig = fullConfig.edition; 16243 } 16244 return { 16245 editionText: '', 16246 config: editionTextConfig, 16247 productId: '46696', 16248 getEditionText(detail) { 16249 this.editionText = detail.productIndex ? 16250 this.config[detail.productIndex] : 16251 null; 16252 }, 16253 eventListeners: { 16254 ['@listing-configurable-selection-changed.window'](event) { 16255 if (this.productId == event.detail.productId) { 16256 this.getEditionText(event.detail); 16257 } 16258 16259 } 16260 } 16261 } 16262 } 16263 </script>
16263 16264 </form> 16265 16266 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/43703/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17423"> 16267 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="43703"> 16268 <a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 16269 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-43703.window="$el.src = $event.detail" alt="Schockierende Ungleichheit" title="Schockierende Ungleichheit" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351893_1.jpg" :style="{ 16270 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 16271 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 16272 }"> 16273 </a> 16274 <div class="product-info flex flex-col flex-grow "> 16275 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 16276 <div class="mb-2 text-sm text-gray-500 font-medium"> 16277 <a href="https://meiner.de/fmv_de/person/Wolfgang-Detel-3526/" class="mb-2"> 16278 Wolfgang Detel </a> 16279 </div> 16280 <a class="product-item-link" href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423"> 16281 Schockierende Ungleichheit </a> 16282 </div> 16283 16284 <div x-data="initEditionText_43703()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 16285 <!-- Marketing short text --> 16286 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 16287 </div> 16288 </div> 16289 16290 <div class="py-1 grid mb-4 "> 16291 16292 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":43703,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":43703,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46975":"1","46991":"1","46992":"1"},"childProductsAlertStatus":{"46975":"0","46991":"0","46992":"0"},"indexMapping":{"163:15":46975,"163:8":46991,"163:9":46992},"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}},"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}}'> 16293 <template x-if="containerVisible"> 16294 <!-- Popup Trigger --> 16295 <div> 16296 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 16297 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
16298 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 16299 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 16300<title>bell</title></svg> 16301</span> 16302 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 16303 16304 <!-- Popup Modal --> 16305 <template x-if="showModal"> 16306 <template x-teleport=".page-wrapper"> 16307 <div x-cloak class="fixed inset-0 flex items-center justify-center 16308 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 16309 <div class="relative bg-white rounded-lg shadow-xl 16310 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 16311 <div class="p-6"> 16312 <!-- Subscription Form for Popup --> 16313 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 16314 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 16315 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 16316 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 16317 16318 <div class="flex flex-col gap-3"> 16319 <div class="flex-grow grow"> 16320 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 16321 shadow-xs focus:outline-none focus:outline-hidden 16322 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 16323 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 16324 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 16325 </div> 16326 <input type="hidden" name="product_id" :value="currentProductId"> 16327 <input type="hidden" name="type" value="email"> 16328 16329 16330 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 16331 16332 <div class="amxnotif_guest_action"> 16333 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 16334 rounded-md focus:outline-none 16335 focus:outline-hidden focus:ring-2 16336 focus:ring-offset-2 disabled:opacity-50 16337 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 16338 Benachrichtigen </button> 16339 </div> 16340 </div> 16341 16342 <div class="flex items-start pt-2"> 16343 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 16344 text-blue-600 border-gray-300 rounded-sm"> 16345 <label class="amxnotif-stock-gdrp-label cursor-pointer 16346 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 16347 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 16348 </div> 16349 </form> 16350 </div> 16351 16352 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 16353 hover:text-gray-600 transition-colors" aria-label="Schließen"> 16354 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 16355 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 16356<title>x</title></svg> 16357 </button> 16358 </div> 16359 </div> 16360 </template> 16361 </template> 16362 </div> 16363 </template> 16364 </div> 16365 16366<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_43703" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":43703,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46975":"
163661","46991":"1","46992":"1"},"childProductsAlertStatus":{"46975":"0","46991":"0","46992":"0"},"indexMapping":"{\u0022163:15\u0022:46975,\u0022163:8\u0022:46991,\u0022163:9\u0022:46992}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":43703,"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}}'> 16367 16368 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 16369 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 16370 <span x-html="optionsLabelText"></span> 16371 </p> 16372</div> </div> 16373 16374
16374<script> 16375 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 16376 try { 16377 const attributes = (config && config.attributes) ? config.attributes : null; 16378 if (!attributes) return []; 16379 let attr = null; 16380 if (Array.isArray(attributes)) { 16381 for (let i = 0; i < attributes.length; i++) { 16382 const a = attributes[i]; 16383 if (a && a.id == attrId) { 16384 attr = a; 16385 break; 16386 } 16387 } 16388 } else { 16389 attr = attributes[attrId]; 16390 } 16391 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 16392 } catch (e) { 16393 return []; 16394 } 16395 }; 16396 16397 function initConfigurableSwatchOptions_43703() { 16398 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46975"]},{"id":"8","label":"PDF","products":["46991"]},{"id":"9","label":"EPUB","products":["46992"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46975":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46991":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46992":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":18.478990596639},"finalPrice":{"amount":21.99},"isApproxPrice":null},"productId":"43703","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46975":{"163":"15"},"46991":{"163":"8"},"46992":{"163":"9"}},"salable":{"163":{"15":["46975"],"8":["46991"],"9":["46992"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46975":"005187","46991":"005188","46992":"005189"},"output":{"46975":"Kartoniert","46991":"PDF","46992":"EPUB"},"original_name":{"46975":"","46991":"","46992":""},"openaccess_license_link":{"46975":"","46991":"","46992":""},"openaccess_license_name":{"46975":"","46991":"","46992":""},"openaccess_external_link":{"46975":"","46991":"","46992":""},"gpsr_safety_info":{"46975":"","46991":"","46992":""},"description":{"46975":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle
16398konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert.","46991":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert.","46992":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert."},"doi":{"46975":"","46991":"10.28937\/978-3-7873-5188-6","46992":""},"isbn":{"46975":"978-3-7873-5187-9","46991":"978-3-7873-5188-6","46992":"978-3-7873-5189-3"},"marketing_short_text":{"46975":"","46991":"","46992":""},"recension_text":{"46975":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">
16398[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>","46991":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>","46992":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">
16398[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>"},"language":{"46975":"","46991":"","46992":""},"cover":{"46975":"Kartoniert","46991":"","46992":""},"pages":{"46975":"412 Seiten","46991":"420 Seiten","46992":"420 Seiten"},"edition":{"46975":"2., um ein Nachwort erg\u00e4nzte Auflage","46991":"2., um ein Nachwort erg\u00e4nzte Auflage","46992":"2., um ein Nachwort erg\u00e4nzte Auflage"},"pod":{"46975":"Nein","46991":"Nein","46992":"Nein"},"copyright_year":{"46975":"","46991":"","46992":""},"vlb_tix_link":{"46975":"https:\/\/neu.vlbtix.de\/products\/9783787351879?type=gtin","46991":"","46992":""},"defaultValues":{"163":"15"}}; 16399 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 16400 16401 if (typeof window.amxnotif_wrap_attributes === 'function') { 16402 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 16403 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 16404 } 16405 16406 const configurableOptionsComponent = initConfigurableOptions( 16407 '43703', 16408 config 16409 ); 16410 const swatchOptionsComponent = initSwatchOptions( 16411 swatchConfig 16412 ); 16413 16414 // DWS - Configurable product preselect start 16415 const confProdPreSelect = () => { 16416 return { 16417 preselectQuerystringItems() { 16418 var data = {"id":"46975","output":"15"}; 16419 const urlQueryParams = new URLSearchParams(window.location.search); 16420 16421 this.$nextTick(() => { 16422 setTimeout(() => { 16423 const rootEl = this.$root || this.$el; 16424 if (!rootEl) return; 16425 16426 const applySelection = (attrCode, attrValue) => { 16427 if (attrValue === undefined || attrValue === null || attrValue === '') return; 16428 16429 const attributes = Object.values(this.optionConfig.attributes || {}); 16430 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 16431 16432 if (targetAttr) { 16433 const attrId = String(targetAttr.id); 16434 const optionVal = String(attrValue); 16435 16436 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 16437 16438 if (inputEl) { 16439 inputEl.click(); 16440 inputEl.dispatchEvent(new Event('change', { 16441 bubbles: true 16442 })); 16443 } else { 16444 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 16445 if (selectEl) { 16446 selectEl.value = optionVal; 16447 selectEl.dispatchEvent(new Event('change', { 16448 bubbles: true 16449 })); 16450 } 16451 } 16452 16453 this.changeOption(attrId, optionVal, false); 16454 } 16455 }; 16456 16457 if (data && typeof data === 'object') {
16458 Object.keys(data).forEach(key => applySelection(key, data[key])); 16459 } 16460 16461 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 16462 if (attribute && attribute.code) { 16463 let optionValue = urlQueryParams.get(attribute.code); 16464 if (optionValue) { 16465 let optionId = false; 16466 const attributes = Object.values(this.optionConfig.attributes || {}); 16467 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 16468 16469 let found = false; 16470 Object.values(targetAttr.options).map(option => { 16471 if (found === false && option.label === optionValue) { 16472 optionId = option.id; 16473 found = true; 16474 } 16475 }); 16476 16477 const attrId = String(targetAttr.id); 16478 let optionVal = String(optionValue); 16479 if (found) { 16480 optionVal = String(optionId); 16481 } 16482 16483 applySelection(attribute.code, optionVal); 16484 } 16485 } 16486 }); 16487 }, 100); 16488 }); 16489 } 16490 } 16491 }; 16492 // DWS - Configurable product preselect end 16493 16494 const result = Object.assign( 16495 configurableOptionsComponent, 16496 swatchOptionsComponent, { 16497 productId: '43703', 16498 productIndex: 0, 16499 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 16500 showSwatches: false, 16501 precalcOptions: {}, 16502 originalInit: configurableOptionsComponent.init, 16503 init() { 16504 try { 16505 this.precalcOptions = {}; 16506 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 16507 this.preselectQuerystringItems(); 16508 if (Array.isArray(attrSource)) { 16509 attrSource.forEach(attr => { 16510 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 16511 }); 16512 } else if (attrSource && typeof attrSource === 'object') { 16513 Object.keys(attrSource).forEach(id => { 16514 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 16515 }); 16516 } 16517 } catch (e) { 16518 console.error('Pre-calc error:', e); 16519 } 16520 16521 if (typeof this.originalInit === 'function') { 16522 this.originalInit(); 16523 } 16524 16525 try { 16526 this.initShowSwatchesIntersect(); 16527 } catch (e) { 16528 console.error('intersect error:', e); 16529 } 16530 }, 16531 16532 updateGallery() { 16533 if (!this.productIndex) return; 16534 16535 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 16536 method: 'GET', 16537 headers: { 16538 'Content-Type': 'application/json', 16539 'X-Requested-With': 'XMLHttpRequest' 16540 } 16541 }) 16542 .then(response => response.json()) 16543 .then(data => { 16544 if (data && data.medium) { 16545 window.dispatchEvent(new CustomEvent("update-gallery-43703", { 16546 detail: data.medium 16547 })); 16548 } 16549 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 16550 }, 16551 16552 16553 initShowSwatchesIntersect() { 16554 const observer = new IntersectionObserver(entries => { 16555 if (entries[0].isIntersecting) { 16556 this.showSwatches = true; 16557 observer.disconnect(); 16558 } 16559 }, { 16560 rootMargin: '512px' 16561 }); 16562 observer.observe(this.$el); 16563 }, 16564 getOptions(attrId) { 16565 return this.precalcOptions[attrId] || []; 16566 }, 16567 getOptionsByAttrId() { 16568 return this.getOptions(this.$el.dataset.attributeId); 16569 }, 16570 _getItemId() { 16571 if (this.item && this.item.id) return this.item.id; 16572 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 16573 }, 16574 getSwatchOptionHtmlId() { 16575 const itemId = this._getItemId(); 16576 return itemId ? this.$id(`attribute-option-43703-${itemId}`) : ''; 16577 }, 16578 getSwatchOptionHtmlIdGroup() { 16579 const itemId = this._getItemId(); 16580 return itemId ? [`attribute-option-43703-${itemId}`] : []; 16581 }, 16582 getAttributeSwatchData(attributeId) { 16583 const data = Object.assign({}, this.swatchConfig[attributeId]); 16584 if (data['additional_data']) { 16585 try { 16586 data['details'] = JSON.parse(data['additional_data']); 16587 } catch (e) { 16588 data['details'] = {}; 16589 } 16590 } 16591 return data; 16592 }, 16593 getSwatchType(attributeId, optionId) { 16594 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 16595 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 16596 } 16597 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 16598 this.swatchConfig[attributeId].details.swatch_input_type : 16599 "empty"; 16600 if (type === 'visual') { 16601 const config = this.swatchConfig[attributeId]; 16602 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 16603 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 16604 } 16605 // Fallback to first option type 16606 for (const oId in config) { 16607 if (config[oId] && typeof config[oId].type !== 'undefined') { 16608 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 16609 } 16610 } 16611 } 16612 return type; 16613 }, 16614 mapSwatchTypeNumberToTypeCode(type) { 16615 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 16616 }, 16617 isTextSwatch() { 16618 const itemId = this._getItemId(); 16619 if (!this.$el || !itemId) return false;
16620 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16621 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 16622 }, 16623 16624 getSwatchText() { 16625 const itemId = this._getItemId(); 16626 if (this.item) return this.item.label || ''; 16627 if (!this.$el || !itemId) return ''; 16628 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16629 const options = attrId ? this.getOptions(attrId) : []; 16630 const opt = options.find(o => o.id == itemId); 16631 return opt ? opt.label : ''; 16632 }, 16633 getSwatchBackgroundStyle() { 16634 const itemId = this._getItemId(); 16635 if (!this.$el || !itemId) return ''; 16636 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16637 if (!attrId) return ''; 16638 const type = this.getSwatchType(attrId, itemId); 16639 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 16640 this.swatchConfig[attrId][itemId] : 16641 null; 16642 if (!swatchData) return ''; 16643 if (type === "color") return 'background-color:' + swatchData.value; 16644 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 16645 return ''; 16646 }, 16647 swatchOptionClasses() { 16648 const itemId = this._getItemId(); 16649 if (!this.$el || !itemId) return {}; 16650 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16651 return { 16652 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 16653 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 16654 'w-6 h-6': !this.isTextSwatch() 16655 } 16656 }, 16657 16658 onFocusSwatchItem() { 16659 const itemId = this._getItemId(); 16660 if (itemId) this.focusedLabel = itemId; 16661 }, 16662 onChangeOption() { 16663 const itemId = this._getItemId(); 16664 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 16665 if (attrId && itemId) this.changeOption(attrId, itemId); 16666 }, 16667 changeOption(attributeId, value) { 16668 if (value === '') { 16669 return; 16670 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 16671 } else { 16672 this.selectedValues[attributeId] = value; 16673 } 16674 16675 this.findSimpleIndex(); 16676 this.findAllowedAttributeOptions(); 16677 this.updatePrices(); 16678 this.updateGallery(); 16679 16680 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 16681 this.findProductIdsForPartialSelection(this.selectedValues) : []; 16682 16683 const eventDetail = { 16684 productId: this.productId, 16685 optionId: attributeId, 16686 value: value, 16687 productIndex: this.productIndex || 0, 16688 selectedValues: this.selectedValues, 16689 candidates: candidates, 16690 sourceElement: this.$el 16691 }; 16692 16693 // Dispatch for Amasty 16694 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 16695 detail: eventDetail 16696 })); 16697 16698 // Dispatch for Hyva listing 16699 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 16700 detail: eventDetail 16701 })); 16702 }, 16703 16704 16705 clearOptionIfActive() { 16706 const itemId = this._getItemId(); 16707 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 16708 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 16709 this.changeOption(attrId, ''); 16710 16711 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 16712 if (!input && this.$el?.querySelector) { 16713 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 16714 } 16715 if (!input && this.$el?.closest) { 16716 const root = this.$el.closest('[data-product-id]') || this.$el; 16717 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 16718 } 16719 if (input) { 16720 input.checked = false;
16721 } 16722 } 16723 }, 16724 get optionIsEnabled() { 16725 const itemId = this._getItemId(); 16726 if (!this.$el || !itemId) return true; 16727 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16728 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 16729 return !!allowedOptions.find(opt => opt.id == itemId); 16730 }, 16731 get isSelected() { 16732 const itemId = this._getItemId(); 16733 if (!this.$el || !itemId) return false; 16734 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16735 return attrId ? (this.selectedValues[attrId] == itemId) : false; 16736 }, 16737 get isSwatchRequired() { 16738 if (!this.$el) return false; 16739 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16740 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 16741 }, 16742 focusedLabel: false, 16743 activeTooltipItem: false, 16744 tooltipPositionElement: false,
16745 setActiveTooltipItem() { 16746 const itemId = this._getItemId(); 16747 if (!this.$el || !itemId) return; 16748 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 16749 this.activeTooltipItem = { 16750 attribute: attrId, 16751 item: itemId, 16752 index: 0 16753 }; 16754 this.tooltipPositionElement = this.$event ? this.$event.target : null; 16755 }, 16756 unsetActiveTooltipItem() { 16757 this.activeTooltipItem = false; 16758 } 16759 }, 16760 confProdPreSelect() 16761 ); 16762 16763 if (result.optionConfig && result.optionConfig.attributes) { 16764 const attributes = result.optionConfig.attributes; 16765 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 16766 let source = attributes; 16767 if (Array.isArray(attributes)) { 16768 source = {}; 16769 attributes.forEach(attr => { 16770 if (attr && attr.id) source[attr.id] = attr; 16771 }); 16772 } 16773 const values = Object.values(source); 16774 const wrapper = Object.assign(values, source); 16775 Object.defineProperty(wrapper, '__amxnotifWrapped', { 16776 value: true, 16777 enumerable: false 16778 }); 16779 result.optionConfig.attributes = wrapper; 16780 } 16781 } 16782 16783 return result; 16784 } 16785 16786 window.addEventListener('alpine:init', () => { 16787 Alpine.data('initConfigurableSwatchOptions_43703', initConfigurableSwatchOptions_43703); 16788 }, { 16789 once: true 16790 }); 16791 </script>
16791 16792 16793 <div x-data="initConfigurableSwatchOptions_43703" x-defer="intersect"> 16794 <div class="pagebuilder-home-hidden"> 16795 16796 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 16797 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 16798 <template x-if="showSwatches"> 16799 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-43703-163" role="radiogroup" aria-label="Einband"> 16800 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 16801 <div :data-option-id="item.id" style="display: contents"> 16802 <div x-id="getSwatchOptionHtmlIdGroup"> 16803 <template x-if="optionIsEnabled"> 16804 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
16804self="unsetActiveTooltipItem"> 16805 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-43703-163"> 16806 <div> 16807 <template x-if="isTextSwatch"> 16808 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 16809 </template> 16810 <template x-if="!optionIsActive(163, item.id)"> 16811 <div> 16812 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 16813 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 16814 </svg> 16815 </div> 16816 </template> 16817 </div> 16818 </label> 16819 </template> 16820</div> </div> 16821 </template> 16822 </div> 16823 </template> 16824 </div> 16825 </div> 16826 </div> 16827 </div> 16828 16829 <div class="meta py-4 pagebuilder-home-hidden"> 16830 <div x-data="initMarketingShortText_43703()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 16831 <!-- Marketing short text --> 16832 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 16833 </div> 16834 16835 <!-- Short description --> 16836 <div class="short-description"> 16837 In vielen demokratischen Staaten brennt die Hütte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prekäre Arbeitsverhältnisse, wachsende Staatsschulden, ... <a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" class="underline">mehr</a> 16838 </div> 16839 </div> 16840 16841 <!-- Series --> 16842 <div class="mb-1"> 16843 <span class="sr-only">Reihe:</span> 16844 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 16845 <span>Blaue Reihe</span> 16846 </a> 16847 </div> 16848 16849 16850 <div class="mb-1"> 16851 <span x-data="initEditionText_43703()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 16852 <!-- Marketing short text --> 16853 <span class="edition-text" x-html="editionText"></span> 2026, 412 Seiten </span> 16854 </div> 16855 16856 </div> 16857 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 16858 16859 <div class="justify-end" x-data="initPriceBox()" @update-prices-43703.window="updatePrice($event.detail);"> 16860 <div class="price-box price-final_price" data-role="priceBox" data-product-id="43703" data-price-box="product-id-43703"><span class="normal-price"> 16861 <span x-data x-id="['product\u002Dprice\u002D43703']" class="price-container price-final_price tax weee"> 16862 <span class="price-label">Ab</span> 16863 <span class="approx-price">ca. </span> 16864 <span :id="$id('product\u002Dprice\u002D43703')" data-price-amount="21.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">21,99 €</span></span> 16865 </span> 16866</span> 16867 16868 16869</div> </div> 16870 16871 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 16872 <div class="open-access-container open-access-container-43703 flex mt-4 ml-auto sm:mt-0 hidden"> 16873 <div class="text-gray-700"> 16874 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 16875 <a href="" target="_blank" class="open-access-external-link m-auto "> 16876 Kostenlos online lesen </a> 16877 </button> 16878 </div> 16879 </div> 16880 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Schockierende Ungleichheit" aria-label="In den Warenkorb Schockierende Ungleichheit" data-addto="cart"> 16881 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 16882 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
168820 014 0z"></path> 16883</svg> 16884 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 16885 In den Warenkorb </span> 16886 </button> 16887 16888<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(43703)" aria-label="Zur Wunschliste hinzufügen Schockierende Ungleichheit" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 16889 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 16890 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 16891</svg> 16892</button> 16893 </div> 16894 </div> 16895 </div> 16896
16896<script> 16897 function initMarketingShortText_43703() { 16898 var marketingShortTextConfig = {}; 16899 if (typeof window.initConfigurableSwatchOptions_43703 === "function") { 16900 var fullConfig = window.initConfigurableSwatchOptions_43703().optionConfig 16901 var marketingShortTextConfig = fullConfig.marketing_short_text; 16902 } 16903 return { 16904 marketingShortText: '', 16905 config: marketingShortTextConfig, 16906 productId: '43703', 16907 getMarketingShortText(detail) { 16908 this.marketingShortText = detail.productIndex ? 16909 this.config[detail.productIndex] : 16910 null; 16911 }, 16912 eventListeners: { 16913 ['@listing-configurable-selection-changed.window'](event) { 16914 if (this.productId == event.detail.productId) { 16915 this.getMarketingShortText(event.detail); 16916 } 16917 16918 } 16919 } 16920 } 16921 } 16922 16923 function initEditionText_43703() { 16924 var editionTextConfig = {}; 16925 if (typeof window.initConfigurableSwatchOptions_43703 === "function") { 16926 var fullConfig = window.initConfigurableSwatchOptions_43703().optionConfig 16927 var editionTextConfig = fullConfig.edition; 16928 } 16929 return { 16930 editionText: '', 16931 config: editionTextConfig, 16932 productId: '43703', 16933 getEditionText(detail) { 16934 this.editionText = detail.productIndex ? 16935 this.config[detail.productIndex] : 16936 null; 16937 }, 16938 eventListeners: { 16939 ['@listing-configurable-selection-changed.window'](event) { 16940 if (this.productId == event.detail.productId) { 16941 this.getEditionText(event.detail); 16942 } 16943 16944 } 16945 } 16946 } 16947 } 16948 </script>
16948 16949 </form> 16950 16951 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46712/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21550"> 16952 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46712"> 16953 <a href="https://meiner.de/fmv_de/von-den-heroischen-leidenschaften-21550" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 16954 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46712.window="$el.src = $event.detail" alt="Von den heroischen Leidenschaften" title="Von den heroischen Leidenschaften" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351411_1.jpg" :style="{ 16955 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 16956 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 16957 }"> 16958 </a> 16959 <div class="product-info flex flex-col flex-grow "> 16960 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 16961 <div class="mb-2 text-sm text-gray-500 font-medium"> 16962 <a href="https://meiner.de/fmv_de/person/Giordano-Bruno-3772/" class="mb-2"> 16963 Giordano Bruno </a> 16964 </div> 16965 <a class="product-item-link" href="https://meiner.de/fmv_de/von-den-heroischen-leidenschaften-21550"> 16966 Von den heroischen Leidenschaften </a> 16967 </div> 16968 16969 <div x-data="initEditionText_46712()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 16970 <!-- Marketing short text --> 16971 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 16972 </div> 16973 </div> 16974 16975 <div class="py-1 grid mb-4 "> 16976 16977 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46712,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46712,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46694":"1"},"childProductsAlertStatus":{"46694":"0"},"indexMapping":{"163:11":46694},"availabilityMessages":{"46694":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46712":{"status":0},"46694":{"status":0}}},"availabilityMessages":{"46694":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46712":{"status":0},"46694":{"status":0}}}'> 16978 <template x-if="containerVisible"> 16979 <!-- Popup Trigger --> 16980 <div> 16981 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 16982 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
16983 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 16984 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 16985<title>bell</title></svg> 16986</span> 16987 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 16988 16989 <!-- Popup Modal --> 16990 <template x-if="showModal"> 16991 <template x-teleport=".page-wrapper"> 16992 <div x-cloak class="fixed inset-0 flex items-center justify-center 16993 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 16994 <div class="relative bg-white rounded-lg shadow-xl 16995 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 16996 <div class="p-6"> 16997 <!-- Subscription Form for Popup --> 16998 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 16999 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 17000 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 17001 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 17002 17003 <div class="flex flex-col gap-3"> 17004 <div class="flex-grow grow"> 17005 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 17006 shadow-xs focus:outline-none focus:outline-hidden 17007 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 17008 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 17009 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 17010 </div> 17011 <input type="hidden" name="product_id" :value="currentProductId"> 17012 <input type="hidden" name="type" value="email"> 17013 17014 17015 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 17016 17017 <div class="amxnotif_guest_action"> 17018 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 17019 rounded-md focus:outline-none 17020 focus:outline-hidden focus:ring-2 17021 focus:ring-offset-2 disabled:opacity-50 17022 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 17023 Benachrichtigen </button> 17024 </div> 17025 </div> 17026 17027 <div class="flex items-start pt-2"> 17028 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 17029 text-blue-600 border-gray-300 rounded-sm"> 17030 <label class="amxnotif-stock-gdrp-label cursor-pointer 17031 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 17032 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 17033 </div> 17034 </form> 17035 </div> 17036 17037 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 17038 hover:text-gray-600 transition-colors" aria-label="Schließen"> 17039 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 17040 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 17041<title>x</title></svg> 17042 </button> 17043 </div> 17044 </div> 17045 </template> 17046 </template> 17047 </div> 17048 </template> 17049 </div> 17050 17051<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46712" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46712,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46694":"1"},"childProductsAlertStatus":{"46694":"0"},"indexMapping":"{\u0022163:11\u0022:46694}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46712,"availabilityMessages":{"46694":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46712":{"status":0}
17051,"46694":{"status":0}}}'> 17052 17053 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 17054 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 17055 <span x-html="optionsLabelText"></span> 17056 </p> 17057</div> </div> 17058 17059
17059<script> 17060 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 17061 try { 17062 const attributes = (config && config.attributes) ? config.attributes : null; 17063 if (!attributes) return []; 17064 let attr = null; 17065 if (Array.isArray(attributes)) { 17066 for (let i = 0; i < attributes.length; i++) { 17067 const a = attributes[i]; 17068 if (a && a.id == attrId) { 17069 attr = a; 17070 break; 17071 } 17072 } 17073 } else { 17074 attr = attributes[attrId]; 17075 } 17076 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 17077 } catch (e) { 17078 return []; 17079 } 17080 }; 17081 17082 function initConfigurableSwatchOptions_46712() { 17083 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["46694"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46694":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":91.588784046729},"finalPrice":{"amount":98},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":82.352940176471},"finalPrice":{"amount":98},"isApproxPrice":null},"productId":"46712","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46694":{"163":"11"}},"salable":{"163":{"11":["46694"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46694":"005141"},"output":{"46694":"Gebunden"},"original_name":{"46694":"De gl\u2019heroici furori"},"openaccess_license_link":{"46694":""},"openaccess_license_name":{"46694":""},"openaccess_external_link":{"46694":""},"gpsr_safety_info":{"46694":""},"description":{"46694":"Die Heroischen Leidenschaften, \u00bbDe gl\u2019heroici furori\u00ab, sind der letzte der in italienischer Sprache geschriebenen Dialoge Brunos, die s\u00e4mtlich zwischen 1583 und 1585 in England verfasst wurden. Sie k\u00f6nnen nicht nur als H\u00f6he- und Kulminationspunkt des brunianischen \u0152uvres insgesamt gelten, sondern zugleich als ein Werk, in dem sich wie in einem Brennspiegel Philosopheme des ausgehenden Mittelalters und der Fr\u00fchen Neuzeit b\u00fcndeln und in neue Konstellationen treten.<br\/><br\/>Der Text dieses Bandes folgt seitenidentisch Bd. 7 der Ausgabe \u00bbGiordano Bruno Werke\u00ab, herausgegeben von Thomas Leinkauf."},"doi":{"46694":""},"isbn":{"46694":"978-3-7873-5141-1"},"marketing_short_text":{"46694":""},"recension_text":{"46694":""},"language":{"46694":""},"cover":{"46694":"Gebunden"},"pages":{"46694":"CXL, 711 Seiten."},"edition":{"46694":""},"pod":{"46694":"Nein"},"copyright_year":{"46694":""},"vlb_tix_link":{"46694":"https:\/\/neu.vlbtix.de\/products\/9783787351411?type=gtin"},"defaultValues":{"163":"11"}}; 17084 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 17085 17086 if (typeof window.amxnotif_wrap_attributes === 'function') { 17087 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 17088 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 17089 } 17090 17091 const configurableOptionsComponent = initConfigurableOptions( 17092 '46712', 17093 config 17094 ); 17095 const swatchOptionsComponent = initSwatchOptions( 17096 swatchConfig 17097 ); 17098 17099 // DWS - Configurable product preselect start 17100 const confProdPreSelect = () => { 17101 return { 17102 preselectQuerystringItems() { 17103 var data = {"id":"46694","output":"11"}; 17104 const urlQueryParams = new URLSearchParams(window.location.search); 17105 17106 this.$nextTick(() => { 17107 setTimeout(() => { 17108 const rootEl = this.$root || this.$el; 17109 if (!rootEl) return; 17110 17111 const applySelection = (attrCode, attrValue) => { 17112 if (attrValue === undefined || attrValue === null || attrValue === '') return; 17113 17114 const attributes = Object.values(this.optionConfig.attributes || {}); 17115 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 17116 17117 if (targetAttr) { 17118 const attrId = String(targetAttr.id); 17119 const optionVal = String(attrValue); 17120 17121 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 17122 17123 if (inputEl) { 17124 inputEl.click(); 17125 inputEl.dispatchEvent(new Event('change', { 17126 bubbles: true 17127 })); 17128 } else { 17129 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 17130 if (selectEl) { 17131 selectEl.value = optionVal; 17132 selectEl.dispatchEvent(new Event('change', { 17133 bubbles: true 17134 })); 17135 } 17136 } 17137 17138 this.changeOption(attrId, optionVal, false); 17139 } 17140 }; 17141 17142 if (data && typeof data === 'object') {
17143 Object.keys(data).forEach(key => applySelection(key, data[key])); 17144 } 17145 17146 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 17147 if (attribute && attribute.code) { 17148 let optionValue = urlQueryParams.get(attribute.code); 17149 if (optionValue) { 17150 let optionId = false; 17151 const attributes = Object.values(this.optionConfig.attributes || {}); 17152 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 17153 17154 let found = false; 17155 Object.values(targetAttr.options).map(option => { 17156 if (found === false && option.label === optionValue) { 17157 optionId = option.id; 17158 found = true; 17159 } 17160 }); 17161 17162 const attrId = String(targetAttr.id); 17163 let optionVal = String(optionValue); 17164 if (found) { 17165 optionVal = String(optionId); 17166 } 17167 17168 applySelection(attribute.code, optionVal); 17169 } 17170 } 17171 }); 17172 }, 100); 17173 }); 17174 } 17175 } 17176 }; 17177 // DWS - Configurable product preselect end 17178 17179 const result = Object.assign( 17180 configurableOptionsComponent, 17181 swatchOptionsComponent, { 17182 productId: '46712', 17183 productIndex: 0, 17184 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 17185 showSwatches: false, 17186 precalcOptions: {}, 17187 originalInit: configurableOptionsComponent.init, 17188 init() { 17189 try { 17190 this.precalcOptions = {}; 17191 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 17192 this.preselectQuerystringItems(); 17193 if (Array.isArray(attrSource)) { 17194 attrSource.forEach(attr => { 17195 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 17196 }); 17197 } else if (attrSource && typeof attrSource === 'object') { 17198 Object.keys(attrSource).forEach(id => { 17199 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 17200 }); 17201 } 17202 } catch (e) { 17203 console.error('Pre-calc error:', e); 17204 } 17205 17206 if (typeof this.originalInit === 'function') { 17207 this.originalInit(); 17208 } 17209 17210 try { 17211 this.initShowSwatchesIntersect(); 17212 } catch (e) { 17213 console.error('intersect error:', e); 17214 } 17215 }, 17216 17217 updateGallery() { 17218 if (!this.productIndex) return; 17219 17220 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 17221 method: 'GET', 17222 headers: { 17223 'Content-Type': 'application/json', 17224 'X-Requested-With': 'XMLHttpRequest' 17225 } 17226 }) 17227 .then(response => response.json()) 17228 .then(data => { 17229 if (data && data.medium) { 17230 window.dispatchEvent(new CustomEvent("update-gallery-46712", { 17231 detail: data.medium 17232 })); 17233 } 17234 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 17235 }, 17236 17237 17238 initShowSwatchesIntersect() { 17239 const observer = new IntersectionObserver(entries => { 17240 if (entries[0].isIntersecting) { 17241 this.showSwatches = true; 17242 observer.disconnect(); 17243 } 17244 }, { 17245 rootMargin: '512px' 17246 }); 17247 observer.observe(this.$el); 17248 }, 17249 getOptions(attrId) { 17250 return this.precalcOptions[attrId] || []; 17251 }, 17252 getOptionsByAttrId() { 17253 return this.getOptions(this.$el.dataset.attributeId); 17254 }, 17255 _getItemId() { 17256 if (this.item && this.item.id) return this.item.id; 17257 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 17258 }, 17259 getSwatchOptionHtmlId() { 17260 const itemId = this._getItemId(); 17261 return itemId ? this.$id(`attribute-option-46712-${itemId}`) : ''; 17262 }, 17263 getSwatchOptionHtmlIdGroup() { 17264 const itemId = this._getItemId(); 17265 return itemId ? [`attribute-option-46712-${itemId}`] : []; 17266 }, 17267 getAttributeSwatchData(attributeId) { 17268 const data = Object.assign({}, this.swatchConfig[attributeId]); 17269 if (data['additional_data']) { 17270 try { 17271 data['details'] = JSON.parse(data['additional_data']); 17272 } catch (e) { 17273 data['details'] = {}; 17274 } 17275 } 17276 return data; 17277 }, 17278 getSwatchType(attributeId, optionId) { 17279 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 17280 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 17281 } 17282 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 17283 this.swatchConfig[attributeId].details.swatch_input_type : 17284 "empty"; 17285 if (type === 'visual') { 17286 const config = this.swatchConfig[attributeId]; 17287 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 17288 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 17289 } 17290 // Fallback to first option type 17291 for (const oId in config) { 17292 if (config[oId] && typeof config[oId].type !== 'undefined') { 17293 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 17294 } 17295 } 17296 } 17297 return type; 17298 }, 17299 mapSwatchTypeNumberToTypeCode(type) { 17300 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 17301 }, 17302 isTextSwatch() { 17303 const itemId = this._getItemId(); 17304 if (!this.$el || !itemId) return false;
17305 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17306 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 17307 }, 17308 17309 getSwatchText() { 17310 const itemId = this._getItemId(); 17311 if (this.item) return this.item.label || ''; 17312 if (!this.$el || !itemId) return ''; 17313 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17314 const options = attrId ? this.getOptions(attrId) : []; 17315 const opt = options.find(o => o.id == itemId); 17316 return opt ? opt.label : ''; 17317 }, 17318 getSwatchBackgroundStyle() { 17319 const itemId = this._getItemId(); 17320 if (!this.$el || !itemId) return ''; 17321 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17322 if (!attrId) return ''; 17323 const type = this.getSwatchType(attrId, itemId); 17324 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 17325 this.swatchConfig[attrId][itemId] : 17326 null; 17327 if (!swatchData) return ''; 17328 if (type === "color") return 'background-color:' + swatchData.value; 17329 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 17330 return ''; 17331 }, 17332 swatchOptionClasses() { 17333 const itemId = this._getItemId(); 17334 if (!this.$el || !itemId) return {}; 17335 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17336 return { 17337 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 17338 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 17339 'w-6 h-6': !this.isTextSwatch() 17340 } 17341 }, 17342 17343 onFocusSwatchItem() { 17344 const itemId = this._getItemId(); 17345 if (itemId) this.focusedLabel = itemId; 17346 }, 17347 onChangeOption() { 17348 const itemId = this._getItemId(); 17349 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 17350 if (attrId && itemId) this.changeOption(attrId, itemId); 17351 }, 17352 changeOption(attributeId, value) { 17353 if (value === '') { 17354 return; 17355 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 17356 } else { 17357 this.selectedValues[attributeId] = value; 17358 } 17359 17360 this.findSimpleIndex(); 17361 this.findAllowedAttributeOptions(); 17362 this.updatePrices(); 17363 this.updateGallery(); 17364 17365 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 17366 this.findProductIdsForPartialSelection(this.selectedValues) : []; 17367 17368 const eventDetail = { 17369 productId: this.productId, 17370 optionId: attributeId, 17371 value: value, 17372 productIndex: this.productIndex || 0, 17373 selectedValues: this.selectedValues, 17374 candidates: candidates, 17375 sourceElement: this.$el 17376 }; 17377 17378 // Dispatch for Amasty 17379 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 17380 detail: eventDetail 17381 })); 17382 17383 // Dispatch for Hyva listing 17384 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 17385 detail: eventDetail 17386 })); 17387 }, 17388 17389 17390 clearOptionIfActive() { 17391 const itemId = this._getItemId(); 17392 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 17393 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 17394 this.changeOption(attrId, ''); 17395 17396 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 17397 if (!input && this.$el?.querySelector) { 17398 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 17399 } 17400 if (!input && this.$el?.closest) { 17401 const root = this.$el.closest('[data-product-id]') || this.$el; 17402 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 17403 } 17404 if (input) { 17405 input.checked = false;
17406 } 17407 } 17408 }, 17409 get optionIsEnabled() { 17410 const itemId = this._getItemId(); 17411 if (!this.$el || !itemId) return true; 17412 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17413 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 17414 return !!allowedOptions.find(opt => opt.id == itemId); 17415 }, 17416 get isSelected() { 17417 const itemId = this._getItemId(); 17418 if (!this.$el || !itemId) return false; 17419 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17420 return attrId ? (this.selectedValues[attrId] == itemId) : false; 17421 }, 17422 get isSwatchRequired() { 17423 if (!this.$el) return false; 17424 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17425 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 17426 }, 17427 focusedLabel: false, 17428 activeTooltipItem: false, 17429 tooltipPositionElement: false,
17430 setActiveTooltipItem() { 17431 const itemId = this._getItemId(); 17432 if (!this.$el || !itemId) return; 17433 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 17434 this.activeTooltipItem = { 17435 attribute: attrId, 17436 item: itemId, 17437 index: 0 17438 }; 17439 this.tooltipPositionElement = this.$event ? this.$event.target : null; 17440 }, 17441 unsetActiveTooltipItem() { 17442 this.activeTooltipItem = false; 17443 } 17444 }, 17445 confProdPreSelect() 17446 ); 17447 17448 if (result.optionConfig && result.optionConfig.attributes) { 17449 const attributes = result.optionConfig.attributes; 17450 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 17451 let source = attributes; 17452 if (Array.isArray(attributes)) { 17453 source = {}; 17454 attributes.forEach(attr => { 17455 if (attr && attr.id) source[attr.id] = attr; 17456 }); 17457 } 17458 const values = Object.values(source); 17459 const wrapper = Object.assign(values, source); 17460 Object.defineProperty(wrapper, '__amxnotifWrapped', { 17461 value: true, 17462 enumerable: false 17463 }); 17464 result.optionConfig.attributes = wrapper; 17465 } 17466 } 17467 17468 return result; 17469 } 17470 17471 window.addEventListener('alpine:init', () => { 17472 Alpine.data('initConfigurableSwatchOptions_46712', initConfigurableSwatchOptions_46712); 17473 }, { 17474 once: true 17475 }); 17476 </script>
17476 17477 17478 <div x-data="initConfigurableSwatchOptions_46712" x-defer="intersect"> 17479 <div class="pagebuilder-home-hidden"> 17480 17481 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 17482 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 17483 <template x-if="showSwatches"> 17484 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46712-163" role="radiogroup" aria-label="Einband"> 17485 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 17486 <div :data-option-id="item.id" style="display: contents"> 17487 <div x-id="getSwatchOptionHtmlIdGroup"> 17488 <template x-if="optionIsEnabled"> 17489 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
17489self="unsetActiveTooltipItem"> 17490 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46712-163"> 17491 <div> 17492 <template x-if="isTextSwatch"> 17493 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 17494 </template> 17495 <template x-if="!optionIsActive(163, item.id)"> 17496 <div> 17497 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 17498 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 17499 </svg> 17500 </div> 17501 </template> 17502 </div> 17503 </label> 17504 </template> 17505</div> </div> 17506 </template> 17507 </div> 17508 </template> 17509 </div> 17510 </div> 17511 </div> 17512 </div> 17513 17514 <div class="meta py-4 pagebuilder-home-hidden"> 17515 <div x-data="initMarketingShortText_46712()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 17516 <!-- Marketing short text --> 17517 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 17518 </div> 17519 17520 <!-- Short description --> 17521 <div class="short-description"> 17522 Die Heroischen Leidenschaften, »De gl’heroici furori«, sind der letzte der in italienischer Sprache geschriebenen Dialoge Brunos, die sämtlich zwischen 1583 und 1585 in England verfasst wurden. ... <a href="https://meiner.de/fmv_de/von-den-heroischen-leidenschaften-21550" class="underline">mehr</a> 17523 </div> 17524 </div> 17525 17526 <!-- Series --> 17527 <div class="mb-1"> 17528 <span class="sr-only">Reihe:</span> 17529 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 17530 <span>Philosophische Bibliothek</span> 17531 </a> 17532 796 </div> 17533 17534 17535 <div class="mb-1"> 17536 <span x-data="initEditionText_46712()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 17537 <!-- Marketing short text --> 17538 <span class="edition-text" x-html="editionText"></span> 2026, CXL, 711 Seiten. </span> 17539 </div> 17540 17541 </div> 17542 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 17543 17544 <div class="justify-end" x-data="initPriceBox()" @update-prices-46712.window="updatePrice($event.detail);"> 17545 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46712" data-price-box="product-id-46712"><span class="normal-price"> 17546 <span x-data x-id="['product\u002Dprice\u002D46712']" class="price-container price-final_price tax weee"> 17547 <span class="price-label">Ab</span> 17548 <span class="approx-price">ca. </span>
17549 <span :id="$id('product\u002Dprice\u002D46712')" data-price-amount="98" data-price-type="finalPrice" class="price-wrapper "><span class="price">98,00 €</span></span> 17550 </span> 17551</span> 17552 17553 17554</div> </div> 17555 17556 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 17557 <div class="open-access-container open-access-container-46712 flex mt-4 ml-auto sm:mt-0 hidden"> 17558 <div class="text-gray-700"> 17559 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 17560 <a href="" target="_blank" class="open-access-external-link m-auto "> 17561 Kostenlos online lesen </a> 17562 </button> 17563 </div> 17564 </div> 17565 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Von den heroischen Leidenschaften" aria-label="In den Warenkorb Von den heroischen Leidenschaften" data-addto="cart"> 17566 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 17567 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 17568</svg> 17569 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 17570 In den Warenkorb </span> 17571 </button> 17572 17573<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46712)" aria-label="Zur Wunschliste hinzufügen Von den heroischen Leidenschaften" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 17574 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 17575 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 17576</svg> 17577</button> 17578 </div> 17579 </div> 17580 </div> 17581
17581<script> 17582 function initMarketingShortText_46712() { 17583 var marketingShortTextConfig = {}; 17584 if (typeof window.initConfigurableSwatchOptions_46712 === "function") { 17585 var fullConfig = window.initConfigurableSwatchOptions_46712().optionConfig 17586 var marketingShortTextConfig = fullConfig.marketing_short_text; 17587 } 17588 return { 17589 marketingShortText: '', 17590 config: marketingShortTextConfig, 17591 productId: '46712', 17592 getMarketingShortText(detail) { 17593 this.marketingShortText = detail.productIndex ? 17594 this.config[detail.productIndex] : 17595 null; 17596 }, 17597 eventListeners: { 17598 ['@listing-configurable-selection-changed.window'](event) { 17599 if (this.productId == event.detail.productId) { 17600 this.getMarketingShortText(event.detail); 17601 } 17602 17603 } 17604 } 17605 } 17606 } 17607 17608 function initEditionText_46712() { 17609 var editionTextConfig = {}; 17610 if (typeof window.initConfigurableSwatchOptions_46712 === "function") { 17611 var fullConfig = window.initConfigurableSwatchOptions_46712().optionConfig 17612 var editionTextConfig = fullConfig.edition; 17613 } 17614 return { 17615 editionText: '', 17616 config: editionTextConfig, 17617 productId: '46712', 17618 getEditionText(detail) { 17619 this.editionText = detail.productIndex ? 17620 this.config[detail.productIndex] : 17621 null; 17622 }, 17623 eventListeners: { 17624 ['@listing-configurable-selection-changed.window'](event) { 17625 if (this.productId == event.detail.productId) { 17626 this.getEditionText(event.detail); 17627 } 17628 17629 } 17630 } 17631 } 17632 } 17633 </script>
17633 17634 </form> 17635 </div> 17636 17637<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 17638 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 17639 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 17640 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 17641</svg> 17642 </button> 17643 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 17644 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 17645 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 17646 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 17647</svg> 17648 </button> 17649</div> 17650 </div> 17651</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="QXPL12C"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block"> 17652 <style>.cmsb221-p-5 { 17653padding: 1.25rem 17654}</style> 17655<style>#html-body [data-pb-style=DUCTUT8],#html-body [data-pb-style=TRWA7Q5],#html-body [data-pb-style=UVUU7SS]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=TRWA7Q5]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=DUCTUT8],#html-body [data-pb-style=UVUU7SS]{align-self:stretch}#html-body [data-pb-style=FFPQP3K],#html-body [data-pb-style=GGJKXFA]{display:flex;width:100%}#html-body [data-pb-style=JKFFOWB],#html-body [data-pb-style=YFYQ46M]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;align-self:stretch}#html-body [data-pb-style=JKFFOWB]{width:16.6667%;padding:20px}#html-body [data-pb-style=AX47VIA]{width:33.3333%}#html-body [data-pb-style=ATSD6B9],#html-body [data-pb-style=AX47VIA],#html-body [data-pb-style=JETSG7K],#html-body [data-pb-style=M916TWJ],#html-body [data-pb-style=P64T4DU],#html-body [data-pb-style=SJLURGH]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=SJLURGH]{width:16.6667%;padding:20px}#html-body [data-pb-style=ATSD6B9],#html-body [data-pb-style=JETSG7K],#html-body [data-pb-style=M916TWJ],#html-body [data-pb-style=P64T4DU]{width:33.3333%}#html-body [data-pb-style=ATSD6B9],#html-body [data-pb-style=M916TWJ],#html-body [data-pb-style=P64T4DU]{width:16.6667%}#html-body [data-pb-style=ATSD6B9],#html-body [data-pb-style=M916TWJ]{width:33.3333%}#html-body [data-pb-style=M916TWJ]{width:16.6667%;padding:20px}#html-body [data-pb-style=FPWQ5RG]{text-align:center;border-style:none}#html-body [data-pb-style=JW7P663],#html-body [data-pb-style=X7T6QNN]{max-width:100%;height:auto}#html-body [data-pb-style=TR6AC6Q]{text-align:center;border-style:none}#html-body [data-pb-style=S7HFVFK],#html-body [data-pb-style=VEEPWHT]{max-width:100%;height:auto}#html-body [data-pb-style=JOOBUVO]{text-align:center;border-style:none}#html-body [data-pb-style=DUBXDKE],#html-body [data-pb-style=IOE1KTS]{max-width:100%;height:auto}#html-body [data-pb-style=E6JP6SO]{text-align:center;border-style:none}#html-body [data-pb-style=DSC0SG6],#html-body [data-pb-style=F8IDGAX]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=E6JP6SO],#html-body [data-pb-style=FPWQ5RG],#html-body [data-pb-style=JOOBUVO],#html-body [data-pb-style=TR6AC6Q]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="TRWA7Q5"><h2 data-content-type="heading" data-appearance="default" data-element="main">Unsere Bücher in der Presse</h2><div class="pagebuilder-column-group card cmsb221-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="UVUU7SS"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="GGJKXFA"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="YFYQ46M"><div data-content-type="text" data-appearance="default" data-element="main"><h5 id="SR33SIE">Heiko Christians: Über die Gefahr</h5> 17656<blockquote>»Christians hat ein kleines Büchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.«</blockquote> 17657<p style="text-align: right;"><em>Frankfurter Rundschau</em></p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="JKFFOWB"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="FPWQ5RG"><a href="/a-ber-die-gefahr-21363" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787350988_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="desktop_image" data-pb-style="X7T6QNN"><img class="pagebuilder-mobile-only" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787350988_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="mobile_image" data-pb-style="JW7P663"></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="AX47VIA"><div data-content-type="text" data-appearance="default" data-element="main"><h5>Hans Vaihinger: Die Philosophie des Als Ob</h5> 17658<blockquote> 17659<p>»Es ist ein großer Verdienst des Meiner-Verlags, diese Ausgabe der breiten Öffentlichkeit mit der klugen Einführung von Hartung zugänglich zu machen. Auch wenn Theorien scheitern, kann die Lust am Philosophieren wachsen. Und was bräuchten wir heute mehr als Leute, die sich gerne den Kopf zerbrechen?«</p> 17660</blockquote> 17661<p style="text-align: right;"><em>Michael Hesse, Frankfurter Rundschau</em></p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="SJLURGH"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="TR6AC6Q"><a href="/die-philosophie-des-als-ob-19837" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787350155_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="desktop_image" data-pb-style="S7HFVFK"><img class="pagebuilder-mobile-only" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787350155_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="mobile_image" data-pb-style="VEEPWHT"></a></figure></div></div></div><div class="pagebuilder-column-group card cmsb221-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="DUCTUT8"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="FFPQP3K"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="JETSG7K"><div data-content-type="text" data-appearance="default" data-element="main"><h5>Mirjam Schaub: Radikalität</h5> 17662<blockquote>»Stilistisch ist das Werk ein Genuss. Schaub meidet den trockenen Jargon des Elfenbeinturms, ohne an analytischer Schärfe zu verlieren. Sie schreibt essayistisch, oft pointiert, bisweilen mit feiner Ironie.«</blockquote> 17663<p id="B020V96" style="text-align: right;"><em>der blaue reiter</em></p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="P64T4DU"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="JOOBUVO"><a href="/radikalita-t-set-band-1-2-20119" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787349388_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="desktop_image" data-pb-style="IOE1KTS"><img class="pagebuilder-mobile-only" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787349388_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="mobile_image" data-pb-style="DUBXDKE"></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="ATSD6B9"><div data-content-type="text" data-appearance="default" data-element="main"><h5>Matthias Perkams: Philosophie in der Antike</h5> 17664<blockquote>»Ein Nachschlagewerk par excellence, das Interessierte aber immer auch dazu motiviert, noch ein wenig mehr zu lesen, ein wenig weiterzublättern und zu vertiefen, was gerade den Anstoß gab, um das Buch in die Hand zu nehmen.«</blockquote> 17665<p style="text-align: right;"><em>Mannheimer Morgen</em></p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="M916TWJ"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="E6JP6SO"><a href="/philosophie-in-der-antike" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787342297_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="desktop_image" data-pb-style="F8IDGAX"><img class="pagebuilder-mobile-only" src="https://meiner.de/media/wysiwyg/FMV/Cover/9783787342297_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="150" height="" data-element="mobile_image" data-pb-style="DSC0SG6"></a></figure></div></div></div></div></div></div> 17666</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="BE6DLBB"><h3 data-content-type="heading" data-appearance="default" data-element="main">Demokratie unter Beschuss</h3><div class="pagebuilder-column-group card cmsp2-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="DQURHCH"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="SUCVL14"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="HJDB5GU"><div data-content-type="text" data-appearance="default" data-element="main"><p>Demokratie lebt von Freiheit und Gleichheit, von offenem Diskurs und Teilhabe. Wo soziale Ungleichheit wächst, Debatten verrohen oder Freiheitsrechte infrage gestellt werden, wird Demokratie verletzlich. <br>Die hier versammelten Titel aus der Blauen Reihe fragen nach diesen Voraussetzungen – und danach, was demokratische Gesellschaften heute gefährdet und was sie stä
17666rken kann.</p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="GSST2UT"><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carousel"> 17667 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 17668 17669 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4213/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk13612"> 17670 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4213"> 17671 <a href="https://meiner.de/fmv_de/unterdra-ckung-durch-begla-ckung-13612" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 17672 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4213.window="$el.src = $event.detail" alt="Unterdrückung durch Beglückung" title="Unterdrückung durch Beglückung" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787343751_3.jpg" :style="{ 17673 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 17674 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 17675 }"> 17676 </a> 17677 <div class="product-info flex flex-col flex-grow "> 17678 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 17679 <div class="mb-2 text-sm text-gray-500 font-medium"> 17680 <a href="https://meiner.de/fmv_de/person/Ulrich-Steinvorth-13613/" class="mb-2"> 17681 Ulrich Steinvorth </a> 17682 </div> 17683 <a class="product-item-link" href="https://meiner.de/fmv_de/unterdra-ckung-durch-begla-ckung-13612"> 17684 Unterdrückung durch Beglückung </a> 17685 </div> 17686 17687 <div x-data="initEditionText_4213()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 17688 <!-- Marketing short text --> 17689 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 17690 </div> 17691 </div> 17692 17693 <div class="py-1 grid mb-4 "> 17694 17695 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4213,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4213,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8166":"1","8208":"1","8212":"1"},"childProductsAlertStatus":{"8166":"0","8208":"0","8212":"0"},"indexMapping":{"163:15":8166,"163:8":8208,"163:9":8212},"availabilityMessages":{"8166":"Lieferbar innerhalb von 3-5 Tagen","8208":"Download sofort verf\u00fcgbar","8212":"Download sofort verf\u00fcgbar"},"openAccess":{"4213":{"status":0},"8166":{"status":0},"8208":{"status":0},"8212":{"status":0}}},"availabilityMessages":{"8166":"Lieferbar innerhalb von 3-5 Tagen","8208":"Download sofort verf\u00fcgbar","8212":"Download sofort verf\u00fcgbar"},"openAccess":{"4213":{"status":0},"8166":{"status":0},"8208":{"status":0},"8212":{"status":0}}}'> 17696 <template x-if="containerVisible"> 17697 <!-- Popup Trigger --> 17698 <div> 17699 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 17700 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
17701 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 17702 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 17703<title>bell</title></svg> 17704</span> 17705 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 17706 17707 <!-- Popup Modal --> 17708 <template x-if="showModal"> 17709 <template x-teleport=".page-wrapper"> 17710 <div x-cloak class="fixed inset-0 flex items-center justify-center 17711 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 17712 <div class="relative bg-white rounded-lg shadow-xl 17713 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 17714 <div class="p-6"> 17715 <!-- Subscription Form for Popup --> 17716 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 17717 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 17718 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 17719 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 17720 17721 <div class="flex flex-col gap-3"> 17722 <div class="flex-grow grow"> 17723 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 17724 shadow-xs focus:outline-none focus:outline-hidden 17725 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 17726 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 17727 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 17728 </div> 17729 <input type="hidden" name="product_id" :value="currentProductId"> 17730 <input type="hidden" name="type" value="email"> 17731 17732 17733 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 17734 17735 <div class="amxnotif_guest_action"> 17736 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 17737 rounded-md focus:outline-none 17738 focus:outline-hidden focus:ring-2 17739 focus:ring-offset-2 disabled:opacity-50 17740 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 17741 Benachrichtigen </button> 17742 </div> 17743 </div> 17744 17745 <div class="flex items-start pt-2"> 17746 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 17747 text-blue-600 border-gray-300 rounded-sm"> 17748 <label class="amxnotif-stock-gdrp-label cursor-pointer 17749 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 17750 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 17751 </div> 17752 </form> 17753 </div> 17754 17755 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 17756 hover:text-gray-600 transition-colors" aria-label="Schließen"> 17757 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 17758 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 17759<title>x</title></svg> 17760 </button> 17761 </div> 17762 </div> 17763 </template> 17764 </template> 17765 </div> 17766 </template> 17767 </div> 17768 17769<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4213" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4213,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8166":"1","8208":"1","8212":"1"},"childProductsAlertStatus":{"8166":"0","8208":"0","8212":"0"},"indexMapping":"{\u0022163:15\u0022:8166,\u0022163:8\u0022:8208,\u0022163:9\u0022:8212}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4213,"availabilityMessages":{"8166":"Lieferbar innerhalb von 3-5 Tagen","8208":"Download sofort verf\u00fcgbar","8212":"Download sofort verf\u00fcgbar"},"openAccess":{"4213":{"status":0},"8166":{"status":0},"8208":{"status":0},"8212":{"status":0}}}'> 17770 17771 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
17772 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 17773 <span x-html="optionsLabelText"></span> 17774 </p> 17775</div> </div> 17776 17777
17777<script> 17778 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 17779 try { 17780 const attributes = (config && config.attributes) ? config.attributes : null; 17781 if (!attributes) return []; 17782 let attr = null; 17783 if (Array.isArray(attributes)) { 17784 for (let i = 0; i < attributes.length; i++) { 17785 const a = attributes[i]; 17786 if (a && a.id == attrId) { 17787 attr = a; 17788 break; 17789 } 17790 } 17791 } else { 17792 attr = attributes[attrId]; 17793 } 17794 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 17795 } catch (e) { 17796 return []; 17797 } 17798 }; 17799 17800 function initConfigurableSwatchOptions_4213() { 17801 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["8166"]},{"id":"8","label":"PDF","products":["8208"]},{"id":"9","label":"EPUB","products":["8212"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"8166":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"8208":{"baseOldPrice":{"amount":21.485980308411},"oldPrice":{"amount":22.99},"basePrice":{"amount":21.485980308411},"finalPrice":{"amount":22.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"8212":{"baseOldPrice":{"amount":21.485980308411},"oldPrice":{"amount":22.99},"basePrice":{"amount":21.485980308411},"finalPrice":{"amount":22.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":21.485980308411},"oldPrice":{"amount":22.99},"basePrice":{"amount":21.485980308411},"finalPrice":{"amount":22.99},"isApproxPrice":null},"productId":"4213","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"8166":{"163":"15"},"8208":{"163":"8"},"8212":{"163":"9"}},"salable":{"163":{"15":["8166"],"8":["8208"],"9":["8212"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"8166":"004335","8208":"004336","8212":"004375"},"output":{"8166":"Kartoniert","8208":"PDF","8212":"EPUB"},"original_name":{"8166":"","8208":"","8212":""},"openaccess_license_link":{"8166":"","8208":"","8212":""},"openaccess_license_name":{"8166":"","8208":"","8212":""},"openaccess_external_link":{"8166":"","8208":"","8212":""},"gpsr_safety_info":{"8166":"","8208":"","8212":""},"description":{"8166":"Was ist eine Demokratie, und wann ist sie liberal? Ist Politik legitim, wenn sie der Volkssouver\u00e4nit\u00e4t oder wenn sie den Menschenrechten entspricht? Was kann und was sollte man von der Politik erwarten, was ist \u00fcberhaupt Politik? Ulrich Steinvorth sucht in diesem Buch neue Antworten auf diese in der gegenw\u00e4rtigen politischen Lage brandaktuellen Fragen. <br\/><br\/>Ausgehend von Aldous Huxleys Fabel \u00bbBrave New World\u00ab, die eine Gesellschaft beschreibt, in der eine Minderheit mit technischen Mitteln die Mehrheit so manipuliert, dass sie ihre Unterdr\u00fcckung als Begl\u00fcckung empfindet und selbst Menschenrechtsverletzungen hinnimmt, wirft Steinvorth die oft gestellte Grundsatzfrage auf, was \u00fcberhaupt Politik oder das Politische ist. Er unterscheidet das (am Gesellschaftsvertrag und an Nutzenmaximierung orientierte) \u00f6konomische vom (nicht an Nutzenmaximierung orientierten) politischen Modell als den beiden wichtigsten Theorieans\u00e4tzen in der politischen Theorie und kritisiert das \u00f6konomische Modell in seiner vermutlich st\u00e4rksten Form, n\u00e4mlich in der, die John Rawls ihm gegeben hat. <br\/><br\/>Rawls verlangt von der Politik den Schutz der Selbstachtung aller, den nur eigengesetzliche Subgesellschaften geben k\u00f6nnen, wie Locke den Schutz der eigengesetzlichen Familie und Wirtschaft. Den Schutz eigengesetzlicher Gesellschaftssph\u00e4ren finden wir als Ziel der Politik auch bei Hegel und, in ausbauf\u00e4higer und auf gegebene politische Aufgaben anwendbarer Form, bei Max Weber. Dessen Wertsph\u00e4ren macht Steinvorths Buch, mit Anleihen bei so verschiedenen Autoren wie Aristoteles und Csikszentmihalyi, zur Grundlage seiner politischen Theorie.","8208":"Was ist eine Demokratie, und wann ist sie liberal? Ist Politik legitim, wenn sie der Volkssouver\u00e4nit\u00e4t oder wenn sie den Menschenrechten entspricht? Was kann und was sollte man von der Politik erwarten, was ist \u00fcberhaupt Politik? Ulrich Steinvorth sucht in diesem Buch neue Antworten auf diese in der gegenw\u00e4rtigen politischen Lage brandaktuellen Fragen. <br\/><br\/>
17801Ausgehend von Aldous Huxleys Fabel \u00bbBrave New World\u00ab, die eine Gesellschaft beschreibt, in der eine Minderheit mit technischen Mitteln die Mehrheit so manipuliert, dass sie ihre Unterdr\u00fcckung als Begl\u00fcckung empfindet und selbst Menschenrechtsverletzungen hinnimmt, wirft Steinvorth die oft gestellte Grundsatzfrage auf, was \u00fcberhaupt Politik oder das Politische ist. Er unterscheidet das (am Gesellschaftsvertrag und an Nutzenmaximierung orientierte) \u00f6konomische vom (nicht an Nutzenmaximierung orientierten) politischen Modell als den beiden wichtigsten Theorieans\u00e4tzen in der politischen Theorie und kritisiert das \u00f6konomische Modell in seiner vermutlich st\u00e4rksten Form, n\u00e4mlich in der, die John Rawls ihm gegeben hat. <br\/><br\/>Rawls verlangt von der Politik den Schutz der Selbstachtung aller, den nur eigengesetzliche Subgesellschaften geben k\u00f6nnen, wie Locke den Schutz der eigengesetzlichen Familie und Wirtschaft. Den Schutz eigengesetzlicher Gesellschaftssph\u00e4ren finden wir als Ziel der Politik auch bei Hegel und, in ausbauf\u00e4higer und auf gegebene politische Aufgaben anwendbarer Form, bei Max Weber. Dessen Wertsph\u00e4ren macht Steinvorths Buch, mit Anleihen bei so verschiedenen Autoren wie Aristoteles und Csikszentmihalyi, zur Grundlage seiner politischen Theorie.","8212":"Was ist eine Demokratie, und wann ist sie liberal? Ist Politik legitim, wenn sie der Volkssouver\u00e4nit\u00e4t oder wenn sie den Menschenrechten entspricht? Was kann und was sollte man von der Politik erwarten, was ist \u00fcberhaupt Politik? Ulrich Steinvorth sucht in diesem Buch neue Antworten auf diese in der gegenw\u00e4rtigen politischen Lage brandaktuellen Fragen. <br\/><br\/>Ausgehend von Aldous Huxleys Fabel \u00bbBrave New World\u00ab, die eine Gesellschaft beschreibt, in der eine Minderheit mit technischen Mitteln die Mehrheit so manipuliert, dass sie ihre Unterdr\u00fcckung als Begl\u00fcckung empfindet und selbst Menschenrechtsverletzungen hinnimmt, wirft Steinvorth die oft gestellte Grundsatzfrage auf, was \u00fcberhaupt Politik oder das Politische ist. Er unterscheidet das (am Gesellschaftsvertrag und an Nutzenmaximierung orientierte) \u00f6konomische vom (nicht an Nutzenmaximierung orientierten) politischen Modell als den beiden wichtigsten Theorieans\u00e4tzen in der politischen Theorie und kritisiert das \u00f6konomische Modell in seiner vermutlich st\u00e4rksten Form, n\u00e4mlich in der, die John Rawls ihm gegeben hat. <br\/><br\/>Rawls verlangt von der Politik den Schutz der Selbstachtung aller, den nur eigengesetzliche Subgesellschaften geben k\u00f6nnen, wie Locke den Schutz der eigengesetzlichen Familie und Wirtschaft. Den Schutz eigengesetzlicher Gesellschaftssph\u00e4ren finden wir als Ziel der Politik auch bei Hegel und, in ausbauf\u00e4higer und auf gegebene politische Aufgaben anwendbarer Form, bei Max Weber. Dessen Wertsph\u00e4ren macht Steinvorths Buch, mit Anleihen bei so verschiedenen Autoren wie Aristoteles und Csikszentmihalyi, zur Grundlage seiner politischen Theorie."},"doi":{"8166":"","8208":"10.28937\/978-3-7873-4336-2","8212":""},"isbn":{"8166":"978-3-7873-4335-5","8208":"978-3-7873-4336-2","8212":"978-3-7873-4375-1"},"marketing_short_text":{"8166":"","8208":"","8212":""},"recension_text":{"8166":"","8208":"","8212":""},"language":{"8166":"","8208":"","8212":""},"cover":{"8166":"Kartoniert","8208":"","8212":""},"pages":{"8166":"314 Seiten","8208":"314 Seiten","8212":"314 Seiten"},"edition":{"8166":"","8208":"Unver\u00e4ndertes eBook der 1. Auflage von 2023","8212":"Unver\u00e4ndertes EPUB der 1. Auflage von 2023"},"pod":{"8166":"Nein","8208":"Nein","8212":"Nein"},"copyright_year":{"8166":"","8208":"","8212":""},"vlb_tix_link":{"8166":"https:\/\/neu.vlbtix.de\/products\/9783787343355?type=gtin","8208":"","8212":""},"defaultValues":{"163":"15"}}; 17802 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 17803 17804 if (typeof window.amxnotif_wrap_attributes === 'function') { 17805 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 17806 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 17807 } 17808 17809 const configurableOptionsComponent = initConfigurableOptions( 17810 '4213', 17811 config 17812 ); 17813 const swatchOptionsComponent = initSwatchOptions( 17814 swatchConfig 17815 ); 17816 17817 // DWS - Configurable product preselect start 17818 const confProdPreSelect = () => { 17819 return { 17820 preselectQuerystringItems() { 17821 var data = {"id":"8166","output":"15"}; 17822 const urlQueryParams = new URLSearchParams(window.location.search); 17823 17824 this.$nextTick(() => { 17825 setTimeout(() => { 17826 const rootEl = this.$root || this.$el; 17827 if (!rootEl) return; 17828 17829 const applySelection = (attrCode, attrValue) => { 17830 if (attrValue === undefined || attrValue === null || attrValue === '') return; 17831 17832 const attributes = Object.values(this.optionConfig.attributes || {}); 17833 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 17834 17835 if (targetAttr) { 17836 const attrId = String(targetAttr.id); 17837 const optionVal = String(attrValue); 17838 17839 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 17840 17841 if (inputEl) { 17842 inputEl.click(); 17843 inputEl.dispatchEvent(new Event('change', { 17844 bubbles: true 17845 })); 17846 } else { 17847 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 17848 if (selectEl) { 17849 selectEl.value = optionVal; 17850 selectEl.dispatchEvent(new Event('change', { 17851 bubbles: true 17852 })); 17853 } 17854 } 17855 17856 this.changeOption(attrId, optionVal, false); 17857 } 17858 }; 17859 17860 if (data && typeof data === 'object') {
17861 Object.keys(data).forEach(key => applySelection(key, data[key])); 17862 } 17863 17864 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 17865 if (attribute && attribute.code) { 17866 let optionValue = urlQueryParams.get(attribute.code); 17867 if (optionValue) { 17868 let optionId = false; 17869 const attributes = Object.values(this.optionConfig.attributes || {}); 17870 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 17871 17872 let found = false; 17873 Object.values(targetAttr.options).map(option => { 17874 if (found === false && option.label === optionValue) { 17875 optionId = option.id; 17876 found = true; 17877 } 17878 }); 17879 17880 const attrId = String(targetAttr.id); 17881 let optionVal = String(optionValue); 17882 if (found) { 17883 optionVal = String(optionId); 17884 } 17885 17886 applySelection(attribute.code, optionVal); 17887 } 17888 } 17889 }); 17890 }, 100); 17891 }); 17892 } 17893 } 17894 }; 17895 // DWS - Configurable product preselect end 17896 17897 const result = Object.assign( 17898 configurableOptionsComponent, 17899 swatchOptionsComponent, { 17900 productId: '4213', 17901 productIndex: 0, 17902 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 17903 showSwatches: false, 17904 precalcOptions: {}, 17905 originalInit: configurableOptionsComponent.init, 17906 init() { 17907 try { 17908 this.precalcOptions = {}; 17909 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 17910 this.preselectQuerystringItems(); 17911 if (Array.isArray(attrSource)) { 17912 attrSource.forEach(attr => { 17913 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 17914 }); 17915 } else if (attrSource && typeof attrSource === 'object') { 17916 Object.keys(attrSource).forEach(id => { 17917 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 17918 }); 17919 } 17920 } catch (e) { 17921 console.error('Pre-calc error:', e); 17922 } 17923 17924 if (typeof this.originalInit === 'function') { 17925 this.originalInit(); 17926 } 17927 17928 try { 17929 this.initShowSwatchesIntersect(); 17930 } catch (e) { 17931 console.error('intersect error:', e); 17932 } 17933 }, 17934 17935 updateGallery() { 17936 if (!this.productIndex) return; 17937 17938 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 17939 method: 'GET', 17940 headers: { 17941 'Content-Type': 'application/json', 17942 'X-Requested-With': 'XMLHttpRequest' 17943 } 17944 }) 17945 .then(response => response.json()) 17946 .then(data => { 17947 if (data && data.medium) { 17948 window.dispatchEvent(new CustomEvent("update-gallery-4213", { 17949 detail: data.medium 17950 })); 17951 } 17952 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 17953 }, 17954 17955 17956 initShowSwatchesIntersect() { 17957 const observer = new IntersectionObserver(entries => { 17958 if (entries[0].isIntersecting) { 17959 this.showSwatches = true; 17960 observer.disconnect(); 17961 } 17962 }, { 17963 rootMargin: '512px' 17964 }); 17965 observer.observe(this.$el); 17966 }, 17967 getOptions(attrId) { 17968 return this.precalcOptions[attrId] || []; 17969 }, 17970 getOptionsByAttrId() { 17971 return this.getOptions(this.$el.dataset.attributeId); 17972 }, 17973 _getItemId() { 17974 if (this.item && this.item.id) return this.item.id; 17975 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 17976 }, 17977 getSwatchOptionHtmlId() { 17978 const itemId = this._getItemId(); 17979 return itemId ? this.$id(`attribute-option-4213-${itemId}`) : ''; 17980 }, 17981 getSwatchOptionHtmlIdGroup() { 17982 const itemId = this._getItemId(); 17983 return itemId ? [`attribute-option-4213-${itemId}`] : []; 17984 }, 17985 getAttributeSwatchData(attributeId) { 17986 const data = Object.assign({}, this.swatchConfig[attributeId]); 17987 if (data['additional_data']) { 17988 try { 17989 data['details'] = JSON.parse(data['additional_data']); 17990 } catch (e) { 17991 data['details'] = {}; 17992 } 17993 } 17994 return data; 17995 }, 17996 getSwatchType(attributeId, optionId) { 17997 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 17998 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 17999 } 18000 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 18001 this.swatchConfig[attributeId].details.swatch_input_type : 18002 "empty"; 18003 if (type === 'visual') { 18004 const config = this.swatchConfig[attributeId]; 18005 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 18006 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 18007 } 18008 // Fallback to first option type 18009 for (const oId in config) { 18010 if (config[oId] && typeof config[oId].type !== 'undefined') { 18011 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 18012 } 18013 } 18014 } 18015 return type; 18016 }, 18017 mapSwatchTypeNumberToTypeCode(type) { 18018 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 18019 }, 18020 isTextSwatch() { 18021 const itemId = this._getItemId(); 18022 if (!this.$el || !itemId) return false;
18023 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18024 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 18025 }, 18026 18027 getSwatchText() { 18028 const itemId = this._getItemId(); 18029 if (this.item) return this.item.label || ''; 18030 if (!this.$el || !itemId) return ''; 18031 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18032 const options = attrId ? this.getOptions(attrId) : []; 18033 const opt = options.find(o => o.id == itemId); 18034 return opt ? opt.label : ''; 18035 }, 18036 getSwatchBackgroundStyle() { 18037 const itemId = this._getItemId(); 18038 if (!this.$el || !itemId) return ''; 18039 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18040 if (!attrId) return ''; 18041 const type = this.getSwatchType(attrId, itemId); 18042 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 18043 this.swatchConfig[attrId][itemId] : 18044 null; 18045 if (!swatchData) return ''; 18046 if (type === "color") return 'background-color:' + swatchData.value; 18047 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 18048 return ''; 18049 }, 18050 swatchOptionClasses() { 18051 const itemId = this._getItemId(); 18052 if (!this.$el || !itemId) return {}; 18053 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18054 return { 18055 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 18056 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 18057 'w-6 h-6': !this.isTextSwatch() 18058 } 18059 }, 18060 18061 onFocusSwatchItem() { 18062 const itemId = this._getItemId(); 18063 if (itemId) this.focusedLabel = itemId; 18064 }, 18065 onChangeOption() { 18066 const itemId = this._getItemId(); 18067 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 18068 if (attrId && itemId) this.changeOption(attrId, itemId); 18069 }, 18070 changeOption(attributeId, value) { 18071 if (value === '') { 18072 return; 18073 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 18074 } else { 18075 this.selectedValues[attributeId] = value; 18076 } 18077 18078 this.findSimpleIndex(); 18079 this.findAllowedAttributeOptions(); 18080 this.updatePrices(); 18081 this.updateGallery(); 18082 18083 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 18084 this.findProductIdsForPartialSelection(this.selectedValues) : []; 18085 18086 const eventDetail = { 18087 productId: this.productId, 18088 optionId: attributeId, 18089 value: value, 18090 productIndex: this.productIndex || 0, 18091 selectedValues: this.selectedValues, 18092 candidates: candidates, 18093 sourceElement: this.$el 18094 }; 18095 18096 // Dispatch for Amasty 18097 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 18098 detail: eventDetail 18099 })); 18100 18101 // Dispatch for Hyva listing 18102 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 18103 detail: eventDetail 18104 })); 18105 }, 18106 18107 18108 clearOptionIfActive() { 18109 const itemId = this._getItemId(); 18110 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 18111 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 18112 this.changeOption(attrId, ''); 18113 18114 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 18115 if (!input && this.$el?.querySelector) { 18116 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 18117 } 18118 if (!input && this.$el?.closest) { 18119 const root = this.$el.closest('[data-product-id]') || this.$el; 18120 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 18121 } 18122 if (input) { 18123 input.checked = false;
18124 } 18125 } 18126 }, 18127 get optionIsEnabled() { 18128 const itemId = this._getItemId(); 18129 if (!this.$el || !itemId) return true; 18130 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18131 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 18132 return !!allowedOptions.find(opt => opt.id == itemId); 18133 }, 18134 get isSelected() { 18135 const itemId = this._getItemId(); 18136 if (!this.$el || !itemId) return false; 18137 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18138 return attrId ? (this.selectedValues[attrId] == itemId) : false; 18139 }, 18140 get isSwatchRequired() { 18141 if (!this.$el) return false; 18142 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18143 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 18144 }, 18145 focusedLabel: false, 18146 activeTooltipItem: false, 18147 tooltipPositionElement: false,
18148 setActiveTooltipItem() { 18149 const itemId = this._getItemId(); 18150 if (!this.$el || !itemId) return; 18151 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18152 this.activeTooltipItem = { 18153 attribute: attrId, 18154 item: itemId, 18155 index: 0 18156 }; 18157 this.tooltipPositionElement = this.$event ? this.$event.target : null; 18158 }, 18159 unsetActiveTooltipItem() { 18160 this.activeTooltipItem = false; 18161 } 18162 }, 18163 confProdPreSelect() 18164 ); 18165 18166 if (result.optionConfig && result.optionConfig.attributes) { 18167 const attributes = result.optionConfig.attributes; 18168 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 18169 let source = attributes; 18170 if (Array.isArray(attributes)) { 18171 source = {}; 18172 attributes.forEach(attr => { 18173 if (attr && attr.id) source[attr.id] = attr; 18174 }); 18175 } 18176 const values = Object.values(source); 18177 const wrapper = Object.assign(values, source); 18178 Object.defineProperty(wrapper, '__amxnotifWrapped', { 18179 value: true, 18180 enumerable: false 18181 }); 18182 result.optionConfig.attributes = wrapper; 18183 } 18184 } 18185 18186 return result; 18187 } 18188 18189 window.addEventListener('alpine:init', () => { 18190 Alpine.data('initConfigurableSwatchOptions_4213', initConfigurableSwatchOptions_4213); 18191 }, { 18192 once: true 18193 }); 18194 </script>
18194 18195 18196 <div x-data="initConfigurableSwatchOptions_4213" x-defer="intersect"> 18197 <div class="pagebuilder-home-hidden"> 18198 18199 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 18200 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 18201 <template x-if="showSwatches"> 18202 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4213-163" role="radiogroup" aria-label="Einband"> 18203 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 18204 <div :data-option-id="item.id" style="display: contents"> 18205 <div x-id="getSwatchOptionHtmlIdGroup"> 18206 <template x-if="optionIsEnabled"> 18207 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
18207self="unsetActiveTooltipItem"> 18208 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4213-163"> 18209 <div> 18210 <template x-if="isTextSwatch"> 18211 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 18212 </template> 18213 <template x-if="!optionIsActive(163, item.id)"> 18214 <div> 18215 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 18216 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 18217 </svg> 18218 </div> 18219 </template> 18220 </div> 18221 </label> 18222 </template> 18223</div> </div> 18224 </template> 18225 </div> 18226 </template> 18227 </div> 18228 </div> 18229 </div> 18230 </div> 18231 18232 <div class="meta py-4 pagebuilder-home-hidden"> 18233 <div x-data="initMarketingShortText_4213()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 18234 <!-- Marketing short text --> 18235 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 18236 </div> 18237 18238 <!-- Short description --> 18239 <div class="short-description"> 18240 Was ist eine Demokratie, und wann ist sie liberal? Ist Politik legitim, wenn sie der Volkssouveränität oder wenn sie den Menschenrechten entspricht? Was kann und was sollte man von der Politik ... <a href="https://meiner.de/fmv_de/unterdra-ckung-durch-begla-ckung-13612" class="underline">mehr</a> 18241 </div> 18242 </div> 18243 18244 <!-- Series --> 18245 <div class="mb-1"> 18246 <span class="sr-only">Reihe:</span> 18247 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 18248 <span>Blaue Reihe</span> 18249 </a> 18250 </div> 18251 18252 18253 <div class="mb-1"> 18254 <span x-data="initEditionText_4213()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 18255 <!-- Marketing short text --> 18256 <span class="edition-text" x-html="editionText"></span> 2023, 314 Seiten </span> 18257 </div> 18258 18259 </div> 18260 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 18261 18262 <div class="justify-end" x-data="initPriceBox()" @update-prices-4213.window="updatePrice($event.detail);"> 18263 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4213" data-price-box="product-id-4213"><span class="normal-price"> 18264 <span x-data x-id="['product\u002Dprice\u002D4213']" class="price-container price-final_price tax weee"> 18265 <span class="price-label">Ab</span> 18266 <span class="approx-price">ca. </span> 18267 <span :id="$id('product\u002Dprice\u002D4213')" data-price-amount="22.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">22,99 €</span></span> 18268 </span> 18269</span> 18270 18271 18272</div> </div> 18273 18274 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 18275 <div class="open-access-container open-access-container-4213 flex mt-4 ml-auto sm:mt-0 hidden"> 18276 <div class="text-gray-700"> 18277 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 18278 <a href="" target="_blank" class="open-access-external-link m-auto "> 18279 Kostenlos online lesen </a> 18280 </button> 18281 </div> 18282 </div> 18283 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Unterdrückung durch Beglückung" aria-label="In den Warenkorb Unterdrückung durch Beglückung" data-addto="cart"> 18284 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 18285 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
182850 014 0z"></path> 18286</svg> 18287 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 18288 In den Warenkorb </span> 18289 </button> 18290 18291<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4213)" aria-label="Zur Wunschliste hinzufügen Unterdrückung durch Beglückung" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 18292 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 18293 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 18294</svg> 18295</button> 18296 </div> 18297 </div> 18298 </div> 18299
18299<script> 18300 function initMarketingShortText_4213() { 18301 var marketingShortTextConfig = {}; 18302 if (typeof window.initConfigurableSwatchOptions_4213 === "function") { 18303 var fullConfig = window.initConfigurableSwatchOptions_4213().optionConfig 18304 var marketingShortTextConfig = fullConfig.marketing_short_text; 18305 } 18306 return { 18307 marketingShortText: '', 18308 config: marketingShortTextConfig, 18309 productId: '4213', 18310 getMarketingShortText(detail) { 18311 this.marketingShortText = detail.productIndex ? 18312 this.config[detail.productIndex] : 18313 null; 18314 }, 18315 eventListeners: { 18316 ['@listing-configurable-selection-changed.window'](event) { 18317 if (this.productId == event.detail.productId) { 18318 this.getMarketingShortText(event.detail); 18319 } 18320 18321 } 18322 } 18323 } 18324 } 18325 18326 function initEditionText_4213() { 18327 var editionTextConfig = {}; 18328 if (typeof window.initConfigurableSwatchOptions_4213 === "function") { 18329 var fullConfig = window.initConfigurableSwatchOptions_4213().optionConfig 18330 var editionTextConfig = fullConfig.edition; 18331 } 18332 return { 18333 editionText: '', 18334 config: editionTextConfig, 18335 productId: '4213', 18336 getEditionText(detail) { 18337 this.editionText = detail.productIndex ? 18338 this.config[detail.productIndex] : 18339 null; 18340 }, 18341 eventListeners: { 18342 ['@listing-configurable-selection-changed.window'](event) { 18343 if (this.productId == event.detail.productId) { 18344 this.getEditionText(event.detail); 18345 } 18346 18347 } 18348 } 18349 } 18350 } 18351 </script>
18351 18352 </form> 18353 18354 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4211/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk13583"> 18355 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4211"> 18356 <a href="https://meiner.de/fmv_de/zura-ck-zum-fortschritt-13583" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 18357 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4211.window="$el.src = $event.detail" alt="Zurück zum Fortschritt" title="Zurück zum Fortschritt" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344567_4.jpg" :style="{ 18358 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 18359 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 18360 }"> 18361 </a> 18362 <div class="product-info flex flex-col flex-grow "> 18363 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 18364 <div class="mb-2 text-sm text-gray-500 font-medium"> 18365 <a href="https://meiner.de/fmv_de/person/Heiner-Hastedt-3284/" class="mb-2"> 18366 Heiner Hastedt </a> 18367 </div> 18368 <a class="product-item-link" href="https://meiner.de/fmv_de/zura-ck-zum-fortschritt-13583"> 18369 Zurück zum Fortschritt </a> 18370 </div> 18371 18372 <div x-data="initEditionText_4211()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 18373 <!-- Marketing short text --> 18374 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 18375 </div> 18376 </div> 18377 18378 <div class="py-1 grid mb-4 "> 18379 18380 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4211,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4211,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"15359":"1","15372":"1","15373":"1"},"childProductsAlertStatus":{"15359":"0","15372":"0","15373":"0"},"indexMapping":{"163:15":15359,"163:8":15372,"163:9":15373},"availabilityMessages":{"15359":"Lieferbar innerhalb von 3-5 Tagen","15372":"Download sofort verf\u00fcgbar","15373":"Download sofort verf\u00fcgbar"},"openAccess":{"4211":{"status":0},"15359":{"status":0},"15372":{"status":0},"15373":{"status":0}}},"availabilityMessages":{"15359":"Lieferbar innerhalb von 3-5 Tagen","15372":"Download sofort verf\u00fcgbar","15373":"Download sofort verf\u00fcgbar"},"openAccess":{"4211":{"status":0},"15359":{"status":0},"15372":{"status":0},"15373":{"status":0}}}'> 18381 <template x-if="containerVisible"> 18382 <!-- Popup Trigger --> 18383 <div> 18384 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 18385 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
18386 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 18387 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 18388<title>bell</title></svg> 18389</span> 18390 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 18391 18392 <!-- Popup Modal --> 18393 <template x-if="showModal"> 18394 <template x-teleport=".page-wrapper"> 18395 <div x-cloak class="fixed inset-0 flex items-center justify-center 18396 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 18397 <div class="relative bg-white rounded-lg shadow-xl 18398 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 18399 <div class="p-6"> 18400 <!-- Subscription Form for Popup --> 18401 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 18402 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 18403 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 18404 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 18405 18406 <div class="flex flex-col gap-3"> 18407 <div class="flex-grow grow"> 18408 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 18409 shadow-xs focus:outline-none focus:outline-hidden 18410 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 18411 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 18412 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 18413 </div> 18414 <input type="hidden" name="product_id" :value="currentProductId"> 18415 <input type="hidden" name="type" value="email"> 18416 18417 18418 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 18419 18420 <div class="amxnotif_guest_action"> 18421 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 18422 rounded-md focus:outline-none 18423 focus:outline-hidden focus:ring-2 18424 focus:ring-offset-2 disabled:opacity-50 18425 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 18426 Benachrichtigen </button> 18427 </div> 18428 </div> 18429 18430 <div class="flex items-start pt-2"> 18431 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 18432 text-blue-600 border-gray-300 rounded-sm"> 18433 <label class="amxnotif-stock-gdrp-label cursor-pointer 18434 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 18435 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 18436 </div> 18437 </form> 18438 </div> 18439 18440 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 18441 hover:text-gray-600 transition-colors" aria-label="Schließen"> 18442 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 18443 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 18444<title>x</title></svg> 18445 </button> 18446 </div> 18447 </div> 18448 </template> 18449 </template> 18450 </div> 18451 </template> 18452 </div> 18453 18454<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4211" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4211,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"15359":"1","15372":"1","15373":"1"},"childProductsAlertStatus":{"15359":"0","15372":"0","15373":"0"},"indexMapping":"{\u0022163:15\u0022:15359,\u0022163:8\u0022:15372,\u0022163:9\u0022:15373}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4211,"availabilityMessages":{"15359":"Lieferbar innerhalb von 3-5 Tagen","15372":"Download sofort verf\u00fcgbar","15373":"Download sofort verf\u00fcgbar"},"openAccess":{"4211":{"status":0},"15359":{"status":0},"15372":{"status":0},"15373":{"status":0}}}'> 18455 18456 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
18457 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 18458 <span x-html="optionsLabelText"></span> 18459 </p> 18460</div> </div> 18461 18462
18462<script> 18463 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 18464 try { 18465 const attributes = (config && config.attributes) ? config.attributes : null; 18466 if (!attributes) return []; 18467 let attr = null; 18468 if (Array.isArray(attributes)) { 18469 for (let i = 0; i < attributes.length; i++) { 18470 const a = attributes[i]; 18471 if (a && a.id == attrId) { 18472 attr = a; 18473 break; 18474 } 18475 } 18476 } else { 18477 attr = attributes[attrId]; 18478 } 18479 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 18480 } catch (e) { 18481 return []; 18482 } 18483 }; 18484 18485 function initConfigurableSwatchOptions_4211() { 18486 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["15359"]},{"id":"8","label":"PDF","products":["15372"]},{"id":"9","label":"EPUB","products":["15373"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"15359":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15372":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15373":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"4211","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"15359":{"163":"15"},"15372":{"163":"8"},"15373":{"163":"9"}},"salable":{"163":{"15":["15359"],"8":["15372"],"9":["15373"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"15359":"004423","15372":"004424","15373":"004456"},"output":{"15359":"Kartoniert","15372":"PDF","15373":"EPUB"},"original_name":{"15359":"","15372":"","15373":""},"openaccess_license_link":{"15359":"","15372":"","15373":""},"openaccess_license_name":{"15359":"","15372":"","15373":""},"openaccess_external_link":{"15359":"","15372":"","15373":""},"gpsr_safety_info":{"15359":"","15372":"","15373":""},"description":{"15359":"Alternde Gesellschaften wie unsere eigene sind von der Gefahr der Stagnation bedroht. Eine solche k\u00f6nnen wir uns aber nicht leisten; denn wir brauchen Ver\u00e4nderungen, besonders um den Klimawandel einzud\u00e4mmen und die bereits eintretenden Folgen zu begrenzen. Als Alternative zum Denken in Alternativlosigkeiten profiliert Heiner Hastedt in diesem Buch eine Hinwendung zum Fortschritt als Erm\u00f6glichung.<br\/><br\/>Nach der durch das \u00bbPrinzip Verantwortung\u00ab von Hans Jonas bef\u00fcrworteten \u00bbHeuristik der Furcht\u00ab mit ihren Folgen f\u00fcr Verzagtheit und Nichtstun k\u00f6nnte der als \u00bbgeschichtsphilosophischer Universalbegriff\u00ab (Koselleck) zu Recht kritisierte Fortschrittsbegriff vor einer Renaissance stehen, und zwar als ganz pluralistisch gedachter Ma\u00dfstab f\u00fcr normativ erw\u00fcnschtes Fortschreiten. Um ein solches Programm des Fortschritts als Erm\u00f6glichung attraktiv zu machen, steht in Hastedts Essay das Konzept der Deutungsmacht mit seiner Wende zum existentiell M\u00f6glichen im Mittelpunkt. In Abgrenzung zu Gewalt und \u00fcberkommenen Machtbegriffen wird Deutungsmacht als eine einflussnehmende soft power verstanden, die Wandel \u2013 vielleicht besonders nachhaltig \u2013 erm\u00f6glichen kann.
18486<br\/><br\/>Jenseits der \u00fcblichen Links-Rechts-Verortungen in der Politik reflektiert Hastedt \u00fcber Fortschritte auch im Institutionellen und versucht zugleich philosophische Debatten \u00fcber Macht, Wahrheit und Vernunft in Theorie und Praxis neu zu kontextualisieren.","15372":"Alternde Gesellschaften wie unsere eigene sind von der Gefahr der Stagnation bedroht. Eine solche k\u00f6nnen wir uns aber nicht leisten; denn wir brauchen Ver\u00e4nderungen, besonders um den Klimawandel einzud\u00e4mmen und die bereits eintretenden Folgen zu begrenzen. Als Alternative zum Denken in Alternativlosigkeiten profiliert Heiner Hastedt in diesem Buch eine Hinwendung zum Fortschritt als Erm\u00f6glichung.<br\/><br\/>Nach der durch das \u00bbPrinzip Verantwortung\u00ab von Hans Jonas bef\u00fcrworteten \u00bbHeuristik der Furcht\u00ab mit ihren Folgen f\u00fcr Verzagtheit und Nichtstun k\u00f6nnte der als \u00bbgeschichtsphilosophischer Universalbegriff\u00ab (Koselleck) zu Recht kritisierte Fortschrittsbegriff vor einer Renaissance stehen, und zwar als ganz pluralistisch gedachter Ma\u00dfstab f\u00fcr normativ erw\u00fcnschtes Fortschreiten. Um ein solches Programm des Fortschritts als Erm\u00f6glichung attraktiv zu machen, steht in Hastedts Essay das Konzept der Deutungsmacht mit seiner Wende zum existentiell M\u00f6glichen im Mittelpunkt. In Abgrenzung zu Gewalt und \u00fcberkommenen Machtbegriffen wird Deutungsmacht als eine einflussnehmende soft power verstanden, die Wandel \u2013 vielleicht besonders nachhaltig \u2013 erm\u00f6glichen kann.<br\/><br\/>Jenseits der \u00fcblichen Links-Rechts-Verortungen in der Politik reflektiert Hastedt \u00fcber Fortschritte auch im Institutionellen und versucht zugleich philosophische Debatten \u00fcber Macht, Wahrheit und Vernunft in Theorie und Praxis neu zu kontextualisieren.","15373":"Alternde Gesellschaften wie unsere eigene sind von der Gefahr der Stagnation bedroht. Eine solche k\u00f6nnen wir uns aber nicht leisten; denn wir brauchen Ver\u00e4nderungen, besonders um den Klimawandel einzud\u00e4mmen und die bereits eintretenden Folgen zu begrenzen. Als Alternative zum Denken in Alternativlosigkeiten profiliert Heiner Hastedt in diesem Buch eine Hinwendung zum Fortschritt als Erm\u00f6glichung.<br\/><br\/>Nach der durch das \u00bbPrinzip Verantwortung\u00ab von Hans Jonas bef\u00fcrworteten \u00bbHeuristik der Furcht\u00ab mit ihren Folgen f\u00fcr Verzagtheit und Nichtstun k\u00f6nnte der als \u00bbgeschichtsphilosophischer Universalbegriff\u00ab (Koselleck) zu Recht kritisierte Fortschrittsbegriff vor einer Renaissance stehen, und zwar als ganz pluralistisch gedachter Ma\u00dfstab f\u00fcr normativ erw\u00fcnschtes Fortschreiten. Um ein solches Programm des Fortschritts als Erm\u00f6glichung attraktiv zu machen, steht in Hastedts Essay das Konzept der Deutungsmacht mit seiner Wende zum existentiell M\u00f6glichen im Mittelpunkt. In Abgrenzung zu Gewalt und \u00fcberkommenen Machtbegriffen wird Deutungsmacht als eine einflussnehmende soft power verstanden, die Wandel \u2013 vielleicht besonders nachhaltig \u2013 erm\u00f6glichen kann.<br\/><br\/>Jenseits der \u00fcblichen Links-Rechts-Verortungen in der Politik reflektiert Hastedt \u00fcber Fortschritte auch im Institutionellen und versucht zugleich philosophische Debatten \u00fcber Macht, Wahrheit und Vernunft in Theorie und Praxis neu zu kontextualisieren."},"doi":{"15359":"","15372":"10.28937\/978-3-7873-4424-6","15373":""},"isbn":{"15359":"978-3-7873-4423-9","15372":"978-3-7873-4424-6","15373":"978-3-7873-4456-7"},"marketing_short_text":{"15359":"","15372":"","15373":""},"recension_text":{"15359":"","15372":"","15373":""},"language":{"15359":"","15372":"","15373":""},"cover":{"15359":"Kartoniert","15372":"","15373":""},"pages":{"15359":"188 Seiten","15372":"188 Seiten","15373":"188 Seiten"},"edition":{"15359":"","15372":"Unver\u00e4ndertes eBook der 1.Auflage von 2023","15373":"Unver\u00e4ndertes eBook der 1.Auflage von 2023"},"pod":{"15359":"Nein","15372":"Nein","15373":"Nein"},"copyright_year":{"15359":"","15372":"","15373":""},"vlb_tix_link":{"15359":"https:\/\/neu.vlbtix.de\/products\/9783787344239?type=gtin","15372":"","15373":""},"defaultValues":{"163":"15"}}; 18487 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 18488 18489 if (typeof window.amxnotif_wrap_attributes === 'function') { 18490 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 18491 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 18492 } 18493 18494 const configurableOptionsComponent = initConfigurableOptions( 18495 '4211', 18496 config 18497 ); 18498 const swatchOptionsComponent = initSwatchOptions( 18499 swatchConfig 18500 ); 18501 18502 // DWS - Configurable product preselect start 18503 const confProdPreSelect = () => { 18504 return { 18505 preselectQuerystringItems() { 18506 var data = {"id":"15359","output":"15"}; 18507 const urlQueryParams = new URLSearchParams(window.location.search); 18508 18509 this.$nextTick(() => { 18510 setTimeout(() => { 18511 const rootEl = this.$root || this.$el; 18512 if (!rootEl) return; 18513 18514 const applySelection = (attrCode, attrValue) => { 18515 if (attrValue === undefined || attrValue === null || attrValue === '') return; 18516 18517 const attributes = Object.values(this.optionConfig.attributes || {}); 18518 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 18519 18520 if (targetAttr) { 18521 const attrId = String(targetAttr.id); 18522 const optionVal = String(attrValue); 18523 18524 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 18525 18526 if (inputEl) { 18527 inputEl.click(); 18528 inputEl.dispatchEvent(new Event('change', { 18529 bubbles: true 18530 })); 18531 } else { 18532 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 18533 if (selectEl) { 18534 selectEl.value = optionVal; 18535 selectEl.dispatchEvent(new Event('change', { 18536 bubbles: true 18537 })); 18538 } 18539 } 18540 18541 this.changeOption(attrId, optionVal, false); 18542 } 18543 }; 18544 18545 if (data && typeof data === 'object') {
18546 Object.keys(data).forEach(key => applySelection(key, data[key])); 18547 } 18548 18549 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 18550 if (attribute && attribute.code) { 18551 let optionValue = urlQueryParams.get(attribute.code); 18552 if (optionValue) { 18553 let optionId = false; 18554 const attributes = Object.values(this.optionConfig.attributes || {}); 18555 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 18556 18557 let found = false; 18558 Object.values(targetAttr.options).map(option => { 18559 if (found === false && option.label === optionValue) { 18560 optionId = option.id; 18561 found = true; 18562 } 18563 }); 18564 18565 const attrId = String(targetAttr.id); 18566 let optionVal = String(optionValue); 18567 if (found) { 18568 optionVal = String(optionId); 18569 } 18570 18571 applySelection(attribute.code, optionVal); 18572 } 18573 } 18574 }); 18575 }, 100); 18576 }); 18577 } 18578 } 18579 }; 18580 // DWS - Configurable product preselect end 18581 18582 const result = Object.assign( 18583 configurableOptionsComponent, 18584 swatchOptionsComponent, { 18585 productId: '4211', 18586 productIndex: 0, 18587 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 18588 showSwatches: false, 18589 precalcOptions: {}, 18590 originalInit: configurableOptionsComponent.init, 18591 init() { 18592 try { 18593 this.precalcOptions = {}; 18594 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 18595 this.preselectQuerystringItems(); 18596 if (Array.isArray(attrSource)) { 18597 attrSource.forEach(attr => { 18598 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 18599 }); 18600 } else if (attrSource && typeof attrSource === 'object') { 18601 Object.keys(attrSource).forEach(id => { 18602 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 18603 }); 18604 } 18605 } catch (e) { 18606 console.error('Pre-calc error:', e); 18607 } 18608 18609 if (typeof this.originalInit === 'function') { 18610 this.originalInit(); 18611 } 18612 18613 try { 18614 this.initShowSwatchesIntersect(); 18615 } catch (e) { 18616 console.error('intersect error:', e); 18617 } 18618 }, 18619 18620 updateGallery() { 18621 if (!this.productIndex) return; 18622 18623 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 18624 method: 'GET', 18625 headers: { 18626 'Content-Type': 'application/json', 18627 'X-Requested-With': 'XMLHttpRequest' 18628 } 18629 }) 18630 .then(response => response.json()) 18631 .then(data => { 18632 if (data && data.medium) { 18633 window.dispatchEvent(new CustomEvent("update-gallery-4211", { 18634 detail: data.medium 18635 })); 18636 } 18637 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 18638 }, 18639 18640 18641 initShowSwatchesIntersect() { 18642 const observer = new IntersectionObserver(entries => { 18643 if (entries[0].isIntersecting) { 18644 this.showSwatches = true; 18645 observer.disconnect(); 18646 } 18647 }, { 18648 rootMargin: '512px' 18649 }); 18650 observer.observe(this.$el); 18651 }, 18652 getOptions(attrId) { 18653 return this.precalcOptions[attrId] || []; 18654 }, 18655 getOptionsByAttrId() { 18656 return this.getOptions(this.$el.dataset.attributeId); 18657 }, 18658 _getItemId() { 18659 if (this.item && this.item.id) return this.item.id; 18660 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 18661 }, 18662 getSwatchOptionHtmlId() { 18663 const itemId = this._getItemId(); 18664 return itemId ? this.$id(`attribute-option-4211-${itemId}`) : ''; 18665 }, 18666 getSwatchOptionHtmlIdGroup() { 18667 const itemId = this._getItemId(); 18668 return itemId ? [`attribute-option-4211-${itemId}`] : []; 18669 }, 18670 getAttributeSwatchData(attributeId) { 18671 const data = Object.assign({}, this.swatchConfig[attributeId]); 18672 if (data['additional_data']) { 18673 try { 18674 data['details'] = JSON.parse(data['additional_data']); 18675 } catch (e) { 18676 data['details'] = {}; 18677 } 18678 } 18679 return data; 18680 }, 18681 getSwatchType(attributeId, optionId) { 18682 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 18683 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 18684 } 18685 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 18686 this.swatchConfig[attributeId].details.swatch_input_type : 18687 "empty"; 18688 if (type === 'visual') { 18689 const config = this.swatchConfig[attributeId]; 18690 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 18691 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 18692 } 18693 // Fallback to first option type 18694 for (const oId in config) { 18695 if (config[oId] && typeof config[oId].type !== 'undefined') { 18696 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 18697 } 18698 } 18699 } 18700 return type; 18701 }, 18702 mapSwatchTypeNumberToTypeCode(type) { 18703 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 18704 }, 18705 isTextSwatch() { 18706 const itemId = this._getItemId(); 18707 if (!this.$el || !itemId) return false;
18708 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18709 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 18710 }, 18711 18712 getSwatchText() { 18713 const itemId = this._getItemId(); 18714 if (this.item) return this.item.label || ''; 18715 if (!this.$el || !itemId) return ''; 18716 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18717 const options = attrId ? this.getOptions(attrId) : []; 18718 const opt = options.find(o => o.id == itemId); 18719 return opt ? opt.label : ''; 18720 }, 18721 getSwatchBackgroundStyle() { 18722 const itemId = this._getItemId(); 18723 if (!this.$el || !itemId) return ''; 18724 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18725 if (!attrId) return ''; 18726 const type = this.getSwatchType(attrId, itemId); 18727 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 18728 this.swatchConfig[attrId][itemId] : 18729 null; 18730 if (!swatchData) return ''; 18731 if (type === "color") return 'background-color:' + swatchData.value; 18732 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 18733 return ''; 18734 }, 18735 swatchOptionClasses() { 18736 const itemId = this._getItemId(); 18737 if (!this.$el || !itemId) return {}; 18738 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18739 return { 18740 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 18741 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 18742 'w-6 h-6': !this.isTextSwatch() 18743 } 18744 }, 18745 18746 onFocusSwatchItem() { 18747 const itemId = this._getItemId(); 18748 if (itemId) this.focusedLabel = itemId; 18749 }, 18750 onChangeOption() { 18751 const itemId = this._getItemId(); 18752 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 18753 if (attrId && itemId) this.changeOption(attrId, itemId); 18754 }, 18755 changeOption(attributeId, value) { 18756 if (value === '') { 18757 return; 18758 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 18759 } else { 18760 this.selectedValues[attributeId] = value; 18761 } 18762 18763 this.findSimpleIndex(); 18764 this.findAllowedAttributeOptions(); 18765 this.updatePrices(); 18766 this.updateGallery(); 18767 18768 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 18769 this.findProductIdsForPartialSelection(this.selectedValues) : []; 18770 18771 const eventDetail = { 18772 productId: this.productId, 18773 optionId: attributeId, 18774 value: value, 18775 productIndex: this.productIndex || 0, 18776 selectedValues: this.selectedValues, 18777 candidates: candidates, 18778 sourceElement: this.$el 18779 }; 18780 18781 // Dispatch for Amasty 18782 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 18783 detail: eventDetail 18784 })); 18785 18786 // Dispatch for Hyva listing 18787 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 18788 detail: eventDetail 18789 })); 18790 }, 18791 18792 18793 clearOptionIfActive() { 18794 const itemId = this._getItemId(); 18795 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 18796 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 18797 this.changeOption(attrId, ''); 18798 18799 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 18800 if (!input && this.$el?.querySelector) { 18801 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 18802 } 18803 if (!input && this.$el?.closest) { 18804 const root = this.$el.closest('[data-product-id]') || this.$el; 18805 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 18806 } 18807 if (input) { 18808 input.checked = false;
18809 } 18810 } 18811 }, 18812 get optionIsEnabled() { 18813 const itemId = this._getItemId(); 18814 if (!this.$el || !itemId) return true; 18815 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18816 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 18817 return !!allowedOptions.find(opt => opt.id == itemId); 18818 }, 18819 get isSelected() { 18820 const itemId = this._getItemId(); 18821 if (!this.$el || !itemId) return false; 18822 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18823 return attrId ? (this.selectedValues[attrId] == itemId) : false; 18824 }, 18825 get isSwatchRequired() { 18826 if (!this.$el) return false; 18827 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18828 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 18829 }, 18830 focusedLabel: false, 18831 activeTooltipItem: false, 18832 tooltipPositionElement: false,
18833 setActiveTooltipItem() { 18834 const itemId = this._getItemId(); 18835 if (!this.$el || !itemId) return; 18836 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 18837 this.activeTooltipItem = { 18838 attribute: attrId, 18839 item: itemId, 18840 index: 0 18841 }; 18842 this.tooltipPositionElement = this.$event ? this.$event.target : null; 18843 }, 18844 unsetActiveTooltipItem() { 18845 this.activeTooltipItem = false; 18846 } 18847 }, 18848 confProdPreSelect() 18849 ); 18850 18851 if (result.optionConfig && result.optionConfig.attributes) { 18852 const attributes = result.optionConfig.attributes; 18853 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 18854 let source = attributes; 18855 if (Array.isArray(attributes)) { 18856 source = {}; 18857 attributes.forEach(attr => { 18858 if (attr && attr.id) source[attr.id] = attr; 18859 }); 18860 } 18861 const values = Object.values(source); 18862 const wrapper = Object.assign(values, source); 18863 Object.defineProperty(wrapper, '__amxnotifWrapped', { 18864 value: true, 18865 enumerable: false 18866 }); 18867 result.optionConfig.attributes = wrapper; 18868 } 18869 } 18870 18871 return result; 18872 } 18873 18874 window.addEventListener('alpine:init', () => { 18875 Alpine.data('initConfigurableSwatchOptions_4211', initConfigurableSwatchOptions_4211); 18876 }, { 18877 once: true 18878 }); 18879 </script>
18879 18880 18881 <div x-data="initConfigurableSwatchOptions_4211" x-defer="intersect"> 18882 <div class="pagebuilder-home-hidden"> 18883 18884 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 18885 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 18886 <template x-if="showSwatches"> 18887 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4211-163" role="radiogroup" aria-label="Einband"> 18888 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 18889 <div :data-option-id="item.id" style="display: contents"> 18890 <div x-id="getSwatchOptionHtmlIdGroup"> 18891 <template x-if="optionIsEnabled"> 18892 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
18892self="unsetActiveTooltipItem"> 18893 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4211-163"> 18894 <div> 18895 <template x-if="isTextSwatch"> 18896 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 18897 </template> 18898 <template x-if="!optionIsActive(163, item.id)"> 18899 <div> 18900 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 18901 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 18902 </svg> 18903 </div> 18904 </template> 18905 </div> 18906 </label> 18907 </template> 18908</div> </div> 18909 </template> 18910 </div> 18911 </template> 18912 </div> 18913 </div> 18914 </div> 18915 </div> 18916 18917 <div class="meta py-4 pagebuilder-home-hidden"> 18918 <div x-data="initMarketingShortText_4211()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 18919 <!-- Marketing short text --> 18920 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 18921 </div> 18922 18923 <!-- Short description --> 18924 <div class="short-description"> 18925 Alternde Gesellschaften wie unsere eigene sind von der Gefahr der Stagnation bedroht. Eine solche können wir uns aber nicht leisten; denn wir brauchen Veränderungen, besonders um den Klimawandel ... <a href="https://meiner.de/fmv_de/zura-ck-zum-fortschritt-13583" class="underline">mehr</a> 18926 </div> 18927 </div> 18928 18929 <!-- Series --> 18930 <div class="mb-1"> 18931 <span class="sr-only">Reihe:</span> 18932 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 18933 <span>Blaue Reihe</span> 18934 </a> 18935 </div> 18936 18937 18938 <div class="mb-1"> 18939 <span x-data="initEditionText_4211()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 18940 <!-- Marketing short text --> 18941 <span class="edition-text" x-html="editionText"></span> 2023, 188 Seiten </span> 18942 </div> 18943 18944 </div> 18945 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 18946 18947 <div class="justify-end" x-data="initPriceBox()" @update-prices-4211.window="updatePrice($event.detail);"> 18948 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4211" data-price-box="product-id-4211"><span class="normal-price"> 18949 <span x-data x-id="['product\u002Dprice\u002D4211']" class="price-container price-final_price tax weee"> 18950 <span class="price-label">Ab</span> 18951 <span class="approx-price">ca. </span> 18952 <span :id="$id('product\u002Dprice\u002D4211')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 18953 </span> 18954</span> 18955 18956 18957</div> </div> 18958 18959 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 18960 <div class="open-access-container open-access-container-4211 flex mt-4 ml-auto sm:mt-0 hidden"> 18961 <div class="text-gray-700"> 18962 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 18963 <a href="" target="_blank" class="open-access-external-link m-auto "> 18964 Kostenlos online lesen </a> 18965 </button> 18966 </div> 18967 </div> 18968 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Zurück zum Fortschritt" aria-label="In den Warenkorb Zurück zum Fortschritt" data-addto="cart"> 18969 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 18970 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
189700 014 0z"></path> 18971</svg> 18972 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 18973 In den Warenkorb </span> 18974 </button> 18975 18976<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4211)" aria-label="Zur Wunschliste hinzufügen Zurück zum Fortschritt" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 18977 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 18978 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 18979</svg> 18980</button> 18981 </div> 18982 </div> 18983 </div> 18984
18984<script> 18985 function initMarketingShortText_4211() { 18986 var marketingShortTextConfig = {}; 18987 if (typeof window.initConfigurableSwatchOptions_4211 === "function") { 18988 var fullConfig = window.initConfigurableSwatchOptions_4211().optionConfig 18989 var marketingShortTextConfig = fullConfig.marketing_short_text; 18990 } 18991 return { 18992 marketingShortText: '', 18993 config: marketingShortTextConfig, 18994 productId: '4211', 18995 getMarketingShortText(detail) { 18996 this.marketingShortText = detail.productIndex ? 18997 this.config[detail.productIndex] : 18998 null; 18999 }, 19000 eventListeners: { 19001 ['@listing-configurable-selection-changed.window'](event) { 19002 if (this.productId == event.detail.productId) { 19003 this.getMarketingShortText(event.detail); 19004 } 19005 19006 } 19007 } 19008 } 19009 } 19010 19011 function initEditionText_4211() { 19012 var editionTextConfig = {}; 19013 if (typeof window.initConfigurableSwatchOptions_4211 === "function") { 19014 var fullConfig = window.initConfigurableSwatchOptions_4211().optionConfig 19015 var editionTextConfig = fullConfig.edition; 19016 } 19017 return { 19018 editionText: '', 19019 config: editionTextConfig, 19020 productId: '4211', 19021 getEditionText(detail) { 19022 this.editionText = detail.productIndex ? 19023 this.config[detail.productIndex] : 19024 null; 19025 }, 19026 eventListeners: { 19027 ['@listing-configurable-selection-changed.window'](event) { 19028 if (this.productId == event.detail.productId) { 19029 this.getEditionText(event.detail); 19030 } 19031 19032 } 19033 } 19034 } 19035 } 19036 </script>
19036 19037 </form> 19038 19039 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/15095/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16741"> 19040 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="15095"> 19041 <a href="https://meiner.de/fmv_de/qualita-ten-der-freiheit-16741" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 19042 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-15095.window="$el.src = $event.detail" alt="Qualitäten der Freiheit" title="Qualitäten der Freiheit" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787346066_3.jpg" :style="{ 19043 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 19044 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 19045 }"> 19046 </a> 19047 <div class="product-info flex flex-col flex-grow "> 19048 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 19049 <div class="mb-2 text-sm text-gray-500 font-medium"> 19050 <a href="https://meiner.de/fmv_de/person/Ludger-Schwarte-3277/" class="mb-2"> 19051 Ludger Schwarte </a> 19052 </div> 19053 <a class="product-item-link" href="https://meiner.de/fmv_de/qualita-ten-der-freiheit-16741"> 19054 Qualitäten der Freiheit </a> 19055 </div> 19056 19057 <div x-data="initEditionText_15095()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 19058 <!-- Marketing short text --> 19059 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 19060 </div> 19061 </div> 19062 19063 <div class="py-1 grid mb-4 "> 19064 19065 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":15095,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":15095,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"15011":"1","15014":"1","15015":"1"},"childProductsAlertStatus":{"15011":"0","15014":"0","15015":"0"},"indexMapping":{"163:15":15011,"163:8":15014,"163:9":15015},"availabilityMessages":{"15011":"Lieferbar innerhalb von 3-5 Tagen","15014":"Download sofort verf\u00fcgbar","15015":"Download sofort verf\u00fcgbar"},"openAccess":{"15095":{"status":0},"15011":{"status":0},"15014":{"status":0},"15015":{"status":0}}},"availabilityMessages":{"15011":"Lieferbar innerhalb von 3-5 Tagen","15014":"Download sofort verf\u00fcgbar","15015":"Download sofort verf\u00fcgbar"},"openAccess":{"15095":{"status":0},"15011":{"status":0},"15014":{"status":0},"15015":{"status":0}}}'> 19066 <template x-if="containerVisible"> 19067 <!-- Popup Trigger --> 19068 <div> 19069 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 19070 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
19071 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 19072 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 19073<title>bell</title></svg> 19074</span> 19075 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 19076 19077 <!-- Popup Modal --> 19078 <template x-if="showModal"> 19079 <template x-teleport=".page-wrapper"> 19080 <div x-cloak class="fixed inset-0 flex items-center justify-center 19081 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 19082 <div class="relative bg-white rounded-lg shadow-xl 19083 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 19084 <div class="p-6"> 19085 <!-- Subscription Form for Popup --> 19086 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 19087 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 19088 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 19089 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 19090 19091 <div class="flex flex-col gap-3"> 19092 <div class="flex-grow grow"> 19093 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 19094 shadow-xs focus:outline-none focus:outline-hidden 19095 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 19096 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 19097 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 19098 </div> 19099 <input type="hidden" name="product_id" :value="currentProductId"> 19100 <input type="hidden" name="type" value="email"> 19101 19102 19103 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 19104 19105 <div class="amxnotif_guest_action"> 19106 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 19107 rounded-md focus:outline-none 19108 focus:outline-hidden focus:ring-2 19109 focus:ring-offset-2 disabled:opacity-50 19110 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 19111 Benachrichtigen </button> 19112 </div> 19113 </div> 19114 19115 <div class="flex items-start pt-2"> 19116 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 19117 text-blue-600 border-gray-300 rounded-sm"> 19118 <label class="amxnotif-stock-gdrp-label cursor-pointer 19119 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 19120 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 19121 </div> 19122 </form> 19123 </div> 19124 19125 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 19126 hover:text-gray-600 transition-colors" aria-label="Schließen"> 19127 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 19128 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 19129<title>x</title></svg> 19130 </button> 19131 </div> 19132 </div> 19133 </template> 19134 </template> 19135 </div> 19136 </template> 19137 </div> 19138 19139<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_15095" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":15095,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"15011":"1","15014":"1","15015":"1"},"childProductsAlertStatus":{"15011":"0","15014":"0","15015":"0"},"indexMapping":"{\u0022163:15\u0022:15011,\u0022163:8\u0022:15014,\u0022163:9\u0022:15015}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":15095,"availabilityMessages":{"15011":"Lieferbar innerhalb von 3-5 Tagen","15014":"Download sofort verf\u00fcgbar","15015":"Download sofort verf\u00fcgbar"},"openAccess":{"15095":{"status":0},"15011":{"status":0},"15014":{"status":0},"15015":{"status":0}}}'> 19140 19141 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
19142 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 19143 <span x-html="optionsLabelText"></span> 19144 </p> 19145</div> </div> 19146 19147
19147<script> 19148 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 19149 try { 19150 const attributes = (config && config.attributes) ? config.attributes : null; 19151 if (!attributes) return []; 19152 let attr = null; 19153 if (Array.isArray(attributes)) { 19154 for (let i = 0; i < attributes.length; i++) { 19155 const a = attributes[i]; 19156 if (a && a.id == attrId) { 19157 attr = a; 19158 break; 19159 } 19160 } 19161 } else { 19162 attr = attributes[attrId]; 19163 } 19164 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 19165 } catch (e) { 19166 return []; 19167 } 19168 }; 19169 19170 function initConfigurableSwatchOptions_15095() { 19171 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["15011"]},{"id":"8","label":"PDF","products":["15014"]},{"id":"9","label":"EPUB","products":["15015"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"15011":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15014":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15015":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"isApproxPrice":null},"productId":"15095","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"15011":{"163":"15"},"15014":{"163":"8"},"15015":{"163":"9"}},"salable":{"163":{"15":["15011"],"8":["15014"],"9":["15015"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"15011":"004604","15014":"004605","15015":"004606"},"output":{"15011":"Kartoniert","15014":"PDF","15015":"EPUB"},"original_name":{"15011":"","15014":"","15015":""},"openaccess_license_link":{"15011":"","15014":"","15015":""},"openaccess_license_name":{"15011":"","15014":"","15015":""},"openaccess_external_link":{"15011":"","15014":"","15015":""},"gpsr_safety_info":{"15011":"","15014":"","15015":""},"description":{"15011":"Ob Naturkatastrophen in Folge des Klimawandels, die Corona-Pandemie oder der \u00dcberfall Russlands auf die Ukraine \u2013 in den letzten Jahren schien die Demokratie oft unf\u00e4hig, sich angesichts unvorhersehbarer Krisen zu bew\u00e4hren und zukunftsf\u00e4hige Entscheidungen zu treffen. Brauchen demokratische Gesellschaften also ad\u00e4quatere, auf Futurit\u00e4t ausgerichtete Verfahren der Entscheidung? <br\/><br\/>Im Zentrum demokratischer Verfahren steht die offene Frage, wer wie entscheiden soll. Nimmt man in die Beantwortung der Frage nach dem Wie die Komponente der Zukunftsf\u00e4higkeit hinzu, muss die Umsetzung des Prinzips Demokratie zeittheoretisch neu gedacht werden. Entscheidungsverfahren sind so zu konzipieren, dass sie nicht nur f\u00fcr uns heute legitim und rational, sondern auch f\u00fcr andere Zeiten tauglich sind \u2013 der multifaktoriellen Unvorhersehbarkeit der Zukunft und Unabsch\u00e4tzbarkeit der Konsequenzen gegenw\u00e4rtiger Handlungen f\u00fcr kommende Generationen zum Trotz. <br\/><br\/>In diesem Buch entwickelt Ludger Schwarte Prinzipien zukunftstauglichen demokratischen Entscheidens. Denn ebenso wie die zeitlichen Bedingungen der Freiheit sind die Aspekte der Ereignishaftigkeit und Zukunftsf\u00e4higkeit in der politischen Philosophie bislang kaum ber\u00fccksichtigt worden. Wo sie \u00fcber Verantwortung, Nachhaltigkeit und Generationengerechtigkeit nachdenkt, setzt sie die Gegenwart als Ma\u00dfstab f\u00fcr vern\u00fcnftige Schlussfolgerungen, anstatt Diskontinuit\u00e4ten und Futurit\u00e4t in Rechnung zu stellen. Ausgehend von einer Kennzeichnung des Standes der Diskussion in der politischen und Zeitphilosophie entwickelt Schwarte aus der Analyse demokratischer Utopien eine Vorstellung von politischer Freiheit, die den zeitlichen Horizont \u00fcberschreitet und auch die zeitliche Umwelt in die Kritik gegenw\u00e4rtiger Verh\u00e4ltnisse einbezieht. Die Er\u00f6rterung der Grundlagen, Ziele und zeitlichen Strukturen demokratischen Entscheidens m\u00fcndet in den Entwurf eines Verfahrens, welches es erlauben soll, das Urteilsverm\u00f6gen nicht nur am Gegebenen und Erwartbaren, sondern auch an der Antizipation des (noch) Unm\u00f6glichen auszurichten. ","15014":"Ob Naturkatastrophen in Folge des Klimawandels, die Corona-Pandemie oder der \u00dcberfall Russlands auf die Ukraine \u2013 in den letzten Jahren schien die Demokratie oft unf\u00e4hig, sich angesichts unvorhersehbarer Krisen zu bew\u00e4hren und zukunftsf\u00e4hige Entscheidungen zu treffen. Brauchen demokratische Gesellschaften also ad\u00e4quatere, auf Futurit\u00e4t ausgerichtete Verfahren der Entscheidung? <br\/><br\/>Im Zentrum demokratischer Verfahren steht die offene Frage, wer wie entscheiden soll. Nimmt man in die Beantwortung der Frage nach dem Wie die Komponente der Zukunftsf\u00e4higkeit hinzu, muss die Umsetzung des Prinzips Demokratie zeittheoretisch neu gedacht werden. Entscheidungsverfahren sind so zu konzipieren, dass sie nicht nur f\u00fcr uns heute legitim und rational, sondern auch f\u00fcr andere Zeiten tauglich sind \u2013 der multifaktoriellen Unvorhersehbarkeit der Zukunft und Unabsch\u00e4tzbarkeit der Konsequenzen gegenw\u00e4rtiger Handlungen f\u00fcr kommende Generationen zum Trotz. <br\/><br\/>In diesem Buch entwickelt Ludger Schwarte Prinzipien zukunftstauglichen demokratischen Entscheidens. Denn ebenso wie die zeitlichen Bedingungen der Freiheit sind die Aspekte der Ereignishaftigkeit und Zukunftsf\u00e4higkeit in der politischen Philosophie bislang kaum ber\u00fccksichtigt worden. Wo sie \u00fcber Verantwortung, Nachhaltigkeit und Generationengerechtigkeit nachdenkt, setzt sie die Gegenwart als Ma\u00dfstab f\u00fcr vern\u00fcnftige Schlussfolgerungen, anstatt Diskontinuit\u00e4ten und Futurit\u00e4t in Rechnung zu stellen. Ausgehend von einer Kennzeichnung des Standes der Diskussion in der politischen und Zeitphilosophie entwickelt Schwarte aus der Analyse demokratischer Utopien eine Vorstellung von politischer Freiheit, die den zeitlichen Horizont \u00fcberschreitet und auch die zeitliche Umwelt in die Kritik gegenw\u00e4rtiger Verh\u00e4ltnisse einbezieht. Die Er\u00f6rterung der Grundlagen, Ziele und zeitlichen Strukturen demokratischen Entscheidens m\u00fcndet in den Entwurf eines Verfahrens, welches es erlauben soll, das Urteilsverm\u00f6gen nicht nur am Gegebenen und Erwartbaren, sondern auch an der Antizipation des (noch) Unm\u00f6glichen auszurichten. ","15015":"Ob Naturkatastrophen in Folge des Klimawandels, die Corona-Pandemie oder der \u00dcberfall Russlands auf die Ukraine \u2013 in den letzten Jahren schien die Demokratie oft unf\u00e4hig, sich angesichts unvorhersehbarer Krisen zu bew\u00e4hren und zukunftsf\u00e4hige Entscheidungen zu treffen. Brauchen demokratische Gesellschaften also ad\u00e4quatere, auf Futurit\u00e4t ausgerichtete Verfahren der Entscheidung? <br\/><br\/>Im Zentrum demokratischer Verfahren steht die offene Frage, wer wie entscheiden soll. Nimmt man in die Beantwortung der Frage nach dem Wie die Komponente der Zukunftsf\u00e4higkeit hinzu, muss die Umsetzung des Prinzips Demokratie zeittheoretisch neu gedacht werden. Entscheidungsverfahren sind so zu konzipieren, dass sie nicht nur f\u00fcr uns heute legitim und rational, sondern auch f\u00fcr andere Zeiten tauglich sind \u2013 der multifaktoriellen Unvorhersehbarkeit der Zukunft und Unabsch\u00e4tzbarkeit der Konsequenzen gegenw\u00e4rtiger Handlungen f\u00fcr kommende Generationen zum Trotz. <br\/><br\/>In diesem Buch entwickelt Ludger Schwarte Prinzipien zukunftstauglichen demokratischen Entscheidens. Denn ebenso wie die zeitlichen Bedingungen der Freiheit sind die Aspekte der Ereignishaftigkeit und Zukunftsf\u00e4higkeit in der politischen Philosophie bislang kaum ber\u00fccksichtigt worden. Wo sie \u00fcber Verantwortung, Nachhaltigkeit und Generationengerechtigkeit nachdenkt, setzt sie die Gegenwart als Ma\u00dfstab f\u00fcr vern\u00fcnftige Schlussfolgerungen, anstatt Diskontinuit\u00e4ten und Futurit\u00e4t in Rechnung zu stellen. Ausgehend von einer Kennzeichnung des Standes der Diskussion in der politischen und Zeitphilosophie entwickelt Schwarte aus der Analyse demokratischer Utopien eine Vorstellung von politischer Freiheit, die den zeitlichen Horizont \u00fcberschreitet und auch die zeitliche Umwelt in die Kritik gegenw\u00e4rtiger Verh\u00e4ltnisse einbezieht. Die Er\u00f6rterung der Grundlagen, Ziele und zeitlichen Strukturen demokratischen Entscheidens m\u00fcndet in den Entwurf eines Verfahrens, welches es erlauben soll, das Urteilsverm\u00f6gen nicht nur am Gegebenen und Erwartbaren, sondern auch an der Antizipation des (noch) Unm\u00f6glichen auszurichten. "},"doi":{"15011":"","15014":"10.28937\/978-3-7873-4605-9","15015":""},"isbn":{"15011":"978-3-7873-4604-2","15014":"978-3-7873-4605-9","15015":"978-3-7873-4606-6"},"marketing_short_text":{"15011":"","15014":"","15015":""},"recension_text":{"15011":"","15014":"","15015":""},"language":{"15011":"","15014":"","15015":""},"cover":{"15011":"Kartoniert","15014":"","15015":""},"pages":{"15011":"495 Seiten","15014":"495 Seiten","15015":"495 Seiten"},"edition":{"15011":"","15014":"Unver\u00e4ndertes eBook der 1. Auflage von 2024","15015":"Unver\u00e4ndertes EPUB der 1. Auflage von 2024"},"pod":{"15011":"Nein","15014":"Nein","15015":"Nein"},"copyright_year":{"15011":"","15014":"","15015":""},"vlb_tix_link":{"15011":"https:\/\/neu.vlbtix.de\/products\/9783787346042?type=gtin","15014":"","15015":""},"defaultValues":{"163":"15"}}; 19172 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 19173 19174 if (typeof window.amxnotif_wrap_attributes === 'function') { 19175 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 19176 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 19177 } 19178 19179 const configurableOptionsComponent = initConfigurableOptions( 19180 '15095', 19181 config 19182 ); 19183 const swatchOptionsComponent = initSwatchOptions( 19184 swatchConfig 19185 ); 19186 19187 // DWS - Configurable product preselect start 19188 const confProdPreSelect = () => { 19189 return { 19190 preselectQuerystringItems() { 19191 var data = {"id":"15011","output":"15"}; 19192 const urlQueryParams = new URLSearchParams(window.location.search); 19193 19194 this.$nextTick(() => { 19195 setTimeout(() => { 19196 const rootEl = this.$root || this.$el; 19197 if (!rootEl) return; 19198 19199 const applySelection = (attrCode, attrValue) => { 19200 if (attrValue === undefined || attrValue === null || attrValue === '') return; 19201 19202 const attributes = Object.values(this.optionConfig.attributes || {}); 19203 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 19204 19205 if (targetAttr) { 19206 const attrId = String(targetAttr.id); 19207 const optionVal = String(attrValue); 19208 19209 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 19210 19211 if (inputEl) { 19212 inputEl.click(); 19213 inputEl.dispatchEvent(new Event('change', { 19214 bubbles: true 19215 })); 19216 } else { 19217 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 19218 if (selectEl) { 19219 selectEl.value = optionVal; 19220 selectEl.dispatchEvent(new Event('change', { 19221 bubbles: true 19222 })); 19223 } 19224 } 19225 19226 this.changeOption(attrId, optionVal, false); 19227 } 19228 }; 19229 19230 if (data && typeof data === 'object') {
19231 Object.keys(data).forEach(key => applySelection(key, data[key])); 19232 } 19233 19234 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 19235 if (attribute && attribute.code) { 19236 let optionValue = urlQueryParams.get(attribute.code); 19237 if (optionValue) { 19238 let optionId = false; 19239 const attributes = Object.values(this.optionConfig.attributes || {}); 19240 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 19241 19242 let found = false; 19243 Object.values(targetAttr.options).map(option => { 19244 if (found === false && option.label === optionValue) { 19245 optionId = option.id; 19246 found = true; 19247 } 19248 }); 19249 19250 const attrId = String(targetAttr.id); 19251 let optionVal = String(optionValue); 19252 if (found) { 19253 optionVal = String(optionId); 19254 } 19255 19256 applySelection(attribute.code, optionVal); 19257 } 19258 } 19259 }); 19260 }, 100); 19261 }); 19262 } 19263 } 19264 }; 19265 // DWS - Configurable product preselect end 19266 19267 const result = Object.assign( 19268 configurableOptionsComponent, 19269 swatchOptionsComponent, { 19270 productId: '15095', 19271 productIndex: 0, 19272 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 19273 showSwatches: false, 19274 precalcOptions: {}, 19275 originalInit: configurableOptionsComponent.init, 19276 init() { 19277 try { 19278 this.precalcOptions = {}; 19279 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 19280 this.preselectQuerystringItems(); 19281 if (Array.isArray(attrSource)) { 19282 attrSource.forEach(attr => { 19283 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 19284 }); 19285 } else if (attrSource && typeof attrSource === 'object') { 19286 Object.keys(attrSource).forEach(id => { 19287 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 19288 }); 19289 } 19290 } catch (e) { 19291 console.error('Pre-calc error:', e); 19292 } 19293 19294 if (typeof this.originalInit === 'function') { 19295 this.originalInit(); 19296 } 19297 19298 try { 19299 this.initShowSwatchesIntersect(); 19300 } catch (e) { 19301 console.error('intersect error:', e); 19302 } 19303 }, 19304 19305 updateGallery() { 19306 if (!this.productIndex) return; 19307 19308 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 19309 method: 'GET', 19310 headers: { 19311 'Content-Type': 'application/json', 19312 'X-Requested-With': 'XMLHttpRequest' 19313 } 19314 }) 19315 .then(response => response.json()) 19316 .then(data => { 19317 if (data && data.medium) { 19318 window.dispatchEvent(new CustomEvent("update-gallery-15095", { 19319 detail: data.medium 19320 })); 19321 } 19322 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 19323 }, 19324 19325 19326 initShowSwatchesIntersect() { 19327 const observer = new IntersectionObserver(entries => { 19328 if (entries[0].isIntersecting) { 19329 this.showSwatches = true; 19330 observer.disconnect(); 19331 } 19332 }, { 19333 rootMargin: '512px' 19334 }); 19335 observer.observe(this.$el); 19336 }, 19337 getOptions(attrId) { 19338 return this.precalcOptions[attrId] || []; 19339 }, 19340 getOptionsByAttrId() { 19341 return this.getOptions(this.$el.dataset.attributeId); 19342 }, 19343 _getItemId() { 19344 if (this.item && this.item.id) return this.item.id; 19345 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 19346 }, 19347 getSwatchOptionHtmlId() { 19348 const itemId = this._getItemId(); 19349 return itemId ? this.$id(`attribute-option-15095-${itemId}`) : ''; 19350 }, 19351 getSwatchOptionHtmlIdGroup() { 19352 const itemId = this._getItemId(); 19353 return itemId ? [`attribute-option-15095-${itemId}`] : []; 19354 }, 19355 getAttributeSwatchData(attributeId) { 19356 const data = Object.assign({}, this.swatchConfig[attributeId]); 19357 if (data['additional_data']) { 19358 try { 19359 data['details'] = JSON.parse(data['additional_data']); 19360 } catch (e) { 19361 data['details'] = {}; 19362 } 19363 } 19364 return data; 19365 }, 19366 getSwatchType(attributeId, optionId) { 19367 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 19368 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 19369 } 19370 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 19371 this.swatchConfig[attributeId].details.swatch_input_type : 19372 "empty"; 19373 if (type === 'visual') { 19374 const config = this.swatchConfig[attributeId]; 19375 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 19376 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 19377 } 19378 // Fallback to first option type 19379 for (const oId in config) { 19380 if (config[oId] && typeof config[oId].type !== 'undefined') { 19381 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 19382 } 19383 } 19384 } 19385 return type; 19386 }, 19387 mapSwatchTypeNumberToTypeCode(type) { 19388 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 19389 }, 19390 isTextSwatch() { 19391 const itemId = this._getItemId(); 19392 if (!this.$el || !itemId) return false;
19393 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19394 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 19395 }, 19396 19397 getSwatchText() { 19398 const itemId = this._getItemId(); 19399 if (this.item) return this.item.label || ''; 19400 if (!this.$el || !itemId) return ''; 19401 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19402 const options = attrId ? this.getOptions(attrId) : []; 19403 const opt = options.find(o => o.id == itemId); 19404 return opt ? opt.label : ''; 19405 }, 19406 getSwatchBackgroundStyle() { 19407 const itemId = this._getItemId(); 19408 if (!this.$el || !itemId) return ''; 19409 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19410 if (!attrId) return ''; 19411 const type = this.getSwatchType(attrId, itemId); 19412 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 19413 this.swatchConfig[attrId][itemId] : 19414 null; 19415 if (!swatchData) return ''; 19416 if (type === "color") return 'background-color:' + swatchData.value; 19417 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 19418 return ''; 19419 }, 19420 swatchOptionClasses() { 19421 const itemId = this._getItemId(); 19422 if (!this.$el || !itemId) return {}; 19423 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19424 return { 19425 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 19426 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 19427 'w-6 h-6': !this.isTextSwatch() 19428 } 19429 }, 19430 19431 onFocusSwatchItem() { 19432 const itemId = this._getItemId(); 19433 if (itemId) this.focusedLabel = itemId; 19434 }, 19435 onChangeOption() { 19436 const itemId = this._getItemId(); 19437 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 19438 if (attrId && itemId) this.changeOption(attrId, itemId); 19439 }, 19440 changeOption(attributeId, value) { 19441 if (value === '') { 19442 return; 19443 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 19444 } else { 19445 this.selectedValues[attributeId] = value; 19446 } 19447 19448 this.findSimpleIndex(); 19449 this.findAllowedAttributeOptions(); 19450 this.updatePrices(); 19451 this.updateGallery(); 19452 19453 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 19454 this.findProductIdsForPartialSelection(this.selectedValues) : []; 19455 19456 const eventDetail = { 19457 productId: this.productId, 19458 optionId: attributeId, 19459 value: value, 19460 productIndex: this.productIndex || 0, 19461 selectedValues: this.selectedValues, 19462 candidates: candidates, 19463 sourceElement: this.$el 19464 }; 19465 19466 // Dispatch for Amasty 19467 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 19468 detail: eventDetail 19469 })); 19470 19471 // Dispatch for Hyva listing 19472 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 19473 detail: eventDetail 19474 })); 19475 }, 19476 19477 19478 clearOptionIfActive() { 19479 const itemId = this._getItemId(); 19480 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 19481 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 19482 this.changeOption(attrId, ''); 19483 19484 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 19485 if (!input && this.$el?.querySelector) { 19486 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 19487 } 19488 if (!input && this.$el?.closest) { 19489 const root = this.$el.closest('[data-product-id]') || this.$el; 19490 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 19491 } 19492 if (input) { 19493 input.checked = false;
19494 } 19495 } 19496 }, 19497 get optionIsEnabled() { 19498 const itemId = this._getItemId(); 19499 if (!this.$el || !itemId) return true; 19500 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19501 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 19502 return !!allowedOptions.find(opt => opt.id == itemId); 19503 }, 19504 get isSelected() { 19505 const itemId = this._getItemId(); 19506 if (!this.$el || !itemId) return false; 19507 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19508 return attrId ? (this.selectedValues[attrId] == itemId) : false; 19509 }, 19510 get isSwatchRequired() { 19511 if (!this.$el) return false; 19512 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19513 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 19514 }, 19515 focusedLabel: false, 19516 activeTooltipItem: false, 19517 tooltipPositionElement: false,
19518 setActiveTooltipItem() { 19519 const itemId = this._getItemId(); 19520 if (!this.$el || !itemId) return; 19521 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 19522 this.activeTooltipItem = { 19523 attribute: attrId, 19524 item: itemId, 19525 index: 0 19526 }; 19527 this.tooltipPositionElement = this.$event ? this.$event.target : null; 19528 }, 19529 unsetActiveTooltipItem() { 19530 this.activeTooltipItem = false; 19531 } 19532 }, 19533 confProdPreSelect() 19534 ); 19535 19536 if (result.optionConfig && result.optionConfig.attributes) { 19537 const attributes = result.optionConfig.attributes; 19538 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 19539 let source = attributes; 19540 if (Array.isArray(attributes)) { 19541 source = {}; 19542 attributes.forEach(attr => { 19543 if (attr && attr.id) source[attr.id] = attr; 19544 }); 19545 } 19546 const values = Object.values(source); 19547 const wrapper = Object.assign(values, source); 19548 Object.defineProperty(wrapper, '__amxnotifWrapped', { 19549 value: true, 19550 enumerable: false 19551 }); 19552 result.optionConfig.attributes = wrapper; 19553 } 19554 } 19555 19556 return result; 19557 } 19558 19559 window.addEventListener('alpine:init', () => { 19560 Alpine.data('initConfigurableSwatchOptions_15095', initConfigurableSwatchOptions_15095); 19561 }, { 19562 once: true 19563 }); 19564 </script>
19564 19565 19566 <div x-data="initConfigurableSwatchOptions_15095" x-defer="intersect"> 19567 <div class="pagebuilder-home-hidden"> 19568 19569 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 19570 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 19571 <template x-if="showSwatches"> 19572 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-15095-163" role="radiogroup" aria-label="Einband"> 19573 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 19574 <div :data-option-id="item.id" style="display: contents"> 19575 <div x-id="getSwatchOptionHtmlIdGroup"> 19576 <template x-if="optionIsEnabled"> 19577 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
19577self="unsetActiveTooltipItem"> 19578 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-15095-163"> 19579 <div> 19580 <template x-if="isTextSwatch"> 19581 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 19582 </template> 19583 <template x-if="!optionIsActive(163, item.id)"> 19584 <div> 19585 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 19586 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 19587 </svg> 19588 </div> 19589 </template> 19590 </div> 19591 </label> 19592 </template> 19593</div> </div> 19594 </template> 19595 </div> 19596 </template> 19597 </div> 19598 </div> 19599 </div> 19600 </div> 19601 19602 <div class="meta py-4 pagebuilder-home-hidden"> 19603 <div x-data="initMarketingShortText_15095()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 19604 <!-- Marketing short text --> 19605 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 19606 </div> 19607 19608 <!-- Short description --> 19609 <div class="short-description"> 19610 Ob Naturkatastrophen in Folge des Klimawandels, die Corona-Pandemie oder der Überfall Russlands auf die Ukraine – in den letzten Jahren schien die Demokratie oft unfähig, sich angesichts ... <a href="https://meiner.de/fmv_de/qualita-ten-der-freiheit-16741" class="underline">mehr</a> 19611 </div> 19612 </div> 19613 19614 <!-- Series --> 19615 <div class="mb-1"> 19616 <span class="sr-only">Reihe:</span> 19617 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 19618 <span>Blaue Reihe</span> 19619 </a> 19620 </div> 19621 19622 19623 <div class="mb-1"> 19624 <span x-data="initEditionText_15095()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 19625 <!-- Marketing short text --> 19626 <span class="edition-text" x-html="editionText"></span> 2024, 495 Seiten </span> 19627 </div> 19628 19629 </div> 19630 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 19631 19632 <div class="justify-end" x-data="initPriceBox()" @update-prices-15095.window="updatePrice($event.detail);"> 19633 <div class="price-box price-final_price" data-role="priceBox" data-product-id="15095" data-price-box="product-id-15095"><span class="normal-price"> 19634 <span x-data x-id="['product\u002Dprice\u002D15095']" class="price-container price-final_price tax weee"> 19635 <span class="price-label">Ab</span> 19636 <span class="approx-price">ca. </span> 19637 <span :id="$id('product\u002Dprice\u002D15095')" data-price-amount="21.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">21,99 €</span></span> 19638 </span> 19639</span> 19640 19641 19642</div> </div> 19643 19644 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 19645 <div class="open-access-container open-access-container-15095 flex mt-4 ml-auto sm:mt-0 hidden"> 19646 <div class="text-gray-700"> 19647 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 19648 <a href="" target="_blank" class="open-access-external-link m-auto "> 19649 Kostenlos online lesen </a> 19650 </button> 19651 </div> 19652 </div> 19653 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Qualitäten der Freiheit" aria-label="In den Warenkorb Qualitäten der Freiheit" data-addto="cart"> 19654 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 19655 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
196550 014 0z"></path> 19656</svg> 19657 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 19658 In den Warenkorb </span> 19659 </button> 19660 19661<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(15095)" aria-label="Zur Wunschliste hinzufügen Qualitäten der Freiheit" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 19662 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 19663 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 19664</svg> 19665</button> 19666 </div> 19667 </div> 19668 </div> 19669
19669<script> 19670 function initMarketingShortText_15095() { 19671 var marketingShortTextConfig = {}; 19672 if (typeof window.initConfigurableSwatchOptions_15095 === "function") { 19673 var fullConfig = window.initConfigurableSwatchOptions_15095().optionConfig 19674 var marketingShortTextConfig = fullConfig.marketing_short_text; 19675 } 19676 return { 19677 marketingShortText: '', 19678 config: marketingShortTextConfig, 19679 productId: '15095', 19680 getMarketingShortText(detail) { 19681 this.marketingShortText = detail.productIndex ? 19682 this.config[detail.productIndex] : 19683 null; 19684 }, 19685 eventListeners: { 19686 ['@listing-configurable-selection-changed.window'](event) { 19687 if (this.productId == event.detail.productId) { 19688 this.getMarketingShortText(event.detail); 19689 } 19690 19691 } 19692 } 19693 } 19694 } 19695 19696 function initEditionText_15095() { 19697 var editionTextConfig = {}; 19698 if (typeof window.initConfigurableSwatchOptions_15095 === "function") { 19699 var fullConfig = window.initConfigurableSwatchOptions_15095().optionConfig 19700 var editionTextConfig = fullConfig.edition; 19701 } 19702 return { 19703 editionText: '', 19704 config: editionTextConfig, 19705 productId: '15095', 19706 getEditionText(detail) { 19707 this.editionText = detail.productIndex ? 19708 this.config[detail.productIndex] : 19709 null; 19710 }, 19711 eventListeners: { 19712 ['@listing-configurable-selection-changed.window'](event) { 19713 if (this.productId == event.detail.productId) { 19714 this.getEditionText(event.detail); 19715 } 19716 19717 } 19718 } 19719 } 19720 } 19721 </script>
19721 19722 </form> 19723 19724 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4015/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk9137"> 19725 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4015"> 19726 <a href="https://meiner.de/fmv_de/demokratie-der-gefa-hle-9137" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 19727 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4015.window="$el.src = $event.detail" alt="Demokratie der Gefühle" title="Demokratie der Gefühle" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787340811_4.jpg" :style="{ 19728 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 19729 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 19730 }"> 19731 </a> 19732 <div class="product-info flex flex-col flex-grow "> 19733 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 19734 <div class="mb-2 text-sm text-gray-500 font-medium"> 19735 <a href="https://meiner.de/fmv_de/person/Josef-Fruchtl-3439/" class="mb-2"> 19736 Josef Früchtl </a> 19737 </div> 19738 <a class="product-item-link" href="https://meiner.de/fmv_de/demokratie-der-gefa-hle-9137"> 19739 Demokratie der Gefühle </a> 19740 </div> 19741 19742 <div x-data="initEditionText_4015()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 19743 <!-- Marketing short text --> 19744 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 19745 </div> 19746 </div> 19747 19748 <div class="py-1 grid mb-4 "> 19749 19750 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4015,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4015,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7668":"1","7670":"1","7725":"1"},"childProductsAlertStatus":{"7668":"0","7670":"0","7725":"0"},"indexMapping":{"163:15":7668,"163:8":7670,"163:9":7725},"availabilityMessages":{"7668":"Lieferbar innerhalb von 3-5 Tagen","7670":"Download sofort verf\u00fcgbar","7725":"Download sofort verf\u00fcgbar"},"openAccess":{"4015":{"status":0},"7668":{"status":0},"7670":{"status":0},"7725":{"status":0}}},"availabilityMessages":{"7668":"Lieferbar innerhalb von 3-5 Tagen","7670":"Download sofort verf\u00fcgbar","7725":"Download sofort verf\u00fcgbar"},"openAccess":{"4015":{"status":0},"7668":{"status":0},"7670":{"status":0},"7725":{"status":0}}}'> 19751 <template x-if="containerVisible"> 19752 <!-- Popup Trigger --> 19753 <div> 19754 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 19755 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
19756 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 19757 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 19758<title>bell</title></svg> 19759</span> 19760 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 19761 19762 <!-- Popup Modal --> 19763 <template x-if="showModal"> 19764 <template x-teleport=".page-wrapper"> 19765 <div x-cloak class="fixed inset-0 flex items-center justify-center 19766 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 19767 <div class="relative bg-white rounded-lg shadow-xl 19768 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 19769 <div class="p-6"> 19770 <!-- Subscription Form for Popup --> 19771 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 19772 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 19773 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 19774 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 19775 19776 <div class="flex flex-col gap-3"> 19777 <div class="flex-grow grow"> 19778 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 19779 shadow-xs focus:outline-none focus:outline-hidden 19780 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 19781 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 19782 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 19783 </div> 19784 <input type="hidden" name="product_id" :value="currentProductId"> 19785 <input type="hidden" name="type" value="email"> 19786 19787 19788 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 19789 19790 <div class="amxnotif_guest_action"> 19791 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 19792 rounded-md focus:outline-none 19793 focus:outline-hidden focus:ring-2 19794 focus:ring-offset-2 disabled:opacity-50 19795 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 19796 Benachrichtigen </button> 19797 </div> 19798 </div> 19799 19800 <div class="flex items-start pt-2"> 19801 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 19802 text-blue-600 border-gray-300 rounded-sm"> 19803 <label class="amxnotif-stock-gdrp-label cursor-pointer 19804 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 19805 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 19806 </div> 19807 </form> 19808 </div> 19809 19810 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 19811 hover:text-gray-600 transition-colors" aria-label="Schließen"> 19812 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 19813 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 19814<title>x</title></svg> 19815 </button> 19816 </div> 19817 </div> 19818 </template> 19819 </template> 19820 </div> 19821 </template> 19822 </div> 19823 19824<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4015" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4015,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7668":"1","7670":"1","7725":"1"},"childProductsAlertStatus":{"7668":"0","7670":"0","7725":"0"},"indexMapping":"{\u0022163:15\u0022:7668,\u0022163:8\u0022:7670,\u0022163:9\u0022:7725}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4015,"availabilityMessages":{"7668":"Lieferbar innerhalb von 3-5 Tagen","7670":"Download sofort verf\u00fcgbar","7725":"Download sofort verf\u00fcgbar"},"openAccess":{"4015":{"status":0},"7668":{"status":0},"7670":{"status":0},"7725":{"status":0}}}'> 19825 19826 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
19827 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 19828 <span x-html="optionsLabelText"></span> 19829 </p> 19830</div> </div> 19831 19832
19832<script> 19833 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 19834 try { 19835 const attributes = (config && config.attributes) ? config.attributes : null; 19836 if (!attributes) return []; 19837 let attr = null; 19838 if (Array.isArray(attributes)) { 19839 for (let i = 0; i < attributes.length; i++) { 19840 const a = attributes[i]; 19841 if (a && a.id == attrId) { 19842 attr = a; 19843 break; 19844 } 19845 } 19846 } else { 19847 attr = attributes[attrId]; 19848 } 19849 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 19850 } catch (e) { 19851 return []; 19852 } 19853 }; 19854 19855 function initConfigurableSwatchOptions_4015() { 19856 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7668"]},{"id":"8","label":"PDF","products":["7670"]},{"id":"9","label":"EPUB","products":["7725"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7668":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7670":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7725":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"4015","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7668":{"163":"15"},"7670":{"163":"8"},"7725":{"163":"9"}},"salable":{"163":{"15":["7668"],"8":["7670"],"9":["7725"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"7668":"004048","7670":"004049","7725":"004081"},"output":{"7668":"Kartoniert","7670":"PDF","7725":"EPUB"},"original_name":{"7668":"","7670":"","7725":""},"openaccess_license_link":{"7668":"","7670":"","7725":""},"openaccess_license_name":{"7668":"","7670":"","7725":""},"openaccess_external_link":{"7668":"","7670":"","7725":""},"gpsr_safety_info":{"7668":"","7670":"","7725":""},"description":{"7668":"Vor dem Hintergrund einer zunehmend von politischen Emotionen gepr\u00e4gten gesellschaftlichen Lage stellt das neue Buch von Josef Fr\u00fcchtl die grunds\u00e4tzliche Frage nach dem Zusammenhang von Gef\u00fchlen und Politik und verbindet sie mit einer \u00e4sthetischen Perspektive.<br>\n\nAuf zentralen gesellschaftlichen Ebenen \u2013 technologisch in den digitalen Netzwerken mit ihren \u00bbhate speeches\u00ab und \u00bbshit storms\u00ab, \u00f6konomisch im kapitalistisch rasenden Prozess der Globalisierung, kulturell im Kampf religi\u00f6s unterf\u00fctterter Wertsysteme und staatspolitisch im kriegerischen Zerfall von Nationen \u2013 haben sich in den vergangenen zwei bis drei Jahrzehnten die Schleusen f\u00fcr eine Politik der Emotionen ge\u00f6ffnet. Welche Rolle aber spielen Gef\u00fchle in einer demokratischen Lebensform? Und welche Rolle kommt den von Kunst und popul\u00e4rer Kultur angeleiteten Erfahrungen dabei zu? Die entscheidende Frage kann heute nicht mehr sein, ob, sondern in welchem Ausma\u00df und in welchem Sinn Gef\u00fchle eine Rolle im demokratischen Streit spielen und spielen sollen. Auf diese Frage \u2013 so die These Fr\u00fcchtls \u2013 gibt es vier zentrale Antworten. Im politischen Zusammenhang verlangen Gef\u00fchle n\u00e4mlich nach einer zeitgem\u00e4\u00dfen Form der Darstellung, nach M\u00e4\u00dfigung, nach balancierendem Ausgleich und n
19856ach sinnvoller Umwandlung. Diese vierfache Reaktion l\u00e4sst sich entweder unter Mithilfe von \u00e4sthetischen Erfahrungen oder sogar in ausgezeichneter Weise durch sie erreichen.","7670":"Vor dem Hintergrund einer zunehmend von politischen Emotionen gepr\u00e4gten gesellschaftlichen Lage stellt das neue Buch von Josef Fr\u00fcchtl die grunds\u00e4tzliche Frage nach dem Zusammenhang von Gef\u00fchlen und Politik und verbindet sie mit einer \u00e4sthetischen Perspektive.<br>\n\nAuf zentralen gesellschaftlichen Ebenen \u2013 technologisch in den digitalen Netzwerken mit ihren \u00bbhate speeches\u00ab und \u00bbshit storms\u00ab, \u00f6konomisch im kapitalistisch rasenden Prozess der Globalisierung, kulturell im Kampf religi\u00f6s unterf\u00fctterter Wertsysteme und staatspolitisch im kriegerischen Zerfall von Nationen \u2013 haben sich in den vergangenen zwei bis drei Jahrzehnten die Schleusen f\u00fcr eine Politik der Emotionen ge\u00f6ffnet. Welche Rolle aber spielen Gef\u00fchle in einer demokratischen Lebensform? Und welche Rolle kommt den von Kunst und popul\u00e4rer Kultur angeleiteten Erfahrungen dabei zu? Die entscheidende Frage kann heute nicht mehr sein, ob, sondern in welchem Ausma\u00df und in welchem Sinn Gef\u00fchle eine Rolle im demokratischen Streit spielen und spielen sollen. Auf diese Frage \u2013 so die These Fr\u00fcchtls \u2013 gibt es vier zentrale Antworten. Im politischen Zusammenhang verlangen Gef\u00fchle n\u00e4mlich nach einer zeitgem\u00e4\u00dfen Form der Darstellung, nach M\u00e4\u00dfigung, nach balancierendem Ausgleich und nach sinnvoller Umwandlung. Diese vierfache Reaktion l\u00e4sst sich entweder unter Mithilfe von \u00e4sthetischen Erfahrungen oder sogar in ausgezeichneter Weise durch sie erreichen.","7725":"Vor dem Hintergrund einer zunehmend von politischen Emotionen gepr\u00e4gten gesellschaftlichen Lage stellt das neue Buch von Josef Fr\u00fcchtl die grunds\u00e4tzliche Frage nach dem Zusammenhang von Gef\u00fchlen und Politik und verbindet sie mit einer \u00e4sthetischen Perspektive.<br>\n\nAuf zentralen gesellschaftlichen Ebenen \u2013 technologisch in den digitalen Netzwerken mit ihren \u00bbhate speeches\u00ab und \u00bbshit storms\u00ab, \u00f6konomisch im kapitalistisch rasenden Prozess der Globalisierung, kulturell im Kampf religi\u00f6s unterf\u00fctterter Wertsysteme und staatspolitisch im kriegerischen Zerfall von Nationen \u2013 haben sich in den vergangenen zwei bis drei Jahrzehnten die Schleusen f\u00fcr eine Politik der Emotionen ge\u00f6ffnet. Welche Rolle aber spielen Gef\u00fchle in einer demokratischen Lebensform? Und welche Rolle kommt den von Kunst und popul\u00e4rer Kultur angeleiteten Erfahrungen dabei zu? Die entscheidende Frage kann heute nicht mehr sein, ob, sondern in welchem Ausma\u00df und in welchem Sinn Gef\u00fchle eine Rolle im demokratischen Streit spielen und spielen sollen. Auf diese Frage \u2013 so die These Fr\u00fcchtls \u2013 gibt es vier zentrale Antworten. Im politischen Zusammenhang verlangen Gef\u00fchle n\u00e4mlich nach einer zeitgem\u00e4\u00dfen Form der Darstellung, nach M\u00e4\u00dfigung, nach balancierendem Ausgleich und nach sinnvoller Umwandlung. Diese vierfache Reaktion l\u00e4sst sich entweder unter Mithilfe von \u00e4sthetischen Erfahrungen oder sogar in ausgezeichneter Weise durch sie erreichen."},"doi":{"7668":"","7670":"10.28937\/978-3-7873-4049-1","7725":""},"isbn":{"7668":"978-3-7873-4048-4","7670":"978-3-7873-4049-1","7725":"978-3-7873-4081-1"},"marketing_short_text":{"7668":"","7670":"","7725":""},"recension_text":{"7668":"","7670":"","7725":""},"language":{"7668":"","7670":"","7725":""},"cover":{"7668":"Kartoniert","7670":"","7725":""},"pages":{"7668":"183 Seiten","7670":"183 Seiten","7725":"183 Seiten"},"edition":{"7668":"","7670":"","7725":"Unver\u00e4nderte ebook-Ausgabe der 1. Auflage von 2021"},"pod":{"7668":"Nein","7670":"Nein","7725":"Nein"},"copyright_year":{"7668":"","7670":"","7725":""},"vlb_tix_link":{"7668":"https:\/\/neu.vlbtix.de\/products\/9783787340484?type=gtin","7670":"","7725":""},"defaultValues":{"163":"15"}}; 19857 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 19858 19859 if (typeof window.amxnotif_wrap_attributes === 'function') { 19860 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 19861 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 19862 } 19863 19864 const configurableOptionsComponent = initConfigurableOptions( 19865 '4015', 19866 config 19867 ); 19868 const swatchOptionsComponent = initSwatchOptions( 19869 swatchConfig 19870 ); 19871 19872 // DWS - Configurable product preselect start 19873 const confProdPreSelect = () => { 19874 return { 19875 preselectQuerystringItems() { 19876 var data = {"id":"7668","output":"15"}; 19877 const urlQueryParams = new URLSearchParams(window.location.search); 19878 19879 this.$nextTick(() => { 19880 setTimeout(() => { 19881 const rootEl = this.$root || this.$el; 19882 if (!rootEl) return; 19883 19884 const applySelection = (attrCode, attrValue) => { 19885 if (attrValue === undefined || attrValue === null || attrValue === '') return; 19886 19887 const attributes = Object.values(this.optionConfig.attributes || {}); 19888 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 19889 19890 if (targetAttr) { 19891 const attrId = String(targetAttr.id); 19892 const optionVal = String(attrValue); 19893 19894 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 19895 19896 if (inputEl) { 19897 inputEl.click(); 19898 inputEl.dispatchEvent(new Event('change', { 19899 bubbles: true 19900 })); 19901 } else { 19902 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 19903 if (selectEl) { 19904 selectEl.value = optionVal; 19905 selectEl.dispatchEvent(new Event('change', { 19906 bubbles: true 19907 })); 19908 } 19909 } 19910 19911 this.changeOption(attrId, optionVal, false); 19912 } 19913 }; 19914 19915 if (data && typeof data === 'object') {
19916 Object.keys(data).forEach(key => applySelection(key, data[key])); 19917 } 19918 19919 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 19920 if (attribute && attribute.code) { 19921 let optionValue = urlQueryParams.get(attribute.code); 19922 if (optionValue) { 19923 let optionId = false; 19924 const attributes = Object.values(this.optionConfig.attributes || {}); 19925 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 19926 19927 let found = false; 19928 Object.values(targetAttr.options).map(option => { 19929 if (found === false && option.label === optionValue) { 19930 optionId = option.id; 19931 found = true; 19932 } 19933 }); 19934 19935 const attrId = String(targetAttr.id); 19936 let optionVal = String(optionValue); 19937 if (found) { 19938 optionVal = String(optionId); 19939 } 19940 19941 applySelection(attribute.code, optionVal); 19942 } 19943 } 19944 }); 19945 }, 100); 19946 }); 19947 } 19948 } 19949 }; 19950 // DWS - Configurable product preselect end 19951 19952 const result = Object.assign( 19953 configurableOptionsComponent, 19954 swatchOptionsComponent, { 19955 productId: '4015', 19956 productIndex: 0, 19957 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 19958 showSwatches: false, 19959 precalcOptions: {}, 19960 originalInit: configurableOptionsComponent.init, 19961 init() { 19962 try { 19963 this.precalcOptions = {}; 19964 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 19965 this.preselectQuerystringItems(); 19966 if (Array.isArray(attrSource)) { 19967 attrSource.forEach(attr => { 19968 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 19969 }); 19970 } else if (attrSource && typeof attrSource === 'object') { 19971 Object.keys(attrSource).forEach(id => { 19972 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 19973 }); 19974 } 19975 } catch (e) { 19976 console.error('Pre-calc error:', e); 19977 } 19978 19979 if (typeof this.originalInit === 'function') { 19980 this.originalInit(); 19981 } 19982 19983 try { 19984 this.initShowSwatchesIntersect(); 19985 } catch (e) { 19986 console.error('intersect error:', e); 19987 } 19988 }, 19989 19990 updateGallery() { 19991 if (!this.productIndex) return; 19992 19993 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 19994 method: 'GET', 19995 headers: { 19996 'Content-Type': 'application/json', 19997 'X-Requested-With': 'XMLHttpRequest' 19998 } 19999 }) 20000 .then(response => response.json()) 20001 .then(data => { 20002 if (data && data.medium) { 20003 window.dispatchEvent(new CustomEvent("update-gallery-4015", { 20004 detail: data.medium 20005 })); 20006 } 20007 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 20008 }, 20009 20010 20011 initShowSwatchesIntersect() { 20012 const observer = new IntersectionObserver(entries => { 20013 if (entries[0].isIntersecting) { 20014 this.showSwatches = true; 20015 observer.disconnect(); 20016 } 20017 }, { 20018 rootMargin: '512px' 20019 }); 20020 observer.observe(this.$el); 20021 }, 20022 getOptions(attrId) { 20023 return this.precalcOptions[attrId] || []; 20024 }, 20025 getOptionsByAttrId() { 20026 return this.getOptions(this.$el.dataset.attributeId); 20027 }, 20028 _getItemId() { 20029 if (this.item && this.item.id) return this.item.id; 20030 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 20031 }, 20032 getSwatchOptionHtmlId() { 20033 const itemId = this._getItemId(); 20034 return itemId ? this.$id(`attribute-option-4015-${itemId}`) : ''; 20035 }, 20036 getSwatchOptionHtmlIdGroup() { 20037 const itemId = this._getItemId(); 20038 return itemId ? [`attribute-option-4015-${itemId}`] : []; 20039 }, 20040 getAttributeSwatchData(attributeId) { 20041 const data = Object.assign({}, this.swatchConfig[attributeId]); 20042 if (data['additional_data']) { 20043 try { 20044 data['details'] = JSON.parse(data['additional_data']); 20045 } catch (e) { 20046 data['details'] = {}; 20047 } 20048 } 20049 return data; 20050 }, 20051 getSwatchType(attributeId, optionId) { 20052 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 20053 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 20054 } 20055 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 20056 this.swatchConfig[attributeId].details.swatch_input_type : 20057 "empty"; 20058 if (type === 'visual') { 20059 const config = this.swatchConfig[attributeId]; 20060 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 20061 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 20062 } 20063 // Fallback to first option type 20064 for (const oId in config) { 20065 if (config[oId] && typeof config[oId].type !== 'undefined') { 20066 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 20067 } 20068 } 20069 } 20070 return type; 20071 }, 20072 mapSwatchTypeNumberToTypeCode(type) { 20073 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 20074 }, 20075 isTextSwatch() { 20076 const itemId = this._getItemId(); 20077 if (!this.$el || !itemId) return false;
20078 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20079 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 20080 }, 20081 20082 getSwatchText() { 20083 const itemId = this._getItemId(); 20084 if (this.item) return this.item.label || ''; 20085 if (!this.$el || !itemId) return ''; 20086 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20087 const options = attrId ? this.getOptions(attrId) : []; 20088 const opt = options.find(o => o.id == itemId); 20089 return opt ? opt.label : ''; 20090 }, 20091 getSwatchBackgroundStyle() { 20092 const itemId = this._getItemId(); 20093 if (!this.$el || !itemId) return ''; 20094 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20095 if (!attrId) return ''; 20096 const type = this.getSwatchType(attrId, itemId); 20097 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 20098 this.swatchConfig[attrId][itemId] : 20099 null; 20100 if (!swatchData) return ''; 20101 if (type === "color") return 'background-color:' + swatchData.value; 20102 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 20103 return ''; 20104 }, 20105 swatchOptionClasses() { 20106 const itemId = this._getItemId(); 20107 if (!this.$el || !itemId) return {}; 20108 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20109 return { 20110 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 20111 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 20112 'w-6 h-6': !this.isTextSwatch() 20113 } 20114 }, 20115 20116 onFocusSwatchItem() { 20117 const itemId = this._getItemId(); 20118 if (itemId) this.focusedLabel = itemId; 20119 }, 20120 onChangeOption() { 20121 const itemId = this._getItemId(); 20122 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 20123 if (attrId && itemId) this.changeOption(attrId, itemId); 20124 }, 20125 changeOption(attributeId, value) { 20126 if (value === '') { 20127 return; 20128 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 20129 } else { 20130 this.selectedValues[attributeId] = value; 20131 } 20132 20133 this.findSimpleIndex(); 20134 this.findAllowedAttributeOptions(); 20135 this.updatePrices(); 20136 this.updateGallery(); 20137 20138 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 20139 this.findProductIdsForPartialSelection(this.selectedValues) : []; 20140 20141 const eventDetail = { 20142 productId: this.productId, 20143 optionId: attributeId, 20144 value: value, 20145 productIndex: this.productIndex || 0, 20146 selectedValues: this.selectedValues, 20147 candidates: candidates, 20148 sourceElement: this.$el 20149 }; 20150 20151 // Dispatch for Amasty 20152 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 20153 detail: eventDetail 20154 })); 20155 20156 // Dispatch for Hyva listing 20157 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 20158 detail: eventDetail 20159 })); 20160 }, 20161 20162 20163 clearOptionIfActive() { 20164 const itemId = this._getItemId(); 20165 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 20166 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 20167 this.changeOption(attrId, ''); 20168 20169 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 20170 if (!input && this.$el?.querySelector) { 20171 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 20172 } 20173 if (!input && this.$el?.closest) { 20174 const root = this.$el.closest('[data-product-id]') || this.$el; 20175 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 20176 } 20177 if (input) { 20178 input.checked = false;
20179 } 20180 } 20181 }, 20182 get optionIsEnabled() { 20183 const itemId = this._getItemId(); 20184 if (!this.$el || !itemId) return true; 20185 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20186 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 20187 return !!allowedOptions.find(opt => opt.id == itemId); 20188 }, 20189 get isSelected() { 20190 const itemId = this._getItemId(); 20191 if (!this.$el || !itemId) return false; 20192 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20193 return attrId ? (this.selectedValues[attrId] == itemId) : false; 20194 }, 20195 get isSwatchRequired() { 20196 if (!this.$el) return false; 20197 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20198 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 20199 }, 20200 focusedLabel: false, 20201 activeTooltipItem: false, 20202 tooltipPositionElement: false,
20203 setActiveTooltipItem() { 20204 const itemId = this._getItemId(); 20205 if (!this.$el || !itemId) return; 20206 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20207 this.activeTooltipItem = { 20208 attribute: attrId, 20209 item: itemId, 20210 index: 0 20211 }; 20212 this.tooltipPositionElement = this.$event ? this.$event.target : null; 20213 }, 20214 unsetActiveTooltipItem() { 20215 this.activeTooltipItem = false; 20216 } 20217 }, 20218 confProdPreSelect() 20219 ); 20220 20221 if (result.optionConfig && result.optionConfig.attributes) { 20222 const attributes = result.optionConfig.attributes; 20223 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 20224 let source = attributes; 20225 if (Array.isArray(attributes)) { 20226 source = {}; 20227 attributes.forEach(attr => { 20228 if (attr && attr.id) source[attr.id] = attr; 20229 }); 20230 } 20231 const values = Object.values(source); 20232 const wrapper = Object.assign(values, source); 20233 Object.defineProperty(wrapper, '__amxnotifWrapped', { 20234 value: true, 20235 enumerable: false 20236 }); 20237 result.optionConfig.attributes = wrapper; 20238 } 20239 } 20240 20241 return result; 20242 } 20243 20244 window.addEventListener('alpine:init', () => { 20245 Alpine.data('initConfigurableSwatchOptions_4015', initConfigurableSwatchOptions_4015); 20246 }, { 20247 once: true 20248 }); 20249 </script>
20249 20250 20251 <div x-data="initConfigurableSwatchOptions_4015" x-defer="intersect"> 20252 <div class="pagebuilder-home-hidden"> 20253 20254 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 20255 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 20256 <template x-if="showSwatches"> 20257 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4015-163" role="radiogroup" aria-label="Einband"> 20258 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 20259 <div :data-option-id="item.id" style="display: contents"> 20260 <div x-id="getSwatchOptionHtmlIdGroup"> 20261 <template x-if="optionIsEnabled"> 20262 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
20262self="unsetActiveTooltipItem"> 20263 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4015-163"> 20264 <div> 20265 <template x-if="isTextSwatch"> 20266 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 20267 </template> 20268 <template x-if="!optionIsActive(163, item.id)"> 20269 <div> 20270 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 20271 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 20272 </svg> 20273 </div> 20274 </template> 20275 </div> 20276 </label> 20277 </template> 20278</div> </div> 20279 </template> 20280 </div> 20281 </template> 20282 </div> 20283 </div> 20284 </div> 20285 </div> 20286 20287 <div class="meta py-4 pagebuilder-home-hidden"> 20288 <div x-data="initMarketingShortText_4015()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 20289 <!-- Marketing short text --> 20290 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 20291 </div> 20292 20293 <!-- Short description --> 20294 <div class="short-description"> 20295 Vor dem Hintergrund einer zunehmend von politischen Emotionen geprägten gesellschaftlichen Lage stellt das neue Buch von Josef Früchtl die grundsätzliche Frage nach dem Zusammenhang von Gefühlen ... <a href="https://meiner.de/fmv_de/demokratie-der-gefa-hle-9137" class="underline">mehr</a> 20296 </div> 20297 </div> 20298 20299 <!-- Series --> 20300 <div class="mb-1"> 20301 <span class="sr-only">Reihe:</span> 20302 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 20303 <span>Blaue Reihe</span> 20304 </a> 20305 </div> 20306 20307 20308 <div class="mb-1"> 20309 <span x-data="initEditionText_4015()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 20310 <!-- Marketing short text --> 20311 <span class="edition-text" x-html="editionText"></span> 2021, 183 Seiten </span> 20312 </div> 20313 20314 </div> 20315 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 20316 20317 <div class="justify-end" x-data="initPriceBox()" @update-prices-4015.window="updatePrice($event.detail);"> 20318 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4015" data-price-box="product-id-4015"><span class="normal-price"> 20319 <span x-data x-id="['product\u002Dprice\u002D4015']" class="price-container price-final_price tax weee"> 20320 <span class="price-label">Ab</span> 20321 <span class="approx-price">ca. </span> 20322 <span :id="$id('product\u002Dprice\u002D4015')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 20323 </span> 20324</span> 20325 20326 20327</div> </div> 20328 20329 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 20330 <div class="open-access-container open-access-container-4015 flex mt-4 ml-auto sm:mt-0 hidden"> 20331 <div class="text-gray-700"> 20332 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 20333 <a href="" target="_blank" class="open-access-external-link m-auto "> 20334 Kostenlos online lesen </a> 20335 </button> 20336 </div> 20337 </div> 20338 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Demokratie der Gefühle" aria-label="In den Warenkorb Demokratie der Gefühle" data-addto="cart"> 20339 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 20340 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
203400 014 0z"></path> 20341</svg> 20342 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 20343 In den Warenkorb </span> 20344 </button> 20345 20346<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4015)" aria-label="Zur Wunschliste hinzufügen Demokratie der Gefühle" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 20347 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 20348 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 20349</svg> 20350</button> 20351 </div> 20352 </div> 20353 </div> 20354
20354<script> 20355 function initMarketingShortText_4015() { 20356 var marketingShortTextConfig = {}; 20357 if (typeof window.initConfigurableSwatchOptions_4015 === "function") { 20358 var fullConfig = window.initConfigurableSwatchOptions_4015().optionConfig 20359 var marketingShortTextConfig = fullConfig.marketing_short_text; 20360 } 20361 return { 20362 marketingShortText: '', 20363 config: marketingShortTextConfig, 20364 productId: '4015', 20365 getMarketingShortText(detail) { 20366 this.marketingShortText = detail.productIndex ? 20367 this.config[detail.productIndex] : 20368 null; 20369 }, 20370 eventListeners: { 20371 ['@listing-configurable-selection-changed.window'](event) { 20372 if (this.productId == event.detail.productId) { 20373 this.getMarketingShortText(event.detail); 20374 } 20375 20376 } 20377 } 20378 } 20379 } 20380 20381 function initEditionText_4015() { 20382 var editionTextConfig = {}; 20383 if (typeof window.initConfigurableSwatchOptions_4015 === "function") { 20384 var fullConfig = window.initConfigurableSwatchOptions_4015().optionConfig 20385 var editionTextConfig = fullConfig.edition; 20386 } 20387 return { 20388 editionText: '', 20389 config: editionTextConfig, 20390 productId: '4015', 20391 getEditionText(detail) { 20392 this.editionText = detail.productIndex ? 20393 this.config[detail.productIndex] : 20394 null; 20395 }, 20396 eventListeners: { 20397 ['@listing-configurable-selection-changed.window'](event) { 20398 if (this.productId == event.detail.productId) { 20399 this.getEditionText(event.detail); 20400 } 20401 20402 } 20403 } 20404 } 20405 } 20406 </script>
20406 20407 </form> 20408 20409 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/43703/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17423"> 20410 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="43703"> 20411 <a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 20412 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-43703.window="$el.src = $event.detail" alt="Schockierende Ungleichheit" title="Schockierende Ungleichheit" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351893_1.jpg" :style="{ 20413 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 20414 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 20415 }"> 20416 </a> 20417 <div class="product-info flex flex-col flex-grow "> 20418 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 20419 <div class="mb-2 text-sm text-gray-500 font-medium"> 20420 <a href="https://meiner.de/fmv_de/person/Wolfgang-Detel-3526/" class="mb-2"> 20421 Wolfgang Detel </a> 20422 </div> 20423 <a class="product-item-link" href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423"> 20424 Schockierende Ungleichheit </a> 20425 </div> 20426 20427 <div x-data="initEditionText_43703()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 20428 <!-- Marketing short text --> 20429 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 20430 </div> 20431 </div> 20432 20433 <div class="py-1 grid mb-4 "> 20434 20435 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":43703,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":43703,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46975":"1","46991":"1","46992":"1"},"childProductsAlertStatus":{"46975":"0","46991":"0","46992":"0"},"indexMapping":{"163:15":46975,"163:8":46991,"163:9":46992},"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}},"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}}'> 20436 <template x-if="containerVisible"> 20437 <!-- Popup Trigger --> 20438 <div> 20439 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 20440 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
20441 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 20442 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 20443<title>bell</title></svg> 20444</span> 20445 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 20446 20447 <!-- Popup Modal --> 20448 <template x-if="showModal"> 20449 <template x-teleport=".page-wrapper"> 20450 <div x-cloak class="fixed inset-0 flex items-center justify-center 20451 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 20452 <div class="relative bg-white rounded-lg shadow-xl 20453 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 20454 <div class="p-6"> 20455 <!-- Subscription Form for Popup --> 20456 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 20457 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 20458 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 20459 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 20460 20461 <div class="flex flex-col gap-3"> 20462 <div class="flex-grow grow"> 20463 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 20464 shadow-xs focus:outline-none focus:outline-hidden 20465 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 20466 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 20467 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 20468 </div> 20469 <input type="hidden" name="product_id" :value="currentProductId"> 20470 <input type="hidden" name="type" value="email"> 20471 20472 20473 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 20474 20475 <div class="amxnotif_guest_action"> 20476 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 20477 rounded-md focus:outline-none 20478 focus:outline-hidden focus:ring-2 20479 focus:ring-offset-2 disabled:opacity-50 20480 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 20481 Benachrichtigen </button> 20482 </div> 20483 </div> 20484 20485 <div class="flex items-start pt-2"> 20486 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 20487 text-blue-600 border-gray-300 rounded-sm"> 20488 <label class="amxnotif-stock-gdrp-label cursor-pointer 20489 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 20490 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 20491 </div> 20492 </form> 20493 </div> 20494 20495 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 20496 hover:text-gray-600 transition-colors" aria-label="Schließen"> 20497 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 20498 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 20499<title>x</title></svg> 20500 </button> 20501 </div> 20502 </div> 20503 </template> 20504 </template> 20505 </div> 20506 </template> 20507 </div> 20508 20509<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_43703" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":43703,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46975":"
205091","46991":"1","46992":"1"},"childProductsAlertStatus":{"46975":"0","46991":"0","46992":"0"},"indexMapping":"{\u0022163:15\u0022:46975,\u0022163:8\u0022:46991,\u0022163:9\u0022:46992}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":43703,"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}}'> 20510 20511 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 20512 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 20513 <span x-html="optionsLabelText"></span> 20514 </p> 20515</div> </div> 20516 20517
20517<script> 20518 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 20519 try { 20520 const attributes = (config && config.attributes) ? config.attributes : null; 20521 if (!attributes) return []; 20522 let attr = null; 20523 if (Array.isArray(attributes)) { 20524 for (let i = 0; i < attributes.length; i++) { 20525 const a = attributes[i]; 20526 if (a && a.id == attrId) { 20527 attr = a; 20528 break; 20529 } 20530 } 20531 } else { 20532 attr = attributes[attrId]; 20533 } 20534 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 20535 } catch (e) { 20536 return []; 20537 } 20538 }; 20539 20540 function initConfigurableSwatchOptions_43703() { 20541 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46975"]},{"id":"8","label":"PDF","products":["46991"]},{"id":"9","label":"EPUB","products":["46992"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46975":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46991":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46992":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":18.478990596639},"finalPrice":{"amount":21.99},"isApproxPrice":null},"productId":"43703","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46975":{"163":"15"},"46991":{"163":"8"},"46992":{"163":"9"}},"salable":{"163":{"15":["46975"],"8":["46991"],"9":["46992"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46975":"005187","46991":"005188","46992":"005189"},"output":{"46975":"Kartoniert","46991":"PDF","46992":"EPUB"},"original_name":{"46975":"","46991":"","46992":""},"openaccess_license_link":{"46975":"","46991":"","46992":""},"openaccess_license_name":{"46975":"","46991":"","46992":""},"openaccess_external_link":{"46975":"","46991":"","46992":""},"gpsr_safety_info":{"46975":"","46991":"","46992":""},"description":{"46975":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle
20541konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert.","46991":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert.","46992":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert."},"doi":{"46975":"","46991":"10.28937\/978-3-7873-5188-6","46992":""},"isbn":{"46975":"978-3-7873-5187-9","46991":"978-3-7873-5188-6","46992":"978-3-7873-5189-3"},"marketing_short_text":{"46975":"","46991":"","46992":""},"recension_text":{"46975":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">
20541[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>","46991":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>","46992":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">
20541[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>"},"language":{"46975":"","46991":"","46992":""},"cover":{"46975":"Kartoniert","46991":"","46992":""},"pages":{"46975":"412 Seiten","46991":"420 Seiten","46992":"420 Seiten"},"edition":{"46975":"2., um ein Nachwort erg\u00e4nzte Auflage","46991":"2., um ein Nachwort erg\u00e4nzte Auflage","46992":"2., um ein Nachwort erg\u00e4nzte Auflage"},"pod":{"46975":"Nein","46991":"Nein","46992":"Nein"},"copyright_year":{"46975":"","46991":"","46992":""},"vlb_tix_link":{"46975":"https:\/\/neu.vlbtix.de\/products\/9783787351879?type=gtin","46991":"","46992":""},"defaultValues":{"163":"15"}}; 20542 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 20543 20544 if (typeof window.amxnotif_wrap_attributes === 'function') { 20545 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 20546 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 20547 } 20548 20549 const configurableOptionsComponent = initConfigurableOptions( 20550 '43703', 20551 config 20552 ); 20553 const swatchOptionsComponent = initSwatchOptions( 20554 swatchConfig 20555 ); 20556 20557 // DWS - Configurable product preselect start 20558 const confProdPreSelect = () => { 20559 return { 20560 preselectQuerystringItems() { 20561 var data = {"id":"46975","output":"15"}; 20562 const urlQueryParams = new URLSearchParams(window.location.search); 20563 20564 this.$nextTick(() => { 20565 setTimeout(() => { 20566 const rootEl = this.$root || this.$el; 20567 if (!rootEl) return; 20568 20569 const applySelection = (attrCode, attrValue) => { 20570 if (attrValue === undefined || attrValue === null || attrValue === '') return; 20571 20572 const attributes = Object.values(this.optionConfig.attributes || {}); 20573 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 20574 20575 if (targetAttr) { 20576 const attrId = String(targetAttr.id); 20577 const optionVal = String(attrValue); 20578 20579 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 20580 20581 if (inputEl) { 20582 inputEl.click(); 20583 inputEl.dispatchEvent(new Event('change', { 20584 bubbles: true 20585 })); 20586 } else { 20587 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 20588 if (selectEl) { 20589 selectEl.value = optionVal; 20590 selectEl.dispatchEvent(new Event('change', { 20591 bubbles: true 20592 })); 20593 } 20594 } 20595 20596 this.changeOption(attrId, optionVal, false); 20597 } 20598 }; 20599 20600 if (data && typeof data === 'object') {
20601 Object.keys(data).forEach(key => applySelection(key, data[key])); 20602 } 20603 20604 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 20605 if (attribute && attribute.code) { 20606 let optionValue = urlQueryParams.get(attribute.code); 20607 if (optionValue) { 20608 let optionId = false; 20609 const attributes = Object.values(this.optionConfig.attributes || {}); 20610 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 20611 20612 let found = false; 20613 Object.values(targetAttr.options).map(option => { 20614 if (found === false && option.label === optionValue) { 20615 optionId = option.id; 20616 found = true; 20617 } 20618 }); 20619 20620 const attrId = String(targetAttr.id); 20621 let optionVal = String(optionValue); 20622 if (found) { 20623 optionVal = String(optionId); 20624 } 20625 20626 applySelection(attribute.code, optionVal); 20627 } 20628 } 20629 }); 20630 }, 100); 20631 }); 20632 } 20633 } 20634 }; 20635 // DWS - Configurable product preselect end 20636 20637 const result = Object.assign( 20638 configurableOptionsComponent, 20639 swatchOptionsComponent, { 20640 productId: '43703', 20641 productIndex: 0, 20642 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 20643 showSwatches: false, 20644 precalcOptions: {}, 20645 originalInit: configurableOptionsComponent.init, 20646 init() { 20647 try { 20648 this.precalcOptions = {}; 20649 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 20650 this.preselectQuerystringItems(); 20651 if (Array.isArray(attrSource)) { 20652 attrSource.forEach(attr => { 20653 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 20654 }); 20655 } else if (attrSource && typeof attrSource === 'object') { 20656 Object.keys(attrSource).forEach(id => { 20657 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 20658 }); 20659 } 20660 } catch (e) { 20661 console.error('Pre-calc error:', e); 20662 } 20663 20664 if (typeof this.originalInit === 'function') { 20665 this.originalInit(); 20666 } 20667 20668 try { 20669 this.initShowSwatchesIntersect(); 20670 } catch (e) { 20671 console.error('intersect error:', e); 20672 } 20673 }, 20674 20675 updateGallery() { 20676 if (!this.productIndex) return; 20677 20678 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 20679 method: 'GET', 20680 headers: { 20681 'Content-Type': 'application/json', 20682 'X-Requested-With': 'XMLHttpRequest' 20683 } 20684 }) 20685 .then(response => response.json()) 20686 .then(data => { 20687 if (data && data.medium) { 20688 window.dispatchEvent(new CustomEvent("update-gallery-43703", { 20689 detail: data.medium 20690 })); 20691 } 20692 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 20693 }, 20694 20695 20696 initShowSwatchesIntersect() { 20697 const observer = new IntersectionObserver(entries => { 20698 if (entries[0].isIntersecting) { 20699 this.showSwatches = true; 20700 observer.disconnect(); 20701 } 20702 }, { 20703 rootMargin: '512px' 20704 }); 20705 observer.observe(this.$el); 20706 }, 20707 getOptions(attrId) { 20708 return this.precalcOptions[attrId] || []; 20709 }, 20710 getOptionsByAttrId() { 20711 return this.getOptions(this.$el.dataset.attributeId); 20712 }, 20713 _getItemId() { 20714 if (this.item && this.item.id) return this.item.id; 20715 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 20716 }, 20717 getSwatchOptionHtmlId() { 20718 const itemId = this._getItemId(); 20719 return itemId ? this.$id(`attribute-option-43703-${itemId}`) : ''; 20720 }, 20721 getSwatchOptionHtmlIdGroup() { 20722 const itemId = this._getItemId(); 20723 return itemId ? [`attribute-option-43703-${itemId}`] : []; 20724 }, 20725 getAttributeSwatchData(attributeId) { 20726 const data = Object.assign({}, this.swatchConfig[attributeId]); 20727 if (data['additional_data']) { 20728 try { 20729 data['details'] = JSON.parse(data['additional_data']); 20730 } catch (e) { 20731 data['details'] = {}; 20732 } 20733 } 20734 return data; 20735 }, 20736 getSwatchType(attributeId, optionId) { 20737 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 20738 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 20739 } 20740 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 20741 this.swatchConfig[attributeId].details.swatch_input_type : 20742 "empty"; 20743 if (type === 'visual') { 20744 const config = this.swatchConfig[attributeId]; 20745 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 20746 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 20747 } 20748 // Fallback to first option type 20749 for (const oId in config) { 20750 if (config[oId] && typeof config[oId].type !== 'undefined') { 20751 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 20752 } 20753 } 20754 } 20755 return type; 20756 }, 20757 mapSwatchTypeNumberToTypeCode(type) { 20758 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 20759 }, 20760 isTextSwatch() { 20761 const itemId = this._getItemId(); 20762 if (!this.$el || !itemId) return false;
20763 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20764 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 20765 }, 20766 20767 getSwatchText() { 20768 const itemId = this._getItemId(); 20769 if (this.item) return this.item.label || ''; 20770 if (!this.$el || !itemId) return ''; 20771 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20772 const options = attrId ? this.getOptions(attrId) : []; 20773 const opt = options.find(o => o.id == itemId); 20774 return opt ? opt.label : ''; 20775 }, 20776 getSwatchBackgroundStyle() { 20777 const itemId = this._getItemId(); 20778 if (!this.$el || !itemId) return ''; 20779 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20780 if (!attrId) return ''; 20781 const type = this.getSwatchType(attrId, itemId); 20782 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 20783 this.swatchConfig[attrId][itemId] : 20784 null; 20785 if (!swatchData) return ''; 20786 if (type === "color") return 'background-color:' + swatchData.value; 20787 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 20788 return ''; 20789 }, 20790 swatchOptionClasses() { 20791 const itemId = this._getItemId(); 20792 if (!this.$el || !itemId) return {}; 20793 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20794 return { 20795 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 20796 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 20797 'w-6 h-6': !this.isTextSwatch() 20798 } 20799 }, 20800 20801 onFocusSwatchItem() { 20802 const itemId = this._getItemId(); 20803 if (itemId) this.focusedLabel = itemId; 20804 }, 20805 onChangeOption() { 20806 const itemId = this._getItemId(); 20807 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 20808 if (attrId && itemId) this.changeOption(attrId, itemId); 20809 }, 20810 changeOption(attributeId, value) { 20811 if (value === '') { 20812 return; 20813 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 20814 } else { 20815 this.selectedValues[attributeId] = value; 20816 } 20817 20818 this.findSimpleIndex(); 20819 this.findAllowedAttributeOptions(); 20820 this.updatePrices(); 20821 this.updateGallery(); 20822 20823 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 20824 this.findProductIdsForPartialSelection(this.selectedValues) : []; 20825 20826 const eventDetail = { 20827 productId: this.productId, 20828 optionId: attributeId, 20829 value: value, 20830 productIndex: this.productIndex || 0, 20831 selectedValues: this.selectedValues, 20832 candidates: candidates, 20833 sourceElement: this.$el 20834 }; 20835 20836 // Dispatch for Amasty 20837 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 20838 detail: eventDetail 20839 })); 20840 20841 // Dispatch for Hyva listing 20842 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 20843 detail: eventDetail 20844 })); 20845 }, 20846 20847 20848 clearOptionIfActive() { 20849 const itemId = this._getItemId(); 20850 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 20851 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 20852 this.changeOption(attrId, ''); 20853 20854 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 20855 if (!input && this.$el?.querySelector) { 20856 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 20857 } 20858 if (!input && this.$el?.closest) { 20859 const root = this.$el.closest('[data-product-id]') || this.$el; 20860 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 20861 } 20862 if (input) { 20863 input.checked = false;
20864 } 20865 } 20866 }, 20867 get optionIsEnabled() { 20868 const itemId = this._getItemId(); 20869 if (!this.$el || !itemId) return true; 20870 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20871 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 20872 return !!allowedOptions.find(opt => opt.id == itemId); 20873 }, 20874 get isSelected() { 20875 const itemId = this._getItemId(); 20876 if (!this.$el || !itemId) return false; 20877 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20878 return attrId ? (this.selectedValues[attrId] == itemId) : false; 20879 }, 20880 get isSwatchRequired() { 20881 if (!this.$el) return false; 20882 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20883 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 20884 }, 20885 focusedLabel: false, 20886 activeTooltipItem: false, 20887 tooltipPositionElement: false,
20888 setActiveTooltipItem() { 20889 const itemId = this._getItemId(); 20890 if (!this.$el || !itemId) return; 20891 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 20892 this.activeTooltipItem = { 20893 attribute: attrId, 20894 item: itemId, 20895 index: 0 20896 }; 20897 this.tooltipPositionElement = this.$event ? this.$event.target : null; 20898 }, 20899 unsetActiveTooltipItem() { 20900 this.activeTooltipItem = false; 20901 } 20902 }, 20903 confProdPreSelect() 20904 ); 20905 20906 if (result.optionConfig && result.optionConfig.attributes) { 20907 const attributes = result.optionConfig.attributes; 20908 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 20909 let source = attributes; 20910 if (Array.isArray(attributes)) { 20911 source = {}; 20912 attributes.forEach(attr => { 20913 if (attr && attr.id) source[attr.id] = attr; 20914 }); 20915 } 20916 const values = Object.values(source); 20917 const wrapper = Object.assign(values, source); 20918 Object.defineProperty(wrapper, '__amxnotifWrapped', { 20919 value: true, 20920 enumerable: false 20921 }); 20922 result.optionConfig.attributes = wrapper; 20923 } 20924 } 20925 20926 return result; 20927 } 20928 20929 window.addEventListener('alpine:init', () => { 20930 Alpine.data('initConfigurableSwatchOptions_43703', initConfigurableSwatchOptions_43703); 20931 }, { 20932 once: true 20933 }); 20934 </script>
20934 20935 20936 <div x-data="initConfigurableSwatchOptions_43703" x-defer="intersect"> 20937 <div class="pagebuilder-home-hidden"> 20938 20939 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 20940 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 20941 <template x-if="showSwatches"> 20942 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-43703-163" role="radiogroup" aria-label="Einband"> 20943 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 20944 <div :data-option-id="item.id" style="display: contents"> 20945 <div x-id="getSwatchOptionHtmlIdGroup"> 20946 <template x-if="optionIsEnabled"> 20947 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
20947self="unsetActiveTooltipItem"> 20948 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-43703-163"> 20949 <div> 20950 <template x-if="isTextSwatch"> 20951 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 20952 </template> 20953 <template x-if="!optionIsActive(163, item.id)"> 20954 <div> 20955 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 20956 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 20957 </svg> 20958 </div> 20959 </template> 20960 </div> 20961 </label> 20962 </template> 20963</div> </div> 20964 </template> 20965 </div> 20966 </template> 20967 </div> 20968 </div> 20969 </div> 20970 </div> 20971 20972 <div class="meta py-4 pagebuilder-home-hidden"> 20973 <div x-data="initMarketingShortText_43703()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 20974 <!-- Marketing short text --> 20975 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 20976 </div> 20977 20978 <!-- Short description --> 20979 <div class="short-description"> 20980 In vielen demokratischen Staaten brennt die Hütte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prekäre Arbeitsverhältnisse, wachsende Staatsschulden, ... <a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" class="underline">mehr</a> 20981 </div> 20982 </div> 20983 20984 <!-- Series --> 20985 <div class="mb-1"> 20986 <span class="sr-only">Reihe:</span> 20987 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 20988 <span>Blaue Reihe</span> 20989 </a> 20990 </div> 20991 20992 20993 <div class="mb-1"> 20994 <span x-data="initEditionText_43703()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 20995 <!-- Marketing short text --> 20996 <span class="edition-text" x-html="editionText"></span> 2026, 412 Seiten </span> 20997 </div> 20998 20999 </div> 21000 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 21001 21002 <div class="justify-end" x-data="initPriceBox()" @update-prices-43703.window="updatePrice($event.detail);"> 21003 <div class="price-box price-final_price" data-role="priceBox" data-product-id="43703" data-price-box="product-id-43703"><span class="normal-price"> 21004 <span x-data x-id="['product\u002Dprice\u002D43703']" class="price-container price-final_price tax weee"> 21005 <span class="price-label">Ab</span> 21006 <span class="approx-price">ca. </span> 21007 <span :id="$id('product\u002Dprice\u002D43703')" data-price-amount="21.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">21,99 €</span></span> 21008 </span> 21009</span> 21010 21011 21012</div> </div> 21013 21014 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 21015 <div class="open-access-container open-access-container-43703 flex mt-4 ml-auto sm:mt-0 hidden"> 21016 <div class="text-gray-700"> 21017 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 21018 <a href="" target="_blank" class="open-access-external-link m-auto "> 21019 Kostenlos online lesen </a> 21020 </button> 21021 </div> 21022 </div> 21023 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Schockierende Ungleichheit" aria-label="In den Warenkorb Schockierende Ungleichheit" data-addto="cart"> 21024 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 21025 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
210250 014 0z"></path> 21026</svg> 21027 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 21028 In den Warenkorb </span> 21029 </button> 21030 21031<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(43703)" aria-label="Zur Wunschliste hinzufügen Schockierende Ungleichheit" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 21032 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 21033 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 21034</svg> 21035</button> 21036 </div> 21037 </div> 21038 </div> 21039
21039<script> 21040 function initMarketingShortText_43703() { 21041 var marketingShortTextConfig = {}; 21042 if (typeof window.initConfigurableSwatchOptions_43703 === "function") { 21043 var fullConfig = window.initConfigurableSwatchOptions_43703().optionConfig 21044 var marketingShortTextConfig = fullConfig.marketing_short_text; 21045 } 21046 return { 21047 marketingShortText: '', 21048 config: marketingShortTextConfig, 21049 productId: '43703', 21050 getMarketingShortText(detail) { 21051 this.marketingShortText = detail.productIndex ? 21052 this.config[detail.productIndex] : 21053 null; 21054 }, 21055 eventListeners: { 21056 ['@listing-configurable-selection-changed.window'](event) { 21057 if (this.productId == event.detail.productId) { 21058 this.getMarketingShortText(event.detail); 21059 } 21060 21061 } 21062 } 21063 } 21064 } 21065 21066 function initEditionText_43703() { 21067 var editionTextConfig = {}; 21068 if (typeof window.initConfigurableSwatchOptions_43703 === "function") { 21069 var fullConfig = window.initConfigurableSwatchOptions_43703().optionConfig 21070 var editionTextConfig = fullConfig.edition; 21071 } 21072 return { 21073 editionText: '', 21074 config: editionTextConfig, 21075 productId: '43703', 21076 getEditionText(detail) { 21077 this.editionText = detail.productIndex ? 21078 this.config[detail.productIndex] : 21079 null; 21080 }, 21081 eventListeners: { 21082 ['@listing-configurable-selection-changed.window'](event) { 21083 if (this.productId == event.detail.productId) { 21084 this.getEditionText(event.detail); 21085 } 21086 21087 } 21088 } 21089 } 21090 } 21091 </script>
21091 21092 </form> 21093 21094 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4115/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk12295"> 21095 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4115"> 21096 <a href="https://meiner.de/fmv_de/fakten-und-verunsicherung" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 21097 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4115.window="$el.src = $event.detail" alt="Fakten und Verunsicherung" title="Fakten und Verunsicherung" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787342891_4.jpg" :style="{ 21098 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 21099 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 21100 }"> 21101 </a> 21102 <div class="product-info flex flex-col flex-grow "> 21103 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 21104 <div class="mb-2 text-sm text-gray-500 font-medium"> 21105 <a href="https://meiner.de/fmv_de/person/Carina-Breidenbach-12297/" class="mb-2"> 21106 Carina Breidenbach </a> 21107 <span>|</span> 21108 <a href="https://meiner.de/fmv_de/person/Ines-Ghalleb-12296/" class="mb-2"> 21109 Ines Ghalleb </a> 21110 <span>|</span> 21111 <a href="https://meiner.de/fmv_de/person/Dominik-Pensel-12299/" class="mb-2"> 21112 Dominik Pensel </a> 21113 <span>|</span> 21114 <a href="https://meiner.de/fmv_de/person/Katharina-Simon-12300/" class="mb-2"> 21115 Katharina Simon </a> 21116 <span>|</span> 21117 <a href="https://meiner.de/fmv_de/person/Florian-Telsnig-12301/" class="mb-2"> 21118 Florian Telsnig </a> 21119 <span>|</span> 21120 <a href="https://meiner.de/fmv_de/person/Martin-Wittmann-12298/" class="mb-2"> 21121 Martin Wittmann (Hrsg.) 21122 </a> 21123 </div> 21124 <a class="product-item-link" href="https://meiner.de/fmv_de/fakten-und-verunsicherung"> 21125 Fakten und Verunsicherung </a> 21126 </div> 21127 21128 <div x-data="initEditionText_4115()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 21129 <!-- Marketing short text --> 21130 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 21131 </div> 21132 </div> 21133 21134 <div class="py-1 grid mb-4 "> 21135 21136 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4115,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4115,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8065":"1","8
21136078":"1","8109":"1"},"childProductsAlertStatus":{"8065":"0","8078":"0","8109":"0"},"indexMapping":{"163:15":8065,"163:8":8078,"163:9":8109},"availabilityMessages":{"8065":"Lieferbar innerhalb von 3-5 Tagen","8078":"Download sofort verf\u00fcgbar","8109":"Download sofort verf\u00fcgbar"},"openAccess":{"4115":{"status":0},"8065":{"status":0},"8078":{"status":0},"8109":{"status":0}}},"availabilityMessages":{"8065":"Lieferbar innerhalb von 3-5 Tagen","8078":"Download sofort verf\u00fcgbar","8109":"Download sofort verf\u00fcgbar"},"openAccess":{"4115":{"status":0},"8065":{"status":0},"8078":{"status":0},"8109":{"status":0}}}'> 21137 <template x-if="containerVisible"> 21138 <!-- Popup Trigger --> 21139 <div> 21140 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 21141 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 21142 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 21143 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 21144<title>bell</title></svg> 21145</span> 21146 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 21147 21148 <!-- Popup Modal --> 21149 <template x-if="showModal"> 21150 <template x-teleport=".page-wrapper"> 21151 <div x-cloak class="fixed inset-0 flex items-center justify-center 21152 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 21153 <div class="relative bg-white rounded-lg shadow-xl 21154 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 21155 <div class="p-6"> 21156 <!-- Subscription Form for Popup --> 21157 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 21158 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 21159 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 21160 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 21161 21162 <div class="flex flex-col gap-3"> 21163 <div class="flex-grow grow"> 21164 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 21165 shadow-xs focus:outline-none focus:outline-hidden 21166 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 21167 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 21168 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 21169 </div> 21170 <input type="hidden" name="product_id" :value="currentProductId"> 21171 <input type="hidden" name="type" value="email"> 21172 21173 21174 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 21175 21176 <div class="amxnotif_guest_action"> 21177 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 21178 rounded-md focus:outline-none 21179 focus:outline-hidden focu
21179s:ring-2 21180 focus:ring-offset-2 disabled:opacity-50 21181 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 21182 Benachrichtigen </button> 21183 </div> 21184 </div> 21185 21186 <div class="flex items-start pt-2"> 21187 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 21188 text-blue-600 border-gray-300 rounded-sm"> 21189 <label class="amxnotif-stock-gdrp-label cursor-pointer 21190 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 21191 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 21192 </div> 21193 </form> 21194 </div> 21195 21196 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 21197 hover:text-gray-600 transition-colors" aria-label="Schließen"> 21198 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 21199 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 21200<title>x</title></svg> 21201 </button> 21202 </div> 21203 </div> 21204 </template> 21205 </template> 21206 </div> 21207 </template> 21208 </div> 21209 21210<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4115" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4115,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8065":"1","8078":"1","8109":"1"},"childProductsAlertStatus":{"8065":"0","8078":"0","8109":"0"},"indexMapping":"{\u0022163:15\u0022:8065,\u0022163:8\u0022:8078,\u0022163:9\u0022:8109}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4115,"availabilityMessages":{"8065":"Lieferbar innerhalb von 3-5 Tagen","8078":"Download sofort verf\u00fcgbar","8109":"Download sofort verf\u00fcgbar"},"openAccess":{"4115":{"status":0},"8065":{"status":0},"8078":{"status":0},"8109":{"status":0}}}'> 21211 21212 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 21213 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 21214 <span x-html="optionsLabelText"></span> 21215 </p> 21216</div> </div> 21217 21218
21218<script> 21219 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 21220 try { 21221 const attributes = (config && config.attributes) ? config.attributes : null; 21222 if (!attributes) return []; 21223 let attr = null; 21224 if (Array.isArray(attributes)) { 21225 for (let i = 0; i < attributes.length; i++) { 21226 const a = attributes[i]; 21227 if (a && a.id == attrId) { 21228 attr = a; 21229 break; 21230 } 21231 } 21232 } else { 21233 attr = attributes[attrId]; 21234 } 21235 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 21236 } catch (e) { 21237 return []; 21238 } 21239 }; 21240 21241 function initConfigurableSwatchOptions_4115() { 21242 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["8065"]},{"id":"8","label":"PDF","products":["8078"]},{"id":"9","label":"EPUB","products":["8109"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"8065":{"baseOldPrice":{"amount":25.140185915888},"oldPrice":{"amount":26.9},"basePrice":{"amount":25.140185915888},"finalPrice":{"amount":26.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"8078":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"8109":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"4115","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"8065":{"163":"15"},"8078":{"163":"8"},"8109":{"163":"9"}},"salable":{"163":{"15":["8065"],"8":["8078"],"9":["8109"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"8065":"004054","8078":"004055","8109":"004289"},"output":{"8065":"Kartoniert","8078":"PDF","8109":"EPUB"},"original_name":{"8065":"","8078":"","8109":""},"openaccess_license_link":{"8065":"","8078":"","8109":""},"openaccess_license_name":{"8065":"","8078":"","8109":""},"openaccess_external_link":{"8065":"","8078":"","8109":""},"gpsr_safety_info":{"8065":"","8078":"","8109":""},"description":{"8065":"Alternative Facts, Post-Truth, Fake News \u2013 kaum etwas erregt und spaltet den \u00f6ffentlichen Diskurs aktuell derart wie die Auseinandersetzungen \u00fcber die Bedeutung von Fakten. Die globalen Krisen der j\u00fcngsten Zeit wie der Klimawandel, die Covid-19-Pandemie und der russische Angriffskrieg werden von einem diffusen Gef\u00fchl der Verunsicherung begleitet, das auf den prek\u00e4ren Status von Wahrheit, Wirklichkeit und Faktizit\u00e4t verweist. In Diskursen der Gegenwart stehen diese wie selten zuvor zur Debatte und verlangen nach einer Neuverhandlung. Ausgehend von diesem Befund zielt das Buch darauf, in \u00dcberschreitung der vorherrschenden bin\u00e4ren Unterscheidung zwischen Fakten und klar davon abzugrenzenden Fiktionen oder L\u00fcgen zu einer solchen Neuordnung beizutragen. Die versammelten Essays widmen sich gesellschaftlichen Ph\u00e4nomenen wie Hatespeech, politischer L\u00fcge, Propaganda, Halbwahrheiten oder Verschw\u00f6rungstheorien, beschreiben historische, epistemologische und sprachtheoretische Zusammenh\u00e4nge und analysieren aktuelle politische Fallbeispiele sowie kulturelle Reflexionen in Fernsehserien, Filmen und Literatur.<br\/><br\/>In diesem Band begegnen sich kultur- und literaturwissenschaftliche, soziologische, literarische wie philosophische Stimmen und Perspektiven. Mit Beitr\u00e4gen von Dirk Baecker, Klaus Benesch, Elisabeth Bronfen, Chiara Cappelletto, Oswald Egger, Nicola Gess und Carolin Amlinger, Jocelyn Holland, Gertrud Koch, Kathrin R\u00f6ggla, Marc R\u00f6lli, Sylvia Sasse und Sandro Zanetti, Thomas Schestag, Marcus Steinweg, Peter Waterhouse und Slavoj \u017di\u017eek.","8078":"Alternative Facts, Post-Truth, Fake News \u2013 kaum etwas erregt und spaltet den \u00f6ffentlichen Diskurs aktuell derart wie die Auseinandersetzungen \u00fcber die Bedeutung von Fakten. Die globalen Krisen der j\u00fcngsten Zeit wie der Klimawandel, die Covid-19-Pandemie und der russische Angriffskrieg werden von einem diffusen Gef\u00fchl der Verunsicherung begleitet, das auf den prek\u00e4ren Status von Wahrheit, Wirklic
21242hkeit und Faktizit\u00e4t verweist. In Diskursen der Gegenwart stehen diese wie selten zuvor zur Debatte und verlangen nach einer Neuverhandlung. Ausgehend von diesem Befund zielt das Buch darauf, in \u00dcberschreitung der vorherrschenden bin\u00e4ren Unterscheidung zwischen Fakten und klar davon abzugrenzenden Fiktionen oder L\u00fcgen zu einer solchen Neuordnung beizutragen. Die versammelten Essays widmen sich gesellschaftlichen Ph\u00e4nomenen wie Hatespeech, politischer L\u00fcge, Propaganda, Halbwahrheiten oder Verschw\u00f6rungstheorien, beschreiben historische, epistemologische und sprachtheoretische Zusammenh\u00e4nge und analysieren aktuelle politische Fallbeispiele sowie kulturelle Reflexionen in Fernsehserien, Filmen und Literatur.<br\/><br\/>In diesem Band begegnen sich kultur- und literaturwissenschaftliche, soziologische, literarische wie philosophische Stimmen und Perspektiven. Mit Beitr\u00e4gen von Dirk Baecker, Klaus Benesch, Elisabeth Bronfen, Chiara Cappelletto, Oswald Egger, Nicola Gess und Carolin Amlinger, Jocelyn Holland, Gertrud Koch, Kathrin R\u00f6ggla, Marc R\u00f6lli, Sylvia Sasse und Sandro Zanetti, Thomas Schestag, Marcus Steinweg, Peter Waterhouse und Slavoj \u017di\u017eek.","8109":"Alternative Facts, Post-Truth, Fake News \u2013 kaum etwas erregt und spaltet den \u00f6ffentlichen Diskurs aktuell derart wie die Auseinandersetzungen \u00fcber die Bedeutung von Fakten. Die globalen Krisen der j\u00fcngsten Zeit wie der Klimawandel, die Covid-19-Pandemie und der russische Angriffskrieg werden von einem diffusen Gef\u00fchl der Verunsicherung begleitet, das auf den prek\u00e4ren Status von Wahrheit, Wirklichkeit und Faktizit\u00e4t verweist. In Diskursen der Gegenwart stehen diese wie selten zuvor zur Debatte und verlangen nach einer Neuverhandlung. Ausgehend von diesem Befund zielt das Buch darauf, in \u00dcberschreitung der vorherrschenden bin\u00e4ren Unterscheidung zwischen Fakten und klar davon abzugrenzenden Fiktionen oder L\u00fcgen zu einer solchen Neuordnung beizutragen. Die versammelten Essays widmen sich gesellschaftlichen Ph\u00e4nomenen wie Hatespeech, politischer L\u00fcge, Propaganda, Halbwahrheiten oder Verschw\u00f6rungstheorien, beschreiben historische, epistemologische und sprachtheoretische Zusammenh\u00e4nge und analysieren aktuelle politische Fallbeispiele sowie kulturelle Reflexionen in Fernsehserien, Filmen und Literatur.<br\/><br\/>In diesem Band begegnen sich kultur- und literaturwissenschaftliche, soziologische, literarische wie philosophische Stimmen und Perspektiven. Mit Beitr\u00e4gen von Dirk Baecker, Klaus Benesch, Elisabeth Bronfen, Chiara Cappelletto, Oswald Egger, Nicola Gess und Carolin Amlinger, Jocelyn Holland, Gertrud Koch, Kathrin R\u00f6ggla, Marc R\u00f6lli, Sylvia Sasse und Sandro Zanetti, Thomas Schestag, Marcus Steinweg, Peter Waterhouse und Slavoj \u017di\u017eek."},"doi":{"8065":"","8078":"10.28937\/978-3-7873-4055-2","8109":""},"isbn":{"8065":"978-3-7873-4054-5","8078":"978-3-7873-4055-2","8109":"978-3-7873-4289-1"},"marketing_short_text":{"8065":"","8078":"","8109":""},"recension_text":{"8065":"","8078":"","8109":""},"language":{"8065":"","8078":"","8109":""},"cover":{"8065":"Kartoniert","8078":"","8109":""},"pages":{"8065":"385 Seiten","8078":"386 Seiten","8109":"385 Seiten"},"edition":{"8065":"","8078":"Unver\u00e4ndertes eBook der 1. Auflage von 2022","8109":"Unver\u00e4ndertes EPUB der 1. Auflage von 2022"},"pod":{"8065":"Nein","8078":"Nein","8109":"Nein"},"copyright_year":{"8065":"","8078":"","8109":""},"vlb_tix_link":{"8065":"https:\/\/neu.vlbtix.de\/products\/9783787340545?type=gtin","8078":"","8109":""},"defaultValues":{"163":"15"}}; 21243 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 21244 21245 if (typeof window.amxnotif_wrap_attributes === 'function') { 21246 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 21247 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 21248 } 21249 21250 const configurableOptionsComponent = initConfigurableOptions( 21251 '4115', 21252 config 21253 ); 21254 const swatchOptionsComponent = initSwatchOptions( 21255 swatchConfig 21256 ); 21257 21258 // DWS - Configurable product preselect start 21259 const confProdPreSelect = () => { 21260 return { 21261 preselectQuerystringItems() { 21262 var data = {"id":"8065","output":"15"}; 21263 const urlQueryParams = new URLSearchParams(window.location.search); 21264 21265 this.$nextTick(() => { 21266 setTimeout(() => { 21267 const rootEl = this.$root || this.$el; 21268 if (!rootEl) return; 21269 21270 const applySelection = (attrCode, attrValue) => { 21271 if (attrValue === undefined || attrValue === null || attrValue === '') return; 21272 21273 const attributes = Object.values(this.optionConfig.attributes || {}); 21274 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 21275 21276 if (targetAttr) { 21277 const attrId = String(targetAttr.id); 21278 const optionVal = String(attrValue); 21279 21280 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 21281 21282 if (inputEl) { 21283 inputEl.click(); 21284 inputEl.dispatchEvent(new Event('change', { 21285 bubbles: true 21286 })); 21287 } else { 21288 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 21289 if (selectEl) { 21290 selectEl.value = optionVal; 21291 selectEl.dispatchEvent(new Event('change', { 21292 bubbles: true 21293 })); 21294 } 21295 } 21296 21297 this.changeOption(attrId, optionVal, false); 21298 } 21299 }; 21300 21301 if (data && typeof data === 'object') {
21302 Object.keys(data).forEach(key => applySelection(key, data[key])); 21303 } 21304 21305 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 21306 if (attribute && attribute.code) { 21307 let optionValue = urlQueryParams.get(attribute.code); 21308 if (optionValue) { 21309 let optionId = false; 21310 const attributes = Object.values(this.optionConfig.attributes || {}); 21311 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 21312 21313 let found = false; 21314 Object.values(targetAttr.options).map(option => { 21315 if (found === false && option.label === optionValue) { 21316 optionId = option.id; 21317 found = true; 21318 } 21319 }); 21320 21321 const attrId = String(targetAttr.id); 21322 let optionVal = String(optionValue); 21323 if (found) { 21324 optionVal = String(optionId); 21325 } 21326 21327 applySelection(attribute.code, optionVal); 21328 } 21329 } 21330 }); 21331 }, 100); 21332 }); 21333 } 21334 } 21335 }; 21336 // DWS - Configurable product preselect end 21337 21338 const result = Object.assign( 21339 configurableOptionsComponent, 21340 swatchOptionsComponent, { 21341 productId: '4115', 21342 productIndex: 0, 21343 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 21344 showSwatches: false, 21345 precalcOptions: {}, 21346 originalInit: configurableOptionsComponent.init, 21347 init() { 21348 try { 21349 this.precalcOptions = {}; 21350 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 21351 this.preselectQuerystringItems(); 21352 if (Array.isArray(attrSource)) { 21353 attrSource.forEach(attr => { 21354 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 21355 }); 21356 } else if (attrSource && typeof attrSource === 'object') { 21357 Object.keys(attrSource).forEach(id => { 21358 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 21359 }); 21360 } 21361 } catch (e) { 21362 console.error('Pre-calc error:', e); 21363 } 21364 21365 if (typeof this.originalInit === 'function') { 21366 this.originalInit(); 21367 } 21368 21369 try { 21370 this.initShowSwatchesIntersect(); 21371 } catch (e) { 21372 console.error('intersect error:', e); 21373 } 21374 }, 21375 21376 updateGallery() { 21377 if (!this.productIndex) return; 21378 21379 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 21380 method: 'GET', 21381 headers: { 21382 'Content-Type': 'application/json', 21383 'X-Requested-With': 'XMLHttpRequest' 21384 } 21385 }) 21386 .then(response => response.json()) 21387 .then(data => { 21388 if (data && data.medium) { 21389 window.dispatchEvent(new CustomEvent("update-gallery-4115", { 21390 detail: data.medium 21391 })); 21392 } 21393 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 21394 }, 21395 21396 21397 initShowSwatchesIntersect() { 21398 const observer = new IntersectionObserver(entries => { 21399 if (entries[0].isIntersecting) { 21400 this.showSwatches = true; 21401 observer.disconnect(); 21402 } 21403 }, { 21404 rootMargin: '512px' 21405 }); 21406 observer.observe(this.$el); 21407 }, 21408 getOptions(attrId) { 21409 return this.precalcOptions[attrId] || []; 21410 }, 21411 getOptionsByAttrId() { 21412 return this.getOptions(this.$el.dataset.attributeId); 21413 }, 21414 _getItemId() { 21415 if (this.item && this.item.id) return this.item.id; 21416 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 21417 }, 21418 getSwatchOptionHtmlId() { 21419 const itemId = this._getItemId(); 21420 return itemId ? this.$id(`attribute-option-4115-${itemId}`) : ''; 21421 }, 21422 getSwatchOptionHtmlIdGroup() { 21423 const itemId = this._getItemId(); 21424 return itemId ? [`attribute-option-4115-${itemId}`] : []; 21425 }, 21426 getAttributeSwatchData(attributeId) { 21427 const data = Object.assign({}, this.swatchConfig[attributeId]); 21428 if (data['additional_data']) { 21429 try { 21430 data['details'] = JSON.parse(data['additional_data']); 21431 } catch (e) { 21432 data['details'] = {}; 21433 } 21434 } 21435 return data; 21436 }, 21437 getSwatchType(attributeId, optionId) { 21438 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 21439 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 21440 } 21441 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 21442 this.swatchConfig[attributeId].details.swatch_input_type : 21443 "empty"; 21444 if (type === 'visual') { 21445 const config = this.swatchConfig[attributeId]; 21446 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 21447 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 21448 } 21449 // Fallback to first option type 21450 for (const oId in config) { 21451 if (config[oId] && typeof config[oId].type !== 'undefined') { 21452 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 21453 } 21454 } 21455 } 21456 return type; 21457 }, 21458 mapSwatchTypeNumberToTypeCode(type) { 21459 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 21460 }, 21461 isTextSwatch() { 21462 const itemId = this._getItemId(); 21463 if (!this.$el || !itemId) return false;
21464 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21465 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 21466 }, 21467 21468 getSwatchText() { 21469 const itemId = this._getItemId(); 21470 if (this.item) return this.item.label || ''; 21471 if (!this.$el || !itemId) return ''; 21472 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21473 const options = attrId ? this.getOptions(attrId) : []; 21474 const opt = options.find(o => o.id == itemId); 21475 return opt ? opt.label : ''; 21476 }, 21477 getSwatchBackgroundStyle() { 21478 const itemId = this._getItemId(); 21479 if (!this.$el || !itemId) return ''; 21480 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21481 if (!attrId) return ''; 21482 const type = this.getSwatchType(attrId, itemId); 21483 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 21484 this.swatchConfig[attrId][itemId] : 21485 null; 21486 if (!swatchData) return ''; 21487 if (type === "color") return 'background-color:' + swatchData.value; 21488 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 21489 return ''; 21490 }, 21491 swatchOptionClasses() { 21492 const itemId = this._getItemId(); 21493 if (!this.$el || !itemId) return {}; 21494 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21495 return { 21496 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 21497 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 21498 'w-6 h-6': !this.isTextSwatch() 21499 } 21500 }, 21501 21502 onFocusSwatchItem() { 21503 const itemId = this._getItemId(); 21504 if (itemId) this.focusedLabel = itemId; 21505 }, 21506 onChangeOption() { 21507 const itemId = this._getItemId(); 21508 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 21509 if (attrId && itemId) this.changeOption(attrId, itemId); 21510 }, 21511 changeOption(attributeId, value) { 21512 if (value === '') { 21513 return; 21514 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 21515 } else { 21516 this.selectedValues[attributeId] = value; 21517 } 21518 21519 this.findSimpleIndex(); 21520 this.findAllowedAttributeOptions(); 21521 this.updatePrices(); 21522 this.updateGallery(); 21523 21524 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 21525 this.findProductIdsForPartialSelection(this.selectedValues) : []; 21526 21527 const eventDetail = { 21528 productId: this.productId, 21529 optionId: attributeId, 21530 value: value, 21531 productIndex: this.productIndex || 0, 21532 selectedValues: this.selectedValues, 21533 candidates: candidates, 21534 sourceElement: this.$el 21535 }; 21536 21537 // Dispatch for Amasty 21538 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 21539 detail: eventDetail 21540 })); 21541 21542 // Dispatch for Hyva listing 21543 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 21544 detail: eventDetail 21545 })); 21546 }, 21547 21548 21549 clearOptionIfActive() { 21550 const itemId = this._getItemId(); 21551 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 21552 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 21553 this.changeOption(attrId, ''); 21554 21555 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 21556 if (!input && this.$el?.querySelector) { 21557 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 21558 } 21559 if (!input && this.$el?.closest) { 21560 const root = this.$el.closest('[data-product-id]') || this.$el; 21561 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 21562 } 21563 if (input) { 21564 input.checked = false;
21565 } 21566 } 21567 }, 21568 get optionIsEnabled() { 21569 const itemId = this._getItemId(); 21570 if (!this.$el || !itemId) return true; 21571 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21572 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 21573 return !!allowedOptions.find(opt => opt.id == itemId); 21574 }, 21575 get isSelected() { 21576 const itemId = this._getItemId(); 21577 if (!this.$el || !itemId) return false; 21578 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21579 return attrId ? (this.selectedValues[attrId] == itemId) : false; 21580 }, 21581 get isSwatchRequired() { 21582 if (!this.$el) return false; 21583 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21584 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 21585 }, 21586 focusedLabel: false, 21587 activeTooltipItem: false, 21588 tooltipPositionElement: false,
21589 setActiveTooltipItem() { 21590 const itemId = this._getItemId(); 21591 if (!this.$el || !itemId) return; 21592 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 21593 this.activeTooltipItem = { 21594 attribute: attrId, 21595 item: itemId, 21596 index: 0 21597 }; 21598 this.tooltipPositionElement = this.$event ? this.$event.target : null; 21599 }, 21600 unsetActiveTooltipItem() { 21601 this.activeTooltipItem = false; 21602 } 21603 }, 21604 confProdPreSelect() 21605 ); 21606 21607 if (result.optionConfig && result.optionConfig.attributes) { 21608 const attributes = result.optionConfig.attributes; 21609 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 21610 let source = attributes; 21611 if (Array.isArray(attributes)) { 21612 source = {}; 21613 attributes.forEach(attr => { 21614 if (attr && attr.id) source[attr.id] = attr; 21615 }); 21616 } 21617 const values = Object.values(source); 21618 const wrapper = Object.assign(values, source); 21619 Object.defineProperty(wrapper, '__amxnotifWrapped', { 21620 value: true, 21621 enumerable: false 21622 }); 21623 result.optionConfig.attributes = wrapper; 21624 } 21625 } 21626 21627 return result; 21628 } 21629 21630 window.addEventListener('alpine:init', () => { 21631 Alpine.data('initConfigurableSwatchOptions_4115', initConfigurableSwatchOptions_4115); 21632 }, { 21633 once: true 21634 }); 21635 </script>
21635 21636 21637 <div x-data="initConfigurableSwatchOptions_4115" x-defer="intersect"> 21638 <div class="pagebuilder-home-hidden"> 21639 21640 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 21641 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 21642 <template x-if="showSwatches"> 21643 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4115-163" role="radiogroup" aria-label="Einband"> 21644 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 21645 <div :data-option-id="item.id" style="display: contents"> 21646 <div x-id="getSwatchOptionHtmlIdGroup"> 21647 <template x-if="optionIsEnabled"> 21648 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
21648self="unsetActiveTooltipItem"> 21649 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4115-163"> 21650 <div> 21651 <template x-if="isTextSwatch"> 21652 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 21653 </template> 21654 <template x-if="!optionIsActive(163, item.id)"> 21655 <div> 21656 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 21657 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 21658 </svg> 21659 </div> 21660 </template> 21661 </div> 21662 </label> 21663 </template> 21664</div> </div> 21665 </template> 21666 </div> 21667 </template> 21668 </div> 21669 </div> 21670 </div> 21671 </div> 21672 21673 <div class="meta py-4 pagebuilder-home-hidden"> 21674 <div x-data="initMarketingShortText_4115()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 21675 <!-- Marketing short text --> 21676 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 21677 </div> 21678 21679 <!-- Short description --> 21680 <div class="short-description"> 21681 Alternative Facts, Post-Truth, Fake News – kaum etwas erregt und spaltet den öffentlichen Diskurs aktuell derart wie die Auseinandersetzungen über die Bedeutung von Fakten. Die globalen Krisen ... <a href="https://meiner.de/fmv_de/fakten-und-verunsicherung" class="underline">mehr</a> 21682 </div> 21683 </div> 21684 21685 <!-- Series --> 21686 <div class="mb-1"> 21687 <span class="sr-only">Reihe:</span> 21688 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 21689 <span>Blaue Reihe</span> 21690 </a> 21691 </div> 21692 21693 21694 <div class="mb-1"> 21695 <span x-data="initEditionText_4115()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 21696 <!-- Marketing short text --> 21697 <span class="edition-text" x-html="editionText"></span> 2022, 385 Seiten </span> 21698 </div> 21699 21700 </div> 21701 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 21702 21703 <div class="justify-end" x-data="initPriceBox()" @update-prices-4115.window="updatePrice($event.detail);"> 21704 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4115" data-price-box="product-id-4115"><span class="normal-price"> 21705 <span x-data x-id="['product\u002Dprice\u002D4115']" class="price-container price-final_price tax weee"> 21706 <span class="price-label">Ab</span> 21707 <span class="approx-price">ca. </span> 21708 <span :id="$id('product\u002Dprice\u002D4115')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 21709 </span> 21710</span> 21711 21712 21713</div> </div> 21714 21715 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 21716 <div class="open-access-container open-access-container-4115 flex mt-4 ml-auto sm:mt-0 hidden"> 21717 <div class="text-gray-700"> 21718 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 21719 <a href="" target="_blank" class="open-access-external-link m-auto "> 21720 Kostenlos online lesen </a> 21721 </button> 21722 </div> 21723 </div> 21724 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Fakten und Verunsicherung" aria-label="In den Warenkorb Fakten und Verunsicherung" data-addto="cart"> 21725 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 21726 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
217260 014 0z"></path> 21727</svg> 21728 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 21729 In den Warenkorb </span> 21730 </button> 21731 21732<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4115)" aria-label="Zur Wunschliste hinzufügen Fakten und Verunsicherung" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 21733 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 21734 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 21735</svg> 21736</button> 21737 </div> 21738 </div> 21739 </div> 21740
21740<script> 21741 function initMarketingShortText_4115() { 21742 var marketingShortTextConfig = {}; 21743 if (typeof window.initConfigurableSwatchOptions_4115 === "function") { 21744 var fullConfig = window.initConfigurableSwatchOptions_4115().optionConfig 21745 var marketingShortTextConfig = fullConfig.marketing_short_text; 21746 } 21747 return { 21748 marketingShortText: '', 21749 config: marketingShortTextConfig, 21750 productId: '4115', 21751 getMarketingShortText(detail) { 21752 this.marketingShortText = detail.productIndex ? 21753 this.config[detail.productIndex] : 21754 null; 21755 }, 21756 eventListeners: { 21757 ['@listing-configurable-selection-changed.window'](event) { 21758 if (this.productId == event.detail.productId) { 21759 this.getMarketingShortText(event.detail); 21760 } 21761 21762 } 21763 } 21764 } 21765 } 21766 21767 function initEditionText_4115() { 21768 var editionTextConfig = {}; 21769 if (typeof window.initConfigurableSwatchOptions_4115 === "function") { 21770 var fullConfig = window.initConfigurableSwatchOptions_4115().optionConfig 21771 var editionTextConfig = fullConfig.edition; 21772 } 21773 return { 21774 editionText: '', 21775 config: editionTextConfig, 21776 productId: '4115', 21777 getEditionText(detail) { 21778 this.editionText = detail.productIndex ? 21779 this.config[detail.productIndex] : 21780 null; 21781 }, 21782 eventListeners: { 21783 ['@listing-configurable-selection-changed.window'](event) { 21784 if (this.productId == event.detail.productId) { 21785 this.getEditionText(event.detail); 21786 } 21787 21788 } 21789 } 21790 } 21791 } 21792 </script>
21792 21793 </form> 21794 21795 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4068/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk10167"> 21796 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4068"> 21797 <a href="https://meiner.de/fmv_de/transparenz" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 21798 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4068.window="$el.src = $event.detail" alt="Transparenz" title="Transparenz" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787341375_4.jpg" :style="{ 21799 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 21800 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 21801 }"> 21802 </a> 21803 <div class="product-info flex flex-col flex-grow "> 21804 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 21805 <div class="mb-2 text-sm text-gray-500 font-medium"> 21806 <a href="https://meiner.de/fmv_de/person/Lea-Watzinger-10168/" class="mb-2"> 21807 Lea Watzinger </a> 21808 </div> 21809 <a class="product-item-link" href="https://meiner.de/fmv_de/transparenz"> 21810 Transparenz </a> 21811 </div> 21812 21813 <div x-data="initEditionText_4068()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 21814 <!-- Marketing short text --> 21815 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 21816 </div> 21817 </div> 21818 21819 <div class="py-1 grid mb-4 "> 21820 21821 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4068,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4068,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7947":"1","7948":"1","7949":"1"},"childProductsAlertStatus":{"7947":"0","7948":"0","7949":"0"},"indexMapping":{"163:15":7947,"163:8":7948,"163:9":7949},"availabilityMessages":{"7947":"Lieferbar innerhalb von 3-5 Tagen","7948":"Download sofort verf\u00fcgbar","7949":"Download sofort verf\u00fcgbar"},"openAccess":{"4068":{"status":0},"7947":{"status":0},"7948":{"status":0},"7949":{"status":0}}},"availabilityMessages":{"7947":"Lieferbar innerhalb von 3-5 Tagen","7948":"Download sofort verf\u00fcgbar","7949":"Download sofort verf\u00fcgbar"},"openAccess":{"4068":{"status":0},"7947":{"status":0},"7948":{"status":0},"7949":{"status":0}}}'> 21822 <template x-if="containerVisible"> 21823 <!-- Popup Trigger --> 21824 <div> 21825 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 21826 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
21827 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 21828 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 21829<title>bell</title></svg> 21830</span> 21831 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 21832 21833 <!-- Popup Modal --> 21834 <template x-if="showModal"> 21835 <template x-teleport=".page-wrapper"> 21836 <div x-cloak class="fixed inset-0 flex items-center justify-center 21837 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 21838 <div class="relative bg-white rounded-lg shadow-xl 21839 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 21840 <div class="p-6"> 21841 <!-- Subscription Form for Popup --> 21842 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 21843 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 21844 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 21845 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 21846 21847 <div class="flex flex-col gap-3"> 21848 <div class="flex-grow grow"> 21849 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 21850 shadow-xs focus:outline-none focus:outline-hidden 21851 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 21852 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 21853 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 21854 </div> 21855 <input type="hidden" name="product_id" :value="currentProductId"> 21856 <input type="hidden" name="type" value="email"> 21857 21858 21859 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 21860 21861 <div class="amxnotif_guest_action"> 21862 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 21863 rounded-md focus:outline-none 21864 focus:outline-hidden focus:ring-2 21865 focus:ring-offset-2 disabled:opacity-50 21866 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 21867 Benachrichtigen </button> 21868 </div> 21869 </div> 21870 21871 <div class="flex items-start pt-2"> 21872 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 21873 text-blue-600 border-gray-300 rounded-sm"> 21874 <label class="amxnotif-stock-gdrp-label cursor-pointer 21875 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 21876 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 21877 </div> 21878 </form> 21879 </div> 21880 21881 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 21882 hover:text-gray-600 transition-colors" aria-label="Schließen"> 21883 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 21884 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 21885<title>x</title></svg> 21886 </button> 21887 </div> 21888 </div> 21889 </template> 21890 </template> 21891 </div> 21892 </template> 21893 </div> 21894 21895<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4068" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4068,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7947":"1","7948":"1","7949":"1"},"childProductsAlertStatus":{"7947":"0","7948":"0","7949":"0"},"indexMapping":"{\u0022163:15\u0022:7947,\u0022163:8\u0022:7948,\u0022163:9\u0022:7949}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4068,"availabilityMessages":{"7947":"Lieferbar innerhalb von 3-5 Tagen","7948":"Download sofort verf\u00fcgbar","7949":"Download sofort verf\u00fcgbar"},"openAccess":{"4068":{"status":0},"7947":{"status":0},"7948":{"status":0},"7949":{"status":0}}}'> 21896 21897 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
21898 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 21899 <span x-html="optionsLabelText"></span> 21900 </p> 21901</div> </div> 21902 21903
21903<script> 21904 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 21905 try { 21906 const attributes = (config && config.attributes) ? config.attributes : null; 21907 if (!attributes) return []; 21908 let attr = null; 21909 if (Array.isArray(attributes)) { 21910 for (let i = 0; i < attributes.length; i++) { 21911 const a = attributes[i]; 21912 if (a && a.id == attrId) { 21913 attr = a; 21914 break; 21915 } 21916 } 21917 } else { 21918 attr = attributes[attrId]; 21919 } 21920 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 21921 } catch (e) { 21922 return []; 21923 } 21924 }; 21925 21926 function initConfigurableSwatchOptions_4068() { 21927 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7947"]},{"id":"8","label":"PDF","products":["7948"]},{"id":"9","label":"EPUB","products":["7949"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7947":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7948":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7949":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"isApproxPrice":null},"productId":"4068","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7947":{"163":"15"},"7948":{"163":"8"},"7949":{"163":"9"}},"salable":{"163":{"15":["7947"],"8":["7948"],"9":["7949"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"7947":"004131","7948":"004132","7949":"004137"},"output":{"7947":"Kartoniert","7948":"PDF","7949":"EPUB"},"original_name":{"7947":"","7948":"","7949":""},"openaccess_license_link":{"7947":"","7948":"","7949":""},"openaccess_license_name":{"7947":"","7948":"","7949":""},"openaccess_external_link":{"7947":"","7948":"","7949":""},"gpsr_safety_info":{"7947":"","7948":"","7949":""},"description":{"7947":"Transparenz ist ein Schl\u00fcsselbegriff des 21. Jahrhunderts. Sie hat sich einerseits zum Erfordernis entwickelt, dem alle entsprechen wollen: eine sich als modern verstehende Politik, aber auch das Individuum. Andererseits droht sowohl dem Staat als auch den Einzelnen ein digitaler Kontrollverlust. Der Band untersucht die Vielschichtigkeit von Transparenz und verbindet dabei Ans\u00e4tze aus Ideengeschichte, Politischer Philosophie und Medienethik.<br\/><br\/>Seit der Jahrtausendwende entwickelt der Transparenzbegriff eine zivilgesellschaftliche und politische Eigendynamik. Transparenz entwickelt sich zur Ideologie einer zeitgem\u00e4\u00dfen digitalen Medienlogik. Als zukunftsweisende und Freiheit versprechende Norm steht sie auf den Agenden von Demokratie-AktivistInnen, PolitikerInnen, InternetnutzerInnen, aber auch der demokratischen Gesellschaft als ganzer. Der gl\u00e4serne Mensch allerdings unterst\u00fctzt durch sein Nutzungsverhalten im Digitalen seine eigene Transparenz. Dies resultiert meist nicht in Freiheit und Partizipation, sondern in Kontrolle und Manipulation. Transparenz ist zu einem Konsensbegriff von beinahe universaler Geltung avanciert und leistet einen wesentlichen Beitrag zur Selbstverst\u00e4ndigung von Gesellschaften im digitalen Transformationsprozess. Dabei ger\u00e4t oft in den Hintergrund, dass es sich, je nac
21927hdem, wer oder was transparent sein soll, um v\u00f6llig verschiedene Bezugspunkte handelt. Lea Watzinger geht der Diskussion um Transparenz unter R\u00fcckgriff auf philosophiegeschichtliche Vorg\u00e4ngerdebatten zu \u00bb\u00d6ffentlichkeit\u00ab und \u00bbPublizit\u00e4t\u00ab nach und sortiert das Begriffsfeld von \u00bbTransparenz\u00ab neu.","7948":"Transparenz ist ein Schl\u00fcsselbegriff des 21. Jahrhunderts. Sie hat sich einerseits zum Erfordernis entwickelt, dem alle entsprechen wollen: eine sich als modern verstehende Politik, aber auch das Individuum. Andererseits droht sowohl dem Staat als auch den Einzelnen ein digitaler Kontrollverlust. Der Band untersucht die Vielschichtigkeit von Transparenz und verbindet dabei Ans\u00e4tze aus Ideengeschichte, Politischer Philosophie und Medienethik.<br\/><br\/>Seit der Jahrtausendwende entwickelt der Transparenzbegriff eine zivilgesellschaftliche und politische Eigendynamik. Transparenz entwickelt sich zur Ideologie einer zeitgem\u00e4\u00dfen digitalen Medienlogik. Als zukunftsweisende und Freiheit versprechende Norm steht sie auf den Agenden von Demokratie-AktivistInnen, PolitikerInnen, InternetnutzerInnen, aber auch der demokratischen Gesellschaft als ganzer. Der gl\u00e4serne Mensch allerdings unterst\u00fctzt durch sein Nutzungsverhalten im Digitalen seine eigene Transparenz. Dies resultiert meist nicht in Freiheit und Partizipation, sondern in Kontrolle und Manipulation. Transparenz ist zu einem Konsensbegriff von beinahe universaler Geltung avanciert und leistet einen wesentlichen Beitrag zur Selbstverst\u00e4ndigung von Gesellschaften im digitalen Transformationsprozess. Dabei ger\u00e4t oft in den Hintergrund, dass es sich, je nachdem, wer oder was transparent sein soll, um v\u00f6llig verschiedene Bezugspunkte handelt. Lea Watzinger geht der Diskussion um Transparenz unter R\u00fcckgriff auf philosophiegeschichtliche Vorg\u00e4ngerdebatten zu \u00bb\u00d6ffentlichkeit\u00ab und \u00bbPublizit\u00e4t\u00ab nach und sortiert das Begriffsfeld von \u00bbTransparenz\u00ab neu.","7949":"Transparenz ist ein Schl\u00fcsselbegriff des 21. Jahrhunderts. Sie hat sich einerseits zum Erfordernis entwickelt, dem alle entsprechen wollen: eine sich als modern verstehende Politik, aber auch das Individuum. Andererseits droht sowohl dem Staat als auch den Einzelnen ein digitaler Kontrollverlust. Der Band untersucht die Vielschichtigkeit von Transparenz und verbindet dabei Ans\u00e4tze aus Ideengeschichte, Politischer Philosophie und Medienethik.<br\/><br\/>Seit der Jahrtausendwende entwickelt der Transparenzbegriff eine zivilgesellschaftliche und politische Eigendynamik. Transparenz entwickelt sich zur Ideologie einer zeitgem\u00e4\u00dfen digitalen Medienlogik. Als zukunftsweisende und Freiheit versprechende Norm steht sie auf den Agenden von Demokratie-AktivistInnen, PolitikerInnen, InternetnutzerInnen, aber auch der demokratischen Gesellschaft als ganzer. Der gl\u00e4serne Mensch allerdings unterst\u00fctzt durch sein Nutzungsverhalten im Digitalen seine eigene Transparenz. Dies resultiert meist nicht in Freiheit und Partizipation, sondern in Kontrolle und Manipulation. Transparenz ist zu einem Konsensbegriff von beinahe universaler Geltung avanciert und leistet einen wesentlichen Beitrag zur Selbstverst\u00e4ndigung von Gesellschaften im digitalen Transformationsprozess. Dabei ger\u00e4t oft in den Hintergrund, dass es sich, je nachdem, wer oder was transparent sein soll, um v\u00f6llig verschiedene Bezugspunkte handelt. Lea Watzinger geht der Diskussion um Transparenz unter R\u00fcckgriff auf philosophiegeschichtliche Vorg\u00e4ngerdebatten zu \u00bb\u00d6ffentlichkeit\u00ab und \u00bbPublizit\u00e4t\u00ab nach und sortiert das Begriffsfeld von \u00bbTransparenz\u00ab neu."},"doi":{"7947":"","7948":"10.28937\/978-3-7873-4132-0","7949":"10.28937\/978-3-7873-4137-5"},"isbn":{"7947":"978-3-7873-4131-3","7948":"978-3-7873-4132-0","7949":"978-3-7873-4137-5"},"marketing_short_text":{"7947":"","7948":"","7949":""},"recension_text":{"7947":"","7948":"","7949":""},"language":{"7947":"","7948":"","7949":""},"cover":{"7947":"Kartoniert","7948":"","7949":""}
21927,"pages":{"7947":"190 Seiten","7948":"190 Seiten","7949":"190 Seiten"},"edition":{"7947":"","7948":"Unver\u00e4nderte eBook-Ausgabe der 1. Auflage von 2022","7949":"Unver\u00e4nderte eBook-Ausgabe der 1. Auflage von 2022"},"pod":{"7947":"Nein","7948":"Nein","7949":"Nein"},"copyright_year":{"7947":"","7948":"","7949":""},"vlb_tix_link":{"7947":"https:\/\/neu.vlbtix.de\/products\/9783787341313?type=gtin","7948":"","7949":""},"defaultValues":{"163":"15"}}; 21928 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 21929 21930 if (typeof window.amxnotif_wrap_attributes === 'function') { 21931 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 21932 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 21933 } 21934 21935 const configurableOptionsComponent = initConfigurableOptions( 21936 '4068', 21937 config 21938 ); 21939 const swatchOptionsComponent = initSwatchOptions( 21940 swatchConfig 21941 ); 21942 21943 // DWS - Configurable product preselect start 21944 const confProdPreSelect = () => { 21945 return { 21946 preselectQuerystringItems() { 21947 var data = {"id":"7947","output":"15"}; 21948 const urlQueryParams = new URLSearchParams(window.location.search); 21949 21950 this.$nextTick(() => { 21951 setTimeout(() => { 21952 const rootEl = this.$root || this.$el; 21953 if (!rootEl) return; 21954 21955 const applySelection = (attrCode, attrValue) => { 21956 if (attrValue === undefined || attrValue === null || attrValue === '') return; 21957 21958 const attributes = Object.values(this.optionConfig.attributes || {}); 21959 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 21960 21961 if (targetAttr) { 21962 const attrId = String(targetAttr.id); 21963 const optionVal = String(attrValue); 21964 21965 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 21966 21967 if (inputEl) { 21968 inputEl.click(); 21969 inputEl.dispatchEvent(new Event('change', { 21970 bubbles: true 21971 })); 21972 } else { 21973 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 21974 if (selectEl) { 21975 selectEl.value = optionVal; 21976 selectEl.dispatchEvent(new Event('change', { 21977 bubbles: true 21978 })); 21979 } 21980 } 21981 21982 this.changeOption(attrId, optionVal, false); 21983 } 21984 }; 21985 21986 if (data && typeof data === 'object') {
21987 Object.keys(data).forEach(key => applySelection(key, data[key])); 21988 } 21989 21990 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 21991 if (attribute && attribute.code) { 21992 let optionValue = urlQueryParams.get(attribute.code); 21993 if (optionValue) { 21994 let optionId = false; 21995 const attributes = Object.values(this.optionConfig.attributes || {}); 21996 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 21997 21998 let found = false; 21999 Object.values(targetAttr.options).map(option => { 22000 if (found === false && option.label === optionValue) { 22001 optionId = option.id; 22002 found = true; 22003 } 22004 }); 22005 22006 const attrId = String(targetAttr.id); 22007 let optionVal = String(optionValue); 22008 if (found) { 22009 optionVal = String(optionId); 22010 } 22011 22012 applySelection(attribute.code, optionVal); 22013 } 22014 } 22015 }); 22016 }, 100); 22017 }); 22018 } 22019 } 22020 }; 22021 // DWS - Configurable product preselect end 22022 22023 const result = Object.assign( 22024 configurableOptionsComponent, 22025 swatchOptionsComponent, { 22026 productId: '4068', 22027 productIndex: 0, 22028 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 22029 showSwatches: false, 22030 precalcOptions: {}, 22031 originalInit: configurableOptionsComponent.init, 22032 init() { 22033 try { 22034 this.precalcOptions = {}; 22035 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 22036 this.preselectQuerystringItems(); 22037 if (Array.isArray(attrSource)) { 22038 attrSource.forEach(attr => { 22039 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 22040 }); 22041 } else if (attrSource && typeof attrSource === 'object') { 22042 Object.keys(attrSource).forEach(id => { 22043 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 22044 }); 22045 } 22046 } catch (e) { 22047 console.error('Pre-calc error:', e); 22048 } 22049 22050 if (typeof this.originalInit === 'function') { 22051 this.originalInit(); 22052 } 22053 22054 try { 22055 this.initShowSwatchesIntersect(); 22056 } catch (e) { 22057 console.error('intersect error:', e); 22058 } 22059 }, 22060 22061 updateGallery() { 22062 if (!this.productIndex) return; 22063 22064 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 22065 method: 'GET', 22066 headers: { 22067 'Content-Type': 'application/json', 22068 'X-Requested-With': 'XMLHttpRequest' 22069 } 22070 }) 22071 .then(response => response.json()) 22072 .then(data => { 22073 if (data && data.medium) { 22074 window.dispatchEvent(new CustomEvent("update-gallery-4068", { 22075 detail: data.medium 22076 })); 22077 } 22078 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 22079 }, 22080 22081 22082 initShowSwatchesIntersect() { 22083 const observer = new IntersectionObserver(entries => { 22084 if (entries[0].isIntersecting) { 22085 this.showSwatches = true; 22086 observer.disconnect(); 22087 } 22088 }, { 22089 rootMargin: '512px' 22090 }); 22091 observer.observe(this.$el); 22092 }, 22093 getOptions(attrId) { 22094 return this.precalcOptions[attrId] || []; 22095 }, 22096 getOptionsByAttrId() { 22097 return this.getOptions(this.$el.dataset.attributeId); 22098 }, 22099 _getItemId() { 22100 if (this.item && this.item.id) return this.item.id; 22101 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 22102 }, 22103 getSwatchOptionHtmlId() { 22104 const itemId = this._getItemId(); 22105 return itemId ? this.$id(`attribute-option-4068-${itemId}`) : ''; 22106 }, 22107 getSwatchOptionHtmlIdGroup() { 22108 const itemId = this._getItemId(); 22109 return itemId ? [`attribute-option-4068-${itemId}`] : []; 22110 }, 22111 getAttributeSwatchData(attributeId) { 22112 const data = Object.assign({}, this.swatchConfig[attributeId]); 22113 if (data['additional_data']) { 22114 try { 22115 data['details'] = JSON.parse(data['additional_data']); 22116 } catch (e) { 22117 data['details'] = {}; 22118 } 22119 } 22120 return data; 22121 }, 22122 getSwatchType(attributeId, optionId) { 22123 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 22124 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 22125 } 22126 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 22127 this.swatchConfig[attributeId].details.swatch_input_type : 22128 "empty"; 22129 if (type === 'visual') { 22130 const config = this.swatchConfig[attributeId]; 22131 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 22132 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 22133 } 22134 // Fallback to first option type 22135 for (const oId in config) { 22136 if (config[oId] && typeof config[oId].type !== 'undefined') { 22137 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 22138 } 22139 } 22140 } 22141 return type; 22142 }, 22143 mapSwatchTypeNumberToTypeCode(type) { 22144 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 22145 }, 22146 isTextSwatch() { 22147 const itemId = this._getItemId(); 22148 if (!this.$el || !itemId) return false;
22149 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22150 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 22151 }, 22152 22153 getSwatchText() { 22154 const itemId = this._getItemId(); 22155 if (this.item) return this.item.label || ''; 22156 if (!this.$el || !itemId) return ''; 22157 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22158 const options = attrId ? this.getOptions(attrId) : []; 22159 const opt = options.find(o => o.id == itemId); 22160 return opt ? opt.label : ''; 22161 }, 22162 getSwatchBackgroundStyle() { 22163 const itemId = this._getItemId(); 22164 if (!this.$el || !itemId) return ''; 22165 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22166 if (!attrId) return ''; 22167 const type = this.getSwatchType(attrId, itemId); 22168 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 22169 this.swatchConfig[attrId][itemId] : 22170 null; 22171 if (!swatchData) return ''; 22172 if (type === "color") return 'background-color:' + swatchData.value; 22173 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 22174 return ''; 22175 }, 22176 swatchOptionClasses() { 22177 const itemId = this._getItemId(); 22178 if (!this.$el || !itemId) return {}; 22179 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22180 return { 22181 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 22182 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 22183 'w-6 h-6': !this.isTextSwatch() 22184 } 22185 }, 22186 22187 onFocusSwatchItem() { 22188 const itemId = this._getItemId(); 22189 if (itemId) this.focusedLabel = itemId; 22190 }, 22191 onChangeOption() { 22192 const itemId = this._getItemId(); 22193 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 22194 if (attrId && itemId) this.changeOption(attrId, itemId); 22195 }, 22196 changeOption(attributeId, value) { 22197 if (value === '') { 22198 return; 22199 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 22200 } else { 22201 this.selectedValues[attributeId] = value; 22202 } 22203 22204 this.findSimpleIndex(); 22205 this.findAllowedAttributeOptions(); 22206 this.updatePrices(); 22207 this.updateGallery(); 22208 22209 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 22210 this.findProductIdsForPartialSelection(this.selectedValues) : []; 22211 22212 const eventDetail = { 22213 productId: this.productId, 22214 optionId: attributeId, 22215 value: value, 22216 productIndex: this.productIndex || 0, 22217 selectedValues: this.selectedValues, 22218 candidates: candidates, 22219 sourceElement: this.$el 22220 }; 22221 22222 // Dispatch for Amasty 22223 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 22224 detail: eventDetail 22225 })); 22226 22227 // Dispatch for Hyva listing 22228 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 22229 detail: eventDetail 22230 })); 22231 }, 22232 22233 22234 clearOptionIfActive() { 22235 const itemId = this._getItemId(); 22236 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 22237 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 22238 this.changeOption(attrId, ''); 22239 22240 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 22241 if (!input && this.$el?.querySelector) { 22242 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 22243 } 22244 if (!input && this.$el?.closest) { 22245 const root = this.$el.closest('[data-product-id]') || this.$el; 22246 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 22247 } 22248 if (input) { 22249 input.checked = false;
22250 } 22251 } 22252 }, 22253 get optionIsEnabled() { 22254 const itemId = this._getItemId(); 22255 if (!this.$el || !itemId) return true; 22256 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22257 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 22258 return !!allowedOptions.find(opt => opt.id == itemId); 22259 }, 22260 get isSelected() { 22261 const itemId = this._getItemId(); 22262 if (!this.$el || !itemId) return false; 22263 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22264 return attrId ? (this.selectedValues[attrId] == itemId) : false; 22265 }, 22266 get isSwatchRequired() { 22267 if (!this.$el) return false; 22268 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22269 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 22270 }, 22271 focusedLabel: false, 22272 activeTooltipItem: false, 22273 tooltipPositionElement: false,
22274 setActiveTooltipItem() { 22275 const itemId = this._getItemId(); 22276 if (!this.$el || !itemId) return; 22277 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22278 this.activeTooltipItem = { 22279 attribute: attrId, 22280 item: itemId, 22281 index: 0 22282 }; 22283 this.tooltipPositionElement = this.$event ? this.$event.target : null; 22284 }, 22285 unsetActiveTooltipItem() { 22286 this.activeTooltipItem = false; 22287 } 22288 }, 22289 confProdPreSelect() 22290 ); 22291 22292 if (result.optionConfig && result.optionConfig.attributes) { 22293 const attributes = result.optionConfig.attributes; 22294 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 22295 let source = attributes; 22296 if (Array.isArray(attributes)) { 22297 source = {}; 22298 attributes.forEach(attr => { 22299 if (attr && attr.id) source[attr.id] = attr; 22300 }); 22301 } 22302 const values = Object.values(source); 22303 const wrapper = Object.assign(values, source); 22304 Object.defineProperty(wrapper, '__amxnotifWrapped', { 22305 value: true, 22306 enumerable: false 22307 }); 22308 result.optionConfig.attributes = wrapper; 22309 } 22310 } 22311 22312 return result; 22313 } 22314 22315 window.addEventListener('alpine:init', () => { 22316 Alpine.data('initConfigurableSwatchOptions_4068', initConfigurableSwatchOptions_4068); 22317 }, { 22318 once: true 22319 }); 22320 </script>
22320 22321 22322 <div x-data="initConfigurableSwatchOptions_4068" x-defer="intersect"> 22323 <div class="pagebuilder-home-hidden"> 22324 22325 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 22326 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 22327 <template x-if="showSwatches"> 22328 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4068-163" role="radiogroup" aria-label="Einband"> 22329 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 22330 <div :data-option-id="item.id" style="display: contents"> 22331 <div x-id="getSwatchOptionHtmlIdGroup"> 22332 <template x-if="optionIsEnabled"> 22333 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
22333self="unsetActiveTooltipItem"> 22334 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4068-163"> 22335 <div> 22336 <template x-if="isTextSwatch"> 22337 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 22338 </template> 22339 <template x-if="!optionIsActive(163, item.id)"> 22340 <div> 22341 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 22342 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 22343 </svg> 22344 </div> 22345 </template> 22346 </div> 22347 </label> 22348 </template> 22349</div> </div> 22350 </template> 22351 </div> 22352 </template> 22353 </div> 22354 </div> 22355 </div> 22356 </div> 22357 22358 <div class="meta py-4 pagebuilder-home-hidden"> 22359 <div x-data="initMarketingShortText_4068()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 22360 <!-- Marketing short text --> 22361 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 22362 </div> 22363 22364 <!-- Short description --> 22365 <div class="short-description"> 22366 Transparenz ist ein Schlüsselbegriff des 21. Jahrhunderts. Sie hat sich einerseits zum Erfordernis entwickelt, dem alle entsprechen wollen: eine sich als modern verstehende Politik, aber auch das ... <a href="https://meiner.de/fmv_de/transparenz" class="underline">mehr</a> 22367 </div> 22368 </div> 22369 22370 <!-- Series --> 22371 <div class="mb-1"> 22372 <span class="sr-only">Reihe:</span> 22373 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 22374 <span>Blaue Reihe</span> 22375 </a> 22376 </div> 22377 22378 22379 <div class="mb-1"> 22380 <span x-data="initEditionText_4068()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 22381 <!-- Marketing short text --> 22382 <span class="edition-text" x-html="editionText"></span> 2022, 190 Seiten </span> 22383 </div> 22384 22385 </div> 22386 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 22387 22388 <div class="justify-end" x-data="initPriceBox()" @update-prices-4068.window="updatePrice($event.detail);"> 22389 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4068" data-price-box="product-id-4068"><span class="normal-price"> 22390 <span x-data x-id="['product\u002Dprice\u002D4068']" class="price-container price-final_price tax weee"> 22391 <span class="price-label">Ab</span> 22392 <span class="approx-price">ca. </span> 22393 <span :id="$id('product\u002Dprice\u002D4068')" data-price-amount="18.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">18,99 €</span></span> 22394 </span> 22395</span> 22396 22397 22398</div> </div> 22399 22400 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 22401 <div class="open-access-container open-access-container-4068 flex mt-4 ml-auto sm:mt-0 hidden"> 22402 <div class="text-gray-700"> 22403 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 22404 <a href="" target="_blank" class="open-access-external-link m-auto "> 22405 Kostenlos online lesen </a> 22406 </button> 22407 </div> 22408 </div> 22409 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Trans
22409parenz" aria-label="In den Warenkorb Transparenz" data-addto="cart"> 22410 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 22411 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 22412</svg> 22413 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 22414 In den Warenkorb </span> 22415 </button> 22416 22417<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4068)" aria-label="Zur Wunschliste hinzufügen Transparenz" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 22418 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 22419 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 22420</svg> 22421</button> 22422 </div> 22423 </div> 22424 </div> 22425
22425<script> 22426 function initMarketingShortText_4068() { 22427 var marketingShortTextConfig = {}; 22428 if (typeof window.initConfigurableSwatchOptions_4068 === "function") { 22429 var fullConfig = window.initConfigurableSwatchOptions_4068().optionConfig 22430 var marketingShortTextConfig = fullConfig.marketing_short_text; 22431 } 22432 return { 22433 marketingShortText: '', 22434 config: marketingShortTextConfig, 22435 productId: '4068', 22436 getMarketingShortText(detail) { 22437 this.marketingShortText = detail.productIndex ? 22438 this.config[detail.productIndex] : 22439 null; 22440 }, 22441 eventListeners: { 22442 ['@listing-configurable-selection-changed.window'](event) { 22443 if (this.productId == event.detail.productId) { 22444 this.getMarketingShortText(event.detail); 22445 } 22446 22447 } 22448 } 22449 } 22450 } 22451 22452 function initEditionText_4068() { 22453 var editionTextConfig = {}; 22454 if (typeof window.initConfigurableSwatchOptions_4068 === "function") { 22455 var fullConfig = window.initConfigurableSwatchOptions_4068().optionConfig 22456 var editionTextConfig = fullConfig.edition; 22457 } 22458 return { 22459 editionText: '', 22460 config: editionTextConfig, 22461 productId: '4068', 22462 getEditionText(detail) { 22463 this.editionText = detail.productIndex ? 22464 this.config[detail.productIndex] : 22465 null; 22466 }, 22467 eventListeners: { 22468 ['@listing-configurable-selection-changed.window'](event) { 22469 if (this.productId == event.detail.productId) { 22470 this.getEditionText(event.detail); 22471 } 22472 22473 } 22474 } 22475 } 22476 } 22477 </script>
22477 22478 </form> 22479 22480 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4044/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk9391"> 22481 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="4044"> 22482 <a href="https://meiner.de/fmv_de/meinungskrise-und-meinungsbildung" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 22483 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4044.window="$el.src = $event.detail" alt="Meinungskrise und Meinungsbildung" title="Meinungskrise und Meinungsbildung" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787340927_6.jpg" :style="{ 22484 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 22485 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 22486 }"> 22487 </a> 22488 <div class="product-info flex flex-col flex-grow "> 22489 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 22490 <div class="mb-2 text-sm text-gray-500 font-medium"> 22491 <a href="https://meiner.de/fmv_de/person/Christian-Bermes-3208/" class="mb-2"> 22492 Christian Bermes </a> 22493 </div> 22494 <a class="product-item-link" href="https://meiner.de/fmv_de/meinungskrise-und-meinungsbildung"> 22495 Meinungskrise und Meinungsbildung </a> 22496 </div> 22497 22498 <div x-data="initEditionText_4044()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 22499 <!-- Marketing short text --> 22500 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 22501 </div> 22502 </div> 22503 22504 <div class="py-1 grid mb-4 "> 22505 22506 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4044,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4044,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"4417":"1","4415":"1","4416":"1"},"childProductsAlertStatus":{"4417":"0","4415":"0","4416":"0"},"indexMapping":{"163:15":4417,"163:8":4415,"163:9":4416},"availabilityMessages":{"4417":"Lieferbar innerhalb von 3-5 Tagen","4415":"Download sofort verf\u00fcgbar","4416":"Download sofort verf\u00fcgbar"},"openAccess":{"4044":{"status":0},"4417":{"status":0},"4415":{"status":0},"4416":{"status":0}}},"availabilityMessages":{"4417":"Lieferbar innerhalb von 3-5 Tagen","4415":"Download sofort verf\u00fcgbar","4416":"Download sofort verf\u00fcgbar"},"openAccess":{"4044":{"status":0},"4417":{"status":0},"4415":{"status":0},"4416":{"status":0}}}'> 22507 <template x-if="containerVisible"> 22508 <!-- Popup Trigger --> 22509 <div> 22510 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 22511 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
22512 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 22513 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 22514<title>bell</title></svg> 22515</span> 22516 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 22517 22518 <!-- Popup Modal --> 22519 <template x-if="showModal"> 22520 <template x-teleport=".page-wrapper"> 22521 <div x-cloak class="fixed inset-0 flex items-center justify-center 22522 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 22523 <div class="relative bg-white rounded-lg shadow-xl 22524 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 22525 <div class="p-6"> 22526 <!-- Subscription Form for Popup --> 22527 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 22528 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 22529 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 22530 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 22531 22532 <div class="flex flex-col gap-3"> 22533 <div class="flex-grow grow"> 22534 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 22535 shadow-xs focus:outline-none focus:outline-hidden 22536 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 22537 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 22538 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 22539 </div> 22540 <input type="hidden" name="product_id" :value="currentProductId"> 22541 <input type="hidden" name="type" value="email"> 22542 22543 22544 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 22545 22546 <div class="amxnotif_guest_action"> 22547 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 22548 rounded-md focus:outline-none 22549 focus:outline-hidden focus:ring-2 22550 focus:ring-offset-2 disabled:opacity-50 22551 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 22552 Benachrichtigen </button> 22553 </div> 22554 </div> 22555 22556 <div class="flex items-start pt-2"> 22557 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 22558 text-blue-600 border-gray-300 rounded-sm"> 22559 <label class="amxnotif-stock-gdrp-label cursor-pointer 22560 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 22561 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 22562 </div> 22563 </form> 22564 </div> 22565 22566 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 22567 hover:text-gray-600 transition-colors" aria-label="Schließen"> 22568 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 22569 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 22570<title>x</title></svg> 22571 </button> 22572 </div> 22573 </div> 22574 </template> 22575 </template> 22576 </div> 22577 </template> 22578 </div> 22579 22580<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4044" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4044,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"4417":"1","4415":"1","4416":"1"},"childProductsAlertStatus":{"4417":"0","4415":"0","4416":"0"},"indexMapping":"{\u0022163:15\u0022:4417,\u0022163:8\u0022:4415,\u0022163:9\u0022:4416}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4044,"availabilityMessages":{"4417":"Lieferbar innerhalb von 3-5 Tagen","4415":"Download sofort verf\u00fcgbar","4416":"Download sofort verf\u00fcgbar"},"openAccess":{"4044":{"status":0},"4417":{"status":0},"4415":{"status":0},"4416":{"status":0}}}'> 22581 22582 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
22583 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 22584 <span x-html="optionsLabelText"></span> 22585 </p> 22586</div> </div> 22587 22588
22588<script> 22589 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 22590 try { 22591 const attributes = (config && config.attributes) ? config.attributes : null; 22592 if (!attributes) return []; 22593 let attr = null; 22594 if (Array.isArray(attributes)) { 22595 for (let i = 0; i < attributes.length; i++) { 22596 const a = attributes[i]; 22597 if (a && a.id == attrId) { 22598 attr = a; 22599 break; 22600 } 22601 } 22602 } else { 22603 attr = attributes[attrId]; 22604 } 22605 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 22606 } catch (e) { 22607 return []; 22608 } 22609 }; 22610 22611 function initConfigurableSwatchOptions_4044() { 22612 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["4417"]},{"id":"8","label":"PDF","products":["4415"]},{"id":"9","label":"EPUB","products":["4416"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"4417":{"baseOldPrice":{"amount":9.2523354485981},"oldPrice":{"amount":9.9},"basePrice":{"amount":9.2523354485981},"finalPrice":{"amount":9.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"4415":{"baseOldPrice":{"amount":6.5327092803738},"oldPrice":{"amount":6.99},"basePrice":{"amount":6.5327092803738},"finalPrice":{"amount":6.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"4416":{"baseOldPrice":{"amount":6.5327092803738},"oldPrice":{"amount":6.99},"basePrice":{"amount":6.5327092803738},"finalPrice":{"amount":6.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":6.5327092803738},"oldPrice":{"amount":6.99},"basePrice":{"amount":6.5327092803738},"finalPrice":{"amount":6.99},"isApproxPrice":null},"productId":"4044","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"4417":{"163":"15"},"4415":{"163":"8"},"4416":{"163":"9"}},"salable":{"163":{"15":["4417"],"8":["4415"],"9":["4416"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"4417":"004090","4415":"004091","4416":"004092"},"output":{"4415":"PDF","4416":"EPUB","4417":"Kartoniert"},"original_name":{"4415":"","4416":"","4417":""},"openaccess_license_link":{"4415":"","4416":"","4417":""},"openaccess_license_name":{"4415":"","4416":"","4417":""},"openaccess_external_link":{"4415":"","4416":"","4417":""},"gpsr_safety_info":{"4415":"","4416":"","4417":""},"description":{"4415":"Christian Bermes diskutiert in seinem Essay das Konzept der Meinung in einem grunds\u00e4tzlichen Sinne. Er fragt danach, ob wir \u00fcberhaupt noch ein Verst\u00e4ndnis von Meinungen als Meinungen besitzen. Zeitkritisch und in Auseinandersetzung mit Positionen der Sozial- und Kommunikationswissenschaften zeigt Bermes, dass die Meinungskrisen der Gegenwart letztlich in einer Krisis der Doxa gr\u00fcnden.<br\/><br\/>Die Antworten scheinen klar zu sein, wenn es um Meinungen geht: Meinungen sind privat, subjektiv, beliebig oder willk\u00fcrlich. Werden Meinungen dem Wissen gegen\u00fcbergestellt, erscheinen sie als ein Provisorium, das m\u00f6glichst schnell \u00fcberwunden werden muss, damit sinnvoll von Erkenntnis gesprochen werden kann. Gleichwohl m\u00fcssen wir mit Meinungen umgehen, gerade die Herausforderungen der Sozialen Medien zeigen dies aufs Neue. In seinem Essay entwickelt Bermes in Auseinandersetzung mit Wittgenstein und im Anschluss an das ph\u00e4nomenologische Projekt einer Rehabilitierung der Doxa Bausteine zu einer Theorie wohlfundierter Meinung. Er diagnostiziert einen Mythos, der sich um das Meinungskonzept entwickelt hat, und er\u00f6rtert die Doxa im Ausgang von einem Verst\u00e4ndnis des Exemplarischen. Meinungen sind nicht einfach beliebig, subjektiv oder willk\u00fcrlich. Auch Meinungen unterliegen Qualifikationsmerkmalen. Dies hat sowohl Auswirkungen f\u00fcr die Philosophische Anthropologie als auch f\u00fcr dasjenige, was als \u00f6ffentliche Meinung bezeichnet wird.<br\/><br\/>Die zweite Auflage hat der Autor um ein Vorwort erg\u00e4nzt, das auf die vielf\u00e4ltige Resonanz auf das Buch eingeht.","4416":"Christian Bermes diskutiert in seinem Essay das Konzept der Meinung in einem grunds\u00e4tzlichen Sinne. Er fragt danach, ob wir \u00fcberhaupt noch ein Verst\u00e4ndnis von Meinungen als Meinungen besitzen. Zeitkritisch und in Auseinandersetzung mit Positionen der Sozial- und
22612Kommunikationswissenschaften zeigt Bermes, dass die Meinungskrisen der Gegenwart letztlich in einer Krisis der Doxa gr\u00fcnden.<br\/><br\/>Die Antworten scheinen klar zu sein, wenn es um Meinungen geht: Meinungen sind privat, subjektiv, beliebig oder willk\u00fcrlich. Werden Meinungen dem Wissen gegen\u00fcbergestellt, erscheinen sie als ein Provisorium, das m\u00f6glichst schnell \u00fcberwunden werden muss, damit sinnvoll von Erkenntnis gesprochen werden kann. Gleichwohl m\u00fcssen wir mit Meinungen umgehen, gerade die Herausforderungen der Sozialen Medien zeigen dies aufs Neue. In seinem Essay entwickelt Bermes in Auseinandersetzung mit Wittgenstein und im Anschluss an das ph\u00e4nomenologische Projekt einer Rehabilitierung der Doxa Bausteine zu einer Theorie wohlfundierter Meinung. Er diagnostiziert einen Mythos, der sich um das Meinungskonzept entwickelt hat, und er\u00f6rtert die Doxa im Ausgang von einem Verst\u00e4ndnis des Exemplarischen. Meinungen sind nicht einfach beliebig, subjektiv oder willk\u00fcrlich. Auch Meinungen unterliegen Qualifikationsmerkmalen. Dies hat sowohl Auswirkungen f\u00fcr die Philosophische Anthropologie als auch f\u00fcr dasjenige, was als \u00f6ffentliche Meinung bezeichnet wird.<br\/><br\/>Die zweite Auflage hat der Autor um ein Vorwort erg\u00e4nzt, das auf die vielf\u00e4ltige Resonanz auf das Buch eingeht.","4417":"Christian Bermes diskutiert in seinem Essay das Konzept der Meinung in einem grunds\u00e4tzlichen Sinne. Er fragt danach, ob wir \u00fcberhaupt noch ein Verst\u00e4ndnis von Meinungen als Meinungen besitzen. Zeitkritisch und in Auseinandersetzung mit Positionen der Sozial- und Kommunikationswissenschaften zeigt Bermes, dass die Meinungskrisen der Gegenwart letztlich in einer Krisis der Doxa gr\u00fcnden.<br\/><br\/>Die Antworten scheinen klar zu sein, wenn es um Meinungen geht: Meinungen sind privat, subjektiv, beliebig oder willk\u00fcrlich. Werden Meinungen dem Wissen gegen\u00fcbergestellt, erscheinen sie als ein Provisorium, das m\u00f6glichst schnell \u00fcberwunden werden muss, damit sinnvoll von Erkenntnis gesprochen werden kann. Gleichwohl m\u00fcssen wir mit Meinungen umgehen, gerade die Herausforderungen der Sozialen Medien zeigen dies aufs Neue. In seinem Essay entwickelt Bermes in Auseinandersetzung mit Wittgenstein und im Anschluss an das ph\u00e4nomenologische Projekt einer Rehabilitierung der Doxa Bausteine zu einer Theorie wohlfundierter Meinung. Er diagnostiziert einen Mythos, der sich um das Meinungskonzept entwickelt hat, und er\u00f6rtert die Doxa im Ausgang von einem Verst\u00e4ndnis des Exemplarischen. Meinungen sind nicht einfach beliebig, subjektiv oder willk\u00fcrlich. Auch Meinungen unterliegen Qualifikationsmerkmalen. Dies hat sowohl Auswirkungen f\u00fcr die Philosophische Anthropologie als auch f\u00fcr dasjenige, was als \u00f6ffentliche Meinung bezeichnet wird.<br\/><br\/>Die zweite Auflage hat der Autor um ein Vorwort erg\u00e4nzt, das auf die vielf\u00e4ltige Resonanz auf das Buch eingeht."},"doi":{"4415":"10.28937\/978-3-7873-4091-0","4416":"10.28937\/978-3-7873-4092-7","4417":""},"isbn":{"4415":"978-3-7873-4091-0","4416":"978-3-7873-4092-7","4417":"978-3-7873-4090-3"},"marketing_short_text":{"4415":"","4416":"","4417":"Statt vorher \u20ac 14,90 jetzt nur \u20ac 9,90"},"recension_text":{"4415":"<div class=\"reviews\">\r\n<div class=\"review\">Obwohl alle Welt zu allem und jedem eine Meinung hat, ist das, was all diese Meinungen als solche ausmacht, erstaunlich schwer zu greifen. Christian Bermes \u2026 hat \u2026 ebenso b\u00fcndige wie aufschlussreiche \u00dcberlegungen zu diesem seltsam schillernden Begriff der Meinung angestellt \u2013 \u00dcberlegungen, die das Bild deutlich differenzieren und, wie nur folgerichtig, ver\u00e4ndern.<\/div>\r\n<div class=\"source\">Ralf Konersmann, Die Politische Meinung, Nr. 574 (2022)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Bermes skizziert die Grundlinien einer Philosophie der Doxa in seinem lesenswerten Essay sehr konzentriert und eing\u00e4ngig, indem er der Meinung in der Geschichte der Philosophie nachsp\u00fcrt und unter anderem wichtige Anst\u00f6\u00dfe von Husserl, Heidegger, Arendt und Wittgenstein f\u00fcr ein Konzept der Meinung aufgreift.<\/div>\r\n<div class=\"source\">
22612Ulrike Bardt im Philosophischen Literaturanzeiger 73 (2023) 3.<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">... ist diese \u203aPhilosophie der Doxa\u2039 ungew\u00f6hnlich anregend, weil sie gegen den Begriff der blo\u00dfen Meinungsfreiheit den der weithin untersch\u00e4tzten Meinungsbildung so stark macht. Dem zu folgen, erfordert ein hohes Ma\u00df an Konzentration, doch sch\u00e4rft das eigene Urteilsverm\u00f6gen ungemein. Wer m\u00f6chte sich schon an Georg Christoph Lichtenbergs sp\u00f6ttische Empfehlung halten: \u203aNichts kann mehr zu einer Seelen-Ruhe beitragen, als wenn man gar keine Meinung hat.\u2039<\/div>\r\n<div class=\"source\">Gregor Dotzauer im Tagesspiegel vom 25.01.2022<\/div>\r\n<\/div>","4416":"<div class=\"reviews\">\r\n<div class=\"review\">Obwohl alle Welt zu allem und jedem eine Meinung hat, ist das, was all diese Meinungen als solche ausmacht, erstaunlich schwer zu greifen. Christian Bermes \u2026 hat \u2026 ebenso b\u00fcndige wie aufschlussreiche \u00dcberlegungen zu diesem seltsam schillernden Begriff der Meinung angestellt \u2013 \u00dcberlegungen, die das Bild deutlich differenzieren und, wie nur folgerichtig, ver\u00e4ndern.<\/div>\r\n<div class=\"source\">Ralf Konersmann, Die Politische Meinung, Nr. 574 (2022)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Bermes skizziert die Grundlinien einer Philosophie der Doxa in seinem lesenswerten Essay sehr konzentriert und eing\u00e4ngig, indem er der Meinung in der Geschichte der Philosophie nachsp\u00fcrt und unter anderem wichtige Anst\u00f6\u00dfe von Husserl, Heidegger, Arendt und Wittgenstein f\u00fcr ein Konzept der Meinung aufgreift.<\/div>\r\n<div class=\"source\">Ulrike Bardt im Philosophischen Literaturanzeiger 73 (2023) 3.<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">... ist diese \u203aPhilosophie der Doxa\u2039 ungew\u00f6hnlich anregend, weil sie gegen den Begriff der blo\u00dfen Meinungsfreiheit den der weithin untersch\u00e4tzten Meinungsbildung so stark macht. Dem zu folgen, erfordert ein hohes Ma\u00df an Konzentration, doch sch\u00e4rft das eigene Urteilsverm\u00f6gen ungemein. Wer m\u00f6chte sich schon an Georg Christoph Lichtenbergs sp\u00f6ttische Empfehlung halten: \u203aNichts kann mehr zu einer Seelen-Ruhe beitragen, als wenn man gar keine Meinung hat.\u2039<\/div>\r\n<div class=\"source\">Gregor Dotzauer im Tagesspiegel vom 25.01.2022<\/div>\r\n<\/div>","4417":"<div class=\"reviews\">\r\n<div class=\"review\">Obwohl alle Welt zu allem und jedem eine Meinung hat, ist das, was all diese Meinungen als solche ausmacht, erstaunlich schwer zu greifen. Christian Bermes \u2026 hat \u2026 ebenso b\u00fcndige wie aufschlussreiche \u00dcberlegungen zu diesem seltsam schillernden Begriff der Meinung angestellt \u2013 \u00dcberlegungen, die das Bild deutlich differenzieren und, wie nur folgerichtig, ver\u00e4ndern.<\/div>\r\n<div class=\"source\">Ralf Konersmann, Die Politische Meinung, Nr. 574 (2022)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Bermes skizziert die Grundlinien einer Philosophie der Doxa in seinem lesenswerten Essay sehr konzentriert und eing\u00e4ngig, indem er der Meinung in der Geschichte der Philosophie nachsp\u00fcrt und unter anderem wichtige Anst\u00f6\u00dfe von Husserl, Heidegger, Arendt und Wittgenstein f\u00fcr ein Konzept der Meinung aufgreift.<\/div>\r\n<div class=\"source\">Ulrike Bardt im Philosophischen Literaturanzeiger 73 (2023) 3.<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">... ist diese \u203aPhilosophie der Doxa\u2039 ungew\u00f6hnlich anregend, weil sie gegen den Begriff der blo\u00dfen Meinungsfreiheit den der weithin untersch\u00e4tzten Meinungsbildung so stark macht. Dem zu folgen, erfordert ein hohes Ma\u00df an Konzentration, doch sch\u00e4rft das eigene Urteilsverm\u00f6gen ungemein. Wer m\u00f6chte sich schon an Georg Christoph Lichtenbergs sp\u00f6ttische Empfehlung halten: \u203aNichts kann mehr zu einer Seelen-Ruhe beitragen, als wenn man gar keine Meinung hat.\u2039<\/div>\r\n<div class=\"source\">Gregor Dotzauer im Tagesspiegel vom 25.01.2022<\/div>\r\n<\/div>"},"language":{"4415":"","4416":"","4417":""},"cover":{"4415":"","4416":"","4417":"Kartoniert"},"pages":{"4415":"126 Seiten","4416":"126 Seiten","4417":"126 Seiten"},"edition":{"4415":"2. Auflage","4416":"2. Auflage","4417":""},"pod":{"4415":"Nein","4416":"Nein","4417":"Nein"},"copyright_year":{"4415":"","4416":"","4417":""},"vlb_tix_link":{"4415":"","4416":"","4417":"https:\/\/neu.vlbtix.de\/products\/9783787340903?type=gtin"},"defaultValues":{"163":"15"}}; 22613 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 22614 22615 if (typeof window.amxnotif_wrap_attributes === 'function') { 22616 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 22617 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 22618 } 22619 22620 const configurableOptionsComponent = initConfigurableOptions( 22621 '4044', 22622 config 22623 ); 22624 const swatchOptionsComponent = initSwatchOptions( 22625 swatchConfig 22626 ); 22627 22628 // DWS - Configurable product preselect start 22629 const confProdPreSelect = () => { 22630 return { 22631 preselectQuerystringItems() { 22632 var data = {"id":"4417","output":"15"}; 22633 const urlQueryParams = new URLSearchParams(window.location.search); 22634 22635 this.$nextTick(() => { 22636 setTimeout(() => { 22637 const rootEl = this.$root || this.$el; 22638 if (!rootEl) return; 22639 22640 const applySelection = (attrCode, attrValue) => { 22641 if (attrValue === undefined || attrValue === null || attrValue === '') return; 22642 22643 const attributes = Object.values(this.optionConfig.attributes || {}); 22644 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 22645 22646 if (targetAttr) { 22647 const attrId = String(targetAttr.id); 22648 const optionVal = String(attrValue); 22649 22650 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 22651 22652 if (inputEl) { 22653 inputEl.click(); 22654 inputEl.dispatchEvent(new Event('change', { 22655 bubbles: true 22656 })); 22657 } else { 22658 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 22659 if (selectEl) { 22660 selectEl.value = optionVal; 22661 selectEl.dispatchEvent(new Event('change', { 22662 bubbles: true 22663 })); 22664 } 22665 } 22666 22667 this.changeOption(attrId, optionVal, false); 22668 } 22669 }; 22670 22671 if (data && typeof data === 'object') {
22672 Object.keys(data).forEach(key => applySelection(key, data[key])); 22673 } 22674 22675 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 22676 if (attribute && attribute.code) { 22677 let optionValue = urlQueryParams.get(attribute.code); 22678 if (optionValue) { 22679 let optionId = false; 22680 const attributes = Object.values(this.optionConfig.attributes || {}); 22681 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 22682 22683 let found = false; 22684 Object.values(targetAttr.options).map(option => { 22685 if (found === false && option.label === optionValue) { 22686 optionId = option.id; 22687 found = true; 22688 } 22689 }); 22690 22691 const attrId = String(targetAttr.id); 22692 let optionVal = String(optionValue); 22693 if (found) { 22694 optionVal = String(optionId); 22695 } 22696 22697 applySelection(attribute.code, optionVal); 22698 } 22699 } 22700 }); 22701 }, 100); 22702 }); 22703 } 22704 } 22705 }; 22706 // DWS - Configurable product preselect end 22707 22708 const result = Object.assign( 22709 configurableOptionsComponent, 22710 swatchOptionsComponent, { 22711 productId: '4044', 22712 productIndex: 0, 22713 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 22714 showSwatches: false, 22715 precalcOptions: {}, 22716 originalInit: configurableOptionsComponent.init, 22717 init() { 22718 try { 22719 this.precalcOptions = {}; 22720 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 22721 this.preselectQuerystringItems(); 22722 if (Array.isArray(attrSource)) { 22723 attrSource.forEach(attr => { 22724 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 22725 }); 22726 } else if (attrSource && typeof attrSource === 'object') { 22727 Object.keys(attrSource).forEach(id => { 22728 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 22729 }); 22730 } 22731 } catch (e) { 22732 console.error('Pre-calc error:', e); 22733 } 22734 22735 if (typeof this.originalInit === 'function') { 22736 this.originalInit(); 22737 } 22738 22739 try { 22740 this.initShowSwatchesIntersect(); 22741 } catch (e) { 22742 console.error('intersect error:', e); 22743 } 22744 }, 22745 22746 updateGallery() { 22747 if (!this.productIndex) return; 22748 22749 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 22750 method: 'GET', 22751 headers: { 22752 'Content-Type': 'application/json', 22753 'X-Requested-With': 'XMLHttpRequest' 22754 } 22755 }) 22756 .then(response => response.json()) 22757 .then(data => { 22758 if (data && data.medium) { 22759 window.dispatchEvent(new CustomEvent("update-gallery-4044", { 22760 detail: data.medium 22761 })); 22762 } 22763 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 22764 }, 22765 22766 22767 initShowSwatchesIntersect() { 22768 const observer = new IntersectionObserver(entries => { 22769 if (entries[0].isIntersecting) { 22770 this.showSwatches = true; 22771 observer.disconnect(); 22772 } 22773 }, { 22774 rootMargin: '512px' 22775 }); 22776 observer.observe(this.$el); 22777 }, 22778 getOptions(attrId) { 22779 return this.precalcOptions[attrId] || []; 22780 }, 22781 getOptionsByAttrId() { 22782 return this.getOptions(this.$el.dataset.attributeId); 22783 }, 22784 _getItemId() { 22785 if (this.item && this.item.id) return this.item.id; 22786 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 22787 }, 22788 getSwatchOptionHtmlId() { 22789 const itemId = this._getItemId(); 22790 return itemId ? this.$id(`attribute-option-4044-${itemId}`) : ''; 22791 }, 22792 getSwatchOptionHtmlIdGroup() { 22793 const itemId = this._getItemId(); 22794 return itemId ? [`attribute-option-4044-${itemId}`] : []; 22795 }, 22796 getAttributeSwatchData(attributeId) { 22797 const data = Object.assign({}, this.swatchConfig[attributeId]); 22798 if (data['additional_data']) { 22799 try { 22800 data['details'] = JSON.parse(data['additional_data']); 22801 } catch (e) { 22802 data['details'] = {}; 22803 } 22804 } 22805 return data; 22806 }, 22807 getSwatchType(attributeId, optionId) { 22808 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 22809 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 22810 } 22811 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 22812 this.swatchConfig[attributeId].details.swatch_input_type : 22813 "empty"; 22814 if (type === 'visual') { 22815 const config = this.swatchConfig[attributeId]; 22816 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 22817 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 22818 } 22819 // Fallback to first option type 22820 for (const oId in config) { 22821 if (config[oId] && typeof config[oId].type !== 'undefined') { 22822 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 22823 } 22824 } 22825 } 22826 return type; 22827 }, 22828 mapSwatchTypeNumberToTypeCode(type) { 22829 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 22830 }, 22831 isTextSwatch() { 22832 const itemId = this._getItemId(); 22833 if (!this.$el || !itemId) return false;
22834 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22835 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 22836 }, 22837 22838 getSwatchText() { 22839 const itemId = this._getItemId(); 22840 if (this.item) return this.item.label || ''; 22841 if (!this.$el || !itemId) return ''; 22842 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22843 const options = attrId ? this.getOptions(attrId) : []; 22844 const opt = options.find(o => o.id == itemId); 22845 return opt ? opt.label : ''; 22846 }, 22847 getSwatchBackgroundStyle() { 22848 const itemId = this._getItemId(); 22849 if (!this.$el || !itemId) return ''; 22850 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22851 if (!attrId) return ''; 22852 const type = this.getSwatchType(attrId, itemId); 22853 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 22854 this.swatchConfig[attrId][itemId] : 22855 null; 22856 if (!swatchData) return ''; 22857 if (type === "color") return 'background-color:' + swatchData.value; 22858 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 22859 return ''; 22860 }, 22861 swatchOptionClasses() { 22862 const itemId = this._getItemId(); 22863 if (!this.$el || !itemId) return {}; 22864 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22865 return { 22866 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 22867 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 22868 'w-6 h-6': !this.isTextSwatch() 22869 } 22870 }, 22871 22872 onFocusSwatchItem() { 22873 const itemId = this._getItemId(); 22874 if (itemId) this.focusedLabel = itemId; 22875 }, 22876 onChangeOption() { 22877 const itemId = this._getItemId(); 22878 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 22879 if (attrId && itemId) this.changeOption(attrId, itemId); 22880 }, 22881 changeOption(attributeId, value) { 22882 if (value === '') { 22883 return; 22884 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 22885 } else { 22886 this.selectedValues[attributeId] = value; 22887 } 22888 22889 this.findSimpleIndex(); 22890 this.findAllowedAttributeOptions(); 22891 this.updatePrices(); 22892 this.updateGallery(); 22893 22894 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 22895 this.findProductIdsForPartialSelection(this.selectedValues) : []; 22896 22897 const eventDetail = { 22898 productId: this.productId, 22899 optionId: attributeId, 22900 value: value, 22901 productIndex: this.productIndex || 0, 22902 selectedValues: this.selectedValues, 22903 candidates: candidates, 22904 sourceElement: this.$el 22905 }; 22906 22907 // Dispatch for Amasty 22908 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 22909 detail: eventDetail 22910 })); 22911 22912 // Dispatch for Hyva listing 22913 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 22914 detail: eventDetail 22915 })); 22916 }, 22917 22918 22919 clearOptionIfActive() { 22920 const itemId = this._getItemId(); 22921 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 22922 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 22923 this.changeOption(attrId, ''); 22924 22925 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 22926 if (!input && this.$el?.querySelector) { 22927 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 22928 } 22929 if (!input && this.$el?.closest) { 22930 const root = this.$el.closest('[data-product-id]') || this.$el; 22931 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 22932 } 22933 if (input) { 22934 input.checked = false;
22935 } 22936 } 22937 }, 22938 get optionIsEnabled() { 22939 const itemId = this._getItemId(); 22940 if (!this.$el || !itemId) return true; 22941 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22942 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 22943 return !!allowedOptions.find(opt => opt.id == itemId); 22944 }, 22945 get isSelected() { 22946 const itemId = this._getItemId(); 22947 if (!this.$el || !itemId) return false; 22948 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22949 return attrId ? (this.selectedValues[attrId] == itemId) : false; 22950 }, 22951 get isSwatchRequired() { 22952 if (!this.$el) return false; 22953 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22954 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 22955 }, 22956 focusedLabel: false, 22957 activeTooltipItem: false, 22958 tooltipPositionElement: false,
22959 setActiveTooltipItem() { 22960 const itemId = this._getItemId(); 22961 if (!this.$el || !itemId) return; 22962 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 22963 this.activeTooltipItem = { 22964 attribute: attrId, 22965 item: itemId, 22966 index: 0 22967 }; 22968 this.tooltipPositionElement = this.$event ? this.$event.target : null; 22969 }, 22970 unsetActiveTooltipItem() { 22971 this.activeTooltipItem = false; 22972 } 22973 }, 22974 confProdPreSelect() 22975 ); 22976 22977 if (result.optionConfig && result.optionConfig.attributes) { 22978 const attributes = result.optionConfig.attributes; 22979 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 22980 let source = attributes; 22981 if (Array.isArray(attributes)) { 22982 source = {}; 22983 attributes.forEach(attr => { 22984 if (attr && attr.id) source[attr.id] = attr; 22985 }); 22986 } 22987 const values = Object.values(source); 22988 const wrapper = Object.assign(values, source); 22989 Object.defineProperty(wrapper, '__amxnotifWrapped', { 22990 value: true, 22991 enumerable: false 22992 }); 22993 result.optionConfig.attributes = wrapper; 22994 } 22995 } 22996 22997 return result; 22998 } 22999 23000 window.addEventListener('alpine:init', () => { 23001 Alpine.data('initConfigurableSwatchOptions_4044', initConfigurableSwatchOptions_4044); 23002 }, { 23003 once: true 23004 }); 23005 </script>
23005 23006 23007 <div x-data="initConfigurableSwatchOptions_4044" x-defer="intersect"> 23008 <div class="pagebuilder-home-hidden"> 23009 23010 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 23011 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 23012 <template x-if="showSwatches"> 23013 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4044-163" role="radiogroup" aria-label="Einband"> 23014 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 23015 <div :data-option-id="item.id" style="display: contents"> 23016 <div x-id="getSwatchOptionHtmlIdGroup"> 23017 <template x-if="optionIsEnabled"> 23018 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
23018self="unsetActiveTooltipItem"> 23019 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4044-163"> 23020 <div> 23021 <template x-if="isTextSwatch"> 23022 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 23023 </template> 23024 <template x-if="!optionIsActive(163, item.id)"> 23025 <div> 23026 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 23027 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 23028 </svg> 23029 </div> 23030 </template> 23031 </div> 23032 </label> 23033 </template> 23034</div> </div> 23035 </template> 23036 </div> 23037 </template> 23038 </div> 23039 </div> 23040 </div> 23041 </div> 23042 23043 <div class="meta py-4 pagebuilder-home-hidden"> 23044 <div x-data="initMarketingShortText_4044()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 23045 <!-- Marketing short text --> 23046 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 23047 </div> 23048 23049 <!-- Short description --> 23050 <div class="short-description"> 23051 Christian Bermes diskutiert in seinem Essay das Konzept der Meinung in einem grundsätzlichen Sinne. Er fragt danach, ob wir überhaupt noch ein Verständnis von Meinungen als Meinungen besitzen. ... <a href="https://meiner.de/fmv_de/meinungskrise-und-meinungsbildung" class="underline">mehr</a> 23052 </div> 23053 </div> 23054 23055 <!-- Series --> 23056 <div class="mb-1"> 23057 <span class="sr-only">Reihe:</span> 23058 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 23059 <span>Blaue Reihe</span> 23060 </a> 23061 </div> 23062 23063 23064 <div class="mb-1"> 23065 <span x-data="initEditionText_4044()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 23066 <!-- Marketing short text --> 23067 <span class="edition-text" x-html="editionText"></span> 2022, 126 Seiten </span> 23068 </div> 23069 23070 </div> 23071 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 23072 23073 <div class="justify-end" x-data="initPriceBox()" @update-prices-4044.window="updatePrice($event.detail);"> 23074 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4044" data-price-box="product-id-4044"><span class="normal-price"> 23075 <span x-data x-id="['product\u002Dprice\u002D4044']" class="price-container price-final_price tax weee"> 23076 <span class="price-label">Ab</span> 23077 <span class="approx-price">ca. </span> 23078 <span :id="$id('product\u002Dprice\u002D4044')" data-price-amount="6.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">6,99 €</span></span> 23079 </span> 23080</span> 23081 23082 23083</div> </div> 23084 23085 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 23086 <div class="open-access-container open-access-container-4044 flex mt-4 ml-auto sm:mt-0 hidden"> 23087 <div class="text-gray-700"> 23088 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 23089 <a href="" target="_blank" class="open-access-external-link m-auto "> 23090 Kostenlos online lesen </a> 23091 </button> 23092 </div> 23093 </div> 23094 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Meinungskrise und Meinungsbildung" aria-label="In den Warenkorb Meinungskrise und Meinungsbildung" data-addto="cart"> 23095 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 23096 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
230960 014 0z"></path> 23097</svg> 23098 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 23099 In den Warenkorb </span> 23100 </button> 23101 23102<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4044)" aria-label="Zur Wunschliste hinzufügen Meinungskrise und Meinungsbildung" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 23103 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 23104 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 23105</svg> 23106</button> 23107 </div> 23108 </div> 23109 </div> 23110
23110<script> 23111 function initMarketingShortText_4044() { 23112 var marketingShortTextConfig = {}; 23113 if (typeof window.initConfigurableSwatchOptions_4044 === "function") { 23114 var fullConfig = window.initConfigurableSwatchOptions_4044().optionConfig 23115 var marketingShortTextConfig = fullConfig.marketing_short_text; 23116 } 23117 return { 23118 marketingShortText: '', 23119 config: marketingShortTextConfig, 23120 productId: '4044', 23121 getMarketingShortText(detail) { 23122 this.marketingShortText = detail.productIndex ? 23123 this.config[detail.productIndex] : 23124 null; 23125 }, 23126 eventListeners: { 23127 ['@listing-configurable-selection-changed.window'](event) { 23128 if (this.productId == event.detail.productId) { 23129 this.getMarketingShortText(event.detail); 23130 } 23131 23132 } 23133 } 23134 } 23135 } 23136 23137 function initEditionText_4044() { 23138 var editionTextConfig = {}; 23139 if (typeof window.initConfigurableSwatchOptions_4044 === "function") { 23140 var fullConfig = window.initConfigurableSwatchOptions_4044().optionConfig 23141 var editionTextConfig = fullConfig.edition; 23142 } 23143 return { 23144 editionText: '', 23145 config: editionTextConfig, 23146 productId: '4044', 23147 getEditionText(detail) { 23148 this.editionText = detail.productIndex ? 23149 this.config[detail.productIndex] : 23150 null; 23151 }, 23152 eventListeners: { 23153 ['@listing-configurable-selection-changed.window'](event) { 23154 if (this.productId == event.detail.productId) { 23155 this.getEditionText(event.detail); 23156 } 23157 23158 } 23159 } 23160 } 23161 } 23162 </script>
23162 23163 </form> 23164 </div> 23165 23166<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 23167 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 23168 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 23169 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 23170</svg> 23171 </button> 23172 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 23173 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 23174 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 23175 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 23176</svg> 23177 </button> 23178</div> 23179 </div> 23180</div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="IJNNBS8"><h3 data-content-type="heading" data-appearance="default" data-element="main">Philosophische Bibliothek</h3><div class="pagebuilder-column-group card cmsp2-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="HHRXWXR"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="OY6Q222"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="A3QU07G"><h4 data-content-type="heading" data-appearance="default" data-element="main">Texte aus 2400 Jahren Philosophiegeschichte</h4><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="VV1BAQX"><p id="N8HVAHN" style="text-align: left;">Philosophische Texte von der Antike bis zur Gegenwart sind Programm der <a href="/programm/reihen/philosophische-bibliothek">Philosophischen Bibliothek</a>. Jedes Jahr erscheinen in der »grünen Reihe« nach neuesten wissenschaftlichen Erkenntnissen erarbeitete Studienausgaben für alle, die es ernst meinen mit der Philosophie.</p> 23181<div id="box_infotext"> 23182<p style="text-align: left;">Herausgegeben von führenden Vertretern des Faches, eingeleitet und kommentiert, im Original, in Übersetzung oder zweisprachig, stehen hier neben den Klassikern der Philosophiegeschichte auch weniger bekannte und bisher marginalisierte Texte, die es wiederzuentdecken gilt. Repräsentative Auswahl- und Gesamtausgaben sowie Studien- und Wörterbücher ergänzen das Programm. Gegenwärtig sind über 500 Titel von etwa 160 Autoren aus den letzten 2400 Jahren lieferbar.</p> 23183<p style="text-align: left;">Die Philosophische Bibliothek (gegr. 1868) ist die älteste und umfangreichste Sammlung philosophischer Texte, betreibt aber keine museale Rückschau auf geistesgeschichtliche Antiquitäten. Jeder einzelne Band schlägt eine Brücke zwischen aktueller Forschung und philosophischem Studium. Sorgfältigste Edition, Erläuterungen, Register und Bibliographien zeichnen diese Reihe aus, die zum Markenzeichen kritischer Textpräsentation geworden ist.</p> 23184<p style="text-align: left;"> </p> 23185<p style="text-align: left;"><a href="/programm/reihen/philosophische-bibliothek"><img style="display: block; margin-left: auto; margin-right: auto; width: 75px; height: 75px;" src="https://meiner.de/media/wysiwyg/FMV/Signets-Logos/PhB_B_quad_sw.png" alt="Signet der Philosophischen Bibliothek" width="100" height="100"></a></p> 23186<p style="text-align: center;"> </p> 23187</div></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="CB11K18"></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="ES6KTQP"><h4 data-content-type="heading" data-appearance="default" data-element="main">Aktuelle Neuerscheinungen & Wiederveröffentlichungen</h4><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carou
23187sel"> 23188 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 23189 23190 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47165/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16064"> 23191 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47165"> 23192 <a href="https://meiner.de/fmv_de/traktat-a-ber-die-drei-betra-ger-16064" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 23193 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47165.window="$el.src = $event.detail" alt="Traktat über die drei Betrüger" title="Traktat über die drei Betrüger" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344192_3.jpg" :style="{ 23194 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 23195 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 23196 }"> 23197 </a> 23198 <div class="product-info flex flex-col flex-grow "> 23199 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 23200 <div class="mb-2 text-sm text-gray-500 font-medium"> 23201 <a href="https://meiner.de/fmv_de/person/Anonymus-4636/" class="mb-2"> 23202 Anonymus </a> 23203 </div> 23204 <a class="product-item-link" href="https://meiner.de/fmv_de/traktat-a-ber-die-drei-betra-ger-16064"> 23205 Traktat über die drei Betrüger </a> 23206 </div> 23207 23208 <div x-data="initEditionText_47165()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 23209 <!-- Marketing short text --> 23210 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 23211 </div> 23212 </div> 23213 23214 <div class="py-1 grid mb-4 "> 23215 23216 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47165,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47165,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"19306":"1","47092":"1"},"childProductsAlertStatus":{"19306":"0","47092":"0"},"indexMapping":{"163:15":19306,"163:8":47092},"availabilityMessages":{"19306":"Lieferbar innerhalb von 3-5 Tagen","47092":"Download sofort verf\u00fcgbar"},"openAccess":{"47165":{"status":0},"19306":{"status":0},"47092":{"status":0}}},"availabilityMessages":{"19306":"Lieferbar innerhalb von 3-5 Tagen","47092":"Download sofort verf\u00fcgbar"},"openAccess":{"47165":{"status":0},"19306":{"status":0},"47092":{"status":0}}}'> 23217 <template x-if="containerVisible"> 23218 <!-- Popup Trigger --> 23219 <div> 23220 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 23221 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
23222 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 23223 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 23224<title>bell</title></svg> 23225</span> 23226 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 23227 23228 <!-- Popup Modal --> 23229 <template x-if="showModal"> 23230 <template x-teleport=".page-wrapper"> 23231 <div x-cloak class="fixed inset-0 flex items-center justify-center 23232 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 23233 <div class="relative bg-white rounded-lg shadow-xl 23234 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 23235 <div class="p-6"> 23236 <!-- Subscription Form for Popup --> 23237 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 23238 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 23239 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 23240 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 23241 23242 <div class="flex flex-col gap-3"> 23243 <div class="flex-grow grow"> 23244 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 23245 shadow-xs focus:outline-none focus:outline-hidden 23246 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 23247 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 23248 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 23249 </div> 23250 <input type="hidden" name="product_id" :value="currentProductId"> 23251 <input type="hidden" name="type" value="email"> 23252 23253 23254 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 23255 23256 <div class="amxnotif_guest_action"> 23257 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 23258 rounded-md focus:outline-none 23259 focus:outline-hidden focus:ring-2 23260 focus:ring-offset-2 disabled:opacity-50 23261 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 23262 Benachrichtigen </button> 23263 </div> 23264 </div> 23265 23266 <div class="flex items-start pt-2"> 23267 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 23268 text-blue-600 border-gray-300 rounded-sm"> 23269 <label class="amxnotif-stock-gdrp-label cursor-pointer 23270 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 23271 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 23272 </div> 23273 </form> 23274 </div> 23275 23276 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 23277 hover:text-gray-600 transition-colors" aria-label="Schließen"> 23278 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 23279 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 23280<title>x</title></svg> 23281 </button> 23282 </div> 23283 </div> 23284 </template> 23285 </template> 23286 </div> 23287 </template> 23288 </div> 23289 23290<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47165" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47165,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"19306":"1","47092":"1"},"childProductsAlertStatus":{"19306":"0","47092":"0"}
23290,"indexMapping":"{\u0022163:15\u0022:19306,\u0022163:8\u0022:47092}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47165,"availabilityMessages":{"19306":"Lieferbar innerhalb von 3-5 Tagen","47092":"Download sofort verf\u00fcgbar"},"openAccess":{"47165":{"status":0},"19306":{"status":0},"47092":{"status":0}}}'> 23291 23292 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 23293 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 23294 <span x-html="optionsLabelText"></span> 23295 </p> 23296</div> </div> 23297 23298
23298<script> 23299 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 23300 try { 23301 const attributes = (config && config.attributes) ? config.attributes : null; 23302 if (!attributes) return []; 23303 let attr = null; 23304 if (Array.isArray(attributes)) { 23305 for (let i = 0; i < attributes.length; i++) { 23306 const a = attributes[i]; 23307 if (a && a.id == attrId) { 23308 attr = a; 23309 break; 23310 } 23311 } 23312 } else { 23313 attr = attributes[attrId]; 23314 } 23315 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 23316 } catch (e) { 23317 return []; 23318 } 23319 }; 23320 23321 function initConfigurableSwatchOptions_47165() { 23322 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["19306"]},{"id":"8","label":"PDF","products":["47092"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"19306":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47092":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":14.27730992437},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"47165","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"19306":{"163":"15"},"47092":{"163":"8"}},"salable":{"163":{"15":["19306"],"8":["47092"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"19306":"004419","47092":"004420"},"output":{"19306":"Kartoniert","47092":"PDF"},"original_name":{"19306":"Trait\u00e9 des trois imposteurs","47092":"Trait\u00e9 des trois imposteurs"},"openaccess_license_link":{"19306":"","47092":""},"openaccess_license_name":{"19306":"","47092":""},"openaccess_external_link":{"19306":"","47092":""},"gpsr_safety_info":{"19306":"","47092":""},"description":{"19306":"Die legend\u00e4re Abhandlung \u00fcber die drei Betr\u00fcger (Moses, Jesus und Mohammed) z\u00e4hlt zu den herausragenden Schl\u00fcsseltexten der franz\u00f6sischen Aufkl\u00e4rung. Die Schrift markiert den \u00dcbergang von der rationalen Religionskritik zum konsequenten Atheismus in der Philosophie der Neuzeit und war z.B. auch f\u00fcr de Sade ein wichtiger Ausgangspunkt. Es gibt weder Gott noch das Jenseits, weder Freiheit noch Verantwortung \u2013 sondern der Mensch ist sterblich und Teil der Natur. So lautet die radikale, den Standpunkt der Deisten \u00fcberbietende Botschaft des gegen Ende des 17. Jahrhunderts entstandenen \u00bbTrait\u00e9 des trois imposteurs\u00ab, der die Lehren von Moses, Jesus und Mohammed als Lug und Trug zur\u00fcckweist. <br\/><br\/>Die legendenumwobene Schrift fand im 18. Jhd. (zun\u00e4chst in einer Vielzahl von Abschriften, ab 1768 im Druck) gro\u00dfe Verbreitung. Sie gilt als Schl\u00fcsseldokument f\u00fcr die Anf\u00e4nge und das Programm des strikt materialistischen Fl\u00fcgels der franz\u00f6sischen Aufkl\u00e4rung: Bereits 50 Jahre vor d'Holbach bot der \u00bbTrait\u00e9\u00ab den Aufriss f\u00fcr dessen \u00bbSyst\u00e8me de la nature\u00ab und war sp\u00e4ter f\u00fcr den Marquis de Sade der Ausgangspunkt f\u00fcr die radikale Desavouierung des Begriffs der Moral. Der unbekannte Verfasser des \u00bbTrait\u00e9\u00ab begriff sich nicht als Autor, sondern als Vermittler: Sein Text st\u00fctzt sich auf Anleihen bei Hobbes, Spinoza und Vanini, d.h. auf Paraphrasen und Umdeutungen in aufkl\u00e4rerischem Pathos. <br\/><br\/>Der Band pr\u00e4sentiert den Text in kritischer Edition (nach der Ausgabe von 1768) mit deutscher \u00dcbersetzung und kommentierenden Anmerkungen des Herausgebers. F\u00fcr die Neuausgabe hat der Herausgeber eine neue Einleitung verfasst und die Bibliographie \u00fcberarbeitet.","47092":"Die legend\u00e4re Abhandlung \u00fcber die drei Betr\u00fcger (Moses, Jesus und Mohammed) z\u00e4hlt zu den herausragenden Schl\u00fcsseltexten der franz\u00f6sischen Aufkl\u00e4rung. Die Schrift markiert den \u00dcbergang von der rationalen Religionskritik zum konsequenten Athe
23322ismus in der Philosophie der Neuzeit und war z.B. auch f\u00fcr de Sade ein wichtiger Ausgangspunkt. Es gibt weder Gott noch das Jenseits, weder Freiheit noch Verantwortung \u2013 sondern der Mensch ist sterblich und Teil der Natur. So lautet die radikale, den Standpunkt der Deisten \u00fcberbietende Botschaft des gegen Ende des 17. Jahrhunderts entstandenen \u00bbTrait\u00e9 des trois imposteurs\u00ab, der die Lehren von Moses, Jesus und Mohammed als Lug und Trug zur\u00fcckweist. <br\/><br\/>Die legendenumwobene Schrift fand im 18. Jhd. (zun\u00e4chst in einer Vielzahl von Abschriften, ab 1768 im Druck) gro\u00dfe Verbreitung. Sie gilt als Schl\u00fcsseldokument f\u00fcr die Anf\u00e4nge und das Programm des strikt materialistischen Fl\u00fcgels der franz\u00f6sischen Aufkl\u00e4rung: Bereits 50 Jahre vor d'Holbach bot der \u00bbTrait\u00e9\u00ab den Aufriss f\u00fcr dessen \u00bbSyst\u00e8me de la nature\u00ab und war sp\u00e4ter f\u00fcr den Marquis de Sade der Ausgangspunkt f\u00fcr die radikale Desavouierung des Begriffs der Moral. Der unbekannte Verfasser des \u00bbTrait\u00e9\u00ab begriff sich nicht als Autor, sondern als Vermittler: Sein Text st\u00fctzt sich auf Anleihen bei Hobbes, Spinoza und Vanini, d.h. auf Paraphrasen und Umdeutungen in aufkl\u00e4rerischem Pathos. <br\/><br\/>Der Band pr\u00e4sentiert den Text in kritischer Edition (nach der Ausgabe von 1768) mit deutscher \u00dcbersetzung und kommentierenden Anmerkungen des Herausgebers. F\u00fcr die Neuausgabe hat der Herausgeber eine neue Einleitung verfasst und die Bibliographie \u00fcberarbeitet."},"doi":{"19306":"","47092":"10.28937\/978-3-7873-4420-8"},"isbn":{"19306":"978-3-7873-4419-2","47092":"978-3-7873-4420-8"},"marketing_short_text":{"19306":"","47092":""},"recension_text":{"19306":"<div class=\"reviews\">\r\n<div class=\"review\">Schr\u00f6ders Kommentar ist ein philologisches Glanzst\u00fcck.<\/div>\r\n<div class=\"source\">Frankfurter Allgemeine, 12. Mai 1993<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Die Menschen \u2013 das war das Verhei\u00dfende des Textes \u2013 sollten von den Fesseln befreit werden, die sie in ihrem Handeln und Denken einschr\u00e4nkten, von den Fesseln einer Moral, die im Bunde mit einer fragw\u00fcrdigen, repressiven Herrschaft stand. Darum wollte der Autor auch unbedingt mit der Vorstellung aufr\u00e4umen, es g\u00e4be Strafen im Jenseits. [\u2026] Wer\u2019s darauf anlegt, dem liefert der Traktat noch heute eine Menge polemische Munition. Unter anderem deshalb wird er im laizistischen Frankreich wieder so gern gelesen. Wichtig bleibt das B\u00fcchlein auf jeden Fall in historischer Perspektive: gerade weil es uns an die Wurzeln jener entzauberten modernen Welt f\u00fchrt, in der wir heute leben \u2013 und f\u00fcr die, wie nichts sonst, der Atheismus zu einer signifikanten Position geworden ist.<\/div>\r\n<div class=\"source\">Winfried Schr\u00f6der (im ZEIT-Interview vom 20. Mai 2010)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Ein wegweisendes Dokument des Atheismus! Es gibt weder Gott noch das Jenseits, weder Freiheit noch Verantwortung, sondern der Mensch ist sterblich und Teil der Natur.<\/div>\r\n<div class=\"source\">lehrerbibliothek.de<\/div>\r\n<\/div>","47092":"<div class=\"reviews\">\r\n<div class=\"review\">Schr\u00f6ders Kommentar ist ein philologisches Glanzst\u00fcck.<\/div>\r\n<div class=\"source\">Frankfurter Allgemeine, 12. Mai 1993<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Die Menschen \u2013 das war das Verhei\u00dfende des Textes \u2013 sollten von den Fesseln befreit werden, die sie in ihrem Handeln und Denken einschr\u00e4nkten, von den Fesseln einer Moral, die im Bunde mit einer fragw\u00fcrdigen, repressiven Herrschaft stand. Darum wollte der Autor auch unbedingt mit der Vorstellung aufr\u00e4umen, es g\u00e4be Strafen im Jenseits. [\u2026] Wer\u2019s darauf anlegt, dem liefert der Traktat noch heute eine Menge polemische Munition. Unter anderem deshalb wird er im laizistischen Frankreich wieder so gern gelesen. Wichtig bleibt das B\u00fcchlein auf jeden Fall in historischer Perspektive: gerade weil es uns an die Wurzeln jener entzauberten modernen Welt f\u00fchrt, in der wir heute leben \u2013 und f\u00fcr die, wie nichts sonst, der Atheismus zu einer signifikanten Position geworden ist.<\/div>\r\n<div class=\"source\">Winfried Schr\u00f6der (im ZEIT-Interview vom 20. Mai 2010)<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Ein wegweisendes Dokument des Atheismus! Es gibt weder Gott noch das Jense
23322its, weder Freiheit noch Verantwortung, sondern der Mensch ist sterblich und Teil der Natur.<\/div>\r\n<div class=\"source\">lehrerbibliothek.de<\/div>\r\n<\/div>"},"language":{"19306":"Franz\u00f6sisch-Deutsch","47092":""},"cover":{"19306":"Kartoniert","47092":""},"pages":{"19306":"LXVIII, 171 Seiten.","47092":"LXVIII, 171 Seiten."},"edition":{"19306":"2., durchgesehene Auflage mit neuer Einleitung und aktualisierter Bibliographie","47092":"2., durchgesehene Auflage mit neuer Einleitung und aktualisierter Bibliographie"},"pod":{"19306":"Nein","47092":"Nein"},"copyright_year":{"19306":"","47092":""},"vlb_tix_link":{"19306":"https:\/\/neu.vlbtix.de\/products\/9783787344192?type=gtin","47092":""},"defaultValues":{"163":"15"}}; 23323 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 23324 23325 if (typeof window.amxnotif_wrap_attributes === 'function') { 23326 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 23327 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 23328 } 23329 23330 const configurableOptionsComponent = initConfigurableOptions( 23331 '47165', 23332 config 23333 ); 23334 const swatchOptionsComponent = initSwatchOptions( 23335 swatchConfig 23336 ); 23337 23338 // DWS - Configurable product preselect start 23339 const confProdPreSelect = () => { 23340 return { 23341 preselectQuerystringItems() { 23342 var data = {"id":"19306","output":"15"}; 23343 const urlQueryParams = new URLSearchParams(window.location.search); 23344 23345 this.$nextTick(() => { 23346 setTimeout(() => { 23347 const rootEl = this.$root || this.$el; 23348 if (!rootEl) return; 23349 23350 const applySelection = (attrCode, attrValue) => { 23351 if (attrValue === undefined || attrValue === null || attrValue === '') return; 23352 23353 const attributes = Object.values(this.optionConfig.attributes || {}); 23354 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 23355 23356 if (targetAttr) { 23357 const attrId = String(targetAttr.id); 23358 const optionVal = String(attrValue); 23359 23360 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 23361 23362 if (inputEl) { 23363 inputEl.click(); 23364 inputEl.dispatchEvent(new Event('change', { 23365 bubbles: true 23366 })); 23367 } else { 23368 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 23369 if (selectEl) { 23370 selectEl.value = optionVal; 23371 selectEl.dispatchEvent(new Event('change', { 23372 bubbles: true 23373 })); 23374 } 23375 } 23376 23377 this.changeOption(attrId, optionVal, false); 23378 } 23379 }; 23380 23381 if (data && typeof data === 'object') {
23382 Object.keys(data).forEach(key => applySelection(key, data[key])); 23383 } 23384 23385 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 23386 if (attribute && attribute.code) { 23387 let optionValue = urlQueryParams.get(attribute.code); 23388 if (optionValue) { 23389 let optionId = false; 23390 const attributes = Object.values(this.optionConfig.attributes || {}); 23391 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 23392 23393 let found = false; 23394 Object.values(targetAttr.options).map(option => { 23395 if (found === false && option.label === optionValue) { 23396 optionId = option.id; 23397 found = true; 23398 } 23399 }); 23400 23401 const attrId = String(targetAttr.id); 23402 let optionVal = String(optionValue); 23403 if (found) { 23404 optionVal = String(optionId); 23405 } 23406 23407 applySelection(attribute.code, optionVal); 23408 } 23409 } 23410 }); 23411 }, 100); 23412 }); 23413 } 23414 } 23415 }; 23416 // DWS - Configurable product preselect end 23417 23418 const result = Object.assign( 23419 configurableOptionsComponent, 23420 swatchOptionsComponent, { 23421 productId: '47165', 23422 productIndex: 0, 23423 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 23424 showSwatches: false, 23425 precalcOptions: {}, 23426 originalInit: configurableOptionsComponent.init, 23427 init() { 23428 try { 23429 this.precalcOptions = {}; 23430 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 23431 this.preselectQuerystringItems(); 23432 if (Array.isArray(attrSource)) { 23433 attrSource.forEach(attr => { 23434 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 23435 }); 23436 } else if (attrSource && typeof attrSource === 'object') { 23437 Object.keys(attrSource).forEach(id => { 23438 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 23439 }); 23440 } 23441 } catch (e) { 23442 console.error('Pre-calc error:', e); 23443 } 23444 23445 if (typeof this.originalInit === 'function') { 23446 this.originalInit(); 23447 } 23448 23449 try { 23450 this.initShowSwatchesIntersect(); 23451 } catch (e) { 23452 console.error('intersect error:', e); 23453 } 23454 }, 23455 23456 updateGallery() { 23457 if (!this.productIndex) return; 23458 23459 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 23460 method: 'GET', 23461 headers: { 23462 'Content-Type': 'application/json', 23463 'X-Requested-With': 'XMLHttpRequest' 23464 } 23465 }) 23466 .then(response => response.json()) 23467 .then(data => { 23468 if (data && data.medium) { 23469 window.dispatchEvent(new CustomEvent("update-gallery-47165", { 23470 detail: data.medium 23471 })); 23472 } 23473 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 23474 }, 23475 23476 23477 initShowSwatchesIntersect() { 23478 const observer = new IntersectionObserver(entries => { 23479 if (entries[0].isIntersecting) { 23480 this.showSwatches = true; 23481 observer.disconnect(); 23482 } 23483 }, { 23484 rootMargin: '512px' 23485 }); 23486 observer.observe(this.$el); 23487 }, 23488 getOptions(attrId) { 23489 return this.precalcOptions[attrId] || []; 23490 }, 23491 getOptionsByAttrId() { 23492 return this.getOptions(this.$el.dataset.attributeId); 23493 }, 23494 _getItemId() { 23495 if (this.item && this.item.id) return this.item.id; 23496 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 23497 }, 23498 getSwatchOptionHtmlId() { 23499 const itemId = this._getItemId(); 23500 return itemId ? this.$id(`attribute-option-47165-${itemId}`) : ''; 23501 }, 23502 getSwatchOptionHtmlIdGroup() { 23503 const itemId = this._getItemId(); 23504 return itemId ? [`attribute-option-47165-${itemId}`] : []; 23505 }, 23506 getAttributeSwatchData(attributeId) { 23507 const data = Object.assign({}, this.swatchConfig[attributeId]); 23508 if (data['additional_data']) { 23509 try { 23510 data['details'] = JSON.parse(data['additional_data']); 23511 } catch (e) { 23512 data['details'] = {}; 23513 } 23514 } 23515 return data; 23516 }, 23517 getSwatchType(attributeId, optionId) { 23518 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 23519 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 23520 } 23521 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 23522 this.swatchConfig[attributeId].details.swatch_input_type : 23523 "empty"; 23524 if (type === 'visual') { 23525 const config = this.swatchConfig[attributeId]; 23526 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 23527 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 23528 } 23529 // Fallback to first option type 23530 for (const oId in config) { 23531 if (config[oId] && typeof config[oId].type !== 'undefined') { 23532 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 23533 } 23534 } 23535 } 23536 return type; 23537 }, 23538 mapSwatchTypeNumberToTypeCode(type) { 23539 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 23540 }, 23541 isTextSwatch() { 23542 const itemId = this._getItemId(); 23543 if (!this.$el || !itemId) return false;
23544 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23545 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 23546 }, 23547 23548 getSwatchText() { 23549 const itemId = this._getItemId(); 23550 if (this.item) return this.item.label || ''; 23551 if (!this.$el || !itemId) return ''; 23552 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23553 const options = attrId ? this.getOptions(attrId) : []; 23554 const opt = options.find(o => o.id == itemId); 23555 return opt ? opt.label : ''; 23556 }, 23557 getSwatchBackgroundStyle() { 23558 const itemId = this._getItemId(); 23559 if (!this.$el || !itemId) return ''; 23560 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23561 if (!attrId) return ''; 23562 const type = this.getSwatchType(attrId, itemId); 23563 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 23564 this.swatchConfig[attrId][itemId] : 23565 null; 23566 if (!swatchData) return ''; 23567 if (type === "color") return 'background-color:' + swatchData.value; 23568 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 23569 return ''; 23570 }, 23571 swatchOptionClasses() { 23572 const itemId = this._getItemId(); 23573 if (!this.$el || !itemId) return {}; 23574 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23575 return { 23576 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 23577 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 23578 'w-6 h-6': !this.isTextSwatch() 23579 } 23580 }, 23581 23582 onFocusSwatchItem() { 23583 const itemId = this._getItemId(); 23584 if (itemId) this.focusedLabel = itemId; 23585 }, 23586 onChangeOption() { 23587 const itemId = this._getItemId(); 23588 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 23589 if (attrId && itemId) this.changeOption(attrId, itemId); 23590 }, 23591 changeOption(attributeId, value) { 23592 if (value === '') { 23593 return; 23594 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 23595 } else { 23596 this.selectedValues[attributeId] = value; 23597 } 23598 23599 this.findSimpleIndex(); 23600 this.findAllowedAttributeOptions(); 23601 this.updatePrices(); 23602 this.updateGallery(); 23603 23604 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 23605 this.findProductIdsForPartialSelection(this.selectedValues) : []; 23606 23607 const eventDetail = { 23608 productId: this.productId, 23609 optionId: attributeId, 23610 value: value, 23611 productIndex: this.productIndex || 0, 23612 selectedValues: this.selectedValues, 23613 candidates: candidates, 23614 sourceElement: this.$el 23615 }; 23616 23617 // Dispatch for Amasty 23618 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 23619 detail: eventDetail 23620 })); 23621 23622 // Dispatch for Hyva listing 23623 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 23624 detail: eventDetail 23625 })); 23626 }, 23627 23628 23629 clearOptionIfActive() { 23630 const itemId = this._getItemId(); 23631 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 23632 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 23633 this.changeOption(attrId, ''); 23634 23635 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 23636 if (!input && this.$el?.querySelector) { 23637 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 23638 } 23639 if (!input && this.$el?.closest) { 23640 const root = this.$el.closest('[data-product-id]') || this.$el; 23641 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 23642 } 23643 if (input) { 23644 input.checked = false;
23645 } 23646 } 23647 }, 23648 get optionIsEnabled() { 23649 const itemId = this._getItemId(); 23650 if (!this.$el || !itemId) return true; 23651 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23652 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 23653 return !!allowedOptions.find(opt => opt.id == itemId); 23654 }, 23655 get isSelected() { 23656 const itemId = this._getItemId(); 23657 if (!this.$el || !itemId) return false; 23658 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23659 return attrId ? (this.selectedValues[attrId] == itemId) : false; 23660 }, 23661 get isSwatchRequired() { 23662 if (!this.$el) return false; 23663 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23664 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 23665 }, 23666 focusedLabel: false, 23667 activeTooltipItem: false, 23668 tooltipPositionElement: false,
23669 setActiveTooltipItem() { 23670 const itemId = this._getItemId(); 23671 if (!this.$el || !itemId) return; 23672 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 23673 this.activeTooltipItem = { 23674 attribute: attrId, 23675 item: itemId, 23676 index: 0 23677 }; 23678 this.tooltipPositionElement = this.$event ? this.$event.target : null; 23679 }, 23680 unsetActiveTooltipItem() { 23681 this.activeTooltipItem = false; 23682 } 23683 }, 23684 confProdPreSelect() 23685 ); 23686 23687 if (result.optionConfig && result.optionConfig.attributes) { 23688 const attributes = result.optionConfig.attributes; 23689 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 23690 let source = attributes; 23691 if (Array.isArray(attributes)) { 23692 source = {}; 23693 attributes.forEach(attr => { 23694 if (attr && attr.id) source[attr.id] = attr; 23695 }); 23696 } 23697 const values = Object.values(source); 23698 const wrapper = Object.assign(values, source); 23699 Object.defineProperty(wrapper, '__amxnotifWrapped', { 23700 value: true, 23701 enumerable: false 23702 }); 23703 result.optionConfig.attributes = wrapper; 23704 } 23705 } 23706 23707 return result; 23708 } 23709 23710 window.addEventListener('alpine:init', () => { 23711 Alpine.data('initConfigurableSwatchOptions_47165', initConfigurableSwatchOptions_47165); 23712 }, { 23713 once: true 23714 }); 23715 </script>
23715 23716 23717 <div x-data="initConfigurableSwatchOptions_47165" x-defer="intersect"> 23718 <div class="pagebuilder-home-hidden"> 23719 23720 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 23721 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 23722 <template x-if="showSwatches"> 23723 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47165-163" role="radiogroup" aria-label="Einband"> 23724 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 23725 <div :data-option-id="item.id" style="display: contents"> 23726 <div x-id="getSwatchOptionHtmlIdGroup"> 23727 <template x-if="optionIsEnabled"> 23728 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
23728self="unsetActiveTooltipItem"> 23729 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47165-163"> 23730 <div> 23731 <template x-if="isTextSwatch"> 23732 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 23733 </template> 23734 <template x-if="!optionIsActive(163, item.id)"> 23735 <div> 23736 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 23737 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 23738 </svg> 23739 </div> 23740 </template> 23741 </div> 23742 </label> 23743 </template> 23744</div> </div> 23745 </template> 23746 </div> 23747 </template> 23748 </div> 23749 </div> 23750 </div> 23751 </div> 23752 23753 <div class="meta py-4 pagebuilder-home-hidden"> 23754 <div x-data="initMarketingShortText_47165()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 23755 <!-- Marketing short text --> 23756 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 23757 </div> 23758 23759 <!-- Short description --> 23760 <div class="short-description"> 23761 Die legendäre Abhandlung über die drei Betrüger (Moses, Jesus und Mohammed) zählt zu den herausragenden Schlüsseltexten der französischen Aufklärung. Die Schrift markiert den Übergang von der ... <a href="https://meiner.de/fmv_de/traktat-a-ber-die-drei-betra-ger-16064" class="underline">mehr</a> 23762 </div> 23763 </div> 23764 23765 <!-- Series --> 23766 <div class="mb-1"> 23767 <span class="sr-only">Reihe:</span> 23768 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 23769 <span>Philosophische Bibliothek</span> 23770 </a> 23771 452 </div> 23772 23773 23774 <div class="mb-1"> 23775 <span x-data="initEditionText_47165()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 23776 <!-- Marketing short text --> 23777 <span class="edition-text" x-html="editionText"></span> 2026, LXVIII, 171 Seiten. </span> 23778 </div> 23779 23780 </div> 23781 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 23782 23783 <div class="justify-end" x-data="initPriceBox()" @update-prices-47165.window="updatePrice($event.detail);"> 23784 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47165" data-price-box="product-id-47165"><span class="normal-price"> 23785 <span x-data x-id="['product\u002Dprice\u002D47165']" class="price-container price-final_price tax weee"> 23786 <span class="price-label">Ab</span> 23787 <span class="approx-price">ca. </span>
23788 <span :id="$id('product\u002Dprice\u002D47165')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 23789 </span> 23790</span> 23791 23792 23793</div> </div> 23794 23795 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 23796 <div class="open-access-container open-access-container-47165 flex mt-4 ml-auto sm:mt-0 hidden"> 23797 <div class="text-gray-700"> 23798 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 23799 <a href="" target="_blank" class="open-access-external-link m-auto "> 23800 Kostenlos online lesen </a> 23801 </button> 23802 </div> 23803 </div> 23804 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Traktat über die drei Betrüger" aria-label="In den Warenkorb Traktat über die drei Betrüger" data-addto="cart"> 23805 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 23806 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 23807</svg> 23808 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 23809 In den Warenkorb </span> 23810 </button> 23811 23812<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47165)" aria-label="Zur Wunschliste hinzufügen Traktat über die drei Betrüger" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 23813 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 23814 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 23815</svg> 23816</button> 23817 </div> 23818 </div> 23819 </div> 23820
23820<script> 23821 function initMarketingShortText_47165() { 23822 var marketingShortTextConfig = {}; 23823 if (typeof window.initConfigurableSwatchOptions_47165 === "function") { 23824 var fullConfig = window.initConfigurableSwatchOptions_47165().optionConfig 23825 var marketingShortTextConfig = fullConfig.marketing_short_text; 23826 } 23827 return { 23828 marketingShortText: '', 23829 config: marketingShortTextConfig, 23830 productId: '47165', 23831 getMarketingShortText(detail) { 23832 this.marketingShortText = detail.productIndex ? 23833 this.config[detail.productIndex] : 23834 null; 23835 }, 23836 eventListeners: { 23837 ['@listing-configurable-selection-changed.window'](event) { 23838 if (this.productId == event.detail.productId) { 23839 this.getMarketingShortText(event.detail); 23840 } 23841 23842 } 23843 } 23844 } 23845 } 23846 23847 function initEditionText_47165() { 23848 var editionTextConfig = {}; 23849 if (typeof window.initConfigurableSwatchOptions_47165 === "function") { 23850 var fullConfig = window.initConfigurableSwatchOptions_47165().optionConfig 23851 var editionTextConfig = fullConfig.edition; 23852 } 23853 return { 23854 editionText: '', 23855 config: editionTextConfig, 23856 productId: '47165', 23857 getEditionText(detail) { 23858 this.editionText = detail.productIndex ? 23859 this.config[detail.productIndex] : 23860 null; 23861 }, 23862 eventListeners: { 23863 ['@listing-configurable-selection-changed.window'](event) { 23864 if (this.productId == event.detail.productId) { 23865 this.getEditionText(event.detail); 23866 } 23867 23868 } 23869 } 23870 } 23871 } 23872 </script>
23872 23873 </form> 23874 23875 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46708/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21370"> 23876 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46708"> 23877 <a href="https://meiner.de/fmv_de/der-briefwechsel-mit-constantijn-huygens-21370" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 23878 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46708.window="$el.src = $event.detail" alt="Der Briefwechsel mit Constantijn Huygens" title="Der Briefwechsel mit Constantijn Huygens" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351060_1.jpg" :style="{ 23879 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 23880 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 23881 }"> 23882 </a> 23883 <div class="product-info flex flex-col flex-grow "> 23884 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 23885 <div class="mb-2 text-sm text-gray-500 font-medium"> 23886 <a href="https://meiner.de/fmv_de/person/Rene-Descartes-3688/" class="mb-2"> 23887 René Descartes </a> 23888 </div> 23889 <a class="product-item-link" href="https://meiner.de/fmv_de/der-briefwechsel-mit-constantijn-huygens-21370"> 23890 Der Briefwechsel mit Constantijn Huygens </a> 23891 </div> 23892 23893 <div x-data="initEditionText_46708()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 23894 <!-- Marketing short text --> 23895 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 23896 </div> 23897 </div> 23898 23899 <div class="py-1 grid mb-4 "> 23900 23901 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46708,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46708,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46502":"1","46771":"1"},"childProductsAlertStatus":{"46502":"0","46771":"0"},"indexMapping":{"163:17":46502,"163:8":46771},"availabilityMessages":{"46502":"Lieferbar innerhalb von 3-5 Tagen","46771":"Download sofort verf\u00fcgbar"},"openAccess":{"46708":{"status":0},"46502":{"status":0},"46771":{"status":0}}},"availabilityMessages":{"46502":"Lieferbar innerhalb von 3-5 Tagen","46771":"Download sofort verf\u00fcgbar"},"openAccess":{"46708":{"status":0},"46502":{"status":0},"46771":{"status":0}}}'> 23902 <template x-if="containerVisible"> 23903 <!-- Popup Trigger --> 23904 <div> 23905 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 23906 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
23907 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 23908 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 23909<title>bell</title></svg> 23910</span> 23911 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 23912 23913 <!-- Popup Modal --> 23914 <template x-if="showModal"> 23915 <template x-teleport=".page-wrapper"> 23916 <div x-cloak class="fixed inset-0 flex items-center justify-center 23917 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 23918 <div class="relative bg-white rounded-lg shadow-xl 23919 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 23920 <div class="p-6"> 23921 <!-- Subscription Form for Popup --> 23922 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 23923 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 23924 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 23925 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 23926 23927 <div class="flex flex-col gap-3"> 23928 <div class="flex-grow grow"> 23929 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 23930 shadow-xs focus:outline-none focus:outline-hidden 23931 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 23932 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 23933 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 23934 </div> 23935 <input type="hidden" name="product_id" :value="currentProductId"> 23936 <input type="hidden" name="type" value="email"> 23937 23938 23939 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 23940 23941 <div class="amxnotif_guest_action"> 23942 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 23943 rounded-md focus:outline-none 23944 focus:outline-hidden focus:ring-2 23945 focus:ring-offset-2 disabled:opacity-50 23946 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 23947 Benachrichtigen </button> 23948 </div> 23949 </div> 23950 23951 <div class="flex items-start pt-2"> 23952 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 23953 text-blue-600 border-gray-300 rounded-sm"> 23954 <label class="amxnotif-stock-gdrp-label cursor-pointer 23955 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 23956 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 23957 </div> 23958 </form> 23959 </div> 23960 23961 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 23962 hover:text-gray-600 transition-colors" aria-label="Schließen"> 23963 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 23964 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 23965<title>x</title></svg> 23966 </button> 23967 </div> 23968 </div> 23969 </template> 23970 </template> 23971 </div> 23972 </template> 23973 </div> 23974 23975<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46708" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46708,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46502":"1","46771":"1"},"childProductsAlertStatus":{"46502":"0","46771":"0"},"indexMapping":"{\u0022163:17\u0022:46502,\u0022163:8\u0022:46771}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46708,"availabilityMessages":{"46502":"Lieferbar innerhalb von 3-5 Tagen","46771":"Download sofort verf\u00fcgbar"},"openAccess":{"46708":{"status":0},"46502":{"status":0},"46771":{"status":0}}}'> 23976 23977 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
23978 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 23979 <span x-html="optionsLabelText"></span> 23980 </p> 23981</div> </div> 23982 23983
23983<script> 23984 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 23985 try { 23986 const attributes = (config && config.attributes) ? config.attributes : null; 23987 if (!attributes) return []; 23988 let attr = null; 23989 if (Array.isArray(attributes)) { 23990 for (let i = 0; i < attributes.length; i++) { 23991 const a = attributes[i]; 23992 if (a && a.id == attrId) { 23993 attr = a; 23994 break; 23995 } 23996 } 23997 } else { 23998 attr = attributes[attrId]; 23999 } 24000 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 24001 } catch (e) { 24002 return []; 24003 } 24004 }; 24005 24006 function initConfigurableSwatchOptions_46708() { 24007 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"17","label":"Leinen","products":["46502"]},{"id":"8","label":"PDF","products":["46771"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46502":{"baseOldPrice":{"amount":83.177569093458},"oldPrice":{"amount":89},"basePrice":{"amount":83.177569093458},"finalPrice":{"amount":89},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46771":{"baseOldPrice":{"amount":63.542055074766},"oldPrice":{"amount":67.99},"basePrice":{"amount":63.542055074766},"finalPrice":{"amount":67.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":63.542055074766},"oldPrice":{"amount":67.99},"basePrice":{"amount":57.134452781513},"finalPrice":{"amount":67.99},"isApproxPrice":null},"productId":"46708","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46502":{"163":"17"},"46771":{"163":"8"}},"salable":{"163":{"17":["46502"],"8":["46771"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46502":"005105","46771":"005106"},"output":{"46502":"Leinen","46771":"PDF"},"original_name":{"46502":"","46771":""},"openaccess_license_link":{"46502":"","46771":""},"openaccess_license_name":{"46502":"","46771":""},"openaccess_external_link":{"46502":"","46771":""},"gpsr_safety_info":{"46502":"","46771":""},"description":{"46502":"Mit diesem Band liegt Descartes\u2019 umfangreicher Briefwechsel mit seinem langj\u00e4hrigen Freund Constantijn Huygens (1596\u20131687), dem Dichter, Musiker und vielseitig wissenschaftlich interessierten Diplomaten im Dienst des Hauses Oranien-Nassau, erstmals auf Deutsch vor.<br\/><br\/>Dieser Band in der Reihe der kongenialen Neu\u00fcbersetzungen des Descartes\u2019schen Werks durch Christian Wohlers enth\u00e4lt Briefe von und an Ren\u00e9 Descartes aus der Zeit von 1631 bis 1649, also \u00fcber fast die gesamte Zeit seines Aufenthalts in den Niederlanden bis kurz vor seinem Tod 1650 in Stockholm. Den gr\u00f6\u00dften Anteil daran macht der erhaltene Teil des Briefwechsels mit Huygens aus. Constantijn Huygens gilt als einer der bedeutendsten Dichter der Niederlande im 17. Jahrhundert, aber er spielte auch mehrere Instrumente, komponierte hunderte von St\u00fccken und war vielseitig wissenschaftlich interessiert, vor allem hinsichtlich der Optik. Der Briefwechsel dokumentiert u. a. seine vielf\u00e4ltigen Anregungen und Hilfestellungen in Bezug auf die ja auch von Descartes mit Nachdruck betriebenen Versuche einer Weiterentwicklung des Teleskops.<br\/><br\/>Hinzugenommen wurden weitere Korrespondenzen Descartes\u2019, u. a. mit David le Leu de Wilhelm, dem Mathematiker und Orientalisten Jacob Golius, einzelne St\u00fccke aus Descartes\u2019 Korrespondenz mit Alphonse Pollot und Briefe Descartes\u2019 an seinen langj\u00e4hrigen Freund Anton Studler van Surck.","46771":"Mit diesem Band liegt Descartes\u2019 umfangreicher Briefwechsel mit seinem langj\u00e4hrigen Freund Constantijn Huygens (1596\u20131687), dem Dichter, Musiker und vielseitig wissenschaftlich interessierten Diplomaten im Dienst des Hauses Oranien-Nassau, erstmals auf Deutsch vor.<br\/><br\/>Dieser Band in der Reihe der kongenialen Neu\u00fcbersetzungen des Descartes\u2019schen Werks durch Christian Wohlers enth\u00e4lt Briefe von und an Ren\u00e9 Descartes aus der Zeit von 1631 bis 1649, also \u00fcber fast die gesamte Zeit seines Aufenthalts in de
24007n Niederlanden bis kurz vor seinem Tod 1650 in Stockholm. Den gr\u00f6\u00dften Anteil daran macht der erhaltene Teil des Briefwechsels mit Huygens aus. Constantijn Huygens gilt als einer der bedeutendsten Dichter der Niederlande im 17. Jahrhundert, aber er spielte auch mehrere Instrumente, komponierte hunderte von St\u00fccken und war vielseitig wissenschaftlich interessiert, vor allem hinsichtlich der Optik. Der Briefwechsel dokumentiert u. a. seine vielf\u00e4ltigen Anregungen und Hilfestellungen in Bezug auf die ja auch von Descartes mit Nachdruck betriebenen Versuche einer Weiterentwicklung des Teleskops.<br\/><br\/>Hinzugenommen wurden weitere Korrespondenzen Descartes\u2019, u. a. mit David le Leu de Wilhelm, dem Mathematiker und Orientalisten Jacob Golius, einzelne St\u00fccke aus Descartes\u2019 Korrespondenz mit Alphonse Pollot und Briefe Descartes\u2019 an seinen langj\u00e4hrigen Freund Anton Studler van Surck."},"doi":{"46502":"","46771":"10.28937\/978-3-7873-5106-0"},"isbn":{"46502":"978-3-7873-5105-3","46771":"978-3-7873-5106-0"},"marketing_short_text":{"46502":"","46771":""},"recension_text":{"46502":"","46771":""},"language":{"46502":"","46771":""},"cover":{"46502":"Leinen","46771":""},"pages":{"46502":"XXXII, 442 Seiten.","46771":"XXXII, 442 Seiten."},"edition":{"46502":"","46771":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46502":"Nein","46771":"Nein"},"copyright_year":{"46502":"","46771":""},"vlb_tix_link":{"46502":"https:\/\/neu.vlbtix.de\/products\/9783787351053?type=gtin","46771":""},"defaultValues":{"163":"17"}}; 24008 const swatchConfig = {"163":{"17":{"type":"0","value":"Leinen","label":"Leinen"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 24009 24010 if (typeof window.amxnotif_wrap_attributes === 'function') { 24011 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 24012 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 24013 } 24014 24015 const configurableOptionsComponent = initConfigurableOptions( 24016 '46708', 24017 config 24018 ); 24019 const swatchOptionsComponent = initSwatchOptions( 24020 swatchConfig 24021 ); 24022 24023 // DWS - Configurable product preselect start 24024 const confProdPreSelect = () => { 24025 return { 24026 preselectQuerystringItems() { 24027 var data = {"id":"46502","output":"17"}; 24028 const urlQueryParams = new URLSearchParams(window.location.search); 24029 24030 this.$nextTick(() => { 24031 setTimeout(() => { 24032 const rootEl = this.$root || this.$el; 24033 if (!rootEl) return; 24034 24035 const applySelection = (attrCode, attrValue) => { 24036 if (attrValue === undefined || attrValue === null || attrValue === '') return; 24037 24038 const attributes = Object.values(this.optionConfig.attributes || {}); 24039 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 24040 24041 if (targetAttr) { 24042 const attrId = String(targetAttr.id); 24043 const optionVal = String(attrValue); 24044 24045 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 24046 24047 if (inputEl) { 24048 inputEl.click(); 24049 inputEl.dispatchEvent(new Event('change', { 24050 bubbles: true 24051 })); 24052 } else { 24053 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 24054 if (selectEl) { 24055 selectEl.value = optionVal; 24056 selectEl.dispatchEvent(new Event('change', { 24057 bubbles: true 24058 })); 24059 } 24060 } 24061 24062 this.changeOption(attrId, optionVal, false); 24063 } 24064 }; 24065 24066 if (data && typeof data === 'object') {
24067 Object.keys(data).forEach(key => applySelection(key, data[key])); 24068 } 24069 24070 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 24071 if (attribute && attribute.code) { 24072 let optionValue = urlQueryParams.get(attribute.code); 24073 if (optionValue) { 24074 let optionId = false; 24075 const attributes = Object.values(this.optionConfig.attributes || {}); 24076 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 24077 24078 let found = false; 24079 Object.values(targetAttr.options).map(option => { 24080 if (found === false && option.label === optionValue) { 24081 optionId = option.id; 24082 found = true; 24083 } 24084 }); 24085 24086 const attrId = String(targetAttr.id); 24087 let optionVal = String(optionValue); 24088 if (found) { 24089 optionVal = String(optionId); 24090 } 24091 24092 applySelection(attribute.code, optionVal); 24093 } 24094 } 24095 }); 24096 }, 100); 24097 }); 24098 } 24099 } 24100 }; 24101 // DWS - Configurable product preselect end 24102 24103 const result = Object.assign( 24104 configurableOptionsComponent, 24105 swatchOptionsComponent, { 24106 productId: '46708', 24107 productIndex: 0, 24108 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 24109 showSwatches: false, 24110 precalcOptions: {}, 24111 originalInit: configurableOptionsComponent.init, 24112 init() { 24113 try { 24114 this.precalcOptions = {}; 24115 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 24116 this.preselectQuerystringItems(); 24117 if (Array.isArray(attrSource)) { 24118 attrSource.forEach(attr => { 24119 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 24120 }); 24121 } else if (attrSource && typeof attrSource === 'object') { 24122 Object.keys(attrSource).forEach(id => { 24123 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 24124 }); 24125 } 24126 } catch (e) { 24127 console.error('Pre-calc error:', e); 24128 } 24129 24130 if (typeof this.originalInit === 'function') { 24131 this.originalInit(); 24132 } 24133 24134 try { 24135 this.initShowSwatchesIntersect(); 24136 } catch (e) { 24137 console.error('intersect error:', e); 24138 } 24139 }, 24140 24141 updateGallery() { 24142 if (!this.productIndex) return; 24143 24144 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 24145 method: 'GET', 24146 headers: { 24147 'Content-Type': 'application/json', 24148 'X-Requested-With': 'XMLHttpRequest' 24149 } 24150 }) 24151 .then(response => response.json()) 24152 .then(data => { 24153 if (data && data.medium) { 24154 window.dispatchEvent(new CustomEvent("update-gallery-46708", { 24155 detail: data.medium 24156 })); 24157 } 24158 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 24159 }, 24160 24161 24162 initShowSwatchesIntersect() { 24163 const observer = new IntersectionObserver(entries => { 24164 if (entries[0].isIntersecting) { 24165 this.showSwatches = true; 24166 observer.disconnect(); 24167 } 24168 }, { 24169 rootMargin: '512px' 24170 }); 24171 observer.observe(this.$el); 24172 }, 24173 getOptions(attrId) { 24174 return this.precalcOptions[attrId] || []; 24175 }, 24176 getOptionsByAttrId() { 24177 return this.getOptions(this.$el.dataset.attributeId); 24178 }, 24179 _getItemId() { 24180 if (this.item && this.item.id) return this.item.id; 24181 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 24182 }, 24183 getSwatchOptionHtmlId() { 24184 const itemId = this._getItemId(); 24185 return itemId ? this.$id(`attribute-option-46708-${itemId}`) : ''; 24186 }, 24187 getSwatchOptionHtmlIdGroup() { 24188 const itemId = this._getItemId(); 24189 return itemId ? [`attribute-option-46708-${itemId}`] : []; 24190 }, 24191 getAttributeSwatchData(attributeId) { 24192 const data = Object.assign({}, this.swatchConfig[attributeId]); 24193 if (data['additional_data']) { 24194 try { 24195 data['details'] = JSON.parse(data['additional_data']); 24196 } catch (e) { 24197 data['details'] = {}; 24198 } 24199 } 24200 return data; 24201 }, 24202 getSwatchType(attributeId, optionId) { 24203 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 24204 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 24205 } 24206 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 24207 this.swatchConfig[attributeId].details.swatch_input_type : 24208 "empty"; 24209 if (type === 'visual') { 24210 const config = this.swatchConfig[attributeId]; 24211 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 24212 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 24213 } 24214 // Fallback to first option type 24215 for (const oId in config) { 24216 if (config[oId] && typeof config[oId].type !== 'undefined') { 24217 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 24218 } 24219 } 24220 } 24221 return type; 24222 }, 24223 mapSwatchTypeNumberToTypeCode(type) { 24224 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 24225 }, 24226 isTextSwatch() { 24227 const itemId = this._getItemId(); 24228 if (!this.$el || !itemId) return false;
24229 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24230 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 24231 }, 24232 24233 getSwatchText() { 24234 const itemId = this._getItemId(); 24235 if (this.item) return this.item.label || ''; 24236 if (!this.$el || !itemId) return ''; 24237 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24238 const options = attrId ? this.getOptions(attrId) : []; 24239 const opt = options.find(o => o.id == itemId); 24240 return opt ? opt.label : ''; 24241 }, 24242 getSwatchBackgroundStyle() { 24243 const itemId = this._getItemId(); 24244 if (!this.$el || !itemId) return ''; 24245 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24246 if (!attrId) return ''; 24247 const type = this.getSwatchType(attrId, itemId); 24248 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 24249 this.swatchConfig[attrId][itemId] : 24250 null; 24251 if (!swatchData) return ''; 24252 if (type === "color") return 'background-color:' + swatchData.value; 24253 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 24254 return ''; 24255 }, 24256 swatchOptionClasses() { 24257 const itemId = this._getItemId(); 24258 if (!this.$el || !itemId) return {}; 24259 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24260 return { 24261 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 24262 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 24263 'w-6 h-6': !this.isTextSwatch() 24264 } 24265 }, 24266 24267 onFocusSwatchItem() { 24268 const itemId = this._getItemId(); 24269 if (itemId) this.focusedLabel = itemId; 24270 }, 24271 onChangeOption() { 24272 const itemId = this._getItemId(); 24273 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 24274 if (attrId && itemId) this.changeOption(attrId, itemId); 24275 }, 24276 changeOption(attributeId, value) { 24277 if (value === '') { 24278 return; 24279 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 24280 } else { 24281 this.selectedValues[attributeId] = value; 24282 } 24283 24284 this.findSimpleIndex(); 24285 this.findAllowedAttributeOptions(); 24286 this.updatePrices(); 24287 this.updateGallery(); 24288 24289 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 24290 this.findProductIdsForPartialSelection(this.selectedValues) : []; 24291 24292 const eventDetail = { 24293 productId: this.productId, 24294 optionId: attributeId, 24295 value: value, 24296 productIndex: this.productIndex || 0, 24297 selectedValues: this.selectedValues, 24298 candidates: candidates, 24299 sourceElement: this.$el 24300 }; 24301 24302 // Dispatch for Amasty 24303 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 24304 detail: eventDetail 24305 })); 24306 24307 // Dispatch for Hyva listing 24308 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 24309 detail: eventDetail 24310 })); 24311 }, 24312 24313 24314 clearOptionIfActive() { 24315 const itemId = this._getItemId(); 24316 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 24317 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 24318 this.changeOption(attrId, ''); 24319 24320 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 24321 if (!input && this.$el?.querySelector) { 24322 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 24323 } 24324 if (!input && this.$el?.closest) { 24325 const root = this.$el.closest('[data-product-id]') || this.$el; 24326 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 24327 } 24328 if (input) { 24329 input.checked = false;
24330 } 24331 } 24332 }, 24333 get optionIsEnabled() { 24334 const itemId = this._getItemId(); 24335 if (!this.$el || !itemId) return true; 24336 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24337 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 24338 return !!allowedOptions.find(opt => opt.id == itemId); 24339 }, 24340 get isSelected() { 24341 const itemId = this._getItemId(); 24342 if (!this.$el || !itemId) return false; 24343 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24344 return attrId ? (this.selectedValues[attrId] == itemId) : false; 24345 }, 24346 get isSwatchRequired() { 24347 if (!this.$el) return false; 24348 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24349 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 24350 }, 24351 focusedLabel: false, 24352 activeTooltipItem: false, 24353 tooltipPositionElement: false,
24354 setActiveTooltipItem() { 24355 const itemId = this._getItemId(); 24356 if (!this.$el || !itemId) return; 24357 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24358 this.activeTooltipItem = { 24359 attribute: attrId, 24360 item: itemId, 24361 index: 0 24362 }; 24363 this.tooltipPositionElement = this.$event ? this.$event.target : null; 24364 }, 24365 unsetActiveTooltipItem() { 24366 this.activeTooltipItem = false; 24367 } 24368 }, 24369 confProdPreSelect() 24370 ); 24371 24372 if (result.optionConfig && result.optionConfig.attributes) { 24373 const attributes = result.optionConfig.attributes; 24374 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 24375 let source = attributes; 24376 if (Array.isArray(attributes)) { 24377 source = {}; 24378 attributes.forEach(attr => { 24379 if (attr && attr.id) source[attr.id] = attr; 24380 }); 24381 } 24382 const values = Object.values(source); 24383 const wrapper = Object.assign(values, source); 24384 Object.defineProperty(wrapper, '__amxnotifWrapped', { 24385 value: true, 24386 enumerable: false 24387 }); 24388 result.optionConfig.attributes = wrapper; 24389 } 24390 } 24391 24392 return result; 24393 } 24394 24395 window.addEventListener('alpine:init', () => { 24396 Alpine.data('initConfigurableSwatchOptions_46708', initConfigurableSwatchOptions_46708); 24397 }, { 24398 once: true 24399 }); 24400 </script>
24400 24401 24402 <div x-data="initConfigurableSwatchOptions_46708" x-defer="intersect"> 24403 <div class="pagebuilder-home-hidden"> 24404 24405 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 24406 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 24407 <template x-if="showSwatches"> 24408 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46708-163" role="radiogroup" aria-label="Einband"> 24409 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 24410 <div :data-option-id="item.id" style="display: contents"> 24411 <div x-id="getSwatchOptionHtmlIdGroup"> 24412 <template x-if="optionIsEnabled"> 24413 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
24413self="unsetActiveTooltipItem"> 24414 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46708-163"> 24415 <div> 24416 <template x-if="isTextSwatch"> 24417 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 24418 </template> 24419 <template x-if="!optionIsActive(163, item.id)"> 24420 <div> 24421 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 24422 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 24423 </svg> 24424 </div> 24425 </template> 24426 </div> 24427 </label> 24428 </template> 24429</div> </div> 24430 </template> 24431 </div> 24432 </template> 24433 </div> 24434 </div> 24435 </div> 24436 </div> 24437 24438 <div class="meta py-4 pagebuilder-home-hidden"> 24439 <div x-data="initMarketingShortText_46708()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 24440 <!-- Marketing short text --> 24441 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 24442 </div> 24443 24444 <!-- Short description --> 24445 <div class="short-description"> 24446 Mit diesem Band liegt Descartes’ umfangreicher Briefwechsel mit seinem langjährigen Freund Constantijn Huygens (1596–1687), dem Dichter, Musiker und vielseitig wissenschaftlich interessierten ... <a href="https://meiner.de/fmv_de/der-briefwechsel-mit-constantijn-huygens-21370" class="underline">mehr</a> 24447 </div> 24448 </div> 24449 24450 <!-- Series --> 24451 <div class="mb-1"> 24452 <span class="sr-only">Reihe:</span> 24453 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 24454 <span>Philosophische Bibliothek</span> 24455 </a> 24456 789 </div> 24457 24458 24459 <div class="mb-1"> 24460 <span x-data="initEditionText_46708()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 24461 <!-- Marketing short text --> 24462 <span class="edition-text" x-html="editionText"></span> 2026, XXXII, 442 Seiten. </span> 24463 </div> 24464 24465 </div> 24466 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 24467 24468 <div class="justify-end" x-data="initPriceBox()" @update-prices-46708.window="updatePrice($event.detail);"> 24469 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46708" data-price-box="product-id-46708"><span class="normal-price"> 24470 <span x-data x-id="['product\u002Dprice\u002D46708']" class="price-container price-final_price tax weee"> 24471 <span class="price-label">Ab</span> 24472 <span class="approx-price">ca. </span>
24473 <span :id="$id('product\u002Dprice\u002D46708')" data-price-amount="67.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">67,99 €</span></span> 24474 </span> 24475</span> 24476 24477 24478</div> </div> 24479 24480 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 24481 <div class="open-access-container open-access-container-46708 flex mt-4 ml-auto sm:mt-0 hidden"> 24482 <div class="text-gray-700"> 24483 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 24484 <a href="" target="_blank" class="open-access-external-link m-auto "> 24485 Kostenlos online lesen </a> 24486 </button> 24487 </div> 24488 </div> 24489 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Der Briefwechsel mit Constantijn Huygens" aria-label="In den Warenkorb Der Briefwechsel mit Constantijn Huygens" data-addto="cart"> 24490 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 24491 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 24492</svg> 24493 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 24494 In den Warenkorb </span> 24495 </button> 24496 24497<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46708)" aria-label="Zur Wunschliste hinzufügen Der Briefwechsel mit Constantijn Huygens" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 24498 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 24499 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 24500</svg> 24501</button> 24502 </div> 24503 </div> 24504 </div> 24505
24505<script> 24506 function initMarketingShortText_46708() { 24507 var marketingShortTextConfig = {}; 24508 if (typeof window.initConfigurableSwatchOptions_46708 === "function") { 24509 var fullConfig = window.initConfigurableSwatchOptions_46708().optionConfig 24510 var marketingShortTextConfig = fullConfig.marketing_short_text; 24511 } 24512 return { 24513 marketingShortText: '', 24514 config: marketingShortTextConfig, 24515 productId: '46708', 24516 getMarketingShortText(detail) { 24517 this.marketingShortText = detail.productIndex ? 24518 this.config[detail.productIndex] : 24519 null; 24520 }, 24521 eventListeners: { 24522 ['@listing-configurable-selection-changed.window'](event) { 24523 if (this.productId == event.detail.productId) { 24524 this.getMarketingShortText(event.detail); 24525 } 24526 24527 } 24528 } 24529 } 24530 } 24531 24532 function initEditionText_46708() { 24533 var editionTextConfig = {}; 24534 if (typeof window.initConfigurableSwatchOptions_46708 === "function") { 24535 var fullConfig = window.initConfigurableSwatchOptions_46708().optionConfig 24536 var editionTextConfig = fullConfig.edition; 24537 } 24538 return { 24539 editionText: '', 24540 config: editionTextConfig, 24541 productId: '46708', 24542 getEditionText(detail) { 24543 this.editionText = detail.productIndex ? 24544 this.config[detail.productIndex] : 24545 null; 24546 }, 24547 eventListeners: { 24548 ['@listing-configurable-selection-changed.window'](event) { 24549 if (this.productId == event.detail.productId) { 24550 this.getEditionText(event.detail); 24551 } 24552 24553 } 24554 } 24555 } 24556 } 24557 </script>
24557 24558 </form> 24559 24560 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46706/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21359"> 24561 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46706"> 24562 <a href="https://meiner.de/fmv_de/vorlesung-a-ber-die-philosophie-der-weltgeschichte-21359" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 24563 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46706.window="$el.src = $event.detail" alt="Vorlesung über die Philosophie der Weltgeschichte" title="Vorlesung über die Philosophie der Weltgeschichte" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350940_1.jpg" :style="{ 24564 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 24565 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 24566 }"> 24567 </a> 24568 <div class="product-info flex flex-col flex-grow "> 24569 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 24570 <div class="mb-2 text-sm text-gray-500 font-medium"> 24571 <a href="https://meiner.de/fmv_de/person/Georg-Wilhelm-Friedrich-Hegel-3139/" class="mb-2"> 24572 Georg Wilhelm Friedrich Hegel </a> 24573 </div> 24574 <a class="product-item-link" href="https://meiner.de/fmv_de/vorlesung-a-ber-die-philosophie-der-weltgeschichte-21359"> 24575 Vorlesung über die Philosophie der Weltgeschichte </a> 24576 </div> 24577 24578 <div x-data="initEditionText_46706()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 24579 <!-- Marketing short text --> 24580 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 24581 </div> 24582 </div> 24583 24584 <div class="py-1 grid mb-4 "> 24585 24586 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46706,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46706,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46500":"1","46770":"1"},"childProductsAlertStatus":{"46500":"0","46770":"0"},"indexMapping":{"163:15":46500,"163:8":46770},"availabilityMessages":{"46500":"Lieferbar innerhalb von 3-5 Tagen","46770":"Download sofort verf\u00fcgbar"},"openAccess":{"46706":{"status":0},"46500":{"status":0},"46770":{"status":0}}},"availabilityMessages":{"46500":"Lieferbar innerhalb von 3-5 Tagen","46770":"Download sofort verf\u00fcgbar"},"openAccess":{"46706":{"status":0},"46500":{"status":0},"46770":{"status":0}}}'> 24587 <template x-if="containerVisible"> 24588 <!-- Popup Trigger --> 24589 <div> 24590 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 24591 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
24592 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 24593 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 24594<title>bell</title></svg> 24595</span> 24596 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 24597 24598 <!-- Popup Modal --> 24599 <template x-if="showModal"> 24600 <template x-teleport=".page-wrapper"> 24601 <div x-cloak class="fixed inset-0 flex items-center justify-center 24602 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 24603 <div class="relative bg-white rounded-lg shadow-xl 24604 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 24605 <div class="p-6"> 24606 <!-- Subscription Form for Popup --> 24607 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 24608 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 24609 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 24610 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 24611 24612 <div class="flex flex-col gap-3"> 24613 <div class="flex-grow grow"> 24614 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 24615 shadow-xs focus:outline-none focus:outline-hidden 24616 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 24617 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 24618 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 24619 </div> 24620 <input type="hidden" name="product_id" :value="currentProductId"> 24621 <input type="hidden" name="type" value="email"> 24622 24623 24624 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 24625 24626 <div class="amxnotif_guest_action"> 24627 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 24628 rounded-md focus:outline-none 24629 focus:outline-hidden focus:ring-2 24630 focus:ring-offset-2 disabled:opacity-50 24631 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 24632 Benachrichtigen </button> 24633 </div> 24634 </div> 24635 24636 <div class="flex items-start pt-2"> 24637 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 24638 text-blue-600 border-gray-300 rounded-sm"> 24639 <label class="amxnotif-stock-gdrp-label cursor-pointer 24640 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 24641 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 24642 </div> 24643 </form> 24644 </div> 24645 24646 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 24647 hover:text-gray-600 transition-colors" aria-label="Schließen"> 24648 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 24649 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 24650<title>x</title></svg> 24651 </button> 24652 </div> 24653 </div> 24654 </template> 24655 </template> 24656 </div> 24657 </template> 24658 </div> 24659 24660<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46706" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46706,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46500":"1","46770":"1"}
24660,"childProductsAlertStatus":{"46500":"0","46770":"0"},"indexMapping":"{\u0022163:15\u0022:46500,\u0022163:8\u0022:46770}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46706,"availabilityMessages":{"46500":"Lieferbar innerhalb von 3-5 Tagen","46770":"Download sofort verf\u00fcgbar"},"openAccess":{"46706":{"status":0},"46500":{"status":0},"46770":{"status":0}}}'> 24661 24662 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 24663 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 24664 <span x-html="optionsLabelText"></span> 24665 </p> 24666</div> </div> 24667 24668
24668<script> 24669 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 24670 try { 24671 const attributes = (config && config.attributes) ? config.attributes : null; 24672 if (!attributes) return []; 24673 let attr = null; 24674 if (Array.isArray(attributes)) { 24675 for (let i = 0; i < attributes.length; i++) { 24676 const a = attributes[i]; 24677 if (a && a.id == attrId) { 24678 attr = a; 24679 break; 24680 } 24681 } 24682 } else { 24683 attr = attributes[attrId]; 24684 } 24685 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 24686 } catch (e) { 24687 return []; 24688 } 24689 }; 24690 24691 function initConfigurableSwatchOptions_46706() { 24692 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46500"]},{"id":"8","label":"PDF","products":["46770"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46500":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46770":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":16.798318327731},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"46706","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46500":{"163":"15"},"46770":{"163":"8"}},"salable":{"163":{"15":["46500"],"8":["46770"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46500":"005093","46770":"005094"},"output":{"46500":"Kartoniert","46770":"PDF"},"original_name":{"46500":"","46770":""},"openaccess_license_link":{"46500":"","46770":""},"openaccess_license_name":{"46500":"","46770":""},"openaccess_external_link":{"46500":"","46770":""},"gpsr_safety_info":{"46500":"","46770":""},"description":{"46500":"Hegels geschichtsphilosophische Vorlesungen sind fast nur durch die Mit- und Nachschriften seiner Sch\u00fcler und H\u00f6rer zug\u00e4nglich \u2013 ein Faktum, das fr\u00fchere Ausgaben, die aus verschiedenen Nachschriften und einigen unver\u00f6ffentlichten Manuskripten kompiliert wurden, \u00fcberdeckt haben. Dieser Band gibt hingegen eine einzelne authentische Nachschrift wieder, n\u00e4mlich die von Hegels Sohn Karl Hegel von 1830\/31 \u2013 aus dem letzten Semester, in dem Hegel noch lehren konnte.<br\/><br\/>Karl Hegels Nachschrift dokumentiert damit die reifste Gestalt von Hegels Geschichtsphilosophie. In seiner Vorlesung skizzierte Hegel die politische, gesellschaftliche und religi\u00f6se Entwicklung eines einheitlichen Weltethos und des zugeh\u00f6rigen Personseins, wobei erst in Persien, u. a. von Zarathustra, die Idee der Wahrheit und des Guten allgemein gefasst und erst im Laufe der Geschichte des Christentums die W\u00fcrde des einzelnen Menschen und seine basalen Rechte erfasst werden.<br\/><br\/>Diese Ausgabe k\u00f6nnte, so der Herausgeber, \u00bbzu einer Art Game-Changer f\u00fcr die Lekt\u00fcre Hegels insgesamt werden, weil es auf Kants dogmatische Rede von einem moralischen Gesetz a priori in uns antwortet\u00ab. Bis auf leichte Korrekturen und behutsame Anpassungen an heutige Schreibweisen folgt der Text Band 27,4 der historisch-kritischen Ausgabe \u00bbG.W.F. Hegel: Gesammelte Werke\u00ab.","46770":"Hegels geschichtsphilosophische Vorlesungen sind fast nur durch die Mit- und Nachschriften seiner Sch\u00fcler und H\u00f6rer zug\u00e4nglich \u2013 ein Faktum, das fr\u00fchere Ausgaben, die aus verschiedenen Nachschriften und einigen unver\u00f6ffentlichten Manuskripten kompiliert wurden, \u00fcberdeckt haben. Dieser Band gibt hingegen eine einzelne authentische Nachschrift wieder, n\u00e4mlich die von Hegels Sohn Karl Hegel von 1830\/31 \u2013 aus dem letzten Semester, in dem Hegel noch lehren konnte.<br\/><br\/>Karl Hegels Nachschrift dokumentiert damit die reifste Gestalt von Hegels Geschichtsphilosophie. In seiner Vorlesung skizzierte Hegel die politische, gesellschaftliche und religi\u00f6se Entwicklung eines einheitlichen Weltethos und des zugeh\u00f6rigen Personseins, wobei erst in Persien, u. a. von Zarathustra, die Idee der Wahrheit und des Guten allgemein gefasst und erst im Laufe der Geschichte des Christentums die W\u00fcrde des einzelnen Menschen und seine basalen Rechte erfasst werden.<br\/><br\/>Diese Ausgabe k\u00f6nnte, so der Herausgeber, \u00bbzu einer Art Game-Changer f\u00fcr die Lekt\u00fcre Hegels insgesamt werden, weil es auf Kants dogmatische Rede von einem moralischen Gesetz a priori in uns antwortet\u00ab. Bis auf leichte Korrekturen und behutsame Anpassungen an heutige Schreibweisen folgt der Text Band 27,4 der historisch-kritischen Ausgabe \u00bbG.W.F. Hegel: Gesammelte Werke\u00ab."},"doi":{"46500":"","46770":"10.28937\/978-3-7873-5094-0"},"isbn":{"46500":"978-3-7873-5093-3","46770":"978-3-7873-5094-0"},"marketing_short_text":{"46500":"","46770":""},"recension_text":{"46500":"","46770":""},"language":{"46500":"","46770":""},"cover":{"46500":"Kartoniert","46770":""},"pages":{"46500":"LXII, 366 Seiten.","46770":"LXII, 366 Seiten."},"edition":{"46500":"","46770":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46500":"Nein","46770":"Nein"},"copyright_year":{"46500":"","46770":""},"vlb_tix_link":{"46500":"https:\/\/neu.vlbtix.de\/products\/9783787350933?type=gtin","46770":""},"defaultValues":{"163":"15"}}; 24693 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 24694 24695 if (typeof window.amxnotif_wrap_attributes === 'function') { 24696 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 24697 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 24698 } 24699 24700 const configurableOptionsComponent = initConfigurableOptions( 24701 '46706', 24702 config 24703 ); 24704 const swatchOptionsComponent = initSwatchOptions( 24705 swatchConfig 24706 ); 24707 24708 // DWS - Configurable product preselect start 24709 const confProdPreSelect = () => { 24710 return { 24711 preselectQuerystringItems() { 24712 var data = {"id":"46500","output":"15"}; 24713 const urlQueryParams = new URLSearchParams(window.location.search); 24714 24715 this.$nextTick(() => { 24716 setTimeout(() => { 24717 const rootEl = this.$root || this.$el; 24718 if (!rootEl) return; 24719 24720 const applySelection = (attrCode, attrValue) => { 24721 if (attrValue === undefined || attrValue === null || attrValue === '') return; 24722 24723 const attributes = Object.values(this.optionConfig.attributes || {}); 24724 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 24725 24726 if (targetAttr) { 24727 const attrId = String(targetAttr.id); 24728 const optionVal = String(attrValue); 24729 24730 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 24731 24732 if (inputEl) { 24733 inputEl.click(); 24734 inputEl.dispatchEvent(new Event('change', { 24735 bubbles: true 24736 })); 24737 } else { 24738 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 24739 if (selectEl) { 24740 selectEl.value = optionVal; 24741 selectEl.dispatchEvent(new Event('change', { 24742 bubbles: true 24743 })); 24744 } 24745 } 24746 24747 this.changeOption(attrId, optionVal, false); 24748 } 24749 }; 24750 24751 if (data && typeof data === 'object') {
24752 Object.keys(data).forEach(key => applySelection(key, data[key])); 24753 } 24754 24755 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 24756 if (attribute && attribute.code) { 24757 let optionValue = urlQueryParams.get(attribute.code); 24758 if (optionValue) { 24759 let optionId = false; 24760 const attributes = Object.values(this.optionConfig.attributes || {}); 24761 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 24762 24763 let found = false; 24764 Object.values(targetAttr.options).map(option => { 24765 if (found === false && option.label === optionValue) { 24766 optionId = option.id; 24767 found = true; 24768 } 24769 }); 24770 24771 const attrId = String(targetAttr.id); 24772 let optionVal = String(optionValue); 24773 if (found) { 24774 optionVal = String(optionId); 24775 } 24776 24777 applySelection(attribute.code, optionVal); 24778 } 24779 } 24780 }); 24781 }, 100); 24782 }); 24783 } 24784 } 24785 }; 24786 // DWS - Configurable product preselect end 24787 24788 const result = Object.assign( 24789 configurableOptionsComponent, 24790 swatchOptionsComponent, { 24791 productId: '46706', 24792 productIndex: 0, 24793 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 24794 showSwatches: false, 24795 precalcOptions: {}, 24796 originalInit: configurableOptionsComponent.init, 24797 init() { 24798 try { 24799 this.precalcOptions = {}; 24800 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 24801 this.preselectQuerystringItems(); 24802 if (Array.isArray(attrSource)) { 24803 attrSource.forEach(attr => { 24804 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 24805 }); 24806 } else if (attrSource && typeof attrSource === 'object') { 24807 Object.keys(attrSource).forEach(id => { 24808 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 24809 }); 24810 } 24811 } catch (e) { 24812 console.error('Pre-calc error:', e); 24813 } 24814 24815 if (typeof this.originalInit === 'function') { 24816 this.originalInit(); 24817 } 24818 24819 try { 24820 this.initShowSwatchesIntersect(); 24821 } catch (e) { 24822 console.error('intersect error:', e); 24823 } 24824 }, 24825 24826 updateGallery() { 24827 if (!this.productIndex) return; 24828 24829 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 24830 method: 'GET', 24831 headers: { 24832 'Content-Type': 'application/json', 24833 'X-Requested-With': 'XMLHttpRequest' 24834 } 24835 }) 24836 .then(response => response.json()) 24837 .then(data => { 24838 if (data && data.medium) { 24839 window.dispatchEvent(new CustomEvent("update-gallery-46706", { 24840 detail: data.medium 24841 })); 24842 } 24843 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 24844 }, 24845 24846 24847 initShowSwatchesIntersect() { 24848 const observer = new IntersectionObserver(entries => { 24849 if (entries[0].isIntersecting) { 24850 this.showSwatches = true; 24851 observer.disconnect(); 24852 } 24853 }, { 24854 rootMargin: '512px' 24855 }); 24856 observer.observe(this.$el); 24857 }, 24858 getOptions(attrId) { 24859 return this.precalcOptions[attrId] || []; 24860 }, 24861 getOptionsByAttrId() { 24862 return this.getOptions(this.$el.dataset.attributeId); 24863 }, 24864 _getItemId() { 24865 if (this.item && this.item.id) return this.item.id; 24866 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 24867 }, 24868 getSwatchOptionHtmlId() { 24869 const itemId = this._getItemId(); 24870 return itemId ? this.$id(`attribute-option-46706-${itemId}`) : ''; 24871 }, 24872 getSwatchOptionHtmlIdGroup() { 24873 const itemId = this._getItemId(); 24874 return itemId ? [`attribute-option-46706-${itemId}`] : []; 24875 }, 24876 getAttributeSwatchData(attributeId) { 24877 const data = Object.assign({}, this.swatchConfig[attributeId]); 24878 if (data['additional_data']) { 24879 try { 24880 data['details'] = JSON.parse(data['additional_data']); 24881 } catch (e) { 24882 data['details'] = {}; 24883 } 24884 } 24885 return data; 24886 }, 24887 getSwatchType(attributeId, optionId) { 24888 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 24889 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 24890 } 24891 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 24892 this.swatchConfig[attributeId].details.swatch_input_type : 24893 "empty"; 24894 if (type === 'visual') { 24895 const config = this.swatchConfig[attributeId]; 24896 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 24897 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 24898 } 24899 // Fallback to first option type 24900 for (const oId in config) { 24901 if (config[oId] && typeof config[oId].type !== 'undefined') { 24902 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 24903 } 24904 } 24905 } 24906 return type; 24907 }, 24908 mapSwatchTypeNumberToTypeCode(type) { 24909 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 24910 }, 24911 isTextSwatch() { 24912 const itemId = this._getItemId(); 24913 if (!this.$el || !itemId) return false;
24914 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24915 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 24916 }, 24917 24918 getSwatchText() { 24919 const itemId = this._getItemId(); 24920 if (this.item) return this.item.label || ''; 24921 if (!this.$el || !itemId) return ''; 24922 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24923 const options = attrId ? this.getOptions(attrId) : []; 24924 const opt = options.find(o => o.id == itemId); 24925 return opt ? opt.label : ''; 24926 }, 24927 getSwatchBackgroundStyle() { 24928 const itemId = this._getItemId(); 24929 if (!this.$el || !itemId) return ''; 24930 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24931 if (!attrId) return ''; 24932 const type = this.getSwatchType(attrId, itemId); 24933 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 24934 this.swatchConfig[attrId][itemId] : 24935 null; 24936 if (!swatchData) return ''; 24937 if (type === "color") return 'background-color:' + swatchData.value; 24938 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 24939 return ''; 24940 }, 24941 swatchOptionClasses() { 24942 const itemId = this._getItemId(); 24943 if (!this.$el || !itemId) return {}; 24944 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 24945 return { 24946 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 24947 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 24948 'w-6 h-6': !this.isTextSwatch() 24949 } 24950 }, 24951 24952 onFocusSwatchItem() { 24953 const itemId = this._getItemId(); 24954 if (itemId) this.focusedLabel = itemId; 24955 }, 24956 onChangeOption() { 24957 const itemId = this._getItemId(); 24958 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 24959 if (attrId && itemId) this.changeOption(attrId, itemId); 24960 }, 24961 changeOption(attributeId, value) { 24962 if (value === '') { 24963 return; 24964 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 24965 } else { 24966 this.selectedValues[attributeId] = value; 24967 } 24968 24969 this.findSimpleIndex(); 24970 this.findAllowedAttributeOptions(); 24971 this.updatePrices(); 24972 this.updateGallery(); 24973 24974 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 24975 this.findProductIdsForPartialSelection(this.selectedValues) : []; 24976 24977 const eventDetail = { 24978 productId: this.productId, 24979 optionId: attributeId, 24980 value: value, 24981 productIndex: this.productIndex || 0, 24982 selectedValues: this.selectedValues, 24983 candidates: candidates, 24984 sourceElement: this.$el 24985 }; 24986 24987 // Dispatch for Amasty 24988 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 24989 detail: eventDetail 24990 })); 24991 24992 // Dispatch for Hyva listing 24993 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 24994 detail: eventDetail 24995 })); 24996 }, 24997 24998 24999 clearOptionIfActive() { 25000 const itemId = this._getItemId(); 25001 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 25002 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 25003 this.changeOption(attrId, ''); 25004 25005 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 25006 if (!input && this.$el?.querySelector) { 25007 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 25008 } 25009 if (!input && this.$el?.closest) { 25010 const root = this.$el.closest('[data-product-id]') || this.$el; 25011 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 25012 } 25013 if (input) { 25014 input.checked = false;
25015 } 25016 } 25017 }, 25018 get optionIsEnabled() { 25019 const itemId = this._getItemId(); 25020 if (!this.$el || !itemId) return true; 25021 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25022 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 25023 return !!allowedOptions.find(opt => opt.id == itemId); 25024 }, 25025 get isSelected() { 25026 const itemId = this._getItemId(); 25027 if (!this.$el || !itemId) return false; 25028 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25029 return attrId ? (this.selectedValues[attrId] == itemId) : false; 25030 }, 25031 get isSwatchRequired() { 25032 if (!this.$el) return false; 25033 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25034 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 25035 }, 25036 focusedLabel: false, 25037 activeTooltipItem: false, 25038 tooltipPositionElement: false,
25039 setActiveTooltipItem() { 25040 const itemId = this._getItemId(); 25041 if (!this.$el || !itemId) return; 25042 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25043 this.activeTooltipItem = { 25044 attribute: attrId, 25045 item: itemId, 25046 index: 0 25047 }; 25048 this.tooltipPositionElement = this.$event ? this.$event.target : null; 25049 }, 25050 unsetActiveTooltipItem() { 25051 this.activeTooltipItem = false; 25052 } 25053 }, 25054 confProdPreSelect() 25055 ); 25056 25057 if (result.optionConfig && result.optionConfig.attributes) { 25058 const attributes = result.optionConfig.attributes; 25059 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 25060 let source = attributes; 25061 if (Array.isArray(attributes)) { 25062 source = {}; 25063 attributes.forEach(attr => { 25064 if (attr && attr.id) source[attr.id] = attr; 25065 }); 25066 } 25067 const values = Object.values(source); 25068 const wrapper = Object.assign(values, source); 25069 Object.defineProperty(wrapper, '__amxnotifWrapped', { 25070 value: true, 25071 enumerable: false 25072 }); 25073 result.optionConfig.attributes = wrapper; 25074 } 25075 } 25076 25077 return result; 25078 } 25079 25080 window.addEventListener('alpine:init', () => { 25081 Alpine.data('initConfigurableSwatchOptions_46706', initConfigurableSwatchOptions_46706); 25082 }, { 25083 once: true 25084 }); 25085 </script>
25085 25086 25087 <div x-data="initConfigurableSwatchOptions_46706" x-defer="intersect"> 25088 <div class="pagebuilder-home-hidden"> 25089 25090 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 25091 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 25092 <template x-if="showSwatches"> 25093 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46706-163" role="radiogroup" aria-label="Einband"> 25094 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 25095 <div :data-option-id="item.id" style="display: contents"> 25096 <div x-id="getSwatchOptionHtmlIdGroup"> 25097 <template x-if="optionIsEnabled"> 25098 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
25098self="unsetActiveTooltipItem"> 25099 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46706-163"> 25100 <div> 25101 <template x-if="isTextSwatch"> 25102 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 25103 </template> 25104 <template x-if="!optionIsActive(163, item.id)"> 25105 <div> 25106 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 25107 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 25108 </svg> 25109 </div> 25110 </template> 25111 </div> 25112 </label> 25113 </template> 25114</div> </div> 25115 </template> 25116 </div> 25117 </template> 25118 </div> 25119 </div> 25120 </div> 25121 </div> 25122 25123 <div class="meta py-4 pagebuilder-home-hidden"> 25124 <div x-data="initMarketingShortText_46706()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 25125 <!-- Marketing short text --> 25126 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 25127 </div> 25128 25129 <!-- Short description --> 25130 <div class="short-description"> 25131 Hegels geschichtsphilosophische Vorlesungen sind fast nur durch die Mit- und Nachschriften seiner Schüler und Hörer zugänglich – ein Faktum, das frühere Ausgaben, die aus verschiedenen ... <a href="https://meiner.de/fmv_de/vorlesung-a-ber-die-philosophie-der-weltgeschichte-21359" class="underline">mehr</a> 25132 </div> 25133 </div> 25134 25135 <!-- Series --> 25136 <div class="mb-1"> 25137 <span class="sr-only">Reihe:</span> 25138 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 25139 <span>Philosophische Bibliothek</span> 25140 </a> 25141 797 </div> 25142 25143 25144 <div class="mb-1"> 25145 <span x-data="initEditionText_46706()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 25146 <!-- Marketing short text --> 25147 <span class="edition-text" x-html="editionText"></span> 2026, LXII, 366 Seiten. </span> 25148 </div> 25149 25150 </div> 25151 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 25152 25153 <div class="justify-end" x-data="initPriceBox()" @update-prices-46706.window="updatePrice($event.detail);"> 25154 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46706" data-price-box="product-id-46706"><span class="normal-price"> 25155 <span x-data x-id="['product\u002Dprice\u002D46706']" class="price-container price-final_price tax weee"> 25156 <span class="price-label">Ab</span> 25157 <span class="approx-price">ca. </span>
25158 <span :id="$id('product\u002Dprice\u002D46706')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 25159 </span> 25160</span> 25161 25162 25163</div> </div> 25164 25165 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 25166 <div class="open-access-container open-access-container-46706 flex mt-4 ml-auto sm:mt-0 hidden"> 25167 <div class="text-gray-700"> 25168 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 25169 <a href="" target="_blank" class="open-access-external-link m-auto "> 25170 Kostenlos online lesen </a> 25171 </button> 25172 </div> 25173 </div> 25174 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Vorlesung über die Philosophie der Weltgeschichte" aria-label="In den Warenkorb Vorlesung über die Philosophie der Weltgeschichte" data-addto="cart"> 25175 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 25176 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 25177</svg> 25178 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 25179 In den Warenkorb </span> 25180 </button> 25181 25182<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46706)" aria-label="Zur Wunschliste hinzufügen Vorlesung über die Philosophie der Weltgeschichte" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 25183 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 25184 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 25185</svg> 25186</button> 25187 </div> 25188 </div> 25189 </div> 25190
25190<script> 25191 function initMarketingShortText_46706() { 25192 var marketingShortTextConfig = {}; 25193 if (typeof window.initConfigurableSwatchOptions_46706 === "function") { 25194 var fullConfig = window.initConfigurableSwatchOptions_46706().optionConfig 25195 var marketingShortTextConfig = fullConfig.marketing_short_text; 25196 } 25197 return { 25198 marketingShortText: '', 25199 config: marketingShortTextConfig, 25200 productId: '46706', 25201 getMarketingShortText(detail) { 25202 this.marketingShortText = detail.productIndex ? 25203 this.config[detail.productIndex] : 25204 null; 25205 }, 25206 eventListeners: { 25207 ['@listing-configurable-selection-changed.window'](event) { 25208 if (this.productId == event.detail.productId) { 25209 this.getMarketingShortText(event.detail); 25210 } 25211 25212 } 25213 } 25214 } 25215 } 25216 25217 function initEditionText_46706() { 25218 var editionTextConfig = {}; 25219 if (typeof window.initConfigurableSwatchOptions_46706 === "function") { 25220 var fullConfig = window.initConfigurableSwatchOptions_46706().optionConfig 25221 var editionTextConfig = fullConfig.edition; 25222 } 25223 return { 25224 editionText: '', 25225 config: editionTextConfig, 25226 productId: '46706', 25227 getEditionText(detail) { 25228 this.editionText = detail.productIndex ? 25229 this.config[detail.productIndex] : 25230 null; 25231 }, 25232 eventListeners: { 25233 ['@listing-configurable-selection-changed.window'](event) { 25234 if (this.productId == event.detail.productId) { 25235 this.getEditionText(event.detail); 25236 } 25237 25238 } 25239 } 25240 } 25241 } 25242 </script>
25242 25243 </form> 25244 25245 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4150/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk13216"> 25246 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4150"> 25247 <a href="https://meiner.de/fmv_de/a-ber-das-recht-des-volks-zu-einer-revolution-13216" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 25248 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4150.window="$el.src = $event.detail" alt="Über das Recht des Volks zu einer Revolution" title="Über das Recht des Volks zu einer Revolution" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344505_4.jpg" :style="{ 25249 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 25250 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 25251 }"> 25252 </a> 25253 <div class="product-info flex flex-col flex-grow "> 25254 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 25255 <div class="mb-2 text-sm text-gray-500 font-medium"> 25256 <a href="https://meiner.de/fmv_de/person/Johann-Benjamin-Erhard-13217/" class="mb-2"> 25257 Johann Benjamin Erhard </a> 25258 </div> 25259 <a class="product-item-link" href="https://meiner.de/fmv_de/a-ber-das-recht-des-volks-zu-einer-revolution-13216"> 25260 Über das Recht des Volks zu einer Revolution </a> 25261 </div> 25262 25263 <div x-data="initEditionText_4150()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 25264 <!-- Marketing short text --> 25265 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 25266 </div> 25267 </div> 25268 25269 <div class="py-1 grid mb-4 "> 25270 25271 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4150,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4150,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"9909":"1","15378":"1"},"childProductsAlertStatus":{"9909":"0","15378":"0"},"indexMapping":{"163:15":9909,"163:8":15378},"availabilityMessages":{"9909":"Lieferbar innerhalb von 3-5 Tagen","15378":"Download sofort verf\u00fcgbar"},"openAccess":{"4150":{"status":0},"9909":{"status":0},"15378":{"status":0}}},"availabilityMessages":{"9909":"Lieferbar innerhalb von 3-5 Tagen","15378":"Download sofort verf\u00fcgbar"},"openAccess":{"4150":{"status":0},"9909":{"status":0},"15378":{"status":0}}}'> 25272 <template x-if="containerVisible"> 25273 <!-- Popup Trigger --> 25274 <div> 25275 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 25276 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
25277 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 25278 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 25279<title>bell</title></svg> 25280</span> 25281 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 25282 25283 <!-- Popup Modal --> 25284 <template x-if="showModal"> 25285 <template x-teleport=".page-wrapper"> 25286 <div x-cloak class="fixed inset-0 flex items-center justify-center 25287 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 25288 <div class="relative bg-white rounded-lg shadow-xl 25289 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 25290 <div class="p-6"> 25291 <!-- Subscription Form for Popup --> 25292 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 25293 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 25294 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 25295 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 25296 25297 <div class="flex flex-col gap-3"> 25298 <div class="flex-grow grow"> 25299 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 25300 shadow-xs focus:outline-none focus:outline-hidden 25301 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 25302 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 25303 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 25304 </div> 25305 <input type="hidden" name="product_id" :value="currentProductId"> 25306 <input type="hidden" name="type" value="email"> 25307 25308 25309 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 25310 25311 <div class="amxnotif_guest_action"> 25312 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 25313 rounded-md focus:outline-none 25314 focus:outline-hidden focus:ring-2 25315 focus:ring-offset-2 disabled:opacity-50 25316 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 25317 Benachrichtigen </button> 25318 </div> 25319 </div> 25320 25321 <div class="flex items-start pt-2"> 25322 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 25323 text-blue-600 border-gray-300 rounded-sm"> 25324 <label class="amxnotif-stock-gdrp-label cursor-pointer 25325 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 25326 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 25327 </div> 25328 </form> 25329 </div> 25330 25331 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 25332 hover:text-gray-600 transition-colors" aria-label="Schließen"> 25333 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 25334 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 25335<title>x</title></svg> 25336 </button> 25337 </div> 25338 </div> 25339 </template> 25340 </template> 25341 </div> 25342 </template> 25343 </div> 25344 25345<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4150" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4150,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"9909":"1","15378":"1"},"childProductsAlertStatus":{"9909":"0","15378":"0"},"indexMapping":"{\u0022163:15\u0022:9909,\u0022163:8\u0022:15378}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4150,"availabilityMessages":{"9909":"Lieferbar innerhalb von 3-5 Tagen","15378":"Download sofort verf\u00fcgbar"},"openAccess":{"4150":{"status":0},"9909":{"status":0},"15378":{"status":0}}}'> 25346 25347 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
25348 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 25349 <span x-html="optionsLabelText"></span> 25350 </p> 25351</div> </div> 25352 25353
25353<script> 25354 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 25355 try { 25356 const attributes = (config && config.attributes) ? config.attributes : null; 25357 if (!attributes) return []; 25358 let attr = null; 25359 if (Array.isArray(attributes)) { 25360 for (let i = 0; i < attributes.length; i++) { 25361 const a = attributes[i]; 25362 if (a && a.id == attrId) { 25363 attr = a; 25364 break; 25365 } 25366 } 25367 } else { 25368 attr = attributes[attrId]; 25369 } 25370 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 25371 } catch (e) { 25372 return []; 25373 } 25374 }; 25375 25376 function initConfigurableSwatchOptions_4150() { 25377 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["9909"]},{"id":"8","label":"PDF","products":["15378"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"9909":{"baseOldPrice":{"amount":23.271027037383},"oldPrice":{"amount":24.9},"basePrice":{"amount":23.271027037383},"finalPrice":{"amount":24.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15378":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"isApproxPrice":null},"productId":"4150","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"9909":{"163":"15"},"15378":{"163":"8"}},"salable":{"163":{"15":["9909"],"8":["15378"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"9909":"004277","15378":"004450"},"output":{"9909":"Kartoniert","15378":"PDF"},"original_name":{"9909":"","15378":""},"openaccess_license_link":{"9909":"","15378":""},"openaccess_license_name":{"9909":"","15378":""},"openaccess_external_link":{"9909":"","15378":""},"gpsr_safety_info":{"9909":"","15378":""},"description":{"9909":"\u00bbUeber das Recht des Volks zu einer Revolution\u00ab des N\u00fcrnberger Arztes und Kantianers Johann Benjamin Erhard ist ein Schl\u00fcsseltext der deutschen Revolutionstheorie um 1800 und ein Werk von besonderer ideengeschichtlicher Bedeutung. Als Klassiker im Feld der Menschenrechtstheorie ist das Buch unver\u00e4ndert diskussionsw\u00fcrdig.<br\/><br\/>Erhard z\u00e4hlt zu den Denkern der nachkantischen Philosophie, die ihre theoretischen \u00dcberlegungen nicht in einem systematischen Hauptwerk zusammengefasst haben. Seine wichtigsten Beitr\u00e4ge liegen in Briefen und Rezensionen vor. Seine politische Theorie hat er allerdings in der Revolutions-Schrift ausf\u00fchrlicher entwickelt. Nach der \u00dcbersetzung von \u00c9tienne de La Bo\u00e9ties Abhandlung \u00bbFreiwillige Knechtschaft\u00ab arbeitete Erhard 1793 zun\u00e4chst als Entgegnung auf La Bo\u00e9tie eine \u00bbPr\u00fcfung der Alleinherrschaft nach moralischen Prinzipien\u00ab f\u00fcr Wielands \u00bbNeuen Teutschen Merkur\u00ab aus. Sein Verleger Friedrich Carl Forberg urteilte dar\u00fcber: \u00bbIch kenne niemanden, der \u00fcber Gegenst\u00e4nde des Staatsrechts mit dem Tiefsinne, und dem mutigen Blicke philosophirt h\u00e4tte [\u2026].\u00ab <br\/>Die Revolutionsschrift setzt diese \u00dcberlegungen fort. Sie wurde nach ihrem Erscheinen 1795 in mehreren Staaten verboten und hat dennoch eine gr\u00f6\u00dfere Wirkung entfalten k\u00f6nnen: In Fichtes Rechtstheorie, Schillers Dramenwerk oder der politischen Philosophie der Fr\u00fchromantik finden sich Reaktionen auf Erhards Ausf\u00fchrungen.","15378":"\u00bbUeber das Recht des Volks zu einer Revolution\u00ab des N\u00fcrnberger Arztes und Kantianers Johann Benjamin Erhard ist ein Schl\u00fcsseltext der deutschen Revolutionstheorie um 1800 und ein Werk von besonderer ideengeschichtlicher Bedeutung. Als Klassiker im Feld der Menschenrechtstheorie ist das Buch unver\u00e4ndert diskussionsw\u00fcrdig.<br\/><br\/>Erhard z\u00e4hlt zu den Denkern der nachkantischen Philosophie, die ihre theoretischen \u00dcberlegungen nicht in einem systematischen Hauptwerk zusammengefasst haben. Seine wichtigsten Beitr\u00e4ge liegen in Briefen und Rezensionen vor. Seine politische Theorie hat er allerdings in der Revolutions-Schrift ausf\u00fchrlicher entwickelt. Nach der \u00dcbersetzung von \u00c9tienne de La Bo\u00e9ties Abhandlung \u00bbFreiwillige Knechtschaft\u00ab arbeitete Erhard 1793 zun\u00e4chst als Entgegnung auf La Bo\u00e9tie eine \u00bbPr\u00fcfung der Alleinherrschaft nach moralischen Prinzipien\u00ab f\u00fcr Wielands \u00bbNeuen Teutschen Merkur\u00ab aus. Sein Verleger Friedrich Carl Forberg urteilte dar\u00fcber: \u00bbIch kenne niemanden, der \u00fcber Gegenst\u00e4nde des Staatsrechts mit dem Tiefsinne, und dem mutigen Blicke philosophirt h\u00e4tte [\u2026].\u00ab <br\/>Die Revolutionsschrift setzt diese \u00dcberlegungen fort. Sie wurde nach ihrem Erscheinen 1795 in mehreren Staaten verboten und hat dennoch eine gr\u00f6\u00dfere Wirkung entfalten k\u00f6nnen: In Fichtes Rechtstheorie, Schillers Dramenwerk oder der politischen Philosophie der Fr\u00fchromantik finden sich Reaktionen auf Erhards Ausf\u00fchrungen."},"doi":{"9909":"","15378":"10.28937\/978-3-7873-4450-5"},"isbn":{"9909":"978-3-7873-4277-8","15378":"978-3-7873-4450-5"},"marketing_short_text":{"9909":"","15378":""},"recension_text":{"9909":"","15378":""},"language":{"9909":"","15378":""},"cover":{"9909":"Kartoniert","15378":""},"pages":{"9909":"XCVIII, 140 Seiten","15378":"172 Seiten"},"edition":{"9909":"","15378":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"9909":"Nein","15378":"Nein"},"copyright_year":{"9909":"","15378":""},"vlb_tix_link":{"9909":"https:\/\/neu.vlbtix.de\/products\/9783787342778?type=gtin","15378":""},"defaultValues":{"163":"15"}}; 25378 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 25379 25380 if (typeof window.amxnotif_wrap_attributes === 'function') { 25381 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 25382 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 25383 } 25384 25385 const configurableOptionsComponent = initConfigurableOptions( 25386 '4150', 25387 config 25388 ); 25389 const swatchOptionsComponent = initSwatchOptions( 25390 swatchConfig 25391 ); 25392 25393 // DWS - Configurable product preselect start 25394 const confProdPreSelect = () => { 25395 return { 25396 preselectQuerystringItems() { 25397 var data = {"id":"9909","output":"15"}; 25398 const urlQueryParams = new URLSearchParams(window.location.search); 25399 25400 this.$nextTick(() => { 25401 setTimeout(() => { 25402 const rootEl = this.$root || this.$el; 25403 if (!rootEl) return; 25404 25405 const applySelection = (attrCode, attrValue) => { 25406 if (attrValue === undefined || attrValue === null || attrValue === '') return; 25407 25408 const attributes = Object.values(this.optionConfig.attributes || {}); 25409 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 25410 25411 if (targetAttr) { 25412 const attrId = String(targetAttr.id); 25413 const optionVal = String(attrValue); 25414 25415 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 25416 25417 if (inputEl) { 25418 inputEl.click(); 25419 inputEl.dispatchEvent(new Event('change', { 25420 bubbles: true 25421 })); 25422 } else { 25423 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 25424 if (selectEl) { 25425 selectEl.value = optionVal; 25426 selectEl.dispatchEvent(new Event('change', { 25427 bubbles: true 25428 })); 25429 } 25430 } 25431 25432 this.changeOption(attrId, optionVal, false); 25433 } 25434 }; 25435 25436 if (data && typeof data === 'object') {
25437 Object.keys(data).forEach(key => applySelection(key, data[key])); 25438 } 25439 25440 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 25441 if (attribute && attribute.code) { 25442 let optionValue = urlQueryParams.get(attribute.code); 25443 if (optionValue) { 25444 let optionId = false; 25445 const attributes = Object.values(this.optionConfig.attributes || {}); 25446 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 25447 25448 let found = false; 25449 Object.values(targetAttr.options).map(option => { 25450 if (found === false && option.label === optionValue) { 25451 optionId = option.id; 25452 found = true; 25453 } 25454 }); 25455 25456 const attrId = String(targetAttr.id); 25457 let optionVal = String(optionValue); 25458 if (found) { 25459 optionVal = String(optionId); 25460 } 25461 25462 applySelection(attribute.code, optionVal); 25463 } 25464 } 25465 }); 25466 }, 100); 25467 }); 25468 } 25469 } 25470 }; 25471 // DWS - Configurable product preselect end 25472 25473 const result = Object.assign( 25474 configurableOptionsComponent, 25475 swatchOptionsComponent, { 25476 productId: '4150', 25477 productIndex: 0, 25478 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 25479 showSwatches: false, 25480 precalcOptions: {}, 25481 originalInit: configurableOptionsComponent.init, 25482 init() { 25483 try { 25484 this.precalcOptions = {}; 25485 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 25486 this.preselectQuerystringItems(); 25487 if (Array.isArray(attrSource)) { 25488 attrSource.forEach(attr => { 25489 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 25490 }); 25491 } else if (attrSource && typeof attrSource === 'object') { 25492 Object.keys(attrSource).forEach(id => { 25493 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 25494 }); 25495 } 25496 } catch (e) { 25497 console.error('Pre-calc error:', e); 25498 } 25499 25500 if (typeof this.originalInit === 'function') { 25501 this.originalInit(); 25502 } 25503 25504 try { 25505 this.initShowSwatchesIntersect(); 25506 } catch (e) { 25507 console.error('intersect error:', e); 25508 } 25509 }, 25510 25511 updateGallery() { 25512 if (!this.productIndex) return; 25513 25514 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 25515 method: 'GET', 25516 headers: { 25517 'Content-Type': 'application/json', 25518 'X-Requested-With': 'XMLHttpRequest' 25519 } 25520 }) 25521 .then(response => response.json()) 25522 .then(data => { 25523 if (data && data.medium) { 25524 window.dispatchEvent(new CustomEvent("update-gallery-4150", { 25525 detail: data.medium 25526 })); 25527 } 25528 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 25529 }, 25530 25531 25532 initShowSwatchesIntersect() { 25533 const observer = new IntersectionObserver(entries => { 25534 if (entries[0].isIntersecting) { 25535 this.showSwatches = true; 25536 observer.disconnect(); 25537 } 25538 }, { 25539 rootMargin: '512px' 25540 }); 25541 observer.observe(this.$el); 25542 }, 25543 getOptions(attrId) { 25544 return this.precalcOptions[attrId] || []; 25545 }, 25546 getOptionsByAttrId() { 25547 return this.getOptions(this.$el.dataset.attributeId); 25548 }, 25549 _getItemId() { 25550 if (this.item && this.item.id) return this.item.id; 25551 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 25552 }, 25553 getSwatchOptionHtmlId() { 25554 const itemId = this._getItemId(); 25555 return itemId ? this.$id(`attribute-option-4150-${itemId}`) : ''; 25556 }, 25557 getSwatchOptionHtmlIdGroup() { 25558 const itemId = this._getItemId(); 25559 return itemId ? [`attribute-option-4150-${itemId}`] : []; 25560 }, 25561 getAttributeSwatchData(attributeId) { 25562 const data = Object.assign({}, this.swatchConfig[attributeId]); 25563 if (data['additional_data']) { 25564 try { 25565 data['details'] = JSON.parse(data['additional_data']); 25566 } catch (e) { 25567 data['details'] = {}; 25568 } 25569 } 25570 return data; 25571 }, 25572 getSwatchType(attributeId, optionId) { 25573 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 25574 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 25575 } 25576 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 25577 this.swatchConfig[attributeId].details.swatch_input_type : 25578 "empty"; 25579 if (type === 'visual') { 25580 const config = this.swatchConfig[attributeId]; 25581 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 25582 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 25583 } 25584 // Fallback to first option type 25585 for (const oId in config) { 25586 if (config[oId] && typeof config[oId].type !== 'undefined') { 25587 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 25588 } 25589 } 25590 } 25591 return type; 25592 }, 25593 mapSwatchTypeNumberToTypeCode(type) { 25594 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 25595 }, 25596 isTextSwatch() { 25597 const itemId = this._getItemId(); 25598 if (!this.$el || !itemId) return false;
25599 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25600 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 25601 }, 25602 25603 getSwatchText() { 25604 const itemId = this._getItemId(); 25605 if (this.item) return this.item.label || ''; 25606 if (!this.$el || !itemId) return ''; 25607 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25608 const options = attrId ? this.getOptions(attrId) : []; 25609 const opt = options.find(o => o.id == itemId); 25610 return opt ? opt.label : ''; 25611 }, 25612 getSwatchBackgroundStyle() { 25613 const itemId = this._getItemId(); 25614 if (!this.$el || !itemId) return ''; 25615 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25616 if (!attrId) return ''; 25617 const type = this.getSwatchType(attrId, itemId); 25618 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 25619 this.swatchConfig[attrId][itemId] : 25620 null; 25621 if (!swatchData) return ''; 25622 if (type === "color") return 'background-color:' + swatchData.value; 25623 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 25624 return ''; 25625 }, 25626 swatchOptionClasses() { 25627 const itemId = this._getItemId(); 25628 if (!this.$el || !itemId) return {}; 25629 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25630 return { 25631 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 25632 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 25633 'w-6 h-6': !this.isTextSwatch() 25634 } 25635 }, 25636 25637 onFocusSwatchItem() { 25638 const itemId = this._getItemId(); 25639 if (itemId) this.focusedLabel = itemId; 25640 }, 25641 onChangeOption() { 25642 const itemId = this._getItemId(); 25643 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 25644 if (attrId && itemId) this.changeOption(attrId, itemId); 25645 }, 25646 changeOption(attributeId, value) { 25647 if (value === '') { 25648 return; 25649 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 25650 } else { 25651 this.selectedValues[attributeId] = value; 25652 } 25653 25654 this.findSimpleIndex(); 25655 this.findAllowedAttributeOptions(); 25656 this.updatePrices(); 25657 this.updateGallery(); 25658 25659 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 25660 this.findProductIdsForPartialSelection(this.selectedValues) : []; 25661 25662 const eventDetail = { 25663 productId: this.productId, 25664 optionId: attributeId, 25665 value: value, 25666 productIndex: this.productIndex || 0, 25667 selectedValues: this.selectedValues, 25668 candidates: candidates, 25669 sourceElement: this.$el 25670 }; 25671 25672 // Dispatch for Amasty 25673 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 25674 detail: eventDetail 25675 })); 25676 25677 // Dispatch for Hyva listing 25678 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 25679 detail: eventDetail 25680 })); 25681 }, 25682 25683 25684 clearOptionIfActive() { 25685 const itemId = this._getItemId(); 25686 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 25687 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 25688 this.changeOption(attrId, ''); 25689 25690 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 25691 if (!input && this.$el?.querySelector) { 25692 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 25693 } 25694 if (!input && this.$el?.closest) { 25695 const root = this.$el.closest('[data-product-id]') || this.$el; 25696 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 25697 } 25698 if (input) { 25699 input.checked = false;
25700 } 25701 } 25702 }, 25703 get optionIsEnabled() { 25704 const itemId = this._getItemId(); 25705 if (!this.$el || !itemId) return true; 25706 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25707 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 25708 return !!allowedOptions.find(opt => opt.id == itemId); 25709 }, 25710 get isSelected() { 25711 const itemId = this._getItemId(); 25712 if (!this.$el || !itemId) return false; 25713 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25714 return attrId ? (this.selectedValues[attrId] == itemId) : false; 25715 }, 25716 get isSwatchRequired() { 25717 if (!this.$el) return false; 25718 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25719 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 25720 }, 25721 focusedLabel: false, 25722 activeTooltipItem: false, 25723 tooltipPositionElement: false,
25724 setActiveTooltipItem() { 25725 const itemId = this._getItemId(); 25726 if (!this.$el || !itemId) return; 25727 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 25728 this.activeTooltipItem = { 25729 attribute: attrId, 25730 item: itemId, 25731 index: 0 25732 }; 25733 this.tooltipPositionElement = this.$event ? this.$event.target : null; 25734 }, 25735 unsetActiveTooltipItem() { 25736 this.activeTooltipItem = false; 25737 } 25738 }, 25739 confProdPreSelect() 25740 ); 25741 25742 if (result.optionConfig && result.optionConfig.attributes) { 25743 const attributes = result.optionConfig.attributes; 25744 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 25745 let source = attributes; 25746 if (Array.isArray(attributes)) { 25747 source = {}; 25748 attributes.forEach(attr => { 25749 if (attr && attr.id) source[attr.id] = attr; 25750 }); 25751 } 25752 const values = Object.values(source); 25753 const wrapper = Object.assign(values, source); 25754 Object.defineProperty(wrapper, '__amxnotifWrapped', { 25755 value: true, 25756 enumerable: false 25757 }); 25758 result.optionConfig.attributes = wrapper; 25759 } 25760 } 25761 25762 return result; 25763 } 25764 25765 window.addEventListener('alpine:init', () => { 25766 Alpine.data('initConfigurableSwatchOptions_4150', initConfigurableSwatchOptions_4150); 25767 }, { 25768 once: true 25769 }); 25770 </script>
25770 25771 25772 <div x-data="initConfigurableSwatchOptions_4150" x-defer="intersect"> 25773 <div class="pagebuilder-home-hidden"> 25774 25775 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 25776 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 25777 <template x-if="showSwatches"> 25778 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4150-163" role="radiogroup" aria-label="Einband"> 25779 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 25780 <div :data-option-id="item.id" style="display: contents"> 25781 <div x-id="getSwatchOptionHtmlIdGroup"> 25782 <template x-if="optionIsEnabled"> 25783 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
25783self="unsetActiveTooltipItem"> 25784 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4150-163"> 25785 <div> 25786 <template x-if="isTextSwatch"> 25787 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 25788 </template> 25789 <template x-if="!optionIsActive(163, item.id)"> 25790 <div> 25791 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 25792 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 25793 </svg> 25794 </div> 25795 </template> 25796 </div> 25797 </label> 25798 </template> 25799</div> </div> 25800 </template> 25801 </div> 25802 </template> 25803 </div> 25804 </div> 25805 </div> 25806 </div> 25807 25808 <div class="meta py-4 pagebuilder-home-hidden"> 25809 <div x-data="initMarketingShortText_4150()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 25810 <!-- Marketing short text --> 25811 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 25812 </div> 25813 25814 <!-- Short description --> 25815 <div class="short-description"> 25816 »Ueber das Recht des Volks zu einer Revolution« des Nürnberger Arztes und Kantianers Johann Benjamin Erhard ist ein Schlüsseltext der deutschen Revolutionstheorie um 1800 und ein Werk von ... <a href="https://meiner.de/fmv_de/a-ber-das-recht-des-volks-zu-einer-revolution-13216" class="underline">mehr</a> 25817 </div> 25818 </div> 25819 25820 <!-- Series --> 25821 <div class="mb-1"> 25822 <span class="sr-only">Reihe:</span> 25823 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 25824 <span>Philosophische Bibliothek</span> 25825 </a> 25826 771 </div> 25827 25828 25829 <div class="mb-1"> 25830 <span x-data="initEditionText_4150()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 25831 <!-- Marketing short text --> 25832 <span class="edition-text" x-html="editionText"></span> 2026, XCVIII, 140 Seiten </span> 25833 </div> 25834 25835 </div> 25836 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 25837 25838 <div class="justify-end" x-data="initPriceBox()" @update-prices-4150.window="updatePrice($event.detail);"> 25839 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4150" data-price-box="product-id-4150"><span class="normal-price"> 25840 <span x-data x-id="['product\u002Dprice\u002D4150']" class="price-container price-final_price tax weee"> 25841 <span class="price-label">Ab</span> 25842 <span class="approx-price">ca. </span>
25843 <span :id="$id('product\u002Dprice\u002D4150')" data-price-amount="18.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">18,99 €</span></span> 25844 </span> 25845</span> 25846 25847 25848</div> </div> 25849 25850 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 25851 <div class="open-access-container open-access-container-4150 flex mt-4 ml-auto sm:mt-0 hidden"> 25852 <div class="text-gray-700"> 25853 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 25854 <a href="" target="_blank" class="open-access-external-link m-auto "> 25855 Kostenlos online lesen </a> 25856 </button> 25857 </div> 25858 </div> 25859 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Über das Recht des Volks zu einer Revolution" aria-label="In den Warenkorb Über das Recht des Volks zu einer Revolution" data-addto="cart"> 25860 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 25861 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 25862</svg> 25863 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 25864 In den Warenkorb </span> 25865 </button> 25866 25867<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4150)" aria-label="Zur Wunschliste hinzufügen Über das Recht des Volks zu einer Revolution" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 25868 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 25869 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 25870</svg> 25871</button> 25872 </div> 25873 </div> 25874 </div> 25875
25875<script> 25876 function initMarketingShortText_4150() { 25877 var marketingShortTextConfig = {}; 25878 if (typeof window.initConfigurableSwatchOptions_4150 === "function") { 25879 var fullConfig = window.initConfigurableSwatchOptions_4150().optionConfig 25880 var marketingShortTextConfig = fullConfig.marketing_short_text; 25881 } 25882 return { 25883 marketingShortText: '', 25884 config: marketingShortTextConfig, 25885 productId: '4150', 25886 getMarketingShortText(detail) { 25887 this.marketingShortText = detail.productIndex ? 25888 this.config[detail.productIndex] : 25889 null; 25890 }, 25891 eventListeners: { 25892 ['@listing-configurable-selection-changed.window'](event) { 25893 if (this.productId == event.detail.productId) { 25894 this.getMarketingShortText(event.detail); 25895 } 25896 25897 } 25898 } 25899 } 25900 } 25901 25902 function initEditionText_4150() { 25903 var editionTextConfig = {}; 25904 if (typeof window.initConfigurableSwatchOptions_4150 === "function") { 25905 var fullConfig = window.initConfigurableSwatchOptions_4150().optionConfig 25906 var editionTextConfig = fullConfig.edition; 25907 } 25908 return { 25909 editionText: '', 25910 config: editionTextConfig, 25911 productId: '4150', 25912 getEditionText(detail) { 25913 this.editionText = detail.productIndex ? 25914 this.config[detail.productIndex] : 25915 null; 25916 }, 25917 eventListeners: { 25918 ['@listing-configurable-selection-changed.window'](event) { 25919 if (this.productId == event.detail.productId) { 25920 this.getEditionText(event.detail); 25921 } 25922 25923 } 25924 } 25925 } 25926 } 25927 </script>
25927 25928 </form> 25929 25930 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46712/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21550"> 25931 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46712"> 25932 <a href="https://meiner.de/fmv_de/von-den-heroischen-leidenschaften-21550" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 25933 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46712.window="$el.src = $event.detail" alt="Von den heroischen Leidenschaften" title="Von den heroischen Leidenschaften" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351411_1.jpg" :style="{ 25934 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 25935 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 25936 }"> 25937 </a> 25938 <div class="product-info flex flex-col flex-grow "> 25939 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 25940 <div class="mb-2 text-sm text-gray-500 font-medium"> 25941 <a href="https://meiner.de/fmv_de/person/Giordano-Bruno-3772/" class="mb-2"> 25942 Giordano Bruno </a> 25943 </div> 25944 <a class="product-item-link" href="https://meiner.de/fmv_de/von-den-heroischen-leidenschaften-21550"> 25945 Von den heroischen Leidenschaften </a> 25946 </div> 25947 25948 <div x-data="initEditionText_46712()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 25949 <!-- Marketing short text --> 25950 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 25951 </div> 25952 </div> 25953 25954 <div class="py-1 grid mb-4 "> 25955 25956 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46712,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46712,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46694":"1"},"childProductsAlertStatus":{"46694":"0"},"indexMapping":{"163:11":46694},"availabilityMessages":{"46694":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46712":{"status":0},"46694":{"status":0}}},"availabilityMessages":{"46694":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46712":{"status":0},"46694":{"status":0}}}'> 25957 <template x-if="containerVisible"> 25958 <!-- Popup Trigger --> 25959 <div> 25960 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 25961 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
25962 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 25963 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 25964<title>bell</title></svg> 25965</span> 25966 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 25967 25968 <!-- Popup Modal --> 25969 <template x-if="showModal"> 25970 <template x-teleport=".page-wrapper"> 25971 <div x-cloak class="fixed inset-0 flex items-center justify-center 25972 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 25973 <div class="relative bg-white rounded-lg shadow-xl 25974 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 25975 <div class="p-6"> 25976 <!-- Subscription Form for Popup --> 25977 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 25978 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 25979 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 25980 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 25981 25982 <div class="flex flex-col gap-3"> 25983 <div class="flex-grow grow"> 25984 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 25985 shadow-xs focus:outline-none focus:outline-hidden 25986 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 25987 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 25988 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 25989 </div> 25990 <input type="hidden" name="product_id" :value="currentProductId"> 25991 <input type="hidden" name="type" value="email"> 25992 25993 25994 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 25995 25996 <div class="amxnotif_guest_action"> 25997 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 25998 rounded-md focus:outline-none 25999 focus:outline-hidden focus:ring-2 26000 focus:ring-offset-2 disabled:opacity-50 26001 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 26002 Benachrichtigen </button> 26003 </div> 26004 </div> 26005 26006 <div class="flex items-start pt-2"> 26007 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 26008 text-blue-600 border-gray-300 rounded-sm"> 26009 <label class="amxnotif-stock-gdrp-label cursor-pointer 26010 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 26011 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 26012 </div> 26013 </form> 26014 </div> 26015 26016 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 26017 hover:text-gray-600 transition-colors" aria-label="Schließen"> 26018 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 26019 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 26020<title>x</title></svg> 26021 </button> 26022 </div> 26023 </div> 26024 </template> 26025 </template> 26026 </div> 26027 </template> 26028 </div> 26029 26030<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46712" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46712,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46694":"1"},"childProductsAlertStatus":{"46694":"0"},"indexMapping":"{\u0022163:11\u0022:46694}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46712,"availabilityMessages":{"46694":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46712":{"status":0}
26030,"46694":{"status":0}}}'> 26031 26032 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 26033 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 26034 <span x-html="optionsLabelText"></span> 26035 </p> 26036</div> </div> 26037 26038
26038<script> 26039 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 26040 try { 26041 const attributes = (config && config.attributes) ? config.attributes : null; 26042 if (!attributes) return []; 26043 let attr = null; 26044 if (Array.isArray(attributes)) { 26045 for (let i = 0; i < attributes.length; i++) { 26046 const a = attributes[i]; 26047 if (a && a.id == attrId) { 26048 attr = a; 26049 break; 26050 } 26051 } 26052 } else { 26053 attr = attributes[attrId]; 26054 } 26055 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 26056 } catch (e) { 26057 return []; 26058 } 26059 }; 26060 26061 function initConfigurableSwatchOptions_46712() { 26062 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["46694"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46694":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":91.588784046729},"finalPrice":{"amount":98},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":82.352940176471},"finalPrice":{"amount":98},"isApproxPrice":null},"productId":"46712","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46694":{"163":"11"}},"salable":{"163":{"11":["46694"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46694":"005141"},"output":{"46694":"Gebunden"},"original_name":{"46694":"De gl\u2019heroici furori"},"openaccess_license_link":{"46694":""},"openaccess_license_name":{"46694":""},"openaccess_external_link":{"46694":""},"gpsr_safety_info":{"46694":""},"description":{"46694":"Die Heroischen Leidenschaften, \u00bbDe gl\u2019heroici furori\u00ab, sind der letzte der in italienischer Sprache geschriebenen Dialoge Brunos, die s\u00e4mtlich zwischen 1583 und 1585 in England verfasst wurden. Sie k\u00f6nnen nicht nur als H\u00f6he- und Kulminationspunkt des brunianischen \u0152uvres insgesamt gelten, sondern zugleich als ein Werk, in dem sich wie in einem Brennspiegel Philosopheme des ausgehenden Mittelalters und der Fr\u00fchen Neuzeit b\u00fcndeln und in neue Konstellationen treten.<br\/><br\/>Der Text dieses Bandes folgt seitenidentisch Bd. 7 der Ausgabe \u00bbGiordano Bruno Werke\u00ab, herausgegeben von Thomas Leinkauf."},"doi":{"46694":""},"isbn":{"46694":"978-3-7873-5141-1"},"marketing_short_text":{"46694":""},"recension_text":{"46694":""},"language":{"46694":""},"cover":{"46694":"Gebunden"},"pages":{"46694":"CXL, 711 Seiten."},"edition":{"46694":""},"pod":{"46694":"Nein"},"copyright_year":{"46694":""},"vlb_tix_link":{"46694":"https:\/\/neu.vlbtix.de\/products\/9783787351411?type=gtin"},"defaultValues":{"163":"11"}}; 26063 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 26064 26065 if (typeof window.amxnotif_wrap_attributes === 'function') { 26066 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 26067 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 26068 } 26069 26070 const configurableOptionsComponent = initConfigurableOptions( 26071 '46712', 26072 config 26073 ); 26074 const swatchOptionsComponent = initSwatchOptions( 26075 swatchConfig 26076 ); 26077 26078 // DWS - Configurable product preselect start 26079 const confProdPreSelect = () => { 26080 return { 26081 preselectQuerystringItems() { 26082 var data = {"id":"46694","output":"11"}; 26083 const urlQueryParams = new URLSearchParams(window.location.search); 26084 26085 this.$nextTick(() => { 26086 setTimeout(() => { 26087 const rootEl = this.$root || this.$el; 26088 if (!rootEl) return; 26089 26090 const applySelection = (attrCode, attrValue) => { 26091 if (attrValue === undefined || attrValue === null || attrValue === '') return; 26092 26093 const attributes = Object.values(this.optionConfig.attributes || {}); 26094 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 26095 26096 if (targetAttr) { 26097 const attrId = String(targetAttr.id); 26098 const optionVal = String(attrValue); 26099 26100 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 26101 26102 if (inputEl) { 26103 inputEl.click(); 26104 inputEl.dispatchEvent(new Event('change', { 26105 bubbles: true 26106 })); 26107 } else { 26108 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 26109 if (selectEl) { 26110 selectEl.value = optionVal; 26111 selectEl.dispatchEvent(new Event('change', { 26112 bubbles: true 26113 })); 26114 } 26115 } 26116 26117 this.changeOption(attrId, optionVal, false); 26118 } 26119 }; 26120 26121 if (data && typeof data === 'object') {
26122 Object.keys(data).forEach(key => applySelection(key, data[key])); 26123 } 26124 26125 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 26126 if (attribute && attribute.code) { 26127 let optionValue = urlQueryParams.get(attribute.code); 26128 if (optionValue) { 26129 let optionId = false; 26130 const attributes = Object.values(this.optionConfig.attributes || {}); 26131 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 26132 26133 let found = false; 26134 Object.values(targetAttr.options).map(option => { 26135 if (found === false && option.label === optionValue) { 26136 optionId = option.id; 26137 found = true; 26138 } 26139 }); 26140 26141 const attrId = String(targetAttr.id); 26142 let optionVal = String(optionValue); 26143 if (found) { 26144 optionVal = String(optionId); 26145 } 26146 26147 applySelection(attribute.code, optionVal); 26148 } 26149 } 26150 }); 26151 }, 100); 26152 }); 26153 } 26154 } 26155 }; 26156 // DWS - Configurable product preselect end 26157 26158 const result = Object.assign( 26159 configurableOptionsComponent, 26160 swatchOptionsComponent, { 26161 productId: '46712', 26162 productIndex: 0, 26163 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 26164 showSwatches: false, 26165 precalcOptions: {}, 26166 originalInit: configurableOptionsComponent.init, 26167 init() { 26168 try { 26169 this.precalcOptions = {}; 26170 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 26171 this.preselectQuerystringItems(); 26172 if (Array.isArray(attrSource)) { 26173 attrSource.forEach(attr => { 26174 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 26175 }); 26176 } else if (attrSource && typeof attrSource === 'object') { 26177 Object.keys(attrSource).forEach(id => { 26178 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 26179 }); 26180 } 26181 } catch (e) { 26182 console.error('Pre-calc error:', e); 26183 } 26184 26185 if (typeof this.originalInit === 'function') { 26186 this.originalInit(); 26187 } 26188 26189 try { 26190 this.initShowSwatchesIntersect(); 26191 } catch (e) { 26192 console.error('intersect error:', e); 26193 } 26194 }, 26195 26196 updateGallery() { 26197 if (!this.productIndex) return; 26198 26199 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 26200 method: 'GET', 26201 headers: { 26202 'Content-Type': 'application/json', 26203 'X-Requested-With': 'XMLHttpRequest' 26204 } 26205 }) 26206 .then(response => response.json()) 26207 .then(data => { 26208 if (data && data.medium) { 26209 window.dispatchEvent(new CustomEvent("update-gallery-46712", { 26210 detail: data.medium 26211 })); 26212 } 26213 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 26214 }, 26215 26216 26217 initShowSwatchesIntersect() { 26218 const observer = new IntersectionObserver(entries => { 26219 if (entries[0].isIntersecting) { 26220 this.showSwatches = true; 26221 observer.disconnect(); 26222 } 26223 }, { 26224 rootMargin: '512px' 26225 }); 26226 observer.observe(this.$el); 26227 }, 26228 getOptions(attrId) { 26229 return this.precalcOptions[attrId] || []; 26230 }, 26231 getOptionsByAttrId() { 26232 return this.getOptions(this.$el.dataset.attributeId); 26233 }, 26234 _getItemId() { 26235 if (this.item && this.item.id) return this.item.id; 26236 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 26237 }, 26238 getSwatchOptionHtmlId() { 26239 const itemId = this._getItemId(); 26240 return itemId ? this.$id(`attribute-option-46712-${itemId}`) : ''; 26241 }, 26242 getSwatchOptionHtmlIdGroup() { 26243 const itemId = this._getItemId(); 26244 return itemId ? [`attribute-option-46712-${itemId}`] : []; 26245 }, 26246 getAttributeSwatchData(attributeId) { 26247 const data = Object.assign({}, this.swatchConfig[attributeId]); 26248 if (data['additional_data']) { 26249 try { 26250 data['details'] = JSON.parse(data['additional_data']); 26251 } catch (e) { 26252 data['details'] = {}; 26253 } 26254 } 26255 return data; 26256 }, 26257 getSwatchType(attributeId, optionId) { 26258 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 26259 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 26260 } 26261 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 26262 this.swatchConfig[attributeId].details.swatch_input_type : 26263 "empty"; 26264 if (type === 'visual') { 26265 const config = this.swatchConfig[attributeId]; 26266 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 26267 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 26268 } 26269 // Fallback to first option type 26270 for (const oId in config) { 26271 if (config[oId] && typeof config[oId].type !== 'undefined') { 26272 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 26273 } 26274 } 26275 } 26276 return type; 26277 }, 26278 mapSwatchTypeNumberToTypeCode(type) { 26279 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 26280 }, 26281 isTextSwatch() { 26282 const itemId = this._getItemId(); 26283 if (!this.$el || !itemId) return false;
26284 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26285 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 26286 }, 26287 26288 getSwatchText() { 26289 const itemId = this._getItemId(); 26290 if (this.item) return this.item.label || ''; 26291 if (!this.$el || !itemId) return ''; 26292 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26293 const options = attrId ? this.getOptions(attrId) : []; 26294 const opt = options.find(o => o.id == itemId); 26295 return opt ? opt.label : ''; 26296 }, 26297 getSwatchBackgroundStyle() { 26298 const itemId = this._getItemId(); 26299 if (!this.$el || !itemId) return ''; 26300 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26301 if (!attrId) return ''; 26302 const type = this.getSwatchType(attrId, itemId); 26303 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 26304 this.swatchConfig[attrId][itemId] : 26305 null; 26306 if (!swatchData) return ''; 26307 if (type === "color") return 'background-color:' + swatchData.value; 26308 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 26309 return ''; 26310 }, 26311 swatchOptionClasses() { 26312 const itemId = this._getItemId(); 26313 if (!this.$el || !itemId) return {}; 26314 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26315 return { 26316 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 26317 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 26318 'w-6 h-6': !this.isTextSwatch() 26319 } 26320 }, 26321 26322 onFocusSwatchItem() { 26323 const itemId = this._getItemId(); 26324 if (itemId) this.focusedLabel = itemId; 26325 }, 26326 onChangeOption() { 26327 const itemId = this._getItemId(); 26328 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 26329 if (attrId && itemId) this.changeOption(attrId, itemId); 26330 }, 26331 changeOption(attributeId, value) { 26332 if (value === '') { 26333 return; 26334 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 26335 } else { 26336 this.selectedValues[attributeId] = value; 26337 } 26338 26339 this.findSimpleIndex(); 26340 this.findAllowedAttributeOptions(); 26341 this.updatePrices(); 26342 this.updateGallery(); 26343 26344 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 26345 this.findProductIdsForPartialSelection(this.selectedValues) : []; 26346 26347 const eventDetail = { 26348 productId: this.productId, 26349 optionId: attributeId, 26350 value: value, 26351 productIndex: this.productIndex || 0, 26352 selectedValues: this.selectedValues, 26353 candidates: candidates, 26354 sourceElement: this.$el 26355 }; 26356 26357 // Dispatch for Amasty 26358 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 26359 detail: eventDetail 26360 })); 26361 26362 // Dispatch for Hyva listing 26363 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 26364 detail: eventDetail 26365 })); 26366 }, 26367 26368 26369 clearOptionIfActive() { 26370 const itemId = this._getItemId(); 26371 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 26372 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 26373 this.changeOption(attrId, ''); 26374 26375 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 26376 if (!input && this.$el?.querySelector) { 26377 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 26378 } 26379 if (!input && this.$el?.closest) { 26380 const root = this.$el.closest('[data-product-id]') || this.$el; 26381 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 26382 } 26383 if (input) { 26384 input.checked = false;
26385 } 26386 } 26387 }, 26388 get optionIsEnabled() { 26389 const itemId = this._getItemId(); 26390 if (!this.$el || !itemId) return true; 26391 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26392 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 26393 return !!allowedOptions.find(opt => opt.id == itemId); 26394 }, 26395 get isSelected() { 26396 const itemId = this._getItemId(); 26397 if (!this.$el || !itemId) return false; 26398 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26399 return attrId ? (this.selectedValues[attrId] == itemId) : false; 26400 }, 26401 get isSwatchRequired() { 26402 if (!this.$el) return false; 26403 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26404 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 26405 }, 26406 focusedLabel: false, 26407 activeTooltipItem: false, 26408 tooltipPositionElement: false,
26409 setActiveTooltipItem() { 26410 const itemId = this._getItemId(); 26411 if (!this.$el || !itemId) return; 26412 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26413 this.activeTooltipItem = { 26414 attribute: attrId, 26415 item: itemId, 26416 index: 0 26417 }; 26418 this.tooltipPositionElement = this.$event ? this.$event.target : null; 26419 }, 26420 unsetActiveTooltipItem() { 26421 this.activeTooltipItem = false; 26422 } 26423 }, 26424 confProdPreSelect() 26425 ); 26426 26427 if (result.optionConfig && result.optionConfig.attributes) { 26428 const attributes = result.optionConfig.attributes; 26429 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 26430 let source = attributes; 26431 if (Array.isArray(attributes)) { 26432 source = {}; 26433 attributes.forEach(attr => { 26434 if (attr && attr.id) source[attr.id] = attr; 26435 }); 26436 } 26437 const values = Object.values(source); 26438 const wrapper = Object.assign(values, source); 26439 Object.defineProperty(wrapper, '__amxnotifWrapped', { 26440 value: true, 26441 enumerable: false 26442 }); 26443 result.optionConfig.attributes = wrapper; 26444 } 26445 } 26446 26447 return result; 26448 } 26449 26450 window.addEventListener('alpine:init', () => { 26451 Alpine.data('initConfigurableSwatchOptions_46712', initConfigurableSwatchOptions_46712); 26452 }, { 26453 once: true 26454 }); 26455 </script>
26455 26456 26457 <div x-data="initConfigurableSwatchOptions_46712" x-defer="intersect"> 26458 <div class="pagebuilder-home-hidden"> 26459 26460 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 26461 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 26462 <template x-if="showSwatches"> 26463 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46712-163" role="radiogroup" aria-label="Einband"> 26464 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 26465 <div :data-option-id="item.id" style="display: contents"> 26466 <div x-id="getSwatchOptionHtmlIdGroup"> 26467 <template x-if="optionIsEnabled"> 26468 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
26468self="unsetActiveTooltipItem"> 26469 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46712-163"> 26470 <div> 26471 <template x-if="isTextSwatch"> 26472 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 26473 </template> 26474 <template x-if="!optionIsActive(163, item.id)"> 26475 <div> 26476 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 26477 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 26478 </svg> 26479 </div> 26480 </template> 26481 </div> 26482 </label> 26483 </template> 26484</div> </div> 26485 </template> 26486 </div> 26487 </template> 26488 </div> 26489 </div> 26490 </div> 26491 </div> 26492 26493 <div class="meta py-4 pagebuilder-home-hidden"> 26494 <div x-data="initMarketingShortText_46712()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 26495 <!-- Marketing short text --> 26496 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 26497 </div> 26498 26499 <!-- Short description --> 26500 <div class="short-description"> 26501 Die Heroischen Leidenschaften, »De gl’heroici furori«, sind der letzte der in italienischer Sprache geschriebenen Dialoge Brunos, die sämtlich zwischen 1583 und 1585 in England verfasst wurden. ... <a href="https://meiner.de/fmv_de/von-den-heroischen-leidenschaften-21550" class="underline">mehr</a> 26502 </div> 26503 </div> 26504 26505 <!-- Series --> 26506 <div class="mb-1"> 26507 <span class="sr-only">Reihe:</span> 26508 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 26509 <span>Philosophische Bibliothek</span> 26510 </a> 26511 796 </div> 26512 26513 26514 <div class="mb-1"> 26515 <span x-data="initEditionText_46712()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 26516 <!-- Marketing short text --> 26517 <span class="edition-text" x-html="editionText"></span> 2026, CXL, 711 Seiten. </span> 26518 </div> 26519 26520 </div> 26521 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 26522 26523 <div class="justify-end" x-data="initPriceBox()" @update-prices-46712.window="updatePrice($event.detail);"> 26524 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46712" data-price-box="product-id-46712"><span class="normal-price"> 26525 <span x-data x-id="['product\u002Dprice\u002D46712']" class="price-container price-final_price tax weee"> 26526 <span class="price-label">Ab</span> 26527 <span class="approx-price">ca. </span>
26528 <span :id="$id('product\u002Dprice\u002D46712')" data-price-amount="98" data-price-type="finalPrice" class="price-wrapper "><span class="price">98,00 €</span></span> 26529 </span> 26530</span> 26531 26532 26533</div> </div> 26534 26535 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 26536 <div class="open-access-container open-access-container-46712 flex mt-4 ml-auto sm:mt-0 hidden"> 26537 <div class="text-gray-700"> 26538 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 26539 <a href="" target="_blank" class="open-access-external-link m-auto "> 26540 Kostenlos online lesen </a> 26541 </button> 26542 </div> 26543 </div> 26544 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Von den heroischen Leidenschaften" aria-label="In den Warenkorb Von den heroischen Leidenschaften" data-addto="cart"> 26545 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 26546 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 26547</svg> 26548 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 26549 In den Warenkorb </span> 26550 </button> 26551 26552<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46712)" aria-label="Zur Wunschliste hinzufügen Von den heroischen Leidenschaften" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 26553 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 26554 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 26555</svg> 26556</button> 26557 </div> 26558 </div> 26559 </div> 26560
26560<script> 26561 function initMarketingShortText_46712() { 26562 var marketingShortTextConfig = {}; 26563 if (typeof window.initConfigurableSwatchOptions_46712 === "function") { 26564 var fullConfig = window.initConfigurableSwatchOptions_46712().optionConfig 26565 var marketingShortTextConfig = fullConfig.marketing_short_text; 26566 } 26567 return { 26568 marketingShortText: '', 26569 config: marketingShortTextConfig, 26570 productId: '46712', 26571 getMarketingShortText(detail) { 26572 this.marketingShortText = detail.productIndex ? 26573 this.config[detail.productIndex] : 26574 null; 26575 }, 26576 eventListeners: { 26577 ['@listing-configurable-selection-changed.window'](event) { 26578 if (this.productId == event.detail.productId) { 26579 this.getMarketingShortText(event.detail); 26580 } 26581 26582 } 26583 } 26584 } 26585 } 26586 26587 function initEditionText_46712() { 26588 var editionTextConfig = {}; 26589 if (typeof window.initConfigurableSwatchOptions_46712 === "function") { 26590 var fullConfig = window.initConfigurableSwatchOptions_46712().optionConfig 26591 var editionTextConfig = fullConfig.edition; 26592 } 26593 return { 26594 editionText: '', 26595 config: editionTextConfig, 26596 productId: '46712', 26597 getEditionText(detail) { 26598 this.editionText = detail.productIndex ? 26599 this.config[detail.productIndex] : 26600 null; 26601 }, 26602 eventListeners: { 26603 ['@listing-configurable-selection-changed.window'](event) { 26604 if (this.productId == event.detail.productId) { 26605 this.getEditionText(event.detail); 26606 } 26607 26608 } 26609 } 26610 } 26611 } 26612 </script>
26612 26613 </form> 26614 26615 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46711/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21548"> 26616 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46711"> 26617 <a href="https://meiner.de/fmv_de/das-aschermittwochsmahl-21548" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 26618 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46711.window="$el.src = $event.detail" alt="Das Aschermittwochsmahl" title="Das Aschermittwochsmahl" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351404_1.jpg" :style="{ 26619 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 26620 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 26621 }"> 26622 </a> 26623 <div class="product-info flex flex-col flex-grow "> 26624 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 26625 <div class="mb-2 text-sm text-gray-500 font-medium"> 26626 <a href="https://meiner.de/fmv_de/person/Giordano-Bruno-3772/" class="mb-2"> 26627 Giordano Bruno </a> 26628 </div> 26629 <a class="product-item-link" href="https://meiner.de/fmv_de/das-aschermittwochsmahl-21548"> 26630 Das Aschermittwochsmahl </a> 26631 </div> 26632 26633 <div x-data="initEditionText_46711()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 26634 <!-- Marketing short text --> 26635 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 26636 </div> 26637 </div> 26638 26639 <div class="py-1 grid mb-4 "> 26640 26641 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46711,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46711,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46693":"1"},"childProductsAlertStatus":{"46693":"0"},"indexMapping":{"163:11":46693},"availabilityMessages":{"46693":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46711":{"status":0},"46693":{"status":0}}},"availabilityMessages":{"46693":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46711":{"status":0},"46693":{"status":0}}}'> 26642 <template x-if="containerVisible"> 26643 <!-- Popup Trigger --> 26644 <div> 26645 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 26646 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
26647 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 26648 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 26649<title>bell</title></svg> 26650</span> 26651 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 26652 26653 <!-- Popup Modal --> 26654 <template x-if="showModal"> 26655 <template x-teleport=".page-wrapper"> 26656 <div x-cloak class="fixed inset-0 flex items-center justify-center 26657 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 26658 <div class="relative bg-white rounded-lg shadow-xl 26659 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 26660 <div class="p-6"> 26661 <!-- Subscription Form for Popup --> 26662 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 26663 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 26664 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 26665 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 26666 26667 <div class="flex flex-col gap-3"> 26668 <div class="flex-grow grow"> 26669 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 26670 shadow-xs focus:outline-none focus:outline-hidden 26671 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 26672 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 26673 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 26674 </div> 26675 <input type="hidden" name="product_id" :value="currentProductId"> 26676 <input type="hidden" name="type" value="email"> 26677 26678 26679 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 26680 26681 <div class="amxnotif_guest_action"> 26682 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 26683 rounded-md focus:outline-none 26684 focus:outline-hidden focus:ring-2 26685 focus:ring-offset-2 disabled:opacity-50 26686 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 26687 Benachrichtigen </button> 26688 </div> 26689 </div> 26690 26691 <div class="flex items-start pt-2"> 26692 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 26693 text-blue-600 border-gray-300 rounded-sm"> 26694 <label class="amxnotif-stock-gdrp-label cursor-pointer 26695 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 26696 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 26697 </div> 26698 </form> 26699 </div> 26700 26701 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 26702 hover:text-gray-600 transition-colors" aria-label="Schließen"> 26703 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 26704 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 26705<title>x</title></svg> 26706 </button> 26707 </div> 26708 </div> 26709 </template> 26710 </template> 26711 </div> 26712 </template> 26713 </div> 26714 26715<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46711" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46711,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46693":"1"},"childProductsAlertStatus":{"46693":"0"},"indexMapping":"{\u0022163:11\u0022:46693}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46711,"availabilityMessages":{"46693":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46711":{"status":0},"46693":{"status":0}}}'> 26716 26717 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
26718 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 26719 <span x-html="optionsLabelText"></span> 26720 </p> 26721</div> </div> 26722 26723
26723<script> 26724 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 26725 try { 26726 const attributes = (config && config.attributes) ? config.attributes : null; 26727 if (!attributes) return []; 26728 let attr = null; 26729 if (Array.isArray(attributes)) { 26730 for (let i = 0; i < attributes.length; i++) { 26731 const a = attributes[i]; 26732 if (a && a.id == attrId) { 26733 attr = a; 26734 break; 26735 } 26736 } 26737 } else { 26738 attr = attributes[attrId]; 26739 } 26740 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 26741 } catch (e) { 26742 return []; 26743 } 26744 }; 26745 26746 function initConfigurableSwatchOptions_46711() { 26747 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["46693"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46693":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":91.588784046729},"finalPrice":{"amount":98},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":91.588784046729},"oldPrice":{"amount":98},"basePrice":{"amount":82.352940176471},"finalPrice":{"amount":98},"isApproxPrice":"0"},"productId":"46711","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46693":{"163":"11"}},"salable":{"163":{"11":["46693"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46693":"005140"},"output":{"46693":"Gebunden"},"original_name":{"46693":"La cena de le ceneri"},"openaccess_license_link":{"46693":""},"openaccess_license_name":{"46693":""},"openaccess_external_link":{"46693":""},"gpsr_safety_info":{"46693":""},"description":{"46693":"Giordano Brunos Schrift \u00bbDas Aschermittwochsmahl\u00ab, verfasst in London im Jahr 1584, gilt als Meilenstein der Wissenschaftsgeschichte. Das seit Jahrhunderten fraglos akzeptierte Weltbild eines endlichen Kosmos weicht der Vorstellung eines unendlichen Universums mit unz\u00e4hligen feurigen Sonnen und w\u00e4ssrigen Erden. Die kopernikanische Revolution wird vollendet, ein irreversibler Schritt in die Neuzeit ist vollzogen. <br\/><br\/>Freilich gl\u00e4nzt das \u00bbAschermittwochsmahl\u00ab auch literarisch. Mit Bedacht verlegt der Autor die Handlung auf den ersten Tag nach dem Karneval. Im Spiel mit den M\u00f6glichkeiten der Satire und im Vertrauen auf die subversive Kraft des Lachens wird eine Gesellschaft angeprangert, die \u00fcber die Fastnachtszeit hinaus weiterhin n\u00e4rrisch ist. Pedantische Gelehrte und falsche Lehren sind Teil dieser nach wie vor \u00bbverkehrten Welt\u00ab, die es zu demaskieren gilt und die der geistigen Umkehr bedarf. <br\/><br\/>Doch das \u00bbAschermittwochsmahl\u00ab ist mehr als kosmologische Spekulation oder Gesellschaftskritik. Betroffen von den erbitterten theologischen Kontroversen seiner Zeit versteht Bruno sein Programm auch als Erneuerung einer richtig verstandenen Philosophie und Religion. Im R\u00fcckgriff auf die \u00bbwahre alte Philosophie\u00ab der Antike, Quellen des Christentums sowie bisher kaum beachtete Traditionen des Judaismus begreift Bruno das Universum als unendliche beseelte Einheit und als physikalischen Ausdruck g\u00f6ttlicher Friedensstiftung, welche die widerstreitenden Elemente der Himmelsk\u00f6rper zu einem harmonischen Organismus f\u00fcgt. Schlie\u00dflich ist das \u00bbAschermittwochsmahl\u00ab kirchengeschichtlich von Bedeutung, erregten die darin enthaltenen Theorien doch die Aufmerksamkeit der Inquisition. So wird Brunos Text ob seines Reichtums an Ans\u00e4tzen und Material zu einer lohnenden Lekt\u00fcre f\u00fcr Wissenschaftshistoriker, Literatur- und Religionswissenschaftler, Philosophen und Theologen.<br\/><br\/>Der Text dieses Bandes folgt seitenidentisch Bd. 2 der Ausgabe \u00bbGiordano Bruno Werke\u00ab, herausgegeben von Thomas Leinkauf."},"doi":{"46693":""},"isbn":{"46693":"978-3-7873-5140-4"},"marketing_short_text":{"46693":""},"recension_text":{"46693":""},"language":{"46693":""},"cover":{"46693":"Gebunden"},"pages":{"46693":"CCCXXI, 546 Seiten."},"edition":{"46693":""},"pod":{"46693":"Nein"},"copyright_year":{"46693":""},"vlb_tix_link":{"46693":"https:\/\/neu.vlbtix.de\/products\/9783787351404?type=gtin"},"defaultValues":{"163":"11"}}; 26748 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 26749 26750 if (typeof window.amxnotif_wrap_attributes === 'function') { 26751 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 26752 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 26753 } 26754 26755 const configurableOptionsComponent = initConfigurableOptions( 26756 '46711', 26757 config 26758 ); 26759 const swatchOptionsComponent = initSwatchOptions( 26760 swatchConfig 26761 ); 26762 26763 // DWS - Configurable product preselect start 26764 const confProdPreSelect = () => { 26765 return { 26766 preselectQuerystringItems() { 26767 var data = {"id":"46693","output":"11"}; 26768 const urlQueryParams = new URLSearchParams(window.location.search); 26769 26770 this.$nextTick(() => { 26771 setTimeout(() => { 26772 const rootEl = this.$root || this.$el; 26773 if (!rootEl) return; 26774 26775 const applySelection = (attrCode, attrValue) => { 26776 if (attrValue === undefined || attrValue === null || attrValue === '') return; 26777 26778 const attributes = Object.values(this.optionConfig.attributes || {}); 26779 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 26780 26781 if (targetAttr) { 26782 const attrId = String(targetAttr.id); 26783 const optionVal = String(attrValue); 26784 26785 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 26786 26787 if (inputEl) { 26788 inputEl.click(); 26789 inputEl.dispatchEvent(new Event('change', { 26790 bubbles: true 26791 })); 26792 } else { 26793 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 26794 if (selectEl) { 26795 selectEl.value = optionVal; 26796 selectEl.dispatchEvent(new Event('change', { 26797 bubbles: true 26798 })); 26799 } 26800 } 26801 26802 this.changeOption(attrId, optionVal, false); 26803 } 26804 }; 26805 26806 if (data && typeof data === 'object') {
26807 Object.keys(data).forEach(key => applySelection(key, data[key])); 26808 } 26809 26810 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 26811 if (attribute && attribute.code) { 26812 let optionValue = urlQueryParams.get(attribute.code); 26813 if (optionValue) { 26814 let optionId = false; 26815 const attributes = Object.values(this.optionConfig.attributes || {}); 26816 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 26817 26818 let found = false; 26819 Object.values(targetAttr.options).map(option => { 26820 if (found === false && option.label === optionValue) { 26821 optionId = option.id; 26822 found = true; 26823 } 26824 }); 26825 26826 const attrId = String(targetAttr.id); 26827 let optionVal = String(optionValue); 26828 if (found) { 26829 optionVal = String(optionId); 26830 } 26831 26832 applySelection(attribute.code, optionVal); 26833 } 26834 } 26835 }); 26836 }, 100); 26837 }); 26838 } 26839 } 26840 }; 26841 // DWS - Configurable product preselect end 26842 26843 const result = Object.assign( 26844 configurableOptionsComponent, 26845 swatchOptionsComponent, { 26846 productId: '46711', 26847 productIndex: 0, 26848 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 26849 showSwatches: false, 26850 precalcOptions: {}, 26851 originalInit: configurableOptionsComponent.init, 26852 init() { 26853 try { 26854 this.precalcOptions = {}; 26855 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 26856 this.preselectQuerystringItems(); 26857 if (Array.isArray(attrSource)) { 26858 attrSource.forEach(attr => { 26859 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 26860 }); 26861 } else if (attrSource && typeof attrSource === 'object') { 26862 Object.keys(attrSource).forEach(id => { 26863 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 26864 }); 26865 } 26866 } catch (e) { 26867 console.error('Pre-calc error:', e); 26868 } 26869 26870 if (typeof this.originalInit === 'function') { 26871 this.originalInit(); 26872 } 26873 26874 try { 26875 this.initShowSwatchesIntersect(); 26876 } catch (e) { 26877 console.error('intersect error:', e); 26878 } 26879 }, 26880 26881 updateGallery() { 26882 if (!this.productIndex) return; 26883 26884 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 26885 method: 'GET', 26886 headers: { 26887 'Content-Type': 'application/json', 26888 'X-Requested-With': 'XMLHttpRequest' 26889 } 26890 }) 26891 .then(response => response.json()) 26892 .then(data => { 26893 if (data && data.medium) { 26894 window.dispatchEvent(new CustomEvent("update-gallery-46711", { 26895 detail: data.medium 26896 })); 26897 } 26898 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 26899 }, 26900 26901 26902 initShowSwatchesIntersect() { 26903 const observer = new IntersectionObserver(entries => { 26904 if (entries[0].isIntersecting) { 26905 this.showSwatches = true; 26906 observer.disconnect(); 26907 } 26908 }, { 26909 rootMargin: '512px' 26910 }); 26911 observer.observe(this.$el); 26912 }, 26913 getOptions(attrId) { 26914 return this.precalcOptions[attrId] || []; 26915 }, 26916 getOptionsByAttrId() { 26917 return this.getOptions(this.$el.dataset.attributeId); 26918 }, 26919 _getItemId() { 26920 if (this.item && this.item.id) return this.item.id; 26921 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 26922 }, 26923 getSwatchOptionHtmlId() { 26924 const itemId = this._getItemId(); 26925 return itemId ? this.$id(`attribute-option-46711-${itemId}`) : ''; 26926 }, 26927 getSwatchOptionHtmlIdGroup() { 26928 const itemId = this._getItemId(); 26929 return itemId ? [`attribute-option-46711-${itemId}`] : []; 26930 }, 26931 getAttributeSwatchData(attributeId) { 26932 const data = Object.assign({}, this.swatchConfig[attributeId]); 26933 if (data['additional_data']) { 26934 try { 26935 data['details'] = JSON.parse(data['additional_data']); 26936 } catch (e) { 26937 data['details'] = {}; 26938 } 26939 } 26940 return data; 26941 }, 26942 getSwatchType(attributeId, optionId) { 26943 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 26944 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 26945 } 26946 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 26947 this.swatchConfig[attributeId].details.swatch_input_type : 26948 "empty"; 26949 if (type === 'visual') { 26950 const config = this.swatchConfig[attributeId]; 26951 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 26952 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 26953 } 26954 // Fallback to first option type 26955 for (const oId in config) { 26956 if (config[oId] && typeof config[oId].type !== 'undefined') { 26957 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 26958 } 26959 } 26960 } 26961 return type; 26962 }, 26963 mapSwatchTypeNumberToTypeCode(type) { 26964 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 26965 }, 26966 isTextSwatch() { 26967 const itemId = this._getItemId(); 26968 if (!this.$el || !itemId) return false;
26969 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26970 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 26971 }, 26972 26973 getSwatchText() { 26974 const itemId = this._getItemId(); 26975 if (this.item) return this.item.label || ''; 26976 if (!this.$el || !itemId) return ''; 26977 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26978 const options = attrId ? this.getOptions(attrId) : []; 26979 const opt = options.find(o => o.id == itemId); 26980 return opt ? opt.label : ''; 26981 }, 26982 getSwatchBackgroundStyle() { 26983 const itemId = this._getItemId(); 26984 if (!this.$el || !itemId) return ''; 26985 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 26986 if (!attrId) return ''; 26987 const type = this.getSwatchType(attrId, itemId); 26988 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 26989 this.swatchConfig[attrId][itemId] : 26990 null; 26991 if (!swatchData) return ''; 26992 if (type === "color") return 'background-color:' + swatchData.value; 26993 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 26994 return ''; 26995 }, 26996 swatchOptionClasses() { 26997 const itemId = this._getItemId(); 26998 if (!this.$el || !itemId) return {}; 26999 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27000 return { 27001 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 27002 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 27003 'w-6 h-6': !this.isTextSwatch() 27004 } 27005 }, 27006 27007 onFocusSwatchItem() { 27008 const itemId = this._getItemId(); 27009 if (itemId) this.focusedLabel = itemId; 27010 }, 27011 onChangeOption() { 27012 const itemId = this._getItemId(); 27013 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 27014 if (attrId && itemId) this.changeOption(attrId, itemId); 27015 }, 27016 changeOption(attributeId, value) { 27017 if (value === '') { 27018 return; 27019 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 27020 } else { 27021 this.selectedValues[attributeId] = value; 27022 } 27023 27024 this.findSimpleIndex(); 27025 this.findAllowedAttributeOptions(); 27026 this.updatePrices(); 27027 this.updateGallery(); 27028 27029 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 27030 this.findProductIdsForPartialSelection(this.selectedValues) : []; 27031 27032 const eventDetail = { 27033 productId: this.productId, 27034 optionId: attributeId, 27035 value: value, 27036 productIndex: this.productIndex || 0, 27037 selectedValues: this.selectedValues, 27038 candidates: candidates, 27039 sourceElement: this.$el 27040 }; 27041 27042 // Dispatch for Amasty 27043 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 27044 detail: eventDetail 27045 })); 27046 27047 // Dispatch for Hyva listing 27048 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 27049 detail: eventDetail 27050 })); 27051 }, 27052 27053 27054 clearOptionIfActive() { 27055 const itemId = this._getItemId(); 27056 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 27057 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 27058 this.changeOption(attrId, ''); 27059 27060 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 27061 if (!input && this.$el?.querySelector) { 27062 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 27063 } 27064 if (!input && this.$el?.closest) { 27065 const root = this.$el.closest('[data-product-id]') || this.$el; 27066 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 27067 } 27068 if (input) { 27069 input.checked = false;
27070 } 27071 } 27072 }, 27073 get optionIsEnabled() { 27074 const itemId = this._getItemId(); 27075 if (!this.$el || !itemId) return true; 27076 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27077 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 27078 return !!allowedOptions.find(opt => opt.id == itemId); 27079 }, 27080 get isSelected() { 27081 const itemId = this._getItemId(); 27082 if (!this.$el || !itemId) return false; 27083 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27084 return attrId ? (this.selectedValues[attrId] == itemId) : false; 27085 }, 27086 get isSwatchRequired() { 27087 if (!this.$el) return false; 27088 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27089 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 27090 }, 27091 focusedLabel: false, 27092 activeTooltipItem: false, 27093 tooltipPositionElement: false,
27094 setActiveTooltipItem() { 27095 const itemId = this._getItemId(); 27096 if (!this.$el || !itemId) return; 27097 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27098 this.activeTooltipItem = { 27099 attribute: attrId, 27100 item: itemId, 27101 index: 0 27102 }; 27103 this.tooltipPositionElement = this.$event ? this.$event.target : null; 27104 }, 27105 unsetActiveTooltipItem() { 27106 this.activeTooltipItem = false; 27107 } 27108 }, 27109 confProdPreSelect() 27110 ); 27111 27112 if (result.optionConfig && result.optionConfig.attributes) { 27113 const attributes = result.optionConfig.attributes; 27114 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 27115 let source = attributes; 27116 if (Array.isArray(attributes)) { 27117 source = {}; 27118 attributes.forEach(attr => { 27119 if (attr && attr.id) source[attr.id] = attr; 27120 }); 27121 } 27122 const values = Object.values(source); 27123 const wrapper = Object.assign(values, source); 27124 Object.defineProperty(wrapper, '__amxnotifWrapped', { 27125 value: true, 27126 enumerable: false 27127 }); 27128 result.optionConfig.attributes = wrapper; 27129 } 27130 } 27131 27132 return result; 27133 } 27134 27135 window.addEventListener('alpine:init', () => { 27136 Alpine.data('initConfigurableSwatchOptions_46711', initConfigurableSwatchOptions_46711); 27137 }, { 27138 once: true 27139 }); 27140 </script>
27140 27141 27142 <div x-data="initConfigurableSwatchOptions_46711" x-defer="intersect"> 27143 <div class="pagebuilder-home-hidden"> 27144 27145 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 27146 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 27147 <template x-if="showSwatches"> 27148 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46711-163" role="radiogroup" aria-label="Einband"> 27149 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 27150 <div :data-option-id="item.id" style="display: contents"> 27151 <div x-id="getSwatchOptionHtmlIdGroup"> 27152 <template x-if="optionIsEnabled"> 27153 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
27153self="unsetActiveTooltipItem"> 27154 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46711-163"> 27155 <div> 27156 <template x-if="isTextSwatch"> 27157 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 27158 </template> 27159 <template x-if="!optionIsActive(163, item.id)"> 27160 <div> 27161 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 27162 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 27163 </svg> 27164 </div> 27165 </template> 27166 </div> 27167 </label> 27168 </template> 27169</div> </div> 27170 </template> 27171 </div> 27172 </template> 27173 </div> 27174 </div> 27175 </div> 27176 </div> 27177 27178 <div class="meta py-4 pagebuilder-home-hidden"> 27179 <div x-data="initMarketingShortText_46711()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 27180 <!-- Marketing short text --> 27181 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 27182 </div> 27183 27184 <!-- Short description --> 27185 <div class="short-description"> 27186 Giordano Brunos Schrift »Das Aschermittwochsmahl«, verfasst in London im Jahr 1584, gilt als Meilenstein der Wissenschaftsgeschichte. Das seit Jahrhunderten fraglos akzeptierte Weltbild eines ... <a href="https://meiner.de/fmv_de/das-aschermittwochsmahl-21548" class="underline">mehr</a> 27187 </div> 27188 </div> 27189 27190 <!-- Series --> 27191 <div class="mb-1"> 27192 <span class="sr-only">Reihe:</span> 27193 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 27194 <span>Philosophische Bibliothek</span> 27195 </a> 27196 791 </div> 27197 27198 27199 <div class="mb-1"> 27200 <span x-data="initEditionText_46711()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 27201 <!-- Marketing short text --> 27202 <span class="edition-text" x-html="editionText"></span> 2026, CCCXXI, 546 Seiten. </span> 27203 </div> 27204 27205 </div> 27206 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 27207 27208 <div class="justify-end" x-data="initPriceBox()" @update-prices-46711.window="updatePrice($event.detail);"> 27209 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46711" data-price-box="product-id-46711"><span class="normal-price"> 27210 <span x-data x-id="['product\u002Dprice\u002D46711']" class="price-container price-final_price tax weee"> 27211 <span class="price-label">Ab</span> 27212 <span class="approx-price">ca. </span>
27213 <span :id="$id('product\u002Dprice\u002D46711')" data-price-amount="98" data-price-type="finalPrice" class="price-wrapper "><span class="price">98,00 €</span></span> 27214 </span> 27215</span> 27216 27217 27218</div> </div> 27219 27220 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 27221 <div class="open-access-container open-access-container-46711 flex mt-4 ml-auto sm:mt-0 hidden"> 27222 <div class="text-gray-700"> 27223 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 27224 <a href="" target="_blank" class="open-access-external-link m-auto "> 27225 Kostenlos online lesen </a> 27226 </button> 27227 </div> 27228 </div> 27229 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Das Aschermittwochsmahl" aria-label="In den Warenkorb Das Aschermittwochsmahl" data-addto="cart"> 27230 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 27231 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 27232</svg> 27233 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 27234 In den Warenkorb </span> 27235 </button> 27236 27237<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46711)" aria-label="Zur Wunschliste hinzufügen Das Aschermittwochsmahl" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 27238 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 27239 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 27240</svg> 27241</button> 27242 </div> 27243 </div> 27244 </div> 27245
27245<script> 27246 function initMarketingShortText_46711() { 27247 var marketingShortTextConfig = {}; 27248 if (typeof window.initConfigurableSwatchOptions_46711 === "function") { 27249 var fullConfig = window.initConfigurableSwatchOptions_46711().optionConfig 27250 var marketingShortTextConfig = fullConfig.marketing_short_text; 27251 } 27252 return { 27253 marketingShortText: '', 27254 config: marketingShortTextConfig, 27255 productId: '46711', 27256 getMarketingShortText(detail) { 27257 this.marketingShortText = detail.productIndex ? 27258 this.config[detail.productIndex] : 27259 null; 27260 }, 27261 eventListeners: { 27262 ['@listing-configurable-selection-changed.window'](event) { 27263 if (this.productId == event.detail.productId) { 27264 this.getMarketingShortText(event.detail); 27265 } 27266 27267 } 27268 } 27269 } 27270 } 27271 27272 function initEditionText_46711() { 27273 var editionTextConfig = {}; 27274 if (typeof window.initConfigurableSwatchOptions_46711 === "function") { 27275 var fullConfig = window.initConfigurableSwatchOptions_46711().optionConfig 27276 var editionTextConfig = fullConfig.edition; 27277 } 27278 return { 27279 editionText: '', 27280 config: editionTextConfig, 27281 productId: '46711', 27282 getEditionText(detail) { 27283 this.editionText = detail.productIndex ? 27284 this.config[detail.productIndex] : 27285 null; 27286 }, 27287 eventListeners: { 27288 ['@listing-configurable-selection-changed.window'](event) { 27289 if (this.productId == event.detail.productId) { 27290 this.getEditionText(event.detail); 27291 } 27292 27293 } 27294 } 27295 } 27296 } 27297 </script>
27297 27298 </form> 27299 27300 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46710/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21415"> 27301 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46710"> 27302 <a href="https://meiner.de/fmv_de/der-kerzenzieher-21415" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 27303 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46710.window="$el.src = $event.detail" alt="Der Kerzenzieher" title="Der Kerzenzieher" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351251_1.jpg" :style="{ 27304 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 27305 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 27306 }"> 27307 </a> 27308 <div class="product-info flex flex-col flex-grow "> 27309 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 27310 <div class="mb-2 text-sm text-gray-500 font-medium"> 27311 <a href="https://meiner.de/fmv_de/person/Giordano-Bruno-3772/" class="mb-2"> 27312 Giordano Bruno </a> 27313 </div> 27314 <a class="product-item-link" href="https://meiner.de/fmv_de/der-kerzenzieher-21415"> 27315 Der Kerzenzieher </a> 27316 </div> 27317 27318 <div x-data="initEditionText_46710()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 27319 <!-- Marketing short text --> 27320 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 27321 </div> 27322 </div> 27323 27324 <div class="py-1 grid mb-4 "> 27325 27326 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46710,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46710,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46692":"1","6977":"1"},"childProductsAlertStatus":{"46692":"0","6977":"0"},"indexMapping":{"163:11":46692,"163:8":6977},"availabilityMessages":{"46692":"Lieferbar innerhalb von 3-5 Tagen","6977":"Download sofort verf\u00fcgbar"},"openAccess":{"46710":{"status":0},"46692":{"status":0},"6977":{"status":0}}},"availabilityMessages":{"46692":"Lieferbar innerhalb von 3-5 Tagen","6977":"Download sofort verf\u00fcgbar"},"openAccess":{"46710":{"status":0},"46692":{"status":0},"6977":{"status":0}}}'> 27327 <template x-if="containerVisible"> 27328 <!-- Popup Trigger --> 27329 <div> 27330 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 27331 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
27332 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 27333 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 27334<title>bell</title></svg> 27335</span> 27336 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 27337 27338 <!-- Popup Modal --> 27339 <template x-if="showModal"> 27340 <template x-teleport=".page-wrapper"> 27341 <div x-cloak class="fixed inset-0 flex items-center justify-center 27342 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 27343 <div class="relative bg-white rounded-lg shadow-xl 27344 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 27345 <div class="p-6"> 27346 <!-- Subscription Form for Popup --> 27347 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 27348 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 27349 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 27350 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 27351 27352 <div class="flex flex-col gap-3"> 27353 <div class="flex-grow grow"> 27354 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 27355 shadow-xs focus:outline-none focus:outline-hidden 27356 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 27357 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 27358 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 27359 </div> 27360 <input type="hidden" name="product_id" :value="currentProductId"> 27361 <input type="hidden" name="type" value="email"> 27362 27363 27364 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 27365 27366 <div class="amxnotif_guest_action"> 27367 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 27368 rounded-md focus:outline-none 27369 focus:outline-hidden focus:ring-2 27370 focus:ring-offset-2 disabled:opacity-50 27371 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 27372 Benachrichtigen </button> 27373 </div> 27374 </div> 27375 27376 <div class="flex items-start pt-2"> 27377 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 27378 text-blue-600 border-gray-300 rounded-sm"> 27379 <label class="amxnotif-stock-gdrp-label cursor-pointer 27380 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 27381 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 27382 </div> 27383 </form> 27384 </div> 27385 27386 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 27387 hover:text-gray-600 transition-colors" aria-label="Schließen"> 27388 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 27389 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 27390<title>x</title></svg> 27391 </button> 27392 </div> 27393 </div> 27394 </template> 27395 </template> 27396 </div> 27397 </template> 27398 </div> 27399 27400<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46710" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46710,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46692":"1","6977":"1"},"childProductsAlertStatus":{"46692":"0","6977":"0"},"indexMapping":"{\u0022163:11\u0022:46692,\u0022163:8\u0022:6977}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46710,"availabilityMessages":{"46692":"Lieferbar innerhalb von 3-5 Tagen","6977":"Download sofort verf\u00fcgbar"},"openAccess":{"46710":{"status":0},"46692":{"status":0},"6977":{"status":0}}}'> 27401 27402 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
27403 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 27404 <span x-html="optionsLabelText"></span> 27405 </p> 27406</div> </div> 27407 27408
27408<script> 27409 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 27410 try { 27411 const attributes = (config && config.attributes) ? config.attributes : null; 27412 if (!attributes) return []; 27413 let attr = null; 27414 if (Array.isArray(attributes)) { 27415 for (let i = 0; i < attributes.length; i++) { 27416 const a = attributes[i]; 27417 if (a && a.id == attrId) { 27418 attr = a; 27419 break; 27420 } 27421 } 27422 } else { 27423 attr = attributes[attrId]; 27424 } 27425 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 27426 } catch (e) { 27427 return []; 27428 } 27429 }; 27430 27431 function initConfigurableSwatchOptions_46710() { 27432 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["46692"]},{"id":"8","label":"PDF","products":["6977"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46692":{"baseOldPrice":{"amount":63.551400869159},"oldPrice":{"amount":68},"basePrice":{"amount":63.551400869159},"finalPrice":{"amount":68},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"6977":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":46.719625168224},"finalPrice":{"amount":49.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":42.008402361345},"finalPrice":{"amount":49.99},"isApproxPrice":null},"productId":"46710","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46692":{"163":"11"},"6977":{"163":"8"}},"salable":{"163":{"11":["46692"],"8":["6977"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46692":"005125","6977":"003515"},"output":{"6977":"PDF","46692":"Gebunden"},"original_name":{"6977":"Candelaio","46692":"Candelaio"},"openaccess_license_link":{"6977":"","46692":""},"openaccess_license_name":{"6977":"","46692":""},"openaccess_external_link":{"6977":"","46692":""},"gpsr_safety_info":{"6977":"","46692":""},"description":{"6977":"Diese turbulente, im zeitgen\u00f6ssischen Neapel angesiedelte Kom\u00f6die ver\u00f6ffentlichte Bruno 1582 in Paris als sein erstes Werk in italienischer Sprache. Die drei Hauptfiguren in diesem sprachlich und soziologisch erstaunlich detailgetreuen Notturno sind ein geldgieriger Alchemist, ein ehebrecherischer P\u00e4derast (nach diesem \u00bbKerzenzieher\u00ab ist das St\u00fcck benannt) und ein hochm\u00fctiger Schulmeister. Bestraft werden die negativen Protagonisten durch Intrigen, die der Maler und Meisterillusion\u00e4r Gioan Bernardo zusammen mit der Kupplerin Lucia ausheckt.<br\/><br\/>Der \u00bbCandelaio\u00ab ist mehr als ein literarisches Bravourst\u00fcck mit mehreren ineinander verwobenen Handlungsstr\u00e4ngen sowie einer Liebeserkl\u00e4rung des Autors an seine Heimat Neapel. Dass hier zentrale Positionen angelegt sind, die Bruno in seinen philosophischen Schriften ausf\u00fchrt, ist bislang zu wenig beachtet worden: Themen wie die Dialektik von Sein und Schein, das Wirken der Fortuna in einem zyklischen Weltbild und Kommentare zur gleichzeitig in den lateinischen Schriften des Autors entwickelten Ged\u00e4chtniskunst sind in die Handlung eingebettet. So betrachtet erschlie\u00dft sich das St\u00fcck als literarisches Experiment, in welchem Bruno versucht, das neue Denken in neuem Gewand auf der B\u00fchne zu pr\u00e4sentieren. <br\/><br\/>Zahlreiche intertextuelle Verweise auf Klassiker der italienischen und der antiken Literatur machen den Candelaio nicht nur f\u00fcr die Literatur- und Theaterwissenschaft, sondern auch f\u00fcr die Kulturwissenschaft zu einem beachtenswerten Quellentext. Der Text dieses Bandes folgt seitenidentisch Bd. 1 der Ausgabe \u00bbGiordano Bruno Werke\u00ab, herausgegeben von Thomas Leinkauf.","46692":"Diese turbulente, im zeitgen\u00f6ssischen Neapel angesiedelte Kom\u00f6die ver\u00f6ffentlichte Bruno 1582 in Paris als sein erstes Werk in italienischer Sprache. Die drei Hauptfiguren in diesem sprachlich und soziologisch erstaunlich detailgetreuen Notturno sind ein geldgieriger Alchemist, ein ehebrecherischer P\u00e4derast (nach diesem \u00bbKerzenzieher\u00ab ist das St\u00fcck benannt) und ein hochm\u00fctiger Schulmeister. Bestraft werden die negativen Protagonisten durch Intrigen, die der Maler und Meisterillusion\u00e4r Gioan Bernardo zusammen mit der Kupplerin Lucia ausheckt.<br\/><br\/>Der \u00bbCandelaio\u00ab ist mehr als ein literarisches Bravourst\u00fcck mit mehreren ineinander verwobenen Handlungsstr\u00e4ngen sowie einer Liebeserkl\u00e4rung des Autors an seine Heimat Neapel. Dass hier zentrale Positionen angelegt sind, die Bruno in seinen philosophischen Schriften ausf\u00fchrt, ist bislang zu wenig beachtet worden: Themen wie die Dialektik von Sein und Schein, das Wirken der Fortuna in einem zyklischen Weltbild und Kommentare zur gleichzeitig in den lateinischen Schriften des Autors entwickelten Ged\u00e4chtniskunst sind in die Handlung eingebettet. So betrachtet erschlie\u00dft sich das St\u00fcck als literarisches Experiment, in welchem Bruno versucht, das neue Denken in neuem Gewand auf der B\u00fchne zu pr\u00e4sentieren. <br\/><br\/>Zahlreiche intertextuelle Verweise auf Klassiker der italienischen und der antiken Literatur machen den Candelaio nicht nur f\u00fcr die Literatur- und Theaterwissenschaft, sondern auch f\u00fcr die Kulturwissenschaft zu einem beachtenswerten Quellentext. Der Text dieses Bandes folgt seitenidentisch Bd. 1 der Ausgabe \u00bbGiordano Bruno Werke\u00ab, herausgegeben von Thomas Leinkauf."},"doi":{"6977":"10.28937\/978-3-7873-3515-2","46692":""},"isbn":{"6977":"978-3-7873-3515-2","46692":"978-3-7873-5125-1"},"marketing_short_text":{"6977":"","46692":""},"recension_text":{"6977":"<div class=\"reviews\">\r\n<div class=\"review\">... an excellent example of Europe\u2019s continuing celebration of western speculative thought. New research especially in early German Idealism, but also in Renaissance and early modern thought in many disciplines mandated a
27432new, authoritative Bruno edition. [...] But Leinkauf\u2019s edition is primarily the first philologically sound edition of Bruno\u2019s works. [...] So those \u2039introductions\u201d to the seven volumes are essentially expositions of the content of the work, constantly referring to and quoting Bruno\u2019s work itself with precise page references. The reader finds him- or herself reading the book forward and backward at the same time, not only reading the text itself, but also making use of the helpful notes and indices for further orientation.<\/div>\r\n<div class=\"source\">Rolf Ahlers, Bochumer Philosophisches Jahrbuch f\u00fcr Antike und Mittelalter, Volume 20, 2017.<\/div>\r\n<\/div>","46692":""},"language":{"6977":"Italienisch-Deutsch","46692":""},"cover":{"6977":"","46692":"Gebunden"},"pages":{"6977":"CXXVIII, 343 Seiten","46692":"CXXVIII, 343 Seiten."},"edition":{"6977":"Unver\u00e4ndertes eBook der 1. Auflage von 2013","46692":""},"pod":{"6977":"Nein","46692":"Nein"},"copyright_year":{"6977":"","46692":""},"vlb_tix_link":{"6977":"","46692":"https:\/\/neu.vlbtix.de\/products\/9783787351251?type=gtin"},"defaultValues":{"163":"11"}}; 27433 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 27434 27435 if (typeof window.amxnotif_wrap_attributes === 'function') { 27436 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 27437 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 27438 } 27439 27440 const configurableOptionsComponent = initConfigurableOptions( 27441 '46710', 27442 config 27443 ); 27444 const swatchOptionsComponent = initSwatchOptions( 27445 swatchConfig 27446 ); 27447 27448 // DWS - Configurable product preselect start 27449 const confProdPreSelect = () => { 27450 return { 27451 preselectQuerystringItems() { 27452 var data = {"id":"46692","output":"11"}; 27453 const urlQueryParams = new URLSearchParams(window.location.search); 27454 27455 this.$nextTick(() => { 27456 setTimeout(() => { 27457 const rootEl = this.$root || this.$el; 27458 if (!rootEl) return; 27459 27460 const applySelection = (attrCode, attrValue) => { 27461 if (attrValue === undefined || attrValue === null || attrValue === '') return; 27462 27463 const attributes = Object.values(this.optionConfig.attributes || {}); 27464 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 27465 27466 if (targetAttr) { 27467 const attrId = String(targetAttr.id); 27468 const optionVal = String(attrValue); 27469 27470 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 27471 27472 if (inputEl) { 27473 inputEl.click(); 27474 inputEl.dispatchEvent(new Event('change', { 27475 bubbles: true 27476 })); 27477 } else { 27478 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 27479 if (selectEl) { 27480 selectEl.value = optionVal; 27481 selectEl.dispatchEvent(new Event('change', { 27482 bubbles: true 27483 })); 27484 } 27485 } 27486 27487 this.changeOption(attrId, optionVal, false); 27488 } 27489 }; 27490 27491 if (data && typeof data === 'object') {
27492 Object.keys(data).forEach(key => applySelection(key, data[key])); 27493 } 27494 27495 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 27496 if (attribute && attribute.code) { 27497 let optionValue = urlQueryParams.get(attribute.code); 27498 if (optionValue) { 27499 let optionId = false; 27500 const attributes = Object.values(this.optionConfig.attributes || {}); 27501 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 27502 27503 let found = false; 27504 Object.values(targetAttr.options).map(option => { 27505 if (found === false && option.label === optionValue) { 27506 optionId = option.id; 27507 found = true; 27508 } 27509 }); 27510 27511 const attrId = String(targetAttr.id); 27512 let optionVal = String(optionValue); 27513 if (found) { 27514 optionVal = String(optionId); 27515 } 27516 27517 applySelection(attribute.code, optionVal); 27518 } 27519 } 27520 }); 27521 }, 100); 27522 }); 27523 } 27524 } 27525 }; 27526 // DWS - Configurable product preselect end 27527 27528 const result = Object.assign( 27529 configurableOptionsComponent, 27530 swatchOptionsComponent, { 27531 productId: '46710', 27532 productIndex: 0, 27533 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 27534 showSwatches: false, 27535 precalcOptions: {}, 27536 originalInit: configurableOptionsComponent.init, 27537 init() { 27538 try { 27539 this.precalcOptions = {}; 27540 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 27541 this.preselectQuerystringItems(); 27542 if (Array.isArray(attrSource)) { 27543 attrSource.forEach(attr => { 27544 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 27545 }); 27546 } else if (attrSource && typeof attrSource === 'object') { 27547 Object.keys(attrSource).forEach(id => { 27548 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 27549 }); 27550 } 27551 } catch (e) { 27552 console.error('Pre-calc error:', e); 27553 } 27554 27555 if (typeof this.originalInit === 'function') { 27556 this.originalInit(); 27557 } 27558 27559 try { 27560 this.initShowSwatchesIntersect(); 27561 } catch (e) { 27562 console.error('intersect error:', e); 27563 } 27564 }, 27565 27566 updateGallery() { 27567 if (!this.productIndex) return; 27568 27569 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 27570 method: 'GET', 27571 headers: { 27572 'Content-Type': 'application/json', 27573 'X-Requested-With': 'XMLHttpRequest' 27574 } 27575 }) 27576 .then(response => response.json()) 27577 .then(data => { 27578 if (data && data.medium) { 27579 window.dispatchEvent(new CustomEvent("update-gallery-46710", { 27580 detail: data.medium 27581 })); 27582 } 27583 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 27584 }, 27585 27586 27587 initShowSwatchesIntersect() { 27588 const observer = new IntersectionObserver(entries => { 27589 if (entries[0].isIntersecting) { 27590 this.showSwatches = true; 27591 observer.disconnect(); 27592 } 27593 }, { 27594 rootMargin: '512px' 27595 }); 27596 observer.observe(this.$el); 27597 }, 27598 getOptions(attrId) { 27599 return this.precalcOptions[attrId] || []; 27600 }, 27601 getOptionsByAttrId() { 27602 return this.getOptions(this.$el.dataset.attributeId); 27603 }, 27604 _getItemId() { 27605 if (this.item && this.item.id) return this.item.id; 27606 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 27607 }, 27608 getSwatchOptionHtmlId() { 27609 const itemId = this._getItemId(); 27610 return itemId ? this.$id(`attribute-option-46710-${itemId}`) : ''; 27611 }, 27612 getSwatchOptionHtmlIdGroup() { 27613 const itemId = this._getItemId(); 27614 return itemId ? [`attribute-option-46710-${itemId}`] : []; 27615 }, 27616 getAttributeSwatchData(attributeId) { 27617 const data = Object.assign({}, this.swatchConfig[attributeId]); 27618 if (data['additional_data']) { 27619 try { 27620 data['details'] = JSON.parse(data['additional_data']); 27621 } catch (e) { 27622 data['details'] = {}; 27623 } 27624 } 27625 return data; 27626 }, 27627 getSwatchType(attributeId, optionId) { 27628 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 27629 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 27630 } 27631 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 27632 this.swatchConfig[attributeId].details.swatch_input_type : 27633 "empty"; 27634 if (type === 'visual') { 27635 const config = this.swatchConfig[attributeId]; 27636 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 27637 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 27638 } 27639 // Fallback to first option type 27640 for (const oId in config) { 27641 if (config[oId] && typeof config[oId].type !== 'undefined') { 27642 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 27643 } 27644 } 27645 } 27646 return type; 27647 }, 27648 mapSwatchTypeNumberToTypeCode(type) { 27649 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 27650 }, 27651 isTextSwatch() { 27652 const itemId = this._getItemId(); 27653 if (!this.$el || !itemId) return false;
27654 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27655 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 27656 }, 27657 27658 getSwatchText() { 27659 const itemId = this._getItemId(); 27660 if (this.item) return this.item.label || ''; 27661 if (!this.$el || !itemId) return ''; 27662 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27663 const options = attrId ? this.getOptions(attrId) : []; 27664 const opt = options.find(o => o.id == itemId); 27665 return opt ? opt.label : ''; 27666 }, 27667 getSwatchBackgroundStyle() { 27668 const itemId = this._getItemId(); 27669 if (!this.$el || !itemId) return ''; 27670 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27671 if (!attrId) return ''; 27672 const type = this.getSwatchType(attrId, itemId); 27673 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 27674 this.swatchConfig[attrId][itemId] : 27675 null; 27676 if (!swatchData) return ''; 27677 if (type === "color") return 'background-color:' + swatchData.value; 27678 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 27679 return ''; 27680 }, 27681 swatchOptionClasses() { 27682 const itemId = this._getItemId(); 27683 if (!this.$el || !itemId) return {}; 27684 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27685 return { 27686 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 27687 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 27688 'w-6 h-6': !this.isTextSwatch() 27689 } 27690 }, 27691 27692 onFocusSwatchItem() { 27693 const itemId = this._getItemId(); 27694 if (itemId) this.focusedLabel = itemId; 27695 }, 27696 onChangeOption() { 27697 const itemId = this._getItemId(); 27698 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 27699 if (attrId && itemId) this.changeOption(attrId, itemId); 27700 }, 27701 changeOption(attributeId, value) { 27702 if (value === '') { 27703 return; 27704 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 27705 } else { 27706 this.selectedValues[attributeId] = value; 27707 } 27708 27709 this.findSimpleIndex(); 27710 this.findAllowedAttributeOptions(); 27711 this.updatePrices(); 27712 this.updateGallery(); 27713 27714 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 27715 this.findProductIdsForPartialSelection(this.selectedValues) : []; 27716 27717 const eventDetail = { 27718 productId: this.productId, 27719 optionId: attributeId, 27720 value: value, 27721 productIndex: this.productIndex || 0, 27722 selectedValues: this.selectedValues, 27723 candidates: candidates, 27724 sourceElement: this.$el 27725 }; 27726 27727 // Dispatch for Amasty 27728 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 27729 detail: eventDetail 27730 })); 27731 27732 // Dispatch for Hyva listing 27733 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 27734 detail: eventDetail 27735 })); 27736 }, 27737 27738 27739 clearOptionIfActive() { 27740 const itemId = this._getItemId(); 27741 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 27742 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 27743 this.changeOption(attrId, ''); 27744 27745 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 27746 if (!input && this.$el?.querySelector) { 27747 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 27748 } 27749 if (!input && this.$el?.closest) { 27750 const root = this.$el.closest('[data-product-id]') || this.$el; 27751 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 27752 } 27753 if (input) { 27754 input.checked = false;
27755 } 27756 } 27757 }, 27758 get optionIsEnabled() { 27759 const itemId = this._getItemId(); 27760 if (!this.$el || !itemId) return true; 27761 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27762 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 27763 return !!allowedOptions.find(opt => opt.id == itemId); 27764 }, 27765 get isSelected() { 27766 const itemId = this._getItemId(); 27767 if (!this.$el || !itemId) return false; 27768 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27769 return attrId ? (this.selectedValues[attrId] == itemId) : false; 27770 }, 27771 get isSwatchRequired() { 27772 if (!this.$el) return false; 27773 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27774 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 27775 }, 27776 focusedLabel: false, 27777 activeTooltipItem: false, 27778 tooltipPositionElement: false,
27779 setActiveTooltipItem() { 27780 const itemId = this._getItemId(); 27781 if (!this.$el || !itemId) return; 27782 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 27783 this.activeTooltipItem = { 27784 attribute: attrId, 27785 item: itemId, 27786 index: 0 27787 }; 27788 this.tooltipPositionElement = this.$event ? this.$event.target : null; 27789 }, 27790 unsetActiveTooltipItem() { 27791 this.activeTooltipItem = false; 27792 } 27793 }, 27794 confProdPreSelect() 27795 ); 27796 27797 if (result.optionConfig && result.optionConfig.attributes) { 27798 const attributes = result.optionConfig.attributes; 27799 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 27800 let source = attributes; 27801 if (Array.isArray(attributes)) { 27802 source = {}; 27803 attributes.forEach(attr => { 27804 if (attr && attr.id) source[attr.id] = attr; 27805 }); 27806 } 27807 const values = Object.values(source); 27808 const wrapper = Object.assign(values, source); 27809 Object.defineProperty(wrapper, '__amxnotifWrapped', { 27810 value: true, 27811 enumerable: false 27812 }); 27813 result.optionConfig.attributes = wrapper; 27814 } 27815 } 27816 27817 return result; 27818 } 27819 27820 window.addEventListener('alpine:init', () => { 27821 Alpine.data('initConfigurableSwatchOptions_46710', initConfigurableSwatchOptions_46710); 27822 }, { 27823 once: true 27824 }); 27825 </script>
27825 27826 27827 <div x-data="initConfigurableSwatchOptions_46710" x-defer="intersect"> 27828 <div class="pagebuilder-home-hidden"> 27829 27830 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 27831 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 27832 <template x-if="showSwatches"> 27833 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46710-163" role="radiogroup" aria-label="Einband"> 27834 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 27835 <div :data-option-id="item.id" style="display: contents"> 27836 <div x-id="getSwatchOptionHtmlIdGroup"> 27837 <template x-if="optionIsEnabled"> 27838 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
27838self="unsetActiveTooltipItem"> 27839 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46710-163"> 27840 <div> 27841 <template x-if="isTextSwatch"> 27842 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 27843 </template> 27844 <template x-if="!optionIsActive(163, item.id)"> 27845 <div> 27846 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 27847 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 27848 </svg> 27849 </div> 27850 </template> 27851 </div> 27852 </label> 27853 </template> 27854</div> </div> 27855 </template> 27856 </div> 27857 </template> 27858 </div> 27859 </div> 27860 </div> 27861 </div> 27862 27863 <div class="meta py-4 pagebuilder-home-hidden"> 27864 <div x-data="initMarketingShortText_46710()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 27865 <!-- Marketing short text --> 27866 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 27867 </div> 27868 27869 <!-- Short description --> 27870 <div class="short-description"> 27871 Diese turbulente, im zeitgenössischen Neapel angesiedelte Komödie veröffentlichte Bruno 1582 in Paris als sein erstes Werk in italienischer Sprache. Die drei Hauptfiguren in diesem sprachlich und ... <a href="https://meiner.de/fmv_de/der-kerzenzieher-21415" class="underline">mehr</a> 27872 </div> 27873 </div> 27874 27875 <!-- Series --> 27876 <div class="mb-1"> 27877 <span class="sr-only">Reihe:</span> 27878 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 27879 <span>Philosophische Bibliothek</span> 27880 </a> 27881 790 </div> 27882 27883 27884 <div class="mb-1"> 27885 <span x-data="initEditionText_46710()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 27886 <!-- Marketing short text --> 27887 <span class="edition-text" x-html="editionText"></span> 2026, CXXVIII, 343 Seiten. </span> 27888 </div> 27889 27890 </div> 27891 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 27892 27893 <div class="justify-end" x-data="initPriceBox()" @update-prices-46710.window="updatePrice($event.detail);"> 27894 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46710" data-price-box="product-id-46710"><span class="normal-price"> 27895 <span x-data x-id="['product\u002Dprice\u002D46710']" class="price-container price-final_price tax weee"> 27896 <span class="price-label">Ab</span> 27897 <span class="approx-price">ca. </span>
27898 <span :id="$id('product\u002Dprice\u002D46710')" data-price-amount="49.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">49,99 €</span></span> 27899 </span> 27900</span> 27901 27902 27903</div> </div> 27904 27905 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 27906 <div class="open-access-container open-access-container-46710 flex mt-4 ml-auto sm:mt-0 hidden"> 27907 <div class="text-gray-700"> 27908 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 27909 <a href="" target="_blank" class="open-access-external-link m-auto "> 27910 Kostenlos online lesen </a> 27911 </button> 27912 </div> 27913 </div> 27914 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Der Kerzenzieher" aria-label="In den Warenkorb Der Kerzenzieher" data-addto="cart"> 27915 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 27916 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 27917</svg> 27918 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 27919 In den Warenkorb </span> 27920 </button> 27921 27922<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46710)" aria-label="Zur Wunschliste hinzufügen Der Kerzenzieher" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 27923 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 27924 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 27925</svg> 27926</button> 27927 </div> 27928 </div> 27929 </div> 27930
27930<script> 27931 function initMarketingShortText_46710() { 27932 var marketingShortTextConfig = {}; 27933 if (typeof window.initConfigurableSwatchOptions_46710 === "function") { 27934 var fullConfig = window.initConfigurableSwatchOptions_46710().optionConfig 27935 var marketingShortTextConfig = fullConfig.marketing_short_text; 27936 } 27937 return { 27938 marketingShortText: '', 27939 config: marketingShortTextConfig, 27940 productId: '46710', 27941 getMarketingShortText(detail) { 27942 this.marketingShortText = detail.productIndex ? 27943 this.config[detail.productIndex] : 27944 null; 27945 }, 27946 eventListeners: { 27947 ['@listing-configurable-selection-changed.window'](event) { 27948 if (this.productId == event.detail.productId) { 27949 this.getMarketingShortText(event.detail); 27950 } 27951 27952 } 27953 } 27954 } 27955 } 27956 27957 function initEditionText_46710() { 27958 var editionTextConfig = {}; 27959 if (typeof window.initConfigurableSwatchOptions_46710 === "function") { 27960 var fullConfig = window.initConfigurableSwatchOptions_46710().optionConfig 27961 var editionTextConfig = fullConfig.edition; 27962 } 27963 return { 27964 editionText: '', 27965 config: editionTextConfig, 27966 productId: '46710', 27967 getEditionText(detail) { 27968 this.editionText = detail.productIndex ? 27969 this.config[detail.productIndex] : 27970 null; 27971 }, 27972 eventListeners: { 27973 ['@listing-configurable-selection-changed.window'](event) { 27974 if (this.productId == event.detail.productId) { 27975 this.getEditionText(event.detail); 27976 } 27977 27978 } 27979 } 27980 } 27981 } 27982 </script>
27982 27983 </form> 27984 27985 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46709/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21391"> 27986 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46709"> 27987 <a href="https://meiner.de/fmv_de/die-whig-interpretation-der-geschichte-21391" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 27988 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46709.window="$el.src = $event.detail" alt="Die Whig-Interpretation der Geschichte" title="Die Whig-Interpretation der Geschichte" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351084_1.jpg" :style="{ 27989 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 27990 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 27991 }"> 27992 </a> 27993 <div class="product-info flex flex-col flex-grow "> 27994 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 27995 <div class="mb-2 text-sm text-gray-500 font-medium"> 27996 <a href="https://meiner.de/fmv_de/person/Herbert-Butterfield-21392/" class="mb-2"> 27997 Herbert Butterfield </a> 27998 </div> 27999 <a class="product-item-link" href="https://meiner.de/fmv_de/die-whig-interpretation-der-geschichte-21391"> 28000 Die Whig-Interpretation der Geschichte </a> 28001 </div> 28002 28003 <div x-data="initEditionText_46709()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 28004 <!-- Marketing short text --> 28005 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 28006 </div> 28007 </div> 28008 28009 <div class="py-1 grid mb-4 "> 28010 28011 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46709,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46709,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46492":"1","46768":"1"},"childProductsAlertStatus":{"46492":"0","46768":"0"},"indexMapping":{"163:15":46492,"163:8":46768},"availabilityMessages":{"46492":"Lieferbar innerhalb von 3-5 Tagen","46768":"Download sofort verf\u00fcgbar"},"openAccess":{"46709":{"status":0},"46492":{"status":0},"46768":{"status":0}}},"availabilityMessages":{"46492":"Lieferbar innerhalb von 3-5 Tagen","46768":"Download sofort verf\u00fcgbar"}
28011,"openAccess":{"46709":{"status":0},"46492":{"status":0},"46768":{"status":0}}}'> 28012 <template x-if="containerVisible"> 28013 <!-- Popup Trigger --> 28014 <div> 28015 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 28016 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 28017 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 28018 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 28019<title>bell</title></svg> 28020</span> 28021 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 28022 28023 <!-- Popup Modal --> 28024 <template x-if="showModal"> 28025 <template x-teleport=".page-wrapper"> 28026 <div x-cloak class="fixed inset-0 flex items-center justify-center 28027 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 28028 <div class="relative bg-white rounded-lg shadow-xl 28029 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 28030 <div class="p-6"> 28031 <!-- Subscription Form for Popup --> 28032 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 28033 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 28034 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 28035 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 28036 28037 <div class="flex flex-col gap-3"> 28038 <div class="flex-grow grow"> 28039 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 28040 shadow-xs focus:outline-none focus:outline-hidden 28041 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 28042 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 28043 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 28044 </div> 28045 <input type="hidden" name="product_id" :value="currentProductId"> 28046 <input type="hidden" name="type" value="email"> 28047 28048 28049 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 28050 28051 <div class="amxnotif_guest_action"> 28052 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 28053 rounded-md focus:outline-none 28054 focus:outline-hidden focu
28054s:ring-2 28055 focus:ring-offset-2 disabled:opacity-50 28056 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 28057 Benachrichtigen </button> 28058 </div> 28059 </div> 28060 28061 <div class="flex items-start pt-2"> 28062 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 28063 text-blue-600 border-gray-300 rounded-sm"> 28064 <label class="amxnotif-stock-gdrp-label cursor-pointer 28065 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 28066 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 28067 </div> 28068 </form> 28069 </div> 28070 28071 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 28072 hover:text-gray-600 transition-colors" aria-label="Schließen"> 28073 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 28074 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 28075<title>x</title></svg> 28076 </button> 28077 </div> 28078 </div> 28079 </template> 28080 </template> 28081 </div> 28082 </template> 28083 </div> 28084 28085<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46709" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46709,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46492":"1","46768":"1"},"childProductsAlertStatus":{"46492":"0","46768":"0"},"indexMapping":"{\u0022163:15\u0022:46492,\u0022163:8\u0022:46768}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46709,"availabilityMessages":{"46492":"Lieferbar innerhalb von 3-5 Tagen","46768":"Download sofort verf\u00fcgbar"},"openAccess":{"46709":{"status":0},"46492":{"status":0},"46768":{"status":0}}}'> 28086 28087 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 28088 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 28089 <span x-html="optionsLabelText"></span> 28090 </p> 28091</div> </div> 28092 28093
28093<script> 28094 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 28095 try { 28096 const attributes = (config && config.attributes) ? config.attributes : null; 28097 if (!attributes) return []; 28098 let attr = null; 28099 if (Array.isArray(attributes)) { 28100 for (let i = 0; i < attributes.length; i++) { 28101 const a = attributes[i]; 28102 if (a && a.id == attrId) { 28103 attr = a; 28104 break; 28105 } 28106 } 28107 } else { 28108 attr = attributes[attrId]; 28109 } 28110 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 28111 } catch (e) { 28112 return []; 28113 } 28114 }; 28115 28116 function initConfigurableSwatchOptions_46709() { 28117 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46492"]},{"id":"8","label":"PDF","products":["46768"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46492":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46768":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"46709","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46492":{"163":"15"},"46768":{"163":"8"}},"salable":{"163":{"15":["46492"],"8":["46768"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46492":"005107","46768":"005108"},"output":{"46492":"Kartoniert","46768":"PDF"},"original_name":{"46492":"The Whig Interpretation of History","46768":"The Whig Interpretation of History"},"openaccess_license_link":{"46492":"","46768":""},"openaccess_license_name":{"46492":"","46768":""},"openaccess_external_link":{"46492":"","46768":""},"gpsr_safety_info":{"46492":"","46768":""},"description":{"46492":"Herbert Butterfield hat mit seinen Thesen zur Geschichtstheorie bleibende Aufmerksamkeit erregt. Sein Essay \u00bbThe Whig Interpretation of History\u00ab (1931) avancierte in der angels\u00e4chsischen Welt zu einem Klassiker und pr\u00e4gte die stehenden Begriffe \u00bbWhig history\u00ab und \u00bbWhiggism\u00ab.<br\/><br\/>Butterfield kritisiert die allgemeine Tendenz, historische Tatsachen nach dem Ma\u00dfstab der Gegenwart zu interpretieren und mit entsprechenden moralischen Werturteilen zu bedenken. Die Standardform des erz\u00e4hlten Geschichtsverlaufs sei die des liberal eingestellten nordatlantischen Protestanten und seiner weltanschaulichen \u00dcberzeugungen. Geschichte werde stets nach einem seit Jahrhunderten etablierten und kaum jemals reflektierten kulturellen Apriori gelesen, das der Geschichtswissenschaft eine eigene disziplin\u00e4re Matrix verweigere und ihr stattdessen ein politisches Auffassungsparadigma unterschiebe. In seinem Essay untersucht Butterfield, fachwissenschaftlich fundiert, die Allerweltsweisheit, dass es die ideologischen Gewinner sind, die die Geschichte schreiben. Gerade das fachliche Fundament und das akademisch Anspruchsvolle seiner Thesen macht Butterfields Wortmeldung dabei besonders interessant.<br\/><br\/>Der Band bietet die erste deutsche \u00dcbersetzung von Butterfields Kritik der Geschichtstheorie, die derzeit in der historiographischen Debatte wieder verst\u00e4rkt diskutiert wird.","46768":"Herbert Butterfield hat mit seinen Thesen zur Geschichtstheorie bleibende Aufmerksamkeit erregt. Sein Essay \u00bbThe Whig Interpretation of History\u00ab (1931) avancierte in der angels\u00e4chsischen Welt zu einem Klassiker und pr\u00e4gte die stehenden Begriffe \u00bbWhig history\u00ab und \u00bbWhiggism\u00ab.<br\/><br\/>Butterfield kritisiert die allgemeine Tendenz, historische Tatsachen nach dem Ma\u00dfstab der Gegenwart zu interpretieren und mit entsprechenden moralischen Werturteilen zu bedenken. Die Standardform des erz\u00e4hlten Geschichtsverlaufs sei die des liberal eingestellten nordatlantischen Protestanten und seiner weltanschaulichen \u00dcberzeugungen. Geschichte werde stets n
28117ach einem seit Jahrhunderten etablierten und kaum jemals reflektierten kulturellen Apriori gelesen, das der Geschichtswissenschaft eine eigene disziplin\u00e4re Matrix verweigere und ihr stattdessen ein politisches Auffassungsparadigma unterschiebe. In seinem Essay untersucht Butterfield, fachwissenschaftlich fundiert, die Allerweltsweisheit, dass es die ideologischen Gewinner sind, die die Geschichte schreiben. Gerade das fachliche Fundament und das akademisch Anspruchsvolle seiner Thesen macht Butterfields Wortmeldung dabei besonders interessant.<br\/><br\/>Der Band bietet die erste deutsche \u00dcbersetzung von Butterfields Kritik der Geschichtstheorie, die derzeit in der historiographischen Debatte wieder verst\u00e4rkt diskutiert wird."},"doi":{"46492":"","46768":"10.28937\/978-3-7873-5108-4"},"isbn":{"46492":"978-3-7873-5107-7","46768":"978-3-7873-5108-4"},"marketing_short_text":{"46492":"","46768":""},"recension_text":{"46492":"<div class=\"reviews\">\r\n<div class=\"review\">Der Meiner-Verlag hat verdienstvollerweise eine \u00dcbersetzung von Butterfields (1900\u20131979) grundlegender Kritik an einer Geschichtsschreibung, die die Vergangenheit vom Ergebnis her liest, in seiner Philosophischen Bibliothek ver\u00f6ffentlicht. [\u2026] Die Whigs deuten historische Tatsachen [\u2026] in einer Ursache-Wirkungs-Relation nach dem Ma\u00dfstab der Gegenwart: als Weg zur liberalen Ordnung, zur Freiheit, zum Parlamentarismus, zur Moderne. [\u2026] In f\u00fcnf Kapiteln r\u00e4umt der in Cambridge lehrende Butterfield schonungslos mit solchen Ans\u00e4tzen auf.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 25.05.2026<\/div>\r\n<\/div>","46768":"<div class=\"reviews\">\r\n<div class=\"review\">Der Meiner-Verlag hat verdienstvollerweise eine \u00dcbersetzung von Butterfields (1900\u20131979) grundlegender Kritik an einer Geschichtsschreibung, die die Vergangenheit vom Ergebnis her liest, in seiner Philosophischen Bibliothek ver\u00f6ffentlicht. [\u2026] Die Whigs deuten historische Tatsachen [\u2026] in einer Ursache-Wirkungs-Relation nach dem Ma\u00dfstab der Gegenwart: als Weg zur liberalen Ordnung, zur Freiheit, zum Parlamentarismus, zur Moderne. [\u2026] In f\u00fcnf Kapiteln r\u00e4umt der in Cambridge lehrende Butterfield schonungslos mit solchen Ans\u00e4tzen auf.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 25.05.2026<\/div>\r\n<\/div>"},"language":{"46492":"","46768":""},"cover":{"46492":"Kartoniert","46768":""},"pages":{"46492":"XXII, 104 Seiten.","46768":"XXII, 104 Seiten."},"edition":{"46492":"","46768":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46492":"Nein","46768":"Nein"},"copyright_year":{"46492":"","46768":""},"vlb_tix_link":{"46492":"https:\/\/neu.vlbtix.de\/products\/9783787351077?type=gtin","46768":""},"defaultValues":{"163":"15"}}; 28118 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 28119 28120 if (typeof window.amxnotif_wrap_attributes === 'function') { 28121 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 28122 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 28123 } 28124 28125 const configurableOptionsComponent = initConfigurableOptions( 28126 '46709', 28127 config 28128 ); 28129 const swatchOptionsComponent = initSwatchOptions( 28130 swatchConfig 28131 ); 28132 28133 // DWS - Configurable product preselect start 28134 const confProdPreSelect = () => { 28135 return { 28136 preselectQuerystringItems() { 28137 var data = {"id":"46492","output":"15"}; 28138 const urlQueryParams = new URLSearchParams(window.location.search); 28139 28140 this.$nextTick(() => { 28141 setTimeout(() => { 28142 const rootEl = this.$root || this.$el; 28143 if (!rootEl) return; 28144 28145 const applySelection = (attrCode, attrValue) => { 28146 if (attrValue === undefined || attrValue === null || attrValue === '') return; 28147 28148 const attributes = Object.values(this.optionConfig.attributes || {}); 28149 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 28150 28151 if (targetAttr) { 28152 const attrId = String(targetAttr.id); 28153 const optionVal = String(attrValue); 28154 28155 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 28156 28157 if (inputEl) { 28158 inputEl.click(); 28159 inputEl.dispatchEvent(new Event('change', { 28160 bubbles: true 28161 })); 28162 } else { 28163 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 28164 if (selectEl) { 28165 selectEl.value = optionVal; 28166 selectEl.dispatchEvent(new Event('change', { 28167 bubbles: true 28168 })); 28169 } 28170 } 28171 28172 this.changeOption(attrId, optionVal, false); 28173 } 28174 }; 28175 28176 if (data && typeof data === 'object') {
28177 Object.keys(data).forEach(key => applySelection(key, data[key])); 28178 } 28179 28180 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 28181 if (attribute && attribute.code) { 28182 let optionValue = urlQueryParams.get(attribute.code); 28183 if (optionValue) { 28184 let optionId = false; 28185 const attributes = Object.values(this.optionConfig.attributes || {}); 28186 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 28187 28188 let found = false; 28189 Object.values(targetAttr.options).map(option => { 28190 if (found === false && option.label === optionValue) { 28191 optionId = option.id; 28192 found = true; 28193 } 28194 }); 28195 28196 const attrId = String(targetAttr.id); 28197 let optionVal = String(optionValue); 28198 if (found) { 28199 optionVal = String(optionId); 28200 } 28201 28202 applySelection(attribute.code, optionVal); 28203 } 28204 } 28205 }); 28206 }, 100); 28207 }); 28208 } 28209 } 28210 }; 28211 // DWS - Configurable product preselect end 28212 28213 const result = Object.assign( 28214 configurableOptionsComponent, 28215 swatchOptionsComponent, { 28216 productId: '46709', 28217 productIndex: 0, 28218 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 28219 showSwatches: false, 28220 precalcOptions: {}, 28221 originalInit: configurableOptionsComponent.init, 28222 init() { 28223 try { 28224 this.precalcOptions = {}; 28225 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 28226 this.preselectQuerystringItems(); 28227 if (Array.isArray(attrSource)) { 28228 attrSource.forEach(attr => { 28229 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 28230 }); 28231 } else if (attrSource && typeof attrSource === 'object') { 28232 Object.keys(attrSource).forEach(id => { 28233 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 28234 }); 28235 } 28236 } catch (e) { 28237 console.error('Pre-calc error:', e); 28238 } 28239 28240 if (typeof this.originalInit === 'function') { 28241 this.originalInit(); 28242 } 28243 28244 try { 28245 this.initShowSwatchesIntersect(); 28246 } catch (e) { 28247 console.error('intersect error:', e); 28248 } 28249 }, 28250 28251 updateGallery() { 28252 if (!this.productIndex) return; 28253 28254 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 28255 method: 'GET', 28256 headers: { 28257 'Content-Type': 'application/json', 28258 'X-Requested-With': 'XMLHttpRequest' 28259 } 28260 }) 28261 .then(response => response.json()) 28262 .then(data => { 28263 if (data && data.medium) { 28264 window.dispatchEvent(new CustomEvent("update-gallery-46709", { 28265 detail: data.medium 28266 })); 28267 } 28268 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 28269 }, 28270 28271 28272 initShowSwatchesIntersect() { 28273 const observer = new IntersectionObserver(entries => { 28274 if (entries[0].isIntersecting) { 28275 this.showSwatches = true; 28276 observer.disconnect(); 28277 } 28278 }, { 28279 rootMargin: '512px' 28280 }); 28281 observer.observe(this.$el); 28282 }, 28283 getOptions(attrId) { 28284 return this.precalcOptions[attrId] || []; 28285 }, 28286 getOptionsByAttrId() { 28287 return this.getOptions(this.$el.dataset.attributeId); 28288 }, 28289 _getItemId() { 28290 if (this.item && this.item.id) return this.item.id; 28291 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 28292 }, 28293 getSwatchOptionHtmlId() { 28294 const itemId = this._getItemId(); 28295 return itemId ? this.$id(`attribute-option-46709-${itemId}`) : ''; 28296 }, 28297 getSwatchOptionHtmlIdGroup() { 28298 const itemId = this._getItemId(); 28299 return itemId ? [`attribute-option-46709-${itemId}`] : []; 28300 }, 28301 getAttributeSwatchData(attributeId) { 28302 const data = Object.assign({}, this.swatchConfig[attributeId]); 28303 if (data['additional_data']) { 28304 try { 28305 data['details'] = JSON.parse(data['additional_data']); 28306 } catch (e) { 28307 data['details'] = {}; 28308 } 28309 } 28310 return data; 28311 }, 28312 getSwatchType(attributeId, optionId) { 28313 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 28314 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 28315 } 28316 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 28317 this.swatchConfig[attributeId].details.swatch_input_type : 28318 "empty"; 28319 if (type === 'visual') { 28320 const config = this.swatchConfig[attributeId]; 28321 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 28322 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 28323 } 28324 // Fallback to first option type 28325 for (const oId in config) { 28326 if (config[oId] && typeof config[oId].type !== 'undefined') { 28327 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 28328 } 28329 } 28330 } 28331 return type; 28332 }, 28333 mapSwatchTypeNumberToTypeCode(type) { 28334 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 28335 }, 28336 isTextSwatch() { 28337 const itemId = this._getItemId(); 28338 if (!this.$el || !itemId) return false;
28339 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28340 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 28341 }, 28342 28343 getSwatchText() { 28344 const itemId = this._getItemId(); 28345 if (this.item) return this.item.label || ''; 28346 if (!this.$el || !itemId) return ''; 28347 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28348 const options = attrId ? this.getOptions(attrId) : []; 28349 const opt = options.find(o => o.id == itemId); 28350 return opt ? opt.label : ''; 28351 }, 28352 getSwatchBackgroundStyle() { 28353 const itemId = this._getItemId(); 28354 if (!this.$el || !itemId) return ''; 28355 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28356 if (!attrId) return ''; 28357 const type = this.getSwatchType(attrId, itemId); 28358 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 28359 this.swatchConfig[attrId][itemId] : 28360 null; 28361 if (!swatchData) return ''; 28362 if (type === "color") return 'background-color:' + swatchData.value; 28363 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 28364 return ''; 28365 }, 28366 swatchOptionClasses() { 28367 const itemId = this._getItemId(); 28368 if (!this.$el || !itemId) return {}; 28369 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28370 return { 28371 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 28372 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 28373 'w-6 h-6': !this.isTextSwatch() 28374 } 28375 }, 28376 28377 onFocusSwatchItem() { 28378 const itemId = this._getItemId(); 28379 if (itemId) this.focusedLabel = itemId; 28380 }, 28381 onChangeOption() { 28382 const itemId = this._getItemId(); 28383 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 28384 if (attrId && itemId) this.changeOption(attrId, itemId); 28385 }, 28386 changeOption(attributeId, value) { 28387 if (value === '') { 28388 return; 28389 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 28390 } else { 28391 this.selectedValues[attributeId] = value; 28392 } 28393 28394 this.findSimpleIndex(); 28395 this.findAllowedAttributeOptions(); 28396 this.updatePrices(); 28397 this.updateGallery(); 28398 28399 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 28400 this.findProductIdsForPartialSelection(this.selectedValues) : []; 28401 28402 const eventDetail = { 28403 productId: this.productId, 28404 optionId: attributeId, 28405 value: value, 28406 productIndex: this.productIndex || 0, 28407 selectedValues: this.selectedValues, 28408 candidates: candidates, 28409 sourceElement: this.$el 28410 }; 28411 28412 // Dispatch for Amasty 28413 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 28414 detail: eventDetail 28415 })); 28416 28417 // Dispatch for Hyva listing 28418 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 28419 detail: eventDetail 28420 })); 28421 }, 28422 28423 28424 clearOptionIfActive() { 28425 const itemId = this._getItemId(); 28426 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 28427 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 28428 this.changeOption(attrId, ''); 28429 28430 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 28431 if (!input && this.$el?.querySelector) { 28432 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 28433 } 28434 if (!input && this.$el?.closest) { 28435 const root = this.$el.closest('[data-product-id]') || this.$el; 28436 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 28437 } 28438 if (input) { 28439 input.checked = false;
28440 } 28441 } 28442 }, 28443 get optionIsEnabled() { 28444 const itemId = this._getItemId(); 28445 if (!this.$el || !itemId) return true; 28446 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28447 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 28448 return !!allowedOptions.find(opt => opt.id == itemId); 28449 }, 28450 get isSelected() { 28451 const itemId = this._getItemId(); 28452 if (!this.$el || !itemId) return false; 28453 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28454 return attrId ? (this.selectedValues[attrId] == itemId) : false; 28455 }, 28456 get isSwatchRequired() { 28457 if (!this.$el) return false; 28458 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28459 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 28460 }, 28461 focusedLabel: false, 28462 activeTooltipItem: false, 28463 tooltipPositionElement: false,
28464 setActiveTooltipItem() { 28465 const itemId = this._getItemId(); 28466 if (!this.$el || !itemId) return; 28467 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 28468 this.activeTooltipItem = { 28469 attribute: attrId, 28470 item: itemId, 28471 index: 0 28472 }; 28473 this.tooltipPositionElement = this.$event ? this.$event.target : null; 28474 }, 28475 unsetActiveTooltipItem() { 28476 this.activeTooltipItem = false; 28477 } 28478 }, 28479 confProdPreSelect() 28480 ); 28481 28482 if (result.optionConfig && result.optionConfig.attributes) { 28483 const attributes = result.optionConfig.attributes; 28484 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 28485 let source = attributes; 28486 if (Array.isArray(attributes)) { 28487 source = {}; 28488 attributes.forEach(attr => { 28489 if (attr && attr.id) source[attr.id] = attr; 28490 }); 28491 } 28492 const values = Object.values(source); 28493 const wrapper = Object.assign(values, source); 28494 Object.defineProperty(wrapper, '__amxnotifWrapped', { 28495 value: true, 28496 enumerable: false 28497 }); 28498 result.optionConfig.attributes = wrapper; 28499 } 28500 } 28501 28502 return result; 28503 } 28504 28505 window.addEventListener('alpine:init', () => { 28506 Alpine.data('initConfigurableSwatchOptions_46709', initConfigurableSwatchOptions_46709); 28507 }, { 28508 once: true 28509 }); 28510 </script>
28510 28511 28512 <div x-data="initConfigurableSwatchOptions_46709" x-defer="intersect"> 28513 <div class="pagebuilder-home-hidden"> 28514 28515 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 28516 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 28517 <template x-if="showSwatches"> 28518 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46709-163" role="radiogroup" aria-label="Einband"> 28519 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 28520 <div :data-option-id="item.id" style="display: contents"> 28521 <div x-id="getSwatchOptionHtmlIdGroup"> 28522 <template x-if="optionIsEnabled"> 28523 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
28523self="unsetActiveTooltipItem"> 28524 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46709-163"> 28525 <div> 28526 <template x-if="isTextSwatch"> 28527 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 28528 </template> 28529 <template x-if="!optionIsActive(163, item.id)"> 28530 <div> 28531 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 28532 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 28533 </svg> 28534 </div> 28535 </template> 28536 </div> 28537 </label> 28538 </template> 28539</div> </div> 28540 </template> 28541 </div> 28542 </template> 28543 </div> 28544 </div> 28545 </div> 28546 </div> 28547 28548 <div class="meta py-4 pagebuilder-home-hidden"> 28549 <div x-data="initMarketingShortText_46709()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 28550 <!-- Marketing short text --> 28551 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 28552 </div> 28553 28554 <!-- Short description --> 28555 <div class="short-description"> 28556 Herbert Butterfield hat mit seinen Thesen zur Geschichtstheorie bleibende Aufmerksamkeit erregt. Sein Essay »The Whig Interpretation of History« (1931) avancierte in der angelsächsischen Welt zu ... <a href="https://meiner.de/fmv_de/die-whig-interpretation-der-geschichte-21391" class="underline">mehr</a> 28557 </div> 28558 </div> 28559 28560 <!-- Series --> 28561 <div class="mb-1"> 28562 <span class="sr-only">Reihe:</span> 28563 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 28564 <span>Philosophische Bibliothek</span> 28565 </a> 28566 798 </div> 28567 28568 28569 <div class="mb-1"> 28570 <span x-data="initEditionText_46709()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 28571 <!-- Marketing short text --> 28572 <span class="edition-text" x-html="editionText"></span> 2026, XXII, 104 Seiten. </span> 28573 </div> 28574 28575 </div> 28576 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 28577 28578 <div class="justify-end" x-data="initPriceBox()" @update-prices-46709.window="updatePrice($event.detail);"> 28579 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46709" data-price-box="product-id-46709"><span class="normal-price"> 28580 <span x-data x-id="['product\u002Dprice\u002D46709']" class="price-container price-final_price tax weee"> 28581 <span class="price-label">Ab</span> 28582 <span class="approx-price">ca. </span>
28583 <span :id="$id('product\u002Dprice\u002D46709')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 28584 </span> 28585</span> 28586 28587 28588</div> </div> 28589 28590 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 28591 <div class="open-access-container open-access-container-46709 flex mt-4 ml-auto sm:mt-0 hidden"> 28592 <div class="text-gray-700"> 28593 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 28594 <a href="" target="_blank" class="open-access-external-link m-auto "> 28595 Kostenlos online lesen </a> 28596 </button> 28597 </div> 28598 </div> 28599 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Die Whig-Interpretation der Geschichte" aria-label="In den Warenkorb Die Whig-Interpretation der Geschichte" data-addto="cart"> 28600 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 28601 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 28602</svg> 28603 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 28604 In den Warenkorb </span> 28605 </button> 28606 28607<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46709)" aria-label="Zur Wunschliste hinzufügen Die Whig-Interpretation der Geschichte" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 28608 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 28609 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 28610</svg> 28611</button> 28612 </div> 28613 </div> 28614 </div> 28615
28615<script> 28616 function initMarketingShortText_46709() { 28617 var marketingShortTextConfig = {}; 28618 if (typeof window.initConfigurableSwatchOptions_46709 === "function") { 28619 var fullConfig = window.initConfigurableSwatchOptions_46709().optionConfig 28620 var marketingShortTextConfig = fullConfig.marketing_short_text; 28621 } 28622 return { 28623 marketingShortText: '', 28624 config: marketingShortTextConfig, 28625 productId: '46709', 28626 getMarketingShortText(detail) { 28627 this.marketingShortText = detail.productIndex ? 28628 this.config[detail.productIndex] : 28629 null; 28630 }, 28631 eventListeners: { 28632 ['@listing-configurable-selection-changed.window'](event) { 28633 if (this.productId == event.detail.productId) { 28634 this.getMarketingShortText(event.detail); 28635 } 28636 28637 } 28638 } 28639 } 28640 } 28641 28642 function initEditionText_46709() { 28643 var editionTextConfig = {}; 28644 if (typeof window.initConfigurableSwatchOptions_46709 === "function") { 28645 var fullConfig = window.initConfigurableSwatchOptions_46709().optionConfig 28646 var editionTextConfig = fullConfig.edition; 28647 } 28648 return { 28649 editionText: '', 28650 config: editionTextConfig, 28651 productId: '46709', 28652 getEditionText(detail) { 28653 this.editionText = detail.productIndex ? 28654 this.config[detail.productIndex] : 28655 null; 28656 }, 28657 eventListeners: { 28658 ['@listing-configurable-selection-changed.window'](event) { 28659 if (this.productId == event.detail.productId) { 28660 this.getEditionText(event.detail); 28661 } 28662 28663 } 28664 } 28665 } 28666 } 28667 </script>
28667 28668 </form> 28669 </div> 28670 28671<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 28672 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 28673 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 28674 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 28675</svg> 28676 </button> 28677 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 28678 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 28679 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 28680 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 28681</svg> 28682 </button> 28683</div> 28684 </div> 28685</div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="XX0C0CC"><h3 data-content-type="heading" data-appearance="default" data-element="main">Blaue Reihe</h3><div class="pagebuilder-column-group card cmsp2-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="YPY77HD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="YPEFH56"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="XEVNLJ0"><h4 data-content-type="heading" data-appearance="default" data-element="main">Philosophische Debattenbeiträge & Essays</h4><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="J9QYD4J"><p style="text-align: left;">Die <a href="/programm/reihen/blaue-reihe">Blaue Reihe</a> bietet richtungsweisenden Beiträgen aus aktuellen philosophischen Debatten und essayistischen Interventionen einen Ort. Sie kommt damit dem gegenwärtigen Bedürfnis nach kürzer gefassten, prägnanten philosophischen Texten entgegen und öffnet sich auch einem nicht spezialisierten Publikum. Ergänzend erscheinen Einführungen in bestimmte philosophische Fragestellungen und Epochen sowie in das Werk bedeutender Philosophinnen und Philosophen.</p> 28686<p style="text-align: left;">»Der Verlag hat es geschafft, preisgünstig Forschungsfragen und Philosophien in Bezug zu aktuellen Debatten zu setzen. Die Bücher sind für Laien und Berufsphilosophen gleichermaßen interessant.« <em>Charlotte Szász (Literarische Welt)</em></p> 28687<div id="box_infotext"> 28688<p style="text-align: left;"> </p> 28689<p style="text-align: left;"><a tabindex="-1" href="/programm/reihen/blaue-reihe"><img id="NC5LO7Q" style="display: block; margin-left: auto; margin-right: auto; width: 75px; height: 75px;" src="https://meiner.de/media/wysiwyg/FMV/Signets-Logos/Signet_Blaue-Reihe.png" alt="Signet der Blauen Reihe" width="100" height="100"></a></p> 28690<p style="text-align: center;"> </p> 28691</div></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="EYKDCL7"></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="W5FBXVQ"><h4 data-content-type="heading" data-appearance="default" data-element="main">Aktuelle Neuerscheinungen der Blauen Reihe</h4><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carou
28691sel"> 28692 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 28693 28694 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47160/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk22892"> 28695 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47160"> 28696 <a href="https://meiner.de/fmv_de/materie-als-aktives-gegena-ber-des-subjekts-22892" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 28697 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47160.window="$el.src = $event.detail" alt="Materie als aktives Gegenüber des Subjekts" title="Materie als aktives Gegenüber des Subjekts" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787352012_1.jpg" :style="{ 28698 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 28699 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 28700 }"> 28701 </a> 28702 <div class="product-info flex flex-col flex-grow "> 28703 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 28704 <div class="mb-2 text-sm text-gray-500 font-medium"> 28705 <a href="https://meiner.de/fmv_de/person/Thomas-Oehl-22893/" class="mb-2"> 28706 Thomas Oehl </a> 28707 </div> 28708 <a class="product-item-link" href="https://meiner.de/fmv_de/materie-als-aktives-gegena-ber-des-subjekts-22892"> 28709 Materie als aktives Gegenüber des Subjekts </a> 28710 </div> 28711 28712 <div x-data="initEditionText_47160()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 28713 <!-- Marketing short text --> 28714 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 28715 </div> 28716 </div> 28717 28718 <div class="py-1 grid mb-4 "> 28719 28720 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47160,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47160,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47095":"1","47139":"1","47141":"1"},"childProductsAlertStatus":{"47095":"0","47139":"0","47141":"0"},"indexMapping":{"163:15":47095,"163:8":47139,"163:9":47141},"availabilityMessages":{"47095":"Lieferbar innerhalb von 3-5 Tagen","47139":"Download sofort verf\u00fcgbar","47141":"Download sofort verf\u00fcgbar"},"openAccess":{"47160":{"status":0},"47095":{"status":0},"47139":{"status":0},"47141":{"status":0}}},"availabilityMessages":{"47095":"Lieferbar innerhalb von 3-5 Tagen","47139":"Download sofort verf\u00fcgbar","47141":"Download sofort verf\u00fcgbar"},"openAccess":{"47160":{"status":0},"47095":{"status":0},"47139":{"status":0},"47141":{"status":0}}}'> 28721 <template x-if="containerVisible"> 28722 <!-- Popup Trigger --> 28723 <div> 28724 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 28725 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
28726 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 28727 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 28728<title>bell</title></svg> 28729</span> 28730 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 28731 28732 <!-- Popup Modal --> 28733 <template x-if="showModal"> 28734 <template x-teleport=".page-wrapper"> 28735 <div x-cloak class="fixed inset-0 flex items-center justify-center 28736 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 28737 <div class="relative bg-white rounded-lg shadow-xl 28738 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 28739 <div class="p-6"> 28740 <!-- Subscription Form for Popup --> 28741 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 28742 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 28743 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 28744 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 28745 28746 <div class="flex flex-col gap-3"> 28747 <div class="flex-grow grow"> 28748 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 28749 shadow-xs focus:outline-none focus:outline-hidden 28750 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 28751 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 28752 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 28753 </div> 28754 <input type="hidden" name="product_id" :value="currentProductId"> 28755 <input type="hidden" name="type" value="email"> 28756 28757 28758 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 28759 28760 <div class="amxnotif_guest_action"> 28761 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 28762 rounded-md focus:outline-none 28763 focus:outline-hidden focus:ring-2 28764 focus:ring-offset-2 disabled:opacity-50 28765 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 28766 Benachrichtigen </button> 28767 </div> 28768 </div> 28769 28770 <div class="flex items-start pt-2"> 28771 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 28772 text-blue-600 border-gray-300 rounded-sm"> 28773 <label class="amxnotif-stock-gdrp-label cursor-pointer 28774 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 28775 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 28776 </div> 28777 </form> 28778 </div> 28779 28780 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 28781 hover:text-gray-600 transition-colors" aria-label="Schließen"> 28782 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 28783 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 28784<title>x</title></svg> 28785 </button> 28786 </div> 28787 </div> 28788 </template> 28789 </template> 28790 </div> 28791 </template> 28792 </div> 28793 28794<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47160" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47160,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47095":"1","47139":"1","47141":"
287941"},"childProductsAlertStatus":{"47095":"0","47139":"0","47141":"0"},"indexMapping":"{\u0022163:15\u0022:47095,\u0022163:8\u0022:47139,\u0022163:9\u0022:47141}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47160,"availabilityMessages":{"47095":"Lieferbar innerhalb von 3-5 Tagen","47139":"Download sofort verf\u00fcgbar","47141":"Download sofort verf\u00fcgbar"},"openAccess":{"47160":{"status":0},"47095":{"status":0},"47139":{"status":0},"47141":{"status":0}}}'> 28795 28796 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 28797 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 28798 <span x-html="optionsLabelText"></span> 28799 </p> 28800</div> </div> 28801 28802
28802<script> 28803 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 28804 try { 28805 const attributes = (config && config.attributes) ? config.attributes : null; 28806 if (!attributes) return []; 28807 let attr = null; 28808 if (Array.isArray(attributes)) { 28809 for (let i = 0; i < attributes.length; i++) { 28810 const a = attributes[i]; 28811 if (a && a.id == attrId) { 28812 attr = a; 28813 break; 28814 } 28815 } 28816 } else { 28817 attr = attributes[attrId]; 28818 } 28819 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 28820 } catch (e) { 28821 return []; 28822 } 28823 }; 28824 28825 function initConfigurableSwatchOptions_47160() { 28826 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["47095"]},{"id":"8","label":"PDF","products":["47139"]},{"id":"9","label":"EPUB","products":["47141"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47095":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47139":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47141":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":14.27730992437},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"47160","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"47095":{"163":"15"},"47139":{"163":"8"},"47141":{"163":"9"}},"salable":{"163":{"15":["47095"],"8":["47139"],"9":["47141"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"47095":"005199","47139":"005200","47141":"005201"},"output":{"47095":"Kartoniert","47139":"PDF","47141":"EPUB"},"original_name":{"47095":"","47139":"","47141":""},"openaccess_license_link":{"47095":"","47139":"","47141":""},"openaccess_license_name":{"47095":"","47139":"","47141":""},"openaccess_external_link":{"47095":"","47139":"","47141":""},"gpsr_safety_info":{"47095":"","47139":"","47141":""},"description":{"47095":"Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann.<br\/><br\/>Die Idee einer Aktivit\u00e4t der Materie zieht sich wie ein Versprechen durch die moderne, nachhegelsche Philosophie, insbesondere im \u00bbMaterialismus\u00ab, wie er von Marx und Adorno gepr\u00e4gt wurde. Sie stand und steht jedoch stets im Verdacht, der Materie irrationalerweise etwas zuschreiben zu wollen, das wir allein dem Subjekt zuschreiben d\u00fcrfen: Aktivit\u00e4t in einem starken Sinne. Der Gedankengang des Buches entwickelt diese Idee streng sachorientiert und verteidigt sie gegen den besagten Verdacht in drei Studien, die je einer bestimmten Gestalt von Aktivit\u00e4t der Materie gewidmet sind. Die Idee ist einerseits von metaphysischer Bedeutung, da mit ihr nicht weniger als ein ganz neuer Begriff von Materie verbunden ist, andererseits aber auch von sozialphilosophischer Relevanz: Denn in der Aktivit\u00e4t der Materie liegt die M\u00f6glichkeit, Materie in befreiender Weise als ein Gegen\u00fcber zu erfahren, etwa in bestimmten \u00e4sthetischen Konstellationen; eine freie Beziehung zu einem Gegen\u00fcber besteht gerade nicht allein in Intersubjektivit\u00e4t.<br\/><br\/>Das Buch ist im Dialog mit Horst Bredekamps Theorie des Bildakts geschrieben, in der verwandte Motive verfolgt werden, und um ein Nachwort Bredekamps erg\u00e4nzt.","47139":"Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann.
28826<br\/><br\/>Die Idee einer Aktivit\u00e4t der Materie zieht sich wie ein Versprechen durch die moderne, nachhegelsche Philosophie, insbesondere im \u00bbMaterialismus\u00ab, wie er von Marx und Adorno gepr\u00e4gt wurde. Sie stand und steht jedoch stets im Verdacht, der Materie irrationalerweise etwas zuschreiben zu wollen, das wir allein dem Subjekt zuschreiben d\u00fcrfen: Aktivit\u00e4t in einem starken Sinne. Der Gedankengang des Buches entwickelt diese Idee streng sachorientiert und verteidigt sie gegen den besagten Verdacht in drei Studien, die je einer bestimmten Gestalt von Aktivit\u00e4t der Materie gewidmet sind. Die Idee ist einerseits von metaphysischer Bedeutung, da mit ihr nicht weniger als ein ganz neuer Begriff von Materie verbunden ist, andererseits aber auch von sozialphilosophischer Relevanz: Denn in der Aktivit\u00e4t der Materie liegt die M\u00f6glichkeit, Materie in befreiender Weise als ein Gegen\u00fcber zu erfahren, etwa in bestimmten \u00e4sthetischen Konstellationen; eine freie Beziehung zu einem Gegen\u00fcber besteht gerade nicht allein in Intersubjektivit\u00e4t.<br\/><br\/>Das Buch ist im Dialog mit Horst Bredekamps Theorie des Bildakts geschrieben, in der verwandte Motive verfolgt werden, und um ein Nachwort Bredekamps erg\u00e4nzt.","47141":"Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann.<br\/><br\/>Die Idee einer Aktivit\u00e4t der Materie zieht sich wie ein Versprechen durch die moderne, nachhegelsche Philosophie, insbesondere im \u00bbMaterialismus\u00ab, wie er von Marx und Adorno gepr\u00e4gt wurde. Sie stand und steht jedoch stets im Verdacht, der Materie irrationalerweise etwas zuschreiben zu wollen, das wir allein dem Subjekt zuschreiben d\u00fcrfen: Aktivit\u00e4t in einem starken Sinne. Der Gedankengang des Buches entwickelt diese Idee streng sachorientiert und verteidigt sie gegen den besagten Verdacht in drei Studien, die je einer bestimmten Gestalt von Aktivit\u00e4t der Materie gewidmet sind. Die Idee ist einerseits von metaphysischer Bedeutung, da mit ihr nicht weniger als ein ganz neuer Begriff von Materie verbunden ist, andererseits aber auch von sozialphilosophischer Relevanz: Denn in der Aktivit\u00e4t der Materie liegt die M\u00f6glichkeit, Materie in befreiender Weise als ein Gegen\u00fcber zu erfahren, etwa in bestimmten \u00e4sthetischen Konstellationen; eine freie Beziehung zu einem Gegen\u00fcber besteht gerade nicht allein in Intersubjektivit\u00e4t.<br\/><br\/>Das Buch ist im Dialog mit Horst Bredekamps Theorie des Bildakts geschrieben, in der verwandte Motive verfolgt werden, und um ein Nachwort Bredekamps erg\u00e4nzt."},"doi":{"47095":"","47139":"10.28937\/978-3-7873-5200-5","47141":""},"isbn":{"47095":"978-3-7873-5199-2","47139":"978-3-7873-5200-5","47141":"978-3-7873-5201-2"},"marketing_short_text":{"47095":"","47139":"","47141":""},"recension_text":{"47095":"","47139":"","47141":""},"language":{"47095":"","47139":"","47141":""},"cover":{"47095":"Kartoniert","47139":"","47141":""},"pages":{"47095":"134 Seiten.","47139":"134 Seiten.","47141":"134 Seiten."},"edition":{"47095":"","47139":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","47141":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"47095":"Nein","47139":"Nein","47141":"Nein"},"copyright_year":{"47095":"","47139":"","47141":""},"vlb_tix_link":{"47095":"https:\/\/neu.vlbtix.de\/products\/9783787351992?type=gtin","47139":"","47141":""},"defaultValues":{"163":"15"}}; 28827 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 28828 28829 if (typeof window.amxnotif_wrap_attributes === 'function') { 28830 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 28831 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 28832 } 28833 28834 const configurableOptionsComponent = initConfigurableOptions( 28835 '47160', 28836 config 28837 ); 28838 const swatchOptionsComponent = initSwatchOptions( 28839 swatchConfig 28840 ); 28841 28842 // DWS - Configurable product preselect start 28843 const confProdPreSelect = () => { 28844 return { 28845 preselectQuerystringItems() { 28846 var data = {"id":"47095","output":"15"}; 28847 const urlQueryParams = new URLSearchParams(window.location.search); 28848 28849 this.$nextTick(() => { 28850 setTimeout(() => { 28851 const rootEl = this.$root || this.$el; 28852 if (!rootEl) return; 28853 28854 const applySelection = (attrCode, attrValue) => { 28855 if (attrValue === undefined || attrValue === null || attrValue === '') return; 28856 28857 const attributes = Object.values(this.optionConfig.attributes || {}); 28858 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 28859 28860 if (targetAttr) { 28861 const attrId = String(targetAttr.id); 28862 const optionVal = String(attrValue); 28863 28864 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 28865 28866 if (inputEl) { 28867 inputEl.click(); 28868 inputEl.dispatchEvent(new Event('change', { 28869 bubbles: true 28870 })); 28871 } else { 28872 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 28873 if (selectEl) { 28874 selectEl.value = optionVal; 28875 selectEl.dispatchEvent(new Event('change', { 28876 bubbles: true 28877 })); 28878 } 28879 } 28880 28881 this.changeOption(attrId, optionVal, false); 28882 } 28883 }; 28884 28885 if (data && typeof data === 'object') {
28886 Object.keys(data).forEach(key => applySelection(key, data[key])); 28887 } 28888 28889 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 28890 if (attribute && attribute.code) { 28891 let optionValue = urlQueryParams.get(attribute.code); 28892 if (optionValue) { 28893 let optionId = false; 28894 const attributes = Object.values(this.optionConfig.attributes || {}); 28895 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 28896 28897 let found = false; 28898 Object.values(targetAttr.options).map(option => { 28899 if (found === false && option.label === optionValue) { 28900 optionId = option.id; 28901 found = true; 28902 } 28903 }); 28904 28905 const attrId = String(targetAttr.id); 28906 let optionVal = String(optionValue); 28907 if (found) { 28908 optionVal = String(optionId); 28909 } 28910 28911 applySelection(attribute.code, optionVal); 28912 } 28913 } 28914 }); 28915 }, 100); 28916 }); 28917 } 28918 } 28919 }; 28920 // DWS - Configurable product preselect end 28921 28922 const result = Object.assign( 28923 configurableOptionsComponent, 28924 swatchOptionsComponent, { 28925 productId: '47160', 28926 productIndex: 0, 28927 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 28928 showSwatches: false, 28929 precalcOptions: {}, 28930 originalInit: configurableOptionsComponent.init, 28931 init() { 28932 try { 28933 this.precalcOptions = {}; 28934 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 28935 this.preselectQuerystringItems(); 28936 if (Array.isArray(attrSource)) { 28937 attrSource.forEach(attr => { 28938 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 28939 }); 28940 } else if (attrSource && typeof attrSource === 'object') { 28941 Object.keys(attrSource).forEach(id => { 28942 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 28943 }); 28944 } 28945 } catch (e) { 28946 console.error('Pre-calc error:', e); 28947 } 28948 28949 if (typeof this.originalInit === 'function') { 28950 this.originalInit(); 28951 } 28952 28953 try { 28954 this.initShowSwatchesIntersect(); 28955 } catch (e) { 28956 console.error('intersect error:', e); 28957 } 28958 }, 28959 28960 updateGallery() { 28961 if (!this.productIndex) return; 28962 28963 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 28964 method: 'GET', 28965 headers: { 28966 'Content-Type': 'application/json', 28967 'X-Requested-With': 'XMLHttpRequest' 28968 } 28969 }) 28970 .then(response => response.json()) 28971 .then(data => { 28972 if (data && data.medium) { 28973 window.dispatchEvent(new CustomEvent("update-gallery-47160", { 28974 detail: data.medium 28975 })); 28976 } 28977 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 28978 }, 28979 28980 28981 initShowSwatchesIntersect() { 28982 const observer = new IntersectionObserver(entries => { 28983 if (entries[0].isIntersecting) { 28984 this.showSwatches = true; 28985 observer.disconnect(); 28986 } 28987 }, { 28988 rootMargin: '512px' 28989 }); 28990 observer.observe(this.$el); 28991 }, 28992 getOptions(attrId) { 28993 return this.precalcOptions[attrId] || []; 28994 }, 28995 getOptionsByAttrId() { 28996 return this.getOptions(this.$el.dataset.attributeId); 28997 }, 28998 _getItemId() { 28999 if (this.item && this.item.id) return this.item.id; 29000 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 29001 }, 29002 getSwatchOptionHtmlId() { 29003 const itemId = this._getItemId(); 29004 return itemId ? this.$id(`attribute-option-47160-${itemId}`) : ''; 29005 }, 29006 getSwatchOptionHtmlIdGroup() { 29007 const itemId = this._getItemId(); 29008 return itemId ? [`attribute-option-47160-${itemId}`] : []; 29009 }, 29010 getAttributeSwatchData(attributeId) { 29011 const data = Object.assign({}, this.swatchConfig[attributeId]); 29012 if (data['additional_data']) { 29013 try { 29014 data['details'] = JSON.parse(data['additional_data']); 29015 } catch (e) { 29016 data['details'] = {}; 29017 } 29018 } 29019 return data; 29020 }, 29021 getSwatchType(attributeId, optionId) { 29022 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 29023 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 29024 } 29025 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 29026 this.swatchConfig[attributeId].details.swatch_input_type : 29027 "empty"; 29028 if (type === 'visual') { 29029 const config = this.swatchConfig[attributeId]; 29030 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 29031 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 29032 } 29033 // Fallback to first option type 29034 for (const oId in config) { 29035 if (config[oId] && typeof config[oId].type !== 'undefined') { 29036 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 29037 } 29038 } 29039 } 29040 return type; 29041 }, 29042 mapSwatchTypeNumberToTypeCode(type) { 29043 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 29044 }, 29045 isTextSwatch() { 29046 const itemId = this._getItemId(); 29047 if (!this.$el || !itemId) return false;
29048 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29049 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 29050 }, 29051 29052 getSwatchText() { 29053 const itemId = this._getItemId(); 29054 if (this.item) return this.item.label || ''; 29055 if (!this.$el || !itemId) return ''; 29056 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29057 const options = attrId ? this.getOptions(attrId) : []; 29058 const opt = options.find(o => o.id == itemId); 29059 return opt ? opt.label : ''; 29060 }, 29061 getSwatchBackgroundStyle() { 29062 const itemId = this._getItemId(); 29063 if (!this.$el || !itemId) return ''; 29064 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29065 if (!attrId) return ''; 29066 const type = this.getSwatchType(attrId, itemId); 29067 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 29068 this.swatchConfig[attrId][itemId] : 29069 null; 29070 if (!swatchData) return ''; 29071 if (type === "color") return 'background-color:' + swatchData.value; 29072 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 29073 return ''; 29074 }, 29075 swatchOptionClasses() { 29076 const itemId = this._getItemId(); 29077 if (!this.$el || !itemId) return {}; 29078 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29079 return { 29080 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 29081 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 29082 'w-6 h-6': !this.isTextSwatch() 29083 } 29084 }, 29085 29086 onFocusSwatchItem() { 29087 const itemId = this._getItemId(); 29088 if (itemId) this.focusedLabel = itemId; 29089 }, 29090 onChangeOption() { 29091 const itemId = this._getItemId(); 29092 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 29093 if (attrId && itemId) this.changeOption(attrId, itemId); 29094 }, 29095 changeOption(attributeId, value) { 29096 if (value === '') { 29097 return; 29098 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 29099 } else { 29100 this.selectedValues[attributeId] = value; 29101 } 29102 29103 this.findSimpleIndex(); 29104 this.findAllowedAttributeOptions(); 29105 this.updatePrices(); 29106 this.updateGallery(); 29107 29108 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 29109 this.findProductIdsForPartialSelection(this.selectedValues) : []; 29110 29111 const eventDetail = { 29112 productId: this.productId, 29113 optionId: attributeId, 29114 value: value, 29115 productIndex: this.productIndex || 0, 29116 selectedValues: this.selectedValues, 29117 candidates: candidates, 29118 sourceElement: this.$el 29119 }; 29120 29121 // Dispatch for Amasty 29122 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 29123 detail: eventDetail 29124 })); 29125 29126 // Dispatch for Hyva listing 29127 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 29128 detail: eventDetail 29129 })); 29130 }, 29131 29132 29133 clearOptionIfActive() { 29134 const itemId = this._getItemId(); 29135 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 29136 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 29137 this.changeOption(attrId, ''); 29138 29139 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 29140 if (!input && this.$el?.querySelector) { 29141 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 29142 } 29143 if (!input && this.$el?.closest) { 29144 const root = this.$el.closest('[data-product-id]') || this.$el; 29145 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 29146 } 29147 if (input) { 29148 input.checked = false;
29149 } 29150 } 29151 }, 29152 get optionIsEnabled() { 29153 const itemId = this._getItemId(); 29154 if (!this.$el || !itemId) return true; 29155 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29156 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 29157 return !!allowedOptions.find(opt => opt.id == itemId); 29158 }, 29159 get isSelected() { 29160 const itemId = this._getItemId(); 29161 if (!this.$el || !itemId) return false; 29162 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29163 return attrId ? (this.selectedValues[attrId] == itemId) : false; 29164 }, 29165 get isSwatchRequired() { 29166 if (!this.$el) return false; 29167 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29168 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 29169 }, 29170 focusedLabel: false, 29171 activeTooltipItem: false, 29172 tooltipPositionElement: false,
29173 setActiveTooltipItem() { 29174 const itemId = this._getItemId(); 29175 if (!this.$el || !itemId) return; 29176 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29177 this.activeTooltipItem = { 29178 attribute: attrId, 29179 item: itemId, 29180 index: 0 29181 }; 29182 this.tooltipPositionElement = this.$event ? this.$event.target : null; 29183 }, 29184 unsetActiveTooltipItem() { 29185 this.activeTooltipItem = false; 29186 } 29187 }, 29188 confProdPreSelect() 29189 ); 29190 29191 if (result.optionConfig && result.optionConfig.attributes) { 29192 const attributes = result.optionConfig.attributes; 29193 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 29194 let source = attributes; 29195 if (Array.isArray(attributes)) { 29196 source = {}; 29197 attributes.forEach(attr => { 29198 if (attr && attr.id) source[attr.id] = attr; 29199 }); 29200 } 29201 const values = Object.values(source); 29202 const wrapper = Object.assign(values, source); 29203 Object.defineProperty(wrapper, '__amxnotifWrapped', { 29204 value: true, 29205 enumerable: false 29206 }); 29207 result.optionConfig.attributes = wrapper; 29208 } 29209 } 29210 29211 return result; 29212 } 29213 29214 window.addEventListener('alpine:init', () => { 29215 Alpine.data('initConfigurableSwatchOptions_47160', initConfigurableSwatchOptions_47160); 29216 }, { 29217 once: true 29218 }); 29219 </script>
29219 29220 29221 <div x-data="initConfigurableSwatchOptions_47160" x-defer="intersect"> 29222 <div class="pagebuilder-home-hidden"> 29223 29224 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 29225 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 29226 <template x-if="showSwatches"> 29227 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47160-163" role="radiogroup" aria-label="Einband"> 29228 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 29229 <div :data-option-id="item.id" style="display: contents"> 29230 <div x-id="getSwatchOptionHtmlIdGroup"> 29231 <template x-if="optionIsEnabled"> 29232 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
29232self="unsetActiveTooltipItem"> 29233 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47160-163"> 29234 <div> 29235 <template x-if="isTextSwatch"> 29236 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 29237 </template> 29238 <template x-if="!optionIsActive(163, item.id)"> 29239 <div> 29240 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 29241 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 29242 </svg> 29243 </div> 29244 </template> 29245 </div> 29246 </label> 29247 </template> 29248</div> </div> 29249 </template> 29250 </div> 29251 </template> 29252 </div> 29253 </div> 29254 </div> 29255 </div> 29256 29257 <div class="meta py-4 pagebuilder-home-hidden"> 29258 <div x-data="initMarketingShortText_47160()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 29259 <!-- Marketing short text --> 29260 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 29261 </div> 29262 29263 <!-- Short description --> 29264 <div class="short-description"> 29265 Thomas Oehl zeigt in seinem Buch in Auseinandersetzung mit Hegels (und Adornos) Philosophie, dass und wie Materie als aktiv gedacht werden kann. 29266 29267Die Idee einer Aktivität der Materie zieht sich ... <a href="https://meiner.de/fmv_de/materie-als-aktives-gegena-ber-des-subjekts-22892" class="underline">mehr</a> 29268 </div> 29269 </div> 29270 29271 <!-- Series --> 29272 <div class="mb-1"> 29273 <span class="sr-only">Reihe:</span> 29274 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 29275 <span>Blaue Reihe</span> 29276 </a> 29277 </div> 29278 29279 29280 <div class="mb-1"> 29281 <span x-data="initEditionText_47160()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 29282 <!-- Marketing short text --> 29283 <span class="edition-text" x-html="editionText"></span> 2026, 134 Seiten. </span> 29284 </div> 29285 29286 </div> 29287 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 29288 29289 <div class="justify-end" x-data="initPriceBox()" @update-prices-47160.window="updatePrice($event.detail);"> 29290 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47160" data-price-box="product-id-47160"><span class="normal-price"> 29291 <span x-data x-id="['product\u002Dprice\u002D47160']" class="price-container price-final_price tax weee"> 29292 <span class="price-label">Ab</span> 29293 <span class="approx-price">ca. </span> 29294 <span :id="$id('product\u002Dprice\u002D47160')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 29295 </span> 29296</span> 29297 29298 29299</div> </div> 29300 29301 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 29302 <div class="open-access-container open-access-container-47160 flex mt-4 ml-auto sm:mt-0 hidden"> 29303 <div class="text-gray-700"> 29304 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 29305 <a href="" target="_blank" class="open-access-external-link m-auto "> 29306 Kostenlos online lesen </a> 29307 </button> 29308 </div> 29309 </div> 29310 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Materie als aktives Gegenüber des Subjekts" aria-label="In den Warenkorb Materie als aktives Gegenüber des Subjekts" data-addto="cart"> 29311 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 29312 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
293120 014 0z"></path> 29313</svg> 29314 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 29315 In den Warenkorb </span> 29316 </button> 29317 29318<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47160)" aria-label="Zur Wunschliste hinzufügen Materie als aktives Gegenüber des Subjekts" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 29319 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 29320 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 29321</svg> 29322</button> 29323 </div> 29324 </div> 29325 </div> 29326
29326<script> 29327 function initMarketingShortText_47160() { 29328 var marketingShortTextConfig = {}; 29329 if (typeof window.initConfigurableSwatchOptions_47160 === "function") { 29330 var fullConfig = window.initConfigurableSwatchOptions_47160().optionConfig 29331 var marketingShortTextConfig = fullConfig.marketing_short_text; 29332 } 29333 return { 29334 marketingShortText: '', 29335 config: marketingShortTextConfig, 29336 productId: '47160', 29337 getMarketingShortText(detail) { 29338 this.marketingShortText = detail.productIndex ? 29339 this.config[detail.productIndex] : 29340 null; 29341 }, 29342 eventListeners: { 29343 ['@listing-configurable-selection-changed.window'](event) { 29344 if (this.productId == event.detail.productId) { 29345 this.getMarketingShortText(event.detail); 29346 } 29347 29348 } 29349 } 29350 } 29351 } 29352 29353 function initEditionText_47160() { 29354 var editionTextConfig = {}; 29355 if (typeof window.initConfigurableSwatchOptions_47160 === "function") { 29356 var fullConfig = window.initConfigurableSwatchOptions_47160().optionConfig 29357 var editionTextConfig = fullConfig.edition; 29358 } 29359 return { 29360 editionText: '', 29361 config: editionTextConfig, 29362 productId: '47160', 29363 getEditionText(detail) { 29364 this.editionText = detail.productIndex ? 29365 this.config[detail.productIndex] : 29366 null; 29367 }, 29368 eventListeners: { 29369 ['@listing-configurable-selection-changed.window'](event) { 29370 if (this.productId == event.detail.productId) { 29371 this.getEditionText(event.detail); 29372 } 29373 29374 } 29375 } 29376 } 29377 } 29378 </script>
29378 29379 </form> 29380 29381 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46699/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17982"> 29382 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="46699"> 29383 <a href="https://meiner.de/fmv_de/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 29384 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46699.window="$el.src = $event.detail" alt="Von süßen Lügen und bilderlosen Bildern" title="Von süßen Lügen und bilderlosen Bildern" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787349517_1.jpg" :style="{ 29385 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 29386 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 29387 }"> 29388 </a> 29389 <div class="product-info flex flex-col flex-grow "> 29390 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 29391 <div class="mb-2 text-sm text-gray-500 font-medium"> 29392 <a href="https://meiner.de/fmv_de/person/Josef-Fruchtl-3439/" class="mb-2"> 29393 Josef Früchtl </a> 29394 </div> 29395 <a class="product-item-link" href="https://meiner.de/fmv_de/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982"> 29396 Von süßen Lügen und bilderlosen Bildern </a> 29397 </div> 29398 29399 <div x-data="initEditionText_46699()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 29400 <!-- Marketing short text --> 29401 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 29402 </div> 29403 </div> 29404 29405 <div class="py-1 grid mb-4 "> 29406 29407 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46699,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46699,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46488":"1","46737":"1","46736":"1"},"childProductsAlertStatus":{"46488":"0","46737":"0","46736":"0"},"indexMapping":{"163:15":46488,"163:9":46737,"163:8":46736},"availabilityMessages":{"46488":"Lieferbar innerhalb von 3-5 Tagen","46737":"Download sofort verf\u00fcgbar","46736":"Download sofort verf\u00fcgbar"},"openAccess":{"46699":{"status":0},"46488":{"status":0},"46737":{"status":0},"46736":{"status":0}}},"availabilityMessages":{"46488":"Lieferbar innerhalb von 3-5 Tagen","46737":"Download sofort verf\u00fcgbar","46736":"Download sofort verf\u00fcgbar"},"openAccess":{"46699":{"status":0},"46488":{"status":0},"46737":{"status":0},"46736":{"status":0}}}'> 29408 <template x-if="containerVisible"> 29409 <!-- Popup Trigger --> 29410 <div> 29411 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 29412 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
29413 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 29414 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 29415<title>bell</title></svg> 29416</span> 29417 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 29418 29419 <!-- Popup Modal --> 29420 <template x-if="showModal"> 29421 <template x-teleport=".page-wrapper"> 29422 <div x-cloak class="fixed inset-0 flex items-center justify-center 29423 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 29424 <div class="relative bg-white rounded-lg shadow-xl 29425 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 29426 <div class="p-6"> 29427 <!-- Subscription Form for Popup --> 29428 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 29429 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 29430 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 29431 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 29432 29433 <div class="flex flex-col gap-3"> 29434 <div class="flex-grow grow"> 29435 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 29436 shadow-xs focus:outline-none focus:outline-hidden 29437 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 29438 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 29439 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 29440 </div> 29441 <input type="hidden" name="product_id" :value="currentProductId"> 29442 <input type="hidden" name="type" value="email"> 29443 29444 29445 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 29446 29447 <div class="amxnotif_guest_action"> 29448 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 29449 rounded-md focus:outline-none 29450 focus:outline-hidden focus:ring-2 29451 focus:ring-offset-2 disabled:opacity-50 29452 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 29453 Benachrichtigen </button> 29454 </div> 29455 </div> 29456 29457 <div class="flex items-start pt-2"> 29458 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 29459 text-blue-600 border-gray-300 rounded-sm"> 29460 <label class="amxnotif-stock-gdrp-label cursor-pointer 29461 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 29462 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 29463 </div> 29464 </form> 29465 </div> 29466 29467 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 29468 hover:text-gray-600 transition-colors" aria-label="Schließen"> 29469 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 29470 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 29471<title>x</title></svg> 29472 </button> 29473 </div> 29474 </div> 29475 </template> 29476 </template> 29477 </div> 29478 </template> 29479 </div> 29480 29481<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46699" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46699,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46488":"1","46737":"1","46736":"1"}
29481,"childProductsAlertStatus":{"46488":"0","46737":"0","46736":"0"},"indexMapping":"{\u0022163:15\u0022:46488,\u0022163:9\u0022:46737,\u0022163:8\u0022:46736}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46699,"availabilityMessages":{"46488":"Lieferbar innerhalb von 3-5 Tagen","46737":"Download sofort verf\u00fcgbar","46736":"Download sofort verf\u00fcgbar"},"openAccess":{"46699":{"status":0},"46488":{"status":0},"46737":{"status":0},"46736":{"status":0}}}'> 29482 29483 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 29484 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 29485 <span x-html="optionsLabelText"></span> 29486 </p> 29487</div> </div> 29488 29489
29489<script> 29490 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 29491 try { 29492 const attributes = (config && config.attributes) ? config.attributes : null; 29493 if (!attributes) return []; 29494 let attr = null; 29495 if (Array.isArray(attributes)) { 29496 for (let i = 0; i < attributes.length; i++) { 29497 const a = attributes[i]; 29498 if (a && a.id == attrId) { 29499 attr = a; 29500 break; 29501 } 29502 } 29503 } else { 29504 attr = attributes[attrId]; 29505 } 29506 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 29507 } catch (e) { 29508 return []; 29509 } 29510 }; 29511 29512 function initConfigurableSwatchOptions_46699() { 29513 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46488"]},{"id":"8","label":"PDF","products":["46736"]},{"id":"9","label":"EPUB","products":["46737"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46488":{"baseOldPrice":{"amount":23.271027037383},"oldPrice":{"amount":24.9},"basePrice":{"amount":23.271027037383},"finalPrice":{"amount":24.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46737":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46736":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":16.798318327731},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"46699","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46488":{"163":"15"},"46737":{"163":"9"},"46736":{"163":"8"}},"salable":{"163":{"15":["46488"],"9":["46737"],"8":["46736"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46488":"004949","46737":"004951","46736":"004950"},"output":{"46488":"Kartoniert","46736":"PDF","46737":"EPUB"},"original_name":{"46488":"","46736":"","46737":""},"openaccess_license_link":{"46488":"","46736":"","46737":""},"openaccess_license_name":{"46488":"","46736":"","46737":""},"openaccess_external_link":{"46488":"","46736":"","46737":""},"gpsr_safety_info":{"46488":"","46736":"","46737":""},"description":{"46488":"Die Filmphilosophie ist im Laufe des 20. Jahrhunderts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo M\u00fcnsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried Kracauer \u00fcber Benjamin und Adorno bis zu Stanley Cavell und Gilles Deleuze sind eine Vielzahl an philosophischen Abhandlungen und Theorien zum Film entstanden, die den Film schlie\u00dflich auf eine neue Reflexions- und Bedeutungsebene gehoben haben.<br\/><br\/>Von Beginn an zogen Fragen nach dem Verh\u00e4ltnis von Film und Kunst, Film und Gesellschaft, der anregenden Kraft cinematischer Fiktionen und Imaginationen, dem Stellenwert von Emotionen und der besonderen Art von Narration das theoretische Interesse auf sich. Josef Fr\u00fcchtl f\u00fchrt in diesem Band zahlreiche Beitr\u00e4ge zur Philosophie des Films zusammen: von Adornos Pl\u00e4doyer f\u00fcr einen Film der unsichtbaren, bilderlosen Bilder \u00fcber die Selbstreflexion der Helden-figur im Kino, die De-\/Legitimation einer panoptischen Gesellschaft in einem Film wie \u00bbMinority Report\u00ab, metaphysische Gro\u00dferz\u00e4hlungen wie etwa \u00bbAvatar\u00ab, filmische Verarbeitungen von traumatisierenden Ereignissen im Film \u00bbUnited 93\u00ab und im Science-Fiction am Beispiel von Christopher Nolans Film \u00bbInterstellar\u00ab bis zur Filmkom\u00f6die.<br\/><br\/>Das Buch bietet damit einen guten, anschaulichen Einstieg in die Filmphilosophie.","46736":"Die Filmphilosophie ist im Laufe des 20. Jahrhun
29513derts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo M\u00fcnsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried Kracauer \u00fcber Benjamin und Adorno bis zu Stanley Cavell und Gilles Deleuze sind eine Vielzahl an philosophischen Abhandlungen und Theorien zum Film entstanden, die den Film schlie\u00dflich auf eine neue Reflexions- und Bedeutungsebene gehoben haben.<br\/><br\/>Von Beginn an zogen Fragen nach dem Verh\u00e4ltnis von Film und Kunst, Film und Gesellschaft, der anregenden Kraft cinematischer Fiktionen und Imaginationen, dem Stellenwert von Emotionen und der besonderen Art von Narration das theoretische Interesse auf sich. Josef Fr\u00fcchtl f\u00fchrt in diesem Band zahlreiche Beitr\u00e4ge zur Philosophie des Films zusammen: von Adornos Pl\u00e4doyer f\u00fcr einen Film der unsichtbaren, bilderlosen Bilder \u00fcber die Selbstreflexion der Helden-figur im Kino, die De-\/Legitimation einer panoptischen Gesellschaft in einem Film wie \u00bbMinority Report\u00ab, metaphysische Gro\u00dferz\u00e4hlungen wie etwa \u00bbAvatar\u00ab, filmische Verarbeitungen von traumatisierenden Ereignissen im Film \u00bbUnited 93\u00ab und im Science-Fiction am Beispiel von Christopher Nolans Film \u00bbInterstellar\u00ab bis zur Filmkom\u00f6die.<br\/><br\/>Das Buch bietet damit einen guten, anschaulichen Einstieg in die Filmphilosophie.","46737":"Die Filmphilosophie ist im Laufe des 20. Jahrhunderts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo M\u00fcnsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried Kracauer \u00fcber Benjamin und Adorno bis zu Stanley Cavell und Gilles Deleuze sind eine Vielzahl an philosophischen Abhandlungen und Theorien zum Film entstanden, die den Film schlie\u00dflich auf eine neue Reflexions- und Bedeutungsebene gehoben haben.<br\/><br\/>Von Beginn an zogen Fragen nach dem Verh\u00e4ltnis von Film und Kunst, Film und Gesellschaft, der anregenden Kraft cinematischer Fiktionen und Imaginationen, dem Stellenwert von Emotionen und der besonderen Art von Narration das theoretische Interesse auf sich. Josef Fr\u00fcchtl f\u00fchrt in diesem Band zahlreiche Beitr\u00e4ge zur Philosophie des Films zusammen: von Adornos Pl\u00e4doyer f\u00fcr einen Film der unsichtbaren, bilderlosen Bilder \u00fcber die Selbstreflexion der Helden-figur im Kino, die De-\/Legitimation einer panoptischen Gesellschaft in einem Film wie \u00bbMinority Report\u00ab, metaphysische Gro\u00dferz\u00e4hlungen wie etwa \u00bbAvatar\u00ab, filmische Verarbeitungen von traumatisierenden Ereignissen im Film \u00bbUnited 93\u00ab und im Science-Fiction am Beispiel von Christopher Nolans Film \u00bbInterstellar\u00ab bis zur Filmkom\u00f6die.<br\/><br\/>Das Buch bietet damit einen guten, anschaulichen Einstieg in die Filmphilosophie."},"doi":{"46488":"","46736":"10.28937\/978-3-7873-4950-0","46737":""},"isbn":{"46488":"978-3-7873-4949-4","46736":"978-3-7873-4950-0","46737":"978-3-7873-4951-7"},"marketing_short_text":{"46488":"","46736":"","46737":""},"recension_text":{"46488":"","46736":"","46737":""},"language":{"46488":"","46736":"","46737":""},"cover":{"46488":"Kartoniert","46736":"","46737":""},"pages":{"46488":"208 Seiten.","46736":"208 Seiten.","46737":"208 Seiten."},"edition":{"46488":"","46736":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","46737":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46488":"Nein","46736":"Nein","46737":"Nein"},"copyright_year":{"46488":"","46736":"","46737":""},"vlb_tix_link":{"46488":"https:\/\/neu.vlbtix.de\/products\/9783787349494?type=gtin","46736":"","46737":""},"defaultValues":{"163":"15"}}; 29514 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 29515 29516 if (typeof window.amxnotif_wrap_attributes === 'function') { 29517 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 29518 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 29519 } 29520 29521 const configurableOptionsComponent = initConfigurableOptions( 29522 '46699', 29523 config 29524 ); 29525 const swatchOptionsComponent = initSwatchOptions( 29526 swatchConfig 29527 ); 29528 29529 // DWS - Configurable product preselect start 29530 const confProdPreSelect = () => { 29531 return { 29532 preselectQuerystringItems() { 29533 var data = {"id":"46488","output":"15"}; 29534 const urlQueryParams = new URLSearchParams(window.location.search); 29535 29536 this.$nextTick(() => { 29537 setTimeout(() => { 29538 const rootEl = this.$root || this.$el; 29539 if (!rootEl) return; 29540 29541 const applySelection = (attrCode, attrValue) => { 29542 if (attrValue === undefined || attrValue === null || attrValue === '') return; 29543 29544 const attributes = Object.values(this.optionConfig.attributes || {}); 29545 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 29546 29547 if (targetAttr) { 29548 const attrId = String(targetAttr.id); 29549 const optionVal = String(attrValue); 29550 29551 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 29552 29553 if (inputEl) { 29554 inputEl.click(); 29555 inputEl.dispatchEvent(new Event('change', { 29556 bubbles: true 29557 })); 29558 } else { 29559 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 29560 if (selectEl) { 29561 selectEl.value = optionVal; 29562 selectEl.dispatchEvent(new Event('change', { 29563 bubbles: true 29564 })); 29565 } 29566 } 29567 29568 this.changeOption(attrId, optionVal, false); 29569 } 29570 }; 29571 29572 if (data && typeof data === 'object') {
29573 Object.keys(data).forEach(key => applySelection(key, data[key])); 29574 } 29575 29576 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 29577 if (attribute && attribute.code) { 29578 let optionValue = urlQueryParams.get(attribute.code); 29579 if (optionValue) { 29580 let optionId = false; 29581 const attributes = Object.values(this.optionConfig.attributes || {}); 29582 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 29583 29584 let found = false; 29585 Object.values(targetAttr.options).map(option => { 29586 if (found === false && option.label === optionValue) { 29587 optionId = option.id; 29588 found = true; 29589 } 29590 }); 29591 29592 const attrId = String(targetAttr.id); 29593 let optionVal = String(optionValue); 29594 if (found) { 29595 optionVal = String(optionId); 29596 } 29597 29598 applySelection(attribute.code, optionVal); 29599 } 29600 } 29601 }); 29602 }, 100); 29603 }); 29604 } 29605 } 29606 }; 29607 // DWS - Configurable product preselect end 29608 29609 const result = Object.assign( 29610 configurableOptionsComponent, 29611 swatchOptionsComponent, { 29612 productId: '46699', 29613 productIndex: 0, 29614 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 29615 showSwatches: false, 29616 precalcOptions: {}, 29617 originalInit: configurableOptionsComponent.init, 29618 init() { 29619 try { 29620 this.precalcOptions = {}; 29621 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 29622 this.preselectQuerystringItems(); 29623 if (Array.isArray(attrSource)) { 29624 attrSource.forEach(attr => { 29625 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 29626 }); 29627 } else if (attrSource && typeof attrSource === 'object') { 29628 Object.keys(attrSource).forEach(id => { 29629 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 29630 }); 29631 } 29632 } catch (e) { 29633 console.error('Pre-calc error:', e); 29634 } 29635 29636 if (typeof this.originalInit === 'function') { 29637 this.originalInit(); 29638 } 29639 29640 try { 29641 this.initShowSwatchesIntersect(); 29642 } catch (e) { 29643 console.error('intersect error:', e); 29644 } 29645 }, 29646 29647 updateGallery() { 29648 if (!this.productIndex) return; 29649 29650 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 29651 method: 'GET', 29652 headers: { 29653 'Content-Type': 'application/json', 29654 'X-Requested-With': 'XMLHttpRequest' 29655 } 29656 }) 29657 .then(response => response.json()) 29658 .then(data => { 29659 if (data && data.medium) { 29660 window.dispatchEvent(new CustomEvent("update-gallery-46699", { 29661 detail: data.medium 29662 })); 29663 } 29664 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 29665 }, 29666 29667 29668 initShowSwatchesIntersect() { 29669 const observer = new IntersectionObserver(entries => { 29670 if (entries[0].isIntersecting) { 29671 this.showSwatches = true; 29672 observer.disconnect(); 29673 } 29674 }, { 29675 rootMargin: '512px' 29676 }); 29677 observer.observe(this.$el); 29678 }, 29679 getOptions(attrId) { 29680 return this.precalcOptions[attrId] || []; 29681 }, 29682 getOptionsByAttrId() { 29683 return this.getOptions(this.$el.dataset.attributeId); 29684 }, 29685 _getItemId() { 29686 if (this.item && this.item.id) return this.item.id; 29687 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 29688 }, 29689 getSwatchOptionHtmlId() { 29690 const itemId = this._getItemId(); 29691 return itemId ? this.$id(`attribute-option-46699-${itemId}`) : ''; 29692 }, 29693 getSwatchOptionHtmlIdGroup() { 29694 const itemId = this._getItemId(); 29695 return itemId ? [`attribute-option-46699-${itemId}`] : []; 29696 }, 29697 getAttributeSwatchData(attributeId) { 29698 const data = Object.assign({}, this.swatchConfig[attributeId]); 29699 if (data['additional_data']) { 29700 try { 29701 data['details'] = JSON.parse(data['additional_data']); 29702 } catch (e) { 29703 data['details'] = {}; 29704 } 29705 } 29706 return data; 29707 }, 29708 getSwatchType(attributeId, optionId) { 29709 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 29710 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 29711 } 29712 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 29713 this.swatchConfig[attributeId].details.swatch_input_type : 29714 "empty"; 29715 if (type === 'visual') { 29716 const config = this.swatchConfig[attributeId]; 29717 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 29718 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 29719 } 29720 // Fallback to first option type 29721 for (const oId in config) { 29722 if (config[oId] && typeof config[oId].type !== 'undefined') { 29723 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 29724 } 29725 } 29726 } 29727 return type; 29728 }, 29729 mapSwatchTypeNumberToTypeCode(type) { 29730 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 29731 }, 29732 isTextSwatch() { 29733 const itemId = this._getItemId(); 29734 if (!this.$el || !itemId) return false;
29735 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29736 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 29737 }, 29738 29739 getSwatchText() { 29740 const itemId = this._getItemId(); 29741 if (this.item) return this.item.label || ''; 29742 if (!this.$el || !itemId) return ''; 29743 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29744 const options = attrId ? this.getOptions(attrId) : []; 29745 const opt = options.find(o => o.id == itemId); 29746 return opt ? opt.label : ''; 29747 }, 29748 getSwatchBackgroundStyle() { 29749 const itemId = this._getItemId(); 29750 if (!this.$el || !itemId) return ''; 29751 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29752 if (!attrId) return ''; 29753 const type = this.getSwatchType(attrId, itemId); 29754 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 29755 this.swatchConfig[attrId][itemId] : 29756 null; 29757 if (!swatchData) return ''; 29758 if (type === "color") return 'background-color:' + swatchData.value; 29759 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 29760 return ''; 29761 }, 29762 swatchOptionClasses() { 29763 const itemId = this._getItemId(); 29764 if (!this.$el || !itemId) return {}; 29765 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29766 return { 29767 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 29768 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 29769 'w-6 h-6': !this.isTextSwatch() 29770 } 29771 }, 29772 29773 onFocusSwatchItem() { 29774 const itemId = this._getItemId(); 29775 if (itemId) this.focusedLabel = itemId; 29776 }, 29777 onChangeOption() { 29778 const itemId = this._getItemId(); 29779 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 29780 if (attrId && itemId) this.changeOption(attrId, itemId); 29781 }, 29782 changeOption(attributeId, value) { 29783 if (value === '') { 29784 return; 29785 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 29786 } else { 29787 this.selectedValues[attributeId] = value; 29788 } 29789 29790 this.findSimpleIndex(); 29791 this.findAllowedAttributeOptions(); 29792 this.updatePrices(); 29793 this.updateGallery(); 29794 29795 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 29796 this.findProductIdsForPartialSelection(this.selectedValues) : []; 29797 29798 const eventDetail = { 29799 productId: this.productId, 29800 optionId: attributeId, 29801 value: value, 29802 productIndex: this.productIndex || 0, 29803 selectedValues: this.selectedValues, 29804 candidates: candidates, 29805 sourceElement: this.$el 29806 }; 29807 29808 // Dispatch for Amasty 29809 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 29810 detail: eventDetail 29811 })); 29812 29813 // Dispatch for Hyva listing 29814 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 29815 detail: eventDetail 29816 })); 29817 }, 29818 29819 29820 clearOptionIfActive() { 29821 const itemId = this._getItemId(); 29822 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 29823 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 29824 this.changeOption(attrId, ''); 29825 29826 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 29827 if (!input && this.$el?.querySelector) { 29828 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 29829 } 29830 if (!input && this.$el?.closest) { 29831 const root = this.$el.closest('[data-product-id]') || this.$el; 29832 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 29833 } 29834 if (input) { 29835 input.checked = false;
29836 } 29837 } 29838 }, 29839 get optionIsEnabled() { 29840 const itemId = this._getItemId(); 29841 if (!this.$el || !itemId) return true; 29842 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29843 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 29844 return !!allowedOptions.find(opt => opt.id == itemId); 29845 }, 29846 get isSelected() { 29847 const itemId = this._getItemId(); 29848 if (!this.$el || !itemId) return false; 29849 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29850 return attrId ? (this.selectedValues[attrId] == itemId) : false; 29851 }, 29852 get isSwatchRequired() { 29853 if (!this.$el) return false; 29854 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29855 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 29856 }, 29857 focusedLabel: false, 29858 activeTooltipItem: false, 29859 tooltipPositionElement: false,
29860 setActiveTooltipItem() { 29861 const itemId = this._getItemId(); 29862 if (!this.$el || !itemId) return; 29863 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 29864 this.activeTooltipItem = { 29865 attribute: attrId, 29866 item: itemId, 29867 index: 0 29868 }; 29869 this.tooltipPositionElement = this.$event ? this.$event.target : null; 29870 }, 29871 unsetActiveTooltipItem() { 29872 this.activeTooltipItem = false; 29873 } 29874 }, 29875 confProdPreSelect() 29876 ); 29877 29878 if (result.optionConfig && result.optionConfig.attributes) { 29879 const attributes = result.optionConfig.attributes; 29880 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 29881 let source = attributes; 29882 if (Array.isArray(attributes)) { 29883 source = {}; 29884 attributes.forEach(attr => { 29885 if (attr && attr.id) source[attr.id] = attr; 29886 }); 29887 } 29888 const values = Object.values(source); 29889 const wrapper = Object.assign(values, source); 29890 Object.defineProperty(wrapper, '__amxnotifWrapped', { 29891 value: true, 29892 enumerable: false 29893 }); 29894 result.optionConfig.attributes = wrapper; 29895 } 29896 } 29897 29898 return result; 29899 } 29900 29901 window.addEventListener('alpine:init', () => { 29902 Alpine.data('initConfigurableSwatchOptions_46699', initConfigurableSwatchOptions_46699); 29903 }, { 29904 once: true 29905 }); 29906 </script>
29906 29907 29908 <div x-data="initConfigurableSwatchOptions_46699" x-defer="intersect"> 29909 <div class="pagebuilder-home-hidden"> 29910 29911 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 29912 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 29913 <template x-if="showSwatches"> 29914 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46699-163" role="radiogroup" aria-label="Einband"> 29915 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 29916 <div :data-option-id="item.id" style="display: contents"> 29917 <div x-id="getSwatchOptionHtmlIdGroup"> 29918 <template x-if="optionIsEnabled"> 29919 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
29919self="unsetActiveTooltipItem"> 29920 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46699-163"> 29921 <div> 29922 <template x-if="isTextSwatch"> 29923 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 29924 </template> 29925 <template x-if="!optionIsActive(163, item.id)"> 29926 <div> 29927 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 29928 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 29929 </svg> 29930 </div> 29931 </template> 29932 </div> 29933 </label> 29934 </template> 29935</div> </div> 29936 </template> 29937 </div> 29938 </template> 29939 </div> 29940 </div> 29941 </div> 29942 </div> 29943 29944 <div class="meta py-4 pagebuilder-home-hidden"> 29945 <div x-data="initMarketingShortText_46699()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 29946 <!-- Marketing short text --> 29947 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 29948 </div> 29949 29950 <!-- Short description --> 29951 <div class="short-description"> 29952 Die Filmphilosophie ist im Laufe des 20. Jahrhunderts zu einem kleinen, aber etablierten Bereich der Philosophie geworden. Von Hugo Münsterberg (1916), Rudolf Arnheim, Rudolf Harms und Siegfried ... <a href="https://meiner.de/fmv_de/von-sa-a-en-la-gen-und-bilderlosen-bildern-17982" class="underline">mehr</a> 29953 </div> 29954 </div> 29955 29956 <!-- Series --> 29957 <div class="mb-1"> 29958 <span class="sr-only">Reihe:</span> 29959 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 29960 <span>Blaue Reihe</span> 29961 </a> 29962 </div> 29963 29964 29965 <div class="mb-1"> 29966 <span x-data="initEditionText_46699()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 29967 <!-- Marketing short text --> 29968 <span class="edition-text" x-html="editionText"></span> 2026, 208 Seiten. </span> 29969 </div> 29970 29971 </div> 29972 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 29973 29974 <div class="justify-end" x-data="initPriceBox()" @update-prices-46699.window="updatePrice($event.detail);"> 29975 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46699" data-price-box="product-id-46699"><span class="normal-price"> 29976 <span x-data x-id="['product\u002Dprice\u002D46699']" class="price-container price-final_price tax weee"> 29977 <span class="price-label">Ab</span> 29978 <span class="approx-price">ca. </span> 29979 <span :id="$id('product\u002Dprice\u002D46699')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 29980 </span> 29981</span> 29982 29983 29984</div> </div> 29985 29986 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 29987 <div class="open-access-container open-access-container-46699 flex mt-4 ml-auto sm:mt-0 hidden"> 29988 <div class="text-gray-700"> 29989 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 29990 <a href="" target="_blank" class="open-access-external-link m-auto "> 29991 Kostenlos online lesen </a> 29992 </button> 29993 </div> 29994 </div> 29995 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Von süßen Lügen und bilderlosen Bildern" aria-label="In den Warenkorb Von süßen Lügen und bilderlosen Bildern" data-addto="cart"> 29996 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 29997 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
299970 014 0z"></path> 29998</svg> 29999 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 30000 In den Warenkorb </span> 30001 </button> 30002 30003<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46699)" aria-label="Zur Wunschliste hinzufügen Von süßen Lügen und bilderlosen Bildern" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 30004 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 30005 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 30006</svg> 30007</button> 30008 </div> 30009 </div> 30010 </div> 30011
30011<script> 30012 function initMarketingShortText_46699() { 30013 var marketingShortTextConfig = {}; 30014 if (typeof window.initConfigurableSwatchOptions_46699 === "function") { 30015 var fullConfig = window.initConfigurableSwatchOptions_46699().optionConfig 30016 var marketingShortTextConfig = fullConfig.marketing_short_text; 30017 } 30018 return { 30019 marketingShortText: '', 30020 config: marketingShortTextConfig, 30021 productId: '46699', 30022 getMarketingShortText(detail) { 30023 this.marketingShortText = detail.productIndex ? 30024 this.config[detail.productIndex] : 30025 null; 30026 }, 30027 eventListeners: { 30028 ['@listing-configurable-selection-changed.window'](event) { 30029 if (this.productId == event.detail.productId) { 30030 this.getMarketingShortText(event.detail); 30031 } 30032 30033 } 30034 } 30035 } 30036 } 30037 30038 function initEditionText_46699() { 30039 var editionTextConfig = {}; 30040 if (typeof window.initConfigurableSwatchOptions_46699 === "function") { 30041 var fullConfig = window.initConfigurableSwatchOptions_46699().optionConfig 30042 var editionTextConfig = fullConfig.edition; 30043 } 30044 return { 30045 editionText: '', 30046 config: editionTextConfig, 30047 productId: '46699', 30048 getEditionText(detail) { 30049 this.editionText = detail.productIndex ? 30050 this.config[detail.productIndex] : 30051 null; 30052 }, 30053 eventListeners: { 30054 ['@listing-configurable-selection-changed.window'](event) { 30055 if (this.productId == event.detail.productId) { 30056 this.getEditionText(event.detail); 30057 } 30058 30059 } 30060 } 30061 } 30062 } 30063 </script>
30063 30064 </form> 30065 30066 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47158/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21427"> 30067 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47158"> 30068 <a href="https://meiner.de/fmv_de/rousseau-21427" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 30069 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47158.window="$el.src = $event.detail" alt="Rousseau" title="Rousseau" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351299_1.jpg" :style="{ 30070 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 30071 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 30072 }"> 30073 </a> 30074 <div class="product-info flex flex-col flex-grow "> 30075 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 30076 <div class="mb-2 text-sm text-gray-500 font-medium"> 30077 <a href="https://meiner.de/fmv_de/person/Skadi-Siiri-Krause-21426/" class="mb-2"> 30078 Skadi Siiri Krause </a> 30079 </div> 30080 <a class="product-item-link" href="https://meiner.de/fmv_de/rousseau-21427"> 30081 Rousseau </a> 30082 </div> 30083 30084 <div x-data="initEditionText_47158()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 30085 <!-- Marketing short text --> 30086 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 30087 </div> 30088 </div> 30089 30090 <div class="py-1 grid mb-4 "> 30091 30092 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47158,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47158,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46503":"1","47114":"1","47115":"1"},"childProductsAlertStatus":{"46503":"0","47114":"0","47115":"0"},"indexMapping":{"163:15":46503,"163:8":47114,"163:9":47115},"availabilityMessages":{"46503":"Lieferbar innerhalb von 3-5 Tagen","47114":"Download sofort verf\u00fcgbar","47115":"Download sofort verf\u00fcgbar"},"openAccess":{"47158":{"status":0},"46503":{"status":0},"47114":{"status":0},"47115":{"status":0}}},"availabilityMessages":{"46503":"Lieferbar innerhalb von 3-5 Tagen","47114":"Download sofort verf\u00fcgbar","47115":"Download sofort verf\u00fcgbar"},"openAccess":{"47158":{"status":0},"46503":{"status":0},"47114":{"status":0},"47115":{"status":0}}}'> 30093 <template x-if="containerVisible"> 30094 <!-- Popup Trigger --> 30095 <div> 30096 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 30097 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
30098 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 30099 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 30100<title>bell</title></svg> 30101</span> 30102 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 30103 30104 <!-- Popup Modal --> 30105 <template x-if="showModal"> 30106 <template x-teleport=".page-wrapper"> 30107 <div x-cloak class="fixed inset-0 flex items-center justify-center 30108 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 30109 <div class="relative bg-white rounded-lg shadow-xl 30110 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 30111 <div class="p-6"> 30112 <!-- Subscription Form for Popup --> 30113 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 30114 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 30115 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 30116 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 30117 30118 <div class="flex flex-col gap-3"> 30119 <div class="flex-grow grow"> 30120 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 30121 shadow-xs focus:outline-none focus:outline-hidden 30122 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 30123 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 30124 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 30125 </div> 30126 <input type="hidden" name="product_id" :value="currentProductId"> 30127 <input type="hidden" name="type" value="email"> 30128 30129 30130 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 30131 30132 <div class="amxnotif_guest_action"> 30133 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 30134 rounded-md focus:outline-none 30135 focus:outline-hidden focus:ring-2 30136 focus:ring-offset-2 disabled:opacity-50 30137 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 30138 Benachrichtigen </button> 30139 </div> 30140 </div> 30141 30142 <div class="flex items-start pt-2"> 30143 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 30144 text-blue-600 border-gray-300 rounded-sm"> 30145 <label class="amxnotif-stock-gdrp-label cursor-pointer 30146 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 30147 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 30148 </div> 30149 </form> 30150 </div> 30151 30152 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 30153 hover:text-gray-600 transition-colors" aria-label="Schließen"> 30154 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 30155 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 30156<title>x</title></svg> 30157 </button> 30158 </div> 30159 </div> 30160 </template> 30161 </template> 30162 </div> 30163 </template> 30164 </div> 30165 30166<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47158" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47158,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46503":"1","47114":"1","47115":"1"},"childProductsAlertStatus":{"46503":"0","47114":"0","47115":"0"},"indexMapping":"{\u0022163:15\u0022:46503,\u0022163:8\u0022:47114,\u0022163:9\u0022:47115}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47158,"availabilityMessages":{"46503":"Lieferbar innerhalb von 3-5 Tagen","47114":"Download sofort verf\u00fcgbar","47115":"Download sofort verf\u00fcgbar"},"openAccess":{"47158":{"status":0},"46503":{"status":0},"47114":{"status":0},"47115":{"status":0}}}'> 30167 30168 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
30169 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 30170 <span x-html="optionsLabelText"></span> 30171 </p> 30172</div> </div> 30173 30174
30174<script> 30175 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 30176 try { 30177 const attributes = (config && config.attributes) ? config.attributes : null; 30178 if (!attributes) return []; 30179 let attr = null; 30180 if (Array.isArray(attributes)) { 30181 for (let i = 0; i < attributes.length; i++) { 30182 const a = attributes[i]; 30183 if (a && a.id == attrId) { 30184 attr = a; 30185 break; 30186 } 30187 } 30188 } else { 30189 attr = attributes[attrId]; 30190 } 30191 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 30192 } catch (e) { 30193 return []; 30194 } 30195 }; 30196 30197 function initConfigurableSwatchOptions_47158() { 30198 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46503"]},{"id":"8","label":"PDF","products":["47114"]},{"id":"9","label":"EPUB","products":["47115"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46503":{"baseOldPrice":{"amount":32.616821429907},"oldPrice":{"amount":34.9},"basePrice":{"amount":32.616821429907},"finalPrice":{"amount":34.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47114":{"baseOldPrice":{"amount":24.289718626168},"oldPrice":{"amount":25.99},"basePrice":{"amount":24.289718626168},"finalPrice":{"amount":25.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47115":{"baseOldPrice":{"amount":24.289718626168},"oldPrice":{"amount":25.99},"basePrice":{"amount":24.289718626168},"finalPrice":{"amount":25.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":24.289718626168},"oldPrice":{"amount":25.99},"basePrice":{"amount":21.840335134454},"finalPrice":{"amount":25.99},"isApproxPrice":null},"productId":"47158","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46503":{"163":"15"},"47114":{"163":"8"},"47115":{"163":"9"}},"salable":{"163":{"15":["46503"],"8":["47114"],"9":["47115"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46503":"005127","47114":"005128","47115":"005129"},"output":{"46503":"Kartoniert","47114":"PDF","47115":"EPUB"},"original_name":{"46503":"","47114":"","47115":""},"openaccess_license_link":{"46503":"","47114":"","47115":""},"openaccess_license_name":{"46503":"","47114":"","47115":""},"openaccess_external_link":{"46503":"","47114":"","47115":""},"gpsr_safety_info":{"46503":"","47114":"","47115":""},"description":{"46503":"Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufkl\u00e4rung. Zugleich war er derjenige, der die selbsternannten \u00bbphilosophes\u00ab am grundlegendsten kritisierte, da er dem individuell-menschlichen Aufkl\u00e4rungsprogramm die Forderung nach politischer Emanzipation der B\u00fcrger entgegenstellte. Dadurch wurde er auch zu einem scharfen Kritiker der Naturrechtstheorien, deren wichtigste Grundannahmen \u2013 die Gleichheit und Freiheit der B\u00fcrger sowie die vermeintliche K\u00fcnstlichkeit des Staates und seiner Grundgesetze \u2013 er jedoch \u00fcbernahm.<br\/><br\/>Doch Rousseau rechtfertigte weder die Monarchie noch eine feudale Gesellschaftsordnung, wie es seine Vorg\u00e4nger und Zeitgenossen taten. Er kritisierte sogar den von den \u00d6konomen seiner Zeit verteidigten Eigentumsbegriff, der die Interessen gro\u00dfer Landbesitzer und H\u00e4ndler \u00fcber die des Staates stellte. Welche Ziele aber verfolgte Rousseau mit seiner Kritik? Dieser Frage geht der vorliegende Band nach, indem er den Autor in die Diskurse seiner Zeit einordnet und insbesondere auch dessen Rolle in den politischen Debatten seiner Heimatstadt Genf eingehend er\u00f6rtert.<br\/><br\/>Der Band bietet dar\u00fcber hinaus eine Einf\u00fchrung in Rousseaus Schriften im Kontext zeitgen\u00f6ssischer Auseinandersetzungen.","47114":"Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufkl\u00e4rung. Zugleich war er derjenige, der die selbsternannten \u00bbphilosophes\u00ab am grundlegendsten kritisierte, da er dem individuell-menschlichen Aufkl\u00e4rungsprogramm die Forderung nach politischer Emanzipation der B\u00fcrger entgegenstellte. Dadurch wurde er auch zu einem scharfen Kritiker der Naturrechtstheorien, deren wichtigste Grundannahmen \u2013 die Gleichheit und Freiheit der B\u00fcrger sowie die vermeintliche K\u00fcnstlichkeit des Staates und seiner Grundgesetze \u2013 er jedoch \u00fcbernahm.<br\/><br\/>Doch Rousseau rechtfertigte weder die Monarchie noch eine feudale Gesellschaftsordnung, wie es seine Vorg\u00e4nger und Zeitgenossen taten. Er kritisierte sogar den von den \u00d6konomen seiner Zeit verteidigten Eigentumsbegriff, der die Interessen gro\u00dfer Landbesitzer und H\u00e4ndler \u
3019800fcber die des Staates stellte. Welche Ziele aber verfolgte Rousseau mit seiner Kritik? Dieser Frage geht der vorliegende Band nach, indem er den Autor in die Diskurse seiner Zeit einordnet und insbesondere auch dessen Rolle in den politischen Debatten seiner Heimatstadt Genf eingehend er\u00f6rtert.<br\/><br\/>Der Band bietet dar\u00fcber hinaus eine Einf\u00fchrung in Rousseaus Schriften im Kontext zeitgen\u00f6ssischer Auseinandersetzungen.","47115":"Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufkl\u00e4rung. Zugleich war er derjenige, der die selbsternannten \u00bbphilosophes\u00ab am grundlegendsten kritisierte, da er dem individuell-menschlichen Aufkl\u00e4rungsprogramm die Forderung nach politischer Emanzipation der B\u00fcrger entgegenstellte. Dadurch wurde er auch zu einem scharfen Kritiker der Naturrechtstheorien, deren wichtigste Grundannahmen \u2013 die Gleichheit und Freiheit der B\u00fcrger sowie die vermeintliche K\u00fcnstlichkeit des Staates und seiner Grundgesetze \u2013 er jedoch \u00fcbernahm.<br\/><br\/>Doch Rousseau rechtfertigte weder die Monarchie noch eine feudale Gesellschaftsordnung, wie es seine Vorg\u00e4nger und Zeitgenossen taten. Er kritisierte sogar den von den \u00d6konomen seiner Zeit verteidigten Eigentumsbegriff, der die Interessen gro\u00dfer Landbesitzer und H\u00e4ndler \u00fcber die des Staates stellte. Welche Ziele aber verfolgte Rousseau mit seiner Kritik? Dieser Frage geht der vorliegende Band nach, indem er den Autor in die Diskurse seiner Zeit einordnet und insbesondere auch dessen Rolle in den politischen Debatten seiner Heimatstadt Genf eingehend er\u00f6rtert.<br\/><br\/>Der Band bietet dar\u00fcber hinaus eine Einf\u00fchrung in Rousseaus Schriften im Kontext zeitgen\u00f6ssischer Auseinandersetzungen."},"doi":{"46503":"","47114":"10.28937\/978-3-7873-5128-2","47115":""},"isbn":{"46503":"978-3-7873-5127-5","47114":"978-3-7873-5128-2","47115":"978-3-7873-5129-9"},"marketing_short_text":{"46503":"","47114":"","47115":""},"recension_text":{"46503":"","47114":"","47115":""},"language":{"46503":"","47114":"","47115":""},"cover":{"46503":"Kartoniert","47114":"","47115":""},"pages":{"46503":"372 Seiten.","47114":"372 Seiten.","47115":"372 Seiten."},"edition":{"46503":"","47114":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","47115":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46503":"Nein","47114":"Nein","47115":"Nein"},"copyright_year":{"46503":"","47114":"","47115":""},"vlb_tix_link":{"46503":"https:\/\/neu.vlbtix.de\/products\/9783787351275?type=gtin","47114":"","47115":""},"defaultValues":{"163":"15"}}; 30199 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 30200 30201 if (typeof window.amxnotif_wrap_attributes === 'function') { 30202 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 30203 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 30204 } 30205 30206 const configurableOptionsComponent = initConfigurableOptions( 30207 '47158', 30208 config 30209 ); 30210 const swatchOptionsComponent = initSwatchOptions( 30211 swatchConfig 30212 ); 30213 30214 // DWS - Configurable product preselect start 30215 const confProdPreSelect = () => { 30216 return { 30217 preselectQuerystringItems() { 30218 var data = {"id":"46503","output":"15"}; 30219 const urlQueryParams = new URLSearchParams(window.location.search); 30220 30221 this.$nextTick(() => { 30222 setTimeout(() => { 30223 const rootEl = this.$root || this.$el; 30224 if (!rootEl) return; 30225 30226 const applySelection = (attrCode, attrValue) => { 30227 if (attrValue === undefined || attrValue === null || attrValue === '') return; 30228 30229 const attributes = Object.values(this.optionConfig.attributes || {}); 30230 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 30231 30232 if (targetAttr) { 30233 const attrId = String(targetAttr.id); 30234 const optionVal = String(attrValue); 30235 30236 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 30237 30238 if (inputEl) { 30239 inputEl.click(); 30240 inputEl.dispatchEvent(new Event('change', { 30241 bubbles: true 30242 })); 30243 } else { 30244 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 30245 if (selectEl) { 30246 selectEl.value = optionVal; 30247 selectEl.dispatchEvent(new Event('change', { 30248 bubbles: true 30249 })); 30250 } 30251 } 30252 30253 this.changeOption(attrId, optionVal, false); 30254 } 30255 }; 30256 30257 if (data && typeof data === 'object') {
30258 Object.keys(data).forEach(key => applySelection(key, data[key])); 30259 } 30260 30261 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 30262 if (attribute && attribute.code) { 30263 let optionValue = urlQueryParams.get(attribute.code); 30264 if (optionValue) { 30265 let optionId = false; 30266 const attributes = Object.values(this.optionConfig.attributes || {}); 30267 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 30268 30269 let found = false; 30270 Object.values(targetAttr.options).map(option => { 30271 if (found === false && option.label === optionValue) { 30272 optionId = option.id; 30273 found = true; 30274 } 30275 }); 30276 30277 const attrId = String(targetAttr.id); 30278 let optionVal = String(optionValue); 30279 if (found) { 30280 optionVal = String(optionId); 30281 } 30282 30283 applySelection(attribute.code, optionVal); 30284 } 30285 } 30286 }); 30287 }, 100); 30288 }); 30289 } 30290 } 30291 }; 30292 // DWS - Configurable product preselect end 30293 30294 const result = Object.assign( 30295 configurableOptionsComponent, 30296 swatchOptionsComponent, { 30297 productId: '47158', 30298 productIndex: 0, 30299 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 30300 showSwatches: false, 30301 precalcOptions: {}, 30302 originalInit: configurableOptionsComponent.init, 30303 init() { 30304 try { 30305 this.precalcOptions = {}; 30306 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 30307 this.preselectQuerystringItems(); 30308 if (Array.isArray(attrSource)) { 30309 attrSource.forEach(attr => { 30310 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 30311 }); 30312 } else if (attrSource && typeof attrSource === 'object') { 30313 Object.keys(attrSource).forEach(id => { 30314 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 30315 }); 30316 } 30317 } catch (e) { 30318 console.error('Pre-calc error:', e); 30319 } 30320 30321 if (typeof this.originalInit === 'function') { 30322 this.originalInit(); 30323 } 30324 30325 try { 30326 this.initShowSwatchesIntersect(); 30327 } catch (e) { 30328 console.error('intersect error:', e); 30329 } 30330 }, 30331 30332 updateGallery() { 30333 if (!this.productIndex) return; 30334 30335 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 30336 method: 'GET', 30337 headers: { 30338 'Content-Type': 'application/json', 30339 'X-Requested-With': 'XMLHttpRequest' 30340 } 30341 }) 30342 .then(response => response.json()) 30343 .then(data => { 30344 if (data && data.medium) { 30345 window.dispatchEvent(new CustomEvent("update-gallery-471
3034558", { 30346 detail: data.medium 30347 })); 30348 } 30349 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 30350 }, 30351 30352 30353 initShowSwatchesIntersect() { 30354 const observer = new IntersectionObserver(entries => { 30355 if (entries[0].isIntersecting) { 30356 this.showSwatches = true; 30357 observer.disconnect(); 30358 } 30359 }, { 30360 rootMargin: '512px' 30361 }); 30362 observer.observe(this.$el); 30363 }, 30364 getOptions(attrId) { 30365 return this.precalcOptions[attrId] || []; 30366 }, 30367 getOptionsByAttrId() { 30368 return this.getOptions(this.$el.dataset.attributeId); 30369 }, 30370 _getItemId() { 30371 if (this.item && this.item.id) return this.item.id; 30372 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 30373 }, 30374 getSwatchOptionHtmlId() { 30375 const itemId = this._getItemId(); 30376 return itemId ? this.$id(`attribute-option-47158-${itemId}`) : ''; 30377 }, 30378 getSwatchOptionHtmlIdGroup() { 30379 const itemId = this._getItemId(); 30380 return itemId ? [`attribute-option-47158-${itemId}`] : []; 30381 }, 30382 getAttributeSwatchData(attributeId) { 30383 const data = Object.assign({}, this.swatchConfig[attributeId]); 30384 if (data['additional_data']) { 30385 try { 30386 data['details'] = JSON.parse(data['additional_data']); 30387 } catch (e) { 30388 data['details'] = {}; 30389 } 30390 } 30391 return data; 30392 }, 30393 getSwatchType(attributeId, optionId) { 30394 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 30395 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 30396 } 30397 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 30398 this.swatchConfig[attributeId].details.swatch_input_type : 30399 "empty"; 30400 if (type === 'visual') { 30401 const config = this.swatchConfig[attributeId]; 30402 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 30403 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 30404 } 30405 // Fallback to first option type 30406 for (const oId in config) { 30407 if (config[oId] && typeof config[oId].type !== 'undefined') { 30408 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 30409 } 30410 } 30411 } 30412 return type; 30413 }, 30414 mapSwatchTypeNumberToTypeCode(type) { 30415 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 30416 }, 30417 isTextSwatch() { 30418 const itemId = this._getItemId(); 30419 if (!this.$el || !itemId) return false; 30420 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30421 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false;
30422 }, 30423 30424 getSwatchText() { 30425 const itemId = this._getItemId(); 30426 if (this.item) return this.item.label || ''; 30427 if (!this.$el || !itemId) return ''; 30428 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30429 const options = attrId ? this.getOptions(attrId) : []; 30430 const opt = options.find(o => o.id == itemId); 30431 return opt ? opt.label : ''; 30432 }, 30433 getSwatchBackgroundStyle() { 30434 const itemId = this._getItemId(); 30435 if (!this.$el || !itemId) return ''; 30436 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30437 if (!attrId) return ''; 30438 const type = this.getSwatchType(attrId, itemId); 30439 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 30440 this.swatchConfig[attrId][itemId] : 30441 null; 30442 if (!swatchData) return ''; 30443 if (type === "color") return 'background-color:' + swatchData.value; 30444 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 30445 return ''; 30446 }, 30447 swatchOptionClasses() { 30448 const itemId = this._getItemId(); 30449 if (!this.$el || !itemId) return {}; 30450 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30451 return { 30452 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 30453 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 30454 'w-6 h-6': !this.isTextSwatch() 30455 } 30456 }, 30457 30458 onFocusSwatchItem() { 30459 const itemId = this._getItemId(); 30460 if (itemId) this.focusedLabel = itemId; 30461 }, 30462 onChangeOption() { 30463 const itemId = this._getItemId(); 30464 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 30465 if (attrId && itemId) this.changeOption(attrId, itemId); 30466 }, 30467 changeOption(attributeId, value) { 30468 if (value === '') { 30469 return; 30470 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 30471 } else { 30472 this.selectedValues[attributeId] = value; 30473 } 30474 30475 this.findSimpleIndex(); 30476 this.findAllowedAttributeOptions(); 30477 this.updatePrices(); 30478 this.updateGallery(); 30479 30480 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 30481 this.findProductIdsForPartialSelection(this.selectedValues) : []; 30482 30483 const eventDetail = { 30484 productId: this.productId, 30485 optionId: attributeId, 30486 value: value, 30487 productIndex: this.productIndex || 0, 30488 selectedValues: this.selectedValues, 30489 candidates: candidates, 30490 sourceElement: this.$el 30491 }; 30492 30493 // Dispatch for Amasty 30494 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 30495 detail: eventDetail 30496 })); 30497 30498 // Dispatch for Hyva listing 30499 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 30500 detail: eventDetail 30501 })); 30502 }, 30503 30504 30505 clearOptionIfActive() { 30506 const itemId = this._getItemId(); 30507 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 30508 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 30509 this.changeOption(attrId, ''); 30510 30511 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 30512 if (!input && this.$el?.querySelector) { 30513 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 30514 } 30515 if (!input && this.$el?.closest) { 30516 const root = this.$el.closest('[data-product-id]') || this.$el; 30517 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 30518 } 30519 if (input) { 30520 input.checked = false;
30521 } 30522 } 30523 }, 30524 get optionIsEnabled() { 30525 const itemId = this._getItemId(); 30526 if (!this.$el || !itemId) return true; 30527 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30528 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 30529 return !!allowedOptions.find(opt => opt.id == itemId); 30530 }, 30531 get isSelected() { 30532 const itemId = this._getItemId(); 30533 if (!this.$el || !itemId) return false; 30534 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30535 return attrId ? (this.selectedValues[attrId] == itemId) : false; 30536 }, 30537 get isSwatchRequired() { 30538 if (!this.$el) return false; 30539 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30540 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 30541 }, 30542 focusedLabel: false, 30543 activeTooltipItem: false, 30544 tooltipPositionElement: false,
30545 setActiveTooltipItem() { 30546 const itemId = this._getItemId(); 30547 if (!this.$el || !itemId) return; 30548 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 30549 this.activeTooltipItem = { 30550 attribute: attrId, 30551 item: itemId, 30552 index: 0 30553 }; 30554 this.tooltipPositionElement = this.$event ? this.$event.target : null; 30555 }, 30556 unsetActiveTooltipItem() { 30557 this.activeTooltipItem = false; 30558 } 30559 }, 30560 confProdPreSelect() 30561 ); 30562 30563 if (result.optionConfig && result.optionConfig.attributes) { 30564 const attributes = result.optionConfig.attributes; 30565 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 30566 let source = attributes; 30567 if (Array.isArray(attributes)) { 30568 source = {}; 30569 attributes.forEach(attr => { 30570 if (attr && attr.id) source[attr.id] = attr; 30571 }); 30572 } 30573 const values = Object.values(source); 30574 const wrapper = Object.assign(values, source); 30575 Object.defineProperty(wrapper, '__amxnotifWrapped', { 30576 value: true, 30577 enumerable: false 30578 }); 30579 result.optionConfig.attributes = wrapper; 30580 } 30581 } 30582 30583 return result; 30584 } 30585 30586 window.addEventListener('alpine:init', () => { 30587 Alpine.data('initConfigurableSwatchOptions_47158', initConfigurableSwatchOptions_47158); 30588 }, { 30589 once: true 30590 }); 30591 </script>
30591 30592 30593 <div x-data="initConfigurableSwatchOptions_47158" x-defer="intersect"> 30594 <div class="pagebuilder-home-hidden"> 30595 30596 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 30597 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 30598 <template x-if="showSwatches"> 30599 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47158-163" role="radiogroup" aria-label="Einband"> 30600 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 30601 <div :data-option-id="item.id" style="display: contents"> 30602 <div x-id="getSwatchOptionHtmlIdGroup"> 30603 <template x-if="optionIsEnabled"> 30604 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
30604self="unsetActiveTooltipItem"> 30605 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47158-163"> 30606 <div> 30607 <template x-if="isTextSwatch"> 30608 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 30609 </template> 30610 <template x-if="!optionIsActive(163, item.id)"> 30611 <div> 30612 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 30613 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 30614 </svg> 30615 </div> 30616 </template> 30617 </div> 30618 </label> 30619 </template> 30620</div> </div> 30621 </template> 30622 </div> 30623 </template> 30624 </div> 30625 </div> 30626 </div> 30627 </div> 30628 30629 <div class="meta py-4 pagebuilder-home-hidden"> 30630 <div x-data="initMarketingShortText_47158()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 30631 <!-- Marketing short text --> 30632 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 30633 </div> 30634 30635 <!-- Short description --> 30636 <div class="short-description"> 30637 Jean-Jacques Rousseau war einer der bedeutendsten Schriftsteller im Zeitalter der Aufklärung. Zugleich war er derjenige, der die selbsternannten »philosophes« am grundlegendsten kritisierte, da ... <a href="https://meiner.de/fmv_de/rousseau-21427" class="underline">mehr</a> 30638 </div> 30639 </div> 30640 30641 <!-- Series --> 30642 <div class="mb-1"> 30643 <span class="sr-only">Reihe:</span> 30644 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 30645 <span>Blaue Reihe</span> 30646 </a> 30647 </div> 30648 30649 30650 <div class="mb-1"> 30651 <span x-data="initEditionText_47158()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 30652 <!-- Marketing short text --> 30653 <span class="edition-text" x-html="editionText"></span> 2026, 372 Seiten. </span> 30654 </div> 30655 30656 </div> 30657 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 30658 30659 <div class="justify-end" x-data="initPriceBox()" @update-prices-47158.window="updatePrice($event.detail);"> 30660 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47158" data-price-box="product-id-47158"><span class="normal-price"> 30661 <span x-data x-id="['product\u002Dprice\u002D47158']" class="price-container price-final_price tax weee"> 30662 <span class="price-label">Ab</span> 30663 <span class="approx-price">ca. </span> 30664 <span :id="$id('product\u002Dprice\u002D47158')" data-price-amount="25.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">25,99 €</span></span> 30665 </span> 30666</span> 30667 30668 30669</div> </div> 30670 30671 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 30672 <div class="open-access-container open-access-container-47158 flex mt-4 ml-auto sm:mt-0 hidden"> 30673 <div class="text-gray-700"> 30674 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 30675 <a href="" target="_blank" class="open-access-external-link m-auto "> 30676 Kostenlos online lesen </a> 30677 </button> 30678 </div> 30679 </div> 30680 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Rousseau" aria-label="In den Warenkorb Rousseau" data-addto="cart"> 30681 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 30682 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
306820 014 0z"></path> 30683</svg> 30684 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 30685 In den Warenkorb </span> 30686 </button> 30687 30688<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47158)" aria-label="Zur Wunschliste hinzufügen Rousseau" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 30689 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 30690 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 30691</svg> 30692</button> 30693 </div> 30694 </div> 30695 </div> 30696
30696<script> 30697 function initMarketingShortText_47158() { 30698 var marketingShortTextConfig = {}; 30699 if (typeof window.initConfigurableSwatchOptions_47158 === "function") { 30700 var fullConfig = window.initConfigurableSwatchOptions_47158().optionConfig 30701 var marketingShortTextConfig = fullConfig.marketing_short_text; 30702 } 30703 return { 30704 marketingShortText: '', 30705 config: marketingShortTextConfig, 30706 productId: '47158', 30707 getMarketingShortText(detail) { 30708 this.marketingShortText = detail.productIndex ? 30709 this.config[detail.productIndex] : 30710 null; 30711 }, 30712 eventListeners: { 30713 ['@listing-configurable-selection-changed.window'](event) { 30714 if (this.productId == event.detail.productId) { 30715 this.getMarketingShortText(event.detail); 30716 } 30717 30718 } 30719 } 30720 } 30721 } 30722 30723 function initEditionText_47158() { 30724 var editionTextConfig = {}; 30725 if (typeof window.initConfigurableSwatchOptions_47158 === "function") { 30726 var fullConfig = window.initConfigurableSwatchOptions_47158().optionConfig 30727 var editionTextConfig = fullConfig.edition; 30728 } 30729 return { 30730 editionText: '', 30731 config: editionTextConfig, 30732 productId: '47158', 30733 getEditionText(detail) { 30734 this.editionText = detail.productIndex ? 30735 this.config[detail.productIndex] : 30736 null; 30737 }, 30738 eventListeners: { 30739 ['@listing-configurable-selection-changed.window'](event) { 30740 if (this.productId == event.detail.productId) { 30741 this.getEditionText(event.detail); 30742 } 30743 30744 } 30745 } 30746 } 30747 } 30748 </script>
30748 30749 </form> 30750 30751 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47111/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21363"> 30752 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="47111"> 30753 <a href="https://meiner.de/fmv_de/a-ber-die-gefahr-21363" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 30754 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47111.window="$el.src = $event.detail" alt="Über die Gefahr" title="Über die Gefahr" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350988_1.jpg" :style="{ 30755 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 30756 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 30757 }"> 30758 </a> 30759 <div class="product-info flex flex-col flex-grow "> 30760 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 30761 <div class="mb-2 text-sm text-gray-500 font-medium"> 30762 <a href="https://meiner.de/fmv_de/person/Heiko-Christians-3418/" class="mb-2"> 30763 Heiko Christians </a> 30764 </div> 30765 <a class="product-item-link" href="https://meiner.de/fmv_de/a-ber-die-gefahr-21363"> 30766 Über die Gefahr </a> 30767 </div> 30768 30769 <div x-data="initEditionText_47111()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 30770 <!-- Marketing short text --> 30771 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 30772 </div> 30773 </div> 30774 30775 <div class="py-1 grid mb-4 "> 30776 30777 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47111,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47111,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46919":"1","47093":"1","47218":"1"},"childProductsAlertStatus":{"46919":"0","47093":"0","47218":"0"},"indexMapping":{"163:15":46919,"163:8":47093,"163:9":47218},"availabilityMessages":{"46919":"Lieferbar innerhalb von 3-5 Tagen","47093":"Download sofort verf\u00fcgbar","47218":"Download sofort verf\u00fcgbar"},"openAccess":{"47111":{"status":0},"46919":{"status":0},"47093":{"status":0},"47218":{"status":0}}},"availabilityMessages":{"46919":"Lieferbar innerhalb von 3-5 Tagen","47093":"Download sofort verf\u00fcgbar","47218":"Download sofort verf\u00fcgbar"},"openAccess":{"47111":{"status":0},"46919":{"status":0},"47093":{"status":0},"47218":{"status":0}}}'> 30778 <template x-if="containerVisible"> 30779 <!-- Popup Trigger --> 30780 <div> 30781 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 30782 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
30783 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 30784 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 30785<title>bell</title></svg> 30786</span> 30787 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 30788 30789 <!-- Popup Modal --> 30790 <template x-if="showModal"> 30791 <template x-teleport=".page-wrapper"> 30792 <div x-cloak class="fixed inset-0 flex items-center justify-center 30793 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 30794 <div class="relative bg-white rounded-lg shadow-xl 30795 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 30796 <div class="p-6"> 30797 <!-- Subscription Form for Popup --> 30798 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 30799 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 30800 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 30801 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 30802 30803 <div class="flex flex-col gap-3"> 30804 <div class="flex-grow grow"> 30805 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 30806 shadow-xs focus:outline-none focus:outline-hidden 30807 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 30808 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 30809 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 30810 </div> 30811 <input type="hidden" name="product_id" :value="currentProductId"> 30812 <input type="hidden" name="type" value="email"> 30813 30814 30815 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 30816 30817 <div class="amxnotif_guest_action"> 30818 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 30819 rounded-md focus:outline-none 30820 focus:outline-hidden focus:ring-2 30821 focus:ring-offset-2 disabled:opacity-50 30822 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 30823 Benachrichtigen </button> 30824 </div> 30825 </div> 30826 30827 <div class="flex items-start pt-2"> 30828 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 30829 text-blue-600 border-gray-300 rounded-sm"> 30830 <label class="amxnotif-stock-gdrp-label cursor-pointer 30831 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 30832 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 30833 </div> 30834 </form> 30835 </div> 30836 30837 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 30838 hover:text-gray-600 transition-colors" aria-label="Schließen"> 30839 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 30840 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 30841<title>x</title></svg> 30842 </button> 30843 </div> 30844 </div> 30845 </template> 30846 </template> 30847 </div> 30848 </template> 30849 </div> 30850 30851<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47111" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47111,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"46919":"1","47093":"1","47218":"1"},"childProductsAlertStatus":{"46919":"0","47093":"0","47218":"0"},"indexMapping":"{\u0022163:15\u0022:46919,\u0022163:8\u0022:47093,\u0022163:9\u0022:47218}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47111,"availabilityMessages":{"46919":"Lieferbar innerhalb von 3-5 Tagen","47093":"Download sofort verf\u00fcgbar","47218":"Download sofort verf\u00fcgbar"},"openAccess":{"47111":{"status":0},"46919":{"status":0},"47093":{"status":0},"47218":{"status":0}}}'> 30852 30853 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
30854 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 30855 <span x-html="optionsLabelText"></span> 30856 </p> 30857</div> </div> 30858 30859
30859<script> 30860 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 30861 try { 30862 const attributes = (config && config.attributes) ? config.attributes : null; 30863 if (!attributes) return []; 30864 let attr = null; 30865 if (Array.isArray(attributes)) { 30866 for (let i = 0; i < attributes.length; i++) { 30867 const a = attributes[i]; 30868 if (a && a.id == attrId) { 30869 attr = a; 30870 break; 30871 } 30872 } 30873 } else { 30874 attr = attributes[attrId]; 30875 } 30876 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 30877 } catch (e) { 30878 return []; 30879 } 30880 }; 30881 30882 function initConfigurableSwatchOptions_47111() { 30883 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46919"]},{"id":"8","label":"PDF","products":["47093"]},{"id":"9","label":"EPUB","products":["47218"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46919":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47093":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47218":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"47111","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46919":{"163":"15"},"47093":{"163":"8"},"47218":{"163":"9"}},"salable":{"163":{"15":["46919"],"8":["47093"],"9":["47218"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46919":"005098","47093":"005099","47218":"005100"},"output":{"46919":"Kartoniert","47093":"PDF","47218":"EPUB"},"original_name":{"46919":"","47093":"","47218":""},"openaccess_license_link":{"46919":"","47093":"","47218":""},"openaccess_license_name":{"46919":"","47093":"","47218":""},"openaccess_external_link":{"46919":"","47093":"","47218":""},"gpsr_safety_info":{"46919":"","47093":"","47218":""},"description":{"46919":"Dies ist ein Buch \u00fcber die Gefahr. Tats\u00e4chlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine braucht. Wir leben in Zeiten, in denen die Gefahr wieder Konjunktur hat. Sie tritt ein, sie wird geahnt, taxiert, beschworen. \u2013 Nur erkl\u00e4rt wird sie als historisches, \u00e4sthetisches und semantisches Ph\u00e4nomen bisher nicht. Es gibt hingegen ganze soziologische Bibliotheken \u00fcber das Risiko. Das ist der plausible Komplement\u00e4rbegriff \u2013 solange es um Gewinne und Kalk\u00fcle, solange es um Wirtschaft geht. Die Semantik aber hat sich langsam, aber sicher verschoben \u2013 zugunsten der Gefahr. Die Weltlage legt das nahe bzw. best\u00e4tigt das. Die Gefahr hat eine lange und interessante Geschichte hinter sich, bevor sie die Gegenwart erreicht. Je nach Perspektive. Genau das aber ist bis heute g\u00e4nzlich unbearbeitet. Mit diesem Buch liegt erstmals ein historisch fundiertes, medienwissenschaftlich informiertes, gut lesbares philosophisches Essay zum Thema vor.","47093":"Dies ist ein Buch \u00fcber die Gefahr. Tats\u00e4chlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine braucht. Wir leben in Zeiten, in denen die Gefahr wieder Konjunktur hat. Sie tritt ein, sie wird geahnt, taxiert, beschworen. \u2013 Nur erkl\u00e4rt wird sie als historisches, \u00e4sthetisches und semantisches Ph\u00e4nomen bisher nicht. Es gibt hingegen ganze soziologische Bibliotheken \u00fcber das Risiko. Das ist der plausible Komplement\u00e4rbegriff \u2013 solange es um Gewinne und Kalk\u00fcle, solange es um Wirtschaft geht. Die Semantik aber hat sich langsam, aber sicher verschoben \u2013 zugunsten der Gefahr. Die Weltlage legt das nahe bzw. best\u00e4tigt das. Die Gefahr hat eine lange und interessante Geschichte hinter sich, bevor sie die Gegenwart erreicht. Je nach Perspektive. Genau das aber ist bis heute g\u00e4nzlich unbearbeitet. Mit diesem Buch liegt erstmals ein historisch fundiertes, medienwissenschaftlich informiertes, gut lesbares philosophisches Essay zum Thema vor.","47218":"Dies ist ein Buch \u00fcber die Gefahr. Tats\u00e4chlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine braucht. Wir leben in Zeiten, in denen die Gefahr wieder Konjunktur hat. Sie tritt ein, sie wird geahnt, taxiert, beschworen. \u2013 Nur erkl\u00e4rt wird sie als historisches, \u00e4sthetisches und semantisches Ph\u00e4nomen bisher nicht. Es gibt hingegen ganze soziologische Bibliotheken \u00fcber das Risiko. Das ist der plausible Komplement\u00e4rbegriff \u2013 solange es um Gewinne und Kalk\u00fcle, solange es um Wirtschaft geht. Die Semantik aber hat sich langsam, aber sicher verschoben \u2013 zugunsten der Gefahr. Die Weltlage legt das nahe bzw. best\u00e4tigt das. Die Gefahr hat eine lange und interessante Geschichte hinter sich, bevor sie die Gegenwart erreicht. Je nach Perspektive. Genau das aber ist bis heute g\u00e4nzlich unbearbeitet. Mit diesem Buch liegt erstmals ein historisch fundiertes, medienwissenschaftlich informiertes, gut lesbares philosophisches Essay zum Thema vor."},"doi":{"46919":"","47093":"10.28937\/978-3-7873-5099-5","47218":""},"isbn":{"46919":"978-3-7873-5098-8","47093":"978-3-7873-5099-5","47218":"978-3-7873-5100-8"},"marketing_short_text":{"46919":"","47093":"","47218":""},"recension_text":{"46919":"<div class=\"reviews\">\r\n<div class=\"review\">Christians hat ein kleines B\u00fcchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 29.07.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Nils Schniederjann bespricht \u00dcber die Gefahr bei Deutschlandfunk Kultur. Besonders hebt er Christians\u2019 ph\u00e4nomenologischen Blick hervor, der weder in \"rei\u00dferische Heldenverehrung\" noch in moralische Verurteilung verf\u00e4llt. Entstanden sei so ein \"gelehrtes, materialreiches Panorama eines Ph\u00e4nomens, das gerade jetzt wieder allgegenw\u00e4rtig scheint\".<\/div>\r\n<div class=\"source\"><a href=\"https:\/\/www.deutschlandfunkkultur.de\/buchkritik-heiko-christians-ueber-die-gefahr-eine-vorsichtige-annaeherung-100.html\"><em>Deutschlandfunk Kultur, Studio 9, 1. Juli 2026<\/em><\/a><\/div>\r\n<\/div>
30883","47093":"<div class=\"reviews\">\r\n<div class=\"review\">Christians hat ein kleines B\u00fcchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 29.07.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Nils Schniederjann bespricht \u00dcber die Gefahr bei Deutschlandfunk Kultur. Besonders hebt er Christians\u2019 ph\u00e4nomenologischen Blick hervor, der weder in \"rei\u00dferische Heldenverehrung\" noch in moralische Verurteilung verf\u00e4llt. Entstanden sei so ein \"gelehrtes, materialreiches Panorama eines Ph\u00e4nomens, das gerade jetzt wieder allgegenw\u00e4rtig scheint\".<\/div>\r\n<div class=\"source\"><a href=\"https:\/\/www.deutschlandfunkkultur.de\/buchkritik-heiko-christians-ueber-die-gefahr-eine-vorsichtige-annaeherung-100.html\"><em>Deutschlandfunk Kultur, Studio 9, 1. Juli 2026<\/em><\/a><\/div>\r\n<\/div>","47218":"<div class=\"reviews\">\r\n<div class=\"review\">Christians hat ein kleines B\u00fcchlein mit geballtem Inhalt vorgelegt, das einem fast vergessenen Begleiter des Menschen endlich einen begrifflichen Rahmen geben will.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 29.07.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Nils Schniederjann bespricht \u00dcber die Gefahr bei Deutschlandfunk Kultur. Besonders hebt er Christians\u2019 ph\u00e4nomenologischen Blick hervor, der weder in \"rei\u00dferische Heldenverehrung\" noch in moralische Verurteilung verf\u00e4llt. Entstanden sei so ein \"gelehrtes, materialreiches Panorama eines Ph\u00e4nomens, das gerade jetzt wieder allgegenw\u00e4rtig scheint\".<\/div>\r\n<div class=\"source\"><a href=\"https:\/\/www.deutschlandfunkkultur.de\/buchkritik-heiko-christians-ueber-die-gefahr-eine-vorsichtige-annaeherung-100.html\"><em>Deutschlandfunk Kultur, Studio 9, 1. Juli 2026<\/em><\/a><\/div>\r\n<\/div>"},"language":{"46919":"","47093":"","47218":""},"cover":{"46919":"Kartoniert","47093":"","47218":""},"pages":{"46919":"144","47093":"144","47218":"144"},"edition":{"46919":"","47093":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","47218":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46919":"Nein","47093":"Nein","47218":"Nein"},"copyright_year":{"46919":"","47093":"","47218":""},"vlb_tix_link":{"46919":"https:\/\/neu.vlbtix.de\/products\/9783787350988?type=gtin","47093":"","47218":""},"defaultValues":{"163":"15"}}; 30884 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 30885 30886 if (typeof window.amxnotif_wrap_attributes === 'function') { 30887 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 30888 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 30889 } 30890 30891 const configurableOptionsComponent = initConfigurableOptions( 30892 '47111', 30893 config 30894 ); 30895 const swatchOptionsComponent = initSwatchOptions( 30896 swatchConfig 30897 ); 30898 30899 // DWS - Configurable product preselect start 30900 const confProdPreSelect = () => { 30901 return { 30902 preselectQuerystringItems() { 30903 var data = {"id":"46919","output":"15"}; 30904 const urlQueryParams = new URLSearchParams(window.location.search); 30905 30906 this.$nextTick(() => { 30907 setTimeout(() => { 30908 const rootEl = this.$root || this.$el; 30909 if (!rootEl) return; 30910 30911 const applySelection = (attrCode, attrValue) => { 30912 if (attrValue === undefined || attrValue === null || attrValue === '') return; 30913 30914 const attributes = Object.values(this.optionConfig.attributes || {}); 30915 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 30916 30917 if (targetAttr) { 30918 const attrId = String(targetAttr.id); 30919 const optionVal = String(attrValue); 30920 30921 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 30922 30923 if (inputEl) { 30924 inputEl.click(); 30925 inputEl.dispatchEvent(new Event('change', { 30926 bubbles: true 30927 })); 30928 } else { 30929 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 30930 if (selectEl) { 30931 selectEl.value = optionVal; 30932 selectEl.dispatchEvent(new Event('change', { 30933 bubbles: true 30934 })); 30935 } 30936 } 30937 30938 this.changeOption(attrId, optionVal, false); 30939 } 30940 }; 30941 30942 if (data && typeof data === 'object') {
30943 Object.keys(data).forEach(key => applySelection(key, data[key])); 30944 } 30945 30946 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 30947 if (attribute && attribute.code) { 30948 let optionValue = urlQueryParams.get(attribute.code); 30949 if (optionValue) { 30950 let optionId = false; 30951 const attributes = Object.values(this.optionConfig.attributes || {}); 30952 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 30953 30954 let found = false; 30955 Object.values(targetAttr.options).map(option => { 30956 if (found === false && option.label === optionValue) { 30957 optionId = option.id; 30958 found = true; 30959 } 30960 }); 30961 30962 const attrId = String(targetAttr.id); 30963 let optionVal = String(optionValue); 30964 if (found) { 30965 optionVal = String(optionId); 30966 } 30967 30968 applySelection(attribute.code, optionVal); 30969 } 30970 } 30971 }); 30972 }, 100); 30973 }); 30974 } 30975 } 30976 }; 30977 // DWS - Configurable product preselect end 30978 30979 const result = Object.assign( 30980 configurableOptionsComponent, 30981 swatchOptionsComponent, { 30982 productId: '47111', 30983 productIndex: 0, 30984 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 30985 showSwatches: false, 30986 precalcOptions: {}, 30987 originalInit: configurableOptionsComponent.init, 30988 init() { 30989 try { 30990 this.precalcOptions = {}; 30991 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 30992 this.preselectQuerystringItems(); 30993 if (Array.isArray(attrSource)) { 30994 attrSource.forEach(attr => { 30995 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 30996 }); 30997 } else if (attrSource && typeof attrSource === 'object') { 30998 Object.keys(attrSource).forEach(id => { 30999 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 31000 }); 31001 } 31002 } catch (e) { 31003 console.error('Pre-calc error:', e); 31004 } 31005 31006 if (typeof this.originalInit === 'function') { 31007 this.originalInit(); 31008 } 31009 31010 try { 31011 this.initShowSwatchesIntersect(); 31012 } catch (e) { 31013 console.error('intersect error:', e); 31014 } 31015 }, 31016 31017 updateGallery() { 31018 if (!this.productIndex) return; 31019 31020 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 31021 method: 'GET', 31022 headers: { 31023 'Content-Type': 'application/json', 31024 'X-Requested-With': 'XMLHttpRequest' 31025 } 31026 }) 31027 .then(response => response.json()) 31028 .then(data => { 31029 if (data && data.medium) { 31030 window.dispatchEvent(new CustomEvent("update-gallery-47111", { 31031 detail: data.medium 31032 })); 31033 } 31034 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 31035 }, 31036 31037 31038 initShowSwatchesIntersect() { 31039 const observer = new IntersectionObserver(entries => { 31040 if (entries[0].isIntersecting) { 31041 this.showSwatches = true; 31042 observer.disconnect(); 31043 } 31044 }, { 31045 rootMargin: '512px' 31046 }); 31047 observer.observe(this.$el); 31048 }, 31049 getOptions(attrId) { 31050 return this.precalcOptions[attrId] || []; 31051 }, 31052 getOptionsByAttrId() { 31053 return this.getOptions(this.$el.dataset.attributeId); 31054 }, 31055 _getItemId() { 31056 if (this.item && this.item.id) return this.item.id; 31057 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 31058 }, 31059 getSwatchOptionHtmlId() { 31060 const itemId = this._getItemId(); 31061 return itemId ? this.$id(`attribute-option-47111-${itemId}`) : ''; 31062 }, 31063 getSwatchOptionHtmlIdGroup() { 31064 const itemId = this._getItemId(); 31065 return itemId ? [`attribute-option-47111-${itemId}`] : []; 31066 }, 31067 getAttributeSwatchData(attributeId) { 31068 const data = Object.assign({}, this.swatchConfig[attributeId]); 31069 if (data['additional_data']) { 31070 try { 31071 data['details'] = JSON.parse(data['additional_data']); 31072 } catch (e) { 31073 data['details'] = {}; 31074 } 31075 } 31076 return data; 31077 }, 31078 getSwatchType(attributeId, optionId) { 31079 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 31080 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 31081 } 31082 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 31083 this.swatchConfig[attributeId].details.swatch_input_type : 31084 "empty"; 31085 if (type === 'visual') { 31086 const config = this.swatchConfig[attributeId]; 31087 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 31088 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 31089 } 31090 // Fallback to first option type 31091 for (const oId in config) { 31092 if (config[oId] && typeof config[oId].type !== 'undefined') { 31093 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 31094 } 31095 } 31096 } 31097 return type; 31098 }, 31099 mapSwatchTypeNumberToTypeCode(type) { 31100 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 31101 }, 31102 isTextSwatch() { 31103 const itemId = this._getItemId(); 31104 if (!this.$el || !itemId) return false;
31105 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31106 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 31107 }, 31108 31109 getSwatchText() { 31110 const itemId = this._getItemId(); 31111 if (this.item) return this.item.label || ''; 31112 if (!this.$el || !itemId) return ''; 31113 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31114 const options = attrId ? this.getOptions(attrId) : []; 31115 const opt = options.find(o => o.id == itemId); 31116 return opt ? opt.label : ''; 31117 }, 31118 getSwatchBackgroundStyle() { 31119 const itemId = this._getItemId(); 31120 if (!this.$el || !itemId) return ''; 31121 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31122 if (!attrId) return ''; 31123 const type = this.getSwatchType(attrId, itemId); 31124 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 31125 this.swatchConfig[attrId][itemId] : 31126 null; 31127 if (!swatchData) return ''; 31128 if (type === "color") return 'background-color:' + swatchData.value; 31129 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 31130 return ''; 31131 }, 31132 swatchOptionClasses() { 31133 const itemId = this._getItemId(); 31134 if (!this.$el || !itemId) return {}; 31135 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31136 return { 31137 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 31138 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 31139 'w-6 h-6': !this.isTextSwatch() 31140 } 31141 }, 31142 31143 onFocusSwatchItem() { 31144 const itemId = this._getItemId(); 31145 if (itemId) this.focusedLabel = itemId; 31146 }, 31147 onChangeOption() { 31148 const itemId = this._getItemId(); 31149 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 31150 if (attrId && itemId) this.changeOption(attrId, itemId); 31151 }, 31152 changeOption(attributeId, value) { 31153 if (value === '') { 31154 return; 31155 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 31156 } else { 31157 this.selectedValues[attributeId] = value; 31158 } 31159 31160 this.findSimpleIndex(); 31161 this.findAllowedAttributeOptions(); 31162 this.updatePrices(); 31163 this.updateGallery(); 31164 31165 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 31166 this.findProductIdsForPartialSelection(this.selectedValues) : []; 31167 31168 const eventDetail = { 31169 productId: this.productId, 31170 optionId: attributeId, 31171 value: value, 31172 productIndex: this.productIndex || 0, 31173 selectedValues: this.selectedValues, 31174 candidates: candidates, 31175 sourceElement: this.$el 31176 }; 31177 31178 // Dispatch for Amasty 31179 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 31180 detail: eventDetail 31181 })); 31182 31183 // Dispatch for Hyva listing 31184 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 31185 detail: eventDetail 31186 })); 31187 }, 31188 31189 31190 clearOptionIfActive() { 31191 const itemId = this._getItemId(); 31192 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 31193 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 31194 this.changeOption(attrId, ''); 31195 31196 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 31197 if (!input && this.$el?.querySelector) { 31198 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 31199 } 31200 if (!input && this.$el?.closest) { 31201 const root = this.$el.closest('[data-product-id]') || this.$el; 31202 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 31203 } 31204 if (input) { 31205 input.checked = false;
31206 } 31207 } 31208 }, 31209 get optionIsEnabled() { 31210 const itemId = this._getItemId(); 31211 if (!this.$el || !itemId) return true; 31212 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31213 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 31214 return !!allowedOptions.find(opt => opt.id == itemId); 31215 }, 31216 get isSelected() { 31217 const itemId = this._getItemId(); 31218 if (!this.$el || !itemId) return false; 31219 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31220 return attrId ? (this.selectedValues[attrId] == itemId) : false; 31221 }, 31222 get isSwatchRequired() { 31223 if (!this.$el) return false; 31224 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31225 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 31226 }, 31227 focusedLabel: false, 31228 activeTooltipItem: false, 31229 tooltipPositionElement: false,
31230 setActiveTooltipItem() { 31231 const itemId = this._getItemId(); 31232 if (!this.$el || !itemId) return; 31233 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31234 this.activeTooltipItem = { 31235 attribute: attrId, 31236 item: itemId, 31237 index: 0 31238 }; 31239 this.tooltipPositionElement = this.$event ? this.$event.target : null; 31240 }, 31241 unsetActiveTooltipItem() { 31242 this.activeTooltipItem = false; 31243 } 31244 }, 31245 confProdPreSelect() 31246 ); 31247 31248 if (result.optionConfig && result.optionConfig.attributes) { 31249 const attributes = result.optionConfig.attributes; 31250 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 31251 let source = attributes; 31252 if (Array.isArray(attributes)) { 31253 source = {}; 31254 attributes.forEach(attr => { 31255 if (attr && attr.id) source[attr.id] = attr; 31256 }); 31257 } 31258 const values = Object.values(source); 31259 const wrapper = Object.assign(values, source); 31260 Object.defineProperty(wrapper, '__amxnotifWrapped', { 31261 value: true, 31262 enumerable: false 31263 }); 31264 result.optionConfig.attributes = wrapper; 31265 } 31266 } 31267 31268 return result; 31269 } 31270 31271 window.addEventListener('alpine:init', () => { 31272 Alpine.data('initConfigurableSwatchOptions_47111', initConfigurableSwatchOptions_47111); 31273 }, { 31274 once: true 31275 }); 31276 </script>
31276 31277 31278 <div x-data="initConfigurableSwatchOptions_47111" x-defer="intersect"> 31279 <div class="pagebuilder-home-hidden"> 31280 31281 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 31282 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 31283 <template x-if="showSwatches"> 31284 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47111-163" role="radiogroup" aria-label="Einband"> 31285 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 31286 <div :data-option-id="item.id" style="display: contents"> 31287 <div x-id="getSwatchOptionHtmlIdGroup"> 31288 <template x-if="optionIsEnabled"> 31289 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
31289self="unsetActiveTooltipItem"> 31290 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47111-163"> 31291 <div> 31292 <template x-if="isTextSwatch"> 31293 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 31294 </template> 31295 <template x-if="!optionIsActive(163, item.id)"> 31296 <div> 31297 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 31298 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 31299 </svg> 31300 </div> 31301 </template> 31302 </div> 31303 </label> 31304 </template> 31305</div> </div> 31306 </template> 31307 </div> 31308 </template> 31309 </div> 31310 </div> 31311 </div> 31312 </div> 31313 31314 <div class="meta py-4 pagebuilder-home-hidden"> 31315 <div x-data="initMarketingShortText_47111()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 31316 <!-- Marketing short text --> 31317 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 31318 </div> 31319 31320 <!-- Short description --> 31321 <div class="short-description"> 31322 Dies ist ein Buch über die Gefahr. Tatsächlich gibt es bis heute kein weiteres. Die Gefahr, das soundsovielte Buch zum Thema zu lesen, besteht also nicht. Bleibt die Frage, ob es dieses eine ... <a href="https://meiner.de/fmv_de/a-ber-die-gefahr-21363" class="underline">mehr</a> 31323 </div> 31324 </div> 31325 31326 <!-- Series --> 31327 <div class="mb-1"> 31328 <span class="sr-only">Reihe:</span> 31329 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 31330 <span>Blaue Reihe</span> 31331 </a> 31332 </div> 31333 31334 31335 <div class="mb-1"> 31336 <span x-data="initEditionText_47111()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 31337 <!-- Marketing short text --> 31338 <span class="edition-text" x-html="editionText"></span> 2026, 144 </span> 31339 </div> 31340 31341 </div> 31342 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 31343 31344 <div class="justify-end" x-data="initPriceBox()" @update-prices-47111.window="updatePrice($event.detail);"> 31345 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47111" data-price-box="product-id-47111"><span class="normal-price"> 31346 <span x-data x-id="['product\u002Dprice\u002D47111']" class="price-container price-final_price tax weee"> 31347 <span class="price-label">Ab</span> 31348 <span class="approx-price">ca. </span> 31349 <span :id="$id('product\u002Dprice\u002D47111')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 31350 </span> 31351</span> 31352 31353 31354</div> </div> 31355 31356 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 31357 <div class="open-access-container open-access-container-47111 flex mt-4 ml-auto sm:mt-0 hidden"> 31358 <div class="text-gray-700"> 31359 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 31360 <a href="" target="_blank" class="open-access-external-link m-auto "> 31361 Kostenlos online lesen </a> 31362 </button> 31363 </div> 31364 </div> 31365 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Über die Gefahr" aria-label="In den Warenkorb Über die Gefahr" data-addto="cart"> 31366 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 31367 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
313670 014 0z"></path> 31368</svg> 31369 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 31370 In den Warenkorb </span> 31371 </button> 31372 31373<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47111)" aria-label="Zur Wunschliste hinzufügen Über die Gefahr" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 31374 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 31375 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 31376</svg> 31377</button> 31378 </div> 31379 </div> 31380 </div> 31381
31381<script> 31382 function initMarketingShortText_47111() { 31383 var marketingShortTextConfig = {}; 31384 if (typeof window.initConfigurableSwatchOptions_47111 === "function") { 31385 var fullConfig = window.initConfigurableSwatchOptions_47111().optionConfig 31386 var marketingShortTextConfig = fullConfig.marketing_short_text; 31387 } 31388 return { 31389 marketingShortText: '', 31390 config: marketingShortTextConfig, 31391 productId: '47111', 31392 getMarketingShortText(detail) { 31393 this.marketingShortText = detail.productIndex ? 31394 this.config[detail.productIndex] : 31395 null; 31396 }, 31397 eventListeners: { 31398 ['@listing-configurable-selection-changed.window'](event) { 31399 if (this.productId == event.detail.productId) { 31400 this.getMarketingShortText(event.detail); 31401 } 31402 31403 } 31404 } 31405 } 31406 } 31407 31408 function initEditionText_47111() { 31409 var editionTextConfig = {}; 31410 if (typeof window.initConfigurableSwatchOptions_47111 === "function") { 31411 var fullConfig = window.initConfigurableSwatchOptions_47111().optionConfig 31412 var editionTextConfig = fullConfig.edition; 31413 } 31414 return { 31415 editionText: '', 31416 config: editionTextConfig, 31417 productId: '47111', 31418 getEditionText(detail) { 31419 this.editionText = detail.productIndex ? 31420 this.config[detail.productIndex] : 31421 null; 31422 }, 31423 eventListeners: { 31424 ['@listing-configurable-selection-changed.window'](event) { 31425 if (this.productId == event.detail.productId) { 31426 this.getEditionText(event.detail); 31427 } 31428 31429 } 31430 } 31431 } 31432 } 31433 </script>
31433 31434 </form> 31435 31436 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46705/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21230"> 31437 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46705"> 31438 <a href="https://meiner.de/fmv_de/weltuntergang-21230" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 31439 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46705.window="$el.src = $event.detail" alt="Weltuntergang" title="Weltuntergang" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350759_1.jpg" :style="{ 31440 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 31441 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 31442 }"> 31443 </a> 31444 <div class="product-info flex flex-col flex-grow "> 31445 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 31446 <div class="mb-2 text-sm text-gray-500 font-medium"> 31447 <a href="https://meiner.de/fmv_de/person/Florian-Baab-3674/" class="mb-2"> 31448 Florian Baab </a> 31449 </div> 31450 <a class="product-item-link" href="https://meiner.de/fmv_de/weltuntergang-21230"> 31451 Weltuntergang </a> 31452 </div> 31453 31454 <div x-data="initEditionText_46705()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 31455 <!-- Marketing short text --> 31456 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 31457 </div> 31458 </div> 31459 31460 <div class="py-1 grid mb-4 "> 31461 31462 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46705,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46705,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46499":"1","46741":"1","46738":"1"},"childProductsAlertStatus":{"46499":"0","46741":"0","46738":"0"},"indexMapping":{"163:15":46499,"163:9":46741,"163:8":46738},"availabilityMessages":{"46499":"Lieferbar innerhalb von 3-5 Tagen","46741":"Download sofort verf\u00fcgbar","46738":"Download sofort verf\u00fcgbar"},"openAccess":{"46705":{"status":0},"46499":{"status":0},"46741":{"status":0},"46738":{"status":0}}},"availabilityMessages":{"46499":"Lieferbar innerhalb von 3-5 Tagen","46741":"Download sofort verf\u00fcgbar","46738":"Download sofort verf\u00fcgbar"},"openAccess":{"46705":{"status":0},"46499":{"status":0},"46741":{"status":0},"46738":{"status":0}}}'> 31463 <template x-if="containerVisible"> 31464 <!-- Popup Trigger --> 31465 <div> 31466 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 31467 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
31468 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 31469 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 31470<title>bell</title></svg> 31471</span> 31472 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 31473 31474 <!-- Popup Modal --> 31475 <template x-if="showModal"> 31476 <template x-teleport=".page-wrapper"> 31477 <div x-cloak class="fixed inset-0 flex items-center justify-center 31478 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 31479 <div class="relative bg-white rounded-lg shadow-xl 31480 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 31481 <div class="p-6"> 31482 <!-- Subscription Form for Popup --> 31483 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 31484 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 31485 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 31486 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 31487 31488 <div class="flex flex-col gap-3"> 31489 <div class="flex-grow grow"> 31490 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 31491 shadow-xs focus:outline-none focus:outline-hidden 31492 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 31493 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 31494 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 31495 </div> 31496 <input type="hidden" name="product_id" :value="currentProductId"> 31497 <input type="hidden" name="type" value="email"> 31498 31499 31500 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 31501 31502 <div class="amxnotif_guest_action"> 31503 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 31504 rounded-md focus:outline-none 31505 focus:outline-hidden focus:ring-2 31506 focus:ring-offset-2 disabled:opacity-50 31507 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 31508 Benachrichtigen </button> 31509 </div> 31510 </div> 31511 31512 <div class="flex items-start pt-2"> 31513 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 31514 text-blue-600 border-gray-300 rounded-sm"> 31515 <label class="amxnotif-stock-gdrp-label cursor-pointer 31516 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 31517 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 31518 </div> 31519 </form> 31520 </div> 31521 31522 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 31523 hover:text-gray-600 transition-colors" aria-label="Schließen"> 31524 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 31525 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 31526<title>x</title></svg> 31527 </button> 31528 </div> 31529 </div> 31530 </template> 31531 </template> 31532 </div> 31533 </template> 31534 </div> 31535 31536<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46705" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46705,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46499":"1","46741":"1","46738":"1"},"childProductsAlertStatus":{"46499":"0","46741":"0","46738":"0"},"indexMapping":"{\u0022163:15\u0022:46499,\u0022163:9\u0022:46741,\u0022163:8\u0022:46738}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46705,"availabilityMessages":{"46499":"Lieferbar innerhalb von 3-5 Tagen","46741":"Download sofort verf\u00fcgbar","46738":"Download sofort verf\u00fcgbar"},"openAccess":{"46705":{"status":0},"46499":{"status":0},"46741":{"status":0},"46738":{"status":0}}}'> 31537 31538 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
31539 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 31540 <span x-html="optionsLabelText"></span> 31541 </p> 31542</div> </div> 31543 31544
31544<script> 31545 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 31546 try { 31547 const attributes = (config && config.attributes) ? config.attributes : null; 31548 if (!attributes) return []; 31549 let attr = null; 31550 if (Array.isArray(attributes)) { 31551 for (let i = 0; i < attributes.length; i++) { 31552 const a = attributes[i]; 31553 if (a && a.id == attrId) { 31554 attr = a; 31555 break; 31556 } 31557 } 31558 } else { 31559 attr = attributes[attrId]; 31560 } 31561 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 31562 } catch (e) { 31563 return []; 31564 } 31565 }; 31566 31567 function initConfigurableSwatchOptions_46705() { 31568 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46499"]},{"id":"8","label":"PDF","products":["46738"]},{"id":"9","label":"EPUB","products":["46741"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46499":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46741":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46738":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"46705","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46499":{"163":"15"},"46741":{"163":"9"},"46738":{"163":"8"}},"salable":{"163":{"15":["46499"],"9":["46741"],"8":["46738"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46499":"005073","46741":"005075","46738":"005074"},"output":{"46499":"Kartoniert","46738":"PDF","46741":"EPUB"},"original_name":{"46499":"","46738":"","46741":""},"openaccess_license_link":{"46499":"","46738":"","46741":""},"openaccess_license_name":{"46499":"","46738":"","46741":""},"openaccess_external_link":{"46499":"","46738":"","46741":""},"gpsr_safety_info":{"46499":"","46738":"","46741":""},"description":{"46499":"Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Sp\u00e4testens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhunderts ist das Konzept reale M\u00f6glichkeit, und Menschen unterschiedlicher Zeiten sind unterschiedlich mit ihm umgegangen. So entstand eine charakteristisch moderne Form des Weltverh\u00e4ltnisses: Wenn die Zukunft bedroht ist, wird die Gegenwart zum Ort der Entscheidung. Raum f\u00fcr Hoffnung bleibt dennoch, selbst nach dem Untergang des Abendlandes (Spengler) und nach dem Ende der Geschichte (Fukuyama): Solange es die Welt gibt, erm\u00f6glicht jedes Ende einen neuen Anfang. ","46738":"Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Sp\u00e4testens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhunderts ist das Konzept reale M\u00f6glichkeit, und Menschen unterschiedlicher Zeiten sind unterschiedlich mit ihm umgegangen. So entstand eine charakteristisch moderne Form des Weltverh\u00e4ltnisses: Wenn die Zukunft bedroht ist, wird die Gegenwart zum Ort der Entscheidung. Raum f\u00fcr Hoffnung bleibt dennoch, selbst nach dem Untergang des Abendlandes (Spengler) und nach dem Ende der Geschichte (Fukuyama): Solange es die Welt gibt, erm\u00f6glicht jedes Ende einen neuen Anfang. ","46741":"Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Sp\u00e4testens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhun
31568derts ist das Konzept reale M\u00f6glichkeit, und Menschen unterschiedlicher Zeiten sind unterschiedlich mit ihm umgegangen. So entstand eine charakteristisch moderne Form des Weltverh\u00e4ltnisses: Wenn die Zukunft bedroht ist, wird die Gegenwart zum Ort der Entscheidung. Raum f\u00fcr Hoffnung bleibt dennoch, selbst nach dem Untergang des Abendlandes (Spengler) und nach dem Ende der Geschichte (Fukuyama): Solange es die Welt gibt, erm\u00f6glicht jedes Ende einen neuen Anfang. "},"doi":{"46499":"","46738":"10.28937\/978-3-7873-5074-2","46741":""},"isbn":{"46499":"978-3-7873-5073-5","46738":"978-3-7873-5074-2","46741":"978-3-7873-5075-9"},"marketing_short_text":{"46499":"","46738":"","46741":""},"recension_text":{"46499":"","46738":"","46741":""},"language":{"46499":"","46738":"","46741":""},"cover":{"46499":"Kartoniert","46738":"","46741":""},"pages":{"46499":"138 Seiten","46738":"138","46741":"138"},"edition":{"46499":"","46738":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","46741":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46499":"Nein","46738":"Nein","46741":"Nein"},"copyright_year":{"46499":"","46738":"","46741":""},"vlb_tix_link":{"46499":"https:\/\/neu.vlbtix.de\/products\/9783787350735?type=gtin","46738":"","46741":""},"defaultValues":{"163":"15"}}; 31569 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 31570 31571 if (typeof window.amxnotif_wrap_attributes === 'function') { 31572 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 31573 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 31574 } 31575 31576 const configurableOptionsComponent = initConfigurableOptions( 31577 '46705', 31578 config 31579 ); 31580 const swatchOptionsComponent = initSwatchOptions( 31581 swatchConfig 31582 ); 31583 31584 // DWS - Configurable product preselect start 31585 const confProdPreSelect = () => { 31586 return { 31587 preselectQuerystringItems() { 31588 var data = {"id":"46499","output":"15"}; 31589 const urlQueryParams = new URLSearchParams(window.location.search); 31590 31591 this.$nextTick(() => { 31592 setTimeout(() => { 31593 const rootEl = this.$root || this.$el; 31594 if (!rootEl) return; 31595 31596 const applySelection = (attrCode, attrValue) => { 31597 if (attrValue === undefined || attrValue === null || attrValue === '') return; 31598 31599 const attributes = Object.values(this.optionConfig.attributes || {}); 31600 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 31601 31602 if (targetAttr) { 31603 const attrId = String(targetAttr.id); 31604 const optionVal = String(attrValue); 31605 31606 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 31607 31608 if (inputEl) { 31609 inputEl.click(); 31610 inputEl.dispatchEvent(new Event('change', { 31611 bubbles: true 31612 })); 31613 } else { 31614 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 31615 if (selectEl) { 31616 selectEl.value = optionVal; 31617 selectEl.dispatchEvent(new Event('change', { 31618 bubbles: true 31619 })); 31620 } 31621 } 31622 31623 this.changeOption(attrId, optionVal, false); 31624 } 31625 }; 31626 31627 if (data && typeof data === 'object') {
31628 Object.keys(data).forEach(key => applySelection(key, data[key])); 31629 } 31630 31631 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 31632 if (attribute && attribute.code) { 31633 let optionValue = urlQueryParams.get(attribute.code); 31634 if (optionValue) { 31635 let optionId = false; 31636 const attributes = Object.values(this.optionConfig.attributes || {}); 31637 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 31638 31639 let found = false; 31640 Object.values(targetAttr.options).map(option => { 31641 if (found === false && option.label === optionValue) { 31642 optionId = option.id; 31643 found = true; 31644 } 31645 }); 31646 31647 const attrId = String(targetAttr.id); 31648 let optionVal = String(optionValue); 31649 if (found) { 31650 optionVal = String(optionId); 31651 } 31652 31653 applySelection(attribute.code, optionVal); 31654 } 31655 } 31656 }); 31657 }, 100); 31658 }); 31659 } 31660 } 31661 }; 31662 // DWS - Configurable product preselect end 31663 31664 const result = Object.assign( 31665 configurableOptionsComponent, 31666 swatchOptionsComponent, { 31667 productId: '46705', 31668 productIndex: 0, 31669 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 31670 showSwatches: false, 31671 precalcOptions: {}, 31672 originalInit: configurableOptionsComponent.init, 31673 init() { 31674 try { 31675 this.precalcOptions = {}; 31676 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 31677 this.preselectQuerystringItems(); 31678 if (Array.isArray(attrSource)) { 31679 attrSource.forEach(attr => { 31680 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 31681 }); 31682 } else if (attrSource && typeof attrSource === 'object') { 31683 Object.keys(attrSource).forEach(id => { 31684 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 31685 }); 31686 } 31687 } catch (e) { 31688 console.error('Pre-calc error:', e); 31689 } 31690 31691 if (typeof this.originalInit === 'function') { 31692 this.originalInit(); 31693 } 31694 31695 try { 31696 this.initShowSwatchesIntersect(); 31697 } catch (e) { 31698 console.error('intersect error:', e); 31699 } 31700 }, 31701 31702 updateGallery() { 31703 if (!this.productIndex) return; 31704 31705 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 31706 method: 'GET', 31707 headers: { 31708 'Content-Type': 'application/json', 31709 'X-Requested-With': 'XMLHttpRequest' 31710 } 31711 }) 31712 .then(response => response.json()) 31713 .then(data => { 31714 if (data && data.medium) { 31715 window.dispatchEvent(new CustomEvent("update-gallery-46705", { 31716 detail: data.medium 31717 })); 31718 } 31719 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 31720 }, 31721 31722 31723 initShowSwatchesIntersect() { 31724 const observer = new IntersectionObserver(entries => { 31725 if (entries[0].isIntersecting) { 31726 this.showSwatches = true; 31727 observer.disconnect(); 31728 } 31729 }, { 31730 rootMargin: '512px' 31731 }); 31732 observer.observe(this.$el); 31733 }, 31734 getOptions(attrId) { 31735 return this.precalcOptions[attrId] || []; 31736 }, 31737 getOptionsByAttrId() { 31738 return this.getOptions(this.$el.dataset.attributeId); 31739 }, 31740 _getItemId() { 31741 if (this.item && this.item.id) return this.item.id; 31742 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 31743 }, 31744 getSwatchOptionHtmlId() { 31745 const itemId = this._getItemId(); 31746 return itemId ? this.$id(`attribute-option-46705-${itemId}`) : ''; 31747 }, 31748 getSwatchOptionHtmlIdGroup() { 31749 const itemId = this._getItemId(); 31750 return itemId ? [`attribute-option-46705-${itemId}`] : []; 31751 }, 31752 getAttributeSwatchData(attributeId) { 31753 const data = Object.assign({}, this.swatchConfig[attributeId]); 31754 if (data['additional_data']) { 31755 try { 31756 data['details'] = JSON.parse(data['additional_data']); 31757 } catch (e) { 31758 data['details'] = {}; 31759 } 31760 } 31761 return data; 31762 }, 31763 getSwatchType(attributeId, optionId) { 31764 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 31765 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 31766 } 31767 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 31768 this.swatchConfig[attributeId].details.swatch_input_type : 31769 "empty"; 31770 if (type === 'visual') { 31771 const config = this.swatchConfig[attributeId]; 31772 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 31773 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 31774 } 31775 // Fallback to first option type 31776 for (const oId in config) { 31777 if (config[oId] && typeof config[oId].type !== 'undefined') { 31778 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 31779 } 31780 } 31781 } 31782 return type; 31783 }, 31784 mapSwatchTypeNumberToTypeCode(type) { 31785 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 31786 }, 31787 isTextSwatch() { 31788 const itemId = this._getItemId(); 31789 if (!this.$el || !itemId) return false;
31790 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31791 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 31792 }, 31793 31794 getSwatchText() { 31795 const itemId = this._getItemId(); 31796 if (this.item) return this.item.label || ''; 31797 if (!this.$el || !itemId) return ''; 31798 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31799 const options = attrId ? this.getOptions(attrId) : []; 31800 const opt = options.find(o => o.id == itemId); 31801 return opt ? opt.label : ''; 31802 }, 31803 getSwatchBackgroundStyle() { 31804 const itemId = this._getItemId(); 31805 if (!this.$el || !itemId) return ''; 31806 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31807 if (!attrId) return ''; 31808 const type = this.getSwatchType(attrId, itemId); 31809 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 31810 this.swatchConfig[attrId][itemId] : 31811 null; 31812 if (!swatchData) return ''; 31813 if (type === "color") return 'background-color:' + swatchData.value; 31814 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 31815 return ''; 31816 }, 31817 swatchOptionClasses() { 31818 const itemId = this._getItemId(); 31819 if (!this.$el || !itemId) return {}; 31820 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31821 return { 31822 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 31823 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 31824 'w-6 h-6': !this.isTextSwatch() 31825 } 31826 }, 31827 31828 onFocusSwatchItem() { 31829 const itemId = this._getItemId(); 31830 if (itemId) this.focusedLabel = itemId; 31831 }, 31832 onChangeOption() { 31833 const itemId = this._getItemId(); 31834 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 31835 if (attrId && itemId) this.changeOption(attrId, itemId); 31836 }, 31837 changeOption(attributeId, value) { 31838 if (value === '') { 31839 return; 31840 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 31841 } else { 31842 this.selectedValues[attributeId] = value; 31843 } 31844 31845 this.findSimpleIndex(); 31846 this.findAllowedAttributeOptions(); 31847 this.updatePrices(); 31848 this.updateGallery(); 31849 31850 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 31851 this.findProductIdsForPartialSelection(this.selectedValues) : []; 31852 31853 const eventDetail = { 31854 productId: this.productId, 31855 optionId: attributeId, 31856 value: value, 31857 productIndex: this.productIndex || 0, 31858 selectedValues: this.selectedValues, 31859 candidates: candidates, 31860 sourceElement: this.$el 31861 }; 31862 31863 // Dispatch for Amasty 31864 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 31865 detail: eventDetail 31866 })); 31867 31868 // Dispatch for Hyva listing 31869 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 31870 detail: eventDetail 31871 })); 31872 }, 31873 31874 31875 clearOptionIfActive() { 31876 const itemId = this._getItemId(); 31877 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 31878 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 31879 this.changeOption(attrId, ''); 31880 31881 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 31882 if (!input && this.$el?.querySelector) { 31883 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 31884 } 31885 if (!input && this.$el?.closest) { 31886 const root = this.$el.closest('[data-product-id]') || this.$el; 31887 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 31888 } 31889 if (input) { 31890 input.checked = false;
31891 } 31892 } 31893 }, 31894 get optionIsEnabled() { 31895 const itemId = this._getItemId(); 31896 if (!this.$el || !itemId) return true; 31897 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31898 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 31899 return !!allowedOptions.find(opt => opt.id == itemId); 31900 }, 31901 get isSelected() { 31902 const itemId = this._getItemId(); 31903 if (!this.$el || !itemId) return false; 31904 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31905 return attrId ? (this.selectedValues[attrId] == itemId) : false; 31906 }, 31907 get isSwatchRequired() { 31908 if (!this.$el) return false; 31909 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31910 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 31911 }, 31912 focusedLabel: false, 31913 activeTooltipItem: false, 31914 tooltipPositionElement: false,
31915 setActiveTooltipItem() { 31916 const itemId = this._getItemId(); 31917 if (!this.$el || !itemId) return; 31918 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 31919 this.activeTooltipItem = { 31920 attribute: attrId, 31921 item: itemId, 31922 index: 0 31923 }; 31924 this.tooltipPositionElement = this.$event ? this.$event.target : null; 31925 }, 31926 unsetActiveTooltipItem() { 31927 this.activeTooltipItem = false; 31928 } 31929 }, 31930 confProdPreSelect() 31931 ); 31932 31933 if (result.optionConfig && result.optionConfig.attributes) { 31934 const attributes = result.optionConfig.attributes; 31935 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 31936 let source = attributes; 31937 if (Array.isArray(attributes)) { 31938 source = {}; 31939 attributes.forEach(attr => { 31940 if (attr && attr.id) source[attr.id] = attr; 31941 }); 31942 } 31943 const values = Object.values(source); 31944 const wrapper = Object.assign(values, source); 31945 Object.defineProperty(wrapper, '__amxnotifWrapped', { 31946 value: true, 31947 enumerable: false 31948 }); 31949 result.optionConfig.attributes = wrapper; 31950 } 31951 } 31952 31953 return result; 31954 } 31955 31956 window.addEventListener('alpine:init', () => { 31957 Alpine.data('initConfigurableSwatchOptions_46705', initConfigurableSwatchOptions_46705); 31958 }, { 31959 once: true 31960 }); 31961 </script>
31961 31962 31963 <div x-data="initConfigurableSwatchOptions_46705" x-defer="intersect"> 31964 <div class="pagebuilder-home-hidden"> 31965 31966 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 31967 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 31968 <template x-if="showSwatches"> 31969 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46705-163" role="radiogroup" aria-label="Einband"> 31970 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 31971 <div :data-option-id="item.id" style="display: contents"> 31972 <div x-id="getSwatchOptionHtmlIdGroup"> 31973 <template x-if="optionIsEnabled"> 31974 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
31974self="unsetActiveTooltipItem"> 31975 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46705-163"> 31976 <div> 31977 <template x-if="isTextSwatch"> 31978 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 31979 </template> 31980 <template x-if="!optionIsActive(163, item.id)"> 31981 <div> 31982 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 31983 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 31984 </svg> 31985 </div> 31986 </template> 31987 </div> 31988 </label> 31989 </template> 31990</div> </div> 31991 </template> 31992 </div> 31993 </template> 31994 </div> 31995 </div> 31996 </div> 31997 </div> 31998 31999 <div class="meta py-4 pagebuilder-home-hidden"> 32000 <div x-data="initMarketingShortText_46705()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 32001 <!-- Marketing short text --> 32002 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 32003 </div> 32004 32005 <!-- Short description --> 32006 <div class="short-description"> 32007 Weltuntergang: Ein Wort, das es nur im Deutschen gibt, anderswo spricht man von der Apokalypse und vom Ende der Welt. Spätestens seit dem Abwurf der nuklearen Bombe Mitte des 20. Jahrhunderts ... 32008 <a href="https://meiner.de/fmv_de/weltuntergang-21230" class="underline">mehr</a> 32009 </div> 32010 </div> 32011 32012 <!-- Series --> 32013 <div class="mb-1"> 32014 <span class="sr-only">Reihe:</span> 32015 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 32016 <span>Blaue Reihe</span> 32017 </a> 32018 </div> 32019 32020 32021 <div class="mb-1"> 32022 <span x-data="initEditionText_46705()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 32023 <!-- Marketing short text --> 32024 <span class="edition-text" x-html="editionText"></span> 2026, 138 Seiten </span> 32025 </div> 32026 32027 </div> 32028 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 32029 32030 <div class="justify-end" x-data="initPriceBox()" @update-prices-46705.window="updatePrice($event.detail);"> 32031 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46705" data-price-box="product-id-46705"><span class="normal-price"> 32032 <span x-data x-id="['product\u002Dprice\u002D46705']" class="price-container price-final_price tax weee"> 32033 <span class="price-label">Ab</span> 32034 <span class="approx-price">ca. </span> 32035 <span :id="$id('product\u002Dprice\u002D46705')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 32036 </span> 32037</span> 32038 32039 32040</div> </div> 32041 32042 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 32043 <div class="open-access-container open-access-container-46705 flex mt-4 ml-auto sm:mt-0 hidden"> 32044 <div class="text-gray-700"> 32045 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 32046 <a href="" target="_blank" class="open-access-external-link m-auto "> 32047 Kostenlos online lesen </a> 32048 </button> 32049 </div> 32050 </div> 32051 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Weltuntergang" aria-label="In den Warenkorb Weltuntergang" data-addto="cart"> 32052 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 32053 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
320530 014 0z"></path> 32054</svg> 32055 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 32056 In den Warenkorb </span> 32057 </button> 32058 32059<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46705)" aria-label="Zur Wunschliste hinzufügen Weltuntergang" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 32060 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 32061 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 32062</svg> 32063</button> 32064 </div> 32065 </div> 32066 </div> 32067
32067<script> 32068 function initMarketingShortText_46705() { 32069 var marketingShortTextConfig = {}; 32070 if (typeof window.initConfigurableSwatchOptions_46705 === "function") { 32071 var fullConfig = window.initConfigurableSwatchOptions_46705().optionConfig 32072 var marketingShortTextConfig = fullConfig.marketing_short_text; 32073 } 32074 return { 32075 marketingShortText: '', 32076 config: marketingShortTextConfig, 32077 productId: '46705', 32078 getMarketingShortText(detail) { 32079 this.marketingShortText = detail.productIndex ? 32080 this.config[detail.productIndex] : 32081 null; 32082 }, 32083 eventListeners: { 32084 ['@listing-configurable-selection-changed.window'](event) { 32085 if (this.productId == event.detail.productId) { 32086 this.getMarketingShortText(event.detail); 32087 } 32088 32089 } 32090 } 32091 } 32092 } 32093 32094 function initEditionText_46705() { 32095 var editionTextConfig = {}; 32096 if (typeof window.initConfigurableSwatchOptions_46705 === "function") { 32097 var fullConfig = window.initConfigurableSwatchOptions_46705().optionConfig 32098 var editionTextConfig = fullConfig.edition; 32099 } 32100 return { 32101 editionText: '', 32102 config: editionTextConfig, 32103 productId: '46705', 32104 getEditionText(detail) { 32105 this.editionText = detail.productIndex ? 32106 this.config[detail.productIndex] : 32107 null; 32108 }, 32109 eventListeners: { 32110 ['@listing-configurable-selection-changed.window'](event) { 32111 if (this.productId == event.detail.productId) { 32112 this.getEditionText(event.detail); 32113 } 32114 32115 } 32116 } 32117 } 32118 } 32119 </script>
32119 32120 </form> 32121 32122 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/39968/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17366"> 32123 <input name="form_key" type="hidden" value="YDP9RAeVFUo72arn"> <input type="hidden" name="product" value="39968"> 32124 <a href="https://meiner.de/fmv_de/kritik-der-digitalisierung-17366" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 32125 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-39968.window="$el.src = $event.detail" alt="Kritik der Digitalisierung" title="Kritik der Digitalisierung" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351923_1.jpg" :style="{ 32126 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 32127 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 32128 }"> 32129 </a> 32130 <div class="product-info flex flex-col flex-grow "> 32131 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 32132 <div class="mb-2 text-sm text-gray-500 font-medium"> 32133 <a href="https://meiner.de/fmv_de/person/Daniel-Martin-Feige-3273/" class="mb-2"> 32134 Daniel Martin Feige </a> 32135 </div> 32136 <a class="product-item-link" href="https://meiner.de/fmv_de/kritik-der-digitalisierung-17366"> 32137 Kritik der Digitalisierung </a> 32138 </div> 32139 32140 <div x-data="initEditionText_39968()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 32141 <!-- Marketing short text --> 32142 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 32143 </div> 32144 </div> 32145 32146 <div class="py-1 grid mb-4 "> 32147 32148 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":39968,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":39968,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2RpZS1zYWNoZS1kZXItbG9naWs~","childProducts":{"47023":"1","47057":"1","47058":"1"},"childProductsAlertStatus":{"47023":"0","47057":"0","47058":"0"},"indexMapping":{"163:15":47023,"163:8":47057,"163:9":47058},"availabilityMessages":{"47023":"Lieferbar innerhalb von 3-5 Tagen","47057":"Download sofort verf\u00fcgbar","47058":"Download sofort verf\u00fcgbar"},"openAccess":{"39968":{"status":0},"47023":{"status":0},"47057":{"status":0},"47058":{"status":0}}},"availabilityMessages":{"47023":"Lieferbar innerhalb von 3-5 Tagen","47057":"Download sofort verf\u00fcgbar","47058":"Download sofort verf\u00fcgbar"},"openAccess":{"39968":{"status":0},"47023":{"status":0},"47057":{"status":0},"47058":{"status":0}}}'> 32149 <template x-if="containerVisible"> 32150 <!-- Popup Trigger --> 32151 <div> 32152 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 32153 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
32154 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 32155 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 32156<title>bell</title></svg> 32157</span> 32158 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 32159 32160 <!-- Popup Modal --> 32161 <template x-if="showModal"> 32162 <template x-teleport=".page-wrapper"> 32163 <div x-cloak class="fixed inset-0 flex items-center justify-center 32164 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 32165 <div class="relative bg-white rounded-lg shadow-xl 32166 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 32167 <div class="p-6"> 32168 <!-- Subscription Form for Popup --> 32169 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 32170 <input name="form_key" type="hidden" value="YDP9RAeVFUo72arn"> 32171 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 32172 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 32173 32174 <div class="flex flex-col gap-3"> 32175 <div class="flex-grow grow"> 32176 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 32177 shadow-xs focus:outline-none focus:outline-hidden 32178 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 32179 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 32180 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 32181 </div> 32182 <input type="hidden" name="product_id" :value="currentProductId"> 32183 <input type="hidden" name="type" value="email"> 32184 32185 <input type="hidden" name="parent_id" value="4130"> 32186 32187 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2RpZS1zYWNoZS1kZXItbG9naWs~"> 32188 32189 <div class="amxnotif_guest_action"> 32190 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 32191 rounded-md focus:outline-none 32192 focus:outline-hidden focus:ring-2 32193 focus:ring-offset-2 disabled:opacity-50 32194 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 32195 Benachrichtigen </button> 32196 </div> 32197 </div> 32198 32199 <div class="flex items-start pt-2"> 32200 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 32201 text-blue-600 border-gray-300 rounded-sm"> 32202 <label class="amxnotif-stock-gdrp-label cursor-pointer 32203 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 32204 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 32205 </div> 32206 </form> 32207 </div> 32208 32209 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 32210 hover:text-gray-600 transition-colors" aria-label="Schließen"> 32211 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 32212 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 32213<title>x</title></svg> 32214 </button> 32215 </div> 32216 </div> 32217 </template> 32218 </template> 32219 </div> 32220 </template> 32221 </div> 32222 32223<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_39968" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":39968,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2RpZS1zYWNoZS1kZXItbG9naWs~","childProducts":{"47023":"1","47057":"1","47058":"1"},"childProductsAlertStatus":{"47023":"0","47057":"0","47058":"0"},"indexMapping":"{\u0022163:15\u0022:47023,\u0022163:8\u0022:47057,\u0022163:9\u0022:47058}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":39968,"availabilityMessages":{"47023":"Lieferbar innerhalb von 3-5 Tagen","47057":"Download sofort verf\u00fcgbar","47058":"Download sofort verf\u00fcgbar"},"openAccess":{"39968":{"status":0},"47023":{"status":0},"47057":{"status":0},"47058":{"status":0}}}'> 32224 32225 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
32226 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 32227 <span x-html="optionsLabelText"></span> 32228 </p> 32229</div> </div> 32230 32231
32231<script> 32232 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 32233 try { 32234 const attributes = (config && config.attributes) ? config.attributes : null; 32235 if (!attributes) return []; 32236 let attr = null; 32237 if (Array.isArray(attributes)) { 32238 for (let i = 0; i < attributes.length; i++) { 32239 const a = attributes[i]; 32240 if (a && a.id == attrId) { 32241 attr = a; 32242 break; 32243 } 32244 } 32245 } else { 32246 attr = attributes[attrId]; 32247 } 32248 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 32249 } catch (e) { 32250 return []; 32251 } 32252 }; 32253 32254 function initConfigurableSwatchOptions_39968() { 32255 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["47023"]},{"id":"8","label":"PDF","products":["47057"]},{"id":"9","label":"EPUB","products":["47058"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47023":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47057":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47058":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":12.596637655462},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"39968","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"47023":{"163":"15"},"47057":{"163":"8"},"47058":{"163":"9"}},"salable":{"163":{"15":["47023"],"8":["47057"],"9":["47058"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"47023":"005190","47057":"005191","47058":"005192"},"output":{"47023":"Kartoniert","47057":"PDF","47058":"EPUB"},"original_name":{"47023":"","47057":"","47058":""},"openaccess_license_link":{"47023":"","47057":"","47058":""},"openaccess_license_name":{"47023":"","47057":"","47058":""},"openaccess_external_link":{"47023":"","47057":"","47058":""},"gpsr_safety_info":{"47023":"","47057":"","47058":""},"description":{"47023":"\u203aDigitalisierung\u2039 ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der Digitalisierung verbundenen Technologien weder neutrale noch unschuldige Mittel zu beliebigen Zwecken sind und soziale Medien keine Orte des Diskurses. Es weist nach, dass wir Begriffe wie Geist, Denken und Handeln KI-Systemen nicht sinnvoll zuschreiben k\u00f6nnen und entsprechende Diskurse einer Umarbeitung von Begriffen dienen, die wir eigentlich nur auf Menschen anwenden k\u00f6nnen.<br\/><br\/>Feige entwickelt seine Kritik an der Datifizierung unseres gesellschaftlichen Lebens in drei Schritten: aus technikphilosophischer, anthropologischer und kunstphilosophischer Perspektive. Dabei macht er plausibel, dass Kunst unter den Bedingungen der Digitalisierung eine kritische Rolle erf\u00fcllen kann und dass wir auf umstrittene Begriffe wie Autonomie und selbst Genie nicht verzichten k\u00f6nnen.<br\/><br\/>Sein Buch bietet zum ersten Mal den systematischen Entwurf einer kritischen Theorie der Digitalisierung. Dass sich vor dem Hintergrund seiner Diagnose sowohl Analysen, die die Digitalisierung bis in die Vor- und Fr\u00fchgeschichte verl\u00e4ngern, als auch Diskurse, die der K\u00fcnstlichen Intelligenz die F\u00e4higkeit zu handeln und zu denken zusprechen, als h\u00f6c
32255hst problematisch erweisen, zeigt Feige in seinem differenziert argumentierenden Essay.","47057":"\u203aDigitalisierung\u2039 ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der Digitalisierung verbundenen Technologien weder neutrale noch unschuldige Mittel zu beliebigen Zwecken sind und soziale Medien keine Orte des Diskurses. Es weist nach, dass wir Begriffe wie Geist, Denken und Handeln KI-Systemen nicht sinnvoll zuschreiben k\u00f6nnen und entsprechende Diskurse einer Umarbeitung von Begriffen dienen, die wir eigentlich nur auf Menschen anwenden k\u00f6nnen.<br\/><br\/>Feige entwickelt seine Kritik an der Datifizierung unseres gesellschaftlichen Lebens in drei Schritten: aus technikphilosophischer, anthropologischer und kunstphilosophischer Perspektive. Dabei macht er plausibel, dass Kunst unter den Bedingungen der Digitalisierung eine kritische Rolle erf\u00fcllen kann und dass wir auf umstrittene Begriffe wie Autonomie und selbst Genie nicht verzichten k\u00f6nnen.<br\/><br\/>Sein Buch bietet zum ersten Mal den systematischen Entwurf einer kritischen Theorie der Digitalisierung. Dass sich vor dem Hintergrund seiner Diagnose sowohl Analysen, die die Digitalisierung bis in die Vor- und Fr\u00fchgeschichte verl\u00e4ngern, als auch Diskurse, die der K\u00fcnstlichen Intelligenz die F\u00e4higkeit zu handeln und zu denken zusprechen, als h\u00f6chst problematisch erweisen, zeigt Feige in seinem differenziert argumentierenden Essay.","47058":"\u203aDigitalisierung\u2039 ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der Digitalisierung verbundenen Technologien weder neutrale noch unschuldige Mittel zu beliebigen Zwecken sind und soziale Medien keine Orte des Diskurses. Es weist nach, dass wir Begriffe wie Geist, Denken und Handeln KI-Systemen nicht sinnvoll zuschreiben k\u00f6nnen und entsprechende Diskurse einer Umarbeitung von Begriffen dienen, die wir eigentlich nur auf Menschen anwenden k\u00f6nnen.<br\/><br\/>Feige entwickelt seine Kritik an der Datifizierung unseres gesellschaftlichen Lebens in drei Schritten: aus technikphilosophischer, anthropologischer und kunstphilosophischer Perspektive. Dabei macht er plausibel, dass Kunst unter den Bedingungen der Digitalisierung eine kritische Rolle erf\u00fcllen kann und dass wir auf umstrittene Begriffe wie Autonomie und selbst Genie nicht verzichten k\u00f6nnen.<br\/><br\/>Sein Buch bietet zum ersten Mal den systematischen Entwurf einer kritischen Theorie der Digitalisierung. Dass sich vor dem Hintergrund seiner Diagnose sowohl Analysen, die die Digitalisierung bis in die Vor- und Fr\u00fchgeschichte verl\u00e4ngern, als auch Diskurse, die der K\u00fcnstlichen Intelligenz die F\u00e4higkeit zu handeln und zu denken zusprechen, als h\u00f6chst problematisch erweisen, zeigt Feige in seinem differenziert argumentierenden Essay."},"doi":{"47023":"","47057":"10.28937\/978-3-7873-5191-6","47058":""},"isbn":{"47023":"978-3-7873-5190-9","47057":"978-3-7873-5191-6","47058":"978-3-7873-5192-3"},"marketing_short_text":{"47023":"","47057":"","47058":""},"recension_text":{"47023":"<div class=\"reviews\">\r\n<div class=\"review\">\u203aKritik der Digitalisierung\u2039 ist eine wichtige und philosophisch fundierte Auseinandersetzung mit den Technologien, Konzepten und Begriffen, die unser Leben heute pr\u00e4gen. Wer dieses Buch gelesen hat, wird \u00fcber \u203aDigitalisierung\u2039 oder \u203ak\u00fcnstliche Intelligenz\u2039 sicher pr\u00e4ziser denken und sprechen k\u00f6nnen als vor der Lekt\u00fcre.<\/div>\r\n<div class=\"source\"><\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Daniel Martin Feige zeigt mit seinem Essay \u203aKritik der Digitalisierung\u2039 gekonnt M\u00f6glichkeiten der Reaktualisierung der \u00e4lteren kritischen Theorie zur Analyse des Digitalzeitalters auf.\n<\/div>\r\n<div class=\"source\">Dr. Marcel Remme, f\u00fcr lehrerbibliothek.de, 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige bietet eine gr\u00fcndliche und systematische Darstellung.<\/div>\r\n<div class=\"source\">Thomas Gro\u00df in zeitzeichen 08\/2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige gelingt es, die Tiefe philosophischen Nachdenkens f\u00fcr den KI-Diskurs zu erschlie\u00dfen, ohne bereits den Anspruch zu erheben, sie ganz au
32255szuloten. Er zeigt, was m\u00f6glich ist, wenn man die philosophische Tradition in Anspruch nimmt und \u00fcber reine Schlagworte und eine blo\u00df politische Bewertung der Digitalisierung hinauskommt.<\/div>\r\n<div class=\"source\">Marc P\u00fcschel in Junge Welt vom 29.07.2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch zeigt sehr anschaulich, warum digitale Systeme nur etwas Nachgebautes sind. Warum sie das, was menschliche Vernunft leisten kann, eben nicht leisten, auch nicht die sogenannte K\u00fcnstliche Intelligenz. Und dass es deshalb fatal ist, wenn wir uns der Logik des Digitalen unterwerfen. [\u2026] Das ist die Pointe dieses spannenden Buchs von Daniel Martin Feige, seine \u203aKritik der Digitalisierung\u2039: Nicht dass der Mensch digitale Technik nutzt, ist das Problem. Sondern dass er zugleich beginnt, die eigene Vernunft auszuschalten.<\/div>\r\n<div class=\"source\">Wilm H\u00fcffer auf SWR Kultur<\/div>\r\n<\/div>","47057":"<div class=\"reviews\">\r\n<div class=\"review\">\u203aKritik der Digitalisierung\u2039 ist eine wichtige und philosophisch fundierte Auseinandersetzung mit den Technologien, Konzepten und Begriffen, die unser Leben heute pr\u00e4gen. Wer dieses Buch gelesen hat, wird \u00fcber \u203aDigitalisierung\u2039 oder \u203ak\u00fcnstliche Intelligenz\u2039 sicher pr\u00e4ziser denken und sprechen k\u00f6nnen als vor der Lekt\u00fcre.<\/div>\r\n<div class=\"source\"><\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Daniel Martin Feige zeigt mit seinem Essay \u203aKritik der Digitalisierung\u2039 gekonnt M\u00f6glichkeiten der Reaktualisierung der \u00e4lteren kritischen Theorie zur Analyse des Digitalzeitalters auf.\n<\/div>\r\n<div class=\"source\">Dr. Marcel Remme, f\u00fcr lehrerbibliothek.de, 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige bietet eine gr\u00fcndliche und systematische Darstellung.<\/div>\r\n<div class=\"source\">Thomas Gro\u00df in zeitzeichen 08\/2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige gelingt es, die Tiefe philosophischen Nachdenkens f\u00fcr den KI-Diskurs zu erschlie\u00dfen, ohne bereits den Anspruch zu erheben, sie ganz auszuloten. Er zeigt, was m\u00f6glich ist, wenn man die philosophische Tradition in Anspruch nimmt und \u00fcber reine Schlagworte und eine blo\u00df politische Bewertung der Digitalisierung hinauskommt.<\/div>\r\n<div class=\"source\">Marc P\u00fcschel in Junge Welt vom 29.07.2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch zeigt sehr anschaulich, warum digitale Systeme nur etwas Nachgebautes sind. Warum sie das, was menschliche Vernunft leisten kann, eben nicht leisten, auch nicht die sogenannte K\u00fcnstliche Intelligenz. Und dass es deshalb fatal ist, wenn wir uns der Logik des Digitalen unterwerfen. [\u2026] Das ist die Pointe dieses spannenden Buchs von Daniel Martin Feige, seine \u203aKritik der Digitalisierung\u2039: Nicht dass der Mensch digitale Technik nutzt, ist das Problem. Sondern dass er zugleich beginnt, die eigene Vernunft auszuschalten.<\/div>\r\n<div class=\"source\">Wilm H\u00fcffer auf SWR Kultur<\/div>\r\n<\/div>","47058":"<div class=\"reviews\">\r\n<div class=\"review\">\u203aKritik der Digitalisierung\u2039 ist eine wichtige und philosophisch fundierte Auseinandersetzung mit den Technologien, Konzepten und Begriffen, die unser Leben heute pr\u00e4gen. Wer dieses Buch gelesen hat, wird \u00fcber \u203aDigitalisierung\u2039 oder \u203ak\u00fcnstliche Intelligenz\u2039 sicher pr\u00e4ziser denken und sprechen k\u00f6nnen als vor der Lekt\u00fcre.<\/div>\r\n<div class=\"source\"><\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Daniel Martin Feige zeigt mit seinem Essay \u203aKritik der Digitalisierung\u2039 gekonnt M\u00f6glichkeiten der Reaktualisierung der \u00e4lteren kritischen Theorie zur Analyse des Digitalzeitalters auf.\n<\/div>\r\n<div class=\"source\">Dr. Marcel Remme, f\u00fcr lehrerbibliothek.de, 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige bietet eine gr\u00fcndliche und systematische Darstellung.<\/div>\r\n<div class=\"source\">Thomas Gro\u00df in zeitzeichen 08\/2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Feige gelingt es, die Tiefe philosophischen Nachdenkens f\u00fcr den KI-Diskurs zu erschlie\u00dfen, ohne bereits den Anspruch zu erheben, sie ganz au
32255szuloten. Er zeigt, was m\u00f6glich ist, wenn man die philosophische Tradition in Anspruch nimmt und \u00fcber reine Schlagworte und eine blo\u00df politische Bewertung der Digitalisierung hinauskommt.<\/div>\r\n<div class=\"source\">Marc P\u00fcschel in Junge Welt vom 29.07.2025<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch zeigt sehr anschaulich, warum digitale Systeme nur etwas Nachgebautes sind. Warum sie das, was menschliche Vernunft leisten kann, eben nicht leisten, auch nicht die sogenannte K\u00fcnstliche Intelligenz. Und dass es deshalb fatal ist, wenn wir uns der Logik des Digitalen unterwerfen. [\u2026] Das ist die Pointe dieses spannenden Buchs von Daniel Martin Feige, seine \u203aKritik der Digitalisierung\u2039: Nicht dass der Mensch digitale Technik nutzt, ist das Problem. Sondern dass er zugleich beginnt, die eigene Vernunft auszuschalten.<\/div>\r\n<div class=\"source\">Wilm H\u00fcffer auf SWR Kultur<\/div>\r\n<\/div>"},"language":{"47023":"","47057":"","47058":""},"cover":{"47023":"Kartoniert","47057":"","47058":""},"pages":{"47023":"186 Seiten","47057":"186 Seiten","47058":"186 Seiten"},"edition":{"47023":"2., geringf\u00fcgig korrigierte Auflage","47057":"2., geringf\u00fcgig korrigierte Auflage","47058":"2., geringf\u00fcgig korrigierte Auflage"},"pod":{"47023":"Nein","47057":"Nein","47058":"Nein"},"copyright_year":{"47023":"","47057":"","47058":""},"vlb_tix_link":{"47023":"https:\/\/neu.vlbtix.de\/products\/9783787351909?type=gtin","47057":"","47058":""},"defaultValues":{"163":"15"}}; 32256 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 32257 32258 if (typeof window.amxnotif_wrap_attributes === 'function') { 32259 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 32260 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 32261 } 32262 32263 const configurableOptionsComponent = initConfigurableOptions( 32264 '39968', 32265 config 32266 ); 32267 const swatchOptionsComponent = initSwatchOptions( 32268 swatchConfig 32269 ); 32270 32271 // DWS - Configurable product preselect start 32272 const confProdPreSelect = () => { 32273 return { 32274 preselectQuerystringItems() { 32275 var data = {"id":"47023","output":"15"}; 32276 const urlQueryParams = new URLSearchParams(window.location.search); 32277 32278 this.$nextTick(() => { 32279 setTimeout(() => { 32280 const rootEl = this.$root || this.$el; 32281 if (!rootEl) return; 32282 32283 const applySelection = (attrCode, attrValue) => { 32284 if (attrValue === undefined || attrValue === null || attrValue === '') return; 32285 32286 const attributes = Object.values(this.optionConfig.attributes || {}); 32287 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 32288 32289 if (targetAttr) { 32290 const attrId = String(targetAttr.id); 32291 const optionVal = String(attrValue); 32292 32293 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 32294 32295 if (inputEl) { 32296 inputEl.click(); 32297 inputEl.dispatchEvent(new Event('change', { 32298 bubbles: true 32299 })); 32300 } else { 32301 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 32302 if (selectEl) { 32303 selectEl.value = optionVal; 32304 selectEl.dispatchEvent(new Event('change', { 32305 bubbles: true 32306 })); 32307 } 32308 } 32309 32310 this.changeOption(attrId, optionVal, false); 32311 } 32312 }; 32313 32314 if (data && typeof data === 'object') {
32315 Object.keys(data).forEach(key => applySelection(key, data[key])); 32316 } 32317 32318 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 32319 if (attribute && attribute.code) { 32320 let optionValue = urlQueryParams.get(attribute.code); 32321 if (optionValue) { 32322 let optionId = false; 32323 const attributes = Object.values(this.optionConfig.attributes || {}); 32324 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 32325 32326 let found = false; 32327 Object.values(targetAttr.options).map(option => { 32328 if (found === false && option.label === optionValue) { 32329 optionId = option.id; 32330 found = true; 32331 } 32332 }); 32333 32334 const attrId = String(targetAttr.id); 32335 let optionVal = String(optionValue); 32336 if (found) { 32337 optionVal = String(optionId); 32338 } 32339 32340 applySelection(attribute.code, optionVal); 32341 } 32342 } 32343 }); 32344 }, 100); 32345 }); 32346 } 32347 } 32348 }; 32349 // DWS - Configurable product preselect end 32350 32351 const result = Object.assign( 32352 configurableOptionsComponent, 32353 swatchOptionsComponent, { 32354 productId: '39968', 32355 productIndex: 0, 32356 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 32357 showSwatches: false, 32358 precalcOptions: {}, 32359 originalInit: configurableOptionsComponent.init, 32360 init() { 32361 try { 32362 this.precalcOptions = {}; 32363 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 32364 this.preselectQuerystringItems(); 32365 if (Array.isArray(attrSource)) { 32366 attrSource.forEach(attr => { 32367 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 32368 }); 32369 } else if (attrSource && typeof attrSource === 'object') { 32370 Object.keys(attrSource).forEach(id => { 32371 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 32372 }); 32373 } 32374 } catch (e) { 32375 console.error('Pre-calc error:', e); 32376 } 32377 32378 if (typeof this.originalInit === 'function') { 32379 this.originalInit(); 32380 } 32381 32382 try { 32383 this.initShowSwatchesIntersect(); 32384 } catch (e) { 32385 console.error('intersect error:', e); 32386 } 32387 }, 32388 32389 updateGallery() { 32390 if (!this.productIndex) return; 32391 32392 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 32393 method: 'GET', 32394 headers: { 32395 'Content-Type': 'application/json', 32396 'X-Requested-With': 'XMLHttpRequest' 32397 } 32398 }) 32399 .then(response => response.json()) 32400 .then(data => { 32401 if (data && data.medium) { 32402 window.dispatchEvent(new CustomEvent("update-gallery-39968", { 32403 detail: data.medium 32404 })); 32405 } 32406 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 32407 }, 32408 32409 32410 initShowSwatchesIntersect() { 32411 const observer = new IntersectionObserver(entries => { 32412 if (entries[0].isIntersecting) { 32413 this.showSwatches = true; 32414 observer.disconnect(); 32415 } 32416 }, { 32417 rootMargin: '512px' 32418 }); 32419 observer.observe(this.$el); 32420 }, 32421 getOptions(attrId) { 32422 return this.precalcOptions[attrId] || []; 32423 }, 32424 getOptionsByAttrId() { 32425 return this.getOptions(this.$el.dataset.attributeId); 32426 }, 32427 _getItemId() { 32428 if (this.item && this.item.id) return this.item.id; 32429 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 32430 }, 32431 getSwatchOptionHtmlId() { 32432 const itemId = this._getItemId(); 32433 return itemId ? this.$id(`attribute-option-39968-${itemId}`) : ''; 32434 }, 32435 getSwatchOptionHtmlIdGroup() { 32436 const itemId = this._getItemId(); 32437 return itemId ? [`attribute-option-39968-${itemId}`] : []; 32438 }, 32439 getAttributeSwatchData(attributeId) { 32440 const data = Object.assign({}, this.swatchConfig[attributeId]); 32441 if (data['additional_data']) { 32442 try { 32443 data['details'] = JSON.parse(data['additional_data']); 32444 } catch (e) { 32445 data['details'] = {}; 32446 } 32447 } 32448 return data; 32449 }, 32450 getSwatchType(attributeId, optionId) { 32451 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 32452 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 32453 } 32454 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 32455 this.swatchConfig[attributeId].details.swatch_input_type : 32456 "empty"; 32457 if (type === 'visual') { 32458 const config = this.swatchConfig[attributeId]; 32459 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 32460 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 32461 } 32462 // Fallback to first option type 32463 for (const oId in config) { 32464 if (config[oId] && typeof config[oId].type !== 'undefined') { 32465 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 32466 } 32467 } 32468 } 32469 return type; 32470 }, 32471 mapSwatchTypeNumberToTypeCode(type) { 32472 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 32473 }, 32474 isTextSwatch() { 32475 const itemId = this._getItemId(); 32476 if (!this.$el || !itemId) return false;
32477 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32478 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 32479 }, 32480 32481 getSwatchText() { 32482 const itemId = this._getItemId(); 32483 if (this.item) return this.item.label || ''; 32484 if (!this.$el || !itemId) return ''; 32485 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32486 const options = attrId ? this.getOptions(attrId) : []; 32487 const opt = options.find(o => o.id == itemId); 32488 return opt ? opt.label : ''; 32489 }, 32490 getSwatchBackgroundStyle() { 32491 const itemId = this._getItemId(); 32492 if (!this.$el || !itemId) return ''; 32493 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32494 if (!attrId) return ''; 32495 const type = this.getSwatchType(attrId, itemId); 32496 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 32497 this.swatchConfig[attrId][itemId] : 32498 null; 32499 if (!swatchData) return ''; 32500 if (type === "color") return 'background-color:' + swatchData.value; 32501 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 32502 return ''; 32503 }, 32504 swatchOptionClasses() { 32505 const itemId = this._getItemId(); 32506 if (!this.$el || !itemId) return {}; 32507 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32508 return { 32509 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 32510 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 32511 'w-6 h-6': !this.isTextSwatch() 32512 } 32513 }, 32514 32515 onFocusSwatchItem() { 32516 const itemId = this._getItemId(); 32517 if (itemId) this.focusedLabel = itemId; 32518 }, 32519 onChangeOption() { 32520 const itemId = this._getItemId(); 32521 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 32522 if (attrId && itemId) this.changeOption(attrId, itemId); 32523 }, 32524 changeOption(attributeId, value) { 32525 if (value === '') { 32526 return; 32527 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 32528 } else { 32529 this.selectedValues[attributeId] = value; 32530 } 32531 32532 this.findSimpleIndex(); 32533 this.findAllowedAttributeOptions(); 32534 this.updatePrices(); 32535 this.updateGallery(); 32536 32537 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 32538 this.findProductIdsForPartialSelection(this.selectedValues) : []; 32539 32540 const eventDetail = { 32541 productId: this.productId, 32542 optionId: attributeId, 32543 value: value, 32544 productIndex: this.productIndex || 0, 32545 selectedValues: this.selectedValues, 32546 candidates: candidates, 32547 sourceElement: this.$el 32548 }; 32549 32550 // Dispatch for Amasty 32551 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 32552 detail: eventDetail 32553 })); 32554 32555 // Dispatch for Hyva listing 32556 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 32557 detail: eventDetail 32558 })); 32559 }, 32560 32561 32562 clearOptionIfActive() { 32563 const itemId = this._getItemId(); 32564 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 32565 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 32566 this.changeOption(attrId, ''); 32567 32568 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 32569 if (!input && this.$el?.querySelector) { 32570 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 32571 } 32572 if (!input && this.$el?.closest) { 32573 const root = this.$el.closest('[data-product-id]') || this.$el; 32574 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 32575 } 32576 if (input) { 32577 input.checked = false;
32578 } 32579 } 32580 }, 32581 get optionIsEnabled() { 32582 const itemId = this._getItemId(); 32583 if (!this.$el || !itemId) return true; 32584 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32585 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 32586 return !!allowedOptions.find(opt => opt.id == itemId); 32587 }, 32588 get isSelected() { 32589 const itemId = this._getItemId(); 32590 if (!this.$el || !itemId) return false; 32591 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32592 return attrId ? (this.selectedValues[attrId] == itemId) : false; 32593 }, 32594 get isSwatchRequired() { 32595 if (!this.$el) return false; 32596 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32597 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 32598 }, 32599 focusedLabel: false, 32600 activeTooltipItem: false, 32601 tooltipPositionElement: false,
32602 setActiveTooltipItem() { 32603 const itemId = this._getItemId(); 32604 if (!this.$el || !itemId) return; 32605 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 32606 this.activeTooltipItem = { 32607 attribute: attrId, 32608 item: itemId, 32609 index: 0 32610 }; 32611 this.tooltipPositionElement = this.$event ? this.$event.target : null; 32612 }, 32613 unsetActiveTooltipItem() { 32614 this.activeTooltipItem = false; 32615 } 32616 }, 32617 confProdPreSelect() 32618 ); 32619 32620 if (result.optionConfig && result.optionConfig.attributes) { 32621 const attributes = result.optionConfig.attributes; 32622 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 32623 let source = attributes; 32624 if (Array.isArray(attributes)) { 32625 source = {}; 32626 attributes.forEach(attr => { 32627 if (attr && attr.id) source[attr.id] = attr; 32628 }); 32629 } 32630 const values = Object.values(source); 32631 const wrapper = Object.assign(values, source); 32632 Object.defineProperty(wrapper, '__amxnotifWrapped', { 32633 value: true, 32634 enumerable: false 32635 }); 32636 result.optionConfig.attributes = wrapper; 32637 } 32638 } 32639 32640 return result; 32641 } 32642 32643 window.addEventListener('alpine:init', () => { 32644 Alpine.data('initConfigurableSwatchOptions_39968', initConfigurableSwatchOptions_39968); 32645 }, { 32646 once: true 32647 }); 32648 </script>
32648 32649 32650 <div x-data="initConfigurableSwatchOptions_39968" x-defer="intersect"> 32651 <div class="pagebuilder-home-hidden"> 32652 32653 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 32654 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 32655 <template x-if="showSwatches"> 32656 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-39968-163" role="radiogroup" aria-label="Einband"> 32657 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 32658 <div :data-option-id="item.id" style="display: contents"> 32659 <div x-id="getSwatchOptionHtmlIdGroup"> 32660 <template x-if="optionIsEnabled"> 32661 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
32661self="unsetActiveTooltipItem"> 32662 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-39968-163"> 32663 <div> 32664 <template x-if="isTextSwatch"> 32665 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 32666 </template> 32667 <template x-if="!optionIsActive(163, item.id)"> 32668 <div> 32669 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 32670 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 32671 </svg> 32672 </div> 32673 </template> 32674 </div> 32675 </label> 32676 </template> 32677</div> </div> 32678 </template> 32679 </div> 32680 </template> 32681 </div> 32682 </div> 32683 </div> 32684 </div> 32685 32686 <div class="meta py-4 pagebuilder-home-hidden"> 32687 <div x-data="initMarketingShortText_39968()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 32688 <!-- Marketing short text --> 32689 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 32690 </div> 32691 32692 <!-- Short description --> 32693 <div class="short-description"> 32694 ›Digitalisierung‹ ist in aller Munde: Ihre mangelhafte Umsetzung wird ebenso angemahnt, wie vor ihren Folgen gewarnt wird. Das neue Buch von Daniel Martin Feige zeigt, dass die mit der ... <a href="https://meiner.de/fmv_de/kritik-der-digitalisierung-17366" class="underline">mehr</a> 32695 </div> 32696 </div> 32697 32698 <!-- Series --> 32699 <div class="mb-1"> 32700 <span class="sr-only">Reihe:</span> 32701 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 32702 <span>Blaue Reihe</span> 32703 </a> 32704 </div> 32705 32706 32707 <div class="mb-1"> 32708 <span x-data="initEditionText_39968()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 32709 <!-- Marketing short text --> 32710 <span class="edition-text" x-html="editionText"></span> 2025, 186 Seiten </span> 32711 </div> 32712 32713 </div> 32714 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 32715 32716 <div class="justify-end" x-data="initPriceBox()" @update-prices-39968.window="updatePrice($event.detail);"> 32717 <div class="price-box price-final_price" data-role="priceBox" data-product-id="39968" data-price-box="product-id-39968"><span class="normal-price"> 32718 <span x-data x-id="['product\u002Dprice\u002D39968']" class="price-container price-final_price tax weee"> 32719 <span class="price-label">Ab</span> 32720 <span class="approx-price">ca. </span> 32721 <span :id="$id('product\u002Dprice\u002D39968')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 32722 </span> 32723</span> 32724 32725 32726</div> </div> 32727 32728 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 32729 <div class="open-access-container open-access-container-39968 flex mt-4 ml-auto sm:mt-0 hidden"> 32730 <div class="text-gray-700"> 32731 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 32732 <a href="" target="_blank" class="open-access-external-link m-auto "> 32733 Kostenlos online lesen </a> 32734 </button> 32735 </div> 32736 </div> 32737 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kritik der Digitalisierung" aria-label="In den Warenkorb Kritik der Digitalisierung" data-addto="cart"> 32738 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 32739 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
327390 014 0z"></path> 32740</svg> 32741 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 32742 In den Warenkorb </span> 32743 </button> 32744 32745<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(39968)" aria-label="Zur Wunschliste hinzufügen Kritik der Digitalisierung" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 32746 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 32747 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 32748</svg> 32749</button> 32750 </div> 32751 </div> 32752 </div> 32753
32753<script> 32754 function initMarketingShortText_39968() { 32755 var marketingShortTextConfig = {}; 32756 if (typeof window.initConfigurableSwatchOptions_39968 === "function") { 32757 var fullConfig = window.initConfigurableSwatchOptions_39968().optionConfig 32758 var marketingShortTextConfig = fullConfig.marketing_short_text; 32759 } 32760 return { 32761 marketingShortText: '', 32762 config: marketingShortTextConfig, 32763 productId: '39968', 32764 getMarketingShortText(detail) { 32765 this.marketingShortText = detail.productIndex ? 32766 this.config[detail.productIndex] : 32767 null; 32768 }, 32769 eventListeners: { 32770 ['@listing-configurable-selection-changed.window'](event) { 32771 if (this.productId == event.detail.productId) { 32772 this.getMarketingShortText(event.detail); 32773 } 32774 32775 } 32776 } 32777 } 32778 } 32779 32780 function initEditionText_39968() { 32781 var editionTextConfig = {}; 32782 if (typeof window.initConfigurableSwatchOptions_39968 === "function") { 32783 var fullConfig = window.initConfigurableSwatchOptions_39968().optionConfig 32784 var editionTextConfig = fullConfig.edition; 32785 } 32786 return { 32787 editionText: '', 32788 config: editionTextConfig, 32789 productId: '39968', 32790 getEditionText(detail) { 32791 this.editionText = detail.productIndex ? 32792 this.config[detail.productIndex] : 32793 null; 32794 }, 32795 eventListeners: { 32796 ['@listing-configurable-selection-changed.window'](event) { 32797 if (this.productId == event.detail.productId) { 32798 this.getEditionText(event.detail); 32799 } 32800 32801 } 32802 } 32803 } 32804 } 32805 </script>
32805 32806 </form> 32807 32808 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/43703/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17423"> 32809 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="43703"> 32810 <a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 32811 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-43703.window="$el.src = $event.detail" alt="Schockierende Ungleichheit" title="Schockierende Ungleichheit" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351893_1.jpg" :style="{ 32812 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 32813 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 32814 }"> 32815 </a> 32816 <div class="product-info flex flex-col flex-grow "> 32817 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 32818 <div class="mb-2 text-sm text-gray-500 font-medium"> 32819 <a href="https://meiner.de/fmv_de/person/Wolfgang-Detel-3526/" class="mb-2"> 32820 Wolfgang Detel </a> 32821 </div> 32822 <a class="product-item-link" href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423"> 32823 Schockierende Ungleichheit </a> 32824 </div> 32825 32826 <div x-data="initEditionText_43703()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 32827 <!-- Marketing short text --> 32828 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 32829 </div> 32830 </div> 32831 32832 <div class="py-1 grid mb-4 "> 32833 32834 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":43703,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":43703,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46975":"1","46991":"1","46992":"1"},"childProductsAlertStatus":{"46975":"0","46991":"0","46992":"0"},"indexMapping":{"163:15":46975,"163:8":46991,"163:9":46992},"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}},"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}}'> 32835 <template x-if="containerVisible"> 32836 <!-- Popup Trigger --> 32837 <div> 32838 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 32839 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
32840 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 32841 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 32842<title>bell</title></svg> 32843</span> 32844 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 32845 32846 <!-- Popup Modal --> 32847 <template x-if="showModal"> 32848 <template x-teleport=".page-wrapper"> 32849 <div x-cloak class="fixed inset-0 flex items-center justify-center 32850 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 32851 <div class="relative bg-white rounded-lg shadow-xl 32852 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 32853 <div class="p-6"> 32854 <!-- Subscription Form for Popup --> 32855 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 32856 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 32857 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 32858 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 32859 32860 <div class="flex flex-col gap-3"> 32861 <div class="flex-grow grow"> 32862 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 32863 shadow-xs focus:outline-none focus:outline-hidden 32864 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 32865 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 32866 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 32867 </div> 32868 <input type="hidden" name="product_id" :value="currentProductId"> 32869 <input type="hidden" name="type" value="email"> 32870 32871 32872 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 32873 32874 <div class="amxnotif_guest_action"> 32875 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 32876 rounded-md focus:outline-none 32877 focus:outline-hidden focus:ring-2 32878 focus:ring-offset-2 disabled:opacity-50 32879 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 32880 Benachrichtigen </button> 32881 </div> 32882 </div> 32883 32884 <div class="flex items-start pt-2"> 32885 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 32886 text-blue-600 border-gray-300 rounded-sm"> 32887 <label class="amxnotif-stock-gdrp-label cursor-pointer 32888 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 32889 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 32890 </div> 32891 </form> 32892 </div> 32893 32894 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 32895 hover:text-gray-600 transition-colors" aria-label="Schließen"> 32896 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 32897 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 32898<title>x</title></svg> 32899 </button> 32900 </div> 32901 </div> 32902 </template> 32903 </template> 32904 </div> 32905 </template> 32906 </div> 32907 32908<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_43703" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":43703,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46975":"
329081","46991":"1","46992":"1"},"childProductsAlertStatus":{"46975":"0","46991":"0","46992":"0"},"indexMapping":"{\u0022163:15\u0022:46975,\u0022163:8\u0022:46991,\u0022163:9\u0022:46992}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":43703,"availabilityMessages":{"46975":"Lieferbar innerhalb von 3-5 Tagen","46991":"Download sofort verf\u00fcgbar","46992":"Download sofort verf\u00fcgbar"},"openAccess":{"43703":{"status":0},"46975":{"status":0},"46991":{"status":0},"46992":{"status":0}}}'> 32909 32910 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 32911 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 32912 <span x-html="optionsLabelText"></span> 32913 </p> 32914</div> </div> 32915 32916
32916<script> 32917 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 32918 try { 32919 const attributes = (config && config.attributes) ? config.attributes : null; 32920 if (!attributes) return []; 32921 let attr = null; 32922 if (Array.isArray(attributes)) { 32923 for (let i = 0; i < attributes.length; i++) { 32924 const a = attributes[i]; 32925 if (a && a.id == attrId) { 32926 attr = a; 32927 break; 32928 } 32929 } 32930 } else { 32931 attr = attributes[attrId]; 32932 } 32933 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 32934 } catch (e) { 32935 return []; 32936 } 32937 }; 32938 32939 function initConfigurableSwatchOptions_43703() { 32940 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46975"]},{"id":"8","label":"PDF","products":["46991"]},{"id":"9","label":"EPUB","products":["46992"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46975":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46991":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46992":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":18.478990596639},"finalPrice":{"amount":21.99},"isApproxPrice":null},"productId":"43703","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46975":{"163":"15"},"46991":{"163":"8"},"46992":{"163":"9"}},"salable":{"163":{"15":["46975"],"8":["46991"],"9":["46992"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46975":"005187","46991":"005188","46992":"005189"},"output":{"46975":"Kartoniert","46991":"PDF","46992":"EPUB"},"original_name":{"46975":"","46991":"","46992":""},"openaccess_license_link":{"46975":"","46991":"","46992":""},"openaccess_license_name":{"46975":"","46991":"","46992":""},"openaccess_external_link":{"46975":"","46991":"","46992":""},"gpsr_safety_info":{"46975":"","46991":"","46992":""},"description":{"46975":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle
32940konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert.","46991":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert.","46992":"In vielen demokratischen Staaten brennt die H\u00fctte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prek\u00e4re Arbeitsverh\u00e4ltnisse, wachsende Staatsschulden, Abbau sozialer und kultureller Errungenschaften bedr\u00e4ngen fast \u00fcberall die Demokratie.<br\/><br\/>In seinem engagierten politischen Essay nimmt der Philosoph Wolfgang Detel eine der zentralen Ursachen f\u00fcr diese Entwicklung in den Fokus, n\u00e4mlich die extreme und weiter zunehmende \u00f6konomische Ungleichheit. Und er schl\u00e4gt einen Weg vor, der neben den \u00fcblichen L\u00f6sungen der Staatsschuldenkrise \u2013 weitere Schuldenaufnahme und Abbau von Sozialleistungen \u2013 zu erheblichen Mehreinnahmen f\u00fchren w\u00fcrde: die finanziell st\u00e4rkere Beteiligung der Ultra-Reichen. Damit st\u00fcnden deutlich mehr Mittel etwa f\u00fcr Klimapolitik, Landesverteidigung, Integration von Migranten, Bildung und Milderung der Armut zur Verf\u00fcgung.<br\/><br\/>In sechs Kapiteln analysiert Detel Geschichte und Gegenwart der \u00f6konomischen Ungleichheit und wie die neoliberale Transformation, unterst\u00fctzt durch eine philosophisch-\u00f6konomische Ideologie, diese Ungleichheit in den letzten Jahrzehnten angetrieben hat. In einem weiteren Teil wird eine F\u00fclle konkreter steuerlicher Ma\u00dfnahmen vorgestellt, die geeignet w\u00e4ren, die \u00f6konomische Ungleichheit in Deutschland erheblich abzumildern. Abschlie\u00dfend werden mit Bezug u. a. auf Axel Honneth, Michael Sandel und Thomas Piketty Entw\u00fcrfe zur nachhaltigen Transformation der neoliberalen Marktwirtschaft skizziert."},"doi":{"46975":"","46991":"10.28937\/978-3-7873-5188-6","46992":""},"isbn":{"46975":"978-3-7873-5187-9","46991":"978-3-7873-5188-6","46992":"978-3-7873-5189-3"},"marketing_short_text":{"46975":"","46991":"","46992":""},"recension_text":{"46975":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">
32940[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>","46991":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>","46992":"<div class=\"reviews\">\r\n<div class=\"review\">Wer sich mit der Faktenresistenz der aktuellen Sozialstaatsdebatte nicht abfinden will, ist mit [diesem] Buch bestens bedient.<\/div>\r\n<div class=\"source\">Joachim Maiworm in BIG Business Crime, Juli 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">
32940[Detels] an Aristoteles gesch\u00e4rfter Blick verbindet philosophische Reflexion mit konkreten politischen Vorschl\u00e4gen, die sich auf wissenschaftliche Studien st\u00fctzen. Besonders sein Zehn-Punkte-Programm hebt das Buch \u00fcber reine Gesellschaftskritik hinaus. [...] Ein anregender und erhellender Beitrag.<\/div>\r\n<div class=\"source\">Franz Segbers in Publik-Forum 08\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Warum drohen so viele Demokratien zu kollabieren? Der Philosoph Wolfgang Detel macht die wachsende Ungleichheit als zentrale Ursache aus. Eine Analyse der neoliberalen Wurzeln der Misere \u2013 und ein Pl\u00e4doyer, durch eine st\u00e4rkere Besteuerung der Ultrareichen Demokratie, Sozialstaat und Zukunftsinvestitionen zu sichern.<\/div>\r\n<div class=\"source\">Platz 6 der Sachbuch-Bestenliste Februar 2026 von <a href=\"https:\/\/bilder.deutschlandfunk.de\/4d\/b8\/db\/7a\/4db8db7a-e5ed-438f-8873-d4bfa1815b5f\/sachbuchbestenliste-die-besten-sachbuecher-im-januar-2026-100.pdf\">Dlf Kultur<\/a>, <a href=\"https:\/\/www.zdf.de\/video\/reportagen\/aspekte-106\/bestenliste-104\">ZDF <\/a>und <a href=\"https:\/\/www.zeit.de\/kultur\/literatur\/2026-01\/sachbuch-bestenliste-literatur-buchempfehlungen-februar-2026\">ZEIT<\/a>\u200b\r\n<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist ein gro\u00dfer Wurf. Es bietet einen exzellenten \u00dcberblick \u00fcber die gegenw\u00e4rtige Debatte zu Ursachen und Folgen der Ungleichheit und verbindet philosophische Reflexion mit \u00f6konomischer und politischer Analyse. Das gelingt in einer Sprache, die allgemeinverst\u00e4ndlich bleibt, ohne banal zu werden. Ein Buch f\u00fcr jedermann also.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau am 17.03.2026<\/div>\r\n<\/div>"},"language":{"46975":"","46991":"","46992":""},"cover":{"46975":"Kartoniert","46991":"","46992":""},"pages":{"46975":"412 Seiten","46991":"420 Seiten","46992":"420 Seiten"},"edition":{"46975":"2., um ein Nachwort erg\u00e4nzte Auflage","46991":"2., um ein Nachwort erg\u00e4nzte Auflage","46992":"2., um ein Nachwort erg\u00e4nzte Auflage"},"pod":{"46975":"Nein","46991":"Nein","46992":"Nein"},"copyright_year":{"46975":"","46991":"","46992":""},"vlb_tix_link":{"46975":"https:\/\/neu.vlbtix.de\/products\/9783787351879?type=gtin","46991":"","46992":""},"defaultValues":{"163":"15"}}; 32941 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 32942 32943 if (typeof window.amxnotif_wrap_attributes === 'function') { 32944 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 32945 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 32946 } 32947 32948 const configurableOptionsComponent = initConfigurableOptions( 32949 '43703', 32950 config 32951 ); 32952 const swatchOptionsComponent = initSwatchOptions( 32953 swatchConfig 32954 ); 32955 32956 // DWS - Configurable product preselect start 32957 const confProdPreSelect = () => { 32958 return { 32959 preselectQuerystringItems() { 32960 var data = {"id":"46975","output":"15"}; 32961 const urlQueryParams = new URLSearchParams(window.location.search); 32962 32963 this.$nextTick(() => { 32964 setTimeout(() => { 32965 const rootEl = this.$root || this.$el; 32966 if (!rootEl) return; 32967 32968 const applySelection = (attrCode, attrValue) => { 32969 if (attrValue === undefined || attrValue === null || attrValue === '') return; 32970 32971 const attributes = Object.values(this.optionConfig.attributes || {}); 32972 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 32973 32974 if (targetAttr) { 32975 const attrId = String(targetAttr.id); 32976 const optionVal = String(attrValue); 32977 32978 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 32979 32980 if (inputEl) { 32981 inputEl.click(); 32982 inputEl.dispatchEvent(new Event('change', { 32983 bubbles: true 32984 })); 32985 } else { 32986 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 32987 if (selectEl) { 32988 selectEl.value = optionVal; 32989 selectEl.dispatchEvent(new Event('change', { 32990 bubbles: true 32991 })); 32992 } 32993 } 32994 32995 this.changeOption(attrId, optionVal, false); 32996 } 32997 }; 32998 32999 if (data && typeof data === 'object') {
33000 Object.keys(data).forEach(key => applySelection(key, data[key])); 33001 } 33002 33003 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 33004 if (attribute && attribute.code) { 33005 let optionValue = urlQueryParams.get(attribute.code); 33006 if (optionValue) { 33007 let optionId = false; 33008 const attributes = Object.values(this.optionConfig.attributes || {}); 33009 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 33010 33011 let found = false; 33012 Object.values(targetAttr.options).map(option => { 33013 if (found === false && option.label === optionValue) { 33014 optionId = option.id; 33015 found = true; 33016 } 33017 }); 33018 33019 const attrId = String(targetAttr.id); 33020 let optionVal = String(optionValue); 33021 if (found) { 33022 optionVal = String(optionId); 33023 } 33024 33025 applySelection(attribute.code, optionVal); 33026 } 33027 } 33028 }); 33029 }, 100); 33030 }); 33031 } 33032 } 33033 }; 33034 // DWS - Configurable product preselect end 33035 33036 const result = Object.assign( 33037 configurableOptionsComponent, 33038 swatchOptionsComponent, { 33039 productId: '43703', 33040 productIndex: 0, 33041 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 33042 showSwatches: false, 33043 precalcOptions: {}, 33044 originalInit: configurableOptionsComponent.init, 33045 init() { 33046 try { 33047 this.precalcOptions = {}; 33048 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 33049 this.preselectQuerystringItems(); 33050 if (Array.isArray(attrSource)) { 33051 attrSource.forEach(attr => { 33052 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 33053 }); 33054 } else if (attrSource && typeof attrSource === 'object') { 33055 Object.keys(attrSource).forEach(id => { 33056 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 33057 }); 33058 } 33059 } catch (e) { 33060 console.error('Pre-calc error:', e); 33061 } 33062 33063 if (typeof this.originalInit === 'function') { 33064 this.originalInit(); 33065 } 33066 33067 try { 33068 this.initShowSwatchesIntersect(); 33069 } catch (e) { 33070 console.error('intersect error:', e); 33071 } 33072 }, 33073 33074 updateGallery() { 33075 if (!this.productIndex) return; 33076 33077 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 33078 method: 'GET', 33079 headers: { 33080 'Content-Type': 'application/json', 33081 'X-Requested-With': 'XMLHttpRequest' 33082 } 33083 }) 33084 .then(response => response.json()) 33085 .then(data => { 33086 if (data && data.medium) { 33087 window.dispatchEvent(new CustomEvent("update-gallery-43703", { 33088 detail: data.medium 33089 })); 33090 } 33091 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 33092 }, 33093 33094 33095 initShowSwatchesIntersect() { 33096 const observer = new IntersectionObserver(entries => { 33097 if (entries[0].isIntersecting) { 33098 this.showSwatches = true; 33099 observer.disconnect(); 33100 } 33101 }, { 33102 rootMargin: '512px' 33103 }); 33104 observer.observe(this.$el); 33105 }, 33106 getOptions(attrId) { 33107 return this.precalcOptions[attrId] || []; 33108 }, 33109 getOptionsByAttrId() { 33110 return this.getOptions(this.$el.dataset.attributeId); 33111 }, 33112 _getItemId() { 33113 if (this.item && this.item.id) return this.item.id; 33114 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 33115 }, 33116 getSwatchOptionHtmlId() { 33117 const itemId = this._getItemId(); 33118 return itemId ? this.$id(`attribute-option-43703-${itemId}`) : ''; 33119 }, 33120 getSwatchOptionHtmlIdGroup() { 33121 const itemId = this._getItemId(); 33122 return itemId ? [`attribute-option-43703-${itemId}`] : []; 33123 }, 33124 getAttributeSwatchData(attributeId) { 33125 const data = Object.assign({}, this.swatchConfig[attributeId]); 33126 if (data['additional_data']) { 33127 try { 33128 data['details'] = JSON.parse(data['additional_data']); 33129 } catch (e) { 33130 data['details'] = {}; 33131 } 33132 } 33133 return data; 33134 }, 33135 getSwatchType(attributeId, optionId) { 33136 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 33137 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 33138 } 33139 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 33140 this.swatchConfig[attributeId].details.swatch_input_type : 33141 "empty"; 33142 if (type === 'visual') { 33143 const config = this.swatchConfig[attributeId]; 33144 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 33145 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 33146 } 33147 // Fallback to first option type 33148 for (const oId in config) { 33149 if (config[oId] && typeof config[oId].type !== 'undefined') { 33150 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 33151 } 33152 } 33153 } 33154 return type; 33155 }, 33156 mapSwatchTypeNumberToTypeCode(type) { 33157 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 33158 }, 33159 isTextSwatch() { 33160 const itemId = this._getItemId(); 33161 if (!this.$el || !itemId) return false;
33162 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33163 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 33164 }, 33165 33166 getSwatchText() { 33167 const itemId = this._getItemId(); 33168 if (this.item) return this.item.label || ''; 33169 if (!this.$el || !itemId) return ''; 33170 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33171 const options = attrId ? this.getOptions(attrId) : []; 33172 const opt = options.find(o => o.id == itemId); 33173 return opt ? opt.label : ''; 33174 }, 33175 getSwatchBackgroundStyle() { 33176 const itemId = this._getItemId(); 33177 if (!this.$el || !itemId) return ''; 33178 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33179 if (!attrId) return ''; 33180 const type = this.getSwatchType(attrId, itemId); 33181 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 33182 this.swatchConfig[attrId][itemId] : 33183 null; 33184 if (!swatchData) return ''; 33185 if (type === "color") return 'background-color:' + swatchData.value; 33186 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 33187 return ''; 33188 }, 33189 swatchOptionClasses() { 33190 const itemId = this._getItemId(); 33191 if (!this.$el || !itemId) return {}; 33192 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33193 return { 33194 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 33195 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 33196 'w-6 h-6': !this.isTextSwatch() 33197 } 33198 }, 33199 33200 onFocusSwatchItem() { 33201 const itemId = this._getItemId(); 33202 if (itemId) this.focusedLabel = itemId; 33203 }, 33204 onChangeOption() { 33205 const itemId = this._getItemId(); 33206 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 33207 if (attrId && itemId) this.changeOption(attrId, itemId); 33208 }, 33209 changeOption(attributeId, value) { 33210 if (value === '') { 33211 return; 33212 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 33213 } else { 33214 this.selectedValues[attributeId] = value; 33215 } 33216 33217 this.findSimpleIndex(); 33218 this.findAllowedAttributeOptions(); 33219 this.updatePrices(); 33220 this.updateGallery(); 33221 33222 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 33223 this.findProductIdsForPartialSelection(this.selectedValues) : []; 33224 33225 const eventDetail = { 33226 productId: this.productId, 33227 optionId: attributeId, 33228 value: value, 33229 productIndex: this.productIndex || 0, 33230 selectedValues: this.selectedValues, 33231 candidates: candidates, 33232 sourceElement: this.$el 33233 }; 33234 33235 // Dispatch for Amasty 33236 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 33237 detail: eventDetail 33238 })); 33239 33240 // Dispatch for Hyva listing 33241 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 33242 detail: eventDetail 33243 })); 33244 }, 33245 33246 33247 clearOptionIfActive() { 33248 const itemId = this._getItemId(); 33249 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 33250 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 33251 this.changeOption(attrId, ''); 33252 33253 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 33254 if (!input && this.$el?.querySelector) { 33255 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 33256 } 33257 if (!input && this.$el?.closest) { 33258 const root = this.$el.closest('[data-product-id]') || this.$el; 33259 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 33260 } 33261 if (input) { 33262 input.checked = false;
33263 } 33264 } 33265 }, 33266 get optionIsEnabled() { 33267 const itemId = this._getItemId(); 33268 if (!this.$el || !itemId) return true; 33269 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33270 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 33271 return !!allowedOptions.find(opt => opt.id == itemId); 33272 }, 33273 get isSelected() { 33274 const itemId = this._getItemId(); 33275 if (!this.$el || !itemId) return false; 33276 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33277 return attrId ? (this.selectedValues[attrId] == itemId) : false; 33278 }, 33279 get isSwatchRequired() { 33280 if (!this.$el) return false; 33281 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33282 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 33283 }, 33284 focusedLabel: false, 33285 activeTooltipItem: false, 33286 tooltipPositionElement: false,
33287 setActiveTooltipItem() { 33288 const itemId = this._getItemId(); 33289 if (!this.$el || !itemId) return; 33290 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33291 this.activeTooltipItem = { 33292 attribute: attrId, 33293 item: itemId, 33294 index: 0 33295 }; 33296 this.tooltipPositionElement = this.$event ? this.$event.target : null; 33297 }, 33298 unsetActiveTooltipItem() { 33299 this.activeTooltipItem = false; 33300 } 33301 }, 33302 confProdPreSelect() 33303 ); 33304 33305 if (result.optionConfig && result.optionConfig.attributes) { 33306 const attributes = result.optionConfig.attributes; 33307 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 33308 let source = attributes; 33309 if (Array.isArray(attributes)) { 33310 source = {}; 33311 attributes.forEach(attr => { 33312 if (attr && attr.id) source[attr.id] = attr; 33313 }); 33314 } 33315 const values = Object.values(source); 33316 const wrapper = Object.assign(values, source); 33317 Object.defineProperty(wrapper, '__amxnotifWrapped', { 33318 value: true, 33319 enumerable: false 33320 }); 33321 result.optionConfig.attributes = wrapper; 33322 } 33323 } 33324 33325 return result; 33326 } 33327 33328 window.addEventListener('alpine:init', () => { 33329 Alpine.data('initConfigurableSwatchOptions_43703', initConfigurableSwatchOptions_43703); 33330 }, { 33331 once: true 33332 }); 33333 </script>
33333 33334 33335 <div x-data="initConfigurableSwatchOptions_43703" x-defer="intersect"> 33336 <div class="pagebuilder-home-hidden"> 33337 33338 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 33339 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 33340 <template x-if="showSwatches"> 33341 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-43703-163" role="radiogroup" aria-label="Einband"> 33342 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 33343 <div :data-option-id="item.id" style="display: contents"> 33344 <div x-id="getSwatchOptionHtmlIdGroup"> 33345 <template x-if="optionIsEnabled"> 33346 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
33346self="unsetActiveTooltipItem"> 33347 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-43703-163"> 33348 <div> 33349 <template x-if="isTextSwatch"> 33350 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 33351 </template> 33352 <template x-if="!optionIsActive(163, item.id)"> 33353 <div> 33354 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 33355 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 33356 </svg> 33357 </div> 33358 </template> 33359 </div> 33360 </label> 33361 </template> 33362</div> </div> 33363 </template> 33364 </div> 33365 </template> 33366 </div> 33367 </div> 33368 </div> 33369 </div> 33370 33371 <div class="meta py-4 pagebuilder-home-hidden"> 33372 <div x-data="initMarketingShortText_43703()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 33373 <!-- Marketing short text --> 33374 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 33375 </div> 33376 33377 <!-- Short description --> 33378 <div class="short-description"> 33379 In vielen demokratischen Staaten brennt die Hütte, auch in Deutschland. Rechtspopulismus, Faschismus, alarmierende soziale Ungleichheit, prekäre Arbeitsverhältnisse, wachsende Staatsschulden, ... <a href="https://meiner.de/fmv_de/schockierende-ungleichheit-17423" class="underline">mehr</a> 33380 </div> 33381 </div> 33382 33383 <!-- Series --> 33384 <div class="mb-1"> 33385 <span class="sr-only">Reihe:</span> 33386 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 33387 <span>Blaue Reihe</span> 33388 </a> 33389 </div> 33390 33391 33392 <div class="mb-1"> 33393 <span x-data="initEditionText_43703()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 33394 <!-- Marketing short text --> 33395 <span class="edition-text" x-html="editionText"></span> 2026, 412 Seiten </span> 33396 </div> 33397 33398 </div> 33399 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 33400 33401 <div class="justify-end" x-data="initPriceBox()" @update-prices-43703.window="updatePrice($event.detail);"> 33402 <div class="price-box price-final_price" data-role="priceBox" data-product-id="43703" data-price-box="product-id-43703"><span class="normal-price"> 33403 <span x-data x-id="['product\u002Dprice\u002D43703']" class="price-container price-final_price tax weee"> 33404 <span class="price-label">Ab</span> 33405 <span class="approx-price">ca. </span> 33406 <span :id="$id('product\u002Dprice\u002D43703')" data-price-amount="21.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">21,99 €</span></span> 33407 </span> 33408</span> 33409 33410 33411</div> </div> 33412 33413 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 33414 <div class="open-access-container open-access-container-43703 flex mt-4 ml-auto sm:mt-0 hidden"> 33415 <div class="text-gray-700"> 33416 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 33417 <a href="" target="_blank" class="open-access-external-link m-auto "> 33418 Kostenlos online lesen </a> 33419 </button> 33420 </div> 33421 </div> 33422 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Schockierende Ungleichheit" aria-label="In den Warenkorb Schockierende Ungleichheit" data-addto="cart"> 33423 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 33424 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
334240 014 0z"></path> 33425</svg> 33426 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 33427 In den Warenkorb </span> 33428 </button> 33429 33430<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(43703)" aria-label="Zur Wunschliste hinzufügen Schockierende Ungleichheit" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 33431 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 33432 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 33433</svg> 33434</button> 33435 </div> 33436 </div> 33437 </div> 33438
33438<script> 33439 function initMarketingShortText_43703() { 33440 var marketingShortTextConfig = {}; 33441 if (typeof window.initConfigurableSwatchOptions_43703 === "function") { 33442 var fullConfig = window.initConfigurableSwatchOptions_43703().optionConfig 33443 var marketingShortTextConfig = fullConfig.marketing_short_text; 33444 } 33445 return { 33446 marketingShortText: '', 33447 config: marketingShortTextConfig, 33448 productId: '43703', 33449 getMarketingShortText(detail) { 33450 this.marketingShortText = detail.productIndex ? 33451 this.config[detail.productIndex] : 33452 null; 33453 }, 33454 eventListeners: { 33455 ['@listing-configurable-selection-changed.window'](event) { 33456 if (this.productId == event.detail.productId) { 33457 this.getMarketingShortText(event.detail); 33458 } 33459 33460 } 33461 } 33462 } 33463 } 33464 33465 function initEditionText_43703() { 33466 var editionTextConfig = {}; 33467 if (typeof window.initConfigurableSwatchOptions_43703 === "function") { 33468 var fullConfig = window.initConfigurableSwatchOptions_43703().optionConfig 33469 var editionTextConfig = fullConfig.edition; 33470 } 33471 return { 33472 editionText: '', 33473 config: editionTextConfig, 33474 productId: '43703', 33475 getEditionText(detail) { 33476 this.editionText = detail.productIndex ? 33477 this.config[detail.productIndex] : 33478 null; 33479 }, 33480 eventListeners: { 33481 ['@listing-configurable-selection-changed.window'](event) { 33482 if (this.productId == event.detail.productId) { 33483 this.getEditionText(event.detail); 33484 } 33485 33486 } 33487 } 33488 } 33489 } 33490 </script>
33490 33491 </form> 33492 33493 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46704/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21148"> 33494 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46704"> 33495 <a href="https://meiner.de/fmv_de/ethik-der-beratung-21148" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 33496 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46704.window="$el.src = $event.detail" alt="Ethik der Beratung" title="Ethik der Beratung" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350605_1.jpg" :style="{ 33497 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 33498 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 33499 }"> 33500 </a> 33501 <div class="product-info flex flex-col flex-grow "> 33502 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 33503 <div class="mb-2 text-sm text-gray-500 font-medium"> 33504 <a href="https://meiner.de/fmv_de/person/Rolf-Lachmann-21149/" class="mb-2"> 33505 Rolf Lachmann </a> 33506 </div> 33507 <a class="product-item-link" href="https://meiner.de/fmv_de/ethik-der-beratung-21148"> 33508 Ethik der Beratung </a> 33509 </div> 33510 33511 <div x-data="initEditionText_46704()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 33512 <!-- Marketing short text --> 33513 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 33514 </div> 33515 </div> 33516 33517 <div class="py-1 grid mb-4 "> 33518 33519 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46704,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46704,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46498":"1","46764":"1","46765":"1"},"childProductsAlertStatus":{"46498":"0","46764":"0","46765":"0"},"indexMapping":{"163:15":46498,"163:8":46764,"163:9":46765},"availabilityMessages":{"46498":"Lieferbar innerhalb von 3-5 Tagen","46764":"Download sofort verf\u00fcgbar","46765":"Download sofort verf\u00fcgbar"},"openAccess":{"46704":{"status":0},"46498":{"status":0},"46764":{"status":0},"46765":{"status":0}}},"availabilityMessages":{"46498":"Lieferbar innerhalb von 3-5 Tagen","46764":"Download sofort verf\u00fcgbar","46765":"Download sofort verf\u00fcgbar"},"openAccess":{"46704":{"status":0},"46498":{"status":0},"46764":{"status":0},"46765":{"status":0}}}'> 33520 <template x-if="containerVisible"> 33521 <!-- Popup Trigger --> 33522 <div> 33523 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 33524 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
33525 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 33526 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 33527<title>bell</title></svg> 33528</span> 33529 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 33530 33531 <!-- Popup Modal --> 33532 <template x-if="showModal"> 33533 <template x-teleport=".page-wrapper"> 33534 <div x-cloak class="fixed inset-0 flex items-center justify-center 33535 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 33536 <div class="relative bg-white rounded-lg shadow-xl 33537 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 33538 <div class="p-6"> 33539 <!-- Subscription Form for Popup --> 33540 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 33541 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 33542 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 33543 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 33544 33545 <div class="flex flex-col gap-3"> 33546 <div class="flex-grow grow"> 33547 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 33548 shadow-xs focus:outline-none focus:outline-hidden 33549 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 33550 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 33551 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 33552 </div> 33553 <input type="hidden" name="product_id" :value="currentProductId"> 33554 <input type="hidden" name="type" value="email"> 33555 33556 33557 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 33558 33559 <div class="amxnotif_guest_action"> 33560 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 33561 rounded-md focus:outline-none 33562 focus:outline-hidden focus:ring-2 33563 focus:ring-offset-2 disabled:opacity-50 33564 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 33565 Benachrichtigen </button> 33566 </div> 33567 </div> 33568 33569 <div class="flex items-start pt-2"> 33570 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 33571 text-blue-600 border-gray-300 rounded-sm"> 33572 <label class="amxnotif-stock-gdrp-label cursor-pointer 33573 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 33574 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 33575 </div> 33576 </form> 33577 </div> 33578 33579 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 33580 hover:text-gray-600 transition-colors" aria-label="Schließen"> 33581 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 33582 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 33583<title>x</title></svg> 33584 </button> 33585 </div> 33586 </div> 33587 </template> 33588 </template> 33589 </div> 33590 </template> 33591 </div> 33592 33593<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46704" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46704,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46498":"1","46764":"1","46765":"1"},"childProductsAlertStatus":{"46498":"0","46764":"0","46765":"0"},"indexMapping":"{\u0022163:15\u0022:46498,\u0022163:8\u0022:46764,\u0022163:9\u0022:46765}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46704,"availabilityMessages":{"46498":"Lieferbar innerhalb von 3-5 Tagen","46764":"Download sofort verf\u00fcgbar","46765":"Download sofort verf\u00fcgbar"},"openAccess":{"46704":{"status":0},"46498":{"status":0},"46764":{"status":0},"46765":{"status":0}}}'> 33594 33595 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
33596 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 33597 <span x-html="optionsLabelText"></span> 33598 </p> 33599</div> </div> 33600 33601
33601<script> 33602 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 33603 try { 33604 const attributes = (config && config.attributes) ? config.attributes : null; 33605 if (!attributes) return []; 33606 let attr = null; 33607 if (Array.isArray(attributes)) { 33608 for (let i = 0; i < attributes.length; i++) { 33609 const a = attributes[i]; 33610 if (a && a.id == attrId) { 33611 attr = a; 33612 break; 33613 } 33614 } 33615 } else { 33616 attr = attributes[attrId]; 33617 } 33618 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 33619 } catch (e) { 33620 return []; 33621 } 33622 }; 33623 33624 function initConfigurableSwatchOptions_46704() { 33625 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46498"]},{"id":"8","label":"PDF","products":["46764"]},{"id":"9","label":"EPUB","products":["46765"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46498":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46764":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46765":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":18.478990596639},"finalPrice":{"amount":21.99},"isApproxPrice":null},"productId":"46704","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46498":{"163":"15"},"46764":{"163":"8"},"46765":{"163":"9"}},"salable":{"163":{"15":["46498"],"8":["46764"],"9":["46765"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46498":"005058","46764":"005059","46765":"005060"},"output":{"46498":"Kartoniert","46764":"PDF","46765":"EPUB"},"original_name":{"46498":"","46764":"","46765":""},"openaccess_license_link":{"46498":"","46764":"","46765":""},"openaccess_license_name":{"46498":"","46764":"","46765":""},"openaccess_external_link":{"46498":"","46764":"","46765":""},"gpsr_safety_info":{"46498":"","46764":"","46765":""},"description":{"46498":"Professionelle pers\u00f6nliche Beratungen sind heute nahezu allgegenw\u00e4rtig. Berater:innen sollten aber nicht nur konkrete Hilfestellung leisten, sondern auch ein Bewusstsein f\u00fcr die ethischen Fragen haben, die sich jeweils stellen. Hierf\u00fcr will dieses Buch eine Handreichung bieten.<br\/><br\/>Beinahe \u00fcberall gibt es mittlerweile ein enges Netz von Beratungseinrichtungen, angefangen von der Verbraucherberatung \u00fcber die Beratung zur Berufs- oder Studienwahl, die Schul- und Laufbahnberatung, die Ern\u00e4hrungs-, Gesundheits- und Suchtberatung, die Schuldner- und Verm\u00f6gensberatung bis hin zur Rechtsberatung. Dass in einer Beratungssituation auch ethische Dimensionen zum Tragen kommen, wird besonders deutlich, wenn man unter Ethik nicht lediglich die Summe moralischer Normen, sondern auch Haltungen versteht. Die Studie von Rolf Lachmann untersucht ausgehend von verschiedenen ethischen Grundpositionen die Leitmotive Vernunft, Hilfe, Macht und Freiheit und fasst die Beratung grundlegend als eine \u00bbRedepraxis der Befreiung\u00ab auf.<br\/><br\/><br\/><br\/>Ein Buch f\u00fcr alle, die ihre Beratungst\u00e4tigkeit philosophisch reflektieren m\u
3362500f6chten!","46764":"Professionelle pers\u00f6nliche Beratungen sind heute nahezu allgegenw\u00e4rtig. Berater:innen sollten aber nicht nur konkrete Hilfestellung leisten, sondern auch ein Bewusstsein f\u00fcr die ethischen Fragen haben, die sich jeweils stellen. Hierf\u00fcr will dieses Buch eine Handreichung bieten.<br\/><br\/>Beinahe \u00fcberall gibt es mittlerweile ein enges Netz von Beratungseinrichtungen, angefangen von der Verbraucherberatung \u00fcber die Beratung zur Berufs- oder Studienwahl, die Schul- und Laufbahnberatung, die Ern\u00e4hrungs-, Gesundheits- und Suchtberatung, die Schuldner- und Verm\u00f6gensberatung bis hin zur Rechtsberatung. Dass in einer Beratungssituation auch ethische Dimensionen zum Tragen kommen, wird besonders deutlich, wenn man unter Ethik nicht lediglich die Summe moralischer Normen, sondern auch Haltungen versteht. Die Studie von Rolf Lachmann untersucht ausgehend von verschiedenen ethischen Grundpositionen die Leitmotive Vernunft, Hilfe, Macht und Freiheit und fasst die Beratung grundlegend als eine \u00bbRedepraxis der Befreiung\u00ab auf.<br\/><br\/><br\/><br\/>Ein Buch f\u00fcr alle, die ihre Beratungst\u00e4tigkeit philosophisch reflektieren m\u00f6chten!","46765":"Professionelle pers\u00f6nliche Beratungen sind heute nahezu allgegenw\u00e4rtig. Berater:innen sollten aber nicht nur konkrete Hilfestellung leisten, sondern auch ein Bewusstsein f\u00fcr die ethischen Fragen haben, die sich jeweils stellen. Hierf\u00fcr will dieses Buch eine Handreichung bieten.<br\/><br\/>Beinahe \u00fcberall gibt es mittlerweile ein enges Netz von Beratungseinrichtungen, angefangen von der Verbraucherberatung \u00fcber die Beratung zur Berufs- oder Studienwahl, die Schul- und Laufbahnberatung, die Ern\u00e4hrungs-, Gesundheits- und Suchtberatung, die Schuldner- und Verm\u00f6gensberatung bis hin zur Rechtsberatung. Dass in einer Beratungssituation auch ethische Dimensionen zum Tragen kommen, wird besonders deutlich, wenn man unter Ethik nicht lediglich die Summe moralischer Normen, sondern auch Haltungen versteht. Die Studie von Rolf Lachmann untersucht ausgehend von verschiedenen ethischen Grundpositionen die Leitmotive Vernunft, Hilfe, Macht und Freiheit und fasst die Beratung grundlegend als eine \u00bbRedepraxis der Befreiung\u00ab auf.<br\/><br\/><br\/><br\/>Ein Buch f\u00fcr alle, die ihre Beratungst\u00e4tigkeit philosophisch reflektieren m\u00f6chten!"},"doi":{"46498":"","46764":"10.28937\/978-3-7873-5059-9","46765":""},"isbn":{"46498":"978-3-7873-5058-2","46764":"978-3-7873-5059-9","46765":"978-3-7873-5060-5"},"marketing_short_text":{"46498":"","46764":"","46765":""},"recension_text":{"46498":"","46764":"","46765":""},"language":{"46498":"","46764":"","46765":""},"cover":{"46498":"Kartoniert","46764":"","46765":""},"pages":{"46498":"299 Seiten","46764":"299 Seiten","46765":"299 Seiten"},"edition":{"46498":"","46764":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","46765":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"46498":"Nein","46764":"Nein","46765":"Nein"},"copyright_year":{"46498":"","46764":"","46765":""},"vlb_tix_link":{"46498":"https:\/\/neu.vlbtix.de\/products\/9783787350582?type=gtin","46764":"","46765":""},"defaultValues":{"163":"15"}}; 33626 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 33627 33628 if (typeof window.amxnotif_wrap_attributes === 'function') { 33629 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 33630 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 33631 } 33632 33633 const configurableOptionsComponent = initConfigurableOptions( 33634 '46704', 33635 config 33636 ); 33637 const swatchOptionsComponent = initSwatchOptions( 33638 swatchConfig 33639 ); 33640 33641 // DWS - Configurable product preselect start 33642 const confProdPreSelect = () => { 33643 return { 33644 preselectQuerystringItems() { 33645 var data = {"id":"46498","output":"15"}; 33646 const urlQueryParams = new URLSearchParams(window.location.search); 33647 33648 this.$nextTick(() => { 33649 setTimeout(() => { 33650 const rootEl = this.$root || this.$el; 33651 if (!rootEl) return; 33652 33653 const applySelection = (attrCode, attrValue) => { 33654 if (attrValue === undefined || attrValue === null || attrValue === '') return; 33655 33656 const attributes = Object.values(this.optionConfig.attributes || {}); 33657 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 33658 33659 if (targetAttr) { 33660 const attrId = String(targetAttr.id); 33661 const optionVal = String(attrValue); 33662 33663 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 33664 33665 if (inputEl) { 33666 inputEl.click(); 33667 inputEl.dispatchEvent(new Event('change', { 33668 bubbles: true 33669 })); 33670 } else { 33671 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 33672 if (selectEl) { 33673 selectEl.value = optionVal; 33674 selectEl.dispatchEvent(new Event('change', { 33675 bubbles: true 33676 })); 33677 } 33678 } 33679 33680 this.changeOption(attrId, optionVal, false); 33681 } 33682 }; 33683 33684 if (data && typeof data === 'object') {
33685 Object.keys(data).forEach(key => applySelection(key, data[key])); 33686 } 33687 33688 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 33689 if (attribute && attribute.code) { 33690 let optionValue = urlQueryParams.get(attribute.code); 33691 if (optionValue) { 33692 let optionId = false; 33693 const attributes = Object.values(this.optionConfig.attributes || {}); 33694 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 33695 33696 let found = false; 33697 Object.values(targetAttr.options).map(option => { 33698 if (found === false && option.label === optionValue) { 33699 optionId = option.id; 33700 found = true; 33701 } 33702 }); 33703 33704 const attrId = String(targetAttr.id); 33705 let optionVal = String(optionValue); 33706 if (found) { 33707 optionVal = String(optionId); 33708 } 33709 33710 applySelection(attribute.code, optionVal); 33711 } 33712 } 33713 }); 33714 }, 100); 33715 }); 33716 } 33717 } 33718 }; 33719 // DWS - Configurable product preselect end 33720 33721 const result = Object.assign( 33722 configurableOptionsComponent, 33723 swatchOptionsComponent, { 33724 productId: '46704', 33725 productIndex: 0, 33726 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 33727 showSwatches: false, 33728 precalcOptions: {}, 33729 originalInit: configurableOptionsComponent.init, 33730 init() { 33731 try { 33732 this.precalcOptions = {}; 33733 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 33734 this.preselectQuerystringItems(); 33735 if (Array.isArray(attrSource)) { 33736 attrSource.forEach(attr => { 33737 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 33738 }); 33739 } else if (attrSource && typeof attrSource === 'object') { 33740 Object.keys(attrSource).forEach(id => { 33741 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 33742 }); 33743 } 33744 } catch (e) { 33745 console.error('Pre-calc error:', e); 33746 } 33747 33748 if (typeof this.originalInit === 'function') { 33749 this.originalInit(); 33750 } 33751 33752 try { 33753 this.initShowSwatchesIntersect(); 33754 } catch (e) { 33755 console.error('intersect error:', e); 33756 } 33757 }, 33758 33759 updateGallery() { 33760 if (!this.productIndex) return; 33761 33762 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 33763 method: 'GET', 33764 headers: { 33765 'Content-Type': 'application/json', 33766 'X-Requested-With': 'XMLHttpRequest' 33767 } 33768 }) 33769 .then(response => response.json()) 33770 .then(data => { 33771 if (data && data.medium) { 33772 window.dispatchEvent(new CustomEvent("update-gallery-46704", { 33773 detail: data.medium 33774 })); 33775 } 33776 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 33777 }, 33778 33779 33780 initShowSwatchesIntersect() { 33781 const observer = new IntersectionObserver(entries => { 33782 if (entries[0].isIntersecting) { 33783 this.showSwatches = true; 33784 observer.disconnect(); 33785 } 33786 }, { 33787 rootMargin: '512px' 33788 }); 33789 observer.observe(this.$el); 33790 }, 33791 getOptions(attrId) { 33792 return this.precalcOptions[attrId] || []; 33793 }, 33794 getOptionsByAttrId() { 33795 return this.getOptions(this.$el.dataset.attributeId); 33796 }, 33797 _getItemId() { 33798 if (this.item && this.item.id) return this.item.id; 33799 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 33800 }, 33801 getSwatchOptionHtmlId() { 33802 const itemId = this._getItemId(); 33803 return itemId ? this.$id(`attribute-option-46704-${itemId}`) : ''; 33804 }, 33805 getSwatchOptionHtmlIdGroup() { 33806 const itemId = this._getItemId(); 33807 return itemId ? [`attribute-option-46704-${itemId}`] : []; 33808 }, 33809 getAttributeSwatchData(attributeId) { 33810 const data = Object.assign({}, this.swatchConfig[attributeId]); 33811 if (data['additional_data']) { 33812 try { 33813 data['details'] = JSON.parse(data['additional_data']); 33814 } catch (e) { 33815 data['details'] = {}; 33816 } 33817 } 33818 return data; 33819 }, 33820 getSwatchType(attributeId, optionId) { 33821 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 33822 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 33823 } 33824 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 33825 this.swatchConfig[attributeId].details.swatch_input_type : 33826 "empty"; 33827 if (type === 'visual') { 33828 const config = this.swatchConfig[attributeId]; 33829 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 33830 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 33831 } 33832 // Fallback to first option type 33833 for (const oId in config) { 33834 if (config[oId] && typeof config[oId].type !== 'undefined') { 33835 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 33836 } 33837 } 33838 } 33839 return type; 33840 }, 33841 mapSwatchTypeNumberToTypeCode(type) { 33842 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 33843 }, 33844 isTextSwatch() { 33845 const itemId = this._getItemId(); 33846 if (!this.$el || !itemId) return false;
33847 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33848 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 33849 }, 33850 33851 getSwatchText() { 33852 const itemId = this._getItemId(); 33853 if (this.item) return this.item.label || ''; 33854 if (!this.$el || !itemId) return ''; 33855 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33856 const options = attrId ? this.getOptions(attrId) : []; 33857 const opt = options.find(o => o.id == itemId); 33858 return opt ? opt.label : ''; 33859 }, 33860 getSwatchBackgroundStyle() { 33861 const itemId = this._getItemId(); 33862 if (!this.$el || !itemId) return ''; 33863 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33864 if (!attrId) return ''; 33865 const type = this.getSwatchType(attrId, itemId); 33866 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 33867 this.swatchConfig[attrId][itemId] : 33868 null; 33869 if (!swatchData) return ''; 33870 if (type === "color") return 'background-color:' + swatchData.value; 33871 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 33872 return ''; 33873 }, 33874 swatchOptionClasses() { 33875 const itemId = this._getItemId(); 33876 if (!this.$el || !itemId) return {}; 33877 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33878 return { 33879 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 33880 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 33881 'w-6 h-6': !this.isTextSwatch() 33882 } 33883 }, 33884 33885 onFocusSwatchItem() { 33886 const itemId = this._getItemId(); 33887 if (itemId) this.focusedLabel = itemId; 33888 }, 33889 onChangeOption() { 33890 const itemId = this._getItemId(); 33891 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 33892 if (attrId && itemId) this.changeOption(attrId, itemId); 33893 }, 33894 changeOption(attributeId, value) { 33895 if (value === '') { 33896 return; 33897 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 33898 } else { 33899 this.selectedValues[attributeId] = value; 33900 } 33901 33902 this.findSimpleIndex(); 33903 this.findAllowedAttributeOptions(); 33904 this.updatePrices(); 33905 this.updateGallery(); 33906 33907 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 33908 this.findProductIdsForPartialSelection(this.selectedValues) : []; 33909 33910 const eventDetail = { 33911 productId: this.productId, 33912 optionId: attributeId, 33913 value: value, 33914 productIndex: this.productIndex || 0, 33915 selectedValues: this.selectedValues, 33916 candidates: candidates, 33917 sourceElement: this.$el 33918 }; 33919 33920 // Dispatch for Amasty 33921 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 33922 detail: eventDetail 33923 })); 33924 33925 // Dispatch for Hyva listing 33926 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 33927 detail: eventDetail 33928 })); 33929 }, 33930 33931 33932 clearOptionIfActive() { 33933 const itemId = this._getItemId(); 33934 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 33935 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 33936 this.changeOption(attrId, ''); 33937 33938 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 33939 if (!input && this.$el?.querySelector) { 33940 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 33941 } 33942 if (!input && this.$el?.closest) { 33943 const root = this.$el.closest('[data-product-id]') || this.$el; 33944 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 33945 } 33946 if (input) { 33947 input.checked = false;
33948 } 33949 } 33950 }, 33951 get optionIsEnabled() { 33952 const itemId = this._getItemId(); 33953 if (!this.$el || !itemId) return true; 33954 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33955 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 33956 return !!allowedOptions.find(opt => opt.id == itemId); 33957 }, 33958 get isSelected() { 33959 const itemId = this._getItemId(); 33960 if (!this.$el || !itemId) return false; 33961 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33962 return attrId ? (this.selectedValues[attrId] == itemId) : false; 33963 }, 33964 get isSwatchRequired() { 33965 if (!this.$el) return false; 33966 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33967 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 33968 }, 33969 focusedLabel: false, 33970 activeTooltipItem: false, 33971 tooltipPositionElement: false,
33972 setActiveTooltipItem() { 33973 const itemId = this._getItemId(); 33974 if (!this.$el || !itemId) return; 33975 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 33976 this.activeTooltipItem = { 33977 attribute: attrId, 33978 item: itemId, 33979 index: 0 33980 }; 33981 this.tooltipPositionElement = this.$event ? this.$event.target : null; 33982 }, 33983 unsetActiveTooltipItem() { 33984 this.activeTooltipItem = false; 33985 } 33986 }, 33987 confProdPreSelect() 33988 ); 33989 33990 if (result.optionConfig && result.optionConfig.attributes) { 33991 const attributes = result.optionConfig.attributes; 33992 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 33993 let source = attributes; 33994 if (Array.isArray(attributes)) { 33995 source = {}; 33996 attributes.forEach(attr => { 33997 if (attr && attr.id) source[attr.id] = attr; 33998 }); 33999 } 34000 const values = Object.values(source); 34001 const wrapper = Object.assign(values, source); 34002 Object.defineProperty(wrapper, '__amxnotifWrapped', { 34003 value: true, 34004 enumerable: false 34005 }); 34006 result.optionConfig.attributes = wrapper; 34007 } 34008 } 34009 34010 return result; 34011 } 34012 34013 window.addEventListener('alpine:init', () => { 34014 Alpine.data('initConfigurableSwatchOptions_46704', initConfigurableSwatchOptions_46704); 34015 }, { 34016 once: true 34017 }); 34018 </script>
34018 34019 34020 <div x-data="initConfigurableSwatchOptions_46704" x-defer="intersect"> 34021 <div class="pagebuilder-home-hidden"> 34022 34023 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 34024 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 34025 <template x-if="showSwatches"> 34026 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46704-163" role="radiogroup" aria-label="Einband"> 34027 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 34028 <div :data-option-id="item.id" style="display: contents"> 34029 <div x-id="getSwatchOptionHtmlIdGroup"> 34030 <template x-if="optionIsEnabled"> 34031 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
34031self="unsetActiveTooltipItem"> 34032 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46704-163"> 34033 <div> 34034 <template x-if="isTextSwatch"> 34035 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 34036 </template> 34037 <template x-if="!optionIsActive(163, item.id)"> 34038 <div> 34039 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 34040 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 34041 </svg> 34042 </div> 34043 </template> 34044 </div> 34045 </label> 34046 </template> 34047</div> </div> 34048 </template> 34049 </div> 34050 </template> 34051 </div> 34052 </div> 34053 </div> 34054 </div> 34055 34056 <div class="meta py-4 pagebuilder-home-hidden"> 34057 <div x-data="initMarketingShortText_46704()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 34058 <!-- Marketing short text --> 34059 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 34060 </div> 34061 34062 <!-- Short description --> 34063 <div class="short-description"> 34064 Professionelle persönliche Beratungen sind heute nahezu allgegenwärtig. Berater:innen sollten aber nicht nur konkrete Hilfestellung leisten, sondern auch ein Bewusstsein für die ethischen Fragen ... <a href="https://meiner.de/fmv_de/ethik-der-beratung-21148" class="underline">mehr</a> 34065 </div> 34066 </div> 34067 34068 <!-- Series --> 34069 <div class="mb-1"> 34070 <span class="sr-only">Reihe:</span> 34071 <a href="https://meiner.de/fmv_de/programm/reihen/blaue-reihe"> 34072 <span>Blaue Reihe</span> 34073 </a> 34074 </div> 34075 34076 34077 <div class="mb-1"> 34078 <span x-data="initEditionText_46704()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 34079 <!-- Marketing short text --> 34080 <span class="edition-text" x-html="editionText"></span> 2026, 299 Seiten </span> 34081 </div> 34082 34083 </div> 34084 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 34085 34086 <div class="justify-end" x-data="initPriceBox()" @update-prices-46704.window="updatePrice($event.detail);"> 34087 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46704" data-price-box="product-id-46704"><span class="normal-price"> 34088 <span x-data x-id="['product\u002Dprice\u002D46704']" class="price-container price-final_price tax weee"> 34089 <span class="price-label">Ab</span> 34090 <span class="approx-price">ca. </span> 34091 <span :id="$id('product\u002Dprice\u002D46704')" data-price-amount="21.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">21,99 €</span></span> 34092 </span> 34093</span> 34094 34095 34096</div> </div> 34097 34098 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 34099 <div class="open-access-container open-access-container-46704 flex mt-4 ml-auto sm:mt-0 hidden"> 34100 <div class="text-gray-700"> 34101 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 34102 <a href="" target="_blank" class="open-access-external-link m-auto "> 34103 Kostenlos online lesen </a> 34104 </button> 34105 </div> 34106 </div> 34107 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Ethik der Beratung" aria-label="In den Warenkorb Ethik der Beratung" data-addto="cart"> 34108 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 34109 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
341090 014 0z"></path> 34110</svg> 34111 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 34112 In den Warenkorb </span> 34113 </button> 34114 34115<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46704)" aria-label="Zur Wunschliste hinzufügen Ethik der Beratung" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 34116 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 34117 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 34118</svg> 34119</button> 34120 </div> 34121 </div> 34122 </div> 34123
34123<script> 34124 function initMarketingShortText_46704() { 34125 var marketingShortTextConfig = {}; 34126 if (typeof window.initConfigurableSwatchOptions_46704 === "function") { 34127 var fullConfig = window.initConfigurableSwatchOptions_46704().optionConfig 34128 var marketingShortTextConfig = fullConfig.marketing_short_text; 34129 } 34130 return { 34131 marketingShortText: '', 34132 config: marketingShortTextConfig, 34133 productId: '46704', 34134 getMarketingShortText(detail) { 34135 this.marketingShortText = detail.productIndex ? 34136 this.config[detail.productIndex] : 34137 null; 34138 }, 34139 eventListeners: { 34140 ['@listing-configurable-selection-changed.window'](event) { 34141 if (this.productId == event.detail.productId) { 34142 this.getMarketingShortText(event.detail); 34143 } 34144 34145 } 34146 } 34147 } 34148 } 34149 34150 function initEditionText_46704() { 34151 var editionTextConfig = {}; 34152 if (typeof window.initConfigurableSwatchOptions_46704 === "function") { 34153 var fullConfig = window.initConfigurableSwatchOptions_46704().optionConfig 34154 var editionTextConfig = fullConfig.edition; 34155 } 34156 return { 34157 editionText: '', 34158 config: editionTextConfig, 34159 productId: '46704', 34160 getEditionText(detail) { 34161 this.editionText = detail.productIndex ? 34162 this.config[detail.productIndex] : 34163 null; 34164 }, 34165 eventListeners: { 34166 ['@listing-configurable-selection-changed.window'](event) { 34167 if (this.productId == event.detail.productId) { 34168 this.getEditionText(event.detail); 34169 } 34170 34171 } 34172 } 34173 } 34174 } 34175 </script>
34175 34176 </form> 34177 </div> 34178 34179<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 34180 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 34181 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 34182 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 34183</svg> 34184 </button> 34185 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 34186 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 34187 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 34188 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 34189</svg> 34190 </button> 34191</div> 34192 </div> 34193</div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="IMJKJSS"><h3 data-content-type="heading" data-appearance="default" data-element="main">Methoden im Philosophie- und Ethikunterricht</h3><div class="pagebuilder-column-group card cmsp2-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="QHTY39W"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="PD1C0BY"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="CT5JN59"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="U65D85F"><p style="text-align: left;">Die <a href="/programm/reihen/methoden-im-philosophie-und-ethikunterricht">von Martina und Jörg Peters herausgegebene Reihe </a>stellt anhand der wichtigsten deutschsprachigen Beiträge die zentralen Methoden für den Philosophie- und Ethikunterricht vor. Sie richtet sich an Lehrerinnen und Lehrer in der Schulpraxis, aber auch an alle anderen in der Vermittlung philosophischer Themen tätigen Personen. Zum ersten Mal auf dem Gebiet der Philosophie- und Ethikdidaktik wird die ganze Vielfalt an präsentativen und diskursiven Methoden in thematisch gegliederten Kompendien präsentiert.</p></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="B50WSH3"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="ILN4LAN"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="A0EEFDH"><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carousel"> 34194 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 34195 34196 <div class="item product product-item card card-interactive flex flex-col w-full " data-sku="Werk16786"> 34197 <a href="https://meiner.de/fmv_de/literatur-und-jugendliteratur-im-philosophie-und-ethikunterricht-16786" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 34198 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-44995.window="$el.src = $event.detail" alt="Literatur und Jugendliteratur im Philosophie- und Ethikunterricht" title="Literatur und Jugendliteratur im Philosophie- und Ethikunterricht" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/978378733
341986562_4.jpg" :style="{ 34199 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 34200 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 34201 }"> 34202 </a> 34203 <div class="product-info flex flex-col flex-grow "> 34204 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 34205 <div class="mb-2 text-sm text-gray-500 font-medium"> 34206 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 34207 Jörg Peters </a> 34208 <span>|</span> 34209 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 34210 Martina Peters (Hrsg.) 34211 </a> 34212 </div> 34213 <a class="product-item-link" href="https://meiner.de/fmv_de/literatur-und-jugendliteratur-im-philosophie-und-ethikunterricht-16786"> 34214 Literatur und Jugendliteratur im Philosophie- und Ethikunterricht </a> 34215 </div> 34216 34217 <div x-data="initEditionText_44995()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 34218 <!-- Marketing short text --> 34219 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 34220 </div> 34221 </div> 34222 34223 <div class="py-1 grid mb-4 "> 34224 34225 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":false,"isShowAlert":false,"isProductSalable":false,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":44995,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":44995,"isAvailable":false,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7535":"0"},"childProductsAlertStatus":{"7535":"1"},"indexMapping":{"163:15":7535},"availabilityMessages":{"7535":"Noch nicht erschienen. Erscheint voraussichtlich 02\/2027"},"openAccess":{"44995":{"status":0},"7535":{"status":0}}},"availabilityMessages":{"7535":"Noch nicht erschienen. Erscheint voraussichtlich 02\/2027"},"openAccess":{"44995":{"status":0},"7535":{"status":0}}}'> 34226 <template x-if="containerVisible"> 34227 <!-- Popup Trigger --> 34228 <div> 34229 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 34230 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 34231 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 34232 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 34233<title>bell</title></svg> 34234</span> 34235 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 34236 34237 <!-- Popup Modal --> 34238 <template x-if="showModal"> 34239 <template x-teleport=".page-wrapper"> 34240 <div x-cloak class="fixed inset-0 flex items-center justify-center 34241 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 34242 <div class="relative bg-white rounded-lg shadow-xl 34243 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 34244 <div class="p-6"> 34245 <!-- Subscription Form for Popup --> 34246 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 34247 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 34248 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 34249 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 34250 34251 <div class="flex flex-col gap-3"> 34252 <div class="flex-grow grow"> 34253 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 34254 shadow-xs focus:outline-none focus:outline-hidden 34255 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 34256 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 34257 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 34258 </div> 34259 <input type="hidden" name="product_id" :value="currentProductId"> 34260 <input type="hidden" name="type" value="email"> 34261 34262 34263 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 34264 34265 <div class="amxnotif_guest_action"> 34266 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 34267 rounded-md focus:outline-none 34268 focus:outline-hidden focu
34268s:ring-2 34269 focus:ring-offset-2 disabled:opacity-50 34270 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 34271 Benachrichtigen </button> 34272 </div> 34273 </div> 34274 34275 <div class="flex items-start pt-2"> 34276 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 34277 text-blue-600 border-gray-300 rounded-sm"> 34278 <label class="amxnotif-stock-gdrp-label cursor-pointer 34279 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 34280 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 34281 </div> 34282 </form> 34283 </div> 34284 34285 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 34286 hover:text-gray-600 transition-colors" aria-label="Schließen"> 34287 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 34288 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 34289<title>x</title></svg> 34290 </button> 34291 </div> 34292 </div> 34293 </template> 34294 </template> 34295 </div> 34296 </template> 34297 </div> 34298 34299<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_44995" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":44995,"isAvailable":false,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7535":"0"},"childProductsAlertStatus":{"7535":"1"},"indexMapping":"{\u0022163:15\u0022:7535}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":false,"isConfigurable":true,"productIdentifier":44995,"availabilityMessages":{"7535":"Noch nicht erschienen. Erscheint voraussichtlich 02\/2027"},"openAccess":{"44995":{"status":0},"7535":{"status":0}}}'> 34300 34301 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 34302 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 34303 <span x-html="optionsLabelText"></span> 34304 </p> 34305</div> </div> 34306 34307
34307<script> 34308 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 34309 try { 34310 const attributes = (config && config.attributes) ? config.attributes : null; 34311 if (!attributes) return []; 34312 let attr = null; 34313 if (Array.isArray(attributes)) { 34314 for (let i = 0; i < attributes.length; i++) { 34315 const a = attributes[i]; 34316 if (a && a.id == attrId) { 34317 attr = a; 34318 break; 34319 } 34320 } 34321 } else { 34322 attr = attributes[attrId]; 34323 } 34324 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 34325 } catch (e) { 34326 return []; 34327 } 34328 }; 34329 34330 function initConfigurableSwatchOptions_44995() { 34331 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7535"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7535":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":true}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":0},"oldPrice":{"amount":0},"basePrice":{"amount":0},"finalPrice":{"amount":0},"isApproxPrice":null},"productId":"44995","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7535":{"163":"15"}},"salable":{"163":[]},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7535":"003656"},"output":{"7535":"Kartoniert"},"original_name":{"7535":""},"openaccess_license_link":{"7535":""},"openaccess_license_name":{"7535":""},"openaccess_external_link":{"7535":""},"gpsr_safety_info":{"7535":""},"description":{"7535":""},"doi":{"7535":""},"isbn":{"7535":"978-3-7873-3656-2"},"marketing_short_text":{"7535":""},"recension_text":{"7535":""},"language":{"7535":""},"cover":{"7535":"Kartoniert"},"pages":{"7535":""},"edition":{"7535":""},"pod":{"7535":"Nein"},"copyright_year":{"7535":""},"vlb_tix_link":{"7535":"https:\/\/neu.vlbtix.de\/products\/9783787336562?type=gtin"},"defaultValues":{"163":"15"}}; 34332 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 34333 34334 if (typeof window.amxnotif_wrap_attributes === 'function') { 34335 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 34336 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 34337 } 34338 34339 const configurableOptionsComponent = initConfigurableOptions( 34340 '44995', 34341 config 34342 ); 34343 const swatchOptionsComponent = initSwatchOptions( 34344 swatchConfig 34345 ); 34346 34347 // DWS - Configurable product preselect start 34348 const confProdPreSelect = () => { 34349 return { 34350 preselectQuerystringItems() { 34351 var data = {"id":"7535","output":"15"}; 34352 const urlQueryParams = new URLSearchParams(window.location.search); 34353 34354 this.$nextTick(() => { 34355 setTimeout(() => { 34356 const rootEl = this.$root || this.$el; 34357 if (!rootEl) return; 34358 34359 const applySelection = (attrCode, attrValue) => { 34360 if (attrValue === undefined || attrValue === null || attrValue === '') return; 34361 34362 const attributes = Object.values(this.optionConfig.attributes || {}); 34363 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 34364 34365 if (targetAttr) { 34366 const attrId = String(targetAttr.id); 34367 const optionVal = String(attrValue); 34368 34369 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 34370 34371 if (inputEl) { 34372 inputEl.click(); 34373 inputEl.dispatchEvent(new Event('change', { 34374 bubbles: true 34375 })); 34376 } else { 34377 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 34378 if (selectEl) { 34379 selectEl.value = optionVal; 34380 selectEl.dispatchEvent(new Event('change', { 34381 bubbles: true 34382 })); 34383 } 34384 } 34385 34386 this.changeOption(attrId, optionVal, false); 34387 } 34388 }; 34389 34390 if (data && typeof data === 'object') {
34391 Object.keys(data).forEach(key => applySelection(key, data[key])); 34392 } 34393 34394 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 34395 if (attribute && attribute.code) { 34396 let optionValue = urlQueryParams.get(attribute.code); 34397 if (optionValue) { 34398 let optionId = false; 34399 const attributes = Object.values(this.optionConfig.attributes || {}); 34400 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 34401 34402 let found = false; 34403 Object.values(targetAttr.options).map(option => { 34404 if (found === false && option.label === optionValue) { 34405 optionId = option.id; 34406 found = true; 34407 } 34408 }); 34409 34410 const attrId = String(targetAttr.id); 34411 let optionVal = String(optionValue); 34412 if (found) { 34413 optionVal = String(optionId); 34414 } 34415 34416 applySelection(attribute.code, optionVal); 34417 } 34418 } 34419 }); 34420 }, 100); 34421 }); 34422 } 34423 } 34424 }; 34425 // DWS - Configurable product preselect end 34426 34427 const result = Object.assign( 34428 configurableOptionsComponent, 34429 swatchOptionsComponent, { 34430 productId: '44995', 34431 productIndex: 0, 34432 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 34433 showSwatches: false, 34434 precalcOptions: {}, 34435 originalInit: configurableOptionsComponent.init, 34436 init() { 34437 try { 34438 this.precalcOptions = {}; 34439 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 34440 this.preselectQuerystringItems(); 34441 if (Array.isArray(attrSource)) { 34442 attrSource.forEach(attr => { 34443 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 34444 }); 34445 } else if (attrSource && typeof attrSource === 'object') { 34446 Object.keys(attrSource).forEach(id => { 34447 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 34448 }); 34449 } 34450 } catch (e) { 34451 console.error('Pre-calc error:', e); 34452 } 34453 34454 if (typeof this.originalInit === 'function') { 34455 this.originalInit(); 34456 } 34457 34458 try { 34459 this.initShowSwatchesIntersect(); 34460 } catch (e) { 34461 console.error('intersect error:', e); 34462 } 34463 }, 34464 34465 updateGallery() { 34466 if (!this.productIndex) return; 34467 34468 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 34469 method: 'GET', 34470 headers: { 34471 'Content-Type': 'application/json', 34472 'X-Requested-With': 'XMLHttpRequest' 34473 } 34474 }) 34475 .then(response => response.json()) 34476 .then(data => { 34477 if (data && data.medium) { 34478 window.dispatchEvent(new CustomEvent("update-gallery-44995", { 34479 detail: data.medium 34480 })); 34481 } 34482 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 34483 }, 34484 34485 34486 initShowSwatchesIntersect() { 34487 const observer = new IntersectionObserver(entries => { 34488 if (entries[0].isIntersecting) { 34489 this.showSwatches = true; 34490 observer.disconnect(); 34491 } 34492 }, { 34493 rootMargin: '512px' 34494 }); 34495 observer.observe(this.$el); 34496 }, 34497 getOptions(attrId) { 34498 return this.precalcOptions[attrId] || []; 34499 }, 34500 getOptionsByAttrId() { 34501 return this.getOptions(this.$el.dataset.attributeId); 34502 }, 34503 _getItemId() { 34504 if (this.item && this.item.id) return this.item.id; 34505 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 34506 }, 34507 getSwatchOptionHtmlId() { 34508 const itemId = this._getItemId(); 34509 return itemId ? this.$id(`attribute-option-44995-${itemId}`) : ''; 34510 }, 34511 getSwatchOptionHtmlIdGroup() { 34512 const itemId = this._getItemId(); 34513 return itemId ? [`attribute-option-44995-${itemId}`] : []; 34514 }, 34515 getAttributeSwatchData(attributeId) { 34516 const data = Object.assign({}, this.swatchConfig[attributeId]); 34517 if (data['additional_data']) { 34518 try { 34519 data['details'] = JSON.parse(data['additional_data']); 34520 } catch (e) { 34521 data['details'] = {}; 34522 } 34523 } 34524 return data; 34525 }, 34526 getSwatchType(attributeId, optionId) { 34527 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 34528 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 34529 } 34530 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 34531 this.swatchConfig[attributeId].details.swatch_input_type : 34532 "empty"; 34533 if (type === 'visual') { 34534 const config = this.swatchConfig[attributeId]; 34535 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 34536 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 34537 } 34538 // Fallback to first option type 34539 for (const oId in config) { 34540 if (config[oId] && typeof config[oId].type !== 'undefined') { 34541 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 34542 } 34543 } 34544 } 34545 return type; 34546 }, 34547 mapSwatchTypeNumberToTypeCode(type) { 34548 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 34549 }, 34550 isTextSwatch() { 34551 const itemId = this._getItemId(); 34552 if (!this.$el || !itemId) return false;
34553 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34554 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 34555 }, 34556 34557 getSwatchText() { 34558 const itemId = this._getItemId(); 34559 if (this.item) return this.item.label || ''; 34560 if (!this.$el || !itemId) return ''; 34561 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34562 const options = attrId ? this.getOptions(attrId) : []; 34563 const opt = options.find(o => o.id == itemId); 34564 return opt ? opt.label : ''; 34565 }, 34566 getSwatchBackgroundStyle() { 34567 const itemId = this._getItemId(); 34568 if (!this.$el || !itemId) return ''; 34569 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34570 if (!attrId) return ''; 34571 const type = this.getSwatchType(attrId, itemId); 34572 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 34573 this.swatchConfig[attrId][itemId] : 34574 null; 34575 if (!swatchData) return ''; 34576 if (type === "color") return 'background-color:' + swatchData.value; 34577 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 34578 return ''; 34579 }, 34580 swatchOptionClasses() { 34581 const itemId = this._getItemId(); 34582 if (!this.$el || !itemId) return {}; 34583 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34584 return { 34585 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 34586 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 34587 'w-6 h-6': !this.isTextSwatch() 34588 } 34589 }, 34590 34591 onFocusSwatchItem() { 34592 const itemId = this._getItemId(); 34593 if (itemId) this.focusedLabel = itemId; 34594 }, 34595 onChangeOption() { 34596 const itemId = this._getItemId(); 34597 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 34598 if (attrId && itemId) this.changeOption(attrId, itemId); 34599 }, 34600 changeOption(attributeId, value) { 34601 if (value === '') { 34602 return; 34603 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 34604 } else { 34605 this.selectedValues[attributeId] = value; 34606 } 34607 34608 this.findSimpleIndex(); 34609 this.findAllowedAttributeOptions(); 34610 this.updatePrices(); 34611 this.updateGallery(); 34612 34613 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 34614 this.findProductIdsForPartialSelection(this.selectedValues) : []; 34615 34616 const eventDetail = { 34617 productId: this.productId, 34618 optionId: attributeId, 34619 value: value, 34620 productIndex: this.productIndex || 0, 34621 selectedValues: this.selectedValues, 34622 candidates: candidates, 34623 sourceElement: this.$el 34624 }; 34625 34626 // Dispatch for Amasty 34627 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 34628 detail: eventDetail 34629 })); 34630 34631 // Dispatch for Hyva listing 34632 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 34633 detail: eventDetail 34634 })); 34635 }, 34636 34637 34638 clearOptionIfActive() { 34639 const itemId = this._getItemId(); 34640 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 34641 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 34642 this.changeOption(attrId, ''); 34643 34644 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 34645 if (!input && this.$el?.querySelector) { 34646 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 34647 } 34648 if (!input && this.$el?.closest) { 34649 const root = this.$el.closest('[data-product-id]') || this.$el; 34650 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 34651 } 34652 if (input) { 34653 input.checked = false;
34654 } 34655 } 34656 }, 34657 get optionIsEnabled() { 34658 const itemId = this._getItemId(); 34659 if (!this.$el || !itemId) return true; 34660 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34661 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 34662 return !!allowedOptions.find(opt => opt.id == itemId); 34663 }, 34664 get isSelected() { 34665 const itemId = this._getItemId(); 34666 if (!this.$el || !itemId) return false; 34667 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34668 return attrId ? (this.selectedValues[attrId] == itemId) : false; 34669 }, 34670 get isSwatchRequired() { 34671 if (!this.$el) return false; 34672 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34673 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 34674 }, 34675 focusedLabel: false, 34676 activeTooltipItem: false, 34677 tooltipPositionElement: false,
34678 setActiveTooltipItem() { 34679 const itemId = this._getItemId(); 34680 if (!this.$el || !itemId) return; 34681 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 34682 this.activeTooltipItem = { 34683 attribute: attrId, 34684 item: itemId, 34685 index: 0 34686 }; 34687 this.tooltipPositionElement = this.$event ? this.$event.target : null; 34688 }, 34689 unsetActiveTooltipItem() { 34690 this.activeTooltipItem = false; 34691 } 34692 }, 34693 confProdPreSelect() 34694 ); 34695 34696 if (result.optionConfig && result.optionConfig.attributes) { 34697 const attributes = result.optionConfig.attributes; 34698 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 34699 let source = attributes; 34700 if (Array.isArray(attributes)) { 34701 source = {}; 34702 attributes.forEach(attr => { 34703 if (attr && attr.id) source[attr.id] = attr; 34704 }); 34705 } 34706 const values = Object.values(source); 34707 const wrapper = Object.assign(values, source); 34708 Object.defineProperty(wrapper, '__amxnotifWrapped', { 34709 value: true, 34710 enumerable: false 34711 }); 34712 result.optionConfig.attributes = wrapper; 34713 } 34714 } 34715 34716 return result; 34717 } 34718 34719 window.addEventListener('alpine:init', () => { 34720 Alpine.data('initConfigurableSwatchOptions_44995', initConfigurableSwatchOptions_44995); 34721 }, { 34722 once: true 34723 }); 34724 </script>
34724 34725 34726 <div x-data="initConfigurableSwatchOptions_44995" x-defer="intersect"> 34727 <div class="pagebuilder-home-hidden"> 34728 34729 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 34730 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 34731 <template x-if="showSwatches"> 34732 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-44995-163" role="radiogroup" aria-label="Einband"> 34733 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 34734 <div :data-option-id="item.id" style="display: contents"> 34735 <div x-id="getSwatchOptionHtmlIdGroup"> 34736 <template x-if="optionIsEnabled"> 34737 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
34737self="unsetActiveTooltipItem"> 34738 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-44995-163"> 34739 <div> 34740 <template x-if="isTextSwatch"> 34741 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 34742 </template> 34743 <template x-if="!optionIsActive(163, item.id)"> 34744 <div> 34745 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 34746 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 34747 </svg> 34748 </div> 34749 </template> 34750 </div> 34751 </label> 34752 </template> 34753</div> </div> 34754 </template> 34755 </div> 34756 </template> 34757 </div> 34758 </div> 34759 </div> 34760 </div> 34761 34762 <div class="meta py-4 pagebuilder-home-hidden"> 34763 <div x-data="initMarketingShortText_44995()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 34764 <!-- Marketing short text --> 34765 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 34766 </div> 34767 34768 <!-- Short description --> 34769 </div> 34770 34771 <!-- Series --> 34772 <div class="mb-1"> 34773 <span class="sr-only">Reihe:</span> 34774 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 34775 <span>Methoden im Philosophie- und Ethikunterricht</span> 34776 </a> 34777 7 </div> 34778 34779 34780 <div x-data="initEditionText_44995()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'block': editionText != '' }"> 34781 <!-- Marketing short text --> 34782 <div class="edition-text" x-html="editionText"></div> 34783 </div> 34784 34785 </div> 34786 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 34787 34788 <div class="justify-end" x-data="initPriceBox()" @update-prices-44995.window="updatePrice($event.detail);"> 34789 </div> 34790 34791 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 34792 <div class="open-access-container open-access-container-44995 flex mt-4 ml-auto sm:mt-0 hidden"> 34793 <div class="text-gray-700"> 34794 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 34795 <a href="" target="_blank" class="open-access-external-link m-auto "> 34796 Kostenlos online lesen </a> 34797 </button> 34798 </div> 34799 </div> 34800 <div class="w-auto justify-center mr-auto"> 34801 <div class="text-right"> 34802 <p class="flex items-center justify-end align-middle gap-x-2 stock 34803 before:w-3 before:h-3 before:rounded-full before:shrink-0 34804 unavailable before:bg-red-500" title="Verfügbarkeit">Nicht lieferbar</p> 34805 </div> 34806 </div> 34807 34808<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(44995)" aria-label="Zur Wunschliste hinzufügen Literatur und Jugendliteratur im Philosophie- und Ethikunterricht" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 34809 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 34810 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 34811</svg> 34812</button> 34813 </div> 34814 </div> 34815 </div> 34816
34816<script> 34817 function initMarketingShortText_44995() { 34818 var marketingShortTextConfig = {}; 34819 if (typeof window.initConfigurableSwatchOptions_44995 === "function") { 34820 var fullConfig = window.initConfigurableSwatchOptions_44995().optionConfig 34821 var marketingShortTextConfig = fullConfig.marketing_short_text; 34822 } 34823 return { 34824 marketingShortText: '', 34825 config: marketingShortTextConfig, 34826 productId: '44995', 34827 getMarketingShortText(detail) { 34828 this.marketingShortText = detail.productIndex ? 34829 this.config[detail.productIndex] : 34830 null; 34831 }, 34832 eventListeners: { 34833 ['@listing-configurable-selection-changed.window'](event) { 34834 if (this.productId == event.detail.productId) { 34835 this.getMarketingShortText(event.detail); 34836 } 34837 34838 } 34839 } 34840 } 34841 } 34842 34843 function initEditionText_44995() { 34844 var editionTextConfig = {}; 34845 if (typeof window.initConfigurableSwatchOptions_44995 === "function") { 34846 var fullConfig = window.initConfigurableSwatchOptions_44995().optionConfig 34847 var editionTextConfig = fullConfig.edition; 34848 } 34849 return { 34850 editionText: '', 34851 config: editionTextConfig, 34852 productId: '44995', 34853 getEditionText(detail) { 34854 this.editionText = detail.productIndex ? 34855 this.config[detail.productIndex] : 34856 null; 34857 }, 34858 eventListeners: { 34859 ['@listing-configurable-selection-changed.window'](event) { 34860 if (this.productId == event.detail.productId) { 34861 this.getEditionText(event.detail); 34862 } 34863 34864 } 34865 } 34866 } 34867 } 34868 </script>
34868 34869 </div> 34870 34871 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9669/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16787"> 34872 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9669"> 34873 <a href="https://meiner.de/fmv_de/das-sokratische-gespra-ch-im-philosophie-und-ethikunterricht-16787" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 34874 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9669.window="$el.src = $event.detail" alt="Das Sokratische Gespräch im Philosophie- und Ethikunterricht" title="Das Sokratische Gespräch im Philosophie- und Ethikunterricht" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787346424_3.jpg" :style="{ 34875 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 34876 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 34877 }"> 34878 </a> 34879 <div class="product-info flex flex-col flex-grow "> 34880 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 34881 <div class="mb-2 text-sm text-gray-500 font-medium"> 34882 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 34883 Jörg Peters </a> 34884 <span>|</span> 34885 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 34886 Martina Peters (Hrsg.) 34887 </a> 34888 </div> 34889 <a class="product-item-link" href="https://meiner.de/fmv_de/das-sokratische
34889-gespra-ch-im-philosophie-und-ethikunterricht-16787"> 34890 Das Sokratische Gespräch im Philosophie- und Ethikunterricht </a> 34891 </div> 34892 34893 <div x-data="initEditionText_9669()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 34894 <!-- Marketing short text --> 34895 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 34896 </div> 34897 </div> 34898 34899 <div class="py-1 grid mb-4 "> 34900 34901 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9669,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9669,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"14842":"1","7515":"1","24529":"1"},"childProductsAlertStatus":{"14842":"0","7515":"0","24529":"0"},"indexMapping":{"163:8":14842,"163:15":7515,"163:9":24529},"availabilityMessages":{"14842":"Download sofort verf\u00fcgbar","7515":"Lieferbar innerhalb von 3-5 Tagen","24529":"Download sofort verf\u00fcgbar"},"openAccess":{"9669":{"status":0},"14842":{"status":0},"7515":{"status":0},"24529":{"status":0}}},"availabilityMessages":{"14842":"Download sofort verf\u00fcgbar","7515":"Lieferbar innerhalb von 3-5 Tagen","24529":"Download sofort verf\u00fcgbar"},"openAccess":{"9669":{"status":0},"14842":{"status":0},"7515":{"status":0},"24529":{"status":0}}}'> 34902 <template x-if="containerVisible"> 34903 <!-- Popup Trigger --> 34904 <div> 34905 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 34906 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 34907 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 34908 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 34909<title>bell</title></svg> 34910</span> 34911 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 34912 34913 <!-- Popup Modal --> 34914 <template x-if="showModal"> 34915 <template x-teleport=".page-wrapper"> 34916 <div x-cloak class="fixed inset-0 flex items-center justify-center 34917 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 34918 <div class="relative bg-white rounded-lg shadow-xl 34919 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 34920 <div class="p-6"> 34921 <!-- Subscription Form for Popup --> 34922 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 34923 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 34924 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 34925 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 34926 34927 <div class="flex flex-col gap-3"> 34928 <div class="flex-grow grow"> 34929 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 34930 shadow-xs focus:outline-none focus:outline-hidden 34931 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 34932 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 34933 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 34934 </div> 34935 <input type="hidden" name="product_id" :value="currentProductId"> 34936 <input type="hidden" name="type" value="email"> 34937 34938 34939 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 34940 34941 <div class="amxnotif_guest_action"> 34942 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 34943 rounded-md focus:outline-none 34944 focus:outline-hidden focu
34944s:ring-2 34945 focus:ring-offset-2 disabled:opacity-50 34946 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 34947 Benachrichtigen </button> 34948 </div> 34949 </div> 34950 34951 <div class="flex items-start pt-2"> 34952 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 34953 text-blue-600 border-gray-300 rounded-sm"> 34954 <label class="amxnotif-stock-gdrp-label cursor-pointer 34955 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 34956 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 34957 </div> 34958 </form> 34959 </div> 34960 34961 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 34962 hover:text-gray-600 transition-colors" aria-label="Schließen"> 34963 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 34964 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 34965<title>x</title></svg> 34966 </button> 34967 </div> 34968 </div> 34969 </template> 34970 </template> 34971 </div> 34972 </template> 34973 </div> 34974 34975<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9669" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9669,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"14842":"1","7515":"1","24529":"1"},"childProductsAlertStatus":{"14842":"0","7515":"0","24529":"0"},"indexMapping":"{\u0022163:8\u0022:14842,\u0022163:15\u0022:7515,\u0022163:9\u0022:24529}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9669,"availabilityMessages":{"14842":"Download sofort verf\u00fcgbar","7515":"Lieferbar innerhalb von 3-5 Tagen","24529":"Download sofort verf\u00fcgbar"},"openAccess":{"9669":{"status":0},"14842":{"status":0},"7515":{"status":0},"24529":{"status":0}}}'> 34976 34977 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 34978 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 34979 <span x-html="optionsLabelText"></span> 34980 </p> 34981</div> </div> 34982 34983
34983<script> 34984 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 34985 try { 34986 const attributes = (config && config.attributes) ? config.attributes : null; 34987 if (!attributes) return []; 34988 let attr = null; 34989 if (Array.isArray(attributes)) { 34990 for (let i = 0; i < attributes.length; i++) { 34991 const a = attributes[i]; 34992 if (a && a.id == attrId) { 34993 attr = a; 34994 break; 34995 } 34996 } 34997 } else { 34998 attr = attributes[attrId]; 34999 } 35000 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 35001 } catch (e) { 35002 return []; 35003 } 35004 }; 35005 35006 function initConfigurableSwatchOptions_9669() { 35007 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7515"]},{"id":"8","label":"PDF","products":["14842"]},{"id":"9","label":"EPUB","products":["24529"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"14842":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7515":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"24529":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"9669","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"14842":{"163":"8"},"7515":{"163":"15"},"24529":{"163":"9"}},"salable":{"163":{"8":["14842"],"15":["7515"],"9":["24529"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"14842":"003665","7515":"003657","24529":"004642"},"output":{"7515":"Kartoniert","14842":"PDF","24529":"EPUB"},"original_name":{"7515":"","14842":"","24529":""},"openaccess_license_link":{"7515":"","14842":"","24529":""},"openaccess_license_name":{"7515":"","14842":"","24529":""},"openaccess_external_link":{"7515":"","14842":"","24529":""},"gpsr_safety_info":{"7515":"","14842":"","24529":""},"description":{"7515":"Das (Neo-)Sokratische Gespr\u00e4ch ist eine philosophische Unterrichtsmethode, die auf Leonard Nelson zur\u00fcckgeht und von Gustav Heckmann weiterentwickelt wurde. Auch wenn die Methode namentlich an Sokrates ankn\u00fcpft, unterscheidet sich diese Form der Unterredung insofern von der des antiken Philosophen, als die Untersuchungen von philosophischen oder ethischen Problemen bzw. Fragestellungen nicht im Zwiegespr\u00e4ch, sondern in moderierten Gruppengespr\u00e4chen durchgef\u00fchrt werden. <br\/><br\/>Im Theorieteil des achten Bandes der Reihe \u00bbMethoden im Philosophie- und Ethikunterricht\u00ab werden die theoretischen Grundlagen, die Leonard Nelson und Gustav Heckmann in Bezug auf das Sokratische Gespr\u00e4ch entwickelt haben, vorgestellt. Im anschlie\u00dfenden Praxisteil zeigen wichtige Vertreter:innen des Sokratischen Gespr\u00e4chs \u2013 unter anderem Dieter Birnbacher, Klaus Blesenkemper, Klaus Draken, Dieter Krohn, Gisela Raupach-Strey und Ute Siebert \u2013, wie die Methode im Philosophie- und Ethikunterricht angewandt werden kann. Wie alle B\u00fccher dieser Reihe endet auch dieser Band mit einer Auswahlbibliographie.","14842":"Das (Neo-)Sokratische Gespr\u00e4ch ist eine philosophische Unterrichtsmethode, die auf Leonard Nelson zur\u00fcckgeht und von Gustav Heckmann weiterentwickelt wurde. Auch wenn die Methode namentlich an Sokrates ankn\u00fcpft, unterscheidet sich diese Form der Unterredung insofern von der des antiken Philosophen, als die Untersuchungen von philosophischen oder ethischen Problemen bzw. Fragestellungen nicht im Zwiegespr\u00e4ch, sondern in moderierten Gruppengespr\u00e4chen durchgef\u00fchrt werden. <br\/><br\/>Im Theorieteil des achten Bandes der Reihe \u00bbMethoden im Philosophie- und Ethikunterricht\u00ab werden die theoretischen Grundlagen, die Leonard Nelson und Gustav Heckmann in Bezug auf das S
35007okratische Gespr\u00e4ch entwickelt haben, vorgestellt. Im anschlie\u00dfenden Praxisteil zeigen wichtige Vertreter:innen des Sokratischen Gespr\u00e4chs \u2013 unter anderem Dieter Birnbacher, Klaus Blesenkemper, Klaus Draken, Dieter Krohn, Gisela Raupach-Strey und Ute Siebert \u2013, wie die Methode im Philosophie- und Ethikunterricht angewandt werden kann. Wie alle B\u00fccher dieser Reihe endet auch dieser Band mit einer Auswahlbibliographie.","24529":"Das (Neo-)Sokratische Gespr\u00e4ch ist eine philosophische Unterrichtsmethode, die auf Leonard Nelson zur\u00fcckgeht und von Gustav Heckmann weiterentwickelt wurde. Auch wenn die Methode namentlich an Sokrates ankn\u00fcpft, unterscheidet sich diese Form der Unterredung insofern von der des antiken Philosophen, als die Untersuchungen von philosophischen oder ethischen Problemen bzw. Fragestellungen nicht im Zwiegespr\u00e4ch, sondern in moderierten Gruppengespr\u00e4chen durchgef\u00fchrt werden. <br\/><br\/>Im Theorieteil des achten Bandes der Reihe \u00bbMethoden im Philosophie- und Ethikunterricht\u00ab werden die theoretischen Grundlagen, die Leonard Nelson und Gustav Heckmann in Bezug auf das Sokratische Gespr\u00e4ch entwickelt haben, vorgestellt. Im anschlie\u00dfenden Praxisteil zeigen wichtige Vertreter:innen des Sokratischen Gespr\u00e4chs \u2013 unter anderem Dieter Birnbacher, Klaus Blesenkemper, Klaus Draken, Dieter Krohn, Gisela Raupach-Strey und Ute Siebert \u2013, wie die Methode im Philosophie- und Ethikunterricht angewandt werden kann. Wie alle B\u00fccher dieser Reihe endet auch dieser Band mit einer Auswahlbibliographie."},"doi":{"7515":"","14842":"10.28937\/978-3-7873-3665-4","24529":""},"isbn":{"7515":"978-3-7873-3657-9","14842":"978-3-7873-3665-4","24529":"978-3-7873-4642-4"},"marketing_short_text":{"7515":"","14842":"","24529":""},"recension_text":{"7515":"","14842":"","24529":""},"language":{"7515":"","14842":"","24529":""},"cover":{"7515":"Kartoniert","14842":"","24529":""},"pages":{"7515":"230 Seiten","14842":"230 Seiten","24529":"230 Seiten"},"edition":{"7515":"","14842":"Unver\u00e4ndertes eBook der 1. Auflage von 2025","24529":"Unver\u00e4ndertes EPUB der 1. Auflage von 2025"},"pod":{"7515":"Nein","14842":"Nein","24529":"Nein"},"copyright_year":{"7515":"","14842":"","24529":""},"vlb_tix_link":{"7515":"https:\/\/neu.vlbtix.de\/products\/9783787336579?type=gtin","14842":"","24529":""},"defaultValues":{"163":"15"}}; 35008 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 35009 35010 if (typeof window.amxnotif_wrap_attributes === 'function') { 35011 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 35012 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 35013 } 35014 35015 const configurableOptionsComponent = initConfigurableOptions( 35016 '9669', 35017 config 35018 ); 35019 const swatchOptionsComponent = initSwatchOptions( 35020 swatchConfig 35021 ); 35022 35023 // DWS - Configurable product preselect start 35024 const confProdPreSelect = () => { 35025 return { 35026 preselectQuerystringItems() { 35027 var data = {"id":"7515","output":"15"}; 35028 const urlQueryParams = new URLSearchParams(window.location.search); 35029 35030 this.$nextTick(() => { 35031 setTimeout(() => { 35032 const rootEl = this.$root || this.$el; 35033 if (!rootEl) return; 35034 35035 const applySelection = (attrCode, attrValue) => { 35036 if (attrValue === undefined || attrValue === null || attrValue === '') return; 35037 35038 const attributes = Object.values(this.optionConfig.attributes || {}); 35039 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 35040 35041 if (targetAttr) { 35042 const attrId = String(targetAttr.id); 35043 const optionVal = String(attrValue); 35044 35045 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 35046 35047 if (inputEl) { 35048 inputEl.click(); 35049 inputEl.dispatchEvent(new Event('change', { 35050 bubbles: true 35051 })); 35052 } else { 35053 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 35054 if (selectEl) { 35055 selectEl.value = optionVal; 35056 selectEl.dispatchEvent(new Event('change', { 35057 bubbles: true 35058 })); 35059 } 35060 } 35061 35062 this.changeOption(attrId, optionVal, false); 35063 } 35064 }; 35065 35066 if (data && typeof data === 'object') {
35067 Object.keys(data).forEach(key => applySelection(key, data[key])); 35068 } 35069 35070 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 35071 if (attribute && attribute.code) { 35072 let optionValue = urlQueryParams.get(attribute.code); 35073 if (optionValue) { 35074 let optionId = false; 35075 const attributes = Object.values(this.optionConfig.attributes || {}); 35076 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 35077 35078 let found = false; 35079 Object.values(targetAttr.options).map(option => { 35080 if (found === false && option.label === optionValue) { 35081 optionId = option.id; 35082 found = true; 35083 } 35084 }); 35085 35086 const attrId = String(targetAttr.id); 35087 let optionVal = String(optionValue); 35088 if (found) { 35089 optionVal = String(optionId); 35090 } 35091 35092 applySelection(attribute.code, optionVal); 35093 } 35094 } 35095 }); 35096 }, 100); 35097 }); 35098 } 35099 } 35100 }; 35101 // DWS - Configurable product preselect end 35102 35103 const result = Object.assign( 35104 configurableOptionsComponent, 35105 swatchOptionsComponent, { 35106 productId: '9669', 35107 productIndex: 0, 35108 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 35109 showSwatches: false, 35110 precalcOptions: {}, 35111 originalInit: configurableOptionsComponent.init, 35112 init() { 35113 try { 35114 this.precalcOptions = {}; 35115 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 35116 this.preselectQuerystringItems(); 35117 if (Array.isArray(attrSource)) { 35118 attrSource.forEach(attr => { 35119 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 35120 }); 35121 } else if (attrSource && typeof attrSource === 'object') { 35122 Object.keys(attrSource).forEach(id => { 35123 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 35124 }); 35125 } 35126 } catch (e) { 35127 console.error('Pre-calc error:', e); 35128 } 35129 35130 if (typeof this.originalInit === 'function') { 35131 this.originalInit(); 35132 } 35133 35134 try { 35135 this.initShowSwatchesIntersect(); 35136 } catch (e) { 35137 console.error('intersect error:', e); 35138 } 35139 }, 35140 35141 updateGallery() { 35142 if (!this.productIndex) return; 35143 35144 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 35145 method: 'GET', 35146 headers: { 35147 'Content-Type': 'application/json', 35148 'X-Requested-With': 'XMLHttpRequest' 35149 } 35150 }) 35151 .then(response => response.json()) 35152 .then(data => { 35153 if (data && data.medium) { 35154 window.dispatchEvent(new CustomEvent("update-gallery-9669", { 35155 detail: data.medium 35156 })); 35157 } 35158 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 35159 }, 35160 35161 35162 initShowSwatchesIntersect() { 35163 const observer = new IntersectionObserver(entries => { 35164 if (entries[0].isIntersecting) { 35165 this.showSwatches = true; 35166 observer.disconnect(); 35167 } 35168 }, { 35169 rootMargin: '512px' 35170 }); 35171 observer.observe(this.$el); 35172 }, 35173 getOptions(attrId) { 35174 return this.precalcOptions[attrId] || []; 35175 }, 35176 getOptionsByAttrId() { 35177 return this.getOptions(this.$el.dataset.attributeId); 35178 }, 35179 _getItemId() { 35180 if (this.item && this.item.id) return this.item.id; 35181 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 35182 }, 35183 getSwatchOptionHtmlId() { 35184 const itemId = this._getItemId(); 35185 return itemId ? this.$id(`attribute-option-9669-${itemId}`) : ''; 35186 }, 35187 getSwatchOptionHtmlIdGroup() { 35188 const itemId = this._getItemId(); 35189 return itemId ? [`attribute-option-9669-${itemId}`] : []; 35190 }, 35191 getAttributeSwatchData(attributeId) { 35192 const data = Object.assign({}, this.swatchConfig[attributeId]); 35193 if (data['additional_data']) { 35194 try { 35195 data['details'] = JSON.parse(data['additional_data']); 35196 } catch (e) { 35197 data['details'] = {}; 35198 } 35199 } 35200 return data; 35201 }, 35202 getSwatchType(attributeId, optionId) { 35203 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 35204 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 35205 } 35206 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 35207 this.swatchConfig[attributeId].details.swatch_input_type : 35208 "empty"; 35209 if (type === 'visual') { 35210 const config = this.swatchConfig[attributeId]; 35211 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 35212 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 35213 } 35214 // Fallback to first option type 35215 for (const oId in config) { 35216 if (config[oId] && typeof config[oId].type !== 'undefined') { 35217 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 35218 } 35219 } 35220 } 35221 return type; 35222 }, 35223 mapSwatchTypeNumberToTypeCode(type) { 35224 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 35225 }, 35226 isTextSwatch() { 35227 const itemId = this._getItemId(); 35228 if (!this.$el || !itemId) return false;
35229 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35230 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 35231 }, 35232 35233 getSwatchText() { 35234 const itemId = this._getItemId(); 35235 if (this.item) return this.item.label || ''; 35236 if (!this.$el || !itemId) return ''; 35237 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35238 const options = attrId ? this.getOptions(attrId) : []; 35239 const opt = options.find(o => o.id == itemId); 35240 return opt ? opt.label : ''; 35241 }, 35242 getSwatchBackgroundStyle() { 35243 const itemId = this._getItemId(); 35244 if (!this.$el || !itemId) return ''; 35245 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35246 if (!attrId) return ''; 35247 const type = this.getSwatchType(attrId, itemId); 35248 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 35249 this.swatchConfig[attrId][itemId] : 35250 null; 35251 if (!swatchData) return ''; 35252 if (type === "color") return 'background-color:' + swatchData.value; 35253 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 35254 return ''; 35255 }, 35256 swatchOptionClasses() { 35257 const itemId = this._getItemId(); 35258 if (!this.$el || !itemId) return {}; 35259 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35260 return { 35261 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 35262 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 35263 'w-6 h-6': !this.isTextSwatch() 35264 } 35265 }, 35266 35267 onFocusSwatchItem() { 35268 const itemId = this._getItemId(); 35269 if (itemId) this.focusedLabel = itemId; 35270 }, 35271 onChangeOption() { 35272 const itemId = this._getItemId(); 35273 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 35274 if (attrId && itemId) this.changeOption(attrId, itemId); 35275 }, 35276 changeOption(attributeId, value) { 35277 if (value === '') { 35278 return; 35279 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 35280 } else { 35281 this.selectedValues[attributeId] = value; 35282 } 35283 35284 this.findSimpleIndex(); 35285 this.findAllowedAttributeOptions(); 35286 this.updatePrices(); 35287 this.updateGallery(); 35288 35289 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 35290 this.findProductIdsForPartialSelection(this.selectedValues) : []; 35291 35292 const eventDetail = { 35293 productId: this.productId, 35294 optionId: attributeId, 35295 value: value, 35296 productIndex: this.productIndex || 0, 35297 selectedValues: this.selectedValues, 35298 candidates: candidates, 35299 sourceElement: this.$el 35300 }; 35301 35302 // Dispatch for Amasty 35303 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 35304 detail: eventDetail 35305 })); 35306 35307 // Dispatch for Hyva listing 35308 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 35309 detail: eventDetail 35310 })); 35311 }, 35312 35313 35314 clearOptionIfActive() { 35315 const itemId = this._getItemId(); 35316 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 35317 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 35318 this.changeOption(attrId, ''); 35319 35320 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 35321 if (!input && this.$el?.querySelector) { 35322 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 35323 } 35324 if (!input && this.$el?.closest) { 35325 const root = this.$el.closest('[data-product-id]') || this.$el; 35326 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 35327 } 35328 if (input) { 35329 input.checked = false;
35330 } 35331 } 35332 }, 35333 get optionIsEnabled() { 35334 const itemId = this._getItemId(); 35335 if (!this.$el || !itemId) return true; 35336 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35337 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 35338 return !!allowedOptions.find(opt => opt.id == itemId); 35339 }, 35340 get isSelected() { 35341 const itemId = this._getItemId(); 35342 if (!this.$el || !itemId) return false; 35343 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35344 return attrId ? (this.selectedValues[attrId] == itemId) : false; 35345 }, 35346 get isSwatchRequired() { 35347 if (!this.$el) return false; 35348 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35349 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 35350 }, 35351 focusedLabel: false, 35352 activeTooltipItem: false, 35353 tooltipPositionElement: false,
35354 setActiveTooltipItem() { 35355 const itemId = this._getItemId(); 35356 if (!this.$el || !itemId) return; 35357 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35358 this.activeTooltipItem = { 35359 attribute: attrId, 35360 item: itemId, 35361 index: 0 35362 }; 35363 this.tooltipPositionElement = this.$event ? this.$event.target : null; 35364 }, 35365 unsetActiveTooltipItem() { 35366 this.activeTooltipItem = false; 35367 } 35368 }, 35369 confProdPreSelect() 35370 ); 35371 35372 if (result.optionConfig && result.optionConfig.attributes) { 35373 const attributes = result.optionConfig.attributes; 35374 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 35375 let source = attributes; 35376 if (Array.isArray(attributes)) { 35377 source = {}; 35378 attributes.forEach(attr => { 35379 if (attr && attr.id) source[attr.id] = attr; 35380 }); 35381 } 35382 const values = Object.values(source); 35383 const wrapper = Object.assign(values, source); 35384 Object.defineProperty(wrapper, '__amxnotifWrapped', { 35385 value: true, 35386 enumerable: false 35387 }); 35388 result.optionConfig.attributes = wrapper; 35389 } 35390 } 35391 35392 return result; 35393 } 35394 35395 window.addEventListener('alpine:init', () => { 35396 Alpine.data('initConfigurableSwatchOptions_9669', initConfigurableSwatchOptions_9669); 35397 }, { 35398 once: true 35399 }); 35400 </script>
35400 35401 35402 <div x-data="initConfigurableSwatchOptions_9669" x-defer="intersect"> 35403 <div class="pagebuilder-home-hidden"> 35404 35405 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 35406 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 35407 <template x-if="showSwatches"> 35408 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9669-163" role="radiogroup" aria-label="Einband"> 35409 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 35410 <div :data-option-id="item.id" style="display: contents"> 35411 <div x-id="getSwatchOptionHtmlIdGroup"> 35412 <template x-if="optionIsEnabled"> 35413 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
35413self="unsetActiveTooltipItem"> 35414 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9669-163"> 35415 <div> 35416 <template x-if="isTextSwatch"> 35417 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 35418 </template> 35419 <template x-if="!optionIsActive(163, item.id)"> 35420 <div> 35421 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 35422 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 35423 </svg> 35424 </div> 35425 </template> 35426 </div> 35427 </label> 35428 </template> 35429</div> </div> 35430 </template> 35431 </div> 35432 </template> 35433 </div> 35434 </div> 35435 </div> 35436 </div> 35437 35438 <div class="meta py-4 pagebuilder-home-hidden"> 35439 <div x-data="initMarketingShortText_9669()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 35440 <!-- Marketing short text --> 35441 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 35442 </div> 35443 35444 <!-- Short description --> 35445 <div class="short-description"> 35446 Das (Neo-)Sokratische Gespräch ist eine philosophische Unterrichtsmethode, die auf Leonard Nelson zurückgeht und von Gustav Heckmann weiterentwickelt wurde. Auch wenn die Methode namentlich an ... <a href="https://meiner.de/fmv_de/das-sokratische
35446-gespra-ch-im-philosophie-und-ethikunterricht-16787" class="underline">mehr</a> 35447 </div> 35448 </div> 35449 35450 <!-- Series --> 35451 <div class="mb-1"> 35452 <span class="sr-only">Reihe:</span> 35453 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 35454 <span>Methoden im Philosophie- und Ethikunterricht</span> 35455 </a> 35456 8 </div> 35457 35458 35459 <div class="mb-1"> 35460 <span x-data="initEditionText_9669()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 35461 <!-- Marketing short text --> 35462 <span class="edition-text" x-html="editionText"></span> 2025, 230 Seiten </span> 35463 </div> 35464 35465 </div> 35466 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 35467 35468 <div class="justify-end" x-data="initPriceBox()" @update-prices-9669.window="updatePrice($event.detail);"> 35469 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9669" data-price-box="product-id-9669"><span class="normal-price"> 35470 <span x-data x-id="['product\u002Dprice\u002D9669']" class="price-container price-final_price tax weee"> 35471 <span class="price-label">Ab</span> 35472 <span class="approx-price">ca. </span> 35473 <span :id="$id('product\u002Dprice\u002D9669')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 35474 </span> 35475</span> 35476 35477 35478</div> </div> 35479 35480 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 35481 <div class="open-access-container open-access-container-9669 flex mt-4 ml-auto sm:mt-0 hidden"> 35482 <div class="text-gray-700"> 35483 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 35484 <a href="" target="_blank" class="open-access-external-link m-auto "> 35485 Kostenlos online lesen </a> 35486 </button> 35487 </div> 35488 </div> 35489 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Das Sokratische Gespräch im Philosophie- und Ethikunterricht" aria-label="In den Warenkorb Das Sokratische Gespräch im Philosophie- und Ethikunterricht" data-addto="cart"> 35490 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 35491 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 35492</svg> 35493 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 35494 In den Warenkorb </span> 35495 </button> 35496 35497<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9669)" aria-label="Zur Wunschliste hinzufügen Das Sokratische Gespräch im Philosophie- und Ethikunterricht" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 35498 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 35499 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 35500</svg> 35501</button> 35502 </div> 35503 </div> 35504 </div> 35505
35505<script> 35506 function initMarketingShortText_9669() { 35507 var marketingShortTextConfig = {}; 35508 if (typeof window.initConfigurableSwatchOptions_9669 === "function") { 35509 var fullConfig = window.initConfigurableSwatchOptions_9669().optionConfig 35510 var marketingShortTextConfig = fullConfig.marketing_short_text; 35511 } 35512 return { 35513 marketingShortText: '', 35514 config: marketingShortTextConfig, 35515 productId: '9669', 35516 getMarketingShortText(detail) { 35517 this.marketingShortText = detail.productIndex ? 35518 this.config[detail.productIndex] : 35519 null; 35520 }, 35521 eventListeners: { 35522 ['@listing-configurable-selection-changed.window'](event) { 35523 if (this.productId == event.detail.productId) { 35524 this.getMarketingShortText(event.detail); 35525 } 35526 35527 } 35528 } 35529 } 35530 } 35531 35532 function initEditionText_9669() { 35533 var editionTextConfig = {}; 35534 if (typeof window.initConfigurableSwatchOptions_9669 === "function") { 35535 var fullConfig = window.initConfigurableSwatchOptions_9669().optionConfig 35536 var editionTextConfig = fullConfig.edition; 35537 } 35538 return { 35539 editionText: '', 35540 config: editionTextConfig, 35541 productId: '9669', 35542 getEditionText(detail) { 35543 this.editionText = detail.productIndex ? 35544 this.config[detail.productIndex] : 35545 null; 35546 }, 35547 eventListeners: { 35548 ['@listing-configurable-selection-changed.window'](event) { 35549 if (this.productId == event.detail.productId) { 35550 this.getEditionText(event.detail); 35551 } 35552 35553 } 35554 } 35555 } 35556 } 35557 </script>
35557 35558 </form> 35559 35560 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9638/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16445"> 35561 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9638"> 35562 <a href="https://meiner.de/fmv_de/philosophieren-mit-comics-und-graphic-novels" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 35563 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9638.window="$el.src = $event.detail" alt="Philosophieren mit Comics und Graphic Novels" title="Philosophieren mit Comics und Graphic Novels" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787340170_5.jpg" :style="{ 35564 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 35565 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 35566 }"> 35567 </a> 35568 <div class="product-info flex flex-col flex-grow "> 35569 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 35570 <div class="mb-2 text-sm text-gray-500 font-medium"> 35571 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 35572 Jörg Peters </a> 35573 <span>|</span> 35574 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 35575 Martina Peters (Hrsg.) 35576 </a> 35577 </div> 35578 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophieren-mit-comics-und-graphic-novels"> 35579 Philosophieren mit Comics und Graphic Novels </a> 35580 </div> 35581 35582 <div x-data="initEditionText_9638()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 35583 <!-- Marketing short text --> 35584 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 35585 </div> 35586 </div> 35587 35588 <div class="py-1 grid mb-4 "> 35589 35590 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9638,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9638,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7539":"1","7571":"1","7679":"1"},"childProductsAlertStatus":{"7539":"0","7571":"0","7679":"0"},"indexMapping":{"163:15":7539,"163:8":7571,"163:9":7679},"availabilityMessages":{"7539":"Lieferbar innerhalb von 3-5 Tagen","7571":"Download sofort verf\u00fcgbar","7679":"Download sofort verf\u00fcgbar"},"openAccess":{"9638":{"status":0},"7539":{"status":0},"7571":{"status":0},"7679":{"status":0}}},"availabilityMessages":{"7539":"Lieferbar innerhalb von 3-5 Tagen","7571":"Download sofort verf\u00fcgbar","7679":"Download sofort verf\u00fcgbar"},"openAccess":{"9638":{"status":0},"7539":{"status":0},"7571":{"status":0},"7679":{"status":0}}}'> 35591 <template x-if="containerVisible"> 35592 <!-- Popup Trigger --> 35593 <div> 35594 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 35595 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
35596 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 35597 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 35598<title>bell</title></svg> 35599</span> 35600 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 35601 35602 <!-- Popup Modal --> 35603 <template x-if="showModal"> 35604 <template x-teleport=".page-wrapper"> 35605 <div x-cloak class="fixed inset-0 flex items-center justify-center 35606 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 35607 <div class="relative bg-white rounded-lg shadow-xl 35608 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 35609 <div class="p-6"> 35610 <!-- Subscription Form for Popup --> 35611 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 35612 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 35613 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 35614 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 35615 35616 <div class="flex flex-col gap-3"> 35617 <div class="flex-grow grow"> 35618 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 35619 shadow-xs focus:outline-none focus:outline-hidden 35620 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 35621 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 35622 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 35623 </div> 35624 <input type="hidden" name="product_id" :value="currentProductId"> 35625 <input type="hidden" name="type" value="email"> 35626 35627 35628 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 35629 35630 <div class="amxnotif_guest_action"> 35631 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 35632 rounded-md focus:outline-none 35633 focus:outline-hidden focus:ring-2 35634 focus:ring-offset-2 disabled:opacity-50 35635 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 35636 Benachrichtigen </button> 35637 </div> 35638 </div> 35639 35640 <div class="flex items-start pt-2"> 35641 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 35642 text-blue-600 border-gray-300 rounded-sm"> 35643 <label class="amxnotif-stock-gdrp-label cursor-pointer 35644 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 35645 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 35646 </div> 35647 </form> 35648 </div> 35649 35650 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 35651 hover:text-gray-600 transition-colors" aria-label="Schließen"> 35652 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 35653 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 35654<title>x</title></svg> 35655 </button> 35656 </div> 35657 </div> 35658 </template> 35659 </template> 35660 </div> 35661 </template> 35662 </div> 35663 35664<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9638" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9638,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7539":"1","7571":"1","7679":"1"},"childProductsAlertStatus":{"7539":"0","7571":"0","7679":"0"},"indexMapping":"{\u0022163:15\u0022:7539,\u0022163:8\u0022:7571,\u0022163:9\u0022:7679}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9638,"availabilityMessages":{"7539":"Lieferbar innerhalb von 3-5 Tagen","7571":"Download sofort verf\u00fcgbar","7679":"Download sofort verf\u00fcgbar"},"openAccess":{"9638":{"status":0},"7539":{"status":0},"7571":{"status":0},"7679":{"status":0}}}'> 35665 35666 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
35667 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 35668 <span x-html="optionsLabelText"></span> 35669 </p> 35670</div> </div> 35671 35672
35672<script> 35673 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 35674 try { 35675 const attributes = (config && config.attributes) ? config.attributes : null; 35676 if (!attributes) return []; 35677 let attr = null; 35678 if (Array.isArray(attributes)) { 35679 for (let i = 0; i < attributes.length; i++) { 35680 const a = attributes[i]; 35681 if (a && a.id == attrId) { 35682 attr = a; 35683 break; 35684 } 35685 } 35686 } else { 35687 attr = attributes[attrId]; 35688 } 35689 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 35690 } catch (e) { 35691 return []; 35692 } 35693 }; 35694 35695 function initConfigurableSwatchOptions_9638() { 35696 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7539"]},{"id":"8","label":"PDF","products":["7571"]},{"id":"9","label":"EPUB","products":["7679"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7539":{"baseOldPrice":{"amount":23.271027037383},"oldPrice":{"amount":24.9},"basePrice":{"amount":23.271027037383},"finalPrice":{"amount":24.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7571":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7679":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"isApproxPrice":null},"productId":"9638","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7539":{"163":"15"},"7571":{"163":"8"},"7679":{"163":"9"}},"salable":{"163":{"15":["7539"],"8":["7571"],"9":["7679"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7539":"003652","7571":"003660","7679":"004017"},"output":{"7539":"Kartoniert","7571":"PDF","7679":"EPUB"},"original_name":{"7539":"","7571":"","7679":""},"openaccess_license_link":{"7539":"","7571":"","7679":""},"openaccess_license_name":{"7539":"","7571":"","7679":""},"openaccess_external_link":{"7539":"","7571":"","7679":""},"gpsr_safety_info":{"7539":"","7571":"","7679":""},"description":{"7539":"Comics und Graphic Novels bieten vielf\u00e4ltige M\u00f6glichkeiten, Sch\u00fclerinnen und Sch\u00fcler in den F\u00e4chern Philosophie und Ethik auf h\u00f6chst motivierende Weise zum Selberde
35696nken anzuregen und ihnen den Zugang zu komplexen Fragestellungen und Theorien durch die bildliche Unterst\u00fctzung zu erleichtern.<br\/><br\/>Der vorliegende Band liefert auf der Basis einiger in die Thematik einf\u00fchrender Bemerkungen der Herausgeber einen Theorie und einen Praxisteil sowie einen erg\u00e4nzenden Materialteil. Der Theorieteil bietet eine Einf\u00fchrung in die Bedeutung, Chancen und Grenzen des Einsatzes von Comics und Graphic Novels im Philosophie- und Ethikunterricht. Im Praxisteil finden sich Beispiele f\u00fcr Comics und Graphic Novels, die sich f\u00fcr den Einsatz in der Sekundarstufe I bzw. der Sekundarstufe II besonders eignen. Dar\u00fcber hinaus werden auch M\u00f6glichkeiten vorgestellt, wie Comics im Abitur eingesetzt werden k\u00f6nnen oder wie Sch\u00fclerinnen und Sch\u00fcler \u2013 auch ohne eine zeichnerische Begabung \u2013 selbst einen Comic zu einem vorgegebenen philosophischen Thema anfertigen k\u00f6nnen. Der Materialteil des Bandes enth\u00e4lt eine Auswahl an Comics, die weitere Anregungen f\u00fcr die Unterrichtsgestaltung bieten. ","7571":"Comics und Graphic Novels bieten vielf\u00e4ltige M\u00f6glichkeiten, Sch\u00fclerinnen und Sch\u00fcler in den F\u00e4chern Philosophie und Ethik auf h\u00f6chst motivierende Weise zum Selberde
35696nken anzuregen und ihnen den Zugang zu komplexen Fragestellungen und Theorien durch die bildliche Unterst\u00fctzung zu erleichtern.<br\/><br\/>Der vorliegende Band liefert auf der Basis einiger in die Thematik einf\u00fchrender Bemerkungen der Herausgeber einen Theorie und einen Praxisteil sowie einen erg\u00e4nzenden Materialteil. Der Theorieteil bietet eine Einf\u00fchrung in die Bedeutung, Chancen und Grenzen des Einsatzes von Comics und Graphic Novels im Philosophie- und Ethikunterricht. Im Praxisteil finden sich Beispiele f\u00fcr Comics und Graphic Novels, die sich f\u00fcr den Einsatz in der Sekundarstufe I bzw. der Sekundarstufe II besonders eignen. Dar\u00fcber hinaus werden auch M\u00f6glichkeiten vorgestellt, wie Comics im Abitur eingesetzt werden k\u00f6nnen oder wie Sch\u00fclerinnen und Sch\u00fcler \u2013 auch ohne eine zeichnerische Begabung \u2013 selbst einen Comic zu einem vorgegebenen philosophischen Thema anfertigen k\u00f6nnen. Der Materialteil des Bandes enth\u00e4lt eine Auswahl an Comics, die weitere Anregungen f\u00fcr die Unterrichtsgestaltung bieten. ","7679":"Comics und Graphic Novels bieten vielf\u00e4ltige M\u00f6glichkeiten, Sch\u00fclerinnen und Sch\u00fcler in den F\u00e4chern Philosophie und Ethik auf h\u00f6chst motivierende Weise zum Selberde
35696nken anzuregen und ihnen den Zugang zu komplexen Fragestellungen und Theorien durch die bildliche Unterst\u00fctzung zu erleichtern.<br\/><br\/>Der vorliegende Band liefert auf der Basis einiger in die Thematik einf\u00fchrender Bemerkungen der Herausgeber einen Theorie und einen Praxisteil sowie einen erg\u00e4nzenden Materialteil. Der Theorieteil bietet eine Einf\u00fchrung in die Bedeutung, Chancen und Grenzen des Einsatzes von Comics und Graphic Novels im Philosophie- und Ethikunterricht. Im Praxisteil finden sich Beispiele f\u00fcr Comics und Graphic Novels, die sich f\u00fcr den Einsatz in der Sekundarstufe I bzw. der Sekundarstufe II besonders eignen. Dar\u00fcber hinaus werden auch M\u00f6glichkeiten vorgestellt, wie Comics im Abitur eingesetzt werden k\u00f6nnen oder wie Sch\u00fclerinnen und Sch\u00fcler \u2013 auch ohne eine zeichnerische Begabung \u2013 selbst einen Comic zu einem vorgegebenen philosophischen Thema anfertigen k\u00f6nnen. Der Materialteil des Bandes enth\u00e4lt eine Auswahl an Comics, die weitere Anregungen f\u00fcr die Unterrichtsgestaltung bieten. "},"doi":{"7539":"","7571":"10.28937\/978-3-7873-3660-9","7679":""},"isbn":{"7539":"978-3-7873-3652-4","7571":"978-3-7873-3660-9","7679":"978-3-7873-4017-0"},"marketing_short_text":{"7539":"","7571":"","7679":""},"recension_text":{"7539":"","7571":"","7679":""},"language":{"7539":"","7571":"","7679":""},"cover":{"7539":"Kartoniert","7571":"","7679":""},"pages":{"7539":"248 Seiten","7571":"246 Seiten","7679":"246 Seiten"},"edition":{"7539":"","7571":"Unver\u00e4ndertes eBook der 1. Auflage von 2021","7679":"Unver\u00e4ndertes eBook der 1. Auflage von 2021"},"pod":{"7539":"Nein","7571":"Nein","7679":"Nein"},"copyright_year":{"7539":"","7571":"","7679":""},"vlb_tix_link":{"7539":"https:\/\/neu.vlbtix.de\/products\/9783787336524?type=gtin","7571":"","7679":""},"defaultValues":{"163":"15"}}; 35697 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 35698 35699 if (typeof window.amxnotif_wrap_attributes === 'function') { 35700 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 35701 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 35702 } 35703 35704 const configurableOptionsComponent = initConfigurableOptions( 35705 '9638', 35706 config 35707 ); 35708 const swatchOptionsComponent = initSwatchOptions( 35709 swatchConfig 35710 ); 35711 35712 // DWS - Configurable product preselect start 35713 const confProdPreSelect = () => { 35714 return { 35715 preselectQuerystringItems() { 35716 var data = {"id":"7539","output":"15"}; 35717 const urlQueryParams = new URLSearchParams(window.location.search); 35718 35719 this.$nextTick(() => { 35720 setTimeout(() => { 35721 const rootEl = this.$root || this.$el; 35722 if (!rootEl) return; 35723 35724 const applySelection = (attrCode, attrValue) => { 35725 if (attrValue === undefined || attrValue === null || attrValue === '') return; 35726 35727 const attributes = Object.values(this.optionConfig.attributes || {}); 35728 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 35729 35730 if (targetAttr) { 35731 const attrId = String(targetAttr.id); 35732 const optionVal = String(attrValue); 35733 35734 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 35735 35736 if (inputEl) { 35737 inputEl.click(); 35738 inputEl.dispatchEvent(new Event('change', { 35739 bubbles: true 35740 })); 35741 } else { 35742 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 35743 if (selectEl) { 35744 selectEl.value = optionVal; 35745 selectEl.dispatchEvent(new Event('change', { 35746 bubbles: true 35747 })); 35748 } 35749 } 35750 35751 this.changeOption(attrId, optionVal, false); 35752 } 35753 }; 35754 35755 if (data && typeof data === 'object') {
35756 Object.keys(data).forEach(key => applySelection(key, data[key])); 35757 } 35758 35759 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 35760 if (attribute && attribute.code) { 35761 let optionValue = urlQueryParams.get(attribute.code); 35762 if (optionValue) { 35763 let optionId = false; 35764 const attributes = Object.values(this.optionConfig.attributes || {}); 35765 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 35766 35767 let found = false; 35768 Object.values(targetAttr.options).map(option => { 35769 if (found === false && option.label === optionValue) { 35770 optionId = option.id; 35771 found = true; 35772 } 35773 }); 35774 35775 const attrId = String(targetAttr.id); 35776 let optionVal = String(optionValue); 35777 if (found) { 35778 optionVal = String(optionId); 35779 } 35780 35781 applySelection(attribute.code, optionVal); 35782 } 35783 } 35784 }); 35785 }, 100); 35786 }); 35787 } 35788 } 35789 }; 35790 // DWS - Configurable product preselect end 35791 35792 const result = Object.assign( 35793 configurableOptionsComponent, 35794 swatchOptionsComponent, { 35795 productId: '9638', 35796 productIndex: 0, 35797 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 35798 showSwatches: false, 35799 precalcOptions: {}, 35800 originalInit: configurableOptionsComponent.init, 35801 init() { 35802 try { 35803 this.precalcOptions = {}; 35804 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 35805 this.preselectQuerystringItems(); 35806 if (Array.isArray(attrSource)) { 35807 attrSource.forEach(attr => { 35808 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 35809 }); 35810 } else if (attrSource && typeof attrSource === 'object') { 35811 Object.keys(attrSource).forEach(id => { 35812 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 35813 }); 35814 } 35815 } catch (e) { 35816 console.error('Pre-calc error:', e); 35817 } 35818 35819 if (typeof this.originalInit === 'function') { 35820 this.originalInit(); 35821 } 35822 35823 try { 35824 this.initShowSwatchesIntersect(); 35825 } catch (e) { 35826 console.error('intersect error:', e); 35827 } 35828 }, 35829 35830 updateGallery() { 35831 if (!this.productIndex) return; 35832 35833 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 35834 method: 'GET', 35835 headers: { 35836 'Content-Type': 'application/json', 35837 'X-Requested-With': 'XMLHttpRequest' 35838 } 35839 }) 35840 .then(response => response.json()) 35841 .then(data => { 35842 if (data && data.medium) { 35843 window.dispatchEvent(new CustomEvent("update-gallery-9638", { 35844 detail: data.medium 35845 })); 35846 } 35847 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 35848 }, 35849 35850 35851 initShowSwatchesIntersect() { 35852 const observer = new IntersectionObserver(entries => { 35853 if (entries[0].isIntersecting) { 35854 this.showSwatches = true; 35855 observer.disconnect(); 35856 } 35857 }, { 35858 rootMargin: '512px' 35859 }); 35860 observer.observe(this.$el); 35861 }, 35862 getOptions(attrId) { 35863 return this.precalcOptions[attrId] || []; 35864 }, 35865 getOptionsByAttrId() { 35866 return this.getOptions(this.$el.dataset.attributeId); 35867 }, 35868 _getItemId() { 35869 if (this.item && this.item.id) return this.item.id; 35870 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 35871 }, 35872 getSwatchOptionHtmlId() { 35873 const itemId = this._getItemId(); 35874 return itemId ? this.$id(`attribute-option-9638-${itemId}`) : ''; 35875 }, 35876 getSwatchOptionHtmlIdGroup() { 35877 const itemId = this._getItemId(); 35878 return itemId ? [`attribute-option-9638-${itemId}`] : []; 35879 }, 35880 getAttributeSwatchData(attributeId) { 35881 const data = Object.assign({}, this.swatchConfig[attributeId]); 35882 if (data['additional_data']) { 35883 try { 35884 data['details'] = JSON.parse(data['additional_data']); 35885 } catch (e) { 35886 data['details'] = {}; 35887 } 35888 } 35889 return data; 35890 }, 35891 getSwatchType(attributeId, optionId) { 35892 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 35893 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 35894 } 35895 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 35896 this.swatchConfig[attributeId].details.swatch_input_type : 35897 "empty"; 35898 if (type === 'visual') { 35899 const config = this.swatchConfig[attributeId]; 35900 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 35901 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 35902 } 35903 // Fallback to first option type 35904 for (const oId in config) { 35905 if (config[oId] && typeof config[oId].type !== 'undefined') { 35906 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 35907 } 35908 } 35909 } 35910 return type; 35911 }, 35912 mapSwatchTypeNumberToTypeCode(type) { 35913 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 35914 }, 35915 isTextSwatch() { 35916 const itemId = this._getItemId(); 35917 if (!this.$el || !itemId) return false;
35918 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35919 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 35920 }, 35921 35922 getSwatchText() { 35923 const itemId = this._getItemId(); 35924 if (this.item) return this.item.label || ''; 35925 if (!this.$el || !itemId) return ''; 35926 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35927 const options = attrId ? this.getOptions(attrId) : []; 35928 const opt = options.find(o => o.id == itemId); 35929 return opt ? opt.label : ''; 35930 }, 35931 getSwatchBackgroundStyle() { 35932 const itemId = this._getItemId(); 35933 if (!this.$el || !itemId) return ''; 35934 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35935 if (!attrId) return ''; 35936 const type = this.getSwatchType(attrId, itemId); 35937 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 35938 this.swatchConfig[attrId][itemId] : 35939 null; 35940 if (!swatchData) return ''; 35941 if (type === "color") return 'background-color:' + swatchData.value; 35942 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 35943 return ''; 35944 }, 35945 swatchOptionClasses() { 35946 const itemId = this._getItemId(); 35947 if (!this.$el || !itemId) return {}; 35948 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 35949 return { 35950 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 35951 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 35952 'w-6 h-6': !this.isTextSwatch() 35953 } 35954 }, 35955 35956 onFocusSwatchItem() { 35957 const itemId = this._getItemId(); 35958 if (itemId) this.focusedLabel = itemId; 35959 }, 35960 onChangeOption() { 35961 const itemId = this._getItemId(); 35962 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 35963 if (attrId && itemId) this.changeOption(attrId, itemId); 35964 }, 35965 changeOption(attributeId, value) { 35966 if (value === '') { 35967 return; 35968 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 35969 } else { 35970 this.selectedValues[attributeId] = value; 35971 } 35972 35973 this.findSimpleIndex(); 35974 this.findAllowedAttributeOptions(); 35975 this.updatePrices(); 35976 this.updateGallery(); 35977 35978 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 35979 this.findProductIdsForPartialSelection(this.selectedValues) : []; 35980 35981 const eventDetail = { 35982 productId: this.productId, 35983 optionId: attributeId, 35984 value: value, 35985 productIndex: this.productIndex || 0, 35986 selectedValues: this.selectedValues, 35987 candidates: candidates, 35988 sourceElement: this.$el 35989 }; 35990 35991 // Dispatch for Amasty 35992 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 35993 detail: eventDetail 35994 })); 35995 35996 // Dispatch for Hyva listing 35997 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 35998 detail: eventDetail 35999 })); 36000 }, 36001 36002 36003 clearOptionIfActive() { 36004 const itemId = this._getItemId(); 36005 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 36006 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 36007 this.changeOption(attrId, ''); 36008 36009 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 36010 if (!input && this.$el?.querySelector) { 36011 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 36012 } 36013 if (!input && this.$el?.closest) { 36014 const root = this.$el.closest('[data-product-id]') || this.$el; 36015 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 36016 } 36017 if (input) { 36018 input.checked = false;
36019 } 36020 } 36021 }, 36022 get optionIsEnabled() { 36023 const itemId = this._getItemId(); 36024 if (!this.$el || !itemId) return true; 36025 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36026 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 36027 return !!allowedOptions.find(opt => opt.id == itemId); 36028 }, 36029 get isSelected() { 36030 const itemId = this._getItemId(); 36031 if (!this.$el || !itemId) return false; 36032 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36033 return attrId ? (this.selectedValues[attrId] == itemId) : false; 36034 }, 36035 get isSwatchRequired() { 36036 if (!this.$el) return false; 36037 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36038 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 36039 }, 36040 focusedLabel: false, 36041 activeTooltipItem: false, 36042 tooltipPositionElement: false,
36043 setActiveTooltipItem() { 36044 const itemId = this._getItemId(); 36045 if (!this.$el || !itemId) return; 36046 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36047 this.activeTooltipItem = { 36048 attribute: attrId, 36049 item: itemId, 36050 index: 0 36051 }; 36052 this.tooltipPositionElement = this.$event ? this.$event.target : null; 36053 }, 36054 unsetActiveTooltipItem() { 36055 this.activeTooltipItem = false; 36056 } 36057 }, 36058 confProdPreSelect() 36059 ); 36060 36061 if (result.optionConfig && result.optionConfig.attributes) { 36062 const attributes = result.optionConfig.attributes; 36063 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 36064 let source = attributes; 36065 if (Array.isArray(attributes)) { 36066 source = {}; 36067 attributes.forEach(attr => { 36068 if (attr && attr.id) source[attr.id] = attr; 36069 }); 36070 } 36071 const values = Object.values(source); 36072 const wrapper = Object.assign(values, source); 36073 Object.defineProperty(wrapper, '__amxnotifWrapped', { 36074 value: true, 36075 enumerable: false 36076 }); 36077 result.optionConfig.attributes = wrapper; 36078 } 36079 } 36080 36081 return result; 36082 } 36083 36084 window.addEventListener('alpine:init', () => { 36085 Alpine.data('initConfigurableSwatchOptions_9638', initConfigurableSwatchOptions_9638); 36086 }, { 36087 once: true 36088 }); 36089 </script>
36089 36090 36091 <div x-data="initConfigurableSwatchOptions_9638" x-defer="intersect"> 36092 <div class="pagebuilder-home-hidden"> 36093 36094 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 36095 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 36096 <template x-if="showSwatches"> 36097 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9638-163" role="radiogroup" aria-label="Einband"> 36098 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 36099 <div :data-option-id="item.id" style="display: contents"> 36100 <div x-id="getSwatchOptionHtmlIdGroup"> 36101 <template x-if="optionIsEnabled"> 36102 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
36102self="unsetActiveTooltipItem"> 36103 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9638-163"> 36104 <div> 36105 <template x-if="isTextSwatch"> 36106 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 36107 </template> 36108 <template x-if="!optionIsActive(163, item.id)"> 36109 <div> 36110 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 36111 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 36112 </svg> 36113 </div> 36114 </template> 36115 </div> 36116 </label> 36117 </template> 36118</div> </div> 36119 </template> 36120 </div> 36121 </template> 36122 </div> 36123 </div> 36124 </div> 36125 </div> 36126 36127 <div class="meta py-4 pagebuilder-home-hidden"> 36128 <div x-data="initMarketingShortText_9638()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 36129 <!-- Marketing short text --> 36130 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 36131 </div> 36132 36133 <!-- Short description --> 36134 <div class="short-description"> 36135 Comics und Graphic Novels bieten vielfältige Möglichkeiten, Schülerinnen und Schüler in den Fächern Philosophie und Ethik auf hö
36135chst motivierende Weise zum Selberdenken anzuregen und ihnen den ... <a href="https://meiner.de/fmv_de/philosophieren-mit-comics-und-graphic-novels" class="underline">mehr</a> 36136 </div> 36137 </div> 36138 36139 <!-- Series --> 36140 <div class="mb-1"> 36141 <span class="sr-only">Reihe:</span> 36142 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 36143 <span>Methoden im Philosophie- und Ethikunterricht</span> 36144 </a> 36145 4 </div> 36146 36147 36148 <div class="mb-1"> 36149 <span x-data="initEditionText_9638()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 36150 <!-- Marketing short text --> 36151 <span class="edition-text" x-html="editionText"></span> 2021, 248 Seiten </span> 36152 </div> 36153 36154 </div> 36155 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 36156 36157 <div class="justify-end" x-data="initPriceBox()" @update-prices-9638.window="updatePrice($event.detail);"> 36158 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9638" data-price-box="product-id-9638"><span class="normal-price"> 36159 <span x-data x-id="['product\u002Dprice\u002D9638']" class="price-container price-final_price tax weee"> 36160 <span class="price-label">Ab</span> 36161 <span class="approx-price">ca. </span> 36162 <span :id="$id('product\u002Dprice\u002D9638')" data-price-amount="18.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">18,99 €</span></span> 36163 </span> 36164</span> 36165 36166 36167</div> </div> 36168 36169 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 36170 <div class="open-access-container open-access-container-9638 flex mt-4 ml-auto sm:mt-0 hidden"> 36171 <div class="text-gray-700"> 36172 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 36173 <a href="" target="_blank" class="open-access-external-link m-auto "> 36174 Kostenlos online lesen </a> 36175 </button> 36176 </div> 36177 </div> 36178 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophieren mit Comics und Graphic Novels" aria-label="In den Warenkorb Philosophieren mit Comics und Graphic Novels" data-addto="cart"> 36179 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 36180 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 36181</svg> 36182 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 36183 In den Warenkorb </span> 36184 </button> 36185 36186<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9638)" aria-label="Zur Wunschliste hinzufügen Philosophieren mit Comics und Graphic Novels" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 36187 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 36188 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 36189</svg> 36190</button> 36191 </div> 36192 </div> 36193 </div> 36194
36194<script> 36195 function initMarketingShortText_9638() { 36196 var marketingShortTextConfig = {}; 36197 if (typeof window.initConfigurableSwatchOptions_9638 === "function") { 36198 var fullConfig = window.initConfigurableSwatchOptions_9638().optionConfig 36199 var marketingShortTextConfig = fullConfig.marketing_short_text; 36200 } 36201 return { 36202 marketingShortText: '', 36203 config: marketingShortTextConfig, 36204 productId: '9638', 36205 getMarketingShortText(detail) { 36206 this.marketingShortText = detail.productIndex ? 36207 this.config[detail.productIndex] : 36208 null; 36209 }, 36210 eventListeners: { 36211 ['@listing-configurable-selection-changed.window'](event) { 36212 if (this.productId == event.detail.productId) { 36213 this.getMarketingShortText(event.detail); 36214 } 36215 36216 } 36217 } 36218 } 36219 } 36220 36221 function initEditionText_9638() { 36222 var editionTextConfig = {}; 36223 if (typeof window.initConfigurableSwatchOptions_9638 === "function") { 36224 var fullConfig = window.initConfigurableSwatchOptions_9638().optionConfig 36225 var editionTextConfig = fullConfig.edition; 36226 } 36227 return { 36228 editionText: '', 36229 config: editionTextConfig, 36230 productId: '9638', 36231 getEditionText(detail) { 36232 this.editionText = detail.productIndex ? 36233 this.config[detail.productIndex] : 36234 null; 36235 }, 36236 eventListeners: { 36237 ['@listing-configurable-selection-changed.window'](event) { 36238 if (this.productId == event.detail.productId) { 36239 this.getEditionText(event.detail); 36240 } 36241 36242 } 36243 } 36244 } 36245 } 36246 </script>
36246 36247 </form> 36248 36249 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9637/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16444"> 36250 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9637"> 36251 <a href="https://meiner.de/fmv_de/philosophieren-mit-dilemmata" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 36252 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9637.window="$el.src = $event.detail" alt="Philosophieren mit Dilemmata" title="Philosophieren mit Dilemmata" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787349425_3.jpg" :style="{ 36253 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 36254 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 36255 }"> 36256 </a> 36257 <div class="product-info flex flex-col flex-grow "> 36258 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 36259 <div class="mb-2 text-sm text-gray-500 font-medium"> 36260 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 36261 Jörg Peters </a> 36262 <span>|</span> 36263 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 36264 Martina Peters (Hrsg.) 36265 </a> 36266 </div> 36267 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophieren-mit-dilemmata"> 36268 Philosophieren mit Dilemmata </a> 36269 </div> 36270 36271 <div x-data="initEditionText_9637()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 36272 <!-- Marketing short text --> 36273 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 36274 </div> 36275 </div> 36276 36277 <div class="py-1 grid mb-4 "> 36278 36279 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9637,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9637,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7326":"1","39961":"1","7540":"1"},"childProductsAlertStatus":{"7326":"0","39961":"0","7540":"0"},"indexMapping":{"163:8":7326,"163:15":39961,"163:9":7540},"availabilityMessages":{"7326":"Download sofort verf\u00fcgbar","39961":"Lieferbar innerhalb von 3-5 Tagen","7540":"Download sofort verf\u00fcgbar"},"openAccess":{"9637":{"status":0},"7326":{"status":0},"39961":{"status":0},"7540":{"status":0}}},"availabilityMessages":{"7326":"Download sofort verf\u00fcgbar","39961":"Lieferbar innerhalb von 3-5 Tagen","7540":"Download sofort verf\u00fcgbar"},"openAccess":{"9637":{"status":0},"7326":{"status":0},"39961":{"status":0},"7540":{"status":0}}}'> 36280 <template x-if="containerVisible"> 36281 <!-- Popup Trigger --> 36282 <div> 36283 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 36284 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
36285 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 36286 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 36287<title>bell</title></svg> 36288</span> 36289 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 36290 36291 <!-- Popup Modal --> 36292 <template x-if="showModal"> 36293 <template x-teleport=".page-wrapper"> 36294 <div x-cloak class="fixed inset-0 flex items-center justify-center 36295 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 36296 <div class="relative bg-white rounded-lg shadow-xl 36297 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 36298 <div class="p-6"> 36299 <!-- Subscription Form for Popup --> 36300 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 36301 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 36302 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 36303 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 36304 36305 <div class="flex flex-col gap-3"> 36306 <div class="flex-grow grow"> 36307 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 36308 shadow-xs focus:outline-none focus:outline-hidden 36309 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 36310 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 36311 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 36312 </div> 36313 <input type="hidden" name="product_id" :value="currentProductId"> 36314 <input type="hidden" name="type" value="email"> 36315 36316 36317 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 36318 36319 <div class="amxnotif_guest_action"> 36320 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 36321 rounded-md focus:outline-none 36322 focus:outline-hidden focus:ring-2 36323 focus:ring-offset-2 disabled:opacity-50 36324 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 36325 Benachrichtigen </button> 36326 </div> 36327 </div> 36328 36329 <div class="flex items-start pt-2"> 36330 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 36331 text-blue-600 border-gray-300 rounded-sm"> 36332 <label class="amxnotif-stock-gdrp-label cursor-pointer 36333 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 36334 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 36335 </div> 36336 </form> 36337 </div> 36338 36339 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 36340 hover:text-gray-600 transition-colors" aria-label="Schließen"> 36341 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 36342 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 36343<title>x</title></svg> 36344 </button> 36345 </div> 36346 </div> 36347 </template> 36348 </template> 36349 </div> 36350 </template> 36351 </div> 36352 36353<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9637" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9637,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7326":"1","39961":"1","7540":"1"},"childProductsAlertStatus":{"7326":"0","39961":"0","7540":"0"},"indexMapping":"{\u0022163:8\u0022:7326,\u0022163:15\u0022:39961,\u0022163:9\u0022:7540}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9637,"availabilityMessages":{"7326":"Download sofort verf\u00fcgbar","39961":"Lieferbar innerhalb von 3-5 Tagen","7540":"Download sofort verf\u00fcgbar"},"openAccess":{"9637":{"status":0},"7326":{"status":0},"39961":{"status":0},"7540":{"status":0}}}'> 36354 36355 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
36356 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 36357 <span x-html="optionsLabelText"></span> 36358 </p> 36359</div> </div> 36360 36361
36361<script> 36362 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 36363 try { 36364 const attributes = (config && config.attributes) ? config.attributes : null; 36365 if (!attributes) return []; 36366 let attr = null; 36367 if (Array.isArray(attributes)) { 36368 for (let i = 0; i < attributes.length; i++) { 36369 const a = attributes[i]; 36370 if (a && a.id == attrId) { 36371 attr = a; 36372 break; 36373 } 36374 } 36375 } else { 36376 attr = attributes[attrId]; 36377 } 36378 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 36379 } catch (e) { 36380 return []; 36381 } 36382 }; 36383 36384 function initConfigurableSwatchOptions_9637() { 36385 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["39961"]},{"id":"8","label":"PDF","products":["7326"]},{"id":"9","label":"EPUB","products":["7540"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7326":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"39961":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7540":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"9637","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7326":{"163":"8"},"39961":{"163":"15"},"7540":{"163":"9"}},"salable":{"163":{"8":["7326"],"15":["39961"],"9":["7540"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7326":"003746","39961":"004942","7540":"003860"},"output":{"7326":"PDF","7540":"EPUB","39961":"Kartoniert"},"original_name":{"7326":"","7540":"","39961":""},"openaccess_license_link":{"7326":"","7540":"","39961":""},"openaccess_license_name":{"7326":"","7540":"","39961":""},"openaccess_external_link":{"7326":"","7540":"","39961":""},"gpsr_safety_info":{"7326":"","7540":"","39961":""},"description":{"7326":"Moralisch handeln in scheinbar ausweglosen Situationen? Die Auseinandersetzung mit Dilemmata im Unterricht fokussiert die moralische Kompetenzbildung und -f\u00f6rderung, welche in unserer hochvernetzten und komplexen Welt von gro\u00dfer Aktualit\u00e4t ist. Im Theorieteil dieses Bandes werden verschiedene Methoden der Dilemma-Diskussion vorgestellt und ihr Einsatz im Philosophie- und Ethikunterricht diskutiert. Der Praxisteil erl\u00e4utert anhand zahlreicher Beispiele, wie Dilemmata problem-, sch\u00fcler- und kompetenzorientiert eingesetzt werden k\u00f6nnen. Die Einleitung der Herausgeber, eine Auswahl moralischer Dilemmata sowie eine Auswahlbibliographie bieten weitere Anregungen f\u00fcr die Unterrichtsgestaltung.","7540":"Moralisch handeln in scheinbar ausweglosen Situationen? Die Auseinandersetzung mit Dilemmata im Unterricht fokussiert die moralische Kompetenzbildung und -f\u00f6rderung, welche in unserer hochvernetzten und komplexen Welt von gro\u00dfer Aktualit\u00e4t ist. Im Theorieteil dieses Bandes werden verschiedene Methoden der Dilemma-Diskussion vorgestellt und ihr Einsatz im Philosophie- und Ethikunterricht diskutiert. Der Praxisteil erl\u00e4utert anhand zahlreicher Beispiele, wie Dilemmata problem-, sch\u00fcler- und kompetenzorientiert eingesetzt werden k\u00f6nnen. Die Einleitung der Herausgeber, eine Auswahl moralischer Dilemmata sowie eine Auswahlbibliographie bieten weitere Anregungen f\u00fcr die Unterrichtsgestaltung.","39961":"Moralisch handeln in scheinbar ausweglosen Situationen? Die Auseinandersetzung mit Dilemmata im Unterricht fokussiert die moralische Kompetenzbildung und
36385-f\u00f6rderung, welche in unserer hochvernetzten und komplexen Welt von gro\u00dfer Aktualit\u00e4t ist. Im Theorieteil dieses Bandes werden verschiedene Methoden der Dilemma-Diskussion vorgestellt und ihr Einsatz im Philosophie- und Ethikunterricht diskutiert. Der Praxisteil erl\u00e4utert anhand zahlreicher Beispiele, wie Dilemmata problem-, sch\u00fcler- und kompetenzorientiert eingesetzt werden k\u00f6nnen. Die Einleitung der Herausgeber, eine Auswahl moralischer Dilemmata sowie eine Auswahlbibliographie bieten weitere Anregungen f\u00fcr die Unterrichtsgestaltung."},"doi":{"7326":"10.28937\/978-3-7873-3746-0","7540":"","39961":""},"isbn":{"7326":"978-3-7873-3746-0","7540":"978-3-7873-3860-3","39961":"978-3-7873-4942-5"},"marketing_short_text":{"7326":"","7540":"","39961":""},"recension_text":{"7326":"","7540":"","39961":""},"language":{"7326":"","7540":"","39961":""},"cover":{"7326":"","7540":"","39961":"Kartoniert"},"pages":{"7326":"156 Seiten","7540":"158 Seiten","39961":"156 Seiten"},"edition":{"7326":"Unver\u00e4ndertes eBook der 1. Auflage von 2020","7540":"Unver\u00e4ndertes eBook der 1. Auflage von 2020","39961":"2., \u00fcberarbeitete Auflage"},"pod":{"7326":"Nein","7540":"Nein","39961":"Nein"},"copyright_year":{"7326":"","7540":"","39961":""},"vlb_tix_link":{"7326":"","7540":"","39961":"https:\/\/neu.vlbtix.de\/products\/9783787349425?type=gtin"},"defaultValues":{"163":"15"}}; 36386 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 36387 36388 if (typeof window.amxnotif_wrap_attributes === 'function') { 36389 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 36390 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 36391 } 36392 36393 const configurableOptionsComponent = initConfigurableOptions( 36394 '9637', 36395 config 36396 ); 36397 const swatchOptionsComponent = initSwatchOptions( 36398 swatchConfig 36399 ); 36400 36401 // DWS - Configurable product preselect start 36402 const confProdPreSelect = () => { 36403 return { 36404 preselectQuerystringItems() { 36405 var data = {"id":"39961","output":"15"}; 36406 const urlQueryParams = new URLSearchParams(window.location.search); 36407 36408 this.$nextTick(() => { 36409 setTimeout(() => { 36410 const rootEl = this.$root || this.$el; 36411 if (!rootEl) return; 36412 36413 const applySelection = (attrCode, attrValue) => { 36414 if (attrValue === undefined || attrValue === null || attrValue === '') return; 36415 36416 const attributes = Object.values(this.optionConfig.attributes || {}); 36417 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 36418 36419 if (targetAttr) { 36420 const attrId = String(targetAttr.id); 36421 const optionVal = String(attrValue); 36422 36423 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 36424 36425 if (inputEl) { 36426 inputEl.click(); 36427 inputEl.dispatchEvent(new Event('change', { 36428 bubbles: true 36429 })); 36430 } else { 36431 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 36432 if (selectEl) { 36433 selectEl.value = optionVal; 36434 selectEl.dispatchEvent(new Event('change', { 36435 bubbles: true 36436 })); 36437 } 36438 } 36439 36440 this.changeOption(attrId, optionVal, false); 36441 } 36442 }; 36443 36444 if (data && typeof data === 'object') {
36445 Object.keys(data).forEach(key => applySelection(key, data[key])); 36446 } 36447 36448 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 36449 if (attribute && attribute.code) { 36450 let optionValue = urlQueryParams.get(attribute.code); 36451 if (optionValue) { 36452 let optionId = false; 36453 const attributes = Object.values(this.optionConfig.attributes || {}); 36454 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 36455 36456 let found = false; 36457 Object.values(targetAttr.options).map(option => { 36458 if (found === false && option.label === optionValue) { 36459 optionId = option.id; 36460 found = true; 36461 } 36462 }); 36463 36464 const attrId = String(targetAttr.id); 36465 let optionVal = String(optionValue); 36466 if (found) { 36467 optionVal = String(optionId); 36468 } 36469 36470 applySelection(attribute.code, optionVal); 36471 } 36472 } 36473 }); 36474 }, 100); 36475 }); 36476 } 36477 } 36478 }; 36479 // DWS - Configurable product preselect end 36480 36481 const result = Object.assign( 36482 configurableOptionsComponent, 36483 swatchOptionsComponent, { 36484 productId: '9637', 36485 productIndex: 0, 36486 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 36487 showSwatches: false, 36488 precalcOptions: {}, 36489 originalInit: configurableOptionsComponent.init, 36490 init() { 36491 try { 36492 this.precalcOptions = {}; 36493 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 36494 this.preselectQuerystringItems(); 36495 if (Array.isArray(attrSource)) { 36496 attrSource.forEach(attr => { 36497 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 36498 }); 36499 } else if (attrSource && typeof attrSource === 'object') { 36500 Object.keys(attrSource).forEach(id => { 36501 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 36502 }); 36503 } 36504 } catch (e) { 36505 console.error('Pre-calc error:', e); 36506 } 36507 36508 if (typeof this.originalInit === 'function') { 36509 this.originalInit(); 36510 } 36511 36512 try { 36513 this.initShowSwatchesIntersect(); 36514 } catch (e) { 36515 console.error('intersect error:', e); 36516 } 36517 }, 36518 36519 updateGallery() { 36520 if (!this.productIndex) return; 36521 36522 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 36523 method: 'GET', 36524 headers: { 36525 'Content-Type': 'application/json', 36526 'X-Requested-With': 'XMLHttpRequest' 36527 } 36528 }) 36529 .then(response => response.json()) 36530 .then(data => { 36531 if (data && data.medium) { 36532 window.dispatchEvent(new CustomEvent("update-gallery-9637", { 36533 detail: data.medium 36534 })); 36535 } 36536 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 36537 }, 36538 36539 36540 initShowSwatchesIntersect() { 36541 const observer = new IntersectionObserver(entries => { 36542 if (entries[0].isIntersecting) { 36543 this.showSwatches = true; 36544 observer.disconnect(); 36545 } 36546 }, { 36547 rootMargin: '512px' 36548 }); 36549 observer.observe(this.$el); 36550 }, 36551 getOptions(attrId) { 36552 return this.precalcOptions[attrId] || []; 36553 }, 36554 getOptionsByAttrId() { 36555 return this.getOptions(this.$el.dataset.attributeId); 36556 }, 36557 _getItemId() { 36558 if (this.item && this.item.id) return this.item.id; 36559 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 36560 }, 36561 getSwatchOptionHtmlId() { 36562 const itemId = this._getItemId(); 36563 return itemId ? this.$id(`attribute-option-9637-${itemId}`) : ''; 36564 }, 36565 getSwatchOptionHtmlIdGroup() { 36566 const itemId = this._getItemId(); 36567 return itemId ? [`attribute-option-9637-${itemId}`] : []; 36568 }, 36569 getAttributeSwatchData(attributeId) { 36570 const data = Object.assign({}, this.swatchConfig[attributeId]); 36571 if (data['additional_data']) { 36572 try { 36573 data['details'] = JSON.parse(data['additional_data']); 36574 } catch (e) { 36575 data['details'] = {}; 36576 } 36577 } 36578 return data; 36579 }, 36580 getSwatchType(attributeId, optionId) { 36581 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 36582 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 36583 } 36584 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 36585 this.swatchConfig[attributeId].details.swatch_input_type : 36586 "empty"; 36587 if (type === 'visual') { 36588 const config = this.swatchConfig[attributeId]; 36589 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 36590 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 36591 } 36592 // Fallback to first option type 36593 for (const oId in config) { 36594 if (config[oId] && typeof config[oId].type !== 'undefined') { 36595 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 36596 } 36597 } 36598 } 36599 return type; 36600 }, 36601 mapSwatchTypeNumberToTypeCode(type) { 36602 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 36603 }, 36604 isTextSwatch() { 36605 const itemId = this._getItemId(); 36606 if (!this.$el || !itemId) return false;
36607 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36608 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 36609 }, 36610 36611 getSwatchText() { 36612 const itemId = this._getItemId(); 36613 if (this.item) return this.item.label || ''; 36614 if (!this.$el || !itemId) return ''; 36615 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36616 const options = attrId ? this.getOptions(attrId) : []; 36617 const opt = options.find(o => o.id == itemId); 36618 return opt ? opt.label : ''; 36619 }, 36620 getSwatchBackgroundStyle() { 36621 const itemId = this._getItemId(); 36622 if (!this.$el || !itemId) return ''; 36623 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36624 if (!attrId) return ''; 36625 const type = this.getSwatchType(attrId, itemId); 36626 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 36627 this.swatchConfig[attrId][itemId] : 36628 null; 36629 if (!swatchData) return ''; 36630 if (type === "color") return 'background-color:' + swatchData.value; 36631 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 36632 return ''; 36633 }, 36634 swatchOptionClasses() { 36635 const itemId = this._getItemId(); 36636 if (!this.$el || !itemId) return {}; 36637 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36638 return { 36639 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 36640 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 36641 'w-6 h-6': !this.isTextSwatch() 36642 } 36643 }, 36644 36645 onFocusSwatchItem() { 36646 const itemId = this._getItemId(); 36647 if (itemId) this.focusedLabel = itemId; 36648 }, 36649 onChangeOption() { 36650 const itemId = this._getItemId(); 36651 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 36652 if (attrId && itemId) this.changeOption(attrId, itemId); 36653 }, 36654 changeOption(attributeId, value) { 36655 if (value === '') { 36656 return; 36657 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 36658 } else { 36659 this.selectedValues[attributeId] = value; 36660 } 36661 36662 this.findSimpleIndex(); 36663 this.findAllowedAttributeOptions(); 36664 this.updatePrices(); 36665 this.updateGallery(); 36666 36667 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 36668 this.findProductIdsForPartialSelection(this.selectedValues) : []; 36669 36670 const eventDetail = { 36671 productId: this.productId, 36672 optionId: attributeId, 36673 value: value, 36674 productIndex: this.productIndex || 0, 36675 selectedValues: this.selectedValues, 36676 candidates: candidates, 36677 sourceElement: this.$el 36678 }; 36679 36680 // Dispatch for Amasty 36681 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 36682 detail: eventDetail 36683 })); 36684 36685 // Dispatch for Hyva listing 36686 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 36687 detail: eventDetail 36688 })); 36689 }, 36690 36691 36692 clearOptionIfActive() { 36693 const itemId = this._getItemId(); 36694 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 36695 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 36696 this.changeOption(attrId, ''); 36697 36698 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 36699 if (!input && this.$el?.querySelector) { 36700 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 36701 } 36702 if (!input && this.$el?.closest) { 36703 const root = this.$el.closest('[data-product-id]') || this.$el; 36704 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 36705 } 36706 if (input) { 36707 input.checked = false;
36708 } 36709 } 36710 }, 36711 get optionIsEnabled() { 36712 const itemId = this._getItemId(); 36713 if (!this.$el || !itemId) return true; 36714 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36715 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 36716 return !!allowedOptions.find(opt => opt.id == itemId); 36717 }, 36718 get isSelected() { 36719 const itemId = this._getItemId(); 36720 if (!this.$el || !itemId) return false; 36721 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36722 return attrId ? (this.selectedValues[attrId] == itemId) : false; 36723 }, 36724 get isSwatchRequired() { 36725 if (!this.$el) return false; 36726 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36727 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 36728 }, 36729 focusedLabel: false, 36730 activeTooltipItem: false, 36731 tooltipPositionElement: false,
36732 setActiveTooltipItem() { 36733 const itemId = this._getItemId(); 36734 if (!this.$el || !itemId) return; 36735 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 36736 this.activeTooltipItem = { 36737 attribute: attrId, 36738 item: itemId, 36739 index: 0 36740 }; 36741 this.tooltipPositionElement = this.$event ? this.$event.target : null; 36742 }, 36743 unsetActiveTooltipItem() { 36744 this.activeTooltipItem = false; 36745 } 36746 }, 36747 confProdPreSelect() 36748 ); 36749 36750 if (result.optionConfig && result.optionConfig.attributes) { 36751 const attributes = result.optionConfig.attributes; 36752 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 36753 let source = attributes; 36754 if (Array.isArray(attributes)) { 36755 source = {}; 36756 attributes.forEach(attr => { 36757 if (attr && attr.id) source[attr.id] = attr; 36758 }); 36759 } 36760 const values = Object.values(source); 36761 const wrapper = Object.assign(values, source); 36762 Object.defineProperty(wrapper, '__amxnotifWrapped', { 36763 value: true, 36764 enumerable: false 36765 }); 36766 result.optionConfig.attributes = wrapper; 36767 } 36768 } 36769 36770 return result; 36771 } 36772 36773 window.addEventListener('alpine:init', () => { 36774 Alpine.data('initConfigurableSwatchOptions_9637', initConfigurableSwatchOptions_9637); 36775 }, { 36776 once: true 36777 }); 36778 </script>
36778 36779 36780 <div x-data="initConfigurableSwatchOptions_9637" x-defer="intersect"> 36781 <div class="pagebuilder-home-hidden"> 36782 36783 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 36784 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 36785 <template x-if="showSwatches"> 36786 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9637-163" role="radiogroup" aria-label="Einband"> 36787 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 36788 <div :data-option-id="item.id" style="display: contents"> 36789 <div x-id="getSwatchOptionHtmlIdGroup"> 36790 <template x-if="optionIsEnabled"> 36791 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
36791self="unsetActiveTooltipItem"> 36792 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9637-163"> 36793 <div> 36794 <template x-if="isTextSwatch"> 36795 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 36796 </template> 36797 <template x-if="!optionIsActive(163, item.id)"> 36798 <div> 36799 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 36800 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 36801 </svg> 36802 </div> 36803 </template> 36804 </div> 36805 </label> 36806 </template> 36807</div> </div> 36808 </template> 36809 </div> 36810 </template> 36811 </div> 36812 </div> 36813 </div> 36814 </div> 36815 36816 <div class="meta py-4 pagebuilder-home-hidden"> 36817 <div x-data="initMarketingShortText_9637()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 36818 <!-- Marketing short text --> 36819 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 36820 </div> 36821 36822 <!-- Short description --> 36823 <div class="short-description"> 36824 Moralisch handeln in scheinbar ausweglosen Situationen? Die Auseinandersetzung mit Dilemmata im Unterricht fokussiert die moralische Kompetenzbildung und -förderung, welche in unserer ... <a href="https://meiner.de/fmv_de/philosophieren-mit-dilemmata" class="underline">mehr</a> 36825 </div> 36826 </div> 36827 36828 <!-- Series --> 36829 <div class="mb-1"> 36830 <span class="sr-only">Reihe:</span> 36831 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 36832 <span>Methoden im Philosophie- und Ethikunterricht</span> 36833 </a> 36834 3 </div> 36835 36836 36837 <div class="mb-1"> 36838 <span x-data="initEditionText_9637()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 36839 <!-- Marketing short text --> 36840 <span class="edition-text" x-html="editionText"></span> 2025, 156 Seiten </span> 36841 </div> 36842 36843 </div> 36844 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 36845 36846 <div class="justify-end" x-data="initPriceBox()" @update-prices-9637.window="updatePrice($event.detail);"> 36847 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9637" data-price-box="product-id-9637"><span class="normal-price"> 36848 <span x-data x-id="['product\u002Dprice\u002D9637']" class="price-container price-final_price tax weee"> 36849 <span class="price-label">Ab</span> 36850 <span class="approx-price">ca. </span>
36851 <span :id="$id('product\u002Dprice\u002D9637')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 36852 </span> 36853</span> 36854 36855 36856</div> </div> 36857 36858 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 36859 <div class="open-access-container open-access-container-9637 flex mt-4 ml-auto sm:mt-0 hidden"> 36860 <div class="text-gray-700"> 36861 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 36862 <a href="" target="_blank" class="open-access-external-link m-auto "> 36863 Kostenlos online lesen </a> 36864 </button> 36865 </div> 36866 </div> 36867 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophieren mit Dilemmata" aria-label="In den Warenkorb Philosophieren mit Dilemmata" data-addto="cart"> 36868 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 36869 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 36870</svg> 36871 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 36872 In den Warenkorb </span> 36873 </button> 36874 36875<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9637)" aria-label="Zur Wunschliste hinzufügen Philosophieren mit Dilemmata" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 36876 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 36877 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 36878</svg> 36879</button> 36880 </div> 36881 </div> 36882 </div> 36883
36883<script> 36884 function initMarketingShortText_9637() { 36885 var marketingShortTextConfig = {}; 36886 if (typeof window.initConfigurableSwatchOptions_9637 === "function") { 36887 var fullConfig = window.initConfigurableSwatchOptions_9637().optionConfig 36888 var marketingShortTextConfig = fullConfig.marketing_short_text; 36889 } 36890 return { 36891 marketingShortText: '', 36892 config: marketingShortTextConfig, 36893 productId: '9637', 36894 getMarketingShortText(detail) { 36895 this.marketingShortText = detail.productIndex ? 36896 this.config[detail.productIndex] : 36897 null; 36898 }, 36899 eventListeners: { 36900 ['@listing-configurable-selection-changed.window'](event) { 36901 if (this.productId == event.detail.productId) { 36902 this.getMarketingShortText(event.detail); 36903 } 36904 36905 } 36906 } 36907 } 36908 } 36909 36910 function initEditionText_9637() { 36911 var editionTextConfig = {}; 36912 if (typeof window.initConfigurableSwatchOptions_9637 === "function") { 36913 var fullConfig = window.initConfigurableSwatchOptions_9637().optionConfig 36914 var editionTextConfig = fullConfig.edition; 36915 } 36916 return { 36917 editionText: '', 36918 config: editionTextConfig, 36919 productId: '9637', 36920 getEditionText(detail) { 36921 this.editionText = detail.productIndex ? 36922 this.config[detail.productIndex] : 36923 null; 36924 }, 36925 eventListeners: { 36926 ['@listing-configurable-selection-changed.window'](event) { 36927 if (this.productId == event.detail.productId) { 36928 this.getEditionText(event.detail); 36929 } 36930 36931 } 36932 } 36933 } 36934 } 36935 </script>
36935 36936 </form> 36937 36938 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9636/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16443"> 36939 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9636"> 36940 <a href="https://meiner.de/fmv_de/philosophieren-mit-gedankenexperimenten-16443" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 36941 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9636.window="$el.src = $event.detail" alt="Philosophieren mit Gedankenexperimenten" title="Philosophieren mit Gedankenexperimenten" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787349111_3.jpg" :style="{ 36942 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 36943 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 36944 }"> 36945 </a> 36946 <div class="product-info flex flex-col flex-grow "> 36947 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 36948 <div class="mb-2 text-sm text-gray-500 font-medium"> 36949 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 36950 Jörg Peters </a> 36951 <span>|</span> 36952 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 36953 Martina Peters (Hrsg.) 36954 </a> 36955 </div> 36956 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophieren-mit-gedankenexperimenten-16443"> 36957 Philosophieren mit Gedankenexperimenten </a> 36958 </div> 36959 36960 <div x-data="initEditionText_9636()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 36961 <!-- Marketing short text --> 36962 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 36963 </div> 36964 </div> 36965 36966 <div class="py-1 grid mb-4 "> 36967 36968 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9636,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9636,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7446":"1","39871":"1","39941":"1"},"childProductsAlertStatus":{"7446":"0","39871":"0","39941":"0"},"indexMapping":{"163:9":7446,"163:15":39871,"163:8":39941},"availabilityMessages":{"7446":"Download sofort verf\u00fcgbar","39871":"Lieferbar innerhalb von 3-5 Tagen","39941":"Download sofort verf\u00fcgbar"},"openAccess":{"9636":{"status":0},"7446":{"status":0},"39871":{"status":0},"39941":{"status":0}}},"availabilityMessages":{"7446":"Download sofort verf\u00fcgbar","39871":"Lieferbar innerhalb von 3-5 Tagen","39941":"Download sofort verf\u00fcgbar"},"openAccess":{"9636":{"status":0},"7446":{"status":0},"39871":{"status":0},"39941":{"status":0}}}'> 36969 <template x-if="containerVisible"> 36970 <!-- Popup Trigger --> 36971 <div> 36972 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 36973 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
36974 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 36975 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 36976<title>bell</title></svg> 36977</span> 36978 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 36979 36980 <!-- Popup Modal --> 36981 <template x-if="showModal"> 36982 <template x-teleport=".page-wrapper"> 36983 <div x-cloak class="fixed inset-0 flex items-center justify-center 36984 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 36985 <div class="relative bg-white rounded-lg shadow-xl 36986 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 36987 <div class="p-6"> 36988 <!-- Subscription Form for Popup --> 36989 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 36990 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 36991 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 36992 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 36993 36994 <div class="flex flex-col gap-3"> 36995 <div class="flex-grow grow"> 36996 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 36997 shadow-xs focus:outline-none focus:outline-hidden 36998 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 36999 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 37000 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 37001 </div> 37002 <input type="hidden" name="product_id" :value="currentProductId"> 37003 <input type="hidden" name="type" value="email"> 37004 37005 37006 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 37007 37008 <div class="amxnotif_guest_action"> 37009 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 37010 rounded-md focus:outline-none 37011 focus:outline-hidden focus:ring-2 37012 focus:ring-offset-2 disabled:opacity-50 37013 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 37014 Benachrichtigen </button> 37015 </div> 37016 </div> 37017 37018 <div class="flex items-start pt-2"> 37019 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 37020 text-blue-600 border-gray-300 rounded-sm"> 37021 <label class="amxnotif-stock-gdrp-label cursor-pointer 37022 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 37023 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 37024 </div> 37025 </form> 37026 </div> 37027 37028 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 37029 hover:text-gray-600 transition-colors" aria-label="Schließen"> 37030 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 37031 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 37032<title>x</title></svg> 37033 </button> 37034 </div> 37035 </div> 37036 </template> 37037 </template> 37038 </div> 37039 </template> 37040 </div> 37041 37042<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9636" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9636,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7446":"1","39871":"1","39941":"1"},"childProductsAlertStatus":{"7446":"0","39871":"0","39941":"0"},"indexMapping":"{\u0022163:9\u0022:7446,\u0022163:15\u0022:39871,\u0022163:8\u0022:39941}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9636,"availabilityMessages":{"7446":"Download sofort verf\u00fcgbar","39871":"Lieferbar innerhalb von 3-5 Tagen","39941":"Download sofort verf\u00fcgbar"},"openAccess":{"9636":{"status":0},"7446":{"status":0},"39871":{"status":0},"39941":{"status":0}}}'> 37043 37044 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
37045 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 37046 <span x-html="optionsLabelText"></span> 37047 </p> 37048</div> </div> 37049 37050
37050<script> 37051 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 37052 try { 37053 const attributes = (config && config.attributes) ? config.attributes : null; 37054 if (!attributes) return []; 37055 let attr = null; 37056 if (Array.isArray(attributes)) { 37057 for (let i = 0; i < attributes.length; i++) { 37058 const a = attributes[i]; 37059 if (a && a.id == attrId) { 37060 attr = a; 37061 break; 37062 } 37063 } 37064 } else { 37065 attr = attributes[attrId]; 37066 } 37067 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 37068 } catch (e) { 37069 return []; 37070 } 37071 }; 37072 37073 function initConfigurableSwatchOptions_9636() { 37074 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["39871"]},{"id":"8","label":"PDF","products":["39941"]},{"id":"9","label":"EPUB","products":["7446"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7446":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"39871":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"39941":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"9636","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7446":{"163":"9"},"39871":{"163":"15"},"39941":{"163":"8"}},"salable":{"163":{"9":["7446"],"15":["39871"],"8":["39941"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7446":"003767","39871":"004910","39941":"004911"},"output":{"7446":"EPUB","39871":"Kartoniert","39941":"PDF"},"original_name":{"7446":"","39871":"","39941":""},"openaccess_license_link":{"7446":"","39871":"","39941":""},"openaccess_license_name":{"7446":"","39871":"","39941":""},"openaccess_external_link":{"7446":"","39871":"","39941":""},"gpsr_safety_info":{"7446":"","39871":"","39941":""},"description":{"7446":"Der zweite Band der Reihe behandelt den gezielten Einsatz von Gedankenexperimenten bei bestimmten Fragestellungen und Themenkreisen im Philosophie- und Ethikunterricht. <br\/><br\/>Einer orientierenden Einleitung der Herausgeber folgt der Theorieteil, in dem verschiedene Autorinnen und Autoren zentrale Positionen der deutschsprachigen Philosophiedidaktik zum Gedankenexperiment vorstellen. Der Praxisteil des Bandes behandelt eine Auswahl an ethischen und philosophischen Gedankenexperimenten und deren Durchf\u00fchrung im schulischen Kontext. Abschlie\u00dfend bietet der Band eine umfangreiche Sammlung an weniger bekannten Gedankenexperimenten aus den Themenkreisen Der Mensch und sein Handeln, menschliche Erkenntnis und ihre Grenzen, das Selbstverst\u00e4ndnis des Menschen, Werte und Normen des Handelns, Zusammenleben in Staat und Gesellschaft und Geltungsanspr\u00fcche der Wissenschaften.","39871":"Der zweite Band der Reihe behandelt den gezielten Einsatz von Gedankenexperimenten bei bestimmten Fragestellungen und Themenkreisen im Philosophie- und Ethikunterricht. <br\/><br\/>Einer orientierenden Einleitung der Herausgeber folgt der Theorieteil, in dem verschiedene Autorinnen und Autoren zentrale Positionen der deutschsprachigen Philosophiedidaktik zum Gedankenexperiment vorstellen. Der Praxisteil des Bandes behandelt eine Auswahl an ethischen und philosophischen Gedankenexperimenten und deren Durchf\u00fchrung im schulischen Kontext. Abschlie\u00dfend bietet der Band eine umfangreiche Sammlung an weniger bekannten Gedankenexperimenten aus den Themenkreisen Der Mensch und sein Handeln, menschliche Erkenntnis und ihre Grenzen, das Selbstverst\u00e4ndnis des Menschen, Werte und
37074Normen des Handelns, Zusammenleben in Staat und Gesellschaft und Geltungsanspr\u00fcche der Wissenschaften.","39941":"Der zweite Band der Reihe behandelt den gezielten Einsatz von Gedankenexperimenten bei bestimmten Fragestellungen und Themenkreisen im Philosophie- und Ethikunterricht. <br\/><br\/>Einer orientierenden Einleitung der Herausgeber folgt der Theorieteil, in dem verschiedene Autorinnen und Autoren zentrale Positionen der deutschsprachigen Philosophiedidaktik zum Gedankenexperiment vorstellen. Der Praxisteil des Bandes behandelt eine Auswahl an ethischen und philosophischen Gedankenexperimenten und deren Durchf\u00fchrung im schulischen Kontext. Abschlie\u00dfend bietet der Band eine umfangreiche Sammlung an weniger bekannten Gedankenexperimenten aus den Themenkreisen Der Mensch und sein Handeln, menschliche Erkenntnis und ihre Grenzen, das Selbstverst\u00e4ndnis des Menschen, Werte und Normen des Handelns, Zusammenleben in Staat und Gesellschaft und Geltungsanspr\u00fcche der Wissenschaften."},"doi":{"7446":"","39871":"","39941":"10.28937\/978-3-7873-4911-1"},"isbn":{"7446":"978-3-7873-3767-5","39871":"978-3-7873-4910-4","39941":"978-3-7873-4911-1"},"marketing_short_text":{"7446":"","39871":"","39941":""},"recension_text":{"7446":"<div class=\"reviews\">\r\n<div class=\"review\">Der Band \u203aPhilosophieren mit Gedankenexperimenten\u2039, herausgegeben von Martina und Rolf Peters, enth\u00e4lt eine gute Zusammenstellung von theoretischen und unterrichtspraktischen Texten, die (angehende) Lehrkr\u00e4fte motivieren und unterst\u00fctzen, Gedankenexperimente im Philosophie- und Ethikunterricht produktiv einzusetzen.<\/div>\r\n<div class=\"source\">Marcel Remme, Lehrerbibliothek.de<\/div>\r\n<\/div>","39871":"<div class=\"reviews\">\r\n<div class=\"review\">Der Band \u203aPhilosophieren mit Gedankenexperimenten\u2039, herausgegeben von Martina und Rolf Peters, enth\u00e4lt eine gute Zusammenstellung von theoretischen und unterrichtspraktischen Texten, die (angehende) Lehrkr\u00e4fte motivieren und unterst\u00fctzen, Gedankenexperimente im Philosophie- und Ethikunterricht produktiv einzusetzen.<\/div>\r\n<div class=\"source\">Marcel Remme, Lehrerbibliothek.de<\/div>\r\n<\/div>","39941":"<div class=\"reviews\">\r\n<div class=\"review\">Der Band \u203aPhilosophieren mit Gedankenexperimenten\u2039, herausgegeben von Martina und Rolf Peters, enth\u00e4lt eine gute Zusammenstellung von theoretischen und unterrichtspraktischen Texten, die (angehende) Lehrkr\u00e4fte motivieren und unterst\u00fctzen, Gedankenexperimente im Philosophie- und Ethikunterricht produktiv einzusetzen.<\/div>\r\n<div class=\"source\">Marcel Remme, Lehrerbibliothek.de<\/div>\r\n<\/div>"},"language":{"7446":"","39871":"","39941":""},"cover":{"7446":"","39871":"Kartoniert","39941":""},"pages":{"7446":"128 Seiten","39871":"128 Seiten","39941":"128 Seiten"},"edition":{"7446":"Unver\u00e4ndertes eBook der 1. Auflage von 2020","39871":"2. Auflage","39941":"2. Auflage"},"pod":{"7446":"Nein","39871":"Nein","39941":"Nein"},"copyright_year":{"7446":"","39871":"","39941":""},"vlb_tix_link":{"7446":"","39871":"https:\/\/neu.vlbtix.de\/products\/9783787349104?type=gtin","39941":""},"defaultValues":{"163":"15"}}; 37075 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 37076 37077 if (typeof window.amxnotif_wrap_attributes === 'function') { 37078 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 37079 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 37080 } 37081 37082 const configurableOptionsComponent = initConfigurableOptions( 37083 '9636', 37084 config 37085 ); 37086 const swatchOptionsComponent = initSwatchOptions( 37087 swatchConfig 37088 ); 37089 37090 // DWS - Configurable product preselect start 37091 const confProdPreSelect = () => { 37092 return { 37093 preselectQuerystringItems() { 37094 var data = {"id":"39871","output":"15"}; 37095 const urlQueryParams = new URLSearchParams(window.location.search); 37096 37097 this.$nextTick(() => { 37098 setTimeout(() => { 37099 const rootEl = this.$root || this.$el; 37100 if (!rootEl) return; 37101 37102 const applySelection = (attrCode, attrValue) => { 37103 if (attrValue === undefined || attrValue === null || attrValue === '') return; 37104 37105 const attributes = Object.values(this.optionConfig.attributes || {}); 37106 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 37107 37108 if (targetAttr) { 37109 const attrId = String(targetAttr.id); 37110 const optionVal = String(attrValue); 37111 37112 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 37113 37114 if (inputEl) { 37115 inputEl.click(); 37116 inputEl.dispatchEvent(new Event('change', { 37117 bubbles: true 37118 })); 37119 } else { 37120 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 37121 if (selectEl) { 37122 selectEl.value = optionVal; 37123 selectEl.dispatchEvent(new Event('change', { 37124 bubbles: true 37125 })); 37126 } 37127 } 37128 37129 this.changeOption(attrId, optionVal, false); 37130 } 37131 }; 37132 37133 if (data && typeof data === 'object') {
37134 Object.keys(data).forEach(key => applySelection(key, data[key])); 37135 } 37136 37137 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 37138 if (attribute && attribute.code) { 37139 let optionValue = urlQueryParams.get(attribute.code); 37140 if (optionValue) { 37141 let optionId = false; 37142 const attributes = Object.values(this.optionConfig.attributes || {}); 37143 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 37144 37145 let found = false; 37146 Object.values(targetAttr.options).map(option => { 37147 if (found === false && option.label === optionValue) { 37148 optionId = option.id; 37149 found = true; 37150 } 37151 }); 37152 37153 const attrId = String(targetAttr.id); 37154 let optionVal = String(optionValue); 37155 if (found) { 37156 optionVal = String(optionId); 37157 } 37158 37159 applySelection(attribute.code, optionVal); 37160 } 37161 } 37162 }); 37163 }, 100); 37164 }); 37165 } 37166 } 37167 }; 37168 // DWS - Configurable product preselect end 37169 37170 const result = Object.assign( 37171 configurableOptionsComponent, 37172 swatchOptionsComponent, { 37173 productId: '9636', 37174 productIndex: 0, 37175 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 37176 showSwatches: false, 37177 precalcOptions: {}, 37178 originalInit: configurableOptionsComponent.init, 37179 init() { 37180 try { 37181 this.precalcOptions = {}; 37182 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 37183 this.preselectQuerystringItems(); 37184 if (Array.isArray(attrSource)) { 37185 attrSource.forEach(attr => { 37186 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 37187 }); 37188 } else if (attrSource && typeof attrSource === 'object') { 37189 Object.keys(attrSource).forEach(id => { 37190 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 37191 }); 37192 } 37193 } catch (e) { 37194 console.error('Pre-calc error:', e); 37195 } 37196 37197 if (typeof this.originalInit === 'function') { 37198 this.originalInit(); 37199 } 37200 37201 try { 37202 this.initShowSwatchesIntersect(); 37203 } catch (e) { 37204 console.error('intersect error:', e); 37205 } 37206 }, 37207 37208 updateGallery() { 37209 if (!this.productIndex) return; 37210 37211 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 37212 method: 'GET', 37213 headers: { 37214 'Content-Type': 'application/json', 37215 'X-Requested-With': 'XMLHttpRequest' 37216 } 37217 }) 37218 .then(response => response.json()) 37219 .then(data => { 37220 if (data && data.medium) { 37221 window.dispatchEvent(new CustomEvent("update-gallery-9636", { 37222 detail: data.medium 37223 })); 37224 } 37225 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 37226 }, 37227 37228 37229 initShowSwatchesIntersect() { 37230 const observer = new IntersectionObserver(entries => { 37231 if (entries[0].isIntersecting) { 37232 this.showSwatches = true; 37233 observer.disconnect(); 37234 } 37235 }, { 37236 rootMargin: '512px' 37237 }); 37238 observer.observe(this.$el); 37239 }, 37240 getOptions(attrId) { 37241 return this.precalcOptions[attrId] || []; 37242 }, 37243 getOptionsByAttrId() { 37244 return this.getOptions(this.$el.dataset.attributeId); 37245 }, 37246 _getItemId() { 37247 if (this.item && this.item.id) return this.item.id; 37248 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 37249 }, 37250 getSwatchOptionHtmlId() { 37251 const itemId = this._getItemId(); 37252 return itemId ? this.$id(`attribute-option-9636-${itemId}`) : ''; 37253 }, 37254 getSwatchOptionHtmlIdGroup() { 37255 const itemId = this._getItemId(); 37256 return itemId ? [`attribute-option-9636-${itemId}`] : []; 37257 }, 37258 getAttributeSwatchData(attributeId) { 37259 const data = Object.assign({}, this.swatchConfig[attributeId]); 37260 if (data['additional_data']) { 37261 try { 37262 data['details'] = JSON.parse(data['additional_data']); 37263 } catch (e) { 37264 data['details'] = {}; 37265 } 37266 } 37267 return data; 37268 }, 37269 getSwatchType(attributeId, optionId) { 37270 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 37271 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 37272 } 37273 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 37274 this.swatchConfig[attributeId].details.swatch_input_type : 37275 "empty"; 37276 if (type === 'visual') { 37277 const config = this.swatchConfig[attributeId]; 37278 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 37279 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 37280 } 37281 // Fallback to first option type 37282 for (const oId in config) { 37283 if (config[oId] && typeof config[oId].type !== 'undefined') { 37284 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 37285 } 37286 } 37287 } 37288 return type; 37289 }, 37290 mapSwatchTypeNumberToTypeCode(type) { 37291 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 37292 }, 37293 isTextSwatch() { 37294 const itemId = this._getItemId(); 37295 if (!this.$el || !itemId) return false;
37296 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37297 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 37298 }, 37299 37300 getSwatchText() { 37301 const itemId = this._getItemId(); 37302 if (this.item) return this.item.label || ''; 37303 if (!this.$el || !itemId) return ''; 37304 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37305 const options = attrId ? this.getOptions(attrId) : []; 37306 const opt = options.find(o => o.id == itemId); 37307 return opt ? opt.label : ''; 37308 }, 37309 getSwatchBackgroundStyle() { 37310 const itemId = this._getItemId(); 37311 if (!this.$el || !itemId) return ''; 37312 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37313 if (!attrId) return ''; 37314 const type = this.getSwatchType(attrId, itemId); 37315 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 37316 this.swatchConfig[attrId][itemId] : 37317 null; 37318 if (!swatchData) return ''; 37319 if (type === "color") return 'background-color:' + swatchData.value; 37320 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 37321 return ''; 37322 }, 37323 swatchOptionClasses() { 37324 const itemId = this._getItemId(); 37325 if (!this.$el || !itemId) return {}; 37326 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37327 return { 37328 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 37329 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 37330 'w-6 h-6': !this.isTextSwatch() 37331 } 37332 }, 37333 37334 onFocusSwatchItem() { 37335 const itemId = this._getItemId(); 37336 if (itemId) this.focusedLabel = itemId; 37337 }, 37338 onChangeOption() { 37339 const itemId = this._getItemId(); 37340 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 37341 if (attrId && itemId) this.changeOption(attrId, itemId); 37342 }, 37343 changeOption(attributeId, value) { 37344 if (value === '') { 37345 return; 37346 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 37347 } else { 37348 this.selectedValues[attributeId] = value; 37349 } 37350 37351 this.findSimpleIndex(); 37352 this.findAllowedAttributeOptions(); 37353 this.updatePrices(); 37354 this.updateGallery(); 37355 37356 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 37357 this.findProductIdsForPartialSelection(this.selectedValues) : []; 37358 37359 const eventDetail = { 37360 productId: this.productId, 37361 optionId: attributeId, 37362 value: value, 37363 productIndex: this.productIndex || 0, 37364 selectedValues: this.selectedValues, 37365 candidates: candidates, 37366 sourceElement: this.$el 37367 }; 37368 37369 // Dispatch for Amasty 37370 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 37371 detail: eventDetail 37372 })); 37373 37374 // Dispatch for Hyva listing 37375 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 37376 detail: eventDetail 37377 })); 37378 }, 37379 37380 37381 clearOptionIfActive() { 37382 const itemId = this._getItemId(); 37383 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 37384 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 37385 this.changeOption(attrId, ''); 37386 37387 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 37388 if (!input && this.$el?.querySelector) { 37389 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 37390 } 37391 if (!input && this.$el?.closest) { 37392 const root = this.$el.closest('[data-product-id]') || this.$el; 37393 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 37394 } 37395 if (input) { 37396 input.checked = false;
37397 } 37398 } 37399 }, 37400 get optionIsEnabled() { 37401 const itemId = this._getItemId(); 37402 if (!this.$el || !itemId) return true; 37403 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37404 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 37405 return !!allowedOptions.find(opt => opt.id == itemId); 37406 }, 37407 get isSelected() { 37408 const itemId = this._getItemId(); 37409 if (!this.$el || !itemId) return false; 37410 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37411 return attrId ? (this.selectedValues[attrId] == itemId) : false; 37412 }, 37413 get isSwatchRequired() { 37414 if (!this.$el) return false; 37415 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37416 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 37417 }, 37418 focusedLabel: false, 37419 activeTooltipItem: false, 37420 tooltipPositionElement: false,
37421 setActiveTooltipItem() { 37422 const itemId = this._getItemId(); 37423 if (!this.$el || !itemId) return; 37424 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37425 this.activeTooltipItem = { 37426 attribute: attrId, 37427 item: itemId, 37428 index: 0 37429 }; 37430 this.tooltipPositionElement = this.$event ? this.$event.target : null; 37431 }, 37432 unsetActiveTooltipItem() { 37433 this.activeTooltipItem = false; 37434 } 37435 }, 37436 confProdPreSelect() 37437 ); 37438 37439 if (result.optionConfig && result.optionConfig.attributes) { 37440 const attributes = result.optionConfig.attributes; 37441 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 37442 let source = attributes; 37443 if (Array.isArray(attributes)) { 37444 source = {}; 37445 attributes.forEach(attr => { 37446 if (attr && attr.id) source[attr.id] = attr; 37447 }); 37448 } 37449 const values = Object.values(source); 37450 const wrapper = Object.assign(values, source); 37451 Object.defineProperty(wrapper, '__amxnotifWrapped', { 37452 value: true, 37453 enumerable: false 37454 }); 37455 result.optionConfig.attributes = wrapper; 37456 } 37457 } 37458 37459 return result; 37460 } 37461 37462 window.addEventListener('alpine:init', () => { 37463 Alpine.data('initConfigurableSwatchOptions_9636', initConfigurableSwatchOptions_9636); 37464 }, { 37465 once: true 37466 }); 37467 </script>
37467 37468 37469 <div x-data="initConfigurableSwatchOptions_9636" x-defer="intersect"> 37470 <div class="pagebuilder-home-hidden"> 37471 37472 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 37473 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 37474 <template x-if="showSwatches"> 37475 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9636-163" role="radiogroup" aria-label="Einband"> 37476 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 37477 <div :data-option-id="item.id" style="display: contents"> 37478 <div x-id="getSwatchOptionHtmlIdGroup"> 37479 <template x-if="optionIsEnabled"> 37480 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
37480self="unsetActiveTooltipItem"> 37481 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9636-163"> 37482 <div> 37483 <template x-if="isTextSwatch"> 37484 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 37485 </template> 37486 <template x-if="!optionIsActive(163, item.id)"> 37487 <div> 37488 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 37489 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 37490 </svg> 37491 </div> 37492 </template> 37493 </div> 37494 </label> 37495 </template> 37496</div> </div> 37497 </template> 37498 </div> 37499 </template> 37500 </div> 37501 </div> 37502 </div> 37503 </div> 37504 37505 <div class="meta py-4 pagebuilder-home-hidden"> 37506 <div x-data="initMarketingShortText_9636()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 37507 <!-- Marketing short text --> 37508 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 37509 </div> 37510 37511 <!-- Short description --> 37512 <div class="short-description"> 37513 Der zweite Band der Reihe behandelt den gezielten Einsatz von Gedankenexperimenten bei bestimmten Fragestellungen und Themenkreisen im Philosophie- und Ethikunterricht. 37514 37515Einer orientierenden ... <a href="https://meiner.de/fmv_de/philosophieren-mit-gedankenexperimenten-16443" class="underline">mehr</a> 37516 </div> 37517 </div> 37518 37519 <!-- Series --> 37520 <div class="mb-1"> 37521 <span class="sr-only">Reihe:</span> 37522 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 37523 <span>Methoden im Philosophie- und Ethikunterricht</span> 37524 </a> 37525 2 </div> 37526 37527 37528 <div class="mb-1"> 37529 <span x-data="initEditionText_9636()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 37530 <!-- Marketing short text --> 37531 <span class="edition-text" x-html="editionText"></span> 2024, 128 Seiten </span> 37532 </div> 37533 37534 </div> 37535 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 37536 37537 <div class="justify-end" x-data="initPriceBox()" @update-prices-9636.window="updatePrice($event.detail);"> 37538 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9636" data-price-box="product-id-9636"><span class="normal-price"> 37539 <span x-data x-id="['product\u002Dprice\u002D9636']" class="price-container price-final_price tax weee"> 37540 <span class="price-label">Ab</span> 37541 <span class="approx-price">ca. </span>
37542 <span :id="$id('product\u002Dprice\u002D9636')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 37543 </span> 37544</span> 37545 37546 37547</div> </div> 37548 37549 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 37550 <div class="open-access-container open-access-container-9636 flex mt-4 ml-auto sm:mt-0 hidden"> 37551 <div class="text-gray-700"> 37552 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 37553 <a href="" target="_blank" class="open-access-external-link m-auto "> 37554 Kostenlos online lesen </a> 37555 </button> 37556 </div> 37557 </div> 37558 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophieren mit Gedankenexperimenten" aria-label="In den Warenkorb Philosophieren mit Gedankenexperimenten" data-addto="cart"> 37559 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 37560 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 37561</svg> 37562 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 37563 In den Warenkorb </span> 37564 </button> 37565 37566<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9636)" aria-label="Zur Wunschliste hinzufügen Philosophieren mit Gedankenexperimenten" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 37567 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 37568 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 37569</svg> 37570</button> 37571 </div> 37572 </div> 37573 </div> 37574
37574<script> 37575 function initMarketingShortText_9636() { 37576 var marketingShortTextConfig = {}; 37577 if (typeof window.initConfigurableSwatchOptions_9636 === "function") { 37578 var fullConfig = window.initConfigurableSwatchOptions_9636().optionConfig 37579 var marketingShortTextConfig = fullConfig.marketing_short_text; 37580 } 37581 return { 37582 marketingShortText: '', 37583 config: marketingShortTextConfig, 37584 productId: '9636', 37585 getMarketingShortText(detail) { 37586 this.marketingShortText = detail.productIndex ? 37587 this.config[detail.productIndex] : 37588 null; 37589 }, 37590 eventListeners: { 37591 ['@listing-configurable-selection-changed.window'](event) { 37592 if (this.productId == event.detail.productId) { 37593 this.getMarketingShortText(event.detail); 37594 } 37595 37596 } 37597 } 37598 } 37599 } 37600 37601 function initEditionText_9636() { 37602 var editionTextConfig = {}; 37603 if (typeof window.initConfigurableSwatchOptions_9636 === "function") { 37604 var fullConfig = window.initConfigurableSwatchOptions_9636().optionConfig 37605 var editionTextConfig = fullConfig.edition; 37606 } 37607 return { 37608 editionText: '', 37609 config: editionTextConfig, 37610 productId: '9636', 37611 getEditionText(detail) { 37612 this.editionText = detail.productIndex ? 37613 this.config[detail.productIndex] : 37614 null; 37615 }, 37616 eventListeners: { 37617 ['@listing-configurable-selection-changed.window'](event) { 37618 if (this.productId == event.detail.productId) { 37619 this.getEditionText(event.detail); 37620 } 37621 37622 } 37623 } 37624 } 37625 } 37626 </script>
37626 37627 </form> 37628 37629 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9635/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16442"> 37630 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9635"> 37631 <a href="https://meiner.de/fmv_de/philosophieren-mit-filmen-im-unterricht-16442" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 37632 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9635.window="$el.src = $event.detail" alt="Philosophieren mit Filmen im Unterricht" title="Philosophieren mit Filmen im Unterricht" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787345588_3.jpg" :style="{ 37633 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 37634 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 37635 }"> 37636 </a> 37637 <div class="product-info flex flex-col flex-grow "> 37638 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 37639 <div class="mb-2 text-sm text-gray-500 font-medium"> 37640 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 37641 Jörg Peters </a> 37642 <span>|</span> 37643 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 37644 Martina Peters (Hrsg.) 37645 </a> 37646 </div> 37647 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophieren-mit-filmen-im-unterricht-16442"> 37648 Philosophieren mit Filmen im Unterricht </a> 37649 </div> 37650 37651 <div x-data="initEditionText_9635()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 37652 <!-- Marketing short text --> 37653 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 37654 </div> 37655 </div> 37656 37657 <div class="py-1 grid mb-4 "> 37658 37659 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9635,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9635,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8350":"1","15439":"1","15438":"1"}
37659,"childProductsAlertStatus":{"8350":"0","15439":"0","15438":"0"},"indexMapping":{"163:15":8350,"163:8":15439,"163:9":15438},"availabilityMessages":{"8350":"Lieferbar innerhalb von 3-5 Tagen","15439":"Download sofort verf\u00fcgbar","15438":"Download sofort verf\u00fcgbar"},"openAccess":{"9635":{"status":0},"8350":{"status":0},"15439":{"status":0},"15438":{"status":0}}},"availabilityMessages":{"8350":"Lieferbar innerhalb von 3-5 Tagen","15439":"Download sofort verf\u00fcgbar","15438":"Download sofort verf\u00fcgbar"},"openAccess":{"9635":{"status":0},"8350":{"status":0},"15439":{"status":0},"15438":{"status":0}}}'> 37660 <template x-if="containerVisible"> 37661 <!-- Popup Trigger --> 37662 <div> 37663 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 37664 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 37665 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 37666 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 37667<title>bell</title></svg> 37668</span> 37669 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 37670 37671 <!-- Popup Modal --> 37672 <template x-if="showModal"> 37673 <template x-teleport=".page-wrapper"> 37674 <div x-cloak class="fixed inset-0 flex items-center justify-center 37675 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 37676 <div class="relative bg-white rounded-lg shadow-xl 37677 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 37678 <div class="p-6"> 37679 <!-- Subscription Form for Popup --> 37680 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 37681 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 37682 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 37683 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 37684 37685 <div class="flex flex-col gap-3"> 37686 <div class="flex-grow grow"> 37687 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 37688 shadow-xs focus:outline-none focus:outline-hidden 37689 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 37690 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 37691 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 37692 </div> 37693 <input type="hidden" name="product_id" :value="currentProductId"> 37694 <input type="hidden" name="type" value="email"> 37695 37696 37697 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 37698 37699 <div class="amxnotif_guest_action"> 37700 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 37701 rounded-md focus:outline-none 37702 focus:outline-hidden focu
37702s:ring-2 37703 focus:ring-offset-2 disabled:opacity-50 37704 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 37705 Benachrichtigen </button> 37706 </div> 37707 </div> 37708 37709 <div class="flex items-start pt-2"> 37710 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 37711 text-blue-600 border-gray-300 rounded-sm"> 37712 <label class="amxnotif-stock-gdrp-label cursor-pointer 37713 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 37714 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 37715 </div> 37716 </form> 37717 </div> 37718 37719 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 37720 hover:text-gray-600 transition-colors" aria-label="Schließen"> 37721 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 37722 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 37723<title>x</title></svg> 37724 </button> 37725 </div> 37726 </div> 37727 </template> 37728 </template> 37729 </div> 37730 </template> 37731 </div> 37732 37733<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9635" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9635,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8350":"1","15439":"1","15438":"1"},"childProductsAlertStatus":{"8350":"0","15439":"0","15438":"0"},"indexMapping":"{\u0022163:15\u0022:8350,\u0022163:8\u0022:15439,\u0022163:9\u0022:15438}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9635,"availabilityMessages":{"8350":"Lieferbar innerhalb von 3-5 Tagen","15439":"Download sofort verf\u00fcgbar","15438":"Download sofort verf\u00fcgbar"},"openAccess":{"9635":{"status":0},"8350":{"status":0},"15439":{"status":0},"15438":{"status":0}}}'> 37734 37735 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 37736 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 37737 <span x-html="optionsLabelText"></span> 37738 </p> 37739</div> </div> 37740 37741
37741<script> 37742 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 37743 try { 37744 const attributes = (config && config.attributes) ? config.attributes : null; 37745 if (!attributes) return []; 37746 let attr = null; 37747 if (Array.isArray(attributes)) { 37748 for (let i = 0; i < attributes.length; i++) { 37749 const a = attributes[i]; 37750 if (a && a.id == attrId) { 37751 attr = a; 37752 break; 37753 } 37754 } 37755 } else { 37756 attr = attributes[attrId]; 37757 } 37758 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 37759 } catch (e) { 37760 return []; 37761 } 37762 }; 37763 37764 function initConfigurableSwatchOptions_9635() { 37765 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["8350"]},{"id":"8","label":"PDF","products":["15439"]},{"id":"9","label":"EPUB","products":["15438"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"8350":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15439":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15438":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":15.878503672897},"oldPrice":{"amount":16.99},"basePrice":{"amount":15.878503672897},"finalPrice":{"amount":16.99},"isApproxPrice":null},"productId":"9635","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"8350":{"163":"15"},"15439":{"163":"8"},"15438":{"163":"9"}},"salable":{"163":{"15":["8350"],"8":["15439"],"9":["15438"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"8350":"004556","15439":"004557","15438":"004558"},"output":{"8350":"Kartoniert","15438":"EPUB","15439":"PDF"},"original_name":{"8350":"","15438":"","15439":""},"openaccess_license_link":{"8350":"","15438":"","15439":""},"openaccess_license_name":{"8350":"","15438":"","15439":""},"openaccess_external_link":{"8350":"","15438":"","15439":""},"gpsr_safety_info":{"8350":"","15438":"","15439":""},"description":{"8350":"Der Einsatz von Filmen im Unterricht ist angesichts der gro\u00dfen Popularit\u00e4t des Mediums so aktuell wie noch nie. Ob als Motivator oder Wissensvermittler \u2013 durch die cineastische Auseinandersetzung mit fachspezifischen Fragen k\u00f6nnen komplexe oder abstrakte Theorien intensiver vermittelt werden. Im Fokus des Bandes steht der gezielte Einsatz von Filmen bzw. Kurzfilmen zu relevanten Fragestellungen im Philosophie- und Ethikunterricht. Zahlreiche Beispiele erl\u00e4utern, wie diese problem-, sch\u00fcler- und kompetenzorientiert eingesetzt werden k\u00f6nnen. Eine Einleitung der Herausgeber, eine ausf\u00fchrliche Filmografie sowie eine Auswahlbibliographie bieten Anregungen f\u00fcr eine weiterf\u00fchrende Arbeit mit Filmen im Unterricht.","15438":"Der Einsatz von Filmen im Unterricht ist angesichts der gro\u00dfen Popularit\u00e4t des Mediums so aktuell wie noch nie. Ob als Motivator oder Wissensvermittler \u2013 durch die cineastische Auseinandersetzung mit fachspezifischen Fragen k\u00f6nnen komplexe oder abstrakte Theorien intensiver vermittelt werden. Im Fokus des Bandes steht der gezielte Einsatz von Filmen bzw. Kurzfilmen zu relevanten Fragestellungen im Philosophie- und Ethikunterricht. Zahlreiche Beispiele erl\u00e4utern, wie diese problem-, sch\u00fcler- und kompetenzorientiert eingesetzt werden k\u00f6nnen. Eine Einleitung der Herausgeber, eine ausf\u00fchrliche Filmografie sowie eine Auswahlbibliographie bieten Anregungen f\u00fcr eine weiterf\u00fchrende Arbeit mit Filmen im Unterricht.","15439":"Der Einsatz von Filmen im Unterricht ist angesichts der gro\u00dfen Popularit\u00e4t des Mediums so aktuell wie noch nie. Ob als Motivator oder Wissensvermittler \u2013 durch die cineastische Auseinandersetzung mit fachspezifischen Fragen k\u00f6nnen komplexe oder abstrakte Theorien intensiver vermittelt werden. Im Fokus des Bandes steht der gezielte Einsatz von Filmen bzw. Kurzfilmen zu relevanten Fragestellungen im Philosophie- und Ethikunterricht. Zahlreiche Beispiele erl\u00e4utern, wie diese problem-, sch\u00fcler- und kompetenzorientiert eingesetzt werden k\u00f6nnen. Eine Einleitung der Herausgeber, eine ausf\u00fchrliche Filmografie sowie eine Auswahlbibliographie bieten Anregungen f\u00fcr eine weiterf\u00fchrende Arbeit mit Filmen im Unterricht."},"doi":{"8350":"","15438":"","15439":"10.28937\/978-3-7873-4557-1"},"isbn":{"8350":"978-3-7873-4556-4","15438":"978-3-7873-4558-8","15439":"978-3-7873-4557-1"},"marketing_short_text":{"8350":"","15438":"","15439":""},"recension_text":{"8350":"<div class=\"reviews\">\r\n<div class=\"review\">Die Texte vermitteln den philosophischen Kern des jeweiligen Films und geben die p\u00e4dagogische Richtung vor. Ein sehr inspirierendes Buch.<\/div>\r\n<div class=\"source\">
37765Hans Helmut Prinzler, http:\/\/www.hhprinzler.de, 06.02.2020<\/div>\r\n<\/div>","15438":"<div class=\"reviews\">\r\n<div class=\"review\">Die Texte vermitteln den philosophischen Kern des jeweiligen Films und geben die p\u00e4dagogische Richtung vor. Ein sehr inspirierendes Buch.<\/div>\r\n<div class=\"source\">Hans Helmut Prinzler, http:\/\/www.hhprinzler.de, 06.02.2020<\/div>\r\n<\/div>","15439":"<div class=\"reviews\">\r\n<div class=\"review\">Die Texte vermitteln den philosophischen Kern des jeweiligen Films und geben die p\u00e4dagogische Richtung vor. Ein sehr inspirierendes Buch.<\/div>\r\n<div class=\"source\">Hans Helmut Prinzler, http:\/\/www.hhprinzler.de, 06.02.2020<\/div>\r\n<\/div>"},"language":{"8350":"","15438":"","15439":""},"cover":{"8350":"Kartoniert","15438":"","15439":""},"pages":{"8350":"318","15438":"320","15439":"320"},"edition":{"8350":"2., \u00fcberarbeitete Auflage","15438":"2. Auflage","15439":"2. Auflage"},"pod":{"8350":"Nein","15438":"Nein","15439":"Nein"},"copyright_year":{"8350":"","15438":"","15439":""},"vlb_tix_link":{"8350":"https:\/\/neu.vlbtix.de\/products\/9783787345564?type=gtin","15438":"","15439":""},"defaultValues":{"163":"15"}}; 37766 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 37767 37768 if (typeof window.amxnotif_wrap_attributes === 'function') { 37769 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 37770 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 37771 } 37772 37773 const configurableOptionsComponent = initConfigurableOptions( 37774 '9635', 37775 config 37776 ); 37777 const swatchOptionsComponent = initSwatchOptions( 37778 swatchConfig 37779 ); 37780 37781 // DWS - Configurable product preselect start 37782 const confProdPreSelect = () => { 37783 return { 37784 preselectQuerystringItems() { 37785 var data = {"id":"8350","output":"15"}; 37786 const urlQueryParams = new URLSearchParams(window.location.search); 37787 37788 this.$nextTick(() => { 37789 setTimeout(() => { 37790 const rootEl = this.$root || this.$el; 37791 if (!rootEl) return; 37792 37793 const applySelection = (attrCode, attrValue) => { 37794 if (attrValue === undefined || attrValue === null || attrValue === '') return; 37795 37796 const attributes = Object.values(this.optionConfig.attributes || {}); 37797 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 37798 37799 if (targetAttr) { 37800 const attrId = String(targetAttr.id); 37801 const optionVal = String(attrValue); 37802 37803 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 37804 37805 if (inputEl) { 37806 inputEl.click(); 37807 inputEl.dispatchEvent(new Event('change', { 37808 bubbles: true 37809 })); 37810 } else { 37811 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 37812 if (selectEl) { 37813 selectEl.value = optionVal; 37814 selectEl.dispatchEvent(new Event('change', { 37815 bubbles: true 37816 })); 37817 } 37818 } 37819 37820 this.changeOption(attrId, optionVal, false); 37821 } 37822 }; 37823 37824 if (data && typeof data === 'object') {
37825 Object.keys(data).forEach(key => applySelection(key, data[key])); 37826 } 37827 37828 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 37829 if (attribute && attribute.code) { 37830 let optionValue = urlQueryParams.get(attribute.code); 37831 if (optionValue) { 37832 let optionId = false; 37833 const attributes = Object.values(this.optionConfig.attributes || {}); 37834 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 37835 37836 let found = false; 37837 Object.values(targetAttr.options).map(option => { 37838 if (found === false && option.label === optionValue) { 37839 optionId = option.id; 37840 found = true; 37841 } 37842 }); 37843 37844 const attrId = String(targetAttr.id); 37845 let optionVal = String(optionValue); 37846 if (found) { 37847 optionVal = String(optionId); 37848 } 37849 37850 applySelection(attribute.code, optionVal); 37851 } 37852 } 37853 }); 37854 }, 100); 37855 }); 37856 } 37857 } 37858 }; 37859 // DWS - Configurable product preselect end 37860 37861 const result = Object.assign( 37862 configurableOptionsComponent, 37863 swatchOptionsComponent, { 37864 productId: '9635', 37865 productIndex: 0, 37866 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 37867 showSwatches: false, 37868 precalcOptions: {}, 37869 originalInit: configurableOptionsComponent.init, 37870 init() { 37871 try { 37872 this.precalcOptions = {}; 37873 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 37874 this.preselectQuerystringItems(); 37875 if (Array.isArray(attrSource)) { 37876 attrSource.forEach(attr => { 37877 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 37878 }); 37879 } else if (attrSource && typeof attrSource === 'object') { 37880 Object.keys(attrSource).forEach(id => { 37881 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 37882 }); 37883 } 37884 } catch (e) { 37885 console.error('Pre-calc error:', e); 37886 } 37887 37888 if (typeof this.originalInit === 'function') { 37889 this.originalInit(); 37890 } 37891 37892 try { 37893 this.initShowSwatchesIntersect(); 37894 } catch (e) { 37895 console.error('intersect error:', e); 37896 } 37897 }, 37898 37899 updateGallery() { 37900 if (!this.productIndex) return; 37901 37902 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 37903 method: 'GET', 37904 headers: { 37905 'Content-Type': 'application/json', 37906 'X-Requested-With': 'XMLHttpRequest' 37907 } 37908 }) 37909 .then(response => response.json()) 37910 .then(data => { 37911 if (data && data.medium) { 37912 window.dispatchEvent(new CustomEvent("update-gallery-9635", { 37913 detail: data.medium 37914 })); 37915 } 37916 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 37917 }, 37918 37919 37920 initShowSwatchesIntersect() { 37921 const observer = new IntersectionObserver(entries => { 37922 if (entries[0].isIntersecting) { 37923 this.showSwatches = true; 37924 observer.disconnect(); 37925 } 37926 }, { 37927 rootMargin: '512px' 37928 }); 37929 observer.observe(this.$el); 37930 }, 37931 getOptions(attrId) { 37932 return this.precalcOptions[attrId] || []; 37933 }, 37934 getOptionsByAttrId() { 37935 return this.getOptions(this.$el.dataset.attributeId); 37936 }, 37937 _getItemId() { 37938 if (this.item && this.item.id) return this.item.id; 37939 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 37940 }, 37941 getSwatchOptionHtmlId() { 37942 const itemId = this._getItemId(); 37943 return itemId ? this.$id(`attribute-option-9635-${itemId}`) : ''; 37944 }, 37945 getSwatchOptionHtmlIdGroup() { 37946 const itemId = this._getItemId(); 37947 return itemId ? [`attribute-option-9635-${itemId}`] : []; 37948 }, 37949 getAttributeSwatchData(attributeId) { 37950 const data = Object.assign({}, this.swatchConfig[attributeId]); 37951 if (data['additional_data']) { 37952 try { 37953 data['details'] = JSON.parse(data['additional_data']); 37954 } catch (e) { 37955 data['details'] = {}; 37956 } 37957 } 37958 return data; 37959 }, 37960 getSwatchType(attributeId, optionId) { 37961 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 37962 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 37963 } 37964 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 37965 this.swatchConfig[attributeId].details.swatch_input_type : 37966 "empty"; 37967 if (type === 'visual') { 37968 const config = this.swatchConfig[attributeId]; 37969 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 37970 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 37971 } 37972 // Fallback to first option type 37973 for (const oId in config) { 37974 if (config[oId] && typeof config[oId].type !== 'undefined') { 37975 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 37976 } 37977 } 37978 } 37979 return type; 37980 }, 37981 mapSwatchTypeNumberToTypeCode(type) { 37982 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 37983 }, 37984 isTextSwatch() { 37985 const itemId = this._getItemId(); 37986 if (!this.$el || !itemId) return false;
37987 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37988 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 37989 }, 37990 37991 getSwatchText() { 37992 const itemId = this._getItemId(); 37993 if (this.item) return this.item.label || ''; 37994 if (!this.$el || !itemId) return ''; 37995 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 37996 const options = attrId ? this.getOptions(attrId) : []; 37997 const opt = options.find(o => o.id == itemId); 37998 return opt ? opt.label : ''; 37999 }, 38000 getSwatchBackgroundStyle() { 38001 const itemId = this._getItemId(); 38002 if (!this.$el || !itemId) return ''; 38003 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38004 if (!attrId) return ''; 38005 const type = this.getSwatchType(attrId, itemId); 38006 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 38007 this.swatchConfig[attrId][itemId] : 38008 null; 38009 if (!swatchData) return ''; 38010 if (type === "color") return 'background-color:' + swatchData.value; 38011 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 38012 return ''; 38013 }, 38014 swatchOptionClasses() { 38015 const itemId = this._getItemId(); 38016 if (!this.$el || !itemId) return {}; 38017 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38018 return { 38019 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 38020 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 38021 'w-6 h-6': !this.isTextSwatch() 38022 } 38023 }, 38024 38025 onFocusSwatchItem() { 38026 const itemId = this._getItemId(); 38027 if (itemId) this.focusedLabel = itemId; 38028 }, 38029 onChangeOption() { 38030 const itemId = this._getItemId(); 38031 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 38032 if (attrId && itemId) this.changeOption(attrId, itemId); 38033 }, 38034 changeOption(attributeId, value) { 38035 if (value === '') { 38036 return; 38037 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 38038 } else { 38039 this.selectedValues[attributeId] = value; 38040 } 38041 38042 this.findSimpleIndex(); 38043 this.findAllowedAttributeOptions(); 38044 this.updatePrices(); 38045 this.updateGallery(); 38046 38047 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 38048 this.findProductIdsForPartialSelection(this.selectedValues) : []; 38049 38050 const eventDetail = { 38051 productId: this.productId, 38052 optionId: attributeId, 38053 value: value, 38054 productIndex: this.productIndex || 0, 38055 selectedValues: this.selectedValues, 38056 candidates: candidates, 38057 sourceElement: this.$el 38058 }; 38059 38060 // Dispatch for Amasty 38061 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 38062 detail: eventDetail 38063 })); 38064 38065 // Dispatch for Hyva listing 38066 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 38067 detail: eventDetail 38068 })); 38069 }, 38070 38071 38072 clearOptionIfActive() { 38073 const itemId = this._getItemId(); 38074 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 38075 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 38076 this.changeOption(attrId, ''); 38077 38078 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 38079 if (!input && this.$el?.querySelector) { 38080 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 38081 } 38082 if (!input && this.$el?.closest) { 38083 const root = this.$el.closest('[data-product-id]') || this.$el; 38084 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 38085 } 38086 if (input) { 38087 input.checked = false;
38088 } 38089 } 38090 }, 38091 get optionIsEnabled() { 38092 const itemId = this._getItemId(); 38093 if (!this.$el || !itemId) return true; 38094 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38095 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 38096 return !!allowedOptions.find(opt => opt.id == itemId); 38097 }, 38098 get isSelected() { 38099 const itemId = this._getItemId(); 38100 if (!this.$el || !itemId) return false; 38101 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38102 return attrId ? (this.selectedValues[attrId] == itemId) : false; 38103 }, 38104 get isSwatchRequired() { 38105 if (!this.$el) return false; 38106 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38107 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 38108 }, 38109 focusedLabel: false, 38110 activeTooltipItem: false, 38111 tooltipPositionElement: false,
38112 setActiveTooltipItem() { 38113 const itemId = this._getItemId(); 38114 if (!this.$el || !itemId) return; 38115 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38116 this.activeTooltipItem = { 38117 attribute: attrId, 38118 item: itemId, 38119 index: 0 38120 }; 38121 this.tooltipPositionElement = this.$event ? this.$event.target : null; 38122 }, 38123 unsetActiveTooltipItem() { 38124 this.activeTooltipItem = false; 38125 } 38126 }, 38127 confProdPreSelect() 38128 ); 38129 38130 if (result.optionConfig && result.optionConfig.attributes) { 38131 const attributes = result.optionConfig.attributes; 38132 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 38133 let source = attributes; 38134 if (Array.isArray(attributes)) { 38135 source = {}; 38136 attributes.forEach(attr => { 38137 if (attr && attr.id) source[attr.id] = attr; 38138 }); 38139 } 38140 const values = Object.values(source); 38141 const wrapper = Object.assign(values, source); 38142 Object.defineProperty(wrapper, '__amxnotifWrapped', { 38143 value: true, 38144 enumerable: false 38145 }); 38146 result.optionConfig.attributes = wrapper; 38147 } 38148 } 38149 38150 return result; 38151 } 38152 38153 window.addEventListener('alpine:init', () => { 38154 Alpine.data('initConfigurableSwatchOptions_9635', initConfigurableSwatchOptions_9635); 38155 }, { 38156 once: true 38157 }); 38158 </script>
38158 38159 38160 <div x-data="initConfigurableSwatchOptions_9635" x-defer="intersect"> 38161 <div class="pagebuilder-home-hidden"> 38162 38163 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 38164 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 38165 <template x-if="showSwatches"> 38166 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9635-163" role="radiogroup" aria-label="Einband"> 38167 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 38168 <div :data-option-id="item.id" style="display: contents"> 38169 <div x-id="getSwatchOptionHtmlIdGroup"> 38170 <template x-if="optionIsEnabled"> 38171 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
38171self="unsetActiveTooltipItem"> 38172 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9635-163"> 38173 <div> 38174 <template x-if="isTextSwatch"> 38175 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 38176 </template> 38177 <template x-if="!optionIsActive(163, item.id)"> 38178 <div> 38179 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 38180 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 38181 </svg> 38182 </div> 38183 </template> 38184 </div> 38185 </label> 38186 </template> 38187</div> </div> 38188 </template> 38189 </div> 38190 </template> 38191 </div> 38192 </div> 38193 </div> 38194 </div> 38195 38196 <div class="meta py-4 pagebuilder-home-hidden"> 38197 <div x-data="initMarketingShortText_9635()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 38198 <!-- Marketing short text --> 38199 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 38200 </div> 38201 38202 <!-- Short description --> 38203 <div class="short-description"> 38204 Der Einsatz von Filmen im Unterricht ist angesichts der großen Popularität des Mediums so aktuell wie noch nie. Ob als Motivator oder Wissensvermittler – durch die cineastische Auseinandersetzung ... <a href="https://meiner.de/fmv_de/philosophieren-mit-filmen-im-unterricht-16442" class="underline">mehr</a> 38205 </div> 38206 </div> 38207 38208 <!-- Series --> 38209 <div class="mb-1"> 38210 <span class="sr-only">Reihe:</span> 38211 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 38212 <span>Methoden im Philosophie- und Ethikunterricht</span> 38213 </a> 38214 1 </div> 38215 38216 38217 <div class="mb-1"> 38218 <span x-data="initEditionText_9635()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 38219 <!-- Marketing short text --> 38220 <span class="edition-text" x-html="editionText"></span> 2024, 318 </span> 38221 </div> 38222 38223 </div> 38224 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 38225 38226 <div class="justify-end" x-data="initPriceBox()" @update-prices-9635.window="updatePrice($event.detail);"> 38227 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9635" data-price-box="product-id-9635"><span class="normal-price"> 38228 <span x-data x-id="['product\u002Dprice\u002D9635']" class="price-container price-final_price tax weee"> 38229 <span class="price-label">Ab</span> 38230 <span class="approx-price">ca. </span>
38231 <span :id="$id('product\u002Dprice\u002D9635')" data-price-amount="16.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">16,99 €</span></span> 38232 </span> 38233</span> 38234 38235 38236</div> </div> 38237 38238 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 38239 <div class="open-access-container open-access-container-9635 flex mt-4 ml-auto sm:mt-0 hidden"> 38240 <div class="text-gray-700"> 38241 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 38242 <a href="" target="_blank" class="open-access-external-link m-auto "> 38243 Kostenlos online lesen </a> 38244 </button> 38245 </div> 38246 </div> 38247 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophieren mit Filmen im Unterricht" aria-label="In den Warenkorb Philosophieren mit Filmen im Unterricht" data-addto="cart"> 38248 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 38249 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 38250</svg> 38251 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 38252 In den Warenkorb </span> 38253 </button> 38254 38255<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9635)" aria-label="Zur Wunschliste hinzufügen Philosophieren mit Filmen im Unterricht" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 38256 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 38257 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 38258</svg> 38259</button> 38260 </div> 38261 </div> 38262 </div> 38263
38263<script> 38264 function initMarketingShortText_9635() { 38265 var marketingShortTextConfig = {}; 38266 if (typeof window.initConfigurableSwatchOptions_9635 === "function") { 38267 var fullConfig = window.initConfigurableSwatchOptions_9635().optionConfig 38268 var marketingShortTextConfig = fullConfig.marketing_short_text; 38269 } 38270 return { 38271 marketingShortText: '', 38272 config: marketingShortTextConfig, 38273 productId: '9635', 38274 getMarketingShortText(detail) { 38275 this.marketingShortText = detail.productIndex ? 38276 this.config[detail.productIndex] : 38277 null; 38278 }, 38279 eventListeners: { 38280 ['@listing-configurable-selection-changed.window'](event) { 38281 if (this.productId == event.detail.productId) { 38282 this.getMarketingShortText(event.detail); 38283 } 38284 38285 } 38286 } 38287 } 38288 } 38289 38290 function initEditionText_9635() { 38291 var editionTextConfig = {}; 38292 if (typeof window.initConfigurableSwatchOptions_9635 === "function") { 38293 var fullConfig = window.initConfigurableSwatchOptions_9635().optionConfig 38294 var editionTextConfig = fullConfig.edition; 38295 } 38296 return { 38297 editionText: '', 38298 config: editionTextConfig, 38299 productId: '9635', 38300 getEditionText(detail) { 38301 this.editionText = detail.productIndex ? 38302 this.config[detail.productIndex] : 38303 null; 38304 }, 38305 eventListeners: { 38306 ['@listing-configurable-selection-changed.window'](event) { 38307 if (this.productId == event.detail.productId) { 38308 this.getEditionText(event.detail); 38309 } 38310 38311 } 38312 } 38313 } 38314 } 38315 </script>
38315 38316 </form> 38317 38318 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9375/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk15888"> 38319 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="9375"> 38320 <a href="https://meiner.de/fmv_de/rollenspiel-theatrales-philosophieren-musik-und-videoclips-im-philosophie-und-ethikunterricht-15888" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 38321 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9375.window="$el.src = $event.detail" alt="Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" title="Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787336661_6.jpg" :style="{ 38322 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 38323 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 38324 }"> 38325 </a> 38326 <div class="product-info flex flex-col flex-grow "> 38327 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 38328 <div class="mb-2 text-sm text-gray-500 font-medium"> 38329 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 38330 Jörg Peters </a> 38331 <span>|</span> 38332 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 38333 Martina Peters (Hrsg.) 38334 </a> 38335 </div> 38336 <a class="product-item-link" href="https://meiner.de/fmv_de/rollenspiel-theatrales-philosophieren-musik-und-videoclips-im-philosophie-und-ethikunterricht-15888"> 38337 Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht </a> 38338 </div> 38339 38340 <div x-data="initEditionText_9375()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 38341 <!-- Marketing short text --> 38342 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 38343 </div> 38344 </div> 38345 38346 <div class="py-1 grid mb-4 "> 38347 38348 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9375,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9375,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7618":"1","7619":"1","40009":"1"},"childProductsAlertStatus":{"7618":"0","7619":"0","40009":"0"},"indexMapping":{"163:15":7618,"163:8":7619,"163:9":40009},"availabilityMessages":{"7618":"Lieferbar innerhalb von 3-5 Tagen","7619":"Download sofort verf\u00fcgbar","40009":"Download sofort verf\u00fcgbar"},"openAccess":{"9375":{"status":0}
38348,"7618":{"status":0},"7619":{"status":0},"40009":{"status":0}}},"availabilityMessages":{"7618":"Lieferbar innerhalb von 3-5 Tagen","7619":"Download sofort verf\u00fcgbar","40009":"Download sofort verf\u00fcgbar"},"openAccess":{"9375":{"status":0},"7618":{"status":0},"7619":{"status":0},"40009":{"status":0}}}'> 38349 <template x-if="containerVisible"> 38350 <!-- Popup Trigger --> 38351 <div> 38352 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 38353 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 38354 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 38355 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 38356<title>bell</title></svg> 38357</span> 38358 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 38359 38360 <!-- Popup Modal --> 38361 <template x-if="showModal"> 38362 <template x-teleport=".page-wrapper"> 38363 <div x-cloak class="fixed inset-0 flex items-center justify-center 38364 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 38365 <div class="relative bg-white rounded-lg shadow-xl 38366 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 38367 <div class="p-6"> 38368 <!-- Subscription Form for Popup --> 38369 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 38370 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 38371 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 38372 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 38373 38374 <div class="flex flex-col gap-3"> 38375 <div class="flex-grow grow"> 38376 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 38377 shadow-xs focus:outline-none focus:outline-hidden 38378 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 38379 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 38380 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 38381 </div> 38382 <input type="hidden" name="product_id" :value="currentProductId"> 38383 <input type="hidden" name="type" value="email"> 38384 38385 38386 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 38387 38388 <div class="amxnotif_guest_action"> 38389 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 38390 rounded-md focus:outline-none 38391 focus:outline-hidden focu
38391s:ring-2 38392 focus:ring-offset-2 disabled:opacity-50 38393 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 38394 Benachrichtigen </button> 38395 </div> 38396 </div> 38397 38398 <div class="flex items-start pt-2"> 38399 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 38400 text-blue-600 border-gray-300 rounded-sm"> 38401 <label class="amxnotif-stock-gdrp-label cursor-pointer 38402 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 38403 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 38404 </div> 38405 </form> 38406 </div> 38407 38408 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 38409 hover:text-gray-600 transition-colors" aria-label="Schließen"> 38410 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 38411 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 38412<title>x</title></svg> 38413 </button> 38414 </div> 38415 </div> 38416 </template> 38417 </template> 38418 </div> 38419 </template> 38420 </div> 38421 38422<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9375" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9375,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7618":"1","7619":"1","40009":"1"},"childProductsAlertStatus":{"7618":"0","7619":"0","40009":"0"},"indexMapping":"{\u0022163:15\u0022:7618,\u0022163:8\u0022:7619,\u0022163:9\u0022:40009}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9375,"availabilityMessages":{"7618":"Lieferbar innerhalb von 3-5 Tagen","7619":"Download sofort verf\u00fcgbar","40009":"Download sofort verf\u00fcgbar"},"openAccess":{"9375":{"status":0},"7618":{"status":0},"7619":{"status":0},"40009":{"status":0}}}'> 38423 38424 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 38425 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 38426 <span x-html="optionsLabelText"></span> 38427 </p> 38428</div> </div> 38429 38430
38430<script> 38431 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 38432 try { 38433 const attributes = (config && config.attributes) ? config.attributes : null; 38434 if (!attributes) return []; 38435 let attr = null; 38436 if (Array.isArray(attributes)) { 38437 for (let i = 0; i < attributes.length; i++) { 38438 const a = attributes[i]; 38439 if (a && a.id == attrId) { 38440 attr = a; 38441 break; 38442 } 38443 } 38444 } else { 38445 attr = attributes[attrId]; 38446 } 38447 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 38448 } catch (e) { 38449 return []; 38450 } 38451 }; 38452 38453 function initConfigurableSwatchOptions_9375() { 38454 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7618"]},{"id":"8","label":"PDF","products":["7619"]},{"id":"9","label":"EPUB","products":["40009"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7618":{"baseOldPrice":{"amount":25.140185915888},"oldPrice":{"amount":26.9},"basePrice":{"amount":25.140185915888},"finalPrice":{"amount":26.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7619":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"40009":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"9375","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7618":{"163":"15"},"7619":{"163":"8"},"40009":{"163":"9"}},"salable":{"163":{"15":["7618"],"8":["7619"],"9":["40009"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7618":"003658","7619":"003666","40009":"004978"},"output":{"7618":"Kartoniert","7619":"PDF","40009":"EPUB"},"original_name":{"7618":"","7619":"","40009":""},"openaccess_license_link":{"7618":"","7619":"","40009":""},"openaccess_license_name":{"7618":"","7619":"","40009":""},"openaccess_external_link":{"7618":"","7619":"","40009":""},"gpsr_safety_info":{"7618":"","7619":"","40009":""},"description":{"7618":"Pr\u00e4sentative Darstellungsformen und pr\u00e4sentative Medien erfreuen sich immer gr\u00f6\u00dferer Beliebtheit im Philosophie- und Ethikunterricht. Der Band gibt deshalb Anregungen, wie Sch\u00fclerinnen und Sch\u00fcler mit Hilfe von Rollenspielen, theatralem Philosophieren, Videoclips und Musik an philosophische Theorien, Fragestellungen oder Probleme herangef\u00fchrt werden k\u00f6nnen.<br\/><br\/>W\u00e4hrend es in den pr\u00e4sentativen Darstellungsformen darum geht, Philosophisches darstellend umzusetzen, k\u00f6nnen in pr\u00e4sentativen Medien philosophische Fragen veranschaulicht werden. Der vorliegende Band bietet zum einen das theoretische Fundament f\u00fcr die Arbeit mit pr\u00e4sentativen Formaten im Philosophie- und Ethikunterricht und stellt zum anderen zahlreiche praxistaugliche Handreichungen f\u00fcr die Unterrichtsgestaltung vor. Die Herausgeber erl\u00e4utern einleitend, inwiefern die gew\u00e4hlte Zusammenstellung von vier unterschiedlichen Methoden bzw. Medien sinnvoll ist, bevor sich separate Kapitel zu Rollenspiel, theatralem Philosophieren, Video-Clips und Musik anschlie\u00dfen, die alle jeweils Theorie- und Praxisbeitr\u00e4ge enthalten. Die ausgew\u00e4hlten Beispiele und die entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Eine umfangreiche Auswahlbibliographie l\u00e4dt zur Weiterarbeit ein und schlie\u00dft das Kompendium ab.","7619":"Pr\u00e4sentative Darstellungsformen und pr\u00e4sentative Medien erfreuen sich immer gr\u00f6\u00dferer Beliebtheit im Philosophie- und Ethikunterricht. Der Band gibt deshalb Anregungen, wie Sch\u00fclerinnen und Sch\u00fcler mit Hilfe von Rollenspielen, theatralem Philosophieren, Videoclips und Musik an philosophische Theorien, Fragestellungen oder Probleme herangef\u00fchrt werden k\u00f6nnen.<br\/><br\/>W\u00e4hrend es in den pr\u00e4sentativen Darstellungsformen darum geht, Philosophisches darstellend umzusetzen, k\u00f6nnen in pr\u00e4sentativen Medien philosophische Fragen veranschaulicht werden. Der vorliegende Band bietet zum einen das theoretische Fundament f\u00fcr die Arbeit mit pr\u00e4sentativen Formaten im Philosophie- und Ethikunterricht und stellt zum anderen zahlreiche praxistaugliche Handreichungen f\u00fcr die Unterrichtsgestaltung vor. Die Herausgeber erl\u00e4utern einleitend, inwiefern die gew\u00e4hlte Zusammenstellung von vier unterschiedlichen Methoden bzw. Medie
38454n sinnvoll ist, bevor sich separate Kapitel zu Rollenspiel, theatralem Philosophieren, Video-Clips und Musik anschlie\u00dfen, die alle jeweils Theorie- und Praxisbeitr\u00e4ge enthalten. Die ausgew\u00e4hlten Beispiele und die entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Eine umfangreiche Auswahlbibliographie l\u00e4dt zur Weiterarbeit ein und schlie\u00dft das Kompendium ab.","40009":"Pr\u00e4sentative Darstellungsformen und pr\u00e4sentative Medien erfreuen sich immer gr\u00f6\u00dferer Beliebtheit im Philosophie- und Ethikunterricht. Der Band gibt deshalb Anregungen, wie Sch\u00fclerinnen und Sch\u00fcler mit Hilfe von Rollenspielen, theatralem Philosophieren, Videoclips und Musik an philosophische Theorien, Fragestellungen oder Probleme herangef\u00fchrt werden k\u00f6nnen.<br\/><br\/>W\u00e4hrend es in den pr\u00e4sentativen Darstellungsformen darum geht, Philosophisches darstellend umzusetzen, k\u00f6nnen in pr\u00e4sentativen Medien philosophische Fragen veranschaulicht werden. Der vorliegende Band bietet zum einen das theoretische Fundament f\u00fcr die Arbeit mit pr\u00e4sentativen Formaten im Philosophie- und Ethikunterricht und stellt zum anderen zahlreiche praxistaugliche Handreichungen f\u00fcr die Unterrichtsgestaltung vor. Die Herausgeber erl\u00e4utern einleitend, inwiefern die gew\u00e4hlte Zusammenstellung von vier unterschiedlichen Methoden bzw. Medien sinnvoll ist, bevor sich separate Kapitel zu Rollenspiel, theatralem Philosophieren, Video-Clips und Musik anschlie\u00dfen, die alle jeweils Theorie- und Praxisbeitr\u00e4ge enthalten. Die ausgew\u00e4hlten Beispiele und die entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Eine umfangreiche Auswahlbibliographie l\u00e4dt zur Weiterarbeit ein und schlie\u00dft das Kompendium ab."},"doi":{"7618":"","7619":"10.28937\/978-3-7873-3666-1","40009":""},"isbn":{"7618":"978-3-7873-3658-6","7619":"978-3-7873-3666-1","40009":"978-3-7873-4978-4"},"marketing_short_text":{"7618":"","7619":"","40009":""},"recension_text":{"7618":"","7619":"","40009":""},"language":{"7618":"","7619":"","40009":""},"cover":{"7618":"Kartoniert","7619":"","40009":""},"pages":{"7618":"288 Seiten","7619":"288 Seiten","40009":"288 Seiten"},"edition":{"7618":"","7619":"Unver\u00e4ndertes eBook der 1. Auflage von 2026","40009":"Unver\u00e4ndertes EPUB der 1. Auflage von 2026"},"pod":{"7618":"Nein","7619":"Nein","40009":"Nein"},"copyright_year":{"7618":"","7619":"","40009":""},"vlb_tix_link":{"7618":"https:\/\/neu.vlbtix.de\/products\/9783787336586?type=gtin","7619":"","40009":""},"defaultValues":{"163":"15"}}; 38455 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 38456 38457 if (typeof window.amxnotif_wrap_attributes === 'function') { 38458 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 38459 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 38460 } 38461 38462 const configurableOptionsComponent = initConfigurableOptions( 38463 '9375', 38464 config 38465 ); 38466 const swatchOptionsComponent = initSwatchOptions( 38467 swatchConfig 38468 ); 38469 38470 // DWS - Configurable product preselect start 38471 const confProdPreSelect = () => { 38472 return { 38473 preselectQuerystringItems() { 38474 var data = {"id":"7618","output":"15"}; 38475 const urlQueryParams = new URLSearchParams(window.location.search); 38476 38477 this.$nextTick(() => { 38478 setTimeout(() => { 38479 const rootEl = this.$root || this.$el; 38480 if (!rootEl) return; 38481 38482 const applySelection = (attrCode, attrValue) => { 38483 if (attrValue === undefined || attrValue === null || attrValue === '') return; 38484 38485 const attributes = Object.values(this.optionConfig.attributes || {}); 38486 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 38487 38488 if (targetAttr) { 38489 const attrId = String(targetAttr.id); 38490 const optionVal = String(attrValue); 38491 38492 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 38493 38494 if (inputEl) { 38495 inputEl.click(); 38496 inputEl.dispatchEvent(new Event('change', { 38497 bubbles: true 38498 })); 38499 } else { 38500 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 38501 if (selectEl) { 38502 selectEl.value = optionVal; 38503 selectEl.dispatchEvent(new Event('change', { 38504 bubbles: true 38505 })); 38506 } 38507 } 38508 38509 this.changeOption(attrId, optionVal, false); 38510 } 38511 }; 38512 38513 if (data && typeof data === 'object') {
38514 Object.keys(data).forEach(key => applySelection(key, data[key])); 38515 } 38516 38517 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 38518 if (attribute && attribute.code) { 38519 let optionValue = urlQueryParams.get(attribute.code); 38520 if (optionValue) { 38521 let optionId = false; 38522 const attributes = Object.values(this.optionConfig.attributes || {}); 38523 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 38524 38525 let found = false; 38526 Object.values(targetAttr.options).map(option => { 38527 if (found === false && option.label === optionValue) { 38528 optionId = option.id; 38529 found = true; 38530 } 38531 }); 38532 38533 const attrId = String(targetAttr.id); 38534 let optionVal = String(optionValue); 38535 if (found) { 38536 optionVal = String(optionId); 38537 } 38538 38539 applySelection(attribute.code, optionVal); 38540 } 38541 } 38542 }); 38543 }, 100); 38544 }); 38545 } 38546 } 38547 }; 38548 // DWS - Configurable product preselect end 38549 38550 const result = Object.assign( 38551 configurableOptionsComponent, 38552 swatchOptionsComponent, { 38553 productId: '9375', 38554 productIndex: 0, 38555 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 38556 showSwatches: false, 38557 precalcOptions: {}, 38558 originalInit: configurableOptionsComponent.init, 38559 init() { 38560 try { 38561 this.precalcOptions = {}; 38562 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 38563 this.preselectQuerystringItems(); 38564 if (Array.isArray(attrSource)) { 38565 attrSource.forEach(attr => { 38566 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 38567 }); 38568 } else if (attrSource && typeof attrSource === 'object') { 38569 Object.keys(attrSource).forEach(id => { 38570 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 38571 }); 38572 } 38573 } catch (e) { 38574 console.error('Pre-calc error:', e); 38575 } 38576 38577 if (typeof this.originalInit === 'function') { 38578 this.originalInit(); 38579 } 38580 38581 try { 38582 this.initShowSwatchesIntersect(); 38583 } catch (e) { 38584 console.error('intersect error:', e); 38585 } 38586 }, 38587 38588 updateGallery() { 38589 if (!this.productIndex) return; 38590 38591 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 38592 method: 'GET', 38593 headers: { 38594 'Content-Type': 'application/json', 38595 'X-Requested-With': 'XMLHttpRequest' 38596 } 38597 }) 38598 .then(response => response.json()) 38599 .then(data => { 38600 if (data && data.medium) { 38601 window.dispatchEvent(new CustomEvent("update-gallery-9375", { 38602 detail: data.medium 38603 })); 38604 } 38605 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 38606 }, 38607 38608 38609 initShowSwatchesIntersect() { 38610 const observer = new IntersectionObserver(entries => { 38611 if (entries[0].isIntersecting) { 38612 this.showSwatches = true; 38613 observer.disconnect(); 38614 } 38615 }, { 38616 rootMargin: '512px' 38617 }); 38618 observer.observe(this.$el); 38619 }, 38620 getOptions(attrId) { 38621 return this.precalcOptions[attrId] || []; 38622 }, 38623 getOptionsByAttrId() { 38624 return this.getOptions(this.$el.dataset.attributeId); 38625 }, 38626 _getItemId() { 38627 if (this.item && this.item.id) return this.item.id; 38628 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 38629 }, 38630 getSwatchOptionHtmlId() { 38631 const itemId = this._getItemId(); 38632 return itemId ? this.$id(`attribute-option-9375-${itemId}`) : ''; 38633 }, 38634 getSwatchOptionHtmlIdGroup() { 38635 const itemId = this._getItemId(); 38636 return itemId ? [`attribute-option-9375-${itemId}`] : []; 38637 }, 38638 getAttributeSwatchData(attributeId) { 38639 const data = Object.assign({}, this.swatchConfig[attributeId]); 38640 if (data['additional_data']) { 38641 try { 38642 data['details'] = JSON.parse(data['additional_data']); 38643 } catch (e) { 38644 data['details'] = {}; 38645 } 38646 } 38647 return data; 38648 }, 38649 getSwatchType(attributeId, optionId) { 38650 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 38651 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 38652 } 38653 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 38654 this.swatchConfig[attributeId].details.swatch_input_type : 38655 "empty"; 38656 if (type === 'visual') { 38657 const config = this.swatchConfig[attributeId]; 38658 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 38659 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 38660 } 38661 // Fallback to first option type 38662 for (const oId in config) { 38663 if (config[oId] && typeof config[oId].type !== 'undefined') { 38664 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 38665 } 38666 } 38667 } 38668 return type; 38669 }, 38670 mapSwatchTypeNumberToTypeCode(type) { 38671 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 38672 }, 38673 isTextSwatch() { 38674 const itemId = this._getItemId(); 38675 if (!this.$el || !itemId) return false;
38676 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38677 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 38678 }, 38679 38680 getSwatchText() { 38681 const itemId = this._getItemId(); 38682 if (this.item) return this.item.label || ''; 38683 if (!this.$el || !itemId) return ''; 38684 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38685 const options = attrId ? this.getOptions(attrId) : []; 38686 const opt = options.find(o => o.id == itemId); 38687 return opt ? opt.label : ''; 38688 }, 38689 getSwatchBackgroundStyle() { 38690 const itemId = this._getItemId(); 38691 if (!this.$el || !itemId) return ''; 38692 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38693 if (!attrId) return ''; 38694 const type = this.getSwatchType(attrId, itemId); 38695 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 38696 this.swatchConfig[attrId][itemId] : 38697 null; 38698 if (!swatchData) return ''; 38699 if (type === "color") return 'background-color:' + swatchData.value; 38700 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 38701 return ''; 38702 }, 38703 swatchOptionClasses() { 38704 const itemId = this._getItemId(); 38705 if (!this.$el || !itemId) return {}; 38706 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38707 return { 38708 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 38709 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 38710 'w-6 h-6': !this.isTextSwatch() 38711 } 38712 }, 38713 38714 onFocusSwatchItem() { 38715 const itemId = this._getItemId(); 38716 if (itemId) this.focusedLabel = itemId; 38717 }, 38718 onChangeOption() { 38719 const itemId = this._getItemId(); 38720 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 38721 if (attrId && itemId) this.changeOption(attrId, itemId); 38722 }, 38723 changeOption(attributeId, value) { 38724 if (value === '') { 38725 return; 38726 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 38727 } else { 38728 this.selectedValues[attributeId] = value; 38729 } 38730 38731 this.findSimpleIndex(); 38732 this.findAllowedAttributeOptions(); 38733 this.updatePrices(); 38734 this.updateGallery(); 38735 38736 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 38737 this.findProductIdsForPartialSelection(this.selectedValues) : []; 38738 38739 const eventDetail = { 38740 productId: this.productId, 38741 optionId: attributeId, 38742 value: value, 38743 productIndex: this.productIndex || 0, 38744 selectedValues: this.selectedValues, 38745 candidates: candidates, 38746 sourceElement: this.$el 38747 }; 38748 38749 // Dispatch for Amasty 38750 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 38751 detail: eventDetail 38752 })); 38753 38754 // Dispatch for Hyva listing 38755 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 38756 detail: eventDetail 38757 })); 38758 }, 38759 38760 38761 clearOptionIfActive() { 38762 const itemId = this._getItemId(); 38763 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 38764 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 38765 this.changeOption(attrId, ''); 38766 38767 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 38768 if (!input && this.$el?.querySelector) { 38769 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 38770 } 38771 if (!input && this.$el?.closest) { 38772 const root = this.$el.closest('[data-product-id]') || this.$el; 38773 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 38774 } 38775 if (input) { 38776 input.checked = false;
38777 } 38778 } 38779 }, 38780 get optionIsEnabled() { 38781 const itemId = this._getItemId(); 38782 if (!this.$el || !itemId) return true; 38783 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38784 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 38785 return !!allowedOptions.find(opt => opt.id == itemId); 38786 }, 38787 get isSelected() { 38788 const itemId = this._getItemId(); 38789 if (!this.$el || !itemId) return false; 38790 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38791 return attrId ? (this.selectedValues[attrId] == itemId) : false; 38792 }, 38793 get isSwatchRequired() { 38794 if (!this.$el) return false; 38795 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38796 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 38797 }, 38798 focusedLabel: false, 38799 activeTooltipItem: false, 38800 tooltipPositionElement: false,
38801 setActiveTooltipItem() { 38802 const itemId = this._getItemId(); 38803 if (!this.$el || !itemId) return; 38804 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 38805 this.activeTooltipItem = { 38806 attribute: attrId, 38807 item: itemId, 38808 index: 0 38809 }; 38810 this.tooltipPositionElement = this.$event ? this.$event.target : null; 38811 }, 38812 unsetActiveTooltipItem() { 38813 this.activeTooltipItem = false; 38814 } 38815 }, 38816 confProdPreSelect() 38817 ); 38818 38819 if (result.optionConfig && result.optionConfig.attributes) { 38820 const attributes = result.optionConfig.attributes; 38821 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 38822 let source = attributes; 38823 if (Array.isArray(attributes)) { 38824 source = {}; 38825 attributes.forEach(attr => { 38826 if (attr && attr.id) source[attr.id] = attr; 38827 }); 38828 } 38829 const values = Object.values(source); 38830 const wrapper = Object.assign(values, source); 38831 Object.defineProperty(wrapper, '__amxnotifWrapped', { 38832 value: true, 38833 enumerable: false 38834 }); 38835 result.optionConfig.attributes = wrapper; 38836 } 38837 } 38838 38839 return result; 38840 } 38841 38842 window.addEventListener('alpine:init', () => { 38843 Alpine.data('initConfigurableSwatchOptions_9375', initConfigurableSwatchOptions_9375); 38844 }, { 38845 once: true 38846 }); 38847 </script>
38847 38848 38849 <div x-data="initConfigurableSwatchOptions_9375" x-defer="intersect"> 38850 <div class="pagebuilder-home-hidden"> 38851 38852 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 38853 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 38854 <template x-if="showSwatches"> 38855 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9375-163" role="radiogroup" aria-label="Einband"> 38856 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 38857 <div :data-option-id="item.id" style="display: contents"> 38858 <div x-id="getSwatchOptionHtmlIdGroup"> 38859 <template x-if="optionIsEnabled"> 38860 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
38860self="unsetActiveTooltipItem"> 38861 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9375-163"> 38862 <div> 38863 <template x-if="isTextSwatch"> 38864 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 38865 </template> 38866 <template x-if="!optionIsActive(163, item.id)"> 38867 <div> 38868 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 38869 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 38870 </svg> 38871 </div> 38872 </template> 38873 </div> 38874 </label> 38875 </template> 38876</div> </div> 38877 </template> 38878 </div> 38879 </template> 38880 </div> 38881 </div> 38882 </div> 38883 </div> 38884 38885 <div class="meta py-4 pagebuilder-home-hidden"> 38886 <div x-data="initMarketingShortText_9375()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 38887 <!-- Marketing short text --> 38888 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 38889 </div> 38890 38891 <!-- Short description --> 38892 <div class="short-description"> 38893 Musik und Videoclips prägen den Alltag vieler Jugendlicher, weshalb sich diese beiden präsentativen Medien für einen Einsatz im Philosophie- und Ethikunterricht in besonderem Maße eignen. … <a href="https://meiner.de/fmv_de/rollenspiel-theatrales-philosophieren-musik-und-videoclips-im-philosophie-und-ethikunterricht-15888" class="underline">mehr</a> 38894 </div> 38895 </div> 38896 38897 <!-- Series --> 38898 <div class="mb-1"> 38899 <span class="sr-only">Reihe:</span> 38900 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 38901 <span>Methoden im Philosophie- und Ethikunterricht</span> 38902 </a> 38903 9 </div> 38904 38905 38906 <div class="mb-1"> 38907 <span x-data="initEditionText_9375()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 38908 <!-- Marketing short text --> 38909 <span class="edition-text" x-html="editionText"></span> 2026, 288 Seiten </span> 38910 </div> 38911 38912 </div> 38913 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 38914 38915 <div class="justify-end" x-data="initPriceBox()" @update-prices-9375.window="updatePrice($event.detail);"> 38916 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9375" data-price-box="product-id-9375"><span class="normal-price"> 38917 <span x-data x-id="['product\u002Dprice\u002D9375']" class="price-container price-final_price tax weee"> 38918 <span class="price-label">Ab</span>
38919 <span class="approx-price">ca. </span> 38920 <span :id="$id('product\u002Dprice\u002D9375')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 38921 </span> 38922</span> 38923 38924 38925</div> </div> 38926 38927 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 38928 <div class="open-access-container open-access-container-9375 flex mt-4 ml-auto sm:mt-0 hidden"> 38929 <div class="text-gray-700"> 38930 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 38931 <a href="" target="_blank" class="open-access-external-link m-auto "> 38932 Kostenlos online lesen </a> 38933 </button> 38934 </div> 38935 </div> 38936 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" aria-label="In den Warenkorb Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" data-addto="cart"> 38937 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 38938 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 38939</svg> 38940 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 38941 In den Warenkorb </span> 38942 </button> 38943 38944<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9375)" aria-label="Zur Wunschliste hinzufügen Rollenspiel, theatrales Philosophieren, Musik und Videoclips im Philosophie- und Ethikunterricht" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 38945 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 38946 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 38947</svg> 38948</button> 38949 </div> 38950 </div> 38951 </div> 38952
38952<script> 38953 function initMarketingShortText_9375() { 38954 var marketingShortTextConfig = {}; 38955 if (typeof window.initConfigurableSwatchOptions_9375 === "function") { 38956 var fullConfig = window.initConfigurableSwatchOptions_9375().optionConfig 38957 var marketingShortTextConfig = fullConfig.marketing_short_text; 38958 } 38959 return { 38960 marketingShortText: '', 38961 config: marketingShortTextConfig, 38962 productId: '9375', 38963 getMarketingShortText(detail) { 38964 this.marketingShortText = detail.productIndex ? 38965 this.config[detail.productIndex] : 38966 null; 38967 }, 38968 eventListeners: { 38969 ['@listing-configurable-selection-changed.window'](event) { 38970 if (this.productId == event.detail.productId) { 38971 this.getMarketingShortText(event.detail); 38972 } 38973 38974 } 38975 } 38976 } 38977 } 38978 38979 function initEditionText_9375() { 38980 var editionTextConfig = {}; 38981 if (typeof window.initConfigurableSwatchOptions_9375 === "function") { 38982 var fullConfig = window.initConfigurableSwatchOptions_9375().optionConfig 38983 var editionTextConfig = fullConfig.edition; 38984 } 38985 return { 38986 editionText: '', 38987 config: editionTextConfig, 38988 productId: '9375', 38989 getEditionText(detail) { 38990 this.editionText = detail.productIndex ? 38991 this.config[detail.productIndex] : 38992 null; 38993 }, 38994 eventListeners: { 38995 ['@listing-configurable-selection-changed.window'](event) { 38996 if (this.productId == event.detail.productId) { 38997 this.getEditionText(event.detail); 38998 } 38999 39000 } 39001 } 39002 } 39003 } 39004 </script>
39004 39005 </form> 39006 39007 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4217/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk13639"> 39008 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4217"> 39009 <a href="https://meiner.de/fmv_de/philosophieren-mit-bildern-und-fotografien" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 39010 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4217.window="$el.src = $event.detail" alt="Philosophieren mit Bildern und Fotografien" title="Philosophieren mit Bildern und Fotografien" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344307_3.jpg" :style="{ 39011 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 39012 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 39013 }"> 39014 </a> 39015 <div class="product-info flex flex-col flex-grow "> 39016 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 39017 <div class="mb-2 text-sm text-gray-500 font-medium"> 39018 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 39019 Jörg Peters </a> 39020 <span>|</span> 39021 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 39022 Martina Peters (Hrsg.) 39023 </a> 39024 </div> 39025 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophieren-mit-bildern-und-fotografien"> 39026 Philosophieren mit Bildern und Fotografien </a> 39027 </div> 39028 39029 <div x-data="initEditionText_4217()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 39030 <!-- Marketing short text --> 39031 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 39032 </div> 39033 </div> 39034 39035 <div class="py-1 grid mb-4 "> 39036 39037 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4217,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4217,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"4914":"1","4918":"1","15451":"1"},"childProductsAlertStatus":{"4914":"0","4918":"0","15451":"0"},"indexMapping":{"163:15":4914,"163:8":4918,"163:9":15451},"availabilityMessages":{"4914":"Lieferbar innerhalb von 3-5 Tagen","4918":"Download sofort verf\u00fcgbar","15451":"Download sofort verf\u00fcgbar"},"openAccess":{"4217":{"status":0},"4914":{"status":0},"4918":{"status":0},"15451":{"status":0}}},"availabilityMessages":{"4914":"Lieferbar innerhalb von 3-5 Tagen","4918":"Download sofort verf\u00fcgbar","15451":"Download sofort verf\u00fcgbar"},"openAccess":{"4217":{"status":0},"4914":{"status":0},"4918":{"status":0},"15451":{"status":0}}}'> 39038 <template x-if="containerVisible"> 39039 <!-- Popup Trigger --> 39040 <div> 39041 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 39042 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
39043 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 39044 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 39045<title>bell</title></svg> 39046</span> 39047 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 39048 39049 <!-- Popup Modal --> 39050 <template x-if="showModal"> 39051 <template x-teleport=".page-wrapper"> 39052 <div x-cloak class="fixed inset-0 flex items-center justify-center 39053 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 39054 <div class="relative bg-white rounded-lg shadow-xl 39055 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 39056 <div class="p-6"> 39057 <!-- Subscription Form for Popup --> 39058 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 39059 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 39060 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 39061 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 39062 39063 <div class="flex flex-col gap-3"> 39064 <div class="flex-grow grow"> 39065 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 39066 shadow-xs focus:outline-none focus:outline-hidden 39067 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 39068 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 39069 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 39070 </div> 39071 <input type="hidden" name="product_id" :value="currentProductId"> 39072 <input type="hidden" name="type" value="email"> 39073 39074 39075 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 39076 39077 <div class="amxnotif_guest_action"> 39078 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 39079 rounded-md focus:outline-none 39080 focus:outline-hidden focus:ring-2 39081 focus:ring-offset-2 disabled:opacity-50 39082 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 39083 Benachrichtigen </button> 39084 </div> 39085 </div> 39086 39087 <div class="flex items-start pt-2"> 39088 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 39089 text-blue-600 border-gray-300 rounded-sm"> 39090 <label class="amxnotif-stock-gdrp-label cursor-pointer 39091 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 39092 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 39093 </div> 39094 </form> 39095 </div> 39096 39097 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 39098 hover:text-gray-600 transition-colors" aria-label="Schließen"> 39099 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 39100 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 39101<title>x</title></svg> 39102 </button> 39103 </div> 39104 </div> 39105 </template> 39106 </template> 39107 </div> 39108 </template> 39109 </div> 39110 39111<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4217" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4217,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"4914":"1","4918":"1","15451":"1"},"childProductsAlertStatus":{"4914":"0","4918":"0","15451":"0"},"indexMapping":"{\u0022163:15\u0022:4914,\u0022163:8\u0022:4918,\u0022163:9\u0022:15451}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4217,"availabilityMessages":{"4914":"Lieferbar innerhalb von 3-5 Tagen","4918":"Download sofort verf\u00fcgbar","15451":"Download sofort verf\u00fcgbar"},"openAccess":{"4217":{"status":0},"4914":{"status":0},"4918":{"status":0},"15451":{"status":0}}}'> 39112 39113 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
39114 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 39115 <span x-html="optionsLabelText"></span> 39116 </p> 39117</div> </div> 39118 39119
39119<script> 39120 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 39121 try { 39122 const attributes = (config && config.attributes) ? config.attributes : null; 39123 if (!attributes) return []; 39124 let attr = null; 39125 if (Array.isArray(attributes)) { 39126 for (let i = 0; i < attributes.length; i++) { 39127 const a = attributes[i]; 39128 if (a && a.id == attrId) { 39129 attr = a; 39130 break; 39131 } 39132 } 39133 } else { 39134 attr = attributes[attrId]; 39135 } 39136 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 39137 } catch (e) { 39138 return []; 39139 } 39140 }; 39141 39142 function initConfigurableSwatchOptions_4217() { 39143 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["4914"]},{"id":"8","label":"PDF","products":["4918"]},{"id":"9","label":"EPUB","products":["15451"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"4914":{"baseOldPrice":{"amount":27.943924233645},"oldPrice":{"amount":29.9},"basePrice":{"amount":27.943924233645},"finalPrice":{"amount":29.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"4918":{"baseOldPrice":{"amount":20.551400869159},"oldPrice":{"amount":21.99},"basePrice":{"amount":20.551400869159},"finalPrice":{"amount":21.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"15451":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":18.682241990654},"oldPrice":{"amount":19.99},"basePrice":{"amount":18.682241990654},"finalPrice":{"amount":19.99},"isApproxPrice":null},"productId":"4217","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"4914":{"163":"15"},"4918":{"163":"8"},"15451":{"163":"9"}},"salable":{"163":{"15":["4914"],"8":["4918"],"9":["15451"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"4914":"004428","4918":"004429","15451":"004430"},"output":{"4914":"Kartoniert","4918":"PDF","15451":"EPUB"},"original_name":{"4914":"","4918":"","15451":""},"openaccess_license_link":{"4914":"","4918":"","15451":""},"openaccess_license_name":{"4914":"","4918":"","15451":""},"openaccess_external_link":{"4914":"","4918":"","15451":""},"gpsr_safety_info":{"4914":"","4918":"","15451":""},"description":{"4914":"Neben Texten und Filmen z\u00e4hlen Bilder und Fotografien aktuell zu den beliebtesten Medien im Philosophie- und Ethikunterricht. Der vorliegende Band bietet sowohl die theoretische Begr\u00fcndung, warum die unterrichtliche Arbeit mit ihnen von essentieller Bedeutung ist, als auch zahlreiche praxistaugliche Beispiele und Handreichungen f\u00fcr die Unterrichtsgestaltung in beiden Sekundarstufen. <br\/><br\/>Zu Beginn f\u00fchren die Herausgeber zun\u00e4chst in das Thema ein, bevor sich je ein Theorie- und ein Praxisteil zu Bildern und Fotografien anschlie\u00dfen. W\u00e4hrend die Theorieteile die grunds\u00e4tzliche Bedeutung von Bildern und Fotografien im Philosophie- und Ethikunterricht erl\u00e4utern und die Chancen und Grenzen ihres Einsatzes darlegen, wird in den Praxisteilen anhand konkreter Unterrichtsbeispiele demonstriert, wie kreativ vielf\u00e4ltig man darstellende Kunstwerke und Fotos nutzen kann, um Sch\u00fclerinnen und Sch\u00fcler in philosophische Fragestellungen oder Theorien einzuf\u00fchren, diese zu verdeutlichen oder zu vertiefen. Die Auswahl des Bildmaterials und der entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab.","4918":"Neben Texten und Filmen z\u00e4hlen Bilder und Fotografien aktuell zu den beliebtesten Medien im Philosophie- und Ethikunterricht. Der vorliegende Band bietet sowohl die theoretische Begr\u00fcndung, warum die unterrichtliche Arbeit mit ihnen von essentieller Bedeutung ist, als auch za
39143hlreiche praxistaugliche Beispiele und Handreichungen f\u00fcr die Unterrichtsgestaltung in beiden Sekundarstufen. <br\/><br\/>Zu Beginn f\u00fchren die Herausgeber zun\u00e4chst in das Thema ein, bevor sich je ein Theorie- und ein Praxisteil zu Bildern und Fotografien anschlie\u00dfen. W\u00e4hrend die Theorieteile die grunds\u00e4tzliche Bedeutung von Bildern und Fotografien im Philosophie- und Ethikunterricht erl\u00e4utern und die Chancen und Grenzen ihres Einsatzes darlegen, wird in den Praxisteilen anhand konkreter Unterrichtsbeispiele demonstriert, wie kreativ vielf\u00e4ltig man darstellende Kunstwerke und Fotos nutzen kann, um Sch\u00fclerinnen und Sch\u00fcler in philosophische Fragestellungen oder Theorien einzuf\u00fchren, diese zu verdeutlichen oder zu vertiefen. Die Auswahl des Bildmaterials und der entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab.","15451":"Neben Texten und Filmen z\u00e4hlen Bilder und Fotografien aktuell zu den beliebtesten Medien im Philosophie- und Ethikunterricht. Der vorliegende Band bietet sowohl die theoretische Begr\u00fcndung, warum die unterrichtliche Arbeit mit ihnen von essentieller Bedeutung ist, als auch zahlreiche praxistaugliche Beispiele und Handreichungen f\u00fcr die Unterrichtsgestaltung in beiden Sekundarstufen. <br\/><br\/>Zu Beginn f\u00fchren die Herausgeber zun\u00e4chst in das Thema ein, bevor sich je ein Theorie- und ein Praxisteil zu Bildern und Fotografien anschlie\u00dfen. W\u00e4hrend die Theorieteile die grunds\u00e4tzliche Bedeutung von Bildern und Fotografien im Philosophie- und Ethikunterricht erl\u00e4utern und die Chancen und Grenzen ihres Einsatzes darlegen, wird in den Praxisteilen anhand konkreter Unterrichtsbeispiele demonstriert, wie kreativ vielf\u00e4ltig man darstellende Kunstwerke und Fotos nutzen kann, um Sch\u00fclerinnen und Sch\u00fcler in philosophische Fragestellungen oder Theorien einzuf\u00fchren, diese zu verdeutlichen oder zu vertiefen. Die Auswahl des Bildmaterials und der entsprechenden Unterrichtshandreichungen eignen sich f\u00fcr den Einsatz in Sekundarstufe I und II.<br\/><br\/>Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab."},"doi":{"4914":"","4918":"10.28937\/978-3-7873-4429-1","15451":""},"isbn":{"4914":"978-3-7873-4428-4","4918":"978-3-7873-4429-1","15451":"978-3-7873-4430-7"},"marketing_short_text":{"4914":"","4918":"","15451":""},"recension_text":{"4914":"","4918":"","15451":""},"language":{"4914":"","4918":"","15451":""},"cover":{"4914":"Kartoniert","4918":"","15451":""},"pages":{"4914":"352 Seiten mit 128 Abbildungen.","4918":"352 Seiten mit 128 Abbildungen","15451":"352 Seiten mit 128 Abbildungen"},"edition":{"4914":"","4918":"Unver\u00e4ndertes eBook der 1. Auflage von 2024","15451":"Unver\u00e4ndertes EPUB der 1. Auflage von 2024"},"pod":{"4914":"Nein","4918":"Nein","15451":"Nein"},"copyright_year":{"4914":"","4918":"","15451":""},"vlb_tix_link":{"4914":"https:\/\/neu.vlbtix.de\/products\/9783787344284?type=gtin","4918":"","15451":""},"defaultValues":{"163":"15"}}; 39144 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 39145 39146 if (typeof window.amxnotif_wrap_attributes === 'function') { 39147 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 39148 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 39149 } 39150 39151 const configurableOptionsComponent = initConfigurableOptions( 39152 '4217', 39153 config 39154 ); 39155 const swatchOptionsComponent = initSwatchOptions( 39156 swatchConfig 39157 ); 39158 39159 // DWS - Configurable product preselect start 39160 const confProdPreSelect = () => { 39161 return { 39162 preselectQuerystringItems() { 39163 var data = {"id":"4914","output":"15"}; 39164 const urlQueryParams = new URLSearchParams(window.location.search); 39165 39166 this.$nextTick(() => { 39167 setTimeout(() => { 39168 const rootEl = this.$root || this.$el; 39169 if (!rootEl) return; 39170 39171 const applySelection = (attrCode, attrValue) => { 39172 if (attrValue === undefined || attrValue === null || attrValue === '') return; 39173 39174 const attributes = Object.values(this.optionConfig.attributes || {}); 39175 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 39176 39177 if (targetAttr) { 39178 const attrId = String(targetAttr.id); 39179 const optionVal = String(attrValue); 39180 39181 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 39182 39183 if (inputEl) { 39184 inputEl.click(); 39185 inputEl.dispatchEvent(new Event('change', { 39186 bubbles: true 39187 })); 39188 } else { 39189 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 39190 if (selectEl) { 39191 selectEl.value = optionVal; 39192 selectEl.dispatchEvent(new Event('change', { 39193 bubbles: true 39194 })); 39195 } 39196 } 39197 39198 this.changeOption(attrId, optionVal, false); 39199 } 39200 }; 39201 39202 if (data && typeof data === 'object') {
39203 Object.keys(data).forEach(key => applySelection(key, data[key])); 39204 } 39205 39206 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 39207 if (attribute && attribute.code) { 39208 let optionValue = urlQueryParams.get(attribute.code); 39209 if (optionValue) { 39210 let optionId = false; 39211 const attributes = Object.values(this.optionConfig.attributes || {}); 39212 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 39213 39214 let found = false; 39215 Object.values(targetAttr.options).map(option => { 39216 if (found === false && option.label === optionValue) { 39217 optionId = option.id; 39218 found = true; 39219 } 39220 }); 39221 39222 const attrId = String(targetAttr.id); 39223 let optionVal = String(optionValue); 39224 if (found) { 39225 optionVal = String(optionId); 39226 } 39227 39228 applySelection(attribute.code, optionVal); 39229 } 39230 } 39231 }); 39232 }, 100); 39233 }); 39234 } 39235 } 39236 }; 39237 // DWS - Configurable product preselect end 39238 39239 const result = Object.assign( 39240 configurableOptionsComponent, 39241 swatchOptionsComponent, { 39242 productId: '4217', 39243 productIndex: 0, 39244 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 39245 showSwatches: false, 39246 precalcOptions: {}, 39247 originalInit: configurableOptionsComponent.init, 39248 init() { 39249 try { 39250 this.precalcOptions = {}; 39251 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 39252 this.preselectQuerystringItems(); 39253 if (Array.isArray(attrSource)) { 39254 attrSource.forEach(attr => { 39255 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 39256 }); 39257 } else if (attrSource && typeof attrSource === 'object') { 39258 Object.keys(attrSource).forEach(id => { 39259 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 39260 }); 39261 } 39262 } catch (e) { 39263 console.error('Pre-calc error:', e); 39264 } 39265 39266 if (typeof this.originalInit === 'function') { 39267 this.originalInit(); 39268 } 39269 39270 try { 39271 this.initShowSwatchesIntersect(); 39272 } catch (e) { 39273 console.error('intersect error:', e); 39274 } 39275 }, 39276 39277 updateGallery() { 39278 if (!this.productIndex) return; 39279 39280 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 39281 method: 'GET', 39282 headers: { 39283 'Content-Type': 'application/json', 39284 'X-Requested-With': 'XMLHttpRequest' 39285 } 39286 }) 39287 .then(response => response.json()) 39288 .then(data => { 39289 if (data && data.medium) { 39290 window.dispatchEvent(new CustomEvent("update-gallery-4217", { 39291 detail: data.medium 39292 })); 39293 } 39294 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 39295 }, 39296 39297 39298 initShowSwatchesIntersect() { 39299 const observer = new IntersectionObserver(entries => { 39300 if (entries[0].isIntersecting) { 39301 this.showSwatches = true; 39302 observer.disconnect(); 39303 } 39304 }, { 39305 rootMargin: '512px' 39306 }); 39307 observer.observe(this.$el); 39308 }, 39309 getOptions(attrId) { 39310 return this.precalcOptions[attrId] || []; 39311 }, 39312 getOptionsByAttrId() { 39313 return this.getOptions(this.$el.dataset.attributeId); 39314 }, 39315 _getItemId() { 39316 if (this.item && this.item.id) return this.item.id; 39317 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 39318 }, 39319 getSwatchOptionHtmlId() { 39320 const itemId = this._getItemId(); 39321 return itemId ? this.$id(`attribute-option-4217-${itemId}`) : ''; 39322 }, 39323 getSwatchOptionHtmlIdGroup() { 39324 const itemId = this._getItemId(); 39325 return itemId ? [`attribute-option-4217-${itemId}`] : []; 39326 }, 39327 getAttributeSwatchData(attributeId) { 39328 const data = Object.assign({}, this.swatchConfig[attributeId]); 39329 if (data['additional_data']) { 39330 try { 39331 data['details'] = JSON.parse(data['additional_data']); 39332 } catch (e) { 39333 data['details'] = {}; 39334 } 39335 } 39336 return data; 39337 }, 39338 getSwatchType(attributeId, optionId) { 39339 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 39340 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 39341 } 39342 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 39343 this.swatchConfig[attributeId].details.swatch_input_type : 39344 "empty"; 39345 if (type === 'visual') { 39346 const config = this.swatchConfig[attributeId]; 39347 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 39348 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 39349 } 39350 // Fallback to first option type 39351 for (const oId in config) { 39352 if (config[oId] && typeof config[oId].type !== 'undefined') { 39353 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 39354 } 39355 } 39356 } 39357 return type; 39358 }, 39359 mapSwatchTypeNumberToTypeCode(type) { 39360 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 39361 }, 39362 isTextSwatch() { 39363 const itemId = this._getItemId(); 39364 if (!this.$el || !itemId) return false;
39365 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39366 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 39367 }, 39368 39369 getSwatchText() { 39370 const itemId = this._getItemId(); 39371 if (this.item) return this.item.label || ''; 39372 if (!this.$el || !itemId) return ''; 39373 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39374 const options = attrId ? this.getOptions(attrId) : []; 39375 const opt = options.find(o => o.id == itemId); 39376 return opt ? opt.label : ''; 39377 }, 39378 getSwatchBackgroundStyle() { 39379 const itemId = this._getItemId(); 39380 if (!this.$el || !itemId) return ''; 39381 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39382 if (!attrId) return ''; 39383 const type = this.getSwatchType(attrId, itemId); 39384 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 39385 this.swatchConfig[attrId][itemId] : 39386 null; 39387 if (!swatchData) return ''; 39388 if (type === "color") return 'background-color:' + swatchData.value; 39389 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 39390 return ''; 39391 }, 39392 swatchOptionClasses() { 39393 const itemId = this._getItemId(); 39394 if (!this.$el || !itemId) return {}; 39395 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39396 return { 39397 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 39398 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 39399 'w-6 h-6': !this.isTextSwatch() 39400 } 39401 }, 39402 39403 onFocusSwatchItem() { 39404 const itemId = this._getItemId(); 39405 if (itemId) this.focusedLabel = itemId; 39406 }, 39407 onChangeOption() { 39408 const itemId = this._getItemId(); 39409 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 39410 if (attrId && itemId) this.changeOption(attrId, itemId); 39411 }, 39412 changeOption(attributeId, value) { 39413 if (value === '') { 39414 return; 39415 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 39416 } else { 39417 this.selectedValues[attributeId] = value; 39418 } 39419 39420 this.findSimpleIndex(); 39421 this.findAllowedAttributeOptions(); 39422 this.updatePrices(); 39423 this.updateGallery(); 39424 39425 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 39426 this.findProductIdsForPartialSelection(this.selectedValues) : []; 39427 39428 const eventDetail = { 39429 productId: this.productId, 39430 optionId: attributeId, 39431 value: value, 39432 productIndex: this.productIndex || 0, 39433 selectedValues: this.selectedValues, 39434 candidates: candidates, 39435 sourceElement: this.$el 39436 }; 39437 39438 // Dispatch for Amasty 39439 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 39440 detail: eventDetail 39441 })); 39442 39443 // Dispatch for Hyva listing 39444 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 39445 detail: eventDetail 39446 })); 39447 }, 39448 39449 39450 clearOptionIfActive() { 39451 const itemId = this._getItemId(); 39452 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 39453 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 39454 this.changeOption(attrId, ''); 39455 39456 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 39457 if (!input && this.$el?.querySelector) { 39458 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 39459 } 39460 if (!input && this.$el?.closest) { 39461 const root = this.$el.closest('[data-product-id]') || this.$el; 39462 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 39463 } 39464 if (input) { 39465 input.checked = false;
39466 } 39467 } 39468 }, 39469 get optionIsEnabled() { 39470 const itemId = this._getItemId(); 39471 if (!this.$el || !itemId) return true; 39472 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39473 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 39474 return !!allowedOptions.find(opt => opt.id == itemId); 39475 }, 39476 get isSelected() { 39477 const itemId = this._getItemId(); 39478 if (!this.$el || !itemId) return false; 39479 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39480 return attrId ? (this.selectedValues[attrId] == itemId) : false; 39481 }, 39482 get isSwatchRequired() { 39483 if (!this.$el) return false; 39484 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39485 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 39486 }, 39487 focusedLabel: false, 39488 activeTooltipItem: false, 39489 tooltipPositionElement: false,
39490 setActiveTooltipItem() { 39491 const itemId = this._getItemId(); 39492 if (!this.$el || !itemId) return; 39493 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 39494 this.activeTooltipItem = { 39495 attribute: attrId, 39496 item: itemId, 39497 index: 0 39498 }; 39499 this.tooltipPositionElement = this.$event ? this.$event.target : null; 39500 }, 39501 unsetActiveTooltipItem() { 39502 this.activeTooltipItem = false; 39503 } 39504 }, 39505 confProdPreSelect() 39506 ); 39507 39508 if (result.optionConfig && result.optionConfig.attributes) { 39509 const attributes = result.optionConfig.attributes; 39510 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 39511 let source = attributes; 39512 if (Array.isArray(attributes)) { 39513 source = {}; 39514 attributes.forEach(attr => { 39515 if (attr && attr.id) source[attr.id] = attr; 39516 }); 39517 } 39518 const values = Object.values(source); 39519 const wrapper = Object.assign(values, source); 39520 Object.defineProperty(wrapper, '__amxnotifWrapped', { 39521 value: true, 39522 enumerable: false 39523 }); 39524 result.optionConfig.attributes = wrapper; 39525 } 39526 } 39527 39528 return result; 39529 } 39530 39531 window.addEventListener('alpine:init', () => { 39532 Alpine.data('initConfigurableSwatchOptions_4217', initConfigurableSwatchOptions_4217); 39533 }, { 39534 once: true 39535 }); 39536 </script>
39536 39537 39538 <div x-data="initConfigurableSwatchOptions_4217" x-defer="intersect"> 39539 <div class="pagebuilder-home-hidden"> 39540 39541 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 39542 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 39543 <template x-if="showSwatches"> 39544 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4217-163" role="radiogroup" aria-label="Einband"> 39545 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 39546 <div :data-option-id="item.id" style="display: contents"> 39547 <div x-id="getSwatchOptionHtmlIdGroup"> 39548 <template x-if="optionIsEnabled"> 39549 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
39549self="unsetActiveTooltipItem"> 39550 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4217-163"> 39551 <div> 39552 <template x-if="isTextSwatch"> 39553 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 39554 </template> 39555 <template x-if="!optionIsActive(163, item.id)"> 39556 <div> 39557 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 39558 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 39559 </svg> 39560 </div> 39561 </template> 39562 </div> 39563 </label> 39564 </template> 39565</div> </div> 39566 </template> 39567 </div> 39568 </template> 39569 </div> 39570 </div> 39571 </div> 39572 </div> 39573 39574 <div class="meta py-4 pagebuilder-home-hidden"> 39575 <div x-data="initMarketingShortText_4217()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 39576 <!-- Marketing short text --> 39577 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 39578 </div> 39579 39580 <!-- Short description --> 39581 <div class="short-description"> 39582 Neben Texten und Filmen zählen Bilder und Fotografien aktuell zu den beliebtesten Medien im Philosophie- und Ethikunterricht. Der vorliegende Band bietet sowohl die theoretische Begründung, warum ... <a href="https://meiner.de/fmv_de/philosophieren-mit-bildern-und-fotografien" class="underline">mehr</a> 39583 </div> 39584 </div> 39585 39586 <!-- Series --> 39587 <div class="mb-1"> 39588 <span class="sr-only">Reihe:</span> 39589 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 39590 <span>Methoden im Philosophie- und Ethikunterricht</span> 39591 </a> 39592 10 </div> 39593 39594 39595 <div class="mb-1"> 39596 <span x-data="initEditionText_4217()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 39597 <!-- Marketing short text --> 39598 <span class="edition-text" x-html="editionText"></span> 2024, 352 Seiten mit 128 Abbildungen. </span> 39599 </div> 39600 39601 </div> 39602 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 39603 39604 <div class="justify-end" x-data="initPriceBox()" @update-prices-4217.window="updatePrice($event.detail);"> 39605 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4217" data-price-box="product-id-4217"><span class="normal-price"> 39606 <span x-data x-id="['product\u002Dprice\u002D4217']" class="price-container price-final_price tax weee"> 39607 <span class="price-label">Ab</span> 39608 <span class="approx-price">ca. </span>
39609 <span :id="$id('product\u002Dprice\u002D4217')" data-price-amount="19.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">19,99 €</span></span> 39610 </span> 39611</span> 39612 39613 39614</div> </div> 39615 39616 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 39617 <div class="open-access-container open-access-container-4217 flex mt-4 ml-auto sm:mt-0 hidden"> 39618 <div class="text-gray-700"> 39619 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 39620 <a href="" target="_blank" class="open-access-external-link m-auto "> 39621 Kostenlos online lesen </a> 39622 </button> 39623 </div> 39624 </div> 39625 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophieren mit Bildern und Fotografien" aria-label="In den Warenkorb Philosophieren mit Bildern und Fotografien" data-addto="cart"> 39626 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 39627 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 39628</svg> 39629 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 39630 In den Warenkorb </span> 39631 </button> 39632 39633<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4217)" aria-label="Zur Wunschliste hinzufügen Philosophieren mit Bildern und Fotografien" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 39634 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 39635 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 39636</svg> 39637</button> 39638 </div> 39639 </div> 39640 </div> 39641
39641<script> 39642 function initMarketingShortText_4217() { 39643 var marketingShortTextConfig = {}; 39644 if (typeof window.initConfigurableSwatchOptions_4217 === "function") { 39645 var fullConfig = window.initConfigurableSwatchOptions_4217().optionConfig 39646 var marketingShortTextConfig = fullConfig.marketing_short_text; 39647 } 39648 return { 39649 marketingShortText: '', 39650 config: marketingShortTextConfig, 39651 productId: '4217', 39652 getMarketingShortText(detail) { 39653 this.marketingShortText = detail.productIndex ? 39654 this.config[detail.productIndex] : 39655 null; 39656 }, 39657 eventListeners: { 39658 ['@listing-configurable-selection-changed.window'](event) { 39659 if (this.productId == event.detail.productId) { 39660 this.getMarketingShortText(event.detail); 39661 } 39662 39663 } 39664 } 39665 } 39666 } 39667 39668 function initEditionText_4217() { 39669 var editionTextConfig = {}; 39670 if (typeof window.initConfigurableSwatchOptions_4217 === "function") { 39671 var fullConfig = window.initConfigurableSwatchOptions_4217().optionConfig 39672 var editionTextConfig = fullConfig.edition; 39673 } 39674 return { 39675 editionText: '', 39676 config: editionTextConfig, 39677 productId: '4217', 39678 getEditionText(detail) { 39679 this.editionText = detail.productIndex ? 39680 this.config[detail.productIndex] : 39681 null; 39682 }, 39683 eventListeners: { 39684 ['@listing-configurable-selection-changed.window'](event) { 39685 if (this.productId == event.detail.productId) { 39686 this.getEditionText(event.detail); 39687 } 39688 39689 } 39690 } 39691 } 39692 } 39693 </script>
39693 39694 </form> 39695 39696 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4048/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk9461"> 39697 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4048"> 39698 <a href="https://meiner.de/fmv_de/textarbeit-im-philosophie-und-ethikunterricht" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 39699 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4048.window="$el.src = $event.detail" alt="Textarbeit im Philosophie- und Ethikunterricht" title="Textarbeit im Philosophie- und Ethikunterricht" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787340873_4.jpg" :style="{ 39700 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 39701 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 39702 }"> 39703 </a> 39704 <div class="product-info flex flex-col flex-grow "> 39705 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 39706 <div class="mb-2 text-sm text-gray-500 font-medium"> 39707 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 39708 Jörg Peters </a> 39709 <span>|</span> 39710 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 39711 Martina Peters (Hrsg.) 39712 </a> 39713 </div> 39714 <a class="product-item-link" href="https://meiner.de/fmv_de/textarbeit-im-philosophie-und-ethikunterricht"> 39715 Textarbeit im Philosophie- und Ethikunterricht </a> 39716 </div> 39717 39718 <div x-data="initEditionText_4048()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 39719 <!-- Marketing short text --> 39720 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 39721 </div> 39722 </div> 39723 39724 <div class="py-1 grid mb-4 "> 39725 39726 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4048,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4048,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7545":"1","7757":"1","7758":"1"},"childProductsAlertStatus":{"7545":"0","7757":"0","7758":"0"},"indexMapping":{"163:15":7545,"163:8":7757,"163:9":7758},"availabilityMessages":{"7545":"Lieferbar innerhalb von 3-5 Tagen","7757":"Download sofort verf\u00fcgbar","7758":"Download sofort verf\u00fcgbar"},"openAccess":{"4048":{"status":0},"7545":{"status":0},"7757":{"status":0}
39726,"7758":{"status":0}}},"availabilityMessages":{"7545":"Lieferbar innerhalb von 3-5 Tagen","7757":"Download sofort verf\u00fcgbar","7758":"Download sofort verf\u00fcgbar"},"openAccess":{"4048":{"status":0},"7545":{"status":0},"7757":{"status":0},"7758":{"status":0}}}'> 39727 <template x-if="containerVisible"> 39728 <!-- Popup Trigger --> 39729 <div> 39730 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 39731 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 39732 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 39733 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 39734<title>bell</title></svg> 39735</span> 39736 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 39737 39738 <!-- Popup Modal --> 39739 <template x-if="showModal"> 39740 <template x-teleport=".page-wrapper"> 39741 <div x-cloak class="fixed inset-0 flex items-center justify-center 39742 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 39743 <div class="relative bg-white rounded-lg shadow-xl 39744 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 39745 <div class="p-6"> 39746 <!-- Subscription Form for Popup --> 39747 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 39748 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 39749 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 39750 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 39751 39752 <div class="flex flex-col gap-3"> 39753 <div class="flex-grow grow"> 39754 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 39755 shadow-xs focus:outline-none focus:outline-hidden 39756 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 39757 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 39758 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 39759 </div> 39760 <input type="hidden" name="product_id" :value="currentProductId"> 39761 <input type="hidden" name="type" value="email"> 39762 39763 39764 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 39765 39766 <div class="amxnotif_guest_action"> 39767 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 39768 rounded-md focus:outline-none 39769 focus:outline-hidden focu
39769s:ring-2 39770 focus:ring-offset-2 disabled:opacity-50 39771 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 39772 Benachrichtigen </button> 39773 </div> 39774 </div> 39775 39776 <div class="flex items-start pt-2"> 39777 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 39778 text-blue-600 border-gray-300 rounded-sm"> 39779 <label class="amxnotif-stock-gdrp-label cursor-pointer 39780 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 39781 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 39782 </div> 39783 </form> 39784 </div> 39785 39786 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 39787 hover:text-gray-600 transition-colors" aria-label="Schließen"> 39788 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 39789 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 39790<title>x</title></svg> 39791 </button> 39792 </div> 39793 </div> 39794 </template> 39795 </template> 39796 </div> 39797 </template> 39798 </div> 39799 39800<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4048" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4048,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"7545":"1","7757":"1","7758":"1"},"childProductsAlertStatus":{"7545":"0","7757":"0","7758":"0"},"indexMapping":"{\u0022163:15\u0022:7545,\u0022163:8\u0022:7757,\u0022163:9\u0022:7758}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4048,"availabilityMessages":{"7545":"Lieferbar innerhalb von 3-5 Tagen","7757":"Download sofort verf\u00fcgbar","7758":"Download sofort verf\u00fcgbar"},"openAccess":{"4048":{"status":0},"7545":{"status":0},"7757":{"status":0},"7758":{"status":0}}}'> 39801 39802 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 39803 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 39804 <span x-html="optionsLabelText"></span> 39805 </p> 39806</div> </div> 39807 39808
39808<script> 39809 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 39810 try { 39811 const attributes = (config && config.attributes) ? config.attributes : null; 39812 if (!attributes) return []; 39813 let attr = null; 39814 if (Array.isArray(attributes)) { 39815 for (let i = 0; i < attributes.length; i++) { 39816 const a = attributes[i]; 39817 if (a && a.id == attrId) { 39818 attr = a; 39819 break; 39820 } 39821 } 39822 } else { 39823 attr = attributes[attrId]; 39824 } 39825 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 39826 } catch (e) { 39827 return []; 39828 } 39829 }; 39830 39831 function initConfigurableSwatchOptions_4048() { 39832 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7545"]},{"id":"8","label":"PDF","products":["7757"]},{"id":"9","label":"EPUB","products":["7758"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7545":{"baseOldPrice":{"amount":23.271027037383},"oldPrice":{"amount":24.9},"basePrice":{"amount":23.271027037383},"finalPrice":{"amount":24.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7757":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"7758":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":17.747662551402},"oldPrice":{"amount":18.99},"basePrice":{"amount":17.747662551402},"finalPrice":{"amount":18.99},"isApproxPrice":null},"productId":"4048","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7545":{"163":"15"},"7757":{"163":"8"},"7758":{"163":"9"}},"salable":{"163":{"15":["7545"],"8":["7757"],"9":["7758"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7545":"003654","7757":"003662","7758":"004087"},"output":{"7545":"Kartoniert","7757":"PDF","7758":"EPUB"},"original_name":{"7545":"","7757":"","7758":""},"openaccess_license_link":{"7545":"","7757":"","7758":""},"openaccess_license_name":{"7545":"","7757":"","7758":""},"openaccess_external_link":{"7545":"","7757":"","7758":""},"gpsr_safety_info":{"7545":"","7757":"","7758":""},"description":{"7545":"Wer sich mit den Theorien oder Positionen von Philosophinnen und Philosophen auseinandersetzen will, kommt nicht umhin, ihre Texte entweder als Ganzschriften oder in Ausz\u00fcgen zu lesen, sie zu analysieren, zu interpretieren und Stellung zu ihnen zu beziehen. So ist es kein Wunder, dass philosophische bzw. ethische Texte das zentrale Medium eines jeden Philosophie- bzw. Ethikunterrichts darstellen.<br\/><br\/>Eine Auseinandersetzung mit Texten bedeutet jedoch nicht, dass der Unterricht immer nur einer hermeneutischen W\u00fcste gleichen muss. Dieses Buch will anhand von Texten aus den unterschiedlichen Epochen der Philosophiegeschichte und den verschiedensten Disziplinen zeigen, dass der unterrichtliche Umgang mit Texten abwechslungsreich und kreativ gestaltet werden kann, um den Sch\u00fclerinnen und Sch\u00fclern die Gelegenheit zu geben, tief in die jeweilige philosophische Intention der Autorinnen und Autoren einzudringen. Zu Beginn des vorliegenden Bandes f\u00fchren die Herausgeber zun\u00e4chst in das Thema ein, bevor sich ein Theorie- und ein Praxisteil anschlie\u00dfen. W\u00e4hrend der Theorieteil sich der grunds\u00e4tzlichen Bedeutung von Texten im Philosophie- und Ethikunterricht widmet, wird im Praxisteil anhand konkreter Beispiele demonstriert, welche unterrichtlichen Verfahren des Umgangs mit Texten motivierend und ertragreich sein k\u00f6nnen. Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab.","7757":"Wer sich mit den Theorien oder Positionen von Philosophinnen und Philosophen auseinandersetzen will, kommt nicht umhin, ihre Texte entweder als Ganzschriften oder in Ausz\u00fcgen zu lesen, sie zu analysieren, zu interpretieren und Stellung zu ihnen zu beziehen. So ist es kein Wunder, dass philosophische bzw. ethische Texte das zentrale Medium eines jeden Philosophie- bzw. Ethikunterrichts darstellen.<br\/><br\/>Eine Auseinandersetzung mit Texten bedeutet jedoch nicht, dass der Unterricht immer nur einer hermeneutischen W\u00fcste gleichen muss. Dieses Buch will anhand von Texten aus den unter
39832schiedlichen Epochen der Philosophiegeschichte und den verschiedensten Disziplinen zeigen, dass der unterrichtliche Umgang mit Texten abwechslungsreich und kreativ gestaltet werden kann, um den Sch\u00fclerinnen und Sch\u00fclern die Gelegenheit zu geben, tief in die jeweilige philosophische Intention der Autorinnen und Autoren einzudringen. Zu Beginn des vorliegenden Bandes f\u00fchren die Herausgeber zun\u00e4chst in das Thema ein, bevor sich ein Theorie- und ein Praxisteil anschlie\u00dfen. W\u00e4hrend der Theorieteil sich der grunds\u00e4tzlichen Bedeutung von Texten im Philosophie- und Ethikunterricht widmet, wird im Praxisteil anhand konkreter Beispiele demonstriert, welche unterrichtlichen Verfahren des Umgangs mit Texten motivierend und ertragreich sein k\u00f6nnen. Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab.","7758":"Wer sich mit den Theorien oder Positionen von Philosophinnen und Philosophen auseinandersetzen will, kommt nicht umhin, ihre Texte entweder als Ganzschriften oder in Ausz\u00fcgen zu lesen, sie zu analysieren, zu interpretieren und Stellung zu ihnen zu beziehen. So ist es kein Wunder, dass philosophische bzw. ethische Texte das zentrale Medium eines jeden Philosophie- bzw. Ethikunterrichts darstellen.<br\/><br\/>Eine Auseinandersetzung mit Texten bedeutet jedoch nicht, dass der Unterricht immer nur einer hermeneutischen W\u00fcste gleichen muss. Dieses Buch will anhand von Texten aus den unterschiedlichen Epochen der Philosophiegeschichte und den verschiedensten Disziplinen zeigen, dass der unterrichtliche Umgang mit Texten abwechslungsreich und kreativ gestaltet werden kann, um den Sch\u00fclerinnen und Sch\u00fclern die Gelegenheit zu geben, tief in die jeweilige philosophische Intention der Autorinnen und Autoren einzudringen. Zu Beginn des vorliegenden Bandes f\u00fchren die Herausgeber zun\u00e4chst in das Thema ein, bevor sich ein Theorie- und ein Praxisteil anschlie\u00dfen. W\u00e4hrend der Theorieteil sich der grunds\u00e4tzlichen Bedeutung von Texten im Philosophie- und Ethikunterricht widmet, wird im Praxisteil anhand konkreter Beispiele demonstriert, welche unterrichtlichen Verfahren des Umgangs mit Texten motivierend und ertragreich sein k\u00f6nnen. Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab."},"doi":{"7545":"","7757":"10.28937\/978-3-7873-3662-3","7758":""},"isbn":{"7545":"978-3-7873-3654-8","7757":"978-3-7873-3662-3","7758":"978-3-7873-4087-3"},"marketing_short_text":{"7545":"","7757":"","7758":""},"recension_text":{"7545":"","7757":"","7758":""},"language":{"7545":"","7757":"","7758":""},"cover":{"7545":"Kartoniert","7757":"","7758":""},"pages":{"7545":"317 Seiten","7757":"317 Seiten","7758":"317 Seiten"},"edition":{"7545":"","7757":"Unver\u00e4nderte eBook-Ausgabe der 1. Auflage von 2023","7758":"Unver\u00e4nderte eBook-Ausgabe der 1. Auflage von 2023"},"pod":{"7545":"Nein","7757":"Nein","7758":"Nein"},"copyright_year":{"7545":"","7757":"","7758":""},"vlb_tix_link":{"7545":"https:\/\/neu.vlbtix.de\/products\/9783787336548?type=gtin","7757":"","7758":""},"defaultValues":{"163":"15"}}; 39833 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 39834 39835 if (typeof window.amxnotif_wrap_attributes === 'function') { 39836 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 39837 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 39838 } 39839 39840 const configurableOptionsComponent = initConfigurableOptions( 39841 '4048', 39842 config 39843 ); 39844 const swatchOptionsComponent = initSwatchOptions( 39845 swatchConfig 39846 ); 39847 39848 // DWS - Configurable product preselect start 39849 const confProdPreSelect = () => { 39850 return { 39851 preselectQuerystringItems() { 39852 var data = {"id":"7545","output":"15"}; 39853 const urlQueryParams = new URLSearchParams(window.location.search); 39854 39855 this.$nextTick(() => { 39856 setTimeout(() => { 39857 const rootEl = this.$root || this.$el; 39858 if (!rootEl) return; 39859 39860 const applySelection = (attrCode, attrValue) => { 39861 if (attrValue === undefined || attrValue === null || attrValue === '') return; 39862 39863 const attributes = Object.values(this.optionConfig.attributes || {}); 39864 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 39865 39866 if (targetAttr) { 39867 const attrId = String(targetAttr.id); 39868 const optionVal = String(attrValue); 39869 39870 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 39871 39872 if (inputEl) { 39873 inputEl.click(); 39874 inputEl.dispatchEvent(new Event('change', { 39875 bubbles: true 39876 })); 39877 } else { 39878 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 39879 if (selectEl) { 39880 selectEl.value = optionVal; 39881 selectEl.dispatchEvent(new Event('change', { 39882 bubbles: true 39883 })); 39884 } 39885 } 39886 39887 this.changeOption(attrId, optionVal, false); 39888 } 39889 }; 39890 39891 if (data && typeof data === 'object') {
39892 Object.keys(data).forEach(key => applySelection(key, data[key])); 39893 } 39894 39895 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 39896 if (attribute && attribute.code) { 39897 let optionValue = urlQueryParams.get(attribute.code); 39898 if (optionValue) { 39899 let optionId = false; 39900 const attributes = Object.values(this.optionConfig.attributes || {}); 39901 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 39902 39903 let found = false; 39904 Object.values(targetAttr.options).map(option => { 39905 if (found === false && option.label === optionValue) { 39906 optionId = option.id; 39907 found = true; 39908 } 39909 }); 39910 39911 const attrId = String(targetAttr.id); 39912 let optionVal = String(optionValue); 39913 if (found) { 39914 optionVal = String(optionId); 39915 } 39916 39917 applySelection(attribute.code, optionVal); 39918 } 39919 } 39920 }); 39921 }, 100); 39922 }); 39923 } 39924 } 39925 }; 39926 // DWS - Configurable product preselect end 39927 39928 const result = Object.assign( 39929 configurableOptionsComponent, 39930 swatchOptionsComponent, { 39931 productId: '4048', 39932 productIndex: 0, 39933 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 39934 showSwatches: false, 39935 precalcOptions: {}, 39936 originalInit: configurableOptionsComponent.init, 39937 init() { 39938 try { 39939 this.precalcOptions = {}; 39940 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 39941 this.preselectQuerystringItems(); 39942 if (Array.isArray(attrSource)) { 39943 attrSource.forEach(attr => { 39944 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 39945 }); 39946 } else if (attrSource && typeof attrSource === 'object') { 39947 Object.keys(attrSource).forEach(id => { 39948 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 39949 }); 39950 } 39951 } catch (e) { 39952 console.error('Pre-calc error:', e); 39953 } 39954 39955 if (typeof this.originalInit === 'function') { 39956 this.originalInit(); 39957 } 39958 39959 try { 39960 this.initShowSwatchesIntersect(); 39961 } catch (e) { 39962 console.error('intersect error:', e); 39963 } 39964 }, 39965 39966 updateGallery() { 39967 if (!this.productIndex) return; 39968 39969 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 39970 method: 'GET', 39971 headers: { 39972 'Content-Type': 'application/json', 39973 'X-Requested-With': 'XMLHttpRequest' 39974 } 39975 }) 39976 .then(response => response.json()) 39977 .then(data => { 39978 if (data && data.medium) { 39979 window.dispatchEvent(new CustomEvent("update-gallery-4048", { 39980 detail: data.medium 39981 })); 39982 } 39983 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 39984 }, 39985 39986 39987 initShowSwatchesIntersect() { 39988 const observer = new IntersectionObserver(entries => { 39989 if (entries[0].isIntersecting) { 39990 this.showSwatches = true; 39991 observer.disconnect(); 39992 } 39993 }, { 39994 rootMargin: '512px' 39995 }); 39996 observer.observe(this.$el); 39997 }, 39998 getOptions(attrId) { 39999 return this.precalcOptions[attrId] || []; 40000 }, 40001 getOptionsByAttrId() { 40002 return this.getOptions(this.$el.dataset.attributeId); 40003 }, 40004 _getItemId() { 40005 if (this.item && this.item.id) return this.item.id; 40006 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 40007 }, 40008 getSwatchOptionHtmlId() { 40009 const itemId = this._getItemId(); 40010 return itemId ? this.$id(`attribute-option-4048-${itemId}`) : ''; 40011 }, 40012 getSwatchOptionHtmlIdGroup() { 40013 const itemId = this._getItemId(); 40014 return itemId ? [`attribute-option-4048-${itemId}`] : []; 40015 }, 40016 getAttributeSwatchData(attributeId) { 40017 const data = Object.assign({}, this.swatchConfig[attributeId]); 40018 if (data['additional_data']) { 40019 try { 40020 data['details'] = JSON.parse(data['additional_data']); 40021 } catch (e) { 40022 data['details'] = {}; 40023 } 40024 } 40025 return data; 40026 }, 40027 getSwatchType(attributeId, optionId) { 40028 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 40029 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 40030 } 40031 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 40032 this.swatchConfig[attributeId].details.swatch_input_type : 40033 "empty"; 40034 if (type === 'visual') { 40035 const config = this.swatchConfig[attributeId]; 40036 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 40037 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 40038 } 40039 // Fallback to first option type 40040 for (const oId in config) { 40041 if (config[oId] && typeof config[oId].type !== 'undefined') { 40042 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 40043 } 40044 } 40045 } 40046 return type; 40047 }, 40048 mapSwatchTypeNumberToTypeCode(type) { 40049 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 40050 }, 40051 isTextSwatch() { 40052 const itemId = this._getItemId(); 40053 if (!this.$el || !itemId) return false;
40054 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40055 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 40056 }, 40057 40058 getSwatchText() { 40059 const itemId = this._getItemId(); 40060 if (this.item) return this.item.label || ''; 40061 if (!this.$el || !itemId) return ''; 40062 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40063 const options = attrId ? this.getOptions(attrId) : []; 40064 const opt = options.find(o => o.id == itemId); 40065 return opt ? opt.label : ''; 40066 }, 40067 getSwatchBackgroundStyle() { 40068 const itemId = this._getItemId(); 40069 if (!this.$el || !itemId) return ''; 40070 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40071 if (!attrId) return ''; 40072 const type = this.getSwatchType(attrId, itemId); 40073 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 40074 this.swatchConfig[attrId][itemId] : 40075 null; 40076 if (!swatchData) return ''; 40077 if (type === "color") return 'background-color:' + swatchData.value; 40078 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 40079 return ''; 40080 }, 40081 swatchOptionClasses() { 40082 const itemId = this._getItemId(); 40083 if (!this.$el || !itemId) return {}; 40084 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40085 return { 40086 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 40087 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 40088 'w-6 h-6': !this.isTextSwatch() 40089 } 40090 }, 40091 40092 onFocusSwatchItem() { 40093 const itemId = this._getItemId(); 40094 if (itemId) this.focusedLabel = itemId; 40095 }, 40096 onChangeOption() { 40097 const itemId = this._getItemId(); 40098 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 40099 if (attrId && itemId) this.changeOption(attrId, itemId); 40100 }, 40101 changeOption(attributeId, value) { 40102 if (value === '') { 40103 return; 40104 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 40105 } else { 40106 this.selectedValues[attributeId] = value; 40107 } 40108 40109 this.findSimpleIndex(); 40110 this.findAllowedAttributeOptions(); 40111 this.updatePrices(); 40112 this.updateGallery(); 40113 40114 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 40115 this.findProductIdsForPartialSelection(this.selectedValues) : []; 40116 40117 const eventDetail = { 40118 productId: this.productId, 40119 optionId: attributeId, 40120 value: value, 40121 productIndex: this.productIndex || 0, 40122 selectedValues: this.selectedValues, 40123 candidates: candidates, 40124 sourceElement: this.$el 40125 }; 40126 40127 // Dispatch for Amasty 40128 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 40129 detail: eventDetail 40130 })); 40131 40132 // Dispatch for Hyva listing 40133 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 40134 detail: eventDetail 40135 })); 40136 }, 40137 40138 40139 clearOptionIfActive() { 40140 const itemId = this._getItemId(); 40141 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 40142 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 40143 this.changeOption(attrId, ''); 40144 40145 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 40146 if (!input && this.$el?.querySelector) { 40147 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 40148 } 40149 if (!input && this.$el?.closest) { 40150 const root = this.$el.closest('[data-product-id]') || this.$el; 40151 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 40152 } 40153 if (input) { 40154 input.checked = false;
40155 } 40156 } 40157 }, 40158 get optionIsEnabled() { 40159 const itemId = this._getItemId(); 40160 if (!this.$el || !itemId) return true; 40161 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40162 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 40163 return !!allowedOptions.find(opt => opt.id == itemId); 40164 }, 40165 get isSelected() { 40166 const itemId = this._getItemId(); 40167 if (!this.$el || !itemId) return false; 40168 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40169 return attrId ? (this.selectedValues[attrId] == itemId) : false; 40170 }, 40171 get isSwatchRequired() { 40172 if (!this.$el) return false; 40173 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40174 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 40175 }, 40176 focusedLabel: false, 40177 activeTooltipItem: false, 40178 tooltipPositionElement: false,
40179 setActiveTooltipItem() { 40180 const itemId = this._getItemId(); 40181 if (!this.$el || !itemId) return; 40182 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40183 this.activeTooltipItem = { 40184 attribute: attrId, 40185 item: itemId, 40186 index: 0 40187 }; 40188 this.tooltipPositionElement = this.$event ? this.$event.target : null; 40189 }, 40190 unsetActiveTooltipItem() { 40191 this.activeTooltipItem = false; 40192 } 40193 }, 40194 confProdPreSelect() 40195 ); 40196 40197 if (result.optionConfig && result.optionConfig.attributes) { 40198 const attributes = result.optionConfig.attributes; 40199 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 40200 let source = attributes; 40201 if (Array.isArray(attributes)) { 40202 source = {}; 40203 attributes.forEach(attr => { 40204 if (attr && attr.id) source[attr.id] = attr; 40205 }); 40206 } 40207 const values = Object.values(source); 40208 const wrapper = Object.assign(values, source); 40209 Object.defineProperty(wrapper, '__amxnotifWrapped', { 40210 value: true, 40211 enumerable: false 40212 }); 40213 result.optionConfig.attributes = wrapper; 40214 } 40215 } 40216 40217 return result; 40218 } 40219 40220 window.addEventListener('alpine:init', () => { 40221 Alpine.data('initConfigurableSwatchOptions_4048', initConfigurableSwatchOptions_4048); 40222 }, { 40223 once: true 40224 }); 40225 </script>
40225 40226 40227 <div x-data="initConfigurableSwatchOptions_4048" x-defer="intersect"> 40228 <div class="pagebuilder-home-hidden"> 40229 40230 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 40231 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 40232 <template x-if="showSwatches"> 40233 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4048-163" role="radiogroup" aria-label="Einband"> 40234 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 40235 <div :data-option-id="item.id" style="display: contents"> 40236 <div x-id="getSwatchOptionHtmlIdGroup"> 40237 <template x-if="optionIsEnabled"> 40238 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
40238self="unsetActiveTooltipItem"> 40239 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4048-163"> 40240 <div> 40241 <template x-if="isTextSwatch"> 40242 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 40243 </template> 40244 <template x-if="!optionIsActive(163, item.id)"> 40245 <div> 40246 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 40247 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 40248 </svg> 40249 </div> 40250 </template> 40251 </div> 40252 </label> 40253 </template> 40254</div> </div> 40255 </template> 40256 </div> 40257 </template> 40258 </div> 40259 </div> 40260 </div> 40261 </div> 40262 40263 <div class="meta py-4 pagebuilder-home-hidden"> 40264 <div x-data="initMarketingShortText_4048()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 40265 <!-- Marketing short text --> 40266 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 40267 </div> 40268 40269 <!-- Short description --> 40270 <div class="short-description"> 40271 Wer sich mit den Theorien oder Positionen von Philosophinnen und Philosophen auseinandersetzen will, kommt nicht umhin, ihre Texte entweder als Ganzschriften oder in Auszügen zu lesen, sie zu ... <a href="https://meiner.de/fmv_de/textarbeit-im-philosophie-und-ethikunterricht" class="underline">mehr</a> 40272 </div> 40273 </div> 40274 40275 <!-- Series --> 40276 <div class="mb-1"> 40277 <span class="sr-only">Reihe:</span> 40278 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 40279 <span>Methoden im Philosophie- und Ethikunterricht</span> 40280 </a> 40281 5 </div> 40282 40283 40284 <div class="mb-1"> 40285 <span x-data="initEditionText_4048()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 40286 <!-- Marketing short text --> 40287 <span class="edition-text" x-html="editionText"></span> 2023, 317 Seiten </span> 40288 </div> 40289 40290 </div> 40291 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 40292 40293 <div class="justify-end" x-data="initPriceBox()" @update-prices-4048.window="updatePrice($event.detail);"> 40294 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4048" data-price-box="product-id-4048"><span class="normal-price"> 40295 <span x-data x-id="['product\u002Dprice\u002D4048']" class="price-container price-final_price tax weee"> 40296 <span class="price-label">Ab</span> 40297 <span class="approx-price">ca. </span>
40298 <span :id="$id('product\u002Dprice\u002D4048')" data-price-amount="18.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">18,99 €</span></span> 40299 </span> 40300</span> 40301 40302 40303</div> </div> 40304 40305 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 40306 <div class="open-access-container open-access-container-4048 flex mt-4 ml-auto sm:mt-0 hidden"> 40307 <div class="text-gray-700"> 40308 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 40309 <a href="" target="_blank" class="open-access-external-link m-auto "> 40310 Kostenlos online lesen </a> 40311 </button> 40312 </div> 40313 </div> 40314 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Textarbeit im Philosophie- und Ethikunterricht" aria-label="In den Warenkorb Textarbeit im Philosophie- und Ethikunterricht" data-addto="cart"> 40315 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 40316 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 40317</svg> 40318 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 40319 In den Warenkorb </span> 40320 </button> 40321 40322<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4048)" aria-label="Zur Wunschliste hinzufügen Textarbeit im Philosophie- und Ethikunterricht" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 40323 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 40324 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 40325</svg> 40326</button> 40327 </div> 40328 </div> 40329 </div> 40330
40330<script> 40331 function initMarketingShortText_4048() { 40332 var marketingShortTextConfig = {}; 40333 if (typeof window.initConfigurableSwatchOptions_4048 === "function") { 40334 var fullConfig = window.initConfigurableSwatchOptions_4048().optionConfig 40335 var marketingShortTextConfig = fullConfig.marketing_short_text; 40336 } 40337 return { 40338 marketingShortText: '', 40339 config: marketingShortTextConfig, 40340 productId: '4048', 40341 getMarketingShortText(detail) { 40342 this.marketingShortText = detail.productIndex ? 40343 this.config[detail.productIndex] : 40344 null; 40345 }, 40346 eventListeners: { 40347 ['@listing-configurable-selection-changed.window'](event) { 40348 if (this.productId == event.detail.productId) { 40349 this.getMarketingShortText(event.detail); 40350 } 40351 40352 } 40353 } 40354 } 40355 } 40356 40357 function initEditionText_4048() { 40358 var editionTextConfig = {}; 40359 if (typeof window.initConfigurableSwatchOptions_4048 === "function") { 40360 var fullConfig = window.initConfigurableSwatchOptions_4048().optionConfig 40361 var editionTextConfig = fullConfig.edition; 40362 } 40363 return { 40364 editionText: '', 40365 config: editionTextConfig, 40366 productId: '4048', 40367 getEditionText(detail) { 40368 this.editionText = detail.productIndex ? 40369 this.config[detail.productIndex] : 40370 null; 40371 }, 40372 eventListeners: { 40373 ['@listing-configurable-selection-changed.window'](event) { 40374 if (this.productId == event.detail.productId) { 40375 this.getEditionText(event.detail); 40376 } 40377 40378 } 40379 } 40380 } 40381 } 40382 </script>
40382 40383 </form> 40384 40385 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/3991/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk9424"> 40386 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="3991"> 40387 <a href="https://meiner.de/fmv_de/philosophieren-mit-spielen" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 40388 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-3991.window="$el.src = $event.detail" alt="Philosophieren mit Spielen" title="Philosophieren mit Spielen" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787340866_4.jpg" :style="{ 40389 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 40390 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 40391 }"> 40392 </a> 40393 <div class="product-info flex flex-col flex-grow "> 40394 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 40395 <div class="mb-2 text-sm text-gray-500 font-medium"> 40396 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 40397 Jörg Peters </a> 40398 <span>|</span> 40399 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 40400 Martina Peters (Hrsg.) 40401 </a> 40402 </div> 40403 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophieren-mit-spielen"> 40404 Philosophieren mit Spielen </a> 40405 </div> 40406 40407 <div x-data="initEditionText_3991()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 40408 <!-- Marketing short text --> 40409 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 40410 </div> 40411 </div> 40412 40413 <div class="py-1 grid mb-4 "> 40414 40415 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":3991,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":3991,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"3946":"1","3953":"1","3954":"1"},"childProductsAlertStatus":{"3946":"0","3953":"0","3954":"0"},"indexMapping":{"163:15":3946,"163:8":3953,"163:9":3954},"availabilityMessages":{"3946":"Lieferbar innerhalb von 3-5 Tagen","3953":"Download sofort verf\u00fcgbar","3954":"Download sofort verf\u00fcgbar"},"openAccess":{"3991":{"status":0},"3946":{"status":0},"3953":{"status":0},"3954":{"status":0}}},"availabilityMessages":{"3946":"Lieferbar innerhalb von 3-5 Tagen","3953":"Download sofort verf\u00fcgbar","3954":"Download sofort verf\u00fcgbar"},"openAccess":{"3991":{"status":0},"3946":{"status":0},"3953":{"status":0},"3954":{"status":0}}}'> 40416 <template x-if="containerVisible"> 40417 <!-- Popup Trigger --> 40418 <div> 40419 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 40420 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
40421 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 40422 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 40423<title>bell</title></svg> 40424</span> 40425 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 40426 40427 <!-- Popup Modal --> 40428 <template x-if="showModal"> 40429 <template x-teleport=".page-wrapper"> 40430 <div x-cloak class="fixed inset-0 flex items-center justify-center 40431 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 40432 <div class="relative bg-white rounded-lg shadow-xl 40433 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 40434 <div class="p-6"> 40435 <!-- Subscription Form for Popup --> 40436 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 40437 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 40438 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 40439 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 40440 40441 <div class="flex flex-col gap-3"> 40442 <div class="flex-grow grow"> 40443 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 40444 shadow-xs focus:outline-none focus:outline-hidden 40445 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 40446 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 40447 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 40448 </div> 40449 <input type="hidden" name="product_id" :value="currentProductId"> 40450 <input type="hidden" name="type" value="email"> 40451 40452 40453 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 40454 40455 <div class="amxnotif_guest_action"> 40456 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 40457 rounded-md focus:outline-none 40458 focus:outline-hidden focus:ring-2 40459 focus:ring-offset-2 disabled:opacity-50 40460 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 40461 Benachrichtigen </button> 40462 </div> 40463 </div> 40464 40465 <div class="flex items-start pt-2"> 40466 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 40467 text-blue-600 border-gray-300 rounded-sm"> 40468 <label class="amxnotif-stock-gdrp-label cursor-pointer 40469 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 40470 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 40471 </div> 40472 </form> 40473 </div> 40474 40475 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 40476 hover:text-gray-600 transition-colors" aria-label="Schließen"> 40477 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 40478 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 40479<title>x</title></svg> 40480 </button> 40481 </div> 40482 </div> 40483 </template> 40484 </template> 40485 </div> 40486 </template> 40487 </div> 40488 40489<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_3991" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":3991,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"3946":"1","3953":"1","3954":"1"},"childProductsAlertStatus":{"3946":"0","3953":"0","3954":"0"},"indexMapping":"{\u0022163:15\u0022:3946,\u0022163:8\u0022:3953,\u0022163:9\u0022:3954}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":3991,"availabilityMessages":{"3946":"Lieferbar innerhalb von 3-5 Tagen","3953":"Download sofort verf\u00fcgbar","3954":"Download sofort verf\u00fcgbar"},"openAccess":{"3991":{"status":0},"3946":{"status":0},"3953":{"status":0},"3954":{"status":0}}}'> 40490 40491 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
40492 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 40493 <span x-html="optionsLabelText"></span> 40494 </p> 40495</div> </div> 40496 40497
40497<script> 40498 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 40499 try { 40500 const attributes = (config && config.attributes) ? config.attributes : null; 40501 if (!attributes) return []; 40502 let attr = null; 40503 if (Array.isArray(attributes)) { 40504 for (let i = 0; i < attributes.length; i++) { 40505 const a = attributes[i]; 40506 if (a && a.id == attrId) { 40507 attr = a; 40508 break; 40509 } 40510 } 40511 } else { 40512 attr = attributes[attrId]; 40513 } 40514 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 40515 } catch (e) { 40516 return []; 40517 } 40518 }; 40519 40520 function initConfigurableSwatchOptions_3991() { 40521 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["3946"]},{"id":"8","label":"PDF","products":["3953"]},{"id":"9","label":"EPUB","products":["3954"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"3946":{"baseOldPrice":{"amount":21.401868158879},"oldPrice":{"amount":22.9},"basePrice":{"amount":21.401868158879},"finalPrice":{"amount":22.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"3953":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"3954":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":14.009344794393},"oldPrice":{"amount":14.99},"basePrice":{"amount":14.009344794393},"finalPrice":{"amount":14.99},"isApproxPrice":null},"productId":"3991","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"3946":{"163":"15"},"3953":{"163":"8"},"3954":{"163":"9"}},"salable":{"163":{"15":["3946"],"8":["3953"],"9":["3954"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"3946":"003655","3953":"003663","3954":"004086"},"output":{"3946":"Kartoniert","3953":"PDF","3954":"EPUB"},"original_name":{"3946":"","3953":"","3954":""},"openaccess_license_link":{"3946":"","3953":"","3954":""},"openaccess_license_name":{"3946":"","3953":"","3954":""},"openaccess_external_link":{"3946":"","3953":"","3954":""},"gpsr_safety_info":{"3946":"","3953":"","3954":""},"description":{"3946":"Gesellschaftsspiele haben seit Beginn der Coronakrise wieder Hochkonjunktur. Dabei bieten sie nicht nur abwechslungsreiche Unterhaltung f\u00fcr private Spieleabende, sondern sind dank ihrer vielf\u00e4ltigen Thematiken und unterschiedlichen Spielsysteme auch als Methode f\u00fcr den Philosophie- und Ethikunterricht geeignet, um Sch\u00fclerinnen und Sch\u00fclern einen alternativen Zugang zu fachlichen Inhalten zu erm\u00f6glichen.<br\/><br\/>Wenn Menschen nicht aus professionellen oder semi-professionellen Gr\u00fcnden spielen, so handeln sie i. d. R. aufgrund einer intrinsischen Motivation. Ihr Ziel besteht dann nicht in der Verfolgung irgendeines Zweckes, sondern darin, ein Spiel um seiner selbst willen zu spielen. Die dem Spielen zumeist entgegengebrachte positive Einstellung l\u00e4sst sich f\u00fcr den Philosophie- bzw. Ethikunterricht nutzen, auch wenn durch den unterrichtlichen Einsatz von Spielen ein den Sch\u00fclerinnen und Sch\u00fclern bewusstes Stundenziel verfolgt wird. Durch das Spielen kann der Zugang zu philosophischen Fragestellungen erleichtert werden. Dar\u00fcber hinaus k\u00f6nnen philosophische Positionen oder Theorien veranschaulicht und Wege ins philosophische Denken er\u00f6ffnet werden. Der Band beginnt mit einigen in die Thematik einf\u00fchrenden Bemerkungen der Herausgeber, auf die sowohl ein Theorie- als auch ein Praxisteil folgt. Im Theorieteil findet sich neben einem historischen Abriss \u00fcber die didaktische Bedeutung des Spiels auch ein \u00dcberblick \u00fcber die Chancen und Grenzen des Einsatzes von Spielen im Philosophie- und Ethikunterricht. Im Praxisteil werden zahlreiche Spiele vorgestellt, die sich besonders f\u00fcr den Einsatz in den beiden Sekundarstufen eignen. Zus\u00e4tzlich bietet dieser Teil die entsprechenden Spielvorlagen zur unterrichtlichen Umsetzung. Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab.","3953":"Gesellschaftsspiele haben seit Beginn der Coronakrise wieder Hochkonjunktur. Dabei bieten sie nicht nur abwechslungsreiche Unterhaltung f\u00fcr private Spieleabende, sondern sind dank ihrer vielf\u00e4ltigen Thematiken und unter
40521schiedlichen Spielsysteme auch als Methode f\u00fcr den Philosophie- und Ethikunterricht geeignet, um Sch\u00fclerinnen und Sch\u00fclern einen alternativen Zugang zu fachlichen Inhalten zu erm\u00f6glichen.<br\/><br\/>Wenn Menschen nicht aus professionellen oder semi-professionellen Gr\u00fcnden spielen, so handeln sie i. d. R. aufgrund einer intrinsischen Motivation. Ihr Ziel besteht dann nicht in der Verfolgung irgendeines Zweckes, sondern darin, ein Spiel um seiner selbst willen zu spielen. Die dem Spielen zumeist entgegengebrachte positive Einstellung l\u00e4sst sich f\u00fcr den Philosophie- bzw. Ethikunterricht nutzen, auch wenn durch den unterrichtlichen Einsatz von Spielen ein den Sch\u00fclerinnen und Sch\u00fclern bewusstes Stundenziel verfolgt wird. Durch das Spielen kann der Zugang zu philosophischen Fragestellungen erleichtert werden. Dar\u00fcber hinaus k\u00f6nnen philosophische Positionen oder Theorien veranschaulicht und Wege ins philosophische Denken er\u00f6ffnet werden. Der Band beginnt mit einigen in die Thematik einf\u00fchrenden Bemerkungen der Herausgeber, auf die sowohl ein Theorie- als auch ein Praxisteil folgt. Im Theorieteil findet sich neben einem historischen Abriss \u00fcber die didaktische Bedeutung des Spiels auch ein \u00dcberblick \u00fcber die Chancen und Grenzen des Einsatzes von Spielen im Philosophie- und Ethikunterricht. Im Praxisteil werden zahlreiche Spiele vorgestellt, die sich besonders f\u00fcr den Einsatz in den beiden Sekundarstufen eignen. Zus\u00e4tzlich bietet dieser Teil die entsprechenden Spielvorlagen zur unterrichtlichen Umsetzung. Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab.","3954":"Gesellschaftsspiele haben seit Beginn der Coronakrise wieder Hochkonjunktur. Dabei bieten sie nicht nur abwechslungsreiche Unterhaltung f\u00fcr private Spieleabende, sondern sind dank ihrer vielf\u00e4ltigen Thematiken und unterschiedlichen Spielsysteme auch als Methode f\u00fcr den Philosophie- und Ethikunterricht geeignet, um Sch\u00fclerinnen und Sch\u00fclern einen alternativen Zugang zu fachlichen Inhalten zu erm\u00f6glichen.<br\/><br\/>Wenn Menschen nicht aus professionellen oder semi-professionellen Gr\u00fcnden spielen, so handeln sie i. d. R. aufgrund einer intrinsischen Motivation. Ihr Ziel besteht dann nicht in der Verfolgung irgendeines Zweckes, sondern darin, ein Spiel um seiner selbst willen zu spielen. Die dem Spielen zumeist entgegengebrachte positive Einstellung l\u00e4sst sich f\u00fcr den Philosophie- bzw. Ethikunterricht nutzen, auch wenn durch den unterrichtlichen Einsatz von Spielen ein den Sch\u00fclerinnen und Sch\u00fclern bewusstes Stundenziel verfolgt wird. Durch das Spielen kann der Zugang zu philosophischen Fragestellungen erleichtert werden. Dar\u00fcber hinaus k\u00f6nnen philosophische Positionen oder Theorien veranschaulicht und Wege ins philosophische Denken er\u00f6ffnet werden. Der Band beginnt mit einigen in die Thematik einf\u00fchrenden Bemerkungen der Herausgeber, auf die sowohl ein Theorie- als auch ein Praxisteil folgt. Im Theorieteil findet sich neben einem historischen Abriss \u00fcber die didaktische Bedeutung des Spiels auch ein \u00dcberblick \u00fcber die Chancen und Grenzen des Einsatzes von Spielen im Philosophie- und Ethikunterricht. Im Praxisteil werden zahlreiche Spiele vorgestellt, die sich besonders f\u00fcr den Einsatz in den beiden Sekundarstufen eignen. Zus\u00e4tzlich bietet dieser Teil die entsprechenden Spielvorlagen zur unterrichtlichen Umsetzung. Der Band schlie\u00dft mit einer weiterf\u00fchrenden Auswahlbibliographie ab."},"doi":{"3946":"","3953":"10.28937\/978-3-7873-3663-0","3954":"10.28937\/978-3-7873-4086-6"},"isbn":{"3946":"978-3-7873-3655-5","3953":"978-3-7873-3663-0","3954":"978-3-7873-4086-6"},"marketing_short_text":{"3946":"","3953":"Mit zahlreichen Unterrichtsvorlagen","3954":"Mit zahlreichen Unterrichtsvorlagen"},"recension_text":{"3946":"","3953":"","3954":""},"language":{"3946":"","3953":"","3954":""},"cover":{"3946":"Kartoniert","3953":"","3954":""},"pages":{"3946":"218 Seiten","3953":"218 Seiten","3954":"218 Seiten"},"edition":{"3946":"","3953":"Unver\u00e4nderte eBook-Ausgabe der 1. Auflage von 2021","3954":"Unver\u00e4nderte EPUB-Ausgabe der 1. Auflage von 2021"},"pod":{"3946":"Nein","3953":"Nein","3954":"Nein"},"copyright_year":{"3946":"","3953":"","3954":""},"vlb_tix_link":{"3946":"https:\/\/neu.vlbtix.de\/products\/978378733
405216555?type=gtin","3953":"","3954":""},"defaultValues":{"163":"15"}}; 40522 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"9":{"type":"0","value":"EPUB","label":"EPUB"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 40523 40524 if (typeof window.amxnotif_wrap_attributes === 'function') { 40525 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 40526 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 40527 } 40528 40529 const configurableOptionsComponent = initConfigurableOptions( 40530 '3991', 40531 config 40532 ); 40533 const swatchOptionsComponent = initSwatchOptions( 40534 swatchConfig 40535 ); 40536 40537 // DWS - Configurable product preselect start 40538 const confProdPreSelect = () => { 40539 return { 40540 preselectQuerystringItems() { 40541 var data = {"id":"3946","output":"15"}; 40542 const urlQueryParams = new URLSearchParams(window.location.search); 40543 40544 this.$nextTick(() => { 40545 setTimeout(() => { 40546 const rootEl = this.$root || this.$el; 40547 if (!rootEl) return; 40548 40549 const applySelection = (attrCode, attrValue) => { 40550 if (attrValue === undefined || attrValue === null || attrValue === '') return; 40551 40552 const attributes = Object.values(this.optionConfig.attributes || {}); 40553 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 40554 40555 if (targetAttr) { 40556 const attrId = String(targetAttr.id); 40557 const optionVal = String(attrValue); 40558 40559 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 40560 40561 if (inputEl) { 40562 inputEl.click(); 40563 inputEl.dispatchEvent(new Event('change', { 40564 bubbles: true 40565 })); 40566 } else { 40567 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 40568 if (selectEl) { 40569 selectEl.value = optionVal; 40570 selectEl.dispatchEvent(new Event('change', { 40571 bubbles: true 40572 })); 40573 } 40574 } 40575 40576 this.changeOption(attrId, optionVal, false); 40577 } 40578 }; 40579 40580 if (data && typeof data === 'object') { 40581 Object.keys(data).forEach(key => applySelection(key, data[key])); 40582 } 40583 40584 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 40585 if (attribute && attribute.code) { 40586 let optionValue = urlQueryParams.get(attribute.code); 40587 if (optionValue) { 40588 let optionId = false;
40589 const attributes = Object.values(this.optionConfig.attributes || {}); 40590 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 40591 40592 let found = false; 40593 Object.values(targetAttr.options).map(option => { 40594 if (found === false && option.label === optionValue) { 40595 optionId = option.id; 40596 found = true; 40597 } 40598 }); 40599 40600 const attrId = String(targetAttr.id); 40601 let optionVal = String(optionValue); 40602 if (found) { 40603 optionVal = String(optionId); 40604 } 40605 40606 applySelection(attribute.code, optionVal); 40607 } 40608 } 40609 }); 40610 }, 100); 40611 }); 40612 } 40613 } 40614 }; 40615 // DWS - Configurable product preselect end 40616 40617 const result = Object.assign( 40618 configurableOptionsComponent, 40619 swatchOptionsComponent, { 40620 productId: '3991', 40621 productIndex: 0, 40622 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 40623 showSwatches: false, 40624 precalcOptions: {}, 40625 originalInit: configurableOptionsComponent.init, 40626 init() { 40627 try { 40628 this.precalcOptions = {}; 40629 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 40630 this.preselectQuerystringItems(); 40631 if (Array.isArray(attrSource)) { 40632 attrSource.forEach(attr => { 40633 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 40634 }); 40635 } else if (attrSource && typeof attrSource === 'object') { 40636 Object.keys(attrSource).forEach(id => { 40637 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 40638 }); 40639 } 40640 } catch (e) { 40641 console.error('Pre-calc error:', e); 40642 } 40643 40644 if (typeof this.originalInit === 'function') { 40645 this.originalInit(); 40646 } 40647 40648 try { 40649 this.initShowSwatchesIntersect(); 40650 } catch (e) { 40651 console.error('intersect error:', e); 40652 } 40653 }, 40654 40655 updateGallery() { 40656 if (!this.productIndex) return; 40657 40658 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 40659 method: 'GET', 40660 headers: { 40661 'Content-Type': 'application/json', 40662 'X-Requested-With': 'XMLHttpRequest' 40663 } 40664 }) 40665 .then(response => response.json()) 40666 .then(data => { 40667 if (data && data.medium) { 40668 window.dispatchEvent(new CustomEvent("update-gallery-3991", { 40669 detail: data.medium 40670 })); 40671 } 40672 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 40673 }, 40674 40675 40676 initShowSwatchesIntersect() { 40677 const observer = new IntersectionObserver(entries => { 40678 if (entries[0].isIntersecting) { 40679 this.showSwatches = true; 40680 observer.disconnect(); 40681 } 40682 }, { 40683 rootMargin: '512px' 40684 }); 40685 observer.observe(this.$el); 40686 }, 40687 getOptions(attrId) { 40688 return this.precalcOptions[attrId] || []; 40689 }, 40690 getOptionsByAttrId() { 40691 return this.getOptions(this.$el.dataset.attributeId); 40692 }, 40693 _getItemId() { 40694 if (this.item && this.item.id) return this.item.id; 40695 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 40696 }, 40697 getSwatchOptionHtmlId() { 40698 const itemId = this._getItemId(); 40699 return itemId ? this.$id(`attribute-option-3991-${itemId}`) : ''; 40700 }, 40701 getSwatchOptionHtmlIdGroup() { 40702 const itemId = this._getItemId(); 40703 return itemId ? [`attribute-option-3991-${itemId}`] : []; 40704 }, 40705 getAttributeSwatchData(attributeId) { 40706 const data = Object.assign({}, this.swatchConfig[attributeId]); 40707 if (data['additional_data']) { 40708 try { 40709 data['details'] = JSON.parse(data['additional_data']); 40710 } catch (e) { 40711 data['details'] = {}; 40712 } 40713 } 40714 return data; 40715 }, 40716 getSwatchType(attributeId, optionId) { 40717 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 40718 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 40719 } 40720 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 40721 this.swatchConfig[attributeId].details.swatch_input_type : 40722 "empty"; 40723 if (type === 'visual') { 40724 const config = this.swatchConfig[attributeId]; 40725 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 40726 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 40727 } 40728 // Fallback to first option type 40729 for (const oId in config) { 40730 if (config[oId] && typeof config[oId].type !== 'undefined') { 40731 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 40732 } 40733 } 40734 } 40735 return type; 40736 }, 40737 mapSwatchTypeNumberToTypeCode(type) { 40738 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 40739 }, 40740 isTextSwatch() { 40741 const itemId = this._getItemId(); 40742 if (!this.$el || !itemId) return false;
40743 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40744 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 40745 }, 40746 40747 getSwatchText() { 40748 const itemId = this._getItemId(); 40749 if (this.item) return this.item.label || ''; 40750 if (!this.$el || !itemId) return ''; 40751 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40752 const options = attrId ? this.getOptions(attrId) : []; 40753 const opt = options.find(o => o.id == itemId); 40754 return opt ? opt.label : ''; 40755 }, 40756 getSwatchBackgroundStyle() { 40757 const itemId = this._getItemId(); 40758 if (!this.$el || !itemId) return ''; 40759 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40760 if (!attrId) return ''; 40761 const type = this.getSwatchType(attrId, itemId); 40762 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 40763 this.swatchConfig[attrId][itemId] : 40764 null; 40765 if (!swatchData) return ''; 40766 if (type === "color") return 'background-color:' + swatchData.value; 40767 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 40768 return ''; 40769 }, 40770 swatchOptionClasses() { 40771 const itemId = this._getItemId(); 40772 if (!this.$el || !itemId) return {}; 40773 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40774 return { 40775 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 40776 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 40777 'w-6 h-6': !this.isTextSwatch() 40778 } 40779 }, 40780 40781 onFocusSwatchItem() { 40782 const itemId = this._getItemId(); 40783 if (itemId) this.focusedLabel = itemId; 40784 }, 40785 onChangeOption() { 40786 const itemId = this._getItemId(); 40787 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 40788 if (attrId && itemId) this.changeOption(attrId, itemId); 40789 }, 40790 changeOption(attributeId, value) { 40791 if (value === '') { 40792 return; 40793 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 40794 } else { 40795 this.selectedValues[attributeId] = value; 40796 } 40797 40798 this.findSimpleIndex(); 40799 this.findAllowedAttributeOptions(); 40800 this.updatePrices(); 40801 this.updateGallery(); 40802 40803 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 40804 this.findProductIdsForPartialSelection(this.selectedValues) : []; 40805 40806 const eventDetail = { 40807 productId: this.productId, 40808 optionId: attributeId, 40809 value: value, 40810 productIndex: this.productIndex || 0, 40811 selectedValues: this.selectedValues, 40812 candidates: candidates, 40813 sourceElement: this.$el 40814 }; 40815 40816 // Dispatch for Amasty 40817 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 40818 detail: eventDetail 40819 })); 40820 40821 // Dispatch for Hyva listing 40822 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 40823 detail: eventDetail 40824 })); 40825 }, 40826 40827 40828 clearOptionIfActive() { 40829 const itemId = this._getItemId(); 40830 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 40831 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 40832 this.changeOption(attrId, ''); 40833 40834 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 40835 if (!input && this.$el?.querySelector) { 40836 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 40837 } 40838 if (!input && this.$el?.closest) { 40839 const root = this.$el.closest('[data-product-id]') || this.$el; 40840 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 40841 } 40842 if (input) { 40843 input.checked = false;
40844 } 40845 } 40846 }, 40847 get optionIsEnabled() { 40848 const itemId = this._getItemId(); 40849 if (!this.$el || !itemId) return true; 40850 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40851 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 40852 return !!allowedOptions.find(opt => opt.id == itemId); 40853 }, 40854 get isSelected() { 40855 const itemId = this._getItemId(); 40856 if (!this.$el || !itemId) return false; 40857 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40858 return attrId ? (this.selectedValues[attrId] == itemId) : false; 40859 }, 40860 get isSwatchRequired() { 40861 if (!this.$el) return false; 40862 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40863 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 40864 }, 40865 focusedLabel: false, 40866 activeTooltipItem: false, 40867 tooltipPositionElement: false,
40868 setActiveTooltipItem() { 40869 const itemId = this._getItemId(); 40870 if (!this.$el || !itemId) return; 40871 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 40872 this.activeTooltipItem = { 40873 attribute: attrId, 40874 item: itemId, 40875 index: 0 40876 }; 40877 this.tooltipPositionElement = this.$event ? this.$event.target : null; 40878 }, 40879 unsetActiveTooltipItem() { 40880 this.activeTooltipItem = false; 40881 } 40882 }, 40883 confProdPreSelect() 40884 ); 40885 40886 if (result.optionConfig && result.optionConfig.attributes) { 40887 const attributes = result.optionConfig.attributes; 40888 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 40889 let source = attributes; 40890 if (Array.isArray(attributes)) { 40891 source = {}; 40892 attributes.forEach(attr => { 40893 if (attr && attr.id) source[attr.id] = attr; 40894 }); 40895 } 40896 const values = Object.values(source); 40897 const wrapper = Object.assign(values, source); 40898 Object.defineProperty(wrapper, '__amxnotifWrapped', { 40899 value: true, 40900 enumerable: false 40901 }); 40902 result.optionConfig.attributes = wrapper; 40903 } 40904 } 40905 40906 return result; 40907 } 40908 40909 window.addEventListener('alpine:init', () => { 40910 Alpine.data('initConfigurableSwatchOptions_3991', initConfigurableSwatchOptions_3991); 40911 }, { 40912 once: true 40913 }); 40914 </script>
40914 40915 40916 <div x-data="initConfigurableSwatchOptions_3991" x-defer="intersect"> 40917 <div class="pagebuilder-home-hidden"> 40918 40919 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 40920 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 40921 <template x-if="showSwatches"> 40922 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-3991-163" role="radiogroup" aria-label="Einband"> 40923 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 40924 <div :data-option-id="item.id" style="display: contents"> 40925 <div x-id="getSwatchOptionHtmlIdGroup"> 40926 <template x-if="optionIsEnabled"> 40927 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
40927self="unsetActiveTooltipItem"> 40928 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-3991-163"> 40929 <div> 40930 <template x-if="isTextSwatch"> 40931 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 40932 </template> 40933 <template x-if="!optionIsActive(163, item.id)"> 40934 <div> 40935 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 40936 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 40937 </svg> 40938 </div> 40939 </template> 40940 </div> 40941 </label> 40942 </template> 40943</div> </div> 40944 </template> 40945 </div> 40946 </template> 40947 </div> 40948 </div> 40949 </div> 40950 </div> 40951 40952 <div class="meta py-4 pagebuilder-home-hidden"> 40953 <div x-data="initMarketingShortText_3991()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 40954 <!-- Marketing short text --> 40955 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 40956 </div> 40957 40958 <!-- Short description --> 40959 <div class="short-description"> 40960 Gesellschaftsspiele haben seit Beginn der Coronakrise wieder Hochkonjunktur. Dabei bieten sie nicht nur abwechslungsreiche Unterhaltung für private Spieleabende, sondern sind dank ihrer ... <a href="https://meiner.de/fmv_de/philosophieren-mit-spielen" class="underline">mehr</a> 40961 </div> 40962 </div> 40963 40964 <!-- Series --> 40965 <div class="mb-1"> 40966 <span class="sr-only">Reihe:</span> 40967 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 40968 <span>Methoden im Philosophie- und Ethikunterricht</span> 40969 </a> 40970 6 </div> 40971 40972 40973 <div class="mb-1"> 40974 <span x-data="initEditionText_3991()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 40975 <!-- Marketing short text --> 40976 <span class="edition-text" x-html="editionText"></span> 2022, 218 Seiten </span> 40977 </div> 40978 40979 </div> 40980 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 40981 40982 <div class="justify-end" x-data="initPriceBox()" @update-prices-3991.window="updatePrice($event.detail);"> 40983 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3991" data-price-box="product-id-3991"><span class="normal-price"> 40984 <span x-data x-id="['product\u002Dprice\u002D3991']" class="price-container price-final_price tax weee"> 40985 <span class="price-label">Ab</span> 40986 <span class="approx-price">ca. </span>
40987 <span :id="$id('product\u002Dprice\u002D3991')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">14,99 €</span></span> 40988 </span> 40989</span> 40990 40991 40992</div> </div> 40993 40994 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 40995 <div class="open-access-container open-access-container-3991 flex mt-4 ml-auto sm:mt-0 hidden"> 40996 <div class="text-gray-700"> 40997 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 40998 <a href="" target="_blank" class="open-access-external-link m-auto "> 40999 Kostenlos online lesen </a> 41000 </button> 41001 </div> 41002 </div> 41003 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophieren mit Spielen" aria-label="In den Warenkorb Philosophieren mit Spielen" data-addto="cart"> 41004 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 41005 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 41006</svg> 41007 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 41008 In den Warenkorb </span> 41009 </button> 41010 41011<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(3991)" aria-label="Zur Wunschliste hinzufügen Philosophieren mit Spielen" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 41012 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 41013 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 41014</svg> 41015</button> 41016 </div> 41017 </div> 41018 </div> 41019
41019<script> 41020 function initMarketingShortText_3991() { 41021 var marketingShortTextConfig = {}; 41022 if (typeof window.initConfigurableSwatchOptions_3991 === "function") { 41023 var fullConfig = window.initConfigurableSwatchOptions_3991().optionConfig 41024 var marketingShortTextConfig = fullConfig.marketing_short_text; 41025 } 41026 return { 41027 marketingShortText: '', 41028 config: marketingShortTextConfig, 41029 productId: '3991', 41030 getMarketingShortText(detail) { 41031 this.marketingShortText = detail.productIndex ? 41032 this.config[detail.productIndex] : 41033 null; 41034 }, 41035 eventListeners: { 41036 ['@listing-configurable-selection-changed.window'](event) { 41037 if (this.productId == event.detail.productId) { 41038 this.getMarketingShortText(event.detail); 41039 } 41040 41041 } 41042 } 41043 } 41044 } 41045 41046 function initEditionText_3991() { 41047 var editionTextConfig = {}; 41048 if (typeof window.initConfigurableSwatchOptions_3991 === "function") { 41049 var fullConfig = window.initConfigurableSwatchOptions_3991().optionConfig 41050 var editionTextConfig = fullConfig.edition; 41051 } 41052 return { 41053 editionText: '', 41054 config: editionTextConfig, 41055 productId: '3991', 41056 getEditionText(detail) { 41057 this.editionText = detail.productIndex ? 41058 this.config[detail.productIndex] : 41059 null; 41060 }, 41061 eventListeners: { 41062 ['@listing-configurable-selection-changed.window'](event) { 41063 if (this.productId == event.detail.productId) { 41064 this.getEditionText(event.detail); 41065 } 41066 41067 } 41068 } 41069 } 41070 } 41071 </script>
41071 41072 </form> 41073 41074 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/3985/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004433"> 41075 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="3985"> 41076 <a href="https://meiner.de/fmv_de/methoden-im-philosophie-und-ethikunterricht-band-1-4-im-set-16078" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 41077 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-3985.window="$el.src = $event.detail" alt="Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" title="Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344338.png" :style="{ 41078 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 41079 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 41080 }"> 41081 </a> 41082 <div class="product-info flex flex-col flex-grow "> 41083 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 41084 <div class="mb-2 text-sm text-gray-500 font-medium"> 41085 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 41086 Jörg Peters </a> 41087 <span>|</span> 41088 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 41089 Martina Peters (Hrsg.) 41090 </a> 41091 </div> 41092 <a class="product-item-link" href="https://meiner.de/fmv_de/methoden-im-philosophie-und-ethikunterricht-band-1-4-im-set-16078"> 41093 Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set </a> 41094 </div> 41095 41096 <div x-data="initEditionText_3985()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 41097 <!-- Marketing short text --> 41098 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 41099 </div> 41100 </div> 41101 41102 <div class="py-1 grid mb-4 "> 41103 41104<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_3985" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":3985,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":3985,"availabilityMessages":{"3985":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"3985":{"status":0}}}'> 41105 41106 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
41107 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 41108 <span x-html="optionsLabelText"></span> 41109 </p> 41110</div> </div> 41111 41112 41113 <div class="pagebuilder-home-hidden"> 41114 <div class="mb-2 relative"> 41115 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 41116 <div> 41117 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Kartoniert</div> 41118 </div> 41119 </div> 41120 </div> 41121 </div> 41122 <div class="meta py-4 pagebuilder-home-hidden"> 41123 <div x-data="initMarketingShortText_3985()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 41124 <!-- Marketing short text --> 41125 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 41126 </div> 41127 41128 <!-- Short description --> 41129 </div> 41130 41131 <!-- Series --> 41132 <div class="mb-1"> 41133 <span class="sr-only">Reihe:</span> 41134 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 41135 <span>Methoden im Philosophie- und Ethikunterricht</span> 41136 </a> 41137 </div> 41138 41139 41140 <div class="mb-1"> 41141 <span x-data="initEditionText_3985()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 41142 <!-- Marketing short text --> 41143 <span class="edition-text" x-html="editionText"></span> 4 Bände zusammen 852 Seiten </span> 41144 </div> 41145 41146 <div class="mb-1"> 41147 <span>ISBN: </span> 41148 <span>978-3-7873-4433-8</span> 41149 </div> 41150 </div> 41151 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 41152 41153 <div class="justify-end" x-data="initPriceBox()" @update-prices-3985.window="updatePrice($event.detail);"> 41154 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3985" data-price-box="product-id-3985"> 41155 <span x-data x-id="['product\u002Dprice\u002D3985']" class="price-container price-final_price tax weee"> 41156 <span :id="$id('product\u002Dprice\u002D3985')" data-price-amount="59.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">59,90 €</span></span> 41157 </span> 41158 41159</div> </div> 41160 41161 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 41162 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" aria-label="In den Warenkorb Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" data-addto="cart"> 41163 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 41164 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
411640 014 0z"></path> 41165</svg> 41166 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 41167 In den Warenkorb </span> 41168 </button> 41169 41170<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(3985)" aria-label="Zur Wunschliste hinzufügen Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 41171 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 41172 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 41173</svg> 41174</button> 41175 </div> 41176 </div> 41177 </div> 41178
41178<script> 41179 function initMarketingShortText_3985() { 41180 var marketingShortTextConfig = {}; 41181 if (typeof window.initConfigurableSwatchOptions_3985 === "function") { 41182 var fullConfig = window.initConfigurableSwatchOptions_3985().optionConfig 41183 var marketingShortTextConfig = fullConfig.marketing_short_text; 41184 } 41185 return { 41186 marketingShortText: '', 41187 config: marketingShortTextConfig, 41188 productId: '3985', 41189 getMarketingShortText(detail) { 41190 this.marketingShortText = detail.productIndex ? 41191 this.config[detail.productIndex] : 41192 null; 41193 }, 41194 eventListeners: { 41195 ['@listing-configurable-selection-changed.window'](event) { 41196 if (this.productId == event.detail.productId) { 41197 this.getMarketingShortText(event.detail); 41198 } 41199 41200 } 41201 } 41202 } 41203 } 41204 41205 function initEditionText_3985() { 41206 var editionTextConfig = {}; 41207 if (typeof window.initConfigurableSwatchOptions_3985 === "function") { 41208 var fullConfig = window.initConfigurableSwatchOptions_3985().optionConfig 41209 var editionTextConfig = fullConfig.edition; 41210 } 41211 return { 41212 editionText: '', 41213 config: editionTextConfig, 41214 productId: '3985', 41215 getEditionText(detail) { 41216 this.editionText = detail.productIndex ? 41217 this.config[detail.productIndex] : 41218 null; 41219 }, 41220 eventListeners: { 41221 ['@listing-configurable-selection-changed.window'](event) { 41222 if (this.productId == event.detail.productId) { 41223 this.getEditionText(event.detail); 41224 } 41225 41226 } 41227 } 41228 } 41229 } 41230 </script>
41230 41231 </form> 41232 </div> 41233 41234<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 41235 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 41236 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 41237 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 41238</svg> 41239 </button> 41240 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 41241 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 41242 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 41243 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 41244</svg> 41245 </button> 41246</div> 41247 </div> 41248</div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="HBNQ69W"><h3 data-content-type="heading" data-appearance="default" data-element="main">Sino-philosophica</h3><div class="pagebuilder-column-group card cmsp2-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="EF95BS6"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="DQV92YO"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="PK9D1F2"><h4 data-content-type="heading" data-appearance="default" data-element="main">Quellentexte der chinesischen Philosophie</h4><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="YLG2MX7"><p style="text-align: left;">Mit den <a href="/programm/reihen/sino-philosophica">Sino-philosophica </a>begründet der Felix Meiner Verlag eine Reihe, die Quellentexte der chinesischen Philosophie vom Altertum bis in die Gegenwart in zweisprachigen Ausgaben mit chinesischem Original und wissenschaftlich fundierter Übersetzung vorstellt. Jeder Band präsentiert den chinesischen Text in verlässlicher Ausgabe im Parallelumbruch mit der von führenden Fachleuten besorgten deutschen Übersetzung.</p> 41249<div id="box_infotext"> 41250<p style="text-align: left;"> </p> 41251<p style="text-align: left;"><a tabindex="-1" href="/programm/reihen/sino-philosophica"><img style="display: block; margin-left: auto; margin-right: auto; width: 75px; height: 248px;" src="https://meiner.de/media/wysiwyg/FMV/Signets-Logos/Sino-Philosophica.jpg" alt="Signet der Blauen Reihe" width="100" height="100"></a></p> 41252<p style="text-align: center;"> </p> 41253</div></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="ECM6YD3"></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="RAUXYGH"><h4 data-content-type="heading" data-appearance="default" data-element="main">Alle Bände der Reihe</h4><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carou
41253sel"> 41254 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 41255 41256 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46696/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16806"> 41257 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46696"> 41258 <a href="https://meiner.de/fmv_de/das-groa-e-ruhen-und-kontemplieren-16806" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 41259 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46696.window="$el.src = $event.detail" alt="Das Große Ruhen und Kontemplieren" title="Das Große Ruhen und Kontemplieren" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787345922_1.jpg" :style="{ 41260 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 41261 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 41262 }"> 41263 </a> 41264 <div class="product-info flex flex-col flex-grow "> 41265 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 41266 <div class="mb-2 text-sm text-gray-500 font-medium"> 41267 <a href="https://meiner.de/fmv_de/person/Zhiyi-21155/" class="mb-2"> 41268 Zhìyǐ </a> 41269 </div> 41270 <a class="product-item-link" href="https://meiner.de/fmv_de/das-groa-e-ruhen-und-kontemplieren-16806"> 41271 Das Große Ruhen und Kontemplieren </a> 41272 </div> 41273 41274 <div x-data="initEditionText_46696()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 41275 <!-- Marketing short text --> 41276 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 41277 </div> 41278 </div> 41279 41280 <div class="py-1 grid mb-4 "> 41281 41282 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46696,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46696,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"45602":"1","47037":"1"},"childProductsAlertStatus":{"45602":"0","47037":"0"},"indexMapping":{"163:11":45602,"163:8":47037},"availabilityMessages":{"45602":"Lieferbar innerhalb von 3-5 Tagen","47037":"Download sofort verf\u00fcgbar"},"openAccess":{"46696":{"status":0},"45602":{"status":0},"47037":{"status":0}}},"availabilityMessages":{"45602":"Lieferbar innerhalb von 3-5 Tagen","47037":"Download sofort verf\u00fcgbar"},"openAccess":{"46696":{"status":0},"45602":{"status":0},"47037":{"status":0}}}'> 41283 <template x-if="containerVisible"> 41284 <!-- Popup Trigger --> 41285 <div> 41286 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 41287 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
41288 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 41289 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 41290<title>bell</title></svg> 41291</span> 41292 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 41293 41294 <!-- Popup Modal --> 41295 <template x-if="showModal"> 41296 <template x-teleport=".page-wrapper"> 41297 <div x-cloak class="fixed inset-0 flex items-center justify-center 41298 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 41299 <div class="relative bg-white rounded-lg shadow-xl 41300 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 41301 <div class="p-6"> 41302 <!-- Subscription Form for Popup --> 41303 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 41304 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 41305 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 41306 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 41307 41308 <div class="flex flex-col gap-3"> 41309 <div class="flex-grow grow"> 41310 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 41311 shadow-xs focus:outline-none focus:outline-hidden 41312 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 41313 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 41314 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 41315 </div> 41316 <input type="hidden" name="product_id" :value="currentProductId"> 41317 <input type="hidden" name="type" value="email"> 41318 41319 41320 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 41321 41322 <div class="amxnotif_guest_action"> 41323 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 41324 rounded-md focus:outline-none 41325 focus:outline-hidden focus:ring-2 41326 focus:ring-offset-2 disabled:opacity-50 41327 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 41328 Benachrichtigen </button> 41329 </div> 41330 </div> 41331 41332 <div class="flex items-start pt-2"> 41333 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 41334 text-blue-600 border-gray-300 rounded-sm"> 41335 <label class="amxnotif-stock-gdrp-label cursor-pointer 41336 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 41337 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 41338 </div> 41339 </form> 41340 </div> 41341 41342 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 41343 hover:text-gray-600 transition-colors" aria-label="Schließen"> 41344 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 41345 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 41346<title>x</title></svg> 41347 </button> 41348 </div> 41349 </div> 41350 </template> 41351 </template> 41352 </div> 41353 </template> 41354 </div> 41355 41356<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46696" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46696,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"45602":"1","47037":"1"},"childProductsAlertStatus":{"45602":"0","47037":"0"},"indexMapping":"{\u0022163:11\u0022:45602,\u0022163:8\u0022:47037}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46696,"availabilityMessages":{"45602":"Lieferbar innerhalb von 3-5 Tagen","47037":"Download sofort verf\u00fcgbar"},"openAccess":{"46696":{"status":0},"45602":{"status":0},"47037":{"status":0}}}'> 41357 41358 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
41359 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 41360 <span x-html="optionsLabelText"></span> 41361 </p> 41362</div> </div> 41363 41364
41364<script> 41365 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 41366 try { 41367 const attributes = (config && config.attributes) ? config.attributes : null; 41368 if (!attributes) return []; 41369 let attr = null; 41370 if (Array.isArray(attributes)) { 41371 for (let i = 0; i < attributes.length; i++) { 41372 const a = attributes[i]; 41373 if (a && a.id == attrId) { 41374 attr = a; 41375 break; 41376 } 41377 } 41378 } else { 41379 attr = attributes[attrId]; 41380 } 41381 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 41382 } catch (e) { 41383 return []; 41384 } 41385 }; 41386 41387 function initConfigurableSwatchOptions_46696() { 41388 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["45602"]},{"id":"8","label":"PDF","products":["47037"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"45602":{"baseOldPrice":{"amount":232.71027937383},"oldPrice":{"amount":249},"basePrice":{"amount":232.71027937383},"finalPrice":{"amount":249},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47037":{"baseOldPrice":{"amount":177.56074666355},"oldPrice":{"amount":189.99},"basePrice":{"amount":177.56074666355},"finalPrice":{"amount":189.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":177.56074666355},"oldPrice":{"amount":189.99},"basePrice":{"amount":159.65546118487},"finalPrice":{"amount":189.99},"isApproxPrice":null},"productId":"46696","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"45602":{"163":"11"},"47037":{"163":"8"}},"salable":{"163":{"11":["45602"],"8":["47037"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"45602":"004591","47037":"004592"},"output":{"45602":"Gebunden","47037":"PDF"},"original_name":{"45602":"M\u00f3h\u0113 zh\u01d0gu\u0101n","47037":"M\u00f3h\u0113 zh\u01d0gu\u0101n"},"openaccess_license_link":{"45602":"","47037":""},"openaccess_license_name":{"45602":"","47037":""},"openaccess_external_link":{"45602":"","47037":""},"gpsr_safety_info":{"45602":"","47037":""},"description":{"45602":"In der ostasiatischen Tradition des Mah\u0101y\u0101na gilt die Tiantai-Lehre als eine der ersten und historisch einflussreichsten Schulen des chinesischen Buddhismus. Eines der fr\u00fchen Hauptwerke, das noch heute als Lehrgrundlage f\u00fcr Praktizierende in ganz Ostasien dient, wurde von dem gelehrten M\u00f6nch Zh\u00ecy\u01d0 (538\u2013597) verfasst und tr\u00e4gt den Titel \u00bbDas gro\u00dfe Ruhen und Kontemplieren\u00ab. <br\/><br\/>Sein umfangreicher Textkorpus ber\u00fccksichtigt die damals in China bekannte indisch-buddhistische Lehrliteratur, die ab dem zweiten Jahrhundert n. Chr. in die klassische chinesische Schriftsprache \u00fcbersetzt wurde. Es ist der erste Text der chinesischen Tradition, der eine komplexe Hermeneutik vorlegt, die der doktrin\u00e4ren Vielfalt in der \u00fcbersetzten Lehrliteratur eine innere Einheit zuspricht und das Erfassen derselben mit der Introspektion, das hei\u00dft mit der geistigen Selbstbeobachtung, verkn\u00fcpft. In dieser Verbindung definiert der Text nicht nur das Wesen der buddhistischen Praxis, sondern entwickelt auch eine an der Exegese ausgerichteten Theorie von ihr. <br\/><br\/>\u00bbDas allumschlie\u00dfende Dekonstruieren\u00ab ist das philosophisch relevanteste Kapitel, da es sich mit der wahren Erkenntnis aller T\u00e4uschungen und der existenziellen Bedeutung dieser Erkenntnis sowie der der T\u00e4uschung besch\u00e4ftigt. Mit der philosophischen Praxis des dekonstruierenden Kontemplierens der Geistesaktivit\u00e4t beschreibt Zh\u00ecy\u01d0s Werk die ambivalente Signifikanz des unausweichlichen Scheins f\u00fcr die Gestaltung unseres Daseins, die sich in der Einheit von vita contemplativa und vita activa erf\u00fcllt.","47037":"In der ostasiatischen Tradition des Mah\u0101y\u0101na gilt die Tiantai-Lehre als eine der ersten und historisch einflussreichsten Schulen des chinesischen Buddhismus. Eines der fr\u00fchen Hauptwerke, das noch heute als Lehrgrundlage f\u00fcr Praktizierende in ganz Ostasien dient, wurde von dem gelehrten M\u00f6nch Zh\u00ecy\u01d0 (538\u2013597) verfasst und tr\u00e4gt den Titel \u00bbDas gro\u00dfe Ruhen und
41388Kontemplieren\u00ab. <br\/><br\/>Sein umfangreicher Textkorpus ber\u00fccksichtigt die damals in China bekannte indisch-buddhistische Lehrliteratur, die ab dem zweiten Jahrhundert n. Chr. in die klassische chinesische Schriftsprache \u00fcbersetzt wurde. Es ist der erste Text der chinesischen Tradition, der eine komplexe Hermeneutik vorlegt, die der doktrin\u00e4ren Vielfalt in der \u00fcbersetzten Lehrliteratur eine innere Einheit zuspricht und das Erfassen derselben mit der Introspektion, das hei\u00dft mit der geistigen Selbstbeobachtung, verkn\u00fcpft. In dieser Verbindung definiert der Text nicht nur das Wesen der buddhistischen Praxis, sondern entwickelt auch eine an der Exegese ausgerichteten Theorie von ihr. <br\/><br\/>\u00bbDas allumschlie\u00dfende Dekonstruieren\u00ab ist das philosophisch relevanteste Kapitel, da es sich mit der wahren Erkenntnis aller T\u00e4uschungen und der existenziellen Bedeutung dieser Erkenntnis sowie der der T\u00e4uschung besch\u00e4ftigt. Mit der philosophischen Praxis des dekonstruierenden Kontemplierens der Geistesaktivit\u00e4t beschreibt Zh\u00ecy\u01d0s Werk die ambivalente Signifikanz des unausweichlichen Scheins f\u00fcr die Gestaltung unseres Daseins, die sich in der Einheit von vita contemplativa und vita activa erf\u00fcllt."},"doi":{"45602":"","47037":"10.28937\/978-3-7873-4592-2"},"isbn":{"45602":"978-3-7873-4591-5","47037":"978-3-7873-4592-2"},"marketing_short_text":{"45602":"","47037":""},"recension_text":{"45602":"","47037":""},"language":{"45602":"","47037":""},"cover":{"45602":"Gebunden","47037":""},"pages":{"45602":"928 Seiten.","47037":"928 Seiten."},"edition":{"45602":"","47037":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"45602":"Nein","47037":"Nein"},"copyright_year":{"45602":"","47037":""},"vlb_tix_link":{"45602":"https:\/\/neu.vlbtix.de\/products\/9783787345915?type=gtin","47037":""},"defaultValues":{"163":"11"}}; 41389 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 41390 41391 if (typeof window.amxnotif_wrap_attributes === 'function') { 41392 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 41393 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 41394 } 41395 41396 const configurableOptionsComponent = initConfigurableOptions( 41397 '46696', 41398 config 41399 ); 41400 const swatchOptionsComponent = initSwatchOptions( 41401 swatchConfig 41402 ); 41403 41404 // DWS - Configurable product preselect start 41405 const confProdPreSelect = () => { 41406 return { 41407 preselectQuerystringItems() { 41408 var data = {"id":"45602","output":"11"}; 41409 const urlQueryParams = new URLSearchParams(window.location.search); 41410 41411 this.$nextTick(() => { 41412 setTimeout(() => { 41413 const rootEl = this.$root || this.$el; 41414 if (!rootEl) return; 41415 41416 const applySelection = (attrCode, attrValue) => { 41417 if (attrValue === undefined || attrValue === null || attrValue === '') return; 41418 41419 const attributes = Object.values(this.optionConfig.attributes || {}); 41420 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 41421 41422 if (targetAttr) { 41423 const attrId = String(targetAttr.id); 41424 const optionVal = String(attrValue); 41425 41426 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 41427 41428 if (inputEl) { 41429 inputEl.click(); 41430 inputEl.dispatchEvent(new Event('change', { 41431 bubbles: true 41432 })); 41433 } else { 41434 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 41435 if (selectEl) { 41436 selectEl.value = optionVal; 41437 selectEl.dispatchEvent(new Event('change', { 41438 bubbles: true 41439 })); 41440 } 41441 } 41442 41443 this.changeOption(attrId, optionVal, false); 41444 } 41445 }; 41446 41447 if (data && typeof data === 'object') {
41448 Object.keys(data).forEach(key => applySelection(key, data[key])); 41449 } 41450 41451 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 41452 if (attribute && attribute.code) { 41453 let optionValue = urlQueryParams.get(attribute.code); 41454 if (optionValue) { 41455 let optionId = false; 41456 const attributes = Object.values(this.optionConfig.attributes || {}); 41457 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 41458 41459 let found = false; 41460 Object.values(targetAttr.options).map(option => { 41461 if (found === false && option.label === optionValue) { 41462 optionId = option.id; 41463 found = true; 41464 } 41465 }); 41466 41467 const attrId = String(targetAttr.id); 41468 let optionVal = String(optionValue); 41469 if (found) { 41470 optionVal = String(optionId); 41471 } 41472 41473 applySelection(attribute.code, optionVal); 41474 } 41475 } 41476 }); 41477 }, 100); 41478 }); 41479 } 41480 } 41481 }; 41482 // DWS - Configurable product preselect end 41483 41484 const result = Object.assign( 41485 configurableOptionsComponent, 41486 swatchOptionsComponent, { 41487 productId: '46696', 41488 productIndex: 0, 41489 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 41490 showSwatches: false, 41491 precalcOptions: {}, 41492 originalInit: configurableOptionsComponent.init, 41493 init() { 41494 try { 41495 this.precalcOptions = {}; 41496 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 41497 this.preselectQuerystringItems(); 41498 if (Array.isArray(attrSource)) { 41499 attrSource.forEach(attr => { 41500 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 41501 }); 41502 } else if (attrSource && typeof attrSource === 'object') { 41503 Object.keys(attrSource).forEach(id => { 41504 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 41505 }); 41506 } 41507 } catch (e) { 41508 console.error('Pre-calc error:', e); 41509 } 41510 41511 if (typeof this.originalInit === 'function') { 41512 this.originalInit(); 41513 } 41514 41515 try { 41516 this.initShowSwatchesIntersect(); 41517 } catch (e) { 41518 console.error('intersect error:', e); 41519 } 41520 }, 41521 41522 updateGallery() { 41523 if (!this.productIndex) return; 41524 41525 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 41526 method: 'GET', 41527 headers: { 41528 'Content-Type': 'application/json', 41529 'X-Requested-With': 'XMLHttpRequest' 41530 } 41531 }) 41532 .then(response => response.json()) 41533 .then(data => { 41534 if (data && data.medium) { 41535 window.dispatchEvent(new CustomEvent("update-gallery-46696", { 41536 detail: data.medium 41537 })); 41538 } 41539 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 41540 }, 41541 41542 41543 initShowSwatchesIntersect() { 41544 const observer = new IntersectionObserver(entries => { 41545 if (entries[0].isIntersecting) { 41546 this.showSwatches = true; 41547 observer.disconnect(); 41548 } 41549 }, { 41550 rootMargin: '512px' 41551 }); 41552 observer.observe(this.$el); 41553 }, 41554 getOptions(attrId) { 41555 return this.precalcOptions[attrId] || []; 41556 }, 41557 getOptionsByAttrId() { 41558 return this.getOptions(this.$el.dataset.attributeId); 41559 }, 41560 _getItemId() { 41561 if (this.item && this.item.id) return this.item.id; 41562 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 41563 }, 41564 getSwatchOptionHtmlId() { 41565 const itemId = this._getItemId(); 41566 return itemId ? this.$id(`attribute-option-46696-${itemId}`) : ''; 41567 }, 41568 getSwatchOptionHtmlIdGroup() { 41569 const itemId = this._getItemId(); 41570 return itemId ? [`attribute-option-46696-${itemId}`] : []; 41571 }, 41572 getAttributeSwatchData(attributeId) { 41573 const data = Object.assign({}, this.swatchConfig[attributeId]); 41574 if (data['additional_data']) { 41575 try { 41576 data['details'] = JSON.parse(data['additional_data']); 41577 } catch (e) { 41578 data['details'] = {}; 41579 } 41580 } 41581 return data; 41582 }, 41583 getSwatchType(attributeId, optionId) { 41584 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 41585 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 41586 } 41587 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 41588 this.swatchConfig[attributeId].details.swatch_input_type : 41589 "empty"; 41590 if (type === 'visual') { 41591 const config = this.swatchConfig[attributeId]; 41592 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 41593 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 41594 } 41595 // Fallback to first option type 41596 for (const oId in config) { 41597 if (config[oId] && typeof config[oId].type !== 'undefined') { 41598 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 41599 } 41600 } 41601 } 41602 return type; 41603 }, 41604 mapSwatchTypeNumberToTypeCode(type) { 41605 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 41606 }, 41607 isTextSwatch() { 41608 const itemId = this._getItemId(); 41609 if (!this.$el || !itemId) return false;
41610 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41611 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 41612 }, 41613 41614 getSwatchText() { 41615 const itemId = this._getItemId(); 41616 if (this.item) return this.item.label || ''; 41617 if (!this.$el || !itemId) return ''; 41618 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41619 const options = attrId ? this.getOptions(attrId) : []; 41620 const opt = options.find(o => o.id == itemId); 41621 return opt ? opt.label : ''; 41622 }, 41623 getSwatchBackgroundStyle() { 41624 const itemId = this._getItemId(); 41625 if (!this.$el || !itemId) return ''; 41626 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41627 if (!attrId) return ''; 41628 const type = this.getSwatchType(attrId, itemId); 41629 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 41630 this.swatchConfig[attrId][itemId] : 41631 null; 41632 if (!swatchData) return ''; 41633 if (type === "color") return 'background-color:' + swatchData.value; 41634 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 41635 return ''; 41636 }, 41637 swatchOptionClasses() { 41638 const itemId = this._getItemId(); 41639 if (!this.$el || !itemId) return {}; 41640 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41641 return { 41642 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 41643 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 41644 'w-6 h-6': !this.isTextSwatch() 41645 } 41646 }, 41647 41648 onFocusSwatchItem() { 41649 const itemId = this._getItemId(); 41650 if (itemId) this.focusedLabel = itemId; 41651 }, 41652 onChangeOption() { 41653 const itemId = this._getItemId(); 41654 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 41655 if (attrId && itemId) this.changeOption(attrId, itemId); 41656 }, 41657 changeOption(attributeId, value) { 41658 if (value === '') { 41659 return; 41660 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 41661 } else { 41662 this.selectedValues[attributeId] = value; 41663 } 41664 41665 this.findSimpleIndex(); 41666 this.findAllowedAttributeOptions(); 41667 this.updatePrices(); 41668 this.updateGallery(); 41669 41670 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 41671 this.findProductIdsForPartialSelection(this.selectedValues) : []; 41672 41673 const eventDetail = { 41674 productId: this.productId, 41675 optionId: attributeId, 41676 value: value, 41677 productIndex: this.productIndex || 0, 41678 selectedValues: this.selectedValues, 41679 candidates: candidates, 41680 sourceElement: this.$el 41681 }; 41682 41683 // Dispatch for Amasty 41684 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 41685 detail: eventDetail 41686 })); 41687 41688 // Dispatch for Hyva listing 41689 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 41690 detail: eventDetail 41691 })); 41692 }, 41693 41694 41695 clearOptionIfActive() { 41696 const itemId = this._getItemId(); 41697 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 41698 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 41699 this.changeOption(attrId, ''); 41700 41701 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 41702 if (!input && this.$el?.querySelector) { 41703 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 41704 } 41705 if (!input && this.$el?.closest) { 41706 const root = this.$el.closest('[data-product-id]') || this.$el; 41707 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 41708 } 41709 if (input) { 41710 input.checked = false;
41711 } 41712 } 41713 }, 41714 get optionIsEnabled() { 41715 const itemId = this._getItemId(); 41716 if (!this.$el || !itemId) return true; 41717 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41718 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 41719 return !!allowedOptions.find(opt => opt.id == itemId); 41720 }, 41721 get isSelected() { 41722 const itemId = this._getItemId(); 41723 if (!this.$el || !itemId) return false; 41724 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41725 return attrId ? (this.selectedValues[attrId] == itemId) : false; 41726 }, 41727 get isSwatchRequired() { 41728 if (!this.$el) return false; 41729 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41730 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 41731 }, 41732 focusedLabel: false, 41733 activeTooltipItem: false, 41734 tooltipPositionElement: false,
41735 setActiveTooltipItem() { 41736 const itemId = this._getItemId(); 41737 if (!this.$el || !itemId) return; 41738 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 41739 this.activeTooltipItem = { 41740 attribute: attrId, 41741 item: itemId, 41742 index: 0 41743 }; 41744 this.tooltipPositionElement = this.$event ? this.$event.target : null; 41745 }, 41746 unsetActiveTooltipItem() { 41747 this.activeTooltipItem = false; 41748 } 41749 }, 41750 confProdPreSelect() 41751 ); 41752 41753 if (result.optionConfig && result.optionConfig.attributes) { 41754 const attributes = result.optionConfig.attributes; 41755 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 41756 let source = attributes; 41757 if (Array.isArray(attributes)) { 41758 source = {}; 41759 attributes.forEach(attr => { 41760 if (attr && attr.id) source[attr.id] = attr; 41761 }); 41762 } 41763 const values = Object.values(source); 41764 const wrapper = Object.assign(values, source); 41765 Object.defineProperty(wrapper, '__amxnotifWrapped', { 41766 value: true, 41767 enumerable: false 41768 }); 41769 result.optionConfig.attributes = wrapper; 41770 } 41771 } 41772 41773 return result; 41774 } 41775 41776 window.addEventListener('alpine:init', () => { 41777 Alpine.data('initConfigurableSwatchOptions_46696', initConfigurableSwatchOptions_46696); 41778 }, { 41779 once: true 41780 }); 41781 </script>
41781 41782 41783 <div x-data="initConfigurableSwatchOptions_46696" x-defer="intersect"> 41784 <div class="pagebuilder-home-hidden"> 41785 41786 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 41787 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 41788 <template x-if="showSwatches"> 41789 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46696-163" role="radiogroup" aria-label="Einband"> 41790 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 41791 <div :data-option-id="item.id" style="display: contents"> 41792 <div x-id="getSwatchOptionHtmlIdGroup"> 41793 <template x-if="optionIsEnabled"> 41794 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
41794self="unsetActiveTooltipItem"> 41795 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46696-163"> 41796 <div> 41797 <template x-if="isTextSwatch"> 41798 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 41799 </template> 41800 <template x-if="!optionIsActive(163, item.id)"> 41801 <div> 41802 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 41803 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 41804 </svg> 41805 </div> 41806 </template> 41807 </div> 41808 </label> 41809 </template> 41810</div> </div> 41811 </template> 41812 </div> 41813 </template> 41814 </div> 41815 </div> 41816 </div> 41817 </div> 41818 41819 <div class="meta py-4 pagebuilder-home-hidden"> 41820 <div x-data="initMarketingShortText_46696()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 41821 <!-- Marketing short text --> 41822 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 41823 </div> 41824 41825 <!-- Short description --> 41826 <div class="short-description"> 41827 In der ostasiatischen Tradition des Mahāyāna gilt die Tiantai-Lehre als eine der ersten und historisch einflussreichsten Schulen des chinesischen Buddhismus. Eines der frühen Hauptwerke, das noch ... <a href="https://meiner.de/fmv_de/das-groa-e-ruhen-und-kontemplieren-16806" class="underline">mehr</a> 41828 </div> 41829 </div> 41830 41831 <!-- Series --> 41832 <div class="mb-1"> 41833 <span class="sr-only">Reihe:</span> 41834 <a href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica"> 41835 <span>Sino-philosophica</span> 41836 </a> 41837 4 </div> 41838 41839 41840 <div class="mb-1"> 41841 <span x-data="initEditionText_46696()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 41842 <!-- Marketing short text --> 41843 <span class="edition-text" x-html="editionText"></span> 2026, 928 Seiten. </span> 41844 </div> 41845 41846 </div> 41847 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 41848 41849 <div class="justify-end" x-data="initPriceBox()" @update-prices-46696.window="updatePrice($event.detail);"> 41850 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46696" data-price-box="product-id-46696"><span class="normal-price"> 41851 <span x-data x-id="['product\u002Dprice\u002D46696']" class="price-container price-final_price tax weee"> 41852 <span class="price-label">Ab</span> 41853 <span class="approx-price">ca. </span> 41854 <span :id="$id('product\u002Dprice\u002D46696')" data-price-amount="189.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">189,99 €</span></span> 41855 </span> 41856</span> 41857 41858 41859</div> </div> 41860 41861 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 41862 <div class="open-access-container open-access-container-46696 flex mt-4 ml-auto sm:mt-0 hidden"> 41863 <div class="text-gray-700"> 41864 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 41865 <a href="" target="_blank" class="open-access-external-link m-auto "> 41866 Kostenlos online lesen </a> 41867 </button> 41868 </div> 41869 </div> 41870 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Das Groß
41870e Ruhen und Kontemplieren" aria-label="In den Warenkorb Das Große Ruhen und Kontemplieren" data-addto="cart"> 41871 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 41872 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 41873</svg> 41874 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 41875 In den Warenkorb </span> 41876 </button> 41877 41878<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46696)" aria-label="Zur Wunschliste hinzufügen Das Große Ruhen und Kontemplieren" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 41879 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 41880 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 41881</svg> 41882</button> 41883 </div> 41884 </div> 41885 </div> 41886
41886<script> 41887 function initMarketingShortText_46696() { 41888 var marketingShortTextConfig = {}; 41889 if (typeof window.initConfigurableSwatchOptions_46696 === "function") { 41890 var fullConfig = window.initConfigurableSwatchOptions_46696().optionConfig 41891 var marketingShortTextConfig = fullConfig.marketing_short_text; 41892 } 41893 return { 41894 marketingShortText: '', 41895 config: marketingShortTextConfig, 41896 productId: '46696', 41897 getMarketingShortText(detail) { 41898 this.marketingShortText = detail.productIndex ? 41899 this.config[detail.productIndex] : 41900 null; 41901 }, 41902 eventListeners: { 41903 ['@listing-configurable-selection-changed.window'](event) { 41904 if (this.productId == event.detail.productId) { 41905 this.getMarketingShortText(event.detail); 41906 } 41907 41908 } 41909 } 41910 } 41911 } 41912 41913 function initEditionText_46696() { 41914 var editionTextConfig = {}; 41915 if (typeof window.initConfigurableSwatchOptions_46696 === "function") { 41916 var fullConfig = window.initConfigurableSwatchOptions_46696().optionConfig 41917 var editionTextConfig = fullConfig.edition; 41918 } 41919 return { 41920 editionText: '', 41921 config: editionTextConfig, 41922 productId: '46696', 41923 getEditionText(detail) { 41924 this.editionText = detail.productIndex ? 41925 this.config[detail.productIndex] : 41926 null; 41927 }, 41928 eventListeners: { 41929 ['@listing-configurable-selection-changed.window'](event) { 41930 if (this.productId == event.detail.productId) { 41931 this.getEditionText(event.detail); 41932 } 41933 41934 } 41935 } 41936 } 41937 } 41938 </script>
41938 41939 </form> 41940 41941 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/17429/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17216"> 41942 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="17429"> 41943 <a href="https://meiner.de/fmv_de/pragmatischer-neokonfuzianismus-17216" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 41944 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-17429.window="$el.src = $event.detail" alt="Pragmatischer Neokonfuzianismus" title="Pragmatischer Neokonfuzianismus" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787345885_4.jpg" :style="{ 41945 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 41946 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 41947 }"> 41948 </a> 41949 <div class="product-info flex flex-col flex-grow "> 41950 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 41951 <div class="mb-2 text-sm text-gray-500 font-medium"> 41952 <a href="https://meiner.de/fmv_de/person/Tingxing-Wang-17218/" class="mb-2"> 41953 Tíngxiàng Wáng </a> 41954 </div> 41955 <a class="product-item-link" href="https://meiner.de/fmv_de/pragmatischer-neokonfuzianismus-17216"> 41956 Pragmatischer Neokonfuzianismus </a> 41957 </div> 41958 41959 <div x-data="initEditionText_17429()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 41960 <!-- Marketing short text --> 41961 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 41962 </div> 41963 </div> 41964 41965 <div class="py-1 grid mb-4 "> 41966 41967 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":17429,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":17429,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"17398":"1","18166":"1"},"childProductsAlertStatus":{"17398":"0","18166":"0"},"indexMapping":{"163:11":17398,"163:8":18166},"availabilityMessages":{"17398":"Lieferbar innerhalb von 3-5 Tagen","18166":"Download sofort verf\u00fcgbar"},"openAccess":{"17429":{"status":0},"17398":{"status":0},"18166":{"status":0}}},"availabilityMessages":{"17398":"Lieferbar innerhalb von 3-5 Tagen","18166":"Download sofort verf\u00fcgbar"},"openAccess":{"17429":{"status":0},"17398":{"status":0},"18166":{"status":0}}}'> 41968 <template x-if="containerVisible"> 41969 <!-- Popup Trigger --> 41970 <div> 41971 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 41972 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
41973 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 41974 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 41975<title>bell</title></svg> 41976</span> 41977 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 41978 41979 <!-- Popup Modal --> 41980 <template x-if="showModal"> 41981 <template x-teleport=".page-wrapper"> 41982 <div x-cloak class="fixed inset-0 flex items-center justify-center 41983 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 41984 <div class="relative bg-white rounded-lg shadow-xl 41985 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 41986 <div class="p-6"> 41987 <!-- Subscription Form for Popup --> 41988 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 41989 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 41990 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 41991 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 41992 41993 <div class="flex flex-col gap-3"> 41994 <div class="flex-grow grow"> 41995 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 41996 shadow-xs focus:outline-none focus:outline-hidden 41997 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 41998 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 41999 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 42000 </div> 42001 <input type="hidden" name="product_id" :value="currentProductId"> 42002 <input type="hidden" name="type" value="email"> 42003 42004 42005 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 42006 42007 <div class="amxnotif_guest_action"> 42008 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 42009 rounded-md focus:outline-none 42010 focus:outline-hidden focus:ring-2 42011 focus:ring-offset-2 disabled:opacity-50 42012 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 42013 Benachrichtigen </button> 42014 </div> 42015 </div> 42016 42017 <div class="flex items-start pt-2"> 42018 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 42019 text-blue-600 border-gray-300 rounded-sm"> 42020 <label class="amxnotif-stock-gdrp-label cursor-pointer 42021 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 42022 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 42023 </div> 42024 </form> 42025 </div> 42026 42027 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 42028 hover:text-gray-600 transition-colors" aria-label="Schließen"> 42029 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 42030 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 42031<title>x</title></svg> 42032 </button> 42033 </div> 42034 </div> 42035 </template> 42036 </template> 42037 </div> 42038 </template> 42039 </div> 42040 42041<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_17429" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":17429,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"17398":"1","18166":"1"},"childProductsAlertStatus":{"17398":"0","18166":"0"},"indexMapping":"{\u0022163:11\u0022:17398,\u0022163:8\u0022:18166}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":17429,"availabilityMessages":{"17398":"Lieferbar innerhalb von 3-5 Tagen","18166":"Download sofort verf\u00fcgbar"},"openAccess":{"17429":{"status":0},"17398":{"status":0},"18166":{"status":0}}}'> 42042 42043 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
42044 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 42045 <span x-html="optionsLabelText"></span> 42046 </p> 42047</div> </div> 42048 42049
42049<script> 42050 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 42051 try { 42052 const attributes = (config && config.attributes) ? config.attributes : null; 42053 if (!attributes) return []; 42054 let attr = null; 42055 if (Array.isArray(attributes)) { 42056 for (let i = 0; i < attributes.length; i++) { 42057 const a = attributes[i]; 42058 if (a && a.id == attrId) { 42059 attr = a; 42060 break; 42061 } 42062 } 42063 } else { 42064 attr = attributes[attrId]; 42065 } 42066 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 42067 } catch (e) { 42068 return []; 42069 } 42070 }; 42071 42072 function initConfigurableSwatchOptions_17429() { 42073 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["17398"]},{"id":"8","label":"PDF","products":["18166"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"17398":{"baseOldPrice":{"amount":69.158877504673},"oldPrice":{"amount":74},"basePrice":{"amount":69.158877504673},"finalPrice":{"amount":74},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"18166":{"baseOldPrice":{"amount":51.392522364486},"oldPrice":{"amount":54.99},"basePrice":{"amount":51.392522364486},"finalPrice":{"amount":54.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":51.392522364486},"oldPrice":{"amount":54.99},"basePrice":{"amount":51.392522364486},"finalPrice":{"amount":54.99},"isApproxPrice":null},"productId":"17429","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"17398":{"163":"11"},"18166":{"163":"8"}},"salable":{"163":{"11":["17398"],"8":["18166"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"17398":"004587","18166":"004588"},"output":{"17398":"Gebunden","18166":"PDF"},"original_name":{"17398":"","18166":""},"openaccess_license_link":{"17398":"","18166":""},"openaccess_license_name":{"17398":"","18166":""},"openaccess_external_link":{"17398":"","18166":""},"gpsr_safety_info":{"17398":"","18166":""},"description":{"17398":"Innerhalb der vielf\u00e4ltig ausdifferenzierten konfuzianischen Philosophie des 16. Jahrhunderts bezieht W\u00e1ng T\u00edngxi\u00e0ng (1474\u20131544) eine markante Position. Seit dem 11. Jahrhundert hatte das konfuzianische Denken eine Systematik entwickelt, deren konsistente Terminologie und klassische Bez\u00fcge in den Bereichen Ethik, Kosmologie und Erkenntnistheorie eine breite Produktion von sich aufeinander beziehenden Beitr\u00e4gen hervorgebracht hatten. <br\/><br\/>Dieser komplexe Diskurs bewegte sich in einem Netzwerk von philosophischen Positionen, die von zeitgen\u00f6ssischen Denkern vertreten wurden und deren Unterschiede in der Wahl der klassischen Referenzen bestehen. W\u00e1ng T\u00edngxi\u00e0ng lehnt dabei das im Pr\u00fcfungssystem zum Kanon erhobene Denken eines Zh\u016b X\u012b (1130\u20131200) genauso ab, wie er sich gegen die Theorien seines einflussreicheren Zeitgenossen W\u00e1ng Y\u00e1ngm\u00edng (1472\u20131529) stellt. Stattdessen bezieht er sich f\u00fcr seine kosmologischen Vorstellungen explizit auf Zh\u0101ng Z\u00e0i (1020\u20131077) und f\u00fcr seine Positionen zu Erkenntnis und Handlung implizit auf X\u00fanz\u01d0 (ca. 310\u2013ca. 239). W\u00e1ng T\u00edngxi\u00e0ng geht von einer ausschlie\u00dflich durch die dynamische Kraft der Materie entstandenen Welt aus, deren Erkenntnis dem Menschen durch einen auf Erfahrung gest\u00fctzten Austausch mit der physischen Welt m\u00f6glich wird. Das Ziel einer durch die konfuzi
42073anische Ethik gepr\u00e4gten Gesellschaft erreicht der Mensch dabei durch ein praxisorientiertes Handeln. <br\/><br\/>F\u00fcr den vorliegenden Band wurden ausgew\u00e4hlte Texte \u00fcbersetzt, die sich durch eine thematische Abgeschlossenheit oder die diskursive Erl\u00e4uterung des eigenen Denkens im brieflichen Dialog auszeichnen, erg\u00e4nzt um vergleichende Ausz\u00fcge aus den beiden gr\u00f6\u00dferen Schriften W\u00e1ng T\u00edngxi\u00e0ngs.","18166":"Innerhalb der vielf\u00e4ltig ausdifferenzierten konfuzianischen Philosophie des 16. Jahrhunderts bezieht W\u00e1ng T\u00edngxi\u00e0ng (1474\u20131544) eine markante Position. Seit dem 11. Jahrhundert hatte das konfuzianische Denken eine Systematik entwickelt, deren konsistente Terminologie und klassische Bez\u00fcge in den Bereichen Ethik, Kosmologie und Erkenntnistheorie eine breite Produktion von sich aufeinander beziehenden Beitr\u00e4gen hervorgebracht hatten. <br\/><br\/>Dieser komplexe Diskurs bewegte sich in einem Netzwerk von philosophischen Positionen, die von zeitgen\u00f6ssischen Denkern vertreten wurden und deren Unterschiede in der Wahl der klassischen Referenzen bestehen. W\u00e1ng T\u00edngxi\u00e0ng lehnt dabei das im Pr\u00fcfungssystem zum Kanon erhobene Denken eines Zh\u016b X\u012b (1130\u20131200) genauso ab, wie er sich gegen die Theorien seines einflussreicheren Zeitgenossen W\u00e1ng Y\u00e1ngm\u00edng (1472\u20131529) stellt. Stattdessen bezieht er sich f\u00fcr seine kosmologischen Vorstellungen explizit auf Zh\u0101ng Z\u00e0i (1020\u20131077) und f\u00fcr seine Positionen zu Erkenntnis und Handlung implizit auf X\u00fanz\u01d0 (ca. 310\u2013ca. 239). W\u00e1ng T\u00edngxi\u00e0ng geht von einer ausschlie\u00dflich durch die dynamische Kraft der Materie entstandenen Welt aus, deren Erkenntnis dem Menschen durch einen auf Erfahrung gest\u00fctzten Austausch mit der physischen Welt m\u00f6glich wird. Das Ziel einer durch die konfuzianische Ethik gepr\u00e4gten Gesellschaft erreicht der Mensch dabei durch ein praxisorientiertes Handeln. <br\/><br\/>F\u00fcr den vorliegenden Band wurden ausgew\u00e4hlte Texte \u00fcbersetzt, die sich durch eine thematische Abgeschlossenheit oder die diskursive Erl\u00e4uterung des eigenen Denkens im brieflichen Dialog auszeichnen, erg\u00e4nzt um vergleichende Ausz\u00fcge aus den beiden gr\u00f6\u00dferen Schriften W\u00e1ng T\u00edngxi\u00e0ngs."},"doi":{"17398":"","18166":"10.28937\/978-3-7873-4588-5"},"isbn":{"17398":"978-3-7873-4587-8","18166":"978-3-7873-4588-5"},"marketing_short_text":{"17398":"Deutsche Erst\u00fcbersetzung eines wichtigen Textes des Neokonfuzianismus","18166":"Deutsche Erst\u00fcbersetzung eines wichtigen Textes des Neokonfuzianismus"},"recension_text":{"17398":"","18166":""},"language":{"17398":"","18166":""},"cover":{"17398":"Gebunden","18166":""},"pages":{"17398":"251 Seiten","18166":"251 Seiten"},"edition":{"17398":"","18166":"Unver\u00e4ndertes eBook der 1. Auflage von 2025"},"pod":{"17398":"Nein","18166":"Nein"},"copyright_year":{"17398":"","18166":""},"vlb_tix_link":{"17398":"https:\/\/neu.vlbtix.de\/products\/9783787345878?type=gtin","18166":""},"defaultValues":{"163":"11"}}; 42074 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 42075 42076 if (typeof window.amxnotif_wrap_attributes === 'function') { 42077 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 42078 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 42079 } 42080 42081 const configurableOptionsComponent = initConfigurableOptions( 42082 '17429', 42083 config 42084 ); 42085 const swatchOptionsComponent = initSwatchOptions( 42086 swatchConfig 42087 ); 42088 42089 // DWS - Configurable product preselect start 42090 const confProdPreSelect = () => { 42091 return { 42092 preselectQuerystringItems() { 42093 var data = {"id":"17398","output":"11"}; 42094 const urlQueryParams = new URLSearchParams(window.location.search); 42095 42096 this.$nextTick(() => { 42097 setTimeout(() => { 42098 const rootEl = this.$root || this.$el; 42099 if (!rootEl) return; 42100 42101 const applySelection = (attrCode, attrValue) => { 42102 if (attrValue === undefined || attrValue === null || attrValue === '') return; 42103 42104 const attributes = Object.values(this.optionConfig.attributes || {}); 42105 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 42106 42107 if (targetAttr) { 42108 const attrId = String(targetAttr.id); 42109 const optionVal = String(attrValue); 42110 42111 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 42112 42113 if (inputEl) { 42114 inputEl.click(); 42115 inputEl.dispatchEvent(new Event('change', { 42116 bubbles: true 42117 })); 42118 } else { 42119 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 42120 if (selectEl) { 42121 selectEl.value = optionVal; 42122 selectEl.dispatchEvent(new Event('change', { 42123 bubbles: true 42124 })); 42125 } 42126 } 42127 42128 this.changeOption(attrId, optionVal, false); 42129 } 42130 }; 42131 42132 if (data && typeof data === 'object') {
42133 Object.keys(data).forEach(key => applySelection(key, data[key])); 42134 } 42135 42136 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 42137 if (attribute && attribute.code) { 42138 let optionValue = urlQueryParams.get(attribute.code); 42139 if (optionValue) { 42140 let optionId = false; 42141 const attributes = Object.values(this.optionConfig.attributes || {}); 42142 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 42143 42144 let found = false; 42145 Object.values(targetAttr.options).map(option => { 42146 if (found === false && option.label === optionValue) { 42147 optionId = option.id; 42148 found = true; 42149 } 42150 }); 42151 42152 const attrId = String(targetAttr.id); 42153 let optionVal = String(optionValue); 42154 if (found) { 42155 optionVal = String(optionId); 42156 } 42157 42158 applySelection(attribute.code, optionVal); 42159 } 42160 } 42161 }); 42162 }, 100); 42163 }); 42164 } 42165 } 42166 }; 42167 // DWS - Configurable product preselect end 42168 42169 const result = Object.assign( 42170 configurableOptionsComponent, 42171 swatchOptionsComponent, { 42172 productId: '17429', 42173 productIndex: 0, 42174 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 42175 showSwatches: false, 42176 precalcOptions: {}, 42177 originalInit: configurableOptionsComponent.init, 42178 init() { 42179 try { 42180 this.precalcOptions = {}; 42181 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 42182 this.preselectQuerystringItems(); 42183 if (Array.isArray(attrSource)) { 42184 attrSource.forEach(attr => { 42185 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 42186 }); 42187 } else if (attrSource && typeof attrSource === 'object') { 42188 Object.keys(attrSource).forEach(id => { 42189 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 42190 }); 42191 } 42192 } catch (e) { 42193 console.error('Pre-calc error:', e); 42194 } 42195 42196 if (typeof this.originalInit === 'function') { 42197 this.originalInit(); 42198 } 42199 42200 try { 42201 this.initShowSwatchesIntersect(); 42202 } catch (e) { 42203 console.error('intersect error:', e); 42204 } 42205 }, 42206 42207 updateGallery() { 42208 if (!this.productIndex) return; 42209 42210 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 42211 method: 'GET', 42212 headers: { 42213 'Content-Type': 'application/json', 42214 'X-Requested-With': 'XMLHttpRequest' 42215 } 42216 }) 42217 .then(response => response.json()) 42218 .then(data => { 42219 if (data && data.medium) { 42220 window.dispatchEvent(new CustomEvent("update-gallery-17429", { 42221 detail: data.medium 42222 })); 42223 } 42224 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 42225 }, 42226 42227 42228 initShowSwatchesIntersect() { 42229 const observer = new IntersectionObserver(entries => { 42230 if (entries[0].isIntersecting) { 42231 this.showSwatches = true; 42232 observer.disconnect(); 42233 } 42234 }, { 42235 rootMargin: '512px' 42236 }); 42237 observer.observe(this.$el); 42238 }, 42239 getOptions(attrId) { 42240 return this.precalcOptions[attrId] || []; 42241 }, 42242 getOptionsByAttrId() { 42243 return this.getOptions(this.$el.dataset.attributeId); 42244 }, 42245 _getItemId() { 42246 if (this.item && this.item.id) return this.item.id; 42247 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 42248 }, 42249 getSwatchOptionHtmlId() { 42250 const itemId = this._getItemId(); 42251 return itemId ? this.$id(`attribute-option-17429-${itemId}`) : ''; 42252 }, 42253 getSwatchOptionHtmlIdGroup() { 42254 const itemId = this._getItemId(); 42255 return itemId ? [`attribute-option-17429-${itemId}`] : []; 42256 }, 42257 getAttributeSwatchData(attributeId) { 42258 const data = Object.assign({}, this.swatchConfig[attributeId]); 42259 if (data['additional_data']) { 42260 try { 42261 data['details'] = JSON.parse(data['additional_data']); 42262 } catch (e) { 42263 data['details'] = {}; 42264 } 42265 } 42266 return data; 42267 }, 42268 getSwatchType(attributeId, optionId) { 42269 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 42270 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 42271 } 42272 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 42273 this.swatchConfig[attributeId].details.swatch_input_type : 42274 "empty"; 42275 if (type === 'visual') { 42276 const config = this.swatchConfig[attributeId]; 42277 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 42278 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 42279 } 42280 // Fallback to first option type 42281 for (const oId in config) { 42282 if (config[oId] && typeof config[oId].type !== 'undefined') { 42283 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 42284 } 42285 } 42286 } 42287 return type; 42288 }, 42289 mapSwatchTypeNumberToTypeCode(type) { 42290 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 42291 }, 42292 isTextSwatch() { 42293 const itemId = this._getItemId(); 42294 if (!this.$el || !itemId) return false;
42295 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42296 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 42297 }, 42298 42299 getSwatchText() { 42300 const itemId = this._getItemId(); 42301 if (this.item) return this.item.label || ''; 42302 if (!this.$el || !itemId) return ''; 42303 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42304 const options = attrId ? this.getOptions(attrId) : []; 42305 const opt = options.find(o => o.id == itemId); 42306 return opt ? opt.label : ''; 42307 }, 42308 getSwatchBackgroundStyle() { 42309 const itemId = this._getItemId(); 42310 if (!this.$el || !itemId) return ''; 42311 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42312 if (!attrId) return ''; 42313 const type = this.getSwatchType(attrId, itemId); 42314 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 42315 this.swatchConfig[attrId][itemId] : 42316 null; 42317 if (!swatchData) return ''; 42318 if (type === "color") return 'background-color:' + swatchData.value; 42319 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 42320 return ''; 42321 }, 42322 swatchOptionClasses() { 42323 const itemId = this._getItemId(); 42324 if (!this.$el || !itemId) return {}; 42325 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42326 return { 42327 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 42328 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 42329 'w-6 h-6': !this.isTextSwatch() 42330 } 42331 }, 42332 42333 onFocusSwatchItem() { 42334 const itemId = this._getItemId(); 42335 if (itemId) this.focusedLabel = itemId; 42336 }, 42337 onChangeOption() { 42338 const itemId = this._getItemId(); 42339 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 42340 if (attrId && itemId) this.changeOption(attrId, itemId); 42341 }, 42342 changeOption(attributeId, value) { 42343 if (value === '') { 42344 return; 42345 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 42346 } else { 42347 this.selectedValues[attributeId] = value; 42348 } 42349 42350 this.findSimpleIndex(); 42351 this.findAllowedAttributeOptions(); 42352 this.updatePrices(); 42353 this.updateGallery(); 42354 42355 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 42356 this.findProductIdsForPartialSelection(this.selectedValues) : []; 42357 42358 const eventDetail = { 42359 productId: this.productId, 42360 optionId: attributeId, 42361 value: value, 42362 productIndex: this.productIndex || 0, 42363 selectedValues: this.selectedValues, 42364 candidates: candidates, 42365 sourceElement: this.$el 42366 }; 42367 42368 // Dispatch for Amasty 42369 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 42370 detail: eventDetail 42371 })); 42372 42373 // Dispatch for Hyva listing 42374 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 42375 detail: eventDetail 42376 })); 42377 }, 42378 42379 42380 clearOptionIfActive() { 42381 const itemId = this._getItemId(); 42382 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 42383 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 42384 this.changeOption(attrId, ''); 42385 42386 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 42387 if (!input && this.$el?.querySelector) { 42388 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 42389 } 42390 if (!input && this.$el?.closest) { 42391 const root = this.$el.closest('[data-product-id]') || this.$el; 42392 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 42393 } 42394 if (input) { 42395 input.checked = false;
42396 } 42397 } 42398 }, 42399 get optionIsEnabled() { 42400 const itemId = this._getItemId(); 42401 if (!this.$el || !itemId) return true; 42402 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42403 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 42404 return !!allowedOptions.find(opt => opt.id == itemId); 42405 }, 42406 get isSelected() { 42407 const itemId = this._getItemId(); 42408 if (!this.$el || !itemId) return false; 42409 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42410 return attrId ? (this.selectedValues[attrId] == itemId) : false; 42411 }, 42412 get isSwatchRequired() { 42413 if (!this.$el) return false; 42414 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42415 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 42416 }, 42417 focusedLabel: false, 42418 activeTooltipItem: false, 42419 tooltipPositionElement: false,
42420 setActiveTooltipItem() { 42421 const itemId = this._getItemId(); 42422 if (!this.$el || !itemId) return; 42423 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42424 this.activeTooltipItem = { 42425 attribute: attrId, 42426 item: itemId, 42427 index: 0 42428 }; 42429 this.tooltipPositionElement = this.$event ? this.$event.target : null; 42430 }, 42431 unsetActiveTooltipItem() { 42432 this.activeTooltipItem = false; 42433 } 42434 }, 42435 confProdPreSelect() 42436 ); 42437 42438 if (result.optionConfig && result.optionConfig.attributes) { 42439 const attributes = result.optionConfig.attributes; 42440 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 42441 let source = attributes; 42442 if (Array.isArray(attributes)) { 42443 source = {}; 42444 attributes.forEach(attr => { 42445 if (attr && attr.id) source[attr.id] = attr; 42446 }); 42447 } 42448 const values = Object.values(source); 42449 const wrapper = Object.assign(values, source); 42450 Object.defineProperty(wrapper, '__amxnotifWrapped', { 42451 value: true, 42452 enumerable: false 42453 }); 42454 result.optionConfig.attributes = wrapper; 42455 } 42456 } 42457 42458 return result; 42459 } 42460 42461 window.addEventListener('alpine:init', () => { 42462 Alpine.data('initConfigurableSwatchOptions_17429', initConfigurableSwatchOptions_17429); 42463 }, { 42464 once: true 42465 }); 42466 </script>
42466 42467 42468 <div x-data="initConfigurableSwatchOptions_17429" x-defer="intersect"> 42469 <div class="pagebuilder-home-hidden"> 42470 42471 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 42472 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 42473 <template x-if="showSwatches"> 42474 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-17429-163" role="radiogroup" aria-label="Einband"> 42475 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 42476 <div :data-option-id="item.id" style="display: contents"> 42477 <div x-id="getSwatchOptionHtmlIdGroup"> 42478 <template x-if="optionIsEnabled"> 42479 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
42479self="unsetActiveTooltipItem"> 42480 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-17429-163"> 42481 <div> 42482 <template x-if="isTextSwatch"> 42483 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 42484 </template> 42485 <template x-if="!optionIsActive(163, item.id)"> 42486 <div> 42487 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 42488 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 42489 </svg> 42490 </div> 42491 </template> 42492 </div> 42493 </label> 42494 </template> 42495</div> </div> 42496 </template> 42497 </div> 42498 </template> 42499 </div> 42500 </div> 42501 </div> 42502 </div> 42503 42504 <div class="meta py-4 pagebuilder-home-hidden"> 42505 <div x-data="initMarketingShortText_17429()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 42506 <!-- Marketing short text --> 42507 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 42508 </div> 42509 42510 <!-- Short description --> 42511 <div class="short-description"> 42512 Innerhalb der vielfältig ausdifferenzierten konfuzianischen Philosophie des 16. Jahrhunderts bezieht Wáng Tíngxiàng (1474–1544) eine markante Position. Seit dem 11. Jahrhundert hatte das ... <a href="https://meiner.de/fmv_de/pragmatischer-neokonfuzianismus-17216" class="underline">mehr</a> 42513 </div> 42514 </div> 42515 42516 <!-- Series --> 42517 <div class="mb-1"> 42518 <span class="sr-only">Reihe:</span> 42519 <a href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica"> 42520 <span>Sino-philosophica</span> 42521 </a> 42522 3 </div> 42523 42524 42525 <div class="mb-1"> 42526 <span x-data="initEditionText_17429()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 42527 <!-- Marketing short text --> 42528 <span class="edition-text" x-html="editionText"></span> 2025, 251 Seiten </span> 42529 </div> 42530 42531 </div> 42532 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 42533 42534 <div class="justify-end" x-data="initPriceBox()" @update-prices-17429.window="updatePrice($event.detail);"> 42535 <div class="price-box price-final_price" data-role="priceBox" data-product-id="17429" data-price-box="product-id-17429"><span class="normal-price"> 42536 <span x-data x-id="['product\u002Dprice\u002D17429']" class="price-container price-final_price tax weee"> 42537 <span class="price-label">Ab</span> 42538 <span class="approx-price">ca. </span> 42539 <span :id="$id('product\u002Dprice\u002D17429')" data-price-amount="54.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">54,99 €</span></span> 42540 </span> 42541</span> 42542 42543 42544</div> </div> 42545 42546 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 42547 <div class="open-access-container open-access-container-17429 flex mt-4 ml-auto sm:mt-0 hidden"> 42548 <div class="text-gray-700"> 42549 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 42550 <a href="" target="_blank" class="open-access-external-link m-auto "> 42551 Kostenlos online lesen </a> 42552 </button> 42553 </div> 42554 </div> 42555 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Pragmatischer Neokonfuzianismus" aria-label="In den Warenkorb Pragmatischer Neokonfuzianismus" data-addto="cart"> 42556 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 42557 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
425570 014 0z"></path> 42558</svg> 42559 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 42560 In den Warenkorb </span> 42561 </button> 42562 42563<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(17429)" aria-label="Zur Wunschliste hinzufügen Pragmatischer Neokonfuzianismus" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 42564 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 42565 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 42566</svg> 42567</button> 42568 </div> 42569 </div> 42570 </div> 42571
42571<script> 42572 function initMarketingShortText_17429() { 42573 var marketingShortTextConfig = {}; 42574 if (typeof window.initConfigurableSwatchOptions_17429 === "function") { 42575 var fullConfig = window.initConfigurableSwatchOptions_17429().optionConfig 42576 var marketingShortTextConfig = fullConfig.marketing_short_text; 42577 } 42578 return { 42579 marketingShortText: '', 42580 config: marketingShortTextConfig, 42581 productId: '17429', 42582 getMarketingShortText(detail) { 42583 this.marketingShortText = detail.productIndex ? 42584 this.config[detail.productIndex] : 42585 null; 42586 }, 42587 eventListeners: { 42588 ['@listing-configurable-selection-changed.window'](event) { 42589 if (this.productId == event.detail.productId) { 42590 this.getMarketingShortText(event.detail); 42591 } 42592 42593 } 42594 } 42595 } 42596 } 42597 42598 function initEditionText_17429() { 42599 var editionTextConfig = {}; 42600 if (typeof window.initConfigurableSwatchOptions_17429 === "function") { 42601 var fullConfig = window.initConfigurableSwatchOptions_17429().optionConfig 42602 var editionTextConfig = fullConfig.edition; 42603 } 42604 return { 42605 editionText: '', 42606 config: editionTextConfig, 42607 productId: '17429', 42608 getEditionText(detail) { 42609 this.editionText = detail.productIndex ? 42610 this.config[detail.productIndex] : 42611 null; 42612 }, 42613 eventListeners: { 42614 ['@listing-configurable-selection-changed.window'](event) { 42615 if (this.productId == event.detail.productId) { 42616 this.getEditionText(event.detail); 42617 } 42618 42619 } 42620 } 42621 } 42622 } 42623 </script>
42623 42624 </form> 42625 42626 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4381/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk16052"> 42627 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4381"> 42628 <a href="https://meiner.de/fmv_de/kleine-schriften-zum-a-groa-en-lernena-16052" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 42629 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4381.window="$el.src = $event.detail" alt="Kleine Schriften zum »Großen Lernen«" title="Kleine Schriften zum »Großen Lernen«" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344185_3.jpg" :style="{ 42630 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 42631 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 42632 }"> 42633 </a> 42634 <div class="product-info flex flex-col flex-grow "> 42635 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 42636 <div class="mb-2 text-sm text-gray-500 font-medium"> 42637 <a href="https://meiner.de/fmv_de/person/Yangming-Wang-13617/" class="mb-2"> 42638 Yángmíng Wáng </a> 42639 </div> 42640 <a class="product-item-link" href="https://meiner.de/fmv_de/kleine-schriften-zum-a-groa-en-lernena-16052"> 42641 Kleine Schriften zum »Großen Lernen« </a> 42642 </div> 42643 42644 <div x-data="initEditionText_4381()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 42645 <!-- Marketing short text --> 42646 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 42647 </div> 42648 </div> 42649 42650 <div class="py-1 grid mb-4 "> 42651 42652 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4381,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4381,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"4352":"1","9996":"1"},"childProductsAlertStatus":{"4352":"0","9996":"0"},"indexMapping":{"163:11":4352,"163:8":9996},"availabilityMessages":{"4352":"Lieferbar innerhalb von 3-5 Tagen","9996":"Download sofort verf\u00fcgbar"},"openAccess":{"4381":{"status":0},"4352":{"status":0},"9996":{"status":0}}},"availabilityMessages":{"4352":"Lieferbar innerhalb von 3-5 Tagen","9996":"Download sofort verf\u00fcgbar"},"openAccess":{"4381":{"status":0},"4352":{"status":0},"9996":{"status":0}}}'> 42653 <template x-if="containerVisible"> 42654 <!-- Popup Trigger --> 42655 <div> 42656 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 42657 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
42658 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 42659 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 42660<title>bell</title></svg> 42661</span> 42662 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 42663 42664 <!-- Popup Modal --> 42665 <template x-if="showModal"> 42666 <template x-teleport=".page-wrapper"> 42667 <div x-cloak class="fixed inset-0 flex items-center justify-center 42668 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 42669 <div class="relative bg-white rounded-lg shadow-xl 42670 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 42671 <div class="p-6"> 42672 <!-- Subscription Form for Popup --> 42673 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 42674 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 42675 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 42676 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 42677 42678 <div class="flex flex-col gap-3"> 42679 <div class="flex-grow grow"> 42680 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 42681 shadow-xs focus:outline-none focus:outline-hidden 42682 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 42683 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 42684 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 42685 </div> 42686 <input type="hidden" name="product_id" :value="currentProductId"> 42687 <input type="hidden" name="type" value="email"> 42688 42689 42690 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 42691 42692 <div class="amxnotif_guest_action"> 42693 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 42694 rounded-md focus:outline-none 42695 focus:outline-hidden focus:ring-2 42696 focus:ring-offset-2 disabled:opacity-50 42697 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 42698 Benachrichtigen </button> 42699 </div> 42700 </div> 42701 42702 <div class="flex items-start pt-2"> 42703 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 42704 text-blue-600 border-gray-300 rounded-sm"> 42705 <label class="amxnotif-stock-gdrp-label cursor-pointer 42706 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 42707 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 42708 </div> 42709 </form> 42710 </div> 42711 42712 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 42713 hover:text-gray-600 transition-colors" aria-label="Schließen"> 42714 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 42715 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 42716<title>x</title></svg> 42717 </button> 42718 </div> 42719 </div> 42720 </template> 42721 </template> 42722 </div> 42723 </template> 42724 </div> 42725 42726<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4381" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4381,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"4352":"1","9996":"1"},"childProductsAlertStatus":{"4352":"0","9996":"0"},"indexMapping":"{\u0022163:11\u0022:4352,\u0022163:8\u0022:9996}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4381,"availabilityMessages":{"4352":"Lieferbar innerhalb von 3-5 Tagen","9996":"Download sofort verf\u00fcgbar"},"openAccess":{"4381":{"status":0},"4352":{"status":0},"9996":{"status":0}}}'> 42727 42728 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
42729 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 42730 <span x-html="optionsLabelText"></span> 42731 </p> 42732</div> </div> 42733 42734
42734<script> 42735 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 42736 try { 42737 const attributes = (config && config.attributes) ? config.attributes : null; 42738 if (!attributes) return []; 42739 let attr = null; 42740 if (Array.isArray(attributes)) { 42741 for (let i = 0; i < attributes.length; i++) { 42742 const a = attributes[i]; 42743 if (a && a.id == attrId) { 42744 attr = a; 42745 break; 42746 } 42747 } 42748 } else { 42749 attr = attributes[attrId]; 42750 } 42751 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 42752 } catch (e) { 42753 return []; 42754 } 42755 }; 42756 42757 function initConfigurableSwatchOptions_4381() { 42758 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["4352"]},{"id":"8","label":"PDF","products":["9996"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"4352":{"baseOldPrice":{"amount":97.196260682243},"oldPrice":{"amount":104},"basePrice":{"amount":97.196260682243},"finalPrice":{"amount":104},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"9996":{"baseOldPrice":{"amount":72.88784946729},"oldPrice":{"amount":77.99},"basePrice":{"amount":72.88784946729},"finalPrice":{"amount":77.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":72.88784946729},"oldPrice":{"amount":77.99},"basePrice":{"amount":72.88784946729},"finalPrice":{"amount":77.99},"isApproxPrice":null},"productId":"4381","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"4352":{"163":"11"},"9996":{"163":"8"}},"salable":{"163":{"11":["4352"],"8":["9996"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"4352":"004417","9996":"004418"},"output":{"4352":"Gebunden","9996":"PDF"},"original_name":{"4352":"","9996":""},"openaccess_license_link":{"4352":"","9996":""},"openaccess_license_name":{"4352":"","9996":""},"openaccess_external_link":{"4352":"","9996":""},"gpsr_safety_info":{"4352":"","9996":""},"description":{"4352":"W\u00e1ng Y\u00e1ngm\u00edng (1472\u20131529) ist einer der wichtigsten Denker der chinesischen Kaiserzeit. Im Fokus seines Denkens steht das spontane Mitgef\u00fchl mit Mitmensch und Umwelt, in dem er den Grund f\u00fcr die M\u00f6glichkeit menschlicher Moral erkennt. <br\/><br\/>W\u00e4hrend er dieses moralische Gef\u00fchl mit einem Ausdruck de
42758s klassischen Philosophen Menzius als \u00bbechtes Wissen\u00ab (li\u00e1ng zh\u012b) bezeichnet, ist es ein anderer kanonischer Text, dem die Schl\u00fcsselrolle bei der Ausformulierung seiner Lehre zukommt: Das \u00bbGro\u00dfe Lernen\u00ab, eines der \u00bbVier B\u00fccher\u00ab des Konfuzianismus, schl\u00e4gt einen Bogen von der \u00dcbung des Geistes zu moralischer Selbstsorge und herrschaftlicher F\u00fcrsorge.<br\/><br\/>Dieser kurze Text stand schon im Zentrum des Bildungsprogramms des Zh\u016b X\u012b, der daraus die Auffassung ableitete, im Studium m\u00fcsse man sich ausf\u00fchrlich mit den Dingen (und Texten) befassen, um die darin aufscheinende Ordnung der Welt zu erkennen. Es ist gegen diese Auffassung, dass W\u00e1ng Y\u00e1ngm\u00edng das \u00bbGro\u00dfe Lernen\u00ab als eine Anleitung zur Introspektion der eigenen moralischen Intuition deutet und von jedem Bezug auf die \u00e4u\u00dfere Wirklichkeit l\u00f6st. <br\/><br\/>Der vorliegende Band versammelt sp\u00e4te Texte W\u00e1ng Y\u00e1ngm\u00edngs. Im Mittelpunkt stehen seine \u00bbFragen zum \u203aGro\u00dfen Lernen\u2039\u00ab, einer der wichtigsten Grundlagentexte der nach ihm benannten Denkschule. Eine Einleitung, zahlreiche Anmerkungen und mehrere Anh\u00e4nge erlauben die philosophische und geistesgeschichtliche Einordnung der \u00fcbersetzten Texte.","9996":"W\u00e1ng Y\u00e1ngm\u00edng (1472\u20131529) ist einer der wichtigsten Denker der chinesischen Kaiserzeit. Im Fokus seines Denkens steht das spontane Mitgef\u00fchl mit Mitmensch und Umwelt, in dem er den Grund f\u00fcr die M\u00f6glichkeit menschlicher Moral erkennt. <br\/><br\/>W\u00e4hrend er dieses moralische Gef\u00fchl mit einem Ausdruck de
42758s klassischen Philosophen Menzius als \u00bbechtes Wissen\u00ab (li\u00e1ng zh\u012b) bezeichnet, ist es ein anderer kanonischer Text, dem die Schl\u00fcsselrolle bei der Ausformulierung seiner Lehre zukommt: Das \u00bbGro\u00dfe Lernen\u00ab, eines der \u00bbVier B\u00fccher\u00ab des Konfuzianismus, schl\u00e4gt einen Bogen von der \u00dcbung des Geistes zu moralischer Selbstsorge und herrschaftlicher F\u00fcrsorge.<br\/><br\/>Dieser kurze Text stand schon im Zentrum des Bildungsprogramms des Zh\u016b X\u012b, der daraus die Auffassung ableitete, im Studium m\u00fcsse man sich ausf\u00fchrlich mit den Dingen (und Texten) befassen, um die darin aufscheinende Ordnung der Welt zu erkennen. Es ist gegen diese Auffassung, dass W\u00e1ng Y\u00e1ngm\u00edng das \u00bbGro\u00dfe Lernen\u00ab als eine Anleitung zur Introspektion der eigenen moralischen Intuition deutet und von jedem Bezug auf die \u00e4u\u00dfere Wirklichkeit l\u00f6st. <br\/><br\/>Der vorliegende Band versammelt sp\u00e4te Texte W\u00e1ng Y\u00e1ngm\u00edngs. Im Mittelpunkt stehen seine \u00bbFragen zum \u203aGro\u00dfen Lernen\u2039\u00ab, einer der wichtigsten Grundlagentexte der nach ihm benannten Denkschule. Eine Einleitung, zahlreiche Anmerkungen und mehrere Anh\u00e4nge erlauben die philosophische und geistesgeschichtliche Einordnung der \u00fcbersetzten Texte."},"doi":{"4352":"","9996":"10.28937\/978-3-7873-4418-5"},"isbn":{"4352":"978-3-7873-4417-8","9996":"978-3-7873-4418-5"},"marketing_short_text":{"4352":"","9996":""},"recension_text":{"4352":"","9996":""},"language":{"4352":"","9996":""},"cover":{"4352":"Gebunden","9996":""},"pages":{"4352":"365 Seiten","9996":"365 Seiten"},"edition":{"4352":"","9996":"Unver\u00e4ndertes eBook der 1. Auflage von 2024"},"pod":{"4352":"Nein","9996":"Nein"},"copyright_year":{"4352":"","9996":""},"vlb_tix_link":{"4352":"https:\/\/neu.vlbtix.de\/products\/9783787344178?type=gtin","9996":""},"defaultValues":{"163":"11"}}; 42759 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 42760 42761 if (typeof window.amxnotif_wrap_attributes === 'function') { 42762 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 42763 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 42764 } 42765 42766 const configurableOptionsComponent = initConfigurableOptions( 42767 '4381', 42768 config 42769 ); 42770 const swatchOptionsComponent = initSwatchOptions( 42771 swatchConfig 42772 ); 42773 42774 // DWS - Configurable product preselect start 42775 const confProdPreSelect = () => { 42776 return { 42777 preselectQuerystringItems() { 42778 var data = {"id":"4352","output":"11"}; 42779 const urlQueryParams = new URLSearchParams(window.location.search); 42780 42781 this.$nextTick(() => { 42782 setTimeout(() => { 42783 const rootEl = this.$root || this.$el; 42784 if (!rootEl) return; 42785 42786 const applySelection = (attrCode, attrValue) => { 42787 if (attrValue === undefined || attrValue === null || attrValue === '') return; 42788 42789 const attributes = Object.values(this.optionConfig.attributes || {}); 42790 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 42791 42792 if (targetAttr) { 42793 const attrId = String(targetAttr.id); 42794 const optionVal = String(attrValue); 42795 42796 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 42797 42798 if (inputEl) { 42799 inputEl.click(); 42800 inputEl.dispatchEvent(new Event('change', { 42801 bubbles: true 42802 })); 42803 } else { 42804 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 42805 if (selectEl) { 42806 selectEl.value = optionVal; 42807 selectEl.dispatchEvent(new Event('change', { 42808 bubbles: true 42809 })); 42810 } 42811 } 42812 42813 this.changeOption(attrId, optionVal, false); 42814 } 42815 }; 42816 42817 if (data && typeof data === 'object') {
42818 Object.keys(data).forEach(key => applySelection(key, data[key])); 42819 } 42820 42821 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 42822 if (attribute && attribute.code) { 42823 let optionValue = urlQueryParams.get(attribute.code); 42824 if (optionValue) { 42825 let optionId = false; 42826 const attributes = Object.values(this.optionConfig.attributes || {}); 42827 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 42828 42829 let found = false; 42830 Object.values(targetAttr.options).map(option => { 42831 if (found === false && option.label === optionValue) { 42832 optionId = option.id; 42833 found = true; 42834 } 42835 }); 42836 42837 const attrId = String(targetAttr.id); 42838 let optionVal = String(optionValue); 42839 if (found) { 42840 optionVal = String(optionId); 42841 } 42842 42843 applySelection(attribute.code, optionVal); 42844 } 42845 } 42846 }); 42847 }, 100); 42848 }); 42849 } 42850 } 42851 }; 42852 // DWS - Configurable product preselect end 42853 42854 const result = Object.assign( 42855 configurableOptionsComponent, 42856 swatchOptionsComponent, { 42857 productId: '4381', 42858 productIndex: 0, 42859 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 42860 showSwatches: false, 42861 precalcOptions: {}, 42862 originalInit: configurableOptionsComponent.init, 42863 init() { 42864 try { 42865 this.precalcOptions = {}; 42866 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 42867 this.preselectQuerystringItems(); 42868 if (Array.isArray(attrSource)) { 42869 attrSource.forEach(attr => { 42870 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 42871 }); 42872 } else if (attrSource && typeof attrSource === 'object') { 42873 Object.keys(attrSource).forEach(id => { 42874 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 42875 }); 42876 } 42877 } catch (e) { 42878 console.error('Pre-calc error:', e); 42879 } 42880 42881 if (typeof this.originalInit === 'function') { 42882 this.originalInit(); 42883 } 42884 42885 try { 42886 this.initShowSwatchesIntersect(); 42887 } catch (e) { 42888 console.error('intersect error:', e); 42889 } 42890 }, 42891 42892 updateGallery() { 42893 if (!this.productIndex) return; 42894 42895 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 42896 method: 'GET', 42897 headers: { 42898 'Content-Type': 'application/json', 42899 'X-Requested-With': 'XMLHttpRequest' 42900 } 42901 }) 42902 .then(response => response.json()) 42903 .then(data => { 42904 if (data && data.medium) { 42905 window.dispatchEvent(new CustomEvent("update-gallery-4381", { 42906 detail: data.medium 42907 })); 42908 } 42909 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 42910 }, 42911 42912 42913 initShowSwatchesIntersect() { 42914 const observer = new IntersectionObserver(entries => { 42915 if (entries[0].isIntersecting) { 42916 this.showSwatches = true; 42917 observer.disconnect(); 42918 } 42919 }, { 42920 rootMargin: '512px' 42921 }); 42922 observer.observe(this.$el); 42923 }, 42924 getOptions(attrId) { 42925 return this.precalcOptions[attrId] || []; 42926 }, 42927 getOptionsByAttrId() { 42928 return this.getOptions(this.$el.dataset.attributeId); 42929 }, 42930 _getItemId() { 42931 if (this.item && this.item.id) return this.item.id; 42932 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 42933 }, 42934 getSwatchOptionHtmlId() { 42935 const itemId = this._getItemId(); 42936 return itemId ? this.$id(`attribute-option-4381-${itemId}`) : ''; 42937 }, 42938 getSwatchOptionHtmlIdGroup() { 42939 const itemId = this._getItemId(); 42940 return itemId ? [`attribute-option-4381-${itemId}`] : []; 42941 }, 42942 getAttributeSwatchData(attributeId) { 42943 const data = Object.assign({}, this.swatchConfig[attributeId]); 42944 if (data['additional_data']) { 42945 try { 42946 data['details'] = JSON.parse(data['additional_data']); 42947 } catch (e) { 42948 data['details'] = {}; 42949 } 42950 } 42951 return data; 42952 }, 42953 getSwatchType(attributeId, optionId) { 42954 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 42955 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 42956 } 42957 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 42958 this.swatchConfig[attributeId].details.swatch_input_type : 42959 "empty"; 42960 if (type === 'visual') { 42961 const config = this.swatchConfig[attributeId]; 42962 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 42963 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 42964 } 42965 // Fallback to first option type 42966 for (const oId in config) { 42967 if (config[oId] && typeof config[oId].type !== 'undefined') { 42968 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 42969 } 42970 } 42971 } 42972 return type; 42973 }, 42974 mapSwatchTypeNumberToTypeCode(type) { 42975 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 42976 }, 42977 isTextSwatch() { 42978 const itemId = this._getItemId(); 42979 if (!this.$el || !itemId) return false;
42980 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42981 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 42982 }, 42983 42984 getSwatchText() { 42985 const itemId = this._getItemId(); 42986 if (this.item) return this.item.label || ''; 42987 if (!this.$el || !itemId) return ''; 42988 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42989 const options = attrId ? this.getOptions(attrId) : []; 42990 const opt = options.find(o => o.id == itemId); 42991 return opt ? opt.label : ''; 42992 }, 42993 getSwatchBackgroundStyle() { 42994 const itemId = this._getItemId(); 42995 if (!this.$el || !itemId) return ''; 42996 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 42997 if (!attrId) return ''; 42998 const type = this.getSwatchType(attrId, itemId); 42999 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 43000 this.swatchConfig[attrId][itemId] : 43001 null; 43002 if (!swatchData) return ''; 43003 if (type === "color") return 'background-color:' + swatchData.value; 43004 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 43005 return ''; 43006 }, 43007 swatchOptionClasses() { 43008 const itemId = this._getItemId(); 43009 if (!this.$el || !itemId) return {}; 43010 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43011 return { 43012 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 43013 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 43014 'w-6 h-6': !this.isTextSwatch() 43015 } 43016 }, 43017 43018 onFocusSwatchItem() { 43019 const itemId = this._getItemId(); 43020 if (itemId) this.focusedLabel = itemId; 43021 }, 43022 onChangeOption() { 43023 const itemId = this._getItemId(); 43024 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 43025 if (attrId && itemId) this.changeOption(attrId, itemId); 43026 }, 43027 changeOption(attributeId, value) { 43028 if (value === '') { 43029 return; 43030 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 43031 } else { 43032 this.selectedValues[attributeId] = value; 43033 } 43034 43035 this.findSimpleIndex(); 43036 this.findAllowedAttributeOptions(); 43037 this.updatePrices(); 43038 this.updateGallery(); 43039 43040 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 43041 this.findProductIdsForPartialSelection(this.selectedValues) : []; 43042 43043 const eventDetail = { 43044 productId: this.productId, 43045 optionId: attributeId, 43046 value: value, 43047 productIndex: this.productIndex || 0, 43048 selectedValues: this.selectedValues, 43049 candidates: candidates, 43050 sourceElement: this.$el 43051 }; 43052 43053 // Dispatch for Amasty 43054 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 43055 detail: eventDetail 43056 })); 43057 43058 // Dispatch for Hyva listing 43059 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 43060 detail: eventDetail 43061 })); 43062 }, 43063 43064 43065 clearOptionIfActive() { 43066 const itemId = this._getItemId(); 43067 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 43068 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 43069 this.changeOption(attrId, ''); 43070 43071 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 43072 if (!input && this.$el?.querySelector) { 43073 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 43074 } 43075 if (!input && this.$el?.closest) { 43076 const root = this.$el.closest('[data-product-id]') || this.$el; 43077 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 43078 } 43079 if (input) { 43080 input.checked = false;
43081 } 43082 } 43083 }, 43084 get optionIsEnabled() { 43085 const itemId = this._getItemId(); 43086 if (!this.$el || !itemId) return true; 43087 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43088 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 43089 return !!allowedOptions.find(opt => opt.id == itemId); 43090 }, 43091 get isSelected() { 43092 const itemId = this._getItemId(); 43093 if (!this.$el || !itemId) return false; 43094 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43095 return attrId ? (this.selectedValues[attrId] == itemId) : false; 43096 }, 43097 get isSwatchRequired() { 43098 if (!this.$el) return false; 43099 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43100 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 43101 }, 43102 focusedLabel: false, 43103 activeTooltipItem: false, 43104 tooltipPositionElement: false,
43105 setActiveTooltipItem() { 43106 const itemId = this._getItemId(); 43107 if (!this.$el || !itemId) return; 43108 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43109 this.activeTooltipItem = { 43110 attribute: attrId, 43111 item: itemId, 43112 index: 0 43113 }; 43114 this.tooltipPositionElement = this.$event ? this.$event.target : null; 43115 }, 43116 unsetActiveTooltipItem() { 43117 this.activeTooltipItem = false; 43118 } 43119 }, 43120 confProdPreSelect() 43121 ); 43122 43123 if (result.optionConfig && result.optionConfig.attributes) { 43124 const attributes = result.optionConfig.attributes; 43125 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 43126 let source = attributes; 43127 if (Array.isArray(attributes)) { 43128 source = {}; 43129 attributes.forEach(attr => { 43130 if (attr && attr.id) source[attr.id] = attr; 43131 }); 43132 } 43133 const values = Object.values(source); 43134 const wrapper = Object.assign(values, source); 43135 Object.defineProperty(wrapper, '__amxnotifWrapped', { 43136 value: true, 43137 enumerable: false 43138 }); 43139 result.optionConfig.attributes = wrapper; 43140 } 43141 } 43142 43143 return result; 43144 } 43145 43146 window.addEventListener('alpine:init', () => { 43147 Alpine.data('initConfigurableSwatchOptions_4381', initConfigurableSwatchOptions_4381); 43148 }, { 43149 once: true 43150 }); 43151 </script>
43151 43152 43153 <div x-data="initConfigurableSwatchOptions_4381" x-defer="intersect"> 43154 <div class="pagebuilder-home-hidden"> 43155 43156 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 43157 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 43158 <template x-if="showSwatches"> 43159 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4381-163" role="radiogroup" aria-label="Einband"> 43160 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 43161 <div :data-option-id="item.id" style="display: contents"> 43162 <div x-id="getSwatchOptionHtmlIdGroup"> 43163 <template x-if="optionIsEnabled"> 43164 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
43164self="unsetActiveTooltipItem"> 43165 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4381-163"> 43166 <div> 43167 <template x-if="isTextSwatch"> 43168 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 43169 </template> 43170 <template x-if="!optionIsActive(163, item.id)"> 43171 <div> 43172 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 43173 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 43174 </svg> 43175 </div> 43176 </template> 43177 </div> 43178 </label> 43179 </template> 43180</div> </div> 43181 </template> 43182 </div> 43183 </template> 43184 </div> 43185 </div> 43186 </div> 43187 </div> 43188 43189 <div class="meta py-4 pagebuilder-home-hidden"> 43190 <div x-data="initMarketingShortText_4381()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 43191 <!-- Marketing short text --> 43192 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 43193 </div> 43194 43195 <!-- Short description --> 43196 <div class="short-description"> 43197 Wáng Yángmíng (1472–1529) ist einer der wichtigsten Denker der chinesischen Kaiserzeit. Im Fokus seines Denkens steht das spontane Mitgefühl mit Mitmensch und Umwelt, in dem er den Grund für die ... <a href="https://meiner.de/fmv_de/kleine-schriften-zum-a-groa-en-lernena-16052" class="underline">mehr</a> 43198 </div> 43199 </div> 43200 43201 <!-- Series --> 43202 <div class="mb-1"> 43203 <span class="sr-only">Reihe:</span> 43204 <a href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica"> 43205 <span>Sino-philosophica</span> 43206 </a> 43207 2 </div> 43208 43209 43210 <div class="mb-1"> 43211 <span x-data="initEditionText_4381()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 43212 <!-- Marketing short text --> 43213 <span class="edition-text" x-html="editionText"></span> 2024, 365 Seiten </span> 43214 </div> 43215 43216 </div> 43217 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 43218 43219 <div class="justify-end" x-data="initPriceBox()" @update-prices-4381.window="updatePrice($event.detail);"> 43220 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4381" data-price-box="product-id-4381"><span class="normal-price"> 43221 <span x-data x-id="['product\u002Dprice\u002D4381']" class="price-container price-final_price tax weee"> 43222 <span class="price-label">Ab</span> 43223 <span class="approx-price">ca. </span>
43224 <span :id="$id('product\u002Dprice\u002D4381')" data-price-amount="77.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">77,99 €</span></span> 43225 </span> 43226</span> 43227 43228 43229</div> </div> 43230 43231 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 43232 <div class="open-access-container open-access-container-4381 flex mt-4 ml-auto sm:mt-0 hidden"> 43233 <div class="text-gray-700"> 43234 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 43235 <a href="" target="_blank" class="open-access-external-link m-auto "> 43236 Kostenlos online lesen </a> 43237 </button> 43238 </div> 43239 </div> 43240 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kleine Schriften zum »Großen Lernen«" aria-label="In den Warenkorb Kleine Schriften zum »Großen Lernen«" data-addto="cart"> 43241 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 43242 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 43243</svg> 43244 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 43245 In den Warenkorb </span> 43246 </button> 43247 43248<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4381)" aria-label="Zur Wunschliste hinzufügen Kleine Schriften zum »Großen Lernen«" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 43249 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 43250 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 43251</svg> 43252</button> 43253 </div> 43254 </div> 43255 </div> 43256
43256<script> 43257 function initMarketingShortText_4381() { 43258 var marketingShortTextConfig = {}; 43259 if (typeof window.initConfigurableSwatchOptions_4381 === "function") { 43260 var fullConfig = window.initConfigurableSwatchOptions_4381().optionConfig 43261 var marketingShortTextConfig = fullConfig.marketing_short_text; 43262 } 43263 return { 43264 marketingShortText: '', 43265 config: marketingShortTextConfig, 43266 productId: '4381', 43267 getMarketingShortText(detail) { 43268 this.marketingShortText = detail.productIndex ? 43269 this.config[detail.productIndex] : 43270 null; 43271 }, 43272 eventListeners: { 43273 ['@listing-configurable-selection-changed.window'](event) { 43274 if (this.productId == event.detail.productId) { 43275 this.getMarketingShortText(event.detail); 43276 } 43277 43278 } 43279 } 43280 } 43281 } 43282 43283 function initEditionText_4381() { 43284 var editionTextConfig = {}; 43285 if (typeof window.initConfigurableSwatchOptions_4381 === "function") { 43286 var fullConfig = window.initConfigurableSwatchOptions_4381().optionConfig 43287 var editionTextConfig = fullConfig.edition; 43288 } 43289 return { 43290 editionText: '', 43291 config: editionTextConfig, 43292 productId: '4381', 43293 getEditionText(detail) { 43294 this.editionText = detail.productIndex ? 43295 this.config[detail.productIndex] : 43296 null; 43297 }, 43298 eventListeners: { 43299 ['@listing-configurable-selection-changed.window'](event) { 43300 if (this.productId == event.detail.productId) { 43301 this.getEditionText(event.detail); 43302 } 43303 43304 } 43305 } 43306 } 43307 } 43308 </script>
43308 43309 </form> 43310 43311 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4214/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk13616"> 43312 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4214"> 43313 <a href="https://meiner.de/fmv_de/kontroversen-a-ber-die-grundlagen-ethischen-handelns-13616" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 43314 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4214.window="$el.src = $event.detail" alt="Kontroversen über die Grundlagen ethischen Handelns" title="Kontroversen über die Grundlagen ethischen Handelns" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787343386_3.jpg" :style="{ 43315 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 43316 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 43317 }"> 43318 </a> 43319 <div class="product-info flex flex-col flex-grow "> 43320 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 43321 <div class="mb-2 text-sm text-gray-500 font-medium"> 43322 <a href="https://meiner.de/fmv_de/person/Yangming-Wang-13617/" class="mb-2"> 43323 Yángmíng Wáng </a> 43324 <span>|</span> 43325 <a href="https://meiner.de/fmv_de/person/Qinshun-Luo-13618/" class="mb-2"> 43326 Qīnshùn Luó </a> 43327 <span>|</span> 43328 <a href="https://meiner.de/fmv_de/person/De-Ouyang-13619/" class="mb-2"> 43329 Dé Ōuyáng </a> 43330 </div> 43331 <a class="product-item-link" href="https://meiner.de/fmv_de/kontroversen-a-ber-die-grundlagen-ethischen-handelns-13616"> 43332 Kontroversen über die Grundlagen ethischen Handelns </a> 43333 </div> 43334 43335 <div x-data="initEditionText_4214()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 43336 <!-- Marketing short text --> 43337 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 43338 </div> 43339 </div> 43340 43341 <div class="py-1 grid mb-4 "> 43342 43343 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":4214,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":4214,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8167":"1","8207":"1"},"childProductsAlertStatus":{"8167":"0","8207":"0"},"indexMapping":{"163:11":8167,"163:8":8207},"availabilityMessages":{"8167":"Lieferbar innerhalb von 3-5 Tagen","8207":"Download sofort verf\u00fcgbar"},"openAccess":{"4214":{"status":0},"8167":{"status":0},"8207":{"status":0}}},"availabilityMessages":{"8167":"Lieferbar innerhalb von 3-5 Tagen","8207":"Download sofort verf\u00fcgbar"},"openAccess":{"4214":{"status":0},"8167":{"status":0},"8207":{"status":0}}}'> 43344 <template x-if="containerVisible"> 43345 <!-- Popup Trigger --> 43346 <div> 43347 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 43348 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
43349 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 43350 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 43351<title>bell</title></svg> 43352</span> 43353 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 43354 43355 <!-- Popup Modal --> 43356 <template x-if="showModal"> 43357 <template x-teleport=".page-wrapper"> 43358 <div x-cloak class="fixed inset-0 flex items-center justify-center 43359 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 43360 <div class="relative bg-white rounded-lg shadow-xl 43361 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 43362 <div class="p-6"> 43363 <!-- Subscription Form for Popup --> 43364 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 43365 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 43366 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 43367 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 43368 43369 <div class="flex flex-col gap-3"> 43370 <div class="flex-grow grow"> 43371 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 43372 shadow-xs focus:outline-none focus:outline-hidden 43373 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 43374 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 43375 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 43376 </div> 43377 <input type="hidden" name="product_id" :value="currentProductId"> 43378 <input type="hidden" name="type" value="email"> 43379 43380 43381 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 43382 43383 <div class="amxnotif_guest_action"> 43384 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 43385 rounded-md focus:outline-none 43386 focus:outline-hidden focus:ring-2 43387 focus:ring-offset-2 disabled:opacity-50 43388 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 43389 Benachrichtigen </button> 43390 </div> 43391 </div> 43392 43393 <div class="flex items-start pt-2"> 43394 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 43395 text-blue-600 border-gray-300 rounded-sm"> 43396 <label class="amxnotif-stock-gdrp-label cursor-pointer 43397 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 43398 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 43399 </div> 43400 </form> 43401 </div> 43402 43403 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 43404 hover:text-gray-600 transition-colors" aria-label="Schließen"> 43405 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 43406 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 43407<title>x</title></svg> 43408 </button> 43409 </div> 43410 </div> 43411 </template> 43412 </template> 43413 </div> 43414 </template> 43415 </div> 43416 43417<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4214" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4214,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"8167":"1","8207":"1"},"childProductsAlertStatus":{"8167":"0","8207":"0"},"indexMapping":"{\u0022163:11\u0022:8167,\u0022163:8\u0022:8207}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":4214,"availabilityMessages":{"8167":"Lieferbar innerhalb von 3-5 Tagen","8207":"Download sofort verf\u00fcgbar"},"openAccess":{"4214":{"status":0},"8167":{"status":0},"8207":{"status":0}}}'> 43418 43419 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
43420 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 43421 <span x-html="optionsLabelText"></span> 43422 </p> 43423</div> </div> 43424 43425
43425<script> 43426 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 43427 try { 43428 const attributes = (config && config.attributes) ? config.attributes : null; 43429 if (!attributes) return []; 43430 let attr = null; 43431 if (Array.isArray(attributes)) { 43432 for (let i = 0; i < attributes.length; i++) { 43433 const a = attributes[i]; 43434 if (a && a.id == attrId) { 43435 attr = a; 43436 break; 43437 } 43438 } 43439 } else { 43440 attr = attributes[attrId]; 43441 } 43442 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 43443 } catch (e) { 43444 return []; 43445 } 43446 }; 43447 43448 function initConfigurableSwatchOptions_4214() { 43449 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["8167"]},{"id":"8","label":"PDF","products":["8207"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"8167":{"baseOldPrice":{"amount":64.485980308411},"oldPrice":{"amount":69},"basePrice":{"amount":64.485980308411},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"8207":{"baseOldPrice":{"amount":49.523363485981},"oldPrice":{"amount":52.99},"basePrice":{"amount":49.523363485981},"finalPrice":{"amount":52.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":49.523363485981},"oldPrice":{"amount":52.99},"basePrice":{"amount":49.523363485981},"finalPrice":{"amount":52.99},"isApproxPrice":null},"productId":"4214","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"8167":{"163":"11"},"8207":{"163":"8"}},"salable":{"163":{"11":["8167"],"8":["8207"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"8167":"004337","8207":"004338"},"output":{"8167":"Gebunden","8207":"PDF"},"original_name":{"8167":"","8207":""},"openaccess_license_link":{"8167":"","8207":""},"openaccess_license_name":{"8167":"","8207":""},"openaccess_external_link":{"8167":"","8207":""},"gpsr_safety_info":{"8167":"","8207":""},"description":{"8167":"W\u00e1ng Y\u00e1ngm\u00edng (1472\u20131529) ist einer der bedeutendsten konfuzianischen Denker des kaiserzeitlichen China. Seine Philosophie der \u00bbEinheit von Wissen und Handeln\u00ab wirkt in China und Ostasien bis zum heutigen Tage nach. Viele seiner Zeitgenossen lehnten seine auf pers\u00f6nlicher Einsicht basierende Ethik ab. <br\/><br\/>Die vorliegende \u00dcbersetzung, mit der die Reihe \u00bbSino-philosophica\u00ab er\u00f6ffnet wird, dokumentiert die Auseinandersetzung \u00fcber die Grundlagen des rechten Handelns, die er und sein Sch\u00fcler \u
43449014cuy\u00e1ng D\u00e9 (1496\u20131554) mit Lu\u00f3 Q\u012bnsh\u00f9n (1465\u20131547) f\u00fchrten. In gr\u00f6\u00dfter Allgemeinheit l\u00e4sst sich diese Kontroverse in folgende Frage fassen: Hat sich ethisches Handeln nach der empirisch erkennbaren objektiven Ordnung des Kosmos (\u00bbOrdnungsprinzipien des Himmels\u00ab) und den tradierten Schriften der \u00bbHeiligen\u00ab (Gespr\u00e4che des Konfuzius, Menzius und anderen Texten) oder aber nach der Einsicht des eigenen \u00bbHerzens\u00ab auszurichten? Nicht nur lassen sich f\u00fcr W\u00e1ng Y\u00e1ngm\u00edng ethische Prinzipien in der objektiven Welt nicht erkennen. Das sich in der eigenen Einsicht offenbarende \u00bburspr\u00fcngliche Wissen\u00ab (li\u00e1ng zh\u012b) hat den Vorrang selbst gegen\u00fcber den Worten von Heiligen wie Konfuzius. Zu keinem Zeitpunkt vor dem Eindringen europ\u00e4ischen Denkens am Ende des 19. Jahrhunderts ist in der chinesischen Philosophie das Verh\u00e4ltnis von Tradition und eigenem individuellen Denken so radikal diskutiert worden. <br\/><br\/>Eine Einleitung sowie umfangreiche Fu\u00dfnoten und Kommentare bieten eine philosophische und geistesgeschichtliche Einordnung.","8207":"W\u00e1ng Y\u00e1ngm\u00edng (1472\u20131529) ist einer der bedeutendsten konfuzianischen Denker des kaiserzeitlichen China. Seine Philosophie der \u00bbEinheit von Wissen und Handeln\u00ab wirkt in China und Ostasien bis zum heutigen Tage nach. Viele seiner Zeitgenossen lehnten seine auf pers\u00f6nlicher Einsicht basierende Ethik ab. <br\/><br\/>Die vorliegende \u00dcbersetzung, mit der die Reihe \u00bbSino-philosophica\u00ab er\u00f6ffnet wird, dokumentiert die Auseinandersetzung \u00fcber die Grundlagen des rechten Handelns, die er und sein Sch\u00fcler \u
43449014cuy\u00e1ng D\u00e9 (1496\u20131554) mit Lu\u00f3 Q\u012bnsh\u00f9n (1465\u20131547) f\u00fchrten. In gr\u00f6\u00dfter Allgemeinheit l\u00e4sst sich diese Kontroverse in folgende Frage fassen: Hat sich ethisches Handeln nach der empirisch erkennbaren objektiven Ordnung des Kosmos (\u00bbOrdnungsprinzipien des Himmels\u00ab) und den tradierten Schriften der \u00bbHeiligen\u00ab (Gespr\u00e4che des Konfuzius, Menzius und anderen Texten) oder aber nach der Einsicht des eigenen \u00bbHerzens\u00ab auszurichten? Nicht nur lassen sich f\u00fcr W\u00e1ng Y\u00e1ngm\u00edng ethische Prinzipien in der objektiven Welt nicht erkennen. Das sich in der eigenen Einsicht offenbarende \u00bburspr\u00fcngliche Wissen\u00ab (li\u00e1ng zh\u012b) hat den Vorrang selbst gegen\u00fcber den Worten von Heiligen wie Konfuzius. Zu keinem Zeitpunkt vor dem Eindringen europ\u00e4ischen Denkens am Ende des 19. Jahrhunderts ist in der chinesischen Philosophie das Verh\u00e4ltnis von Tradition und eigenem individuellen Denken so radikal diskutiert worden. <br\/><br\/>Eine Einleitung sowie umfangreiche Fu\u00dfnoten und Kommentare bieten eine philosophische und geistesgeschichtliche Einordnung."},"doi":{"8167":"","8207":"10.28937\/978-3-7873-4338-6"},"isbn":{"8167":"978-3-7873-4337-9","8207":"978-3-7873-4338-6"},"marketing_short_text":{"8167":"Deutsche Erst\u00fcbersetzungen wichtiger Texte des Konfuzianismus","8207":"Deutsche Erst\u00fcbersetzungen wichtiger Texte des Konfuzianismus"},"recension_text":{"8167":"","8207":""},"language":{"8167":"","8207":""},"cover":{"8167":"Gebunden","8207":""},"pages":{"8167":"238 Seiten","8207":"238 Seiten"},"edition":{"8167":"","8207":"Unver\u00e4ndertes eBook der 1. Auflage von 2023"},"pod":{"8167":"Nein","8207":"Nein"},"copyright_year":{"8167":"","8207":""},"vlb_tix_link":{"8167":"https:\/\/neu.vlbtix.de\/products\/9783787343379?type=gtin","8207":""},"defaultValues":{"163":"11"}}; 43450 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 43451 43452 if (typeof window.amxnotif_wrap_attributes === 'function') { 43453 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 43454 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 43455 } 43456 43457 const configurableOptionsComponent = initConfigurableOptions( 43458 '4214', 43459 config 43460 ); 43461 const swatchOptionsComponent = initSwatchOptions( 43462 swatchConfig 43463 ); 43464 43465 // DWS - Configurable product preselect start 43466 const confProdPreSelect = () => { 43467 return { 43468 preselectQuerystringItems() { 43469 var data = {"id":"8167","output":"11"}; 43470 const urlQueryParams = new URLSearchParams(window.location.search); 43471 43472 this.$nextTick(() => { 43473 setTimeout(() => { 43474 const rootEl = this.$root || this.$el; 43475 if (!rootEl) return; 43476 43477 const applySelection = (attrCode, attrValue) => { 43478 if (attrValue === undefined || attrValue === null || attrValue === '') return; 43479 43480 const attributes = Object.values(this.optionConfig.attributes || {}); 43481 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 43482 43483 if (targetAttr) { 43484 const attrId = String(targetAttr.id); 43485 const optionVal = String(attrValue); 43486 43487 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 43488 43489 if (inputEl) { 43490 inputEl.click(); 43491 inputEl.dispatchEvent(new Event('change', { 43492 bubbles: true 43493 })); 43494 } else { 43495 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 43496 if (selectEl) { 43497 selectEl.value = optionVal; 43498 selectEl.dispatchEvent(new Event('change', { 43499 bubbles: true 43500 })); 43501 } 43502 } 43503 43504 this.changeOption(attrId, optionVal, false); 43505 } 43506 }; 43507 43508 if (data && typeof data === 'object') {
43509 Object.keys(data).forEach(key => applySelection(key, data[key])); 43510 } 43511 43512 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 43513 if (attribute && attribute.code) { 43514 let optionValue = urlQueryParams.get(attribute.code); 43515 if (optionValue) { 43516 let optionId = false; 43517 const attributes = Object.values(this.optionConfig.attributes || {}); 43518 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 43519 43520 let found = false; 43521 Object.values(targetAttr.options).map(option => { 43522 if (found === false && option.label === optionValue) { 43523 optionId = option.id; 43524 found = true; 43525 } 43526 }); 43527 43528 const attrId = String(targetAttr.id); 43529 let optionVal = String(optionValue); 43530 if (found) { 43531 optionVal = String(optionId); 43532 } 43533 43534 applySelection(attribute.code, optionVal); 43535 } 43536 } 43537 }); 43538 }, 100); 43539 }); 43540 } 43541 } 43542 }; 43543 // DWS - Configurable product preselect end 43544 43545 const result = Object.assign( 43546 configurableOptionsComponent, 43547 swatchOptionsComponent, { 43548 productId: '4214', 43549 productIndex: 0, 43550 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 43551 showSwatches: false, 43552 precalcOptions: {}, 43553 originalInit: configurableOptionsComponent.init, 43554 init() { 43555 try { 43556 this.precalcOptions = {}; 43557 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 43558 this.preselectQuerystringItems(); 43559 if (Array.isArray(attrSource)) { 43560 attrSource.forEach(attr => { 43561 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 43562 }); 43563 } else if (attrSource && typeof attrSource === 'object') { 43564 Object.keys(attrSource).forEach(id => { 43565 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 43566 }); 43567 } 43568 } catch (e) { 43569 console.error('Pre-calc error:', e); 43570 } 43571 43572 if (typeof this.originalInit === 'function') { 43573 this.originalInit(); 43574 } 43575 43576 try { 43577 this.initShowSwatchesIntersect(); 43578 } catch (e) { 43579 console.error('intersect error:', e); 43580 } 43581 }, 43582 43583 updateGallery() { 43584 if (!this.productIndex) return; 43585 43586 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 43587 method: 'GET', 43588 headers: { 43589 'Content-Type': 'application/json', 43590 'X-Requested-With': 'XMLHttpRequest' 43591 } 43592 }) 43593 .then(response => response.json()) 43594 .then(data => { 43595 if (data && data.medium) { 43596 window.dispatchEvent(new CustomEvent("update-gallery-4214", { 43597 detail: data.medium 43598 })); 43599 } 43600 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 43601 }, 43602 43603 43604 initShowSwatchesIntersect() { 43605 const observer = new IntersectionObserver(entries => { 43606 if (entries[0].isIntersecting) { 43607 this.showSwatches = true; 43608 observer.disconnect(); 43609 } 43610 }, { 43611 rootMargin: '512px' 43612 }); 43613 observer.observe(this.$el); 43614 }, 43615 getOptions(attrId) { 43616 return this.precalcOptions[attrId] || []; 43617 }, 43618 getOptionsByAttrId() { 43619 return this.getOptions(this.$el.dataset.attributeId); 43620 }, 43621 _getItemId() { 43622 if (this.item && this.item.id) return this.item.id; 43623 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 43624 }, 43625 getSwatchOptionHtmlId() { 43626 const itemId = this._getItemId(); 43627 return itemId ? this.$id(`attribute-option-4214-${itemId}`) : ''; 43628 }, 43629 getSwatchOptionHtmlIdGroup() { 43630 const itemId = this._getItemId(); 43631 return itemId ? [`attribute-option-4214-${itemId}`] : []; 43632 }, 43633 getAttributeSwatchData(attributeId) { 43634 const data = Object.assign({}, this.swatchConfig[attributeId]); 43635 if (data['additional_data']) { 43636 try { 43637 data['details'] = JSON.parse(data['additional_data']); 43638 } catch (e) { 43639 data['details'] = {}; 43640 } 43641 } 43642 return data; 43643 }, 43644 getSwatchType(attributeId, optionId) { 43645 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 43646 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 43647 } 43648 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 43649 this.swatchConfig[attributeId].details.swatch_input_type : 43650 "empty"; 43651 if (type === 'visual') { 43652 const config = this.swatchConfig[attributeId]; 43653 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 43654 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 43655 } 43656 // Fallback to first option type 43657 for (const oId in config) { 43658 if (config[oId] && typeof config[oId].type !== 'undefined') { 43659 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 43660 } 43661 } 43662 } 43663 return type; 43664 }, 43665 mapSwatchTypeNumberToTypeCode(type) { 43666 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 43667 }, 43668 isTextSwatch() { 43669 const itemId = this._getItemId(); 43670 if (!this.$el || !itemId) return false;
43671 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43672 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 43673 }, 43674 43675 getSwatchText() { 43676 const itemId = this._getItemId(); 43677 if (this.item) return this.item.label || ''; 43678 if (!this.$el || !itemId) return ''; 43679 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43680 const options = attrId ? this.getOptions(attrId) : []; 43681 const opt = options.find(o => o.id == itemId); 43682 return opt ? opt.label : ''; 43683 }, 43684 getSwatchBackgroundStyle() { 43685 const itemId = this._getItemId(); 43686 if (!this.$el || !itemId) return ''; 43687 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43688 if (!attrId) return ''; 43689 const type = this.getSwatchType(attrId, itemId); 43690 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 43691 this.swatchConfig[attrId][itemId] : 43692 null; 43693 if (!swatchData) return ''; 43694 if (type === "color") return 'background-color:' + swatchData.value; 43695 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 43696 return ''; 43697 }, 43698 swatchOptionClasses() { 43699 const itemId = this._getItemId(); 43700 if (!this.$el || !itemId) return {}; 43701 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43702 return { 43703 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 43704 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 43705 'w-6 h-6': !this.isTextSwatch() 43706 } 43707 }, 43708 43709 onFocusSwatchItem() { 43710 const itemId = this._getItemId(); 43711 if (itemId) this.focusedLabel = itemId; 43712 }, 43713 onChangeOption() { 43714 const itemId = this._getItemId(); 43715 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 43716 if (attrId && itemId) this.changeOption(attrId, itemId); 43717 }, 43718 changeOption(attributeId, value) { 43719 if (value === '') { 43720 return; 43721 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 43722 } else { 43723 this.selectedValues[attributeId] = value; 43724 } 43725 43726 this.findSimpleIndex(); 43727 this.findAllowedAttributeOptions(); 43728 this.updatePrices(); 43729 this.updateGallery(); 43730 43731 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 43732 this.findProductIdsForPartialSelection(this.selectedValues) : []; 43733 43734 const eventDetail = { 43735 productId: this.productId, 43736 optionId: attributeId, 43737 value: value, 43738 productIndex: this.productIndex || 0, 43739 selectedValues: this.selectedValues, 43740 candidates: candidates, 43741 sourceElement: this.$el 43742 }; 43743 43744 // Dispatch for Amasty 43745 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 43746 detail: eventDetail 43747 })); 43748 43749 // Dispatch for Hyva listing 43750 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 43751 detail: eventDetail 43752 })); 43753 }, 43754 43755 43756 clearOptionIfActive() { 43757 const itemId = this._getItemId(); 43758 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 43759 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 43760 this.changeOption(attrId, ''); 43761 43762 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 43763 if (!input && this.$el?.querySelector) { 43764 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 43765 } 43766 if (!input && this.$el?.closest) { 43767 const root = this.$el.closest('[data-product-id]') || this.$el; 43768 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 43769 } 43770 if (input) { 43771 input.checked = false;
43772 } 43773 } 43774 }, 43775 get optionIsEnabled() { 43776 const itemId = this._getItemId(); 43777 if (!this.$el || !itemId) return true; 43778 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43779 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 43780 return !!allowedOptions.find(opt => opt.id == itemId); 43781 }, 43782 get isSelected() { 43783 const itemId = this._getItemId(); 43784 if (!this.$el || !itemId) return false; 43785 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43786 return attrId ? (this.selectedValues[attrId] == itemId) : false; 43787 }, 43788 get isSwatchRequired() { 43789 if (!this.$el) return false; 43790 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43791 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 43792 }, 43793 focusedLabel: false, 43794 activeTooltipItem: false, 43795 tooltipPositionElement: false,
43796 setActiveTooltipItem() { 43797 const itemId = this._getItemId(); 43798 if (!this.$el || !itemId) return; 43799 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 43800 this.activeTooltipItem = { 43801 attribute: attrId, 43802 item: itemId, 43803 index: 0 43804 }; 43805 this.tooltipPositionElement = this.$event ? this.$event.target : null; 43806 }, 43807 unsetActiveTooltipItem() { 43808 this.activeTooltipItem = false; 43809 } 43810 }, 43811 confProdPreSelect() 43812 ); 43813 43814 if (result.optionConfig && result.optionConfig.attributes) { 43815 const attributes = result.optionConfig.attributes; 43816 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 43817 let source = attributes; 43818 if (Array.isArray(attributes)) { 43819 source = {}; 43820 attributes.forEach(attr => { 43821 if (attr && attr.id) source[attr.id] = attr; 43822 }); 43823 } 43824 const values = Object.values(source); 43825 const wrapper = Object.assign(values, source); 43826 Object.defineProperty(wrapper, '__amxnotifWrapped', { 43827 value: true, 43828 enumerable: false 43829 }); 43830 result.optionConfig.attributes = wrapper; 43831 } 43832 } 43833 43834 return result; 43835 } 43836 43837 window.addEventListener('alpine:init', () => { 43838 Alpine.data('initConfigurableSwatchOptions_4214', initConfigurableSwatchOptions_4214); 43839 }, { 43840 once: true 43841 }); 43842 </script>
43842 43843 43844 <div x-data="initConfigurableSwatchOptions_4214" x-defer="intersect"> 43845 <div class="pagebuilder-home-hidden"> 43846 43847 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 43848 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 43849 <template x-if="showSwatches"> 43850 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-4214-163" role="radiogroup" aria-label="Einband"> 43851 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 43852 <div :data-option-id="item.id" style="display: contents"> 43853 <div x-id="getSwatchOptionHtmlIdGroup"> 43854 <template x-if="optionIsEnabled"> 43855 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
43855self="unsetActiveTooltipItem"> 43856 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-4214-163"> 43857 <div> 43858 <template x-if="isTextSwatch"> 43859 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 43860 </template> 43861 <template x-if="!optionIsActive(163, item.id)"> 43862 <div> 43863 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 43864 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 43865 </svg> 43866 </div> 43867 </template> 43868 </div> 43869 </label> 43870 </template> 43871</div> </div> 43872 </template> 43873 </div> 43874 </template> 43875 </div> 43876 </div> 43877 </div> 43878 </div> 43879 43880 <div class="meta py-4 pagebuilder-home-hidden"> 43881 <div x-data="initMarketingShortText_4214()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 43882 <!-- Marketing short text --> 43883 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 43884 </div> 43885 43886 <!-- Short description --> 43887 <div class="short-description"> 43888 Wáng Yángmíng (1472–1529) ist einer der bedeutendsten konfuzianischen Denker des kaiserzeitlichen China. Seine Philosophie der »Einheit von Wissen und Handeln« wirkt in China und Ostasien bis zum ... <a href="https://meiner.de/fmv_de/kontroversen-a-ber-die-grundlagen-ethischen-handelns-13616" class="underline">mehr</a> 43889 </div> 43890 </div> 43891 43892 <!-- Series --> 43893 <div class="mb-1"> 43894 <span class="sr-only">Reihe:</span> 43895 <a href="https://meiner.de/fmv_de/programm/reihen/sino-philosophica"> 43896 <span>Sino-philosophica</span> 43897 </a> 43898 1 </div> 43899 43900 43901 <div class="mb-1"> 43902 <span x-data="initEditionText_4214()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 43903 <!-- Marketing short text --> 43904 <span class="edition-text" x-html="editionText"></span> 2023, 238 Seiten </span> 43905 </div> 43906 43907 </div> 43908 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 43909 43910 <div class="justify-end" x-data="initPriceBox()" @update-prices-4214.window="updatePrice($event.detail);"> 43911 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4214" data-price-box="product-id-4214"><span class="normal-price"> 43912 <span x-data x-id="['product\u002Dprice\u002D4214']" class="price-container price-final_price tax weee"> 43913 <span class="price-label">Ab</span> 43914 <span class="approx-price">ca. </span>
43915 <span :id="$id('product\u002Dprice\u002D4214')" data-price-amount="52.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">52,99 €</span></span> 43916 </span> 43917</span> 43918 43919 43920</div> </div> 43921 43922 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 43923 <div class="open-access-container open-access-container-4214 flex mt-4 ml-auto sm:mt-0 hidden"> 43924 <div class="text-gray-700"> 43925 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 43926 <a href="" target="_blank" class="open-access-external-link m-auto "> 43927 Kostenlos online lesen </a> 43928 </button> 43929 </div> 43930 </div> 43931 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kontroversen über die Grundlagen ethischen Handelns" aria-label="In den Warenkorb Kontroversen über die Grundlagen ethischen Handelns" data-addto="cart"> 43932 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 43933 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 43934</svg> 43935 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 43936 In den Warenkorb </span> 43937 </button> 43938 43939<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4214)" aria-label="Zur Wunschliste hinzufügen Kontroversen über die Grundlagen ethischen Handelns" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 43940 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 43941 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 43942</svg> 43943</button> 43944 </div> 43945 </div> 43946 </div> 43947
43947<script> 43948 function initMarketingShortText_4214() { 43949 var marketingShortTextConfig = {}; 43950 if (typeof window.initConfigurableSwatchOptions_4214 === "function") { 43951 var fullConfig = window.initConfigurableSwatchOptions_4214().optionConfig 43952 var marketingShortTextConfig = fullConfig.marketing_short_text; 43953 } 43954 return { 43955 marketingShortText: '', 43956 config: marketingShortTextConfig, 43957 productId: '4214', 43958 getMarketingShortText(detail) { 43959 this.marketingShortText = detail.productIndex ? 43960 this.config[detail.productIndex] : 43961 null; 43962 }, 43963 eventListeners: { 43964 ['@listing-configurable-selection-changed.window'](event) { 43965 if (this.productId == event.detail.productId) { 43966 this.getMarketingShortText(event.detail); 43967 } 43968 43969 } 43970 } 43971 } 43972 } 43973 43974 function initEditionText_4214() { 43975 var editionTextConfig = {}; 43976 if (typeof window.initConfigurableSwatchOptions_4214 === "function") { 43977 var fullConfig = window.initConfigurableSwatchOptions_4214().optionConfig 43978 var editionTextConfig = fullConfig.edition; 43979 } 43980 return { 43981 editionText: '', 43982 config: editionTextConfig, 43983 productId: '4214', 43984 getEditionText(detail) { 43985 this.editionText = detail.productIndex ? 43986 this.config[detail.productIndex] : 43987 null; 43988 }, 43989 eventListeners: { 43990 ['@listing-configurable-selection-changed.window'](event) { 43991 if (this.productId == event.detail.productId) { 43992 this.getEditionText(event.detail); 43993 } 43994 43995 } 43996 } 43997 } 43998 } 43999 </script>
43999 44000 </form> 44001 </div> 44002 44003<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 44004 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 44005 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 44006 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 44007</svg> 44008 </button> 44009 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 44010 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 44011 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 44012 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 44013</svg> 44014 </button> 44015</div> 44016 </div> 44017</div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main" data-pb-style="EF0RDMC"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="FUIYFW4"><h2 data-content-type="heading" data-appearance="default" data-element="main">Zeitschriften & Jahrbücher</h2><div class="pagebuilder-column-group card cmsp2-p-5" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="UD26YMC"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="BBAPORQ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="GLCHRV4"><h3 data-content-type="heading" data-appearance="default" data-element="main">Von Aufklärung bis Phänomenologie</h3><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="KBK5W12"><p style="text-align: left;">Alle Zeitschriften und Jahrbücher sind auch über die <a href="https://meiner-elibrary.de/">Meiner-eLibrary</a> verfügbar. </p> 44018<p style="text-align: left;">Abonnementbestellungen nehmen wir gerne <a href="mailto:[email protected]" target="_blank" rel="noopener">per Mail</a> entgegen.</p> 44019<p style="text-align: left;">Informationen über Preise und Bezugsbedingungen unserer Abonnements und Fortsetzungen entnehmen Sie bitte der <a href="https://assets.meiner.de/Downloads/Zeitschriften/FMV_Zeitschriften-Preislisten_aktuell_2026.pdf">aktuellen Preisliste</a> (PDF).</p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="MXLJ7AI"></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="HNWY1JL"><h3 data-content-type="heading" data-appearance="default" data-element="main">Zuletzt erschienen</h3><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carousel"> 44020 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 44021 44022 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47280/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk25422"> 44023 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47280"> 44024 <a href="https://meiner.de/fmv_de/a-sthetik-des-computerspiels-25422" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 44025 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47280.window="$el.src = $event.detail" alt="Ästhetik des Computerspiels" title="Ästhetik des Computerspiels" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787352272_2.jpg" :style="{ 44026 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 44027 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 44028 }"> 44029 </a> 44030 <div class="product-info flex flex-col flex-grow "> 44031 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 44032 <div class="mb-2 text-sm text-gray-500 font-medium"> 44033 <a href="https://meiner.de/fmv_de/person/Philipp-Theisohn-3440/" class="mb-2"> 44034 Philipp Theisohn </a> 44035 <sp
44035an>|</span> 44036 <a href="https://meiner.de/fmv_de/person/Reinold-Schmucker-5063/" class="mb-2"> 44037 Reinold Schmücker (Hrsg.) 44038 </a> 44039 </div> 44040 <a class="product-item-link" href="https://meiner.de/fmv_de/a-sthetik-des-computerspiels-25422"> 44041 Ästhetik des Computerspiels </a> 44042 </div> 44043 44044 <div x-data="initEditionText_47280()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 44045 <!-- Marketing short text --> 44046 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 44047 </div> 44048 </div> 44049 44050 <div class="py-1 grid mb-4 "> 44051 44052 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47280,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47280,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47254":"1","47266":"1"},"childProductsAlertStatus":{"47254":"0","47266":"0"},"indexMapping":{"163:15":47254,"163:8":47266},"availabilityMessages":{"47254":"Lieferbar innerhalb von 3-5 Tagen","47266":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47280":{"status":0},"47254":{"status":0},"47266":{"status":0}}},"availabilityMessages":{"47254":"Lieferbar innerhalb von 3-5 Tagen","47266":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47280":{"status":0},"47254":{"status":0},"47266":{"status":0}}}'> 44053 <template x-if="containerVisible"> 44054 <!-- Popup Trigger --> 44055 <div> 44056 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 44057 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 44058 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 44059 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 44060<title>bell</title></svg> 44061</span> 44062 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 44063 44064 <!-- Popup Modal --> 44065 <template x-if="showModal"> 44066 <template x-teleport=".page-wrapper"> 44067 <div x-cloak class="fixed inset-0 flex items-center justify-center 44068 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 44069 <div class="relative bg-white rounded-lg shadow-xl 44070 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 44071 <div class="p-6"> 44072 <!-- Subscription Form for Popup --> 44073 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 44074 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 44075 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 44076 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 44077 44078 <div class="flex flex-col gap-3"> 44079 <div class="flex-grow grow"> 44080 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 44081 shadow-xs focus:outline-none focus:outline-hidden 44082 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 44083 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 44084 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 44085 </div> 44086 <input type="hidden" name="product_id" :value="currentProductId"> 44087 <input type="hidden" name="type" value="email"> 44088 44089 44090 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 44091 44092 <div class="amxnotif_guest_action"> 44093 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 44094 rounded-md focus:outline-none 44095 focus:outline-hidden focu
44095s:ring-2 44096 focus:ring-offset-2 disabled:opacity-50 44097 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 44098 Benachrichtigen </button> 44099 </div> 44100 </div> 44101 44102 <div class="flex items-start pt-2"> 44103 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 44104 text-blue-600 border-gray-300 rounded-sm"> 44105 <label class="amxnotif-stock-gdrp-label cursor-pointer 44106 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 44107 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 44108 </div> 44109 </form> 44110 </div> 44111 44112 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 44113 hover:text-gray-600 transition-colors" aria-label="Schließen"> 44114 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 44115 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 44116<title>x</title></svg> 44117 </button> 44118 </div> 44119 </div> 44120 </template> 44121 </template> 44122 </div> 44123 </template> 44124 </div> 44125 44126<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47280" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47280,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"47254":"1","47266":"1"},"childProductsAlertStatus":{"47254":"0","47266":"0"},"indexMapping":"{\u0022163:15\u0022:47254,\u0022163:8\u0022:47266}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47280,"availabilityMessages":{"47254":"Lieferbar innerhalb von 3-5 Tagen","47266":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47280":{"status":0},"47254":{"status":0},"47266":{"status":0}}}'> 44127 44128 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 44129 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 44130 <span x-html="optionsLabelText"></span> 44131 </p> 44132</div> </div> 44133 44134
44134<script> 44135 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 44136 try { 44137 const attributes = (config && config.attributes) ? config.attributes : null; 44138 if (!attributes) return []; 44139 let attr = null; 44140 if (Array.isArray(attributes)) { 44141 for (let i = 0; i < attributes.length; i++) { 44142 const a = attributes[i]; 44143 if (a && a.id == attrId) { 44144 attr = a; 44145 break; 44146 } 44147 } 44148 } else { 44149 attr = attributes[attrId]; 44150 } 44151 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 44152 } catch (e) { 44153 return []; 44154 } 44155 }; 44156 44157 function initConfigurableSwatchOptions_47280() { 44158 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["47254"]},{"id":"8","label":"PDF","products":["47266"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47254":{"baseOldPrice":{"amount":92.523363485981},"oldPrice":{"amount":99},"basePrice":{"amount":92.523363485981},"finalPrice":{"amount":99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47266":{"baseOldPrice":{"amount":70.084111149533},"oldPrice":{"amount":74.99},"basePrice":{"amount":70.084111149533},"finalPrice":{"amount":74.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":70.084111149533},"oldPrice":{"amount":74.99},"basePrice":{"amount":63.016805722689},"finalPrice":{"amount":74.99},"isApproxPrice":null},"productId":"47280","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"47254":{"163":"15"},"47266":{"163":"8"}},"salable":{"163":{"15":["47254"],"8":["47266"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"47254":"000132-71-1","47266":"eZ\u00c4K-71-1"},"output":{"47254":"Kartoniert","47266":"PDF"},"original_name":{"47254":"","47266":""},"openaccess_license_link":{"47254":"","47266":""},"openaccess_license_name":{"47254":"","47266":""},"openaccess_external_link":{"47254":"","47266":""},"gpsr_safety_info":{"47254":"","47266":""},"description":{"47254":"Was ist mit \u00bb\u00c4sthetik des Computerspiels\u00ab gemeint? Und wo w\u00e4re diese zu finden? Der Schwerpunkt dieser Ausgabe sucht sie in den Zwischenr\u00e4umen und Sollbruchstellen, die die medialen Architekturen des Computerspiels durchziehen. Die Einheit von fiktionaler Welt, operativer Struktur und technischer Konditionierung, von narrativer und ludischer Ebene, von Programmierung, Spielmechanik, Hardware und Interfaces ist jedoch nur eine scheinbare. Stattdessen wird diese Einheit in ihrer Faktur aus den Spielwelten heraus sichtbar. Dabei gew\u00e4hren die selbstreflexiven Momente einen Zugang zu dem, was man den \u00bb\u00e4sthetischen Effekt\u00ab des Computerspiels nennen k\u00f6nnte. Von dort aus beginnt das Nachdenken \u00fcber jene junge und massenhaft verbreitete Kunstform, deren genauer Analyse sich die Beitr\u00e4ge widmen.","47266":"Was ist mit \u00bb\u00c4sthetik des Computerspiels\u00ab gemeint? Und wo w\u00e4re diese zu finden? Der Schwerpunkt dieser Ausgabe sucht sie in den Zwischenr\u00e4umen und Sollbruchstellen, die die medialen Architekturen des Computerspiels durchziehen. Die Einheit von fiktionaler Welt, operativer Struktur und technischer Konditionierung, von narrativer und ludischer Ebene, von Programmierung, Spielmechanik, Hardware und Interfaces ist jedoch nur eine scheinbare. Stattdessen wird diese Einheit in ihrer Faktur aus den Spielwelten heraus sichtbar. Dabei gew\u00e4hren die selbstreflexiven Momente einen Zugang zu dem, was man den \u00bb\u00e4sthetischen Effekt\u00ab des Computerspiels nennen k\u00f6nnte. Von dort aus beginnt das Nachdenken \u00fcber jene junge und massenhaft verbreitete Kunstform, deren genauer Analyse sich die Beitr\u00e4ge widmen."},"doi":{"47254":"","47266":"10.28937\/978-3-7873-5228-9"},"isbn":{"47254":"978-3-7873-5227-2","47266":""},"marketing_short_text":{"47254":"","47266":""},"recension_text":{"47254":"","47266":""},"language":{"47254":"","47266":""},"cover":{"47254":"Kartoniert","47266":""},"pages":{"47254":"168 Seiten.","47266":"168 Seiten."},"edition":{"47254":"","47266":"Unver\u00e4ndertes eJournal der 1. Auflage von 2026"},"pod":{"47254":"Nein","47266":"Nein"},"copyright_year":{"47254":"","47266":""},"vlb_tix_link":{"47254":"https:\/\/neu.vlbtix.de\/products\/9783787352272?type=gtin","47266":""},"defaultValues":{"163":"15"}}; 44159 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 44160 44161 if (typeof window.amxnotif_wrap_attributes === 'function') { 44162 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 44163 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 44164 } 44165 44166 const configurableOptionsComponent = initConfigurableOptions( 44167 '47280', 44168 config 44169 ); 44170 const swatchOptionsComponent = initSwatchOptions( 44171 swatchConfig 44172 ); 44173 44174 // DWS - Configurable product preselect start 44175 const confProdPreSelect = () => { 44176 return { 44177 preselectQuerystringItems() { 44178 var data = {"id":"47254","output":"15"}; 44179 const urlQueryParams = new URLSearchParams(window.location.search); 44180 44181 this.$nextTick(() => { 44182 setTimeout(() => { 44183 const rootEl = this.$root || this.$el; 44184 if (!rootEl) return; 44185 44186 const applySelection = (attrCode, attrValue) => { 44187 if (attrValue === undefined || attrValue === null || attrValue === '') return; 44188 44189 const attributes = Object.values(this.optionConfig.attributes || {}); 44190 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 44191 44192 if (targetAttr) { 44193 const attrId = String(targetAttr.id); 44194 const optionVal = String(attrValue); 44195 44196 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 44197 44198 if (inputEl) { 44199 inputEl.click(); 44200 inputEl.dispatchEvent(new Event('change', { 44201 bubbles: true 44202 })); 44203 } else { 44204 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 44205 if (selectEl) { 44206 selectEl.value = optionVal; 44207 selectEl.dispatchEvent(new Event('change', { 44208 bubbles: true 44209 })); 44210 } 44211 } 44212 44213 this.changeOption(attrId, optionVal, false); 44214 } 44215 }; 44216 44217 if (data && typeof data === 'object') {
44218 Object.keys(data).forEach(key => applySelection(key, data[key])); 44219 } 44220 44221 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 44222 if (attribute && attribute.code) { 44223 let optionValue = urlQueryParams.get(attribute.code); 44224 if (optionValue) { 44225 let optionId = false; 44226 const attributes = Object.values(this.optionConfig.attributes || {}); 44227 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 44228 44229 let found = false; 44230 Object.values(targetAttr.options).map(option => { 44231 if (found === false && option.label === optionValue) { 44232 optionId = option.id; 44233 found = true; 44234 } 44235 }); 44236 44237 const attrId = String(targetAttr.id); 44238 let optionVal = String(optionValue); 44239 if (found) { 44240 optionVal = String(optionId); 44241 } 44242 44243 applySelection(attribute.code, optionVal); 44244 } 44245 } 44246 }); 44247 }, 100); 44248 }); 44249 } 44250 } 44251 }; 44252 // DWS - Configurable product preselect end 44253 44254 const result = Object.assign( 44255 configurableOptionsComponent, 44256 swatchOptionsComponent, { 44257 productId: '47280', 44258 productIndex: 0, 44259 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 44260 showSwatches: false, 44261 precalcOptions: {}, 44262 originalInit: configurableOptionsComponent.init, 44263 init() { 44264 try { 44265 this.precalcOptions = {}; 44266 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 44267 this.preselectQuerystringItems(); 44268 if (Array.isArray(attrSource)) { 44269 attrSource.forEach(attr => { 44270 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 44271 }); 44272 } else if (attrSource && typeof attrSource === 'object') { 44273 Object.keys(attrSource).forEach(id => { 44274 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 44275 }); 44276 } 44277 } catch (e) { 44278 console.error('Pre-calc error:', e); 44279 } 44280 44281 if (typeof this.originalInit === 'function') { 44282 this.originalInit(); 44283 } 44284 44285 try { 44286 this.initShowSwatchesIntersect(); 44287 } catch (e) { 44288 console.error('intersect error:', e); 44289 } 44290 }, 44291 44292 updateGallery() { 44293 if (!this.productIndex) return; 44294 44295 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 44296 method: 'GET', 44297 headers: { 44298 'Content-Type': 'application/json', 44299 'X-Requested-With': 'XMLHttpRequest' 44300 } 44301 }) 44302 .then(response => response.json()) 44303 .then(data => { 44304 if (data && data.medium) { 44305 window.dispatchEvent(new CustomEvent("update-gallery-47280", { 44306 detail: data.medium 44307 })); 44308 } 44309 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 44310 }, 44311 44312 44313 initShowSwatchesIntersect() { 44314 const observer = new IntersectionObserver(entries => { 44315 if (entries[0].isIntersecting) { 44316 this.showSwatches = true; 44317 observer.disconnect(); 44318 } 44319 }, { 44320 rootMargin: '512px' 44321 }); 44322 observer.observe(this.$el); 44323 }, 44324 getOptions(attrId) { 44325 return this.precalcOptions[attrId] || []; 44326 }, 44327 getOptionsByAttrId() { 44328 return this.getOptions(this.$el.dataset.attributeId); 44329 }, 44330 _getItemId() { 44331 if (this.item && this.item.id) return this.item.id; 44332 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 44333 }, 44334 getSwatchOptionHtmlId() { 44335 const itemId = this._getItemId(); 44336 return itemId ? this.$id(`attribute-option-47280-${itemId}`) : ''; 44337 }, 44338 getSwatchOptionHtmlIdGroup() { 44339 const itemId = this._getItemId(); 44340 return itemId ? [`attribute-option-47280-${itemId}`] : []; 44341 }, 44342 getAttributeSwatchData(attributeId) { 44343 const data = Object.assign({}, this.swatchConfig[attributeId]); 44344 if (data['additional_data']) { 44345 try { 44346 data['details'] = JSON.parse(data['additional_data']); 44347 } catch (e) { 44348 data['details'] = {}; 44349 } 44350 } 44351 return data; 44352 }, 44353 getSwatchType(attributeId, optionId) { 44354 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 44355 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 44356 } 44357 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 44358 this.swatchConfig[attributeId].details.swatch_input_type : 44359 "empty"; 44360 if (type === 'visual') { 44361 const config = this.swatchConfig[attributeId]; 44362 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 44363 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 44364 } 44365 // Fallback to first option type 44366 for (const oId in config) { 44367 if (config[oId] && typeof config[oId].type !== 'undefined') { 44368 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 44369 } 44370 } 44371 } 44372 return type; 44373 }, 44374 mapSwatchTypeNumberToTypeCode(type) { 44375 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 44376 }, 44377 isTextSwatch() { 44378 const itemId = this._getItemId(); 44379 if (!this.$el || !itemId) return false;
44380 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44381 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 44382 }, 44383 44384 getSwatchText() { 44385 const itemId = this._getItemId(); 44386 if (this.item) return this.item.label || ''; 44387 if (!this.$el || !itemId) return ''; 44388 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44389 const options = attrId ? this.getOptions(attrId) : []; 44390 const opt = options.find(o => o.id == itemId); 44391 return opt ? opt.label : ''; 44392 }, 44393 getSwatchBackgroundStyle() { 44394 const itemId = this._getItemId(); 44395 if (!this.$el || !itemId) return ''; 44396 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44397 if (!attrId) return ''; 44398 const type = this.getSwatchType(attrId, itemId); 44399 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 44400 this.swatchConfig[attrId][itemId] : 44401 null; 44402 if (!swatchData) return ''; 44403 if (type === "color") return 'background-color:' + swatchData.value; 44404 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 44405 return ''; 44406 }, 44407 swatchOptionClasses() { 44408 const itemId = this._getItemId(); 44409 if (!this.$el || !itemId) return {}; 44410 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44411 return { 44412 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 44413 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 44414 'w-6 h-6': !this.isTextSwatch() 44415 } 44416 }, 44417 44418 onFocusSwatchItem() { 44419 const itemId = this._getItemId(); 44420 if (itemId) this.focusedLabel = itemId; 44421 }, 44422 onChangeOption() { 44423 const itemId = this._getItemId(); 44424 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 44425 if (attrId && itemId) this.changeOption(attrId, itemId); 44426 }, 44427 changeOption(attributeId, value) { 44428 if (value === '') { 44429 return; 44430 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 44431 } else { 44432 this.selectedValues[attributeId] = value; 44433 } 44434 44435 this.findSimpleIndex(); 44436 this.findAllowedAttributeOptions(); 44437 this.updatePrices(); 44438 this.updateGallery(); 44439 44440 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 44441 this.findProductIdsForPartialSelection(this.selectedValues) : []; 44442 44443 const eventDetail = { 44444 productId: this.productId, 44445 optionId: attributeId, 44446 value: value, 44447 productIndex: this.productIndex || 0, 44448 selectedValues: this.selectedValues, 44449 candidates: candidates, 44450 sourceElement: this.$el 44451 }; 44452 44453 // Dispatch for Amasty 44454 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 44455 detail: eventDetail 44456 })); 44457 44458 // Dispatch for Hyva listing 44459 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 44460 detail: eventDetail 44461 })); 44462 }, 44463 44464 44465 clearOptionIfActive() { 44466 const itemId = this._getItemId(); 44467 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 44468 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 44469 this.changeOption(attrId, ''); 44470 44471 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 44472 if (!input && this.$el?.querySelector) { 44473 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 44474 } 44475 if (!input && this.$el?.closest) { 44476 const root = this.$el.closest('[data-product-id]') || this.$el; 44477 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 44478 } 44479 if (input) { 44480 input.checked = false;
44481 } 44482 } 44483 }, 44484 get optionIsEnabled() { 44485 const itemId = this._getItemId(); 44486 if (!this.$el || !itemId) return true; 44487 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44488 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 44489 return !!allowedOptions.find(opt => opt.id == itemId); 44490 }, 44491 get isSelected() { 44492 const itemId = this._getItemId(); 44493 if (!this.$el || !itemId) return false; 44494 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44495 return attrId ? (this.selectedValues[attrId] == itemId) : false; 44496 }, 44497 get isSwatchRequired() { 44498 if (!this.$el) return false; 44499 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44500 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 44501 }, 44502 focusedLabel: false, 44503 activeTooltipItem: false, 44504 tooltipPositionElement: false,
44505 setActiveTooltipItem() { 44506 const itemId = this._getItemId(); 44507 if (!this.$el || !itemId) return; 44508 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 44509 this.activeTooltipItem = { 44510 attribute: attrId, 44511 item: itemId, 44512 index: 0 44513 }; 44514 this.tooltipPositionElement = this.$event ? this.$event.target : null; 44515 }, 44516 unsetActiveTooltipItem() { 44517 this.activeTooltipItem = false; 44518 } 44519 }, 44520 confProdPreSelect() 44521 ); 44522 44523 if (result.optionConfig && result.optionConfig.attributes) { 44524 const attributes = result.optionConfig.attributes; 44525 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 44526 let source = attributes; 44527 if (Array.isArray(attributes)) { 44528 source = {}; 44529 attributes.forEach(attr => { 44530 if (attr && attr.id) source[attr.id] = attr; 44531 }); 44532 } 44533 const values = Object.values(source); 44534 const wrapper = Object.assign(values, source); 44535 Object.defineProperty(wrapper, '__amxnotifWrapped', { 44536 value: true, 44537 enumerable: false 44538 }); 44539 result.optionConfig.attributes = wrapper; 44540 } 44541 } 44542 44543 return result; 44544 } 44545 44546 window.addEventListener('alpine:init', () => { 44547 Alpine.data('initConfigurableSwatchOptions_47280', initConfigurableSwatchOptions_47280); 44548 }, { 44549 once: true 44550 }); 44551 </script>
44551 44552 44553 <div x-data="initConfigurableSwatchOptions_47280" x-defer="intersect"> 44554 <div class="pagebuilder-home-hidden"> 44555 44556 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 44557 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 44558 <template x-if="showSwatches"> 44559 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47280-163" role="radiogroup" aria-label="Einband"> 44560 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 44561 <div :data-option-id="item.id" style="display: contents"> 44562 <div x-id="getSwatchOptionHtmlIdGroup"> 44563 <template x-if="optionIsEnabled"> 44564 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
44564self="unsetActiveTooltipItem"> 44565 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47280-163"> 44566 <div> 44567 <template x-if="isTextSwatch"> 44568 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 44569 </template> 44570 <template x-if="!optionIsActive(163, item.id)"> 44571 <div> 44572 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 44573 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 44574 </svg> 44575 </div> 44576 </template> 44577 </div> 44578 </label> 44579 </template> 44580</div> </div> 44581 </template> 44582 </div> 44583 </template> 44584 </div> 44585 </div> 44586 </div> 44587 </div> 44588 44589 <div class="meta py-4 pagebuilder-home-hidden"> 44590 <div x-data="initMarketingShortText_47280()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 44591 <!-- Marketing short text --> 44592 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 44593 </div> 44594 44595 <!-- Short description --> 44596 </div> 44597 44598 <!-- Series --> 44599 <div class="mb-1"> 44600 <span class="sr-only">Reihe:</span> 44601 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-asthetik-und-allgemeine-kunstwissenschaft"> 44602 <span>Zeitschrift für Ästhetik und Allgemeine Kunstwissenschaft</span> 44603 </a> 44604 71/1 </div> 44605 44606 44607 <div class="mb-1"> 44608 <span x-data="initEditionText_47280()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 44609 <!-- Marketing short text --> 44610 <span class="edition-text" x-html="editionText"></span> 2026, 168 Seiten. </span> 44611 </div> 44612 44613 </div> 44614 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 44615 44616 <div class="justify-end" x-data="initPriceBox()" @update-prices-47280.window="updatePrice($event.detail);"> 44617 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47280" data-price-box="product-id-47280"><span class="normal-price"> 44618 <span x-data x-id="['product\u002Dprice\u002D47280']" class="price-container price-final_price tax weee"> 44619 <span class="price-label">Ab</span> 44620 <span class="approx-price">ca. </span> 44621 <span :id="$id('product\u002Dprice\u002D47280')" data-price-amount="74.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">74,99 €</span></span> 44622 </span> 44623</span> 44624 44625 44626</div> </div> 44627 44628 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 44629 <div class="open-access-container open-access-container-47280 flex mt-4 ml-auto sm:mt-0 hidden"> 44630 <div class="text-gray-700"> 44631 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 44632 <a href="" target="_blank" class="open-access-external-link m-auto "> 44633 Kostenlos online lesen </a> 44634 </button> 44635 </div> 44636 </div> 44637 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Ästhetik des Computerspiels" aria-label="In den Warenkorb Ästhetik des Computerspiels" data-addto="cart"> 44638 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 44639 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
446390 014 0z"></path> 44640</svg> 44641 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 44642 In den Warenkorb </span> 44643 </button> 44644 44645<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47280)" aria-label="Zur Wunschliste hinzufügen Ästhetik des Computerspiels" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 44646 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 44647 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 44648</svg> 44649</button> 44650 </div> 44651 </div> 44652 </div> 44653
44653<script> 44654 function initMarketingShortText_47280() { 44655 var marketingShortTextConfig = {}; 44656 if (typeof window.initConfigurableSwatchOptions_47280 === "function") { 44657 var fullConfig = window.initConfigurableSwatchOptions_47280().optionConfig 44658 var marketingShortTextConfig = fullConfig.marketing_short_text; 44659 } 44660 return { 44661 marketingShortText: '', 44662 config: marketingShortTextConfig, 44663 productId: '47280', 44664 getMarketingShortText(detail) { 44665 this.marketingShortText = detail.productIndex ? 44666 this.config[detail.productIndex] : 44667 null; 44668 }, 44669 eventListeners: { 44670 ['@listing-configurable-selection-changed.window'](event) { 44671 if (this.productId == event.detail.productId) { 44672 this.getMarketingShortText(event.detail); 44673 } 44674 44675 } 44676 } 44677 } 44678 } 44679 44680 function initEditionText_47280() { 44681 var editionTextConfig = {}; 44682 if (typeof window.initConfigurableSwatchOptions_47280 === "function") { 44683 var fullConfig = window.initConfigurableSwatchOptions_47280().optionConfig 44684 var editionTextConfig = fullConfig.edition; 44685 } 44686 return { 44687 editionText: '', 44688 config: editionTextConfig, 44689 productId: '47280', 44690 getEditionText(detail) { 44691 this.editionText = detail.productIndex ? 44692 this.config[detail.productIndex] : 44693 null; 44694 }, 44695 eventListeners: { 44696 ['@listing-configurable-selection-changed.window'](event) { 44697 if (this.productId == event.detail.productId) { 44698 this.getEditionText(event.detail); 44699 } 44700 44701 } 44702 } 44703 } 44704 } 44705 </script>
44705 44706 </form> 44707 44708 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47264/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21161"> 44709 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47264"> 44710 <a href="https://meiner.de/fmv_de/hegel-studien-band-59-21161" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 44711 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47264.window="$el.src = $event.detail" alt="Hegel-Studien Band 59" title="Hegel-Studien Band 59" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350681_1.jpg" :style="{ 44712 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 44713 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 44714 }"> 44715 </a> 44716 <div class="product-info flex flex-col flex-grow "> 44717 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 44718 <div class="mb-2 text-sm text-gray-500 font-medium"> 44719 <a href="https://meiner.de/fmv_de/person/Brady-Bowman-3358/" class="mb-2"> 44720 Brady Bowman </a> 44721 <span>|</span> 44722 <a href="https://meiner.de/fmv_de/person/Dina-Emundts-4132/" class="mb-2"> 44723 Dina Emundts </a> 44724 <span>|</span> 44725 <a href="https://meiner.de/fmv_de/person/Johannes-Georg-Schulein-3356/" class="mb-2"> 44726 Johannes-Georg Schülein (Hrsg.) 44727 </a> 44728 </div> 44729 <a class="product-item-link" href="https://meiner.de/fmv_de/hegel-studien-band-59-21161"> 44730 Hegel-Studien Band 59 </a> 44731 </div> 44732 44733 <div x-data="initEditionText_47264()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 44734 <!-- Marketing short text --> 44735 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 44736 </div> 44737 </div> 44738 44739 <div class="py-1 grid mb-4 "> 44740 44741 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47264,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47264,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46911":"1","47260":"1"},"childProductsAlertStatus":{"46911":"0","47260":"0"},"indexMapping":{"163:15":46911,"163:8":47260},"availabilityMessages":{"46911":"Lieferbar innerhalb von 3-5 Tagen","47260":"Download sofort verf\u00fcgbar"},"openAccess":{"47264":{"status":0},"46911":{"status":0},"47260":{"status":0}}},"availabilityMessages":{"46911":"Lieferbar innerhalb von 3-5 Tagen","47260":"Download sofort verf\u00fcgbar"},"openAccess":{"47264":{"status":0},"46911":{"status":0},"47260":{"status":0}}}'> 44742 <template x-if="containerVisible"> 44743 <!-- Popup Trigger --> 44744 <div> 44745 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 44746 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
44747 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 44748 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 44749<title>bell</title></svg> 44750</span> 44751 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 44752 44753 <!-- Popup Modal --> 44754 <template x-if="showModal"> 44755 <template x-teleport=".page-wrapper"> 44756 <div x-cloak class="fixed inset-0 flex items-center justify-center 44757 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 44758 <div class="relative bg-white rounded-lg shadow-xl 44759 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 44760 <div class="p-6"> 44761 <!-- Subscription Form for Popup --> 44762 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 44763 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 44764 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 44765 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 44766 44767 <div class="flex flex-col gap-3"> 44768 <div class="flex-grow grow"> 44769 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 44770 shadow-xs focus:outline-none focus:outline-hidden 44771 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 44772 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 44773 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 44774 </div> 44775 <input type="hidden" name="product_id" :value="currentProductId"> 44776 <input type="hidden" name="type" value="email"> 44777 44778 44779 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 44780 44781 <div class="amxnotif_guest_action"> 44782 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 44783 rounded-md focus:outline-none 44784 focus:outline-hidden focus:ring-2 44785 focus:ring-offset-2 disabled:opacity-50 44786 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 44787 Benachrichtigen </button> 44788 </div> 44789 </div> 44790 44791 <div class="flex items-start pt-2"> 44792 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 44793 text-blue-600 border-gray-300 rounded-sm"> 44794 <label class="amxnotif-stock-gdrp-label cursor-pointer 44795 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 44796 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 44797 </div> 44798 </form> 44799 </div> 44800 44801 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 44802 hover:text-gray-600 transition-colors" aria-label="Schließen"> 44803 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 44804 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 44805<title>x</title></svg> 44806 </button> 44807 </div> 44808 </div> 44809 </template> 44810 </template> 44811 </div> 44812 </template> 44813 </div> 44814 44815<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47264" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47264,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46911":"1","47260":"1"},"childProductsAlertStatus":{"46911":"0","47260":"0"},"indexMapping":"{\u0022163:15\u0022:46911,\u0022163:8\u0022:47260}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47264,"availabilityMessages":{"46911":"Lieferbar innerhalb von 3-5 Tagen","47260":"Download sofort verf\u00fcgbar"},"openAccess":{"47264":{"status":0},"46911":{"status":0},"47260":{"status":0}}}'> 44816 44817 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
44818 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 44819 <span x-html="optionsLabelText"></span> 44820 </p> 44821</div> </div> 44822 44823
44823<script> 44824 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 44825 try { 44826 const attributes = (config && config.attributes) ? config.attributes : null; 44827 if (!attributes) return []; 44828 let attr = null; 44829 if (Array.isArray(attributes)) { 44830 for (let i = 0; i < attributes.length; i++) { 44831 const a = attributes[i]; 44832 if (a && a.id == attrId) { 44833 attr = a; 44834 break; 44835 } 44836 } 44837 } else { 44838 attr = attributes[attrId]; 44839 } 44840 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 44841 } catch (e) { 44842 return []; 44843 } 44844 }; 44845 44846 function initConfigurableSwatchOptions_47264() { 44847 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46911"]},{"id":"8","label":"PDF","products":["47260"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46911":{"baseOldPrice":{"amount":119.6261672243},"oldPrice":{"amount":128},"basePrice":{"amount":119.6261672243},"finalPrice":{"amount":128},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47260":{"baseOldPrice":{"amount":88.775699934579},"oldPrice":{"amount":94.99},"basePrice":{"amount":88.775699934579},"finalPrice":{"amount":94.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":88.775699934579},"oldPrice":{"amount":94.99},"basePrice":{"amount":79.823528411765},"finalPrice":{"amount":94.99},"isApproxPrice":null},"productId":"47264","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46911":{"163":"15"},"47260":{"163":"8"}},"salable":{"163":{"15":["46911"],"8":["47260"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46911":"005067","47260":"005068"},"output":{"46911":"Kartoniert","47260":"PDF"},"original_name":{"46911":"","47260":""},"openaccess_license_link":{"46911":"","47260":""},"openaccess_license_name":{"46911":"","47260":""},"openaccess_external_link":{"46911":"","47260":""},"gpsr_safety_info":{"46911":"","47260":""},"description":{"46911":"","47260":""},"doi":{"46911":"","47260":"10.28937\/978-3-7873-5068-1"},"isbn":{"46911":"978-3-7873-5067-4","47260":"978-3-7873-5068-1"},"marketing_short_text":{"46911":"","47260":""},"recension_text":{"46911":"","47260":""},"language":{"46911":"","47260":""},"cover":{"46911":"Kartoniert","47260":""},"pages":{"46911":"278 Seiten.","47260":""},"edition":{"46911":"","47260":"Unver\u00e4ndertes eBook der 1. Auflage von 2026"},"pod":{"46911":"Nein","47260":"Nein"},"copyright_year":{"46911":"","47260":""},"vlb_tix_link":{"46911":"https:\/\/neu.vlbtix.de\/products\/9783787350674?type=gtin","47260":""},"defaultValues":{"163":"15"}}; 44848 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 44849 44850 if (typeof window.amxnotif_wrap_attributes === 'function') { 44851 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 44852 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 44853 } 44854 44855 const configurableOptionsComponent = initConfigurableOptions( 44856 '47264', 44857 config 44858 ); 44859 const swatchOptionsComponent = initSwatchOptions( 44860 swatchConfig 44861 ); 44862 44863 // DWS - Configurable product preselect start 44864 const confProdPreSelect = () => { 44865 return { 44866 preselectQuerystringItems() { 44867 var data = {"id":"46911","output":"15"}; 44868 const urlQueryParams = new URLSearchParams(window.location.search); 44869 44870 this.$nextTick(() => { 44871 setTimeout(() => { 44872 const rootEl = this.$root || this.$el; 44873 if (!rootEl) return; 44874 44875 const applySelection = (attrCode, attrValue) => { 44876 if (attrValue === undefined || attrValue === null || attrValue === '') return; 44877 44878 const attributes = Object.values(this.optionConfig.attributes || {}); 44879 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 44880 44881 if (targetAttr) { 44882 const attrId = String(targetAttr.id); 44883 const optionVal = String(attrValue); 44884 44885 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 44886 44887 if (inputEl) { 44888 inputEl.click(); 44889 inputEl.dispatchEvent(new Event('change', { 44890 bubbles: true 44891 })); 44892 } else { 44893 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 44894 if (selectEl) { 44895 selectEl.value = optionVal; 44896 selectEl.dispatchEvent(new Event('change', { 44897 bubbles: true 44898 })); 44899 } 44900 } 44901 44902 this.changeOption(attrId, optionVal, false); 44903 } 44904 }; 44905 44906 if (data && typeof data === 'object') {
44907 Object.keys(data).forEach(key => applySelection(key, data[key])); 44908 } 44909 44910 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 44911 if (attribute && attribute.code) { 44912 let optionValue = urlQueryParams.get(attribute.code); 44913 if (optionValue) { 44914 let optionId = false; 44915 const attributes = Object.values(this.optionConfig.attributes || {}); 44916 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 44917 44918 let found = false; 44919 Object.values(targetAttr.options).map(option => { 44920 if (found === false && option.label === optionValue) { 44921 optionId = option.id; 44922 found = true; 44923 } 44924 }); 44925 44926 const attrId = String(targetAttr.id); 44927 let optionVal = String(optionValue); 44928 if (found) { 44929 optionVal = String(optionId); 44930 } 44931 44932 applySelection(attribute.code, optionVal); 44933 } 44934 } 44935 }); 44936 }, 100); 44937 }); 44938 } 44939 } 44940 }; 44941 // DWS - Configurable product preselect end 44942 44943 const result = Object.assign( 44944 configurableOptionsComponent, 44945 swatchOptionsComponent, { 44946 productId: '47264', 44947 productIndex: 0, 44948 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 44949 showSwatches: false, 44950 precalcOptions: {}, 44951 originalInit: configurableOptionsComponent.init, 44952 init() { 44953 try { 44954 this.precalcOptions = {}; 44955 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 44956 this.preselectQuerystringItems(); 44957 if (Array.isArray(attrSource)) { 44958 attrSource.forEach(attr => { 44959 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 44960 }); 44961 } else if (attrSource && typeof attrSource === 'object') { 44962 Object.keys(attrSource).forEach(id => { 44963 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 44964 }); 44965 } 44966 } catch (e) { 44967 console.error('Pre-calc error:', e); 44968 } 44969 44970 if (typeof this.originalInit === 'function') { 44971 this.originalInit(); 44972 } 44973 44974 try { 44975 this.initShowSwatchesIntersect(); 44976 } catch (e) { 44977 console.error('intersect error:', e); 44978 } 44979 }, 44980 44981 updateGallery() { 44982 if (!this.productIndex) return; 44983 44984 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 44985 method: 'GET', 44986 headers: { 44987 'Content-Type': 'application/json', 44988 'X-Requested-With': 'XMLHttpRequest' 44989 } 44990 }) 44991 .then(response => response.json()) 44992 .then(data => { 44993 if (data && data.medium) { 44994 window.dispatchEvent(new CustomEvent("update-gallery-47264", { 44995 detail: data.medium 44996 })); 44997 } 44998 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 44999 }, 45000 45001 45002 initShowSwatchesIntersect() { 45003 const observer = new IntersectionObserver(entries => { 45004 if (entries[0].isIntersecting) { 45005 this.showSwatches = true; 45006 observer.disconnect(); 45007 } 45008 }, { 45009 rootMargin: '512px' 45010 }); 45011 observer.observe(this.$el); 45012 }, 45013 getOptions(attrId) { 45014 return this.precalcOptions[attrId] || []; 45015 }, 45016 getOptionsByAttrId() { 45017 return this.getOptions(this.$el.dataset.attributeId); 45018 }, 45019 _getItemId() { 45020 if (this.item && this.item.id) return this.item.id; 45021 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 45022 }, 45023 getSwatchOptionHtmlId() { 45024 const itemId = this._getItemId(); 45025 return itemId ? this.$id(`attribute-option-47264-${itemId}`) : ''; 45026 }, 45027 getSwatchOptionHtmlIdGroup() { 45028 const itemId = this._getItemId(); 45029 return itemId ? [`attribute-option-47264-${itemId}`] : []; 45030 }, 45031 getAttributeSwatchData(attributeId) { 45032 const data = Object.assign({}, this.swatchConfig[attributeId]); 45033 if (data['additional_data']) { 45034 try { 45035 data['details'] = JSON.parse(data['additional_data']); 45036 } catch (e) { 45037 data['details'] = {}; 45038 } 45039 } 45040 return data; 45041 }, 45042 getSwatchType(attributeId, optionId) { 45043 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 45044 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 45045 } 45046 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 45047 this.swatchConfig[attributeId].details.swatch_input_type : 45048 "empty"; 45049 if (type === 'visual') { 45050 const config = this.swatchConfig[attributeId]; 45051 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 45052 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 45053 } 45054 // Fallback to first option type 45055 for (const oId in config) { 45056 if (config[oId] && typeof config[oId].type !== 'undefined') { 45057 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 45058 } 45059 } 45060 } 45061 return type; 45062 }, 45063 mapSwatchTypeNumberToTypeCode(type) { 45064 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 45065 }, 45066 isTextSwatch() { 45067 const itemId = this._getItemId(); 45068 if (!this.$el || !itemId) return false;
45069 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45070 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 45071 }, 45072 45073 getSwatchText() { 45074 const itemId = this._getItemId(); 45075 if (this.item) return this.item.label || ''; 45076 if (!this.$el || !itemId) return ''; 45077 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45078 const options = attrId ? this.getOptions(attrId) : []; 45079 const opt = options.find(o => o.id == itemId); 45080 return opt ? opt.label : ''; 45081 }, 45082 getSwatchBackgroundStyle() { 45083 const itemId = this._getItemId(); 45084 if (!this.$el || !itemId) return ''; 45085 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45086 if (!attrId) return ''; 45087 const type = this.getSwatchType(attrId, itemId); 45088 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 45089 this.swatchConfig[attrId][itemId] : 45090 null; 45091 if (!swatchData) return ''; 45092 if (type === "color") return 'background-color:' + swatchData.value; 45093 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 45094 return ''; 45095 }, 45096 swatchOptionClasses() { 45097 const itemId = this._getItemId(); 45098 if (!this.$el || !itemId) return {}; 45099 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45100 return { 45101 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 45102 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 45103 'w-6 h-6': !this.isTextSwatch() 45104 } 45105 }, 45106 45107 onFocusSwatchItem() { 45108 const itemId = this._getItemId(); 45109 if (itemId) this.focusedLabel = itemId; 45110 }, 45111 onChangeOption() { 45112 const itemId = this._getItemId(); 45113 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 45114 if (attrId && itemId) this.changeOption(attrId, itemId); 45115 }, 45116 changeOption(attributeId, value) { 45117 if (value === '') { 45118 return; 45119 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 45120 } else { 45121 this.selectedValues[attributeId] = value; 45122 } 45123 45124 this.findSimpleIndex(); 45125 this.findAllowedAttributeOptions(); 45126 this.updatePrices(); 45127 this.updateGallery(); 45128 45129 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 45130 this.findProductIdsForPartialSelection(this.selectedValues) : []; 45131 45132 const eventDetail = { 45133 productId: this.productId, 45134 optionId: attributeId, 45135 value: value, 45136 productIndex: this.productIndex || 0, 45137 selectedValues: this.selectedValues, 45138 candidates: candidates, 45139 sourceElement: this.$el 45140 }; 45141 45142 // Dispatch for Amasty 45143 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 45144 detail: eventDetail 45145 })); 45146 45147 // Dispatch for Hyva listing 45148 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 45149 detail: eventDetail 45150 })); 45151 }, 45152 45153 45154 clearOptionIfActive() { 45155 const itemId = this._getItemId(); 45156 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 45157 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 45158 this.changeOption(attrId, ''); 45159 45160 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 45161 if (!input && this.$el?.querySelector) { 45162 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 45163 } 45164 if (!input && this.$el?.closest) { 45165 const root = this.$el.closest('[data-product-id]') || this.$el; 45166 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 45167 } 45168 if (input) { 45169 input.checked = false;
45170 } 45171 } 45172 }, 45173 get optionIsEnabled() { 45174 const itemId = this._getItemId(); 45175 if (!this.$el || !itemId) return true; 45176 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45177 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 45178 return !!allowedOptions.find(opt => opt.id == itemId); 45179 }, 45180 get isSelected() { 45181 const itemId = this._getItemId(); 45182 if (!this.$el || !itemId) return false; 45183 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45184 return attrId ? (this.selectedValues[attrId] == itemId) : false; 45185 }, 45186 get isSwatchRequired() { 45187 if (!this.$el) return false; 45188 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45189 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 45190 }, 45191 focusedLabel: false, 45192 activeTooltipItem: false, 45193 tooltipPositionElement: false,
45194 setActiveTooltipItem() { 45195 const itemId = this._getItemId(); 45196 if (!this.$el || !itemId) return; 45197 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45198 this.activeTooltipItem = { 45199 attribute: attrId, 45200 item: itemId, 45201 index: 0 45202 }; 45203 this.tooltipPositionElement = this.$event ? this.$event.target : null; 45204 }, 45205 unsetActiveTooltipItem() { 45206 this.activeTooltipItem = false; 45207 } 45208 }, 45209 confProdPreSelect() 45210 ); 45211 45212 if (result.optionConfig && result.optionConfig.attributes) { 45213 const attributes = result.optionConfig.attributes; 45214 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 45215 let source = attributes; 45216 if (Array.isArray(attributes)) { 45217 source = {}; 45218 attributes.forEach(attr => { 45219 if (attr && attr.id) source[attr.id] = attr; 45220 }); 45221 } 45222 const values = Object.values(source); 45223 const wrapper = Object.assign(values, source); 45224 Object.defineProperty(wrapper, '__amxnotifWrapped', { 45225 value: true, 45226 enumerable: false 45227 }); 45228 result.optionConfig.attributes = wrapper; 45229 } 45230 } 45231 45232 return result; 45233 } 45234 45235 window.addEventListener('alpine:init', () => { 45236 Alpine.data('initConfigurableSwatchOptions_47264', initConfigurableSwatchOptions_47264); 45237 }, { 45238 once: true 45239 }); 45240 </script>
45240 45241 45242 <div x-data="initConfigurableSwatchOptions_47264" x-defer="intersect"> 45243 <div class="pagebuilder-home-hidden"> 45244 45245 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 45246 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 45247 <template x-if="showSwatches"> 45248 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47264-163" role="radiogroup" aria-label="Einband"> 45249 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 45250 <div :data-option-id="item.id" style="display: contents"> 45251 <div x-id="getSwatchOptionHtmlIdGroup"> 45252 <template x-if="optionIsEnabled"> 45253 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
45253self="unsetActiveTooltipItem"> 45254 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47264-163"> 45255 <div> 45256 <template x-if="isTextSwatch"> 45257 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 45258 </template> 45259 <template x-if="!optionIsActive(163, item.id)"> 45260 <div> 45261 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 45262 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 45263 </svg> 45264 </div> 45265 </template> 45266 </div> 45267 </label> 45268 </template> 45269</div> </div> 45270 </template> 45271 </div> 45272 </template> 45273 </div> 45274 </div> 45275 </div> 45276 </div> 45277 45278 <div class="meta py-4 pagebuilder-home-hidden"> 45279 <div x-data="initMarketingShortText_47264()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 45280 <!-- Marketing short text --> 45281 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 45282 </div> 45283 45284 <!-- Short description --> 45285 </div> 45286 45287 <!-- Series --> 45288 45289 45290 <div class="mb-1"> 45291 <span x-data="initEditionText_47264()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 45292 <!-- Marketing short text --> 45293 <span class="edition-text" x-html="editionText"></span> 2026, 278 Seiten. </span> 45294 </div> 45295 45296 </div> 45297 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 45298 45299 <div class="justify-end" x-data="initPriceBox()" @update-prices-47264.window="updatePrice($event.detail);"> 45300 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47264" data-price-box="product-id-47264"><span class="normal-price"> 45301 <span x-data x-id="['product\u002Dprice\u002D47264']" class="price-container price-final_price tax weee"> 45302 <span class="price-label">Ab</span> 45303 <span class="approx-price">ca. </span> 45304 <span :id="$id('product\u002Dprice\u002D47264')" data-price-amount="94.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">94,99 €</span></span> 45305 </span> 45306</span> 45307 45308 45309</div> </div> 45310 45311 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 45312 <div class="open-access-container open-access-container-47264 flex mt-4 ml-auto sm:mt-0 hidden"> 45313 <div class="text-gray-700"> 45314 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 45315 <a href="" target="_blank" class="open-access-external-link m-auto "> 45316 Kostenlos online lesen </a> 45317 </button> 45318 </div> 45319 </div> 45320 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Hegel-Studien Band 59" aria-label="In den Warenkorb Hegel-Studien Band 59" data-addto="cart"> 45321 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 45322 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
453220 014 0z"></path> 45323</svg> 45324 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 45325 In den Warenkorb </span> 45326 </button> 45327 45328<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47264)" aria-label="Zur Wunschliste hinzufügen Hegel-Studien Band 59" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 45329 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 45330 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 45331</svg> 45332</button> 45333 </div> 45334 </div> 45335 </div> 45336
45336<script> 45337 function initMarketingShortText_47264() { 45338 var marketingShortTextConfig = {}; 45339 if (typeof window.initConfigurableSwatchOptions_47264 === "function") { 45340 var fullConfig = window.initConfigurableSwatchOptions_47264().optionConfig 45341 var marketingShortTextConfig = fullConfig.marketing_short_text; 45342 } 45343 return { 45344 marketingShortText: '', 45345 config: marketingShortTextConfig, 45346 productId: '47264', 45347 getMarketingShortText(detail) { 45348 this.marketingShortText = detail.productIndex ? 45349 this.config[detail.productIndex] : 45350 null; 45351 }, 45352 eventListeners: { 45353 ['@listing-configurable-selection-changed.window'](event) { 45354 if (this.productId == event.detail.productId) { 45355 this.getMarketingShortText(event.detail); 45356 } 45357 45358 } 45359 } 45360 } 45361 } 45362 45363 function initEditionText_47264() { 45364 var editionTextConfig = {}; 45365 if (typeof window.initConfigurableSwatchOptions_47264 === "function") { 45366 var fullConfig = window.initConfigurableSwatchOptions_47264().optionConfig 45367 var editionTextConfig = fullConfig.edition; 45368 } 45369 return { 45370 editionText: '', 45371 config: editionTextConfig, 45372 productId: '47264', 45373 getEditionText(detail) { 45374 this.editionText = detail.productIndex ? 45375 this.config[detail.productIndex] : 45376 null; 45377 }, 45378 eventListeners: { 45379 ['@listing-configurable-selection-changed.window'](event) { 45380 if (this.productId == event.detail.productId) { 45381 this.getEditionText(event.detail); 45382 } 45383 45384 } 45385 } 45386 } 45387 } 45388 </script>
45388 45389 </form> 45390 45391 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47209/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21935"> 45392 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47209"> 45393 <a href="https://meiner.de/fmv_de/mythos-21935" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 45394 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47209.window="$el.src = $event.detail" alt="Mythos" title="Mythos" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351732_1.jpg" :style="{ 45395 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 45396 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 45397 }"> 45398 </a> 45399 <div class="product-info flex flex-col flex-grow "> 45400 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 45401 <div class="mb-2 text-sm text-gray-500 font-medium"> 45402 <a href="https://meiner.de/fmv_de/person/Ralf-Becker-3266/" class="mb-2"> 45403 Ralf Becker </a> 45404 <span>|</span> 45405 <a href="https://meiner.de/fmv_de/person/Christian-Bermes-3208/" class="mb-2"> 45406 Christian Bermes </a> 45407 <span>|</span> 45408 <a href="https://meiner.de/fmv_de/person/Annika-Schlitte-8726/" class="mb-2"> 45409 Annika Schlitte (Hrsg.) 45410 </a> 45411 </div> 45412 <a class="product-item-link" href="https://meiner.de/fmv_de/mythos-21935"> 45413 Mythos </a> 45414 </div> 45415 45416 <div x-data="initEditionText_47209()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 45417 <!-- Marketing short text --> 45418 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 45419 </div> 45420 </div> 45421 45422 <div class="py-1 grid mb-4 "> 45423 45424 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47209,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47209,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46908":"1","47250":"1"},"childProductsAlertStatus":{"46908":"0","47250":"0"},"indexMapping":{"163:15":46908,"163:8":47250},"availabilityMessages":{"46908":"Lieferbar innerhalb von 3-5 Tagen","47250":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47209":{"status":0}
45424,"46908":{"status":0},"47250":{"status":0}}},"availabilityMessages":{"46908":"Lieferbar innerhalb von 3-5 Tagen","47250":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47209":{"status":0},"46908":{"status":0},"47250":{"status":0}}}'> 45425 <template x-if="containerVisible"> 45426 <!-- Popup Trigger --> 45427 <div> 45428 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 45429 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 45430 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 45431 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 45432<title>bell</title></svg> 45433</span> 45434 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 45435 45436 <!-- Popup Modal --> 45437 <template x-if="showModal"> 45438 <template x-teleport=".page-wrapper"> 45439 <div x-cloak class="fixed inset-0 flex items-center justify-center 45440 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 45441 <div class="relative bg-white rounded-lg shadow-xl 45442 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 45443 <div class="p-6"> 45444 <!-- Subscription Form for Popup --> 45445 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 45446 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 45447 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 45448 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 45449 45450 <div class="flex flex-col gap-3"> 45451 <div class="flex-grow grow"> 45452 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 45453 shadow-xs focus:outline-none focus:outline-hidden 45454 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 45455 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 45456 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 45457 </div> 45458 <input type="hidden" name="product_id" :value="currentProductId"> 45459 <input type="hidden" name="type" value="email"> 45460 45461 45462 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 45463 45464 <div class="amxnotif_guest_action"> 45465 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 45466 rounded-md focus:outline-none 45467 focus:outline-hidden focu
45467s:ring-2 45468 focus:ring-offset-2 disabled:opacity-50 45469 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 45470 Benachrichtigen </button> 45471 </div> 45472 </div> 45473 45474 <div class="flex items-start pt-2"> 45475 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 45476 text-blue-600 border-gray-300 rounded-sm"> 45477 <label class="amxnotif-stock-gdrp-label cursor-pointer 45478 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 45479 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 45480 </div> 45481 </form> 45482 </div> 45483 45484 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 45485 hover:text-gray-600 transition-colors" aria-label="Schließen"> 45486 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 45487 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 45488<title>x</title></svg> 45489 </button> 45490 </div> 45491 </div> 45492 </template> 45493 </template> 45494 </div> 45495 </template> 45496 </div> 45497 45498<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47209" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47209,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46908":"1","47250":"1"},"childProductsAlertStatus":{"46908":"0","47250":"0"},"indexMapping":"{\u0022163:15\u0022:46908,\u0022163:8\u0022:47250}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47209,"availabilityMessages":{"46908":"Lieferbar innerhalb von 3-5 Tagen","47250":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47209":{"status":0},"46908":{"status":0},"47250":{"status":0}}}'> 45499 45500 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 45501 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 45502 <span x-html="optionsLabelText"></span> 45503 </p> 45504</div> </div> 45505 45506
45506<script> 45507 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 45508 try { 45509 const attributes = (config && config.attributes) ? config.attributes : null; 45510 if (!attributes) return []; 45511 let attr = null; 45512 if (Array.isArray(attributes)) { 45513 for (let i = 0; i < attributes.length; i++) { 45514 const a = attributes[i]; 45515 if (a && a.id == attrId) { 45516 attr = a; 45517 break; 45518 } 45519 } 45520 } else { 45521 attr = attributes[attrId]; 45522 } 45523 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 45524 } catch (e) { 45525 return []; 45526 } 45527 }; 45528 45529 function initConfigurableSwatchOptions_47209() { 45530 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46908"]},{"id":"8","label":"PDF","products":["47250"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46908":{"baseOldPrice":{"amount":67.289718626168},"oldPrice":{"amount":72},"basePrice":{"amount":67.289718626168},"finalPrice":{"amount":72},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47250":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":46.719625168224},"finalPrice":{"amount":49.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":42.008402361345},"finalPrice":{"amount":49.99},"isApproxPrice":null},"productId":"47209","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46908":{"163":"15"},"47250":{"163":"8"}},"salable":{"163":{"15":["46908"],"8":["47250"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46908":"000845-2026-1","47250":"eZKPh-2026-1"},"output":{"46908":"Kartoniert","47250":"PDF"},"original_name":{"46908":"","47250":""},"openaccess_license_link":{"46908":"","47250":""},"openaccess_license_name":{"46908":"","47250":""},"openaccess_external_link":{"46908":"","47250":""},"gpsr_safety_info":{"46908":"","47250":""},"description":{"46908":"Ernst Cassirer erkannte, dass der Mythos keine veraltete Lebensweise ist, sondern eine Form der Sinnstiftung und Weltgestaltung, die unser gesellschaftliches und politisches Leben noch heute ma\u00dfgeblich mitpr\u00e4gt. Mythen bieten zwar Orientierungsm\u00f6glichkeiten, bergen aber auch die Gefahr, in Ideologien umzuschlagen und somit individuelle sowie gesellschaftliche Selbstbestimmung zu gef\u00e4hrden. <br\/><br\/>Der Band reflektiert diese Ambivalenz des Mythos in aktuellen politischen und gesellschaftlichen Kontexten. Die Beitr\u00e4ge verbinden philosophische, anthropologische, rechtspolitische und \u00e4sthetische Perspektiven und zeigen, wie Mythen politische Orientierung, Meinungsbildung und Vorstellungen von Gerechtigkeit beeinflussen, zugleich aber nicht immun gegen Verblendung sind. ","47250":"Ernst Cassirer erkannte, dass der Mythos keine veraltete Lebensweise ist, sondern eine Form der Sinnstiftung und Weltgestaltung, die unser gesellschaftliches und politisches Leben noch heute ma\u00dfgeblich mitpr\u00e4gt. Mythen bieten zwar Orientierungsm\u00f6glichkeiten, bergen aber auch die Gefahr, in Ideologien umzuschlagen und somit individuelle sowie gesellschaftliche Selbstbestimmung zu gef\u00e4hrden. <br\/><br\/>Der Band reflektiert diese Ambivalenz des Mythos in aktuellen politischen und gesellschaftlichen Kontexten. Die Beitr\u00e4ge verbinden philosophische, anthropologische, rechtspolitische und \u00e4sthetische Perspektiven und zeigen, wie Mythen politische Orientierung, Meinungsbildung und Vorstellungen von Gerechtigkeit beeinflussen, zugleich aber nicht immun gegen Verblendung sind. "},"doi":{"46908":"","47250":"10.28937\/978-3-7873-5173-2"},"isbn":{"46908":"978-3-7873-5172-5","47250":"978-3-7873-5173-2"},"marketing_short_text":{"46908":"","47250":""},"recension_text":{"46908":"","47250":""},"language":{"46908":"","47250":""},"cover":{"46908":"Kartoniert","47250":""},"pages":{"46908":"184 Seiten.","47250":"184"},"edition":{"46908":"","47250":"Unver\u00e4ndertes eJournal der 1. Auflage von 2026"},"pod":{"46908":"Nein","47250":"Nein"},"copyright_year":{"46908":"","47250":""},"vlb_tix_link":{"46908":"https:\/\/neu.vlbtix.de\/products\/9783787351725?type=gtin","47250":""},"defaultValues":{"163":"15"}}; 45531 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 45532 45533 if (typeof window.amxnotif_wrap_attributes === 'function') { 45534 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 45535 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 45536 } 45537 45538 const configurableOptionsComponent = initConfigurableOptions( 45539 '47209', 45540 config 45541 ); 45542 const swatchOptionsComponent = initSwatchOptions( 45543 swatchConfig 45544 ); 45545 45546 // DWS - Configurable product preselect start 45547 const confProdPreSelect = () => { 45548 return { 45549 preselectQuerystringItems() { 45550 var data = {"id":"46908","output":"15"}; 45551 const urlQueryParams = new URLSearchParams(window.location.search); 45552 45553 this.$nextTick(() => { 45554 setTimeout(() => { 45555 const rootEl = this.$root || this.$el; 45556 if (!rootEl) return; 45557 45558 const applySelection = (attrCode, attrValue) => { 45559 if (attrValue === undefined || attrValue === null || attrValue === '') return; 45560 45561 const attributes = Object.values(this.optionConfig.attributes || {}); 45562 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 45563 45564 if (targetAttr) { 45565 const attrId = String(targetAttr.id); 45566 const optionVal = String(attrValue); 45567 45568 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 45569 45570 if (inputEl) { 45571 inputEl.click(); 45572 inputEl.dispatchEvent(new Event('change', { 45573 bubbles: true 45574 })); 45575 } else { 45576 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 45577 if (selectEl) { 45578 selectEl.value = optionVal; 45579 selectEl.dispatchEvent(new Event('change', { 45580 bubbles: true 45581 })); 45582 } 45583 } 45584 45585 this.changeOption(attrId, optionVal, false); 45586 } 45587 }; 45588 45589 if (data && typeof data === 'object') {
45590 Object.keys(data).forEach(key => applySelection(key, data[key])); 45591 } 45592 45593 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 45594 if (attribute && attribute.code) { 45595 let optionValue = urlQueryParams.get(attribute.code); 45596 if (optionValue) { 45597 let optionId = false; 45598 const attributes = Object.values(this.optionConfig.attributes || {}); 45599 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 45600 45601 let found = false; 45602 Object.values(targetAttr.options).map(option => { 45603 if (found === false && option.label === optionValue) { 45604 optionId = option.id; 45605 found = true; 45606 } 45607 }); 45608 45609 const attrId = String(targetAttr.id); 45610 let optionVal = String(optionValue); 45611 if (found) { 45612 optionVal = String(optionId); 45613 } 45614 45615 applySelection(attribute.code, optionVal); 45616 } 45617 } 45618 }); 45619 }, 100); 45620 }); 45621 } 45622 } 45623 }; 45624 // DWS - Configurable product preselect end 45625 45626 const result = Object.assign( 45627 configurableOptionsComponent, 45628 swatchOptionsComponent, { 45629 productId: '47209', 45630 productIndex: 0, 45631 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 45632 showSwatches: false, 45633 precalcOptions: {}, 45634 originalInit: configurableOptionsComponent.init, 45635 init() { 45636 try { 45637 this.precalcOptions = {}; 45638 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 45639 this.preselectQuerystringItems(); 45640 if (Array.isArray(attrSource)) { 45641 attrSource.forEach(attr => { 45642 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 45643 }); 45644 } else if (attrSource && typeof attrSource === 'object') { 45645 Object.keys(attrSource).forEach(id => { 45646 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 45647 }); 45648 } 45649 } catch (e) { 45650 console.error('Pre-calc error:', e); 45651 } 45652 45653 if (typeof this.originalInit === 'function') { 45654 this.originalInit(); 45655 } 45656 45657 try { 45658 this.initShowSwatchesIntersect(); 45659 } catch (e) { 45660 console.error('intersect error:', e); 45661 } 45662 }, 45663 45664 updateGallery() { 45665 if (!this.productIndex) return; 45666 45667 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 45668 method: 'GET', 45669 headers: { 45670 'Content-Type': 'application/json', 45671 'X-Requested-With': 'XMLHttpRequest' 45672 } 45673 }) 45674 .then(response => response.json()) 45675 .then(data => { 45676 if (data && data.medium) { 45677 window.dispatchEvent(new CustomEvent("update-gallery-47209", { 45678 detail: data.medium 45679 })); 45680 } 45681 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 45682 }, 45683 45684 45685 initShowSwatchesIntersect() { 45686 const observer = new IntersectionObserver(entries => { 45687 if (entries[0].isIntersecting) { 45688 this.showSwatches = true; 45689 observer.disconnect(); 45690 } 45691 }, { 45692 rootMargin: '512px' 45693 }); 45694 observer.observe(this.$el); 45695 }, 45696 getOptions(attrId) { 45697 return this.precalcOptions[attrId] || []; 45698 }, 45699 getOptionsByAttrId() { 45700 return this.getOptions(this.$el.dataset.attributeId); 45701 }, 45702 _getItemId() { 45703 if (this.item && this.item.id) return this.item.id; 45704 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 45705 }, 45706 getSwatchOptionHtmlId() { 45707 const itemId = this._getItemId(); 45708 return itemId ? this.$id(`attribute-option-47209-${itemId}`) : ''; 45709 }, 45710 getSwatchOptionHtmlIdGroup() { 45711 const itemId = this._getItemId(); 45712 return itemId ? [`attribute-option-47209-${itemId}`] : []; 45713 }, 45714 getAttributeSwatchData(attributeId) { 45715 const data = Object.assign({}, this.swatchConfig[attributeId]); 45716 if (data['additional_data']) { 45717 try { 45718 data['details'] = JSON.parse(data['additional_data']); 45719 } catch (e) { 45720 data['details'] = {}; 45721 } 45722 } 45723 return data; 45724 }, 45725 getSwatchType(attributeId, optionId) { 45726 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 45727 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 45728 } 45729 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 45730 this.swatchConfig[attributeId].details.swatch_input_type : 45731 "empty"; 45732 if (type === 'visual') { 45733 const config = this.swatchConfig[attributeId]; 45734 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 45735 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 45736 } 45737 // Fallback to first option type 45738 for (const oId in config) { 45739 if (config[oId] && typeof config[oId].type !== 'undefined') { 45740 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 45741 } 45742 } 45743 } 45744 return type; 45745 }, 45746 mapSwatchTypeNumberToTypeCode(type) { 45747 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 45748 }, 45749 isTextSwatch() { 45750 const itemId = this._getItemId(); 45751 if (!this.$el || !itemId) return false;
45752 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45753 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 45754 }, 45755 45756 getSwatchText() { 45757 const itemId = this._getItemId(); 45758 if (this.item) return this.item.label || ''; 45759 if (!this.$el || !itemId) return ''; 45760 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45761 const options = attrId ? this.getOptions(attrId) : []; 45762 const opt = options.find(o => o.id == itemId); 45763 return opt ? opt.label : ''; 45764 }, 45765 getSwatchBackgroundStyle() { 45766 const itemId = this._getItemId(); 45767 if (!this.$el || !itemId) return ''; 45768 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45769 if (!attrId) return ''; 45770 const type = this.getSwatchType(attrId, itemId); 45771 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 45772 this.swatchConfig[attrId][itemId] : 45773 null; 45774 if (!swatchData) return ''; 45775 if (type === "color") return 'background-color:' + swatchData.value; 45776 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 45777 return ''; 45778 }, 45779 swatchOptionClasses() { 45780 const itemId = this._getItemId(); 45781 if (!this.$el || !itemId) return {}; 45782 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45783 return { 45784 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 45785 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 45786 'w-6 h-6': !this.isTextSwatch() 45787 } 45788 }, 45789 45790 onFocusSwatchItem() { 45791 const itemId = this._getItemId(); 45792 if (itemId) this.focusedLabel = itemId; 45793 }, 45794 onChangeOption() { 45795 const itemId = this._getItemId(); 45796 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 45797 if (attrId && itemId) this.changeOption(attrId, itemId); 45798 }, 45799 changeOption(attributeId, value) { 45800 if (value === '') { 45801 return; 45802 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 45803 } else { 45804 this.selectedValues[attributeId] = value; 45805 } 45806 45807 this.findSimpleIndex(); 45808 this.findAllowedAttributeOptions(); 45809 this.updatePrices(); 45810 this.updateGallery(); 45811 45812 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 45813 this.findProductIdsForPartialSelection(this.selectedValues) : []; 45814 45815 const eventDetail = { 45816 productId: this.productId, 45817 optionId: attributeId, 45818 value: value, 45819 productIndex: this.productIndex || 0, 45820 selectedValues: this.selectedValues, 45821 candidates: candidates, 45822 sourceElement: this.$el 45823 }; 45824 45825 // Dispatch for Amasty 45826 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 45827 detail: eventDetail 45828 })); 45829 45830 // Dispatch for Hyva listing 45831 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 45832 detail: eventDetail 45833 })); 45834 }, 45835 45836 45837 clearOptionIfActive() { 45838 const itemId = this._getItemId(); 45839 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 45840 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 45841 this.changeOption(attrId, ''); 45842 45843 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 45844 if (!input && this.$el?.querySelector) { 45845 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 45846 } 45847 if (!input && this.$el?.closest) { 45848 const root = this.$el.closest('[data-product-id]') || this.$el; 45849 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 45850 } 45851 if (input) { 45852 input.checked = false;
45853 } 45854 } 45855 }, 45856 get optionIsEnabled() { 45857 const itemId = this._getItemId(); 45858 if (!this.$el || !itemId) return true; 45859 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45860 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 45861 return !!allowedOptions.find(opt => opt.id == itemId); 45862 }, 45863 get isSelected() { 45864 const itemId = this._getItemId(); 45865 if (!this.$el || !itemId) return false; 45866 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45867 return attrId ? (this.selectedValues[attrId] == itemId) : false; 45868 }, 45869 get isSwatchRequired() { 45870 if (!this.$el) return false; 45871 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45872 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 45873 }, 45874 focusedLabel: false, 45875 activeTooltipItem: false, 45876 tooltipPositionElement: false,
45877 setActiveTooltipItem() { 45878 const itemId = this._getItemId(); 45879 if (!this.$el || !itemId) return; 45880 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 45881 this.activeTooltipItem = { 45882 attribute: attrId, 45883 item: itemId, 45884 index: 0 45885 }; 45886 this.tooltipPositionElement = this.$event ? this.$event.target : null; 45887 }, 45888 unsetActiveTooltipItem() { 45889 this.activeTooltipItem = false; 45890 } 45891 }, 45892 confProdPreSelect() 45893 ); 45894 45895 if (result.optionConfig && result.optionConfig.attributes) { 45896 const attributes = result.optionConfig.attributes; 45897 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 45898 let source = attributes; 45899 if (Array.isArray(attributes)) { 45900 source = {}; 45901 attributes.forEach(attr => { 45902 if (attr && attr.id) source[attr.id] = attr; 45903 }); 45904 } 45905 const values = Object.values(source); 45906 const wrapper = Object.assign(values, source); 45907 Object.defineProperty(wrapper, '__amxnotifWrapped', { 45908 value: true, 45909 enumerable: false 45910 }); 45911 result.optionConfig.attributes = wrapper; 45912 } 45913 } 45914 45915 return result; 45916 } 45917 45918 window.addEventListener('alpine:init', () => { 45919 Alpine.data('initConfigurableSwatchOptions_47209', initConfigurableSwatchOptions_47209); 45920 }, { 45921 once: true 45922 }); 45923 </script>
45923 45924 45925 <div x-data="initConfigurableSwatchOptions_47209" x-defer="intersect"> 45926 <div class="pagebuilder-home-hidden"> 45927 45928 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 45929 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 45930 <template x-if="showSwatches"> 45931 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47209-163" role="radiogroup" aria-label="Einband"> 45932 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 45933 <div :data-option-id="item.id" style="display: contents"> 45934 <div x-id="getSwatchOptionHtmlIdGroup"> 45935 <template x-if="optionIsEnabled"> 45936 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
45936self="unsetActiveTooltipItem"> 45937 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47209-163"> 45938 <div> 45939 <template x-if="isTextSwatch"> 45940 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 45941 </template> 45942 <template x-if="!optionIsActive(163, item.id)"> 45943 <div> 45944 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 45945 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 45946 </svg> 45947 </div> 45948 </template> 45949 </div> 45950 </label> 45951 </template> 45952</div> </div> 45953 </template> 45954 </div> 45955 </template> 45956 </div> 45957 </div> 45958 </div> 45959 </div> 45960 45961 <div class="meta py-4 pagebuilder-home-hidden"> 45962 <div x-data="initMarketingShortText_47209()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 45963 <!-- Marketing short text --> 45964 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 45965 </div> 45966 45967 <!-- Short description --> 45968 <div class="short-description"> 45969 Ernst Cassirer erkannte, dass der Mythos keine veraltete Lebensweise ist, sondern eine Form der Sinnstiftung und Weltgestaltung, die unser gesellschaftliches und politisches Leben noch heute ... <a href="https://meiner.de/fmv_de/mythos-21935" class="underline">mehr</a> 45970 </div> 45971 </div> 45972 45973 <!-- Series --> 45974 <div class="mb-1"> 45975 <span class="sr-only">Reihe:</span> 45976 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-kulturphilosophie"> 45977 <span>Zeitschrift für Kulturphilosophie</span> 45978 </a> 45979 2026/1 </div> 45980 45981 45982 <div class="mb-1"> 45983 <span x-data="initEditionText_47209()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 45984 <!-- Marketing short text --> 45985 <span class="edition-text" x-html="editionText"></span> 2026, 184 Seiten. </span> 45986 </div> 45987 45988 </div> 45989 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 45990 45991 <div class="justify-end" x-data="initPriceBox()" @update-prices-47209.window="updatePrice($event.detail);"> 45992 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47209" data-price-box="product-id-47209"><span class="normal-price"> 45993 <span x-data x-id="['product\u002Dprice\u002D47209']" class="price-container price-final_price tax weee"> 45994 <span class="price-label">Ab</span> 45995 <span class="approx-price">ca. </span> 45996 <span :id="$id('product\u002Dprice\u002D47209')" data-price-amount="49.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">49,99 €</span></span> 45997 </span> 45998</span> 45999 46000 46001</div> </div> 46002 46003 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 46004 <div class="open-access-container open-access-container-47209 flex mt-4 ml-auto sm:mt-0 hidden"> 46005 <div class="text-gray-700"> 46006 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 46007 <a href="" target="_blank" class="open-access-external-link m-auto "> 46008 Kostenlos online lesen </a> 46009 </button> 46010 </div> 46011 </div> 46012 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Mythos" aria-label="In den Warenkorb Mythos" data-addto="cart"> 46013 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 46014 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
460140 014 0z"></path> 46015</svg> 46016 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 46017 In den Warenkorb </span> 46018 </button> 46019 46020<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47209)" aria-label="Zur Wunschliste hinzufügen Mythos" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 46021 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 46022 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 46023</svg> 46024</button> 46025 </div> 46026 </div> 46027 </div> 46028
46028<script> 46029 function initMarketingShortText_47209() { 46030 var marketingShortTextConfig = {}; 46031 if (typeof window.initConfigurableSwatchOptions_47209 === "function") { 46032 var fullConfig = window.initConfigurableSwatchOptions_47209().optionConfig 46033 var marketingShortTextConfig = fullConfig.marketing_short_text; 46034 } 46035 return { 46036 marketingShortText: '', 46037 config: marketingShortTextConfig, 46038 productId: '47209', 46039 getMarketingShortText(detail) { 46040 this.marketingShortText = detail.productIndex ? 46041 this.config[detail.productIndex] : 46042 null; 46043 }, 46044 eventListeners: { 46045 ['@listing-configurable-selection-changed.window'](event) { 46046 if (this.productId == event.detail.productId) { 46047 this.getMarketingShortText(event.detail); 46048 } 46049 46050 } 46051 } 46052 } 46053 } 46054 46055 function initEditionText_47209() { 46056 var editionTextConfig = {}; 46057 if (typeof window.initConfigurableSwatchOptions_47209 === "function") { 46058 var fullConfig = window.initConfigurableSwatchOptions_47209().optionConfig 46059 var editionTextConfig = fullConfig.edition; 46060 } 46061 return { 46062 editionText: '', 46063 config: editionTextConfig, 46064 productId: '47209', 46065 getEditionText(detail) { 46066 this.editionText = detail.productIndex ? 46067 this.config[detail.productIndex] : 46068 null; 46069 }, 46070 eventListeners: { 46071 ['@listing-configurable-selection-changed.window'](event) { 46072 if (this.productId == event.detail.productId) { 46073 this.getEditionText(event.detail); 46074 } 46075 46076 } 46077 } 46078 } 46079 } 46080 </script>
46080 46081 </form> 46082 46083 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47263/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21917"> 46084 <input name="form_key" type="hidden" value="GKM8ji7I3dapa3xj"> <input type="hidden" name="product" value="47263"> 46085 <a href="https://meiner.de/fmv_de/kulturwissenschaftliche-zeitschrift-21917" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 46086 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47263.window="$el.src = $event.detail" alt="Kulturwissenschaftliche Zeitschrift" title="Kulturwissenschaftliche Zeitschrift" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351718_1.jpg" :style="{ 46087 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 46088 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 46089 }"> 46090 </a> 46091 <div class="product-info flex flex-col flex-grow "> 46092 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 46093 <div class="mb-2 text-sm text-gray-500 font-medium"> 46094 <a href="https://meiner.de/fmv_de/person/Kulturwissenschaftliche-Gesellschaft-16079/" class="mb-2"> 46095 Kulturwissenschaftliche Gesellschaft (Hrsg.) 46096 </a> 46097 </div> 46098 <a class="product-item-link" href="https://meiner.de/fmv_de/kulturwissenschaftliche-zeitschrift-21917"> 46099 Kulturwissenschaftliche Zeitschrift </a> 46100 </div> 46101 46102 <div x-data="initEditionText_47263()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 46103 <!-- Marketing short text --> 46104 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 46105 </div> 46106 </div> 46107 46108 <div class="py-1 grid mb-4 "> 46109 46110 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47263,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47263,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2JvZD9fX19mcm9tX3N0b3JlPWRldXRzY2gmZGlyPWFzYyZsaW1pdD01Jm9yZGVyPXByb2R1Y3RzX2F1dGhvcl9zb3J0JnA9MTQ~","childProducts":{"46971":"1","47257":"1"},"childProductsAlertStatus":{"46971":"0","47257":"0"},"indexMapping":{"163:15":46971,"163:8":47257},"availabilityMessages":{"46971":"Lieferbar in 10-14 Tagen","47257":"Open Access unter <a href=\"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de\" target=\"_blank\" class=\"underline\">CC-BY-SA 4.0 Lizenz<\/a>"}
46110,"openAccess":{"47263":{"status":0},"46971":{"status":0},"47257":{"status":1,"openaccess_license_link":"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de","openaccess_license_name":"CC-BY-SA 4.0 Lizenz","openaccess_external_link":"https:\/\/doi.org\/10.28937\/978-3-7873-5171-8"}}},"availabilityMessages":{"46971":"Lieferbar in 10-14 Tagen","47257":"Open Access unter <a href=\"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de\" target=\"_blank\" class=\"underline\">CC-BY-SA 4.0 Lizenz<\/a>"},"openAccess":{"47263":{"status":0},"46971":{"status":0},"47257":{"status":1,"openaccess_license_link":"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de","openaccess_license_name":"CC-BY-SA 4.0 Lizenz","openaccess_external_link":"https:\/\/doi.org\/10.28937\/978-3-7873-5171-8"}}}'> 46111 <template x-if="containerVisible"> 46112 <!-- Popup Trigger --> 46113 <div> 46114 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 46115 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 46116 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 46117 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 46118<title>bell</title></svg> 46119</span> 46120 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 46121 46122 <!-- Popup Modal --> 46123 <template x-if="showModal"> 46124 <template x-teleport=".page-wrapper"> 46125 <div x-cloak class="fixed inset-0 flex items-center justify-center 46126 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 46127 <div class="relative bg-white rounded-lg shadow-xl 46128 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 46129 <div class="p-6"> 46130 <!-- Subscription Form for Popup --> 46131 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 46132 <input name="form_key" type="hidden" value="GKM8ji7I3dapa3xj"> 46133 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 46134 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 46135 46136 <div class="flex flex-col gap-3"> 46137 <div class="flex-grow grow"> 46138 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 46139 shadow-xs focus:outline-none focus:outline-hidden 46140 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 46141 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 46142 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 46143 </div> 46144 <input type="hidden" name="product_id" :value="currentProductId"> 46145 <input type="hidden" name="type" value="email"> 46146 46147 46148 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2JvZD9fX19mcm9tX3N0b3JlPWRldXRzY2gmZGlyPWFzYyZsaW1pdD01Jm9yZGVyPXByb2R1Y3RzX2F1dGhvcl9zb3J0JnA9MTQ~"> 46149 46150 <div class="amxnotif_guest_action"> 46151 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 46152 rounded-md focus:outline-none 46153 focus:outline-hidden focu
46153s:ring-2 46154 focus:ring-offset-2 disabled:opacity-50 46155 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 46156 Benachrichtigen </button> 46157 </div> 46158 </div> 46159 46160 <div class="flex items-start pt-2"> 46161 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 46162 text-blue-600 border-gray-300 rounded-sm"> 46163 <label class="amxnotif-stock-gdrp-label cursor-pointer 46164 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 46165 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 46166 </div> 46167 </form> 46168 </div> 46169 46170 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 46171 hover:text-gray-600 transition-colors" aria-label="Schließen"> 46172 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 46173 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 46174<title>x</title></svg> 46175 </button> 46176 </div> 46177 </div> 46178 </template> 46179 </template> 46180 </div> 46181 </template> 46182 </div> 46183 46184<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47263" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47263,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2JvZD9fX19mcm9tX3N0b3JlPWRldXRzY2gmZGlyPWFzYyZsaW1pdD01Jm9yZGVyPXByb2R1Y3RzX2F1dGhvcl9zb3J0JnA9MTQ~","childProducts":{"46971":"1","47257":"1"},"childProductsAlertStatus":{"46971":"0","47257":"0"},"indexMapping":"{\u0022163:15\u0022:46971,\u0022163:8\u0022:47257}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47263,"availabilityMessages":{"46971":"Lieferbar in 10-14 Tagen","47257":"Open Access unter \u003Ca href=\u0022https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de\u0022 target=\u0022_blank\u0022 class=\u0022underline\u0022\u003ECC-BY-SA 4.0 Lizenz\u003C\/a\u003E"}
46184,"openAccess":{"47263":{"status":0},"46971":{"status":0},"47257":{"status":1,"openaccess_license_link":"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de","openaccess_license_name":"CC-BY-SA 4.0 Lizenz","openaccess_external_link":"https:\/\/doi.org\/10.28937\/978-3-7873-5171-8"}}}'> 46185 46186 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 46187 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 46188 <span x-html="optionsLabelText"></span> 46189 </p> 46190</div> </div> 46191 46192
46192<script> 46193 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 46194 try { 46195 const attributes = (config && config.attributes) ? config.attributes : null; 46196 if (!attributes) return []; 46197 let attr = null; 46198 if (Array.isArray(attributes)) { 46199 for (let i = 0; i < attributes.length; i++) { 46200 const a = attributes[i]; 46201 if (a && a.id == attrId) { 46202 attr = a; 46203 break; 46204 } 46205 } 46206 } else { 46207 attr = attributes[attrId]; 46208 } 46209 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 46210 } catch (e) { 46211 return []; 46212 } 46213 }; 46214 46215 function initConfigurableSwatchOptions_47263() { 46216 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46971"]},{"id":"8","label":"PDF","products":["47257"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46971":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47257":{"baseOldPrice":{"amount":0},"oldPrice":{"amount":0},"basePrice":{"amount":0},"finalPrice":{"amount":0},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":0},"oldPrice":{"amount":0},"basePrice":{"amount":0},"finalPrice":{"amount":0},"isApproxPrice":null},"productId":"47263","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46971":{"163":"15"},"47257":{"163":"8"}},"salable":{"163":{"15":["46971"],"8":["47257"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46971":"005170","47257":"005171"},"output":{"46971":"Kartoniert","47257":"PDF"},"original_name":{"46971":"","47257":""},"openaccess_license_link":{"46971":"","47257":"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/deed.de"},"openaccess_license_name":{"46971":"","47257":"CC-BY-SA 4.0 Lizenz"},"openaccess_external_link":{"46971":"","47257":"https:\/\/doi.org\/10.28937\/978-3-7873-5171-8"},"gpsr_safety_info":{"46971":"","47257":""},"description":{"46971":"Die 2016 gegr\u00fcndete Kulturwissenschaftliche Zeitschrift, herausgegeben von der Kulturwissenschaftlichen Gesellschaft, versteht sich als ein offenes Forum der kulturwissenschaftlichen Debatte, in dem historische wie gegenwartskulturelle Themen, Theorien und Forschungsans\u00e4tze aus allen Bereichen und Str\u00f6mungen der Kulturwissenschaften vorgestellt und verhandelt werden.","47257":"Die 2016 gegr\u00fcndete Kulturwissenschaftliche Zeitschrift, herausgegeben von der Kulturwissenschaftlichen Gesellschaft, versteht sich als ein offenes Forum der kulturwissenschaftlichen Debatte, in dem historische wie gegenwartskulturelle Themen, Theorien und Forschungsans\u00e4tze aus allen Bereichen und Str\u00f6mungen der Kulturwissenschaften vorgestellt und verhandelt werden."},"doi":{"46971":"","47257":"10.28937\/978-3-7873-5171-8"},"isbn":{"46971":"978-3-7873-5170-1","47257":"978-3-7873-5171-8"},"marketing_short_text":{"46971":"","47257":""},"recension_text":{"46971":"","47257":""},"language":{"46971":"","47257":""},"cover":{"46971":"Kartoniert","47257":""},"pages":{"46971":"138 Seiten.","47257":"138 Seiten."},"edition":{"46971":"","47257":"Unver\u00e4ndertes Open-Access-eJournal der 1. Auflage von 2026"},"pod":{"46971":"Ja","47257":"Nein"},"copyright_year":{"46971":"","47257":""},"vlb_tix_link":{"46971":"https:\/\/neu.vlbtix.de\/products\/9783787351701?type=gtin","47257":""},"defaultValues":{"163":"15"}}; 46217 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 46218 46219 if (typeof window.amxnotif_wrap_attributes === 'function') { 46220 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 46221 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 46222 } 46223 46224 const configurableOptionsComponent = initConfigurableOptions( 46225 '47263', 46226 config 46227 ); 46228 const swatchOptionsComponent = initSwatchOptions( 46229 swatchConfig 46230 ); 46231 46232 // DWS - Configurable product preselect start 46233 const confProdPreSelect = () => { 46234 return { 46235 preselectQuerystringItems() { 46236 var data = {"id":"46971","output":"15"}; 46237 const urlQueryParams = new URLSearchParams(window.location.search); 46238 46239 this.$nextTick(() => { 46240 setTimeout(() => { 46241 const rootEl = this.$root || this.$el; 46242 if (!rootEl) return; 46243 46244 const applySelection = (attrCode, attrValue) => { 46245 if (attrValue === undefined || attrValue === null || attrValue === '') return; 46246 46247 const attributes = Object.values(this.optionConfig.attributes || {}); 46248 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 46249 46250 if (targetAttr) { 46251 const attrId = String(targetAttr.id); 46252 const optionVal = String(attrValue); 46253 46254 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 46255 46256 if (inputEl) { 46257 inputEl.click(); 46258 inputEl.dispatchEvent(new Event('change', { 46259 bubbles: true 46260 })); 46261 } else { 46262 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 46263 if (selectEl) { 46264 selectEl.value = optionVal; 46265 selectEl.dispatchEvent(new Event('change', { 46266 bubbles: true 46267 })); 46268 } 46269 } 46270 46271 this.changeOption(attrId, optionVal, false); 46272 } 46273 }; 46274 46275 if (data && typeof data === 'object') {
46276 Object.keys(data).forEach(key => applySelection(key, data[key])); 46277 } 46278 46279 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 46280 if (attribute && attribute.code) { 46281 let optionValue = urlQueryParams.get(attribute.code); 46282 if (optionValue) { 46283 let optionId = false; 46284 const attributes = Object.values(this.optionConfig.attributes || {}); 46285 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 46286 46287 let found = false; 46288 Object.values(targetAttr.options).map(option => { 46289 if (found === false && option.label === optionValue) { 46290 optionId = option.id; 46291 found = true; 46292 } 46293 }); 46294 46295 const attrId = String(targetAttr.id); 46296 let optionVal = String(optionValue); 46297 if (found) { 46298 optionVal = String(optionId); 46299 } 46300 46301 applySelection(attribute.code, optionVal); 46302 } 46303 } 46304 }); 46305 }, 100); 46306 }); 46307 } 46308 } 46309 }; 46310 // DWS - Configurable product preselect end 46311 46312 const result = Object.assign( 46313 configurableOptionsComponent, 46314 swatchOptionsComponent, { 46315 productId: '47263', 46316 productIndex: 0, 46317 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 46318 showSwatches: false, 46319 precalcOptions: {}, 46320 originalInit: configurableOptionsComponent.init, 46321 init() { 46322 try { 46323 this.precalcOptions = {}; 46324 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 46325 this.preselectQuerystringItems(); 46326 if (Array.isArray(attrSource)) { 46327 attrSource.forEach(attr => { 46328 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 46329 }); 46330 } else if (attrSource && typeof attrSource === 'object') { 46331 Object.keys(attrSource).forEach(id => { 46332 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 46333 }); 46334 } 46335 } catch (e) { 46336 console.error('Pre-calc error:', e); 46337 } 46338 46339 if (typeof this.originalInit === 'function') { 46340 this.originalInit(); 46341 } 46342 46343 try { 46344 this.initShowSwatchesIntersect(); 46345 } catch (e) { 46346 console.error('intersect error:', e); 46347 } 46348 }, 46349 46350 updateGallery() { 46351 if (!this.productIndex) return; 46352 46353 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 46354 method: 'GET', 46355 headers: { 46356 'Content-Type': 'application/json', 46357 'X-Requested-With': 'XMLHttpRequest' 46358 } 46359 }) 46360 .then(response => response.json()) 46361 .then(data => { 46362 if (data && data.medium) { 46363 window.dispatchEvent(new CustomEvent("update-gallery-47263", { 46364 detail: data.medium 46365 })); 46366 } 46367 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 46368 }, 46369 46370 46371 initShowSwatchesIntersect() { 46372 const observer = new IntersectionObserver(entries => { 46373 if (entries[0].isIntersecting) { 46374 this.showSwatches = true; 46375 observer.disconnect(); 46376 } 46377 }, { 46378 rootMargin: '512px' 46379 }); 46380 observer.observe(this.$el); 46381 }, 46382 getOptions(attrId) { 46383 return this.precalcOptions[attrId] || []; 46384 }, 46385 getOptionsByAttrId() { 46386 return this.getOptions(this.$el.dataset.attributeId); 46387 }, 46388 _getItemId() { 46389 if (this.item && this.item.id) return this.item.id; 46390 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 46391 }, 46392 getSwatchOptionHtmlId() { 46393 const itemId = this._getItemId(); 46394 return itemId ? this.$id(`attribute-option-47263-${itemId}`) : ''; 46395 }, 46396 getSwatchOptionHtmlIdGroup() { 46397 const itemId = this._getItemId(); 46398 return itemId ? [`attribute-option-47263-${itemId}`] : []; 46399 }, 46400 getAttributeSwatchData(attributeId) { 46401 const data = Object.assign({}, this.swatchConfig[attributeId]); 46402 if (data['additional_data']) { 46403 try { 46404 data['details'] = JSON.parse(data['additional_data']); 46405 } catch (e) { 46406 data['details'] = {}; 46407 } 46408 } 46409 return data; 46410 }, 46411 getSwatchType(attributeId, optionId) { 46412 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 46413 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 46414 } 46415 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 46416 this.swatchConfig[attributeId].details.swatch_input_type : 46417 "empty"; 46418 if (type === 'visual') { 46419 const config = this.swatchConfig[attributeId]; 46420 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 46421 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 46422 } 46423 // Fallback to first option type 46424 for (const oId in config) { 46425 if (config[oId] && typeof config[oId].type !== 'undefined') { 46426 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 46427 } 46428 } 46429 } 46430 return type; 46431 }, 46432 mapSwatchTypeNumberToTypeCode(type) { 46433 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 46434 }, 46435 isTextSwatch() { 46436 const itemId = this._getItemId(); 46437 if (!this.$el || !itemId) return false;
46438 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46439 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 46440 }, 46441 46442 getSwatchText() { 46443 const itemId = this._getItemId(); 46444 if (this.item) return this.item.label || ''; 46445 if (!this.$el || !itemId) return ''; 46446 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46447 const options = attrId ? this.getOptions(attrId) : []; 46448 const opt = options.find(o => o.id == itemId); 46449 return opt ? opt.label : ''; 46450 }, 46451 getSwatchBackgroundStyle() { 46452 const itemId = this._getItemId(); 46453 if (!this.$el || !itemId) return ''; 46454 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46455 if (!attrId) return ''; 46456 const type = this.getSwatchType(attrId, itemId); 46457 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 46458 this.swatchConfig[attrId][itemId] : 46459 null; 46460 if (!swatchData) return ''; 46461 if (type === "color") return 'background-color:' + swatchData.value; 46462 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 46463 return ''; 46464 }, 46465 swatchOptionClasses() { 46466 const itemId = this._getItemId(); 46467 if (!this.$el || !itemId) return {}; 46468 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46469 return { 46470 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 46471 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 46472 'w-6 h-6': !this.isTextSwatch() 46473 } 46474 }, 46475 46476 onFocusSwatchItem() { 46477 const itemId = this._getItemId(); 46478 if (itemId) this.focusedLabel = itemId; 46479 }, 46480 onChangeOption() { 46481 const itemId = this._getItemId(); 46482 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 46483 if (attrId && itemId) this.changeOption(attrId, itemId); 46484 }, 46485 changeOption(attributeId, value) { 46486 if (value === '') { 46487 return; 46488 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 46489 } else { 46490 this.selectedValues[attributeId] = value; 46491 } 46492 46493 this.findSimpleIndex(); 46494 this.findAllowedAttributeOptions(); 46495 this.updatePrices(); 46496 this.updateGallery(); 46497 46498 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 46499 this.findProductIdsForPartialSelection(this.selectedValues) : []; 46500 46501 const eventDetail = { 46502 productId: this.productId, 46503 optionId: attributeId, 46504 value: value, 46505 productIndex: this.productIndex || 0, 46506 selectedValues: this.selectedValues, 46507 candidates: candidates, 46508 sourceElement: this.$el 46509 }; 46510 46511 // Dispatch for Amasty 46512 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 46513 detail: eventDetail 46514 })); 46515 46516 // Dispatch for Hyva listing 46517 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 46518 detail: eventDetail 46519 })); 46520 }, 46521 46522 46523 clearOptionIfActive() { 46524 const itemId = this._getItemId(); 46525 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 46526 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 46527 this.changeOption(attrId, ''); 46528 46529 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 46530 if (!input && this.$el?.querySelector) { 46531 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 46532 } 46533 if (!input && this.$el?.closest) { 46534 const root = this.$el.closest('[data-product-id]') || this.$el; 46535 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 46536 } 46537 if (input) { 46538 input.checked = false;
46539 } 46540 } 46541 }, 46542 get optionIsEnabled() { 46543 const itemId = this._getItemId(); 46544 if (!this.$el || !itemId) return true; 46545 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46546 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 46547 return !!allowedOptions.find(opt => opt.id == itemId); 46548 }, 46549 get isSelected() { 46550 const itemId = this._getItemId(); 46551 if (!this.$el || !itemId) return false; 46552 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46553 return attrId ? (this.selectedValues[attrId] == itemId) : false; 46554 }, 46555 get isSwatchRequired() { 46556 if (!this.$el) return false; 46557 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46558 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 46559 }, 46560 focusedLabel: false, 46561 activeTooltipItem: false, 46562 tooltipPositionElement: false,
46563 setActiveTooltipItem() { 46564 const itemId = this._getItemId(); 46565 if (!this.$el || !itemId) return; 46566 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 46567 this.activeTooltipItem = { 46568 attribute: attrId, 46569 item: itemId, 46570 index: 0 46571 }; 46572 this.tooltipPositionElement = this.$event ? this.$event.target : null; 46573 }, 46574 unsetActiveTooltipItem() { 46575 this.activeTooltipItem = false; 46576 } 46577 }, 46578 confProdPreSelect() 46579 ); 46580 46581 if (result.optionConfig && result.optionConfig.attributes) { 46582 const attributes = result.optionConfig.attributes; 46583 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 46584 let source = attributes; 46585 if (Array.isArray(attributes)) { 46586 source = {}; 46587 attributes.forEach(attr => { 46588 if (attr && attr.id) source[attr.id] = attr; 46589 }); 46590 } 46591 const values = Object.values(source); 46592 const wrapper = Object.assign(values, source); 46593 Object.defineProperty(wrapper, '__amxnotifWrapped', { 46594 value: true, 46595 enumerable: false 46596 }); 46597 result.optionConfig.attributes = wrapper; 46598 } 46599 } 46600 46601 return result; 46602 } 46603 46604 window.addEventListener('alpine:init', () => { 46605 Alpine.data('initConfigurableSwatchOptions_47263', initConfigurableSwatchOptions_47263); 46606 }, { 46607 once: true 46608 }); 46609 </script>
46609 46610 46611 <div x-data="initConfigurableSwatchOptions_47263" x-defer="intersect"> 46612 <div class="pagebuilder-home-hidden"> 46613 46614 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 46615 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 46616 <template x-if="showSwatches"> 46617 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47263-163" role="radiogroup" aria-label="Einband"> 46618 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 46619 <div :data-option-id="item.id" style="display: contents"> 46620 <div x-id="getSwatchOptionHtmlIdGroup"> 46621 <template x-if="optionIsEnabled"> 46622 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
46622self="unsetActiveTooltipItem"> 46623 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47263-163"> 46624 <div> 46625 <template x-if="isTextSwatch"> 46626 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 46627 </template> 46628 <template x-if="!optionIsActive(163, item.id)"> 46629 <div> 46630 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 46631 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 46632 </svg> 46633 </div> 46634 </template> 46635 </div> 46636 </label> 46637 </template> 46638</div> </div> 46639 </template> 46640 </div> 46641 </template> 46642 </div> 46643 </div> 46644 </div> 46645 </div> 46646 46647 <div class="meta py-4 pagebuilder-home-hidden"> 46648 <div x-data="initMarketingShortText_47263()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 46649 <!-- Marketing short text --> 46650 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 46651 </div> 46652 46653 <!-- Short description --> 46654 </div> 46655 46656 <!-- Series --> 46657 <div class="mb-1"> 46658 <span class="sr-only">Reihe:</span> 46659 <a href="https://meiner.de/fmv_de/programm/zeitschriften/kulturwissenschaftliche-zeitschrift"> 46660 <span>Kulturwissenschaftliche Zeitschrift</span> 46661 </a> 46662 2026/1 </div> 46663 46664 46665 <div class="mb-1"> 46666 <span x-data="initEditionText_47263()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 46667 <!-- Marketing short text --> 46668 <span class="edition-text" x-html="editionText"></span> 2026, 138 Seiten. </span> 46669 </div> 46670 46671 </div> 46672 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 46673 46674 <div class="justify-end" x-data="initPriceBox()" @update-prices-47263.window="updatePrice($event.detail);"> 46675 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47263" data-price-box="product-id-47263"><span class="normal-price"> 46676 <span x-data x-id="['product\u002Dprice\u002D47263']" class="price-container price-final_price tax weee"> 46677 <span class="price-label">Ab</span> 46678 <span class="approx-price">ca. </span> 46679 <span :id="$id('product\u002Dprice\u002D47263')" data-price-amount="0" data-price-type="finalPrice" class="price-wrapper "><span class="price">0,00 €</span></span> 46680 </span> 46681</span> 46682 46683 46684</div> </div> 46685 46686 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 46687 <div class="open-access-container open-access-container-47263 flex mt-4 ml-auto sm:mt-0 hidden"> 46688 <div class="text-gray-700"> 46689 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 46690 <a href="" target="_blank" class="open-access-external-link m-auto "> 46691 Kostenlos online lesen </a> 46692 </button> 46693 </div> 46694 </div> 46695 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kulturwissenschaftliche Zeitschrift" aria-label="In den Warenkorb Kulturwissenschaftliche Zeitschrift" data-addto="cart"> 46696 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 46697 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
466970 014 0z"></path> 46698</svg> 46699 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 46700 In den Warenkorb </span> 46701 </button> 46702 46703<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47263)" aria-label="Zur Wunschliste hinzufügen Kulturwissenschaftliche Zeitschrift" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 46704 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 46705 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 46706</svg> 46707</button> 46708 </div> 46709 </div> 46710 </div> 46711
46711<script> 46712 function initMarketingShortText_47263() { 46713 var marketingShortTextConfig = {}; 46714 if (typeof window.initConfigurableSwatchOptions_47263 === "function") { 46715 var fullConfig = window.initConfigurableSwatchOptions_47263().optionConfig 46716 var marketingShortTextConfig = fullConfig.marketing_short_text; 46717 } 46718 return { 46719 marketingShortText: '', 46720 config: marketingShortTextConfig, 46721 productId: '47263', 46722 getMarketingShortText(detail) { 46723 this.marketingShortText = detail.productIndex ? 46724 this.config[detail.productIndex] : 46725 null; 46726 }, 46727 eventListeners: { 46728 ['@listing-configurable-selection-changed.window'](event) { 46729 if (this.productId == event.detail.productId) { 46730 this.getMarketingShortText(event.detail); 46731 } 46732 46733 } 46734 } 46735 } 46736 } 46737 46738 function initEditionText_47263() { 46739 var editionTextConfig = {}; 46740 if (typeof window.initConfigurableSwatchOptions_47263 === "function") { 46741 var fullConfig = window.initConfigurableSwatchOptions_47263().optionConfig 46742 var editionTextConfig = fullConfig.edition; 46743 } 46744 return { 46745 editionText: '', 46746 config: editionTextConfig, 46747 productId: '47263', 46748 getEditionText(detail) { 46749 this.editionText = detail.productIndex ? 46750 this.config[detail.productIndex] : 46751 null; 46752 }, 46753 eventListeners: { 46754 ['@listing-configurable-selection-changed.window'](event) { 46755 if (this.productId == event.detail.productId) { 46756 this.getEditionText(event.detail); 46757 } 46758 46759 } 46760 } 46761 } 46762 } 46763 </script>
46763 46764 </form> 46765 46766 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47259/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17478"> 46767 <input name="form_key" type="hidden" value="GKM8ji7I3dapa3xj"> <input type="hidden" name="product" value="47259"> 46768 <a href="https://meiner.de/fmv_de/geschwisterlichkeit-17478" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 46769 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47259.window="$el.src = $event.detail" alt="Geschwisterlichkeit" title="Geschwisterlichkeit" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351671_1.jpg" :style="{ 46770 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 46771 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 46772 }"> 46773 </a> 46774 <div class="product-info flex flex-col flex-grow "> 46775 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 46776 <div class="mb-2 text-sm text-gray-500 font-medium"> 46777 <a href="https://meiner.de/fmv_de/person/Iris-Darmann-10689/" class="mb-2"> 46778 Iris Därmann </a> 46779 <span>|</span> 46780 <a href="https://meiner.de/fmv_de/person/Maud-Meyzaud-21540/" class="mb-2"> 46781 Maud Meyzaud </a> 46782 <span>|</span> 46783 <a href="https://meiner.de/fmv_de/person/Gudrun-Rath-21539/" class="mb-2"> 46784 Gudrun Rath </a> 46785 <span>|</span> 46786 <a href="https://meiner.de/fmv_de/person/Felix-Trautmann-13193/" class="mb-2"> 46787 Felix Trautmann (Hrsg.) 46788 </a> 46789 </div> 46790 <a class="product-item-link" href="https://meiner.de/fmv_de/geschwisterlichkeit-17478"> 46791 Geschwisterlichkeit </a> 46792 </div> 46793 46794 <div x-data="initEditionText_47259()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 46795 <!-- Marketing short text --> 46796 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 46797 </div> 46798 </div> 46799 46800 <div class="py-1 grid mb-4 "> 46801 46802 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47259,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }
46802","0":{"productId":47259,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2JvZD9fX19mcm9tX3N0b3JlPWRldXRzY2gmZGlyPWFzYyZsaW1pdD01Jm9yZGVyPXByb2R1Y3RzX2F1dGhvcl9zb3J0JnA9MTQ~","childProducts":{"46969":"1","47237":"1"},"childProductsAlertStatus":{"46969":"0","47237":"0"},"indexMapping":{"163:15":46969,"163:8":47237},"availabilityMessages":{"46969":"Lieferbar in 10-14 Tagen","47237":"Open Access unter <a href=\"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de\" target=\"_blank\" class=\"underline\">CC-BY-NC-ND 4.0 Lizenz<\/a>"},"openAccess":{"47259":{"status":0},"46969":{"status":0},"47237":{"status":1,"openaccess_license_link":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de","openaccess_license_name":"CC-BY-NC-ND 4.0 Lizenz","openaccess_external_link":"https:\/\/doi.org\/10.28937\/978-3-7873-5167-1"}}},"availabilityMessages":{"46969":"Lieferbar in 10-14 Tagen","47237":"Open Access unter <a href=\"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de\" target=\"_blank\" class=\"underline\">CC-BY-NC-ND 4.0 Lizenz<\/a>"},"openAccess":{"47259":{"status":0},"46969":{"status":0},"47237":{"status":1,"openaccess_license_link":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de","openaccess_license_name":"CC-BY-NC-ND 4.0 Lizenz","openaccess_external_link":"https:\/\/doi.org\/10.28937\/978-3-7873-5167-1"}}}'> 46803 <template x-if="containerVisible"> 46804 <!-- Popup Trigger --> 46805 <div> 46806 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 46807 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 46808 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 46809 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 46810<title>bell</title></svg> 46811</span> 46812 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 46813 46814 <!-- Popup Modal --> 46815 <template x-if="showModal"> 46816 <template x-teleport=".page-wrapper"> 46817 <div x-cloak class="fixed inset-0 flex items-center justify-center 46818 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 46819 <div class="relative bg-white rounded-lg shadow-xl 46820 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 46821 <div class="p-6"> 46822 <!-- Subscription Form for Popup --> 46823 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 46824 <input name="form_key" type="hidden" value="GKM8ji7I3dapa3xj"> 46825 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 46826 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 46827 46828 <div class="flex flex-col gap-3"> 46829 <div class="flex-grow grow"> 46830 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 46831 shadow-xs focus:outline-none focus:outline-hidden 46832 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 46833 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 46834 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 46835 </div> 46836 <input type="hidden" name="product_id" :value="currentProductId"> 46837 <input type="hidden" name="type" value="email"> 46838 46839 46840 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2JvZD9fX19mcm9tX3N0b3JlPWRldXRzY2gmZGlyPWFzYyZsaW1pdD01Jm9yZGVyPXByb2R1Y3RzX2F1dGhvcl9zb3J0JnA9MTQ~"> 46841 46842 <div class="amxnotif_guest_action"> 46843 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 46844 rounded-md focus:outline-none 46845 focus:outline-hidden focu
46845s:ring-2 46846 focus:ring-offset-2 disabled:opacity-50 46847 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 46848 Benachrichtigen </button> 46849 </div> 46850 </div> 46851 46852 <div class="flex items-start pt-2"> 46853 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 46854 text-blue-600 border-gray-300 rounded-sm"> 46855 <label class="amxnotif-stock-gdrp-label cursor-pointer 46856 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 46857 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 46858 </div> 46859 </form> 46860 </div> 46861 46862 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 46863 hover:text-gray-600 transition-colors" aria-label="Schließen"> 46864 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 46865 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 46866<title>x</title></svg> 46867 </button> 46868 </div> 46869 </div> 46870 </template> 46871 </template> 46872 </div> 46873 </template> 46874 </div> 46875 46876<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47259" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47259,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2JvZD9fX19mcm9tX3N0b3JlPWRldXRzY2gmZGlyPWFzYyZsaW1pdD01Jm9yZGVyPXByb2R1Y3RzX2F1dGhvcl9zb3J0JnA9MTQ~","childProducts":{"46969":"1","47237":"1"},"childProductsAlertStatus":{"46969":"0","47237":"0"},"indexMapping":"{\u0022163:15\u0022:46969,\u0022163:8\u0022:47237}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47259,"availabilityMessages":{"46969":"Lieferbar in 10-14 Tagen","47237":"Open Access unter \u003Ca href=\u0022https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de\u0022 target=\u0022_blank\u0022 class=\u0022underline\u0022\u003ECC-BY-NC-ND 4.0 Lizenz\u003C\/a\u003E"},"openAccess":{"47259":{"status":0},"46969":{"status":0},"47237":{"status":1,"openaccess_license_link":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de","openaccess_license_name":"CC-BY-NC-ND 4.0 Lizenz","openaccess_external_link":"https:\/\/doi.org\/10.28937\/978-3-7873-5167-1"}}}'> 46877 46878 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
46879 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 46880 <span x-html="optionsLabelText"></span> 46881 </p> 46882</div> </div> 46883 46884
46884<script> 46885 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 46886 try { 46887 const attributes = (config && config.attributes) ? config.attributes : null; 46888 if (!attributes) return []; 46889 let attr = null; 46890 if (Array.isArray(attributes)) { 46891 for (let i = 0; i < attributes.length; i++) { 46892 const a = attributes[i]; 46893 if (a && a.id == attrId) { 46894 attr = a; 46895 break; 46896 } 46897 } 46898 } else { 46899 attr = attributes[attrId]; 46900 } 46901 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 46902 } catch (e) { 46903 return []; 46904 } 46905 }; 46906 46907 function initConfigurableSwatchOptions_47259() { 46908 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46969"]},{"id":"8","label":"PDF","products":["47237"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46969":{"baseOldPrice":{"amount":18.598129841121},"oldPrice":{"amount":19.9},"basePrice":{"amount":18.598129841121},"finalPrice":{"amount":19.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47237":{"baseOldPrice":{"amount":0},"oldPrice":{"amount":0},"basePrice":{"amount":0},"finalPrice":{"amount":0},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":0},"oldPrice":{"amount":0},"basePrice":{"amount":0},"finalPrice":{"amount":0},"isApproxPrice":null},"productId":"47259","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46969":{"163":"15"},"47237":{"163":"8"}},"salable":{"163":{"15":["46969"],"8":["47237"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46969":"005166","47237":"005167"},"output":{"46969":"Kartoniert","47237":"PDF"},"original_name":{"46969":"","47237":""},"openaccess_license_link":{"46969":"","47237":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/deed.de"},"openaccess_license_name":{"46969":"","47237":"CC-BY-NC-ND 4.0 Lizenz"},"openaccess_external_link":{"46969":"","47237":"https:\/\/doi.org\/10.28937\/978-3-7873-5167-1"},"gpsr_safety_info":{"46969":"","47237":""},"description":{"46969":"Das Heft untersucht politische und \u00e4sthetische Artikulationsformen von Geschwisterlichkeit im Nachgang zur christlich gepr\u00e4gten Br\u00fcderlichkeit und in Differenz zu der durch die Franz\u00f6sische Revolution adaptieren Pathosformel. Dabei stehen folgende Fragen im Fokus: Was passiert mit der Schwester im sozialen Band der Br\u00fcder? Kann der politische Neuanfang Mutterschaft einschlie\u00dfen? L\u00e4sst sich Geschwisterlichkeit von der Familie \u2013 von welcher? \u2013 losl\u00f6sen? Welche Br\u00fcche und Grenzerfahrungen ergeben sich daraus? Die Autor*innen erkunden Schwesterlichkeit in Sophokles\u2019 \u00bbAntigone\u00ab und im fr\u00fchsozialistischen Feminismus, Gemeinschaftsformen im \u00bbQuilombismo\u00ab, in der Pariser Kommune und im Kolonialismus sowie das ephemere Auftreten der Br\u00fcderlichkeit im Kontext von Fabrikarbeit.","47237":"Das Heft untersucht politische und \u00e4sthetische Artikulationsformen von Geschwisterlichkeit im Nachgang zur christlich gepr\u00e4gten Br\u00fcderlichkeit und in Differenz zu der durch die Franz\u00f6sische Revolution adaptieren Pathosformel. Dabei stehen folgende Fragen im Fokus: Was passiert mit der Schwester im sozialen Band der Br\u00fcder? Kann der politische Neuanfang Mutterschaft einschlie\u00dfen? L\u00e4sst sich Geschwisterlichkeit von der Familie \u2013 von welcher? \u2013 losl\u00f6sen? Welche Br\u00fcche und Grenzerfahrungen ergeben sich daraus? Die Autor*innen erkunden Schwesterlichkeit in Sophokles\u2019 \u00bbAntigone\u00ab und im fr\u00fchsozialistischen Feminismus, Gemeinschaftsformen im \u00bbQuilombismo\u00ab, in der Pariser Kommune und im Kolonialismus sowie das ephemere Auftreten der Br\u00fcderlichkeit im Kontext von Fabrikarbeit."},"doi":{"46969":"","47237":"10.28937\/978-3-7873-5167-1"},"isbn":{"46969":"978-3-7873-5166-4","47237":"978-3-7873-5167-1"},"marketing_short_text":{"46969":"","47237":""},"recension_text":{"46969":"","47237":""},"language":{"46969":"","47237":""},"cover":{"46969":"Kartoniert","47237":""},"pages":{"46969":"145 Seiten.","47237":"145 Seiten."},"edition":{"46969":"","47237":"Unver\u00e4ndertes Open-Access-eJournal der 1. Auflage von 2026"},"pod":{"46969":"Ja","47237":"Nein"},"copyright_year":{"46969":"","47237":""},"vlb_tix_link":{"46969":"https:\/\/neu.vlbtix.de\/products\/9783787351664?type=gtin","47237":""},"defaultValues":{"163":"15"}}; 46909 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 46910 46911 if (typeof window.amxnotif_wrap_attributes === 'function') { 46912 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 46913 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 46914 } 46915 46916 const configurableOptionsComponent = initConfigurableOptions( 46917 '47259', 46918 config 46919 ); 46920 const swatchOptionsComponent = initSwatchOptions( 46921 swatchConfig 46922 ); 46923 46924 // DWS - Configurable product preselect start 46925 const confProdPreSelect = () => { 46926 return { 46927 preselectQuerystringItems() { 46928 var data = {"id":"46969","output":"15"}; 46929 const urlQueryParams = new URLSearchParams(window.location.search); 46930 46931 this.$nextTick(() => { 46932 setTimeout(() => { 46933 const rootEl = this.$root || this.$el; 46934 if (!rootEl) return; 46935 46936 const applySelection = (attrCode, attrValue) => { 46937 if (attrValue === undefined || attrValue === null || attrValue === '') return; 46938 46939 const attributes = Object.values(this.optionConfig.attributes || {}); 46940 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 46941 46942 if (targetAttr) { 46943 const attrId = String(targetAttr.id); 46944 const optionVal = String(attrValue); 46945 46946 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 46947 46948 if (inputEl) { 46949 inputEl.click(); 46950 inputEl.dispatchEvent(new Event('change', { 46951 bubbles: true 46952 })); 46953 } else { 46954 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 46955 if (selectEl) { 46956 selectEl.value = optionVal; 46957 selectEl.dispatchEvent(new Event('change', { 46958 bubbles: true 46959 })); 46960 } 46961 } 46962 46963 this.changeOption(attrId, optionVal, false); 46964 } 46965 }; 46966 46967 if (data && typeof data === 'object') {
46968 Object.keys(data).forEach(key => applySelection(key, data[key])); 46969 } 46970 46971 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 46972 if (attribute && attribute.code) { 46973 let optionValue = urlQueryParams.get(attribute.code); 46974 if (optionValue) { 46975 let optionId = false; 46976 const attributes = Object.values(this.optionConfig.attributes || {}); 46977 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 46978 46979 let found = false; 46980 Object.values(targetAttr.options).map(option => { 46981 if (found === false && option.label === optionValue) { 46982 optionId = option.id; 46983 found = true; 46984 } 46985 }); 46986 46987 const attrId = String(targetAttr.id); 46988 let optionVal = String(optionValue); 46989 if (found) { 46990 optionVal = String(optionId); 46991 } 46992 46993 applySelection(attribute.code, optionVal); 46994 } 46995 } 46996 }); 46997 }, 100); 46998 }); 46999 } 47000 } 47001 }; 47002 // DWS - Configurable product preselect end 47003 47004 const result = Object.assign( 47005 configurableOptionsComponent, 47006 swatchOptionsComponent, { 47007 productId: '47259', 47008 productIndex: 0, 47009 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 47010 showSwatches: false, 47011 precalcOptions: {}, 47012 originalInit: configurableOptionsComponent.init, 47013 init() { 47014 try { 47015 this.precalcOptions = {}; 47016 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 47017 this.preselectQuerystringItems(); 47018 if (Array.isArray(attrSource)) { 47019 attrSource.forEach(attr => { 47020 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 47021 }); 47022 } else if (attrSource && typeof attrSource === 'object') { 47023 Object.keys(attrSource).forEach(id => { 47024 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 47025 }); 47026 } 47027 } catch (e) { 47028 console.error('Pre-calc error:', e); 47029 } 47030 47031 if (typeof this.originalInit === 'function') { 47032 this.originalInit(); 47033 } 47034 47035 try { 47036 this.initShowSwatchesIntersect(); 47037 } catch (e) { 47038 console.error('intersect error:', e); 47039 } 47040 }, 47041 47042 updateGallery() { 47043 if (!this.productIndex) return; 47044 47045 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 47046 method: 'GET', 47047 headers: { 47048 'Content-Type': 'application/json', 47049 'X-Requested-With': 'XMLHttpRequest' 47050 } 47051 }) 47052 .then(response => response.json()) 47053 .then(data => { 47054 if (data && data.medium) { 47055 window.dispatchEvent(new CustomEvent("update-gallery-47259", { 47056 detail: data.medium 47057 })); 47058 } 47059 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 47060 }, 47061 47062 47063 initShowSwatchesIntersect() { 47064 const observer = new IntersectionObserver(entries => { 47065 if (entries[0].isIntersecting) { 47066 this.showSwatches = true; 47067 observer.disconnect(); 47068 } 47069 }, { 47070 rootMargin: '512px' 47071 }); 47072 observer.observe(this.$el); 47073 }, 47074 getOptions(attrId) { 47075 return this.precalcOptions[attrId] || []; 47076 }, 47077 getOptionsByAttrId() { 47078 return this.getOptions(this.$el.dataset.attributeId); 47079 }, 47080 _getItemId() { 47081 if (this.item && this.item.id) return this.item.id; 47082 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 47083 }, 47084 getSwatchOptionHtmlId() { 47085 const itemId = this._getItemId(); 47086 return itemId ? this.$id(`attribute-option-47259-${itemId}`) : ''; 47087 }, 47088 getSwatchOptionHtmlIdGroup() { 47089 const itemId = this._getItemId(); 47090 return itemId ? [`attribute-option-47259-${itemId}`] : []; 47091 }, 47092 getAttributeSwatchData(attributeId) { 47093 const data = Object.assign({}, this.swatchConfig[attributeId]); 47094 if (data['additional_data']) { 47095 try { 47096 data['details'] = JSON.parse(data['additional_data']); 47097 } catch (e) { 47098 data['details'] = {}; 47099 } 47100 } 47101 return data; 47102 }, 47103 getSwatchType(attributeId, optionId) { 47104 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 47105 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 47106 } 47107 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 47108 this.swatchConfig[attributeId].details.swatch_input_type : 47109 "empty"; 47110 if (type === 'visual') { 47111 const config = this.swatchConfig[attributeId]; 47112 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 47113 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 47114 } 47115 // Fallback to first option type 47116 for (const oId in config) { 47117 if (config[oId] && typeof config[oId].type !== 'undefined') { 47118 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 47119 } 47120 } 47121 } 47122 return type; 47123 }, 47124 mapSwatchTypeNumberToTypeCode(type) { 47125 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 47126 }, 47127 isTextSwatch() { 47128 const itemId = this._getItemId(); 47129 if (!this.$el || !itemId) return false;
47130 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47131 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 47132 }, 47133 47134 getSwatchText() { 47135 const itemId = this._getItemId(); 47136 if (this.item) return this.item.label || ''; 47137 if (!this.$el || !itemId) return ''; 47138 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47139 const options = attrId ? this.getOptions(attrId) : []; 47140 const opt = options.find(o => o.id == itemId); 47141 return opt ? opt.label : ''; 47142 }, 47143 getSwatchBackgroundStyle() { 47144 const itemId = this._getItemId(); 47145 if (!this.$el || !itemId) return ''; 47146 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47147 if (!attrId) return ''; 47148 const type = this.getSwatchType(attrId, itemId); 47149 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 47150 this.swatchConfig[attrId][itemId] : 47151 null; 47152 if (!swatchData) return ''; 47153 if (type === "color") return 'background-color:' + swatchData.value; 47154 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 47155 return ''; 47156 }, 47157 swatchOptionClasses() { 47158 const itemId = this._getItemId(); 47159 if (!this.$el || !itemId) return {}; 47160 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47161 return { 47162 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 47163 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 47164 'w-6 h-6': !this.isTextSwatch() 47165 } 47166 }, 47167 47168 onFocusSwatchItem() { 47169 const itemId = this._getItemId(); 47170 if (itemId) this.focusedLabel = itemId; 47171 }, 47172 onChangeOption() { 47173 const itemId = this._getItemId(); 47174 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 47175 if (attrId && itemId) this.changeOption(attrId, itemId); 47176 }, 47177 changeOption(attributeId, value) { 47178 if (value === '') { 47179 return; 47180 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 47181 } else { 47182 this.selectedValues[attributeId] = value; 47183 } 47184 47185 this.findSimpleIndex(); 47186 this.findAllowedAttributeOptions(); 47187 this.updatePrices(); 47188 this.updateGallery(); 47189 47190 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 47191 this.findProductIdsForPartialSelection(this.selectedValues) : []; 47192 47193 const eventDetail = { 47194 productId: this.productId, 47195 optionId: attributeId, 47196 value: value, 47197 productIndex: this.productIndex || 0, 47198 selectedValues: this.selectedValues, 47199 candidates: candidates, 47200 sourceElement: this.$el 47201 }; 47202 47203 // Dispatch for Amasty 47204 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 47205 detail: eventDetail 47206 })); 47207 47208 // Dispatch for Hyva listing 47209 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 47210 detail: eventDetail 47211 })); 47212 }, 47213 47214 47215 clearOptionIfActive() { 47216 const itemId = this._getItemId(); 47217 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 47218 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 47219 this.changeOption(attrId, ''); 47220 47221 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 47222 if (!input && this.$el?.querySelector) { 47223 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 47224 } 47225 if (!input && this.$el?.closest) { 47226 const root = this.$el.closest('[data-product-id]') || this.$el; 47227 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 47228 } 47229 if (input) { 47230 input.checked = false;
47231 } 47232 } 47233 }, 47234 get optionIsEnabled() { 47235 const itemId = this._getItemId(); 47236 if (!this.$el || !itemId) return true; 47237 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47238 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 47239 return !!allowedOptions.find(opt => opt.id == itemId); 47240 }, 47241 get isSelected() { 47242 const itemId = this._getItemId(); 47243 if (!this.$el || !itemId) return false; 47244 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47245 return attrId ? (this.selectedValues[attrId] == itemId) : false; 47246 }, 47247 get isSwatchRequired() { 47248 if (!this.$el) return false; 47249 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47250 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 47251 }, 47252 focusedLabel: false, 47253 activeTooltipItem: false, 47254 tooltipPositionElement: false,
47255 setActiveTooltipItem() { 47256 const itemId = this._getItemId(); 47257 if (!this.$el || !itemId) return; 47258 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47259 this.activeTooltipItem = { 47260 attribute: attrId, 47261 item: itemId, 47262 index: 0 47263 }; 47264 this.tooltipPositionElement = this.$event ? this.$event.target : null; 47265 }, 47266 unsetActiveTooltipItem() { 47267 this.activeTooltipItem = false; 47268 } 47269 }, 47270 confProdPreSelect() 47271 ); 47272 47273 if (result.optionConfig && result.optionConfig.attributes) { 47274 const attributes = result.optionConfig.attributes; 47275 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 47276 let source = attributes; 47277 if (Array.isArray(attributes)) { 47278 source = {}; 47279 attributes.forEach(attr => { 47280 if (attr && attr.id) source[attr.id] = attr; 47281 }); 47282 } 47283 const values = Object.values(source); 47284 const wrapper = Object.assign(values, source); 47285 Object.defineProperty(wrapper, '__amxnotifWrapped', { 47286 value: true, 47287 enumerable: false 47288 }); 47289 result.optionConfig.attributes = wrapper; 47290 } 47291 } 47292 47293 return result; 47294 } 47295 47296 window.addEventListener('alpine:init', () => { 47297 Alpine.data('initConfigurableSwatchOptions_47259', initConfigurableSwatchOptions_47259); 47298 }, { 47299 once: true 47300 }); 47301 </script>
47301 47302 47303 <div x-data="initConfigurableSwatchOptions_47259" x-defer="intersect"> 47304 <div class="pagebuilder-home-hidden"> 47305 47306 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 47307 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 47308 <template x-if="showSwatches"> 47309 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47259-163" role="radiogroup" aria-label="Einband"> 47310 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 47311 <div :data-option-id="item.id" style="display: contents"> 47312 <div x-id="getSwatchOptionHtmlIdGroup"> 47313 <template x-if="optionIsEnabled"> 47314 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
47314self="unsetActiveTooltipItem"> 47315 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47259-163"> 47316 <div> 47317 <template x-if="isTextSwatch"> 47318 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 47319 </template> 47320 <template x-if="!optionIsActive(163, item.id)"> 47321 <div> 47322 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 47323 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 47324 </svg> 47325 </div> 47326 </template> 47327 </div> 47328 </label> 47329 </template> 47330</div> </div> 47331 </template> 47332 </div> 47333 </template> 47334 </div> 47335 </div> 47336 </div> 47337 </div> 47338 47339 <div class="meta py-4 pagebuilder-home-hidden"> 47340 <div x-data="initMarketingShortText_47259()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 47341 <!-- Marketing short text --> 47342 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 47343 </div> 47344 47345 <!-- Short description --> 47346 </div> 47347 47348 <!-- Series --> 47349 <div class="mb-1"> 47350 <span class="sr-only">Reihe:</span> 47351 <a href="https://meiner.de/fmv_de/programm/zeitschriften/kulturwissenschaftliche-zeitschrift"> 47352 <span>Kulturwissenschaftliche Zeitschrift</span> 47353 </a> 47354 2026/2 </div> 47355 47356 47357 <div class="mb-1"> 47358 <span x-data="initEditionText_47259()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 47359 <!-- Marketing short text --> 47360 <span class="edition-text" x-html="editionText"></span> 2026, 145 Seiten. </span> 47361 </div> 47362 47363 </div> 47364 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 47365 47366 <div class="justify-end" x-data="initPriceBox()" @update-prices-47259.window="updatePrice($event.detail);"> 47367 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47259" data-price-box="product-id-47259"><span class="normal-price"> 47368 <span x-data x-id="['product\u002Dprice\u002D47259']" class="price-container price-final_price tax weee"> 47369 <span class="price-label">Ab</span> 47370 <span class="approx-price">ca. </span> 47371 <span :id="$id('product\u002Dprice\u002D47259')" data-price-amount="0" data-price-type="finalPrice" class="price-wrapper "><span class="price">0,00 €</span></span> 47372 </span> 47373</span> 47374 47375 47376</div> </div> 47377 47378 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 47379 <div class="open-access-container open-access-container-47259 flex mt-4 ml-auto sm:mt-0 hidden"> 47380 <div class="text-gray-700"> 47381 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 47382 <a href="" target="_blank" class="open-access-external-link m-auto "> 47383 Kostenlos online lesen </a> 47384 </button> 47385 </div> 47386 </div> 47387 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Geschwisterlichkeit" aria-label="In den Warenkorb Geschwisterlichkeit" data-addto="cart"> 47388 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 47389 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
473890 014 0z"></path> 47390</svg> 47391 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 47392 In den Warenkorb </span> 47393 </button> 47394 47395<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47259)" aria-label="Zur Wunschliste hinzufügen Geschwisterlichkeit" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 47396 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 47397 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 47398</svg> 47399</button> 47400 </div> 47401 </div> 47402 </div> 47403
47403<script> 47404 function initMarketingShortText_47259() { 47405 var marketingShortTextConfig = {}; 47406 if (typeof window.initConfigurableSwatchOptions_47259 === "function") { 47407 var fullConfig = window.initConfigurableSwatchOptions_47259().optionConfig 47408 var marketingShortTextConfig = fullConfig.marketing_short_text; 47409 } 47410 return { 47411 marketingShortText: '', 47412 config: marketingShortTextConfig, 47413 productId: '47259', 47414 getMarketingShortText(detail) { 47415 this.marketingShortText = detail.productIndex ? 47416 this.config[detail.productIndex] : 47417 null; 47418 }, 47419 eventListeners: { 47420 ['@listing-configurable-selection-changed.window'](event) { 47421 if (this.productId == event.detail.productId) { 47422 this.getMarketingShortText(event.detail); 47423 } 47424 47425 } 47426 } 47427 } 47428 } 47429 47430 function initEditionText_47259() { 47431 var editionTextConfig = {}; 47432 if (typeof window.initConfigurableSwatchOptions_47259 === "function") { 47433 var fullConfig = window.initConfigurableSwatchOptions_47259().optionConfig 47434 var editionTextConfig = fullConfig.edition; 47435 } 47436 return { 47437 editionText: '', 47438 config: editionTextConfig, 47439 productId: '47259', 47440 getEditionText(detail) { 47441 this.editionText = detail.productIndex ? 47442 this.config[detail.productIndex] : 47443 null; 47444 }, 47445 eventListeners: { 47446 ['@listing-configurable-selection-changed.window'](event) { 47447 if (this.productId == event.detail.productId) { 47448 this.getEditionText(event.detail); 47449 } 47450 47451 } 47452 } 47453 } 47454 } 47455 </script>
47455 47456 </form> 47457 47458 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/47049/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk22146"> 47459 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="47049"> 47460 <a href="https://meiner.de/fmv_de/archiv-fa-r-begriffsgeschichte-band-672-22146" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 47461 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-47049.window="$el.src = $event.detail" alt="Archiv für Begriffsgeschichte. Band 67,2" title="Archiv für Begriffsgeschichte. Band 67,2" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351770_15.jpg" :style="{ 47462 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 47463 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 47464 }"> 47465 </a> 47466 <div class="product-info flex flex-col flex-grow "> 47467 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 47468 <div class="mb-2 text-sm text-gray-500 font-medium"> 47469 <a href="https://meiner.de/fmv_de/person/Carsten-Dutt-8730/" class="mb-2"> 47470 Carsten Dutt </a> 47471 <span>|</span> 47472 <a href="https://meiner.de/fmv_de/person/Hubertus-Busche-3209/" class="mb-2"> 47473 Hubertus Busche </a> 47474 <span>|</span> 47475 <a href="https://meiner.de/fmv_de/person/Michael-Erler-3210/" class="mb-2"> 47476 Michael Erler (Hrsg.) 47477 </a> 47478 </div> 47479 <a class="product-item-link" href="https://meiner.de/fmv_de/archiv-fa-r-begriffsgeschichte-band-672-22146"> 47480 Archiv für Begriffsgeschichte. Band 67,2 </a> 47481 </div> 47482 47483 <div x-data="initEditionText_47049()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 47484 <!-- Marketing short text --> 47485 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 47486 </div> 47487 </div> 47488 47489 <div class="py-1 grid mb-4 "> 47490 47491 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":47049,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":47049,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46920":"1","47024":"1"},"childProductsAlertStatus":{"46920":"0","47024":"0"},"indexMapping":{"163:15":46920,"163:8":47024},"availabilityMessages":{"46920":"Lieferbar innerhalb von 3-5 Tagen","47024":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47049":{"status":0},"46920":{"status":0},"47024":{"status":0}}},"availabilityMessages":{"46920":"Lieferbar innerhalb von 3-5 Tagen","47024":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47049":{"status":0},"46920":{"status":0},"47024":{"status":0}}}'> 47492 <template x-if="containerVisible"> 47493 <!-- Popup Trigger --> 47494 <div> 47495 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 47496 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
47497 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 47498 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 47499<title>bell</title></svg> 47500</span> 47501 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 47502 47503 <!-- Popup Modal --> 47504 <template x-if="showModal"> 47505 <template x-teleport=".page-wrapper"> 47506 <div x-cloak class="fixed inset-0 flex items-center justify-center 47507 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 47508 <div class="relative bg-white rounded-lg shadow-xl 47509 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 47510 <div class="p-6"> 47511 <!-- Subscription Form for Popup --> 47512 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 47513 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 47514 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 47515 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 47516 47517 <div class="flex flex-col gap-3"> 47518 <div class="flex-grow grow"> 47519 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 47520 shadow-xs focus:outline-none focus:outline-hidden 47521 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 47522 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 47523 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 47524 </div> 47525 <input type="hidden" name="product_id" :value="currentProductId"> 47526 <input type="hidden" name="type" value="email"> 47527 47528 47529 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 47530 47531 <div class="amxnotif_guest_action"> 47532 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 47533 rounded-md focus:outline-none 47534 focus:outline-hidden focus:ring-2 47535 focus:ring-offset-2 disabled:opacity-50 47536 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 47537 Benachrichtigen </button> 47538 </div> 47539 </div> 47540 47541 <div class="flex items-start pt-2"> 47542 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 47543 text-blue-600 border-gray-300 rounded-sm"> 47544 <label class="amxnotif-stock-gdrp-label cursor-pointer 47545 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 47546 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 47547 </div> 47548 </form> 47549 </div> 47550 47551 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 47552 hover:text-gray-600 transition-colors" aria-label="Schließen"> 47553 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 47554 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 47555<title>x</title></svg> 47556 </button> 47557 </div> 47558 </div> 47559 </template> 47560 </template> 47561 </div> 47562 </template> 47563 </div> 47564 47565<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_47049" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":47049,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46920":"1","47024":"1"},"childProductsAlertStatus":{"46920":"0","47024":"0"},"indexMapping":"{\u0022163:15\u0022:46920,\u0022163:8\u0022:47024}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":47049,"availabilityMessages":{"46920":"Lieferbar innerhalb von 3-5 Tagen","47024":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"47049":{"status":0},"46920":{"status":0},"47024":{"status":0}}}'> 47566 47567 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
47568 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 47569 <span x-html="optionsLabelText"></span> 47570 </p> 47571</div> </div> 47572 47573
47573<script> 47574 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 47575 try { 47576 const attributes = (config && config.attributes) ? config.attributes : null; 47577 if (!attributes) return []; 47578 let attr = null; 47579 if (Array.isArray(attributes)) { 47580 for (let i = 0; i < attributes.length; i++) { 47581 const a = attributes[i]; 47582 if (a && a.id == attrId) { 47583 attr = a; 47584 break; 47585 } 47586 } 47587 } else { 47588 attr = attributes[attrId]; 47589 } 47590 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 47591 } catch (e) { 47592 return []; 47593 } 47594 }; 47595 47596 function initConfigurableSwatchOptions_47049() { 47597 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46920"]},{"id":"8","label":"PDF","products":["47024"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46920":{"baseOldPrice":{"amount":62.616821429907},"oldPrice":{"amount":67},"basePrice":{"amount":62.616821429907},"finalPrice":{"amount":67},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"47024":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":46.719625168224},"finalPrice":{"amount":49.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":42.008402361345},"finalPrice":{"amount":49.99},"isApproxPrice":null},"productId":"47049","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46920":{"163":"15"},"47024":{"163":"8"}},"salable":{"163":{"15":["46920"],"8":["47024"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"46920":"000369-67-2","47024":"eAFB-67-2"},"output":{"46920":"Kartoniert","47024":"PDF"},"original_name":{"46920":"","47024":""},"openaccess_license_link":{"46920":"","47024":""},"openaccess_license_name":{"46920":"","47024":""},"openaccess_external_link":{"46920":"","47024":""},"gpsr_safety_info":{"46920":"","47024":""},"description":{"46920":"Mit dem von Nadja Germann und Frieder Vogelmann kuratierten Schwerpunkt \u00bbWissen \u00fcber Grenzen\u00ab versammelt das Archiv f\u00fcr Begriffsgeschichte theoretisch-methodologische Reflexionen und materiale Studien zu einer \u00bbkritisch-aufkl\u00e4rerischen, transkulturell geweiteten Begriffsgeschichte\u00ab. Der einleitende Beitrag profiliert ihre Erkenntnisziele und Verfahren als Revision der bisherigen Praxis philosophischer Begriffsgeschichtsschreibung. Die sich anschlie\u00dfenden Studien von Germann, Maarten J. F. M. Hoenen und Bret W. Davis gehen je auf ihre Weise Grenzziehungen und -verschiebungen des Wissensbegriffs in der arabisch-islamischen Philosophie des Mittelalters, im sp\u00e4tmittelalterlichen Thomismus sowie im Zen-Buddhismus nach. Eine abschlie\u00dfende Replik von Carsten Dutt nimmt zu den kritischen und konstruktiven Anspr\u00fcchen des Heftschwerpunkts Stellung.","47024":"Mit dem von Nadja Germann und Frieder Vogelmann kuratierten Schwerpunkt \u00bbWissen \u00fcber Grenzen\u00ab versammelt das Archiv f\u00fcr Begriffsgeschichte theoretisch-methodologische Reflexionen und materiale Studien zu einer \u00bbkritisch-aufkl\u00e4rerischen, transkulturell geweiteten Begriffsgeschichte\u00ab. Der einleitende Beitrag profiliert ihre Erkenntnisziele und Verfahren als Revision der bisherigen Praxis philosophischer Begriffsgeschichtsschreibung. Die sich anschlie\u00dfenden Studien von Germann, Maarten J. F. M. Hoenen und Bret W. Davis gehen je auf ihre Weise Grenzziehungen und -verschiebungen des Wissensbegriffs in der arabisch-islamischen Philosophie des Mittelalters, im sp\u00e4tmittelalterlichen Thomismus sowie im Zen-Buddhismus nach. Eine abschlie\u00dfende Replik von Carsten Dutt nimmt zu den kritischen und konstruktiven Anspr\u00fcchen des Heftschwerpunkts Stellung."},"doi":{"46920":"","47024":"10.28937\/978-3-7873-5177-0"},"isbn":{"46920":"978-3-7873-5176-3","47024":""},"marketing_short_text":{"46920":"","47024":""},"recension_text":{"46920":"","47024":""},"language":{"46920":"","47024":""},"cover":{"46920":"Kartoniert","47024":""},"pages":{"46920":"191 Seiten.","47024":"191 Seiten."},"edition":{"46920":"","47024":"Unver\u00e4ndertes eJournal der 1. Auflage von 2025"},"pod":{"46920":"Nein","47024":"Nein"},"copyright_year":{"46920":"","47024":""},"vlb_tix_link":{"46920":"https:\/\/neu.vlbtix.de\/products\/9783787351763?type=gtin","47024":""},"defaultValues":{"163":"15"}}; 47598 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 47599 47600 if (typeof window.amxnotif_wrap_attributes === 'function') { 47601 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 47602 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 47603 } 47604 47605 const configurableOptionsComponent = initConfigurableOptions( 47606 '47049', 47607 config 47608 ); 47609 const swatchOptionsComponent = initSwatchOptions( 47610 swatchConfig 47611 ); 47612 47613 // DWS - Configurable product preselect start 47614 const confProdPreSelect = () => { 47615 return { 47616 preselectQuerystringItems() { 47617 var data = {"id":"46920","output":"15"}; 47618 const urlQueryParams = new URLSearchParams(window.location.search); 47619 47620 this.$nextTick(() => { 47621 setTimeout(() => { 47622 const rootEl = this.$root || this.$el; 47623 if (!rootEl) return; 47624 47625 const applySelection = (attrCode, attrValue) => { 47626 if (attrValue === undefined || attrValue === null || attrValue === '') return; 47627 47628 const attributes = Object.values(this.optionConfig.attributes || {}); 47629 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 47630 47631 if (targetAttr) { 47632 const attrId = String(targetAttr.id); 47633 const optionVal = String(attrValue); 47634 47635 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 47636 47637 if (inputEl) { 47638 inputEl.click(); 47639 inputEl.dispatchEvent(new Event('change', { 47640 bubbles: true 47641 })); 47642 } else { 47643 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 47644 if (selectEl) { 47645 selectEl.value = optionVal; 47646 selectEl.dispatchEvent(new Event('change', { 47647 bubbles: true 47648 })); 47649 } 47650 } 47651 47652 this.changeOption(attrId, optionVal, false); 47653 } 47654 }; 47655 47656 if (data && typeof data === 'object') {
47657 Object.keys(data).forEach(key => applySelection(key, data[key])); 47658 } 47659 47660 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 47661 if (attribute && attribute.code) { 47662 let optionValue = urlQueryParams.get(attribute.code); 47663 if (optionValue) { 47664 let optionId = false; 47665 const attributes = Object.values(this.optionConfig.attributes || {}); 47666 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 47667 47668 let found = false; 47669 Object.values(targetAttr.options).map(option => { 47670 if (found === false && option.label === optionValue) { 47671 optionId = option.id; 47672 found = true; 47673 } 47674 }); 47675 47676 const attrId = String(targetAttr.id); 47677 let optionVal = String(optionValue); 47678 if (found) { 47679 optionVal = String(optionId); 47680 } 47681 47682 applySelection(attribute.code, optionVal); 47683 } 47684 } 47685 }); 47686 }, 100); 47687 }); 47688 } 47689 } 47690 }; 47691 // DWS - Configurable product preselect end 47692 47693 const result = Object.assign( 47694 configurableOptionsComponent, 47695 swatchOptionsComponent, { 47696 productId: '47049', 47697 productIndex: 0, 47698 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 47699 showSwatches: false, 47700 precalcOptions: {}, 47701 originalInit: configurableOptionsComponent.init, 47702 init() { 47703 try { 47704 this.precalcOptions = {}; 47705 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 47706 this.preselectQuerystringItems(); 47707 if (Array.isArray(attrSource)) { 47708 attrSource.forEach(attr => { 47709 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 47710 }); 47711 } else if (attrSource && typeof attrSource === 'object') { 47712 Object.keys(attrSource).forEach(id => { 47713 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 47714 }); 47715 } 47716 } catch (e) { 47717 console.error('Pre-calc error:', e); 47718 } 47719 47720 if (typeof this.originalInit === 'function') { 47721 this.originalInit(); 47722 } 47723 47724 try { 47725 this.initShowSwatchesIntersect(); 47726 } catch (e) { 47727 console.error('intersect error:', e); 47728 } 47729 }, 47730 47731 updateGallery() { 47732 if (!this.productIndex) return; 47733 47734 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 47735 method: 'GET', 47736 headers: { 47737 'Content-Type': 'application/json', 47738 'X-Requested-With': 'XMLHttpRequest' 47739 } 47740 }) 47741 .then(response => response.json()) 47742 .then(data => { 47743 if (data && data.medium) { 47744 window.dispatchEvent(new CustomEvent("update-gallery-47049", { 47745 detail: data.medium 47746 })); 47747 } 47748 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 47749 }, 47750 47751 47752 initShowSwatchesIntersect() { 47753 const observer = new IntersectionObserver(entries => { 47754 if (entries[0].isIntersecting) { 47755 this.showSwatches = true; 47756 observer.disconnect(); 47757 } 47758 }, { 47759 rootMargin: '512px' 47760 }); 47761 observer.observe(this.$el); 47762 }, 47763 getOptions(attrId) { 47764 return this.precalcOptions[attrId] || []; 47765 }, 47766 getOptionsByAttrId() { 47767 return this.getOptions(this.$el.dataset.attributeId); 47768 }, 47769 _getItemId() { 47770 if (this.item && this.item.id) return this.item.id; 47771 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 47772 }, 47773 getSwatchOptionHtmlId() { 47774 const itemId = this._getItemId(); 47775 return itemId ? this.$id(`attribute-option-47049-${itemId}`) : ''; 47776 }, 47777 getSwatchOptionHtmlIdGroup() { 47778 const itemId = this._getItemId(); 47779 return itemId ? [`attribute-option-47049-${itemId}`] : []; 47780 }, 47781 getAttributeSwatchData(attributeId) { 47782 const data = Object.assign({}, this.swatchConfig[attributeId]); 47783 if (data['additional_data']) { 47784 try { 47785 data['details'] = JSON.parse(data['additional_data']); 47786 } catch (e) { 47787 data['details'] = {}; 47788 } 47789 } 47790 return data; 47791 }, 47792 getSwatchType(attributeId, optionId) { 47793 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 47794 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 47795 } 47796 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 47797 this.swatchConfig[attributeId].details.swatch_input_type : 47798 "empty"; 47799 if (type === 'visual') { 47800 const config = this.swatchConfig[attributeId]; 47801 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 47802 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 47803 } 47804 // Fallback to first option type 47805 for (const oId in config) { 47806 if (config[oId] && typeof config[oId].type !== 'undefined') { 47807 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 47808 } 47809 } 47810 } 47811 return type; 47812 }, 47813 mapSwatchTypeNumberToTypeCode(type) { 47814 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 47815 }, 47816 isTextSwatch() { 47817 const itemId = this._getItemId(); 47818 if (!this.$el || !itemId) return false;
47819 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47820 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 47821 }, 47822 47823 getSwatchText() { 47824 const itemId = this._getItemId(); 47825 if (this.item) return this.item.label || ''; 47826 if (!this.$el || !itemId) return ''; 47827 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47828 const options = attrId ? this.getOptions(attrId) : []; 47829 const opt = options.find(o => o.id == itemId); 47830 return opt ? opt.label : ''; 47831 }, 47832 getSwatchBackgroundStyle() { 47833 const itemId = this._getItemId(); 47834 if (!this.$el || !itemId) return ''; 47835 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47836 if (!attrId) return ''; 47837 const type = this.getSwatchType(attrId, itemId); 47838 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 47839 this.swatchConfig[attrId][itemId] : 47840 null; 47841 if (!swatchData) return ''; 47842 if (type === "color") return 'background-color:' + swatchData.value; 47843 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 47844 return ''; 47845 }, 47846 swatchOptionClasses() { 47847 const itemId = this._getItemId(); 47848 if (!this.$el || !itemId) return {}; 47849 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47850 return { 47851 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 47852 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 47853 'w-6 h-6': !this.isTextSwatch() 47854 } 47855 }, 47856 47857 onFocusSwatchItem() { 47858 const itemId = this._getItemId(); 47859 if (itemId) this.focusedLabel = itemId; 47860 }, 47861 onChangeOption() { 47862 const itemId = this._getItemId(); 47863 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 47864 if (attrId && itemId) this.changeOption(attrId, itemId); 47865 }, 47866 changeOption(attributeId, value) { 47867 if (value === '') { 47868 return; 47869 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 47870 } else { 47871 this.selectedValues[attributeId] = value; 47872 } 47873 47874 this.findSimpleIndex(); 47875 this.findAllowedAttributeOptions(); 47876 this.updatePrices(); 47877 this.updateGallery(); 47878 47879 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 47880 this.findProductIdsForPartialSelection(this.selectedValues) : []; 47881 47882 const eventDetail = { 47883 productId: this.productId, 47884 optionId: attributeId, 47885 value: value, 47886 productIndex: this.productIndex || 0, 47887 selectedValues: this.selectedValues, 47888 candidates: candidates, 47889 sourceElement: this.$el 47890 }; 47891 47892 // Dispatch for Amasty 47893 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 47894 detail: eventDetail 47895 })); 47896 47897 // Dispatch for Hyva listing 47898 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 47899 detail: eventDetail 47900 })); 47901 }, 47902 47903 47904 clearOptionIfActive() { 47905 const itemId = this._getItemId(); 47906 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 47907 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 47908 this.changeOption(attrId, ''); 47909 47910 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 47911 if (!input && this.$el?.querySelector) { 47912 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 47913 } 47914 if (!input && this.$el?.closest) { 47915 const root = this.$el.closest('[data-product-id]') || this.$el; 47916 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 47917 } 47918 if (input) { 47919 input.checked = false;
47920 } 47921 } 47922 }, 47923 get optionIsEnabled() { 47924 const itemId = this._getItemId(); 47925 if (!this.$el || !itemId) return true; 47926 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47927 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 47928 return !!allowedOptions.find(opt => opt.id == itemId); 47929 }, 47930 get isSelected() { 47931 const itemId = this._getItemId(); 47932 if (!this.$el || !itemId) return false; 47933 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47934 return attrId ? (this.selectedValues[attrId] == itemId) : false; 47935 }, 47936 get isSwatchRequired() { 47937 if (!this.$el) return false; 47938 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47939 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 47940 }, 47941 focusedLabel: false, 47942 activeTooltipItem: false, 47943 tooltipPositionElement: false,
47944 setActiveTooltipItem() { 47945 const itemId = this._getItemId(); 47946 if (!this.$el || !itemId) return; 47947 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 47948 this.activeTooltipItem = { 47949 attribute: attrId, 47950 item: itemId, 47951 index: 0 47952 }; 47953 this.tooltipPositionElement = this.$event ? this.$event.target : null; 47954 }, 47955 unsetActiveTooltipItem() { 47956 this.activeTooltipItem = false; 47957 } 47958 }, 47959 confProdPreSelect() 47960 ); 47961 47962 if (result.optionConfig && result.optionConfig.attributes) { 47963 const attributes = result.optionConfig.attributes; 47964 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 47965 let source = attributes; 47966 if (Array.isArray(attributes)) { 47967 source = {}; 47968 attributes.forEach(attr => { 47969 if (attr && attr.id) source[attr.id] = attr; 47970 }); 47971 } 47972 const values = Object.values(source); 47973 const wrapper = Object.assign(values, source); 47974 Object.defineProperty(wrapper, '__amxnotifWrapped', { 47975 value: true, 47976 enumerable: false 47977 }); 47978 result.optionConfig.attributes = wrapper; 47979 } 47980 } 47981 47982 return result; 47983 } 47984 47985 window.addEventListener('alpine:init', () => { 47986 Alpine.data('initConfigurableSwatchOptions_47049', initConfigurableSwatchOptions_47049); 47987 }, { 47988 once: true 47989 }); 47990 </script>
47990 47991 47992 <div x-data="initConfigurableSwatchOptions_47049" x-defer="intersect"> 47993 <div class="pagebuilder-home-hidden"> 47994 47995 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 47996 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 47997 <template x-if="showSwatches"> 47998 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-47049-163" role="radiogroup" aria-label="Einband"> 47999 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 48000 <div :data-option-id="item.id" style="display: contents"> 48001 <div x-id="getSwatchOptionHtmlIdGroup"> 48002 <template x-if="optionIsEnabled"> 48003 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
48003self="unsetActiveTooltipItem"> 48004 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-47049-163"> 48005 <div> 48006 <template x-if="isTextSwatch"> 48007 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 48008 </template> 48009 <template x-if="!optionIsActive(163, item.id)"> 48010 <div> 48011 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 48012 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 48013 </svg> 48014 </div> 48015 </template> 48016 </div> 48017 </label> 48018 </template> 48019</div> </div> 48020 </template> 48021 </div> 48022 </template> 48023 </div> 48024 </div> 48025 </div> 48026 </div> 48027 48028 <div class="meta py-4 pagebuilder-home-hidden"> 48029 <div x-data="initMarketingShortText_47049()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 48030 <!-- Marketing short text --> 48031 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 48032 </div> 48033 48034 <!-- Short description --> 48035 <div class="short-description"> 48036 Mit dem von Nadja Germann und Frieder Vogelmann kuratierten Schwerpunkt »Wissen über Grenzen« versammelt das Archiv für Begriffsgeschichte theoretisch-methodologische Reflexionen und materiale ... <a href="https://meiner.de/fmv_de/archiv-fa-r-begriffsgeschichte-band-672-22146" class="underline">mehr</a> 48037 </div> 48038 </div> 48039 48040 <!-- Series --> 48041 <div class="mb-1"> 48042 <span class="sr-only">Reihe:</span> 48043 <a href="https://meiner.de/fmv_de/programm/zeitschriften/archiv-fur-begriffsgeschichte"> 48044 <span>Archiv für Begriffsgeschichte</span> 48045 </a> 48046 67,2 </div> 48047 48048 48049 <div class="mb-1"> 48050 <span x-data="initEditionText_47049()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 48051 <!-- Marketing short text --> 48052 <span class="edition-text" x-html="editionText"></span> 2026, 191 Seiten. </span> 48053 </div> 48054 48055 </div> 48056 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 48057 48058 <div class="justify-end" x-data="initPriceBox()" @update-prices-47049.window="updatePrice($event.detail);"> 48059 <div class="price-box price-final_price" data-role="priceBox" data-product-id="47049" data-price-box="product-id-47049"><span class="normal-price"> 48060 <span x-data x-id="['product\u002Dprice\u002D47049']" class="price-container price-final_price tax weee"> 48061 <span class="price-label">Ab</span> 48062 <span class="approx-price">ca. </span>
48063 <span :id="$id('product\u002Dprice\u002D47049')" data-price-amount="49.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">49,99 €</span></span> 48064 </span> 48065</span> 48066 48067 48068</div> </div> 48069 48070 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 48071 <div class="open-access-container open-access-container-47049 flex mt-4 ml-auto sm:mt-0 hidden"> 48072 <div class="text-gray-700"> 48073 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 48074 <a href="" target="_blank" class="open-access-external-link m-auto "> 48075 Kostenlos online lesen </a> 48076 </button> 48077 </div> 48078 </div> 48079 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Archiv für Begriffsgeschichte. Band 67,2" aria-label="In den Warenkorb Archiv für Begriffsgeschichte. Band 67,2" data-addto="cart"> 48080 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 48081 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 48082</svg> 48083 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 48084 In den Warenkorb </span> 48085 </button> 48086 48087<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(47049)" aria-label="Zur Wunschliste hinzufügen Archiv für Begriffsgeschichte. Band 67,2" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 48088 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 48089 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 48090</svg> 48091</button> 48092 </div> 48093 </div> 48094 </div> 48095
48095<script> 48096 function initMarketingShortText_47049() { 48097 var marketingShortTextConfig = {}; 48098 if (typeof window.initConfigurableSwatchOptions_47049 === "function") { 48099 var fullConfig = window.initConfigurableSwatchOptions_47049().optionConfig 48100 var marketingShortTextConfig = fullConfig.marketing_short_text; 48101 } 48102 return { 48103 marketingShortText: '', 48104 config: marketingShortTextConfig, 48105 productId: '47049', 48106 getMarketingShortText(detail) { 48107 this.marketingShortText = detail.productIndex ? 48108 this.config[detail.productIndex] : 48109 null; 48110 }, 48111 eventListeners: { 48112 ['@listing-configurable-selection-changed.window'](event) { 48113 if (this.productId == event.detail.productId) { 48114 this.getMarketingShortText(event.detail); 48115 } 48116 48117 } 48118 } 48119 } 48120 } 48121 48122 function initEditionText_47049() { 48123 var editionTextConfig = {}; 48124 if (typeof window.initConfigurableSwatchOptions_47049 === "function") { 48125 var fullConfig = window.initConfigurableSwatchOptions_47049().optionConfig 48126 var editionTextConfig = fullConfig.edition; 48127 } 48128 return { 48129 editionText: '', 48130 config: editionTextConfig, 48131 productId: '47049', 48132 getEditionText(detail) { 48133 this.editionText = detail.productIndex ? 48134 this.config[detail.productIndex] : 48135 null; 48136 }, 48137 eventListeners: { 48138 ['@listing-configurable-selection-changed.window'](event) { 48139 if (this.productId == event.detail.productId) { 48140 this.getEditionText(event.detail); 48141 } 48142 48143 } 48144 } 48145 } 48146 } 48147 </script>
48147 48148 </form> 48149 48150 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/46910/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk21493"> 48151 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="46910"> 48152 <a href="https://meiner.de/fmv_de/identita-t-differenz-21493" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 48153 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-46910.window="$el.src = $event.detail" alt="Identität/Differenz" title="Identität/Differenz" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787351398_18.jpg" :style="{ 48154 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 48155 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 48156 }"> 48157 </a> 48158 <div class="product-info flex flex-col flex-grow "> 48159 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 48160 <div class="mb-2 text-sm text-gray-500 font-medium"> 48161 <a href="https://meiner.de/fmv_de/person/Ralf-Becker-3266/" class="mb-2"> 48162 Ralf Becker </a> 48163 <span>|</span> 48164 <a href="https://meiner.de/fmv_de/person/Christian-Bermes-3208/" class="mb-2"> 48165 Christian Bermes </a> 48166 <span>|</span> 48167 <a href="https://meiner.de/fmv_de/person/Annika-Schlitte-8726/" class="mb-2"> 48168 Annika Schlitte </a> 48169 <span>|</span> 48170 <a href="https://meiner.de/fmv_de/person/Dirk-Westerkamp-3251/" class="mb-2"> 48171 Dirk Westerkamp (Hrsg.) 48172 </a> 48173 </div> 48174 <a class="product-item-link" href="https://meiner.de/fmv_de/identita-t-differenz-21493"> 48175 Identität/Differenz </a> 48176 </div> 48177 48178 <div x-data="initEditionText_46910()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 48179 <!-- Marketing short text --> 48180 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 48181 </div> 48182 </div> 48183 48184 <div class="py-1 grid mb-4 "> 48185 48186 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":46910,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":46910,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46735":"1","46931":"1"},"childProductsAlertStatus":{"46735":"0","46931":"0"},"indexMapping":{"163:15":46735,"163:8":46931},"availabilityMessages":{"46735":"Lieferbar innerhalb von 3-5 Tagen","46931":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46910":{"status":0},"46735":{"status":0},"46931":{"status":0}}},"availabilityMessages":{"46735":"Lieferbar innerhalb von 3-5 Tagen","46931":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46910":{"status":0},"46735":{"status":0},"46931":{"status":0}}}'> 48187 <template x-if="containerVisible"> 48188 <!-- Popup Trigger --> 48189 <div> 48190 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 48191 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
48192 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 48193 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 48194<title>bell</title></svg> 48195</span> 48196 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 48197 48198 <!-- Popup Modal --> 48199 <template x-if="showModal"> 48200 <template x-teleport=".page-wrapper"> 48201 <div x-cloak class="fixed inset-0 flex items-center justify-center 48202 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 48203 <div class="relative bg-white rounded-lg shadow-xl 48204 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 48205 <div class="p-6"> 48206 <!-- Subscription Form for Popup --> 48207 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 48208 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 48209 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 48210 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 48211 48212 <div class="flex flex-col gap-3"> 48213 <div class="flex-grow grow"> 48214 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 48215 shadow-xs focus:outline-none focus:outline-hidden 48216 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 48217 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 48218 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 48219 </div> 48220 <input type="hidden" name="product_id" :value="currentProductId"> 48221 <input type="hidden" name="type" value="email"> 48222 48223 48224 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 48225 48226 <div class="amxnotif_guest_action"> 48227 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 48228 rounded-md focus:outline-none 48229 focus:outline-hidden focus:ring-2 48230 focus:ring-offset-2 disabled:opacity-50 48231 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 48232 Benachrichtigen </button> 48233 </div> 48234 </div> 48235 48236 <div class="flex items-start pt-2"> 48237 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 48238 text-blue-600 border-gray-300 rounded-sm"> 48239 <label class="amxnotif-stock-gdrp-label cursor-pointer 48240 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 48241 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 48242 </div> 48243 </form> 48244 </div> 48245 48246 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 48247 hover:text-gray-600 transition-colors" aria-label="Schließen"> 48248 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 48249 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 48250<title>x</title></svg> 48251 </button> 48252 </div> 48253 </div> 48254 </template> 48255 </template> 48256 </div> 48257 </template> 48258 </div> 48259 48260<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_46910" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":46910,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"46735":"1","46931":"1"},"childProductsAlertStatus":{"46735":"0","46931":"0"},"indexMapping":"{\u0022163:15\u0022:46735,\u0022163:8\u0022:46931}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":46910,"availabilityMessages":{"46735":"Lieferbar innerhalb von 3-5 Tagen","46931":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"46910":{"status":0},"46735":{"status":0},"46931":{"status":0}}}'> 48261 48262 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
48263 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 48264 <span x-html="optionsLabelText"></span> 48265 </p> 48266</div> </div> 48267 48268
48268<script> 48269 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 48270 try { 48271 const attributes = (config && config.attributes) ? config.attributes : null; 48272 if (!attributes) return []; 48273 let attr = null; 48274 if (Array.isArray(attributes)) { 48275 for (let i = 0; i < attributes.length; i++) { 48276 const a = attributes[i]; 48277 if (a && a.id == attrId) { 48278 attr = a; 48279 break; 48280 } 48281 } 48282 } else { 48283 attr = attributes[attrId]; 48284 } 48285 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 48286 } catch (e) { 48287 return []; 48288 } 48289 }; 48290 48291 function initConfigurableSwatchOptions_46910() { 48292 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46735"]},{"id":"8","label":"PDF","products":["46931"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"46735":{"baseOldPrice":{"amount":64.485980308411},"oldPrice":{"amount":69},"basePrice":{"amount":64.485980308411},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46931":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":46.719625168224},"finalPrice":{"amount":49.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":46.719625168224},"oldPrice":{"amount":49.99},"basePrice":{"amount":42.008402361345},"finalPrice":{"amount":49.99},"isApproxPrice":null},"productId":"46910","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"46735":{"163":"15"},"46931":{"163":"8"}},"salable":{"163":{"15":["46735"],"8":["46931"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"46735":"000845-2025-2","46931":"eZKPh-2025-2"},"output":{"46735":"Kartoniert","46931":"PDF"},"original_name":{"46735":"","46931":""},"openaccess_license_link":{"46735":"","46931":""},"openaccess_license_name":{"46735":"","46931":""},"openaccess_external_link":{"46735":"","46931":""},"gpsr_safety_info":{"46735":"","46931":""},"description":{"46735":"Die Begriffe \u00bbIdentit\u00e4t\u00ab und \u00bbDifferenz\u00ab gewinnen heute \u00fcber die Philosophie hinaus in sozialen und politischen Kontexten sowie in kulturwissenschaftlichen Debatten zunehmend an Bedeutung. Doch trotz \u2013 oder vielleicht gerade wegen \u2013 ihrer breiten Verwendung bleiben sie oft unbestimmt. Es ist nicht immer klar, was identisch oder unterschiedlich ist oder worauf sich Identit\u00e4t und Differenz \u00fcberhaupt beziehen. <br\/><br\/>In diesem Sinne thematisieren die Beitr\u00e4ge des vorliegenden Schwerpunktes die Wechselwirkung zwischen Individuum und Gesellschaft, etwa bei der Gestaltung pers\u00f6nlicher Identit\u00e4t. Sie argumentieren gegen reduktionistische Identit\u00e4tszuschreibungen und pl\u00e4dieren f\u00fcr eine Ethik der Beziehungen, die etwa interkulturell f\u00fcr ein situationsgebundenes und r\u00fccksichtsvolles Unterscheiden eintritt.","46931":"Die Begriffe \u00bbIdentit\u00e4t\u00ab und \u00bbDifferenz\u00ab gewinnen heute \u00fcber die Philosophie hinaus in sozialen und politischen Kontexten sowie in kulturwissenschaftlichen Debatten zunehmend an Bedeutung. Doch trotz \u2013 oder vielleicht gerade wegen \u2013 ihrer breiten Verwendung bleiben sie oft unbestimmt. Es ist nicht immer klar, was identisch oder unterschiedlich ist oder worauf sich Identit\u00e4t und Differenz \u00fcberhaupt beziehen. <br\/><br\/>In diesem Sinne thematisieren die Beitr\u00e4ge des vorliegenden Schwerpunktes die Wechselwirkung zwischen Individuum und Gesellschaft, etwa bei der Gestaltung pers\u00f6nlicher Identit\u00e4t. Sie argumentieren gegen reduktionistische Identit\u00e4tszuschreibungen und pl\u00e4dieren f\u00fcr eine Ethik der Beziehungen, die etwa interkulturell f\u00fcr ein situationsgebundenes und r\u00fccksichtsvolles Unterscheiden eintritt."},"doi":{"46735":"","46931":"10.28937\/978-3-7873-5139-8"},"isbn":{"46735":"978-3-7873-5138-1","46931":""},"marketing_short_text":{"46735":"","46931":""},"recension_text":{"46735":"","46931":""},"language":{"46735":"","46931":""},"cover":{"46735":"Kartoniert","46931":""},"pages":{"46735":"180 Seiten","46931":"180 Seiten."},"edition":{"46735":"","46931":"Unver\u00e4ndertes eJournal der 1. Auflage von 2025"},"pod":{"46735":"Nein","46931":"Nein"},"copyright_year":{"46735":"","46931":""},"vlb_tix_link":{"46735":"https:\/\/neu.vlbtix.de\/products\/9783787351381?type=gtin","46931":""},"defaultValues":{"163":"15"}}; 48293 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 48294 48295 if (typeof window.amxnotif_wrap_attributes === 'function') { 48296 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 48297 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 48298 } 48299 48300 const configurableOptionsComponent = initConfigurableOptions( 48301 '46910', 48302 config 48303 ); 48304 const swatchOptionsComponent = initSwatchOptions( 48305 swatchConfig 48306 ); 48307 48308 // DWS - Configurable product preselect start 48309 const confProdPreSelect = () => { 48310 return { 48311 preselectQuerystringItems() { 48312 var data = {"id":"46735","output":"15"}; 48313 const urlQueryParams = new URLSearchParams(window.location.search); 48314 48315 this.$nextTick(() => { 48316 setTimeout(() => { 48317 const rootEl = this.$root || this.$el; 48318 if (!rootEl) return; 48319 48320 const applySelection = (attrCode, attrValue) => { 48321 if (attrValue === undefined || attrValue === null || attrValue === '') return; 48322 48323 const attributes = Object.values(this.optionConfig.attributes || {}); 48324 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 48325 48326 if (targetAttr) { 48327 const attrId = String(targetAttr.id); 48328 const optionVal = String(attrValue); 48329 48330 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 48331 48332 if (inputEl) { 48333 inputEl.click(); 48334 inputEl.dispatchEvent(new Event('change', { 48335 bubbles: true 48336 })); 48337 } else { 48338 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 48339 if (selectEl) { 48340 selectEl.value = optionVal; 48341 selectEl.dispatchEvent(new Event('change', { 48342 bubbles: true 48343 })); 48344 } 48345 } 48346 48347 this.changeOption(attrId, optionVal, false); 48348 } 48349 }; 48350 48351 if (data && typeof data === 'object') {
48352 Object.keys(data).forEach(key => applySelection(key, data[key])); 48353 } 48354 48355 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 48356 if (attribute && attribute.code) { 48357 let optionValue = urlQueryParams.get(attribute.code); 48358 if (optionValue) { 48359 let optionId = false; 48360 const attributes = Object.values(this.optionConfig.attributes || {}); 48361 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 48362 48363 let found = false; 48364 Object.values(targetAttr.options).map(option => { 48365 if (found === false && option.label === optionValue) { 48366 optionId = option.id; 48367 found = true; 48368 } 48369 }); 48370 48371 const attrId = String(targetAttr.id); 48372 let optionVal = String(optionValue); 48373 if (found) { 48374 optionVal = String(optionId); 48375 } 48376 48377 applySelection(attribute.code, optionVal); 48378 } 48379 } 48380 }); 48381 }, 100); 48382 }); 48383 } 48384 } 48385 }; 48386 // DWS - Configurable product preselect end 48387 48388 const result = Object.assign( 48389 configurableOptionsComponent, 48390 swatchOptionsComponent, { 48391 productId: '46910', 48392 productIndex: 0, 48393 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 48394 showSwatches: false, 48395 precalcOptions: {}, 48396 originalInit: configurableOptionsComponent.init, 48397 init() { 48398 try { 48399 this.precalcOptions = {}; 48400 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 48401 this.preselectQuerystringItems(); 48402 if (Array.isArray(attrSource)) { 48403 attrSource.forEach(attr => { 48404 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 48405 }); 48406 } else if (attrSource && typeof attrSource === 'object') { 48407 Object.keys(attrSource).forEach(id => { 48408 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 48409 }); 48410 } 48411 } catch (e) { 48412 console.error('Pre-calc error:', e); 48413 } 48414 48415 if (typeof this.originalInit === 'function') { 48416 this.originalInit(); 48417 } 48418 48419 try { 48420 this.initShowSwatchesIntersect(); 48421 } catch (e) { 48422 console.error('intersect error:', e); 48423 } 48424 }, 48425 48426 updateGallery() { 48427 if (!this.productIndex) return; 48428 48429 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 48430 method: 'GET', 48431 headers: { 48432 'Content-Type': 'application/json', 48433 'X-Requested-With': 'XMLHttpRequest' 48434 } 48435 }) 48436 .then(response => response.json()) 48437 .then(data => { 48438 if (data && data.medium) { 48439 window.dispatchEvent(new CustomEvent("update-gallery-46910", { 48440 detail: data.medium 48441 })); 48442 } 48443 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 48444 }, 48445 48446 48447 initShowSwatchesIntersect() { 48448 const observer = new IntersectionObserver(entries => { 48449 if (entries[0].isIntersecting) { 48450 this.showSwatches = true; 48451 observer.disconnect(); 48452 } 48453 }, { 48454 rootMargin: '512px' 48455 }); 48456 observer.observe(this.$el); 48457 }, 48458 getOptions(attrId) { 48459 return this.precalcOptions[attrId] || []; 48460 }, 48461 getOptionsByAttrId() { 48462 return this.getOptions(this.$el.dataset.attributeId); 48463 }, 48464 _getItemId() { 48465 if (this.item && this.item.id) return this.item.id; 48466 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 48467 }, 48468 getSwatchOptionHtmlId() { 48469 const itemId = this._getItemId(); 48470 return itemId ? this.$id(`attribute-option-46910-${itemId}`) : ''; 48471 }, 48472 getSwatchOptionHtmlIdGroup() { 48473 const itemId = this._getItemId(); 48474 return itemId ? [`attribute-option-46910-${itemId}`] : []; 48475 }, 48476 getAttributeSwatchData(attributeId) { 48477 const data = Object.assign({}, this.swatchConfig[attributeId]); 48478 if (data['additional_data']) { 48479 try { 48480 data['details'] = JSON.parse(data['additional_data']); 48481 } catch (e) { 48482 data['details'] = {}; 48483 } 48484 } 48485 return data; 48486 }, 48487 getSwatchType(attributeId, optionId) { 48488 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 48489 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 48490 } 48491 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 48492 this.swatchConfig[attributeId].details.swatch_input_type : 48493 "empty"; 48494 if (type === 'visual') { 48495 const config = this.swatchConfig[attributeId]; 48496 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 48497 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 48498 } 48499 // Fallback to first option type 48500 for (const oId in config) { 48501 if (config[oId] && typeof config[oId].type !== 'undefined') { 48502 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 48503 } 48504 } 48505 } 48506 return type; 48507 }, 48508 mapSwatchTypeNumberToTypeCode(type) { 48509 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 48510 }, 48511 isTextSwatch() { 48512 const itemId = this._getItemId(); 48513 if (!this.$el || !itemId) return false;
48514 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48515 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 48516 }, 48517 48518 getSwatchText() { 48519 const itemId = this._getItemId(); 48520 if (this.item) return this.item.label || ''; 48521 if (!this.$el || !itemId) return ''; 48522 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48523 const options = attrId ? this.getOptions(attrId) : []; 48524 const opt = options.find(o => o.id == itemId); 48525 return opt ? opt.label : ''; 48526 }, 48527 getSwatchBackgroundStyle() { 48528 const itemId = this._getItemId(); 48529 if (!this.$el || !itemId) return ''; 48530 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48531 if (!attrId) return ''; 48532 const type = this.getSwatchType(attrId, itemId); 48533 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 48534 this.swatchConfig[attrId][itemId] : 48535 null; 48536 if (!swatchData) return ''; 48537 if (type === "color") return 'background-color:' + swatchData.value; 48538 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 48539 return ''; 48540 }, 48541 swatchOptionClasses() { 48542 const itemId = this._getItemId(); 48543 if (!this.$el || !itemId) return {}; 48544 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48545 return { 48546 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 48547 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 48548 'w-6 h-6': !this.isTextSwatch() 48549 } 48550 }, 48551 48552 onFocusSwatchItem() { 48553 const itemId = this._getItemId(); 48554 if (itemId) this.focusedLabel = itemId; 48555 }, 48556 onChangeOption() { 48557 const itemId = this._getItemId(); 48558 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 48559 if (attrId && itemId) this.changeOption(attrId, itemId); 48560 }, 48561 changeOption(attributeId, value) { 48562 if (value === '') { 48563 return; 48564 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 48565 } else { 48566 this.selectedValues[attributeId] = value; 48567 } 48568 48569 this.findSimpleIndex(); 48570 this.findAllowedAttributeOptions(); 48571 this.updatePrices(); 48572 this.updateGallery(); 48573 48574 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 48575 this.findProductIdsForPartialSelection(this.selectedValues) : []; 48576 48577 const eventDetail = { 48578 productId: this.productId, 48579 optionId: attributeId, 48580 value: value, 48581 productIndex: this.productIndex || 0, 48582 selectedValues: this.selectedValues, 48583 candidates: candidates, 48584 sourceElement: this.$el 48585 }; 48586 48587 // Dispatch for Amasty 48588 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 48589 detail: eventDetail 48590 })); 48591 48592 // Dispatch for Hyva listing 48593 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 48594 detail: eventDetail 48595 })); 48596 }, 48597 48598 48599 clearOptionIfActive() { 48600 const itemId = this._getItemId(); 48601 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 48602 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 48603 this.changeOption(attrId, ''); 48604 48605 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 48606 if (!input && this.$el?.querySelector) { 48607 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 48608 } 48609 if (!input && this.$el?.closest) { 48610 const root = this.$el.closest('[data-product-id]') || this.$el; 48611 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 48612 } 48613 if (input) { 48614 input.checked = false;
48615 } 48616 } 48617 }, 48618 get optionIsEnabled() { 48619 const itemId = this._getItemId(); 48620 if (!this.$el || !itemId) return true; 48621 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48622 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 48623 return !!allowedOptions.find(opt => opt.id == itemId); 48624 }, 48625 get isSelected() { 48626 const itemId = this._getItemId(); 48627 if (!this.$el || !itemId) return false; 48628 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48629 return attrId ? (this.selectedValues[attrId] == itemId) : false; 48630 }, 48631 get isSwatchRequired() { 48632 if (!this.$el) return false; 48633 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48634 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 48635 }, 48636 focusedLabel: false, 48637 activeTooltipItem: false, 48638 tooltipPositionElement: false,
48639 setActiveTooltipItem() { 48640 const itemId = this._getItemId(); 48641 if (!this.$el || !itemId) return; 48642 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 48643 this.activeTooltipItem = { 48644 attribute: attrId, 48645 item: itemId, 48646 index: 0 48647 }; 48648 this.tooltipPositionElement = this.$event ? this.$event.target : null; 48649 }, 48650 unsetActiveTooltipItem() { 48651 this.activeTooltipItem = false; 48652 } 48653 }, 48654 confProdPreSelect() 48655 ); 48656 48657 if (result.optionConfig && result.optionConfig.attributes) { 48658 const attributes = result.optionConfig.attributes; 48659 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 48660 let source = attributes; 48661 if (Array.isArray(attributes)) { 48662 source = {}; 48663 attributes.forEach(attr => { 48664 if (attr && attr.id) source[attr.id] = attr; 48665 }); 48666 } 48667 const values = Object.values(source); 48668 const wrapper = Object.assign(values, source); 48669 Object.defineProperty(wrapper, '__amxnotifWrapped', { 48670 value: true, 48671 enumerable: false 48672 }); 48673 result.optionConfig.attributes = wrapper; 48674 } 48675 } 48676 48677 return result; 48678 } 48679 48680 window.addEventListener('alpine:init', () => { 48681 Alpine.data('initConfigurableSwatchOptions_46910', initConfigurableSwatchOptions_46910); 48682 }, { 48683 once: true 48684 }); 48685 </script>
48685 48686 48687 <div x-data="initConfigurableSwatchOptions_46910" x-defer="intersect"> 48688 <div class="pagebuilder-home-hidden"> 48689 48690 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 48691 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 48692 <template x-if="showSwatches"> 48693 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-46910-163" role="radiogroup" aria-label="Einband"> 48694 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 48695 <div :data-option-id="item.id" style="display: contents"> 48696 <div x-id="getSwatchOptionHtmlIdGroup"> 48697 <template x-if="optionIsEnabled"> 48698 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
48698self="unsetActiveTooltipItem"> 48699 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-46910-163"> 48700 <div> 48701 <template x-if="isTextSwatch"> 48702 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 48703 </template> 48704 <template x-if="!optionIsActive(163, item.id)"> 48705 <div> 48706 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 48707 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 48708 </svg> 48709 </div> 48710 </template> 48711 </div> 48712 </label> 48713 </template> 48714</div> </div> 48715 </template> 48716 </div> 48717 </template> 48718 </div> 48719 </div> 48720 </div> 48721 </div> 48722 48723 <div class="meta py-4 pagebuilder-home-hidden"> 48724 <div x-data="initMarketingShortText_46910()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 48725 <!-- Marketing short text --> 48726 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 48727 </div> 48728 48729 <!-- Short description --> 48730 <div class="short-description"> 48731 Die Begriffe »Identität« und »Differenz« gewinnen heute über die Philosophie hinaus in sozialen und politischen Kontexten sowie in kulturwissenschaftlichen Debatten zunehmend an Bedeutung. Doch ... <a href="https://meiner.de/fmv_de/identita-t-differenz-21493" class="underline">mehr</a> 48732 </div> 48733 </div> 48734 48735 <!-- Series --> 48736 <div class="mb-1"> 48737 <span class="sr-only">Reihe:</span> 48738 <a href="https://meiner.de/fmv_de/programm/zeitschriften/zeitschrift-fur-kulturphilosophie"> 48739 <span>Zeitschrift für Kulturphilosophie</span> 48740 </a> 48741 2025/2 </div> 48742 48743 48744 <div class="mb-1"> 48745 <span x-data="initEditionText_46910()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 48746 <!-- Marketing short text --> 48747 <span class="edition-text" x-html="editionText"></span> 2025, 180 Seiten </span> 48748 </div> 48749 48750 </div> 48751 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 48752 48753 <div class="justify-end" x-data="initPriceBox()" @update-prices-46910.window="updatePrice($event.detail);"> 48754 <div class="price-box price-final_price" data-role="priceBox" data-product-id="46910" data-price-box="product-id-46910"><span class="normal-price"> 48755 <span x-data x-id="['product\u002Dprice\u002D46910']" class="price-container price-final_price tax weee"> 48756 <span class="price-label">Ab</span> 48757 <span class="approx-price">ca. </span>
48758 <span :id="$id('product\u002Dprice\u002D46910')" data-price-amount="49.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">49,99 €</span></span> 48759 </span> 48760</span> 48761 48762 48763</div> </div> 48764 48765 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 48766 <div class="open-access-container open-access-container-46910 flex mt-4 ml-auto sm:mt-0 hidden"> 48767 <div class="text-gray-700"> 48768 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 48769 <a href="" target="_blank" class="open-access-external-link m-auto "> 48770 Kostenlos online lesen </a> 48771 </button> 48772 </div> 48773 </div> 48774 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Identität/Differenz" aria-label="In den Warenkorb Identität/Differenz" data-addto="cart"> 48775 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 48776 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 48777</svg> 48778 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 48779 In den Warenkorb </span> 48780 </button> 48781 48782<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(46910)" aria-label="Zur Wunschliste hinzufügen Identität/Differenz" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 48783 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 48784 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 48785</svg> 48786</button> 48787 </div> 48788 </div> 48789 </div> 48790
48790<script> 48791 function initMarketingShortText_46910() { 48792 var marketingShortTextConfig = {}; 48793 if (typeof window.initConfigurableSwatchOptions_46910 === "function") { 48794 var fullConfig = window.initConfigurableSwatchOptions_46910().optionConfig 48795 var marketingShortTextConfig = fullConfig.marketing_short_text; 48796 } 48797 return { 48798 marketingShortText: '', 48799 config: marketingShortTextConfig, 48800 productId: '46910', 48801 getMarketingShortText(detail) { 48802 this.marketingShortText = detail.productIndex ? 48803 this.config[detail.productIndex] : 48804 null; 48805 }, 48806 eventListeners: { 48807 ['@listing-configurable-selection-changed.window'](event) { 48808 if (this.productId == event.detail.productId) { 48809 this.getMarketingShortText(event.detail); 48810 } 48811 48812 } 48813 } 48814 } 48815 } 48816 48817 function initEditionText_46910() { 48818 var editionTextConfig = {}; 48819 if (typeof window.initConfigurableSwatchOptions_46910 === "function") { 48820 var fullConfig = window.initConfigurableSwatchOptions_46910().optionConfig 48821 var editionTextConfig = fullConfig.edition; 48822 } 48823 return { 48824 editionText: '', 48825 config: editionTextConfig, 48826 productId: '46910', 48827 getEditionText(detail) { 48828 this.editionText = detail.productIndex ? 48829 this.config[detail.productIndex] : 48830 null; 48831 }, 48832 eventListeners: { 48833 ['@listing-configurable-selection-changed.window'](event) { 48834 if (this.productId == event.detail.productId) { 48835 this.getEditionText(event.detail); 48836 } 48837 48838 } 48839 } 48840 } 48841 } 48842 </script>
48842 48843 </form> 48844 48845 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/9425/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk15944"> 48846 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="9425"> 48847 <a href="https://meiner.de/fmv_de/hegel-studien-band-42" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 48848 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-9425.window="$el.src = $event.detail" alt="Hegel-Studien Band 42" title="Hegel-Studien Band 42" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787347858_1.jpg" :style="{ 48849 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 48850 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 48851 }"> 48852 </a> 48853 <div class="product-info flex flex-col flex-grow "> 48854 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 48855 <div class="mb-2 text-sm text-gray-500 font-medium"> 48856 <a href="https://meiner.de/fmv_de/person/Ludwig-Siep-3730/" class="mb-2"> 48857 Ludwig Siep (Hrsg.) 48858 </a> 48859 </div> 48860 <a class="product-item-link" href="https://meiner.de/fmv_de/hegel-studien-band-42"> 48861 Hegel-Studien Band 42 </a> 48862 </div> 48863 48864 <div x-data="initEditionText_9425()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 48865 <!-- Marketing short text --> 48866 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 48867 </div> 48868 </div> 48869 48870 <div class="py-1 grid mb-4 "> 48871 48872 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":9425,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":9425,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"7045":"1","46858":"1"},"childProductsAlertStatus":{"7045":"0","46858":"0"},"indexMapping":{"163:8":7045,"163:15":46858},"availabilityMessages":{"7045":"Download sofort verf\u00fcgbar","46858":"Lieferbar in 10-14 Tagen"},"openAccess":{"9425":{"status":0},"7045":{"status":0},"46858":{"status":0}}},"availabilityMessages":{"7045":"Download sofort verf\u00fcgbar","46858":"Lieferbar in 10-14 Tagen"},"openAccess":{"9425":{"status":0},"7045":{"status":0},"46858":{"status":0}}}'> 48873 <template x-if="containerVisible"> 48874 <!-- Popup Trigger --> 48875 <div> 48876 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 48877 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
48878 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 48879 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 48880<title>bell</title></svg> 48881</span> 48882 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 48883 48884 <!-- Popup Modal --> 48885 <template x-if="showModal"> 48886 <template x-teleport=".page-wrapper"> 48887 <div x-cloak class="fixed inset-0 flex items-center justify-center 48888 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 48889 <div class="relative bg-white rounded-lg shadow-xl 48890 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 48891 <div class="p-6"> 48892 <!-- Subscription Form for Popup --> 48893 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 48894 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 48895 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 48896 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 48897 48898 <div class="flex flex-col gap-3"> 48899 <div class="flex-grow grow"> 48900 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 48901 shadow-xs focus:outline-none focus:outline-hidden 48902 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 48903 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 48904 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 48905 </div> 48906 <input type="hidden" name="product_id" :value="currentProductId"> 48907 <input type="hidden" name="type" value="email"> 48908 48909 48910 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 48911 48912 <div class="amxnotif_guest_action"> 48913 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 48914 rounded-md focus:outline-none 48915 focus:outline-hidden focus:ring-2 48916 focus:ring-offset-2 disabled:opacity-50 48917 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 48918 Benachrichtigen </button> 48919 </div> 48920 </div> 48921 48922 <div class="flex items-start pt-2"> 48923 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 48924 text-blue-600 border-gray-300 rounded-sm"> 48925 <label class="amxnotif-stock-gdrp-label cursor-pointer 48926 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 48927 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 48928 </div> 48929 </form> 48930 </div> 48931 48932 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 48933 hover:text-gray-600 transition-colors" aria-label="Schließen"> 48934 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 48935 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 48936<title>x</title></svg> 48937 </button> 48938 </div> 48939 </div> 48940 </template> 48941 </template> 48942 </div> 48943 </template> 48944 </div> 48945 48946<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_9425" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":9425,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"7045":"1","46858":"1"},"childProductsAlertStatus":{"7045":"0","46858":"0"},"indexMapping":"{\u0022163:8\u0022:7045,\u0022163:15\u0022:46858}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":9425,"availabilityMessages":{"7045":"Download sofort verf\u00fcgbar","46858":"Lieferbar in 10-14 Tagen"},"openAccess":{"9425":{"status":0},"7045":{"status":0}
48946,"46858":{"status":0}}}'> 48947 48948 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 48949 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 48950 <span x-html="optionsLabelText"></span> 48951 </p> 48952</div> </div> 48953 48954
48954<script> 48955 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 48956 try { 48957 const attributes = (config && config.attributes) ? config.attributes : null; 48958 if (!attributes) return []; 48959 let attr = null; 48960 if (Array.isArray(attributes)) { 48961 for (let i = 0; i < attributes.length; i++) { 48962 const a = attributes[i]; 48963 if (a && a.id == attrId) { 48964 attr = a; 48965 break; 48966 } 48967 } 48968 } else { 48969 attr = attributes[attrId]; 48970 } 48971 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 48972 } catch (e) { 48973 return []; 48974 } 48975 }; 48976 48977 function initConfigurableSwatchOptions_9425() { 48978 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["46858"]},{"id":"8","label":"PDF","products":["7045"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7045":{"baseOldPrice":{"amount":56.065419560748},"oldPrice":{"amount":59.99},"basePrice":{"amount":56.065419560748},"finalPrice":{"amount":59.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"46858":{"baseOldPrice":{"amount":72.897195261682},"oldPrice":{"amount":78},"basePrice":{"amount":72.897195261682},"finalPrice":{"amount":78},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":56.065419560748},"oldPrice":{"amount":59.99},"basePrice":{"amount":56.065419560748},"finalPrice":{"amount":59.99},"isApproxPrice":null},"productId":"9425","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7045":{"163":"8"},"46858":{"163":"15"}},"salable":{"163":{"8":["7045"],"15":["46858"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"7045":"003461","46858":"004785"},"output":{"7045":"PDF","46858":"Kartoniert"},"original_name":{"7045":"","46858":""},"openaccess_license_link":{"7045":"","46858":""},"openaccess_license_name":{"7045":"","46858":""},"openaccess_external_link":{"7045":"","46858":""},"gpsr_safety_info":{"7045":"","46858":""},"description":{"7045":"<h5>Texte und Dokumente<\/h5>\n<ul><li>Herbert Albrecht (Berlin): <i>Ein neu aufgefundener Brief Hegels an Christian Friedrich Winter (Mohr- und Wintersche Buchhandlung) in Heidelberg vom 3. Februar 1818<\/i><\/li><\/ul>\n<h5>Abhandlungen<\/h5>\n<ul><li>Ludwig Siep (M\u00fcnster): <i>Hegel \u00fcber Moralit\u00e4t und Wirklichkeit. Prolegomena zu einer Auseinandersetzung zwischen Hegel und der Realismusdebatte der modernen Metaethik<\/i><\/li><li>Juha Manninen (Helsinki): <i>Staat und Bildung. Folgen und Folgerungen aus der Hegelschen Rechtsphilosophie in Finnland im Jahre 1830\u20131831<\/i><\/li><li>Dean Moyar (Baltimore, MD): <i>Urteil, Schlu\u00df und Handlung: Hegels logische \u00dcberg\u00e4nge im Argument zur Sittlichkeit<\/i><\/li><li>Axel Hutter (M\u00fcnchen): <i>Hegels Philosophie des Geistes<\/i><\/li><\/ul>\n<h5>Perspektiven der Forschung<\/h5>\n<ul><li>Martin Wendte (T\u00fcbingen): <i>Zu begreifen, was ist. Lage und Aufgabe der Forschung zu Hegels Berliner Religionsphilosophie<\/i><\/li><\/ul>\n<h5>Literaturberichte und Kritik<\/h5>\n<ul><li>Georg Wilhelm Friedrich Hegel: <i>Philosophie der Kunst. Vorlesung von 1826. Georg Wilhelm Friedrich Hegel: Philosophie der Kunst oder \u00c4sthetik. Nach Hegel. Im Sommer 1826. Mitschrift Friedrich Carl Hermann Victor Kehler<\/i> (Nathan Ross, Chicago, IL)<\/li><li>Renato Caputo: <i>Il tragico nel primo Hegel. Tragedia cristiana e destino della modernit\u00e0. [Der Tragiker beim fr\u00fchen Hegel. Christliche Trag\u00f6die und Schicksal der Moderne.]<\/i> (Lea L. Ypi, San Domenico di Fiesole [FI])<\/li><li>Gerhard Hofweber: <i>Skeptizismus als \"die erste Stuffe zur Philosophie\" beim Jenaer Hegel<\/i> (Fabian Kettner, Bochum)<\/li><li>Leonardo di Carlo: <i>Sistema giuridico e interazione sociale in Hegel. Dagli scritti jenesi ai Lineamenti di filosofia del diritto. [System des Rechts und soziale Interaktion bei Hegel. Von den Jenaer Schriften zu den Grundlinien der Philosophie des Rechts.]<\/i> (Alfredo Berg\u00e9s, Bochum)<\/li><li>Thomas Auinger: <i>
48978Das absolute Wissen als Ort der Ver-Einigung. Zur absoluten Wissensdimension des Gewissens und der Religion in Hegels Ph\u00e4nomenologie des Geistes<\/i> (Kurt Appel, Wien)<\/li><li>Stephen Houlgate: <i>The Opening of Hegel's Logic. From Being to Infinity<\/i> (Karin de Boer, Groningen)<\/li><li>Tommaso Pierini: <i>Theorie der Freiheit. Der Begriff des Zwecks in Hegels Wissenschaft der Logik<\/i> (Friedrike Schick, T\u00fcbingen)<\/li><li>Renate Wahsner: <i>Der Widerstreit von Mechanismus und Organismus. Kant und Hegel im Widerstreit um das neuzeitliche Denkprinzip und den Status der Naturwissenschaft<\/i> (Wolfgang Bonsiepen, Bochum)<\/li><li>Ekkehart Schaffer: <i>Die pythagoreische Tradition. Studien zu Platon, Kepler und Hegel<\/i> (Wolfgang Bonsiepen, Bochum)<\/li><li>Keiji Sayama: <i>Die Geburt der b\u00fcrgerlichen Gesellschaft. Zur Entstehung von Hegels Sozialphilosophie<\/i> (David P. Schweikard, K\u00f6ln)<\/li><li>Robert M. Wallace: <i>Hegel's Philosophy of Reality, Freedom, and God<\/i> (Attila Karakus, M\u00fcnster)<\/li><li>Ursula Franke \/ Annemarie Gethmann-Siefert (Hgg.): <i>Kulturpolitik und Kunstgeschichte. Perspektiven der Hegelschen \u00c4sthetik<\/i> (Dimitri Liebsch, Bochum)<\/li><li>Francesca Michelini \/ Roberto Morani (Eds.): <i>Hegel e il Nichilismo. [Hegel und der Nihilismus.]<\/i> (Pierluigi Valenza, Roma)<\/li><li>Tobias Blanke: <i>Das B\u00f6se in der politischen Theorie. Die Furcht vor der Freiheit bei Kant, Hegel und vielen anderen<\/i> (Britta Caspers, Bochum)<\/li><li>Marco Haase: <i>Grundnorm \u2013 Gemeinwille \u2013 Geist. Der Grund des Rechts nach Kelsen, Kant und Hegel<\/i> (David P. Schweikard, K\u00f6ln)<\/li><li>Rainer Rotermundt: <i>Konfrontationen. Hegel, Heidegger, L\u00e9vinas. Ein Essay<\/i> (Fabian Kettner, Bochum)<\/li><li>Leo Lugarini: <i>Hegel e Heidegger. Divergenze e consonanze. [Hegel und Heidegger. Unterschiede und Gemeinsamkeiten.]<\/i> (Gabriella Baptist, Cagliari)<\/li><li>Luca Illetterati \/ Antonio Moretto (Eds.): <i>Hegel, Heidegger e la questione della romanitas. Atti del convegno Verona, 16\u201317 maggio 2003. [Hegel, Heidegger und die Frage nach der romanitas. Kongre\u00df-Akten Verona, 16.\u201317. Mai 2003.]<\/i> (Corrado Bertani, Torino)<\/li><li>Marcella D'Abbiero (Ed.): <i>Desiderio e filosofia. Descartes Hegel Freud Heidegger Sartre Koj\u00e8ve Bataille Caillois Lacan Derrida. [Begierde und Philosophie.]<\/i> (Marcello Monaldi, Trieste)<\/li><li>Eduard Gans: <i>Naturrecht und Universalrechtsgeschichte. Vorlesungen nach G. W. F. Hegel<\/i><\/li><\/ul>","46858":"<h5>Texte und Dokumente<\/h5>\n<ul><li>Herbert Albrecht (Berlin): <i>Ein neu aufgefundener Brief Hegels an Christian Friedrich Winter (Mohr- und Wintersche Buchhandlung) in Heidelberg vom 3. Februar 1818<\/i><\/li><\/ul>\n<h5>Abhandlungen<\/h5>\n<ul><li>Ludwig Siep (M\u00fcnster): <i>Hegel \u00fcber Moralit\u00e4t und Wirklichkeit. Prolegomena zu einer Auseinandersetzung zwischen Hegel und der Realismusdebatte der modernen Metaethik<\/i><\/li><li>Juha Manninen (Helsinki): <i>Staat und Bildung. Folgen und Folgerungen aus der Hegelschen Rechtsphilosophie in Finnland im Jahre 1830\u20131831<\/i><\/li><li>Dean Moyar (Baltimore, MD): <i>Urteil, Schlu\u00df und Handlung: Hegels logische \u00dcberg\u00e4nge im Argument zur Sittlichkeit<\/i><\/li><li>Axel Hutter (M\u00fcnchen): <i>Hegels Philosophie des Geistes<\/i><\/li><\/ul>\n<h5>Perspektiven der Forschung<\/h5>\n<ul><li>Martin Wendte (T\u00fcbingen): <i>Zu begreifen, was ist. Lage und Aufgabe der Forschung zu Hegels Berliner Religionsphilosophie<\/i><\/li><\/ul>\n<h5>Literaturberichte und Kritik<\/h5>\n<ul><li>Georg Wilhelm Friedrich Hegel: <i>Philosophie der Kunst. Vorlesung von 1826. Georg Wilhelm Friedrich Hegel: Philosophie der Kunst oder \u00c4sthetik. Nach Hegel. Im Sommer 1826. Mitschrift Friedrich Carl Hermann Victor Kehler<\/i> (Nathan Ross, Chicago, IL)<\/li><li>Renato Caputo: <i>Il tragico nel primo Hegel. Tragedia cristiana e destino della modernit\u00e0. [Der Tragiker beim fr\u00fchen Hegel. Christliche Trag\u00f6die und Schicksal der Moderne.]<\/i> (Lea L. Ypi, San Domenico di Fiesole [FI])<\/li><li>Gerhard Hofweber: <i>Skeptizismus als \"die erste Stuffe zur Philosophie\" beim Jenaer Hegel<\/i> (Fabian Kettner, Bochum)<\/li><li>Leonardo di Carlo: <i>Sistema giuridico e interazione sociale in Hegel. Dagli scritti jenesi ai Lineamenti di filosofia del diritto. [System des Rechts und soziale Interaktion bei Hegel. Von den Jenaer Schriften zu den Grundlinien der Philosophie des Rechts.]<\/i> (Alfredo Berg\u00e9s, Bochum)<\/li><li>Thomas Auinger: <i>
48978Das absolute Wissen als Ort der Ver-Einigung. Zur absoluten Wissensdimension des Gewissens und der Religion in Hegels Ph\u00e4nomenologie des Geistes<\/i> (Kurt Appel, Wien)<\/li><li>Stephen Houlgate: <i>The Opening of Hegel's Logic. From Being to Infinity<\/i> (Karin de Boer, Groningen)<\/li><li>Tommaso Pierini: <i>Theorie der Freiheit. Der Begriff des Zwecks in Hegels Wissenschaft der Logik<\/i> (Friedrike Schick, T\u00fcbingen)<\/li><li>Renate Wahsner: <i>Der Widerstreit von Mechanismus und Organismus. Kant und Hegel im Widerstreit um das neuzeitliche Denkprinzip und den Status der Naturwissenschaft<\/i> (Wolfgang Bonsiepen, Bochum)<\/li><li>Ekkehart Schaffer: <i>Die pythagoreische Tradition. Studien zu Platon, Kepler und Hegel<\/i> (Wolfgang Bonsiepen, Bochum)<\/li><li>Keiji Sayama: <i>Die Geburt der b\u00fcrgerlichen Gesellschaft. Zur Entstehung von Hegels Sozialphilosophie<\/i> (David P. Schweikard, K\u00f6ln)<\/li><li>Robert M. Wallace: <i>Hegel's Philosophy of Reality, Freedom, and God<\/i> (Attila Karakus, M\u00fcnster)<\/li><li>Ursula Franke \/ Annemarie Gethmann-Siefert (Hgg.): <i>Kulturpolitik und Kunstgeschichte. Perspektiven der Hegelschen \u00c4sthetik<\/i> (Dimitri Liebsch, Bochum)<\/li><li>Francesca Michelini \/ Roberto Morani (Eds.): <i>Hegel e il Nichilismo. [Hegel und der Nihilismus.]<\/i> (Pierluigi Valenza, Roma)<\/li><li>Tobias Blanke: <i>Das B\u00f6se in der politischen Theorie. Die Furcht vor der Freiheit bei Kant, Hegel und vielen anderen<\/i> (Britta Caspers, Bochum)<\/li><li>Marco Haase: <i>Grundnorm \u2013 Gemeinwille \u2013 Geist. Der Grund des Rechts nach Kelsen, Kant und Hegel<\/i> (David P. Schweikard, K\u00f6ln)<\/li><li>Rainer Rotermundt: <i>Konfrontationen. Hegel, Heidegger, L\u00e9vinas. Ein Essay<\/i> (Fabian Kettner, Bochum)<\/li><li>Leo Lugarini: <i>Hegel e Heidegger. Divergenze e consonanze. [Hegel und Heidegger. Unterschiede und Gemeinsamkeiten.]<\/i> (Gabriella Baptist, Cagliari)<\/li><li>Luca Illetterati \/ Antonio Moretto (Eds.): <i>Hegel, Heidegger e la questione della romanitas. Atti del convegno Verona, 16\u201317 maggio 2003. [Hegel, Heidegger und die Frage nach der romanitas. Kongre\u00df-Akten Verona, 16.\u201317. Mai 2003.]<\/i> (Corrado Bertani, Torino)<\/li><li>Marcella D'Abbiero (Ed.): <i>Desiderio e filosofia. Descartes Hegel Freud Heidegger Sartre Koj\u00e8ve Bataille Caillois Lacan Derrida. [Begierde und Philosophie.]<\/i> (Marcello Monaldi, Trieste)<\/li><li>Eduard Gans: <i>Naturrecht und Universalrechtsgeschichte. Vorlesungen nach G. W. F. Hegel<\/i><\/li><\/ul>"},"doi":{"7045":"10.28937\/978-3-7873-3461-2","46858":""},"isbn":{"7045":"978-3-7873-3461-2","46858":"978-3-7873-4785-8"},"marketing_short_text":{"7045":"","46858":""},"recension_text":{"7045":"","46858":""},"language":{"7045":"","46858":""},"cover":{"7045":"","46858":"Kartoniert"},"pages":{"7045":"272 Seiten","46858":""},"edition":{"7045":"Unver\u00e4ndertes eBook der 1. Auflage von 2007","46858":"Unver\u00e4nderter Print-on-Demand-Nachdruck der 1. Auflage 2008"},"pod":{"7045":"Nein","46858":"Ja"},"copyright_year":{"7045":"","46858":""},"vlb_tix_link":{"7045":"","46858":"https:\/\/neu.vlbtix.de\/products\/9783787347858?type=gtin"},"defaultValues":{"163":"15"}}; 48979 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 48980 48981 if (typeof window.amxnotif_wrap_attributes === 'function') { 48982 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 48983 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 48984 } 48985 48986 const configurableOptionsComponent = initConfigurableOptions( 48987 '9425', 48988 config 48989 ); 48990 const swatchOptionsComponent = initSwatchOptions( 48991 swatchConfig 48992 ); 48993 48994 // DWS - Configurable product preselect start 48995 const confProdPreSelect = () => { 48996 return { 48997 preselectQuerystringItems() { 48998 var data = {"id":"46858","output":"15"}; 48999 const urlQueryParams = new URLSearchParams(window.location.search); 49000 49001 this.$nextTick(() => { 49002 setTimeout(() => { 49003 const rootEl = this.$root || this.$el; 49004 if (!rootEl) return; 49005 49006 const applySelection = (attrCode, attrValue) => { 49007 if (attrValue === undefined || attrValue === null || attrValue === '') return; 49008 49009 const attributes = Object.values(this.optionConfig.attributes || {}); 49010 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 49011 49012 if (targetAttr) { 49013 const attrId = String(targetAttr.id); 49014 const optionVal = String(attrValue); 49015 49016 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 49017 49018 if (inputEl) { 49019 inputEl.click(); 49020 inputEl.dispatchEvent(new Event('change', { 49021 bubbles: true 49022 })); 49023 } else { 49024 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 49025 if (selectEl) { 49026 selectEl.value = optionVal; 49027 selectEl.dispatchEvent(new Event('change', { 49028 bubbles: true 49029 })); 49030 } 49031 } 49032 49033 this.changeOption(attrId, optionVal, false); 49034 } 49035 }; 49036 49037 if (data && typeof data === 'object') {
49038 Object.keys(data).forEach(key => applySelection(key, data[key])); 49039 } 49040 49041 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 49042 if (attribute && attribute.code) { 49043 let optionValue = urlQueryParams.get(attribute.code); 49044 if (optionValue) { 49045 let optionId = false; 49046 const attributes = Object.values(this.optionConfig.attributes || {}); 49047 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 49048 49049 let found = false; 49050 Object.values(targetAttr.options).map(option => { 49051 if (found === false && option.label === optionValue) { 49052 optionId = option.id; 49053 found = true; 49054 } 49055 }); 49056 49057 const attrId = String(targetAttr.id); 49058 let optionVal = String(optionValue); 49059 if (found) { 49060 optionVal = String(optionId); 49061 } 49062 49063 applySelection(attribute.code, optionVal); 49064 } 49065 } 49066 }); 49067 }, 100); 49068 }); 49069 } 49070 } 49071 }; 49072 // DWS - Configurable product preselect end 49073 49074 const result = Object.assign( 49075 configurableOptionsComponent, 49076 swatchOptionsComponent, { 49077 productId: '9425', 49078 productIndex: 0, 49079 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 49080 showSwatches: false, 49081 precalcOptions: {}, 49082 originalInit: configurableOptionsComponent.init, 49083 init() { 49084 try { 49085 this.precalcOptions = {}; 49086 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 49087 this.preselectQuerystringItems(); 49088 if (Array.isArray(attrSource)) { 49089 attrSource.forEach(attr => { 49090 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 49091 }); 49092 } else if (attrSource && typeof attrSource === 'object') { 49093 Object.keys(attrSource).forEach(id => { 49094 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 49095 }); 49096 } 49097 } catch (e) { 49098 console.error('Pre-calc error:', e); 49099 } 49100 49101 if (typeof this.originalInit === 'function') { 49102 this.originalInit(); 49103 } 49104 49105 try { 49106 this.initShowSwatchesIntersect(); 49107 } catch (e) { 49108 console.error('intersect error:', e); 49109 } 49110 }, 49111 49112 updateGallery() { 49113 if (!this.productIndex) return; 49114 49115 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 49116 method: 'GET', 49117 headers: { 49118 'Content-Type': 'application/json', 49119 'X-Requested-With': 'XMLHttpRequest' 49120 } 49121 }) 49122 .then(response => response.json()) 49123 .then(data => { 49124 if (data && data.medium) { 49125 window.dispatchEvent(new CustomEvent("update-gallery-9425", { 49126 detail: data.medium 49127 })); 49128 } 49129 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 49130 }, 49131 49132 49133 initShowSwatchesIntersect() { 49134 const observer = new IntersectionObserver(entries => { 49135 if (entries[0].isIntersecting) { 49136 this.showSwatches = true; 49137 observer.disconnect(); 49138 } 49139 }, { 49140 rootMargin: '512px' 49141 }); 49142 observer.observe(this.$el); 49143 }, 49144 getOptions(attrId) { 49145 return this.precalcOptions[attrId] || []; 49146 }, 49147 getOptionsByAttrId() { 49148 return this.getOptions(this.$el.dataset.attributeId); 49149 }, 49150 _getItemId() { 49151 if (this.item && this.item.id) return this.item.id; 49152 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 49153 }, 49154 getSwatchOptionHtmlId() { 49155 const itemId = this._getItemId(); 49156 return itemId ? this.$id(`attribute-option-9425-${itemId}`) : ''; 49157 }, 49158 getSwatchOptionHtmlIdGroup() { 49159 const itemId = this._getItemId(); 49160 return itemId ? [`attribute-option-9425-${itemId}`] : []; 49161 }, 49162 getAttributeSwatchData(attributeId) { 49163 const data = Object.assign({}, this.swatchConfig[attributeId]); 49164 if (data['additional_data']) { 49165 try { 49166 data['details'] = JSON.parse(data['additional_data']); 49167 } catch (e) { 49168 data['details'] = {}; 49169 } 49170 } 49171 return data; 49172 }, 49173 getSwatchType(attributeId, optionId) { 49174 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 49175 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 49176 } 49177 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 49178 this.swatchConfig[attributeId].details.swatch_input_type : 49179 "empty"; 49180 if (type === 'visual') { 49181 const config = this.swatchConfig[attributeId]; 49182 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 49183 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 49184 } 49185 // Fallback to first option type 49186 for (const oId in config) { 49187 if (config[oId] && typeof config[oId].type !== 'undefined') { 49188 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 49189 } 49190 } 49191 } 49192 return type; 49193 }, 49194 mapSwatchTypeNumberToTypeCode(type) { 49195 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 49196 }, 49197 isTextSwatch() { 49198 const itemId = this._getItemId(); 49199 if (!this.$el || !itemId) return false;
49200 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49201 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 49202 }, 49203 49204 getSwatchText() { 49205 const itemId = this._getItemId(); 49206 if (this.item) return this.item.label || ''; 49207 if (!this.$el || !itemId) return ''; 49208 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49209 const options = attrId ? this.getOptions(attrId) : []; 49210 const opt = options.find(o => o.id == itemId); 49211 return opt ? opt.label : ''; 49212 }, 49213 getSwatchBackgroundStyle() { 49214 const itemId = this._getItemId(); 49215 if (!this.$el || !itemId) return ''; 49216 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49217 if (!attrId) return ''; 49218 const type = this.getSwatchType(attrId, itemId); 49219 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 49220 this.swatchConfig[attrId][itemId] : 49221 null; 49222 if (!swatchData) return ''; 49223 if (type === "color") return 'background-color:' + swatchData.value; 49224 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 49225 return ''; 49226 }, 49227 swatchOptionClasses() { 49228 const itemId = this._getItemId(); 49229 if (!this.$el || !itemId) return {}; 49230 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49231 return { 49232 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 49233 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 49234 'w-6 h-6': !this.isTextSwatch() 49235 } 49236 }, 49237 49238 onFocusSwatchItem() { 49239 const itemId = this._getItemId(); 49240 if (itemId) this.focusedLabel = itemId; 49241 }, 49242 onChangeOption() { 49243 const itemId = this._getItemId(); 49244 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 49245 if (attrId && itemId) this.changeOption(attrId, itemId); 49246 }, 49247 changeOption(attributeId, value) { 49248 if (value === '') { 49249 return; 49250 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 49251 } else { 49252 this.selectedValues[attributeId] = value; 49253 } 49254 49255 this.findSimpleIndex(); 49256 this.findAllowedAttributeOptions(); 49257 this.updatePrices(); 49258 this.updateGallery(); 49259 49260 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 49261 this.findProductIdsForPartialSelection(this.selectedValues) : []; 49262 49263 const eventDetail = { 49264 productId: this.productId, 49265 optionId: attributeId, 49266 value: value, 49267 productIndex: this.productIndex || 0, 49268 selectedValues: this.selectedValues, 49269 candidates: candidates, 49270 sourceElement: this.$el 49271 }; 49272 49273 // Dispatch for Amasty 49274 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 49275 detail: eventDetail 49276 })); 49277 49278 // Dispatch for Hyva listing 49279 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 49280 detail: eventDetail 49281 })); 49282 }, 49283 49284 49285 clearOptionIfActive() { 49286 const itemId = this._getItemId(); 49287 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 49288 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 49289 this.changeOption(attrId, ''); 49290 49291 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 49292 if (!input && this.$el?.querySelector) { 49293 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 49294 } 49295 if (!input && this.$el?.closest) { 49296 const root = this.$el.closest('[data-product-id]') || this.$el; 49297 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 49298 } 49299 if (input) { 49300 input.checked = false;
49301 } 49302 } 49303 }, 49304 get optionIsEnabled() { 49305 const itemId = this._getItemId(); 49306 if (!this.$el || !itemId) return true; 49307 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49308 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 49309 return !!allowedOptions.find(opt => opt.id == itemId); 49310 }, 49311 get isSelected() { 49312 const itemId = this._getItemId(); 49313 if (!this.$el || !itemId) return false; 49314 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49315 return attrId ? (this.selectedValues[attrId] == itemId) : false; 49316 }, 49317 get isSwatchRequired() { 49318 if (!this.$el) return false; 49319 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49320 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 49321 }, 49322 focusedLabel: false, 49323 activeTooltipItem: false, 49324 tooltipPositionElement: false,
49325 setActiveTooltipItem() { 49326 const itemId = this._getItemId(); 49327 if (!this.$el || !itemId) return; 49328 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49329 this.activeTooltipItem = { 49330 attribute: attrId, 49331 item: itemId, 49332 index: 0 49333 }; 49334 this.tooltipPositionElement = this.$event ? this.$event.target : null; 49335 }, 49336 unsetActiveTooltipItem() { 49337 this.activeTooltipItem = false; 49338 } 49339 }, 49340 confProdPreSelect() 49341 ); 49342 49343 if (result.optionConfig && result.optionConfig.attributes) { 49344 const attributes = result.optionConfig.attributes; 49345 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 49346 let source = attributes; 49347 if (Array.isArray(attributes)) { 49348 source = {}; 49349 attributes.forEach(attr => { 49350 if (attr && attr.id) source[attr.id] = attr; 49351 }); 49352 } 49353 const values = Object.values(source); 49354 const wrapper = Object.assign(values, source); 49355 Object.defineProperty(wrapper, '__amxnotifWrapped', { 49356 value: true, 49357 enumerable: false 49358 }); 49359 result.optionConfig.attributes = wrapper; 49360 } 49361 } 49362 49363 return result; 49364 } 49365 49366 window.addEventListener('alpine:init', () => { 49367 Alpine.data('initConfigurableSwatchOptions_9425', initConfigurableSwatchOptions_9425); 49368 }, { 49369 once: true 49370 }); 49371 </script>
49371 49372 49373 <div x-data="initConfigurableSwatchOptions_9425" x-defer="intersect"> 49374 <div class="pagebuilder-home-hidden"> 49375 49376 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 49377 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 49378 <template x-if="showSwatches"> 49379 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-9425-163" role="radiogroup" aria-label="Einband"> 49380 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 49381 <div :data-option-id="item.id" style="display: contents"> 49382 <div x-id="getSwatchOptionHtmlIdGroup"> 49383 <template x-if="optionIsEnabled"> 49384 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
49384self="unsetActiveTooltipItem"> 49385 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-9425-163"> 49386 <div> 49387 <template x-if="isTextSwatch"> 49388 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 49389 </template> 49390 <template x-if="!optionIsActive(163, item.id)"> 49391 <div> 49392 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 49393 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 49394 </svg> 49395 </div> 49396 </template> 49397 </div> 49398 </label> 49399 </template> 49400</div> </div> 49401 </template> 49402 </div> 49403 </template> 49404 </div> 49405 </div> 49406 </div> 49407 </div> 49408 49409 <div class="meta py-4 pagebuilder-home-hidden"> 49410 <div x-data="initMarketingShortText_9425()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 49411 <!-- Marketing short text --> 49412 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 49413 </div> 49414 49415 <!-- Short description --> 49416 </div> 49417 49418 <!-- Series --> 49419 <div class="mb-1"> 49420 <span class="sr-only">Reihe:</span> 49421 <a href="https://meiner.de/fmv_de/programm/zeitschriften/hegel-studien"> 49422 <span>Hegel-Studien</span> 49423 </a> 49424 42 </div> 49425 49426 49427 <div class="mb-1"> 49428 <span x-data="initEditionText_9425()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 49429 <!-- Marketing short text --> 49430 <span class="edition-text" x-html="editionText"></span> 2007 </span> 49431 </div> 49432 49433 </div> 49434 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 49435 49436 <div class="justify-end" x-data="initPriceBox()" @update-prices-9425.window="updatePrice($event.detail);"> 49437 <div class="price-box price-final_price" data-role="priceBox" data-product-id="9425" data-price-box="product-id-9425"><span class="normal-price"> 49438 <span x-data x-id="['product\u002Dprice\u002D9425']" class="price-container price-final_price tax weee"> 49439 <span class="price-label">Ab</span> 49440 <span class="approx-price">ca. </span> 49441 <span :id="$id('product\u002Dprice\u002D9425')" data-price-amount="59.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">59,99 €</span></span> 49442 </span> 49443</span> 49444 49445 49446</div> </div> 49447 49448 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 49449 <div class="open-access-container open-access-container-9425 flex mt-4 ml-auto sm:mt-0 hidden"> 49450 <div class="text-gray-700"> 49451 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 49452 <a href="" target="_blank" class="open-access-external-link m-auto "> 49453 Kostenlos online lesen </a> 49454 </button> 49455 </div> 49456 </div> 49457 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Hegel-Studien Band 42" aria-label="In den Warenkorb Hegel-Studien Band 42" data-addto="cart"> 49458 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 49459 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
494590 014 0z"></path> 49460</svg> 49461 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 49462 In den Warenkorb </span> 49463 </button> 49464 49465<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(9425)" aria-label="Zur Wunschliste hinzufügen Hegel-Studien Band 42" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 49466 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 49467 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 49468</svg> 49469</button> 49470 </div> 49471 </div> 49472 </div> 49473
49473<script> 49474 function initMarketingShortText_9425() { 49475 var marketingShortTextConfig = {}; 49476 if (typeof window.initConfigurableSwatchOptions_9425 === "function") { 49477 var fullConfig = window.initConfigurableSwatchOptions_9425().optionConfig 49478 var marketingShortTextConfig = fullConfig.marketing_short_text; 49479 } 49480 return { 49481 marketingShortText: '', 49482 config: marketingShortTextConfig, 49483 productId: '9425', 49484 getMarketingShortText(detail) { 49485 this.marketingShortText = detail.productIndex ? 49486 this.config[detail.productIndex] : 49487 null; 49488 }, 49489 eventListeners: { 49490 ['@listing-configurable-selection-changed.window'](event) { 49491 if (this.productId == event.detail.productId) { 49492 this.getMarketingShortText(event.detail); 49493 } 49494 49495 } 49496 } 49497 } 49498 } 49499 49500 function initEditionText_9425() { 49501 var editionTextConfig = {}; 49502 if (typeof window.initConfigurableSwatchOptions_9425 === "function") { 49503 var fullConfig = window.initConfigurableSwatchOptions_9425().optionConfig 49504 var editionTextConfig = fullConfig.edition; 49505 } 49506 return { 49507 editionText: '', 49508 config: editionTextConfig, 49509 productId: '9425', 49510 getEditionText(detail) { 49511 this.editionText = detail.productIndex ? 49512 this.config[detail.productIndex] : 49513 null; 49514 }, 49515 eventListeners: { 49516 ['@listing-configurable-selection-changed.window'](event) { 49517 if (this.productId == event.detail.productId) { 49518 this.getEditionText(event.detail); 49519 } 49520 49521 } 49522 } 49523 } 49524 } 49525 </script>
49525 49526 </form> 49527 </div> 49528 49529<div class="carousel-nav flex items-center justify-center flex-1 p-4"> 49530 <button aria-label="Zurück" title="Zurück" class="glider-prev w-8 h-8 mr-1 text-black rounded-full outline-none focus:outline-none hidden"> 49531 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 49532 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 49533</svg> 49534 </button> 49535 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 49536 <button aria-label="Weiter" title="Weiter" class="glider-next w-8 h-8 ml-1 text-black rounded-full outline-none focus:outline-none hidden"> 49537 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 49538 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 49539</svg> 49540 </button> 49541</div> 49542 </div> 49543</div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="NIHBCNX"><h3 data-content-type="heading" data-appearance="default" data-element="main">Im Set verfügbar</h3><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="false" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"> <div class="glider-contain product-items widget-product-carousel"> 49544 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 49545 49546 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/44481/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk20119"> 49547 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="44481"> 49548 <a href="https://meiner.de/fmv_de/radikalita-t-set-band-1-2-20119" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 49549 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-44481.window="$el.src = $event.detail" alt="Radikalität (Set Band 1 &amp; 2)" title="Radikalität (Set Band 1 &amp; 2)" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787350216_1.jpg" :style="{ 49550 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 49551 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 49552 }"> 49553 </a> 49554 <div class="product-info flex flex-col flex-grow "> 49555 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 49556 <div class="mb-2 text-sm text-gray-500 font-medium"> 49557 <a href="https://meiner.de/fmv_de/person/Mirjam-Schaub-11674/" class="mb-2"> 49558 Mirjam Schaub </a> 49559 </div> 49560 <a class="product-item-link" href="https://meiner.de/fmv_de/radikalita-t-set-band-1-2-20119"> 49561 Radikalität (Set Band 1 & 2) </a> 49562 </div> 49563 49564 <div x-data="initEditionText_44481()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 49565 <!-- Marketing short text --> 49566 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 49567 </div> 49568 </div> 49569 49570 <div class="py-1 grid mb-4 "> 49571 49572 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":44481,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":44481,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"43253":"1"},"childProductsAlertStatus":{"43253":"0"},"indexMapping":{"163:11":43253},"availabilityMessages":{"43253":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"44481":{"status":0},"43253":{"status":0}}},"availabilityMessages":{"43253":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"44481":{"status":0},"43253":{"status":0}}}'> 49573 <template x-if="containerVisible"> 49574 <!-- Popup Trigger --> 49575 <div> 49576 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 49577 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
49578 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 49579 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 49580<title>bell</title></svg> 49581</span> 49582 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 49583 49584 <!-- Popup Modal --> 49585 <template x-if="showModal"> 49586 <template x-teleport=".page-wrapper"> 49587 <div x-cloak class="fixed inset-0 flex items-center justify-center 49588 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 49589 <div class="relative bg-white rounded-lg shadow-xl 49590 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 49591 <div class="p-6"> 49592 <!-- Subscription Form for Popup --> 49593 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 49594 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 49595 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 49596 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 49597 49598 <div class="flex flex-col gap-3"> 49599 <div class="flex-grow grow"> 49600 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 49601 shadow-xs focus:outline-none focus:outline-hidden 49602 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 49603 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 49604 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 49605 </div> 49606 <input type="hidden" name="product_id" :value="currentProductId"> 49607 <input type="hidden" name="type" value="email"> 49608 49609 49610 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 49611 49612 <div class="amxnotif_guest_action"> 49613 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 49614 rounded-md focus:outline-none 49615 focus:outline-hidden focus:ring-2 49616 focus:ring-offset-2 disabled:opacity-50 49617 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 49618 Benachrichtigen </button> 49619 </div> 49620 </div> 49621 49622 <div class="flex items-start pt-2"> 49623 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 49624 text-blue-600 border-gray-300 rounded-sm"> 49625 <label class="amxnotif-stock-gdrp-label cursor-pointer 49626 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 49627 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 49628 </div> 49629 </form> 49630 </div> 49631 49632 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 49633 hover:text-gray-600 transition-colors" aria-label="Schließen"> 49634 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 49635 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 49636<title>x</title></svg> 49637 </button> 49638 </div> 49639 </div> 49640 </template> 49641 </template> 49642 </div> 49643 </template> 49644 </div> 49645 49646<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_44481" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":44481,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"43253":"1"},"childProductsAlertStatus":{"43253":"0"},"indexMapping":"{\u0022163:11\u0022:43253}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":44481,"availabilityMessages":{"43253":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"44481":{"status":0},"43253":{"status":0}}}'> 49647 49648 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
49649 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 49650 <span x-html="optionsLabelText"></span> 49651 </p> 49652</div> </div> 49653 49654
49654<script> 49655 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 49656 try { 49657 const attributes = (config && config.attributes) ? config.attributes : null; 49658 if (!attributes) return []; 49659 let attr = null; 49660 if (Array.isArray(attributes)) { 49661 for (let i = 0; i < attributes.length; i++) { 49662 const a = attributes[i]; 49663 if (a && a.id == attrId) { 49664 attr = a; 49665 break; 49666 } 49667 } 49668 } else { 49669 attr = attributes[attrId]; 49670 } 49671 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 49672 } catch (e) { 49673 return []; 49674 } 49675 }; 49676 49677 function initConfigurableSwatchOptions_44481() { 49678 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"11","label":"Gebunden","products":["43253"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"43253":{"baseOldPrice":{"amount":87.85046628972},"oldPrice":{"amount":94},"basePrice":{"amount":87.85046628972},"finalPrice":{"amount":94},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":87.85046628972},"oldPrice":{"amount":94},"basePrice":{"amount":78.991595638655},"finalPrice":{"amount":94},"isApproxPrice":null},"productId":"44481","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"43253":{"163":"11"}},"salable":{"163":{"11":["43253"]}},"canDisplayShowOutOfStockStatus":true,"preSelectedGallery":[],"channel":"website","salesChannelCode":"fmv","sku":{"43253":"005021"},"output":{"43253":"Gebunden"},"original_name":{"43253":""},"openaccess_license_link":{"43253":""},"openaccess_license_name":{"43253":""},"openaccess_external_link":{"43253":""},"gpsr_safety_info":{"43253":""},"description":{"43253":"Schillernd und fremd, l\u00e4sst sich Radikalit\u00e4t zu allen Zeiten und in allen Kulturen mit ihrem Hang zum Unbedingten beobachten. Fast immer wirkt sie anst\u00f6\u00dfig und besch\u00e4mend, wenn auch in Philosophie und Kunst seltener als in Religion, Politik, Gesellschaft. Attraktiv bleibt sie, weil sie etwas Essentielles verspricht: die Schlie\u00dfung des mitunter feinen Risses zwischen Theorie und Praxis, als Versprechen der eigenen Unerpressbarkeit.<br\/><br\/>Diesem Riss und seinen unerh\u00f6rten Auswirkungen geht der erste Band von Mirjam Schaubs gro\u00dfem kulturphilosophischem Entwurf nach. Das Buch entf\u00fchrt in die griechische Antike, als ein Theoretiker noch ein fahrender Kulturbotschafter im Mittelmeerraum und eben kein Philosoph ist. Es fragt nach dem Selbstmord des Sokrates und warum dessen Radikalit\u00e4t zugleich eine Wunde schl\u00e4gt, die Aristoteles meint heilen zu m\u00fcssen. Um Nachahmung zu unterbinden und zugleich der Philosophie eine Zukunft zu er\u00f6ffnen, erfindet Aristoteles die Theorie-Praxis-L\u00fccke, indem er Idee und Tat ein St\u00fcck weit auseinanderr\u00fcckt. Diogenes von Sinope aber rebelliert mit drastischen Mitteln gegen diesen heilsamen Schachzug. Er stiftet soziale Unruhe, sorgt f\u00fcr helle Emp\u00f6rung, indem er hedonistische wie asketische Praktiken in aller \u00d6ffentlichkeit propagiert. Unf\u00e4hig, dieses grelle \u203aUnd\u2039 aus Askese und Hedonismus auszuhalten, zersplittert das radikale, kynische Erbe und teilt sich, folgt man Michel Foucault, auf in Karneval, M\u00f6nchtum und Kunst. Diesem Vorschlag geht das Buch nach. In Venedig er\u00f6ffnet sich mit der ersten europ\u00e4ischen Pest ab 1348 der Gebrauch einer anonymisierenden Maske: Wer seine Komplizen nicht kennt, kann niemanden verraten. Eine solch selbstironische \u203aTeilzeitradikalit\u00e4t\u2039 setzt auf Selbstdistanzierung, unpers\u00f6nliche Formen der Interaktion und auf ein Vertrauen, das absichtlich blind ist.<br\/><br\/>Der zweite Band bricht mit der Vorstellung, Popul\u00e4rkultur und Radikalit\u00e4t seien Gegens\u00e4tze. Sp\u00e4testens mit Jeremy Benthams \u203aAuto-Icon\u2039 (1832), dem humanoiden Artefakt, das bis heute im University College of London sitzt, sp\u00e4ter bei Max Stirner, der Bewegung um 1968 und bei Marina Abramovi\u0107 verbinden sich Radikalit\u00e4t und Popul\u00e4rkultur und stiften eine radikal neue Form von Egalit\u00e4t. <br\/><br\/>Das schl\u00e4gt sich nieder in einem ubiquit\u00e4ren Gebrauch, der bislang kaum erforscht ist. Dieser queere und unorthodoxe Gebrauch des eigenen K\u00f6rpers und Lebens l\u00e4sst sich weder als Handlung noch als Mittel-Zweck-Relation, noch als Nutzenkalk\u00fcl beschreiben. Sp\u00e4testens mit der Konjunktur von Krypto-W\u00e4hrungen ger\u00e4t er zum radikalen Angelpunkt, um das Denken in Besitzkategorien auszuhebeln: Radikaler Gebrauch erscheint pl\u00f6tzlich sch\u00fctzenswerter als einst der Besitz.<br\/><br\/>Das Buch verfolgt den unbedingten Selbstgebrauch in Politik, Kunst und Popul\u00e4rkultur von der Stadtguerilla \u00fcber radikale Kunstprojekte bis hin zu NFTs, Hackern wie dem Anonymous-Kollektiv und den Aktivistinnen und Aktivisten der \u00bbLetzten Generation\u00ab. Es enth\u00e4lt und anal
49678ysiert auch einen bisher unbekannten Kassiber, den Gudrun Ensslin 1969 aus der Haft schmuggeln lie\u00df. Radikalit\u00e4t erweist sich in der k\u00fcnstlichen Herstellung von Gleichheit unter Ungleichen \u2013 ungleich an Talenten, Chancen, Mitteln \u2013 als wirksames soziales Korrektiv."},"doi":{"43253":""},"isbn":{"43253":"978-3-7873-5021-6"},"marketing_short_text":{"43253":"Eine Videoaufnahme eines Gesprächs mit Mirjam Schaub, Veranstaltungshinweise und ergänzende Informationen finden Sie unter <a href=\"http:\/\/meiner.de\/radikalitaet\">meiner.de\/radikalitaet<\/a>."},"recension_text":{"43253":"<div class=\"reviews\">\r\n<div class=\"review\">Gerade die Vielfalt der von Schaub behandelten Ph\u00e4nomene erweist sich als besondere St\u00e4rke des Werks: Die Lekt\u00fcre ist anregend und unterhaltsam zugleich, vermittelt reichhaltiges \u2013 bisweilen nischenhaftes \u2013 Detailwissen und l\u00e4dt immer wieder zum Schmunzeln ein.<\/div>\r\n<div class=\"source\">Max Tretter in Zeitzeichen 6\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Stilistisch ist das Werk ein Genuss. Schaub meidet den trockenen Jargon des Elfenbeinturms, ohne an analytischer Sch\u00e4rfe zu verlieren [...] Wer verstehen will, warum Menschen sich auf Stra\u00dfen festkleben, warum sich Performance-K\u00fcnstler Schmerzen zuf\u00fcgen oder warum wir uns in den sozialen Medien radikal entbl\u00f6\u00dfen, der muss dieses Buch lesen. Es ist ein Werk, das [\u2026] den Leser nicht unber\u00fchrt l\u00e4sst und dazu zwingt, die eigene Haltung zur L\u00fccke zwischen Denken und Tun zu \u00fcberpr\u00fcfen.<\/div>\r\n<div class=\"source\">Stefan Gammel in \u00bbder blaue reiter\u00ab, Ausgabe 57 \/ 2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Mirjam Schaubs Buch ist ein anregender Lesespa\u00df, in dem mit ungez\u00fcgelter Wildheit dem Auf und Ab der radikalen Ideen in der Menschheitsgeschichte nachgesp\u00fcrt wird. Das Buch ist ein einziger Tumult, verdammt gute Sache.<\/div>\r\n<div class=\"source\">Michael Hesse in der Frankfurter Rundschau vom 12.05.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Dieses Buch ist eine gelungene \u00dcberraschung. [...] Manchmal w\u00fcnscht man sich, diese Reise in ferne und doch nahegehende Welten w\u00fcrde tats\u00e4chlich kein Ende finden.<\/div>\r\n<div class=\"source\">Dieter Thom\u00e4 in der FAZ vom 24.01.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Mirjam Schaub gelingt [...] mit \u203aRadikalit\u00e4t\u2039 selbst etwas Radikales: Eine sehr facettenreiche, historisch profunde Studie, die ein breites kulturelles Spektrum tiefgehend analysiert. Indem sie Radikalit\u00e4t und Popul\u00e4rkultur miteinander ins Gespr\u00e4ch bringt, haucht sie am Ende Friedrich von Schlegels Gedanken neues Leben ein, dass n\u00e4mlich ein witziger Einfall wie das \u00fcberraschende Wiedersehen zweier befreundeter Gedanken nach einer langen Trennung ist.<\/div>\r\n<div class=\"source\">J\u00fcrgen Nielsen-Sikora in Glanz & Elend am 10.01.2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">[\u2026] ein kluger, wunderbar erz\u00e4hlter Ritt durch 2500 Jahre Radikalit\u00e4tsgeschichte mit Ausfl\u00fcgen in Politik, Kunst und Philosophie<\/div>\r\n<div class=\"source\">Philosophie Magazin 01\/2026<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Endlich ein Buch, das die Verdrossenheit dieser Zeitzone weitr\u00e4umig umschifft. Warum? Weil es Feigheit und Faulheit mit Kreativit\u00e4t und Witz begegnet. [\u2026] Scheinbar m\u00fchelos verbindet es die Jahrhunderte und macht Lust auf ein unorthodoxes, aufregendes Denken.<\/div>\r\n<div class=\"source\">Horst Bredekamp<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Was wir \u00fcber Radikalit\u00e4t und Radikalisierung in Theorie und Praxis zu wissen glauben, wird hier so einfalls- wie materialreich, so \u00fcberraschend wie anregend aufgemischt und durcheinandergebracht.<\/div>\r\n<div class=\"source\">Eva Geulen<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Radikalit\u00e4t, so zeigt sich, kann einfach nur zerst\u00f6rerisch sein, aber auch \u203asmart\u2039: Sie ist ein Kunstgriff, der es den Kulturen erlaubt, sich zu ver\u00e4ndern, um bleiben zu k\u00f6nnen, was sie sind.<\/div>\r\n<div class=\"source\">Ralf Konersmann<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Radikalit\u00e4t ist die Nagelprobe auf die Unterscheidung zwischen Theorie und Praxis im Leben selbst. Diesem Gedanken geht Mirjam Schaub in einer beeindruckenden Studie nach, indem die stummen und lauten Stimmen des Radikalen von der Antike bis in die Gegenwart zum Sprechen gebracht werden.<\/div>\r\n<div class=\"source\">Christian Bermes<\/div>\r\n<\/div>"},"language":{"43253":""},"cover":{"43253":"Gebunden"},"pages":{"43253":"Zusammen 848 Seiten mit 66 Abbildungen"},"edition":{"43253":""},"pod":{"43253":"Nein"},"copyright_year":{"43253":""},"vlb_tix_link":{"43253":"https:\/\/neu.vlbtix.de\/products\/9783787350216?type=gtin"},"defaultValues":{"163":"11"}}; 49679 const swatchConfig = {"163":{"11":{"type":"0","value":"Gebunden","label":"Gebunden"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 49680 49681 if (typeof window.amxnotif_wrap_attributes === 'function') { 49682 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 49683 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 49684 } 49685 49686 const configurableOptionsComponent = initConfigurableOptions( 49687 '44481', 49688 config 49689 ); 49690 const swatchOptionsComponent = initSwatchOptions( 49691 swatchConfig 49692 ); 49693 49694 // DWS - Configurable product preselect start 49695 const confProdPreSelect = () => { 49696 return { 49697 preselectQuerystringItems() { 49698 var data = {"id":"43253","output":"11"}; 49699 const urlQueryParams = new URLSearchParams(window.location.search); 49700 49701 this.$nextTick(() => { 49702 setTimeout(() => { 49703 const rootEl = this.$root || this.$el; 49704 if (!rootEl) return; 49705 49706 const applySelection = (attrCode, attrValue) => { 49707 if (attrValue === undefined || attrValue === null || attrValue === '') return; 49708 49709 const attributes = Object.values(this.optionConfig.attributes || {}); 49710 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 49711 49712 if (targetAttr) { 49713 const attrId = String(targetAttr.id); 49714 const optionVal = String(attrValue); 49715 49716 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 49717 49718 if (inputEl) { 49719 inputEl.click(); 49720 inputEl.dispatchEvent(new Event('change', { 49721 bubbles: true 49722 })); 49723 } else { 49724 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 49725 if (selectEl) { 49726 selectEl.value = optionVal; 49727 selectEl.dispatchEvent(new Event('change', { 49728 bubbles: true 49729 })); 49730 } 49731 } 49732 49733 this.changeOption(attrId, optionVal, false); 49734 } 49735 }; 49736 49737 if (data && typeof data === 'object') {
49738 Object.keys(data).forEach(key => applySelection(key, data[key])); 49739 } 49740 49741 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 49742 if (attribute && attribute.code) { 49743 let optionValue = urlQueryParams.get(attribute.code); 49744 if (optionValue) { 49745 let optionId = false; 49746 const attributes = Object.values(this.optionConfig.attributes || {}); 49747 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 49748 49749 let found = false; 49750 Object.values(targetAttr.options).map(option => { 49751 if (found === false && option.label === optionValue) { 49752 optionId = option.id; 49753 found = true; 49754 } 49755 }); 49756 49757 const attrId = String(targetAttr.id); 49758 let optionVal = String(optionValue); 49759 if (found) { 49760 optionVal = String(optionId); 49761 } 49762 49763 applySelection(attribute.code, optionVal); 49764 } 49765 } 49766 }); 49767 }, 100); 49768 }); 49769 } 49770 } 49771 }; 49772 // DWS - Configurable product preselect end 49773 49774 const result = Object.assign( 49775 configurableOptionsComponent, 49776 swatchOptionsComponent, { 49777 productId: '44481', 49778 productIndex: 0, 49779 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 49780 showSwatches: false, 49781 precalcOptions: {}, 49782 originalInit: configurableOptionsComponent.init, 49783 init() { 49784 try { 49785 this.precalcOptions = {}; 49786 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 49787 this.preselectQuerystringItems(); 49788 if (Array.isArray(attrSource)) { 49789 attrSource.forEach(attr => { 49790 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 49791 }); 49792 } else if (attrSource && typeof attrSource === 'object') { 49793 Object.keys(attrSource).forEach(id => { 49794 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 49795 }); 49796 } 49797 } catch (e) { 49798 console.error('Pre-calc error:', e); 49799 } 49800 49801 if (typeof this.originalInit === 'function') { 49802 this.originalInit(); 49803 } 49804 49805 try { 49806 this.initShowSwatchesIntersect(); 49807 } catch (e) { 49808 console.error('intersect error:', e); 49809 } 49810 }, 49811 49812 updateGallery() { 49813 if (!this.productIndex) return; 49814 49815 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 49816 method: 'GET', 49817 headers: { 49818 'Content-Type': 'application/json', 49819 'X-Requested-With': 'XMLHttpRequest' 49820 } 49821 }) 49822 .then(response => response.json()) 49823 .then(data => { 49824 if (data && data.medium) { 49825 window.dispatchEvent(new CustomEvent("update-gallery-44481", { 49826 detail: data.medium 49827 })); 49828 } 49829 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 49830 }, 49831 49832 49833 initShowSwatchesIntersect() { 49834 const observer = new IntersectionObserver(entries => { 49835 if (entries[0].isIntersecting) { 49836 this.showSwatches = true; 49837 observer.disconnect(); 49838 } 49839 }, { 49840 rootMargin: '512px' 49841 }); 49842 observer.observe(this.$el); 49843 }, 49844 getOptions(attrId) { 49845 return this.precalcOptions[attrId] || []; 49846 }, 49847 getOptionsByAttrId() { 49848 return this.getOptions(this.$el.dataset.attributeId); 49849 }, 49850 _getItemId() { 49851 if (this.item && this.item.id) return this.item.id; 49852 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 49853 }, 49854 getSwatchOptionHtmlId() { 49855 const itemId = this._getItemId(); 49856 return itemId ? this.$id(`attribute-option-44481-${itemId}`) : ''; 49857 }, 49858 getSwatchOptionHtmlIdGroup() { 49859 const itemId = this._getItemId(); 49860 return itemId ? [`attribute-option-44481-${itemId}`] : []; 49861 }, 49862 getAttributeSwatchData(attributeId) { 49863 const data = Object.assign({}, this.swatchConfig[attributeId]); 49864 if (data['additional_data']) { 49865 try { 49866 data['details'] = JSON.parse(data['additional_data']); 49867 } catch (e) { 49868 data['details'] = {}; 49869 } 49870 } 49871 return data; 49872 }, 49873 getSwatchType(attributeId, optionId) { 49874 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 49875 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 49876 } 49877 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 49878 this.swatchConfig[attributeId].details.swatch_input_type : 49879 "empty"; 49880 if (type === 'visual') { 49881 const config = this.swatchConfig[attributeId]; 49882 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 49883 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 49884 } 49885 // Fallback to first option type 49886 for (const oId in config) { 49887 if (config[oId] && typeof config[oId].type !== 'undefined') { 49888 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 49889 } 49890 } 49891 } 49892 return type; 49893 }, 49894 mapSwatchTypeNumberToTypeCode(type) { 49895 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 49896 }, 49897 isTextSwatch() { 49898 const itemId = this._getItemId(); 49899 if (!this.$el || !itemId) return false;
49900 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49901 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 49902 }, 49903 49904 getSwatchText() { 49905 const itemId = this._getItemId(); 49906 if (this.item) return this.item.label || ''; 49907 if (!this.$el || !itemId) return ''; 49908 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49909 const options = attrId ? this.getOptions(attrId) : []; 49910 const opt = options.find(o => o.id == itemId); 49911 return opt ? opt.label : ''; 49912 }, 49913 getSwatchBackgroundStyle() { 49914 const itemId = this._getItemId(); 49915 if (!this.$el || !itemId) return ''; 49916 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49917 if (!attrId) return ''; 49918 const type = this.getSwatchType(attrId, itemId); 49919 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 49920 this.swatchConfig[attrId][itemId] : 49921 null; 49922 if (!swatchData) return ''; 49923 if (type === "color") return 'background-color:' + swatchData.value; 49924 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 49925 return ''; 49926 }, 49927 swatchOptionClasses() { 49928 const itemId = this._getItemId(); 49929 if (!this.$el || !itemId) return {}; 49930 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 49931 return { 49932 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 49933 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 49934 'w-6 h-6': !this.isTextSwatch() 49935 } 49936 }, 49937 49938 onFocusSwatchItem() { 49939 const itemId = this._getItemId(); 49940 if (itemId) this.focusedLabel = itemId; 49941 }, 49942 onChangeOption() { 49943 const itemId = this._getItemId(); 49944 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 49945 if (attrId && itemId) this.changeOption(attrId, itemId); 49946 }, 49947 changeOption(attributeId, value) { 49948 if (value === '') { 49949 return; 49950 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 49951 } else { 49952 this.selectedValues[attributeId] = value; 49953 } 49954 49955 this.findSimpleIndex(); 49956 this.findAllowedAttributeOptions(); 49957 this.updatePrices(); 49958 this.updateGallery(); 49959 49960 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 49961 this.findProductIdsForPartialSelection(this.selectedValues) : []; 49962 49963 const eventDetail = { 49964 productId: this.productId, 49965 optionId: attributeId, 49966 value: value, 49967 productIndex: this.productIndex || 0, 49968 selectedValues: this.selectedValues, 49969 candidates: candidates, 49970 sourceElement: this.$el 49971 }; 49972 49973 // Dispatch for Amasty 49974 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 49975 detail: eventDetail 49976 })); 49977 49978 // Dispatch for Hyva listing 49979 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 49980 detail: eventDetail 49981 })); 49982 }, 49983 49984 49985 clearOptionIfActive() { 49986 const itemId = this._getItemId(); 49987 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 49988 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 49989 this.changeOption(attrId, ''); 49990 49991 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 49992 if (!input && this.$el?.querySelector) { 49993 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 49994 } 49995 if (!input && this.$el?.closest) { 49996 const root = this.$el.closest('[data-product-id]') || this.$el; 49997 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 49998 } 49999 if (input) { 50000 input.checked = false;
50001 } 50002 } 50003 }, 50004 get optionIsEnabled() { 50005 const itemId = this._getItemId(); 50006 if (!this.$el || !itemId) return true; 50007 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50008 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 50009 return !!allowedOptions.find(opt => opt.id == itemId); 50010 }, 50011 get isSelected() { 50012 const itemId = this._getItemId(); 50013 if (!this.$el || !itemId) return false; 50014 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50015 return attrId ? (this.selectedValues[attrId] == itemId) : false; 50016 }, 50017 get isSwatchRequired() { 50018 if (!this.$el) return false; 50019 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50020 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 50021 }, 50022 focusedLabel: false, 50023 activeTooltipItem: false, 50024 tooltipPositionElement: false,
50025 setActiveTooltipItem() { 50026 const itemId = this._getItemId(); 50027 if (!this.$el || !itemId) return; 50028 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50029 this.activeTooltipItem = { 50030 attribute: attrId, 50031 item: itemId, 50032 index: 0 50033 }; 50034 this.tooltipPositionElement = this.$event ? this.$event.target : null; 50035 }, 50036 unsetActiveTooltipItem() { 50037 this.activeTooltipItem = false; 50038 } 50039 }, 50040 confProdPreSelect() 50041 ); 50042 50043 if (result.optionConfig && result.optionConfig.attributes) { 50044 const attributes = result.optionConfig.attributes; 50045 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 50046 let source = attributes; 50047 if (Array.isArray(attributes)) { 50048 source = {}; 50049 attributes.forEach(attr => { 50050 if (attr && attr.id) source[attr.id] = attr; 50051 }); 50052 } 50053 const values = Object.values(source); 50054 const wrapper = Object.assign(values, source); 50055 Object.defineProperty(wrapper, '__amxnotifWrapped', { 50056 value: true, 50057 enumerable: false 50058 }); 50059 result.optionConfig.attributes = wrapper; 50060 } 50061 } 50062 50063 return result; 50064 } 50065 50066 window.addEventListener('alpine:init', () => { 50067 Alpine.data('initConfigurableSwatchOptions_44481', initConfigurableSwatchOptions_44481); 50068 }, { 50069 once: true 50070 }); 50071 </script>
50071 50072 50073 <div x-data="initConfigurableSwatchOptions_44481" x-defer="intersect"> 50074 <div class="pagebuilder-home-hidden"> 50075 50076 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 50077 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 50078 <template x-if="showSwatches"> 50079 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-44481-163" role="radiogroup" aria-label="Einband"> 50080 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 50081 <div :data-option-id="item.id" style="display: contents"> 50082 <div x-id="getSwatchOptionHtmlIdGroup"> 50083 <template x-if="optionIsEnabled"> 50084 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
50084self="unsetActiveTooltipItem"> 50085 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-44481-163"> 50086 <div> 50087 <template x-if="isTextSwatch"> 50088 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 50089 </template> 50090 <template x-if="!optionIsActive(163, item.id)"> 50091 <div> 50092 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 50093 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 50094 </svg> 50095 </div> 50096 </template> 50097 </div> 50098 </label> 50099 </template> 50100</div> </div> 50101 </template> 50102 </div> 50103 </template> 50104 </div> 50105 </div> 50106 </div> 50107 </div> 50108 50109 <div class="meta py-4 pagebuilder-home-hidden"> 50110 <div x-data="initMarketingShortText_44481()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 50111 <!-- Marketing short text --> 50112 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 50113 </div> 50114 50115 <!-- Short description --> 50116 <div class="short-description"> 50117 Schillernd und fremd, lässt sich Radikalität zu allen Zeiten und in allen Kulturen mit ihrem Hang zum Unbedingten beobachten. Fast immer wirkt sie anstößig und beschämend, wenn auch in ... <a href="https://meiner.de/fmv_de/radikalita-t-set-band-1-2-20119" class="underline">mehr</a> 50118 </div> 50119 </div> 50120 50121 <!-- Series --> 50122 50123 50124 <div class="mb-1"> 50125 <span x-data="initEditionText_44481()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 50126 <!-- Marketing short text --> 50127 <span class="edition-text" x-html="editionText"></span> 2025, Zusammen 848 Seiten mit 66 Abbildungen </span> 50128 </div> 50129 50130 </div> 50131 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 50132 50133 <div class="justify-end" x-data="initPriceBox()" @update-prices-44481.window="updatePrice($event.detail);"> 50134 <div class="price-box price-final_price" data-role="priceBox" data-product-id="44481" data-price-box="product-id-44481"><span class="normal-price"> 50135 <span x-data x-id="['product\u002Dprice\u002D44481']" class="price-container price-final_price tax weee"> 50136 <span class="price-label">Ab</span> 50137 <span class="approx-price">ca. </span> 50138 <span :id="$id('product\u002Dprice\u002D44481')" data-price-amount="94" data-price-type="finalPrice" class="price-wrapper "><span class="price">94,00 €</span></span> 50139 </span> 50140</span> 50141 50142 50143</div> </div> 50144 50145 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 50146 <div class="open-access-container open-access-container-44481 flex mt-4 ml-auto sm:mt-0 hidden"> 50147 <div class="text-gray-700"> 50148 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 50149 <a href="" target="_blank" class="open-access-external-link m-auto "> 50150 Kostenlos online lesen </a> 50151 </button> 50152 </div> 50153 </div> 50154 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Radikalität (Set Band 1 &amp; 2)" aria-label="In den Warenkorb Radikalität (Set Band 1 &amp; 2)" data-addto="cart"> 50155 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 50156 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
501560 014 0z"></path> 50157</svg> 50158 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 50159 In den Warenkorb </span> 50160 </button> 50161 50162<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(44481)" aria-label="Zur Wunschliste hinzufügen Radikalität (Set Band 1 &amp; 2)" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 50163 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 50164 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 50165</svg> 50166</button> 50167 </div> 50168 </div> 50169 </div> 50170
50170<script> 50171 function initMarketingShortText_44481() { 50172 var marketingShortTextConfig = {}; 50173 if (typeof window.initConfigurableSwatchOptions_44481 === "function") { 50174 var fullConfig = window.initConfigurableSwatchOptions_44481().optionConfig 50175 var marketingShortTextConfig = fullConfig.marketing_short_text; 50176 } 50177 return { 50178 marketingShortText: '', 50179 config: marketingShortTextConfig, 50180 productId: '44481', 50181 getMarketingShortText(detail) { 50182 this.marketingShortText = detail.productIndex ? 50183 this.config[detail.productIndex] : 50184 null; 50185 }, 50186 eventListeners: { 50187 ['@listing-configurable-selection-changed.window'](event) { 50188 if (this.productId == event.detail.productId) { 50189 this.getMarketingShortText(event.detail); 50190 } 50191 50192 } 50193 } 50194 } 50195 } 50196 50197 function initEditionText_44481() { 50198 var editionTextConfig = {}; 50199 if (typeof window.initConfigurableSwatchOptions_44481 === "function") { 50200 var fullConfig = window.initConfigurableSwatchOptions_44481().optionConfig 50201 var editionTextConfig = fullConfig.edition; 50202 } 50203 return { 50204 editionText: '', 50205 config: editionTextConfig, 50206 productId: '44481', 50207 getEditionText(detail) { 50208 this.editionText = detail.productIndex ? 50209 this.config[detail.productIndex] : 50210 null; 50211 }, 50212 eventListeners: { 50213 ['@listing-configurable-selection-changed.window'](event) { 50214 if (this.productId == event.detail.productId) { 50215 this.getEditionText(event.detail); 50216 } 50217 50218 } 50219 } 50220 } 50221 } 50222 </script>
50222 50223 </form> 50224 50225 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/43600/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk19257"> 50226 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> <input type="hidden" name="product" value="43600"> 50227 <a href="https://meiner.de/fmv_de/philosophische-werke-in-sechs-ba-nden-19257" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 50228 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-43600.window="$el.src = $event.detail" alt="Philosophische Werke in sechs Bänden" title="Philosophische Werke in sechs Bänden" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787341528_3.jpg" :style="{ 50229 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 50230 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 50231 }"> 50232 </a> 50233 <div class="product-info flex flex-col flex-grow "> 50234 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 50235 <div class="mb-2 text-sm text-gray-500 font-medium"> 50236 <a href="https://meiner.de/fmv_de/person/Friedrich-Nietzsche-3289/" class="mb-2"> 50237 Friedrich Nietzsche </a> 50238 </div> 50239 <a class="product-item-link" href="https://meiner.de/fmv_de/philosophische-werke-in-sechs-ba-nden-19257"> 50240 Philosophische Werke in sechs Bänden </a> 50241 </div> 50242 50243 <div x-data="initEditionText_43600()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 50244 <!-- Marketing short text --> 50245 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 50246 </div> 50247 </div> 50248 50249 <div class="py-1 grid mb-4 "> 50250 50251 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":43600,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":43600,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"7918":"1","6074":"1"},"childProductsAlertStatus":{"7918":"0","6074":"0"},"indexMapping":{"163:15":7918,"163:8":6074},"availabilityMessages":{"7918":"Lieferbar innerhalb von 3-5 Tagen","6074":"Download sofort verf\u00fcgbar"},"openAccess":{"43600":{"status":0},"7918":{"status":0},"6074":{"status":0}}},"availabilityMessages":{"7918":"Lieferbar innerhalb von 3-5 Tagen","6074":"Download sofort verf\u00fcgbar"},"openAccess":{"43600":{"status":0},"7918":{"status":0},"6074":{"status":0}}}'> 50252 <template x-if="containerVisible"> 50253 <!-- Popup Trigger --> 50254 <div> 50255 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 50256 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
50257 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 50258 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 50259<title>bell</title></svg> 50260</span> 50261 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 50262 50263 <!-- Popup Modal --> 50264 <template x-if="showModal"> 50265 <template x-teleport=".page-wrapper"> 50266 <div x-cloak class="fixed inset-0 flex items-center justify-center 50267 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 50268 <div class="relative bg-white rounded-lg shadow-xl 50269 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 50270 <div class="p-6"> 50271 <!-- Subscription Form for Popup --> 50272 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 50273 <input name="form_key" type="hidden" value="R6NBsKL42phFmgWc"> 50274 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 50275 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 50276 50277 <div class="flex flex-col gap-3"> 50278 <div class="flex-grow grow"> 50279 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 50280 shadow-xs focus:outline-none focus:outline-hidden 50281 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 50282 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 50283 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 50284 </div> 50285 <input type="hidden" name="product_id" :value="currentProductId"> 50286 <input type="hidden" name="type" value="email"> 50287 50288 50289 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl"> 50290 50291 <div class="amxnotif_guest_action"> 50292 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 50293 rounded-md focus:outline-none 50294 focus:outline-hidden focus:ring-2 50295 focus:ring-offset-2 disabled:opacity-50 50296 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 50297 Benachrichtigen </button> 50298 </div> 50299 </div> 50300 50301 <div class="flex items-start pt-2"> 50302 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 50303 text-blue-600 border-gray-300 rounded-sm"> 50304 <label class="amxnotif-stock-gdrp-label cursor-pointer 50305 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 50306 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 50307 </div> 50308 </form> 50309 </div> 50310 50311 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 50312 hover:text-gray-600 transition-colors" aria-label="Schließen"> 50313 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 50314 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 50315<title>x</title></svg> 50316 </button> 50317 </div> 50318 </div> 50319 </template> 50320 </template> 50321 </div> 50322 </template> 50323 </div> 50324 50325<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_43600" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":43600,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2Rl","childProducts":{"7918":"1","6074":"1"},"childProductsAlertStatus":{"7918":"0","6074":"0"},"indexMapping":"{\u0022163:15\u0022:7918,\u0022163:8\u0022:6074}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":43600,"availabilityMessages":{"7918":"Lieferbar innerhalb von 3-5 Tagen","6074":"Download sofort verf\u00fcgbar"},"openAccess":{"43600":{"status":0},"7918":{"status":0},"6074":{"status":0}}}'> 50326 50327 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
50328 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 50329 <span x-html="optionsLabelText"></span> 50330 </p> 50331</div> </div> 50332 50333
50333<script> 50334 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 50335 try { 50336 const attributes = (config && config.attributes) ? config.attributes : null; 50337 if (!attributes) return []; 50338 let attr = null; 50339 if (Array.isArray(attributes)) { 50340 for (let i = 0; i < attributes.length; i++) { 50341 const a = attributes[i]; 50342 if (a && a.id == attrId) { 50343 attr = a; 50344 break; 50345 } 50346 } 50347 } else { 50348 attr = attributes[attrId]; 50349 } 50350 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 50351 } catch (e) { 50352 return []; 50353 } 50354 }; 50355 50356 function initConfigurableSwatchOptions_43600() { 50357 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["7918"]},{"id":"8","label":"PDF","products":["6074"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"7918":{"baseOldPrice":{"amount":84.018690588785},"oldPrice":{"amount":89.9},"basePrice":{"amount":84.018690588785},"finalPrice":{"amount":89.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false},"6074":{"baseOldPrice":{"amount":33.635513018692},"oldPrice":{"amount":35.99},"basePrice":{"amount":33.635513018692},"finalPrice":{"amount":35.99},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":33.635513018692},"oldPrice":{"amount":35.99},"basePrice":{"amount":30.243696478992},"finalPrice":{"amount":35.99},"isApproxPrice":null},"productId":"43600","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"7918":{"163":"15"},"6074":{"163":"8"}},"salable":{"163":{"15":["7918"],"8":["6074"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"7918":"004152","6074":"002434"},"output":{"6074":"PDF","7918":"Kartoniert"},"original_name":{"6074":"","7918":""},"openaccess_license_link":{"6074":"","7918":""},"openaccess_license_name":{"6074":"","7918":""},"openaccess_external_link":{"6074":"","7918":""},"gpsr_safety_info":{"6074":"","7918":""},"description":{"6074":"1885 fasste Friedrich Nietzsche den Entschluss, eine Neue Ausgabe seiner Schriften erscheinen zu lassen, die \u00bbdas Eigene und Unvergleichliche in diesen Werken\u00ab herausstellen sollte. Diesem Konzept folgt auch die von Claus-Artur Scheier neu herausgegebene Ausgabe der philosophischen Werke in sechs B\u00e4nden.<br>Diese erste Ausgabe der philosophischen Werke Friedrich Nietzsches in der \u00bbPhilosophischen Bibliothek\u00ab folgt dem 1885 von Nietzsche selbst gefassten und begr\u00fcndeten Konzept einer Neuen Ausgabe seiner im eigentlichen Sinne \u00bbphilosophischen\u00ab Schriften und bietet den Text nach den Originalausgaben von 1886\/1887, erg\u00e4nzt um die 1889 erschienene G\u00f6tzen-D\u00e4mmerung.<br>Eine \u00bbvollst\u00e4ndige Ausgabe letzter Hand\u00ab nach dem Vorbild Goethes hat Friedrich Nietzsche nicht vorlegen k\u00f6nnen, denn am Ende war er nicht mehr Herr seiner Sinne. Doch gibt das wirklich Grund zur Klage? Oder anders gefragt: H\u00e4tte Nietzsche eine solche Ausgabe, die einfach alles versammelt, was er geschrieben hat, \u00fcberhaupt gewollt und gutgehei\u00dfen?<br>Die Frage muss offen bleiben. Doch es gibt gewiss Gr\u00fcnde, Nietzsche nicht mit jenen gleichzustellen, denen es auf diese Weise nur darum zu tun war, ihren Nachruhm zu sichern und nach eigenen Vorstellungen zu steuern. Denn es gibt sie ja, die von Nietzsche selbst gewollte und kritisch kommentierte Ausgabe ganz eigener Art: n\u00e4mlich die durch Jenseits von Gut und B\u00f6se und die Genealogie der Moral eingerahmte Neue Ausgabe von 1886\/87, die die vor dem Zarathustra ver\u00f6ffentlichten, mit neuen Vorreden versehenen philosophischen Schriften enth\u00e4lt, von denen der Autor selber sagte:<br><br>\u00bb\u203aSie werden bemerken, dass Menschliches, Allzumenschliches, die Morgenr\u00f6te, die fr\u00f6hliche Wissenschaft einer Vorrede ermangeln: es hatte gute Gr\u00fcnde, dass ich damals, als diese Werke entstanden, mir ein Stillschweigen auferlegte \u2013 ich stand n
50357och zu nahe, noch zu sehr drin\u2039 und wu\u00dfte kaum, was mit mir geschehen war. Jetzt, wo ich selber am besten und genauesten sagen kann, was das Eigene und Unvergleichliche in diesen Werken ist und inwiefern sie eine f\u00fcr Deutschland neue Literatur inaugurieren (das Vorspiel einer moralischen Selbst-Erziehung und Kultur, die bisher den Deutschen gefehlt hat), w\u00fcrde ich mich zu solchen zur\u00fcckblickenden und nachtr\u00e4glichen Vorreden gerne entschlie\u00dfen. Meine Schriften stellen eine fortlaufende Entwicklung dar, welche nicht nur mein pers\u00f6nliches Erlebnis und Schicksal sein wird: \u2013 ich bin nur der Erste, eine heraufkommende Generation wird das, was ich erlebt habe, von sich aus verstehn und eine feine Zunge f\u00fcr meine B\u00fccher haben. Die Vorreden k\u00f6nnten das Notwendige im Gange einer solchen Entwicklung deutlich machen.\u00ab (Brief vom 7. August 1886 an seinen Verleger Th. Fritsch)<br><br>Mit der 1990 unter dem Titel \u203aFriedrich Nietzsche: Ecce auctor\u2039 vorgelegten Edition der Vorreden von 1886 hatte Claus-Artur Scheier zum ersten Mal darauf aufmerksam gemacht, dass Nietzsche die f\u00fcr die Neue Ausgabe seiner im eigentlichen Sinne \u00bbphilosophischen\u00ab Schriften verfassten Vorreden als in sich geschlossenen, genealogisch angelegten Versuch einer selbstkritischen Neubewertung und Einordnung seines Werkes ansah: \u00bb\u203aVon der Vorrede zur Geburt der Trag\u00f6die bis zur Vorrede des letztgenannten Buchs [der Genealogie der Moral\u2039\u203a] \u2013 das gibt eine Art Entwicklungsgeschichte\u2039\u00ab (zu der, des Erprobens der Tonlage wegen, noch die Vorrede zu \u00bbJenseits von Gut und B\u00f6se\u00ab gerechnet werden kann). Jetzt sah sich Nietzsche im Zenit seiner Schaffenskraft, und die Neue Ausgabe sollte den Mitte 1885 gefassten Plan vorantreiben, \u00bbeine gro\u00dfe Schul-T\u00e4tigkeit als Philosoph auszu\u00fcben [\u2026]. Die B\u00fccher heraus aus diesem Winkel!!! Es sind meine Angelhaken; wenn sie mir keine Menschen fangen, so haben sie keinen Sinn!\u00ab (Brief an die Schwester, kurz vor dem 15. August 1885)<br><br>Band 1: Jenseits von Gut und B\u00f6se (1886); Die Geburt der Trag\u00f6die (Neue Ausgabe 1886)<br>Band 2: Menschliches, Allzumenschliches 1 (Neue Ausgabe 1886)<br>Band 3: Menschliches, Allzumenschliches 2 (Neue Ausgabe 1886)<br>Band 4: Morgenr\u00f6the (Neue Ausgabe 1887)<br>Band 5: Die fr\u00f6hliche Wissenschaft \/ Wir Furchtlosen (Neue Ausgabe 1887)<br>Band 6: Zur Genealogie der Moral (1887); G\u00f6tzen-D\u00e4mmerung (1889)<br><br>","7918":"1885 fasste Friedrich Nietzsche den Entschluss, eine Neue Ausgabe seiner Schriften erscheinen zu lassen, die \u00bbdas Eigene und Unvergleichliche in diesen Werken\u00ab herausstellen sollte. Diesem Konzept folgt auch die von Claus-Artur Scheier neu herausgegebene Ausgabe der philosophischen Werke in sechs B\u00e4nden.<br>Diese erste Ausgabe der philosophischen Werke Friedrich Nietzsches in der \u00bbPhilosophischen Bibliothek\u00ab folgt dem 1885 von Nietzsche selbst gefassten und begr\u00fcndeten Konzept einer Neuen Ausgabe seiner im eigentlichen Sinne \u00bbphilosophischen\u00ab Schriften und bietet den Text nach den Originalausgaben von 1886\/1887, erg\u00e4nzt um die 1889 erschienene G\u00f6tzen-D\u00e4mmerung.<br>Eine \u00bbvollst\u00e4ndige Ausgabe letzter Hand\u00ab nach dem Vorbild Goethes hat Friedrich Nietzsche nicht vorlegen k\u00f6nnen, denn am Ende war er nicht mehr Herr seiner Sinne. Doch gibt das wirklich Grund zur Klage? Oder anders gefragt: H\u00e4tte Nietzsche eine solche Ausgabe, die einfach alles versammelt, was er geschrieben hat, \u00fcberhaupt gewollt und gutgehei\u00dfen?<br>Die Frage muss offen bleiben. Doch es gibt gewiss Gr\u00fcnde, Nietzsche nicht mit jenen gleichzustellen, denen es auf diese Weise nur darum zu tun war, ihren Nachruhm zu sichern und nach eigenen Vorstellungen zu steuern. Denn es gibt sie ja, die von Nietzsche selbst gewollte und kritisch kommentierte Ausgabe ganz eigener Art: n\u00e4mlich die durch Jenseits von Gut und B\u00f6se und die Genealogie der Moral eingerahmte Neue Ausgabe von 1886\/87, die die vor dem Zarathustra ver\u00f6ffentlichten, mit neuen Vorreden versehenen philosophischen Schriften enth\u00e4lt, von denen der Autor selber sagte:<br><br>\u00bb\u203aSie werden bemerken, dass Menschliches, Allzumenschliches, die Morgenr\u00f6te, die fr\u00f6hliche Wissenschaft einer Vorrede ermangeln: es hatte gute Gr\u00fcnde, dass ich damals, als diese Werke entstanden, mir ein Stillschweigen auferlegte \u2013 ich stand n
50357och zu nahe, noch zu sehr drin\u2039 und wu\u00dfte kaum, was mit mir geschehen war. Jetzt, wo ich selber am besten und genauesten sagen kann, was das Eigene und Unvergleichliche in diesen Werken ist und inwiefern sie eine f\u00fcr Deutschland neue Literatur inaugurieren (das Vorspiel einer moralischen Selbst-Erziehung und Kultur, die bisher den Deutschen gefehlt hat), w\u00fcrde ich mich zu solchen zur\u00fcckblickenden und nachtr\u00e4glichen Vorreden gerne entschlie\u00dfen. Meine Schriften stellen eine fortlaufende Entwicklung dar, welche nicht nur mein pers\u00f6nliches Erlebnis und Schicksal sein wird: \u2013 ich bin nur der Erste, eine heraufkommende Generation wird das, was ich erlebt habe, von sich aus verstehn und eine feine Zunge f\u00fcr meine B\u00fccher haben. Die Vorreden k\u00f6nnten das Notwendige im Gange einer solchen Entwicklung deutlich machen.\u00ab (Brief vom 7. August 1886 an seinen Verleger Th. Fritsch)<br><br>Mit der 1990 unter dem Titel \u203aFriedrich Nietzsche: Ecce auctor\u2039 vorgelegten Edition der Vorreden von 1886 hatte Claus-Artur Scheier zum ersten Mal darauf aufmerksam gemacht, dass Nietzsche die f\u00fcr die Neue Ausgabe seiner im eigentlichen Sinne \u00bbphilosophischen\u00ab Schriften verfassten Vorreden als in sich geschlossenen, genealogisch angelegten Versuch einer selbstkritischen Neubewertung und Einordnung seines Werkes ansah: \u00bb\u203aVon der Vorrede zur Geburt der Trag\u00f6die bis zur Vorrede des letztgenannten Buchs [der Genealogie der Moral\u2039\u203a] \u2013 das gibt eine Art Entwicklungsgeschichte\u2039\u00ab (zu der, des Erprobens der Tonlage wegen, noch die Vorrede zu \u00bbJenseits von Gut und B\u00f6se\u00ab gerechnet werden kann). Jetzt sah sich Nietzsche im Zenit seiner Schaffenskraft, und die Neue Ausgabe sollte den Mitte 1885 gefassten Plan vorantreiben, \u00bbeine gro\u00dfe Schul-T\u00e4tigkeit als Philosoph auszu\u00fcben [\u2026]. Die B\u00fccher heraus aus diesem Winkel!!! Es sind meine Angelhaken; wenn sie mir keine Menschen fangen, so haben sie keinen Sinn!\u00ab (Brief an die Schwester, kurz vor dem 15. August 1885)<br><br>Band 1: Jenseits von Gut und B\u00f6se (1886); Die Geburt der Trag\u00f6die (Neue Ausgabe 1886)<br>Band 2: Menschliches, Allzumenschliches 1 (Neue Ausgabe 1886)<br>Band 3: Menschliches, Allzumenschliches 2 (Neue Ausgabe 1886)<br>Band 4: Morgenr\u00f6the (Neue Ausgabe 1887)<br>Band 5: Die fr\u00f6hliche Wissenschaft \/ Wir Furchtlosen (Neue Ausgabe 1887)<br>Band 6: Zur Genealogie der Moral (1887); G\u00f6tzen-D\u00e4mmerung (1889)<br><br>"},"doi":{"6074":"10.28937\/978-3-7873-2434-7","7918":""},"isbn":{"6074":"978-3-7873-2434-7","7918":"978-3-7873-4152-8"},"marketing_short_text":{"6074":"","7918":""},"recension_text":{"6074":"<div class=\"reviews\">\r\n<div class=\"review\">Scheier hat sein kluges Unternehmen also ganz bewusst und im H\u00f6chsten Sinne des Wortes supplement\u00e4r zur KSA angelegt. Wer die sch\u00f6nen und handlichen B\u00e4nde seiner Ausgabe konsultiert, bekommt einen Nietzsche, der nicht nur ein neues Denken predigt, sondern dieses Denken auch in einer sehr distinkten Form praktiziert: in der des Aphorismus. Von daher vermittelt die taktile und typographische Klassizit\u00e4t der sechs nicht sehr umfangreichen B\u00e4nde der Meiner-Ausgabe genau jenen Eindruck, den Nietzsche nach seiner Wendung von Wagner zu Voltaire und von der Musik zur \u203aSchrift\u2039 auch im stilistischen Gestus vermitteln wollte. [...] Claus-Artur Scheiers intelligent gemachte und mit anregenden Nachworten versehene Ausgabe l\u00e4dt zur Neu- wie auch zur Wiederentdeckung scheinbar bekannter Texte ein und verweist mit Nachdruck auf Nietzsche als einen Philosophen des Stils, f\u00fcr den die Form stets auch Inhalt, f\u00fcr den die Oberfl\u00e4che stets auch Tiefe bedeutete.<\/div>\r\n<div class=\"source\">Germanisch-Romanische Monatsschrift 64\/3\/2014<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Wer Nietzsche lesen und nicht nur gelegentlich zitieren will, und zwar ihn so lesen will, wie Nietzsche sich selbst Ende der 1880er Jahre als Lehrer der Philosophie der Zukunft verstand, der ist mit dieser sch\u00f6nen und handlichen Ausgabe gut bedient.<\/div>\r\n<div class=\"source\">Theologische Literaturzeitung, 140 (2015) 5, Ingolf Ulrich Dalferth.<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Gegen\u00fcber dem pedantischen Seufzer des ersten Blicks, hier fehle ja der Zarathustra, wird man doch sagen m\u00fcssen, dass auch die Ausgabe im Ganzen einen so erfrischenden Blick auf Nietzsche gew\u00e4hrt, der gerade diesen Denker in seiner und als seine Zeit in einem entscheidenden Moment der Geschichte portr\u00e4tiert. Selten ist der Gesichtspunkt des \u203aWie\u2039 einer Lekt\u00fcre sch\u00e4rfer als hier.<\/div>\r\n<div class=\"source\">Coincidentia 2015-2, Harald Schwaetzer<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Scheiers Ausgabe verdient weite Verbreitung und mag dazu dienen, Urteile auf den Pr\u00fcfstand zu stellen, die Nietzsches Philosophie h\u00f6c
50357hst kritisch gegen\u00fcber stehen, wie etwa bei Vittorio H\u00f6sle. Die Aufgabe, Nietzsche zu verstehen, verdient jedenfalls einige Anstrengungen, zumal Nietzsche selbst gar nicht von jedem verstanden werden wollte. Dabei kann die handliche Scheiersche Ausgabe in sechs B\u00e4nden im Meiner Verlag gute Dienste tun. Sie kann daher f\u00fcr alle Bibliotheken zur Anschaffung empfohlen werden. Wer noch gar nichts von Nietzsche gelesen hat, kann mit dieser Auswahlausgabe einen guten Anfang machen.<\/div>\r\n<div class=\"source\">Informationsmittel f\u00fcr Bibliotheken<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Die hier von Claus-Artur Scheier herausgegebene Neue Ausgabe gibt einen authentischen und von allen nachtr\u00e4glichen Verschlimmbesserungen gereinigten Blick auch den \u203aechten Nietzsche\u2039, der zu jener Zeit noch im Vollbesitz seiner geistigen Kr\u00e4fte war, bevor er Anfang 1889 einen Nervenzusammenbruch erlitt, von dem er sich niemals wieder vollst\u00e4ndig erholen sollte. Mit diesem sechsb\u00e4ndigen Schuber der Philosophischen Bibliothek hat man eigentlich alles, was man f\u00fcr ein pers\u00f6nliches Nietzsche-Studium braucht. [...] Nietzsches Werk spricht f\u00fcr sich selbst und l\u00e4sst dem Leser dank seines essayistischen Stils auch viel Freiraum f\u00fcr eigene Assoziationen und Entdeckungsreisen. Jedoch auch der ambitionierte Philosophie-Student wird sich \u00fcber diese sch\u00f6ne und preisg\u00fcnstige Sammlung der Originaltexte Nietzsches freuen.<\/div>\r\n<div class=\"source\">kulturbuchtipps.de<\/div>\r\n<\/div>","7918":"<div class=\"reviews\">\r\n<div class=\"review\">Scheier hat sein kluges Unternehmen also ganz bewusst und im H\u00f6chsten Sinne des Wortes supplement\u00e4r zur KSA angelegt. Wer die sch\u00f6nen und handlichen B\u00e4nde seiner Ausgabe konsultiert, bekommt einen Nietzsche, der nicht nur ein neues Denken predigt, sondern dieses Denken auch in einer sehr distinkten Form praktiziert: in der des Aphorismus. Von daher vermittelt die taktile und typographische Klassizit\u00e4t der sechs nicht sehr umfangreichen B\u00e4nde der Meiner-Ausgabe genau jenen Eindruck, den Nietzsche nach seiner Wendung von Wagner zu Voltaire und von der Musik zur \u203aSchrift\u2039 auch im stilistischen Gestus vermitteln wollte. [...] Claus-Artur Scheiers intelligent gemachte und mit anregenden Nachworten versehene Ausgabe l\u00e4dt zur Neu- wie auch zur Wiederentdeckung scheinbar bekannter Texte ein und verweist mit Nachdruck auf Nietzsche als einen Philosophen des Stils, f\u00fcr den die Form stets auch Inhalt, f\u00fcr den die Oberfl\u00e4che stets auch Tiefe bedeutete.<\/div>\r\n<div class=\"source\">Germanisch-Romanische Monatsschrift 64\/3\/2014<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Wer Nietzsche lesen und nicht nur gelegentlich zitieren will, und zwar ihn so lesen will, wie Nietzsche sich selbst Ende der 1880er Jahre als Lehrer der Philosophie der Zukunft verstand, der ist mit dieser sch\u00f6nen und handlichen Ausgabe gut bedient.<\/div>\r\n<div class=\"source\">Theologische Literaturzeitung, 140 (2015) 5, Ingolf Ulrich Dalferth.<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Gegen\u00fcber dem pedantischen Seufzer des ersten Blicks, hier fehle ja der Zarathustra, wird man doch sagen m\u00fcssen, dass auch die Ausgabe im Ganzen einen so erfrischenden Blick auf Nietzsche gew\u00e4hrt, der gerade diesen Denker in seiner und als seine Zeit in einem entscheidenden Moment der Geschichte portr\u00e4tiert. Selten ist der Gesichtspunkt des \u203aWie\u2039 einer Lekt\u00fcre sch\u00e4rfer als hier.<\/div>\r\n<div class=\"source\">Coincidentia 2015-2, Harald Schwaetzer<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Scheiers Ausgabe verdient weite Verbreitung und mag dazu dienen, Urteile auf den Pr\u00fcfstand zu stellen, die Nietzsches Philosophie h\u00f6chst kritisch gegen\u00fcber stehen, wie etwa bei Vittorio H\u00f6sle. Die Aufgabe, Nietzsche zu verstehen, verdient jedenfalls einige Anstrengungen, zumal Nietzsche selbst gar nicht von jedem verstanden werden wollte. Dabei kann die handliche Scheiersche Ausgabe in sechs B\u00e4nden im Me
50357iner Verlag gute Dienste tun. Sie kann daher f\u00fcr alle Bibliotheken zur Anschaffung empfohlen werden. Wer noch gar nichts von Nietzsche gelesen hat, kann mit dieser Auswahlausgabe einen guten Anfang machen.<\/div>\r\n<div class=\"source\">Informationsmittel f\u00fcr Bibliotheken<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Die hier von Claus-Artur Scheier herausgegebene Neue Ausgabe gibt einen authentischen und von allen nachtr\u00e4glichen Verschlimmbesserungen gereinigten Blick auch den \u203aechten Nietzsche\u2039, der zu jener Zeit noch im Vollbesitz seiner geistigen Kr\u00e4fte war, bevor er Anfang 1889 einen Nervenzusammenbruch erlitt, von dem er sich niemals wieder vollst\u00e4ndig erholen sollte. Mit diesem sechsb\u00e4ndigen Schuber der Philosophischen Bibliothek hat man eigentlich alles, was man f\u00fcr ein pers\u00f6nliches Nietzsche-Studium braucht. [...] Nietzsches Werk spricht f\u00fcr sich selbst und l\u00e4sst dem Leser dank seines essayistischen Stils auch viel Freiraum f\u00fcr eigene Assoziationen und Entdeckungsreisen. Jedoch auch der ambitionierte Philosophie-Student wird sich \u00fcber diese sch\u00f6ne und preisg\u00fcnstige Sammlung der Originaltexte Nietzsches freuen.<\/div>\r\n<div class=\"source\">kulturbuchtipps.de<\/div>\r\n<\/div>"},"language":{"6074":"","7918":""},"cover":{"6074":"","7918":"Kartoniert"},"pages":{"6074":"6 B\u00e4nde im Schuber, zus XL, 2 075 Seiten","7918":"6 B\u00e4nde, zus XL, 2 075 Seiten"},"edition":{"6074":"Unver\u00e4ndertes eBook der 1. Auflage von 2013","7918":""},"pod":{"6074":"Nein","7918":"Nein"},"copyright_year":{"6074":"","7918":""},"vlb_tix_link":{"6074":"","7918":"https:\/\/neu.vlbtix.de\/products\/9783787341528?type=gtin"},"defaultValues":{"163":"15"}}; 50358 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"8":{"type":"0","value":"PDF","label":"PDF"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 50359 50360 if (typeof window.amxnotif_wrap_attributes === 'function') { 50361 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 50362 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 50363 } 50364 50365 const configurableOptionsComponent = initConfigurableOptions( 50366 '43600', 50367 config 50368 ); 50369 const swatchOptionsComponent = initSwatchOptions( 50370 swatchConfig 50371 ); 50372 50373 // DWS - Configurable product preselect start 50374 const confProdPreSelect = () => { 50375 return { 50376 preselectQuerystringItems() { 50377 var data = {"id":"7918","output":"15"}; 50378 const urlQueryParams = new URLSearchParams(window.location.search); 50379 50380 this.$nextTick(() => { 50381 setTimeout(() => { 50382 const rootEl = this.$root || this.$el; 50383 if (!rootEl) return; 50384 50385 const applySelection = (attrCode, attrValue) => { 50386 if (attrValue === undefined || attrValue === null || attrValue === '') return; 50387 50388 const attributes = Object.values(this.optionConfig.attributes || {}); 50389 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 50390 50391 if (targetAttr) { 50392 const attrId = String(targetAttr.id); 50393 const optionVal = String(attrValue); 50394 50395 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 50396 50397 if (inputEl) { 50398 inputEl.click(); 50399 inputEl.dispatchEvent(new Event('change', { 50400 bubbles: true 50401 })); 50402 } else { 50403 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 50404 if (selectEl) { 50405 selectEl.value = optionVal; 50406 selectEl.dispatchEvent(new Event('change', { 50407 bubbles: true 50408 })); 50409 } 50410 } 50411 50412 this.changeOption(attrId, optionVal, false); 50413 } 50414 }; 50415 50416 if (data && typeof data === 'object') {
50417 Object.keys(data).forEach(key => applySelection(key, data[key])); 50418 } 50419 50420 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 50421 if (attribute && attribute.code) { 50422 let optionValue = urlQueryParams.get(attribute.code); 50423 if (optionValue) { 50424 let optionId = false; 50425 const attributes = Object.values(this.optionConfig.attributes || {}); 50426 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 50427 50428 let found = false; 50429 Object.values(targetAttr.options).map(option => { 50430 if (found === false && option.label === optionValue) { 50431 optionId = option.id; 50432 found = true; 50433 } 50434 }); 50435 50436 const attrId = String(targetAttr.id); 50437 let optionVal = String(optionValue); 50438 if (found) { 50439 optionVal = String(optionId); 50440 } 50441 50442 applySelection(attribute.code, optionVal); 50443 } 50444 } 50445 }); 50446 }, 100); 50447 }); 50448 } 50449 } 50450 }; 50451 // DWS - Configurable product preselect end 50452 50453 const result = Object.assign( 50454 configurableOptionsComponent, 50455 swatchOptionsComponent, { 50456 productId: '43600', 50457 productIndex: 0, 50458 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 50459 showSwatches: false, 50460 precalcOptions: {}, 50461 originalInit: configurableOptionsComponent.init, 50462 init() { 50463 try { 50464 this.precalcOptions = {}; 50465 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 50466 this.preselectQuerystringItems(); 50467 if (Array.isArray(attrSource)) { 50468 attrSource.forEach(attr => { 50469 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 50470 }); 50471 } else if (attrSource && typeof attrSource === 'object') { 50472 Object.keys(attrSource).forEach(id => { 50473 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 50474 }); 50475 } 50476 } catch (e) { 50477 console.error('Pre-calc error:', e); 50478 } 50479 50480 if (typeof this.originalInit === 'function') { 50481 this.originalInit(); 50482 } 50483 50484 try { 50485 this.initShowSwatchesIntersect(); 50486 } catch (e) { 50487 console.error('intersect error:', e); 50488 } 50489 }, 50490 50491 updateGallery() { 50492 if (!this.productIndex) return; 50493 50494 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 50495 method: 'GET', 50496 headers: { 50497 'Content-Type': 'application/json', 50498 'X-Requested-With': 'XMLHttpRequest' 50499 } 50500 }) 50501 .then(response => response.json()) 50502 .then(data => { 50503 if (data && data.medium) { 50504 window.dispatchEvent(new CustomEvent("update-gallery-43600", { 50505 detail: data.medium 50506 })); 50507 } 50508 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 50509 }, 50510 50511 50512 initShowSwatchesIntersect() { 50513 const observer = new IntersectionObserver(entries => { 50514 if (entries[0].isIntersecting) { 50515 this.showSwatches = true; 50516 observer.disconnect(); 50517 } 50518 }, { 50519 rootMargin: '512px' 50520 }); 50521 observer.observe(this.$el); 50522 }, 50523 getOptions(attrId) { 50524 return this.precalcOptions[attrId] || []; 50525 }, 50526 getOptionsByAttrId() { 50527 return this.getOptions(this.$el.dataset.attributeId); 50528 }, 50529 _getItemId() { 50530 if (this.item && this.item.id) return this.item.id; 50531 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 50532 }, 50533 getSwatchOptionHtmlId() { 50534 const itemId = this._getItemId(); 50535 return itemId ? this.$id(`attribute-option-43600-${itemId}`) : ''; 50536 }, 50537 getSwatchOptionHtmlIdGroup() { 50538 const itemId = this._getItemId(); 50539 return itemId ? [`attribute-option-43600-${itemId}`] : []; 50540 }, 50541 getAttributeSwatchData(attributeId) { 50542 const data = Object.assign({}, this.swatchConfig[attributeId]); 50543 if (data['additional_data']) { 50544 try { 50545 data['details'] = JSON.parse(data['additional_data']); 50546 } catch (e) { 50547 data['details'] = {}; 50548 } 50549 } 50550 return data; 50551 }, 50552 getSwatchType(attributeId, optionId) { 50553 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 50554 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 50555 } 50556 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 50557 this.swatchConfig[attributeId].details.swatch_input_type : 50558 "empty"; 50559 if (type === 'visual') { 50560 const config = this.swatchConfig[attributeId]; 50561 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 50562 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 50563 } 50564 // Fallback to first option type 50565 for (const oId in config) { 50566 if (config[oId] && typeof config[oId].type !== 'undefined') { 50567 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 50568 } 50569 } 50570 } 50571 return type; 50572 }, 50573 mapSwatchTypeNumberToTypeCode(type) { 50574 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 50575 }, 50576 isTextSwatch() { 50577 const itemId = this._getItemId(); 50578 if (!this.$el || !itemId) return false;
50579 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50580 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 50581 }, 50582 50583 getSwatchText() { 50584 const itemId = this._getItemId(); 50585 if (this.item) return this.item.label || ''; 50586 if (!this.$el || !itemId) return ''; 50587 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50588 const options = attrId ? this.getOptions(attrId) : []; 50589 const opt = options.find(o => o.id == itemId); 50590 return opt ? opt.label : ''; 50591 }, 50592 getSwatchBackgroundStyle() { 50593 const itemId = this._getItemId(); 50594 if (!this.$el || !itemId) return ''; 50595 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50596 if (!attrId) return ''; 50597 const type = this.getSwatchType(attrId, itemId); 50598 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 50599 this.swatchConfig[attrId][itemId] : 50600 null; 50601 if (!swatchData) return ''; 50602 if (type === "color") return 'background-color:' + swatchData.value; 50603 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 50604 return ''; 50605 }, 50606 swatchOptionClasses() { 50607 const itemId = this._getItemId(); 50608 if (!this.$el || !itemId) return {}; 50609 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50610 return { 50611 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 50612 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 50613 'w-6 h-6': !this.isTextSwatch() 50614 } 50615 }, 50616 50617 onFocusSwatchItem() { 50618 const itemId = this._getItemId(); 50619 if (itemId) this.focusedLabel = itemId; 50620 }, 50621 onChangeOption() { 50622 const itemId = this._getItemId(); 50623 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 50624 if (attrId && itemId) this.changeOption(attrId, itemId); 50625 }, 50626 changeOption(attributeId, value) { 50627 if (value === '') { 50628 return; 50629 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 50630 } else { 50631 this.selectedValues[attributeId] = value; 50632 } 50633 50634 this.findSimpleIndex(); 50635 this.findAllowedAttributeOptions(); 50636 this.updatePrices(); 50637 this.updateGallery(); 50638 50639 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 50640 this.findProductIdsForPartialSelection(this.selectedValues) : []; 50641 50642 const eventDetail = { 50643 productId: this.productId, 50644 optionId: attributeId, 50645 value: value, 50646 productIndex: this.productIndex || 0, 50647 selectedValues: this.selectedValues, 50648 candidates: candidates, 50649 sourceElement: this.$el 50650 }; 50651 50652 // Dispatch for Amasty 50653 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 50654 detail: eventDetail 50655 })); 50656 50657 // Dispatch for Hyva listing 50658 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 50659 detail: eventDetail 50660 })); 50661 }, 50662 50663 50664 clearOptionIfActive() { 50665 const itemId = this._getItemId(); 50666 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 50667 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 50668 this.changeOption(attrId, ''); 50669 50670 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 50671 if (!input && this.$el?.querySelector) { 50672 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 50673 } 50674 if (!input && this.$el?.closest) { 50675 const root = this.$el.closest('[data-product-id]') || this.$el; 50676 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 50677 } 50678 if (input) { 50679 input.checked = false;
50680 } 50681 } 50682 }, 50683 get optionIsEnabled() { 50684 const itemId = this._getItemId(); 50685 if (!this.$el || !itemId) return true; 50686 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50687 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 50688 return !!allowedOptions.find(opt => opt.id == itemId); 50689 }, 50690 get isSelected() { 50691 const itemId = this._getItemId(); 50692 if (!this.$el || !itemId) return false; 50693 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50694 return attrId ? (this.selectedValues[attrId] == itemId) : false; 50695 }, 50696 get isSwatchRequired() { 50697 if (!this.$el) return false; 50698 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50699 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 50700 }, 50701 focusedLabel: false, 50702 activeTooltipItem: false, 50703 tooltipPositionElement: false,
50704 setActiveTooltipItem() { 50705 const itemId = this._getItemId(); 50706 if (!this.$el || !itemId) return; 50707 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 50708 this.activeTooltipItem = { 50709 attribute: attrId, 50710 item: itemId, 50711 index: 0 50712 }; 50713 this.tooltipPositionElement = this.$event ? this.$event.target : null; 50714 }, 50715 unsetActiveTooltipItem() { 50716 this.activeTooltipItem = false; 50717 } 50718 }, 50719 confProdPreSelect() 50720 ); 50721 50722 if (result.optionConfig && result.optionConfig.attributes) { 50723 const attributes = result.optionConfig.attributes; 50724 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 50725 let source = attributes; 50726 if (Array.isArray(attributes)) { 50727 source = {}; 50728 attributes.forEach(attr => { 50729 if (attr && attr.id) source[attr.id] = attr; 50730 }); 50731 } 50732 const values = Object.values(source); 50733 const wrapper = Object.assign(values, source); 50734 Object.defineProperty(wrapper, '__amxnotifWrapped', { 50735 value: true, 50736 enumerable: false 50737 }); 50738 result.optionConfig.attributes = wrapper; 50739 } 50740 } 50741 50742 return result; 50743 } 50744 50745 window.addEventListener('alpine:init', () => { 50746 Alpine.data('initConfigurableSwatchOptions_43600', initConfigurableSwatchOptions_43600); 50747 }, { 50748 once: true 50749 }); 50750 </script>
50750 50751 50752 <div x-data="initConfigurableSwatchOptions_43600" x-defer="intersect"> 50753 <div class="pagebuilder-home-hidden"> 50754 50755 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 50756 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 50757 <template x-if="showSwatches"> 50758 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-43600-163" role="radiogroup" aria-label="Einband"> 50759 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 50760 <div :data-option-id="item.id" style="display: contents"> 50761 <div x-id="getSwatchOptionHtmlIdGroup"> 50762 <template x-if="optionIsEnabled"> 50763 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
50763self="unsetActiveTooltipItem"> 50764 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-43600-163"> 50765 <div> 50766 <template x-if="isTextSwatch"> 50767 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 50768 </template> 50769 <template x-if="!optionIsActive(163, item.id)"> 50770 <div> 50771 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 50772 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 50773 </svg> 50774 </div> 50775 </template> 50776 </div> 50777 </label> 50778 </template> 50779</div> </div> 50780 </template> 50781 </div> 50782 </template> 50783 </div> 50784 </div> 50785 </div> 50786 </div> 50787 50788 <div class="meta py-4 pagebuilder-home-hidden"> 50789 <div x-data="initMarketingShortText_43600()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 50790 <!-- Marketing short text --> 50791 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 50792 </div> 50793 50794 <!-- Short description --> 50795 </div> 50796 50797 <!-- Series --> 50798 <div class="mb-1"> 50799 <span class="sr-only">Reihe:</span> 50800 <a href="https://meiner.de/fmv_de/programm/reihen/philosophische-bibliothek"> 50801 <span>Philosophische Bibliothek</span> 50802 </a> 50803 651-656 </div> 50804 50805 50806 <div class="mb-1"> 50807 <span x-data="initEditionText_43600()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 50808 <!-- Marketing short text --> 50809 <span class="edition-text" x-html="editionText"></span> 2013, 6 Bände, zus XL, 2 075 Seiten </span> 50810 </div> 50811 50812 </div> 50813 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 50814 50815 <div class="justify-end" x-data="initPriceBox()" @update-prices-43600.window="updatePrice($event.detail);"> 50816 <div class="price-box price-final_price" data-role="priceBox" data-product-id="43600" data-price-box="product-id-43600"><span class="normal-price"> 50817 <span x-data x-id="['product\u002Dprice\u002D43600']" class="price-container price-final_price tax weee"> 50818 <span class="price-label">Ab</span> 50819 <span class="approx-price">ca. </span> 50820 <span :id="$id('product\u002Dprice\u002D43600')" data-price-amount="35.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">35,99 €</span></span> 50821 </span> 50822</span> 50823 50824 50825</div> </div> 50826 50827 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 50828 <div class="open-access-container open-access-container-43600 flex mt-4 ml-auto sm:mt-0 hidden"> 50829 <div class="text-gray-700"> 50830 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 50831 <a href="" target="_blank" class="open-access-external-link m-auto "> 50832 Kostenlos online lesen </a> 50833 </button> 50834 </div> 50835 </div> 50836 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Philosophische Werke in sechs Bänden" aria-label="In den Warenkorb Philosophische Werke in sechs Bänden" data-addto="cart"> 50837 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 50838 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
508380 014 0z"></path> 50839</svg> 50840 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 50841 In den Warenkorb </span> 50842 </button> 50843 50844<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(43600)" aria-label="Zur Wunschliste hinzufügen Philosophische Werke in sechs Bänden" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 50845 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 50846 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 50847</svg> 50848</button> 50849 </div> 50850 </div> 50851 </div> 50852
50852<script> 50853 function initMarketingShortText_43600() { 50854 var marketingShortTextConfig = {}; 50855 if (typeof window.initConfigurableSwatchOptions_43600 === "function") { 50856 var fullConfig = window.initConfigurableSwatchOptions_43600().optionConfig 50857 var marketingShortTextConfig = fullConfig.marketing_short_text; 50858 } 50859 return { 50860 marketingShortText: '', 50861 config: marketingShortTextConfig, 50862 productId: '43600', 50863 getMarketingShortText(detail) { 50864 this.marketingShortText = detail.productIndex ? 50865 this.config[detail.productIndex] : 50866 null; 50867 }, 50868 eventListeners: { 50869 ['@listing-configurable-selection-changed.window'](event) { 50870 if (this.productId == event.detail.productId) { 50871 this.getMarketingShortText(event.detail); 50872 } 50873 50874 } 50875 } 50876 } 50877 } 50878 50879 function initEditionText_43600() { 50880 var editionTextConfig = {}; 50881 if (typeof window.initConfigurableSwatchOptions_43600 === "function") { 50882 var fullConfig = window.initConfigurableSwatchOptions_43600().optionConfig 50883 var editionTextConfig = fullConfig.edition; 50884 } 50885 return { 50886 editionText: '', 50887 config: editionTextConfig, 50888 productId: '43600', 50889 getEditionText(detail) { 50890 this.editionText = detail.productIndex ? 50891 this.config[detail.productIndex] : 50892 null; 50893 }, 50894 eventListeners: { 50895 ['@listing-configurable-selection-changed.window'](event) { 50896 if (this.productId == event.detail.productId) { 50897 this.getEditionText(event.detail); 50898 } 50899 50900 } 50901 } 50902 } 50903 } 50904 </script>
50904 50905 </form> 50906 50907 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/40056/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="Werk17220"> 50908 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="40056"> 50909 <a href="https://meiner.de/fmv_de/chronik-der-philosophischen-werke-neuausgabe-17220" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 50910 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-40056.window="$el.src = $event.detail" alt="Chronik der philosophischen Werke. Neuausgabe" title="Chronik der philosophischen Werke. Neuausgabe" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787322411_5.jpg" :style="{ 50911 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 50912 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 50913 }"> 50914 </a> 50915 <div class="product-info flex flex-col flex-grow "> 50916 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 50917 <div class="mb-2 text-sm text-gray-500 font-medium"> 50918 <a href="https://meiner.de/fmv_de/person/Arnim-Regenbogen-3899/" class="mb-2"> 50919 Arnim Regenbogen </a> 50920 <span>|</span> 50921 <a href="https://meiner.de/fmv_de/person/Arnim-Regenbogen-3899/" class="mb-2"> 50922 Arnim Regenbogen (Hrsg.) 50923 </a> 50924 </div> 50925 <a class="product-item-link" href="https://meiner.de/fmv_de/chronik-der-philosophischen-werke-neuausgabe-17220"> 50926 Chronik der philosophischen Werke. Neuausgabe </a> 50927 </div> 50928 50929 <div x-data="initEditionText_40056()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 50930 <!-- Marketing short text --> 50931 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 50932 </div> 50933 </div> 50934 50935 <div class="py-1 grid mb-4 "> 50936 50937 <div x-data="initStockSubscribe" @configurable-select-changed.window="handleConfigurableSelectChanged" @configurable-selection-changed.window="handleConfigurableSelectChanged" x-show="containerVisible" class="amxnotif-container py-1 order-last" :class="containerClasses" data-config='{"isAvailable":true,"isShowAlert":false,"isProductSalable":true,"isListMode":true,"isGridMode":false,"validationLabel":"Please enter a valid email address (Ex: [email protected])","isConfigurable":true,"isGDPREnabled":true,"isUsePopup":true,"productIdentifier":40056,"mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","0":{"productId":40056,"isAvailable":true,"isOutofstockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"19341":"1"},"childProductsAlertStatus":{"19341":"0"},"indexMapping":{"163:15":19341},"availabilityMessages":{"19341":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"40056":{"status":0},"19341":{"status":0}}},"availabilityMessages":{"19341":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"40056":{"status":0},"19341":{"status":0}}}'> 50938 <template x-if="containerVisible"> 50939 <!-- Popup Trigger --> 50940 <div> 50941 <button @click.prevent="openModal" class="hover:underline focus:outline-none focus:outline-hidden 50942 focus:ring-2 " aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist.">
50943 <span class="text-orange-400"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6 inline" width="24" height="24" role="img"> 50944 <path stroke-linecap="round" stroke-linejoin="round" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path> 50945<title>bell</title></svg> 50946</span> 50947 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </button> 50948 50949 <!-- Popup Modal --> 50950 <template x-if="showModal"> 50951 <template x-teleport=".page-wrapper"> 50952 <div x-cloak class="fixed inset-0 flex items-center justify-center 50953 bg-black bg-opacity-50 bg-black/50 z-50" @click.self="hideModal" role="dialog" aria-modal="true" :aria-labelledby="popupModalTitleId"> 50954 <div class="relative bg-white rounded-lg shadow-xl 50955 max-w-md w-full mx-4 max-h-[90vh] overflow-auto"> 50956 <div class="p-6"> 50957 <!-- Subscription Form for Popup --> 50958 <form method="post" @submit.prevent="submitSubscribe" action="https://meiner.de/fmv_de/xnotif/email/stock/" class="space-y-4"> 50959 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> 50960 <h3 :id="popupModalTitleId" class="text-lg font-medium text-gray-900"> 50961 Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist. </h3> 50962 50963 <div class="flex flex-col gap-3"> 50964 <div class="flex-grow grow"> 50965 <input name="guest_email" @input.debounce.500ms="checkValidation" class="w-full px-3 py-2 border border-gray-300 rounded-md 50966 shadow-xs focus:outline-none focus:outline-hidden 50967 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 50968 disabled:bg-gray-100" x-ref="guest_email" :id="popupGuestEmailId" type="email" placeholder="E-Mail eingeben" required :disabled="buttonDisabled" :value="emailInput" @change="emailInputChangeEvent" :aria-describedby="popupValidationId"> 50969 <div :id="popupValidationId" class="sr-only" role="alert" x-text="validationMessage"></div> 50970 </div> 50971 <input type="hidden" name="product_id" :value="currentProductId"> 50972 <input type="hidden" name="type" value="email"> 50973 50974 50975 <input type="hidden" name="uenc" value="aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~"> 50976 50977 <div class="amxnotif_guest_action"> 50978 <button type="submit" class="btn-primary w-full px-4 py-2 font-medium 50979 rounded-md focus:outline-none 50980 focus:outline-hidden focus:ring-2 50981 focus:ring-offset-2 disabled:opacity-50 50982 disabled:cursor-not-allowed transition-colors" aria-label="Benachrichtigen Sie mich, wenn dieser Artikel verfügbar ist."> 50983 Benachrichtigen </button> 50984 </div> 50985 </div> 50986 50987 <div class="flex items-start pt-2"> 50988 <input type="checkbox" name="gdrp" :id="popupGdprId" title="GDPR Agreement" value="1" :disabled="buttonDisabled" :checked="isGdprChecked" @change="isGdprCheckedChangeEvent" required class="mt-0.5 focus:ring-blue-500 h-4 w-4 50989 text-blue-600 border-gray-300 rounded-sm"> 50990 <label class="amxnotif-stock-gdrp-label cursor-pointer 50991 pl-3 text-sm text-gray-700 leading-tight" :for="popupGdprId"> 50992 Ich habe die <a href="/datenschutz">Datenschutzbestimmungen</a> gelesen und akzeptiere sie. </label> 50993 </div> 50994 </form> 50995 </div> 50996 50997 <button @click="hideModal" class="absolute top-4 right-4 text-gray-400 50998 hover:text-gray-600 transition-colors" aria-label="Schließen"> 50999 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> 51000 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 51001<title>x</title></svg> 51002 </button> 51003 </div> 51004 </div> 51005 </template> 51006 </template> 51007 </div> 51008 </template> 51009 </div> 51010 51011<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_40056" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":40056,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":1,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":{"19341":"1"},"childProductsAlertStatus":{"19341":"0"},"indexMapping":"{\u0022163:15\u0022:19341}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":true,"productIdentifier":40056,"availabilityMessages":{"19341":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"40056":{"status":0},"19341":{"status":0}}}'> 51012 51013 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
51014 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 51015 <span x-html="optionsLabelText"></span> 51016 </p> 51017</div> </div> 51018 51019
51019<script> 51020 window.amxnotif_get_options = window.amxnotif_get_options || function(config, attrId) { 51021 try { 51022 const attributes = (config && config.attributes) ? config.attributes : null; 51023 if (!attributes) return []; 51024 let attr = null; 51025 if (Array.isArray(attributes)) { 51026 for (let i = 0; i < attributes.length; i++) { 51027 const a = attributes[i]; 51028 if (a && a.id == attrId) { 51029 attr = a; 51030 break; 51031 } 51032 } 51033 } else { 51034 attr = attributes[attrId]; 51035 } 51036 return (attr && attr.options && Array.isArray(attr.options)) ? attr.options : []; 51037 } catch (e) { 51038 return []; 51039 } 51040 }; 51041 51042 function initConfigurableSwatchOptions_40056() { 51043 const config = {"attributes":{"163":{"id":"163","code":"output","label":"Einband","options":[{"id":"15","label":"Kartoniert","products":["19341"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"19341":{"baseOldPrice":{"amount":74.672896196262},"oldPrice":{"amount":79.9},"basePrice":{"amount":74.672896196262},"finalPrice":{"amount":79.9},"tierPrices":[],"msrpPrice":{"amount":0},"isApproxPrice":false}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":74.672896196262},"oldPrice":{"amount":79.9},"basePrice":{"amount":67.142856142857},"finalPrice":{"amount":79.9},"isApproxPrice":null},"productId":"40056","chooseText":"W\u00e4hlen Sie eine Option...","images":[],"index":{"19341":{"163":"15"}},"salable":{"163":{"15":["19341"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"fmv","sku":{"19341":"004683"},"output":{"19341":"Kartoniert"},"original_name":{"19341":""},"openaccess_license_link":{"19341":""},"openaccess_license_name":{"19341":""},"openaccess_external_link":{"19341":""},"gpsr_safety_info":{"19341":""},"description":{"19341":"Die Chronik der philosophischen Werke ist ein Lexikon von ganz besonderer Art: Sie gibt annotierte \u00dcbersicht \u00fcber die zeitliche N\u00e4he (oder auch Ferne) der Erstver\u00f6ffentlichungen bedeutender philosophischer Schriften und Werke seit Gutenberg, geordnet nach dem Erscheinungsjahr.<br\/><br\/>Die Chronik gibt f\u00fcr jedes aufgef\u00fchrte Werk eine kurze Inhaltsangabe und gliedert sich \u2013 anders als andere Lexika, die die Werke entweder nach Autorennamen oder nach dem Titel in alphabethischer Folge auflisten \u2013 nach dem Jahr der Erstver\u00f6ffentlichung im Druck. Damit wird zugleich der Blick auf das Umfeld aller bedeutenden philosophischen Publikationen er\u00f6ffnet, die zeitnah oder zeitgleich oder kurz darauf hier oder dort erschienen waren und so allgemein zug\u00e4nglich wurden.<br\/><br\/>Dies erm\u00f6glicht \u00fcberraschende Erkenntnisse \u00fcber die philosophische Publikationslandschaft eines bestimmten Zeitabschnitts und den Nachvollzug neuer, bisher unbeachtet gebliebener Querverbindungen oder wechselseitiger Einfl\u00fcsse, die seit der Einf\u00fchrung des Buchdrucks den Diskurs sehr viel offener und umtriebiger bestimmten und belebten als in den alten Zeiten der Klosterhandschriften. Die Chronik der philosophischen Werke ist damit ein getreuer Spiegel der Entwicklung und Ausdifferenzierung des Denkens in den Zeiten seit Gutenberg. Die Neuausgabe ist um die in der vorhergehenden Ausgabe noch fehlenden Jahre 1989\u20132019 erg\u00e4nzt und nun erstmals auch in Einzelb\u00e4nden erh\u00e4ltlich."},"doi":{"19341":""},"isbn":{"19341":"978-3-7873-4683-7"},"marketing_short_text":{"19341":"Erweiterte Neuausgabe der einzigartigen Chronologie philosophischen Denkens, jetzt weitergef\u00fchrt bis 2019"},"recension_text":{"19341":"<div class=\"reviews\">\r\n<div class=\"review\">Das Nachschlagewerk ist ein unverzichtbares Standardwerk f\u00fcr die philosophische Arbeit und geh\u00f6rt in jede Handbibliothek aller an der Philosophie Interessierter.<\/div>\r\n<div class=\"source\">S. D\u00fcfel, Lehrerbibliothek.de<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Umso gr\u00f6\u00dfer das Vergn\u00fcgen \u00fcber die Chronik der philosophischen Werke, die sich als Wegweiser durch die Geschichte der westlichen Philosophie anbietet. Mit ihrer Hilfe kann man sich manche Trittleiter basteln. Zum Gl\u00fcck wird es einem nicht leichter als m\u00f6glich gemacht.<\/div>\r\n<div class=\"source\">S\u00fcddeutsche Zeitung (Jens Bisky) 25.02.2012<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Es ist ungemein spannend, den Verlauf der Ver\u00f6ffentlichungen zu verfolgen. Regenbogen bietet gute Einleitungen zu den Jahrhunderten. Seine neuartige Chronik zeigt, wie die Gegenwart eines Gedankens aussah. Wer wissen will, wann und wie Gedanken aus den akademischen Zirkeln \u00fcber den Buchdruck die \u00f6ffentliche Diskussion pr\u00e4gten, findet aufregende Antworten. F\u00fcr mich eine der wichtigsten Entdeckungen des B\u00fccherjahres.<\/div>\r\n<div class=\"source\">Gert Scobel in Philosophie Magazin 2\/2012<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Besondere Empfehlung des Norddeutschen Rundfunks und der S\u00fcddeutschen Zeitung auf der Sachbuchbestenliste im Januar 2012!<\/div>\r\n<div class=\"source\">NDR \/ SZ<\/div>\r\n<\/div> <div class=\"reviews\">\r\n<div class=\"review\">Man wird das Buch auch dann n\u00fctzlich finden und zur schnellen Information konsultieren, wenn man nicht vorrangig an der zeitlichen Konstellation interessiert ist. Zwar gibt es, wie erw\u00e4hnt, auch einige andere Werklexika, doch werden diese auf geschickte Weise von dem vorliegenden Werk erg\u00e4nzt. Der Nutzen des Bandes als Hilfsmittel wird durch ein detailliertes Register der Titel und Titelstichw\u00f6rter (!) sowie ein Register der Autoren und Werke erh\u00f6ht.<\/div>\r\n<div class=\"source\">Informationsmittel (IFB) : digitales Rezensionsorgan f\u00fcr Bibliothek und Wissenschaft<\/div>\r\n<\/div>"},"language":{"19341":""},"cover":{"19341":"Kartoniert"},"pages":{"19341":"zusammen. ca. 800 Seiten"},"edition":{"19341":""},"pod":{"19341":"Nein"},"copyright_year":{"19341":""},"vlb_tix_link":{"19341":"https:\/\/neu.vlbtix.de\/products\/9783787346837?type=gtin"},"defaultValues":{"163":"15"}}; 51044 const swatchConfig = {"163":{"15":{"type":"0","value":"Kartoniert","label":"Kartoniert"},"additional_data":"{\"swatch_input_type\":\"text\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":0}"}}; 51045 51046 if (typeof window.amxnotif_wrap_attributes === 'function') { 51047 if (config && config.attributes) config.attributes = window.amxnotif_wrap_attributes(config.attributes); 51048 if (swatchConfig && swatchConfig.attributes) swatchConfig.attributes = window.amxnotif_wrap_attributes(swatchConfig.attributes); 51049 } 51050 51051 const configurableOptionsComponent = initConfigurableOptions( 51052 '40056', 51053 config 51054 ); 51055 const swatchOptionsComponent = initSwatchOptions( 51056 swatchConfig 51057 ); 51058 51059 // DWS - Configurable product preselect start 51060 const confProdPreSelect = () => { 51061 return { 51062 preselectQuerystringItems() { 51063 var data = {"id":"19341","output":"15"}; 51064 const urlQueryParams = new URLSearchParams(window.location.search); 51065 51066 this.$nextTick(() => { 51067 setTimeout(() => { 51068 const rootEl = this.$root || this.$el; 51069 if (!rootEl) return; 51070 51071 const applySelection = (attrCode, attrValue) => { 51072 if (attrValue === undefined || attrValue === null || attrValue === '') return; 51073 51074 const attributes = Object.values(this.optionConfig.attributes || {}); 51075 const targetAttr = attributes.find(attr => attr && attr.code == attrCode); 51076 51077 if (targetAttr) { 51078 const attrId = String(targetAttr.id); 51079 const optionVal = String(attrValue); 51080 51081 const inputEl = rootEl.querySelector(`input[name="super_attribute[${attrId}]"][value="${optionVal}"]`); 51082 51083 if (inputEl) { 51084 inputEl.click(); 51085 inputEl.dispatchEvent(new Event('change', { 51086 bubbles: true 51087 })); 51088 } else { 51089 const selectEl = rootEl.querySelector(`select[name="super_attribute[${attrId}]"]`); 51090 if (selectEl) { 51091 selectEl.value = optionVal; 51092 selectEl.dispatchEvent(new Event('change', { 51093 bubbles: true 51094 })); 51095 } 51096 } 51097 51098 this.changeOption(attrId, optionVal, false); 51099 } 51100 }; 51101 51102 if (data && typeof data === 'object') {
51103 Object.keys(data).forEach(key => applySelection(key, data[key])); 51104 } 51105 51106 Object.values(this.optionConfig.attributes || {}).forEach(attribute => { 51107 if (attribute && attribute.code) { 51108 let optionValue = urlQueryParams.get(attribute.code); 51109 if (optionValue) { 51110 let optionId = false; 51111 const attributes = Object.values(this.optionConfig.attributes || {}); 51112 const targetAttr = attributes.find(attribute => attribute && attribute.code == attribute.code); 51113 51114 let found = false; 51115 Object.values(targetAttr.options).map(option => { 51116 if (found === false && option.label === optionValue) { 51117 optionId = option.id; 51118 found = true; 51119 } 51120 }); 51121 51122 const attrId = String(targetAttr.id); 51123 let optionVal = String(optionValue); 51124 if (found) { 51125 optionVal = String(optionId); 51126 } 51127 51128 applySelection(attribute.code, optionVal); 51129 } 51130 } 51131 }); 51132 }, 100); 51133 }); 51134 } 51135 } 51136 }; 51137 // DWS - Configurable product preselect end 51138 51139 const result = Object.assign( 51140 configurableOptionsComponent, 51141 swatchOptionsComponent, { 51142 productId: '40056', 51143 productIndex: 0, 51144 mediaCallback: "https\u003A\u002F\u002Fmeiner.de\u002Ffmv_de\u002Fswatches\u002Fajax\u002Fmedia\u002F", 51145 showSwatches: false, 51146 precalcOptions: {}, 51147 originalInit: configurableOptionsComponent.init, 51148 init() { 51149 try { 51150 this.precalcOptions = {}; 51151 const attrSource = this.optionConfig.attributes_map || this.optionConfig.attributes || []; 51152 this.preselectQuerystringItems(); 51153 if (Array.isArray(attrSource)) { 51154 attrSource.forEach(attr => { 51155 if (attr && attr.id) this.precalcOptions[attr.id] = attr.options || []; 51156 }); 51157 } else if (attrSource && typeof attrSource === 'object') { 51158 Object.keys(attrSource).forEach(id => { 51159 if (attrSource[id] && attrSource[id].options) this.precalcOptions[id] = attrSource[id].options; 51160 }); 51161 } 51162 } catch (e) { 51163 console.error('Pre-calc error:', e); 51164 } 51165 51166 if (typeof this.originalInit === 'function') { 51167 this.originalInit(); 51168 } 51169 51170 try { 51171 this.initShowSwatchesIntersect(); 51172 } catch (e) { 51173 console.error('intersect error:', e); 51174 } 51175 }, 51176 51177 updateGallery() { 51178 if (!this.productIndex) return; 51179 51180 fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { 51181 method: 'GET', 51182 headers: { 51183 'Content-Type': 'application/json', 51184 'X-Requested-With': 'XMLHttpRequest' 51185 } 51186 }) 51187 .then(response => response.json()) 51188 .then(data => { 51189 if (data && data.medium) { 51190 window.dispatchEvent(new CustomEvent("update-gallery-40056", { 51191 detail: data.medium 51192 })); 51193 } 51194 }).catch(e => console.warn('[Amxnotif] Gallery update failed:', e)); 51195 }, 51196 51197 51198 initShowSwatchesIntersect() { 51199 const observer = new IntersectionObserver(entries => { 51200 if (entries[0].isIntersecting) { 51201 this.showSwatches = true; 51202 observer.disconnect(); 51203 } 51204 }, { 51205 rootMargin: '512px' 51206 }); 51207 observer.observe(this.$el); 51208 }, 51209 getOptions(attrId) { 51210 return this.precalcOptions[attrId] || []; 51211 }, 51212 getOptionsByAttrId() { 51213 return this.getOptions(this.$el.dataset.attributeId); 51214 }, 51215 _getItemId() { 51216 if (this.item && this.item.id) return this.item.id; 51217 return this.$el?.closest('[data-option-id]')?.dataset.optionId; 51218 }, 51219 getSwatchOptionHtmlId() { 51220 const itemId = this._getItemId(); 51221 return itemId ? this.$id(`attribute-option-40056-${itemId}`) : ''; 51222 }, 51223 getSwatchOptionHtmlIdGroup() { 51224 const itemId = this._getItemId(); 51225 return itemId ? [`attribute-option-40056-${itemId}`] : []; 51226 }, 51227 getAttributeSwatchData(attributeId) { 51228 const data = Object.assign({}, this.swatchConfig[attributeId]); 51229 if (data['additional_data']) { 51230 try { 51231 data['details'] = JSON.parse(data['additional_data']); 51232 } catch (e) { 51233 data['details'] = {}; 51234 } 51235 } 51236 return data; 51237 }, 51238 getSwatchType(attributeId, optionId) { 51239 if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) { 51240 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 51241 } 51242 const type = (this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details) ? 51243 this.swatchConfig[attributeId].details.swatch_input_type : 51244 "empty"; 51245 if (type === 'visual') { 51246 const config = this.swatchConfig[attributeId]; 51247 if (config[optionId] && typeof config[optionId].type !== 'undefined') { 51248 return this.mapSwatchTypeNumberToTypeCode(config[optionId].type); 51249 } 51250 // Fallback to first option type 51251 for (const oId in config) { 51252 if (config[oId] && typeof config[oId].type !== 'undefined') { 51253 return this.mapSwatchTypeNumberToTypeCode(config[oId].type); 51254 } 51255 } 51256 } 51257 return type; 51258 }, 51259 mapSwatchTypeNumberToTypeCode(type) { 51260 return ["text", "color", "image", "empty"][parseInt(type)] || "text"; 51261 }, 51262 isTextSwatch() { 51263 const itemId = this._getItemId(); 51264 if (!this.$el || !itemId) return false;
51265 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51266 return attrId ? (this.getSwatchType(attrId, itemId) === 'text') : false; 51267 }, 51268 51269 getSwatchText() { 51270 const itemId = this._getItemId(); 51271 if (this.item) return this.item.label || ''; 51272 if (!this.$el || !itemId) return ''; 51273 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51274 const options = attrId ? this.getOptions(attrId) : []; 51275 const opt = options.find(o => o.id == itemId); 51276 return opt ? opt.label : ''; 51277 }, 51278 getSwatchBackgroundStyle() { 51279 const itemId = this._getItemId(); 51280 if (!this.$el || !itemId) return ''; 51281 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51282 if (!attrId) return ''; 51283 const type = this.getSwatchType(attrId, itemId); 51284 const swatchData = (this.swatchConfig[attrId] && this.swatchConfig[attrId][itemId]) ? 51285 this.swatchConfig[attrId][itemId] : 51286 null; 51287 if (!swatchData) return ''; 51288 if (type === "color") return 'background-color:' + swatchData.value; 51289 if (type === "image") return "background: #fff url('" + swatchData.value + "') no-repeat center"; 51290 return ''; 51291 }, 51292 swatchOptionClasses() { 51293 const itemId = this._getItemId(); 51294 if (!this.$el || !itemId) return {}; 51295 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51296 return { 51297 'border-gray-100 ring ring-primary/50 ring-2': (attrId && this.selectedValues[attrId] == itemId), 51298 'border-gray-300': (attrId && this.selectedValues[attrId] != itemId), 51299 'w-6 h-6': !this.isTextSwatch() 51300 } 51301 }, 51302 51303 onFocusSwatchItem() { 51304 const itemId = this._getItemId(); 51305 if (itemId) this.focusedLabel = itemId; 51306 }, 51307 onChangeOption() { 51308 const itemId = this._getItemId(); 51309 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 51310 if (attrId && itemId) this.changeOption(attrId, itemId); 51311 }, 51312 changeOption(attributeId, value) { 51313 if (value === '') { 51314 return; 51315 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId); 51316 } else { 51317 this.selectedValues[attributeId] = value; 51318 } 51319 51320 this.findSimpleIndex(); 51321 this.findAllowedAttributeOptions(); 51322 this.updatePrices(); 51323 this.updateGallery(); 51324 51325 const candidates = (typeof this.findProductIdsForPartialSelection === 'function') ? 51326 this.findProductIdsForPartialSelection(this.selectedValues) : []; 51327 51328 const eventDetail = { 51329 productId: this.productId, 51330 optionId: attributeId, 51331 value: value, 51332 productIndex: this.productIndex || 0, 51333 selectedValues: this.selectedValues, 51334 candidates: candidates, 51335 sourceElement: this.$el 51336 }; 51337 51338 // Dispatch for Amasty 51339 window.dispatchEvent(new CustomEvent('configurable-select-changed', { 51340 detail: eventDetail 51341 })); 51342 51343 // Dispatch for Hyva listing 51344 window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { 51345 detail: eventDetail 51346 })); 51347 }, 51348 51349 51350 clearOptionIfActive() { 51351 const itemId = this._getItemId(); 51352 const attrId = this.$el?.closest('[data-attribute-id]')?.dataset.attributeId; 51353 if (attrId && itemId && this.selectedValues[attrId] == itemId) { 51354 this.changeOption(attrId, ''); 51355 51356 let input = this.$el && this.$el.tagName === 'INPUT' ? this.$el : null; 51357 if (!input && this.$el?.querySelector) { 51358 input = this.$el.querySelector(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 51359 } 51360 if (!input && this.$el?.closest) { 51361 const root = this.$el.closest('[data-product-id]') || this.$el; 51362 input = root?.querySelector?.(`input[data-option-id="${itemId}"][name="super_attribute[${attrId}]"]`); 51363 } 51364 if (input) { 51365 input.checked = false;
51366 } 51367 } 51368 }, 51369 get optionIsEnabled() { 51370 const itemId = this._getItemId(); 51371 if (!this.$el || !itemId) return true; 51372 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51373 const allowedOptions = attrId ? (this.allowedAttributeOptions[attrId] || []) : []; 51374 return !!allowedOptions.find(opt => opt.id == itemId); 51375 }, 51376 get isSelected() { 51377 const itemId = this._getItemId(); 51378 if (!this.$el || !itemId) return false; 51379 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51380 return attrId ? (this.selectedValues[attrId] == itemId) : false; 51381 }, 51382 get isSwatchRequired() { 51383 if (!this.$el) return false; 51384 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51385 return attrId ? ((this.allowedAttributeOptions[attrId] || []).length > 0) : false; 51386 }, 51387 focusedLabel: false, 51388 activeTooltipItem: false, 51389 tooltipPositionElement: false,
51390 setActiveTooltipItem() { 51391 const itemId = this._getItemId(); 51392 if (!this.$el || !itemId) return; 51393 const attrId = this.$el.closest('[data-attribute-id]')?.dataset.attributeId; 51394 this.activeTooltipItem = { 51395 attribute: attrId, 51396 item: itemId, 51397 index: 0 51398 }; 51399 this.tooltipPositionElement = this.$event ? this.$event.target : null; 51400 }, 51401 unsetActiveTooltipItem() { 51402 this.activeTooltipItem = false; 51403 } 51404 }, 51405 confProdPreSelect() 51406 ); 51407 51408 if (result.optionConfig && result.optionConfig.attributes) { 51409 const attributes = result.optionConfig.attributes; 51410 if (attributes && typeof attributes === 'object' && !attributes.__amxnotifWrapped) { 51411 let source = attributes; 51412 if (Array.isArray(attributes)) { 51413 source = {}; 51414 attributes.forEach(attr => { 51415 if (attr && attr.id) source[attr.id] = attr; 51416 }); 51417 } 51418 const values = Object.values(source); 51419 const wrapper = Object.assign(values, source); 51420 Object.defineProperty(wrapper, '__amxnotifWrapped', { 51421 value: true, 51422 enumerable: false 51423 }); 51424 result.optionConfig.attributes = wrapper; 51425 } 51426 } 51427 51428 return result; 51429 } 51430 51431 window.addEventListener('alpine:init', () => { 51432 Alpine.data('initConfigurableSwatchOptions_40056', initConfigurableSwatchOptions_40056); 51433 }, { 51434 once: true 51435 }); 51436 </script>
51436 51437 51438 <div x-data="initConfigurableSwatchOptions_40056" x-defer="intersect"> 51439 <div class="pagebuilder-home-hidden"> 51440 51441 <div class="swatch-attribute border-t last:border-b border-container output" data-attribute-id="163"> 51442 <div class="w-full overflow-x-hidden swatch-attribute-options min-h-14"> 51443 <template x-if="showSwatches"> 51444 <div class="flex flex-nowrap w-full overflow-auto snap items-center py-1" id="attribute-label-40056-163" role="radiogroup" aria-label="Einband"> 51445 <template x-for="(item, index) in getOptionsByAttrId" x-bind:key="item.id" data-attribute-id="163"> 51446 <div :data-option-id="item.id" style="display: contents"> 51447 <div x-id="getSwatchOptionHtmlIdGroup"> 51448 <template x-if="optionIsEnabled"> 51449 <label :for="getSwatchOptionHtmlId" class="swatch-option relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit" :class="swatchOptionClasses" :style="getSwatchBackgroundStyle" @mouseenter.self="setActiveTooltipItem" @mouseleave.
51449self="unsetActiveTooltipItem"> 51450 <input :id="getSwatchOptionHtmlId" :value="item.id" :checked="isSelected" name="super_attribute[163]" type="radio" class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input" style="z-index:-1" @focus="onFocusSwatchItem" @blur="blurLabel" @change="onChangeOption" :required="isSwatchRequired" :data-option-id="item.id" :aria-label="getSwatchText" aria-describedby="attribute-label-40056-163"> 51451 <div> 51452 <template x-if="isTextSwatch"> 51453 <div :data-option-id="item.id" x-html="getSwatchText" class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true"></div> 51454 </template> 51455 <template x-if="!optionIsActive(163, item.id)"> 51456 <div> 51457 <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25"> 51458 <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line> 51459 </svg> 51460 </div> 51461 </template> 51462 </div> 51463 </label> 51464 </template> 51465</div> </div> 51466 </template> 51467 </div> 51468 </template> 51469 </div> 51470 </div> 51471 </div> 51472 </div> 51473 51474 <div class="meta py-4 pagebuilder-home-hidden"> 51475 <div x-data="initMarketingShortText_40056()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 51476 <!-- Marketing short text --> 51477 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 51478 </div> 51479 51480 <!-- Short description --> 51481 <div class="short-description"> 51482 Die Chronik der philosophischen Werke ist ein Lexikon von ganz besonderer Art: Sie gibt annotierte Übersicht über die zeitliche Nähe (oder auch Ferne) der Erstveröffentlichungen bedeutender ... <a href="https://meiner.de/fmv_de/chronik-der-philosophischen-werke-neuausgabe-17220" class="underline">mehr</a> 51483 </div> 51484 </div> 51485 51486 <!-- Series --> 51487 51488 51489 <div class="mb-1"> 51490 <span x-data="initEditionText_40056()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 51491 <!-- Marketing short text --> 51492 <span class="edition-text" x-html="editionText"></span> 2025, zusammen. ca. 800 Seiten </span> 51493 </div> 51494 51495 </div> 51496 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 51497 51498 <div class="justify-end" x-data="initPriceBox()" @update-prices-40056.window="updatePrice($event.detail);"> 51499 <div class="price-box price-final_price" data-role="priceBox" data-product-id="40056" data-price-box="product-id-40056"><span class="normal-price"> 51500 <span x-data x-id="['product\u002Dprice\u002D40056']" class="price-container price-final_price tax weee"> 51501 <span class="price-label">Ab</span> 51502 <span class="approx-price">ca. </span> 51503 <span :id="$id('product\u002Dprice\u002D40056')" data-price-amount="79.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">79,90 €</span></span> 51504 </span> 51505</span> 51506 51507 51508</div> </div> 51509 51510 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 51511 <div class="open-access-container open-access-container-40056 flex mt-4 ml-auto sm:mt-0 hidden"> 51512 <div class="text-gray-700"> 51513 <button type="button" title="Kostenlos online lesen" class="btn w-full btn-open-access"> 51514 <a href="" target="_blank" class="open-access-external-link m-auto "> 51515 Kostenlos online lesen </a> 51516 </button> 51517 </div> 51518 </div> 51519 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Chronik der philosophischen Werke. Neuausgabe" aria-label="In den Warenkorb Chronik der philosophischen Werke. Neuausgabe" data-addto="cart"> 51520 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 51521 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
515210 014 0z"></path> 51522</svg> 51523 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 51524 In den Warenkorb </span> 51525 </button> 51526 51527<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(40056)" aria-label="Zur Wunschliste hinzufügen Chronik der philosophischen Werke. Neuausgabe" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 51528 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 51529 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 51530</svg> 51531</button> 51532 </div> 51533 </div> 51534 </div> 51535
51535<script> 51536 function initMarketingShortText_40056() { 51537 var marketingShortTextConfig = {}; 51538 if (typeof window.initConfigurableSwatchOptions_40056 === "function") { 51539 var fullConfig = window.initConfigurableSwatchOptions_40056().optionConfig 51540 var marketingShortTextConfig = fullConfig.marketing_short_text; 51541 } 51542 return { 51543 marketingShortText: '', 51544 config: marketingShortTextConfig, 51545 productId: '40056', 51546 getMarketingShortText(detail) { 51547 this.marketingShortText = detail.productIndex ? 51548 this.config[detail.productIndex] : 51549 null; 51550 }, 51551 eventListeners: { 51552 ['@listing-configurable-selection-changed.window'](event) { 51553 if (this.productId == event.detail.productId) { 51554 this.getMarketingShortText(event.detail); 51555 } 51556 51557 } 51558 } 51559 } 51560 } 51561 51562 function initEditionText_40056() { 51563 var editionTextConfig = {}; 51564 if (typeof window.initConfigurableSwatchOptions_40056 === "function") { 51565 var fullConfig = window.initConfigurableSwatchOptions_40056().optionConfig 51566 var editionTextConfig = fullConfig.edition; 51567 } 51568 return { 51569 editionText: '', 51570 config: editionTextConfig, 51571 productId: '40056', 51572 getEditionText(detail) { 51573 this.editionText = detail.productIndex ? 51574 this.config[detail.productIndex] : 51575 null; 51576 }, 51577 eventListeners: { 51578 ['@listing-configurable-selection-changed.window'](event) { 51579 if (this.productId == event.detail.productId) { 51580 this.getEditionText(event.detail); 51581 } 51582 51583 } 51584 } 51585 } 51586 } 51587 </script>
51587 51588 </form> 51589 51590 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/5325/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="SCHUPP"> 51591 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="5325"> 51592 <a href="https://meiner.de/fmv_de/geschichte-der-philosophie-im-a-berblick-866" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 51593 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-5325.window="$el.src = $event.detail" alt="Geschichte der Philosophie im Überblick" title="Geschichte der Philosophie im Überblick" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787317042.png" :style="{ 51594 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 51595 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 51596 }"> 51597 </a> 51598 <div class="product-info flex flex-col flex-grow "> 51599 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 51600 <div class="mb-2 text-sm text-gray-500 font-medium"> 51601 <a href="https://meiner.de/fmv_de/person/Franz-Schupp-3975/" class="mb-2"> 51602 Franz Schupp </a> 51603 </div> 51604 <a class="product-item-link" href="https://meiner.de/fmv_de/geschichte-der-philosophie-im-a-berblick-866"> 51605 Geschichte der Philosophie im Überblick </a> 51606 </div> 51607 51608 <div x-data="initEditionText_5325()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 51609 <!-- Marketing short text --> 51610 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 51611 </div> 51612 </div> 51613 51614 <div class="py-1 grid mb-4 "> 51615 51616<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_5325" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":5325,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":5325,"availabilityMessages":{"5325":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"5325":{"status":0}}}'> 51617 51618 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 51619 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 51620 <span x-html="optionsLabelText"></span> 51621 </p> 51622</div> </div> 51623 51624 51625 <div class="pagebuilder-home-hidden"> 51626 <div class="mb-2 relative"> 51627 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 51628 <div> 51629 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Kartoniert</div> 51630 </div> 51631 </div> 51632 </div> 51633 </div> 51634 <div class="meta py-4 pagebuilder-home-hidden"> 51635 <div x-data="initMarketingShortText_5325()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 51636 <!-- Marketing short text --> 51637 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 51638 </div> 51639 51640 <!-- Short description --> 51641 </div> 51642 51643 <!-- Series --> 51644 51645 51646 <div class="mb-1">
51647 <span x-data="initEditionText_5325()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 51648 <!-- Marketing short text --> 51649 <span class="edition-text" x-html="editionText"></span> Zusammen 1.624 Seiten </span> 51650 </div> 51651 51652 <div class="mb-1"> 51653 <span>ISBN: </span> 51654 <span>978-3-7873-1704-2</span> 51655 </div> 51656 </div> 51657 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 51658 51659 <div class="justify-end" x-data="initPriceBox()" @update-prices-5325.window="updatePrice($event.detail);"> 51660 <div class="price-box price-final_price" data-role="priceBox" data-product-id="5325" data-price-box="product-id-5325"> 51661 <span x-data x-id="['product\u002Dprice\u002D5325']" class="price-container price-final_price tax weee"> 51662 <span :id="$id('product\u002Dprice\u002D5325')" data-price-amount="68" data-price-type="finalPrice" class="price-wrapper "><span class="price">68,00 €</span></span> 51663 </span> 51664 51665</div> </div> 51666 51667 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 51668 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Geschichte der Philosophie im Überblick" aria-label="In den Warenkorb Geschichte der Philosophie im Überblick" data-addto="cart"> 51669 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 51670 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 51671</svg> 51672 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 51673 In den Warenkorb </span> 51674 </button> 51675 51676<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(5325)" aria-label="Zur Wunschliste hinzufügen Geschichte der Philosophie im Überblick" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 51677 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 51678 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 51679</svg> 51680</button> 51681 </div> 51682 </div> 51683 </div> 51684
51684<script> 51685 function initMarketingShortText_5325() { 51686 var marketingShortTextConfig = {}; 51687 if (typeof window.initConfigurableSwatchOptions_5325 === "function") { 51688 var fullConfig = window.initConfigurableSwatchOptions_5325().optionConfig 51689 var marketingShortTextConfig = fullConfig.marketing_short_text; 51690 } 51691 return { 51692 marketingShortText: '', 51693 config: marketingShortTextConfig, 51694 productId: '5325', 51695 getMarketingShortText(detail) { 51696 this.marketingShortText = detail.productIndex ? 51697 this.config[detail.productIndex] : 51698 null; 51699 }, 51700 eventListeners: { 51701 ['@listing-configurable-selection-changed.window'](event) { 51702 if (this.productId == event.detail.productId) { 51703 this.getMarketingShortText(event.detail); 51704 } 51705 51706 } 51707 } 51708 } 51709 } 51710 51711 function initEditionText_5325() { 51712 var editionTextConfig = {}; 51713 if (typeof window.initConfigurableSwatchOptions_5325 === "function") { 51714 var fullConfig = window.initConfigurableSwatchOptions_5325().optionConfig 51715 var editionTextConfig = fullConfig.edition; 51716 } 51717 return { 51718 editionText: '', 51719 config: editionTextConfig, 51720 productId: '5325', 51721 getEditionText(detail) { 51722 this.editionText = detail.productIndex ? 51723 this.config[detail.productIndex] : 51724 null; 51725 }, 51726 eventListeners: { 51727 ['@listing-configurable-selection-changed.window'](event) { 51728 if (this.productId == event.detail.productId) { 51729 this.getEditionText(event.detail); 51730 } 51731 51732 } 51733 } 51734 } 51735 } 51736 </script>
51736 51737 </form> 51738 51739 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4401/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004647"> 51740 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="4401"> 51741 <a href="https://meiner.de/fmv_de/kleine-schriften-set-17127" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 51742 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4401.window="$el.src = $event.detail" alt="Kleine Schriften (Set)" title="Kleine Schriften (Set)" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787346479.png" :style="{ 51743 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 51744 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 51745 }"> 51746 </a> 51747 <div class="product-info flex flex-col flex-grow "> 51748 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 51749 <div class="mb-2 text-sm text-gray-500 font-medium"> 51750 <a href="https://meiner.de/fmv_de/person/Immanuel-Kant-3609/" class="mb-2"> 51751 Immanuel Kant </a> 51752 </div> 51753 <a class="product-item-link" href="https://meiner.de/fmv_de/kleine-schriften-set-17127"> 51754 Kleine Schriften (Set) </a> 51755 </div> 51756 51757 <div x-data="initEditionText_4401()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 51758 <!-- Marketing short text --> 51759 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 51760 </div> 51761 </div> 51762 51763 <div class="py-1 grid mb-4 "> 51764 51765<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4401" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4401,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":4401,"availabilityMessages":{"4401":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"4401":{"status":0}}}'> 51766 51767 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 51768 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 51769 <span x-html="optionsLabelText"></span> 51770 </p> 51771</div> </div> 51772 51773 51774 <div class="pagebuilder-home-hidden"> 51775 <div class="mb-2 relative"> 51776 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 51777 <div> 51778 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Kartoniert</div> 51779 </div> 51780 </div> 51781 </div> 51782 </div> 51783 <div class="meta py-4 pagebuilder-home-hidden"> 51784 <div x-data="initMarketingShortText_4401()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 51785 <!-- Marketing short text --> 51786 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 51787 </div> 51788 51789 <!-- Short description --> 51790 </div> 51791 51792 <!-- Series --> 51793 51794 51795 <div class="mb-1">
51796 <span x-data="initEditionText_4401()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 51797 <!-- Marketing short text --> 51798 <span class="edition-text" x-html="editionText"></span> 2024, IC, 236 </span> 51799 </div> 51800 51801 <div class="mb-1"> 51802 <span>ISBN: </span> 51803 <span>978-3-7873-4647-9</span> 51804 </div> 51805 </div> 51806 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 51807 51808 <div class="justify-end" x-data="initPriceBox()" @update-prices-4401.window="updatePrice($event.detail);"> 51809 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4401" data-price-box="product-id-4401"> 51810 <span x-data x-id="['product\u002Dprice\u002D4401']" class="price-container price-final_price tax weee"> 51811 <span :id="$id('product\u002Dprice\u002D4401')" data-price-amount="29.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">29,90 €</span></span> 51812 </span> 51813 51814</div> </div> 51815 51816 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 51817 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kleine Schriften (Set)" aria-label="In den Warenkorb Kleine Schriften (Set)" data-addto="cart"> 51818 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 51819 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 51820</svg> 51821 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 51822 In den Warenkorb </span> 51823 </button> 51824 51825<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4401)" aria-label="Zur Wunschliste hinzufügen Kleine Schriften (Set)" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 51826 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 51827 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 51828</svg> 51829</button> 51830 </div> 51831 </div> 51832 </div> 51833
51833<script> 51834 function initMarketingShortText_4401() { 51835 var marketingShortTextConfig = {}; 51836 if (typeof window.initConfigurableSwatchOptions_4401 === "function") { 51837 var fullConfig = window.initConfigurableSwatchOptions_4401().optionConfig 51838 var marketingShortTextConfig = fullConfig.marketing_short_text; 51839 } 51840 return { 51841 marketingShortText: '', 51842 config: marketingShortTextConfig, 51843 productId: '4401', 51844 getMarketingShortText(detail) { 51845 this.marketingShortText = detail.productIndex ? 51846 this.config[detail.productIndex] : 51847 null; 51848 }, 51849 eventListeners: { 51850 ['@listing-configurable-selection-changed.window'](event) { 51851 if (this.productId == event.detail.productId) { 51852 this.getMarketingShortText(event.detail); 51853 } 51854 51855 } 51856 } 51857 } 51858 } 51859 51860 function initEditionText_4401() { 51861 var editionTextConfig = {}; 51862 if (typeof window.initConfigurableSwatchOptions_4401 === "function") { 51863 var fullConfig = window.initConfigurableSwatchOptions_4401().optionConfig 51864 var editionTextConfig = fullConfig.edition; 51865 } 51866 return { 51867 editionText: '', 51868 config: editionTextConfig, 51869 productId: '4401', 51870 getEditionText(detail) { 51871 this.editionText = detail.productIndex ? 51872 this.config[detail.productIndex] : 51873 null; 51874 }, 51875 eventListeners: { 51876 ['@listing-configurable-selection-changed.window'](event) { 51877 if (this.productId == event.detail.productId) { 51878 this.getEditionText(event.detail); 51879 } 51880 51881 } 51882 } 51883 } 51884 } 51885 </script>
51885 51886 </form> 51887 51888 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/4367/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004646"> 51889 <input name="form_key" type="hidden" value="7E4x690snX5itKIn"> <input type="hidden" name="product" value="4367"> 51890 <a href="https://meiner.de/fmv_de/grundlegung-zur-metaphysik-der-sitten-kommentar-set-17126" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 51891 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-4367.window="$el.src = $event.detail" alt="Grundlegung zur Metaphysik der Sitten + Kommentar (Set)" title="Grundlegung zur Metaphysik der Sitten + Kommentar (Set)" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787346462.png" :style="{ 51892 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 51893 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 51894 }"> 51895 </a> 51896 <div class="product-info flex flex-col flex-grow "> 51897 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 51898 <div class="mb-2 text-sm text-gray-500 font-medium"> 51899 <a href="https://meiner.de/fmv_de/person/Immanuel-Kant-3609/" class="mb-2"> 51900 Immanuel Kant </a> 51901 <span>|</span> 51902 <a href="https://meiner.de/fmv_de/person/Klaus-Steigleder-13237/" class="mb-2"> 51903 Klaus Steigleder </a> 51904 </div> 51905 <a class="product-item-link" href="https://meiner.de/fmv_de/grundlegung-zur-metaphysik-der-sitten-kommentar-set-17126"> 51906 Grundlegung zur Metaphysik der Sitten + Kommentar (Set) </a> 51907 </div> 51908 51909 <div x-data="initEditionText_4367()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 51910 <!-- Marketing short text --> 51911 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 51912 </div> 51913 </div> 51914 51915 <div class="py-1 grid mb-4 "> 51916 51917<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_4367" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":4367,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvZm12X2RlL2hlZ2VsLXdpc3NlbnNjaGFmdC1kZXItbG9naWstYmFuZC0xLTItMTg5MjA~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":4367,"availabilityMessages":{"4367":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"4367":{"status":0}}}'> 51918 51919 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 51920 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span>
51921 <span x-html="optionsLabelText"></span> 51922 </p> 51923</div> </div> 51924 51925 51926 <div class="pagebuilder-home-hidden"> 51927 <div class="mb-2 relative"> 51928 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 51929 <div> 51930 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Kartoniert</div> 51931 </div> 51932 </div> 51933 </div> 51934 </div> 51935 <div class="meta py-4 pagebuilder-home-hidden"> 51936 <div x-data="initMarketingShortText_4367()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 51937 <!-- Marketing short text --> 51938 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 51939 </div> 51940 51941 <!-- Short description --> 51942 </div> 51943 51944 <!-- Series --> 51945 51946 51947 <div class="mb-1"> 51948 <span x-data="initEditionText_4367()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 51949 <!-- Marketing short text --> 51950 <span class="edition-text" x-html="editionText"></span> 2024, XLI, 354 </span> 51951 </div> 51952 51953 <div class="mb-1"> 51954 <span>ISBN: </span> 51955 <span>978-3-7873-4646-2</span> 51956 </div> 51957 </div> 51958 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 51959 51960 <div class="justify-end" x-data="initPriceBox()" @update-prices-4367.window="updatePrice($event.detail);"> 51961 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4367" data-price-box="product-id-4367"> 51962 <span x-data x-id="['product\u002Dprice\u002D4367']" class="price-container price-final_price tax weee"> 51963 <span :id="$id('product\u002Dprice\u002D4367')" data-price-amount="34.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">34,90 €</span></span> 51964 </span> 51965 51966</div> </div> 51967 51968 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 51969 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Grundlegung zur Metaphysik der Sitten + Kommentar (Set)" aria-label="In den Warenkorb Grundlegung zur Metaphysik der Sitten + Kommentar (Set)" data-addto="cart"> 51970 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 51971 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 51972</svg> 51973 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 51974 In den Warenkorb </span> 51975 </button> 51976 51977<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(4367)" aria-label="Zur Wunschliste hinzufügen Grundlegung zur Metaphysik der Sitten + Kommentar (Set)" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 51978 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 51979 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 51980</svg> 51981</button> 51982 </div> 51983 </div> 51984 </div> 51985
51985<script> 51986 function initMarketingShortText_4367() { 51987 var marketingShortTextConfig = {}; 51988 if (typeof window.initConfigurableSwatchOptions_4367 === "function") { 51989 var fullConfig = window.initConfigurableSwatchOptions_4367().optionConfig 51990 var marketingShortTextConfig = fullConfig.marketing_short_text; 51991 } 51992 return { 51993 marketingShortText: '', 51994 config: marketingShortTextConfig, 51995 productId: '4367', 51996 getMarketingShortText(detail) { 51997 this.marketingShortText = detail.productIndex ? 51998 this.config[detail.productIndex] : 51999 null; 52000 }, 52001 eventListeners: { 52002 ['@listing-configurable-selection-changed.window'](event) { 52003 if (this.productId == event.detail.productId) { 52004 this.getMarketingShortText(event.detail); 52005 } 52006 52007 } 52008 } 52009 } 52010 } 52011 52012 function initEditionText_4367() { 52013 var editionTextConfig = {}; 52014 if (typeof window.initConfigurableSwatchOptions_4367 === "function") { 52015 var fullConfig = window.initConfigurableSwatchOptions_4367().optionConfig 52016 var editionTextConfig = fullConfig.edition; 52017 } 52018 return { 52019 editionText: '', 52020 config: editionTextConfig, 52021 productId: '4367', 52022 getEditionText(detail) { 52023 this.editionText = detail.productIndex ? 52024 this.config[detail.productIndex] : 52025 null; 52026 }, 52027 eventListeners: { 52028 ['@listing-configurable-selection-changed.window'](event) { 52029 if (this.productId == event.detail.productId) { 52030 this.getEditionText(event.detail); 52031 } 52032 52033 } 52034 } 52035 } 52036 } 52037 </script>
52037 52038 </form> 52039 52040 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/40010/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004445"> 52041 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="40010"> 52042 <a href="https://meiner.de/fmv_de/den-anfang-denken-ba-nde-i-ii-set-18000" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 52043 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-40010.window="$el.src = $event.detail" alt="Den Anfang denken Bände I-II (Set)" title="Den Anfang denken Bände I-II (Set)" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344451.png" :style="{ 52044 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 52045 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 52046 }"> 52047 </a> 52048 <div class="product-info flex flex-col flex-grow "> 52049 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 52050 <div class="mb-2 text-sm text-gray-500 font-medium"> 52051 <a href="https://meiner.de/fmv_de/person/Alfons-Reckermann-3623/" class="mb-2"> 52052 Alfons Reckermann </a> 52053 </div> 52054 <a class="product-item-link" href="https://meiner.de/fmv_de/den-anfang-denken-ba-nde-i-ii-set-18000"> 52055 Den Anfang denken Bände I-II (Set) </a> 52056 </div> 52057 52058 <div x-data="initEditionText_40010()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 52059 <!-- Marketing short text --> 52060 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 52061 </div> 52062 </div> 52063 52064 <div class="py-1 grid mb-4 "> 52065 52066<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_40010" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":40010,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":40010,"availabilityMessages":{"40010":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"40010":{"status":0}}}'> 52067 52068 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 52069 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 52070 <span x-html="optionsLabelText"></span> 52071 </p> 52072</div> </div> 52073 52074 52075 <div class="pagebuilder-home-hidden"> 52076 <div class="mb-2 relative"> 52077 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 52078 <div> 52079 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Gebunden</div> 52080 </div> 52081 </div> 52082 </div> 52083 </div> 52084 <div class="meta py-4 pagebuilder-home-hidden"> 52085 <div x-data="initMarketingShortText_40010()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 52086 <!-- Marketing short text --> 52087 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 52088 </div> 52089 52090 <!-- Short description --> 52091 </div> 52092 52093 <!-- Series --> 52094 52095 52096 <div class="mb-1">
52097 <span x-data="initEditionText_40010()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 52098 <!-- Marketing short text --> 52099 <span class="edition-text" x-html="editionText"></span> 2025, 2 Bände, zusammen 592 Seiten </span> 52100 </div> 52101 52102 <div class="mb-1"> 52103 <span>ISBN: </span> 52104 <span>978-3-7873-4445-1</span> 52105 </div> 52106 </div> 52107 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 52108 52109 <div class="justify-end" x-data="initPriceBox()" @update-prices-40010.window="updatePrice($event.detail);"> 52110 <div class="price-box price-final_price" data-role="priceBox" data-product-id="40010" data-price-box="product-id-40010"> 52111 <span x-data x-id="['product\u002Dprice\u002D40010']" class="price-container price-final_price tax weee"> 52112 <span :id="$id('product\u002Dprice\u002D40010')" data-price-amount="39.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">39,90 €</span></span> 52113 </span> 52114 52115</div> </div> 52116 52117 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 52118 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Den Anfang denken Bände I-II (Set)" aria-label="In den Warenkorb Den Anfang denken Bände I-II (Set)" data-addto="cart"> 52119 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 52120 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 52121</svg> 52122 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 52123 In den Warenkorb </span> 52124 </button> 52125 52126<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(40010)" aria-label="Zur Wunschliste hinzufügen Den Anfang denken Bände I-II (Set)" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 52127 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 52128 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 52129</svg> 52130</button> 52131 </div> 52132 </div> 52133 </div> 52134
52134<script> 52135 function initMarketingShortText_40010() { 52136 var marketingShortTextConfig = {}; 52137 if (typeof window.initConfigurableSwatchOptions_40010 === "function") { 52138 var fullConfig = window.initConfigurableSwatchOptions_40010().optionConfig 52139 var marketingShortTextConfig = fullConfig.marketing_short_text; 52140 } 52141 return { 52142 marketingShortText: '', 52143 config: marketingShortTextConfig, 52144 productId: '40010', 52145 getMarketingShortText(detail) { 52146 this.marketingShortText = detail.productIndex ? 52147 this.config[detail.productIndex] : 52148 null; 52149 }, 52150 eventListeners: { 52151 ['@listing-configurable-selection-changed.window'](event) { 52152 if (this.productId == event.detail.productId) { 52153 this.getMarketingShortText(event.detail); 52154 } 52155 52156 } 52157 } 52158 } 52159 } 52160 52161 function initEditionText_40010() { 52162 var editionTextConfig = {}; 52163 if (typeof window.initConfigurableSwatchOptions_40010 === "function") { 52164 var fullConfig = window.initConfigurableSwatchOptions_40010().optionConfig 52165 var editionTextConfig = fullConfig.edition; 52166 } 52167 return { 52168 editionText: '', 52169 config: editionTextConfig, 52170 productId: '40010', 52171 getEditionText(detail) { 52172 this.editionText = detail.productIndex ? 52173 this.config[detail.productIndex] : 52174 null; 52175 }, 52176 eventListeners: { 52177 ['@listing-configurable-selection-changed.window'](event) { 52178 if (this.productId == event.detail.productId) { 52179 this.getEditionText(event.detail); 52180 } 52181 52182 } 52183 } 52184 } 52185 } 52186 </script>
52186 52187 </form> 52188 52189 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/15514/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004436"> 52190 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="15514"> 52191 <a href="https://meiner.de/fmv_de/kant-metaphysik-der-sitten-teil-1-2-16088" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 52192 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-15514.window="$el.src = $event.detail" alt="Kant: Metaphysik der Sitten. Teil 1+2" title="Kant: Metaphysik der Sitten. Teil 1+2" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344369.png" :style="{ 52193 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 52194 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 52195 }"> 52196 </a> 52197 <div class="product-info flex flex-col flex-grow "> 52198 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 52199 <div class="mb-2 text-sm text-gray-500 font-medium"> 52200 <a href="https://meiner.de/fmv_de/person/Immanuel-Kant-3609/" class="mb-2"> 52201 Immanuel Kant </a> 52202 </div> 52203 <a class="product-item-link" href="https://meiner.de/fmv_de/kant-metaphysik-der-sitten-teil-1-2-16088"> 52204 Kant: Metaphysik der Sitten. Teil 1+2 </a> 52205 </div> 52206 52207 <div x-data="initEditionText_15514()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 52208 <!-- Marketing short text --> 52209 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 52210 </div> 52211 </div> 52212 52213 <div class="py-1 grid mb-4 "> 52214 52215<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_15514" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":15514,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":15514,"availabilityMessages":{"15514":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"15514":{"status":0}}}'> 52216 52217 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title"> 52218 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 52219 <span x-html="optionsLabelText"></span> 52220 </p> 52221</div> </div> 52222 52223 52224 <div class="pagebuilder-home-hidden"> 52225 <div class="mb-2 relative"> 52226 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 52227 <div> 52228 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Kartoniert</div> 52229 </div> 52230 </div> 52231 </div> 52232 </div> 52233 <div class="meta py-4 pagebuilder-home-hidden"> 52234 <div x-data="initMarketingShortText_15514()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 52235 <!-- Marketing short text --> 52236 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 52237 </div> 52238 52239 <!-- Short description --> 52240 </div> 52241 52242 <!-- Series --> 52243 52244 52245 <div class="mb-1">
52246 <span x-data="initEditionText_15514()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 52247 <!-- Marketing short text --> 52248 <span class="edition-text" x-html="editionText"></span> 2023, 2 Bände zusammen 520 Seiten </span> 52249 </div> 52250 52251 <div class="mb-1"> 52252 <span>ISBN: </span> 52253 <span>978-3-7873-4436-9</span> 52254 </div> 52255 </div> 52256 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 52257 52258 <div class="justify-end" x-data="initPriceBox()" @update-prices-15514.window="updatePrice($event.detail);"> 52259 <div class="price-box price-final_price" data-role="priceBox" data-product-id="15514" data-price-box="product-id-15514"> 52260 <span x-data x-id="['product\u002Dprice\u002D15514']" class="price-container price-final_price tax weee"> 52261 <span :id="$id('product\u002Dprice\u002D15514')" data-price-amount="36.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">36,90 €</span></span> 52262 </span> 52263 52264</div> </div> 52265 52266 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 52267 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Kant: Metaphysik der Sitten. Teil 1+2" aria-label="In den Warenkorb Kant: Metaphysik der Sitten. Teil 1+2" data-addto="cart"> 52268 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 52269 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> 52270</svg> 52271 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 52272 In den Warenkorb </span> 52273 </button> 52274 52275<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(15514)" aria-label="Zur Wunschliste hinzufügen Kant: Metaphysik der Sitten. Teil 1+2" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 52276 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 52277 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 52278</svg> 52279</button> 52280 </div> 52281 </div> 52282 </div> 52283
52283<script> 52284 function initMarketingShortText_15514() { 52285 var marketingShortTextConfig = {}; 52286 if (typeof window.initConfigurableSwatchOptions_15514 === "function") { 52287 var fullConfig = window.initConfigurableSwatchOptions_15514().optionConfig 52288 var marketingShortTextConfig = fullConfig.marketing_short_text; 52289 } 52290 return { 52291 marketingShortText: '', 52292 config: marketingShortTextConfig, 52293 productId: '15514', 52294 getMarketingShortText(detail) { 52295 this.marketingShortText = detail.productIndex ? 52296 this.config[detail.productIndex] : 52297 null; 52298 }, 52299 eventListeners: { 52300 ['@listing-configurable-selection-changed.window'](event) { 52301 if (this.productId == event.detail.productId) { 52302 this.getMarketingShortText(event.detail); 52303 } 52304 52305 } 52306 } 52307 } 52308 } 52309 52310 function initEditionText_15514() { 52311 var editionTextConfig = {}; 52312 if (typeof window.initConfigurableSwatchOptions_15514 === "function") { 52313 var fullConfig = window.initConfigurableSwatchOptions_15514().optionConfig 52314 var editionTextConfig = fullConfig.edition; 52315 } 52316 return { 52317 editionText: '', 52318 config: editionTextConfig, 52319 productId: '15514', 52320 getEditionText(detail) { 52321 this.editionText = detail.productIndex ? 52322 this.config[detail.productIndex] : 52323 null; 52324 }, 52325 eventListeners: { 52326 ['@listing-configurable-selection-changed.window'](event) { 52327 if (this.productId == event.detail.productId) { 52328 this.getEditionText(event.detail); 52329 } 52330 52331 } 52332 } 52333 } 52334 } 52335 </script>
52335 52336 </form> 52337 52338 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/3985/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004433"> 52339 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="3985"> 52340 <a href="https://meiner.de/fmv_de/methoden-im-philosophie-und-ethikunterricht-band-1-4-im-set-16078" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 52341 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-3985.window="$el.src = $event.detail" alt="Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" title="Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344338.png" :style="{ 52342 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 52343 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 52344 }"> 52345 </a> 52346 <div class="product-info flex flex-col flex-grow "> 52347 <div class="mt-2 mb-1 items-center justify-center text-primary font-semibold text-lg text-center "> 52348 <div class="mb-2 text-sm text-gray-500 font-medium"> 52349 <a href="https://meiner.de/fmv_de/person/Jorg-Peters-3207/" class="mb-2"> 52350 Jörg Peters </a> 52351 <span>|</span> 52352 <a href="https://meiner.de/fmv_de/person/Martina-Peters-3206/" class="mb-2"> 52353 Martina Peters (Hrsg.) 52354 </a> 52355 </div> 52356 <a class="product-item-link" href="https://meiner.de/fmv_de/methoden-im-philosophie-und-ethikunterricht-band-1-4-im-set-16078"> 52357 Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set </a> 52358 </div> 52359 52360 <div x-data="initEditionText_3985()" x-bind="eventListeners" class="text-center hidden pagebuilder-home-visible mb-4"> 52361 <!-- Marketing short text --> 52362 <div class="edition-text" x-html="editionText" :class="{ 'hidden': editionText == '' }"> 52363 </div> 52364 </div> 52365 52366 <div class="py-1 grid mb-4 "> 52367 52368<div x-data="stockStatusCategoryData" @configurable-select-changed.window="configurableSelectChanged" id="stock_notification_3985" class="text-right relative pagebuilder-home-hidden order-first" data-config='{"productId":3985,"isAvailable":true,"isShowAlert":false,"isOutOfStockConfigurable":true,"attributesCount":0,"encodedUrl":"aHR0cHM6Ly9tZWluZXIuZGUvP19fX2Zyb21fc3RvcmU9ZGV1dHNjaCZfX19zdG9yZT1lbmdsaXNoJmNQYXRoPTRfNDAmY29udGVudD1yZWNoZXJjaGUma2F0c2VpdGU9MS8~","childProducts":[],"childProductsAlertStatus":[],"indexMapping":"{}","mutationStockSubscription":"mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {\n AmxnotifStockSubscribe(input: $input) {\n response_message\n }\n }","isInStock":true,"isConfigurable":false,"productIdentifier":3985,"availabilityMessages":{"3985":"Lieferbar innerhalb von 3-5 Tagen"},"openAccess":{"3985":{"status":0}}}'> 52369 52370 <p class="flex items-center align-middle available gap-x-2 stock mb-0 ml-1" :class="modeClass" data-grid="" data-list="1" :title="title">
52371 <span class="w-3 h-3 rounded-full flex-shrink-0 shrink-0" :class="optionsAdditionalClass"></span> 52372 <span x-html="optionsLabelText"></span> 52373 </p> 52374</div> </div> 52375 52376 52377 <div class="pagebuilder-home-hidden"> 52378 <div class="mb-2 relative"> 52379 <div class="swatch-option w-fit relative cursor-pointer select-none product-option-value-label form-input px-2 py-2 flex border justify-center text-center min-w-[15rem] min-h-fit border-gray-100 ring ring-primary/50 ring-2"> 52380 <div> 52381 <div class="pointer-events-none select-none whitespace-nowrap" aria-hidden="true">Kartoniert</div> 52382 </div> 52383 </div> 52384 </div> 52385 </div> 52386 <div class="meta py-4 pagebuilder-home-hidden"> 52387 <div x-data="initMarketingShortText_3985()" x-bind="eventListeners" class="pb-4 hidden has-[:not(.hidden)]:block"> 52388 <!-- Marketing short text --> 52389 <div class="mb-1 font-bold marketing-short-text" x-html="marketingShortText" :class="{ 'hidden': marketingShortText == '' }"> 52390 </div> 52391 52392 <!-- Short description --> 52393 </div> 52394 52395 <!-- Series --> 52396 <div class="mb-1"> 52397 <span class="sr-only">Reihe:</span> 52398 <a href="https://meiner.de/fmv_de/programm/reihen/methoden-im-philosophie-und-ethikunterricht"> 52399 <span>Methoden im Philosophie- und Ethikunterricht</span> 52400 </a> 52401 </div> 52402 52403 52404 <div class="mb-1"> 52405 <span x-data="initEditionText_3985()" x-bind="eventListeners" :class="{ 'hidden': editionText == '', 'inline': editionText != '' }"> 52406 <!-- Marketing short text --> 52407 <span class="edition-text" x-html="editionText"></span> 4 Bände zusammen 852 Seiten </span> 52408 </div> 52409 52410 <div class="mb-1"> 52411 <span>ISBN: </span> 52412 <span>978-3-7873-4433-8</span> 52413 </div> 52414 </div> 52415 <div class="md:flex md:justify-between pagebuilder-home-hidden md:flex-col md:gap-4"> 52416 52417 <div class="justify-end" x-data="initPriceBox()" @update-prices-3985.window="updatePrice($event.detail);"> 52418 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3985" data-price-box="product-id-3985"> 52419 <span x-data x-id="['product\u002Dprice\u002D3985']" class="price-container price-final_price tax weee"> 52420 <span :id="$id('product\u002Dprice\u002D3985')" data-price-amount="59.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">59,90 €</span></span> 52421 </span> 52422 52423</div> </div> 52424 52425 <div class="flex flex-wrap items-center pagebuilder-home-hidden mt-4 md:mt-0"> 52426 <button class="w-auto btn btn-primary justify-center text-sm mr-auto" title="In den Warenkorb Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" aria-label="In den Warenkorb Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" data-addto="cart"> 52427 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> 52428 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2
524280 014 0z"></path> 52429</svg> 52430 <span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline"> 52431 In den Warenkorb </span> 52432 </button> 52433 52434<button x-data="initWishlist()" x-defer="intersect" @click.prevent="addToWishlist(3985)" aria-label="Zur Wunschliste hinzufügen Methoden im Philosophie- und Ethikunterricht Band 1-4 im Set" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex flex-shrink-0 items-center justify-center text-gray-500 hover:text-red-600 ml-2" data-addto="wishlist"> 52435 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" width="20" height="20" aria-hidden="true"> 52436 <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd"></path> 52437</svg> 52438</button> 52439 </div> 52440 </div> 52441 </div> 52442
52442<script> 52443 function initMarketingShortText_3985() { 52444 var marketingShortTextConfig = {}; 52445 if (typeof window.initConfigurableSwatchOptions_3985 === "function") { 52446 var fullConfig = window.initConfigurableSwatchOptions_3985().optionConfig 52447 var marketingShortTextConfig = fullConfig.marketing_short_text; 52448 } 52449 return { 52450 marketingShortText: '', 52451 config: marketingShortTextConfig, 52452 productId: '3985', 52453 getMarketingShortText(detail) { 52454 this.marketingShortText = detail.productIndex ? 52455 this.config[detail.productIndex] : 52456 null; 52457 }, 52458 eventListeners: { 52459 ['@listing-configurable-selection-changed.window'](event) { 52460 if (this.productId == event.detail.productId) { 52461 this.getMarketingShortText(event.detail); 52462 } 52463 52464 } 52465 } 52466 } 52467 } 52468 52469 function initEditionText_3985() { 52470 var editionTextConfig = {}; 52471 if (typeof window.initConfigurableSwatchOptions_3985 === "function") { 52472 var fullConfig = window.initConfigurableSwatchOptions_3985().optionConfig 52473 var editionTextConfig = fullConfig.edition; 52474 } 52475 return { 52476 editionText: '', 52477 config: editionTextConfig, 52478 productId: '3985', 52479 getEditionText(detail) { 52480 this.editionText = detail.productIndex ? 52481 this.config[detail.productIndex] : 52482 null; 52483 }, 52484 eventListeners: { 52485 ['@listing-configurable-selection-changed.window'](event) { 52486 if (this.productId == event.detail.productId) { 52487 this.getEditionText(event.detail); 52488 } 52489 52490 } 52491 } 52492 } 52493 } 52494 </script>
52494 52495 </form> 52496 52497 <form method="post" action="https://meiner.de/fmv_de/checkout/cart/add/uenc/%25uenc%25/product/3983/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full " data-sku="004412"> 52498 <input name="form_key" type="hidden" value="43ommc63NaHCiY3E"> <input type="hidden" name="product" value="3983"> 52499 <a href="https://meiner.de/fmv_de/hegels-wissenschaft-der-logik-ein-dialogischer-kommentar-band-1-3-14138" class="relative product photo product-item-photo block self-center mx-auto mb-3 " tabindex="-1"> 52500 <img class="hover:shadow-sm object-contain" loading="lazy" x-data="" @update-gallery-3983.window="$el.src = $event.detail" alt="Hegels Wissenschaft der Logik. Ein dialogischer Kommentar. Band 1-3" title="Hegels Wissenschaft der Logik. Ein dialogischer Kommentar. Band 1-3" src="https://meiner.de/media/catalog/product/cache/011107ce763a212d2dc88dc51173c5c0/9/7/9783787344123.png" :style="{ 52501 width: ($data.isWidget === undefined || $data.isWidget === true) ? '240px' : '', 52502 height: ($data.isWidget === undefined || $data.isWidget === true) ? '300px' : '' 52503 }"> 52504 </a> 52505 <div class="product-info flex flex-col flex-grow "> 52506
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.