{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/ts/scripts.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","monthSum","setupSum","selectedOptions","addAdditionsToOption","e","_this","$","currentTarget","inputType","attr","stepId","data","optionId","price","setup","fees","detailId","additionTitle","createUpdateOrderArray","filter","selectedOption","detailsId","title","amount","val","prop","console","log","totalMonth","totalSetup","each","addition","ind","text","toFixed","updateSummaryAfterDetails","array","item","type","findIndex","_item","removeClass","find","hide","splice","push","on","currentStep","currentStepTitle","currentStepId","currentOption","currentPrice","currentPriceSetup","currentPriceFees","currentOptionHasDetails","currentOptionId","addClass","html","show","step","option","hasDetails","next","first","elem","requiredVal","reduce","a","b","parseFloat","replace","length","moreText","fewerText","parents","toggleClass","toggle","detailOptions","index","wrapper","sxc","$2sxc","document","querySelector","validForm","inpVal","toString","test","Order","JSON","stringify","MonthSum","SetupSum","promises","not","map","field","element","propName","toLowerCase","is","checkValue","add","when","apply","then","collect","webApi","post","success","error","sendForm"],"mappings":"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","file":"scripts.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","declare let $2sxc: any;\r\n\r\njQuery(function() { \r\n const selectedOptions: any = [];\r\n let monthSum: any;\r\n let setupSum: any;\r\n\r\n $('.steps').on('click', '.select-option', (e: Event) => {\r\n const _this = $(e.currentTarget);\r\n console.log(_this)\r\n const currentStep = _this.data('current');\r\n const currentStepTitle = _this.data('step');\r\n const currentStepId = _this.data('stepid');\r\n const currentOption = _this.data('option');\r\n const currentPrice = _this.data('price') || \"0\";\r\n const currentPriceSetup = _this.data('pricesetup') || \"0\";\r\n const currentPriceFees = _this.data('pricefees') || \"0\";\r\n const currentOptionHasDetails = _this.data('details');\r\n const currentOptionId = _this.data('id');\r\n\r\n\r\n $(`.${currentStep}`).removeClass('open');\r\n $(`.${currentStep}`).addClass('selected').removeClass('edit'); \r\n $(`.${currentStep}`).find('.selected-option').html(`: ${currentOption}`);\r\n $(`.${currentStep}`).find('.selected-option-price span').text(`${currentPrice}`);\r\n $(`.${currentStep}`).find('.selected-option-price').show();\r\n\r\n createUpdateOrderArray(selectedOptions, {\r\n step: currentStepTitle,\r\n option: currentOption,\r\n price: currentPrice,\r\n setup: currentPriceSetup,\r\n fees: currentPriceFees,\r\n stepId: currentStepId,\r\n optionId: currentOptionId,\r\n hasDetails: currentOptionHasDetails,\r\n addition: []\r\n }, 'stepId')\r\n\r\n $('.steps').find('.step').next('.step:not(.selected)').first().addClass('open');\r\n\r\n console.log(selectedOptions);\r\n checkForDependencies();\r\n updateSummary();\r\n });\r\n\r\n $('.steps').on('click', '.edit-option', (e: Event) => {\r\n const _this = $(e.currentTarget);\r\n const currentStep = _this.data('step');\r\n \r\n $(`.step`).removeClass('edit open')\r\n $(`.${currentStep}`).addClass('edit open');\r\n })\r\n\r\n $('.steps').on('click', '.toggle-details', (e: Event) => {\r\n const _this = $(e.currentTarget);\r\n const moreText = _this.data('more');\r\n const fewerText = _this.data('fewer');\r\n \r\n // _this.toggleClass('open').text(_this.text() == moreText ? fewerText : moreText);\r\n _this.parents('.step-content').find('.card-details').toggleClass('open');\r\n _this.parents('.step-content').find('.toggle-details').text(_this.text() == moreText ? fewerText : moreText);\r\n });\r\n\r\n $('.step-addition').on('keyup', '.input-amount', (e: Event) => {\r\n addAdditionsToOption(e);\r\n })\r\n\r\n $('.step-addition').on('change', '.input-checkbox', (e: Event) => {\r\n addAdditionsToOption(e); \r\n })\r\n\r\n $('.app-order-form').on('click', '.tooltip-opener', (e: Event) => {\r\n $('.tooltip-billing-type').toggle();\r\n })\r\n\r\n $('.app-order-footer').on('click', '.btn-order', (e: Event) => {\r\n const _this = $(e.currentTarget);\r\n const detailOptions = selectedOptions.filter(function (selectedOption: any) { return selectedOption.hasDetails == true });\r\n\r\n if(detailOptions.length > 0) {\r\n $('.app-order-tool-configurator-details').show();\r\n $('.app-order-tool-configurator').hide();\r\n _this.hide();\r\n\r\n $.each(detailOptions, (index: number, value: any) => {\r\n $(`.step-addition.step-addition-${value.stepId}`).show();\r\n $(`.option-addition-${value.optionId}.step-addition-${value.stepId}`).show();\r\n });\r\n\r\n $('.btn-customer-data').show();\r\n \r\n } else {\r\n _this.hide();\r\n $('.btn-send-order').show();\r\n $('.app-order-tool-configurator').hide();\r\n $('.app-order-form').show();\r\n }\r\n });\r\n\r\n $('.app-order-footer').on('click', '.btn-customer-data', (e: Event) => {\r\n const _this = $(e.currentTarget);\r\n _this.hide();\r\n $('.app-order-tool-configurator').hide();\r\n $('.app-order-tool-configurator-details').hide();\r\n $('.btn-send-order').show();\r\n $('.app-order-form').show();\r\n });\r\n\r\n $('.app-order-footer').on('click', '.btn-send-order', () => {\r\n sendForm()\r\n });\r\n\r\n $('.app-order-form').on('change', '.check-invoice-address', (e: Event) => {\r\n $('.invoice-address-data').toggle();\r\n if($(e.currentTarget).prop('checked')) {\r\n $('.invoice-required').val('');\r\n } else {\r\n $('.invoice-required').val('empty');\r\n }\r\n })\r\n\r\n function addAdditionsToOption(e: Event) {\r\n const _this = $(e.currentTarget);\r\n const inputType = $(_this).attr('type');\r\n const stepId = _this.data('step');\r\n const optionId = _this.data('option');\r\n const price = _this.data('price');\r\n const setup = _this.data('setup');\r\n const fees = _this.data('fees');\r\n const detailId = _this.data('detail');\r\n const additionTitle = _this.data('additiontitle');\r\n const detailOptions = selectedOptions.filter(function (selectedOption: any) { return selectedOption.stepId == stepId });\r\n\r\n createUpdateOrderArray(detailOptions[0]['addition'], {\r\n optionId: optionId,\r\n stepId: stepId,\r\n detailsId: detailId,\r\n price: price,\r\n setup: setup,\r\n fees: fees,\r\n title: additionTitle,\r\n amount: (inputType == 'text' ? (_this.val() == \"\" ? 0 : _this.val()) : (_this.prop('checked') ? 1 : 0))\r\n }, 'detailsId');\r\n \r\n console.log(selectedOptions);\r\n\r\n updateSummaryAfterDetails(monthSum, setupSum);\r\n }\r\n \r\n function updateSummary() {\r\n monthSum = selectedOptions.reduce(function(a: any, b: any){\r\n return a + parseFloat(b['price'].replace(',','.')) + parseFloat(b['fees'].replace(',','.'));\r\n }, 0);\r\n\r\n setupSum = selectedOptions.reduce(function(a: any, b: any){\r\n return a + parseFloat(b['setup'].replace(',','.'));\r\n }, 0);\r\n\r\n $('.summary-total div strong').text(monthSum.toFixed(2));\r\n $('.summary-setup-total div strong').text(setupSum.toFixed(2));\r\n $('.summary-total, .summary-setup-total').show();\r\n\r\n if($(`.step`).length == selectedOptions.length) {\r\n $('.btn-order').removeClass('disabled');\r\n }\r\n }\r\n\r\n function updateSummaryAfterDetails(monthSum: number, setupSum: number) {\r\n let totalMonth = 0;\r\n let totalSetup = 0;\r\n \r\n $.each(selectedOptions, function(i: number, value: any) {\r\n $.each(value.addition, function(ind: number, val: any) {\r\n totalMonth = totalMonth + (val.price * val.amount);\r\n\r\n if(val.setup == \"\" || val.amount == 0) {\r\n val.setup = 0;\r\n }\r\n\r\n totalSetup = totalSetup + (val.setup * val.amount);\r\n })\r\n })\r\n\r\n $('.summary-total div strong').text((totalMonth + monthSum).toFixed(2));\r\n $('.summary-setup-total div strong').text((totalSetup + setupSum).toFixed(2));\r\n }\r\n\r\n function checkForDependencies() {\r\n $('.step-option').removeClass('active');\r\n \r\n $('[data-required]').each((i: number, elem: HTMLElement, ) => {\r\n const requiredVal = $(elem).data('required');\r\n if(requiredVal != 0) {\r\n const detailOptions = selectedOptions.filter(function (selectedOption: any) { \r\n if(selectedOption.optionId == requiredVal) {\r\n $(elem).addClass('active');\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n function sendForm() {\r\n const wrapper = $('.app-order-form');\r\n const sxc = $2sxc(document.querySelector('.app-order-form'));\r\n let validForm = true;\r\n wrapper.find('.error').removeClass('error');\r\n\r\n wrapper.find('.required').each((i: number, elem: HTMLElement, ) => {\r\n const inpVal = $(elem).val().toString();\r\n if(inpVal == '') {\r\n validForm = false;\r\n }\r\n\r\n if($(elem).attr('type') == 'email' && !validEmail(inpVal)) {\r\n validForm = false;\r\n } \r\n \r\n if(!validForm) {\r\n $(elem).addClass('error');\r\n }\r\n })\r\n\r\n if(!$('input[name=\"Terms\"]').prop('checked')) {\r\n validForm = false;\r\n $('[for=\"Terms\"]').addClass('error')\r\n }\r\n \r\n if(!$('input[name=\"GDPR\"]').prop('checked')) {\r\n validForm = false;\r\n $('[for=\"GDPR\"]').addClass('error')\r\n }\r\n\r\n if($('input[name=Salutation]:checked').length != 1) {\r\n validForm = false;\r\n $('[for=\"Salutation_Mr\"], [for=\"Salutation_Mrs\"]').addClass('error')\r\n }\r\n\r\n if($('input[name=BillingType]:checked').length != 1) {\r\n validForm = false;\r\n $('[for=\"BillingType_12\"], [for=\"BillingType_24\"]').addClass('error')\r\n }\r\n\r\n if($('input[name=InvoceType]:checked').length != 1) {\r\n validForm = false;\r\n $('[for=\"InvoceType_Mail\"], [for=\"InvoceType_Post\"]').addClass('error')\r\n }\r\n\r\n if(validForm) {\r\n const ws = $('.app-order-form').data('webservice');\r\n collect(wrapper).then((data: any) => {\r\n sxc.webApi.post(ws, null, data, true)\r\n .success(() => {\r\n wrapper.hide();\r\n $('.app-order-footer').hide();\r\n $('.app-order-success').show();\r\n })\r\n .error(() => {\r\n \r\n });\r\n })\r\n } \r\n }\r\n\r\n function collect(wrapper: JQuery) {\r\n let data: any = {\r\n Order: JSON.stringify(selectedOptions),\r\n MonthSum: $('.summary-total div strong').text(),\r\n SetupSum: $('.summary-setup-total div strong').text()\r\n };\r\n const fields = wrapper.find(':input').not('button');\r\n const promises = fields.map((i, field) => add(i, field));\r\n \r\n function add(i: number, element: any) {\r\n element = $(element);\r\n // get the property name from special-attribut, name OR id\r\n const propName = element.attr('name') || element.attr('id');\r\n\r\n if (!propName)\r\n return;\r\n\r\n if (element.attr('type') && element.attr('type').toLowerCase() == 'radio') { // For radio fields get checked values\r\n if (element.is(':checked')) {\r\n data[propName] = element.val();\r\n }\r\n } else if (element.attr('type') && element.attr('type').toLowerCase() == 'checkbox') { // For radio fields get checked values\r\n const checkValue = element.is(':checked') ? \"True\" : \"False\";\r\n data[propName] = checkValue;\r\n } else { // For all standard fields, set value directly\r\n data[propName] = element.val() == 'empty' ? '' : element.val();\r\n }\r\n }\r\n\r\n return $.when.apply($, promises).then(() => {\r\n return data;\r\n });\r\n }\r\n\r\n\r\n // HELPER\r\n function createUpdateOrderArray(array: any, item: any, type: string) {\r\n let i: number;\r\n i = (type == 'stepId' ? array.findIndex((_item: any) => _item.stepId === item.stepId) : array.findIndex((_item: any) => _item.detailsId === item.detailsId));\r\n\r\n if (i > -1) {\r\n $(`.step:gt(${i})`).removeClass('selected');\r\n $(`.step:gt(${i})`).find('.selected-option').text('');\r\n $(`.step:gt(${i})`).find('.selected-option-price').hide();\r\n \r\n if(type == 'stepId') {\r\n array[i] = item;\r\n } else {\r\n array.splice(i, 1)\r\n array.push(item);\r\n }\r\n } else {\r\n array.push(item);\r\n } \r\n }\r\n\r\n function validEmail(email: string) {\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/;\r\n return re.test(email);\r\n };\r\n\r\n})\r\n"],"sourceRoot":""}