{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap f64c5cae70259631aebe","webpack:///./src/index.js"],"names":["PARAMETER_REGEXP","WILDCARD_REGEXP","REPLACE_VARIABLE_REGEXP","REPLACE_WILDCARD","FOLLOWED_BY_SLASH_REGEXP","clean","s","RegExp","replace","regExpResultToParams","match","names","length","slice","reduce","params","value","index","replaceDynamicURLParts","route","paramNames","regexp","full","dots","name","push","getUrlDepth","url","split","compareUrlDepth","urlA","urlB","findMatchedRoutes","routes","map","filter","m","root","matched","u","fallbackURL","substr","current","isPushStateAvailable","window","history","pushState","isHashChangeAPIAvailable","extractGETParameters","useHash","onlyURL","query","GETParameters","join","manageHooks","handler","hooks","before","shouldRoute","after","Navigo","r","_routes","_useHash","_paused","_destroyed","_lastRouteResolved","_notFoundHandler","_defaultHandler","_usePushState","_cLoc","_listen","updatePageLinks","prototype","helpers","navigate","path","absolute","to","_getRoot","resolve","location","href","on","args","_add","orderedRoutes","Object","keys","sort","forEach","notFound","destroy","clearTimeout","_listenningInterval","onpopstate","self","document","_findLinks","link","hasListenerAttached","addEventListener","e","getAttribute","preventDefault","generate","data","result","key","pause","status","resume","disableIfAPINotAvailable","uses","as","onhashchange","cached","check","setTimeout","call","querySelectorAll"],"mappings":"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","file":"navigo.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 **/"," \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 f64c5cae70259631aebe\n **/","const PARAMETER_REGEXP = /([:*])(\\w+)/g;\nconst WILDCARD_REGEXP = /\\*/g;\nconst REPLACE_VARIABLE_REGEXP = '([^\\/]+)';\nconst REPLACE_WILDCARD = '(?:.*)';\nconst FOLLOWED_BY_SLASH_REGEXP = '(?:\\/$|$)';\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]] = 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 clean(route)\n .replace(PARAMETER_REGEXP, function (full, dots, name) {\n paramNames.push(name);\n return REPLACE_VARIABLE_REGEXP;\n })\n .replace(WILDCARD_REGEXP, REPLACE_WILDCARD) + FOLLOWED_BY_SLASH_REGEXP\n );\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(urlA) < getUrlDepth(urlB);\n}\n\nfunction findMatchedRoutes(url, routes = []) {\n return routes\n .map(route => {\n var { regexp, paramNames } = replaceDynamicURLParts(route.route);\n var match = url.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 = findMatchedRoutes(\n url,\n routes.filter(route => {\n let u = clean(route.route);\n\n return u !== '' && u !== '*';\n })\n );\n var fallbackURL = clean(url);\n\n if (matched.length > 0) {\n return matched\n .map(m => clean(url.substr(0, m.match.index)))\n .reduce((root, current) => {\n return current.length < root.length ? current : root;\n }, fallbackURL);\n }\n return fallbackURL;\n}\n\nfunction isPushStateAvailable() {\n return !!(\n typeof window !== 'undefined' &&\n window.history &&\n window.history.pushState\n );\n}\n\nfunction isHashChangeAPIAvailable() {\n return !!(\n typeof window !== 'undefined' &&\n 'onhashchange' in window\n );\n}\n\nfunction extractGETParameters(url, useHash) {\n var [ onlyURL, ...query ] = url.split(/\\?(.*)?$/);\n\n if (!useHash) {\n onlyURL = onlyURL.split('#')[0];\n }\n return { onlyURL, GETParameters: query.join('') };\n}\n\nfunction manageHooks(handler, route) {\n if (route && route.hooks && typeof route.hooks === 'object') {\n if (route.hooks.before) {\n route.hooks.before((shouldRoute = true) => {\n if (!shouldRoute) return;\n handler();\n route.hooks.after && route.hooks.after();\n });\n } else if (route.hooks.after) {\n handler();\n route.hooks.after && route.hooks.after();\n }\n return;\n }\n handler();\n};\n\nfunction Navigo(r, useHash) {\n this.root = null;\n this._routes = [];\n this._useHash = useHash;\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\n if (r) {\n this.root = r.replace(/\\/$/, '/#');\n } else if (useHash) {\n this.root = this._cLoc().split('#')[0].replace(/\\/$/, '/#');\n }\n\n this._listen();\n this.updatePageLinks();\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 window.location.href = window.location.href.replace(/#(.*)$/, '') + '#' + 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 this._defaultHandler = { handler: args[1], 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._add(route, args[0][route]);\n });\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(/^\\/#/, '/');\n }\n\n let { onlyURL, GETParameters } = extractGETParameters(url, this._useHash);\n\n if (\n this._paused ||\n (\n this._lastRouteResolved &&\n onlyURL === this._lastRouteResolved.url &&\n GETParameters === this._lastRouteResolved.query\n )\n ) { return false; }\n\n m = match(onlyURL, this._routes);\n\n if (m) {\n this._lastRouteResolved = { url: onlyURL, query: GETParameters };\n handler = m.route.handler;\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);\n return m;\n } else if (this._defaultHandler && (onlyURL === '' || onlyURL === '/' || onlyURL === '#')) {\n manageHooks(() => {\n this._lastRouteResolved = { url: onlyURL, query: GETParameters };\n this._defaultHandler.handler(GETParameters);\n }, this._defaultHandler);\n return true;\n } else if (this._notFoundHandler) {\n manageHooks(() => {\n this._lastRouteResolved = { url: onlyURL, query: GETParameters };\n this._notFoundHandler.handler(GETParameters);\n }, this._notFoundHandler);\n }\n return false;\n },\n destroy: function () {\n this._routes = [];\n this._destroyed = true;\n clearTimeout(this._listenningInterval);\n typeof window !== 'undefined' ? window.onpopstate = null : null;\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 = link.getAttribute('href');\n\n if (!self._destroyed) {\n e.preventDefault();\n self.navigate(clean(location));\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.replace(':' + key, data[key]);\n }\n }\n return result;\n }, '');\n\n return this._useHash ? '#' + 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 _add: function (route, handler = null, hooks = null) {\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(), this._routes);\n return this.root;\n },\n _listen: function () {\n if (this._usePushState) {\n window.onpopstate = () => {\n this.resolve();\n };\n } else if (isHashChangeAPIAvailable()) {\n window.onhashchange = () => {\n this.resolve();\n };\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 return clean(window.location.href);\n }\n return '';\n },\n _findLinks: function () {\n return [].slice.call(document.querySelectorAll('[data-navigo]'));\n }\n};\n\nexport default Navigo;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/"],"sourceRoot":""}