main.js 97 KB

123456
  1. /*! springerverse-nojq.js | v4.1.0 */
  2. this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.DeviceState=function(){"use strict";var e=0,t=null,n=function(e){return("string"==typeof e||e instanceof String)&&(e=e.replace(/^['"]+|\s+|\\|(;\s?})+|['"]$/g,"")),e},o=function(){var e=null;return window.getComputedStyle&&window.getComputedStyle(document.body,":after")&&(e=window.getComputedStyle(document.body,":after"),e=e.content),e?JSON.parse(n(e)):e},r=function(e){return"number"==typeof e?e:(e=t[e.toString()],e?parseInt(e,10):null)};return{current:function(){if(window.getComputedStyle&&window.getComputedStyle(document.body,":before")){var t=window.getComputedStyle(document.body,":before").content.replace(/"|'/g,"");return parseInt(t,10)}return e},gte:function(e){var t=r(e);return!!t&&this.current()>=t},lte:function(e){var t=r(e);return!!t&&this.current()<=t},gt:function(e){var t=r(e);return!!t&&this.current()>t},lt:function(e){var t=r(e);return!!t&&this.current()<t},init:function(n){t=o(),e=r(n)}}}(),this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.EventEmitter=function(){"use strict";this._listeners={}},this.Springerverse.Utils.EventEmitter.prototype={on:function(e,t,n){"use strict";this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push({fn:t,scope:n||null})},off:function(e,t){"use strict";if(!this._listeners[e])return!1;t||(this._listeners[e]=[]);for(var n=this._listeners[e].length;n--;)this._listeners[e][n].fn===t&&this._listeners[e].splice(n,1);return 0===this._listeners[e].length&&(this._listeners[e]=null),!0},emit:function(e){"use strict";for(var t=this._listeners[e+":"+arguments[1]]||[],n=[].slice.call(arguments,2),o=0;t[o];++o)t[o].fn.apply(t[o].scope,n)}},this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.GetSpringerverseJquery=function(){"use strict";function e(e,t){return 0===e.indexOf(t)}function t(t){return e(t,"jQuery331")}return{init:function(){var e="3.3.1"===window.jQuery.fn.jquery?window.jQuery:Object.getOwnPropertyNames(window).filter(t).shift();if(e)return e;throw new Error("No jQuery detected")}}}(),this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.hijackClick=function(e){"use strict";return function(t){return function(n){var o=e(n.target).closest("a").attr("href"),r=n.metaKey||n.ctrlKey||n.shiftKey,i=1===n.which&&!r&&Boolean(o),s=n.isDefaultPrevented();i&&n.preventDefault(),t.call(this,n,function(){i&&!s&&(document.location=o)})}}}(jQuery),this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.Initialiser=function(e){"use strict";var t=function(e,t,n,o){t.init(e,n,o)},n=function(n,o,r,i){for(var s=e(o.selector),a=n[i],l=0;l<s.length;++l)t(e(s[l]),a,i,e.extend({},{componentPrefix:r},o))},o=function(n,o,r,i){for(var s=i.split("."),a=e(o[s[1]].selector),l=n[s[0]],c=0;c<a.length;++c)t(e(a[c]),l,i,e.extend({},{componentPrefix:r},o[s[1]]))};return{init:function(r,i,s){for(var a in r)if(Object.prototype.hasOwnProperty.call(r,a)){var l=i[a]||{},c=e('[data-component="'+s+"."+a+'"]');if(c.length>0)for(var p=0;p<c.length;++p){var u=e(c[p]),d=u.data("namespace")||null,f=e.extend({},{componentPrefix:s},d&&l[d]?l[d]:l),m=d?a+"."+d:a,h=r[a];t(u,h,m,f)}if(l.selector)n(r,l,s,a);else if(l.namespaced)for(var v in l)"object"==typeof l[v]&&l[v].selector&&o(r,l,s,a+"."+v)}}}}(jQuery),this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.Scheduler=function(e,t){"use strict";var n=e(t),o=function(e){var t=e.indexOf(".");return{ev:-1===t?e:e.substr(0,t),ns:-1===t?null:e.substr(t+1)}},r=function(e,t){for(var n=[],o=0;e[o];++o)t(e[o])||n.push(e[o]);return n},i=function(e){return e+".redraw-scheduler"},s=function(e,t,r){var s=o(e),a=s.ev,l=s.ns;p[a]||(n.on(i(a),function(e){u.notify(a,e)}),p[a]=!0),c[a]||(c[a]=[]),c[a].push({fn:t,ns:l,scope:r||null})},a=function(e,n,o){t.requestAnimationFrame(function(){n.call(o||null,{type:e})})},l={},c={},p={},u={on:function(e,t,n){for(var o=this._loaded(),r=e.split(/\s+/),i=0;r[i];++i)o&&r[i].match(/^load(\.|$)/)?a("load",t,n):s(r[i],t,n)},off:function(e,t){var n=o(e),i=n.ev,s=n.ns;return!!c[i]&&(c[i]=s||t?t?s?r(c[i],function(e){return e.ns===s&&e.fn===t}):r(c[i],function(e){return e.fn===t}):r(c[i],function(e){return e.ns===s}):[],0===c[i].length&&(c[i]=null),!0)},reset:function(){var e;for(e in p)Object.prototype.hasOwnProperty.call(p,e)&&n.off(i(e));for(e in l)Object.prototype.hasOwnProperty.call(l,e)&&l[e]&&t.cancelAnimationFrame(l[e]);c={},l={},p={}},notify:function(e,n){var o=function(e,t){for(var n=c[e]||[],o=0;n[o];++o)n[o].fn.call(n[o].scope,t,e)};!l[e]&&c[e]&&(l[e]=t.requestAnimationFrame(function(){o(e,n),l[e]=!1}))},_loaded:function(){return"complete"===t.document.readyState}};return u}(jQuery,window),function(e){"use strict";var t=function(){var e=document.createElement("fake"),t={transition:"transitionend",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return null}();e.fn.onTransitionEnd=function(e,n){var o=this,r=o.get(0),i=n||!1,s=function(n){r.removeEventListener(t,s),e(o,n)};return t?r.addEventListener(t,s,i):e(!1),o}}(jQuery),this.Springerverse=this.Springerverse||{},this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.Validate=function(){"use strict";var e=/^[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i;return{email:function(t){return e.test(t)}}}(),this.Springerverse=this.Springerverse||{},this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.DropdownController=function(e){"use strict";var t={animationSpeed:100},n=function(n,o,r){var i=e.extend({},t,r);return i.name=o,i.componentName=o.split(".")[0],i.componentNamespace=o.split(".")[1],i.$el=n,i},o=function(e){var t=e.clone().appendTo(e.parent()),n=e.parent().width();t.css({maxHeight:"100%",width:n,opacity:1,transition:"none",visibility:"hidden",position:"relative"});var o=t.outerHeight();return t.remove(),o},r=function(e,t){e.$control=e.$el.find('[data-role="'+e.controlSelector+'"]'),e.$dropdown=e.$el.find(e.dropdownSelector),e.$dropdownIcon=e.$control.find(e.iconSelector),e.$button=t,e.dropdownHeightValue=o(e.$dropdown)},i=function(e){var t=e.data;t.$body.hasClass("kb_user")&&setTimeout(function(){var e=document.activeElement;t.$focusables.is(e)||(t.$focusables.attr("tabindex",-1),a.close(t.$el,t,!0,t.name))},1)},s=function(e){e.$focusables=e.$dropdown.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(":visible").attr("tabindex",-1),e.$focusableBounds=e.$focusables.filter(":first").add(e.$focusables.filter(":last")),e.$focusableBounds.eq(1).on("blur",e,i),e.$focusableBounds.eq(0).on("blur",e,i)},a={setAriaState:function(e,t){e.$control.attr("aria-pressed",!t),e.$control.attr("aria-expanded",!t),e.$dropdown.attr("aria-hidden",t)},open:function(e,t){t.$dropdown.css({maxHeight:t.dropdownHeightValue,opacity:1}),a.setAriaState(t,e.hasClass(t.activeClass)),a.bindEvents(e,t),e.addClass(t.activeClass),e.data("expandable")&&(e.offset().width,e.css("width",e.data("finish")),setTimeout(function(){e.addClass(t.expandedClass)},t.animationSpeed)),Springerverse.Mediator.emit(t.componentName+"."+t.group,"open",t.$el,t.name,t.$dropdown,t.$control),Springerverse.Mediator.emit(t.name,"open",t.$el,t.name,t.$dropdown,t.$control),t.$dropdown.onTransitionEnd(function(){t.$body.hasClass("kb_user")||t.$control.blur()})},close:function(e,t,n,o){t.nowopenSettings.$dropdown.css({maxHeight:0,opacity:0}),a.setAriaState(t,e.hasClass(t.activeClass)),e.removeClass(t.activeClass),e.data("expandable")&&(e.css("width",e.data("start")),setTimeout(function(){e.removeClass(t.expandedClass)},t.animationSpeed)),e.removeClass(t.hoverClass),n&&a.unbindEvents(t.group),Springerverse.Mediator.emit(t.componentName+"."+t.group,"close"),Springerverse.Mediator.emit(o,"close",t.name),t.nowopenSettings.$dropdown.onTransitionEnd(function(){e.hasClass(t.activeClass)||(e.removeAttr("style"),t.$body.hasClass("kb_user")||t.nowopenSettings.$control.blur(),e.data("expandable")&&e.css({width:e.data("start")}))}),0===e[0].offsetHeight&&(e.removeAttr("style"),t.$body.hasClass("kb_user")||t.nowopenSettings.$control.blur(),e.data("expandable")&&e.css({width:e.data("start")}))},bindEvents:function(t,n){e(document).on("click.DropdownController."+n.group,function(o){!e(o.target).closest("[data-role="+n.controlSelector+"]").length>0&&(n.$focusables.attr("tabindex",-1),a.close(t,n,!0,n.name))})},unbindEvents:function(t){e(document).off("click.DropdownController."+t)},init:function(t,i,l){var c=n(t,i,l);c.$body=e("body"),t.data("expandable",c.expandable||c.expandableEvent),c.dropdownSelector="."+c.dropdownClass,c.iconSelector="."+c.iconBaseClass,r(c,t.find("."+c.buttonClass)),t.is(":visible")&&s(c),c.$dropdown.hover(function(){t.addClass(c.hoverClass)},function(){t.removeClass(c.hoverClass)}),c.$control.on("click",function(){if(t.hasClass(c.activeClass))c.$focusables.attr("tabindex",-1),a.close(t,c,!0,c.name);else{if(c.nowopen){a.unbindEvents(c.group);var e=c.nowopenSettings.$el;c.$focusables.attr("tabindex",-1),a.close(e,c,!1,c.nowopen)}c.$focusables.attr("tabindex",0),a.open(t,c)}}),Springerverse.Mediator.on(c.componentName+"."+c.group+":open",function(e,t,n,o){c.nowopen=t,c.nowopenSettings={$el:e,$dropdown:n,$control:o}}),Springerverse.Mediator.on(c.componentName+"."+c.group+":close",function(){c.nowopen=null}),Springerverse.Mediator.on(c.componentName+"."+c.group+":check",function(){c.dropdownHeightValue=o(c.$dropdown),t.is(":visible")&&!c.$focusables&&s(c)}),Springerverse.Utils.Scheduler.on("resize orientationchange",function(){c.dropdownHeightValue=o(c.$dropdown),t.is(":visible")&&!c.$focusables&&s(c)})}};return a}(jQuery),this.Springerverse=this.Springerverse||{},this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Dropdown=function(e){"use strict";var t="c-button-dropdown",n={group:"default",color:null,titleSelector:"[data-role=button-dropdown__title]",contentSelector:"[data-role=button-dropdown__content]",expandable:!1,minWidth:null,maxWidth:null},o=function(t,o,r){var i=e.extend({},n,r);return i.name=o,i.componentName=o.split(".")[0],i.componentNamespace=o.split(".")[1],i.$el=t,i},r=function(e){for(var t=e.replace(/\s/g,""),n="",o=0;o<t.length;++o)n+=t.charCodeAt(o);return n.split("").sort(function(){return.5-Math.random()}).join("").substring(0,10)},i=function(e,t){var n=e.$el.clone().appendTo("[data-component=article-actions--inline]"),o=e.name+"--inline";n.attr("data-namespace",e.componentNamespace+"--inline").addClass("u-interface"),t.duplicated=!0,s.init(n,o,t)},s={extremum:function(e,t,n){return"min"===t&&e.finish<n||"max"===t&&e.finish>n?n:e.finish},expandable:function(e){var t=e.$el.find("[data-role=button-dropdown__control]"),n=t.find("span");e.start=parseFloat(window.getComputedStyle(e.$el[0]).width),e.finish=0,e.finish=e.finish+parseFloat(t.css("padding-left"))+parseFloat(t.css("padding-right"))+2,e.finish=e.finish+parseFloat(n.css("padding-left"))+parseFloat(n.css("padding-right")),n.css({display:"inline-block",maxWidth:"none",overflow:"visible",padding:0,margin:0}),e.finish+=parseFloat(window.getComputedStyle(n[0]).width),n.removeAttr("style"),e.minWidth&&(e.finish=s.extremum(e,"min",e.minWidth)),e.maxWidth&&(e.finish=s.extremum(e,"max",e.maxWidth)),e.$el.data("start",e.start),e.$el.data("finish",e.finish),e.$el.attr("style")||e.$el.width(e.start)},init:function(e,n,a){var l=o(e,n,a),c=e.find(l.titleSelector),p=e.find(l.contentSelector),u=l.color?t+" "+t+"--"+l.color:t;if("aside"!==l.group||l.duplicated||i(l,a),e.attr("aria-label","button with dropdown options").addClass(u),c.length>0&&p.length>0){var d=c.html(),f=l.componentName+"."+(l.componentNamespace?l.componentNamespace:r(e.find(l.titleSelector).text()))+"-dropdown",m=c.attr("data-btn-text");c.replaceWith('<button type="button" '+(m?'title="'+m+'"':"")+' class="c-button-dropdown__button" data-role="button-dropdown__control" aria-pressed="false" aria-expanded="false" aria-controls="'+f+'"><span class="u-overflow-ellipsis c-button-dropdown__button-title">'+d+'</span><span class="c-button-dropdown__icon"></span></button>'),p.wrap('<div class="u-composite-layer c-button-dropdown__container" aria-hidden="true" aria-label="dropdown" id="'+f+'"></div>'),l.expandable&&(Springerverse.Utils.Scheduler.on("load resize orientationchange",function(){0===e[0].offsetHeight||l.expandableSet||(l.expandableSet=!0,s.expandable(l))}),Springerverse.Mediator.on("Dropdown.Dimensions:set",function(t,n,o){t===l.componentNamespace&&0!==e[0].offsetHeight&&l.$el.data("finish",s.extremum(l,n,o))}));var h={group:l.group,componentPrefix:l.componentPrefix,activeClass:t+"--active",expandedClass:t+"--expanded",hoverClass:t+"--hover",dropdownClass:"c-button-dropdown__container",buttonClass:"c-button-dropdown__button",controlSelector:"button-dropdown__control",iconBaseClass:"c-button-dropdown__icon",expandable:l.expandable};Springerverse.Component.DropdownController.init(e,"Dropdown"+(l.componentNamespace?"."+l.componentNamespace:""),h)}}};return s}(jQuery),this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.InternalNavigation=function(e){"use strict";return{init:function(t,n,o){var r=!1,i="",s=o.collapsibleSections.split(",");if("[object Array]"===Object.prototype.toString.call(o.exclude))for(var a=o.exclude.length,l=0;l<a;l++)i+=":not("+o.exclude[l]+")";Springerverse.Utils.Scheduler.on("load scroll resize orientationchange",function(t,n){r=Springerverse.Utils.DeviceState.lte(o.mediaQuery),"load"===n&&window.location.hash&&e(window.location.hash).children(".Heading").addClass("js-ShowContent")}),t.on("click",'a[href*="#"]'+i,function(){if(r)for(var t=e('[id="'+e(this).attr("href").substring(1)+'"]'),n=s.length,o=0;o<n;o++){var i=t.parents(s[o]);if(i.length>0){i.find("[data-role=collapsible-handle]").addClass("js-ShowContent");break}}}),e(o.sidebar).on("click","a",function(){var t=this.getAttribute("href"),n=e(t),o=n.children(".Heading");o&&o.addClass("js-ShowContent")})}}}(jQuery),this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.KeyboardControl=function(e){"use strict";return{init:function(t,n,o){var r=e("body");r.on("keyup",function(e){9!==e.keyCode||r.hasClass("kb_user")||r.hasClass("show-toc")||(r.addClass("kb_user"),r.addClass("show-toc"))}),r.on("mousedown",function(){r.removeClass("kb_user"),r.removeClass("show-toc")})}}}(jQuery),this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Menu=function(e){"use strict";var t=['<div class="','u-composite-layer" data-component="SV.Dropdown" data-namespace="','">','<h3 data-role="button-dropdown__title" data-btn-text="','">',"</h3>","</div>"],n=function(t,n,o){var r=e.extend({},o);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r.title=t.attr("data-title"),r.text=t.attr("data-text"),r.$maxContainer=e("[data-role=NavigationContainer]"),r.$head=document.head||document.getElementsByTagName("head")[0],r},o={menuWidth:function(e,t,n,o){Springerverse.Mediator.emit("Dropdown.Dimensions","set",t,n,o)},createDropdown:function(e,t,n){Springerverse.Component.Dropdown.init(e,t,n)},addToDOM:function(n,o,r,i,s,a,l){var c=e("<div>").append(n.clone()).remove().html(),p=t.slice();p.splice(1,0,o+" "),p.splice(3,0,a),p.splice(6,0,r),p.splice(8,0,i),p.splice(10,0,'<ul class="'+o+'__content" data-role="button-dropdown__content">'+c+"</ul>");var u=e(p.join(""));l.$el.after(u),this.createDropdown(u,"Dropdown."+a,s)},smallScreenMenu:function(t){var n=t.$el.find("li"),r=t.title,i=t.text,s=e.extend({},{group:t.group,color:t.color,componentPrefix:t.componentPrefix,titleSelector:t.titleSelector?t.titleSelector:void 0,contentSelector:t.contentSelector?t.contentSelector:void 0,expandable:!0,minWidth:189,maxWidth:t.$maxContainer.width()});Springerverse.Utils.Scheduler.on("resize orientationchange",function(){o.menuWidth(t,"Menu","max",t.$maxContainer.width())}),this.addToDOM(n,"main-menu",r,i,s,"Menu",t)},init:function(e,t,o){var r=n(e,t,o);this.smallScreenMenu(r)}};return o}(this.Springerverse.Utils.GetSpringerverseJquery.init()),this.Springerverse=this.Springerverse||{},this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Pagination=function(e){"use strict";var t={inputSelector:".c-pagination__input",inputSubmit:".c-pagination__submit",characterSize:7},n=function(n,o,r){var i=e.extend({},t,r);return i.name=o,i.componentName=o.split(".")[0],i.componentNamespace=o.split(".")[1],i.$el=n,i},o=function(e,t){e.css("width",(e.val().length+1)*Number(t))},r=function(e){e.attr("tabindex","-1")};return{init:function(e,t,i){var s=n(e,t,i);s.$input=e.find(s.inputSelector),s.$inputSubmit=e.find(s.inputSubmit),r(s.$inputSubmit),o(s.$input,s.characterSize),s.$input.on("input",function(){o(s.$input,s.characterSize)})}}}(jQuery),this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Popup=function(e){"use strict";var t="top:-60px;left:-60px;visibility:hidden;opacity:0;",n="a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]",o=function(t,n,o){var r=e.extend({},o);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r.$body=e("body"),r.hasInputFirst=!1,r},r={createPopup:function(o){o.$control=o.$el.find(o.control),o.$popupData=e(o.$control.attr("href")),o.$bounds=e(o.bounds),o.popupAttribute=o.componentName.toLowerCase()+"-"+o.group,o.singleColumn=Springerverse.Utils.DeviceState.lte("large"),o.small=Springerverse.Utils.DeviceState.lte("small"),o.hiddenPopup&&o.$popupData.querySelector(n).attr("tabIndex","-1"),0===e("#"+o.popupAttribute).length&&e("body").prepend('<div id="'+o.popupAttribute+'" class="u-composite-layer '+o.theme+'" style="'+t+'"><svg class="popup-arrow" xmlns="http://www.w3.org/2000/svg" width="33.7" height="18.4" viewBox="0 0 33.7 18.4"><path class="fill" fill="#F7FBFE" d="M1.4 18.4h30.9l-15.5-16.9z"/><path class="stroke" fill="#98BED7" d="M0 18.4h1.4l15.4-16.9 15.5 16.9h1.4l-16.9-18.4z"/></svg><div class="popup-arrow popup-arrow-shadow icon--popup-arrow-shadow"></div><div class="popup__'+o.group+'"><div class="popup-base-theme__inner" data-component="SpringerLink-Popup-inner"></div></div><button tabindex="-1" class="popup-close icon--close-btn" data-component="SpringerLink-Popup-close">close</button></div>'),o.$popup=e("#"+o.popupAttribute),o.$close=o.$popup.find('[data-component="SpringerLink-Popup-close"]'),o.$content=o.$popup.find("[data-component=SpringerLink-Popup-inner]"),o.iconWidth=o.$popup.find(".popup-arrow").width()},setBounds:function(t,n){n.windowWidth=e(window).width(),n.boundsWidth=n.$bounds.width(),n.popupWidth=n.small?n.$bounds.width():parseInt(n.boundsWidth/100*n.popupWidthPercentage,10),n.singleColumn&&!n.small?n.boundsOffset=n.boundsOffsetArray[1]:n.small?n.boundsOffset=0:n.singleColumn||n.small||(n.boundsOffset=n.boundsOffsetArray[0]),n.boundsCalc=n.$bounds.offset(),n.controlCalc=t.offset(),n.halfPopup=n.popupWidth/2,n.halfControl=t.width()/2,n.offset=n.controlCalc.left-n.halfPopup+n.halfControl,n.leftDiff=n.controlCalc.left-n.boundsCalc.left-(n.halfPopup-n.halfControl),n.rightDiff=n.offset+n.popupWidth-(n.$bounds.width()+n.boundsCalc.left);var o;n.leftDiff<0-n.boundsOffset&&!n.small?(o=n.offset,n.offset-=n.leftDiff+n.boundsOffset,n.arrowPos=n.halfPopup-(n.offset-o)):n.rightDiff>n.boundsOffset&&!n.small?(o=n.offset,n.offset-=n.rightDiff-n.boundsOffset,n.arrowPos=n.halfPopup+(o-n.offset)):n.small&&(n.offset=n.boundsCalc.left,n.arrowPos=n.controlCalc.left-n.boundsCalc.left+n.halfControl)},ariaControls:function(e){e.$popup.attr("aria-hidden","true").attr("aria-label","popup"),e.$control.attr("role","button").attr("aria-pressed","false").attr("aria-haspopup","true").attr("aria-controls",e.popupAttribute)},setAriaState:function(e,t,n){e.$control.attr("aria-pressed",t),n&&e.$popup.attr("aria-hidden",!t)},bindEvents:function(t,n){e(document).on("click.Popup."+n.group,function(o){var i=e(o.target);0===i.closest(".popup--active").length&&0===i.closest("#"+n.popupAttribute).length&&r.close(t,n,!0)}),e(document).on("keyup.Popup."+n.group,function(e){27===e.keyCode&&r.close(t,n,!0)}),n.$popup.on("focusout.Popup."+n.group,function(){setTimeout(function(){0===e(document.activeElement).closest(n.$popup).length&&(n.$close.attr("tabindex",-1),n.$body.hasClass("kb_user")&&r.close(t,n,!0))},1)}),n.$close.on("click",function(){r.close(t,n,!0)})},unbindEvents:function(t){e(document).off("click.Popup."+t.group),e(document).off("keyup.Popup."+t.group),t.$popup.off("focusout.Popup."+t.group),t.$close.off("click")},showPopup:function(e,t){t.$content.html(t.$popupData.html()),t.hiddenPopup&&t.$content.find(n).prop("tabIndex","0"),r.setBounds(e,t),t.leftDiff<0-t.boundsOffset&&!t.small?t.$popup.find(".popup-arrow").css({left:t.arrowPos}):t.rightDiff>t.boundsOffset&&!t.small?t.$popup.find(".popup-arrow").css({left:t.arrowPos}):t.small?t.$popup.find(".popup-arrow").css({left:t.arrowPos}):t.$popup.find(".popup-arrow").removeAttr("style"),t.$popup.css({visibility:"visible",opacity:1,width:t.popupWidth,left:t.offset,top:t.controlCalc.top+e.height()})},open:function(e,t){e.addClass("popup--active"),r.setAriaState(t,e.hasClass("popup--active"),!0),r.showPopup(e,t),r.bindEvents(e,t),r.focusedPopup(e,t),Springerverse.Mediator.emit(t.componentName+"."+t.group,"open",t.componentNamespace,t.$popup,t.$control)},close:function(o,i,s){o.removeClass("popup--active"),r.setAriaState(i,o.hasClass("popup--active"),s),s&&(r.unbindEvents(i),i.$popup.css("opacity",0)),Springerverse.Mediator.emit(i.componentName+"."+i.group,"close"),o.find(n).filter(":first").focus(),i.$popup.onTransitionEnd(function(){i.$content.html(""),i.$popup.attr("style",t),e(".js-focus-catcher").attr("tabindex",-1)})},focusedPopup:function(t,o){var r=o.$popup.find(n).filter(":visible").filter(":first");o.$close.attr("tabindex",0),e(".js-focus-catcher").attr("tabindex",0),r.focus(),r.is("input")&&Springerverse.Mediator.emit(o.hasInputFirst=!0)},init:function(t,n,i){var s=o(t,n,i);r.createPopup(s),r.ariaControls(s),t.on("click",s.control,function(n){if(n.preventDefault(),t.hasClass("popup--active"))r.close(t,s,!0);else{if(s.nowopen){r.unbindEvents(s);var o=e(".popup--active");r.close(o,s.nowopenSettings,!1)}r.open(t,s)}}),Springerverse.Mediator.on(s.componentName+"."+s.group+":open",function(e,t,n){s.nowopen=e,s.nowopenSettings={$popup:t,$control:n,$content:s.$content}}),Springerverse.Mediator.on(s.componentName+"."+s.group+":close",function(){s.nowopen=null,s.nowopenSettings=null}),"authors"===s.group&&Springerverse.Mediator.on("Authors:open",function(){r.setBounds(t,s)}),Springerverse.Utils.Scheduler.on("resize orientationchange",function(){s.singleColumn=Springerverse.Utils.DeviceState.lte("large"),s.small=Springerverse.Utils.DeviceState.lte("small"),t.hasClass("popup--active")&&(s.hasInputFirst&&s.windowWidth!==e(window).width()&&r.close(t,s,!0),s.hasInputFirst||r.close(t,s,!0))})}};return r}(this.Springerverse.Utils.GetSpringerverseJquery.init()),this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Search=function(e){"use strict";var t=function(t,n,o){var r=e.extend({},o);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r};return{init:function(n,o,r){var i=t(n,o,r);i.$searchButton=e(n).find(".search-button");var s={group:"search",componentPrefix:i.componentPrefix,control:"a",bounds:".page-wrapper",boundsOffsetArray:[0,0],theme:"popup-search-theme",popupWidthPercentage:100,hiddenPopup:!1};window.Springerverse.Component.Popup.init(i.$searchButton,"Popup."+o,s)}}}(this.Springerverse.Utils.GetSpringerverseJquery.init()),this.Springerverse=this.Springerverse||{},this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Tabs=function(e){"use strict";var t={up:38,down:40,left:37,right:39,enter:13},n={selectors:{tabList:".c-tabs__list",tabListItem:".c-tabs__list-item",tabListItemSelected:"--selected",tabListItemFocus:"--focus",tabListItemLink:".c-tabs__list-link",tabContent:".c-tabs__content",tabContentItem:".c-tabs__content-item",tabListItemIdPrefix:"tab-controls__"},startTab:0,mediaQuery:null,transitionLength:0,themeOffClass:"c-tabs--off",themeOnClass:"c-tabs--default"},o=function(t,o,r){var i=e.extend({},n,r);return i.name=o,i.componentName=o.split(".")[0],i.componentNamespace=o.split(".")[1],i.$el=t,i},r=function(t){t.$tabList.attr("role","tablist"),t.$allTabLinks.attr("role","tab");for(var n=0;n<t.$allTabLinks.length;++n){var o=e(t.$allTabLinks[n]),r=o.attr("href");void 0!==r&&""!==r&&"#"!==r&&o.attr({"aria-controls":r.replace("#",""),"aria-selected":"false",id:t.selectors.tabListItemIdPrefix+r.replace("#","")})}t.firstHash=t.$allTabLinks.filter(":first").attr("aria-controls"),t.firstPosition=t.$allTabLinks.index(e("#"+t.selectors.tabListItemIdPrefix+t.firstHash)),t.lastHash=t.$allTabLinks.filter(":last").attr("aria-controls"),t.lastPosition=t.$allTabLinks.index(e("#"+t.selectors.tabListItemIdPrefix+t.lastHash))},i=function(t){t.$allTabContents.attr({role:"tabpanel","aria-hidden":"true"});for(var n=0;n<t.$allTabContents.length;++n){var o=e(t.$allTabContents[n]),r=o.attr("id");o.attr("aria-labelledby",t.selectors.tabListItemIdPrefix+r)}},s=function(e,t,n,o){e.$allTabLinks.attr("aria-selected","false"),e.$allTabContents.attr("aria-hidden","true"),e.$tabListItems.removeClass(e.selectedParentClass),t.attr("aria-selected","true"),n.removeAttr("aria-hidden"),t.closest(e.selectors.tabListItem).addClass(e.selectedParentClass),e.activeTab=t,o&&setTimeout(function(){history.pushState({state:o},null,location.pathname+location.search+"#"+o)},e.transitionLength),Springerverse.Mediator.emit(e.name,"openTab",t.attr("aria-controls"),e)},a=function(t){if(""!==t.hash&&0!==e("#"+t.hash+t.selectors.tabContentItem).length){var n="#"+t.selectors.tabListItemIdPrefix+t.hash+t.selectors.tabListItemLink;e(n+':not([aria-disabled="true"])').length>0&&s(t,e(n),e("#"+t.hash+t.selectors.tabContentItem))}},l=function(t){if(""!==t.hash&&e("#"+t.hash).parents(t.selectors.tabContentItem).length>0){var n=e("#"+t.hash).parents(t.selectors.tabContentItem),o=n.attr("id"),r="#"+t.selectors.tabListItemIdPrefix+o+t.selectors.tabListItemLink;e(r+':not([aria-disabled="true"])').length>0&&s(t,e(r),n)}},c=function(t){if(0===t.$el.find(t.selectors.tabListItemLink+'[aria-selected="true"]').length){var n=t.$startLink.length?t.$startLink:t.$firstLink,o=n.attr("aria-controls"),r=e("#"+o);s(t,n,r)}},p={events:function(n){e(document).on("click.Tabs",n.selectors.tabListItemLink+'[aria-disabled="true"]',function(){return!1}),e(document).on("click.Tabs",n.selectors.tabListItemLink+':not([aria-disabled="true"])',function(t){var o=e(this),r=o.attr("aria-controls"),i=e("#"+r);s(n,o,i,r),t.preventDefault()}),e(document).on("keydown.Tabs",n.selectors.tabList,function(o){var r=document.activeElement,i=e(r).attr("aria-controls"),a=n.$allTabLinks.index(n.activeTab),l=a>0?a-1:n.lastPosition,c=a<n.lastPosition?a+1:n.firstPosition,p=n.$allTabLinks.eq(l).attr("aria-controls"),u=n.$allTabLinks.eq(c).attr("aria-controls");switch(o.keyCode){case t.up:case t.left:var d=e("#"+n.selectors.tabListItemIdPrefix+p);s(n,d,e("#"+p),p),d.focus(),o.preventDefault();break;case t.down:case t.right:var f=e("#"+n.selectors.tabListItemIdPrefix+u);s(n,f,e("#"+u),u),f.focus(),o.preventDefault();break;case t.enter:e(r).is(':not([aria-disabled="true"])')&&(s(n,e(r),e("#"+i),i),o.preventDefault())}}),e(window).on("hashchange.Tabs",function(){var t=window.location.hash.replace("#",""),o=e("#"+t).parents(n.selectors.tabContentItem),r=o.attr("id");if(o.length>0){var i=e("#"+n.selectors.tabListItemIdPrefix+r);s(n,i,e("#"+r),t),e("html, body").scrollTop(e("#"+t).offset().top)}})},off:function(t){t.themeOffClass&&t.$el.addClass(t.themeOffClass),t.themeOnClass&&t.$el.removeClass(t.themeOnClass),t.$tabList.removeAttr("role"),t.$tabListItems.removeAttr("role"),t.$allTabLinks.removeAttr("role aria-controls id aria-selected"),t.$allTabContents.removeAttr("role aria-hidden aria-labelledby"),t.activeTab=null,history.pushState({state:null},null,location.pathname+location.search),e(document).off("click.Tabs"),e(document).off("keydown.Tabs"),e(window).off("hashchange.Tabs"),Springerverse.Mediator.emit(t.name,"tabsOff")},on:function(e){e.themeOnClass&&e.$el.addClass(e.themeOnClass),e.themeOffClass&&e.$el.removeClass(e.themeOffClass),r(e),i(e),a(e),l(e),c(e),p.events(e)},init:function(t,n,r){var i=o(t,n,r);i.hash=window.location.hash.replace("#",""),i.$tabList=i.$el.find(i.selectors.tabList),i.$tabListItems=i.$tabList.children(i.selectors.tabListItem),i.$allTabLinks=i.$tabList.find(i.selectors.tabListItemLink+':not([aria-disabled="true"])'),i.$allTabContents=i.$el.find(i.selectors.tabContent+" > "+i.selectors.tabContentItem),i.$startLink=i.$el.find(i.selectors.tabListItemLink).eq(i.startTab).filter(':not([aria-disabled="true"])'),i.$firstLink=i.$el.find(i.selectors.tabListItemLink+':not([aria-disabled="true"])').filter(":first"),i.selectedParentClass=(i.selectors.tabListItem+i.selectors.tabListItemSelected).replace(/^\./,""),i.focusParentClass=(i.selectors.tabListItem+i.selectors.tabListItemFocus).replace(/^\./,""),Springerverse.Utils.Scheduler.on("load resize orientationchange",function(){!i.mediaQuery||i.mediaQuery&&Springerverse.Utils.DeviceState.gte(i.mediaQuery)?"on"!==i.tabState&&(i.tabState="on",p.on(i)):"off"!==i.tabState&&(i.tabState="off",p.off(i))}),i.$tabListItems.on("focusin",function(){i.$tabListItems.removeClass(i.focusParentClass),e(this).addClass(i.focusParentClass)}).on("focusout",function(){e(this).removeClass(i.focusParentClass)})}};return p}(jQuery),this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.ToggleHeadings=function(e){"use strict";var t=function(t,n,o){var r=e.extend({},o);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},n=function(e){return e?0:-1},o=function(e,t){e.toggleClass("js-ShowContent"),e.find(".section-icon").toggleClass("section-icon--open"),Springerverse.Mediator.emit(t.name,"toggle","js-ShowContent")},r=function(e){e.$el.closest(".FulltextWrapper > *").data("role","collapsible").data("section",e.componentNamespace)};return{init:function(i,s,a){var l=t(i,s,a);l.isCollapsed=!1,l.$el.append('<span class="section-icon"></span>'),l.$el.attr("data-role","collapsible-handle"),r(l),Springerverse.Utils.Scheduler.on("load scroll resize orientationchange",function(){l.isCollapsed=Springerverse.Utils.DeviceState.lte(l.mediaQuery),i.attr("tabindex",n(l.isCollapsed))}),l.$el.on("click.Heading."+l.componentNamespace,function(){l.isCollapsed&&o(e(this),l)}),l.$el.on("keyup.Heading."+l.componentNamespace,function(t){13===t.keyCode&&l.isCollapsed&&o(e(this),l)})}}}(jQuery),this.Springerverse=this.Springerverse||{},this.Springerverse.Component=this.Springerverse.Component||{},this.Springerverse.Component.Validation=function(e){"use strict";var t={fieldSelector:"[data-role=ValidationField]:not(:hidden)",submitSelector:"[data-role=ValidationSubmit]",submitDisabledClass:"c-button--disabled",errorClass:"error",messageSelector:"[data-role=ValidationMsg]",
  3. messageOpen:'<span class="error-msg error-msg--after" data-role="ValidationMsg">',messageClose:"</span>",disableSubmit:!0,focusFirst:!0,displayErrors:!0,validateRequired:!0,validateEmail:!0,HTML5Validation:!0,errors:{},validationText:{required:{error:"This is a required field"},email:{error:"Invalid email address format"}},customValidation:{}},n=function(n,o,r){var i=e.extend({},t,r);return i.name=o,i.componentName=o.split(".")[0],i.componentNamespace=o.split(".")[1],i.$el=n,i},o=function(e,t){return e.validationText[t]?e.validationText[t].error:null},r=function(e,t){e.$submit.toggleClass(e.submitDisabledClass,t),e.$submit[0].disabled=t},i=function(t,n,o,r){var i=e(n),s=0!==i.next().filter(t.messageSelector).length;i.toggleClass(t.errorClass,!o),o&&s?i.next().remove():!o&&s?i.next(t.messageSelector).text(r):o||s||i.after(t.messageOpen+r+t.messageClose)},s=function(e,t,n,o,r){var i=o?"errorOff":"errorOn",s=e.errors[n]?e.errors[n].message:null;if(o&&n in e.errors&&(Springerverse.Mediator.emit(e.name,i,e.errors[n]),delete e.errors[n]),!o&&s!==r){var a=e.errors[n]={element:t,message:r};Springerverse.Mediator.emit(e.name,i,a)}},a=function(t,n,a,l){var c=null,p=null;if("hidden"!==n.type&&l){if(t.validateRequired&&n.getAttribute("data-required")&&n.value.length>0?(c=!0,p=null):t.validateRequired&&n.getAttribute("data-required")?(c=!1,p="required"):c=!0,!n.getAttribute("data-required")||n.value.length>0){t.validateEmail&&"email"===n.type&&(c=Springerverse.Utils.Validate.email(n.value),p=c?null:n.type);for(var u in t.customValidation)if(Object.prototype.hasOwnProperty.call(t.customValidation,u)){var d=t.customValidation[u]||{};if(e(n).is(d.selector)){c=d.validate(n.value),p=c?null:d.message;break}}}null!==c&&s(t,n,a,c,o(t,p)),null!==c&&t.displayErrors&&i(t,n,c,o(t,p)),t.$submit.length>0&&t.disableSubmit&&null!==c&&r(t,Object.keys(t.errors).length>0)}};return{init:function(t,o,r){var i=n(t,o,r);i.$submit=t.find(i.submitSelector),i.$validationElements=t.find(i.fieldSelector),i.validateRequired&&i.$validationElements.filter(function(){return e(this).prop("required")&&this.setAttribute("data-required",!0),!0}),i.HTML5Validation||t.attr("novalidate",!0),i.focusFirst&&i.$validationElements.first().focus(),i.$validationElements.length>0&&t.on("keyup focusout",i.fieldSelector,function(t){a(i,this,i.$validationElements.index(this),"focusout"===t.type||e(this).hasClass(i.errorClass))})}}}(jQuery),function(e){"use strict";for(var t,n=["webkit","moz"],o=0;n[o]&&!e.requestAnimationFrame;++o)e.requestAnimationFrame=e[n[o]+"RequestAnimationFrame"],e.cancelAnimationFrame=e[n[o]+"CancelAnimationFrame"]||e[n[o]+"CancelRequestAnimationFrame"];e.supportsRequestAnimationFrame=!0,e.requestAnimationFrame||(e.supportsRequestAnimationFrame=!1,e.requestAnimationFrame=function(e){var n=(new Date).getTime(),o=Math.max(0,16-(n-t)),r=setTimeout(function(){e(n+o)},o);return t=n+o,r}),e.cancelAnimationFrame||(e.cancelAnimationFrame=function(e){clearTimeout(e)})}(window);
  4. function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function TocFeedback(){this.elm=$("<div class='tocFeedback'> <div class='tocFeedback__error'> <p class='tocFeedback__errorMessageText'> <svg class='tocFeedback__icon-alert' width='24' height='24' viewBox='0 0 24 24' version='1.1' xmlns='http:\\/\\/www.w3.org/2000/svg'><title>Alert icon</title><defs></defs><g id='Symbols' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'><g id='icon-/-alert'><g id='Alert'><rect id='Bounds' fill='#FFFFFF' opacity='0' x='0' y='0' width='24' height='24'></rect><path d='M10.5,7 L13.5,7 L13,13 L11,13 L10.5,7 Z M12,14.75 L12,14.75 C12.6903559,14.75 13.25,15.3096441 13.25,16 L13.25,16 C13.25,16.6903559 12.6903559,17.25 12,17.25 L12,17.25 C11.3096441,17.25 10.75,16.6903559 10.75,16 L10.75,16 C10.75,15.3096441 11.3096441,14.75 12,14.75 Z M12,21 C7.02943725,21 3,16.9705627 3,12 C3,7.02943725 7.02943725,3 12,3 C16.9705627,3 21,7.02943725 21,12 C21,16.9705627 16.9705627,21 12,21 Z M12,20 C16.418278,20 20,16.418278 20,12 C20,7.581722 16.418278,4 12,4 C7.581722,4 4,7.581722 4,12 C4,16.418278 7.581722,20 12,20 Z' id='Icon' fill='#666666' fill-rule='nonzero'></path></g></g></g></svg> The contents failed to load </p> <button data-retry='true' class='c-button tocFeedback__retry'>Retry</button> </div> <div class='tocFeedback__waiting'> <p class='tocFeedback__waitingMessageText'>Loading...</p> </div> </div>"),this.errorElm=this.elm.find(".tocFeedback__error"),this.waitingElm=this.elm.find(".tocFeedback__waiting"),this.attemptedPageNumberRequest=null,this.currentPageNumber=null,this.elm[0].addEventListener("click",this.onClick.bind(this),!0),this.hideErrorMsg(),this.hideWaitingMsg()}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Airbrake=function(){var e="link.springer.com",t={projectId:"178929",projectKey:"b456e6db2b2a4e4811feb7dbe1a03a48"},n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.message,i=void 0===n?null:n,r=[];return!!window.location.hostname.match(e)&&(null!==i&&!r.includes({message:i}))},i=function(){var e=new airbrakeJs.Client(t);window.addEventListener("error",function(t,n){for(var i=arguments.length,r=Array(i>2?i-2:0),o=2;o<i;o++)r[o-2]=arguments[o];n&&n.includes(window.location.hostname)&&e.onerror.apply(e,[t,n].concat(r))}),e.addFilter(function(e){return e.errors&&e.errors.length>0&&!n(e.errors[0])?null:(e.context.environment="Production",e)})};return{init:i}}();this.SpringerLink.Utils=this.Springerverse.Utils||{},this.SpringerLink.Utils.AjaxRequest=function(e){"use strict";var t={init:function(e){var t=e.method,n=e.url,i=e.onSuccess,r=e.onError;fetch(n,{method:t}).then(function(e){e.ok||r(request.statusText),i(e.json())})["catch"](function(e){r(e)})}};return t}(jQuery),this.SpringerLink.Utils=this.SpringerLink.Utils||{},this.SpringerLink.Utils.Debounce=function(e){"use strict";var t={init:function(e,t,n){var i=void 0;return function(){var r=this,o=arguments,a=function(){i=null,n||e.apply(r,o)},s=n&&!i;clearTimeout(i),i=setTimeout(a,t),s&&e.apply(r,o)}}};return t}(jQuery);var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),FeatureToggles=function(){function e(){_classCallCheck(this,e),this.features=dataLayer[0].Features}return _createClass(e,[{key:"isFeatureEnabled",value:function(e){return this.features.indexOf(e)>-1}},{key:"Features",get:function(){return this.features}}]),e}();this.SpringerLink.Utils=this.SpringerLink.Utils||{},this.SpringerLink.Utils.FeatureToggles=FeatureToggles,this.SpringerLink.Utils=this.SpringerLink.Utils||{},this.SpringerLink.Utils.mathjaxTypeset=function(){"use strict";var e={loadScript:function(e){return new Promise(function(t,n){var i=document.createElement("script");i.type="text/javascript",i.src=e,i.addEventListener("load",function(){return t(i)},!1),i.addEventListener("error",function(){return n(i)},!1),document.body.appendChild(i)})},transformMaths:function(e){$(e).each(function(e){MathJax.Hub.Queue(["Typeset",MathJax.Hub,this])})},init:function(t){t.length&&"string"==typeof t&&("undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub?e.transformMaths(t):this.loadScript(SpringerLink.staticLocation+"/js/mathJax.js").then(function(){"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&e.transformMaths(t)}))}};return e}(),this.Springerverse.Utils=this.Springerverse.Utils||{},this.Springerverse.Utils.ScrollPositionListener=function(e){function t(e,t){var n=!1;return function(){n||(e.apply(null,arguments),n=!0,setTimeout(function(){n=!1},t))}}var n=null,i="",r={init:function(e,r,o){n=e,i=r,n&&n.addEventListener("scroll",t(this.handleScrollEvent.bind(this),250))},getMeasures:function(){var e;return e=n,scrollHeight=e.scrollHeight,scrollTop=e.scrollTop,clientHeight=e.clientHeight,e},handleScrollEvent:function(){var e=[{position:"bottom",validatePosition:this.isScrollInTheBottom.bind(this)},{position:"middle",validatePosition:this.isScrollInTheMiddle.bind(this)}];e.forEach(function(e){e.validatePosition()&&Springerverse.Mediator.emit("ScrollPositionListener","done",i,e.position)})},isScrollInTheBottom:function(){var e=this.getMeasures();return e.scrollTop+e.clientHeight>=e.scrollHeight},isScrollInTheMiddle:function(){var e=this.getMeasures(),t=e.scrollHeight/2-e.scrollTop,n=e.clientHeight/2;return t<=n}};return r}(jQuery);var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),TemplateLoader=function(){function e(){_classCallCheck(this,e);var t={},n=t.templatesSourceContent,i=void 0===n?null:n,r=t.cachedTagsTemplates,o=void 0===r?[]:r,a=t.$templateContainer,s=void 0===a?null:a,l=t.templatesID,c=void 0===l?[]:l,u=t.isMustacheJSLoaded,d=void 0!==u&&u,p=t.namespace,h=void 0===p?null:p;this.state={templatesSourceContent:i,cachedTagsTemplates:o,$templateContainer:s,templatesID:c,isMustacheJSLoaded:d,namespace:h}}return _createClass(e,[{key:"set",value:function(e,t){this.state[e]=t}},{key:"get",value:function(e){return this.state[e]}},{key:"init",value:function(e){var t=this,n=e.templatesID,i=e.namespace;n&&(this.set("templatesID",n),this.set("namespace",i),this.getMustacheJS().then(this.getRawTemplatesFromSource.bind(this)).then(function(e){t.set("templatesSourceContent",e),t.updateDOM(),Springerverse.Mediator.emit("TemplateLoader","done",t.get("namespace")||null)})["catch"](function(e){return console.log(e)}))}},{key:"getMustacheJS",value:function(){var e=this;return new Promise(function(t,n){if(e.get("isMustacheJSLoaded"))return t();var i=document.createElement("script");e.handleMustacheJSEvents(t,n,i),i.src=window.SpringerLink.staticLocation+"/js/mustache-2.3.0.min.js",document.body.appendChild(i)})}},{key:"handleMustacheJSEvents",value:function(e,t,n){var i=void 0,r=void 0,o=void 0,a=void 0;i=function(){this.set("isMustacheJSLoaded",!0),n.removeEventListener("load",o),e()},r=function(){n.removeEventListener("error",a),t()},o=i.bind(this),a=r.bind(this),n.addEventListener("load",o),n.addEventListener("error",a)}},{key:"updateDOM",value:function(){var e=this.getTemplatesToUse(),t=this.get("$templateContainer");if(t)t.innerHTML+=e;else{var n="templates-list";this.set("$templateContainer",document.createElement("div")),t=this.get("$templateContainer"),t.setAttribute("id",n),t.innerHTML=e,document.body.appendChild(t)}}},{key:"getTemplatesToUse",value:function(){var e=this,t=this.get("templatesSourceContent"),n="";return this.getTemplatesID().forEach(function(i){e.get("cachedTagsTemplates").push(i);var r=new RegExp('<script\\b[^>]*\\id="'+i+'">([\\s\\S]*?)<\\/script>'),o=t.match(r);o&&(n+=o[0])}),n}},{key:"getTemplatesID",value:function(){var e=this.get("cachedTagsTemplates"),t=this.get("templatesID");return e&&e.length>0&&(t=this.state.templatesID.filter(function(t){return!e.includes(t)})),t}},{key:"getRawTemplatesFromSource",value:function(){var e=this;return new Promise(function(t,n){var i=e.get("templatesSourceContent");if(i)return t(i);var r=window.SpringerLink.staticLocation+"/js/templates.js";fetch(r,{method:"GET"}).then(function(e){e.ok||n(e.statusText),t(e.text())})["catch"](function(e){console.log(e)})})}}]),e}();this.SpringerLink.Utils=this.SpringerLink.Utils||{},this.SpringerLink.Utils.TemplateLoader=new TemplateLoader;var md5="d9df3061a01c62435d23dfb68ca24576",key="fonts",cache,foutFix=function(e){return!!e&&e.foutFix}(document.documentElement.dataset);WebFontConfig={classes:foutFix,events:!1,google:{families:["Source Sans Pro:400,600"]}};var insertFont=function(e){var t=document.createElement("style");t.innerHTML=e,document.head.appendChild(t)},addScript=function(e){var t=e.createElement("script"),n=e.scripts[0];t.src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.16/webfont.js",n.parentNode.insertBefore(t,n)};!function(e,t){if(window.localStorage){try{cache=window.localStorage.getItem(key),cache&&(cache=JSON.parse(cache),cache.md5==md5?insertFont(cache.value):(window.localStorage.removeItem(key),cache=null))}catch(n){return}cache||window.addEventListener("load",function(){var n,i=new XMLHttpRequest,r=t+"/fonts."+md5+".woff.json";i.open("GET",r,!0),i.onload=function(){if(200==this.status)try{n=JSON.parse(this.response),insertFont(n.value),window.localStorage.setItem(key,this.response)}catch(t){addScript(e)}},i.onerror=function(){addScript(e)},i.send()})}else addScript(e)}(document,window.SpringerLink.staticLocation),function(e,t){function n(t,n,a,s){t[i](o+n,"wheel"==r?a:function(t){!t&&(t=e.event);var n={originalEvent:t,target:t.target||t.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==t.type?0:1,deltaX:0,delatZ:0,preventDefault:function(){t.preventDefault?t.preventDefault():t.returnValue=!1}};return"mousewheel"==r?(n.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(n.deltaX=-.025*t.wheelDeltaX)):n.deltaY=t.detail,"function"==typeof a&&a(n)},s||!1)}var i,r,o="";e.addEventListener?i="addEventListener":(i="attachEvent",o="on"),void 0!==t.onmousewheel&&(r="mousewheel");try{WheelEvent("wheel"),r="wheel"}catch(a){}r||(r="DOMMouseScroll"),e.addWheelListener=function(e,t,i){n(e,r,t,i),"DOMMouseScroll"==r&&n(e,"MozMousePixelScroll",t,i)}}(window,document),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.AnchorScroll=function(e){"use strict";var t={init:function(t,n,i){i.anchorScroll&&t.on("click","."+i.anchorLink,function(){var t=e(this.hash),n=e("."+i.stickyBannerClassName).outerHeight()+5;if(t=t.length?t:e("[id="+this.hash.slice(1)+"]"),t.length)return e("html,body").animate({scrollTop:t.offset().top-n},500),!1})}};return t}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.ArticleDates=function(e){"use strict";var t="article-dates__first-online",n="gtm-first-online",i="article-dates__history",r=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},o={updateMarkup:function(e){e.$firstOnline.html('<a href="#article-dates-history" class="'+n+'">'+e.$firstOnline.text()+"</a>"),e.$articleHistoryDates.attr("id","article-dates-history")},init:function(e,n,a){var s=r(e,n,a);if(s.$firstOnline=e.find("."+t),s.$articleHistoryDates=e.find("."+i),s.$firstOnline.length&&s.$articleHistoryDates.find(".article-dates__entry").length){e.addClass("article-dates--enhanced"),o.updateMarkup(s);var l={componentPrefix:s.componentPrefix,group:"article-dates",control:"a",bounds:".FulltextWrapper",boundsOffsetArray:[26,0],theme:"popup-base-theme",popupWidthPercentage:50,hiddenPopup:!1};Springerverse.Component.Popup.init(s.$firstOnline,"Popup."+n,l)}}};return o}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.ArticleMetrics=function(e,t){"use strict";var n=t[0].DOI,i=".article-metrics",r={init:function(t,o,a){0===t.find(i).length&&r.pageTypeIsArticle()&&e.ajax({url:a.articleMetricsUrl+n,dataType:"html"}).done(function(e){e&&t.append('<div class="main-context__column">'+e+"</div>")})},pageTypeIsArticle:function(){return t=t||{},"Article"===t[0]["Event Category"]}};return r}(jQuery,dataLayer),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.Authors=function(e){"use strict";var t="[data-role=AuthorsList]",n="[data-role=AuthorsNavigation]",i="[data-role=AuthorsIndexes]",r="authors--enhanced",o="authorsandaffiliations",a="authors",s="authors-affiliations__indexes--highlight",l="affiliation--highlight",c=function(i,r,o){var a=e.extend({},o);return a.name=r,a.componentName=r.split(".")[0],a.componentNamespace=r.split(".")[1],a.$el=i,a.$authorsTab=i.find(t),a.$nav=a.$el.find(n),a},u=function(e){return e.$nav.find("a.selected").outerWidth()},d={updateMarkup:function(t){var n=e("#"+o),i=n.find(".content").clone().attr("class","authors-affiliations u-interface");t.$nav.find("span").replaceWith('<a href="#'+a+'" class="gtm-tab-authors selected">Authors</a>'),t.$navLinks=t.$nav.find("a"),t.$authorsTab.attr("id",a),t.$selected=e("#"+a),t.$nav.after('<span class="marker"></span>'),t.$marker=t.$el.find(".marker"),t.$marker.css({width:u(t)}),Springerverse.Utils.Scheduler.on("resize orientationchange",function(){t.$marker.css({width:u(t)})}),t.$authorsTab.after(i.wrap('<div class="authors__affiliations" id="'+o+'"></div>').parent()),n.remove(),t.$affiliations=t.$el.find("#"+o),e("nav.toc").find('a[href="#'+o+'"]').parent("li").remove()},switchTabs:function(t,n){var i=e(t.attr("href"));n.$navLinks.toggleClass("selected"),n.$marker.css({transform:"translateX("+t.position().left+"px)",width:t.outerWidth()}),n.$selected.css({height:0,opacity:0}),i.css({height:"auto",opacity:1}),n.$selected=i},highlightAffilications:function(e,t,n){for(var i=e.find("li").map(function(){return this.getAttribute("data-affiliation")}),r=0;r<i.length;++r)t.$affiliations.find('[data-affiliation-highlight="'+i[r]+'"]').toggleClass(l,n)},init:function(t,n,o){var a=c(t,n,o);t.addClass(r),d.updateMarkup(a);var l={componentPrefix:a.componentPrefix,maxPersons:15,showMore:"show <val> more",showLess:"show less",className:"authors",dataRoleName:"Authors"};SpringerLink.Component.TruncatePersons.init(a.$el,"Authors",l),a.$nav.on("click touchend","a",function(t){t.preventDefault(),e(t.target).hasClass("selected")||d.switchTabs(e(t.target),a)}),a.$affiliations.on("mouseenter","ul>li",function(){var t=e(this).find(i);t.addClass(s),d.highlightAffilications(t,a,!0)}).on("mouseleave","ul>li",function(){var t=e(this).find(i);t.removeClass(s),d.highlightAffilications(t,a,!1)})}};return d}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.Autosuggest=function(e){"use strict";var t=1,n=500,i="autosuggest-list",r="[data-role="+i+"]",o="[data-role=autosuggest-output]",a="#springerlink-event-search",s="gtm-autosuggest-link",l={selector:"[data-role=autosuggest-message]",state:{ready:"Type for suggestions",noResults:"No results based on query typed",fetching:"Fetching suggestions",error:"Unable to fetch suggestions"}},c=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},u={handleSearchQuery:function(e){var t=e.$el[0].querySelector(a).value.replace(/[,\/#!$%\^&\*;:{}_`~()?\\]/g," ").replace(/\s\s+/g," ").trim();return t.length&&(t=encodeURIComponent(t),t=t.split("%20").slice().join(",")),t},callEndpoint:function(e){return new Promise(function(t,n){var i=dataLayer[0].content.book.doi,r=window.location.protocol+"//rweautosuggest.live.cf.public.springer.com/suggestions/"+i+"?terms=";SpringerLink.Utils.AjaxRequest.init({method:"GET",url:r+e,onSuccess:function(e){t(e)},onError:function(e){n(Error("There was an error"+e))}}),document.querySelector(l.selector).innerHTML=l.state.fetching})},onSuccess:function(e){e.length?(u.addFragment(e),u.handleMessage()):(u.clearList(),u.handleMessage(l.state.noResults))},onError:function(e){u.clearList(),u.handleMessage(l.state.error)},createFragment:function(e){var t=document.createDocumentFragment(),n="";n+='<ul class="content-type-list" data-role="autosuggest-list">';for(var i in e)e.hasOwnProperty(i)&&(n+='<li class="content-type-list__item"><a class="content-type-list__link '+s+'" href="/referenceworkentry/'+e[i].doi+'">'+e[i].title+"</a></li>");return n+="</ul>",t.appendChild(u.convertStringToHTML(n))},convertStringToHTML:function(e){var t=document.createElement("div");return t.innerHTML=e,t.firstChild},addFragment:function(e){var t=document.querySelectorAll(r),n=document.querySelectorAll(o),i=Array.from(n);i.forEach(function(n,i){t.length?n.replaceChild(u.createFragment(e),t[i]):n.appendChild(u.createFragment(e))})},clearList:function(){var e=document.querySelectorAll(r),t=Array.from(e);e.length&&t.forEach(function(e){e.innerHTML=""})},handleMessage:function(e){var t=document.querySelectorAll(l.selector),n=Array.from(t);n.forEach(function(t){e&&n.length?(t.innerHTML=e,t.classList.add("u-js-show")):(t.innerHTML="",t.classList.remove("u-js-show"))})},duplicateUserInput:function(){},init:function(e,i,o){var a=c(e,i,o),s=SpringerLink.Utils.Debounce.init(function(){var e=u.handleSearchQuery(a);e&&e.length>=t?u.callEndpoint(e).then(u.onSuccess,u.onError).then(function(){Springerverse.Mediator.emit("Autosuggest","listGenerated")}):(u.clearList(),u.handleMessage(l.state.ready))},n);a.$el[0].addEventListener("keyup",function(e){var t=e.keyCode||e.which;9!==t&&37!==t&&38!==t&&39!==t&&40!==t&&s()}),SpringerLink.Utils.mathjaxTypeset.init(r)}};return u}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.DownloadOptions=function(e){"use strict";var t="#article-actions",n=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},i={duplicateDropdown:function(e,t){var n=e.$el.clone().prependTo("[data-component=article-actions--inline]"),r=e.name+"--inline";t.duplicated=!0,i.init(n,r,t)},init:function(i,r,o){var a=n(i,r,o);i.parent().attr("aria-hidden")&&(r+="-hidden"),i.attr("data-component","SV.Dropdown"),a.duplicate&&e(t).length&&(o.duplicate=!1,this.duplicateDropdown(a,o)),o.duplicated=!0,Springerverse.Component.Dropdown.init(i,r,o)}};return i}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.DownloadSingleBookOption=function(e){"use strict";var t="#article-actions",n=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},i={duplicateDropdown:function(e,t){var n=e.$el.clone().prependTo("[data-component=article-actions--inline]"),r=e.name+"--inline";t.duplicated=!0,i.init(n,r,t)},init:function(i,r,o){var a=n(i,r,o);a.duplicate&&e(t).length&&(o.duplicate=!1,this.duplicateDropdown(a,o))}};return i}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.DynamicContentTypeList=function(e){"use strict";var t={},n=!1,i=null,r=null,o=null,a=!0,s=null,l=function(n,i,r){var o=e.extend({},t,r);return o.name=i,o.componentName=i.split(".")[0],o.componentNamespace=i.split(".")[1],o.$el=n,o.templatesId=r.templatesId,o},c=function(){var e=this,t=["rwe-toc","rwe-toc-entry","rwe-toc-subpart"];return SpringerLink.Utils.TemplateLoader.init({templatesID:t,namespace:this.instance.name}),new Promise(function(t){Springerverse.Mediator.on("TemplateLoader:done",function(i){i===e.instance.name&&(n=!0,t())})})},u={getData:function(){return new Promise(function(e,t){var n=dataLayer[0].content.book.doi,a=window.location.protocol+"//"+window.location.host+"/referencework-toc/"+n+"?page="+i;r&&o?a=a+"&partId="+r+"&subPartId="+o:r&&(a=a+"&partId="+r),Springerverse.Utils.AjaxRequest.init({method:"GET",url:""+a,onSuccess:function(t){e(t)},onError:function(e){t(Error("There was an error "+e))}})})},getHtmlFragment:function(e){var t={},n=null;return this.instance.templatesId.forEach(function(e){var n=document.getElementById(e);n&&(t[e]=n.textContent)}),e&&t&&(n=Mustache.render(document.getElementById("rwe-toc").textContent,{toc:e},t)),n},bindEvents:function(){var e=this;Springerverse.Mediator.on("EnhancedPagination:changePage",function(t){e.getData(t).then(function(t){e.render(t)})["catch"](function(e){Springerverse.Mediator.emit("EnhancedPagination","enable",{error:e})})}),Springerverse.Mediator.on("EnhancedPagination:updated",function(){Springerverse.Mediator.emit("HighlightTocAnchorItems","change",dataLayer[0].DOI)})},render:function(e){var t='[data-id="dynamic-toc-content"]',n=document.querySelector(t);n.innerHTML=this.getHtmlFragment(e),SpringerLink.Utils.mathjaxTypeset.init(t),Springerverse.Mediator.emit("EnhancedPagination","enable")},refreshTocData:function(){var e=this;this.getData().then(function(t){e.render(t);var n={maxPage:t.maxPage,pageNumber:i};Springerverse.Mediator.emit("EnhancedPagination","update",n)})["catch"](function(e){r||Springerverse.Mediator.emit("EnhancedPagination","update",{error:e})})},handleAboutReferenceWorkSelectorVisibility:function(e){e?a&&(s.classList.add("u-hide"),s.setAttribute("aria-hidden",!0),s.setAttribute("hidden",""),a=!1):(s.classList.remove("u-hide"),s.removeAttribute("hidden"),s.removeAttribute("aria-hidden"),a=!0)},init:function(t,a,u){var d=this;s=document.querySelector("#about-ref-work"),this.instance=l(t,a,u),n||c.call(this).then(function(){SpringerLink.Component.EnhancedPagination.init(e(".c-pagination"),"EnhancedPagination",{componentPrefix:"SpringerLink"}),d.bindEvents()}),Springerverse.Mediator.on("Toc:update",function(e){if(e&&(i=Object.prototype.hasOwnProperty.call(e,"pageNumber")?e.pageNumber:i,r=Object.prototype.hasOwnProperty.call(e,"partId")?e.partId:r,o=null,Object.prototype.hasOwnProperty.call(e,"subPartId")&&null!==e.subPartId&&(o=e.subPartId),d.refreshTocData(),s)){var t=1!==i||r;d.handleAboutReferenceWorkSelectorVisibility(t)}}),Springerverse.Mediator.on("Toc:reset",function(e){if(e&&(i=e.pageNumber,r=null,o=null,d.refreshTocData(),s)){var t=!1;d.handleAboutReferenceWorkSelectorVisibility(t)}}),Springerverse.Mediator.on("EnhancedPagination:updated",function(){Springerverse.Mediator.emit("HighlightTocAnchorItems","change",dataLayer[0].DOI)})}};return u}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.EditionSwitcher=function(e){"use strict";var t={init:function(e,t,n){Springerverse.Component.Dropdown.init(e,t,n),Springerverse.Utils.Scheduler.on("load",function(){var t=e.find(".c-button-dropdown__container ul > li.selected").text();e.find(".c-button-dropdown__button-title").text(t)})}};return t}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.EnhancedDynamicStickySideBar=function(e){"use strict";var t=null,n="",i={},r={},o=[],a={loadTemplates:function(){return SpringerLink.Utils.TemplateLoader.init({templatesID:o}),new Promise(function(e,t){Springerverse.Mediator.on("TemplateLoader:done",function(t){e()})})},initiateInfiniteScroll:function(){SpringerLink.Component.InfiniteScroll.init(t,n,{templates:r})},init:function(a,s,l){var c=this;l&&(r=l.infiniteScroll.templates,o=l.infiniteScroll.templatesId,Springerverse.Mediator.on("StickySidebar:loaded",function(e){this.initiateInfiniteScroll()}.bind(this)),this.loadTemplates().then(function(){t=e("."+l.stickySidebar.selector),n="StickySidebar"+c.name,i=l.stickySidebar.options,SpringerLink.Component.StickySidebar.init(t,n,i)}))}};return a}(jQuery);var _get=function e(t,n,i){null===t&&(t=Function.prototype);var r=Object.getOwnPropertyDescriptor(t,n);if(void 0===r){var o=Object.getPrototypeOf(t);return null===o?void 0:e(o,n,i)}if("value"in r)return r.value;var a=r.get;if(void 0!==a)return a.call(i)};TocFeedback.prototype={onClick:function(e){var t=e.target||null;$(t).data("retry")&&(this.hideErrorMsg(),this.clickTocNavButton())},clickTocNavButton:function(){document.querySelector("#js-"+this.determineTocNavButtonToRetry()+"-enhanced").click()},determineTocNavButtonToRetry:function(){return this.attemptedPageNumberRequest>this.currentPageNumber?"next":"previous"},attachTo:function(e){null===this.elm[0].parentElement&&$(e).prepend(this.elm)},showErrorMsg:function(e,t){this.hideWaitingMsg(),this.errorElm.show(),this.attemptedPageNumberRequest=e,this.currentPageNumber=t},hideErrorMsg:function(){this.errorElm.hide()},showWaitingMsg:function(){this.waiting&&this.waitingElm.show()},hideWaitingMsg:function(){this.waitingElm.hide()},startWaiting:function(){this.hideErrorMsg(),this.hideWaitingMsg(),this.waiting=!0,this.waiter=window.setTimeout(this.showWaitingMsg.bind(this),1e3)},stopWaiting:function(){this.waiting=!1,this.hideWaitingMsg()}},this.SpringerLink.Component=this.SpringerLink.Component||{};var EnhancedPagination=function(e){var t=null,n=null,i=null,r=null,o=null,a=null,s=null,l=null,c=new TocFeedback,u={toggleDeactivationOnPaginationAnchors:function(e){var t=e.classList.contains("u-disable-pointer-event");t?e.classList.remove("u-disable-pointer-event"):e.classList.add("u-disable-pointer-event")},toggleElementsVisibility:function(){var e=[[n,function(){return 1===a}],[i,function(){return a===s}]];e.forEach(function(e){e[0]&&(e[1]()?e[0].classList.add("u-hide"):e[0].classList.remove("u-hide"))})},updatePageNumberForm:function(){t.value=a},updateMaxPageNumber:function(){r.innerHTML=s;var e=Array.from(o);e.forEach(function(e){e.setAttribute("max",s)})},navigateToPage:function(e){a=e,c.startWaiting(),Springerverse.Mediator.emit("Toc","update",{pageNumber:e})},handleNavigation:function(e){this.navigateToPage(this.getCurrentPageOnUrl())},onClickEventHandler:function(t){var r=e(t.target).closest("a"),o=r?r.attr("id"):null,c=o&&("js-next-enhanced"===o||"js-previous-enhanced"===o);return r.hasClass("u-disable-pointer-event")?(t.stopPropagation(),t.preventDefault(),!1):t.target!==t.currentTarget&&void(c&&(t.preventDefault(),"js-next-enhanced"===o?(page=a+1,clickedAnchor=i):(page=a-1,clickedAnchor=n),l=a,page&&page<=s&&(this.navigateToPage(page),this.updatePageNumberForm(),this.toggleDeactivationOnPaginationAnchors(clickedAnchor))))},onSubmitEventHandler:function(e){e.preventDefault();var n="FORM"===e.target.tagName&&"js-page-number"===e.target.getAttribute("id")?e.target.getAttribute("id"):null;if(n){var i=void 0;t.value?i=parseInt(t.value,10)||1:(i=1,t.value=i),l=a,this.navigateToPage(i),t.blur()}},getCurrentPageOnUrl:function(){var e=dataLayer[0].hasOwnProperty("CurrentPage")?dataLayer[0].CurrentPage:parseInt(t.value);return e},getMaxPage:function(){var e=dataLayer[0].hasOwnProperty("MaxPage")?dataLayer[0].MaxPage:parseInt(t.getAttribute("max"));return e},enableControls:function(){var e=Array.prototype.slice.call(document.querySelectorAll(".u-disable-pointer-event"));e.length&&e.forEach(function(e){e.classList.remove("u-disable-pointer-event")})},onErrorHandling:function(){c.showErrorMsg(a,l),a=l,this.updatePageNumberForm()},init:function(u,d,p){var h=this;t=document.querySelector("[id^='page-number']"),n=document.querySelector("#js-previous-enhanced"),i=document.querySelector("#js-next-enhanced"),r=document.querySelector("#maxPageNumber"),o=document.querySelectorAll('[name="page"]'),c.attachTo(e(".sticky-sidebar-toc .js-contents")),s=this.getMaxPage(),a=this.getCurrentPageOnUrl(),l=a,document.querySelector(".c-pagination").addEventListener("click",this.onClickEventHandler.bind(this)),document.querySelector("#js-page-number").addEventListener("submit",this.onSubmitEventHandler.bind(this)),window.history&&history.pushState&&window.addEventListener("popstate",this.handleNavigation.bind(this)),this.toggleElementsVisibility(),this.updatePageNumberForm(),Springerverse.Mediator.on("EnhancedPagination:update",function(e){e&&(Object.prototype.hasOwnProperty.call(e,"pageNumber")&&(a=e.pageNumber),Object.prototype.hasOwnProperty.call(e,"maxPage")&&(s=e.maxPage)),h.enableControls(),c.stopWaiting(),e&&Object.prototype.hasOwnProperty.call(e,"error")?h.onErrorHandling(e.error):(h.toggleElementsVisibility(),h.updatePageNumberForm(),h.updateMaxPageNumber(),Springerverse.Mediator.emit("EnhancedPagination","updated",h.getCurrentPageOnUrl()))}),Springerverse.Mediator.emit("EnhancedPagination","ready")}};return u}(jQuery);this.SpringerLink.Component.EnhancedPagination=function(){var e,t=this.Springerverse.Component.Pagination,n=e={init:function(i,r,o){var a=this;return Springerverse.Mediator.on("EnhancedPagination:ready",function(){Object.setPrototypeOf(a,t),_get(e.__proto__||Object.getPrototypeOf(e),"init",a).call(a,i,r,o)}),EnhancedPagination.init(i,r,o),n}};return n}(),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.GoogleAds=function(e){"use strict";var t=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},n={googletag:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(t){if(window.definedSlots)var n=e.grep(definedSlots,function(e){return e.containerName==t.slotId});googletag.cmd.push(function(){googletag.defineSlot(adSlot,n[0].slot,t.slotId).addService(googletag.pubads()),googletag.display(t.slotId),googletag.pubads().addEventListener("slotRenderEnded",function(e){e.isEmpty||e.slot.getSlotElementId()!==t.slotId||t.$el.removeClass("u-hide")})})}),add:function(t){var i='<div class="'+t.stylingClass+'__wrapper"><p class="'+t.stylingClass+'__label">Advertisement</p><button class="'+t.stylingClass+'__hide" title="Hide this advertisement">Hide</button><div id="'+t.slotId+'" class="'+t.stylingClass+'__ad"></div></div>';t.$el.html(i),n.googletag(t),t.$el.find("."+t.stylingClass+"__hide").on("click",function(){document.cookie=t.slotId+"=closed;path=/",t.$el.hide()}),e(window).blur(function(){t.$el.find("iframe").is(":focus")&&t.$el.find("#"+t.slotId).addClass("pseudo-focus")}),e(window).focus(function(){t.$el.find("iframe").is(":focus")||t.$el.find("#"+t.slotId).removeClass("pseudo-focus")})},init:function(e,i,r){var o=t(e,i,r);o.slotId=r.slotId,o.stylingClass=r.stylingClass,o.breakpoint=r.breakpoint;var a=!1;window.addEventListener("load",function(){Springerverse.Utils.Scheduler.on("load resize orientationchange",function(){window.googletag&&googletag.apiReady&&googletag.cmd.push(function(){document.cookie.indexOf(o.slotId+"=closed")<0&&Springerverse.Utils.DeviceState.gte(o.breakpoint)&&!a&&(n.add(o),a=!0)})})})}};return n}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.HighlightTocAnchorItems=function(e){"use strict";var t="content-type-list__item--current",n="#introduction",i="content-type-list__item",r=null,o=null,a=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},s={removeHighLightClass:function(){var e=o.querySelector("."+t);null!==e&&e.classList.remove(t)},addHighLightClassByHash:function(){var e=o.querySelector('a[href="'+window.location.hash+'"]');e&&e.parentNode.parentNode.classList.add(t)},addHighLightClassByIdentifier:function(n){var r=o.querySelector(n),a=e(r).closest("."+i);a&&a.addClass(t)},init:function(e,i,s){var l=this;r=a(e,i,s),o=r.$el[0],window.addEventListener("popstate",function(e){window.location.hash&&(l.removeHighLightClass(),l.addHighLightClassByHash())}),Springerverse.Utils.Scheduler.on("load",function(e){if(window.location.hash)l.addHighLightClassByHash();else if(!o.querySelector("."+t)){
  5. var i='a[href*="'+n+'"]';l.addHighLightClassByIdentifier(i)}}),o.addEventListener("click",function(e){e.target.classList.contains("content-type-list__link")&&(l.removeHighLightClass(),l.addHighLightClassByHash())},!1),Springerverse.Mediator.on("HighlightTocAnchorItems:change",function(e){if(!o.querySelector("."+t)&&e){var n='[data-id="'+e+'"]';l.addHighLightClassByIdentifier(n)}})}};return s}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.InfiniteScroll=function(e){"use strict";var t=!1,n=1,i=!0,r=null,o={$el:null,$defaultContentContainerSelector:null,throttle:function(e,t){var n=!1;return function(){n||(e.apply(null,arguments),n=!0,setTimeout(function(){n=!1},t))}},handleSpinnerVisibility:function(e){Springerverse.Mediator.emit("Spinner","change","Spinner."+this.name,e)},hideSpinner:function(){var e=!1;this.handleSpinnerVisibility(e)},showSpinner:function(){var e=!0;this.handleSpinnerVisibility(e)},getTemplate:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i={entries:["rwe-toc-entry"],subpart:["rwe-toc-entry"],toc:["rwe-toc-entry",["rwe-toc-subpart"]]};return i[e]&&i[e].forEach(function(e){n[e]=document.getElementById(e).textContent}),Mustache.render(document.getElementById(this.templates[e]).textContent,t,n)},renderAContinuationFromPrevious:function(e){var t=this,n=e.children[0],i=n.children,r=null,o="";r=document.querySelectorAll("[data-part='"+this.lastPartId+"']")[0].getElementsByClassName("content-type-list")[0],i.forEach(function(n){var i=n,a="entry",s=i.hasOwnProperty("subpartTitle"),l=i.hasOwnProperty("partTitle");s?i.subpartTitle===t.lastSubpartId?(r=document.querySelector("[data-part='"+t.lastSubpartId+"']").getElementsByClassName("content-type-list")[0],a="entries",i={entries:i.children}):a="subpart":l&&(a="toc",i={toc:e}),o+=t.getTemplate(a,i)}),r.innerHTML+=o},render:function(e){var t=e,n=t.children.slice(-1)[0],i=t.hasOwnProperty("children"),r="";i&&t.children[0].partTitle===this.lastPartId?(this.renderAContinuationFromPrevious(t),t.children.length>1&&(t.children.shift(),r=this.getTemplate("toc",{toc:t}))):r=this.getTemplate("toc",{toc:t}),this.$defaultContentContainerSelector.innerHTML+=r,this.lastPartId=i?n.partTitle:this.lastPartId,this.lastSubpartId=n&&n.hasOwnProperty("children")?n.children.slice(-1)[0].subpartTitle:this.lastSubpartId},onSuccess:function(e){var n=e.hasOwnProperty("children")&&e.children.length>0;t=!1,r.classList.add("u-hide"),n?this.render(e):(i=!1,this.hideSpinner())},onError:function(e){t=!1,this.setCurrentPage("previous"),this.hideSpinner(),r.classList.remove("u-hide")},getData:function(){var e=this;return new Promise(function(n,i){var r=dataLayer[0].content.book.doi,o=window.location.protocol+"//"+window.location.host+"/referencework-toc/"+r;SpringerLink.Utils.AjaxRequest.init({method:"GET",url:o+"?page="+e.getCurrentPage(),onSuccess:function(e){n(e)},onError:function(e){i(Error("There was an error"+e))}}),t=!0})},getCurrentPage:function(){return n},setCurrentPage:function(e){var t=this,i={previous:function(){return t.getCurrentPage()-1},next:function(){return t.getCurrentPage()+1}};n=i[e]()},getNextPage:function(){this.setCurrentPage("next"),this.getData().then(this.onSuccess.bind(this),this.onError.bind(this))},init:function(e,n,o){var a=this;this.name=n,this.$el=e[0],r=document.getElementsByClassName("error")[0],Springerverse.Utils.ScrollPositionListener.init(this.$el,this.name),Springerverse.Mediator.on("ScrollPositionListener:done",function(e,r){var o={bottom:function(){t&&a.showSpinner()},middle:function(){i&&!t&&a.getNextPage()}};e===n&&o[r]()});var s=document.querySelector("[data-id='toc']").lastElementChild;this.templates=o.templates,this.lastPartId=s.getAttribute("data-part"),this.lastSubpartId=s.getElementsByClassName("content-type-list")[0].lastElementChild.getAttribute("data-part"),this.$defaultContentContainerSelector=document.getElementsByClassName("js-contents")[0].firstElementChild}};return o}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.LayoutHandler=function(e){"use strict";var t=null,n=null,i=null,r=null,o=null,a=null,s=null,l=null,c=null,u=null,d=null,p=null,h=0,g={initStickySidebarFlexboxComponent:function(){var t=e("#toc .sticky-sidebar-toc"),n={mediaQuery:"two-col-medium",padding:36};t.length>0&&SpringerLink.Component.StickySidebarFlexbox.init(t,"toc",n)},addClassesForTabs:function(){r.classList.add("c-tabs__content"),r.classList.add("c-tabs--rwe__content");var e=Array.from(r.childNodes);e.forEach(function(e){var t=e.id;"springerlink-search"!==t&&"toc"!==t&&"download-book"!==t||(e.classList.add("c-tabs__content-item"),e.classList.add("c-tabs--rwe__content-item"))})},getTabOrder:function(){var e={toc:0,"springerlink-search":1,"download-book":2},t=this.currentTab,n=h;return t&&(n=e[t]),n},createObserverForDOMChanges:function(){var t=this,n=new MutationObserver(function(){SpringerLink.Component.TabPanel.init(e("#main-aside"),"Tabs",{initialiseTabs:!0,startTab:t.getTabOrder(),componentPrefix:"SpringerLink"}),n.disconnect()});n.observe(document.querySelector("#main-aside"),{childList:!0})},makeLayoutWide:function(){null!==s&&Springerverse.Component.Tabs.off(this.springerTabInstance),this.widelayoutGenerated===!1?(this.addClassesForTabs(),this.createObserverForDOMChanges(),a.appendChild(r),i.appendChild(a),a&&a.classList.remove("u-js-hide"),this.widelayoutGenerated=!0):SpringerLink.Component.TabPanel.init(e("#main-aside"),"Tabs",{initialiseTabs:!0,startTab:this.getTabOrder(),componentPrefix:"SpringerLink"}),["click","touchend"].forEach(function(e){return a.removeEventListener(e,p)}),this.isNarrow=!1},onModalCreated:function(e){s=document.querySelector("#popup-panel"),l=s.querySelector("#popup-panel-content"),c=s.querySelector("#close"),e()},generateSkeletonHTMLModal:function(){var e='<div class="popup-panel__container">\n <div id="popup-panel-content" class="popup-panel__inner"></div>\n <button id="close" class="popup-panel__close icon--close-btn">close</button>\n </div>',t=document.createElement("div");t.setAttribute("role","dialog"),t.setAttribute("id","popup-panel"),t.setAttribute("tabIndex","-1"),t.setAttribute("class","u-composite-layer popup-panel"),t.innerHTML=e;var n=document.createElement("div");n.setAttribute("class","popup-overlay"),n.setAttribute("id","popup-overlay"),u.appendChild(t),u.appendChild(n)},generateModal:function(){var e=this;return new Promise(function(t){if(null===s){var n=new MutationObserver(function(){e.onModalCreated(t),n.disconnect()});n.observe(u,{childList:!0}),e.generateSkeletonHTMLModal(),u.setAttribute("style","overflow-y:hidden; position: fixed; width: 100%")}else t()})},onCloseModal:function(){r.classList.add("u-js-hide"),t.insertBefore(a,n),i.appendChild(r),null!==s&&(s.remove(),s=null,document.querySelector("#popup-overlay").remove(),this.springerTabInstance=null,this.isPopupPanelOpen=!1),document.querySelector(".content-type-list").removeAttribute("style"),u.removeAttribute("style"),["click","touchend"].forEach(function(e){return a.addEventListener(e,p)})},onPopupPanelContentGenerated:function(){SpringerLink.Component.TabPanel.init(e("#popup-panel-content"),"TabPanel",{initialiseTabs:!0,startTab:this.getTabOrder(),componentPrefix:"SpringerLink"})},insertContentIntoModal:function(){a.appendChild(r),l.appendChild(a),r.classList.remove("u-js-hide");var e=document.querySelector("#c-tabs");["click","touchend"].forEach(function(t){return e.removeEventListener(t,p)})},createModal:function(){var t=this;this.generateModal().then(function(){t.isPopupPanelOpen=!0,Springerverse.Mediator.on("Tabs.referenceWork:tabsOff",function(){t.onCloseModal()});var n=new MutationObserver(function(){t.onPopupPanelContentGenerated(),e('#popup-panel a[href="#'+t.currentTab+'"]').focus(),n.disconnect()});n.observe(l,{childList:!0}),t.insertContentIntoModal(),c.addEventListener("click",function(){Springerverse.Component.Tabs.off(t.springerTabInstance),SpringerLink.Component.TabPanel.disableTabPanelEvent()})})},makeLayoutNarrow:function(){this.widelayoutGenerated?(i.appendChild(r),t.insertBefore(a,n),Springerverse.Component.Tabs.off(this.springerTabInstance),this.widelayoutGenerated=!1):SpringerLink.Component.TabPanel.init(e("#main-aside"),"Tabs",{initialiseTabs:!1,startTab:this.getTabOrder(),componentPrefix:"SpringerLink"}),a&&a.classList.remove("u-js-hide");var o=document.querySelector("#c-tabs");["click","touchend"].forEach(function(e){return o.addEventListener(e,p)}),this.isNarrow=!0},handleTabsVisibility:function(){Springerverse.Utils.DeviceState.gte("two-col-medium")?this.makeLayoutWide():this.makeLayoutNarrow()},onClickEventHandler:function(t){var n=e(t.target).closest("a"),i=n?n.attr("href"):null,r=i&&("#toc"===i||"#springerlink-search"===i||"#download-book"===i);return t.target!==t.currentTarget&&void(r&&(this.currentTab=i.match("[^#].*")[0],t.preventDefault(),this.createModal()))},setPopUpContentHeight:function(){var e=document.documentElement.clientHeight,t=document.querySelector("#main-aside-content").offsetTop,n=document.querySelector("#springerlink-search .content-type-list"),i=80,r=null,o=null,a=0;"toc"===this.currentTab?(r=document.querySelector(".sticky-sidebar-toc"),o=document.querySelector(".sticky-sidebar-toc").offsetTop,a=e-(o+t)):"springerlink-search"===this.currentTab&&n&&(r=document.querySelector('[data-role="autosuggest-list"]'),o=n.offsetTop,a=e-(o+t)-i),r&&r.setAttribute("style","height:"+a+"px;overflow-y: auto")},calculateHeights:function(){s&&(s.setAttribute("style","height: "+parseInt(document.documentElement.clientHeight,10)+"px"),"toc"!==this.currentTab&&"springerlink-search"!==this.currentTab||this.setPopUpContentHeight())},init:function(s,l,c){var h=this;this.springerTabInstance=null,this.partSelectorInstance=null,this.currentTab=null,this.isPopupPanelOpen=!1,this.stickySidebarFlexboxInitiated=!1,this.widelayoutGenerated=!1,this.isNarrow=!1,d=function(e){this.onClickEventHandler(e)},p=d.bind(this),e(document).ready(function(){t=document.querySelector("#main-content"),n=document.querySelector("#main-container"),i=document.querySelector("#main-aside"),r=document.querySelector("#main-aside-content"),o=document.querySelector("#part-selector-select"),a=document.querySelector("#c-tabs"),u=document.querySelector("body"),h.handleTabsVisibility()}),Springerverse.Utils.Scheduler.on("resize orientationchange",function(){Springerverse.Utils.DeviceState.gte("two-col-medium")?h.isNarrow&&h.makeLayoutWide():h.isNarrow&&h.isPopupPanelOpen?h.calculateHeights():h.makeLayoutNarrow()}),Springerverse.Mediator.on("PartSelector:ready",function(){o.classList.remove("u-hide"),h.partSelectorInstance=!0,!h.stickySidebarFlexboxInitiated&&Springerverse.Utils.DeviceState.gte("two-col-medium")&&(h.initStickySidebarFlexboxComponent(),h.stickySidebarFlexboxInitiated=!0)}),Springerverse.Mediator.on("TabPanel:ready",function(e,t){h.springerTabInstance=t,null===h.partSelectorInstance&&SpringerLink.Component.PartSelector.init(o,"partSelector");var n=new Springerverse.Utils.FeatureToggles;n.isFeatureEnabled("partSelector")||!h.stickySidebarFlexboxInitiated&&Springerverse.Utils.DeviceState.gte("two-col-medium")&&(h.initStickySidebarFlexboxComponent(),h.stickySidebarFlexboxInitiated=!0),h.isPopupPanelOpen&&(h.currentTab=e,h.calculateHeights())}),Springerverse.Mediator.on("Autosuggest:listGenerated",function(){h.calculateHeights()})}};return g}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.Menu=function(e){"use strict";var t="[data-role=menu--logged-in]",n="[data-role=NavigationContainer]",i="Menu",r="MenuAdmin",o=['<div class="','u-composite-layer" data-component="SV.Dropdown" data-namespace="','">','<h3 data-role="button-dropdown__title" data-btn-text="','">',"</h3>","</div>"],a=function(t,i,r){var o=e.extend({},r);return o.name=i,o.componentName=i.split(".")[0],o.componentNamespace=i.split(".")[1],o.$el=t,o.title=t.attr("data-title"),o.text=t.attr("data-text"),o.$maxContainer=e(n),o.$head=document.head||document.getElementsByTagName("head")[0],o},s={menuWidth:function(e,t,n,i){Springerverse.Mediator.emit("Dropdown.Dimensions","set",t,n,i)},createDropdown:function(e,t,n){Springerverse.Component.Dropdown.init(e,t,n)},addToDOM:function(t,n,i,r,a,s,l){var c=e("<div>").append(t.clone()).remove().html(),u=o.slice();u.splice(1,0,n+" "),u.splice(3,0,s),u.splice(6,0,i),u.splice(8,0,r),u.splice(10,0,'<ul class="'+n+'__content" data-role="button-dropdown__content">'+c+"</ul>");var d=e(u.join(""));l.$el.after(d),this.createDropdown(d,"Dropdown."+s,a)},smallScreenMenu:function(t){var n=t.$el.find("li"),r="main-menu",o=t.title,a=t.text,l=e.extend({},{group:t.group,color:t.color,componentPrefix:t.componentPrefix,titleSelector:t.titleSelector?t.titleSelector:void 0,contentSelector:t.contentSelector?t.contentSelector:void 0,expandable:!0,minWidth:189,maxWidth:t.$maxContainer.width()});Springerverse.Utils.Scheduler.on("resize orientationchange",function(){s.menuWidth(t,i,"max",t.$maxContainer.width())}),this.addToDOM(n,r,o,a,l,i,t)},adminMenu:function(t){var n=t.$el.find("li.global-nav__logged-in"),i="admin-menu",o=t.title,a=t.$el.find("li.global-nav__logged-in--name").text().trim(),l=e.extend({},{group:t.group,color:t.color,componentPrefix:t.componentPrefix,titleSelector:t.titleSelector?t.titleSelector:void 0,contentSelector:t.contentSelector?t.contentSelector:void 0,expandable:!0,minWidth:189,maxWidth:t.$maxContainer.width()});Springerverse.Utils.Scheduler.on("resize orientationchange",function(){s.menuWidth(t,r,"max",t.$maxContainer.width())}),this.addToDOM(n,i,o,a,l,r,t)},init:function(e,n,i){var o=a(e,n,i),s=e.prev("div.search-button");this.smallScreenMenu(o),e.filter(t).length&&(this.adminMenu(o),Springerverse.Mediator.on("Dropdown."+r+":open",function(){e.addClass("global-nav--hidden"),s.addClass("global-nav--hidden")}),Springerverse.Mediator.on("Dropdown."+r+":close",function(){e.removeClass("global-nav--hidden"),s.removeClass("global-nav--hidden")}))}};return s}(jQuery);var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),PartSelectionListModel=function(){function e(t){_classCallCheck(this,e),this.data=t}return _createClass(e,[{key:"filterBySubParts",value:function(){return this.PartSelectionBlockList.filter(function(e){return Object.prototype.hasOwnProperty.call(e,"subParts")})}},{key:"hasPartSelection",value:function(){return Object.prototype.hasOwnProperty.call(this.data,"parts")&&this.data.parts.length>0}},{key:"findSubPart",value:function(e,t){var n=null;return e.forEach(function(e){parseInt(e.subPartId,10)===t&&(n=e)}),n}},{key:"getPartBySubPartId",value:function(e){var t=this,n=null;return this.filterBySubParts().forEach(function(i){t.findSubPart(i.subParts,e)&&(n=i)}),n}},{key:"PartSelectionBlockList",get:function(){return this.hasPartSelection()?this.data.parts:[]}}]),e}();this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.PartSelector=function(e){"use strict";function t(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r}var n="partselector",i="c-select__container--hovered",r=1,o=1,a=2,s=20,l=null,c=null,u={loadTemplates:function(){var e=this,t=["rwe-part-selected-toc"];return SpringerLink.Utils.TemplateLoader.init({templatesID:t,namespace:this.instance.name}),new Promise(function(t){Springerverse.Mediator.on("TemplateLoader:done",function(n){n===e.instance.name&&t()})})},getPartList:function(){return new Promise(function(e,t){var n=dataLayer[0].content.book.doi,i=window.location.protocol+"//"+window.location.host+"/book-parts/"+n;SpringerLink.Utils.AjaxRequest.init({method:"GET",url:i,onSuccess:function(t){e(t)},onError:function(e){t(Error("There was an error"+e))}})})},getHtmlFragment:function(){var e=Mustache.render(document.getElementById("rwe-part-selected-toc").textContent,{parts:this.instance.dataModel.PartSelectionBlockList});return e},render:function(){var e=this.instance.$el;e.innerHTML+=this.getHtmlFragment(),l=document.querySelector("#part-selection"),e.addEventListener("change",this.onChangeEventHandler.bind(this)),e.addEventListener("mouseover",function(){l.classList.add("c-select__item--hovered"),c.classList.add("c-select__container--hovered")}),e.addEventListener("mouseout",function(){l.classList.remove("c-select__item--hovered"),c.classList.remove("c-select__container--hovered")}),e.addEventListener("focus",function(){l.focus(),c.classList.add(i)}),l.addEventListener("blur",function(){c.classList.remove(i)})},onError:function(){},getPartId:function(){var e=null,t=this.getSelectedOption();return t&&(e=this.instance.selectedType===o?t:this.instance.dataModel.getPartBySubPartId(t).partId),e},getSubPartId:function(){var e=this.getSelectedOption();return e&&this.instance.selectedType===a?e:null},updateSelectedOptionSelector:function(){var e=document.querySelector("[selected]");e&&e.removeAttribute("selected");var t=this.instance.$selectedOptionSelector;t.setAttribute("selected","")},getEventArguments:function(){return Object.assign({partId:this.getPartId(),subPartId:this.getSubPartId()},{pageNumber:r})},getEventType:function(){return this.getSelectedOption()?"update":"reset"},getSelectedOption:function(){return parseInt(this.instance.selectedOption&&this.instance.selectedOption.getAttribute("data-id"),10)},updateStyles:function(){var e=c.classList.contains(i);this.getSelectedOption()?e||c.classList.add(i):e&&c.classList.remove(i)},onChangeEventHandler:function(e){this.setSelectedOptions(e),this.updateSelectedOptionSelector(),l.classList.remove("c-select__item--hovered"),c.classList.remove("c-select__container--hovered"),this.truncateSelectedOption(),Springerverse.Mediator.emit("Toc",this.getEventType(),this.getEventArguments())},truncateSelectedOption:function(){var e=this.instance.$selectedOptionSelector,t=this.instance.selectedOption.getAttribute("value");t.length>s&&(e.innerText=t.substring(0,s)+"...")},setSelectedOptions:function(e){this.instance.selectedOption=e.target[e.target.selectedIndex],this.instance.$selectedOptionSelector=this.instance.selectedOption,this.instance.selectedType=parseInt(this.instance.$selectedOptionSelector.getAttribute("data-type"),10)},setDataModel:function(e){this.instance.dataModel=new PartSelectionListModel(e)},init:function(e,i,r){var o=this,a=new Springerverse.Utils.FeatureToggles;c=document.querySelector("#part-selector-select"),a.isFeatureEnabled(n)&&(this.instance=t(e,i,r),this.loadTemplates().then(this.getPartList).then(this.setDataModel.bind(this)).then(function(){if(o.instance.dataModel.hasPartSelection())o.render(),Springerverse.Mediator.emit("PartSelector","ready");else{var e=o.instance.$el[0];e.setAttribute("aria-hidden",!0),e.setAttribute("hidden","")}})["catch"](this.onError))}};return u}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.PdfPreview=function(e){"use strict";var t={init:function(e,t,n){Springerverse.Utils.Scheduler.on("load",function(){e.children('[data-fallback-text="true"]').is(":visible")&&e.removeClass(n.heightClass)})}};return t}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.Persons=function(e){"use strict";var t="persons--enhanced",n=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},i={init:function(e,i,r){var o=n(e,i,r);e.addClass(t);var a={componentPrefix:o.componentPrefix,maxPersons:15,showMore:"show <val> more",showLess:"show less",className:"persons",dataRoleName:"Persons"};SpringerLink.Component.TruncatePersons.init(o.$el,"Persons",a)}};return i}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.References=function(e){"use strict";var t={init:function(e,t,n){var i=e.find("a").attr("href");i&&i.replace(/\D/g,""),e.find("a").attr("title","View reference");var r={componentPrefix:n.componentPrefix,group:"references",control:"a",bounds:".FulltextWrapper",boundsOffsetArray:[26,0],theme:"popup-base-theme",popupWidthPercentage:75,hiddenPopup:!1};Springerverse.Component.Popup.init(e,"Popup."+t+i,r)}};return t}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.Spinner=function(e){"use strict";var t={init:function(e,t,n){var i=e[0];Springerverse.Mediator.on("Spinner:change",function(e,n){var r=n?"remove":"add";e===t&&(i.classList[r]("u-hide"),i.setAttribute("aria-busy",n))})}};return t}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.StickyBanner=function(e){"use strict";var t="sticky-banner",n=t+"__buybox-link > a",i=t+"__title",r=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},o={linkScroll:function(e){var i={componentPrefix:e.componentPrefix,anchorLink:n,stickyBannerClassName:t,anchorScroll:!0};SpringerLink.Component.AnchorScroll.init(e.$el,"AnchorScroll."+e.name,i)},copyTitle:function(e){e.titleLengthClass=i+"--"+e.titleLength,e.$bannerTitle='<span class="'+i+" "+e.titleLengthClass+' u-overflow-ellipsis" title="'+e.$titleSelector.text()+'">'+e.$titleSelector.text()+"</span>",e.$titleSelector&&e.$el.children().prepend(e.$bannerTitle)},toggleBanner:function(e){e.stickyPoint<=0?e.$el.removeClass("u-js-screenreader-only"):e.$el.addClass("u-js-screenreader-only")},stickyBehavior:function(e){e.stickyPoint<=0&&e.$el.css({width:e.$window.width(),zIndex:1e4,position:"fixed",top:0,left:0})},init:function(t,i,a){var s=r(t,i,a);s.$window=e(window),s.$bannerLink=e("."+n),s.$stickyFrom=e(a.stickyFrom),s.$titleSelector=e(a.title),s.mediaQuery=a.mediaQuery,a.showTitle&&o.copyTitle(s),Springerverse.Utils.Scheduler.on("load scroll resize orientationchange",function(){Springerverse.Utils.DeviceState.lt(s.mediaQuery)||s.mediaQuery===!1?(s.stickyPoint=s.$stickyFrom.offset().top-a.buttonPaddingTop-s.$window.scrollTop(),o.stickyBehavior(s),o.toggleBanner(s)):s.$el.addClass("u-js-screenreader-only")}),s.$bannerLink.length&&o.linkScroll(s)}};return o}(jQuery);var _slicedToArray=function(){function e(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(l){r=!0,o=l}finally{try{!i&&s["return"]&&s["return"]()}finally{if(r)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.StickySidebarFlexbox=function(){"use strict";function e(e){var t=/constructor/i.test(window.HTMLElement)||function(e){return"[object SafariRemoteNotification]"===e.toString()}(!window.safari||safari.pushNotification);t&&addWheelListener(e)}function t(){return"undefined"!=typeof window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop?document.body.scrollTop:0}function n(e){return parseInt(e.getBoundingClientRect().top+t())}function i(e,t){Object.entries(e).forEach(function(e){var n=_slicedToArray(e,2),i=n[0],r=n[1],o=Number.isInteger(r)&&"zIndex"!==i;t.style[i]=""+r+(o?"px":"")})}function r(e){var n=parseInt(document.documentElement.clientHeight),i=t(),r=0;if(e){var o=parseInt(p.offsetTop),a=o-i-n,s=a<0?Math.abs(a):0;r=n-s}else{var l=parseInt(u.getBoundingClientRect().top),c=parseInt(d.getBoundingClientRect().top),m=parseInt(g.clientHeight),f=parseInt(h.offsetHeight);r=m-(l-c)+f}return r}function o(e){var i=t(),r=n(d)-e.padding,o=r-i;return o<=0}var a=".footer",s=".unified-header",l=".main-body__content",c={zIndex:300,overflow:"auto",overflowY:"auto",overflowX:"hidden",position:"fixed"},u=null,d=null,p=null,h=null,g=null,m={handleComponentStyles:function(e){if(Springerverse.Utils.DeviceState.gte(e.mediaQuery)){var t=parseInt(d.getBoundingClientRect().width),n=o(e);n||u.removeAttribute("style");var a=Object.assign({},c,{width:t,height:r(n),top:n?0:parseInt(u.getBoundingClientRect().top)});i(a,u)}else u.removeAttribute("style")},init:function(t,n,i){var r=this;u=t[0],d=u.parentElement,p=document.querySelector(a),h=document.querySelector(s),g=document.querySelector(l),e(u),Springerverse.Utils.Scheduler.on("load scroll resize orientationchange",function(){r.handleComponentStyles(i)}),Springerverse.Mediator.on("StickySidebarFlexbox:update",function(){r.handleComponentStyles(i)})}};return m}(),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.StickySidebar=function(e){"use strict";function t(e){var t=(e.$container||"aside",e.$el.parents(e.$container)),n=t[0].getBoundingClientRect().width,i=parseInt(t.css("padding-left"),10),r=parseInt(t.css("padding-right"),10);return n-i-r}function n(){var e=document.createElement("p"),t=document.createElement("div");e.style.width="100%",e.style.height="200px",t.className="u-custom-scrollbar",t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var n=e.offsetWidth;t.style.overflow="scroll";var i=e.offsetWidth;return n===i&&(i=t.clientWidth),document.body.removeChild(t),n-i}var i="[data-role=sticky-wrapper]",r=12,o={init:function(o,a,s){var l=e(window),c={$el:o,$container:s.container},u=c.$el.parent(i),d=e("footer"),p=n(),h=null,g=/constructor/i.test(window.HTMLElement)||function(e){return"[object SafariRemoteNotification]"===e.toString()}(!window.safari||safari.pushNotification);Springerverse.Utils.Scheduler.on("load scroll resize orientationchange",function(){if(Springerverse.Utils.DeviceState.gte(s.mediaQuery)){var e=s.hasOwnProperty("showScrollInsideBox"),n=u.offset().top-s.padding,i=n-l.scrollTop();if(i<=0){var o=d.offset().top-l.scrollTop()-l.height(),a=o<0?Math.abs(o):0,g=l.height()-2*s.padding-a;h=t(c),c.$el.css({width:e?h:h+p+r,marginTop:s.padding,height:g,zIndex:300,position:"fixed",top:0,overflow:"auto",overflowY:"auto",overflowX:"hidden"})}else c.$el.removeAttr("style")}else c.$el.removeAttr("style")}),g&&addWheelListener(c.$el[0]),Springerverse.Mediator.emit("StickySidebar","loaded","StickySidebar."+this.name)}};return o}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.TabPanel=function(e){"use strict";var t=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r},n=function(t,n){Springerverse.Mediator.on("Tabs.referenceWork:openTab",function(e,t){Springerverse.Mediator.emit("StickySidebarFlexbox","update"),i(t),Springerverse.Mediator.emit("TabPanel","ready",e,t)});var r=n.$el[0].querySelector("#c-tabs");Springerverse.Component.Tabs.init(e(r),"Tabs.referenceWork",t)},i=function(t){var n={templatesId:["rwe-toc-entry","rwe-toc-subpart"]},i=t.$el[0].querySelector('[data-id="dynamic-toc-content"]');SpringerLink.Component.DynamicContentTypeList.init(e(i),t.name,n)},r={disableTabPanelEvent:function(){Springerverse.Mediator.off("Tabs.referenceWork:openTab")},init:function(e,r,o){var a=t(e,r,o);if(o.initialiseTabs){var s={selectors:{tabList:".c-tabs--rwe__list",tabListItem:".c-tabs--rwe__list-item",tabListItemLink:".c-tabs--rwe__list-link",tabContent:".c-tabs--rwe__content",tabContentItem:".c-tabs--rwe__content-item"},componentPrefix:"SV"};o.startTab&&(s.startTab=o.startTab),n(s,a)}else i(a)}};return r}(jQuery),this.SpringerLink.Component=this.SpringerLink.Component||{},this.SpringerLink.Component.TruncatePersons=function(e){"use strict";var t="u-hide",n=function(t,n,i){var r=e.extend({},i);return r.name=n,r.componentName=n.split(".")[0],r.componentNamespace=n.split(".")[1],r.$el=t,r.className=i.className,r.dataRoleName=i.dataRoleName,r.etalCollapsedClass=r.className+"--enhanced-collapsed",r.etalClass=r.className+"--showhide",r.etalIdentifier=r.dataRoleName+"Etal",r.etalSelector="[data-role="+r.etalIdentifier+"]",r.$persons=t.find("[data-role="+r.dataRoleName+"List] >ul"),r},i=function(e){e.$children.slice(e.maxPersons,e.numPersons).addClass(t)},r={truncatePersons:function(e){if(e.$children=e.$persons.children(),e.numPersons=e.$children.length,e.numPersons>e.maxPersons+2){var n=e.showMore.replace("<val>",e.numPersons-e.maxPersons),r='<li class="'+e.className+'__button" data-role="'+e.etalIdentifier+'"><button class="u-link-like '+e.etalClass+'">'+n+"</button></li>",o='<li class="'+e.className+"__button "+t+'" data-role="'+e.etalIdentifier+'"><button class="u-link-like '+e.etalClass+'">'+e.showLess+"</button></li>";e.$el.addClass(e.etalCollapsedClass),e.$persons.append(r).append(o),i(e),e.$children.eq(e.numPersons-(e.numPersons-e.maxPersons)-1)}},togglePersons:function(n){n.$el.hasClass(n.etalCollapsedClass)?(n.$el.removeClass(n.etalCollapsedClass),n.$el.find(n.etalSelector).toggleClass(t),n.$children.removeClass(t),Springerverse.Mediator.emit(n.name,"open"),n.returnPosition=e(document).scrollTop()):(n.$el.addClass(n.etalCollapsedClass),n.$el.find(n.etalSelector).toggleClass(t),i(n),e("html, body").scrollTop(n.returnPosition||0))},init:function(t,i,o){var a=n(t,i,o);a.maxPersons&&r.truncatePersons(a),a.$el.on("click touchend","button",function(t){e(t.target).hasClass(a.etalClass)&&r.togglePersons(a)})}};return r}(jQuery),this.SpringerLink=this.SpringerLink||{},this.SpringerLink.Config={Springerverse:{Dropdown:{citations:{group:"aside"},citationsSticky:{group:"stickybanner"},downloadsSticky:{group:"stickybanner"}},ToggleHeadings:{selector:".Section1>.Heading, aside>h2.Heading, .section.section--collapsible>.section__heading",mediaQuery:"three-col"},InternalNavigation:{selector:"body",collapsibleSections:".Section1, aside, .section.section--collapsible",mediaQuery:"three-col",exclude:["span.CitationRef a",":empty"],sidebar:".toc"},Search:{selector:"header.header"},KeyboardControl:{selector:"body"}},SpringerLink:{StickyBanner:{hasButton:{buttonPaddingTop:8,mediaQuery:"two-col",stickyFrom:"div.main-context",title:"div.ArticleHeader div.MainTitleSection > h1, #book-title > h1",titleLength:"short",showTitle:!0},hasButtonAndNoMQ:{buttonPaddingTop:8,mediaQuery:!1,stickyFrom:"div.main-context",title:"div.ArticleHeader div.MainTitleSection > h1, #book-title > h1",titleLength:"short",showTitle:!0},hasLink:{buttonPaddingTop:8,mediaQuery:"two-col",stickyFrom:"div.main-context",title:"div.ArticleHeader div.MainTitleSection > h1, #book-title > h1",titleLength:"long",showTitle:!0}},StickySidebar:{mediaQuery:"two-col",padding:36},DownloadOptions:{duplicate:!1,group:"aside"},DownloadSingleBookOption:{duplicate:!1},Menu:{group:"header",color:"ghost"},EditionSwitcher:{group:"footer",color:"ghost"},Authors:{maxAuthors:15,showMore:"show <val> more",showLess:"show less"},References:{selector:"span.CitationRef"},ArticleMetrics:{articleMetricsUrl:"/article-metrics/"},PdfPreview:{heightClass:"pdf-preview__embed--height"},GoogleAds:{leaderboard:{slotId:"doubleclick-leaderboard-ad",stylingClass:"leaderboard",breakpoint:"medium"},skyscraper:{slotId:"doubleclick-ad",stylingClass:"skyscraper-ad",breakpoint:"skyscraper"}}}},function(e,t,n,i){"use strict";var r='<button href="javascript:;" title="focus catcher" class="js-focus-catcher u-screenreader-only" tabindex="-1"></button>';t(function(){i.Mediator=new i.Utils.EventEmitter,i.Utils.DeviceState.init("micro"),i.Utils.Initialiser.init(i.Component,n.Config.Springerverse,"SV"),i.Utils.Initialiser.init(n.Component,n.Config.SpringerLink,"SpringerLink"),t("body").append(r).prepend(r);
  6. })}(Airbrake,jQuery,SpringerLink,Springerverse);