UNPKG

@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 9.22 kB
{"version":3,"file":"ng-doc-ui-kit-components-pane.mjs","sources":["../../../../libs/ui-kit/components/pane/pane.component.ts","../../../../libs/ui-kit/components/pane/pane.component.html","../../../../libs/ui-kit/components/pane/ng-doc-ui-kit-components-pane.ts"],"sourcesContent":["import {\n afterNextRender,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Directive,\n DOCUMENT,\n ElementRef,\n HostBinding,\n inject,\n Input,\n NgZone,\n OnChanges,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ngDocZoneOptimize } from '@ng-doc/ui-kit/observables';\nimport { fromEvent, merge, Observable } from 'rxjs';\nimport {\n debounceTime,\n filter,\n map,\n pairwise,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\n@Directive({\n selector: '[ngDocPaneFront]',\n standalone: true,\n})\nexport class NgDocPaneFrontDirective {}\n\n@Directive({\n selector: '[ngDocPaneBack]',\n standalone: true,\n})\nexport class NgDocPaneBackDirective {}\n\n@Component({\n selector: 'ng-doc-pane',\n templateUrl: './pane.component.html',\n styleUrls: ['./pane.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class NgDocPaneComponent implements OnChanges {\n private readonly document = inject<Document>(DOCUMENT);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly ngZone = inject(NgZone);\n\n @Input()\n expanded: boolean = false;\n\n @ViewChild('resizer', { static: true })\n resizer?: ElementRef<HTMLElement>;\n\n width: string = '0%';\n\n @HostBinding('attr.data-ng-doc-dragging')\n dragging: boolean = false;\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n afterNextRender(() => {\n if (this.resizer) {\n const mouseDown$ = fromEvent(this.resizer.nativeElement, 'mousedown').pipe(\n tap(() => {\n this.dragging = true;\n this.changeDetectorRef.markForCheck();\n }),\n );\n\n const mouseUp$ = fromEvent(this.document, 'mouseup').pipe(\n tap(() => {\n this.dragging = false;\n this.changeDetectorRef.markForCheck();\n }),\n );\n\n const mouseMove$ = (fromEvent(this.document, 'mousemove') as Observable<MouseEvent>).pipe(\n map((event: MouseEvent) => event.clientX),\n pairwise(),\n map(([prev, next]: [number, number]) => next - prev),\n );\n\n mouseDown$\n .pipe(\n switchMap(() => {\n const dragEvent$ = mouseMove$.pipe(takeUntil(mouseUp$));\n\n const clickEvent$ = mouseUp$.pipe(\n map(() => null),\n takeUntil(mouseMove$),\n take(1),\n );\n\n return merge(dragEvent$, clickEvent$);\n }),\n filter((delta: number | null) => delta !== 0),\n ngDocZoneOptimize(this.ngZone),\n takeUntilDestroyed(destroyRef),\n )\n .subscribe((delta: number | null) => {\n delta === null ? this.toggle() : this.addDelta(delta);\n });\n }\n\n fromEvent(window, 'resize')\n .pipe(debounceTime(100), ngDocZoneOptimize(this.ngZone), takeUntilDestroyed(destroyRef))\n .subscribe(() => this.addDelta(0));\n });\n\n this.addDelta(0);\n }\n\n ngOnChanges({ expanded }: SimpleChanges): void {\n if (expanded) {\n expanded.currentValue\n ? this.addDelta(this.elementRef.nativeElement.offsetWidth)\n : this.addDelta(-this.elementRef.nativeElement.offsetWidth);\n }\n }\n\n toggle(): void {\n if (this.resizer) {\n const middle = this.elementRef.nativeElement.offsetWidth / 2;\n\n if (this.resizer.nativeElement.offsetLeft < middle) {\n this.addDelta(this.elementRef.nativeElement.offsetWidth);\n } else {\n this.addDelta(-this.elementRef.nativeElement.offsetWidth);\n }\n }\n }\n\n private addDelta(delta: number): void {\n if (this.resizer) {\n const maxWidth =\n this.elementRef.nativeElement.offsetWidth - this.resizer.nativeElement.offsetWidth;\n\n this.width = `${Math.min(\n maxWidth,\n Math.max(0, this.resizer.nativeElement.offsetLeft + delta),\n )}px`;\n\n this.changeDetectorRef.detectChanges();\n }\n }\n}\n","<div class=\"ng-doc-pane-back\" [style.width]=\"width\">\n\t<div class=\"ng-doc-pane-content\">\n\t\t<ng-content select=\"[ngDocPaneBack]\"></ng-content>\n\t</div>\n</div>\n<div class=\"ng-doc-pane-resizer\" #resizer></div>\n<div class=\"ng-doc-pane-front\">\n\t<div class=\"ng-doc-pane-content\">\n\t\t<ng-content select=\"[ngDocPaneFront]\"></ng-content>\n\t</div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}