ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 19.9 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-anchor.mjs","sources":["../../components/anchor/util.ts","../../components/anchor/anchor.component.ts","../../components/anchor/anchor-link.component.ts","../../components/anchor/anchor.module.ts","../../components/anchor/public-api.ts","../../components/anchor/ng-zorro-antd-anchor.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport function getOffsetTop(element: HTMLElement, container: HTMLElement | Window): number {\n if (!element || !element.getClientRects().length) {\n return 0;\n }\n const rect = element.getBoundingClientRect();\n\n if (rect.width || rect.height) {\n if (container === window) {\n const documentElement = element.ownerDocument!.documentElement!;\n return rect.top - documentElement.clientTop;\n }\n return rect.top - (container as HTMLElement).getBoundingClientRect().top;\n }\n\n return rect.top;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil, throttleTime } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzScrollService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput, NgStyleInterface, NumberInput, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean, InputNumber } from 'ng-zorro-antd/core/util';\n\nimport { NzAnchorLinkComponent } from './anchor-link.component';\nimport { getOffsetTop } from './util';\n\ninterface Section {\n comp: NzAnchorLinkComponent;\n top: number;\n}\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'anchor';\nconst sharpMatcherRegx = /#([^#]+)$/;\n\n@Component({\n selector: 'nz-anchor',\n exportAs: 'nzAnchor',\n preserveWhitespaces: false,\n template: `\n <nz-affix *ngIf=\"nzAffix; else content\" [nzOffsetTop]=\"nzOffsetTop\" [nzTarget]=\"container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </nz-affix>\n <ng-template #content>\n <div class=\"ant-anchor-wrapper\" [ngStyle]=\"wrapperStyle\">\n <div class=\"ant-anchor\" [ngClass]=\"{ 'ant-anchor-fixed': !nzAffix && !nzShowInkInFixed }\">\n <div class=\"ant-anchor-ink\">\n <div class=\"ant-anchor-ink-ball\" #ink></div>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzAnchorComponent implements OnDestroy, AfterViewInit, OnChanges {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n static ngAcceptInputType_nzAffix: BooleanInput;\n static ngAcceptInputType_nzShowInkInFixed: BooleanInput;\n static ngAcceptInputType_nzBounds: NumberInput;\n static ngAcceptInputType_nzOffsetTop: NumberInput;\n\n @ViewChild('ink', { static: false }) private ink!: ElementRef;\n\n @Input() @InputBoolean() nzAffix = true;\n\n @Input()\n @WithConfig()\n @InputBoolean()\n nzShowInkInFixed: boolean = false;\n\n @Input()\n @WithConfig()\n @InputNumber()\n nzBounds: number = 5;\n\n @Input()\n @InputNumber(undefined)\n @WithConfig<number>()\n nzOffsetTop?: number = undefined;\n\n @Input() nzContainer?: string | HTMLElement;\n\n @Output() readonly nzClick = new EventEmitter<string>();\n @Output() readonly nzScroll = new EventEmitter<NzAnchorLinkComponent>();\n\n visible = false;\n wrapperStyle: NgStyleInterface = { 'max-height': '100vh' };\n\n container?: HTMLElement | Window;\n\n private links: NzAnchorLinkComponent[] = [];\n private animating = false;\n private destroy$ = new Subject();\n private handleScrollTimeoutID = -1;\n\n constructor(\n @Inject(DOCUMENT) private doc: NzSafeAny,\n public nzConfigService: NzConfigService,\n private scrollSrv: NzScrollService,\n private cdr: ChangeDetectorRef,\n private platform: Platform,\n private zone: NgZone,\n private renderer: Renderer2\n ) {}\n\n registerLink(link: NzAnchorLinkComponent): void {\n this.links.push(link);\n }\n\n unregisterLink(link: NzAnchorLinkComponent): void {\n this.links.splice(this.links.indexOf(link), 1);\n }\n\n private getContainer(): HTMLElement | Window {\n return this.container || window;\n }\n\n ngAfterViewInit(): void {\n this.registerScrollEvent();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.handleScrollTimeoutID);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.destroy$.next();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getContainer(), 'scroll')\n .pipe(throttleTime(50), takeUntil(this.destroy$))\n .subscribe(() => this.handleScroll());\n });\n // Browser would maintain the scrolling position when refreshing.\n // So we have to delay calculation in avoid of getting a incorrect result.\n this.handleScrollTimeoutID = setTimeout(() => this.handleScroll());\n }\n\n handleScroll(): void {\n if (typeof document === 'undefined' || this.animating) {\n return;\n }\n\n const sections: Section[] = [];\n const scope = (this.nzOffsetTop || 0) + this.nzBounds;\n this.links.forEach(comp => {\n const sharpLinkMatch = sharpMatcherRegx.exec(comp.nzHref.toString());\n if (!sharpLinkMatch) {\n return;\n }\n const target = this.doc.getElementById(sharpLinkMatch[1]);\n if (target) {\n const top = getOffsetTop(target, this.getContainer());\n if (top < scope) {\n sections.push({\n top,\n comp\n });\n }\n }\n });\n\n this.visible = !!sections.length;\n if (!this.visible) {\n this.clearActive();\n this.cdr.detectChanges();\n } else {\n const maxSection = sections.reduce((prev, curr) => (curr.top > prev.top ? curr : prev));\n this.handleActive(maxSection.comp);\n }\n this.setVisible();\n }\n\n private clearActive(): void {\n this.links.forEach(i => {\n i.unsetActive();\n });\n }\n\n private handleActive(comp: NzAnchorLinkComponent): void {\n this.clearActive();\n comp.setActive();\n const linkNode = comp.getLinkTitleElement();\n this.ink.nativeElement.style.top = `${linkNode.offsetTop + linkNode.clientHeight / 2 - 4.5}px`;\n this.visible = true;\n this.setVisible();\n this.nzScroll.emit(comp);\n }\n\n private setVisible(): void {\n const visible = this.visible;\n const visibleClassname = 'visible';\n if (this.ink) {\n if (visible) {\n this.renderer.addClass(this.ink.nativeElement, visibleClassname);\n } else {\n this.renderer.removeClass(this.ink.nativeElement, visibleClassname);\n }\n }\n }\n\n handleScrollTo(linkComp: NzAnchorLinkComponent): void {\n const el = this.doc.querySelector(linkComp.nzHref);\n if (!el) {\n return;\n }\n\n this.animating = true;\n const containerScrollTop = this.scrollSrv.getScroll(this.getContainer());\n const elOffsetTop = getOffsetTop(el, this.getContainer());\n const targetScrollTop = containerScrollTop + elOffsetTop - (this.nzOffsetTop || 0);\n this.scrollSrv.scrollTo(this.getContainer(), targetScrollTop, {\n callback: () => {\n this.animating = false;\n this.handleActive(linkComp);\n }\n });\n this.nzClick.emit(linkComp.nzHref);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzOffsetTop, nzContainer } = changes;\n if (nzOffsetTop) {\n this.wrapperStyle = {\n 'max-height': `calc(100vh - ${this.nzOffsetTop}px)`\n };\n }\n if (nzContainer) {\n const container = this.nzContainer;\n this.container = typeof container === 'string' ? this.doc.querySelector(container) : container;\n this.registerScrollEvent();\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzAnchorComponent } from './anchor.component';\n\n@Component({\n selector: 'nz-link',\n exportAs: 'nzLink',\n preserveWhitespaces: false,\n template: `\n <a #linkTitle (click)=\"goToClick($event)\" href=\"{{ nzHref }}\" class=\"ant-anchor-link-title\" title=\"{{ titleStr }}\">\n <span *ngIf=\"titleStr; else titleTpl || nzTemplate\">{{ titleStr }}</span>\n </a>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzAnchorLinkComponent implements OnInit, OnDestroy {\n @Input() nzHref = '#';\n\n titleStr: string | null = '';\n titleTpl?: TemplateRef<NzSafeAny>;\n\n @Input()\n set nzTitle(value: string | TemplateRef<void>) {\n if (value instanceof TemplateRef) {\n this.titleStr = null;\n this.titleTpl = value;\n } else {\n this.titleStr = value;\n }\n }\n\n @ContentChild('nzTemplate', { static: false }) nzTemplate!: TemplateRef<void>;\n @ViewChild('linkTitle') linkTitle!: ElementRef<HTMLAnchorElement>;\n\n constructor(\n public elementRef: ElementRef,\n private anchorComp: NzAnchorComponent,\n private platform: Platform,\n private renderer: Renderer2\n ) {\n this.renderer.addClass(elementRef.nativeElement, 'ant-anchor-link');\n }\n\n ngOnInit(): void {\n this.anchorComp.registerLink(this);\n }\n\n getLinkTitleElement(): HTMLAnchorElement {\n return this.linkTitle.nativeElement;\n }\n\n setActive(): void {\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-anchor-link-active');\n }\n\n unsetActive(): void {\n this.renderer.removeClass(this.elementRef.nativeElement, 'ant-anchor-link-active');\n }\n\n goToClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n if (this.platform.isBrowser) {\n this.anchorComp.handleScrollTo(this);\n }\n }\n\n ngOnDestroy(): void {\n this.anchorComp.unregisterLink(this);\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzAffixModule } from 'ng-zorro-antd/affix';\n\nimport { NzAnchorLinkComponent } from './anchor-link.component';\nimport { NzAnchorComponent } from './anchor.component';\n\n@NgModule({\n declarations: [NzAnchorComponent, NzAnchorLinkComponent],\n exports: [NzAnchorComponent, NzAnchorLinkComponent],\n imports: [BidiModule, CommonModule, NzAffixModule, PlatformModule]\n})\nexport class NzAnchorModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './anchor-link.component';\nexport * from './anchor.component';\nexport * from './anchor.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}