@ng-doc/ui-kit
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
1 lines • 6.43 kB
Source Map (JSON)
{"version":3,"file":"ng-doc-ui-kit-services-overlay.mjs","sources":["../../../../libs/ui-kit/services/overlay/overlay.service.ts","../../../../libs/ui-kit/services/overlay/ng-doc-ui-kit-services-overlay.ts"],"sourcesContent":["import {\n FlexibleConnectedPositionStrategy,\n GlobalPositionStrategy,\n Overlay,\n OverlayRef,\n ScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, inject, Injectable, Injector, NgZone, StaticProvider } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocOverlayRef } from '@ng-doc/ui-kit/classes';\nimport { NgDocOverlayConfig, NgDocOverlayContainer } from '@ng-doc/ui-kit/interfaces';\nimport { NgDocContent, NgDocOverlayOrigin, NgDocOverlayPosition } from '@ng-doc/ui-kit/types';\nimport { NgDocOverlayUtils } from '@ng-doc/ui-kit/utils';\nimport { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';\nimport { take } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NgDocOverlayService {\n private overlay = inject(Overlay);\n private ngZone = inject(NgZone);\n private injector = inject(Injector);\n private router = inject(Router);\n\n constructor() {}\n\n open<R>(\n content: NgDocContent,\n config: NgDocOverlayConfig,\n providers: StaticProvider[] = [],\n ): NgDocOverlayRef<R> {\n const overlayRef: OverlayRef = this.createOverlay(config);\n return this.attachTooltipContainer(content, overlayRef, config, providers);\n }\n\n private attachTooltipContainer<R>(\n content: NgDocContent,\n overlay: OverlayRef,\n config: NgDocOverlayConfig,\n providers: StaticProvider[],\n ): NgDocOverlayRef<R> {\n const containerPortal: ComponentPortal<NgDocOverlayContainer> = new ComponentPortal(\n config.overlayContainer,\n config.viewContainerRef,\n config.viewContainerRef?.injector,\n );\n const containerRef: ComponentRef<NgDocOverlayContainer> = overlay.attach(containerPortal);\n const overlayRef: NgDocOverlayRef<R> = new NgDocOverlayRef<R>(\n overlay,\n config,\n containerRef.instance,\n this.ngZone,\n this.router,\n );\n\n if (content instanceof PolymorpheusComponent) {\n content = new PolymorpheusComponent(\n content.component,\n this.createInjector(overlayRef, providers, config.viewContainerRef?.injector),\n );\n }\n\n containerRef.setInput('config', config);\n containerRef.setInput('content', content);\n containerRef.instance.markForCheck();\n\n return overlayRef;\n }\n\n private createOverlay(config: NgDocOverlayConfig): OverlayRef {\n const overlayRef: OverlayRef = this.overlay.create(config);\n overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n overlayRef.hasAttached() && overlayRef.detach();\n });\n return overlayRef;\n }\n\n connectedPositionStrategy(\n origin: NgDocOverlayOrigin,\n positions: NgDocOverlayPosition | NgDocOverlayPosition[],\n ): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions(NgDocOverlayUtils.toConnectedPositions(asArray(positions)))\n .withPush(true);\n }\n\n globalPositionStrategy(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n\n scrollStrategy(): ScrollStrategyOptions {\n return this.overlay.scrollStrategies;\n }\n\n private createInjector<R>(\n overlayRef: NgDocOverlayRef<R>,\n providers: StaticProvider[],\n injector?: Injector,\n ): Injector {\n return Injector.create({\n providers: [\n ...providers,\n {\n provide: NgDocOverlayRef,\n useValue: overlayRef,\n },\n ],\n parent: injector || this.injector,\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MAmBa,mBAAmB,CAAA;AAM9B,IAAA,WAAA,GAAA;AALQ,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEhB;AAEf,IAAA,IAAI,CACF,OAAqB,EACrB,MAA0B,EAC1B,YAA8B,EAAE,EAAA;QAEhC,MAAM,UAAU,GAAe,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC;IAC5E;AAEQ,IAAA,sBAAsB,CAC5B,OAAqB,EACrB,OAAmB,EACnB,MAA0B,EAC1B,SAA2B,EAAA;AAE3B,QAAA,MAAM,eAAe,GAA2C,IAAI,eAAe,CACjF,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAClC;QACD,MAAM,YAAY,GAAwC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;QACzF,MAAM,UAAU,GAAuB,IAAI,eAAe,CACxD,OAAO,EACP,MAAM,EACN,YAAY,CAAC,QAAQ,EACrB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACZ;AAED,QAAA,IAAI,OAAO,YAAY,qBAAqB,EAAE;YAC5C,OAAO,GAAG,IAAI,qBAAqB,CACjC,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAC9E;QACH;AAEA,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;AACzC,QAAA,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE;AAEpC,QAAA,OAAO,UAAU;IACnB;AAEQ,IAAA,aAAa,CAAC,MAA0B,EAAA;QAC9C,MAAM,UAAU,GAAe,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1D;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,MAAK;YACd,UAAU,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE;AACjD,QAAA,CAAC,CAAC;AACJ,QAAA,OAAO,UAAU;IACnB;IAEA,yBAAyB,CACvB,MAA0B,EAC1B,SAAwD,EAAA;QAExD,OAAO,IAAI,CAAC;AACT,aAAA,QAAQ;aACR,mBAAmB,CAAC,MAAM;aAC1B,aAAa,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACxE,QAAQ,CAAC,IAAI,CAAC;IACnB;IAEA,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;IACzC;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB;IACtC;AAEQ,IAAA,cAAc,CACpB,UAA8B,EAC9B,SAA2B,EAC3B,QAAmB,EAAA;QAEnB,OAAO,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA,GAAG,SAAS;AACZ,gBAAA;AACE,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;AAClC,SAAA,CAAC;IACJ;8GAhGW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AClBlC;;AAEG;;;;"}