{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5/ion-route_4.entry.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/theme-18cbe2cc.js"],"names":["Route","prototype","onUpdate","newValue","this","ionRouteDataChanged","emit","onComponentProps","oldValue","keys1","Object","keys","keys2","length","_i","keys1_1","key","connectedCallback","defineProperty","get","enumerable","configurable","hostRef","url","RouteRedirect","propDidChange","ionRouteRedirectChanged","generatePath","segments","filter","s","join","printRoutes","routes","console","group","routes_1","chain","path","ids","forEach","r","push","apply","map","id","debug","groupEnd","writeNavState","root","direction","index","changed","outlet","result","e_1","_a","label","trys","searchNavNode","componentOnReady","sent","route","setRouteId","params","ROUTER_INTENT_NONE","element","markVisible","error","matches","QUERY","querySelector","undefined","routeRedirect","find","matchesRedirect","input","from","to","i","expected","routerIDsToChain","chains","match","maxMatches","plainIDs","chains_1","score","len","Math","min","toLowerCase","mergeParams","routerPathToChain","chains_2","matchedChain","inputPath","RouterSegments","matchesDefault","path_1","allparams","segment","data","next","slice","level","chain_2","_b","pow","ROUTER_INTENT_FORWARD","parsePath","split","trim","a","b","assign","shift","readRedirects","Array","children","el","tagName","readProp","readRoutes","flattenRouterTree","nodes","readRouteNodes","nodes_1","node","flattenNode","component","Error","componentProps","prop","hasAttribute","getAttribute","sub","Router","class_1","componentWillLoad","document","body","Promise","resolve","window","addEventListener","once","onRoutesChanged","componentDidLoad","onRedirectChanged","bind","onPopState","historyDirection","getPath","writeNavStateRoot","onBackButton","ev","_this","detail","register","back","startsWith","URL","location","href","pathname","setPath","history","waitPromise","printDebug","previousPath","printRedirects","redirects","redirects_1","redirect","navChanged","busy","warn","getRouteId","chain_1","param","safeWriteNavState","win","state","replaceState","title","lastState","redirectFrom","unlock","e_2","lock","p","routeEvent","routeChangeEvent","ionRouteWillChange","ionRouteDidChange","writePath","useHash","pushState","readPath","loc","prefix","hash","redirectFromPath","redirectedFrom","RouterLink","render","mode","attrs","rel","target","onClick","class","color","routerDirection","hostContext","selector","closest","createColorClasses","getClassMap","classes","isArray","c","SCHEME","openURL","router","test","preventDefault"],"mappings":"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","file":"js/chunk-85bd8bec.fdafd8ad.js","sourcesContent":["import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { r as registerInstance, d as createEvent, e as getElement, c as getIonMode, h, H as Host } from './core-feeeff0d.js';\nimport './config-3c7f3790.js';\nimport { e as debounce } from './helpers-46f4a262.js';\nimport { o as openURL, c as createColorClasses } from './theme-18cbe2cc.js';\nvar Route = /** @class */ (function () {\n function Route(hostRef) {\n registerInstance(this, hostRef);\n /**\n * Relative path that needs to match in order for this route to apply.\n *\n * Accepts paths similar to expressjs so that you can define parameters\n * in the url /foo/:bar where bar would be available in incoming props.\n */\n this.url = '';\n this.ionRouteDataChanged = createEvent(this, \"ionRouteDataChanged\", 7);\n }\n Route.prototype.onUpdate = function (newValue) {\n this.ionRouteDataChanged.emit(newValue);\n };\n Route.prototype.onComponentProps = function (newValue, oldValue) {\n if (newValue === oldValue) {\n return;\n }\n var keys1 = newValue ? Object.keys(newValue) : [];\n var keys2 = oldValue ? Object.keys(oldValue) : [];\n if (keys1.length !== keys2.length) {\n this.onUpdate(newValue);\n return;\n }\n for (var _i = 0, keys1_1 = keys1; _i < keys1_1.length; _i++) {\n var key = keys1_1[_i];\n if (newValue[key] !== oldValue[key]) {\n this.onUpdate(newValue);\n return;\n }\n }\n };\n Route.prototype.connectedCallback = function () {\n this.ionRouteDataChanged.emit();\n };\n Object.defineProperty(Route, \"watchers\", {\n get: function () {\n return {\n \"url\": [\"onUpdate\"],\n \"component\": [\"onUpdate\"],\n \"componentProps\": [\"onComponentProps\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n return Route;\n}());\nvar RouteRedirect = /** @class */ (function () {\n function RouteRedirect(hostRef) {\n registerInstance(this, hostRef);\n this.ionRouteRedirectChanged = createEvent(this, \"ionRouteRedirectChanged\", 7);\n }\n RouteRedirect.prototype.propDidChange = function () {\n this.ionRouteRedirectChanged.emit();\n };\n RouteRedirect.prototype.connectedCallback = function () {\n this.ionRouteRedirectChanged.emit();\n };\n Object.defineProperty(RouteRedirect, \"watchers\", {\n get: function () {\n return {\n \"from\": [\"propDidChange\"],\n \"to\": [\"propDidChange\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n return RouteRedirect;\n}());\nvar ROUTER_INTENT_NONE = 'root';\nvar ROUTER_INTENT_FORWARD = 'forward';\nvar ROUTER_INTENT_BACK = 'back';\nvar generatePath = function (segments) {\n var path = segments\n .filter(function (s) { return s.length > 0; })\n .join('/');\n return '/' + path;\n};\nvar chainToPath = function (chain) {\n var path = [];\n for (var _i = 0, chain_1 = chain; _i < chain_1.length; _i++) {\n var route = chain_1[_i];\n for (var _a = 0, _b = route.path; _a < _b.length; _a++) {\n var segment = _b[_a];\n if (segment[0] === ':') {\n var param = route.params && route.params[segment.slice(1)];\n if (!param) {\n return null;\n }\n path.push(param);\n }\n else if (segment !== '') {\n path.push(segment);\n }\n }\n }\n return path;\n};\nvar writePath = function (history, root, useHash, path, direction, state) {\n var url = generatePath(__spreadArrays(parsePath(root), path));\n if (useHash) {\n url = '#' + url;\n }\n if (direction === ROUTER_INTENT_FORWARD) {\n history.pushState(state, '', url);\n }\n else {\n history.replaceState(state, '', url);\n }\n};\nvar removePrefix = function (prefix, path) {\n if (prefix.length > path.length) {\n return null;\n }\n if (prefix.length <= 1 && prefix[0] === '') {\n return path;\n }\n for (var i = 0; i < prefix.length; i++) {\n if (prefix[i].length > 0 && prefix[i] !== path[i]) {\n return null;\n }\n }\n if (path.length === prefix.length) {\n return [''];\n }\n return path.slice(prefix.length);\n};\nvar readPath = function (loc, root, useHash) {\n var pathname = loc.pathname;\n if (useHash) {\n var hash = loc.hash;\n pathname = (hash[0] === '#')\n ? hash.slice(1)\n : '';\n }\n var prefix = parsePath(root);\n var path = parsePath(pathname);\n return removePrefix(prefix, path);\n};\nvar parsePath = function (path) {\n if (path == null) {\n return [''];\n }\n var segments = path.split('/')\n .map(function (s) { return s.trim(); })\n .filter(function (s) { return s.length > 0; });\n if (segments.length === 0) {\n return [''];\n }\n else {\n return segments;\n }\n};\nvar printRoutes = function (routes) {\n console.group(\"[ion-core] ROUTES[\" + routes.length + \"]\");\n var _loop_1 = function (chain) {\n var path = [];\n chain.forEach(function (r) { return path.push.apply(path, r.path); });\n var ids = chain.map(function (r) { return r.id; });\n console.debug(\"%c \" + generatePath(path), 'font-weight: bold; padding-left: 20px', '=>\\t', \"(\" + ids.join(', ') + \")\");\n };\n for (var _i = 0, routes_1 = routes; _i < routes_1.length; _i++) {\n var chain = routes_1[_i];\n _loop_1(chain);\n }\n console.groupEnd();\n};\nvar printRedirects = function (redirects) {\n console.group(\"[ion-core] REDIRECTS[\" + redirects.length + \"]\");\n for (var _i = 0, redirects_1 = redirects; _i < redirects_1.length; _i++) {\n var redirect = redirects_1[_i];\n if (redirect.to) {\n console.debug('FROM: ', \"$c \" + generatePath(redirect.from), 'font-weight: bold', ' TO: ', \"$c \" + generatePath(redirect.to), 'font-weight: bold');\n }\n }\n console.groupEnd();\n};\nvar writeNavState = function (root, chain, direction, index, changed) {\n if (changed === void 0) { changed = false; }\n return __awaiter(void 0, void 0, void 0, function () {\n var outlet, route, result, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 6, , 7]);\n outlet = searchNavNode(root);\n // make sure we can continue interacting the DOM, otherwise abort\n if (index >= chain.length || !outlet) {\n return [2 /*return*/, changed];\n }\n return [4 /*yield*/, outlet.componentOnReady()];\n case 1:\n _a.sent();\n route = chain[index];\n return [4 /*yield*/, outlet.setRouteId(route.id, route.params, direction)];\n case 2:\n result = _a.sent();\n // if the outlet changed the page, reset navigation to neutral (no direction)\n // this means nested outlets will not animate\n if (result.changed) {\n direction = ROUTER_INTENT_NONE;\n changed = true;\n }\n return [4 /*yield*/, writeNavState(result.element, chain, direction, index + 1, changed)];\n case 3:\n // recursively set nested outlets\n changed = _a.sent();\n if (!result.markVisible) return [3 /*break*/, 5];\n return [4 /*yield*/, result.markVisible()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/, changed];\n case 6:\n e_1 = _a.sent();\n console.error(e_1);\n return [2 /*return*/, false];\n case 7: return [2 /*return*/];\n }\n });\n });\n};\nvar readNavState = function (root) { return __awaiter(void 0, void 0, void 0, function () {\n var ids, outlet, node, id;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ids = [];\n node = root;\n _a.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 5];\n outlet = searchNavNode(node);\n if (!outlet) return [3 /*break*/, 3];\n return [4 /*yield*/, outlet.getRouteId()];\n case 2:\n id = _a.sent();\n if (id) {\n node = id.element;\n id.element = undefined;\n ids.push(id);\n }\n else {\n return [3 /*break*/, 5];\n }\n return [3 /*break*/, 4];\n case 3: return [3 /*break*/, 5];\n case 4: return [3 /*break*/, 1];\n case 5: return [2 /*return*/, { ids: ids, outlet: outlet }];\n }\n });\n}); };\nvar waitUntilNavNode = function () {\n if (searchNavNode(document.body)) {\n return Promise.resolve();\n }\n return new Promise(function (resolve) {\n window.addEventListener('ionNavWillLoad', resolve, { once: true });\n });\n};\nvar QUERY = ':not([no-router]) ion-nav, :not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';\nvar searchNavNode = function (root) {\n if (!root) {\n return undefined;\n }\n if (root.matches(QUERY)) {\n return root;\n }\n var outlet = root.querySelector(QUERY);\n return outlet ? outlet : undefined;\n};\nvar matchesRedirect = function (input, route) {\n var from = route.from, to = route.to;\n if (to === undefined) {\n return false;\n }\n if (from.length > input.length) {\n return false;\n }\n for (var i = 0; i < from.length; i++) {\n var expected = from[i];\n if (expected === '*') {\n return true;\n }\n if (expected !== input[i]) {\n return false;\n }\n }\n return from.length === input.length;\n};\nvar routeRedirect = function (path, routes) {\n return routes.find(function (route) { return matchesRedirect(path, route); });\n};\nvar matchesIDs = function (ids, chain) {\n var len = Math.min(ids.length, chain.length);\n var i = 0;\n for (; i < len; i++) {\n if (ids[i].toLowerCase() !== chain[i].id) {\n break;\n }\n }\n return i;\n};\nvar matchesPath = function (inputPath, chain) {\n var segments = new RouterSegments(inputPath);\n var matchesDefault = false;\n var allparams;\n for (var i = 0; i < chain.length; i++) {\n var path = chain[i].path;\n if (path[0] === '') {\n matchesDefault = true;\n }\n else {\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var segment = path_1[_i];\n var data = segments.next();\n // data param\n if (segment[0] === ':') {\n if (data === '') {\n return null;\n }\n allparams = allparams || [];\n var params = allparams[i] || (allparams[i] = {});\n params[segment.slice(1)] = data;\n }\n else if (data !== segment) {\n return null;\n }\n }\n matchesDefault = false;\n }\n }\n var matches = (matchesDefault)\n ? matchesDefault === (segments.next() === '')\n : true;\n if (!matches) {\n return null;\n }\n if (allparams) {\n return chain.map(function (route, i) { return ({\n id: route.id,\n path: route.path,\n params: mergeParams(route.params, allparams[i])\n }); });\n }\n return chain;\n};\nvar mergeParams = function (a, b) {\n if (!a && b) {\n return b;\n }\n else if (a && !b) {\n return a;\n }\n else if (a && b) {\n return Object.assign(Object.assign({}, a), b);\n }\n return undefined;\n};\nvar routerIDsToChain = function (ids, chains) {\n var match = null;\n var maxMatches = 0;\n var plainIDs = ids.map(function (i) { return i.id; });\n for (var _i = 0, chains_1 = chains; _i < chains_1.length; _i++) {\n var chain = chains_1[_i];\n var score = matchesIDs(plainIDs, chain);\n if (score > maxMatches) {\n match = chain;\n maxMatches = score;\n }\n }\n if (match) {\n return match.map(function (route, i) { return ({\n id: route.id,\n path: route.path,\n params: mergeParams(route.params, ids[i] && ids[i].params)\n }); });\n }\n return null;\n};\nvar routerPathToChain = function (path, chains) {\n var match = null;\n var matches = 0;\n for (var _i = 0, chains_2 = chains; _i < chains_2.length; _i++) {\n var chain = chains_2[_i];\n var matchedChain = matchesPath(path, chain);\n if (matchedChain !== null) {\n var score = computePriority(matchedChain);\n if (score > matches) {\n matches = score;\n match = matchedChain;\n }\n }\n }\n return match;\n};\nvar computePriority = function (chain) {\n var score = 1;\n var level = 1;\n for (var _i = 0, chain_2 = chain; _i < chain_2.length; _i++) {\n var route = chain_2[_i];\n for (var _a = 0, _b = route.path; _a < _b.length; _a++) {\n var path = _b[_a];\n if (path[0] === ':') {\n score += Math.pow(1, level);\n }\n else if (path !== '') {\n score += Math.pow(2, level);\n }\n level++;\n }\n }\n return score;\n};\nvar RouterSegments = /** @class */ (function () {\n function RouterSegments(path) {\n this.path = path.slice();\n }\n RouterSegments.prototype.next = function () {\n if (this.path.length > 0) {\n return this.path.shift();\n }\n return '';\n };\n return RouterSegments;\n}());\nvar readRedirects = function (root) {\n return Array.from(root.children)\n .filter(function (el) { return el.tagName === 'ION-ROUTE-REDIRECT'; })\n .map(function (el) {\n var to = readProp(el, 'to');\n return {\n from: parsePath(readProp(el, 'from')),\n to: to == null ? undefined : parsePath(to),\n };\n });\n};\nvar readRoutes = function (root) {\n return flattenRouterTree(readRouteNodes(root));\n};\nvar readRouteNodes = function (root, node) {\n if (node === void 0) { node = root; }\n return Array.from(node.children)\n .filter(function (el) { return el.tagName === 'ION-ROUTE' && el.component; })\n .map(function (el) {\n var component = readProp(el, 'component');\n if (component == null) {\n throw new Error('component missing in ion-route');\n }\n return {\n path: parsePath(readProp(el, 'url')),\n id: component.toLowerCase(),\n params: el.componentProps,\n children: readRouteNodes(root, el)\n };\n });\n};\nvar readProp = function (el, prop) {\n if (prop in el) {\n return el[prop];\n }\n if (el.hasAttribute(prop)) {\n return el.getAttribute(prop);\n }\n return null;\n};\nvar flattenRouterTree = function (nodes) {\n var routes = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n flattenNode([], routes, node);\n }\n return routes;\n};\nvar flattenNode = function (chain, routes, node) {\n var s = chain.slice();\n s.push({\n id: node.id,\n path: node.path,\n params: node.params\n });\n if (node.children.length === 0) {\n routes.push(s);\n return;\n }\n for (var _i = 0, _a = node.children; _i < _a.length; _i++) {\n var sub = _a[_i];\n flattenNode(s, routes, sub);\n }\n};\nvar Router = /** @class */ (function () {\n function class_1(hostRef) {\n registerInstance(this, hostRef);\n this.previousPath = null;\n this.busy = false;\n this.state = 0;\n this.lastState = 0;\n /**\n * By default `ion-router` will match the routes at the root path (\"/\").\n * That can be changed when\n *\n */\n this.root = '/';\n /**\n * The router can work in two \"modes\":\n * - With hash: `/index.html#/path/to/page`\n * - Without hash: `/path/to/page`\n *\n * Using one or another might depend in the requirements of your app and/or where it's deployed.\n *\n * Usually \"hash-less\" navigation works better for SEO and it's more user friendly too, but it might\n * requires additional server-side configuration in order to properly work.\n *\n * On the otherside hash-navigation is much easier to deploy, it even works over the file protocol.\n *\n * By default, this property is `true`, change to `false` to allow hash-less URLs.\n */\n this.useHash = true;\n this.ionRouteWillChange = createEvent(this, \"ionRouteWillChange\", 7);\n this.ionRouteDidChange = createEvent(this, \"ionRouteDidChange\", 7);\n }\n class_1.prototype.componentWillLoad = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.debug('[ion-router] router will load');\n return [4 /*yield*/, waitUntilNavNode()];\n case 1:\n _a.sent();\n console.debug('[ion-router] found nav');\n return [4 /*yield*/, this.onRoutesChanged()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n class_1.prototype.componentDidLoad = function () {\n window.addEventListener('ionRouteRedirectChanged', debounce(this.onRedirectChanged.bind(this), 10));\n window.addEventListener('ionRouteDataChanged', debounce(this.onRoutesChanged.bind(this), 100));\n };\n class_1.prototype.onPopState = function () {\n var direction = this.historyDirection();\n var path = this.getPath();\n console.debug('[ion-router] URL changed -> update nav', path, direction);\n return this.writeNavStateRoot(path, direction);\n };\n class_1.prototype.onBackButton = function (ev) {\n var _this = this;\n ev.detail.register(0, function () { return _this.back(); });\n };\n /**\n * Navigate to the specified URL.\n *\n * @param url The url to navigate to.\n * @param direction The direction of the animation. Defaults to `\"forward\"`.\n */\n class_1.prototype.push = function (url, direction) {\n if (direction === void 0) { direction = 'forward'; }\n if (url.startsWith('.')) {\n url = (new URL(url, window.location.href)).pathname;\n }\n console.debug('[ion-router] URL pushed -> updating nav', url, direction);\n var path = parsePath(url);\n this.setPath(path, direction);\n return this.writeNavStateRoot(path, direction);\n };\n /**\n * Go back to previous page in the window.history.\n */\n class_1.prototype.back = function () {\n window.history.back();\n return Promise.resolve(this.waitPromise);\n };\n /** @internal */\n class_1.prototype.printDebug = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.debug('CURRENT PATH', this.getPath());\n console.debug('PREVIOUS PATH', this.previousPath);\n printRoutes(readRoutes(this.el));\n printRedirects(readRedirects(this.el));\n return [2 /*return*/];\n });\n });\n };\n /** @internal */\n class_1.prototype.navChanged = function (direction) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, ids, outlet, routes, chain, path;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.busy) {\n console.warn('[ion-router] router is busy, navChanged was cancelled');\n return [2 /*return*/, false];\n }\n return [4 /*yield*/, readNavState(window.document.body)];\n case 1:\n _a = _b.sent(), ids = _a.ids, outlet = _a.outlet;\n routes = readRoutes(this.el);\n chain = routerIDsToChain(ids, routes);\n if (!chain) {\n console.warn('[ion-router] no matching URL for ', ids.map(function (i) { return i.id; }));\n return [2 /*return*/, false];\n }\n path = chainToPath(chain);\n if (!path) {\n console.warn('[ion-router] router could not match path because some required param is missing');\n return [2 /*return*/, false];\n }\n console.debug('[ion-router] nav changed -> update URL', ids, path);\n this.setPath(path, direction);\n return [4 /*yield*/, this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, path, null, ids.length)];\n case 2:\n _b.sent();\n return [2 /*return*/, true];\n }\n });\n });\n };\n class_1.prototype.onRedirectChanged = function () {\n var path = this.getPath();\n if (path && routeRedirect(path, readRedirects(this.el))) {\n this.writeNavStateRoot(path, ROUTER_INTENT_NONE);\n }\n };\n class_1.prototype.onRoutesChanged = function () {\n return this.writeNavStateRoot(this.getPath(), ROUTER_INTENT_NONE);\n };\n class_1.prototype.historyDirection = function () {\n var win = window;\n if (win.history.state === null) {\n this.state++;\n win.history.replaceState(this.state, win.document.title, win.document.location && win.document.location.href);\n }\n var state = win.history.state;\n var lastState = this.lastState;\n this.lastState = state;\n if (state > lastState) {\n return ROUTER_INTENT_FORWARD;\n }\n else if (state < lastState) {\n return ROUTER_INTENT_BACK;\n }\n else {\n return ROUTER_INTENT_NONE;\n }\n };\n class_1.prototype.writeNavStateRoot = function (path, direction) {\n return __awaiter(this, void 0, void 0, function () {\n var redirects, redirect, redirectFrom, routes, chain;\n return __generator(this, function (_a) {\n if (!path) {\n console.error('[ion-router] URL is not part of the routing set');\n return [2 /*return*/, false];\n }\n redirects = readRedirects(this.el);\n redirect = routeRedirect(path, redirects);\n redirectFrom = null;\n if (redirect) {\n this.setPath(redirect.to, direction);\n redirectFrom = redirect.from;\n path = redirect.to;\n }\n routes = readRoutes(this.el);\n chain = routerPathToChain(path, routes);\n if (!chain) {\n console.error('[ion-router] the path does not match any route');\n return [2 /*return*/, false];\n }\n // write DOM give\n return [2 /*return*/, this.safeWriteNavState(document.body, chain, direction, path, redirectFrom)];\n });\n });\n };\n class_1.prototype.safeWriteNavState = function (node, chain, direction, path, redirectFrom, index) {\n if (index === void 0) { index = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var unlock, changed, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.lock()];\n case 1:\n unlock = _a.sent();\n changed = false;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.writeNavState(node, chain, direction, path, redirectFrom, index)];\n case 3:\n changed = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n e_2 = _a.sent();\n console.error(e_2);\n return [3 /*break*/, 5];\n case 5:\n unlock();\n return [2 /*return*/, changed];\n }\n });\n });\n };\n class_1.prototype.lock = function () {\n return __awaiter(this, void 0, void 0, function () {\n var p, resolve;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n p = this.waitPromise;\n this.waitPromise = new Promise(function (r) { return resolve = r; });\n if (!(p !== undefined)) return [3 /*break*/, 2];\n return [4 /*yield*/, p];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, resolve];\n }\n });\n });\n };\n class_1.prototype.writeNavState = function (node, chain, direction, path, redirectFrom, index) {\n if (index === void 0) { index = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var routeEvent, changed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.busy) {\n console.warn('[ion-router] router is busy, transition was cancelled');\n return [2 /*return*/, false];\n }\n this.busy = true;\n routeEvent = this.routeChangeEvent(path, redirectFrom);\n if (routeEvent) {\n this.ionRouteWillChange.emit(routeEvent);\n }\n return [4 /*yield*/, writeNavState(node, chain, direction, index)];\n case 1:\n changed = _a.sent();\n this.busy = false;\n if (changed) {\n console.debug('[ion-router] route changed', path);\n }\n // emit did change\n if (routeEvent) {\n this.ionRouteDidChange.emit(routeEvent);\n }\n return [2 /*return*/, changed];\n }\n });\n });\n };\n class_1.prototype.setPath = function (path, direction) {\n this.state++;\n writePath(window.history, this.root, this.useHash, path, direction, this.state);\n };\n class_1.prototype.getPath = function () {\n return readPath(window.location, this.root, this.useHash);\n };\n class_1.prototype.routeChangeEvent = function (path, redirectFromPath) {\n var from = this.previousPath;\n var to = generatePath(path);\n this.previousPath = to;\n if (to === from) {\n return null;\n }\n var redirectedFrom = redirectFromPath ? generatePath(redirectFromPath) : null;\n return {\n from: from,\n redirectedFrom: redirectedFrom,\n to: to,\n };\n };\n Object.defineProperty(class_1.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n return class_1;\n}());\nvar RouterLink = /** @class */ (function () {\n function RouterLink(hostRef) {\n var _this = this;\n registerInstance(this, hostRef);\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n this.onClick = function (ev) {\n openURL(_this.href, ev, _this.routerDirection);\n };\n }\n RouterLink.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n var attrs = {\n href: this.href,\n rel: this.rel,\n target: this.target\n };\n return (h(Host, { onClick: this.onClick, class: Object.assign(Object.assign({}, createColorClasses(this.color)), (_a = {}, _a[mode] = true, _a['ion-activatable'] = true, _a)) }, h(\"a\", Object.assign({}, attrs), h(\"slot\", null))));\n };\n Object.defineProperty(RouterLink, \"style\", {\n get: function () { return \":host{--background:transparent;--color:var(--ion-color-primary,#3880ff);background:var(--background);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}a{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit}\"; },\n enumerable: true,\n configurable: true\n });\n return RouterLink;\n}());\nexport { Route as ion_route, RouteRedirect as ion_route_redirect, Router as ion_router, RouterLink as ion_router_link };\n","import { __awaiter, __generator } from \"tslib\";\nvar hostContext = function (selector, el) {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nvar createColorClasses = function (color) {\n var _a;\n return (typeof color === 'string' && color.length > 0) ? (_a = {\n 'ion-color': true\n },\n _a[\"ion-color-\" + color] = true,\n _a) : undefined;\n};\nvar getClassList = function (classes) {\n if (classes !== undefined) {\n var array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(function (c) { return c != null; })\n .map(function (c) { return c.trim(); })\n .filter(function (c) { return c !== ''; });\n }\n return [];\n};\nvar getClassMap = function (classes) {\n var map = {};\n getClassList(classes).forEach(function (c) { return map[c] = true; });\n return map;\n};\nvar SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nvar openURL = function (url, ev, direction) { return __awaiter(void 0, void 0, void 0, function () {\n var router;\n return __generator(this, function (_a) {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return [2 /*return*/, router.push(url, direction)];\n }\n }\n return [2 /*return*/, false];\n });\n}); };\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n"],"sourceRoot":""}