{"version":3,"file":"toolbox-routing.mjs","sources":["../../../projects/toolbox/routing/components/error/error.component.ts","../../../projects/toolbox/routing/components/error/error.component.html","../../../projects/toolbox/routing/components/action-links/action-links.component.ts","../../../projects/toolbox/routing/components/action-links/action-links.Component.html","../../../projects/toolbox/routing/components/row-links/row-action-links.component.ts","../../../projects/toolbox/routing/components/row-links/row-actions-menu.component.ts","../../../projects/toolbox/routing/components/form-actions/form-actions.component.ts","../../../projects/toolbox/routing/components/details-links/details-links.component.ts","../../../projects/toolbox/routing/components/details-links/details-links.component.html","../../../projects/toolbox/routing/routes/routes.constants.ts","../../../projects/toolbox/routing/routes/routes.utils.ts","../../../projects/toolbox/routing/routes/routes.service.ts","../../../projects/toolbox/routing/resolvers/base.resolver.ts","../../../projects/toolbox/routing/routes/page-title.strategy.ts","../../../projects/toolbox/routing/routes/routes.ts","../../../projects/toolbox/routing/routes/page-title.service.ts","../../../projects/toolbox/routing/toolbox-routing.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n  Component,\r\n  OnInit,\r\n  isDevMode,\r\n  signal,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy\r\n} from \"@angular/core\";\r\n\r\nimport { ActivatedRoute, RouterLink } from \"@angular/router\";\r\n\r\nimport { TbxErrorService } from \"@lacera/ngx-toolbox/error\";\r\n\r\n@Component( {\r\n  templateUrl: \"./error.component.html\",\r\n  styleUrls: [\"./error.component.scss\"],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [RouterLink]\r\n} )\r\nexport default class TbxErrorComponent implements OnInit {\r\n  /** Gets the error from the log service. */\r\n  public readonly lastError: any;\r\n\r\n  /** Gets or sets the error title. */\r\n  public title = signal<string>( \"\" );\r\n\r\n  /** Gets or sets the error icon. */\r\n  public icon = signal<string>( \"\" );\r\n\r\n  /** Gets or sets the error description. */\r\n  public desc = signal<string>( \"\" );\r\n\r\n  /** Gets or sets the error message. */\r\n  public message = signal<string>( \"\" );\r\n\r\n  /** Displays the error details in text format. */\r\n  public errorText = signal<string>( \"\" );\r\n\r\n  /** Gets a value indicating whether the application is in production. */\r\n  public production = !isDevMode();\r\n\r\n  public constructor(\r\n    private readonly route: ActivatedRoute,\r\n    private readonly errorService: TbxErrorService\r\n  ) {\r\n    this.lastError = this.errorService.lastError;\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    switch( this.getCode() ) {\r\n      case 400:\r\n        this.title.set( \"Bad Request\" );\r\n        this.icon.set( \"fa fa-exclamation-circle text-danger\" );\r\n        this.desc.set(\r\n          \"The application has issued a malformed or illegal request to the server.\" );\r\n        this.message.set(\r\n          \"The application cannot process this request at this time,\\n\" +\r\n          \"but it has been logged and it will be reviewed as soon as possible.\" );\r\n        break;\r\n      case 401:\r\n      case 403:\r\n        this.title.set( \"Unauthorized\" );\r\n        this.icon.set( \"fa fa-ban text-danger\" );\r\n        this.desc.set( \"An error occurred while processing your request.\" );\r\n        this.message.set(\r\n          \"Your current level does not grant you access to this area.\\n\" +\r\n          \"Please contact the HelpDesk for assistance.\" );\r\n        break;\r\n      case 404:\r\n        this.title.set( \"Page Not Found\" );\r\n        this.icon.set( \"fa fa-exclamation-circle text-danger\" );\r\n        this.desc.set( \"An error occurred while processing your request.\" );\r\n        this.message.set(\r\n          \"Sorry, but the page or resource you are looking for can’t be found.\" );\r\n        break;\r\n      default:\r\n        this.title.set( \"Unexpected Error\" );\r\n        this.icon.set( \"fa fa-exclamation-circle text-danger\" );\r\n        this.desc.set( \"An error occurred while processing your request.\" );\r\n        this.message.set(\r\n          \"Rest assured this problem has been logged,\\n\" +\r\n          \"and we will fix the issue as soon as possible.\" );\r\n    }\r\n\r\n    // Lastly, convert the error to text to display in dev\r\n    if( this.lastError !== null && this.lastError.error != null ) {\r\n      this.errorToText( this.lastError.error );\r\n    }\r\n\r\n    const t = this.getCode();\r\n    console.log( t );\r\n    console.log( this.title() );\r\n  }\r\n\r\n  /**\r\n   * Gets the code sent by query params or data in the route.\r\n   * @returns The code from the params or 500 by default.\r\n   */\r\n  private getCode(): number {\r\n    let tempCode = this.route.snapshot.queryParams[\"code\"];\r\n    if( tempCode != null ) {\r\n      return tempCode;\r\n    }\r\n\r\n    tempCode = this.route.snapshot.data[\"code\"];\r\n\r\n    return tempCode != null ? tempCode : 500;\r\n  }\r\n\r\n  /**\r\n   * Converts an error object to text.\r\n   * @param error The error to convert to text.\r\n   */\r\n  private errorToText( error: any ): void {\r\n    this.errorText.set( \"\" );\r\n\r\n    if( error != null && error.stack != null ) {\r\n      this.errorText.set( error.stack.replace( \"\\\\n\", \"<br/>\" ) );\r\n    }\r\n  }\r\n}\r\n","<div class=\"container\">\n  <div class=\"p-5 mb-4 bg-danger-subtle text-center error-container mt-2\">\n    <h1>\n      <span aria-hidden=\"true\" class=\"{{ icon() }}\"></span> {{ title() }}\n    </h1>\n\n    <br/>\n    <p>\n      {{ desc() }}\n      <br/>\n      <br/>\n      <span class=\"line-breaker\">{{ message() }}</span>\n    </p>\n    <br/>\n\n    <a class=\"btn btn-primary btn-lg\" routerLink=\"/\">\n      <span aria-hidden=\"true\" class=\"fa fa-home\"></span> Home\n    </a>\n  </div>\n\n  @if (!production && lastError) {\n    <div class=\"panel panel-danger\">\n      <div class=\"panel-heading\">\n        <h3 class=\"panel-title\">Error sent to the server:</h3>\n      </div>\n      <div class=\"panel-body\">\n        <dl class=\"dl-horizontal\">\n          <dt>Error:</dt>\n          <dd>\n            <strong>{{ lastError?.message }}</strong>\n          </dd>\n\n          <dt>URL:</dt>\n          <dd>{{ lastError?.url }}</dd>\n\n          <dt>Stack:</dt>\n          <dd>\n        <pre>\n          {{ errorText() }}\n        </pre>\n          </dd>\n        </dl>\n      </div>\n    </div>\n  }\n</div>\n","import { Component, input, output } from \"@angular/core\";\r\nimport { RouterLink } from \"@angular/router\";\r\nimport { TbxReturnUrl } from \"@lacera/ngx-toolbox/http\";\r\n\r\n/**\r\n * Displays the standard dropdown actions usually in a table row for an item.\r\n */\r\n@Component( {\r\n  selector: \"tbx-action-links\",\r\n  imports: [RouterLink],\r\n  templateUrl: \"./action-links.Component.html\"\r\n} )\r\nexport class TbxActionLinksComponent {\r\n  public readonly showCreate = input( false );\r\n  public readonly createUrl = input( \"\" );\r\n  public readonly createText = input( \"New\" );\r\n  public readonly createIcon = input( \"fa fa-search-plus me-2\" );\r\n  public readonly createClass = input( \"btn btn-sm btn-light\" );\r\n  public readonly createPlaceholder = input( \"New\" );\r\n  public readonly create = output();\r\n\r\n  public readonly showRefresh = input( false );\r\n  public readonly refreshUrl = input( \"\" );\r\n  public readonly refreshText = input( \"Refresh\" );\r\n  public readonly refreshIcon = input( \"fa fa-refresh me-2\" );\r\n  public readonly refreshClass = input( \"btn btn-sm btn-light\" );\r\n  public readonly refreshPlaceholder = input( \"Refresh\" );\r\n  public readonly refresh = output();\r\n\r\n  /** The return URL usually used for the action routes. */\r\n  public returnUrl = input<TbxReturnUrl | undefined>( undefined );\r\n}\r\n","<div class=\"btn-group\">\r\n  @if (createUrl()) {\r\n  <a [class]=\"createClass()\" [routerLink]=\"createUrl()\">\r\n    <i [class]=\"createIcon()\"></i>{{ createText() }}\r\n  </a>\r\n  }\r\n\r\n  @if(showCreate()) {\r\n  <button type=\"button\" [class]=\"createClass()\" [title]=\"createPlaceholder()\"\r\n    (click)=\"create.emit()\">\r\n    <i [class]=\"createIcon()\"></i>{{ createText() }}\r\n  </button>\r\n  }\r\n\r\n  <ng-content></ng-content>\r\n\r\n  @if (refreshUrl()) {\r\n  <a [class]=\"refreshClass()\" [routerLink]=\"refreshUrl()\">\r\n    <i [class]=\"refreshIcon()\"></i>{{ refreshText() }}\r\n  </a>\r\n  }\r\n\r\n  @if(showRefresh()) {\r\n  <button type=\"button\" [class]=\"refreshClass()\" [title]=\"refreshPlaceholder()\"\r\n    (click)=\"refresh.emit()\">\r\n    <i [class]=\"refreshIcon()\"></i>{{ refreshText() }}\r\n  </button> }\r\n</div>\r\n","import { Component, computed, input, output } from \"@angular/core\";\r\nimport { RouterLink } from \"@angular/router\";\r\n\r\nimport { TbxReturnUrl } from \"@lacera/ngx-toolbox/http\";\r\n\r\n/**\r\n * Displays the standard action buttons in a table row for an item.\r\n */\r\n@Component( {\r\n  selector: \"tbx-row-action-links\",\r\n  imports: [RouterLink],\r\n  template: `\r\n    <div class=\"btn-group action-group\">\r\n      @if (detailsUrl()) {\r\n        <a [class]=\"buttonClass()\"\r\n           title=\"View Details\"\r\n           [routerLink]=\"detailsUrl()\">\r\n          <i class=\"fa fa-search-plus\"></i>\r\n        </a>\r\n      }\r\n\r\n      @if (showEditUrl()) {\r\n        <a [class]=\"buttonClass()\"\r\n           title=\"Edit\"\r\n           [routerLink]=\"editUrl()\">\r\n          <i class=\"fa fa-edit\"></i>\r\n        </a>\r\n      }\r\n\r\n      @if (showEditButton()) {\r\n        <button [class]=\"buttonClass()\"\r\n                type=\"button\"\r\n                title=\"Edit\"\r\n                (click)=\"editClick.emit()\">\r\n          <i class=\"fa fa-edit\"></i>\r\n        </button>\r\n      }\r\n\r\n      @if (auditUrl()) {\r\n        <a [class]=\"buttonClass()\"\r\n           title=\"Audit Trail\"\r\n           [routerLink]=\"auditUrl()\"\r\n           [queryParams]=\"returnUrl\">\r\n          <i class=\"fa fa-clock-rotate-left\"></i>\r\n        </a>\r\n      }\r\n\r\n      @if (showUndo()) {\r\n        <button [class]=\"buttonClass()\"\r\n                title=\"Undo\"\r\n                type=\"button\"\r\n                (click)=\"undoClick.emit()\">\r\n          <i class=\"fa fa-undo\"></i>\r\n        </button>\r\n      }\r\n\r\n      @if (deleteUrl()) {\r\n        <a [class]=\"buttonClass()\"\r\n           title=\"Delete\"\r\n           [routerLink]=\"deleteUrl()\">\r\n          <i [class]=\"deleteIcon()\"></i>\r\n        </a>\r\n      }\r\n\r\n      @if (showDeleteButton()) {\r\n        <button [class]=\"buttonClass()\"\r\n                type=\"button\"\r\n                title=\"Delete\"\r\n                (click)=\"deleteClick.emit()\">\r\n          <i [class]=\"deleteIcon()\"></i>\r\n        </button>\r\n      }\r\n    </div>\r\n  `\r\n} )\r\nexport class TbxRowActionLinksComponent {\r\n\r\n  public readonly showEdit = input( true );\r\n  public readonly showDelete = input( true );\r\n  public readonly showUndo = input( false );\r\n\r\n  public readonly detailsUrl = input( \"\" );\r\n  public readonly editUrl = input( \"\" );\r\n  public readonly deleteUrl = input( \"\" );\r\n  public readonly auditUrl = input( \"\" );\r\n\r\n  public readonly returnUrl = input<TbxReturnUrl | undefined>( undefined );\r\n\r\n  /** The class to apply to the buttons (defaults to 'btn btn-sm btn-light'). */\r\n  public readonly buttonClass = input( \"btn btn-sm btn-light\" );\r\n\r\n  public readonly deleteIcon = input( \"text-danger fa fa-trash\" );\r\n\r\n  public readonly editClick = output();\r\n  public readonly undoClick = output();\r\n  public readonly deleteClick = output();\r\n\r\n  protected showEditUrl = computed( ()=> this.editUrl() && this.showEdit() );\r\n  protected showEditButton = computed( () => !this.editUrl() && this.showEdit() );\r\n  protected showDeleteButton = computed( () => !this.deleteUrl() && this.showDelete() );\r\n}\r\n","import { Component, input } from \"@angular/core\";\r\nimport { RouterLink } from \"@angular/router\";\r\nimport { TbxReturnUrl } from \"@lacera/ngx-toolbox/http\";\r\nimport { TbxSimpleDropdownDirective } from \"@lacera/ngx-toolbox/dropdown\";\r\n\r\n/**\r\n * Displays the standard dropdown actions usually in a table row for an item.\r\n */\r\n@Component( {\r\n  selector: \"tbx-row-actions-menu\",\r\n  imports: [RouterLink, TbxSimpleDropdownDirective],\r\n  template: `\r\n    <div class=\"dropdown\">\r\n      <button class=\"btn-action\" tbxSimpleDropdown #dd=\"tbxSimpleDropdown\">\r\n        <span class=\"fa fa-ellipsis-v\"></span>\r\n      </button>\r\n      <ul class=\"dropdown-menu pull-right\" [class.show]=\"dd.isOpen\">\r\n        @if (detailsUrl()) {\r\n          <li>\r\n            <a class=\"dropdown-item\"\r\n               [routerLink]=\"detailsUrl()\">\r\n              <i [class]=\"detailsIcon()\"></i>{{ detailsText() }}\r\n            </a>\r\n          </li>\r\n        }\r\n        @if (editUrl()) {\r\n          <li>\r\n            <a class=\"dropdown-item\"\r\n               [routerLink]=\"editUrl()\">\r\n              <i [class]=\"editIcon()\"></i>{{ editText() }}\r\n            </a>\r\n          </li>\r\n        }\r\n        @if (auditUrl()) {\r\n          <li>\r\n            <a class=\"dropdown-item\"\r\n               [routerLink]=\"auditUrl()\" [queryParams]=\"returnUrl\">\r\n              <i [class]=\"auditIcon()\"></i>{{ auditText() }}\r\n            </a>\r\n          </li>\r\n        }\r\n        @if (deleteUrl()) {\r\n          <li>\r\n            <hr class=\"dropdown-divider\">\r\n          </li>\r\n          <li>\r\n            <a class=\"dropdown-item\"\r\n               [routerLink]=\"deleteUrl()\">\r\n              <i [class]=\"deleteIcon()\"></i>{{ deleteText() }}\r\n            </a>\r\n          </li>\r\n        }\r\n      </ul>\r\n    </div>\r\n  `\r\n} )\r\nexport class TbxRowActionsMenuComponent {\r\n  public detailsUrl = input( \"\" );\r\n  public editUrl = input( \"\" );\r\n  public deleteUrl = input( \"\" );\r\n  public auditUrl = input( \"\" );\r\n\r\n  public detailsIcon = input( \"fa fa-search-plus me-1\" );\r\n  public detailsText = input( \"Details\" );\r\n  public editIcon = input( \"fa fa-edit me-1\" );\r\n  public editText = input( \"Edit\" );\r\n  public deleteIcon = input( \"fa fa-trash me-1\" );\r\n  public deleteText = input( \"Delete\" );\r\n  public auditIcon = input( \"fa fa-clock-rotate-left me-1\" );\r\n  public auditText = input( \"Audit Trail\" );\r\n\r\n  /** The return URL usually used for the Audit Trail route. */\r\n  public returnUrl = input<TbxReturnUrl | undefined>( undefined );\r\n}\r\n","import { Component, input, output } from \"@angular/core\";\r\nimport { RouterLink } from \"@angular/router\";\r\n\r\n@Component( {\r\n  selector: \"tbx-form-buttons\",\r\n  imports: [RouterLink],\r\n  template: `\r\n    @if( !saveUrl()) {\r\n      <button [type]=\"saveButtonType()\"\r\n              [class]=\"saveButtonClass()\"\r\n              (click)=\"saveClick.emit()\"\r\n              [disabled]=\"disabled()\">\r\n        <i [class]=\"saveIconClass()\"></i>{{ saveText() }}\r\n      </button>\r\n    } @else {\r\n      <a [class]=\"saveButtonClass()\"\r\n         [routerLink]=\"saveUrl()\"\r\n         [class.disabled]=\"disabled()\"\r\n         >\r\n        <i [class]=\"saveIconClass()\"></i>{{ saveText() }}\r\n      </a>\r\n    }\r\n\r\n    <ng-content></ng-content>\r\n\r\n    @if(cancelUrl()) {\r\n      <a [class]=\"cancelButtonClass()\"\r\n         [routerLink]=\"cancelUrl()\"\r\n         [class.disabled]=\"disabled()\">\r\n        <i [class]=\"cancelIconClass()\"></i>{{ cancelText() }}\r\n      </a>\r\n    }\r\n\r\n    @if(showCancelButton()) {\r\n      <button type=\"button\"\r\n              class=\"btn btn-secondary btn-std\"\r\n              (click)=\"cancelClick.emit()\">\r\n        <i [class]=\"cancelIconClass()\"></i>{{ cancelText() }}\r\n      </button>\r\n    }\r\n  `,\r\n  styles: `\r\n    .disabled {\r\n      color: gray;\r\n      cursor: not-allowed;\r\n      text-decoration: none;\r\n    }\r\n  `\r\n} )\r\nexport class TbxFormButtonsComponent {\r\n  /** The type of button Save is (defaults to 'submit'). */\r\n  public saveButtonType = input( \"submit\" );\r\n\r\n  /** The text to display in the save button (defaults to 'Save'). */\r\n  public saveText = input( \"Save\" );\r\n  public cancelText = input( \"Cancel\" );\r\n\r\n  public saveUrl = input( \"\" );\r\n  public saveIconClass = input( \"fa-solid fa-check me-2\" );\r\n  public saveButtonClass = input( \"btn btn-primary btn-std\" );\r\n\r\n  public cancelUrl = input( \"\" );\r\n  public cancelIconClass = input( \"fa-solid fa-xmark me-2\" );\r\n  public cancelButtonClass = input( \"btn btn-secondary btn-std\" );\r\n  public showCancelButton = input( false );\r\n\r\n  /** Indicates to disable the controls. */\r\n  public disabled = input( false );\r\n\r\n  public saveClick = output();\r\n\r\n  public cancelClick = output();\r\n}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'tbx-details-links',\r\n  imports: [RouterLink],\r\n  templateUrl: './details-links.component.html',\r\n  styleUrl: './details-links.component.css'\r\n})\r\nexport class TbxDetailsLinksComponent {\r\n  public readonly deleteMode = input( false );\r\n\r\n  public readonly createUrl = input( \"\" );\r\n  public readonly editUrl = input( \"\" );\r\n  public readonly deleteUrl = input( \"\" );\r\n  public readonly auditUrl = input( \"\" );\r\n  public readonly returnUrl = input( \"\" );\r\n\r\n  public readonly createClass = input( \"btn btn-primary btn-std\" );\r\n  public readonly editClass = input( \"btn btn-info btn-std\" );\r\n  public readonly deleteClass = input( \"btn btn-danger btn-std\" );\r\n  public readonly auditClass = input( \"btn btn-secondary btn-std\" );\r\n  public readonly returnClass = input( \"btn btn-warning btn-std\" );\r\n\r\n  public readonly createIcon = input( \"fa fa-plus-square me-2\" );\r\n  public readonly editIcon = input( \"fa fa-edit me-2\" );\r\n  public readonly deleteIcon = input( \"fa fa-remove me-2\" );\r\n  public readonly auditIcon = input( \"fa fa-clock-rotate-left me-2\" );\r\n  public readonly returnIcon = input( \"fa fa-arrow-left me-2\" );\r\n\r\n  public readonly deleteClick = output();\r\n\r\n}\r\n","@if (!deleteMode()) {\r\n\r\n<div id=\"details-links\">\r\n  <a [routerLink]=\"createUrl()\" [class]=\"createClass()\">\r\n    <i [class]=\"createIcon()\"></i>New</a>\r\n\r\n  @if(editUrl()) {\r\n  <a [routerLink]=\"editUrl()\" [class]=\"editClass()\">\r\n    <i [class]=\"editIcon()\"></i>Edit</a>\r\n  }\r\n\r\n  @if(deleteUrl()) {\r\n  <a [routerLink]=\"deleteUrl()\" [class]=\"deleteClass()\">\r\n    <i [class]=\"deleteIcon()\"></i>Delete</a>\r\n  }\r\n\r\n  @if(auditUrl()) {\r\n  <a [routerLink]=\"auditUrl()\" [class]=\"auditClass()\">\r\n    <i [class]=\"auditIcon()\"></i>Audit Trail</a>\r\n  }\r\n\r\n  @if(returnUrl()) {\r\n  <a [routerLink]=\"returnUrl()\" [class]=\"returnClass()\">\r\n    <i [class]=\"returnIcon()\"></i>Go Back</a>\r\n  }\r\n\r\n</div>\r\n} @else {\r\n<div id=\"details-delete\">\r\n\r\n  <button [class]=\"deleteClass()\" (click)=\"deleteClick.emit()\">\r\n    <i [class]=\"deleteIcon()\"></i>Delete\r\n  </button>\r\n\r\n  @if(returnUrl()) {\r\n  <a [routerLink]=\"returnUrl()\" [class]=\"returnClass()\">\r\n    <i [class]=\"returnIcon()\"></i>Cancel</a>\r\n  }\r\n\r\n</div>\r\n}\r\n","/** The root route paths for the application. */\r\nexport const TBX_ROOT_PATHS = {\r\n  home: \"\",\r\n  audit: \"audit\",\r\n  error: \"error\",\r\n  unauth: \"unauth\",\r\n  notFound: \"**\"\r\n};\r\n\r\n/** Defaults paths that most standard routes have. */\r\nexport const TBX_CHILD_PATHS = {\r\n  index: \"\",\r\n  details: \"details\",\r\n  create: \"create\",\r\n  edit: \"edit\",\r\n  delete: \"delete\"\r\n};\r\n\r\n/** Default data names passed in the router's route. */\r\nexport const TBX_DATA_NAMES = {\r\n  action: \"action\",\r\n  metadata: \"metadata\",\r\n  pageTitle: \"pageTitle\",\r\n  index: \"index\",\r\n  details: \"details\",\r\n  create: \"create\",\r\n  edit: \"edit\",\r\n  delete: \"delete\",\r\n  id: \"id\"\r\n};\r\n\r\n/** Global constants to be used in query parameters. */\r\nexport const TBX_ROOT_PARAMS = {\r\n  id: \"id\",\r\n  returnUrl: \"ru\",\r\n  parentUrl: \"pru\"\r\n};\r\n","import { inject } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RedirectCommand, ResolveFn, Router, RouterStateSnapshot } from \"@angular/router\";\nimport { catchError, Observable, of } from \"rxjs\";\n\nimport { TBX_ROOT_PARAMS, TBX_ROOT_PATHS } from \"./routes.constants\";\nimport { TestBed } from \"@angular/core/testing\";\n\n/**\n * Gets the ID parameter from the given route.\n * @throws Error The ID parameter was not found.\n * @param route The route from which to get the ID parameter.\n * @returns The ID parameter value.\n */\nexport const getParamId = ( route: ActivatedRouteSnapshot ): number => {\n  const id = route.paramMap.get( TBX_ROOT_PARAMS.id );\n\n  if( id !== null && !isNaN( +id ) ) {\n    return +id;\n  }\n\n  throw new Error( `The reward '${TBX_ROOT_PARAMS.id}' parameter is missing!` );\n};\n\n/**\n * Handles errors that may be encountered in resolvers, which need to be handled\n * a little different from general errors like navigating to unauthorized.\n * @param stream The resolver observable.\n * @param url The optional URL to navigate on error.\n * @returns An observable of type {@link RedirectCommand}.\n */\nexport const pipeError = <T>( stream: Observable<T>, url: string ) => {\n  const router = inject( Router );\n\n  return stream.pipe( catchError( error => {\n    let path = url ?? TBX_ROOT_PATHS.error;\n\n    if( error.statusCode === 401 || error.statusCode === 403 ) {\n      path = TBX_ROOT_PATHS.unauth;\n    }\n\n    return of( new RedirectCommand( router.parseUrl( path ) ) );\n  } ) );\n};\n","import { Injectable, inject } from \"@angular/core\";\r\nimport { APP_BASE_HREF } from \"@angular/common\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// import { TbxReturnUrl } from \"@lacera/ngx-toolbox/http\";\r\nimport { TbxUrlService, TbxUrlModel, TbxReturnUrl } from \"@lacera/ngx-toolbox/http\";\r\nimport { TBX_ROOT_PARAMS, TBX_ROOT_PATHS } from \"./routes.constants\";\r\n\r\n/**\r\n * Provides basic navigation routes. It also exposes the helper class\r\n */\r\n@Injectable( { providedIn: \"root\" } )\r\nexport class TbxRoutesService {\r\n  public readonly router = inject( Router );\r\n  public baseUrl? = inject( APP_BASE_HREF, { optional: true } );\r\n  public urlService? = inject( TbxUrlService, { optional: true } );\r\n\r\n  /** Gets a list of all available server endpoints. */\r\n  public get urls(): TbxUrlModel[] {\r\n    return this.urlService?.routes ?? [];\r\n  }\r\n\r\n  /** Gets the current URL in the router. */\r\n  public get currentUrl(): string {\r\n    return this.router.url;\r\n  }\r\n\r\n  /** Gets the home URL. */\r\n  public get homeUrl(): string {\r\n    return this.baseUrl ?? this.urlService?.home ?? this.router.url;\r\n  }\r\n\r\n  /** Gets the home absolute URL. */\r\n  public get homeAbsoluteUrl(): string {\r\n    return this.urlService?.homeAbsolute ?? this.baseUrl ?? this.router.url;\r\n  }\r\n\r\n  /**\r\n   * Creates the URL string to navigate to the list of audit trail entries.\r\n   * @param source The audit trail source for which to display entries.\r\n   * @param sourceId The audit trail source ID for which to display entries.\r\n   * @param returnUrl An optional URL to return to.\r\n   * @returns The audit trail list route string.\r\n   */\r\n  public auditUrl(\r\n    source: string,\r\n    sourceId: number,\r\n    returnUrl?: string | TbxReturnUrl ): string {\r\n\r\n    let url = this.router.createUrlTree(\r\n      [TBX_ROOT_PATHS.audit, source, sourceId] ).toString();\r\n\r\n    if( !returnUrl ) {\r\n      return url;\r\n    }\r\n\r\n    return `${url}?${this.toReturnUrl( returnUrl )}`;\r\n  }\r\n\r\n  /**\r\n   * Converts the given URL to its string representation (ru=?&pru=?).\r\n   * @param url string | TbxReturnUrl The given url to convert.\r\n   * @returns The string representation of the given URL, or an empty string.\r\n   */\r\n  public toReturnUrl( url?: string | TbxReturnUrl ): string {\r\n    if( !url ) {\r\n      return \"\";\r\n    }\r\n\r\n    let temp = \"\";\r\n\r\n    if( typeof url === \"object\" ) {\r\n      temp +=\r\n        `${TBX_ROOT_PARAMS.returnUrl}=${url.ru}` +\r\n        `&${TBX_ROOT_PARAMS.parentUrl}=${url.pru}`;\r\n    } else {\r\n      temp += `${TBX_ROOT_PARAMS.returnUrl}=${url}`;\r\n    }\r\n\r\n    return temp;\r\n  }\r\n\r\n  /**\r\n   * Creates the return URL for {@link queryParams} links.\r\n   * @param returnUrl An optional URL to return to (defaults to current URL).\r\n   * @returns The return URL.\r\n   */\r\n  public returnUrl( returnUrl?: string ): TbxReturnUrl {\r\n    return {\r\n      ru: returnUrl ? returnUrl : this.router.url,\r\n      pru: undefined\r\n    };\r\n  }\r\n\r\n  /**\r\n   * Navigates to the home route.\r\n   * @returns A promise that resolves to true when the navigation succeeds,\r\n   * false when it fails, or is rejected when an error happens.\r\n   */\r\n  public async goHome(): Promise<boolean> {\r\n    return this.router.navigate( [this.homeUrl] );\r\n  }\r\n\r\n  /**\r\n   * Navigates to the home absolute route.\r\n   * @returns A promise that resolves to true when the navigation succeeds,\r\n   * false when it fails, or is rejected when an error happens.\r\n   */\r\n  public async goHomeAbsolute(): Promise<boolean> {\r\n    return this.router.navigate( [this.homeAbsoluteUrl] );\r\n  }\r\n\r\n  /**\r\n   * Navigates to the unauthorized path.\r\n   * @returns The promise from the router navigation.\r\n   */\r\n  public async goToUnauthorized(): Promise<boolean> {\r\n    return this.router.navigate( [TBX_ROOT_PATHS.unauth] );\r\n  }\r\n\r\n  /**\r\n   * Navigates to the Audit Trail list route.\r\n   * @param source The source for which to retrieve audit trail.\r\n   * @param sourceId The ID of the source for which to retrieve audit trail.\r\n   * @param returnUrl The return URL, if any.\r\n   * @returns The promise from the router navigation.\r\n   */\r\n  public async goToAudit(\r\n    source: string, sourceId: number, returnUrl?: string ): Promise<boolean> {\r\n    return this.router.navigate(\r\n      [this.auditUrl( source, sourceId, returnUrl )] );\r\n  }\r\n\r\n  /**\r\n   * Gets the links URL which will forward to the correct URL for the specified ID.\r\n   * @param [linkId] - The link ID to find and forward to.\r\n   * @returns The forward link URL.\r\n   */\r\n  // eslint-disable-next-line class-methods-use-this\r\n  public forwardLinks( linkId: number ): string {\r\n    return `https://apps.lacera.net/links/?linkid=${linkId}`;\r\n  }\r\n\r\n  /**\r\n   * Gets the link URL to the feedback website with proper query strings.\r\n   * @param userName The current user name or full name.\r\n   * @param appName The application name to send feedback for.\r\n   * @param options The options for the feedback.\r\n   * @returns The feedback link URL.\r\n   */\r\n  public feedback( userName: string, appName: string, options: {\r\n    /** The subject of the feedback. */\r\n    subject?: string;\r\n    /** The system the feedback is about. */\r\n    system?: string;\r\n    /** The URL to return the user to. */\r\n    returnUrl?: string;\r\n  } ): string {\r\n\r\n    // Get the URL to the feedback website\r\n    const url = this.forwardLinks( 116 );\r\n\r\n    const ru = this.toReturnUrl( options.returnUrl );\r\n\r\n    return `${url}` +\r\n      `&username=${userName}` +\r\n      `&application=${appName}` +\r\n      `&system=${options.system !== undefined ? options.system : \"\"}` +\r\n      `&subject=${options.subject !== undefined ? options.subject : \"\"}` +\r\n      `&${ru}`;\r\n  }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\n\r\nimport { TbxRoutesService } from \"../routes/routes.service\";\r\nimport { pipeError } from \"../routes/routes.utils\";\r\n/**\r\n * Provides base functionality for route resolver services.\r\n */\r\n@Injectable( { providedIn: \"root\" } )\r\nexport class TbxBaseResolver<T> {\r\n  /** Gets or sets the message service to call on error if provided. */\r\n  public messageService: any | undefined = undefined;\r\n\r\n  public constructor( public readonly routes: TbxRoutesService ) {\r\n  }\r\n\r\n  /**\r\n   * Pipes into the given stream to catch an error and navigate.\r\n   * @param stream The stream to pipe into.\r\n   * @param url The URL for error handling to navigate to.\r\n   */\r\n  public pipeError( stream: Observable<any>, url: string ) {\r\n    return pipeError( stream, url );\r\n  }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { RouterStateSnapshot, TitleStrategy } from \"@angular/router\";\r\nimport { TbxAppStateService } from \"@lacera/ngx-toolbox/app\";\r\n\r\n@Injectable( { providedIn: \"root\" } )\r\nexport class TbxPageTitleStrategy extends TitleStrategy {\r\n  readonly #title = inject( Title );\r\n  readonly #stateService = inject( TbxAppStateService );\r\n\r\n  public override updateTitle( snapshot: RouterStateSnapshot ): void {\r\n    const snapshotTitle = this.buildTitle( snapshot );\r\n    let appTitle = this.#stateService.applicationName;\r\n\r\n    if( snapshotTitle != null ) {\r\n      appTitle = `${ snapshotTitle } - ` + appTitle;\r\n    }\r\n\r\n    if( appTitle !== null ) {\r\n      this.#title.setTitle( appTitle );\r\n    }\r\n  }\r\n}\r\n","import { EnvironmentProviders } from \"@angular/core\";\r\nimport {\r\n  Router,\r\n  Routes,\r\n  provideRouter,\r\n  withPreloading,\r\n  PreloadAllModules,\r\n  TitleStrategy,\r\n  RouterFeatures\r\n} from \"@angular/router\";\r\n\r\nimport { TBX_ROOT_PATHS } from \"./routes.constants\";\r\nimport { TbxPageTitleStrategy } from \"./page-title.strategy\";\r\n\r\n/**\r\n * Defines routes for error, unauthorized, and not found (**). It displays\r\n * a generic component showing the error details.\r\n */\r\nexport const TBX_ERROR_ROUTES: Routes = [\r\n  {\r\n    path: TBX_ROOT_PATHS.error,\r\n    loadComponent: async () => import( \"../components/error/error.component\" ),\r\n    title: \"System Error\",\r\n    data: { pageTitle: \"System Error\", code: 500 }\r\n  },\r\n  {\r\n    path: TBX_ROOT_PATHS.unauth,\r\n    loadComponent: async () => import( \"../components/error/error.component\" ),\r\n    title: \"Unauthorized\",\r\n    data: { pageTitle: \"Unauthorized\", code: 401 }\r\n  },\r\n  {\r\n    path: TBX_ROOT_PATHS.notFound,\r\n    loadComponent: async () => import( \"../components/error/error.component\" ),\r\n    title: \"Page Not Found\",\r\n    data: { pageTitle: \"Page Not Found\", code: 404 }\r\n  }\r\n];\r\n\r\n/**\r\n * Provides a Browser title strategy using {@link TbxPageTitleStrategy}, which\r\n * appends the page title to the application name (e.g., 'Tagger - Agents')\r\n *\r\n * @returns The page title strategy.\r\n */\r\nexport const tbxProvideTitleStrategy = () => ( {\r\n  provide: TitleStrategy,\r\n  useClass: TbxPageTitleStrategy\r\n} );\r\n\r\n/**\r\n * Provides the {@link Router} with the given {@link Routes}, and it defaults to\r\n * the {@link PreloadAllModules} preloading strategy.\r\n *\r\n * @param routes The routes to provide.\r\n * @param features The additional features.\r\n * @returns The route provider.\r\n */\r\nexport const tbxProvideAppRoutes =\r\n  ( routes: Routes, ...features: RouterFeatures[] ): EnvironmentProviders => {\r\n    const routerFeatures = [\r\n      ...features,\r\n      withPreloading( PreloadAllModules )\r\n    ];\r\n\r\n    return provideRouter(\r\n      routes,\r\n      ...routerFeatures\r\n    );\r\n  };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Title } from \"@angular/platform-browser\";\r\n\r\nimport {\r\n  Router,\r\n  ActivatedRoute,\r\n  Event as RouterEvent,\r\n  NavigationCancel,\r\n  NavigationEnd,\r\n  NavigationError,\r\n  NavigationStart\r\n} from \"@angular/router\";\r\n\r\n/**\r\n * Updates the Browser page title with the current route title.\r\n */\r\n@Injectable( { providedIn: \"root\" } )\r\nexport class TbxPageTitleService\r\n{\r\n  /** The ToolBox spinner service. */\r\n  public spinnerService: any | undefined = undefined;\r\n\r\n  /** The application name. */\r\n  public applicationName = \"\";\r\n\r\n  /**\r\n   * Initializes a new instance of the {@link TbxPageTitleService} class.\r\n   * @param router The Angular router service.\r\n   * @param titleService The Browser window title service.\r\n   */\r\n  public constructor(\r\n    private readonly router: Router,\r\n    private readonly titleService: Title )\r\n  {\r\n    // Perform actions on navigation events\r\n    router.events.subscribe( ( event: RouterEvent ) =>\r\n    {\r\n      this.setPageTitle( event, router.routerState.root );\r\n      this.navigationSpinner( event );\r\n    } );\r\n  }\r\n\r\n  /**\r\n   * Subscribes to the {@link Router} events to update the Browser page title\r\n   * when the route changes while showing a spinner if the service is provided.\r\n   * @param applicationName The name of the application to show in the page.\r\n   * @param spinnerService The ToolBox spinner service to show a spinner when the\r\n   * user navigates to a new route.\r\n   */\r\n  public updatePageTitle( applicationName: string, spinnerService?: any ): void\r\n  {\r\n    this.spinnerService = spinnerService;\r\n    this.applicationName = applicationName;\r\n\r\n    // Perform actions on navigation events\r\n    this.router.events.subscribe( ( event: RouterEvent ) =>\r\n    {\r\n      this.setPageTitle( event, this.router.routerState.root );\r\n\r\n      if( this.spinnerService !== undefined )\r\n      {\r\n        this.navigationSpinner( event );\r\n      }\r\n    } );\r\n  }\r\n\r\n  /**\r\n   * Updates the page title based on the data found in each of the routes.\r\n   * @param event The Router event that was triggered.\r\n   * @param activatedRoute The route that was activated.\r\n   */\r\n  private setPageTitle( event: RouterEvent, activatedRoute: ActivatedRoute ): void\r\n  {\r\n    if( event instanceof NavigationEnd )\r\n    {\r\n      // Find the last activated route\r\n      let route = activatedRoute;\r\n      while( route.firstChild !== null )\r\n      {\r\n        route = route.firstChild;\r\n      }\r\n\r\n      if( route.outlet === \"primary\" )\r\n      {\r\n        let title = this.applicationName;\r\n        // tslint:disable-next-line: no-string-literal\r\n        const pageTitle = route.snapshot.data[\"pageTitle\"];\r\n\r\n        if( pageTitle != null && pageTitle !== title )\r\n        {\r\n          title = `${ pageTitle } - ${ title }`;\r\n        }\r\n\r\n        this.titleService.setTitle( title );\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Shows or hides the spinner when a navigation router event occurs.\r\n   * @param event The Router event that was triggered.\r\n   */\r\n  private navigationSpinner( event: RouterEvent ): void\r\n  {\r\n    // Show the global spinner on navigation start\r\n    if( event instanceof NavigationStart )\r\n    {\r\n      this.spinnerService.show();\r\n    }\r\n\r\n    // Hide the global spinner when navigation ends\r\n    if( event instanceof NavigationEnd ||\r\n      event instanceof NavigationCancel ||\r\n      event instanceof NavigationError )\r\n    {\r\n      this.spinnerService.hide();\r\n    }\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TbxRoutesService","i2"],"mappings":"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"}