/*! For license information please see bundle.modelfinder-tracking.legacy.js.LICENSE.txt */
/* modelfinder v127.7.0 */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("core-tracking-objects"),require("microkernel")):"function"==typeof define&&define.amd?define("modelfinder-tracking",["core-tracking-objects","microkernel"],t):"object"==typeof exports?exports["modelfinder-tracking"]=t(require("core-tracking-objects"),require("microkernel")):e["modelfinder-tracking"]=t(e["core-tracking-objects"],e.microkernel)}(self,(function(e,t){return function(){var r={254:function(t){"use strict";t.exports=e},729:function(e){"use strict";e.exports=t},633:function(e,t,r){var n=r(738).default;function i(){"use strict";e.exports=i=function(){return r},e.exports.__esModule=!0,e.exports.default=e.exports;var t,r={},o=Object.prototype,a=o.hasOwnProperty,u=Object.defineProperty||function(e,t,r){e[t]=r.value},l="function"==typeof Symbol?Symbol:{},c=l.iterator||"@@iterator",s=l.asyncIterator||"@@asyncIterator",f=l.toStringTag||"@@toStringTag";function h(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{h({},"")}catch(t){h=function(e,t,r){return e[t]=r}}function p(e,t,r,n){var i=t&&t.prototype instanceof _?t:_,o=Object.create(i.prototype),a=new I(n||[]);return u(o,"_invoke",{value:L(e,r,a)}),o}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=p;var y="suspendedStart",m="suspendedYield",g="executing",v="completed",b={};function _(){}function w(){}function x(){}var E={};h(E,c,(function(){return this}));var k=Object.getPrototypeOf,O=k&&k(k(N([])));O&&O!==o&&a.call(O,c)&&(E=O);var T=x.prototype=_.prototype=Object.create(E);function j(e){["next","throw","return"].forEach((function(t){h(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function r(i,o,u,l){var c=d(e[i],e,o);if("throw"!==c.type){var s=c.arg,f=s.value;return f&&"object"==n(f)&&a.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,u,l)}),(function(e){r("throw",e,u,l)})):t.resolve(f).then((function(e){s.value=e,u(s)}),(function(e){return r("throw",e,u,l)}))}l(c.arg)}var i;u(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,i){r(e,n,t,i)}))}return i=i?i.then(o,o):o()}})}function L(e,r,n){var i=y;return function(o,a){if(i===g)throw new Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(n.method=o,n.arg=a;;){var u=n.delegate;if(u){var l=F(u,n);if(l){if(l===b)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===y)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=g;var c=d(e,r,n);if("normal"===c.type){if(i=n.done?v:m,c.arg===b)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=v,n.method="throw",n.arg=c.arg)}}}function F(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,F(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var o=d(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,b;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,b):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,b)}function P(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function q(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(P,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i<e.length;)if(a.call(e,i))return r.value=e[i],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(n(e)+" is not iterable")}return w.prototype=x,u(T,"constructor",{value:x,configurable:!0}),u(x,"constructor",{value:w,configurable:!0}),w.displayName=h(x,f,"GeneratorFunction"),r.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,x):(e.__proto__=x,h(e,f,"GeneratorFunction")),e.prototype=Object.create(T),e},r.awrap=function(e){return{__await:e}},j(S.prototype),h(S.prototype,s,(function(){return this})),r.AsyncIterator=S,r.async=function(e,t,n,i,o){void 0===o&&(o=Promise);var a=new S(p(e,t,n,i),o);return r.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},j(T),h(T,f,"Generator"),h(T,c,(function(){return this})),h(T,"toString",(function(){return"[object Generator]"})),r.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=N,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(q),!e)for(var r in this)"t"===r.charAt(0)&&a.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,i){return u.type="throw",u.arg=e,r.next=n,i&&(r.method="next",r.arg=t),!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],u=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=a.call(o,"catchLoc"),c=a.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,b):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),b},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),q(r),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;q(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),b}},r}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},738:function(e){function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},756:function(e,t,r){var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};return function(){"use strict";function e(e,t,r,n,i,o,a){try{var u=e[o](a),l=u.value}catch(e){return void r(e)}u.done?t(l):Promise.resolve(l).then(n,i)}function t(t){return function(){var r=this,n=arguments;return new Promise((function(i,o){var a=t.apply(r,n);function u(t){e(a,i,o,u,l,"next",t)}function l(t){e(a,i,o,u,l,"throw",t)}u(void 0)}))}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e){var t=function(e,t){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!==n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===n(t)?t:String(t)}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function u(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var l=i(756),c=i.n(l),s=i(254),f=function(){return u((function e(){if(r(this,e),e._instance)return e._instance;this.filter=document.querySelector(".modelfinder-filter-j-filter"),this.toggleButton=document.querySelector(".modelfinder-filter-j-toggle-button"),this.showResultsButton=document.querySelector(".modelfinder-filter-j-button-results"),this.getTrackingData=this.getTrackingData.bind(this),s.clickEventService.register(this.getTrackingData),e._instance=this}),[{key:"getTrackingData",value:(e=t(c().mark((function e(t){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.currentTarget&&t.currentTarget.classList&&(t.currentTarget.classList.contains("modelfinder-filter-j-toggle-button")||t.currentTarget.closest(".modelfinder-filter-j-button-results"))){e.next=2;break}return e.abrupt("return",{});case 2:return e.abrupt("return",{eventInfo:{eventAction:"navigation",eventName:"model finder - filter "+this._getToggleState()},attributes:{label:this._getTargetLabel(t.currentTarget)}});case 3:case"end":return e.stop()}}),e,this)}))),function(t){return e.apply(this,arguments)})},{key:"_getToggleState",value:function(){var e="";return this.filter&&(e=this.filter.dataset.state),"fold-out"===e?"open":"close"}},{key:"_getTargetLabel",value:function(e){if(!e||!this.showResultsButton||!this.toggleButton)return"";if(e===this.toggleButton)return"open"===this._getToggleState()?this.toggleButton.dataset.labelOpen:this.toggleButton.dataset.labelClose;var t=this.showResultsButton.querySelector(".modelfinder-filter-j-button-results-amount").textContent;return t.length>0&&(t+=" "),t+this.showResultsButton.querySelector(".modelfinder-filter-j-button-results-text").textContent}}]);var e}();new f;var h=i(729);function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){var n,i,a;n=e,i=t,a=r[t],(i=o(i))in n?Object.defineProperty(n,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[i]=a})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=function(){function e(){if(r(this,e),e._instance)return e._instance;this._initialize(),e._instance=this}return u(e,[{key:"_initialize",value:function(){this.previouslyActiveFilters={},this.currentlyActiveFilters={},this.modelfinderFilter=document.querySelector(".audi-modelfinder-filter"),this._handleFilterStoreUpdate=this._handleFilterStoreUpdate.bind(this),this._getElementState=this._getElementState.bind(this),this._getElementValue=this._getElementValue.bind(this),this._getElementLabel=this._getElementLabel.bind(this),this.getTrackingData=this.getTrackingData.bind(this),h.stateRegistry.subscribeToStore("dbadModelfinderStore",this._handleFilterStoreUpdate),s.clickEventService.register(this.getTrackingData)}},{key:"getTrackingData",value:(n=t(c().mark((function e(t){var r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.currentTarget&&t.currentTarget.classList&&"other"!==this._getFilterType(t.currentTarget)){e.next=2;break}return e.abrupt("return",{});case 2:return r=t.currentTarget,e.abrupt("return",{eventInfo:{eventAction:"filter",eventName:"model finder - "+this._getElementState(r)+" filter"},attributes:{elementName:this._getElementName(r),label:this._getElementLabel(r),value:this._getElementValue(r)}});case 4:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_getFilterType",value:function(t){return e.isElementOfTypeInput(t)?"input":e.isElementOfTypeRange(t)?"range":e.isElementOfTypeReset(t)?"reset":"other"}},{key:"_getFilterId",value:function(t){return e.isElementOfTypeRange(t)?e.isFeedbackItem(t)?t.getAttribute("data-id"):t.name:e.isElementOfTypeInput(t)?e.isFeedbackItem(t)?t.getAttribute("data-id"):t.getAttribute("for"):e.isElementOfTypeReset(t)?"reset":""}},{key:"_getElementState",value:function(t){if(e.isElementOfTypeReset(t))return"remove";var r=this._getFilterId(t);if(e.isElementOfTypeInput(t))return e.isFeedbackItem(t)?this.modelfinderFilter.querySelector("#"+r).checked?"add":"remove":this.modelfinderFilter.querySelector("#"+r).checked?"remove":"add";var n=e.extractOptionName(r),i=n in this.previouslyActiveFilters,o=n in this.currentlyActiveFilters;return!i&&o?"add":i&&!o?"remove":"change"}},{key:"_getElementName",value:function(t){return console.log("getElementName: Element is ".concat(t.outerHTML)),e.isElementOfTypeRange(t)?"slider":"button"}},{key:"_getElementValue",value:function(t){if(e.isElementOfTypeReset(t))return"all filters removed";var r=this._getFilterId(t);if(e.isElementOfTypeInput(t))return this.modelfinderFilter.querySelector('label[for="'+r+'"]').textContent;var n=this.modelfinderFilter.querySelector("#"+r+"-input");return e.extractOptionName(n.value)}},{key:"_getElementLabel",value:function(t){if(e.isElementOfTypeReset(t))return this.modelfinderFilter.querySelector(".audi-modelfinder__filter-feedback-list-item-reset").textContent;var r="",n=this._getFilterId(t),i=e.isElementOfTypeInput(t)?"label":"output",o=this.modelfinderFilter.querySelector(i+'[for="'+n+'"]');o&&o.parentElement&&o.parentElement.parentElement&&(r=o.parentElement.parentElement.querySelector(".audi-modelfinder__filter-form-legend").textContent);return r}},{key:"_handleFilterStoreUpdate",value:function(e){this.previouslyActiveFilters=d({},this.currentlyActiveFilters),e.filter&&(this.currentlyActiveFilters=d({},e.filter))}}],[{key:"isElementOfTypeInput",value:function(e){return e.classList.contains("audi-filter-selector__label")||e.classList.contains("modelfinder-filter-j-feedback-item")&&!e.querySelector(".modelfinder-filter-j-range-label")}},{key:"isElementOfTypeRange",value:function(e){return e.classList.contains("audi-range-slider__input")||e.classList.contains("modelfinder-filter-j-feedback-item")&&e.querySelector(".modelfinder-filter-j-range-label")}},{key:"isElementOfTypeReset",value:function(e){return e.classList.contains("audi-modelfinder__filter-feedback-list-item-reset")}},{key:"isFeedbackItem",value:function(e){return e.classList.contains("modelfinder-filter-j-feedback-item")}},{key:"extractOptionName",value:function(e){var t=e;return-1!==t.indexOf("option-")&&(t=t.substr(7)),t}}]);var n}();new y}(),{}}()}));
//# sourceMappingURL=bundle.modelfinder-tracking.legacy.js.map