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.5 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 { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tDirective,\n\tElementRef,\n\tHostBinding,\n\tInject,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tSimpleChanges,\n\tViewChild,\n} from '@angular/core';\nimport { ngDocZoneOptimize } from '@ng-doc/ui-kit/observables';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent, merge, Observable } from 'rxjs';\nimport {\n\tdebounceTime,\n\tfilter,\n\tmap,\n\tpairwise,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n} from 'rxjs/operators';\n\n@Directive({\n\tselector: '[ngDocPaneFront]',\n\tstandalone: true,\n})\nexport class NgDocPaneFrontDirective {}\n\n@Directive({\n\tselector: '[ngDocPaneBack]',\n\tstandalone: true,\n})\nexport class NgDocPaneBackDirective {}\n\n@Component({\n\tselector: 'ng-doc-pane',\n\ttemplateUrl: './pane.component.html',\n\tstyleUrls: ['./pane.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\n@UntilDestroy()\nexport class NgDocPaneComponent implements OnChanges {\n\t@Input()\n\texpanded: boolean = false;\n\n\t@ViewChild('resizer', { static: true })\n\tresizer?: ElementRef<HTMLElement>;\n\n\twidth: string = '0%';\n\n\t@HostBinding('attr.data-ng-doc-dragging')\n\tdragging: boolean = false;\n\n\tconstructor(\n\t\t@Inject(DOCUMENT)\n\t\tprivate readonly document: Document,\n\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\tprivate readonly elementRef: ElementRef<HTMLElement>,\n\t\tprivate readonly ngZone: NgZone,\n\t) {\n\t\tafterNextRender(() => {\n\t\t\tif (this.resizer) {\n\t\t\t\tconst mouseDown$ = fromEvent(this.resizer.nativeElement, 'mousedown').pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\tthis.dragging = true;\n\t\t\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tconst mouseUp$ = fromEvent(this.document, 'mouseup').pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\tthis.dragging = false;\n\t\t\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tconst mouseMove$ = (fromEvent(this.document, 'mousemove') as Observable<MouseEvent>).pipe(\n\t\t\t\t\tmap((event: MouseEvent) => event.clientX),\n\t\t\t\t\tpairwise(),\n\t\t\t\t\tmap(([prev, next]: [number, number]) => next - prev),\n\t\t\t\t);\n\n\t\t\t\tmouseDown$\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\tswitchMap(() => {\n\t\t\t\t\t\t\tconst dragEvent$ = mouseMove$.pipe(takeUntil(mouseUp$));\n\n\t\t\t\t\t\t\tconst clickEvent$ = mouseUp$.pipe(\n\t\t\t\t\t\t\t\tmap(() => null),\n\t\t\t\t\t\t\t\ttakeUntil(mouseMove$),\n\t\t\t\t\t\t\t\ttake(1),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\treturn merge(dragEvent$, clickEvent$);\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tfilter((delta: number | null) => delta !== 0),\n\t\t\t\t\t\tngDocZoneOptimize(this.ngZone),\n\t\t\t\t\t\tuntilDestroyed(this),\n\t\t\t\t\t)\n\t\t\t\t\t.subscribe((delta: number | null) => {\n\t\t\t\t\t\tdelta === null ? this.toggle() : this.addDelta(delta);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tfromEvent(window, 'resize')\n\t\t\t\t.pipe(debounceTime(100), untilDestroyed(this), ngDocZoneOptimize(this.ngZone))\n\t\t\t\t.subscribe(() => this.addDelta(0));\n\t\t});\n\n\t\tthis.addDelta(0);\n\t}\n\n\tngOnChanges({ expanded }: SimpleChanges): void {\n\t\tif (expanded) {\n\t\t\texpanded.currentValue\n\t\t\t\t? this.addDelta(this.elementRef.nativeElement.offsetWidth)\n\t\t\t\t: this.addDelta(-this.elementRef.nativeElement.offsetWidth);\n\t\t}\n\t}\n\n\ttoggle(): void {\n\t\tif (this.resizer) {\n\t\t\tconst middle = this.elementRef.nativeElement.offsetWidth / 2;\n\n\t\t\tif (this.resizer.nativeElement.offsetLeft < middle) {\n\t\t\t\tthis.addDelta(this.elementRef.nativeElement.offsetWidth);\n\t\t\t} else {\n\t\t\t\tthis.addDelta(-this.elementRef.nativeElement.offsetWidth);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate addDelta(delta: number): void {\n\t\tif (this.resizer) {\n\t\t\tconst maxWidth =\n\t\t\t\tthis.elementRef.nativeElement.offsetWidth - this.resizer.nativeElement.offsetWidth;\n\n\t\t\tthis.width = `${Math.min(\n\t\t\t\tmaxWidth,\n\t\t\t\tMath.max(0, this.resizer.nativeElement.offsetLeft + delta),\n\t\t\t)}px`;\n\n\t\t\tthis.changeDetectorRef.detectChanges();\n\t\t}\n\t}\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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"}