ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 10.2 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-back-top.mjs","sources":["../../components/back-top/back-top.component.ts","../../components/back-top/back-top.module.ts","../../components/back-top/public-api.ts","../../components/back-top/ng-zorro-antd-back-top.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\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { fadeMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzDestroyService, NzScrollService } from 'ng-zorro-antd/core/services';\nimport { NumberInput, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputNumber } from 'ng-zorro-antd/core/util';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'backTop';\n\n@Component({\n selector: 'nz-back-top',\n exportAs: 'nzBackTop',\n animations: [fadeMotion],\n template: `\n <div #backTop class=\"ant-back-top\" [class.ant-back-top-rtl]=\"dir === 'rtl'\" @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"ant-back-top-content\">\n <div class=\"ant-back-top-icon\">\n <i nz-icon nzType=\"vertical-align-top\"></i>\n </div>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"nzTemplate || defaultContent\"></ng-template>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [NzDestroyService]\n})\nexport class NzBackTopComponent implements OnInit, OnDestroy, OnChanges {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n static ngAcceptInputType_nzVisibilityHeight: NumberInput;\n static ngAcceptInputType_nzDuration: NumberInput;\n\n private scrollListenerDestroy$ = new Subject();\n private target: HTMLElement | null = null;\n\n visible: boolean = false;\n dir: Direction = 'ltr';\n\n @Input() nzTemplate?: TemplateRef<void>;\n @Input() @WithConfig() @InputNumber() nzVisibilityHeight: number = 400;\n @Input() nzTarget?: string | HTMLElement;\n @Input() @InputNumber() nzDuration: number = 450;\n @Output() readonly nzClick: EventEmitter<boolean> = new EventEmitter();\n\n @ViewChild('backTop', { static: false })\n set backTop(backTop: ElementRef<HTMLElement> | undefined) {\n if (backTop) {\n this.backTopClickSubscription.unsubscribe();\n\n this.backTopClickSubscription = this.zone.runOutsideAngular(() =>\n fromEvent(backTop.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.scrollSrv.scrollTo(this.getTarget(), 0, { duration: this.nzDuration });\n if (this.nzClick.observers.length) {\n this.zone.run(() => this.nzClick.emit(true));\n }\n })\n );\n }\n }\n\n private backTopClickSubscription = Subscription.EMPTY;\n\n constructor(\n @Inject(DOCUMENT) private doc: NzSafeAny,\n public nzConfigService: NzConfigService,\n private scrollSrv: NzScrollService,\n private platform: Platform,\n private cd: ChangeDetectorRef,\n private zone: NgZone,\n private cdr: ChangeDetectorRef,\n private destroy$: NzDestroyService,\n @Optional() private directionality: Directionality\n ) {\n this.dir = this.directionality.value;\n }\n\n ngOnInit(): void {\n this.registerScrollEvent();\n\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n\n this.dir = this.directionality.value;\n }\n\n private getTarget(): HTMLElement | Window {\n return this.target || window;\n }\n\n private handleScroll(): void {\n if (this.visible === this.scrollSrv.getScroll(this.getTarget()) > this.nzVisibilityHeight) {\n return;\n }\n this.visible = !this.visible;\n this.cd.detectChanges();\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.scrollListenerDestroy$.next();\n this.handleScroll();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getTarget(), 'scroll')\n .pipe(debounceTime(50), takeUntil(this.scrollListenerDestroy$))\n .subscribe(() => this.handleScroll());\n });\n }\n\n ngOnDestroy(): void {\n this.scrollListenerDestroy$.next();\n this.scrollListenerDestroy$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzTarget } = changes;\n if (nzTarget) {\n this.target = typeof this.nzTarget === 'string' ? this.doc.querySelector(this.nzTarget) : this.nzTarget;\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 { BidiModule } from '@angular/cdk/bidi';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzBackTopComponent } from './back-top.component';\n\n@NgModule({\n declarations: [NzBackTopComponent],\n exports: [NzBackTopComponent],\n imports: [BidiModule, CommonModule, PlatformModule, NzIconModule]\n})\nexport class NzBackTopModule {}\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 './back-top.component';\nexport * from './back-top.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}