{"version":3,"file":"acorex-components-routing-progress.mjs","sources":["../../../../packages/components/routing-progress/src/lib/routing-progress.component.ts","../../../../packages/components/routing-progress/src/lib/routing-progress.component.html","../../../../packages/components/routing-progress/src/lib/routing-progress.module.ts","../../../../packages/components/routing-progress/src/acorex-components-routing-progress.ts"],"sourcesContent":["import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { Component, OnDestroy, ViewEncapsulation, inject } from '@angular/core';\nimport { Event, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\n\nimport { Subscription, delay, interval } from 'rxjs';\n\n/**\n * Shows routing progress with visual feedback during navigation.\n *\n * @category\n */\n@Component({\n  selector: 'ax-routing-progress',\n  templateUrl: './routing-progress.component.html',\n  styleUrls: ['./routing-progress.component.css'],\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [{ provide: AXComponent, useExisting: AXRoutingProgressComponent }],\n})\nexport class AXRoutingProgressComponent extends MXBaseComponent implements OnDestroy {\n  private router = inject(Router);\n\n  /**\n   * Indicates whether loading is in progress.\n   * @defaultValue false\n   */\n  loading = false;\n\n  /**\n   * Specifies the width of the component.\n   * @defaultValue 0\n   */\n  width = 0;\n\n  /** @ignore */\n  private subscription!: Subscription;\n\n  /** @ignore */\n  constructor() {\n    super();\n    this.router.events.subscribe((event: Event) => {\n      this.width = 0;\n      switch (true) {\n        case event instanceof NavigationStart: {\n          this.loading = true;\n          this.subscription = interval(50)\n            .pipe(delay(300))\n            .subscribe(() => {\n              this.width += this.width > 70 ? 1 : 7;\n              if (this.width >= 100) {\n                this.width = 100;\n                this.subscription.unsubscribe();\n              }\n              this.cdr.markForCheck();\n            });\n          break;\n        }\n\n        case event instanceof NavigationEnd:\n        case event instanceof NavigationCancel:\n        case event instanceof NavigationError: {\n          this.subscription?.unsubscribe();\n          setTimeout(() => {\n            this.width = 100;\n            this.loading = false;\n            this.cdr.markForCheck();\n          }, 500);\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n    });\n  }\n\n  /** @ignore */\n  ngOnDestroy(): void {\n    this.subscription?.unsubscribe();\n  }\n}\n","@if (loading) {\n  <div [style.width.%]=\"width\"></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXRoutingProgressComponent } from './routing-progress.component';\n\nconst COMPONENT = [AXRoutingProgressComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n  providers: [],\n})\nexport class AXRoutingProgressModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}