{"version":3,"file":"ng-doc-app-directives-route-active.mjs","sources":["../../../../libs/app/directives/route-active/route-active.directive.ts","../../../../libs/app/directives/route-active/ng-doc-app-directives-route-active.ts"],"sourcesContent":["import { Directive, ElementRef, inject, Input, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Event, IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\n\n@Directive({\n  selector: '[ngDocRouteActive]',\n  standalone: true,\n})\nexport class NgDocRouteActiveDirective {\n  @Input('ngDocRouteActive')\n  link: string = '';\n\n  @Input()\n  activeClass: string | string[] = [];\n\n  @Input()\n  matchOptions: IsActiveMatchOptions = {\n    fragment: 'exact',\n    paths: 'subset',\n    queryParams: 'exact',\n    matrixParams: 'exact',\n  };\n\n  constructor() {\n    const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    const router = inject(Router);\n    const renderer = inject(Renderer2);\n\n    router.events\n      .pipe(\n        filter((event: Event) => event instanceof NavigationEnd),\n        map(() => router.isActive(this.link, this.matchOptions)),\n        distinctUntilChanged(),\n        takeUntilDestroyed(),\n      )\n      .subscribe((isActive: boolean) => {\n        isActive\n          ? asArray(this.activeClass).forEach((cls: string) =>\n              renderer.addClass(elementRef.nativeElement, cls),\n            )\n          : asArray(this.activeClass).forEach((cls: string) =>\n              renderer.removeClass(elementRef.nativeElement, cls),\n            );\n      });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAUa,yBAAyB,CAAA;AAepC,IAAA,WAAA,GAAA;QAbA,IAAA,CAAA,IAAI,GAAW,EAAE;QAGjB,IAAA,CAAA,WAAW,GAAsB,EAAE;AAGnC,QAAA,IAAA,CAAA,YAAY,GAAyB;AACnC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,YAAY,EAAE,OAAO;SACtB;AAGC,QAAA,MAAM,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAC9D,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAElC,QAAA,MAAM,CAAC;AACJ,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAY,KAAK,KAAK,YAAY,aAAa,CAAC,EACxD,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EACxD,oBAAoB,EAAE,EACtB,kBAAkB,EAAE;AAErB,aAAA,SAAS,CAAC,CAAC,QAAiB,KAAI;YAC/B;kBACI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAC5C,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;kBAElD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAC5C,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CACpD;AACP,QAAA,CAAC,CAAC;IACN;8GApCW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAEE,KAAK;uBAAC,kBAAkB;;sBAGxB;;sBAGA;;;ACjBH;;AAEG;;;;"}