{"version":3,"sources":["webpack:///external \"jQuery\"","webpack:///./_frontend/public/pages/form/form.js","webpack:///./_frontend/public/pages/form/custom.scss","webpack:///./_frontend/public/modules/login-form/login-form.js","webpack:///./_frontend/public/modules/login-form/login-form.scss?abad","webpack:///./_frontend/public/modules/configurator/configurator-form.js","webpack:///./_frontend/public/modules/configurator/cart/carts-manager.js","webpack:///./_frontend/public/modules/configurator/elements/cart/side/side-cart.js","webpack:///./_frontend/public/modules/configurator/elements/cart/side/side-cart.scss?1080","webpack:///./_frontend/public/modules/configurator/elements/cart/side/side-cart-item.js","webpack:///./_frontend/public/modules/configurator/elements/cart/side/side-cart-item.scss?18d7","webpack:///./_frontend/public/modules/configurator/cart/carts-manager-item.js"],"names":["require","LoginForm","ConfiguratorForm","utils","$","document","ready","one","e","configurator","constructor","name","instantiator","elements","productFrame","stepsProgress","getProductName","key","productFrameConfigurator","fields","field","getNewVisible","templateItemRecipe","cartItemImage","getUiValue","originalTitle","$root","on","instancesData","getInstancesData","instancesDataAmount","getInstancesDataAmount","productNameInsideStepTitle","currentInstanceIndex","indexOf","currentInstanceId","$title","find","eq","html","timeout","updateProductName","subheading","forEach","clearTimeout","setTimeout","getKey","console","log","cartsManager","addFooterItem","renderFooterItems","window","mb2ls","$form","data","createMusterProduct","fieldsData","productFields","productAttributes","productFieldMuster","productFieldsNames","productFieldsMusterNames","materialProducts","concat","fieldName","undefined","Hersteller","getProductAttributes","rawValue","getFieldByTemplateId","cartItem","getCartsManagerItem","cartItemId","coupon","quantity","productField","includes","templateId","options","getActiveOptions","option","productName","getTitle","extend","value","getValue","uiValue","push","extractFiles","uploads","comment","expandMainProduct","products","synteticProducts","instanceId","product","cartManagerItem","summaryItems","visibleFieldsData","Material","materialsValues","split","materialsUiValues","materialValue","index","synteticProduct","submit","submitButton","toggleActionsOpportunity","getComplexData","getRedirectUrl","rest","response","redirectUrl","location","href","message","alert","formName","recipe","phpVars","forms","adapter","onSubmit","proxy","hasError","$wcLoginForm","nonce","length","appendTo","onRootHtmlInserted","args","that","$body","preventDefault","toggleActionsOppartunity","serializeObject","trigger","css","stripTags","allowed","toggleClass","module","exports","Configurator","CartsManager","parent","initialUpdate","initVirtualCartItemsFields","criticalCssArguments","destroy","closest","remove","complexData","SideCart","CartsManagerItem","media","footerItems","cartsManagerItems","carts","summaryCarts","holderCarts","virtualCartItemsFields","changeVirtualCartItemFieldTimeout","eId","generateEventId","sideCart","updateVirtualCartItemsFields","onStepsManagerSetActive","stepIndex","itemsCount","id","source","editable","active","toggleEditBtnVisibility","exclude","onChangeVirtualCartItemField","hasVirtualCartItemFields","createUpdateItem","removeItem","setFields","detouchField","getOption","imageId","getImageId","getMedia","val","toUpperCase","depOption","WC_Product_Id__c","getItemImage","getItemHeading","cartsManagerItem","getFirstEditableCartItem","onEdit","resetValue","onChange","off","item","number","currentId","updateHeadingTemplate","early","forId","toggleActive","updateHeadingsTemplates","detouchFields","title","footerItem","cart","setFooterHtml","Cart","SideCartItem","arguments","visible","$toggle","$toggleText","insertBefore","$content","toggle","CartItemComplex","$editBtn","$actions","stepsManager","setActive","$removeBtn","$heading","$img","$details","price","actual","regular","sale","cartItems","priceTimeout","priceable","isAdmin","heading","getPriceXhr","CartItem","getCartItemClass","renderPrice","earlier","earlierToggleActive","edit","excludeCartItem","quantityInput","renderValue","sourceCartItem","renderQuantity","updatePrice","$couponInput","onChangeField","getProduct","update","updateHeading","updateDetails","updateImage","getCartsManagerItemNumber","setHeading","isCartItemHidden","hiddenForPublicSummary","isHiddenForPublicSummary","getData","details","updateVisibleFieldsData","fieldData","uiName","setDetails","updateFieldsData","priceType","uniZwoProductId","getItemUniZwoProductId","hiddenAttributes","prepareHiddenAttributes","Hidden_Attributes_JSON__c","priceAdditionObjects","getPriceAdditionObjects","removePriceAdditionObjects","abort","changeTimeout","fieldToDetouch","filter","priceDisplay","setPrice","notice","setNoticeBoxesMessage","errorSourceKeys","isEnabledValidator","enableValidator","validatorAjaxErrors","isValid","setErrorBoxesMessage","src","getBlankImageSrc","setImage"],"mappings":"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","file":"public-page-form.js?hash=c7a5cc","sourcesContent":["module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 1\n// module chunks = 0 1 3 4 5 6","require('./custom.scss');\r\nconst LoginForm = require('public/modules/login-form/login-form.js');\r\nconst ConfiguratorForm = require('public/modules/configurator/configurator-form.js');\r\nconst utils = require('public/utils.js');\r\n\r\n$(document).ready(function ()\r\n{\r\n    //Custom code: could be different for each form\r\n    //TODO: move it to the child theme\r\n    $('body').one(\r\n        'mb2ls.configurator.inited',\r\n        /**\r\n         * @param e\r\n         * @param {ConfiguratorForm} configurator\r\n         */\r\n        function (e, configurator)\r\n        {\r\n            if (configurator.constructor.name !== 'ConfiguratorForm') return;\r\n\r\n            const instantiator = configurator.elements.instantiator;\r\n            const productFrame = configurator.elements.productFrame;\r\n            const stepsProgress = configurator.elements.stepsProgress;\r\n            if (!instantiator || !productFrame || !stepsProgress) return;\r\n\r\n            function getProductName()\r\n            {\r\n                for (let key in productFrame.productFrameConfigurator.fields)\r\n                {\r\n                    const field = productFrame.productFrameConfigurator.fields[key];\r\n                    if (!field.getNewVisible()) continue;\r\n\r\n                    if (field.templateItemRecipe.cartItemImage)\r\n                    {\r\n                        return field.getUiValue();\r\n                    }\r\n                }\r\n                return null;\r\n            }\r\n\r\n            let originalTitle = null;\r\n            productFrame.$root.on('mb2lsChangedProduct', function ()\r\n            {\r\n                const instancesData = instantiator.getInstancesData();\r\n                const instancesDataAmount = instantiator.getInstancesDataAmount();\r\n                const productNameInsideStepTitle = instancesDataAmount > 1;\r\n                const currentInstanceIndex = Object.keys(instancesData).indexOf(instantiator.currentInstanceId);\r\n                const $title = stepsProgress.$root.find('.mb2ls-conf-steps-progress__itemTitle').eq(1);\r\n                if (!originalTitle) originalTitle = $title.html();\r\n                let timeout = null;\r\n\r\n                function updateProductName()\r\n                {\r\n                    let subheading = productNameInsideStepTitle ? `Produkt ${currentInstanceIndex + 1}: ${getProductName()}` : null;\r\n                    $title.html(subheading ? `${originalTitle}<br>${subheading}` : originalTitle);\r\n                }\r\n\r\n                if (productNameInsideStepTitle)\r\n                {\r\n                    productFrame.productFrameConfigurator.fields.forEach(function (field)\r\n                    {\r\n                        field.$root.on('mb2lsChange', function ()\r\n                        {\r\n                            if (timeout) clearTimeout(timeout);\r\n                            timeout = setTimeout(function ()\r\n                            {\r\n                                updateProductName();\r\n                                timeout = null;\r\n                            }, 300);\r\n                        });\r\n                    });\r\n                }\r\n                updateProductName();\r\n            });\r\n        }\r\n    );\r\n\r\n    //Custom code: could be different for each form\r\n    //TODO: move it to the child theme\r\n    $('body').one(\r\n        'mb2ls.configurator.inited',\r\n        /**\r\n         * @param e\r\n         * @param {ConfiguratorForm} configurator\r\n         */\r\n        function (e, configurator)\r\n        {\r\n            if (configurator.constructor.name !== 'ConfiguratorForm') return;\r\n\r\n            for (let key in configurator.fields)\r\n            {\r\n                /**\r\n                 * @type Field\r\n                 */\r\n                const field = configurator.fields[key];\r\n                if (field.getKey() !== 'Termin') continue;\r\n\r\n                field.$root.on('mb2ls.calendly.eventScheduled', function ()\r\n                {\r\n                    console.log('mb2ls.calendly.eventScheduled');\r\n                    configurator.cartsManager.addFooterItem('Termin gebucht', 'ja');\r\n                    configurator.cartsManager.renderFooterItems();\r\n                });\r\n            }\r\n        }\r\n    );\r\n});\r\n\r\n\r\n$(document).ready(function ()\r\n{\r\n    //In use in a child theme (marked methods)\r\n    window.mb2ls.utils = utils;\r\n\r\n    const $form = $('.mb2ls-form').eq(0);\r\n    const name = $form.data('name');\r\n\r\n    function createMusterProduct(fieldsData)\r\n    {\r\n        const productFields = {};\r\n\r\n        let productAttributes = {};\r\n        /**\r\n         * @type {RadioOptions}\r\n         */\r\n        let productFieldMuster = null;\r\n        let productFieldsNames = [\r\n            'Hersteller',\r\n            'Marke',\r\n            'KFFMusterTyp',\r\n            'MusterMaterialTyp',\r\n        ];\r\n        const productFieldsMusterNames = [\r\n            'MBzwoHolzMuster',\r\n            'MBzwoLederMuster',\r\n            'MBzwoStoffMuster',\r\n            'MBzwoAndereMuster',\r\n            'TononMuster',\r\n            'TabandaMuster',\r\n            'KFFLederMuster',\r\n            'KFFStoffMuster'\r\n        ];\r\n        const materialProducts = [];\r\n        productFieldsNames = productFieldsNames.concat(productFieldsMusterNames);\r\n\r\n        //Split material product fields\r\n        for (let key in productFieldsNames)\r\n        {\r\n            const fieldName = productFieldsNames[key];\r\n            if (fieldsData.fields[fieldName] === undefined) continue;\r\n\r\n            productFields[fieldName] = fieldsData.fields[fieldName];\r\n            delete fieldsData.fields[fieldName];\r\n        }\r\n\r\n        if (productFields.Hersteller)\r\n        {\r\n            productAttributes = configurator.getProductAttributes(productFields.Hersteller.rawValue);\r\n            const field = configurator.getFieldByTemplateId('Hersteller');\r\n            const cartItem = configurator.cartsManager.getCartsManagerItem(field.templateItemRecipe.cartItemId);\r\n            if (cartItem)\r\n            {\r\n                productAttributes.coupon = cartItem.coupon;\r\n                productAttributes.quantity = cartItem.quantity;\r\n            } else\r\n            {\r\n                console.log(`CreateMusterProduct: can't get cartItem`);\r\n            }\r\n        }\r\n\r\n        for (let key in productFields)\r\n        {\r\n            const productField = productFields[key];\r\n            if (productFieldsMusterNames.includes(key))\r\n            {\r\n                productFieldMuster = configurator.getFieldByTemplateId(productField.templateId);\r\n                break;\r\n            }\r\n        }\r\n\r\n        if (productFieldMuster)\r\n        {\r\n            const options = productFieldMuster.getActiveOptions();\r\n            options.forEach(function (option)\r\n            {\r\n                productAttributes.productName = option.getTitle();\r\n                $.extend(\r\n                    true,\r\n                    productFields[productFieldMuster.getKey()],\r\n                    {value: option.getValue(), rawValue: option.getValue(true), uiValue: option.getUiValue()}\r\n                );\r\n                materialProducts.push({\r\n                    fields: $.extend(true, {}, productFields),\r\n                    productAttributes: $.extend(true, {}, productAttributes),\r\n                });\r\n            });\r\n        }\r\n        fieldsData.materialProducts = materialProducts;\r\n        return fieldsData;\r\n    }\r\n\r\n    function extractFiles(fieldsData)\r\n    {\r\n        if (fieldsData.fields['QuoteUpload'] !== undefined)\r\n        {\r\n            fieldsData.uploads = fieldsData.fields['QuoteUpload']['value'];\r\n        }\r\n        if (fieldsData.fields['QuoteComment'] !== undefined)\r\n        {\r\n            fieldsData.comment = fieldsData.fields['QuoteComment']['value'];\r\n        }\r\n        return fieldsData;\r\n    }\r\n\r\n    //If selected multiple materials, duplicate the product for each selected material\r\n    function expandMainProduct(fieldsData)\r\n    {\r\n        //In Muster Form fieldsData.products might doesn't exist...\r\n        if (typeof fieldsData.products !== 'object') fieldsData.products = [];\r\n\r\n        const synteticProducts = [];\r\n        for (let instanceId in fieldsData.products)\r\n        {\r\n            const product = fieldsData.products[instanceId];\r\n            const cartManagerItem = configurator.cartsManager.getCartsManagerItem(instanceId);\r\n            if (!cartManagerItem) continue;\r\n\r\n            product.summaryItems = cartManagerItem.visibleFieldsData;\r\n            product.productAttributes.quantity = cartManagerItem.quantity;\r\n            product.productAttributes.coupon = cartManagerItem.coupon;\r\n        }\r\n\r\n        for (let instanceId in fieldsData.products)\r\n        {\r\n            const product = fieldsData.products[instanceId];\r\n            if (!product.fields.Material) continue;\r\n\r\n            const materialsValues = utils.split(product.fields.Material.value, ';');\r\n            const materialsUiValues = utils.split(product.fields.Material.uiValue, ', ');\r\n            product.fields.Material.value = materialsValues[0];\r\n            product.fields.Material.uiValue = materialsUiValues[0];\r\n            materialsValues.forEach(function (materialValue, index)\r\n            {\r\n                //Skip the main product\r\n                if (index === 0) return true;\r\n\r\n                const synteticProduct = $.extend(true, {}, product);\r\n                synteticProduct.fields.Material.value = materialValue;\r\n                synteticProduct.fields.Material.uiValue = materialsUiValues[index];\r\n                synteticProducts.push(synteticProduct);\r\n            });\r\n        }\r\n        fieldsData.products = Object.values(fieldsData.products);\r\n        fieldsData.products = fieldsData.products.concat(synteticProducts);\r\n        return fieldsData;\r\n    }\r\n\r\n    /**\r\n     * @param submitButton {SubmitButton}\r\n     */\r\n    function submit(submitButton)\r\n    {\r\n        configurator.toggleActionsOpportunity(false);\r\n        let fieldsData = configurator.getComplexData();\r\n        fieldsData = createMusterProduct(fieldsData);\r\n        fieldsData = extractFiles(fieldsData);\r\n        fieldsData = expandMainProduct(fieldsData);\r\n\r\n        console.log('redirectUrl', submitButton.getRedirectUrl());\r\n        console.log('fieldsData', fieldsData);\r\n\r\n        utils.rest(\r\n            'POST',\r\n            'form/submit',\r\n            fieldsData,\r\n            function (response)\r\n            {\r\n                const redirectUrl = submitButton.getRedirectUrl();\r\n                if (redirectUrl) window.location.href = redirectUrl;\r\n            },\r\n            function (message)\r\n            {\r\n                alert(message);\r\n                configurator.toggleActionsOpportunity(true);\r\n            }\r\n        );\r\n    }\r\n\r\n    const configurator = new ConfiguratorForm({\r\n        formName: name,\r\n        recipe: window.mb2ls.phpVars.forms[name].adapter,\r\n        options: window.mb2ls.phpVars.options,\r\n        onSubmit: $.proxy(submit, this)\r\n    });\r\n    if (configurator.hasError) return;\r\n\r\n\r\n    const $wcLoginForm = $('form.woocommerce-form-login');\r\n    if (!window.mb2ls.phpVars.nonce && $wcLoginForm.length)\r\n    {\r\n        new LoginForm({\r\n            $root: $wcLoginForm,\r\n        });\r\n    }\r\n\r\n    configurator.$root.appendTo($form);\r\n    configurator.onRootHtmlInserted();\r\n});\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/pages/form/form.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./_frontend/public/pages/form/custom.scss\n// module id = 223\n// module chunks = 1","require('./login-form.scss');\r\nconst utils = require('public/utils.js');\r\n\r\nclass LoginForm {\r\n    constructor(args)\r\n    {\r\n        const that = this;\r\n        that.$root = args.$root;\r\n        that.$body = $('body');\r\n\r\n        that.$root.on('submit', function (e)\r\n        {\r\n            e.preventDefault();\r\n            that.toggleActionsOppartunity(false);\r\n            utils.rest(\r\n                'POST',\r\n                'form/login',\r\n                utils.serializeObject(that.$root),\r\n                function (response)\r\n                {\r\n                    window.mb2ls.phpVars.nonce = response.nonce;\r\n                    that.$body.trigger('mb2ls.loginForm.loggedIn', response);\r\n                    that.toggleActionsOppartunity(true);\r\n                    $('.wd-header-my-account').css('display', 'none');\r\n                    alert('Sie sind erfolgreich eingeloggt.');\r\n                },\r\n                function (message)\r\n                {\r\n                    alert(utils.stripTags(message));\r\n                    that.toggleActionsOppartunity(true);\r\n                }\r\n            );\r\n        });\r\n    }\r\n\r\n    toggleActionsOppartunity(allowed)\r\n    {\r\n        const that = this;\r\n        that.$root.toggleClass('mb2ls-login-form--actions-disallowed', !allowed);\r\n    }\r\n}\r\n\r\nmodule.exports = LoginForm;\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/modules/login-form/login-form.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./_frontend/public/modules/login-form/login-form.scss\n// module id = 225\n// module chunks = 1","const utils = require('public/utils.js');\r\nconst Configurator = require('./configurator.js');\r\nconst CartsManager = require('./cart/carts-manager.js');\r\n\r\nclass ConfiguratorForm extends Configurator {\r\n    constructor(args)\r\n    {\r\n        super(args);\r\n        const that = this;\r\n        if (that.hasError) return;\r\n\r\n        that.formName = args.formName;\r\n        if (!that.parent)\r\n        {\r\n            that.cartsManager = new CartsManager({\r\n                configurator: that\r\n            });\r\n        }\r\n        that.initialUpdate();\r\n        if (!that.parent)\r\n        {\r\n            that.cartsManager.initVirtualCartItemsFields();\r\n        }\r\n        that.$body.trigger('mb2ls.configurator.inited', that);\r\n        that.$root.trigger('mb2ls.inited', that);\r\n\r\n\r\n\r\n        // that.$body.on(\r\n        //     `mb2ls/test.ns1`,\r\n        //     () => that.test(...arguments)\r\n        // );\r\n        // that.$body.on(\r\n        //     `mb2ls/test.ns2`,\r\n        //     that.test\r\n        // );\r\n        //\r\n        // that.$body.on('click', function(){\r\n        //     that.$body.trigger(`mb2ls/test`);\r\n        // });\r\n\r\n        // that.$body.off(\r\n        //     `.ns2`,\r\n        // );\r\n    }\r\n\r\n    getCriticalHtmlArguments()\r\n    {\r\n        const that = this;\r\n        const criticalCssArguments = super.getCriticalHtmlArguments();\r\n        criticalCssArguments.formName = that.formName;\r\n        return criticalCssArguments;\r\n    }\r\n\r\n    // test(){\r\n    //     console.log('test', this, arguments);\r\n    // }\r\n\r\n    destroy()\r\n    {\r\n        const that = this;\r\n        if (that.cartsManager) that.cartsManager.destroy();\r\n        super.destroy();\r\n    }\r\n\r\n    removeCriticalHtml()\r\n    {\r\n        const that = this;\r\n        that.$root.closest('.mb2ls-form').find('.mb2ls-conf.mb2ls-critical-html').remove();\r\n    }\r\n\r\n    getComplexData()\r\n    {\r\n        const that = this;\r\n        const complexData = super.getComplexData();\r\n        complexData.formName = that.formName;\r\n        //complexData.productFrame = that.elements.productFrame ? that.elements.productFrame.getComplexData() : null;\r\n        return complexData;\r\n    }\r\n}\r\n\r\nmodule.exports = ConfiguratorForm;\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/modules/configurator/configurator-form.js","const utils = require('public/utils.js');\r\nconst SideCart = require('../elements/cart/side/side-cart.js');\r\nconst CartsManagerItem = require('./carts-manager-item.js');\r\n\r\n/**\r\n * @property {Configurator} configurator\r\n * @property {Array.<Cart>} carts\r\n * @property {Instantiator} instantiator\r\n * @property {Object.<Object>} footerItems\r\n * @property {Object.<CartsManagerItem>} cartsManagerItems\r\n */\r\nclass CartsManager {\r\n    constructor(args)\r\n    {\r\n        const that = this;\r\n        that.configurator = args.configurator;\r\n        that.media = that.configurator.recipe.media;\r\n        that.footerItems = {};\r\n        that.cartsManagerItems = {};\r\n\r\n        that.carts = [];\r\n        if (that.configurator.elements.summaryCarts) that.carts = that.carts.concat(that.configurator.elements.summaryCarts);\r\n        if (that.configurator.elements.holderCarts) that.carts = that.carts.concat(that.configurator.elements.holderCarts);\r\n\r\n        that.instantiator = that.configurator.elements.instantiator;\r\n        that.virtualCartItemsFields = {};\r\n        that.changeVirtualCartItemFieldTimeout = null;\r\n        that.eId = utils.generateEventId();\r\n\r\n        const sideCart = new SideCart({}, null, that.configurator);\r\n        that.carts.push(sideCart);\r\n        sideCart.$root.appendTo(that.configurator.$body);\r\n\r\n        //\"off\" is in \"destroy\"\r\n        that.configurator.$body.on(\r\n            `mb2ls.configurator.inited.${that.eId}`,\r\n            $.proxy(that.updateVirtualCartItemsFields, that)\r\n        );\r\n\r\n        //TODO: move the code to a child theme\r\n        //\"off\" is in \"destroy\"\r\n        that.configurator.$body.on(\r\n            `mb2ls.configurator.stepsManager.setActive.${that.eId}`,\r\n            $.proxy(that.onStepsManagerSetActive, that)\r\n        );\r\n    }\r\n\r\n    onStepsManagerSetActive(e, stepIndex)\r\n    {\r\n        const that = this;\r\n        const itemsCount = Object.values(that.cartsManagerItems).length;\r\n        for (let id in that.cartsManagerItems)\r\n        {\r\n            const cartManagerItem = that.cartsManagerItems[id];\r\n            if (cartManagerItem.source !== 'instantiator') continue;\r\n\r\n            const editable = (stepIndex > 1 && itemsCount == 1) || !cartManagerItem.active;\r\n            cartManagerItem.toggleEditBtnVisibility(editable);\r\n        }\r\n    }\r\n\r\n    getFirstEditableCartItem(exclude = null)\r\n    {\r\n        const that = this;\r\n        for (let key in that.cartsManagerItems)\r\n        {\r\n            if (exclude !== null && key === exclude) continue;\r\n\r\n            /**\r\n             * @type {CartsManagerItem}\r\n             */\r\n            const cartItem = that.cartsManagerItems[key];\r\n            if (cartItem.source === 'instantiator') return cartItem;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    /**\r\n     * @param id\r\n     * @return {CartsManagerItem}\r\n     */\r\n    getCartsManagerItem(id)\r\n    {\r\n        const that = this;\r\n        if (that.cartsManagerItems[id]) return that.cartsManagerItems[id];\r\n        return false;\r\n    }\r\n\r\n    initVirtualCartItemsFields()\r\n    {\r\n        const that = this;\r\n        that.configurator.fields.forEach(function (field)\r\n        {\r\n            const id = field.templateItemRecipe.cartItemId;\r\n            if (!id) return true;\r\n            if (!that.virtualCartItemsFields[id]) that.virtualCartItemsFields[id] = [];\r\n            that.virtualCartItemsFields[id].push(field);\r\n\r\n            //\"off\" deosn't required, because we remove the element\r\n            field.$root.on('mb2lsChange', $.proxy(that.onChangeVirtualCartItemField, that));\r\n        });\r\n    }\r\n\r\n    onChangeVirtualCartItemField()\r\n    {\r\n        const that = this;\r\n        if (that.changeVirtualCartItemFieldTimeout) clearTimeout(that.changeVirtualCartItemFieldTimeout);\r\n\r\n        //\"clearTimeout\" is in \"destroy\"\r\n        that.changeVirtualCartItemFieldTimeout = setTimeout(function ()\r\n        {\r\n            that.updateVirtualCartItemsFields();\r\n        }, 500);\r\n    }\r\n\r\n    updateVirtualCartItemsFields()\r\n    {\r\n        const that = this;\r\n        for (let id in that.virtualCartItemsFields)\r\n        {\r\n            const fields = that.virtualCartItemsFields[id];\r\n            const cartManagerItem = that.getCartsManagerItem(id);\r\n            const hasVirtualCartItemFields = that.hasVirtualCartItemFields(fields);\r\n            if (hasVirtualCartItemFields && !cartManagerItem) that.createUpdateItem(id, 'form', fields);\r\n            if (!hasVirtualCartItemFields && cartManagerItem) that.removeItem(cartManagerItem);\r\n        }\r\n    }\r\n\r\n    createUpdateItem(id, source, fields)\r\n    {\r\n        const that = this;\r\n        let cartManagerItem = that.cartsManagerItems[id];\r\n        if (!cartManagerItem)\r\n        {\r\n            cartManagerItem = new CartsManagerItem({\r\n                id: id,\r\n                cartsManager: that,\r\n                configurator: that.configurator,\r\n                carts: that.carts,\r\n                source: source\r\n            });\r\n            that.cartsManagerItems[id] = cartManagerItem;\r\n        }\r\n        cartManagerItem.setFields(fields);\r\n    }\r\n\r\n    /**\r\n     * @param fields {Array.<Field>}\r\n     */\r\n    detouchFieldsByFields(fields)\r\n    {\r\n        const that = this;\r\n        for (let id in that.cartsManagerItems)\r\n        {\r\n            const cartManagerItem = that.cartsManagerItems[id];\r\n\r\n            fields.forEach(function (field)\r\n            {\r\n                cartManagerItem.detouchField(field);\r\n            });\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @param fields {Array.<Field>}\r\n     * @return {null|String}\r\n     */\r\n    getItemImage(fields)\r\n    {\r\n        const that = this;\r\n        for (let key in fields)\r\n        {\r\n            const field = fields[key];\r\n            if (!field.getNewVisible()) continue;\r\n            if (!field.templateItemRecipe.cartItemImage) continue;\r\n\r\n            /**\r\n             * @type {RadioOptionCustom}\r\n             */\r\n            const option = field.getOption(field.getValue());\r\n            if (!option) continue;\r\n\r\n            const imageId = option.getImageId();\r\n            if (!imageId) continue;\r\n\r\n            return that.configurator.getMedia(imageId, 'mb2ls_300')[0];\r\n        }\r\n        return null;\r\n    }\r\n\r\n    /**\r\n     * @param fields {Array.<Field>}\r\n     * @return {null|String}\r\n     */\r\n    getItemHeading(fields)\r\n    {\r\n        const that = this;\r\n        for (let key in fields)\r\n        {\r\n            const field = fields[key];\r\n            if (!field.getNewVisible()) continue;\r\n            if (field.templateItemRecipe.cartItemImage)\r\n            {\r\n                const val = field.getUiValue();\r\n                if (val === null) return val;\r\n                return val.toUpperCase();\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n\r\n    /**\r\n     * @param fields {Array.<Field>}\r\n     * @return {null|String}\r\n     */\r\n    getItemUniZwoProductId(fields)\r\n    {\r\n        const that = this;\r\n        for (let key in fields)\r\n        {\r\n            const field = fields[key];\r\n            if (!field.getNewVisible()) continue;\r\n            if (!field.templateItemRecipe.cartItemImage) continue;\r\n\r\n            /**\r\n             * @type {RadioOptionCustom}\r\n             */\r\n            const option = field.getOption(field.getValue());\r\n            if (!option) continue;\r\n\r\n            return option.depOption.WC_Product_Id__c;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    hasVirtualCartItemFields(fields)\r\n    {\r\n        const that = this;\r\n        return that.getItemImage(fields) && that.getItemHeading(fields);\r\n    }\r\n\r\n    /**\r\n     * @param cartItem {CartsManagerItem}\r\n     */\r\n    removeItem(cartItem)\r\n    {\r\n        const that = this;\r\n\r\n        if (cartItem.source === 'instantiator')\r\n        {\r\n            const cartsManagerItem = that.getFirstEditableCartItem(cartItem.id);\r\n            if (cartsManagerItem) cartsManagerItem.onEdit();\r\n\r\n            /**\r\n             * @type {Instantiator}\r\n             */\r\n            const instantiator = that.configurator.elements.instantiator;\r\n            instantiator.remove(cartItem.id);\r\n\r\n        } else if (cartItem.source === 'form')\r\n        {\r\n            /**\r\n             * @type {Array.<Field>}\r\n             */\r\n            const fields = that.virtualCartItemsFields[cartItem.id];\r\n            fields.forEach(function (field)\r\n            {\r\n                field.resetValue();\r\n                field.onChange();\r\n            });\r\n        }\r\n\r\n        cartItem.destroy();\r\n        delete that.cartsManagerItems[cartItem.id];\r\n    }\r\n\r\n    destroy()\r\n    {\r\n        const that = this;\r\n        if (that.changeVirtualCartItemFieldTimeout) clearTimeout(that.changeVirtualCartItemFieldTimeout);\r\n        that.configurator.$body.off(`.${that.eId}`);\r\n        for (let key in that.cartsManagerItems)\r\n        {\r\n            const item = that.cartsManagerItems[key];\r\n            item.destroy();\r\n        }\r\n    }\r\n\r\n    getCartsManagerItemNumber(id)\r\n    {\r\n        const that = this;\r\n        let number = 1;\r\n\r\n        for (let currentId in that.cartsManagerItems)\r\n        {\r\n            if (currentId === id) return number;\r\n            number++;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    updateHeadingsTemplates()\r\n    {\r\n        const that = this;\r\n        for (let key in that.cartsManagerItems)\r\n        {\r\n            const cartManagerItem = that.cartsManagerItems[key];\r\n            cartManagerItem.updateHeadingTemplate();\r\n        }\r\n    }\r\n\r\n    setActive(id, early = false)\r\n    {\r\n        const that = this;\r\n        for (let forId in that.cartsManagerItems)\r\n        {\r\n            const cartsManagerItem = that.cartsManagerItems[forId];\r\n            cartsManagerItem.toggleActive(forId === id, early)\r\n        }\r\n        that.updateHeadingsTemplates();\r\n    }\r\n\r\n    detouchFieldsByInstance(id)\r\n    {\r\n        const that = this;\r\n        const cartManagerItem = that.getCartsManagerItem(id);\r\n        if (cartManagerItem) cartManagerItem.detouchFields();\r\n    }\r\n\r\n    addFooterItem(title, value, id = null)\r\n    {\r\n        const that = this;\r\n        if (!id) id = title;\r\n        that.footerItems[id] = {\r\n            title: title,\r\n            value: value\r\n        };\r\n    }\r\n\r\n    renderFooterItems()\r\n    {\r\n        const that = this;\r\n        let html = '';\r\n        for (let id in that.footerItems)\r\n        {\r\n            const footerItem = that.footerItems[id];\r\n            html += `<div>${footerItem.title}: ${footerItem.value}</div>`;\r\n        }\r\n        that.carts.forEach((cart) => cart.setFooterHtml(html));\r\n    }\r\n}\r\n\r\nmodule.exports = CartsManager;\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/modules/configurator/cart/carts-manager.js","require('./side-cart.scss');\r\n\r\nconst Cart = require('../cart.js');\r\nconst utils = require('public/utils.js');\r\nconst SideCartItem = require('./side-cart-item.js');\r\n\r\nclass SideCart extends Cart {\r\n    constructor()\r\n    {\r\n        super(...arguments);\r\n\r\n        const that = this;\r\n        that.visible = false;\r\n        that.$toggle = $('<div class=\"mb2ls-conf-cart__toggle\"></div>');\r\n        that.$toggleText = $('<div class=\"mb2ls-conf-cart__toggleText\"></div>');\r\n\r\n        $('<div class=\"mb2ls-conf-cart__toggle-arrow\">').appendTo(that.$toggle);\r\n        that.$toggleText.appendTo(that.$toggle);\r\n        that.$toggle.insertBefore(that.$content);\r\n\r\n        that.$toggle.on('click', function ()\r\n        {\r\n            that.toggle(!that.visible);\r\n        });\r\n        that.toggle(false);\r\n    }\r\n\r\n    getType()\r\n    {\r\n        return 'side';\r\n    }\r\n\r\n    toggle(visible)\r\n    {\r\n        const that = this;\r\n        that.$root.toggleClass('mb2ls-conf-cart--visible', visible);\r\n        that.$toggleText.html(visible ? 'EINKLAPPEN' : 'AUSWAHL ANSEHEN');\r\n        that.visible = visible;\r\n    }\r\n\r\n    getCartItemClass()\r\n    {\r\n        return SideCartItem;\r\n    }\r\n}\r\n\r\nmodule.exports = SideCart;\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/modules/configurator/elements/cart/side/side-cart.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./_frontend/public/modules/configurator/elements/cart/side/side-cart.scss\n// module id = 229\n// module chunks = 1","require('./side-cart-item.scss');\r\nconst utils = require('public/utils.js');\r\nconst CartItemComplex = require('../cart-item-complex.js');\r\n\r\nclass SideCartItem extends CartItemComplex {\r\n    constructor()\r\n    {\r\n        super(...arguments);\r\n\r\n        const that = this;\r\n        if (that.cartsManagerItem.source === 'instantiator')\r\n        {\r\n            that.$editBtn = $('<a class=\"mb2ls-conf-cart-item__edit-btn\" href=\"#\">').html('Edit Design →');\r\n            that.$editBtn.appendTo(that.$actions);\r\n            that.$editBtn.on('click', function (e)\r\n            {\r\n                e.preventDefault();\r\n                that.cartsManagerItem.onEdit();\r\n\r\n                //Go to the second step\r\n                that.configurator.stepsManager.setActive(1);\r\n            });\r\n        }\r\n        that.$removeBtn.appendTo(that.$root);\r\n        that.$heading.appendTo(that.$root);\r\n        that.$img.appendTo(that.$root);\r\n        that.$details.appendTo(that.$root);\r\n        that.$actions.appendTo(that.$root);\r\n    }\r\n\r\n    getType()\r\n    {\r\n        return 'side';\r\n    }\r\n}\r\n\r\nmodule.exports = SideCartItem;\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/modules/configurator/elements/cart/side/side-cart-item.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./_frontend/public/modules/configurator/elements/cart/side/side-cart-item.scss\n// module id = 231\n// module chunks = 1","const utils = require('public/utils.js');\r\n\r\n/**\r\n * @property {CartsManager} cartsManager\r\n * @property {Array.<Field>} fields\r\n * @property {Object.<Object>} visibleFieldsData\r\n * @property {Array.<CartItem>} cartItems\r\n * @property {Array.<Cart>} carts\r\n */\r\nclass CartsManagerItem {\r\n    constructor(args)\r\n    {\r\n        const that = this;\r\n        that.id = args.id;\r\n        that.cartsManager = args.cartsManager;\r\n        that.configurator = args.configurator;\r\n        that.fields = [];\r\n        that.active = false;\r\n        that.fieldsData = {};\r\n        that.price = {\r\n            actual: null,\r\n            regular: null,\r\n            sale: null,\r\n        };\r\n        that.cartItems = [];\r\n        that.carts = args.carts;\r\n        that.source = args.source;\r\n        that.priceTimeout = null;\r\n        that.quantity = 1;\r\n        that.coupon = null;\r\n        that.priceable = that.source === 'instantiator' && that.configurator.recipe.isAdmin;\r\n        that.product = null;\r\n        that.visibleFieldsData = {};\r\n        that.heading = null;\r\n        that.getPriceXhr = null;\r\n        that.eId = utils.generateEventId();\r\n\r\n        that.carts.forEach(function (cart)\r\n        {\r\n            const CartItem = cart.getCartItemClass();\r\n            if (that.source !== 'instantiator' && cart.constructor.name === 'HolderCart') return true;\r\n\r\n            /**\r\n             * @type CartItem\r\n             */\r\n            const cartItem = new CartItem({\r\n                cartsManagerItem: that,\r\n                cart: cart,\r\n                configurator: that.configurator,\r\n            });\r\n\r\n            that.cartItems.push(cartItem);\r\n            cartItem.$root.appendTo(cart.$content);\r\n        });\r\n        that.renderPrice();\r\n    }\r\n\r\n    toggleEditBtnVisibility(visible)\r\n    {\r\n        const that = this;\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            cartItem.toggleEditBtnVisibility(visible);\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param active {Boolean}\r\n     */\r\n    toggleActive(active, earlier = false)\r\n    {\r\n        const that = this;\r\n        that.active = active;\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            if (cartItem.earlierToggleActive && earlier) cartItem.toggleActive(active);\r\n            else cartItem.toggleActive(active);\r\n        });\r\n    }\r\n\r\n    onEdit()\r\n    {\r\n        const that = this;\r\n        if (that.source === 'instantiator') that.configurator.elements.instantiator.edit(that.id);\r\n    }\r\n\r\n    /**\r\n     * @param excludeCartItem {CartItem}\r\n     */\r\n    renderQuantity(excludeCartItem = null)\r\n    {\r\n        const that = this;\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            //Skip source of the event item\r\n            if (excludeCartItem !== null && excludeCartItem === cartItem) return true;\r\n            if (!cartItem.quantityInput) return true;\r\n\r\n            cartItem.quantityInput.value = that.quantity;\r\n            cartItem.quantityInput.renderValue();\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param sourceCartItem {CartItem}\r\n     */\r\n    onChangeQuantity(sourceCartItem)\r\n    {\r\n        const that = this;\r\n        if (!sourceCartItem.quantityInput) return;\r\n\r\n        that.quantity = sourceCartItem.quantityInput.value;\r\n        that.renderQuantity(sourceCartItem);\r\n        that.updatePrice();\r\n    }\r\n\r\n    /**\r\n     * @param sourceCartItem {CartItem}\r\n     */\r\n    onChangeCoupon(sourceCartItem)\r\n    {\r\n        const that = this;\r\n        that.coupon = sourceCartItem.$couponInput.val();\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            //Skip source of the event item\r\n            if (sourceCartItem === cartItem) return true;\r\n\r\n            cartItem.$couponInput.val(that.coupon);\r\n        });\r\n        that.updatePrice();\r\n    }\r\n\r\n    onRemove()\r\n    {\r\n        const that = this;\r\n        that.cartsManager.removeItem(that);\r\n    }\r\n\r\n    setFields(fields)\r\n    {\r\n        const that = this;\r\n        that.detouchFields();\r\n\r\n        that.fields = fields;\r\n        that.fields.forEach(function (field)\r\n        {\r\n            field.$root.on(`mb2lsChange.${that.eId}`, $.proxy(that.onChangeField, that));\r\n        });\r\n        that.product = that.getProduct();\r\n        that.update();\r\n    }\r\n\r\n    update()\r\n    {\r\n        const that = this;\r\n        that.updateHeading();\r\n        that.updateDetails();\r\n        that.updateImage();\r\n        that.updatePrice();\r\n    }\r\n\r\n    updateHeading()\r\n    {\r\n        const that = this;\r\n        that.heading = that.cartsManager.getItemHeading(that.fields);\r\n        that.updateHeadingTemplate();\r\n    }\r\n\r\n    updateHeadingTemplate()\r\n    {\r\n        const that = this;\r\n        const number = that.cartsManager.getCartsManagerItemNumber(that.id);\r\n\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            if (cartItem.constructor.name === 'HolderCartItem')\r\n            {\r\n                cartItem.setHeading(`Produkt ${number}` + (that.active ? `` : ` | ${that.heading}`));\r\n            } else\r\n            {\r\n                cartItem.setHeading(that.heading);\r\n            }\r\n        });\r\n    }\r\n\r\n    updateVisibleFieldsData()\r\n    {\r\n        const that = this;\r\n        that.visibleFieldsData = {};\r\n        that.fields.forEach(function (field)\r\n        {\r\n            if (!field.getNewVisible()) return true;\r\n            if (field.isCartItemHidden()) return true;\r\n\r\n            const uiValue = field.getUiValue();\r\n            if (uiValue === '') return true;\r\n\r\n            that.visibleFieldsData[field.getKey()] = $.extend(\r\n                true,\r\n                {hiddenForPublicSummary: field.isHiddenForPublicSummary()},\r\n                field.getData()\r\n            );\r\n        });\r\n    }\r\n\r\n    updateDetails()\r\n    {\r\n        const that = this;\r\n        let details = '';\r\n        that.updateVisibleFieldsData();\r\n\r\n        for (let key in that.visibleFieldsData)\r\n        {\r\n            const fieldData = that.visibleFieldsData[key];\r\n            if (fieldData.hiddenForPublicSummary) continue;\r\n\r\n            details += `<div>${fieldData.uiName}: ${fieldData.uiValue}</div>`;\r\n        }\r\n\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            cartItem.setDetails(details);\r\n        });\r\n    }\r\n\r\n    destroy()\r\n    {\r\n        const that = this;\r\n\r\n        that.detouchFields();\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            cartItem.remove();\r\n        });\r\n    }\r\n\r\n    getComplexData()\r\n    {\r\n        const that = this;\r\n        if (that.active) that.updateFieldsData();\r\n        const complexData = {\r\n            fields: that.fieldsData,\r\n            priceType: 'regular',\r\n            quantity: that.quantity,\r\n            uniZwoProductId: that.fields ? that.cartsManager.getItemUniZwoProductId(that.fields) : null,\r\n            hiddenAttributes:\r\n                that.product ? that.configurator.prepareHiddenAttributes(that.product.Hidden_Attributes_JSON__c) : {},\r\n        };\r\n        complexData.hiddenAttributes.priceAdditionObjects = {\r\n            value: that.configurator.getPriceAdditionObjects(that.fieldsData)\r\n        };\r\n        complexData.fields = that.configurator.removePriceAdditionObjects(complexData.fields);\r\n        return complexData;\r\n    }\r\n\r\n    updateFieldsData()\r\n    {\r\n        const that = this;\r\n        that.fields.forEach(function (field)\r\n        {\r\n            if (field.getNewVisible()) that.fieldsData[field.getKey()] = field.getData();\r\n        });\r\n    }\r\n\r\n    detouchFields()\r\n    {\r\n        const that = this;\r\n        that.getPriceXhr && that.getPriceXhr.abort();\r\n        if (that.priceTimeout) clearTimeout(that.priceTimeout);\r\n        if (that.changeTimeout) clearTimeout(that.changeTimeout);\r\n\r\n        that.fields.forEach(function (field)\r\n        {\r\n            that.detouchField(field);\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param toDetouch {Field}\r\n     */\r\n    detouchField(fieldToDetouch)\r\n    {\r\n        const that = this;\r\n        that.fields = that.fields.filter(function (field)\r\n        {\r\n            if (field === fieldToDetouch)\r\n            {\r\n                field.$root.off(`mb2lsChange.${that.eId}`);\r\n                return false;\r\n            }\r\n            return true;\r\n        });\r\n    }\r\n\r\n    getProduct()\r\n    {\r\n        const that = this;\r\n        for (let key in that.fields)\r\n        {\r\n            const field = that.fields[key];\r\n            if (!field.getNewVisible()) continue;\r\n            if (!field.templateItemRecipe.cartItemImage) continue;\r\n\r\n            /**\r\n             * @type {RadioOptionCustom}\r\n             */\r\n            const option = field.getOption(field.getValue());\r\n            if (!option) continue;\r\n            if (!option.depOption) continue;\r\n\r\n            return option.depOption;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    renderPrice()\r\n    {\r\n        const that = this;\r\n        if (!that.priceable) return;\r\n\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            if (!cartItem.priceDisplay) return;\r\n\r\n            cartItem.priceDisplay.setPrice(that.price.regular, that.price.sale);\r\n        });\r\n    }\r\n\r\n    updatePrice()\r\n    {\r\n        const that = this;\r\n        if (!that.priceable) return;\r\n\r\n        if (that.priceTimeout) clearTimeout(that.priceTimeout);\r\n\r\n        that.price = {\r\n            actual: null,\r\n            regular: null,\r\n            sale: null,\r\n        };\r\n        that.renderPrice();\r\n\r\n        //\"clearTimeout\" is in \"destroy\"\r\n        that.priceTimeout = setTimeout(function ()\r\n        {\r\n            that.getPriceXhr && that.getPriceXhr.abort();\r\n\r\n            //that.configurator.toggleActionsOpportunity(false);\r\n            that.getPriceXhr = utils.rest(\r\n                'POST',\r\n                'configurator/price',\r\n                //TODO: add support of field.isForcedUsingForPriceApi()\r\n                that.getComplexData(),\r\n                function (price)\r\n                {\r\n                    that.price = {\r\n                        actual: price.sale < price.regular ? price.sale : price.regular,\r\n                        regular: price.regular,\r\n                        sale: price.sale,\r\n                    };\r\n                    that.renderPrice();\r\n\r\n                    //that.configurator.toggleActionsOpportunity(true);\r\n                    if (price.notice) that.configurator.setNoticeBoxesMessage(price.notice);\r\n                },\r\n                function (message, response)\r\n                {\r\n                    if (response && response.errorSourceKeys)\r\n                    {\r\n                        response.errorSourceKeys.forEach(function (item)\r\n                        {\r\n                            const field = that.configurator.getFieldByTemplateId(item.key);\r\n                            if (!field) return true;\r\n\r\n                            if (!field.isEnabledValidator()) field.enableValidator();\r\n                            field.validatorAjaxErrors.push(item.message);\r\n                            field.isValid();\r\n                        });\r\n                    }\r\n                    that.configurator.setErrorBoxesMessage(message);\r\n                    //that.configurator.toggleActionsOpportunity(true);\r\n                }\r\n            );\r\n        }, 200);\r\n    }\r\n\r\n    onChangeField()\r\n    {\r\n        const that = this;\r\n\r\n        if (that.changeTimeout) clearTimeout(that.changeTimeout);\r\n\r\n        //\"clearTimeout\" is in \"destroy\"\r\n        that.changeTimeout = setTimeout(function ()\r\n        {\r\n            that.update();\r\n        }, 500);\r\n    }\r\n\r\n    updateImage()\r\n    {\r\n        const that = this;\r\n        let src = that.cartsManager.getItemImage(that.fields);\r\n        if (!src) src = utils.getBlankImageSrc();\r\n\r\n        that.cartItems.forEach(function (cartItem)\r\n        {\r\n            cartItem.setImage(src);\r\n        });\r\n    }\r\n}\r\n\r\nmodule.exports = CartsManagerItem;\n\n\n// WEBPACK FOOTER //\n// ./_frontend/public/modules/configurator/cart/carts-manager-item.js"],"sourceRoot":""}