{"version":3,"file":"ng-elementum-router.mjs","sources":["../../../../libs/ng-elementum/router/src/location-strategy.ts","../../../../libs/ng-elementum/router/src/provide-web-component-router.ts","../../../../libs/ng-elementum/router/src/ng-elementum-router.ts"],"sourcesContent":["import { LocationChangeListener, LocationStrategy } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\ntype HistoryItem = {\n  state: any;\n  title: string;\n  url: string;\n  queryParams: string;\n};\n\n@Injectable({\n  providedIn: `root`,\n})\nexport class MemoryLocationStrategy extends LocationStrategy {\n  private readonly locationChangeListeners: LocationChangeListener[] = [];\n  protected readonly history: HistoryItem[] = [];\n\n  protected historyIndex = 0;\n\n  protected currentPath = `/`;\n\n  public path(): string {\n    return this.currentPath;\n  }\n\n  public prepareExternalUrl(): string {\n    return ``;\n  }\n\n  public getState(): unknown {\n    return this.history[this.historyIndex]?.state ?? {};\n  }\n\n  public pushState(\n    state: any,\n    title: string,\n    url: string,\n    queryParams: string\n  ): void {\n    this.historyIndex += 1;\n    this.history[this.historyIndex] = { state, title, url, queryParams };\n  }\n\n  public replaceState(\n    state: any,\n    title: string,\n    url: string,\n    queryParams: string\n  ): void {\n    this.historyIndex = Math.max(0, this.historyIndex);\n    this.history[this.historyIndex] = { state, title, url, queryParams };\n  }\n\n  public forward(): void {\n    const originHistoryIndex = this.historyIndex;\n\n    this.historyIndex = Math.min(\n      this.history.length - 1,\n      this.historyIndex + 1\n    );\n\n    if (this.historyIndex === originHistoryIndex) {\n      return;\n    }\n\n    this.triggerPopstate();\n  }\n\n  public back(): void {\n    const originHistoryIndex = this.historyIndex;\n\n    this.historyIndex = Math.max(0, this.historyIndex - 1);\n\n    if (this.historyIndex === originHistoryIndex) {\n      return;\n    }\n\n    this.triggerPopstate();\n  }\n\n  public override historyGo(relativePosition: number) {\n    const originHistoryIndex = this.historyIndex;\n\n    this.historyIndex = Math.max(\n      0,\n      Math.min(this.history.length - 1, this.historyIndex + relativePosition)\n    );\n\n    if (this.historyIndex === originHistoryIndex) {\n      return;\n    }\n\n    this.triggerPopstate();\n  }\n\n  public onPopState(fn: LocationChangeListener): void {\n    this.locationChangeListeners.push(fn);\n  }\n\n  public getBaseHref(): string {\n    return `/`;\n  }\n\n  private triggerPopstate(): void {\n    const item = this.history[this.historyIndex];\n\n    if (!item) {\n      return;\n    }\n\n    this.locationChangeListeners.forEach((fn) =>\n      fn({\n        type: `popstate`,\n        state: item.state,\n      })\n    );\n  }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideRouter, RouterFeatures, Routes } from '@angular/router';\nimport { LocationStrategy } from '@angular/common';\nimport { MemoryLocationStrategy } from './location-strategy';\n\nexport function provideWebComponentRouter(\n  routes: Routes,\n  ...features: RouterFeatures[]\n): EnvironmentProviders {\n  return makeEnvironmentProviders([\n    provideRouter(routes, ...features),\n    { provide: LocationStrategy, useClass: MemoryLocationStrategy },\n  ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}