{"version":3,"sources":["wishlist.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","e","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","return","_arrayLikeToArray","toString","slice","name","from","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","i","_toPrimitive","toPrimitive","String","Number","app","plugins","delegate","element","eventType","selector","listener","options","addEventListener","event","target","HTMLElement","SVGElement","closest","window","AndrewMartin","WishlistPlugin","this","btn","document","querySelector","addAllForm","shareBtn","bind","buildSkuArray","_this","itemAdded","getAttribute","preventDefault","classList","contains","sku","dataset","multiple","method","changeWishlist","data","payload","success","customer_logged_in","location","addAll","share","modularItems","querySelectorAll","map","item","frameSku","_this2","self","$","ajax","type","dispatchEvent","CustomEvent","bubbles","refreshAfterAjax","fail","console","log","action","_this3","url","concat","split","_this4","hasOwnProperty","Overlay","render","shareElement","innerHTML","html","modifiers","text","textValue","innerText","navigator","clipboard","writeText","countElements","_step","_iterator","wishlist_count","err"],"mappings":"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","file":"../../javascript/wishlist.js","sourcesContent":[";(function (app) {\n    app.plugins = app.plugins || {};\n\n    app.plugins.delegate = function delegate(\n        element,\n        eventType,\n        selector,\n        listener,\n        options\n    ) {\n        element.addEventListener(\n            eventType,\n            /**\n             * @param {Event} event\n             */\n            function callback(event) {\n                if (event.target instanceof HTMLElement || event.target instanceof SVGElement) {\n                    var closest = event.target.closest(selector);\n                    if (closest) {\n                        listener(event);\n                    }\n                }\n            },\n            options || null\n        );\n    };\n})(window.AndrewMartin = window.AndrewMartin || {});\n\n\n;(app => {\n    /**\n     * Base class for plugins that handle adding products to the wishlist\n     */\n    class WishlistPlugin {\n\n        constructor() {\n            this.btn = document.querySelector('.js-wishlist-action');\n            this.addAllForm = document.querySelector('.js-wishlist-add-all');\n            this.shareBtn = document.querySelector('.js-share-wishlist');\n\n            this.bind();\n            this.buildSkuArray();\n        }\n\n        bind() {\n            if (this.btn) {\n                this.btn.addEventListener(\"click\", (event) => {\n                    this.itemAdded = this.btn.getAttribute('data-in-wishlist');\n                    event.preventDefault();\n\n                    if (this.btn.classList.contains('product__wishlist--disabled')) {\n                        return false;\n                    }\n\n                    const sku = this.btn.dataset.sku;\n                    const multiple = this.btn.dataset.multiple || false;\n                    const method = this.btn.dataset.method || 'get';\n\n                    if (this.itemAdded) {\n                        this.changeWishlist(sku, method, 'remove', multiple).done((data) => {\n                            if (data.payload.success) {\n                                // this.btn.removeAttribute('data-in-wishlist');\n                            } else if (!data.payload.customer_logged_in) {\n                                window.location = '/wishlist';\n                            }\n                        });\n                    } else {\n                        this.changeWishlist(sku, method, 'add', multiple).done((data) => {\n                            if (data.payload.success) {\n                                // this.btn.setAttribute('data-in-wishlist', true);\n                            } else if (!data.payload.customer_logged_in) {\n                                window.location = '/wishlist';\n                            }\n                        });\n                    }\n                });\n            }\n\n            if (this.addAllForm) {\n                this.addAllForm.addEventListener(\"submit\", (event) => {\n                    event.preventDefault();\n                    this.addAll();\n                });\n            }\n\n            if (this.shareBtn) {\n                this.shareBtn.addEventListener(\"click\", (event) => {\n                    event.preventDefault();\n                    this.share();\n                });\n            }\n        }\n\n        buildSkuArray() {\n            this.modularItems = document.querySelectorAll('.js-piece-input');\n\n            if (!this.modularItems.length) {\n                return;\n            }\n\n            const skus = Array.from(this.modularItems).map((item) =>\n                item.dataset.frameSku\n            );\n\n            return skus;\n        }\n\n        addAll() {\n            var self = this;\n\n            $.ajax('/wishlist/add-all', {\n                type: 'get'\n            }).done(data => {\n                // open flyout basket\n                self.addAllForm.dispatchEvent(new CustomEvent('ecom.item.added', {\n                    bubbles: true\n                }));\n\n                this.refreshAfterAjax(data);\n            }).fail(data => {\n                console.log(data);\n            });\n        }\n\n        changeWishlist(sku, method, action, multiple) {\n            let url = `/wishlist/${action}`;\n            let data = {};\n            if (!multiple) {\n                url += `/${sku}`;\n            } else {\n                data = {'sku': sku.split(\",\")};\n            }\n\n            return $.ajax(url, {\n                type: method,\n                data: data\n            }).done(data => {\n                this.refreshAfterAjax(data);\n            }).fail(data => {\n                console.log(data);\n            });\n        }\n\n        share() {\n            $.ajax('/wishlist/share', {\n                type: 'get'\n            }).done(data => {\n                if (data.payload.hasOwnProperty('shared')) {\n                    const shareElement = document.querySelectorAll('.js-wishlist-popup');\n                    Overlay.render(function (shareElement) {\n                        shareElement.innerHTML = data.payload.html;\n                    }, {modifiers: ['mobile-takeover']});\n\n                    const text = document.querySelector('[data-copy-text]');\n                    const btn = document.querySelector('.js-copy-text');\n\n                    if (!text || !btn) return;\n\n                    const textValue = text.innerText;\n\n                    btn.addEventListener('click', function(e) {\n                        e.preventDefault();\n                        navigator.clipboard.writeText(textValue);\n                        this.querySelector('span').innerText = 'copied';\n                    })\n                }\n\n                this.refreshAfterAjax(data);\n            }).fail(data => {\n                console.log(data);\n            });\n        }\n\n        refreshAfterAjax(data) {\n            const countElements = document.querySelectorAll('.js-wishlist-count');\n\n            if (!data.hasOwnProperty('payload')) {\n                return;\n            }\n\n            if (data.payload.hasOwnProperty('wishlist_count')) {\n                for (const el of countElements) {\n                    el.innerText = data.payload.wishlist_count;\n                }\n            }\n        }\n    }\n\n    app.WishlistPlugin = WishlistPlugin;\n\n})(window.AndrewMartin = window.AndrewMartin || {});\n\n\nnew AndrewMartin.WishlistPlugin;\n"],"sourceRoot":"../../../../resources/javascript"}