{"version":3,"file":"js/splits/storefront.js","sources":["webpack:///./org_colony/cartridge/js/pages/storefront.js"],"sourcesContent":["const util = require('../util');\nconst dialog = require('../dialog');\nconst validator = require('../validator');\n\n/**\n * @private\n * @function\n * @description Initializes the change account and change plan dialog forms\n */\nfunction initializeInstallmentsDialog() {\n    validator.init();\n    // If planCodes returned in html, store them in localStorage\n    const planCodesResponse = $('#installmentsDgPlanCodesResponse');\n    if (planCodesResponse.val()) {\n        localStorage.setItem('planCodes', planCodesResponse.val());\n    }\n\n    $('.cancel').click((e) => {\n        e.preventDefault();\n        dialog.close();\n    });\n\n    const $installmentsDg = $('#InstallmentsDialog');\n    const $ajaxBtn = $installmentsDg.find('.button.ajaxHandled, a.ajaxHandled');\n    $($ajaxBtn).on('click', (event) => {\n        event.preventDefault();\n        const options = {\n            url: util.ajaxUrl($(event.currentTarget).attr('href')),\n        };\n        $.ajax(options).done((data) => {\n            if (typeof data === 'string') {\n                dialog.$container.html(data);\n                initializeInstallmentsDialog();\n            } else {\n                dialog.$container.html(`<h1>${Resources.SERVER_ERROR}</h1>`);\n            }\n        });\n    });\n\n    const $submit = $installmentsDg.find('button[value=\"submit\"]');\n    $($submit).on('click', (event) => {\n        const $triggeredSubmit = $(event.currentTarget);\n        const $triggeredForm = $triggeredSubmit.parents('form');\n        if (!$triggeredForm.valid()) {\n            return;\n        }\n        event.preventDefault();\n        let data = $triggeredForm.serialize();\n        // add form action to data\n        data += `&${$triggeredSubmit.attr('name')}=`;\n        // make sure the server knows this is an ajax request\n        if (data.indexOf('ajax') === -1) {\n            data += '&format=ajax';\n        }\n        $.ajax({\n            type: 'POST',\n            url: $triggeredForm.attr('action'),\n            data,\n            success(response) {\n                if (typeof response === 'object' && typeof response.planCodes === 'string') {\n                    // Store planCodes in localStorage so that they are available while not authenticated\n                    localStorage.setItem('planCodes', response.planCodes);\n                } else if (typeof response === 'string') {\n                    dialog.$container.html(response);\n                    initializeInstallmentsDialog();\n                }\n            },\n            failure() {\n                dialog.$container.html(`<h1>${Resources.SERVER_ERROR}</h1>`);\n            },\n        });\n    });\n}\n\nmodule.exports = {\n    init() {\n        if ($('.installments-dialog').length) {\n            setTimeout(() => {\n                const planCodes = String(localStorage.getItem('planCodes'));\n                const installationsDialogIterator = parseInt(localStorage.getItem('installationsDialogIterator'), 10) || 0;\n                const installmentsDgLink = $('.installments-dialog');\n                const options = {\n                    url: util.appendParamToURL(util.ajaxUrl(installmentsDgLink.attr('href')), 'planCodes', planCodes),\n                };\n                $.ajax(options).done((data) => {\n                    if (typeof data === 'object' && typeof data.planCodes === 'string') {\n                        // Store planCodes in localStorage so that they are available while not authenticated\n                        if (data.planCodes.length > 2) {\n                            localStorage.setItem('planCodes', data.planCodes);\n                        }\n                    } else if (installationsDialogIterator < 5) {\n                        // If the dialog has been displayed 5 times ever, skip it so as not to spam\n                        localStorage.setItem('installationsDialogIterator', installationsDialogIterator + 1);\n                        dialog.create({\n                            target: $(`#${installmentsDgLink.data('dialog')}`),\n                            options: {\n                                title: installmentsDgLink.data('title'),\n                                width: installmentsDgLink.data('width'),\n                                draggable: false,\n                                open: initializeInstallmentsDialog,\n                            },\n                        });\n                        dialog.openWithContent({\n                            content: data,\n                        });\n                    }\n                });\n            }, 3000);\n        }\n\n        $('.recommendations-container .tiles-container').slick({\n            speed: 300,\n            dots: false,\n            arrows: true,\n            slide: '.grid-tile',\n            slidesToShow: 4,\n            slidesToScroll: 1,\n            responsive: [\n                {\n                    breakpoint: util.getViewports('md'),\n                    settings: {\n                        slidesToShow: 2,\n                    },\n                },\n                {\n                    breakpoint: 690,\n                    settings: {\n                        slidesToShow: 1,\n                    },\n                },\n            ],\n        });\n        util.initDynamicCarousel('[id^=\"cq_recomm_slot\"]', '.recommendations-container .tiles-container', 0);\n    },\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;A","sourceRoot":""}