{"version":3,"sources":["webpack:///./Flugger.Web/Scripts/Flugger/components/searchheader.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.array.map.js"],"names":["searchWidget","searchToggle","searchForm","searchFormInput","autoSuggestAPI","shoppingCart","shoppingCartLink","shoppingCartPopup","shoppingCartLabel","shoppingCartList","shoppingCartTotal","shoppingCartTotalWithVat","_jquery","_interopRequireDefault","require","_debounce","_eventsHub","obj","__esModule","default","addAutoCompleteSuggestions","$input","length","attr","cacheVal","$inputParent","parent","suggestionWrap","$","append","on","debounce","val","get","done","data","suggestions","ul","forEach","suggestion","li","find","e","preventDefault","siblings","trigger","html","clearSuggestionList","fail","error","console","log","off","exports","init","opts","options","extend","selectors","widget","toggle","form","formInput","hero","msg","modifiers","open","remove","toggleClass","hasClass","focus","window","innerWidth","addClass","concat","removeClass","hub","subscribe","event","shoppingCartUpdate","$msg","CartItems","map","product","imageUrl","ImageUrl","ProductName","VariantDisplayName","DisplayNameSlash","HasDiscountedPrice","LocalizedDiscountPriceWithCurrency","LocalizedPlacedPriceWithCurrency","Quantity","SalesUnit","join","text","LocalizedTotalWithCurrency","reduce","total","item","IsB2B","LocalizedTotalWithCurrencyWithVat","hasExceededQnt","filter","maxQnt","HasRelevantPromotions","PotentialPromotions","promotionTpl","IsFulfilled","PromotionTypeName","Description","replace","LocalizedRemainingAmountWithCurrency","Percentage","show","hide","setTimeout","$reduce","left","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","1","target","proto","forced","callbackfn","this","arguments","undefined","aFunction","toObject","IndexedObject","toLength","createMethod","IS_RIGHT","that","argumentsLength","memo","O","self","index","i","TypeError","module","right","$map","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT"],"mappings":"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","file":"34.9eb1605fc8f76e11e750.chunk.js","sourcesContent":["import $ from 'jquery';\r\nimport debounce from '../utility/debounce';\r\nimport hub from '../utility/events-hub';\r\n\r\nlet searchWidget;\r\nlet searchToggle;\r\nlet searchForm;\r\nlet searchFormInput;\r\nlet hasSearchHero;\r\nlet autoSuggestAPI;\r\nlet shoppingCart;\r\nlet shoppingCartLink;\r\nlet shoppingCartPopup;\r\nlet shoppingCartLabel;\r\nlet shoppingCartList;\r\nlet shoppingCartTotal;\r\nlet shoppingCartTotalWithVat;\r\n\r\nconst addAutoCompleteSuggestions = function ($input) {\r\n    if ($input.length < 1 || $input.attr('data-enableAutoComplete') == 'false') {\r\n        return;\r\n    }\r\n    $input.attr('autocomplete', 'off');\r\n\r\n    let cacheVal = '';\r\n\r\n    const $inputParent = $input.parent();\r\n    const suggestionWrap = $('<div class=\"js-ac-wrap\"></div>');\r\n    $inputParent.append(suggestionWrap);\r\n\r\n    function clearSuggestionList() {\r\n        suggestionWrap.html('');\r\n        $('body').off('click', clearSuggestionList);\r\n    }\r\n\r\n    function createSuggestionList(suggestions) {\r\n        const ul = $('<ul>');\r\n        suggestions.forEach(function (suggestion) {\r\n            const li = $('<li><a href=\"\">' + suggestion + '</a></li>');\r\n            li.find('a').on('click', function (e) {\r\n                e.preventDefault();\r\n                $input.val(suggestion);\r\n                $input.siblings('button').trigger('click');\r\n            });\r\n            ul.append(li);\r\n        });\r\n        suggestionWrap.html(ul);\r\n        $('body').on('click', clearSuggestionList);\r\n    }\r\n\r\n    function inputHandler() {\r\n        const val = $input.val();\r\n        if (val.length > 0 && val !== cacheVal) {\r\n            cacheVal = val;\r\n            $.get('/api/search/autocomplete/?q=' + val)\r\n                .done(function (data) {\r\n                    if (data.length && data.length > 0) {\r\n                        createSuggestionList(data);\r\n                    } else {\r\n                        clearSuggestionList();\r\n                    }\r\n                })\r\n                .fail(function (error) {\r\n                    console.log(error); // eslint-disable-line no-console\r\n                });\r\n        } else {\r\n            cacheVal = '';\r\n            clearSuggestionList();\r\n        }\r\n    }\r\n\r\n    $input.on('keyup', debounce(inputHandler, 300));\r\n\r\n    return {\r\n        clearSuggestionList\r\n    };\r\n};\r\n\r\nconst getCartHtml = function (items) {\r\n    return items.map((product) => {\r\n\r\n        return `\r\n            <div class=\"search-header-cart-item\">\r\n                <div class=\"search-header-cart-item-image\"><img src=\"${!product.imageUrl ? '/Assets/gfx/blank.gif' : product.ImageUrl}\"></div>\r\n                <div class=\"search-header-cart-item-info\">\r\n                    <div class=\"search-header-cart-item-title\">${product.ProductName}</div>\r\n                    <div class=\"search-header-cart-item-description\">${product.VariantDisplayName.DisplayNameSlash}</div>\r\n                </div>\r\n                <div class=\"search-header-cart-item-details\">\r\n                    <div class=\"search-header-cart-item-price\">${product.HasDiscountedPrice ? product.LocalizedDiscountPriceWithCurrency : product.LocalizedPlacedPriceWithCurrency}</div>\r\n                    <div class=\"search-header-cart-item-amount\">${product.Quantity} ${product.SalesUnit}</div>\r\n                </div>\r\n            </div>\r\n        `;\r\n    }).join('');\r\n};\r\n\r\nconst init = function (opts) {\r\n\r\n    const defaults = {\r\n        selectors: {\r\n            widget: '.js-search-header',\r\n            toggle: '.js-search-header-toggle',\r\n            form: '.js-search-header-form',\r\n            formInput: '.js-search-header-form-input',\r\n            shoppingCart: '.js-header-cart',\r\n            shoppingCartLink: '.js-header-cart-link',\r\n            shoppingCartPopup: '.js-header-cart-popup',\r\n            shoppingCartLabel: '.js-header-cart-label',\r\n            shoppingCartList: '.js-header-cart-list',\r\n            shoppingCartTotal: '.js-header-cart-total',\r\n            shoppingCartTotalWithVat: '.js-header-cart-total-with-vat',\r\n            hero: '.search-hero',\r\n            msg: '.js-header-cart-msg'\r\n        },\r\n        modifiers: {\r\n            widget: {\r\n                open: 'search--open'\r\n            }\r\n        }\r\n    };\r\n\r\n    const options = $.extend(true, defaults, opts);\r\n\r\n    searchWidget = $(options.selectors.widget);\r\n    if (searchWidget.length < 1) return;\r\n\r\n    hasSearchHero = $(options.selectors.hero).length > 0;\r\n    if (hasSearchHero) {\r\n        searchWidget.remove();\r\n        return;\r\n    }\r\n\r\n    searchToggle = $(options.selectors.toggle, searchWidget);\r\n    searchForm = $(options.selectors.form, searchWidget);\r\n    searchFormInput = $(options.selectors.formInput, searchForm);\r\n    shoppingCart = $(options.selectors.shoppingCart, searchWidget);\r\n    shoppingCartLink = $(options.selectors.shoppingCartLink, searchWidget);\r\n    shoppingCartPopup = $(options.selectors.shoppingCartPopup, searchWidget);\r\n    shoppingCartLabel = $(options.selectors.shoppingCartLabel, searchWidget);\r\n    shoppingCartList = $(options.selectors.shoppingCartList, searchWidget);\r\n    shoppingCartTotal = $(options.selectors.shoppingCartTotal, searchWidget);\r\n    shoppingCartTotalWithVat = $(options.selectors.shoppingCartTotalWithVat, searchWidget);\r\n\r\n    autoSuggestAPI = addAutoCompleteSuggestions(searchFormInput);\r\n\r\n    searchToggle.on('click', function (e) {\r\n        e.preventDefault();\r\n        searchWidget.toggleClass(options.modifiers.widget.open);\r\n        if (searchWidget.hasClass(options.modifiers.widget.open)) {\r\n            searchFormInput.focus();\r\n        } else {\r\n            autoSuggestAPI.clearSuggestionList();\r\n        }\r\n    });\r\n\r\n    shoppingCartLink.on('mouseover', () => {\r\n        if (window.innerWidth <= 570) return;\r\n\r\n        shoppingCart.addClass('open');\r\n        if (!searchWidget.hasClass('search--open')) {\r\n            searchWidget.addClass('search--collapsed');\r\n        }\r\n    });\r\n\r\n    shoppingCartLink.on('mouseleave', () => {\r\n        if (window.innerWidth <= 570) return;\r\n\r\n        if ($(`${options.selectors.shoppingCartPopup}:hover`).length !== 0) return;\r\n\r\n        shoppingCart.removeClass('open');\r\n        if (!searchWidget.hasClass('search--open')) {\r\n            searchWidget.removeClass('search--collapsed');\r\n        }\r\n    });\r\n\r\n    shoppingCartPopup.on('mouseleave', () => {\r\n        if (window.innerWidth <= 570) return;\r\n\r\n        shoppingCart.removeClass('open');\r\n        if (!searchWidget.hasClass('search--open')) {\r\n            searchWidget.removeClass('search--collapsed');\r\n        }\r\n    });\r\n\r\n    // On cart update\r\n\r\n    hub.subscribe(hub.event.shoppingCartUpdate, function (e, data) {\r\n        // console.log('hub.event.shoppingCartUpdate', data);\r\n        const $msg = $(options.selectors.msg);\r\n        shoppingCartList.html(getCartHtml(data.CartItems));\r\n        shoppingCartTotal.text(data.LocalizedTotalWithCurrency);\r\n        shoppingCartLabel.text(data.CartItems.reduce((total, item) => {\r\n            return total + item.Quantity;\r\n        }, 0));\r\n\r\n        if (data.IsB2B) {\r\n            shoppingCartTotalWithVat.text(data.LocalizedTotalWithCurrencyWithVat);\r\n            shoppingCartTotalWithVat.parent().removeClass('u-hidden');\r\n        }\r\n\r\n        const hasExceededQnt = data.CartItems.filter((product) => {\r\n            return product.Quantity === data.maxQnt;\r\n        });\r\n\r\n\r\n        if (data.HasRelevantPromotions) {\r\n            if (data.PotentialPromotions.length) {\r\n                let promotionTpl = '';\r\n\r\n                data.PotentialPromotions.forEach((item) => {\r\n                    if (!item.IsFulfilled) {\r\n                        if (item.PromotionTypeName === 'SpendAmountForFreeShipping') {\r\n                            promotionTpl += `\r\n                        <div class=\"alert alert-center alert-orange is-active\">\r\n                            ${item.Description && item.Description.replace('##AMOUNT##', item.LocalizedRemainingAmountWithCurrency).replace('##PERCENTAGE##', item.Percentage)}\r\n                        </div>`;\r\n\r\n                        } else {\r\n                            promotionTpl += `\r\n                        <div class=\"alert alert-center alert-green is-active\">\r\n                            ${item.Description && item.Description.replace('##AMOUNT##', item.LocalizedRemainingAmountWithCurrency).replace('##PERCENTAGE##', item.Percentage)}\r\n                        </div>`;\r\n                        }\r\n                    }\r\n                });\r\n\r\n                $('.js-header-cart-promotions').html(promotionTpl);\r\n            }\r\n        }\r\n\r\n        if (hasExceededQnt.length) {\r\n            $msg.show();\r\n        } else {\r\n            $msg.hide();\r\n        }\r\n\r\n        if (window.innerWidth < 570) return;\r\n        shoppingCart.addClass('open');\r\n        if (!searchWidget.hasClass('search--open')) {\r\n            searchWidget.addClass('search--collapsed');\r\n        }\r\n        setTimeout(function () {\r\n            shoppingCart.removeClass('open');\r\n            searchWidget.removeClass('search--collapsed');\r\n        }, 5000);\r\n    });\r\n};\r\n\r\nexport default {\r\n    init\r\n};\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aFunction(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = toLength(O.length);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n"],"sourceRoot":""}