3a212e56d4b6d847a187bfab776d4ad6.json 48.1 KB
{"ast":null,"code":"// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/if (!Element.prototype.matches)\nElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nif (!Element.prototype.closest) Element.prototype.closest = function (s) {\n  var el = this;\n  if (!document.documentElement.contains(el)) return null;\n\n  do {\n    if (el.matches(s)) return el;\n    el = el.parentElement || el.parentNode;\n  } while (el !== null && el.nodeType === 1);\n\n  return null;\n};\n/*\r\n * classList.js: Cross-browser full element.classList implementation.\r\n * 1.1.20170427\r\n *\r\n * By Eli Grey, http://eligrey.com\r\n * License: Dedicated to the public domain.\r\n *   See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\r\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif ('document' in window.self) {\n  // Full polyfill for browsers with no classList support\n  // Including IE < Edge missing SVGElement.classList\n  if (!('classList' in document.createElement('_')) || document.createElementNS && !('classList' in document.createElementNS('http://www.w3.org/2000/svg', 'g'))) {\n    (function (view) {\n      'use strict';\n\n      if (!('Element' in view)) return;\n\n      var classListProp = 'classList',\n          protoProp = 'prototype',\n          elemCtrProto = view.Element[protoProp],\n          objCtr = Object,\n          strTrim = String[protoProp].trim || function () {\n        return this.replace(/^\\s+|\\s+$/g, '');\n      },\n          arrIndexOf = Array[protoProp].indexOf || function (item) {\n        var i = 0,\n            len = this.length;\n\n        for (; i < len; i++) {\n          if (i in this && this[i] === item) {\n            return i;\n          }\n        }\n\n        return -1;\n      },\n          // Vendors: please allow content code to instantiate DOMExceptions\n      DOMEx = function (type, message) {\n        this.name = type;\n        this.code = DOMException[type];\n        this.message = message;\n      },\n          checkTokenAndGetIndex = function (classList, token) {\n        if (token === '') {\n          throw new DOMEx('SYNTAX_ERR', 'An invalid or illegal string was specified');\n        }\n\n        if (/\\s/.test(token)) {\n          throw new DOMEx('INVALID_CHARACTER_ERR', 'String contains an invalid character');\n        }\n\n        return arrIndexOf.call(classList, token);\n      },\n          ClassList = function (elem) {\n        var trimmedClasses = strTrim.call(elem.getAttribute('class') || ''),\n            classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : [],\n            i = 0,\n            len = classes.length;\n\n        for (; i < len; i++) {\n          this.push(classes[i]);\n        }\n\n        this._updateClassName = function () {\n          elem.setAttribute('class', this.toString());\n        };\n      },\n          classListProto = ClassList[protoProp] = [],\n          classListGetter = function () {\n        return new ClassList(this);\n      }; // Most DOMException implementations don't allow calling DOMException's toString()\n      // on non-DOMExceptions. Error's toString() is sufficient here.\n\n\n      DOMEx[protoProp] = Error[protoProp];\n\n      classListProto.item = function (i) {\n        return this[i] || null;\n      };\n\n      classListProto.contains = function (token) {\n        token += '';\n        return checkTokenAndGetIndex(this, token) !== -1;\n      };\n\n      classListProto.add = function () {\n        var tokens = arguments,\n            i = 0,\n            l = tokens.length,\n            token,\n            updated = false;\n\n        do {\n          token = tokens[i] + '';\n\n          if (checkTokenAndGetIndex(this, token) === -1) {\n            this.push(token);\n            updated = true;\n          }\n        } while (++i < l);\n\n        if (updated) {\n          this._updateClassName();\n        }\n      };\n\n      classListProto.remove = function () {\n        var tokens = arguments,\n            i = 0,\n            l = tokens.length,\n            token,\n            updated = false,\n            index;\n\n        do {\n          token = tokens[i] + '';\n          index = checkTokenAndGetIndex(this, token);\n\n          while (index !== -1) {\n            this.splice(index, 1);\n            updated = true;\n            index = checkTokenAndGetIndex(this, token);\n          }\n        } while (++i < l);\n\n        if (updated) {\n          this._updateClassName();\n        }\n      };\n\n      classListProto.toggle = function (token, force) {\n        token += '';\n        var result = this.contains(token),\n            method = result ? force !== true && 'remove' : force !== false && 'add';\n\n        if (method) {\n          this[method](token);\n        }\n\n        if (force === true || force === false) {\n          return force;\n        } else {\n          return !result;\n        }\n      };\n\n      classListProto.toString = function () {\n        return this.join(' ');\n      };\n\n      if (objCtr.defineProperty) {\n        var classListPropDesc = {\n          get: classListGetter,\n          enumerable: true,\n          configurable: true\n        };\n\n        try {\n          objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n        } catch (ex) {\n          // IE 8 doesn't support enumerable:true\n          // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n          // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n          if (ex.number === undefined || ex.number === -0x7ff5ec54) {\n            classListPropDesc.enumerable = false;\n            objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n          }\n        }\n      } else if (objCtr[protoProp].__defineGetter__) {\n        elemCtrProto.__defineGetter__(classListProp, classListGetter);\n      }\n    })(window.self);\n  } // There is full or partial native classList support, so just check if we need\n  // to normalize the add/remove and toggle APIs.\n\n\n  (function () {\n    'use strict';\n\n    var testElement = document.createElement('_');\n    testElement.classList.add('c1', 'c2'); // Polyfill for IE 10/11 and Firefox <26, where classList.add and\n    // classList.remove exist but support only one argument at a time.\n\n    if (!testElement.classList.contains('c2')) {\n      var createMethod = function (method) {\n        var original = DOMTokenList.prototype[method];\n\n        DOMTokenList.prototype[method] = function (token) {\n          var i,\n              len = arguments.length;\n\n          for (i = 0; i < len; i++) {\n            token = arguments[i];\n            original.call(this, token);\n          }\n        };\n      };\n\n      createMethod('add');\n      createMethod('remove');\n    }\n\n    testElement.classList.toggle('c3', false); // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n    // support the second argument.\n\n    if (testElement.classList.contains('c3')) {\n      var _toggle = DOMTokenList.prototype.toggle;\n\n      DOMTokenList.prototype.toggle = function (token, force) {\n        if (1 in arguments && !this.contains(token) === !force) {\n          return force;\n        } else {\n          return _toggle.call(this, token);\n        }\n      };\n    }\n\n    testElement = null;\n  })();\n}\n/*!\r\n * @copyright Copyright (c) 2017 IcoMoon.io\r\n * @license   Licensed under MIT license\r\n *            See https://github.com/Keyamoon/svgxuse\r\n * @version   1.2.6\r\n */\n\n/*jslint browser: true */\n\n/*global XDomainRequest, MutationObserver, window */\n\n\n(function () {\n  'use strict';\n\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    var cache = Object.create(null); // holds xhr objects to prevent multiple requests\n\n    var checkUseElems;\n    var tid; // timeout id\n\n    var debouncedCheck = function () {\n      clearTimeout(tid);\n      tid = setTimeout(checkUseElems, 100);\n    };\n\n    var unobserveChanges = function () {\n      return;\n    };\n\n    var observeChanges = function () {\n      var observer;\n      window.addEventListener('resize', debouncedCheck, false);\n      window.addEventListener('orientationchange', debouncedCheck, false);\n\n      if (window.MutationObserver) {\n        observer = new MutationObserver(debouncedCheck);\n        observer.observe(document.documentElement, {\n          childList: true,\n          subtree: true,\n          attributes: true\n        });\n\n        unobserveChanges = function () {\n          try {\n            observer.disconnect();\n            window.removeEventListener('resize', debouncedCheck, false);\n            window.removeEventListener('orientationchange', debouncedCheck, false);\n          } catch (ignore) {}\n        };\n      } else {\n        document.documentElement.addEventListener('DOMSubtreeModified', debouncedCheck, false);\n\n        unobserveChanges = function () {\n          document.documentElement.removeEventListener('DOMSubtreeModified', debouncedCheck, false);\n          window.removeEventListener('resize', debouncedCheck, false);\n          window.removeEventListener('orientationchange', debouncedCheck, false);\n        };\n      }\n    };\n\n    var createRequest = function (url) {\n      // In IE 9, cross origin requests can only be sent using XDomainRequest.\n      // XDomainRequest would fail if CORS headers are not set.\n      // Therefore, XDomainRequest should only be used with cross origin requests.\n      function getOrigin(loc) {\n        var a;\n\n        if (loc.protocol !== undefined) {\n          a = loc;\n        } else {\n          a = document.createElement('a');\n          a.href = loc;\n        }\n\n        return a.protocol.replace(/:/g, '') + a.host;\n      }\n\n      var Request;\n      var origin;\n      var origin2;\n\n      if (window.XMLHttpRequest) {\n        Request = new XMLHttpRequest();\n        origin = getOrigin(location);\n        origin2 = getOrigin(url);\n\n        if (Request.withCredentials === undefined && origin2 !== '' && origin2 !== origin) {\n          Request = XDomainRequest || undefined;\n        } else {\n          Request = XMLHttpRequest;\n        }\n      }\n\n      return Request;\n    };\n\n    var xlinkNS = 'http://www.w3.org/1999/xlink';\n\n    checkUseElems = function () {\n      var base;\n      var bcr;\n      var fallback = ''; // optional fallback URL in case no base path to SVG file was given and no symbol definition was found.\n\n      var hash;\n      var href;\n      var i;\n      var inProgressCount = 0;\n      var isHidden;\n      var Request;\n      var url;\n      var uses;\n      var xhr;\n\n      function observeIfDone() {\n        // If done with making changes, start watching for chagnes in DOM again\n        inProgressCount -= 1;\n\n        if (inProgressCount === 0) {\n          // if all xhrs were resolved\n          unobserveChanges(); // make sure to remove old handlers\n\n          observeChanges(); // watch for changes to DOM\n        }\n      }\n\n      function attrUpdateFunc(spec) {\n        return function () {\n          if (cache[spec.base] !== true) {\n            spec.useEl.setAttributeNS(xlinkNS, 'xlink:href', '#' + spec.hash);\n\n            if (spec.useEl.hasAttribute('href')) {\n              spec.useEl.setAttribute('href', '#' + spec.hash);\n            }\n          }\n        };\n      }\n\n      function onloadFunc(xhr) {\n        return function () {\n          var body = document.body;\n          var x = document.createElement('x');\n          var svg;\n          xhr.onload = null;\n          x.innerHTML = xhr.responseText;\n          svg = x.getElementsByTagName('svg')[0];\n\n          if (svg) {\n            svg.setAttribute('aria-hidden', 'true');\n            svg.style.position = 'absolute';\n            svg.style.width = 0;\n            svg.style.height = 0;\n            svg.style.overflow = 'hidden';\n            body.insertBefore(svg, body.firstChild);\n          }\n\n          observeIfDone();\n        };\n      }\n\n      function onErrorTimeout(xhr) {\n        return function () {\n          xhr.onerror = null;\n          xhr.ontimeout = null;\n          observeIfDone();\n        };\n      }\n\n      unobserveChanges(); // stop watching for changes to DOM\n      // find all use elements\n\n      uses = document.getElementsByTagName('use');\n\n      for (i = 0; i < uses.length; i += 1) {\n        try {\n          bcr = uses[i].getBoundingClientRect();\n        } catch (ignore) {\n          // failed to get bounding rectangle of the use element\n          bcr = false;\n        }\n\n        href = uses[i].getAttribute('href') || uses[i].getAttributeNS(xlinkNS, 'href') || uses[i].getAttribute('xlink:href');\n\n        if (href && href.split) {\n          url = href.split('#');\n        } else {\n          url = ['', ''];\n        }\n\n        base = url[0];\n        hash = url[1];\n        isHidden = bcr && bcr.left === 0 && bcr.right === 0 && bcr.top === 0 && bcr.bottom === 0;\n\n        if (bcr && bcr.width === 0 && bcr.height === 0 && !isHidden) {\n          // the use element is empty\n          // if there is a reference to an external SVG, try to fetch it\n          // use the optional fallback URL if there is no reference to an external SVG\n          if (fallback && !base.length && hash && !document.getElementById(hash)) {\n            base = fallback;\n          }\n\n          if (uses[i].hasAttribute('href')) {\n            uses[i].setAttributeNS(xlinkNS, 'xlink:href', href);\n          }\n\n          if (base.length) {\n            // schedule updating xlink:href\n            xhr = cache[base];\n\n            if (xhr !== true) {\n              // true signifies that prepending the SVG was not required\n              setTimeout(attrUpdateFunc({\n                useEl: uses[i],\n                base: base,\n                hash: hash\n              }), 0);\n            }\n\n            if (xhr === undefined) {\n              Request = createRequest(base);\n\n              if (Request !== undefined) {\n                xhr = new Request();\n                cache[base] = xhr;\n                xhr.onload = onloadFunc(xhr);\n                xhr.onerror = onErrorTimeout(xhr);\n                xhr.ontimeout = onErrorTimeout(xhr);\n                xhr.open('GET', base);\n                xhr.send();\n                inProgressCount += 1;\n              }\n            }\n          }\n        } else {\n          if (!isHidden) {\n            if (cache[base] === undefined) {\n              // remember this URL if the use element was not empty and no request was sent\n              cache[base] = true;\n            } else if (cache[base].onload) {\n              // if it turns out that prepending the SVG is not necessary,\n              // abort the in-progress xhr.\n              cache[base].abort();\n              delete cache[base].onload;\n              cache[base] = true;\n            }\n          } else if (base.length && cache[base]) {\n            setTimeout(attrUpdateFunc({\n              useEl: uses[i],\n              base: base,\n              hash: hash\n            }), 0);\n          }\n        }\n      }\n\n      uses = '';\n      inProgressCount += 1;\n      observeIfDone();\n    };\n\n    var winLoad;\n\n    winLoad = function () {\n      window.removeEventListener('load', winLoad, false); // to prevent memory leaks\n\n      tid = setTimeout(checkUseElems, 0);\n    };\n\n    if (document.readyState !== 'complete') {\n      // The load event fires when all resources have finished loading, which allows detecting whether SVG use elements are empty.\n      window.addEventListener('load', winLoad, false);\n    } else {\n      // No need to add a listener if the document is already loaded, initialize immediately.\n      winLoad();\n    }\n  }\n})();","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/src/js/polyfill.js"],"names":["Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","document","documentElement","contains","parentElement","parentNode","nodeType","window","self","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","objCtr","Object","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","i","len","length","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","classList","token","test","call","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","Error","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","number","undefined","__defineGetter__","testElement","createMethod","original","DOMTokenList","_toggle","addEventListener","cache","create","checkUseElems","tid","debouncedCheck","clearTimeout","setTimeout","unobserveChanges","observeChanges","observer","MutationObserver","observe","childList","subtree","attributes","disconnect","removeEventListener","ignore","createRequest","url","getOrigin","loc","a","protocol","href","host","Request","origin","origin2","XMLHttpRequest","location","withCredentials","XDomainRequest","xlinkNS","base","bcr","fallback","hash","inProgressCount","isHidden","uses","xhr","observeIfDone","attrUpdateFunc","spec","useEl","setAttributeNS","hasAttribute","onloadFunc","body","x","svg","onload","innerHTML","responseText","getElementsByTagName","style","position","width","height","overflow","insertBefore","firstChild","onErrorTimeout","onerror","ontimeout","getBoundingClientRect","getAttributeNS","left","right","top","bottom","getElementById","open","send","abort","winLoad","readyState"],"mappings":"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","sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\r\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/if (!Element.prototype.matches)\r\nElement.prototype.matches =\r\n  Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\r\nif (!Element.prototype.closest)\r\n  Element.prototype.closest = function (s) {\r\n    var el = this;\r\n    if (!document.documentElement.contains(el)) return null;\r\n    do {\r\n      if (el.matches(s)) return el;\r\n      el = el.parentElement || el.parentNode;\r\n    } while (el !== null && el.nodeType === 1);\r\n    return null;\r\n  };\r\n\r\n/*\r\n * classList.js: Cross-browser full element.classList implementation.\r\n * 1.1.20170427\r\n *\r\n * By Eli Grey, http://eligrey.com\r\n * License: Dedicated to the public domain.\r\n *   See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\r\n */\r\n\r\n/*global self, document, DOMException */\r\n\r\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\r\n\r\nif ('document' in window.self) {\r\n  // Full polyfill for browsers with no classList support\r\n  // Including IE < Edge missing SVGElement.classList\r\n  if (\r\n    !('classList' in document.createElement('_')) ||\r\n    (document.createElementNS &&\r\n      !('classList' in document.createElementNS('http://www.w3.org/2000/svg', 'g')))\r\n  ) {\r\n    (function (view) {\r\n      'use strict';\r\n\r\n      if (!('Element' in view)) return;\r\n\r\n      var classListProp = 'classList',\r\n        protoProp = 'prototype',\r\n        elemCtrProto = view.Element[protoProp],\r\n        objCtr = Object,\r\n        strTrim =\r\n          String[protoProp].trim ||\r\n          function () {\r\n            return this.replace(/^\\s+|\\s+$/g, '');\r\n          },\r\n        arrIndexOf =\r\n          Array[protoProp].indexOf ||\r\n          function (item) {\r\n            var i = 0,\r\n              len = this.length;\r\n            for (; i < len; i++) {\r\n              if (i in this && this[i] === item) {\r\n                return i;\r\n              }\r\n            }\r\n            return -1;\r\n          },\r\n        // Vendors: please allow content code to instantiate DOMExceptions\r\n        DOMEx = function (type, message) {\r\n          this.name = type;\r\n          this.code = DOMException[type];\r\n          this.message = message;\r\n        },\r\n        checkTokenAndGetIndex = function (classList, token) {\r\n          if (token === '') {\r\n            throw new DOMEx('SYNTAX_ERR', 'An invalid or illegal string was specified');\r\n          }\r\n          if (/\\s/.test(token)) {\r\n            throw new DOMEx('INVALID_CHARACTER_ERR', 'String contains an invalid character');\r\n          }\r\n          return arrIndexOf.call(classList, token);\r\n        },\r\n        ClassList = function (elem) {\r\n          var trimmedClasses = strTrim.call(elem.getAttribute('class') || ''),\r\n            classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : [],\r\n            i = 0,\r\n            len = classes.length;\r\n          for (; i < len; i++) {\r\n            this.push(classes[i]);\r\n          }\r\n          this._updateClassName = function () {\r\n            elem.setAttribute('class', this.toString());\r\n          };\r\n        },\r\n        classListProto = (ClassList[protoProp] = []),\r\n        classListGetter = function () {\r\n          return new ClassList(this);\r\n        };\r\n      // Most DOMException implementations don't allow calling DOMException's toString()\r\n      // on non-DOMExceptions. Error's toString() is sufficient here.\r\n      DOMEx[protoProp] = Error[protoProp];\r\n      classListProto.item = function (i) {\r\n        return this[i] || null;\r\n      };\r\n      classListProto.contains = function (token) {\r\n        token += '';\r\n        return checkTokenAndGetIndex(this, token) !== -1;\r\n      };\r\n      classListProto.add = function () {\r\n        var tokens = arguments,\r\n          i = 0,\r\n          l = tokens.length,\r\n          token,\r\n          updated = false;\r\n        do {\r\n          token = tokens[i] + '';\r\n          if (checkTokenAndGetIndex(this, token) === -1) {\r\n            this.push(token);\r\n            updated = true;\r\n          }\r\n        } while (++i < l);\r\n\r\n        if (updated) {\r\n          this._updateClassName();\r\n        }\r\n      };\r\n      classListProto.remove = function () {\r\n        var tokens = arguments,\r\n          i = 0,\r\n          l = tokens.length,\r\n          token,\r\n          updated = false,\r\n          index;\r\n        do {\r\n          token = tokens[i] + '';\r\n          index = checkTokenAndGetIndex(this, token);\r\n          while (index !== -1) {\r\n            this.splice(index, 1);\r\n            updated = true;\r\n            index = checkTokenAndGetIndex(this, token);\r\n          }\r\n        } while (++i < l);\r\n\r\n        if (updated) {\r\n          this._updateClassName();\r\n        }\r\n      };\r\n      classListProto.toggle = function (token, force) {\r\n        token += '';\r\n\r\n        var result = this.contains(token),\r\n          method = result ? force !== true && 'remove' : force !== false && 'add';\r\n        if (method) {\r\n          this[method](token);\r\n        }\r\n\r\n        if (force === true || force === false) {\r\n          return force;\r\n        } else {\r\n          return !result;\r\n        }\r\n      };\r\n      classListProto.toString = function () {\r\n        return this.join(' ');\r\n      };\r\n\r\n      if (objCtr.defineProperty) {\r\n        var classListPropDesc = {\r\n          get: classListGetter,\r\n          enumerable: true,\r\n          configurable: true,\r\n        };\r\n        try {\r\n          objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n        } catch (ex) {\r\n          // IE 8 doesn't support enumerable:true\r\n          // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\r\n          // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\r\n          if (ex.number === undefined || ex.number === -0x7ff5ec54) {\r\n            classListPropDesc.enumerable = false;\r\n            objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n          }\r\n        }\r\n      } else if (objCtr[protoProp].__defineGetter__) {\r\n        elemCtrProto.__defineGetter__(classListProp, classListGetter);\r\n      }\r\n    })(window.self);\r\n  }\r\n\r\n  // There is full or partial native classList support, so just check if we need\r\n  // to normalize the add/remove and toggle APIs.\r\n\r\n  (function () {\r\n    'use strict';\r\n\r\n    var testElement = document.createElement('_');\r\n\r\n    testElement.classList.add('c1', 'c2');\r\n\r\n    // Polyfill for IE 10/11 and Firefox <26, where classList.add and\r\n    // classList.remove exist but support only one argument at a time.\r\n    if (!testElement.classList.contains('c2')) {\r\n      var createMethod = function (method) {\r\n        var original = DOMTokenList.prototype[method];\r\n\r\n        DOMTokenList.prototype[method] = function (token) {\r\n          var i,\r\n            len = arguments.length;\r\n\r\n          for (i = 0; i < len; i++) {\r\n            token = arguments[i];\r\n            original.call(this, token);\r\n          }\r\n        };\r\n      };\r\n      createMethod('add');\r\n      createMethod('remove');\r\n    }\r\n\r\n    testElement.classList.toggle('c3', false);\r\n\r\n    // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\r\n    // support the second argument.\r\n    if (testElement.classList.contains('c3')) {\r\n      var _toggle = DOMTokenList.prototype.toggle;\r\n\r\n      DOMTokenList.prototype.toggle = function (token, force) {\r\n        if (1 in arguments && !this.contains(token) === !force) {\r\n          return force;\r\n        } else {\r\n          return _toggle.call(this, token);\r\n        }\r\n      };\r\n    }\r\n\r\n    testElement = null;\r\n  })();\r\n}\r\n\r\n/*!\r\n * @copyright Copyright (c) 2017 IcoMoon.io\r\n * @license   Licensed under MIT license\r\n *            See https://github.com/Keyamoon/svgxuse\r\n * @version   1.2.6\r\n */\r\n/*jslint browser: true */\r\n/*global XDomainRequest, MutationObserver, window */\r\n(function () {\r\n  'use strict';\r\n  if (typeof window !== 'undefined' && window.addEventListener) {\r\n    var cache = Object.create(null); // holds xhr objects to prevent multiple requests\r\n    var checkUseElems;\r\n    var tid; // timeout id\r\n    var debouncedCheck = function () {\r\n      clearTimeout(tid);\r\n      tid = setTimeout(checkUseElems, 100);\r\n    };\r\n    var unobserveChanges = function () {\r\n      return;\r\n    };\r\n    var observeChanges = function () {\r\n      var observer;\r\n      window.addEventListener('resize', debouncedCheck, false);\r\n      window.addEventListener('orientationchange', debouncedCheck, false);\r\n      if (window.MutationObserver) {\r\n        observer = new MutationObserver(debouncedCheck);\r\n        observer.observe(document.documentElement, {\r\n          childList: true,\r\n          subtree: true,\r\n          attributes: true,\r\n        });\r\n        unobserveChanges = function () {\r\n          try {\r\n            observer.disconnect();\r\n            window.removeEventListener('resize', debouncedCheck, false);\r\n            window.removeEventListener('orientationchange', debouncedCheck, false);\r\n          } catch (ignore) {}\r\n        };\r\n      } else {\r\n        document.documentElement.addEventListener('DOMSubtreeModified', debouncedCheck, false);\r\n        unobserveChanges = function () {\r\n          document.documentElement.removeEventListener('DOMSubtreeModified', debouncedCheck, false);\r\n          window.removeEventListener('resize', debouncedCheck, false);\r\n          window.removeEventListener('orientationchange', debouncedCheck, false);\r\n        };\r\n      }\r\n    };\r\n    var createRequest = function (url) {\r\n      // In IE 9, cross origin requests can only be sent using XDomainRequest.\r\n      // XDomainRequest would fail if CORS headers are not set.\r\n      // Therefore, XDomainRequest should only be used with cross origin requests.\r\n      function getOrigin(loc) {\r\n        var a;\r\n        if (loc.protocol !== undefined) {\r\n          a = loc;\r\n        } else {\r\n          a = document.createElement('a');\r\n          a.href = loc;\r\n        }\r\n        return a.protocol.replace(/:/g, '') + a.host;\r\n      }\r\n      var Request;\r\n      var origin;\r\n      var origin2;\r\n      if (window.XMLHttpRequest) {\r\n        Request = new XMLHttpRequest();\r\n        origin = getOrigin(location);\r\n        origin2 = getOrigin(url);\r\n        if (Request.withCredentials === undefined && origin2 !== '' && origin2 !== origin) {\r\n          Request = XDomainRequest || undefined;\r\n        } else {\r\n          Request = XMLHttpRequest;\r\n        }\r\n      }\r\n      return Request;\r\n    };\r\n    var xlinkNS = 'http://www.w3.org/1999/xlink';\r\n    checkUseElems = function () {\r\n      var base;\r\n      var bcr;\r\n      var fallback = ''; // optional fallback URL in case no base path to SVG file was given and no symbol definition was found.\r\n      var hash;\r\n      var href;\r\n      var i;\r\n      var inProgressCount = 0;\r\n      var isHidden;\r\n      var Request;\r\n      var url;\r\n      var uses;\r\n      var xhr;\r\n      function observeIfDone() {\r\n        // If done with making changes, start watching for chagnes in DOM again\r\n        inProgressCount -= 1;\r\n        if (inProgressCount === 0) {\r\n          // if all xhrs were resolved\r\n          unobserveChanges(); // make sure to remove old handlers\r\n          observeChanges(); // watch for changes to DOM\r\n        }\r\n      }\r\n      function attrUpdateFunc(spec) {\r\n        return function () {\r\n          if (cache[spec.base] !== true) {\r\n            spec.useEl.setAttributeNS(xlinkNS, 'xlink:href', '#' + spec.hash);\r\n            if (spec.useEl.hasAttribute('href')) {\r\n              spec.useEl.setAttribute('href', '#' + spec.hash);\r\n            }\r\n          }\r\n        };\r\n      }\r\n      function onloadFunc(xhr) {\r\n        return function () {\r\n          var body = document.body;\r\n          var x = document.createElement('x');\r\n          var svg;\r\n          xhr.onload = null;\r\n          x.innerHTML = xhr.responseText;\r\n          svg = x.getElementsByTagName('svg')[0];\r\n          if (svg) {\r\n            svg.setAttribute('aria-hidden', 'true');\r\n            svg.style.position = 'absolute';\r\n            svg.style.width = 0;\r\n            svg.style.height = 0;\r\n            svg.style.overflow = 'hidden';\r\n            body.insertBefore(svg, body.firstChild);\r\n          }\r\n          observeIfDone();\r\n        };\r\n      }\r\n      function onErrorTimeout(xhr) {\r\n        return function () {\r\n          xhr.onerror = null;\r\n          xhr.ontimeout = null;\r\n          observeIfDone();\r\n        };\r\n      }\r\n      unobserveChanges(); // stop watching for changes to DOM\r\n      // find all use elements\r\n      uses = document.getElementsByTagName('use');\r\n      for (i = 0; i < uses.length; i += 1) {\r\n        try {\r\n          bcr = uses[i].getBoundingClientRect();\r\n        } catch (ignore) {\r\n          // failed to get bounding rectangle of the use element\r\n          bcr = false;\r\n        }\r\n        href =\r\n          uses[i].getAttribute('href') ||\r\n          uses[i].getAttributeNS(xlinkNS, 'href') ||\r\n          uses[i].getAttribute('xlink:href');\r\n        if (href && href.split) {\r\n          url = href.split('#');\r\n        } else {\r\n          url = ['', ''];\r\n        }\r\n        base = url[0];\r\n        hash = url[1];\r\n        isHidden = bcr && bcr.left === 0 && bcr.right === 0 && bcr.top === 0 && bcr.bottom === 0;\r\n        if (bcr && bcr.width === 0 && bcr.height === 0 && !isHidden) {\r\n          // the use element is empty\r\n          // if there is a reference to an external SVG, try to fetch it\r\n          // use the optional fallback URL if there is no reference to an external SVG\r\n          if (fallback && !base.length && hash && !document.getElementById(hash)) {\r\n            base = fallback;\r\n          }\r\n          if (uses[i].hasAttribute('href')) {\r\n            uses[i].setAttributeNS(xlinkNS, 'xlink:href', href);\r\n          }\r\n          if (base.length) {\r\n            // schedule updating xlink:href\r\n            xhr = cache[base];\r\n            if (xhr !== true) {\r\n              // true signifies that prepending the SVG was not required\r\n              setTimeout(\r\n                attrUpdateFunc({\r\n                  useEl: uses[i],\r\n                  base: base,\r\n                  hash: hash,\r\n                }),\r\n                0\r\n              );\r\n            }\r\n            if (xhr === undefined) {\r\n              Request = createRequest(base);\r\n              if (Request !== undefined) {\r\n                xhr = new Request();\r\n                cache[base] = xhr;\r\n                xhr.onload = onloadFunc(xhr);\r\n                xhr.onerror = onErrorTimeout(xhr);\r\n                xhr.ontimeout = onErrorTimeout(xhr);\r\n                xhr.open('GET', base);\r\n                xhr.send();\r\n                inProgressCount += 1;\r\n              }\r\n            }\r\n          }\r\n        } else {\r\n          if (!isHidden) {\r\n            if (cache[base] === undefined) {\r\n              // remember this URL if the use element was not empty and no request was sent\r\n              cache[base] = true;\r\n            } else if (cache[base].onload) {\r\n              // if it turns out that prepending the SVG is not necessary,\r\n              // abort the in-progress xhr.\r\n              cache[base].abort();\r\n              delete cache[base].onload;\r\n              cache[base] = true;\r\n            }\r\n          } else if (base.length && cache[base]) {\r\n            setTimeout(\r\n              attrUpdateFunc({\r\n                useEl: uses[i],\r\n                base: base,\r\n                hash: hash,\r\n              }),\r\n              0\r\n            );\r\n          }\r\n        }\r\n      }\r\n      uses = '';\r\n      inProgressCount += 1;\r\n      observeIfDone();\r\n    };\r\n    var winLoad;\r\n    winLoad = function () {\r\n      window.removeEventListener('load', winLoad, false); // to prevent memory leaks\r\n      tid = setTimeout(checkUseElems, 0);\r\n    };\r\n    if (document.readyState !== 'complete') {\r\n      // The load event fires when all resources have finished loading, which allows detecting whether SVG use elements are empty.\r\n      window.addEventListener('load', winLoad, false);\r\n    } else {\r\n      // No need to add a listener if the document is already loaded, initialize immediately.\r\n      winLoad();\r\n    }\r\n  }\r\n})();\r\n"]},"metadata":{},"sourceType":"module"}