{"version":3,"file":"scripts.min.js","mappings":"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","sources":["webpack://app-product-configurator/./node_modules/tslib/tslib.es6.js","webpack://app-product-configurator/./node_modules/@tanem/svg-injector/dist/svg-injector.esm.js","webpack://app-product-configurator/./node_modules/content-type/index.js","webpack://app-product-configurator/./node_modules/pristinejs/dist/pristine.js","webpack://app-product-configurator/./src/ts/index.ts","webpack://app-product-configurator/./src/ts/lib-2sxc-forms.ts","webpack://app-product-configurator/./src/ts/lib-2sxc-tracking.ts","webpack://app-product-configurator/./src/ts/product-configurator.ts","webpack://app-product-configurator/./src/ts/svg-injector.ts","webpack://app-product-configurator/webpack/bootstrap","webpack://app-product-configurator/webpack/runtime/define property getters","webpack://app-product-configurator/webpack/runtime/hasOwnProperty shorthand","webpack://app-product-configurator/webpack/runtime/make namespace object","webpack://app-product-configurator/webpack/startup"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { __spreadArray } from 'tslib';\nimport { parse } from 'content-type';\n\nvar cache = new Map();\n\nvar cloneSvg = function cloneSvg(sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\n\nvar isLocal = function isLocal() {\n return window.location.protocol === 'file:';\n};\n\nvar makeAjaxRequest = function makeAjaxRequest(url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n\n if (!contentType) {\n throw new Error('Content type not found');\n }\n\n var type = parse(contentType).type;\n\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \" + type);\n }\n }\n\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal() ? 'Note: SVG injection ajax calls do not work locally without ' + 'adjusting security settings in your browser. Or consider ' + 'using a local webserver.' : 'Unable to load SVG file: ' + url);\n }\n\n if (httpRequest.status === 200 || isLocal() && httpRequest.status === 0) {\n callback(null, httpRequest);\n } else {\n throw new Error('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n }\n }\n } catch (error) {\n httpRequest.abort();\n\n if (error instanceof Error) {\n callback(error, httpRequest);\n } else {\n throw error;\n }\n }\n };\n\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n\n httpRequest.send();\n};\n\nvar requestQueue = {};\nvar queueRequest = function queueRequest(url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nvar processRequestQueue = function processRequestQueue(url) {\n var _loop_1 = function _loop_1(i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i);\n }\n};\n\nvar loadSvgCached = function loadSvgCached(url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n if (error) {\n cache.set(url, error);\n } else if (httpRequest.responseXML instanceof Document && httpRequest.responseXML.documentElement && httpRequest.responseXML.documentElement instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n\n processRequestQueue(url);\n });\n};\n\nvar loadSvgUncached = function loadSvgUncached(url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n if (error) {\n callback(error);\n } else if (httpRequest.responseXML instanceof Document && httpRequest.responseXML.documentElement && httpRequest.responseXML.documentElement instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\n\nvar idCounter = 0;\n\nvar uniqueId = function uniqueId() {\n return ++idCounter;\n};\n\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\n\nvar injectElement = function injectElement(el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n\n var elId = el.getAttribute('id');\n\n if (elId) {\n svg.setAttribute('id', elId);\n }\n\n var elTitle = el.getAttribute('title');\n\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n\n var elWidth = el.getAttribute('width');\n\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n\n var elHeight = el.getAttribute('height');\n\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), ['injected-svg'], false), (el.getAttribute('class') || '').split(' '), true))).join(' ').trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n\n var _loop_1 = function _loop_1(a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n\n if (attrValue && !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n\n elements_1[a].id = newId_1;\n };\n\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a);\n }\n });\n }\n\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n\n if (script) {\n scriptsToEval.push(script);\n }\n\n svg.removeChild(scripts[i]);\n }\n }\n\n if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n\n ranScripts[elUrl] = true;\n }\n\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\n\nvar SVGInjector = function SVGInjector(elements, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.afterAll,\n afterAll = _c === void 0 ? function () {\n return undefined;\n } : _c,\n _d = _b.afterEach,\n afterEach = _d === void 0 ? function () {\n return undefined;\n } : _d,\n _e = _b.beforeEach,\n beforeEach = _e === void 0 ? function () {\n return undefined;\n } : _e,\n _f = _b.cacheRequests,\n cacheRequests = _f === void 0 ? true : _f,\n _g = _b.evalScripts,\n evalScripts = _g === void 0 ? 'never' : _g,\n _h = _b.httpRequestWithCredentials,\n httpRequestWithCredentials = _h === void 0 ? false : _h,\n _j = _b.renumerateIRIElements,\n renumerateIRIElements = _j === void 0 ? true : _j;\n\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n\n if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n } else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n } else {\n afterAll(0);\n }\n};\n\nexport { SVGInjector };\n//# sourceMappingURL=svg-injector.esm.js.map\n","/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.substr(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value[0] === '\"') {\n // remove quotes and escapes\n value = value\n .substr(1, value.length - 2)\n .replace(QESC_REGEXP, '$1')\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Pristine = factory());\n}(this, (function () { 'use strict';\n\n var lang = {\n required: \"This field is required\",\n email: \"This field requires a valid e-mail address\",\n number: \"This field requires a number\",\n integer: \"This field requires an integer value\",\n url: \"This field requires a valid website URL\",\n tel: \"This field requires a valid telephone number\",\n maxlength: \"This fields length must be < ${1}\",\n minlength: \"This fields length must be > ${1}\",\n min: \"Minimum value for this field is ${1}\",\n max: \"Maximum value for this field is ${1}\",\n pattern: \"Please match the requested format\"\n };\n\n function findAncestor(el, cls) {\n while ((el = el.parentElement) && !el.classList.contains(cls)) {}\n return el;\n }\n\n function tmpl(o) {\n var _arguments = arguments;\n\n return this.replace(/\\${([^{}]*)}/g, function (a, b) {\n return _arguments[b];\n });\n }\n\n function groupedElemCount(input) {\n return input.pristine.self.form.querySelectorAll('input[name=\"' + input.getAttribute('name') + '\"]:checked').length;\n }\n\n function mergeConfig(obj1, obj2) {\n for (var attr in obj2) {\n if (!(attr in obj1)) {\n obj1[attr] = obj2[attr];\n }\n }\n return obj1;\n }\n\n function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n var defaultConfig = {\n classTo: 'form-group',\n errorClass: 'has-danger',\n successClass: 'has-success',\n errorTextParent: 'form-group',\n errorTextTag: 'div',\n errorTextClass: 'text-help'\n };\n\n var PRISTINE_ERROR = 'pristine-error';\n var SELECTOR = \"input:not([type^=hidden]):not([type^=submit]), select, textarea\";\n var ALLOWED_ATTRIBUTES = [\"required\", \"min\", \"max\", 'minlength', 'maxlength', 'pattern'];\n var EMAIL_REGEX = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n var validators = {};\n\n var _ = function _(name, validator) {\n validator.name = name;\n if (!validator.msg) validator.msg = lang[name];\n if (validator.priority === undefined) validator.priority = 1;\n validators[name] = validator;\n };\n\n _('text', { fn: function fn(val) {\n return true;\n }, priority: 0 });\n _('required', { fn: function fn(val) {\n return this.type === 'radio' || this.type === 'checkbox' ? groupedElemCount(this) : val !== undefined && val !== '';\n }, priority: 99, halt: true });\n _('email', { fn: function fn(val) {\n return !val || EMAIL_REGEX.test(val);\n } });\n _('number', { fn: function fn(val) {\n return !val || !isNaN(parseFloat(val));\n }, priority: 2 });\n _('integer', { fn: function fn(val) {\n return !val || /^\\d+$/.test(val);\n } });\n _('minlength', { fn: function fn(val, length) {\n return !val || val.length >= parseInt(length);\n } });\n _('maxlength', { fn: function fn(val, length) {\n return !val || val.length <= parseInt(length);\n } });\n _('min', { fn: function fn(val, limit) {\n return !val || (this.type === 'checkbox' ? groupedElemCount(this) >= parseInt(limit) : parseFloat(val) >= parseFloat(limit));\n } });\n _('max', { fn: function fn(val, limit) {\n return !val || (this.type === 'checkbox' ? groupedElemCount(this) <= parseInt(limit) : parseFloat(val) <= parseFloat(limit));\n } });\n _('pattern', { fn: function fn(val, pattern) {\n var m = pattern.match(new RegExp('^/(.*?)/([gimy]*)$'));return !val || new RegExp(m[1], m[2]).test(val);\n } });\n\n function Pristine(form, config, live) {\n\n var self = this;\n\n init(form, config, live);\n\n function init(form, config, live) {\n\n form.setAttribute(\"novalidate\", \"true\");\n\n self.form = form;\n self.config = mergeConfig(config || {}, defaultConfig);\n self.live = !(live === false);\n self.fields = Array.from(form.querySelectorAll(SELECTOR)).map(function (input) {\n\n var fns = [];\n var params = {};\n var messages = {};\n\n [].forEach.call(input.attributes, function (attr) {\n if (/^data-pristine-/.test(attr.name)) {\n var name = attr.name.substr(14);\n if (name.endsWith('-message')) {\n messages[name.slice(0, name.length - 8)] = attr.value;\n return;\n }\n if (name === 'type') name = attr.value;\n _addValidatorToField(fns, params, name, attr.value);\n } else if (~ALLOWED_ATTRIBUTES.indexOf(attr.name)) {\n _addValidatorToField(fns, params, attr.name, attr.value);\n } else if (attr.name === 'type') {\n _addValidatorToField(fns, params, attr.value);\n }\n });\n\n fns.sort(function (a, b) {\n return b.priority - a.priority;\n });\n\n self.live && input.addEventListener(!~['radio', 'checkbox'].indexOf(input.getAttribute('type')) ? 'input' : 'change', function (e) {\n self.validate(e.target);\n }.bind(self));\n\n return input.pristine = { input: input, validators: fns, params: params, messages: messages, self: self };\n }.bind(self));\n }\n\n function _addValidatorToField(fns, params, name, value) {\n var validator = validators[name];\n if (validator) {\n fns.push(validator);\n if (value) {\n var valueParams = value.split(',');\n valueParams.unshift(null); // placeholder for input's value\n params[name] = valueParams;\n }\n }\n }\n\n /***\n * Checks whether the form/input elements are valid\n * @param input => input element(s) or a jquery selector, null for full form validation\n * @param silent => do not show error messages, just return true/false\n * @returns {boolean} return true when valid false otherwise\n */\n self.validate = function (input, silent) {\n silent = input && silent === true || input === true;\n var fields = self.fields;\n if (input !== true && input !== false) {\n if (input instanceof HTMLElement) {\n fields = [input.pristine];\n } else if (input instanceof NodeList || input instanceof (window.$ || Array) || input instanceof Array) {\n fields = Array.from(input).map(function (el) {\n return el.pristine;\n });\n }\n }\n\n var valid = true;\n\n for (var i = 0; fields[i]; i++) {\n var field = fields[i];\n if (_validateField(field)) {\n !silent && _showSuccess(field);\n } else {\n valid = false;\n !silent && _showError(field);\n }\n }\n return valid;\n };\n\n /***\n * Get errors of a specific field or the whole form\n * @param input\n * @returns {Array|*}\n */\n self.getErrors = function (input) {\n if (!input) {\n var erroneousFields = [];\n for (var i = 0; i < self.fields.length; i++) {\n var field = self.fields[i];\n if (field.errors.length) {\n erroneousFields.push({ input: field.input, errors: field.errors });\n }\n }\n return erroneousFields;\n }\n if (input.tagName && input.tagName.toLowerCase() === \"select\") {\n return input.pristine.errors;\n }\n return input.length ? input[0].pristine.errors : input.pristine.errors;\n };\n\n /***\n * Validates a single field, all validator functions are called and error messages are generated\n * when a validator fails\n * @param field\n * @returns {boolean}\n * @private\n */\n function _validateField(field) {\n var errors = [];\n var valid = true;\n for (var i = 0; field.validators[i]; i++) {\n var validator = field.validators[i];\n var params = field.params[validator.name] ? field.params[validator.name] : [];\n params[0] = field.input.value;\n if (!validator.fn.apply(field.input, params)) {\n valid = false;\n\n if (isFunction(validator.msg)) {\n errors.push(validator.msg(field.input.value, params));\n } else {\n var error = field.messages[validator.name] || validator.msg;\n errors.push(tmpl.apply(error, params));\n }\n\n if (validator.halt === true) {\n break;\n }\n }\n }\n field.errors = errors;\n return valid;\n }\n\n /***\n *\n * @param elem => The dom element where the validator is applied to\n * @param fn => validator function\n * @param msg => message to show when validation fails. Supports templating. ${0} for the input's value, ${1} and\n * so on are for the attribute values\n * @param priority => priority of the validator function, higher valued function gets called first.\n * @param halt => whether validation should stop for this field after current validation function\n */\n self.addValidator = function (elem, fn, msg, priority, halt) {\n if (elem instanceof HTMLElement) {\n elem.pristine.validators.push({ fn: fn, msg: msg, priority: priority, halt: halt });\n elem.pristine.validators.sort(function (a, b) {\n return b.priority - a.priority;\n });\n } else {\n console.warn(\"The parameter elem must be a dom element\");\n }\n };\n\n /***\n * An utility function that returns a 2-element array, first one is the element where error/success class is\n * applied. 2nd one is the element where error message is displayed. 2nd element is created if doesn't exist and cached.\n * @param field\n * @returns {*}\n * @private\n */\n function _getErrorElements(field) {\n if (field.errorElements) {\n return field.errorElements;\n }\n var errorClassElement = findAncestor(field.input, self.config.classTo);\n var errorTextParent = null,\n errorTextElement = null;\n if (self.config.classTo === self.config.errorTextParent) {\n errorTextParent = errorClassElement;\n } else {\n errorTextParent = errorClassElement.querySelector('.' + self.config.errorTextParent);\n }\n if (errorTextParent) {\n errorTextElement = errorTextParent.querySelector('.' + PRISTINE_ERROR);\n if (!errorTextElement) {\n errorTextElement = document.createElement(self.config.errorTextTag);\n errorTextElement.className = PRISTINE_ERROR + ' ' + self.config.errorTextClass;\n errorTextParent.appendChild(errorTextElement);\n errorTextElement.pristineDisplay = errorTextElement.style.display;\n }\n }\n return field.errorElements = [errorClassElement, errorTextElement];\n }\n\n function _showError(field) {\n var errorElements = _getErrorElements(field);\n var errorClassElement = errorElements[0],\n errorTextElement = errorElements[1];\n\n if (errorClassElement) {\n errorClassElement.classList.remove(self.config.successClass);\n errorClassElement.classList.add(self.config.errorClass);\n }\n if (errorTextElement) {\n errorTextElement.innerHTML = field.errors.join('
');\n errorTextElement.style.display = errorTextElement.pristineDisplay || '';\n }\n }\n\n /***\n * Adds error to a specific field\n * @param input\n * @param error\n */\n self.addError = function (input, error) {\n input = input.length ? input[0] : input;\n input.pristine.errors.push(error);\n _showError(input.pristine);\n };\n\n function _removeError(field) {\n var errorElements = _getErrorElements(field);\n var errorClassElement = errorElements[0],\n errorTextElement = errorElements[1];\n if (errorClassElement) {\n // IE > 9 doesn't support multiple class removal\n errorClassElement.classList.remove(self.config.errorClass);\n errorClassElement.classList.remove(self.config.successClass);\n }\n if (errorTextElement) {\n errorTextElement.innerHTML = '';\n errorTextElement.style.display = 'none';\n }\n return errorElements;\n }\n\n function _showSuccess(field) {\n var errorClassElement = _removeError(field)[0];\n errorClassElement && errorClassElement.classList.add(self.config.successClass);\n }\n\n /***\n * Resets the errors\n */\n self.reset = function () {\n for (var i = 0; self.fields[i]; i++) {\n self.fields[i].errorElements = null;\n }\n Array.from(self.form.querySelectorAll('.' + PRISTINE_ERROR)).map(function (elem) {\n elem.parentNode.removeChild(elem);\n });\n Array.from(self.form.querySelectorAll('.' + self.config.classTo)).map(function (elem) {\n elem.classList.remove(self.config.successClass);\n elem.classList.remove(self.config.errorClass);\n });\n };\n\n /***\n * Resets the errors and deletes all pristine fields\n */\n self.destroy = function () {\n self.reset();\n self.fields.forEach(function (field) {\n delete field.input.pristine;\n });\n self.fields = [];\n };\n\n self.setGlobalConfig = function (config) {\n defaultConfig = config;\n };\n\n return self;\n }\n\n /***\n *\n * @param name => Name of the global validator\n * @param fn => validator function\n * @param msg => message to show when validation fails. Supports templating. ${0} for the input's value, ${1} and\n * so on are for the attribute values\n * @param priority => priority of the validator function, higher valued function gets called first.\n * @param halt => whether validation should stop for this field after current validation function\n */\n Pristine.addValidator = function (name, fn, msg, priority, halt) {\n _(name, { fn: fn, msg: msg, priority: priority, halt: halt });\n };\n\n return Pristine;\n\n})));\n","import { injectSvgs } from \"./svg-injector\";\r\nimport {\r\n GlassRoofSchematic,\r\n ProductConfiguratorState,\r\n Step,\r\n} from \"./product-configurator\";\r\nimport {\r\n disableInputs,\r\n enableInputs,\r\n getFormValues,\r\n sendForm,\r\n validateForm,\r\n} from \"./lib-2sxc-forms\";\r\nimport { showAlert, showConfigWarnings } from \"./lib-2sxc-alerts\";\r\nimport { addTrackingEvent } from \"./lib-2sxc-tracking\";\r\n\r\nconst debug = true;\r\n\r\n// so it can be called from the HTML when content re-initializes dynamically\r\nconst winAny = window as any;\r\nwinAny.appContent = winAny.appContent || {};\r\nwinAny.appProductConfigurator ??= {};\r\nwinAny.appProductConfigurator.init ??= initProductConfigurator;\r\n\r\nexport function initProductConfigurator({\r\n domAttribute,\r\n}: {\r\n domAttribute: string;\r\n}) {\r\n if (document.getElementsByTagName(\"form\").length)\r\n document.getElementsByTagName(\"form\")[0].setAttribute(\"novalidate\", \"\");\r\n\r\n injectSvgs(\"inject-svg\");\r\n\r\n const schematicInset = {\r\n widthDimensioning: [\"Pfeil_breite\"],\r\n depthDimensioning: [\"Pfeil_tiefe\"],\r\n\r\n pillarInset: [\"Stütze_versetzt_Basisträger\"],\r\n pillarStandard: [\"Stütze_normal\"],\r\n\r\n topCloth: [\"Beschattung_Dach\"],\r\n underGlassCloth: [\"Beschattung_Dach_unter_Glas\"],\r\n\r\n westGlass: [\"Glas_links_Seite_Stützen_versetzt\"],\r\n southGlass: [\"\"],\r\n eastGlass: [\"Glas_Seite_Stützen_versetzt\"],\r\n\r\n westCloth: [\"Beschattung_links_Stüzen_versetzt\"],\r\n southCloth: [\"\"],\r\n eastCloth: [\"Beschattung_rechts_Stützen_versetzt\"],\r\n\r\n illuminationStripes: [\"Licht_Streifen_Stütze_versetzt\"],\r\n illuminationStripesWithUnderGlassCloth: [\"\"],\r\n illuminationSpots: [\"Licht_Einzeln_klein_neu\"],\r\n illuminationNone: [\r\n \"Licht_Streifen_Beschattung_unter_Glas\",\r\n \"Licht_Streifen_Stütze_versetzt\",\r\n \"Licht_Streifen\",\r\n \"Licht_Einzeln_klein_neu\",\r\n \"Licht_Streifen\",\r\n ],\r\n } as GlassRoofSchematic;\r\n\r\n const schematicStandard = {\r\n widthDimensioning: [\"Pfeil_breite\"],\r\n depthDimensioning: [\"Pfeil_tiefe\"],\r\n\r\n pillarInset: [\"Stütze_versetzt_Basisträger\"],\r\n pillarStandard: [\"Stütze_normal\"],\r\n\r\n topCloth: [\"Beschattung_Dach\"],\r\n underGlassCloth: [\"Beschattung_Dach_unter_Glas\"],\r\n\r\n westGlass: [\"Glas_linke_Seite_Stütze_normal\"],\r\n southGlass: [\"Glas_Front_Stützen_normal\"],\r\n eastGlass: [\"Glas_Seite_rechts_normal\"],\r\n\r\n westCloth: [\"Beschattung_Seite_links_Stützen_normal\"],\r\n southCloth: [\"Beschattung_Front\"],\r\n eastCloth: [\"Beschattung_Seite_rechts\"],\r\n\r\n illuminationStripes: [\"Licht_Streifen\"],\r\n illuminationStripesWithUnderGlassCloth: [\r\n \"Licht_Streifen_Beschattung_unter_Glas\",\r\n ],\r\n illuminationSpots: [\"Licht_Einzeln_klein_neu\"],\r\n illuminationNone: [\r\n \"Licht_Streifen_Beschattung_unter_Glas\",\r\n \"Licht_Streifen_Stütze_versetzt\",\r\n \"Licht_Streifen\",\r\n \"Licht_Einzeln_klein_neu\",\r\n \"Licht_Streifen\",\r\n ],\r\n } as GlassRoofSchematic;\r\n\r\n const pcState = new ProductConfiguratorState(schematicStandard);\r\n const pcWrapper = document.querySelectorAll(`[${domAttribute}]`)[0];\r\n\r\n if (!pcWrapper) return;\r\n\r\n // bind click event for all next buttons\r\n pcWrapper.querySelectorAll(\"[app-pc-step-next]\").forEach((e) => {\r\n e.addEventListener(\"click\", (event: Event) => {\r\n event.preventDefault();\r\n\r\n const currentStep = pcState.getActiveStep();\r\n const nextStep = +e.getAttribute(\"data-goto-step\") ?? 0;\r\n\r\n let skipValidation = !!e.getAttribute(\"data-skip-validation\");\r\n if (currentStep.id > nextStep) skipValidation = true; // going backwards never requires validation\r\n\r\n if (!skipValidation && !currentStep.isValid()) return;\r\n\r\n if (pcState.gotoStep(nextStep)) {\r\n if (nextStep == 3) {\r\n pcWrapper.classList.add(\"night-time\");\r\n } else {\r\n pcWrapper.classList.remove(\"night-time\");\r\n }\r\n\r\n if (nextStep == 5) {\r\n // TODO: move this to form submit\r\n pcWrapper.querySelectorAll(\".complete\").forEach((f) => {\r\n f.removeAttribute(\"hidden\");\r\n\r\n setTimeout(() => {\r\n f.querySelectorAll(\"svg\").forEach((f1) => {\r\n f1.classList.add(\"active\");\r\n });\r\n }, 25);\r\n });\r\n\r\n pcWrapper.querySelectorAll(\".stepper\").forEach((f) => {\r\n f.setAttribute(\"hidden\", \"\");\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n // add steps from DOM to ProductConfiguratorState\r\n pcWrapper.querySelectorAll(\"[app-pc-step-content]\").forEach((v, k, ary) => {\r\n const step: Step = new Step();\r\n step.contentElementRef = v as HTMLElement;\r\n step.id = +step.contentElementRef.getAttribute(\"data-step\");\r\n step.showOnFirstActivation = step.contentElementRef.getAttribute(\r\n \"data-show-on-first-activation\"\r\n );\r\n\r\n pcState.addStep(step);\r\n });\r\n\r\n // stepper icons to step content\r\n pcWrapper.querySelectorAll(\"[app-pc-step-icon]\").forEach((v, k, ary) => {\r\n const iconElementRef = v as HTMLElement;\r\n const stepId = +iconElementRef.getAttribute(\"data-step\");\r\n\r\n pcState.addIconToStep(stepId, iconElementRef);\r\n });\r\n\r\n // bind schematic state change events to inputs\r\n pcWrapper.querySelectorAll(\"[app-pc-input]\").forEach((e) => {\r\n e.addEventListener(\"focus\", (event: Event) => {\r\n event.preventDefault();\r\n pcState.triggerOnFocus(e);\r\n });\r\n\r\n e.addEventListener(\"blur\", (event: Event) => {\r\n event.preventDefault();\r\n pcState.triggerOnFocus(e, true);\r\n });\r\n\r\n e.addEventListener(\"change\", (event: Event) => {\r\n event.preventDefault();\r\n\r\n if (e instanceof HTMLSelectElement) {\r\n Array.from(e.options).forEach((f) => {\r\n pcState.triggerHideOnSelect(f);\r\n });\r\n\r\n Array.from(e.selectedOptions).forEach((f) => {\r\n pcState.triggerShowOnSelect(f);\r\n });\r\n\r\n if (e.id === \"shadingTop\") {\r\n if (e.value === \"Unterglasmarkise\") {\r\n pcWrapper.classList.add(\"under-glass-shading\");\r\n } else {\r\n pcWrapper.classList.remove(\"under-glass-shading\");\r\n }\r\n\r\n // reset illumintaion\r\n pcWrapper\r\n .querySelectorAll(\"input[name='illumination']\")\r\n .forEach((e) => {\r\n if (e instanceof HTMLInputElement) {\r\n pcState.triggerHideOnSelect(e);\r\n\r\n e.checked = false;\r\n if (e.value === \"none\") {\r\n e.checked = true;\r\n }\r\n }\r\n });\r\n }\r\n } else if (e instanceof HTMLInputElement) {\r\n switch (e.type) {\r\n case \"checkbox\":\r\n e.checked\r\n ? pcState.triggerShowOnCheck(e)\r\n : pcState.triggerHideOnUncheck(e);\r\n break;\r\n case \"radio\":\r\n // hide all elements in this radio button group\r\n pcWrapper\r\n .querySelectorAll(\"input[name='\" + e.name + \"']\")\r\n .forEach((f) => {\r\n pcState.triggerHideOnSelect(f);\r\n });\r\n\r\n if (e.name == \"pillarPosition\") {\r\n pcWrapper.classList.remove(\"under-glass-shading\");\r\n\r\n // remove top shading\r\n pcWrapper.querySelectorAll(\"#shadingTop\").forEach((e) => {\r\n if (e instanceof HTMLSelectElement) {\r\n e.value = \"\";\r\n }\r\n });\r\n\r\n // reset glazing and shadowing checkboxes to false\r\n pcWrapper\r\n .querySelectorAll(\r\n \".checkbox-container > input[type='checkbox']\"\r\n )\r\n .forEach((e) => {\r\n if (e instanceof HTMLInputElement) {\r\n e.checked = false;\r\n e.parentElement.removeAttribute(\"active\");\r\n }\r\n });\r\n\r\n // reset illumintaion\r\n pcWrapper\r\n .querySelectorAll(\"input[name='illumination']\")\r\n .forEach((e) => {\r\n if (e instanceof HTMLInputElement) {\r\n e.checked = false;\r\n if (e.value === \"none\") {\r\n e.checked = true;\r\n }\r\n }\r\n });\r\n\r\n switch (e.value) {\r\n case \"standard\":\r\n pcWrapper.classList.remove(\"inset-pillar\");\r\n pcState.changeSchematic(schematicStandard, [\r\n \"westGlass\",\r\n \"southGlass\",\r\n \"eastGlass\",\r\n \"westCloth\",\r\n \"southCloth\",\r\n \"eastCloth\",\r\n \"topCloth\",\r\n \"underGlassCloth\",\r\n \"illuminationStripes\",\r\n \"illuminationStripesWithUnderGlassCloth\",\r\n \"illuminationSpots\",\r\n \"illuminationNone\",\r\n ]);\r\n break;\r\n case \"inset\":\r\n pcWrapper.classList.add(\"inset-pillar\");\r\n pcState.changeSchematic(schematicInset, [\r\n \"westGlass\",\r\n \"southGlass\",\r\n \"eastGlass\",\r\n \"westCloth\",\r\n \"southCloth\",\r\n \"eastCloth\",\r\n \"topCloth\",\r\n \"underGlassCloth\",\r\n \"illuminationStripes\",\r\n \"illuminationStripesWithUnderGlassCloth\",\r\n \"illuminationSpots\",\r\n \"illuminationNone\",\r\n ]);\r\n break;\r\n }\r\n }\r\n\r\n // show selected element\r\n pcState.triggerShowOnSelect(e);\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n\r\n // add active state to checkbox-container\r\n pcWrapper\r\n .querySelectorAll(\".checkbox-container > input[type='checkbox']\")\r\n .forEach((e) => {\r\n e.addEventListener(\"change\", (event: Event) => {\r\n if (e instanceof HTMLInputElement) {\r\n if (e.checked) e.parentElement.setAttribute(\"active\", null);\r\n else e.parentElement.removeAttribute(\"active\");\r\n }\r\n });\r\n });\r\n\r\n // show fields for postbox address\r\n pcWrapper.querySelectorAll(\"#sameLocation\").forEach((e) => {\r\n e.addEventListener(\"change\", (event: Event) => {\r\n const postboxContainerElement =\r\n pcWrapper.querySelector(\"#postbox-container\");\r\n\r\n if (e instanceof HTMLInputElement) {\r\n if (e.checked) {\r\n postboxContainerElement.setAttribute(\"hidden\", null);\r\n postboxContainerElement\r\n .querySelectorAll(\"input, label\")\r\n .forEach((f) => {\r\n f.removeAttribute(\"required\");\r\n });\r\n } else {\r\n postboxContainerElement.removeAttribute(\"hidden\");\r\n postboxContainerElement\r\n .querySelectorAll(\"input, label\")\r\n .forEach((f) => {\r\n f.setAttribute(\"required\", null);\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n pcWrapper.querySelectorAll(\"[app-pc-send-form]\").forEach((e) => {\r\n e.addEventListener(\"click\", async (event: Event) => {\r\n const valid = validateForm(pcWrapper);\r\n if (!valid) return;\r\n\r\n const submitButtom = e as HTMLButtonElement;\r\n const formValues = await getFormValues(pcWrapper);\r\n const endpoint = (pcWrapper as HTMLElement).dataset.webservice; // (should be \"Form/ProcessForm\" or a custom override)\r\n\r\n sendForm(formValues, submitButtom, endpoint).then((result: any) => {\r\n // error\r\n if (!result.ok) {\r\n if (debug) console.log(\"error\", result.status);\r\n enableInputs(pcWrapper);\r\n\r\n addTrackingEvent(\r\n \"trackProductConfiguratorForm\",\r\n \"pc-form\",\r\n submitButtom.innerText\r\n );\r\n return;\r\n }\r\n\r\n // success\r\n if (debug) console.log(\"success\", result);\r\n submitButtom.setAttribute(\"disabled\", \"\");\r\n disableInputs(pcWrapper, false);\r\n\r\n addTrackingEvent(\r\n \"trackProductConfiguratorForm\",\r\n \"pc-form\",\r\n submitButtom.innerText\r\n );\r\n\r\n // remove stepper and show complete header\r\n {\r\n pcWrapper.querySelectorAll(\".complete\").forEach((f) => {\r\n f.removeAttribute(\"hidden\");\r\n\r\n setTimeout(() => {\r\n f.querySelectorAll(\"svg\").forEach((f1) => {\r\n f1.classList.add(\"active\");\r\n });\r\n }, 25);\r\n });\r\n\r\n pcWrapper.querySelectorAll(\".stepper\").forEach((f) => {\r\n f.setAttribute(\"hidden\", \"\");\r\n });\r\n }\r\n\r\n pcState.gotoStep(5);\r\n });\r\n });\r\n });\r\n}\r\n","let Pristine = require(\"../../node_modules/pristinejs\");\r\ndeclare let $2sxc: any;\r\n\r\n/*\r\n This is a shared code used in various 2sxc apps. Make sure that they are in sync, so if you improve it, improve all 2sxc apps which use this. \r\n ATM they are:\r\n - EventsAndCourses6\r\n - MobiusForms5\r\n The master with the newest / best version must always be the Gallery7, the others should then get a fresh copy.\r\n Because this is shared, all parameters like DOM-IDs etc. must be provided in the Init-call that it can work across apps\r\n*/\r\n\r\nconst promiseFileMap = (promise: Promise) => {\r\n if (!promise) return promise;\r\n return promise.then((result) => result);\r\n};\r\n\r\n// automatically build the send-object with all properties,\r\n// based on all form-fields which have a item-property=\"\"\r\nexport async function getFormValues(formWrapper: Element): Promise {\r\n let data: any = {\r\n Files: [],\r\n };\r\n\r\n const fields = formWrapper.querySelectorAll(\"input,textarea,select\");\r\n fields.forEach((formField: HTMLInputElement) => {\r\n const fieldKey = getFieldKey(formField);\r\n if (!fieldKey) return;\r\n if (\r\n formField.getAttribute(\"type\") &&\r\n formField.getAttribute(\"type\").toLowerCase() == \"file\"\r\n ) {\r\n data[\"Files\"].push(getFieldValue(formField));\r\n return;\r\n }\r\n data[fieldKey] = getFieldValue(formField);\r\n });\r\n\r\n return Promise.all(data.Files.map(promiseFileMap)).then((loadedFiles) => {\r\n return { ...data, Files: loadedFiles };\r\n });\r\n}\r\n\r\nfunction getFieldKey(formField: HTMLInputElement): string {\r\n // get the property name from special-attribut, name OR id\r\n return formField.getAttribute(\"name\") || formField.getAttribute(\"id\");\r\n}\r\n\r\nfunction getFieldValue(\r\n formField: HTMLInputElement\r\n): Promise | unknown {\r\n // extract data from file fields\r\n if (!formField.getAttribute(\"type\")) return formField.value;\r\n switch (formField.getAttribute(\"type\").toLowerCase()) {\r\n case \"file\":\r\n const file = formField.files[0];\r\n if (!file) return;\r\n return Promise.resolve(() => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n });\r\n case \"radio\":\r\n return formField.value;\r\n case \"checkbox\":\r\n return formField.checked ? true : false;\r\n default:\r\n return formField.value;\r\n }\r\n}\r\n\r\nexport function validateForm(formWrapper: Element): boolean {\r\n // npm version of pristinejs is older than its version tag .. method is still missing\r\n\r\n // Pristine.addMessages(\"de\", {\r\n // required: \"This field is required1\",\r\n // email: \"This field requires a valid e-mail address\",\r\n // number: \"This field requires a number\",\r\n // integer: \"This field requires an integer value\",\r\n // url: \"This field requires a valid website URL\",\r\n // tel: \"This field requires a valid telephone number\",\r\n // maxlength: \"This fields length must be < ${1}\",\r\n // minlength: \"This fields length must be > ${1}\",\r\n // min: \"Minimum value for this field is ${1}\",\r\n // max: \"Maximum value for this field is ${1}\",\r\n // pattern: \"Please match the requested format\",\r\n // equals: \"The two fields do not match\",\r\n // default: \"Please enter a correct value\",\r\n // });\r\n\r\n const pristine = new Pristine(formWrapper);\r\n\r\n return pristine.validate();\r\n}\r\n\r\nexport function sendForm(\r\n formData: any,\r\n submitButtom: HTMLButtonElement,\r\n endpoint: string = \"Form/ProcessForm\"\r\n): Promise {\r\n const sxc = $2sxc(submitButtom);\r\n return sxc.webApi.fetchRaw(endpoint, formData);\r\n}\r\n\r\nexport function disableInputs(wrapper: Element, state: boolean) {\r\n wrapper.classList.toggle(\"disable\", state);\r\n wrapper\r\n .querySelectorAll(\"input,textarea,select\")\r\n .forEach((elem: HTMLElement) => elem.setAttribute(\"disabled\", \"true\"));\r\n}\r\n\r\nexport function enableInputs(wrapper: Element) {\r\n wrapper.classList.remove(\"disable\");\r\n wrapper\r\n .querySelectorAll(\"input,textarea,select\")\r\n .forEach((elem: HTMLElement) => elem.setAttribute(\"disabled\", \"false\"));\r\n}\r\n","/*\r\n This is a shared code used in various 2sxc apps. Make sure that they are in sync, so if you improve it, improve all 2sxc apps which use this. \r\n ATM they are:\r\n - EventsAndCourses6\r\n - MobiusForms5\r\n The master with the newest / best version must always be the Gallery7, the others should then get a fresh copy.\r\n Because this is shared, all parameters like DOM-IDs etc. must be provided in the Init-call that it can work across apps\r\n*/\r\n\r\nexport function addTrackingEvent(\r\n trackingEventName: string,\r\n trackingCategory: string,\r\n trackingLabel: string\r\n) {\r\n const trackingEvent = new CustomEvent(trackingEventName, {\r\n detail: {\r\n category: trackingCategory,\r\n action: \"submit\",\r\n label: trackingLabel,\r\n },\r\n });\r\n document.dispatchEvent(trackingEvent);\r\n}\r\n","import { validateForm } from \"./lib-2sxc-forms\";\r\n\r\nexport class Step {\r\n id: number;\r\n contentElementRef: HTMLElement;\r\n iconElementRef: HTMLElement;\r\n\r\n showOnFirstActivation: string;\r\n isFirstActivation: boolean = true;\r\n\r\n show(): string {\r\n if (this.contentElementRef) {\r\n this.contentElementRef.hidden = false;\r\n }\r\n\r\n if (this.iconElementRef) {\r\n this.iconElementRef.setAttribute(\"active\", null);\r\n }\r\n\r\n if (this.isFirstActivation) {\r\n this.isFirstActivation = false;\r\n return this.showOnFirstActivation;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n hide(): void {\r\n if (this.contentElementRef) {\r\n this.contentElementRef.hidden = true;\r\n }\r\n\r\n if (this.iconElementRef) {\r\n this.iconElementRef.removeAttribute(\"active\");\r\n }\r\n }\r\n\r\n enable(): void {\r\n if (this.iconElementRef) {\r\n this.iconElementRef.removeAttribute(\"disabled\");\r\n }\r\n }\r\n\r\n isValid(): boolean {\r\n if (this.contentElementRef) {\r\n return validateForm(this.contentElementRef);\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nexport class ProductConfiguratorState {\r\n constructor(schematic: GlassRoofSchematic | OtherSchematic) {\r\n this.schematic = schematic;\r\n this.steps = [] as Array;\r\n this.currentProgress = 1;\r\n }\r\n\r\n schematic: GlassRoofSchematic | OtherSchematic;\r\n steps: Step[];\r\n\r\n currentProgress: number;\r\n\r\n changeSchematic(\r\n newSchematic: GlassRoofSchematic | OtherSchematic,\r\n hideElements?: string[]\r\n ) {\r\n Object.keys(this.schematic).forEach((key) => {\r\n if (hideElements && hideElements.includes(key))\r\n this.hideSvgElements((this.schematic as any)[key] as string[]);\r\n\r\n if (!hideElements)\r\n this.hideSvgElements((this.schematic as any)[key] as string[]);\r\n });\r\n\r\n this.schematic = newSchematic;\r\n }\r\n\r\n getActiveStep(): Step {\r\n return this.steps.find((f) => f.contentElementRef.hidden == false);\r\n }\r\n\r\n addStep(newStep: Step) {\r\n newStep.hide();\r\n this.steps.push(newStep);\r\n this.steps.sort((a, b) => a.id - b.id)[0].show();\r\n }\r\n\r\n addIconToStep(stepId: number, iconElementRef: HTMLElement) {\r\n this.steps\r\n .filter((f) => f.id === stepId)\r\n .forEach((v) => (v.iconElementRef = iconElementRef));\r\n }\r\n\r\n getContentElementByStepId(stepId: number): HTMLElement {\r\n return this.steps.find((f) => f.id == stepId)?.contentElementRef;\r\n }\r\n\r\n gotoStep(stepId: number): boolean {\r\n if (this.currentProgress + 1 < stepId) return false;\r\n if (this.currentProgress < stepId) this.currentProgress = stepId;\r\n\r\n this.steps\r\n .filter((f) => f.contentElementRef.hidden == false)\r\n .forEach((v) => v.hide());\r\n\r\n this.steps\r\n .filter((f) => f.id == stepId)\r\n .forEach((step) => {\r\n const ret = step.show();\r\n if (ret) {\r\n const svgElementIds: string[] = (this.schematic as any)[ret];\r\n this.showSvgElements(svgElementIds);\r\n }\r\n });\r\n\r\n this.steps\r\n .filter((f) => f.id == stepId + 1)\r\n .forEach((step) => {\r\n step.enable();\r\n });\r\n\r\n return true;\r\n }\r\n\r\n triggerShowOnCheck(e: Element) {\r\n const showAttr = e.getAttribute(\"data-show-on-check\");\r\n if (showAttr) {\r\n const svgElementIds: string[] = (this.schematic as any)[showAttr];\r\n this.showSvgElements(svgElementIds);\r\n }\r\n }\r\n\r\n hideSvgElements(svgElementIds: string[]) {\r\n if (svgElementIds && svgElementIds.length > 0) {\r\n svgElementIds.forEach((f) => {\r\n if (!!f) {\r\n const svgElement = document.getElementById(f);\r\n svgElement.style.display = \"none\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n showSvgElements(svgElementIds: string[]) {\r\n if (svgElementIds && svgElementIds.length > 0) {\r\n svgElementIds.forEach((f) => {\r\n if (!!f) {\r\n const svgElement = document.getElementById(f);\r\n svgElement.style.display = \"inline\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n triggerHideOnUncheck(e: Element) {\r\n const hideAttr = e.getAttribute(\"data-show-on-check\");\r\n if (hideAttr) {\r\n const svgElementIds: string[] = (this.schematic as any)[hideAttr];\r\n this.hideSvgElements(svgElementIds);\r\n }\r\n }\r\n\r\n triggerShowOnSelect(e: Element) {\r\n const showAttr = e.getAttribute(\"data-show-on-select\");\r\n if (showAttr) {\r\n const svgElementIds: string[] = (this.schematic as any)[showAttr];\r\n this.showSvgElements(svgElementIds);\r\n }\r\n }\r\n\r\n triggerHideOnSelect(e: Element) {\r\n const hideAttr = e.getAttribute(\"data-hide-on-select\");\r\n if (hideAttr) {\r\n const svgElementIds: string[] = (this.schematic as any)[hideAttr];\r\n this.hideSvgElements(svgElementIds);\r\n }\r\n }\r\n\r\n triggerOnFocus(e: Element, blur?: boolean) {\r\n const focusAttr = e.getAttribute(\"data-show-on-focus\");\r\n if (focusAttr) {\r\n const svgElementIds: string[] = (this.schematic as any)[focusAttr];\r\n if (svgElementIds && svgElementIds.length > 0) {\r\n svgElementIds.forEach((f) => {\r\n const svgElement = document.getElementById(f);\r\n svgElement.style.display = blur ? \"none\" : \"inline\";\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class GlassRoofSchematic {\r\n widthDimensioning: string[];\r\n depthDimensioning: string[];\r\n\r\n pillarInset: string[];\r\n pillarStandard: string[];\r\n\r\n westGlass: string[];\r\n southGlass: string[];\r\n eastGlass: string[];\r\n\r\n topCloth: string[];\r\n underGlassCloth: string[];\r\n\r\n westCloth: string[];\r\n southCloth: string[];\r\n eastCloth: string[];\r\n\r\n illuminationStripes: string[];\r\n illuminationStripesWithUnderGlassCloth: string[];\r\n illuminationSpots: string[];\r\n illuminationNone: string[];\r\n}\r\n\r\nexport class OtherSchematic {}\r\n","import { SVGInjector } from \"@tanem/svg-injector\";\r\n\r\nexport function injectSvgs(svgMarkerClass: string) {\r\n SVGInjector(document.getElementsByClassName(svgMarkerClass), {\r\n afterAll(elementsLoaded) {\r\n //console.log(`injected ${elementsLoaded} elements`);\r\n },\r\n afterEach(err, svg) {\r\n if (err) {\r\n throw err;\r\n }\r\n\r\n //console.log(`injected ${svg.outerHTML}`);\r\n },\r\n beforeEach(svg) {\r\n var pc = document.getElementById(\"product-configurator\");\r\n var basePath = pc.getAttribute(\"data-svg-base-href\");\r\n\r\n svg.querySelectorAll(\"#Licht_Einzeln_klein_neu image\").forEach((f) => {\r\n var tmp = f.getAttribute(\"xlink:href\");\r\n f.setAttribute(\"xlink:href\", basePath + \"/src/assets/glassroof/\" + tmp);\r\n });\r\n },\r\n cacheRequests: false,\r\n evalScripts: \"never\",\r\n httpRequestWithCredentials: false,\r\n renumerateIRIElements: false,\r\n });\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(294);\n"],"names":["Object","create","__spreadArray","to","from","pack","arguments","length","ar","i","l","Array","prototype","slice","call","concat","cache","Map","cloneSvg","sourceSvg","cloneNode","isLocal","window","location","protocol","makeAjaxRequest","url","httpRequestWithCredentials","callback","httpRequest","XMLHttpRequest","onreadystatechange","test","readyState","contentType","getResponseHeader","Error","type","status","responseXML","statusText","error","abort","open","withCredentials","overrideMimeType","send","requestQueue","queueRequest","push","loadSvgCached","has","cacheValue","get","undefined","SVGSVGElement","set","Document","documentElement","_loop_1","len","setTimeout","isArray","processRequestQueue","loadSvgUncached","idCounter","injectedElements","ranScripts","xlinkNamespace","injectElement","el","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","getAttribute","indexOf","splice","setAttribute","svg","elId","elTitle","elWidth","elHeight","mergedClasses","Set","split","join","trim","elStyle","elData","filter","attributes","at","name","forEach","dataAttr","value","element_1","elements_1","properties_1","currentId_1","newId_1","iriElementsAndProperties_1","clipPath","cursor","linearGradient","marker","mask","path","pattern","radialGradient","keys","key","a","elementsLen","referencingElements","id","property","b","referencingElementLen","querySelectorAll","attrValue","match","RegExp","allLinks","links","c","allLinksLen","href","getAttributeNS","toString","d","linksLen","setAttributeNS","removeAttribute","script","scriptType","scripts","scriptsToEval","scriptsLen","innerText","textContent","removeChild","scriptsToEvalLen","Function","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","_a","_b","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j","PARAM_REGEXP","TEXT_REGEXP","TOKEN_REGEXP","QESC_REGEXP","QUOTE_REGEXP","TYPE_REGEXP","qstring","val","str","String","TypeError","replace","ContentType","this","parameters","exports","string","header","obj","getHeader","headers","getcontenttype","index","substr","toLowerCase","lastIndex","exec","module","lang","required","email","number","integer","tel","maxlength","minlength","min","max","findAncestor","cls","parentElement","classList","contains","tmpl","o","_arguments","groupedElemCount","input","pristine","self","form","mergeConfig","obj1","obj2","attr","isFunction","constructor","apply","defaultConfig","classTo","errorClass","successClass","errorTextParent","errorTextTag","errorTextClass","PRISTINE_ERROR","SELECTOR","ALLOWED_ATTRIBUTES","EMAIL_REGEX","validators","_","validator","msg","priority","Pristine","config","live","init","fields","map","fns","params","messages","endsWith","_addValidatorToField","sort","addEventListener","e","validate","target","bind","valueParams","unshift","_validateField","field","errors","valid","fn","halt","_getErrorElements","errorElements","errorClassElement","errorTextElement","querySelector","document","createElement","className","appendChild","pristineDisplay","style","display","_showError","remove","add","innerHTML","_removeError","_showSuccess","silent","HTMLElement","NodeList","$","getErrors","erroneousFields","tagName","addValidator","elem","console","warn","addError","reset","destroy","setGlobalConfig","isNaN","parseFloat","parseInt","limit","m","factory","winAny","initProductConfigurator","domAttribute","getElementsByTagName","injectSvgs","schematicInset","widthDimensioning","depthDimensioning","pillarInset","pillarStandard","topCloth","underGlassCloth","westGlass","southGlass","eastGlass","westCloth","southCloth","eastCloth","illuminationStripes","illuminationStripesWithUnderGlassCloth","illuminationSpots","illuminationNone","schematicStandard","pcState","ProductConfiguratorState","pcWrapper","event","preventDefault","currentStep","getActiveStep","nextStep","skipValidation","isValid","gotoStep","f","f1","v","k","ary","step","Step","contentElementRef","showOnFirstActivation","addStep","iconElementRef","stepId","addIconToStep","triggerOnFocus","HTMLSelectElement","options","triggerHideOnSelect","selectedOptions","triggerShowOnSelect","HTMLInputElement","checked","triggerShowOnCheck","triggerHideOnUncheck","changeSchematic","postboxContainerElement","validateForm","submitButtom","getFormValues","formValues","endpoint","dataset","webservice","sendForm","then","result","ok","log","enableInputs","addTrackingEvent","disableInputs","appContent","appProductConfigurator","promiseFileMap","promise","getFieldValue","formField","files","Promise","resolve","FileReader","readAsDataURL","formWrapper","data","Files","fieldKey","getFieldKey","all","loadedFiles","formData","$2sxc","webApi","fetchRaw","wrapper","state","toggle","trackingEventName","trackingCategory","trackingLabel","trackingEvent","CustomEvent","detail","category","action","label","dispatchEvent","isFirstActivation","show","hidden","hide","enable","schematic","steps","currentProgress","newSchematic","hideElements","includes","hideSvgElements","find","newStep","getContentElementByStepId","ret","svgElementIds","showSvgElements","showAttr","getElementById","hideAttr","blur","focusAttr","GlassRoofSchematic","OtherSchematic","svgMarkerClass","getElementsByClassName","elementsLoaded","err","basePath","tmp","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","defineProperty","enumerable","prop","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}