{"version":3,"sources":["webpack:///./node_modules/aurelia-history-browser/dist/native-modules/aurelia-history-browser.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","LinkHandler","activate","history","deactivate","DefaultLinkHandler","_super","_this","call","handler","e","_a","getEventInfo","shouldHandleEvent","href","preventDefault","navigate","_hasPushState","addEventListener","removeEventListener","event","$event","info","anchor","target","findClosestAnchor","targetIsThisWindow","hasAttribute","altKey","ctrlKey","metaKey","shiftKey","getAttribute","leftButtonClicked","which","isRelative","charAt","test","el","tagName","parentNode","targetWindow","win","global","name","attr","BrowserHistory","linkHandler","_isActive","_checkUrlCallback","_checkUrl","bind","location","options","Error","$history","wantsPushState","pushState","eventName","normalizedOptions","assign","root","rootUrl","replace","rootStripper","wantsHashChange","_wantsHashChange","hashChange","hasPushState","$location","atRoot","pathname","fragment","_getFragment","search","hash","_getHash","routeStripper","replaceState","title","silent","_loadUrl","getAbsoluteRoot","protocol","hostname","port","_b","_c","trigger","_d","absoluteUrl","url","slice","updateHash","navigateBack","back","setTitle","setState","key","value","state","getState","getHistoryIndex","historyIndex","undefined","length","go","movement","substr","forcePushState","location_1","trailingSlash","indexOf","fragmentOverride","routeHandler","inject","configure","config","$config","singleton","transient"],"mappings":"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","file":"npm.aurelia-history-browser.c1db43bfc311ab333a95.js","sourcesContent":["import { History } from 'aurelia-history';\nimport { DOM, PLATFORM } from 'aurelia-pal';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar LinkHandler = (function () {\r\n function LinkHandler() {\r\n }\r\n LinkHandler.prototype.activate = function (history) { };\r\n LinkHandler.prototype.deactivate = function () { };\r\n return LinkHandler;\r\n}());\r\nvar DefaultLinkHandler = (function (_super) {\r\n __extends(DefaultLinkHandler, _super);\r\n function DefaultLinkHandler() {\r\n var _this = _super.call(this) || this;\r\n _this.handler = function (e) {\r\n var _a = DefaultLinkHandler.getEventInfo(e), shouldHandleEvent = _a.shouldHandleEvent, href = _a.href;\r\n if (shouldHandleEvent) {\r\n e.preventDefault();\r\n _this.history.navigate(href);\r\n }\r\n };\r\n return _this;\r\n }\r\n DefaultLinkHandler.prototype.activate = function (history) {\r\n if (history._hasPushState) {\r\n this.history = history;\r\n DOM.addEventListener('click', this.handler, true);\r\n }\r\n };\r\n DefaultLinkHandler.prototype.deactivate = function () {\r\n DOM.removeEventListener('click', this.handler, true);\r\n };\r\n DefaultLinkHandler.getEventInfo = function (event) {\r\n var $event = event;\r\n var info = {\r\n shouldHandleEvent: false,\r\n href: null,\r\n anchor: null\r\n };\r\n var target = DefaultLinkHandler.findClosestAnchor($event.target);\r\n if (!target || !DefaultLinkHandler.targetIsThisWindow(target)) {\r\n return info;\r\n }\r\n if (hasAttribute(target, 'download')\r\n || hasAttribute(target, 'router-ignore')\r\n || hasAttribute(target, 'data-router-ignore')) {\r\n return info;\r\n }\r\n if ($event.altKey || $event.ctrlKey || $event.metaKey || $event.shiftKey) {\r\n return info;\r\n }\r\n var href = target.getAttribute('href');\r\n info.anchor = target;\r\n info.href = href;\r\n var leftButtonClicked = $event.which === 1;\r\n var isRelative = href && !(href.charAt(0) === '#' || (/^[a-z]+:/i).test(href));\r\n info.shouldHandleEvent = leftButtonClicked && isRelative;\r\n return info;\r\n };\r\n DefaultLinkHandler.findClosestAnchor = function (el) {\r\n while (el) {\r\n if (el.tagName === 'A') {\r\n return el;\r\n }\r\n el = el.parentNode;\r\n }\r\n };\r\n DefaultLinkHandler.targetIsThisWindow = function (target) {\r\n var targetWindow = target.getAttribute('target');\r\n var win = PLATFORM.global;\r\n return !targetWindow ||\r\n targetWindow === win.name ||\r\n targetWindow === '_self';\r\n };\r\n return DefaultLinkHandler;\r\n}(LinkHandler));\r\nvar hasAttribute = function (el, attr) { return el.hasAttribute(attr); };\n\nvar BrowserHistory = (function (_super) {\r\n __extends(BrowserHistory, _super);\r\n function BrowserHistory(linkHandler) {\r\n var _this = _super.call(this) || this;\r\n _this._isActive = false;\r\n _this._checkUrlCallback = _this._checkUrl.bind(_this);\r\n _this.location = PLATFORM.location;\r\n _this.history = PLATFORM.history;\r\n _this.linkHandler = linkHandler;\r\n return _this;\r\n }\r\n BrowserHistory.prototype.activate = function (options) {\r\n if (this._isActive) {\r\n throw new Error('History has already been activated.');\r\n }\r\n var $history = this.history;\r\n var wantsPushState = !!options.pushState;\r\n this._isActive = true;\r\n var normalizedOptions = this.options = Object.assign({}, { root: '/' }, this.options, options);\r\n var rootUrl = this.root = ('/' + normalizedOptions.root + '/').replace(rootStripper, '/');\r\n var wantsHashChange = this._wantsHashChange = normalizedOptions.hashChange !== false;\r\n var hasPushState = this._hasPushState = !!(normalizedOptions.pushState && $history && $history.pushState);\r\n var eventName;\r\n if (hasPushState) {\r\n eventName = 'popstate';\r\n }\r\n else if (wantsHashChange) {\r\n eventName = 'hashchange';\r\n }\r\n PLATFORM.addEventListener(eventName, this._checkUrlCallback);\r\n if (wantsHashChange && wantsPushState) {\r\n var $location = this.location;\r\n var atRoot = $location.pathname.replace(/[^\\/]$/, '$&/') === rootUrl;\r\n if (!hasPushState && !atRoot) {\r\n var fragment = this.fragment = this._getFragment(null, true);\r\n $location.replace(rootUrl + $location.search + '#' + fragment);\r\n return true;\r\n }\r\n else if (hasPushState && atRoot && $location.hash) {\r\n var fragment = this.fragment = this._getHash().replace(routeStripper, '');\r\n $history.replaceState({}, DOM.title, rootUrl + fragment + $location.search);\r\n }\r\n }\r\n if (!this.fragment) {\r\n this.fragment = this._getFragment('');\r\n }\r\n this.linkHandler.activate(this);\r\n if (!normalizedOptions.silent) {\r\n return this._loadUrl('');\r\n }\r\n };\r\n BrowserHistory.prototype.deactivate = function () {\r\n var handler = this._checkUrlCallback;\r\n PLATFORM.removeEventListener('popstate', handler);\r\n PLATFORM.removeEventListener('hashchange', handler);\r\n this._isActive = false;\r\n this.linkHandler.deactivate();\r\n };\r\n BrowserHistory.prototype.getAbsoluteRoot = function () {\r\n var $location = this.location;\r\n var origin = createOrigin($location.protocol, $location.hostname, $location.port);\r\n return \"\" + origin + this.root;\r\n };\r\n BrowserHistory.prototype.navigate = function (fragment, _a) {\r\n var _b = _a === void 0 ? {} : _a, _c = _b.trigger, trigger = _c === void 0 ? true : _c, _d = _b.replace, replace = _d === void 0 ? false : _d;\r\n var location = this.location;\r\n if (fragment && absoluteUrl.test(fragment)) {\r\n location.href = fragment;\r\n return true;\r\n }\r\n if (!this._isActive) {\r\n return false;\r\n }\r\n fragment = this._getFragment(fragment || '');\r\n if (this.fragment === fragment && !replace) {\r\n return false;\r\n }\r\n this.fragment = fragment;\r\n var url = this.root + fragment;\r\n if (fragment === '' && url !== '/') {\r\n url = url.slice(0, -1);\r\n }\r\n if (this._hasPushState) {\r\n url = url.replace('//', '/');\r\n this.history[replace ? 'replaceState' : 'pushState']({}, DOM.title, url);\r\n }\r\n else if (this._wantsHashChange) {\r\n updateHash(location, fragment, replace);\r\n }\r\n else {\r\n location.assign(url);\r\n }\r\n if (trigger) {\r\n return this._loadUrl(fragment);\r\n }\r\n return true;\r\n };\r\n BrowserHistory.prototype.navigateBack = function () {\r\n this.history.back();\r\n };\r\n BrowserHistory.prototype.setTitle = function (title) {\r\n DOM.title = title;\r\n };\r\n BrowserHistory.prototype.setState = function (key, value) {\r\n var $history = this.history;\r\n var state = Object.assign({}, $history.state);\r\n var _a = this.location, pathname = _a.pathname, search = _a.search, hash = _a.hash;\r\n state[key] = value;\r\n $history.replaceState(state, null, \"\" + pathname + search + hash);\r\n };\r\n BrowserHistory.prototype.getState = function (key) {\r\n var state = Object.assign({}, this.history.state);\r\n return state[key];\r\n };\r\n BrowserHistory.prototype.getHistoryIndex = function () {\r\n var historyIndex = this.getState('HistoryIndex');\r\n if (historyIndex === undefined) {\r\n historyIndex = this.history.length - 1;\r\n this.setState('HistoryIndex', historyIndex);\r\n }\r\n return historyIndex;\r\n };\r\n BrowserHistory.prototype.go = function (movement) {\r\n this.history.go(movement);\r\n };\r\n BrowserHistory.prototype._getHash = function () {\r\n return this.location.hash.substr(1);\r\n };\r\n BrowserHistory.prototype._getFragment = function (fragment, forcePushState) {\r\n var rootUrl;\r\n if (!fragment) {\r\n if (this._hasPushState || !this._wantsHashChange || forcePushState) {\r\n var location_1 = this.location;\r\n fragment = location_1.pathname + location_1.search;\r\n rootUrl = this.root.replace(trailingSlash, '');\r\n if (!fragment.indexOf(rootUrl)) {\r\n fragment = fragment.substr(rootUrl.length);\r\n }\r\n }\r\n else {\r\n fragment = this._getHash();\r\n }\r\n }\r\n return '/' + fragment.replace(routeStripper, '');\r\n };\r\n BrowserHistory.prototype._checkUrl = function () {\r\n var current = this._getFragment('');\r\n if (current !== this.fragment) {\r\n this._loadUrl('');\r\n }\r\n };\r\n BrowserHistory.prototype._loadUrl = function (fragmentOverride) {\r\n var fragment = this.fragment = this._getFragment(fragmentOverride);\r\n return this.options.routeHandler ?\r\n this.options.routeHandler(fragment) :\r\n false;\r\n };\r\n BrowserHistory.inject = [LinkHandler];\r\n return BrowserHistory;\r\n}(History));\r\nvar routeStripper = /^#?\\/*|\\s+$/g;\r\nvar rootStripper = /^\\/+|\\/+$/g;\r\nvar trailingSlash = /\\/$/;\r\nvar absoluteUrl = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\r\nfunction updateHash($location, fragment, replace) {\r\n if (replace) {\r\n var href = $location.href.replace(/(javascript:|#).*$/, '');\r\n $location.replace(href + '#' + fragment);\r\n }\r\n else {\r\n $location.hash = '#' + fragment;\r\n }\r\n}\r\nfunction createOrigin(protocol, hostname, port) {\r\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\r\n}\n\nfunction configure(config) {\r\n var $config = config;\r\n $config.singleton(History, BrowserHistory);\r\n $config.transient(LinkHandler, DefaultLinkHandler);\r\n}\n\nexport { BrowserHistory, DefaultLinkHandler, LinkHandler, configure };\n//# sourceMappingURL=aurelia-history-browser.js.map\n"],"sourceRoot":""}