{"version":3,"file":"global.js","sources":["../../resources/javascript/components/offline.js","../../resources/javascript/components/usersearch.js","../../vendor/d3r/core/resources/javascript/d3r.js","../../resources/javascript/plugins/jquery.hotkeys.js","../../resources/javascript/global.js"],"sourcesContent":["// Set the Offline check options\nOffline.options = {\n    checkOnLoad: true,\n    interceptRequests: false,\n    requests: false,\n    checks: {\n        image: {\n            url: 'https://www.monicavinader.com/images/small-arrow.gif?_=' + Date.now()\n        },\n        active: 'image'\n    }\n};\n\nOffline.on('checking', function() {\n    Offline.options.checks.image.url = 'https://www.monicavinader.com/images/small-arrow.gif?_=' + Date.now()\n});\n\n// Need to fire a check request after an XHR to ensure we aren't setting state 'up' by accident on local requests\nOffline.check();\n\nfunction updateOnlineElements() {\n    // TODO review / update this\n    var down = Offline.state === 'down';\n    var $offlineMsg = $('.toast--offline-message');\n    if (down) {\n        $('.content-split-main').append($offlineMsg);\n        $offlineMsg.show();\n    } else {\n        $offlineMsg.hide();\n    }\n\n    $(document.body).toggleClass('online', !down);\n    $(document.body).toggleClass('offline', down);\n}\n\nOffline.on('up', updateOnlineElements);\nOffline.on('down', updateOnlineElements);\n","(function(){\n    var tabs = $('.user-search-tabs');\n\n    tabs.find('li').on('click', function(){\n        var self = $(this);\n        if (self.hasClass('active')) {\n            return;\n        }\n\n        tabs.find('li').removeClass('active');\n        self.addClass('active');\n\n        $('.user-search-tab--active').removeClass('user-search-tab--active');\n        $( self.data('target') ).addClass('user-search-tab--active');\n    });\n\n    $('#search-filter').on('keyup', function(){\n        var self = $(this);\n\n        $('.user-search-tab--active .user')\n            .show()\n            .filter(function(){\n                return !$(this).find('p').contents().get(0).nodeValue.toLowerCase().includes(self.val().toLowerCase());\n            })\n            .hide();\n    });\n\n    $(document).on('click', '.user', function(){\n        if ($(this).data('href')) {\n            window.location = $(this).data('href');\n            return;\n        }\n\n        alert(\n            $(this).find('p').contents().get(0).nodeValue\n        );\n    })\n})();\n","/*\n * Copyright 2014 D3R Ltd\n * http://d3r.com\n *\n * D3R Standard Javascript\n *\n * You'll want at least:\n\n    .js .d3r-show,\n    .js .d3r-hide {\n        cursor: pointer;\n    }\n    .js .d3r-hidden {\n        display: none;\n    }\n    .js .d3r-shown {\n        display: block;\n    }\n    .d3r-chooser {\n\n    }\n        .d3r-chooser-option,\n        .d3r-multichooser-option {\n            display: none;\n        }\n *\n */\n\n// hidey showey\n$(document).on('click', '.d3r-show, .d3r-hide', function(e) {\n    var $this = $(this),\n        $target;\n    if ($this.is('a')) e.preventDefault();\n    if (!!$this.data('target')) {\n        $target = $('#'+$this.data('target'));\n    } else if (!!$this.attr('href') && \"#\" == $this.attr('href')[0]) {\n        $target = $($this.attr('href'));\n    }\n    if ($target.length) {\n        var hide = $this.hasClass('d3r-hide');\n        $target[hide ? 'toggleClass' : 'addClass']('d3r-shown');\n        $this[hide ? 'toggleClass' : 'addClass']('d3r-active');\n    }\n    if ($target.hasClass('d3r-shown') && $this.hasClass('d3r-autoclose')) {\n        var autoclose = function(e) {\n            if (!$.contains($target[0], e.target)) {\n                if ($target.hasClass('d3r-shown')) {\n                    e.preventDefault();\n                    $target.removeClass('d3r-shown');\n                    $this.removeClass('d3r-active');\n                }\n                $(document).off('click', autoclose);\n            }\n        };\n        $(document).on('click', autoclose);\n    }\n});\n// redirect from dropdowns\n$(document).on('change', 'select.d3r-redirector', function(e) {\n    window.location.assign($(this).val());\n});\n// display things based on dropdowns\n$(document).on('change', 'select.d3r-chooser', function(e) {\n    var $this = $(this),\n        $options = $('.d3r-chooser-option').filter('[data-chooser=\"'+$this.attr('id')+'\"]');\n    $options.removeClass('d3r-shown');\n\n    var selectors = ['[data-chooservalue=\"' + $this.val() + '\"]'];\n\n    if ($this.val()) {\n        selectors.push('#' + $this.val());\n    }\n\n    $options.filter(selectors.join(',')).addClass('d3r-shown');\n});\n$(document).on('change', 'select.d3r-multichooser', function(e) {\n    var $this = $(this),\n        $options = $('.d3r-multichooser-option').filter('[data-multichooser=\"'+$this.attr('id')+'\"]'),\n        $option = $('option:selected', this);\n    $options.removeClass('d3r-shown');\n    $.each($option.data('values').split(' '), function(index, val) {\n        var selectors = ['[data-chooservalue=\"' + val + '\"]'];\n\n        if (val) {\n            selectors.push('#' + val);\n        }\n\n        $options.filter(selectors.join(',')).addClass('d3r-shown');\n    });\n});\n$(document).on('change', 'input[type=\"radio\"].d3r-chooser', function(e) {\n    var $this = $(this),\n        $options = $('.d3r-chooser-option').filter('[data-chooser=\"'+$this.attr('name')+'\"]');\n    $options.removeClass('d3r-shown');\n\n    if ($this.is(':checked')) {\n        var selectors = ['[data-chooservalue=\"' + $this.val() + '\"]'];\n\n        if ($this.val()) {\n            selectors.push('#' + $this.val());\n        }\n\n        $options.filter(selectors.join(',')).addClass('d3r-shown');\n    }\n});\n\n$('input[type=\"radio\"].d3r-chooser:checked').trigger('change');\n\n$(document).on('click', '.d3r-submit', function(e) {\n    var $this = $(this);\n\n    // If the form is invalid, don't disable the button.\n    if ($this.closest('form') &&\n        !$this.closest('form')[0].checkValidity()) {\n        return;\n    }\n    // The timeout is to allow this submission to proceed. Nasty I know, sorry.\n    if ($this.hasClass('d3r-disabled')) {\n        e.preventDefault();\n    }\n    $this.addClass('d3r-disabled');\n    if (!$this.is('a')) {\n        setTimeout(function() {\n            $this.prop('disabled', true);\n        }, 0);\n    }\n});\n$(document).on('click', '.d3r-confirm', function(e) {\n    var $this = $(this),\n        message = 'Are you sure?';\n    if (!!$this.data('confirm')) message = $this.data('confirm');\n    if (!window.confirm(message)) e.preventDefault();\n});\n$(document).on('click', '.d3r-scrollto', function(e) {\n    var $this = $(this),\n        $target;\n    if (!!$this.data('target')) {\n        $target = $('#'+$this.data('target'));\n    } else if (!!$this.attr('href') && \"#\" == $this.attr('href').replace(window.location.pathname,\"\")[0]) {\n        $target = $($this.attr('href').replace(window.location.pathname,\"\"));\n    }\n    if ($target.length) {\n        var hash = $target.attr(\"id\");\n        $target.removeAttr(\"id\");\n        $(\"html,body\").animate({\n            scrollTop: $target.offset().top\n        }, 500, function() {\n            $target.attr(\"id\", hash);\n        });\n    }\n});\n$(document).on('click', '.d3r-popup', function(e) {\n    e.preventDefault();\n    var $this = $(this),\n        url = $this.attr('href'),\n        width = 600,\n        height = 300,\n        target = 'popup';\n    if (!!$this.data('width')) width = $this.data('width');\n    if (!!$this.data('height')) height = $this.data('height');\n    if (!!$this.attr('target')) target = $this.attr('target');\n\n    var newwindow = window.open(url, target ,'height='+height+',width='+width);\n    if (window.focus) newwindow.focus();\n});\n","/*jslint browser: true*/\n/*jslint jquery: true*/\n\n/*\n * jQuery Hotkeys Plugin\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n *\n * Based upon the plugin by Tzury Bar Yochay:\n * https://github.com/tzuryby/jquery.hotkeys\n *\n * Original idea by:\n * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/\n */\n\n/*\n * One small change is: now keys are passed by object { keys: '...' }\n * Might be useful, when you want to pass some other data to your handler\n */\n\n(function(jQuery) {\n\n  jQuery.hotkeys = {\n    version: \"0.2.0\",\n\n    specialKeys: {\n      8: \"backspace\",\n      9: \"tab\",\n      10: \"return\",\n      13: \"return\",\n      16: \"shift\",\n      17: \"ctrl\",\n      18: \"alt\",\n      19: \"pause\",\n      20: \"capslock\",\n      27: \"esc\",\n      32: \"space\",\n      33: \"pageup\",\n      34: \"pagedown\",\n      35: \"end\",\n      36: \"home\",\n      37: \"left\",\n      38: \"up\",\n      39: \"right\",\n      40: \"down\",\n      45: \"insert\",\n      46: \"del\",\n      59: \";\",\n      61: \"=\",\n      96: \"0\",\n      97: \"1\",\n      98: \"2\",\n      99: \"3\",\n      100: \"4\",\n      101: \"5\",\n      102: \"6\",\n      103: \"7\",\n      104: \"8\",\n      105: \"9\",\n      106: \"*\",\n      107: \"+\",\n      109: \"-\",\n      110: \".\",\n      111: \"/\",\n      112: \"f1\",\n      113: \"f2\",\n      114: \"f3\",\n      115: \"f4\",\n      116: \"f5\",\n      117: \"f6\",\n      118: \"f7\",\n      119: \"f8\",\n      120: \"f9\",\n      121: \"f10\",\n      122: \"f11\",\n      123: \"f12\",\n      144: \"numlock\",\n      145: \"scroll\",\n      173: \"-\",\n      186: \";\",\n      187: \"=\",\n      188: \",\",\n      189: \"-\",\n      190: \".\",\n      191: \"/\",\n      192: \"`\",\n      219: \"[\",\n      220: \"\\\\\",\n      221: \"]\",\n      222: \"'\"\n    },\n\n    shiftNums: {\n      \"`\": \"~\",\n      \"1\": \"!\",\n      \"2\": \"@\",\n      \"3\": \"#\",\n      \"4\": \"$\",\n      \"5\": \"%\",\n      \"6\": \"^\",\n      \"7\": \"&\",\n      \"8\": \"*\",\n      \"9\": \"(\",\n      \"0\": \")\",\n      \"-\": \"_\",\n      \"=\": \"+\",\n      \";\": \": \",\n      \"'\": \"\\\"\",\n      \",\": \"<\",\n      \".\": \">\",\n      \"/\": \"?\",\n      \"\\\\\": \"|\"\n    },\n\n    // excludes: button, checkbox, file, hidden, image, password, radio, reset, search, submit, url\n    textAcceptingInputTypes: [\n      \"text\", \"password\", \"number\", \"email\", \"url\", \"range\", \"date\", \"month\", \"week\", \"time\", \"datetime\",\n      \"datetime-local\", \"search\", \"color\", \"tel\"],\n\n    // default input types not to bind to unless bound directly\n    textInputTypes: /textarea|input|select/i,\n\n    options: {\n      filterInputAcceptingElements: true,\n      filterTextInputs: true,\n      filterContentEditable: true\n    }\n  };\n\n  function keyHandler(handleObj) {\n    if (typeof handleObj.data === \"string\") {\n      handleObj.data = {\n        keys: handleObj.data\n      };\n    }\n\n    // Only care when a possible input has been specified\n    if (!handleObj.data || !handleObj.data.keys || typeof handleObj.data.keys !== \"string\") {\n      return;\n    }\n\n    var origHandler = handleObj.handler,\n      keys = handleObj.data.keys.toLowerCase().split(\" \");\n\n    handleObj.handler = function(event) {\n      //      Don't fire in text-accepting inputs that we didn't directly bind to\n      if (this !== event.target &&\n        (jQuery.hotkeys.options.filterInputAcceptingElements &&\n          jQuery.hotkeys.textInputTypes.test(event.target.nodeName) ||\n          (jQuery.hotkeys.options.filterContentEditable && jQuery(event.target).attr('contenteditable')) ||\n          (jQuery.hotkeys.options.filterTextInputs &&\n            jQuery.inArray(event.target.type, jQuery.hotkeys.textAcceptingInputTypes) > -1))) {\n        return;\n      }\n\n      var special = event.type !== \"keypress\" && jQuery.hotkeys.specialKeys[event.which],\n        character = String.fromCharCode(event.which).toLowerCase(),\n        modif = \"\",\n        possible = {};\n\n      jQuery.each([\"alt\", \"ctrl\", \"shift\"], function(index, specialKey) {\n\n        if (event[specialKey + 'Key'] && special !== specialKey) {\n          modif += specialKey + '+';\n        }\n      });\n\n      // metaKey is triggered off ctrlKey erronously\n      if (event.metaKey && !event.ctrlKey && special !== \"meta\") {\n        modif += \"meta+\";\n      }\n\n      if (event.metaKey && special !== \"meta\" && modif.indexOf(\"alt+ctrl+shift+\") > -1) {\n        modif = modif.replace(\"alt+ctrl+shift+\", \"hyper+\");\n      }\n\n      if (special) {\n        possible[modif + special] = true;\n      }\n      else {\n        possible[modif + character] = true;\n        possible[modif + jQuery.hotkeys.shiftNums[character]] = true;\n\n        // \"$\" can be triggered as \"Shift+4\" or \"Shift+$\" or just \"$\"\n        if (modif === \"shift+\") {\n          possible[jQuery.hotkeys.shiftNums[character]] = true;\n        }\n      }\n\n      for (var i = 0, l = keys.length; i < l; i++) {\n        if (possible[keys[i]]) {\n          return origHandler.apply(this, arguments);\n        }\n      }\n    };\n  }\n\n  jQuery.each([\"keydown\", \"keyup\", \"keypress\"], function() {\n    jQuery.event.special[this] = {\n      add: keyHandler\n    };\n  });\n\n})(jQuery || this.jQuery || window.jQuery);\n","import '../../vendor/d3r/core/resources/javascript/d3r';\n\nimport './plugins/check-replace';\nimport './plugins/jquery.hotkeys';\nimport './plugins/popover';\nimport { selectReplace } from './plugins/select-replace';\n\nimport './components/offline';\nimport './components/clock';\nimport './components/pin';\nimport './components/toast';\nimport './components/usersearch';\nimport './components/modal';\nimport './components/contextmenu';\nimport { Toast } from './components/toast';\n\nimport { onDOMContentLoaded } from './util/events';\nimport { setTill } from './features/offline/till';\nimport { openDb } from './features/offline/database';\n\n$(function() {\n    while (window.toastOnLoad?.length) {\n        const [message, type] = window.toastOnLoad.shift();\n        Toast.add(message, type);\n    }\n\n    window.toastOnLoad = {\n        push: Toast.add,\n    };\n\n    selectReplace('select');\n    $('input[type=checkbox]').checkReplace();\n\n    $('.js-opentill-triple').click(function() {\n        var k = 'clickcount';\n        var clickcount = $(this).data(k);\n\n        clickcount = clickcount ? clickcount+1 : 1;\n\n        if (clickcount == 3) {\n            clickcount = 0;\n            $.get('/printer/open-till');\n            var $b = $(this).addClass('button--flash');\n            setTimeout(function() {\n                $b.removeClass('button--flash').addClass('button--postflash');\n                setTimeout(function() {\n                    $b.removeClass('button--postflash');\n                }, 2000);\n            }, 0);\n        }\n\n        $(this).data(k, clickcount);\n    });\n\n    $('.js-disable-submit').on('submit', function () {\n        $(this).addClass('disabled');\n    });\n\n    $(document).on('click', '.basket-item-confirmation-container .basket-item, .order-products .order-products-item', function () {\n        var el = $(this);\n        if (el.hasClass('gift-receipt--selected')) {\n            $(this).removeClass('gift-receipt--selected')\n        } else {\n            $(this).addClass('gift-receipt--selected')\n        }\n    });\n\n    $(document).on('click', '.gift-bag__print ', function (e) {\n        var url = $(this).attr('href').split('&');\n        var skus = $('.gift-receipt--selected').map(function () {\n            return $(this).data('sku');\n        }).get();\n        $(this).attr('href', url[0] + '&skus=' + encodeURIComponent(skus.join(',')));\n\n        setTimeout(function(){\n            $('.gift-receipt--selected').removeClass('gift-receipt--selected')\n        }, 100)\n    });\n});\n\nonDOMContentLoaded(() => {\n  document.dispatchEvent(new CustomEvent('d3r:ready'));\n\n  if (window.MV?.tillQueryString) {\n    (async () => {\n      const db = await openDb();\n      await setTill({\n        db,\n        queryString: window.MV.tillQueryString,\n        storeConfig: window.MV.storeConfig,\n      });\n    })();\n  }\n});\n"],"names":["updateOnlineElements","down","Offline","state","$offlineMsg","$","append","show","hide","document","body","toggleClass","tabs","on","e","$target","$this","this","is","preventDefault","data","attr","length","hasClass","autoclose","contains","target","removeClass","off","window","location","assign","val","$options","filter","selectors","push","join","addClass","$option","each","split","index","trigger","closest","checkValidity","setTimeout","prop","message","confirm","replace","pathname","hash","removeAttr","animate","scrollTop","offset","top","url","width","height","newwindow","open","focus","jQuery","keyHandler","handleObj","keys","origHandler","handler","toLowerCase","event","hotkeys","options","filterInputAcceptingElements","textInputTypes","test","nodeName","filterContentEditable","filterTextInputs","inArray","type","textAcceptingInputTypes","special","specialKeys","which","character","String","fromCharCode","modif","possible","specialKey","metaKey","ctrlKey","indexOf","shiftNums","i","l","apply","arguments","version","add","checkOnLoad","interceptRequests","requests","checks","image","Date","now","active","check","find","self","contents","get","nodeValue","includes","alert","_window$toastOnLoad","toastOnLoad","shift","Toast","selectReplace","checkReplace","click","k","clickcount","$b","skus","map","encodeURIComponent","onDOMContentLoaded","_window$MV","dispatchEvent","CustomEvent","MV","tillQueryString","db","openDb","setTill","queryString","storeConfig"],"mappings":"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"}