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 8.99 kB
{"version":3,"file":"ng-doc-ui-kit-components-selection.mjs","sources":["../../../../libs/ui-kit/components/selection/selection-host.directive.ts","../../../../libs/ui-kit/components/selection/selection.component.ts","../../../../libs/ui-kit/components/selection/selection-origin.directive.ts","../../../../libs/ui-kit/components/selection/ng-doc-ui-kit-components-selection.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { NgDocSelectionOriginDirective } from './selection-origin.directive';\n\n@Directive({\n\tselector: '[ngDocSelectionHost]',\n\tstandalone: true,\n})\nexport class NgDocSelectionHostDirective {\n\tprivate origins: Set<NgDocSelectionOriginDirective> = new Set<NgDocSelectionOriginDirective>();\n\tprivate selected?: NgDocSelectionOriginDirective;\n\tprivate selectedChange: ReplaySubject<HTMLElement | undefined> = new ReplaySubject<\n\t\tHTMLElement | undefined\n\t>();\n\n\tget selectedChange$(): Observable<HTMLElement | undefined> {\n\t\treturn this.selectedChange.pipe(distinctUntilChanged());\n\t}\n\n\taddOrigin(origin: NgDocSelectionOriginDirective): void {\n\t\tthis.origins.add(origin);\n\t}\n\n\tremoveOrigin(origin: NgDocSelectionOriginDirective): void {\n\t\tthis.origins.delete(origin);\n\n\t\tif (this.selected === origin) {\n\t\t\tthis.changeSelected(origin, false);\n\t\t}\n\t}\n\n\tchangeSelected(origin: NgDocSelectionOriginDirective, selected: boolean): void {\n\t\tthis.selected =\n\t\t\tthis.selected === origin || selected ? (selected ? origin : undefined) : this.selected;\n\t\tthis.selectedChange.next(this.selected?.elementRef?.nativeElement ?? undefined);\n\t}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { NgDocHorizontalAlign, NgDocPosition, NgDocVerticalAlign } from '@ng-doc/ui-kit/types';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { NgDocSelectionHostDirective } from './selection-host.directive';\n\n@Component({\n selector: 'ng-doc-selection',\n template: '',\n styleUrls: ['./selection.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\n@UntilDestroy()\nexport class NgDocSelectionComponent implements AfterViewInit {\n @Input()\n @HostBinding('attr.data-ng-doc-align')\n align: NgDocHorizontalAlign | NgDocVerticalAlign = 'bottom';\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly selectionHost: NgDocSelectionHostDirective,\n ) {}\n\n ngAfterViewInit(): void {\n this.selectionHost.selectedChange$\n .pipe(debounceTime(0), untilDestroyed(this))\n .subscribe((selected: HTMLElement | undefined) => this.setStyles(selected));\n }\n\n private setStyles(element?: HTMLElement): void {\n this.elementRef.nativeElement.style.visibility = 'hidden';\n if (element) {\n const position: NgDocPosition = this.getPosition(element);\n\n if (this.align === 'left' || this.align === 'right') {\n this.elementRef.nativeElement.style.top = position.top;\n } else {\n this.elementRef.nativeElement.style.left = position.left;\n }\n\n this.elementRef.nativeElement.style.height = position.height;\n this.elementRef.nativeElement.style.width = position.width;\n this.elementRef.nativeElement.style.visibility = 'visible';\n }\n }\n\n private getPosition(element: HTMLElement): NgDocPosition {\n return {\n top: element ? `${element.offsetTop || 0}px` : '0',\n left: element ? `${element.offsetLeft || 0}px` : '0',\n width: element ? `${element.offsetWidth || 0}px` : '0',\n height: element ? `${element.offsetHeight || 0}px` : '0',\n };\n }\n}\n","import { Directive, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\n\nimport { NgDocSelectionHostDirective } from './selection-host.directive';\n\n@Directive({\n\tselector: '[ngDocSelectionOrigin]',\n\tstandalone: true,\n})\nexport class NgDocSelectionOriginDirective implements OnChanges, OnDestroy {\n\t@Input('ngDocSelectionOrigin')\n\tselected: boolean = false;\n\n\tconstructor(\n\t\treadonly elementRef: ElementRef<HTMLElement>,\n\t\tprivate readonly selectionHost: NgDocSelectionHostDirective,\n\t) {\n\t\tthis.selectionHost.addOrigin(this);\n\t}\n\n\tngOnChanges({ selected }: SimpleChanges): void {\n\t\tif (selected) {\n\t\t\tthis.selectionHost.changeSelected(this, this.selected);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.selectionHost.removeOrigin(this);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NgDocSelectionHostDirective"],"mappings":"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"}