{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///navigo.min.js","webpack:///webpack/bootstrap f5225fc9e89df39f2379","webpack:///./src/index.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_toConsumableArray","arr","Array","isArray","i","arr2","length","from","isPushStateAvailable","window","history","pushState","Navigo","r","useHash","hash","_routes","_useHash","_hash","_paused","_destroyed","_lastRouteResolved","_notFoundHandler","_defaultHandler","_usePushState","_onLocationChange","bind","_genericHooks","replace","_cLoc","split","_listen","updatePageLinks","clean","s","RegExp","regExpResultToParams","match","names","slice","reduce","params","value","index","decodeURIComponent","replaceDynamicURLParts","route","regexp","paramNames","PARAMETER_REGEXP","full","dots","name","push","REPLACE_VARIABLE_REGEXP","WILDCARD_REGEXP","REPLACE_WILDCARD","FOLLOWED_BY_SLASH_REGEXP","MATCH_REGEXP_FLAGS","getUrlDepth","url","compareUrlDepth","urlA","urlB","findMatchedRoutes","routes","arguments","undefined","map","_replaceDynamicURLPar","filter","matched","fallbackURL","result","isHashChangeAPIAvailable","extractGETParameters","join","getOnlyURL","onlyURL","manageHooks","handler","hooks","_typeof","before","shouldRoute","after","isHashedRoot","Object","defineProperty","Symbol","iterator","obj","constructor","prototype","helpers","navigate","path","absolute","to","_getRoot","resolve","location","href","on","_this","_len","args","_key","func","uses","_add","orderedRoutes","keys","sort","forEach","off","notFound","current","_this2","GETParameters","query","already","_callLeave","destroy","clearTimeout","_listenningInterval","removeEventListener","self","document","_findLinks","link","hasListenerAttached","addEventListener","e","getLinkPath","preventDefault","generate","data","key","toString","pause","status","resume","disableIfAPINotAvailable","lastRouteResolved","pathname","getAttribute","encodeURI","as","_this3","cached","check","setTimeout","__NAVIGO_WINDOW_LOCATION_MOCK__","querySelectorAll","leave"],"mappings":"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","file":"navigo.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Navigo\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Navigo\"] = factory();\n\telse\n\t\troot[\"Navigo\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Navigo\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Navigo\"] = factory();\n\telse\n\t\troot[\"Navigo\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tfunction isPushStateAvailable() {\n\t return !!(typeof window !== 'undefined' && window.history && window.history.pushState);\n\t}\n\t\n\tfunction Navigo(r, useHash, hash) {\n\t this.root = null;\n\t this._routes = [];\n\t this._useHash = useHash;\n\t this._hash = typeof hash === 'undefined' ? '#' : hash;\n\t this._paused = false;\n\t this._destroyed = false;\n\t this._lastRouteResolved = null;\n\t this._notFoundHandler = null;\n\t this._defaultHandler = null;\n\t this._usePushState = !useHash && isPushStateAvailable();\n\t this._onLocationChange = this._onLocationChange.bind(this);\n\t this._genericHooks = null;\n\t\n\t if (r) {\n\t this.root = useHash ? r.replace(/\\/$/, '/' + this._hash) : r.replace(/\\/$/, '');\n\t } else if (useHash) {\n\t this.root = this._cLoc().split(this._hash)[0].replace(/\\/$/, '/' + this._hash);\n\t }\n\t\n\t this._listen();\n\t this.updatePageLinks();\n\t}\n\t\n\tfunction clean(s) {\n\t if (s instanceof RegExp) return s;\n\t return s.replace(/\\/+$/, '').replace(/^\\/+/, '^/');\n\t}\n\t\n\tfunction regExpResultToParams(match, names) {\n\t if (names.length === 0) return null;\n\t if (!match) return null;\n\t return match.slice(1, match.length).reduce(function (params, value, index) {\n\t if (params === null) params = {};\n\t params[names[index]] = decodeURIComponent(value);\n\t return params;\n\t }, null);\n\t}\n\t\n\tfunction replaceDynamicURLParts(route) {\n\t var paramNames = [],\n\t regexp;\n\t\n\t if (route instanceof RegExp) {\n\t regexp = route;\n\t } else {\n\t regexp = new RegExp(route.replace(Navigo.PARAMETER_REGEXP, function (full, dots, name) {\n\t paramNames.push(name);\n\t return Navigo.REPLACE_VARIABLE_REGEXP;\n\t }).replace(Navigo.WILDCARD_REGEXP, Navigo.REPLACE_WILDCARD) + Navigo.FOLLOWED_BY_SLASH_REGEXP, Navigo.MATCH_REGEXP_FLAGS);\n\t }\n\t return { regexp: regexp, paramNames: paramNames };\n\t}\n\t\n\tfunction getUrlDepth(url) {\n\t return url.replace(/\\/$/, '').split('/').length;\n\t}\n\t\n\tfunction compareUrlDepth(urlA, urlB) {\n\t return getUrlDepth(urlB) - getUrlDepth(urlA);\n\t}\n\t\n\tfunction findMatchedRoutes(url) {\n\t var routes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\t\n\t return routes.map(function (route) {\n\t var _replaceDynamicURLPar = replaceDynamicURLParts(clean(route.route)),\n\t regexp = _replaceDynamicURLPar.regexp,\n\t paramNames = _replaceDynamicURLPar.paramNames;\n\t\n\t var match = url.replace(/^\\/+/, '/').match(regexp);\n\t var params = regExpResultToParams(match, paramNames);\n\t\n\t return match ? { match: match, route: route, params: params } : false;\n\t }).filter(function (m) {\n\t return m;\n\t });\n\t}\n\t\n\tfunction match(url, routes) {\n\t return findMatchedRoutes(url, routes)[0] || false;\n\t}\n\t\n\tfunction root(url, routes) {\n\t var matched = routes.map(function (route) {\n\t return route.route === '' || route.route === '*' ? url : url.split(new RegExp(route.route + '($|\\/)'))[0];\n\t });\n\t var fallbackURL = clean(url);\n\t\n\t if (matched.length > 1) {\n\t return matched.reduce(function (result, url) {\n\t if (result.length > url.length) result = url;\n\t return result;\n\t }, matched[0]);\n\t } else if (matched.length === 1) {\n\t return matched[0];\n\t }\n\t return fallbackURL;\n\t}\n\t\n\tfunction isHashChangeAPIAvailable() {\n\t return !!(typeof window !== 'undefined' && 'onhashchange' in window);\n\t}\n\t\n\tfunction extractGETParameters(url) {\n\t return url.split(/\\?(.*)?$/).slice(1).join('');\n\t}\n\t\n\tfunction getOnlyURL(url, useHash, hash) {\n\t var onlyURL = url.split(/\\?(.*)?$/)[0],\n\t split;\n\t\n\t if (typeof hash === 'undefined') {\n\t // To preserve BC\n\t hash = '#';\n\t }\n\t\n\t if (isPushStateAvailable() && !useHash) {\n\t onlyURL = onlyURL.split(hash)[0];\n\t } else {\n\t split = onlyURL.split(hash);\n\t onlyURL = split.length > 1 ? onlyURL.split(hash)[1] : split[0];\n\t }\n\t\n\t return onlyURL;\n\t}\n\t\n\tfunction manageHooks(handler, hooks, params) {\n\t if (hooks && (typeof hooks === 'undefined' ? 'undefined' : _typeof(hooks)) === 'object') {\n\t if (hooks.before) {\n\t hooks.before(function () {\n\t var shouldRoute = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\t\n\t if (!shouldRoute) return;\n\t handler();\n\t hooks.after && hooks.after(params);\n\t }, params);\n\t } else if (hooks.after) {\n\t handler();\n\t hooks.after && hooks.after(params);\n\t }\n\t return;\n\t }\n\t handler();\n\t};\n\t\n\tfunction isHashedRoot(url, useHash, hash) {\n\t if (isPushStateAvailable() && !useHash) {\n\t return false;\n\t }\n\t\n\t if (!url.match(hash)) {\n\t return false;\n\t }\n\t\n\t var split = url.split(hash);\n\t\n\t if (split.length < 2 || split[1] === '') {\n\t return true;\n\t }\n\t\n\t return false;\n\t};\n\t\n\tNavigo.prototype = {\n\t helpers: {\n\t match: match,\n\t root: root,\n\t clean: clean\n\t },\n\t navigate: function navigate(path, absolute) {\n\t var to;\n\t\n\t path = path || '';\n\t if (this._usePushState) {\n\t to = (!absolute ? this._getRoot() + '/' : '') + path.replace(/^\\/+/, '/');\n\t to = to.replace(/([^:])(\\/{2,})/g, '$1/');\n\t history[this._paused ? 'replaceState' : 'pushState']({}, '', to);\n\t this.resolve();\n\t } else if (typeof window !== 'undefined') {\n\t path = path.replace(new RegExp('^' + this._hash), '');\n\t window.location.href = window.location.href.replace(/#$/, '').replace(new RegExp(this._hash + '.*$'), '') + this._hash + path;\n\t }\n\t return this;\n\t },\n\t on: function on() {\n\t var _this = this;\n\t\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t if (typeof args[0] === 'function') {\n\t this._defaultHandler = { handler: args[0], hooks: args[1] };\n\t } else if (args.length >= 2) {\n\t if (args[0] === '/') {\n\t var func = args[1];\n\t\n\t if (_typeof(args[1]) === 'object') {\n\t func = args[1].uses;\n\t }\n\t\n\t this._defaultHandler = { handler: func, hooks: args[2] };\n\t } else {\n\t this._add(args[0], args[1], args[2]);\n\t }\n\t } else if (_typeof(args[0]) === 'object') {\n\t var orderedRoutes = Object.keys(args[0]).sort(compareUrlDepth);\n\t\n\t orderedRoutes.forEach(function (route) {\n\t _this.on(route, args[0][route]);\n\t });\n\t }\n\t return this;\n\t },\n\t off: function off(handler) {\n\t if (this._defaultHandler !== null && handler === this._defaultHandler.handler) {\n\t this._defaultHandler = null;\n\t } else if (this._notFoundHandler !== null && handler === this._notFoundHandler.handler) {\n\t this._notFoundHandler = null;\n\t }\n\t this._routes = this._routes.reduce(function (result, r) {\n\t if (r.handler !== handler) result.push(r);\n\t return result;\n\t }, []);\n\t return this;\n\t },\n\t notFound: function notFound(handler, hooks) {\n\t this._notFoundHandler = { handler: handler, hooks: hooks };\n\t return this;\n\t },\n\t resolve: function resolve(current) {\n\t var _this2 = this;\n\t\n\t var handler, m;\n\t var url = (current || this._cLoc()).replace(this._getRoot(), '');\n\t\n\t if (this._useHash) {\n\t url = url.replace(new RegExp('^\\/' + this._hash), '/');\n\t }\n\t\n\t var GETParameters = extractGETParameters(current || this._cLoc());\n\t var onlyURL = getOnlyURL(url, this._useHash, this._hash);\n\t\n\t if (this._paused) return false;\n\t\n\t if (this._lastRouteResolved && onlyURL === this._lastRouteResolved.url && GETParameters === this._lastRouteResolved.query) {\n\t if (this._lastRouteResolved.hooks && this._lastRouteResolved.hooks.already) {\n\t this._lastRouteResolved.hooks.already(this._lastRouteResolved.params);\n\t }\n\t return false;\n\t }\n\t\n\t m = match(onlyURL, this._routes);\n\t\n\t if (m) {\n\t this._callLeave();\n\t this._lastRouteResolved = { url: onlyURL, query: GETParameters, hooks: m.route.hooks, params: m.params };\n\t handler = m.route.handler;\n\t manageHooks(function () {\n\t manageHooks(function () {\n\t m.route.route instanceof RegExp ? handler.apply(undefined, _toConsumableArray(m.match.slice(1, m.match.length))) : handler(m.params, GETParameters);\n\t }, m.route.hooks, m.params, _this2._genericHooks);\n\t }, this._genericHooks, m.params);\n\t return m;\n\t } else if (this._defaultHandler && (onlyURL === '' || onlyURL === '/' || onlyURL === this._hash || isHashedRoot(onlyURL, this._useHash, this._hash))) {\n\t manageHooks(function () {\n\t manageHooks(function () {\n\t _this2._callLeave();\n\t _this2._lastRouteResolved = { url: onlyURL, query: GETParameters, hooks: _this2._defaultHandler.hooks };\n\t _this2._defaultHandler.handler(GETParameters);\n\t }, _this2._defaultHandler.hooks);\n\t }, this._genericHooks);\n\t return true;\n\t } else if (this._notFoundHandler) {\n\t manageHooks(function () {\n\t manageHooks(function () {\n\t _this2._callLeave();\n\t _this2._lastRouteResolved = { url: onlyURL, query: GETParameters, hooks: _this2._notFoundHandler.hooks };\n\t _this2._notFoundHandler.handler(GETParameters);\n\t }, _this2._notFoundHandler.hooks);\n\t }, this._genericHooks);\n\t }\n\t return false;\n\t },\n\t destroy: function destroy() {\n\t this._routes = [];\n\t this._destroyed = true;\n\t clearTimeout(this._listenningInterval);\n\t if (typeof window !== 'undefined') {\n\t window.removeEventListener('popstate', this._onLocationChange);\n\t window.removeEventListener('hashchange', this._onLocationChange);\n\t }\n\t },\n\t updatePageLinks: function updatePageLinks() {\n\t var self = this;\n\t\n\t if (typeof document === 'undefined') return;\n\t\n\t this._findLinks().forEach(function (link) {\n\t if (!link.hasListenerAttached) {\n\t link.addEventListener('click', function (e) {\n\t var location = self.getLinkPath(link);\n\t\n\t if (!self._destroyed) {\n\t e.preventDefault();\n\t self.navigate(location.replace(/\\/+$/, '').replace(/^\\/+/, '/'));\n\t }\n\t });\n\t link.hasListenerAttached = true;\n\t }\n\t });\n\t },\n\t generate: function generate(name) {\n\t var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t var result = this._routes.reduce(function (result, route) {\n\t var key;\n\t\n\t if (route.name === name) {\n\t result = route.route;\n\t for (key in data) {\n\t result = result.toString().replace(':' + key, data[key]);\n\t }\n\t }\n\t return result;\n\t }, '');\n\t\n\t return this._useHash ? this._hash + result : result;\n\t },\n\t link: function link(path) {\n\t return this._getRoot() + path;\n\t },\n\t pause: function pause() {\n\t var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\t\n\t this._paused = status;\n\t },\n\t resume: function resume() {\n\t this.pause(false);\n\t },\n\t disableIfAPINotAvailable: function disableIfAPINotAvailable() {\n\t if (!isPushStateAvailable()) {\n\t this.destroy();\n\t }\n\t },\n\t lastRouteResolved: function lastRouteResolved() {\n\t return this._lastRouteResolved;\n\t },\n\t getLinkPath: function getLinkPath(link) {\n\t return link.pathname || link.getAttribute('href');\n\t },\n\t hooks: function hooks(_hooks) {\n\t this._genericHooks = _hooks;\n\t },\n\t\n\t _add: function _add(route) {\n\t var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t var hooks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\t\n\t if (typeof route === 'string') {\n\t route = encodeURI(route);\n\t }\n\t if ((typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object') {\n\t this._routes.push({\n\t route: route,\n\t handler: handler.uses,\n\t name: handler.as,\n\t hooks: hooks || handler.hooks\n\t });\n\t } else {\n\t this._routes.push({ route: route, handler: handler, hooks: hooks });\n\t }\n\t return this._add;\n\t },\n\t _getRoot: function _getRoot() {\n\t if (this.root !== null) return this.root;\n\t this.root = root(this._cLoc().split('?')[0], this._routes);\n\t return this.root;\n\t },\n\t _listen: function _listen() {\n\t var _this3 = this;\n\t\n\t if (this._usePushState) {\n\t window.addEventListener('popstate', this._onLocationChange);\n\t } else if (isHashChangeAPIAvailable()) {\n\t window.addEventListener('hashchange', this._onLocationChange);\n\t } else {\n\t var cached = this._cLoc(),\n\t current = void 0,\n\t _check = void 0;\n\t\n\t _check = function check() {\n\t current = _this3._cLoc();\n\t if (cached !== current) {\n\t cached = current;\n\t _this3.resolve();\n\t }\n\t _this3._listenningInterval = setTimeout(_check, 200);\n\t };\n\t _check();\n\t }\n\t },\n\t _cLoc: function _cLoc() {\n\t if (typeof window !== 'undefined') {\n\t if (typeof window.__NAVIGO_WINDOW_LOCATION_MOCK__ !== 'undefined') {\n\t return window.__NAVIGO_WINDOW_LOCATION_MOCK__;\n\t }\n\t return clean(window.location.href);\n\t }\n\t return '';\n\t },\n\t _findLinks: function _findLinks() {\n\t return [].slice.call(document.querySelectorAll('[data-navigo]'));\n\t },\n\t _onLocationChange: function _onLocationChange() {\n\t this.resolve();\n\t },\n\t _callLeave: function _callLeave() {\n\t if (this._lastRouteResolved && this._lastRouteResolved.hooks && this._lastRouteResolved.hooks.leave) {\n\t this._lastRouteResolved.hooks.leave();\n\t }\n\t }\n\t};\n\t\n\tNavigo.PARAMETER_REGEXP = /([:*])(\\w+)/g;\n\tNavigo.WILDCARD_REGEXP = /\\*/g;\n\tNavigo.REPLACE_VARIABLE_REGEXP = '([^\\/]+)';\n\tNavigo.REPLACE_WILDCARD = '(?:.*)';\n\tNavigo.FOLLOWED_BY_SLASH_REGEXP = '(?:\\/$|$)';\n\tNavigo.MATCH_REGEXP_FLAGS = '';\n\t\n\texports.default = Navigo;\n\tmodule.exports = exports['default'];\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** navigo.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap f5225fc9e89df39f2379\n **/","function isPushStateAvailable() {\n return !!(\n typeof window !== 'undefined' &&\n window.history &&\n window.history.pushState\n );\n}\n\nfunction Navigo(r, useHash, hash) {\n this.root = null;\n this._routes = [];\n this._useHash = useHash;\n this._hash = typeof hash === 'undefined' ? '#' : hash;\n this._paused = false;\n this._destroyed = false;\n this._lastRouteResolved = null;\n this._notFoundHandler = null;\n this._defaultHandler = null;\n this._usePushState = !useHash && isPushStateAvailable();\n this._onLocationChange = this._onLocationChange.bind(this);\n this._genericHooks = null;\n\n if (r) {\n this.root = useHash ? r.replace(/\\/$/, '/' + this._hash) : r.replace(/\\/$/, '');\n } else if (useHash) {\n this.root = this._cLoc().split(this._hash)[0].replace(/\\/$/, '/' + this._hash);\n }\n\n this._listen();\n this.updatePageLinks();\n}\n\nfunction clean(s) {\n if (s instanceof RegExp) return s;\n return s.replace(/\\/+$/, '').replace(/^\\/+/, '^/');\n}\n\nfunction regExpResultToParams(match, names) {\n if (names.length === 0) return null;\n if (!match) return null;\n return match\n .slice(1, match.length)\n .reduce((params, value, index) => {\n if (params === null) params = {};\n params[names[index]] = decodeURIComponent(value);\n return params;\n }, null);\n}\n\nfunction replaceDynamicURLParts(route) {\n var paramNames = [], regexp;\n\n if (route instanceof RegExp) {\n regexp = route;\n } else {\n regexp = new RegExp(\n route.replace(Navigo.PARAMETER_REGEXP, function (full, dots, name) {\n paramNames.push(name);\n return Navigo.REPLACE_VARIABLE_REGEXP;\n })\n .replace(Navigo.WILDCARD_REGEXP, Navigo.REPLACE_WILDCARD) + Navigo.FOLLOWED_BY_SLASH_REGEXP\n , Navigo.MATCH_REGEXP_FLAGS);\n }\n return { regexp, paramNames };\n}\n\nfunction getUrlDepth(url) {\n return url.replace(/\\/$/, '').split('/').length;\n}\n\nfunction compareUrlDepth(urlA, urlB) {\n return getUrlDepth(urlB) - getUrlDepth(urlA);\n}\n\nfunction findMatchedRoutes(url, routes = []) {\n return routes\n .map(route => {\n var { regexp, paramNames } = replaceDynamicURLParts(clean(route.route));\n var match = url.replace(/^\\/+/, '/').match(regexp);\n var params = regExpResultToParams(match, paramNames);\n\n return match ? { match, route, params } : false;\n })\n .filter(m => m);\n}\n\nfunction match(url, routes) {\n return findMatchedRoutes(url, routes)[0] || false;\n}\n\nfunction root(url, routes) {\n var matched = routes.map(\n route => route.route === '' || route.route === '*' ? url : url.split(new RegExp(route.route + '($|\\/)'))[0]\n );\n var fallbackURL = clean(url);\n\n if (matched.length > 1) {\n return matched.reduce((result, url) => {\n if (result.length > url.length) result = url;\n return result;\n }, matched[0]);\n } else if (matched.length === 1) {\n return matched[0];\n }\n return fallbackURL;\n}\n\nfunction isHashChangeAPIAvailable() {\n return !!(\n typeof window !== 'undefined' &&\n 'onhashchange' in window\n );\n}\n\nfunction extractGETParameters(url) {\n return url.split(/\\?(.*)?$/).slice(1).join('');\n}\n\nfunction getOnlyURL(url, useHash, hash) {\n var onlyURL = url.split(/\\?(.*)?$/)[0], split;\n\n if (typeof hash === 'undefined') {\n // To preserve BC\n hash = '#';\n }\n\n if (isPushStateAvailable() && !useHash) {\n onlyURL = onlyURL.split(hash)[0];\n } else {\n split = onlyURL.split(hash);\n onlyURL = split.length > 1 ? onlyURL.split(hash)[1] : split[0];\n }\n\n return onlyURL;\n}\n\nfunction manageHooks(handler, hooks, params) {\n if (hooks && typeof hooks === 'object') {\n if (hooks.before) {\n hooks.before((shouldRoute = true) => {\n if (!shouldRoute) return;\n handler();\n hooks.after && hooks.after(params);\n }, params);\n } else if (hooks.after) {\n handler();\n hooks.after && hooks.after(params);\n }\n return;\n }\n handler();\n};\n\nfunction isHashedRoot(url, useHash, hash) {\n if (isPushStateAvailable() && !useHash) {\n return false;\n }\n\n if (!url.match(hash)) {\n return false;\n }\n\n let split = url.split(hash);\n\n if (split.length < 2 || split[1] === '') {\n return true;\n }\n\n return false;\n};\n\nNavigo.prototype = {\n helpers: {\n match,\n root,\n clean\n },\n navigate: function (path, absolute) {\n var to;\n\n path = path || '';\n if (this._usePushState) {\n to = (!absolute ? this._getRoot() + '/' : '') + path.replace(/^\\/+/, '/');\n to = to.replace(/([^:])(\\/{2,})/g, '$1/');\n history[this._paused ? 'replaceState' : 'pushState']({}, '', to);\n this.resolve();\n } else if (typeof window !== 'undefined') {\n path = path.replace(new RegExp('^' + this._hash), '');\n window.location.href =\n window.location.href\n .replace(/#$/, '')\n .replace(new RegExp(this._hash + '.*$'), '') + this._hash + path;\n }\n return this;\n },\n on: function (...args) {\n if (typeof args[0] === 'function') {\n this._defaultHandler = { handler: args[0], hooks: args[1] };\n } else if (args.length >= 2) {\n if (args[0] === '/') {\n let func = args[1];\n\n if (typeof args[1] === 'object') {\n func = args[1].uses;\n }\n\n this._defaultHandler = { handler: func, hooks: args[2] };\n } else {\n this._add(args[0], args[1], args[2]);\n }\n } else if (typeof args[0] === 'object') {\n let orderedRoutes = Object.keys(args[0]).sort(compareUrlDepth);\n\n orderedRoutes.forEach(route => {\n this.on(route, args[0][route]);\n });\n }\n return this;\n },\n off: function (handler) {\n if (this._defaultHandler !== null && handler === this._defaultHandler.handler) {\n this._defaultHandler = null;\n } else if (this._notFoundHandler !== null && handler === this._notFoundHandler.handler) {\n this._notFoundHandler = null;\n }\n this._routes = this._routes.reduce((result, r) => {\n if (r.handler !== handler) result.push(r);\n return result;\n }, []);\n return this;\n },\n notFound: function (handler, hooks) {\n this._notFoundHandler = { handler, hooks: hooks };\n return this;\n },\n resolve: function (current) {\n var handler, m;\n var url = (current || this._cLoc()).replace(this._getRoot(), '');\n\n if (this._useHash) {\n url = url.replace(new RegExp('^\\/' + this._hash), '/');\n }\n\n let GETParameters = extractGETParameters(current || this._cLoc());\n let onlyURL = getOnlyURL(url, this._useHash, this._hash);\n\n if (this._paused) return false;\n\n if (\n this._lastRouteResolved &&\n onlyURL === this._lastRouteResolved.url &&\n GETParameters === this._lastRouteResolved.query\n ) {\n if (this._lastRouteResolved.hooks && this._lastRouteResolved.hooks.already) {\n this._lastRouteResolved.hooks.already(this._lastRouteResolved.params);\n }\n return false;\n }\n\n m = match(onlyURL, this._routes);\n\n if (m) {\n this._callLeave();\n this._lastRouteResolved = { url: onlyURL, query: GETParameters, hooks: m.route.hooks, params: m.params };\n handler = m.route.handler;\n manageHooks(() => {\n manageHooks(() => {\n m.route.route instanceof RegExp ?\n handler(...(m.match.slice(1, m.match.length))) :\n handler(m.params, GETParameters);\n }, m.route.hooks, m.params, this._genericHooks);\n }, this._genericHooks, m.params);\n return m;\n } else if (this._defaultHandler && (\n onlyURL === '' ||\n onlyURL === '/' ||\n onlyURL === this._hash ||\n isHashedRoot(onlyURL, this._useHash, this._hash)\n )) {\n manageHooks(() => {\n manageHooks(() => {\n this._callLeave();\n this._lastRouteResolved = { url: onlyURL, query: GETParameters, hooks: this._defaultHandler.hooks };\n this._defaultHandler.handler(GETParameters);\n }, this._defaultHandler.hooks);\n }, this._genericHooks);\n return true;\n } else if (this._notFoundHandler) {\n manageHooks(() => {\n manageHooks(() => {\n this._callLeave();\n this._lastRouteResolved = { url: onlyURL, query: GETParameters, hooks: this._notFoundHandler.hooks };\n this._notFoundHandler.handler(GETParameters);\n }, this._notFoundHandler.hooks);\n }, this._genericHooks);\n }\n return false;\n },\n destroy: function () {\n this._routes = [];\n this._destroyed = true;\n clearTimeout(this._listenningInterval);\n if (typeof window !== 'undefined') {\n window.removeEventListener('popstate', this._onLocationChange);\n window.removeEventListener('hashchange', this._onLocationChange);\n }\n },\n updatePageLinks: function () {\n var self = this;\n\n if (typeof document === 'undefined') return;\n\n this._findLinks().forEach(link => {\n if (!link.hasListenerAttached) {\n link.addEventListener('click', function (e) {\n var location = self.getLinkPath(link);\n\n if (!self._destroyed) {\n e.preventDefault();\n self.navigate(location.replace(/\\/+$/, '').replace(/^\\/+/, '/'));\n }\n });\n link.hasListenerAttached = true;\n }\n });\n },\n generate: function (name, data = {}) {\n var result = this._routes.reduce((result, route) => {\n var key;\n\n if (route.name === name) {\n result = route.route;\n for (key in data) {\n result = result.toString().replace(':' + key, data[key]);\n }\n }\n return result;\n }, '');\n\n return this._useHash ? this._hash + result : result;\n },\n link: function (path) {\n return this._getRoot() + path;\n },\n pause: function (status = true) {\n this._paused = status;\n },\n resume: function () {\n this.pause(false);\n },\n disableIfAPINotAvailable: function () {\n if (!isPushStateAvailable()) {\n this.destroy();\n }\n },\n lastRouteResolved() {\n return this._lastRouteResolved;\n },\n getLinkPath(link) {\n return link.pathname || link.getAttribute('href');\n },\n hooks(hooks) {\n this._genericHooks = hooks;\n },\n _add: function (route, handler = null, hooks = null) {\n if (typeof route === 'string') {\n route = encodeURI(route);\n }\n if (typeof handler === 'object') {\n this._routes.push({\n route,\n handler: handler.uses,\n name: handler.as,\n hooks: hooks || handler.hooks\n });\n } else {\n this._routes.push({ route, handler, hooks: hooks });\n }\n return this._add;\n },\n _getRoot: function () {\n if (this.root !== null) return this.root;\n this.root = root(this._cLoc().split('?')[0], this._routes);\n return this.root;\n },\n _listen: function () {\n if (this._usePushState) {\n window.addEventListener('popstate', this._onLocationChange);\n } else if (isHashChangeAPIAvailable()) {\n window.addEventListener('hashchange', this._onLocationChange);\n } else {\n let cached = this._cLoc(), current, check;\n\n check = () => {\n current = this._cLoc();\n if (cached !== current) {\n cached = current;\n this.resolve();\n }\n this._listenningInterval = setTimeout(check, 200);\n };\n check();\n }\n },\n _cLoc: function () {\n if (typeof window !== 'undefined') {\n if (typeof window.__NAVIGO_WINDOW_LOCATION_MOCK__ !== 'undefined') {\n return window.__NAVIGO_WINDOW_LOCATION_MOCK__;\n }\n return clean(window.location.href);\n }\n return '';\n },\n _findLinks: function () {\n return [].slice.call(document.querySelectorAll('[data-navigo]'));\n },\n _onLocationChange: function () {\n this.resolve();\n },\n _callLeave() {\n if (this._lastRouteResolved && this._lastRouteResolved.hooks && this._lastRouteResolved.hooks.leave) {\n this._lastRouteResolved.hooks.leave();\n }\n }\n};\n\nNavigo.PARAMETER_REGEXP = /([:*])(\\w+)/g;\nNavigo.WILDCARD_REGEXP = /\\*/g;\nNavigo.REPLACE_VARIABLE_REGEXP = '([^\\/]+)';\nNavigo.REPLACE_WILDCARD = '(?:.*)';\nNavigo.FOLLOWED_BY_SLASH_REGEXP = '(?:\\/$|$)';\nNavigo.MATCH_REGEXP_FLAGS = '';\n\nexport default Navigo;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/"],"sourceRoot":""}