Mini Shell

Direktori : /home/funerariamayer/www/app/
Upload File :
Current File : /home/funerariamayer/www/app/node_modules_ionic_core_dist_esm_ion-route_4_entry_js.js.map

{"version":3,"file":"node_modules_ionic_core_dist_esm_ion-route_4_entry_js.js","mappings":"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","sources":["./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as registerInstance, e as createEvent, i as getElement, h, H as Host } from './index-06cd27b1.js';\nimport { c as componentOnReady, o as debounce } from './helpers-eed79a2b.js';\nimport { b as getIonMode } from './ionic-global-a049bcbf.js';\nimport { o as openURL, c as createColorClasses } from './theme-a24ff1ad.js';\n\nlet Route = class {\n  constructor(hostRef) {\n    registerInstance(this, hostRef);\n    this.ionRouteDataChanged = createEvent(this, \"ionRouteDataChanged\", 7);\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  }\n  onUpdate(newValue) {\n    this.ionRouteDataChanged.emit(newValue);\n  }\n  onComponentProps(newValue, oldValue) {\n    if (newValue === oldValue) {\n      return;\n    }\n    const keys1 = newValue ? Object.keys(newValue) : [];\n    const keys2 = oldValue ? Object.keys(oldValue) : [];\n    if (keys1.length !== keys2.length) {\n      this.onUpdate(newValue);\n      return;\n    }\n    for (const key of keys1) {\n      if (newValue[key] !== oldValue[key]) {\n        this.onUpdate(newValue);\n        return;\n      }\n    }\n  }\n  connectedCallback() {\n    this.ionRouteDataChanged.emit();\n  }\n  static get watchers() { return {\n    \"url\": [\"onUpdate\"],\n    \"component\": [\"onUpdate\"],\n    \"componentProps\": [\"onComponentProps\"]\n  }; }\n};\n\nlet RouteRedirect = class {\n  constructor(hostRef) {\n    registerInstance(this, hostRef);\n    this.ionRouteRedirectChanged = createEvent(this, \"ionRouteRedirectChanged\", 7);\n  }\n  propDidChange() {\n    this.ionRouteRedirectChanged.emit();\n  }\n  connectedCallback() {\n    this.ionRouteRedirectChanged.emit();\n  }\n  static get watchers() { return {\n    \"from\": [\"propDidChange\"],\n    \"to\": [\"propDidChange\"]\n  }; }\n};\n\nconst ROUTER_INTENT_NONE = 'root';\nconst ROUTER_INTENT_FORWARD = 'forward';\nconst ROUTER_INTENT_BACK = 'back';\n\n/** Join the non empty segments with \"/\". */\nconst generatePath = (segments) => {\n  const path = segments\n    .filter(s => s.length > 0)\n    .join('/');\n  return '/' + path;\n};\nconst generateUrl = (segments, useHash, queryString) => {\n  let url = generatePath(segments);\n  if (useHash) {\n    url = '#' + url;\n  }\n  if (queryString !== undefined) {\n    url += '?' + queryString;\n  }\n  return url;\n};\nconst writeSegments = (history, root, useHash, segments, direction, state, queryString) => {\n  const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString);\n  if (direction === ROUTER_INTENT_FORWARD) {\n    history.pushState(state, '', url);\n  }\n  else {\n    history.replaceState(state, '', url);\n  }\n};\n/**\n * Transforms a chain to a list of segments.\n *\n * Notes:\n * - parameter segments of the form :param are replaced with their value,\n * - null is returned when a value is missing for any parameter segment.\n */\nconst chainToSegments = (chain) => {\n  const segments = [];\n  for (const route of chain) {\n    for (const segment of route.segments) {\n      if (segment[0] === ':') {\n        const param = route.params && route.params[segment.slice(1)];\n        if (!param) {\n          return null;\n        }\n        segments.push(param);\n      }\n      else if (segment !== '') {\n        segments.push(segment);\n      }\n    }\n  }\n  return segments;\n};\n/**\n * Removes the prefix segments from the path segments.\n *\n * Return:\n * - null when the path segments do not start with the passed prefix,\n * - the path segments after the prefix otherwise.\n */\nconst removePrefix = (prefix, segments) => {\n  if (prefix.length > segments.length) {\n    return null;\n  }\n  if (prefix.length <= 1 && prefix[0] === '') {\n    return segments;\n  }\n  for (let i = 0; i < prefix.length; i++) {\n    if (prefix[i] !== segments[i]) {\n      return null;\n    }\n  }\n  if (segments.length === prefix.length) {\n    return [''];\n  }\n  return segments.slice(prefix.length);\n};\nconst readSegments = (loc, root, useHash) => {\n  const prefix = parsePath(root).segments;\n  const pathname = useHash ? loc.hash.slice(1) : loc.pathname;\n  const segments = parsePath(pathname).segments;\n  return removePrefix(prefix, segments);\n};\n/**\n * Parses the path to:\n * - segments an array of '/' separated parts,\n * - queryString (undefined when no query string).\n */\nconst parsePath = (path) => {\n  let segments = [''];\n  let queryString;\n  if (path != null) {\n    const qsStart = path.indexOf('?');\n    if (qsStart > -1) {\n      queryString = path.substring(qsStart + 1);\n      path = path.substring(0, qsStart);\n    }\n    segments = path.split('/')\n      .map(s => s.trim())\n      .filter(s => s.length > 0);\n    if (segments.length === 0) {\n      segments = [''];\n    }\n  }\n  return { segments, queryString };\n};\n\nconst printRoutes = (routes) => {\n  console.group(`[ion-core] ROUTES[${routes.length}]`);\n  for (const chain of routes) {\n    const segments = [];\n    chain.forEach(r => segments.push(...r.segments));\n    const ids = chain.map(r => r.id);\n    console.debug(`%c ${generatePath(segments)}`, 'font-weight: bold; padding-left: 20px', '=>\\t', `(${ids.join(', ')})`);\n  }\n  console.groupEnd();\n};\nconst printRedirects = (redirects) => {\n  console.group(`[ion-core] REDIRECTS[${redirects.length}]`);\n  for (const redirect of redirects) {\n    if (redirect.to) {\n      console.debug('FROM: ', `$c ${generatePath(redirect.from)}`, 'font-weight: bold', ' TO: ', `$c ${generatePath(redirect.to.segments)}`, 'font-weight: bold');\n    }\n  }\n  console.groupEnd();\n};\n\n/**\n * Activates the passed route chain.\n *\n * There must be exactly one outlet per route entry in the chain.\n *\n * The methods calls setRouteId on each of the outlet with the corresponding route entry in the chain.\n * setRouteId will create or select the view in the outlet.\n */\nconst writeNavState = async (root, chain, direction, index, changed = false, animation) => {\n  try {\n    // find next navigation outlet in the DOM\n    const outlet = searchNavNode(root);\n    // make sure we can continue interacting the DOM, otherwise abort\n    if (index >= chain.length || !outlet) {\n      return changed;\n    }\n    await new Promise(resolve => componentOnReady(outlet, resolve));\n    const route = chain[index];\n    const result = await outlet.setRouteId(route.id, route.params, direction, animation);\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    // recursively set nested outlets\n    changed = await writeNavState(result.element, chain, direction, index + 1, changed, animation);\n    // once all nested outlets are visible let's make the parent visible too,\n    // using markVisible prevents flickering\n    if (result.markVisible) {\n      await result.markVisible();\n    }\n    return changed;\n  }\n  catch (e) {\n    console.error(e);\n    return false;\n  }\n};\n/**\n * Recursively walks the outlet in the DOM.\n *\n * The function returns a list of RouteID corresponding to each of the outlet and the last outlet without a RouteID.\n */\nconst readNavState = async (root) => {\n  const ids = [];\n  let outlet;\n  let node = root;\n  while (outlet = searchNavNode(node)) {\n    const id = await outlet.getRouteId();\n    if (id) {\n      node = id.element;\n      id.element = undefined;\n      ids.push(id);\n    }\n    else {\n      break;\n    }\n  }\n  return { ids, outlet };\n};\nconst waitUntilNavNode = () => {\n  if (searchNavNode(document.body)) {\n    return Promise.resolve();\n  }\n  return new Promise(resolve => {\n    window.addEventListener('ionNavWillLoad', () => resolve(), { once: true });\n  });\n};\n/** Selector for all the outlets supported by the router. */\nconst OUTLET_SELECTOR = ':not([no-router]) ion-nav, :not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';\nconst searchNavNode = (root) => {\n  if (!root) {\n    return undefined;\n  }\n  if (root.matches(OUTLET_SELECTOR)) {\n    return root;\n  }\n  const outlet = root.querySelector(OUTLET_SELECTOR);\n  return outlet !== null && outlet !== void 0 ? outlet : undefined;\n};\n\n/**\n * Returns whether the given redirect matches the given path segments.\n *\n * A redirect matches when the segments of the path and redirect.from are equal.\n * Note that segments are only checked until redirect.from contains a '*' which matches any path segment.\n * The path ['some', 'path', 'to', 'page'] matches both ['some', 'path', 'to', 'page'] and ['some', 'path', '*'].\n */\nconst matchesRedirect = (segments, redirect) => {\n  const { from, to } = redirect;\n  if (to === undefined) {\n    return false;\n  }\n  if (from.length > segments.length) {\n    return false;\n  }\n  for (let i = 0; i < from.length; i++) {\n    const expected = from[i];\n    if (expected === '*') {\n      return true;\n    }\n    if (expected !== segments[i]) {\n      return false;\n    }\n  }\n  return from.length === segments.length;\n};\n/** Returns the first redirect matching the path segments or undefined when no match found. */\nconst findRouteRedirect = (segments, redirects) => {\n  return redirects.find(redirect => matchesRedirect(segments, redirect));\n};\nconst matchesIDs = (ids, chain) => {\n  const len = Math.min(ids.length, chain.length);\n  let score = 0;\n  for (let i = 0; i < len; i++) {\n    const routeId = ids[i];\n    const routeChain = chain[i];\n    // Skip results where the route id does not match the chain at the same index\n    if (routeId.id.toLowerCase() !== routeChain.id) {\n      break;\n    }\n    if (routeId.params) {\n      const routeIdParams = Object.keys(routeId.params);\n      // Only compare routes with the chain that have the same number of parameters.\n      if (routeIdParams.length === routeChain.segments.length) {\n        // Maps the route's params into a path based on the path variable names,\n        // to compare against the route chain format.\n        //\n        // Before:\n        // ```ts\n        // {\n        //  params: {\n        //    s1: 'a',\n        //    s2: 'b'\n        //  }\n        // }\n        // ```\n        //\n        // After:\n        // ```ts\n        // [':s1',':s2']\n        // ```\n        //\n        const pathWithParams = routeIdParams.map(key => `:${key}`);\n        for (let j = 0; j < pathWithParams.length; j++) {\n          // Skip results where the path variable is not a match\n          if (pathWithParams[j].toLowerCase() !== routeChain.segments[j]) {\n            break;\n          }\n          // Weight path matches for the same index higher.\n          score++;\n        }\n      }\n    }\n    // Weight id matches\n    score++;\n  }\n  return score;\n};\n/**\n * Matches the segments against the chain.\n *\n * Returns:\n * - null when there is no match,\n * - a chain with the params properties updated with the parameter segments on match.\n */\nconst matchesSegments = (segments, chain) => {\n  const inputSegments = new RouterSegments(segments);\n  let matchesDefault = false;\n  let allparams;\n  for (let i = 0; i < chain.length; i++) {\n    const chainSegments = chain[i].segments;\n    if (chainSegments[0] === '') {\n      matchesDefault = true;\n    }\n    else {\n      for (const segment of chainSegments) {\n        const data = inputSegments.next();\n        // data param\n        if (segment[0] === ':') {\n          if (data === '') {\n            return null;\n          }\n          allparams = allparams || [];\n          const 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  const matches = (matchesDefault)\n    ? matchesDefault === (inputSegments.next() === '')\n    : true;\n  if (!matches) {\n    return null;\n  }\n  if (allparams) {\n    return chain.map((route, i) => ({\n      id: route.id,\n      segments: route.segments,\n      params: mergeParams(route.params, allparams[i]),\n      beforeEnter: route.beforeEnter,\n      beforeLeave: route.beforeLeave\n    }));\n  }\n  return chain;\n};\n/**\n * Merges the route parameter objects.\n * Returns undefined when both parameters are undefined.\n */\nconst mergeParams = (a, b) => {\n  return a || b ? Object.assign(Object.assign({}, a), b) : undefined;\n};\n/**\n * Finds the best match for the ids in the chains.\n *\n * Returns the best match or null when no match is found.\n * When a chain is returned the parameters are updated from the RouteIDs.\n * That is they contain both the componentProps of the <ion-route> and the parameter segment.\n */\nconst findChainForIDs = (ids, chains) => {\n  let match = null;\n  let maxMatches = 0;\n  for (const chain of chains) {\n    const score = matchesIDs(ids, chain);\n    if (score > maxMatches) {\n      match = chain;\n      maxMatches = score;\n    }\n  }\n  if (match) {\n    return match.map((route, i) => {\n      var _a;\n      return ({\n        id: route.id,\n        segments: route.segments,\n        params: mergeParams(route.params, (_a = ids[i]) === null || _a === void 0 ? void 0 : _a.params)\n      });\n    });\n  }\n  return null;\n};\n/**\n * Finds the best match for the segments in the chains.\n *\n * Returns the best match or null when no match is found.\n * When a chain is returned the parameters are updated from the segments.\n * That is they contain both the componentProps of the <ion-route> and the parameter segments.\n */\nconst findChainForSegments = (segments, chains) => {\n  let match = null;\n  let bestScore = 0;\n  for (const chain of chains) {\n    const matchedChain = matchesSegments(segments, chain);\n    if (matchedChain !== null) {\n      const score = computePriority(matchedChain);\n      if (score > bestScore) {\n        bestScore = score;\n        match = matchedChain;\n      }\n    }\n  }\n  return match;\n};\n/**\n * Computes the priority of a chain.\n *\n * Parameter segments are given a lower priority over fixed segments.\n *\n * Considering the following 2 chains matching the path /path/to/page:\n * - /path/to/:where\n * - /path/to/page\n *\n * The second one will be given a higher priority because \"page\" is a fixed segment (vs \":where\", a parameter segment).\n */\nconst computePriority = (chain) => {\n  let score = 1;\n  let level = 1;\n  for (const route of chain) {\n    for (const segment of route.segments) {\n      if (segment[0] === ':') {\n        score += Math.pow(1, level);\n      }\n      else if (segment !== '') {\n        score += Math.pow(2, level);\n      }\n      level++;\n    }\n  }\n  return score;\n};\nclass RouterSegments {\n  constructor(segments) {\n    this.segments = segments.slice();\n  }\n  next() {\n    if (this.segments.length > 0) {\n      return this.segments.shift();\n    }\n    return '';\n  }\n}\n\nconst readProp = (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};\n/**\n * Extracts the redirects (that is <ion-route-redirect> elements inside the root).\n *\n * The redirects are returned as a list of RouteRedirect.\n */\nconst readRedirects = (root) => {\n  return Array.from(root.children)\n    .filter(el => el.tagName === 'ION-ROUTE-REDIRECT')\n    .map(el => {\n    const to = readProp(el, 'to');\n    return {\n      from: parsePath(readProp(el, 'from')).segments,\n      to: to == null ? undefined : parsePath(to),\n    };\n  });\n};\n/**\n * Extracts all the routes (that is <ion-route> elements inside the root).\n *\n * The routes are returned as a list of chains - the flattened tree.\n */\nconst readRoutes = (root) => {\n  return flattenRouterTree(readRouteNodes(root));\n};\n/**\n * Reads the route nodes as a tree modeled after the DOM tree of <ion-route> elements.\n *\n * Note: routes without a component are ignored together with their children.\n */\nconst readRouteNodes = (node) => {\n  return Array.from(node.children)\n    .filter(el => el.tagName === 'ION-ROUTE' && el.component)\n    .map(el => {\n    const component = readProp(el, 'component');\n    return {\n      segments: parsePath(readProp(el, 'url')).segments,\n      id: component.toLowerCase(),\n      params: el.componentProps,\n      beforeLeave: el.beforeLeave,\n      beforeEnter: el.beforeEnter,\n      children: readRouteNodes(el)\n    };\n  });\n};\n/**\n * Flattens a RouterTree in a list of chains.\n *\n * Each chain represents a path from the root node to a terminal node.\n */\nconst flattenRouterTree = (nodes) => {\n  const chains = [];\n  for (const node of nodes) {\n    flattenNode([], chains, node);\n  }\n  return chains;\n};\n/** Flattens a route node recursively and push each branch to the chains list. */\nconst flattenNode = (chain, chains, node) => {\n  chain = [...chain, {\n      id: node.id,\n      segments: node.segments,\n      params: node.params,\n      beforeLeave: node.beforeLeave,\n      beforeEnter: node.beforeEnter\n    }];\n  if (node.children.length === 0) {\n    chains.push(chain);\n    return;\n  }\n  for (const child of node.children) {\n    flattenNode(chain, chains, child);\n  }\n};\n\nlet Router = class {\n  constructor(hostRef) {\n    registerInstance(this, hostRef);\n    this.ionRouteWillChange = createEvent(this, \"ionRouteWillChange\", 7);\n    this.ionRouteDidChange = createEvent(this, \"ionRouteDidChange\", 7);\n    this.previousPath = null;\n    this.busy = false;\n    this.state = 0;\n    this.lastState = 0;\n    /**\n     * The root path to use when matching URLs. By default, this is set to \"/\", but you can specify\n     * an alternate prefix for all URL paths.\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 other side 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  }\n  async componentWillLoad() {\n    await waitUntilNavNode();\n    const canProceed = await this.runGuards(this.getSegments());\n    if (canProceed !== true) {\n      if (typeof canProceed === 'object') {\n        const { redirect } = canProceed;\n        const path = parsePath(redirect);\n        this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString);\n        await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);\n      }\n    }\n    else {\n      await this.onRoutesChanged();\n    }\n  }\n  componentDidLoad() {\n    window.addEventListener('ionRouteRedirectChanged', debounce(this.onRedirectChanged.bind(this), 10));\n    window.addEventListener('ionRouteDataChanged', debounce(this.onRoutesChanged.bind(this), 100));\n  }\n  async onPopState() {\n    const direction = this.historyDirection();\n    let segments = this.getSegments();\n    const canProceed = await this.runGuards(segments);\n    if (canProceed !== true) {\n      if (typeof canProceed === 'object') {\n        segments = parsePath(canProceed.redirect).segments;\n      }\n      else {\n        return false;\n      }\n    }\n    return this.writeNavStateRoot(segments, direction);\n  }\n  onBackButton(ev) {\n    ev.detail.register(0, processNextHandler => {\n      this.back();\n      processNextHandler();\n    });\n  }\n  /** @internal */\n  async canTransition() {\n    const canProceed = await this.runGuards();\n    if (canProceed !== true) {\n      if (typeof canProceed === 'object') {\n        return canProceed.redirect;\n      }\n      else {\n        return false;\n      }\n    }\n    return true;\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  async push(url, direction = 'forward', animation) {\n    if (url.startsWith('.')) {\n      url = (new URL(url, window.location.href)).pathname;\n    }\n    let parsedPath = parsePath(url);\n    const canProceed = await this.runGuards(parsedPath.segments);\n    if (canProceed !== true) {\n      if (typeof canProceed === 'object') {\n        parsedPath = parsePath(canProceed.redirect);\n      }\n      else {\n        return false;\n      }\n    }\n    this.setSegments(parsedPath.segments, direction, parsedPath.queryString);\n    return this.writeNavStateRoot(parsedPath.segments, direction, animation);\n  }\n  /** Go back to previous page in the window.history. */\n  back() {\n    window.history.back();\n    return Promise.resolve(this.waitPromise);\n  }\n  /** @internal */\n  async printDebug() {\n    printRoutes(readRoutes(this.el));\n    printRedirects(readRedirects(this.el));\n  }\n  /** @internal */\n  async navChanged(direction) {\n    if (this.busy) {\n      console.warn('[ion-router] router is busy, navChanged was cancelled');\n      return false;\n    }\n    const { ids, outlet } = await readNavState(window.document.body);\n    const routes = readRoutes(this.el);\n    const chain = findChainForIDs(ids, routes);\n    if (!chain) {\n      console.warn('[ion-router] no matching URL for ', ids.map(i => i.id));\n      return false;\n    }\n    const segments = chainToSegments(chain);\n    if (!segments) {\n      console.warn('[ion-router] router could not match path because some required param is missing');\n      return false;\n    }\n    this.setSegments(segments, direction);\n    await this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, segments, null, ids.length);\n    return true;\n  }\n  /** This handler gets called when a `ion-route-redirect` component is added to the DOM or if the from or to property of such node changes. */\n  onRedirectChanged() {\n    const segments = this.getSegments();\n    if (segments && findRouteRedirect(segments, readRedirects(this.el))) {\n      this.writeNavStateRoot(segments, ROUTER_INTENT_NONE);\n    }\n  }\n  /** This handler gets called when a `ion-route` component is added to the DOM or if the from or to property of such node changes. */\n  onRoutesChanged() {\n    return this.writeNavStateRoot(this.getSegments(), ROUTER_INTENT_NONE);\n  }\n  historyDirection() {\n    var _a;\n    const win = window;\n    if (win.history.state === null) {\n      this.state++;\n      win.history.replaceState(this.state, win.document.title, (_a = win.document.location) === null || _a === void 0 ? void 0 : _a.href);\n    }\n    const state = win.history.state;\n    const lastState = this.lastState;\n    this.lastState = state;\n    if (state > lastState || (state >= lastState && lastState > 0)) {\n      return ROUTER_INTENT_FORWARD;\n    }\n    if (state < lastState) {\n      return ROUTER_INTENT_BACK;\n    }\n    return ROUTER_INTENT_NONE;\n  }\n  async writeNavStateRoot(segments, direction, animation) {\n    if (!segments) {\n      console.error('[ion-router] URL is not part of the routing set');\n      return false;\n    }\n    // lookup redirect rule\n    const redirects = readRedirects(this.el);\n    const redirect = findRouteRedirect(segments, redirects);\n    let redirectFrom = null;\n    if (redirect) {\n      const { segments: toSegments, queryString } = redirect.to;\n      this.setSegments(toSegments, direction, queryString);\n      redirectFrom = redirect.from;\n      segments = toSegments;\n    }\n    // lookup route chain\n    const routes = readRoutes(this.el);\n    const chain = findChainForSegments(segments, routes);\n    if (!chain) {\n      console.error('[ion-router] the path does not match any route');\n      return false;\n    }\n    // write DOM give\n    return this.safeWriteNavState(document.body, chain, direction, segments, redirectFrom, 0, animation);\n  }\n  async safeWriteNavState(node, chain, direction, segments, redirectFrom, index = 0, animation) {\n    const unlock = await this.lock();\n    let changed = false;\n    try {\n      changed = await this.writeNavState(node, chain, direction, segments, redirectFrom, index, animation);\n    }\n    catch (e) {\n      console.error(e);\n    }\n    unlock();\n    return changed;\n  }\n  async lock() {\n    const p = this.waitPromise;\n    let resolve;\n    this.waitPromise = new Promise(r => resolve = r);\n    if (p !== undefined) {\n      await p;\n    }\n    return resolve;\n  }\n  /**\n   * Executes the beforeLeave hook of the source route and the beforeEnter hook of the target route if they exist.\n   *\n   * When the beforeLeave hook does not return true (to allow navigating) then that value is returned early and the beforeEnter is executed.\n   * Otherwise the beforeEnterHook hook of the target route is executed.\n   */\n  async runGuards(to = this.getSegments(), from) {\n    if (from === undefined) {\n      from = parsePath(this.previousPath).segments;\n    }\n    if (!to || !from) {\n      return true;\n    }\n    const routes = readRoutes(this.el);\n    const fromChain = findChainForSegments(from, routes);\n    const beforeLeaveHook = fromChain && fromChain[fromChain.length - 1].beforeLeave;\n    const canLeave = beforeLeaveHook ? await beforeLeaveHook() : true;\n    if (canLeave === false || typeof canLeave === 'object') {\n      return canLeave;\n    }\n    const toChain = findChainForSegments(to, routes);\n    const beforeEnterHook = toChain && toChain[toChain.length - 1].beforeEnter;\n    return beforeEnterHook ? beforeEnterHook() : true;\n  }\n  async writeNavState(node, chain, direction, segments, redirectFrom, index = 0, animation) {\n    if (this.busy) {\n      console.warn('[ion-router] router is busy, transition was cancelled');\n      return false;\n    }\n    this.busy = true;\n    // generate route event and emit will change\n    const routeEvent = this.routeChangeEvent(segments, redirectFrom);\n    if (routeEvent) {\n      this.ionRouteWillChange.emit(routeEvent);\n    }\n    const changed = await writeNavState(node, chain, direction, index, false, animation);\n    this.busy = false;\n    // emit did change\n    if (routeEvent) {\n      this.ionRouteDidChange.emit(routeEvent);\n    }\n    return changed;\n  }\n  setSegments(segments, direction, queryString) {\n    this.state++;\n    writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString);\n  }\n  getSegments() {\n    return readSegments(window.location, this.root, this.useHash);\n  }\n  routeChangeEvent(toSegments, redirectFromSegments) {\n    const from = this.previousPath;\n    const to = generatePath(toSegments);\n    this.previousPath = to;\n    if (to === from) {\n      return null;\n    }\n    const redirectedFrom = redirectFromSegments ? generatePath(redirectFromSegments) : null;\n    return {\n      from,\n      redirectedFrom,\n      to,\n    };\n  }\n  get el() { return getElement(this); }\n};\n\nconst routerLinkCss = \":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-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit}\";\n\nlet RouterLink = class {\n  constructor(hostRef) {\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 = (ev) => {\n      openURL(this.href, ev, this.routerDirection, this.routerAnimation);\n    };\n  }\n  render() {\n    const mode = getIonMode(this);\n    const attrs = {\n      href: this.href,\n      rel: this.rel,\n      target: this.target\n    };\n    return (h(Host, { onClick: this.onClick, class: createColorClasses(this.color, {\n        [mode]: true,\n        'ion-activatable': true\n      }) }, h(\"a\", Object.assign({}, attrs), h(\"slot\", null))));\n  }\n};\nRouterLink.style = routerLinkCss;\n\nexport { Route as ion_route, RouteRedirect as ion_route_redirect, Router as ion_router, RouterLink as ion_router_link };\n"],"names":["r","registerInstance","e","createEvent","i","getElement","h","H","Host","c","componentOnReady","o","debounce","b","getIonMode","openURL","createColorClasses","Route","constructor","hostRef","ionRouteDataChanged","url","onUpdate","newValue","emit","onComponentProps","oldValue","keys1","Object","keys","keys2","length","key","connectedCallback","watchers","RouteRedirect","ionRouteRedirectChanged","propDidChange","ROUTER_INTENT_NONE","ROUTER_INTENT_FORWARD","ROUTER_INTENT_BACK","generatePath","segments","path","filter","s","join","generateUrl","useHash","queryString","undefined","writeSegments","history","root","direction","state","parsePath","pushState","replaceState","chainToSegments","chain","route","segment","param","params","slice","push","removePrefix","prefix","readSegments","loc","pathname","hash","qsStart","indexOf","substring","split","map","trim","printRoutes","routes","console","group","forEach","ids","id","debug","groupEnd","printRedirects","redirects","redirect","to","from","writeNavState","index","changed","animation","outlet","searchNavNode","Promise","resolve","result","setRouteId","element","markVisible","error","readNavState","node","getRouteId","waitUntilNavNode","document","body","window","addEventListener","once","OUTLET_SELECTOR","matches","querySelector","matchesRedirect","expected","findRouteRedirect","find","matchesIDs","len","Math","min","score","routeId","routeChain","toLowerCase","routeIdParams","pathWithParams","j","matchesSegments","inputSegments","RouterSegments","matchesDefault","allparams","chainSegments","data","next","mergeParams","beforeEnter","beforeLeave","a","assign","findChainForIDs","chains","match","maxMatches","_a","findChainForSegments","bestScore","matchedChain","computePriority","level","pow","shift","readProp","el","prop","hasAttribute","getAttribute","readRedirects","Array","children","tagName","readRoutes","flattenRouterTree","readRouteNodes","component","componentProps","nodes","flattenNode","child","Router","ionRouteWillChange","ionRouteDidChange","previousPath","busy","lastState","componentWillLoad","canProceed","runGuards","getSegments","setSegments","writeNavStateRoot","onRoutesChanged","componentDidLoad","onRedirectChanged","bind","onPopState","historyDirection","onBackButton","ev","detail","register","processNextHandler","back","canTransition","startsWith","URL","location","href","parsedPath","waitPromise","printDebug","navChanged","warn","safeWriteNavState","win","title","redirectFrom","toSegments","unlock","lock","p","fromChain","beforeLeaveHook","canLeave","toChain","beforeEnterHook","routeEvent","routeChangeEvent","redirectFromSegments","redirectedFrom","routerLinkCss","RouterLink","routerDirection","onClick","routerAnimation","render","mode","attrs","rel","target","class","color","style","ion_route","ion_route_redirect","ion_router","ion_router_link"],"sourceRoot":"webpack:///"}

Zerion Mini Shell 1.0