{"version":3,"file":"ng-doc-ui-kit-components-dialog-outlet.mjs","sources":["../../../../libs/ui-kit/components/dialog-outlet/dialog-outlet.component.ts","../../../../libs/ui-kit/components/dialog-outlet/ng-doc-ui-kit-components-dialog-outlet.ts"],"sourcesContent":["import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  DestroyRef,\n  inject,\n  Input,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport { NgDocOverlayRef } from '@ng-doc/ui-kit/classes/overlay-ref';\nimport { NgDocDialogConfig, NgDocDialogService } from '@ng-doc/ui-kit/services/dialog';\nimport { merge, NEVER, Subject, switchMap } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'ng-doc-dialog-outlet',\n  standalone: true,\n  template: `\n    <ng-template #outletContent>\n      <ng-content></ng-content>\n    </ng-template>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DialogOutletComponent implements AfterContentInit {\n  @Input()\n  config?: NgDocDialogConfig;\n\n  @ViewChild('outletContent', { static: true })\n  outletContent!: TemplateRef<never>;\n\n  @ContentChild(RouterOutlet)\n  routerOutlet?: RouterOutlet;\n\n  dialogRef?: NgDocOverlayRef;\n\n  protected readonly router: Router = inject(Router);\n  protected readonly route: ActivatedRoute = inject(ActivatedRoute);\n  protected readonly dialogService: NgDocDialogService = inject(NgDocDialogService);\n  protected readonly destroyRef = inject(DestroyRef);\n\n  ngAfterContentInit(): void {\n    if (this.routerOutlet) {\n      const dialogRef = new Subject<NgDocOverlayRef>();\n\n      dialogRef\n        .pipe(\n          switchMap((dialogRef: NgDocOverlayRef) =>\n            dialogRef.beforeClose().pipe(takeUntil(this.routerOutlet?.deactivateEvents ?? NEVER)),\n          ),\n          takeUntilDestroyed(this.destroyRef),\n        )\n        .subscribe(() => {\n          const url = this.route.pathFromRoot\n            .map((r) => r.snapshot.url)\n            .filter((f) => !!f[0])\n            .map(([f]) => f.path)\n            .join('/');\n\n          this.router.navigateByUrl(url);\n        });\n\n      merge(\n        this.routerOutlet.activateEvents.pipe(map(() => true)),\n        this.routerOutlet.deactivateEvents.pipe(map(() => false)),\n      )\n        .pipe(startWith(this.routerOutlet.isActivated), takeUntilDestroyed(this.destroyRef))\n        .subscribe((activated: boolean) => {\n          if (activated) {\n            this.dialogRef = this.dialogService.open(this.outletContent, this.config);\n\n            dialogRef.next(this.dialogRef);\n          } else {\n            this.dialogRef?.close();\n          }\n        });\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MA4Ba,qBAAqB,CAAA;AAVlC,IAAA,WAAA,GAAA;AAsBqB,QAAA,IAAA,CAAA,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAA,CAAA,KAAK,GAAmB,MAAM,CAAC,cAAc,CAAC;AAC9C,QAAA,IAAA,CAAA,aAAa,GAAuB,MAAM,CAAC,kBAAkB,CAAC;AAC9D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAuCnD,IAAA;IArCC,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,SAAS,GAAG,IAAI,OAAO,EAAmB;YAEhD;AACG,iBAAA,IAAI,CACH,SAAS,CAAC,CAAC,SAA0B,KACnC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,IAAI,KAAK,CAAC,CAAC,CACtF,EACD,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBAEpC,SAAS,CAAC,MAAK;AACd,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;qBACpB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG;AACzB,qBAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI;qBACnB,IAAI,CAAC,GAAG,CAAC;AAEZ,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;AAChC,YAAA,CAAC,CAAC;AAEJ,YAAA,KAAK,CACH,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,EACtD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAExD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAClF,iBAAA,SAAS,CAAC,CAAC,SAAkB,KAAI;gBAChC,IAAI,SAAS,EAAE;AACb,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC;AAEzE,oBAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAChC;qBAAO;AACL,oBAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;gBACzB;AACF,YAAA,CAAC,CAAC;QACN;IACF;8GArDW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOlB,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdhB;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;;;;AAIT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;sBAEE;;sBAGA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAG3C,YAAY;uBAAC,YAAY;;;ACnC5B;;AAEG;;;;"}