{"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 { normalizePassiveListenerOptions, 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\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });\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            <span nz-icon nzType=\"vertical-align-top\"></span>\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', <AddEventListenerOptions>passiveEventListenerOptions)\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":";;;;;;;;;;;;;;;;;;;;AAoCA,MAAM,qBAAqB,GAAgB,SAAS,CAAC;AAErD,MAAM,2BAA2B,GAAG,+BAA+B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;MAuB1E,kBAAkB,CAAA;AAqC7B,IAAA,WAAA,CAC4B,GAAc,EACjC,eAAgC,EAC/B,SAA0B,EAC1B,QAAkB,EAClB,EAAqB,EACrB,IAAY,EACZ,GAAsB,EACtB,QAA0B,EACd,cAA8B,EAAA;QARxB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAW;QACjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QA7C3C,IAAa,CAAA,aAAA,GAAgB,qBAAqB,CAAC;AAIpD,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAE,CAAC;QACvC,IAAM,CAAA,MAAA,GAAuB,IAAI,CAAC;QAE1C,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;QAGe,IAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;QAE/C,IAAU,CAAA,UAAA,GAAW,GAAG,CAAC;AAC9B,QAAA,IAAA,CAAA,OAAO,GAA0B,IAAI,YAAY,EAAE,CAAC;AAoB/D,QAAA,IAAA,CAAA,wBAAwB,GAAG,YAAY,CAAC,KAAK,CAAC;QAapD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACtC;IAhCD,IACI,OAAO,CAAC,OAA4C,EAAA;AACtD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;AAE5C,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAC1D,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;AACtC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5E,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;AACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,iBAAA;aACF,CAAC,CACL,CAAC;AACH,SAAA;KACF;IAkBD,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAoB,KAAI;AAC5F,YAAA,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACtC;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;KAC9B;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE;YACzF,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KACzB;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC5B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;YAC/B,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAA2B,2BAA2B,CAAC;AACxF,iBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;iBAC9D,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1C,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;KACxC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;AAC7B,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;;AAlGU,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAsCnB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAtCP,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAFlB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAfnB,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;GAWT,EAZW,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,UAAU,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AA8Bd,IAAA,UAAU,EAAE;AAAE,IAAA,WAAW,EAAE;AAAkC,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAE7D,IAAA,WAAW,EAAE;AAA0B,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAdtC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,UAAU,EAAE,CAAC,UAAU,CAAC;AACxB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,mBAAmB,EAAE,KAAK;oBAC1B,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAC9B,iBAAA,CAAA;;0BAuCI,MAAM;2BAAC,QAAQ,CAAA;;0BAQf,QAAQ;4CAnCF,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACgC,kBAAkB,EAAA,CAAA;sBAAvD,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACkB,UAAU,EAAA,CAAA;sBAAjC,KAAK;gBACa,OAAO,EAAA,CAAA;sBAAzB,MAAM;gBAGH,OAAO,EAAA,CAAA;sBADV,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AC9EzC;;;AAGG;MAgBU,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,CAJX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEvB,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CADtD,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGjB,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAFhB,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;2FAErD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC;AAClE,iBAAA,CAAA;;;AClBD;;;AAGG;;ACHH;;AAEG;;;;"}