{
  "version": 3,
  "sources": ["../../../src/js/smileys/smileys_page.js"],
  "sourcesContent": ["(function(global, $) {\n  \"use strict\";\n\n  var AVAILABLE_MOODS = [\"normal\", \"elated\", \"happy\", \"frowny\"].join(\" \"),\n\n    AVAILABLE_SPECIFICS = [\"normal\", \"inquisitive\", \"lying\", \"honest\", \"angry\", \"constipated\"].join(\" \"),\n\n    ALL_SMILEYS = [AVAILABLE_MOODS, AVAILABLE_SPECIFICS].join(\" \"),\n\n    DEFAULT_SIZE = \"1\",\n\n    SIZE_UNITS = \"px\",\n\n    MAX_SIZE = 32,\n    MIN_SIZE = 5,\n\n    // keys i care about\n    KEYUP = 38,\n    KEYDOWN = 40,\n\n    FIELDS = {\n      SIZE: \"size\",\n      MOOD: \"mood\",\n      SPECIFIC: \"specific\"\n    };\n\n\n  var $form, $smiley, $size, $up, $down;\n\n  String.prototype.escapeHTML = function () {\n    return this.replace(/>/g, \"&gt;\")\n          .replace(/</g, \"&lt;\")\n          .replace(/\"/g, \"&quot;\");\n  };\n\n  function pickSmiley() {\n    var size = $size.val() || DEFAULT_SIZE;\n\n    $smiley.css(\"fontSize\", size + SIZE_UNITS);\n\n    $smiley.removeClass(ALL_SMILEYS);\n    $smiley.addClass($form.find(\"select[name=\" + FIELDS.MOOD + \"]\").val());\n    $smiley.addClass($form.find(\"select[name=\" + FIELDS.SPECIFIC + \"]\").val());\n  }\n\n  function killSubmit(e) {\n    e.preventDefault();\n  }\n\n  function capSize(size) { // not functioning pun\n    if (isNaN(size)) { return MIN_SIZE; }\n    return Math.max(Math.min(size, MAX_SIZE), MIN_SIZE);\n  }\n\n  function updateSize(e) {\n    var size = parseInt($size.val() || 0, 10);\n\n    switch (e.keyCode) {\n    case KEYUP:\n      $size.val(capSize(size + 1));\n      pickSmiley();\n      break;\n\n    case KEYDOWN:\n      $size.val(capSize(size - 1));\n      pickSmiley();\n      break;\n\n    default:\n      break;\n    }\n  }\n\n  function upDownPickSmiley(e) {\n    var keycode = e.keyCode;\n\n    if (keycode == KEYUP || keycode == KEYDOWN) {\n      pickSmiley();\n    }\n  }\n\n  var getQueryStringParam = (function() {\n    var query_string = (window.location.search.length > 1) ? window.location.search.substring(1) : null;\n    var pairs = (query_string != null) ? query_string.split(\"&\") : [];\n    var params = {};\n\n    for (var i=0; i < pairs.length; i++) {\n      var pair = pairs[i].split(\"=\");\n\n      params[pair[0]] = pair[1] != null ? pair[1] : null;\n    }\n\n    return function(name) {\n      return params[name] != null ? decodeURIComponent(params[name]) : null;\n    };\n  })();\n\n  function inititializeSmiley() {\n    var size = getQueryStringParam(FIELDS.SIZE),\n      mood = getQueryStringParam(FIELDS.MOOD),\n      specific = getQueryStringParam(FIELDS.SPECIFIC);\n\n    if (size) {\n      $size.val(capSize(parseInt(size || 0, 10)));\n    }\n\n    if (mood) {\n      $form.find(\"select[name=\" + FIELDS.MOOD + \"] option[value=\" + mood + \"]\").prop(\"selected\", true);\n    }\n\n    if (specific) {\n      $form.find(\"select[name=\" + FIELDS.SPECIFIC + \"] option[value=\" + specific + \"]\").prop(\"selected\", true);\n    }\n\n    pickSmiley();\n  }\n\n  function track(action, what) {\n    if (!window.goatcounter || !window.goatcounter.count) {\n      return;\n    }\n\n    goatcounter.count({\n      path: `${action}-${what}`,\n      title: \"smileys.\" + what,\n      event: true,\n    });\n  }\n\n  $(function() {\n    $form = $(\"form.pick-a-smiley\");\n    $size = $form.find(\"input[name=\" + FIELDS.SIZE + \"]\");\n    $up = $form.find(\".up\");\n    $down = $form.find(\".down\");\n    $smiley = $(\".smiley\");\n\n    $form.submit(killSubmit);\n\n    $size\n      .keydown(updateSize)\n      .change(pickSmiley);\n\n    $size.focus(function() {\n      track(\"focus\", \"sizebox\");\n    });\n\n    $smiley.click(function() {\n      track(\"click\", \"smiley\");\n    });\n\n    $up.click(function() {\n      track(\"click\", \"uparrow\");\n\n      updateSize({ keyCode: KEYUP });\n    });\n\n    $down.click(function() {\n      track(\"click\", \"downarrow\");\n\n      updateSize({ keyCode: KEYDOWN });\n    });\n\n    $form.find(\"select[name=\" + FIELDS.MOOD + \"]\")\n      .change(function() {\n        track(\"change\", \"mood\");\n      });\n\n    $form.find(\"select[name=\" + FIELDS.SPECIFIC + \"]\")\n      .change(function() {\n        track(\"change\", \"specific\");\n      });\n\n    $form.find(\"select[name=\" + FIELDS.MOOD + \"], select[name=\" + FIELDS.SPECIFIC + \"]\")\n      .change(pickSmiley)\n      .keyup(upDownPickSmiley);\n\n    inititializeSmiley();\n  });\n\n})(this, jQuery);\n"],
  "mappings": "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",
  "names": ["require_smileys_page", "__commonJSMin", "exports", "global", "$", "AVAILABLE_MOODS", "AVAILABLE_SPECIFICS", "ALL_SMILEYS", "DEFAULT_SIZE", "SIZE_UNITS", "MAX_SIZE", "MIN_SIZE", "KEYUP", "KEYDOWN", "FIELDS", "$form", "$smiley", "$size", "$up", "$down", "pickSmiley", "size", "killSubmit", "capSize", "updateSize", "upDownPickSmiley", "keycode", "getQueryStringParam", "query_string", "pairs", "params", "i", "pair", "name", "inititializeSmiley", "mood", "specific", "track", "action", "what"]
}
