{"version":3,"file":"ng-zorro-antd-core-services.mjs","sources":["../../components/core/services/resize.ts","../../components/core/services/singleton.ts","../../components/core/services/drag.ts","../../components/core/services/scroll.ts","../../components/core/services/breakpoint.ts","../../components/core/services/destroy.ts","../../components/core/services/image-preload.ts","../../components/core/services/public-api.ts","../../components/core/services/ng-zorro-antd-core-services.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 { Injectable, NgZone, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { auditTime, finalize } from 'rxjs/operators';\n\nconst NOOP = (): void => {};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzResizeService implements OnDestroy {\n  private readonly resizeSource$ = new Subject<void>();\n\n  private listeners = 0;\n\n  private renderer: Renderer2;\n\n  private disposeHandle = NOOP;\n\n  private handler = (): void => {\n    this.ngZone.run(() => {\n      this.resizeSource$.next();\n    });\n  };\n\n  constructor(private ngZone: NgZone, private rendererFactory2: RendererFactory2) {\n    this.renderer = this.rendererFactory2.createRenderer(null, null);\n  }\n\n  ngOnDestroy(): void {\n    // Caretaker note: the `handler` is an instance property (it's not defined on the class prototype).\n    // The `handler` captures `this` and prevents the `NzResizeService` from being GC'd.\n    this.handler = NOOP;\n  }\n\n  subscribe(): Observable<void> {\n    this.registerListener();\n\n    return this.resizeSource$.pipe(\n      auditTime(16),\n      finalize(() => this.unregisterListener())\n    );\n  }\n\n  unsubscribe(): void {\n    this.unregisterListener();\n  }\n\n  private registerListener(): void {\n    if (this.listeners === 0) {\n      this.ngZone.runOutsideAngular(() => {\n        this.disposeHandle = this.renderer.listen('window', 'resize', this.handler);\n      });\n    }\n\n    this.listeners += 1;\n  }\n\n  private unregisterListener(): void {\n    this.listeners -= 1;\n\n    if (this.listeners === 0) {\n      this.disposeHandle();\n      this.disposeHandle = NOOP;\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 { Injectable } from '@angular/core';\n\nimport { environment } from 'ng-zorro-antd/core/environments';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\ninterface SingletonRegistryItem {\n  target: NzSafeAny;\n}\n\n/**\n * When running in test, singletons should not be destroyed. So we keep references of singletons\n * in this global variable.\n */\nconst testSingleRegistry = new Map<string, SingletonRegistryItem>();\n\n/**\n * Some singletons should have life cycle that is same to Angular's. This service make sure that\n * those singletons get destroyed in HMR.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzSingletonService {\n  private get singletonRegistry(): Map<string, SingletonRegistryItem> {\n    return environment.isTestMode ? testSingleRegistry : this._singletonRegistry;\n  }\n\n  /**\n   * This registry is used to register singleton in dev mode.\n   * So that singletons get destroyed when hot module reload happens.\n   *\n   * This works in prod mode too but with no specific effect.\n   */\n  private _singletonRegistry = new Map<string, SingletonRegistryItem>();\n\n  registerSingletonWithKey(key: string, target: NzSafeAny): void {\n    const alreadyHave = this.singletonRegistry.has(key);\n    const item: SingletonRegistryItem = alreadyHave ? this.singletonRegistry.get(key)! : this.withNewTarget(target);\n\n    if (!alreadyHave) {\n      this.singletonRegistry.set(key, item);\n    }\n  }\n\n  getSingletonWithKey<T>(key: string): T | null {\n    return this.singletonRegistry.has(key) ? (this.singletonRegistry.get(key)!.target as T) : null;\n  }\n\n  private withNewTarget(target: NzSafeAny): SingletonRegistryItem {\n    return {\n      target\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 { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, finalize, map } from 'rxjs/operators';\n\nimport { getEventPosition, isTouchEvent } from 'ng-zorro-antd/core/util';\n\ninterface Point {\n  x: number;\n  y: number;\n}\n\ntype Delta = Point;\n\ninterface HandlerItem {\n  handler?(e: Event): void;\n\n  teardown(): void;\n}\n\nfunction getPagePosition(event: MouseEvent | TouchEvent): Point {\n  const e = getEventPosition(event);\n  return {\n    x: e.pageX,\n    y: e.pageY\n  };\n}\n\n/**\n * This module provide a global dragging service to other components.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzDragService {\n  private draggingThreshold = 5;\n  private currentDraggingSequence: Subject<MouseEvent | Touch> | null = null;\n  private currentStartingPoint: Point | null = null;\n  private handleRegistry = new Set<HandlerItem>();\n  private renderer: Renderer2;\n\n  constructor(rendererFactory2: RendererFactory2) {\n    this.renderer = rendererFactory2.createRenderer(null, null);\n  }\n\n  requestDraggingSequence(event: MouseEvent | TouchEvent): Observable<Delta> {\n    if (!this.handleRegistry.size) {\n      this.registerDraggingHandler(isTouchEvent(event));\n    }\n\n    // Complete last dragging sequence if a new target is dragged.\n    if (this.currentDraggingSequence) {\n      this.currentDraggingSequence.complete();\n    }\n\n    this.currentStartingPoint = getPagePosition(event);\n    this.currentDraggingSequence = new Subject<MouseEvent | Touch>();\n\n    return this.currentDraggingSequence.pipe(\n      map((e: MouseEvent | Touch) => ({\n        x: e.pageX - this.currentStartingPoint!.x,\n        y: e.pageY - this.currentStartingPoint!.y\n      })),\n      filter((e: Delta) => Math.abs(e.x) > this.draggingThreshold || Math.abs(e.y) > this.draggingThreshold),\n      finalize(() => this.teardownDraggingSequence())\n    );\n  }\n\n  private registerDraggingHandler(isTouch: boolean): void {\n    if (isTouch) {\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'touchmove', (e: TouchEvent) => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.next(e.touches[0] || e.changedTouches[0]);\n          }\n        })\n      });\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'touchend', () => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.complete();\n          }\n        })\n      });\n    } else {\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'mousemove', e => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.next(e);\n          }\n        })\n      });\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'mouseup', () => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.complete();\n          }\n        })\n      });\n    }\n  }\n\n  private teardownDraggingSequence(): void {\n    this.currentDraggingSequence = null;\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 { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone } from '@angular/core';\n\nimport { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\n\nfunction easeInOutCubic(t: number, b: number, c: number, d: number): number {\n  const cc = c - b;\n  let tt = t / (d / 2);\n  if (tt < 1) {\n    return (cc / 2) * tt * tt * tt + b;\n  } else {\n    return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\n  }\n}\n\nexport interface NzScrollToOptions {\n  /** Scroll container, default as window */\n  easing?: EasyingFn;\n  /** Scroll end callback */\n  callback?(): void;\n  /** Animation duration, default as 450 */\n  duration?: number;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzScrollService {\n  private doc: Document;\n\n  constructor(private ngZone: NgZone, @Inject(DOCUMENT) doc: NzSafeAny) {\n    this.doc = doc;\n  }\n\n  /** Set the position of the scroll bar of `el`. */\n  setScrollTop(el: Element | Window, topValue: number = 0): void {\n    if (el === window) {\n      this.doc.body.scrollTop = topValue;\n      this.doc.documentElement!.scrollTop = topValue;\n    } else {\n      (el as Element).scrollTop = topValue;\n    }\n  }\n\n  /** Get position of `el` against window. */\n  getOffset(el: Element): { top: number; left: number } {\n    const ret = {\n      top: 0,\n      left: 0\n    };\n    if (!el || !el.getClientRects().length) {\n      return ret;\n    }\n\n    const rect = el.getBoundingClientRect();\n    if (rect.width || rect.height) {\n      const doc = el.ownerDocument!.documentElement;\n      ret.top = rect.top - doc!.clientTop;\n      ret.left = rect.left - doc!.clientLeft;\n    } else {\n      ret.top = rect.top;\n      ret.left = rect.left;\n    }\n\n    return ret;\n  }\n\n  /** Get the position of the scoll bar of `el`. */\n  // TODO: remove '| Window' as the fallback already happens here\n  getScroll(target?: Element | HTMLElement | Window | Document | null, top: boolean = true): number {\n    if (typeof window === 'undefined') {\n      return 0;\n    }\n    const method = top ? 'scrollTop' : 'scrollLeft';\n    let result = 0;\n    if (this.isWindow(target)) {\n      result = (target as Window)[top ? 'pageYOffset' : 'pageXOffset'];\n    } else if (target instanceof Document) {\n      result = target.documentElement[method];\n    } else if (target) {\n      result = (target as HTMLElement)[method];\n    }\n    if (target && !this.isWindow(target) && typeof result !== 'number') {\n      result = ((target as HTMLElement).ownerDocument || (target as Document)).documentElement[method];\n    }\n    return result;\n  }\n\n  isWindow(obj: NzSafeAny): boolean {\n    return obj !== null && obj !== undefined && obj === obj.window;\n  }\n\n  /**\n   * Scroll `el` to some position with animation.\n   *\n   * @param containerEl container, `window` by default\n   * @param y Scroll to `top`, 0 by default\n   */\n  scrollTo(\n    containerEl?: Element | HTMLElement | Window | Document | null,\n    y: number = 0,\n    options: NzScrollToOptions = {}\n  ): void {\n    const target = containerEl ? containerEl : window;\n    const scrollTop = this.getScroll(target);\n    const startTime = Date.now();\n    const { easing, callback, duration = 450 } = options;\n    const frameFunc = (): void => {\n      const timestamp = Date.now();\n      const time = timestamp - startTime;\n      const nextScrollTop = (easing || easeInOutCubic)(time > duration ? duration : time, scrollTop, y, duration);\n      if (this.isWindow(target)) {\n        (target as Window).scrollTo(window.pageXOffset, nextScrollTop);\n      } else if (target instanceof HTMLDocument || target.constructor.name === 'HTMLDocument') {\n        (target as HTMLDocument).documentElement.scrollTop = nextScrollTop;\n      } else {\n        (target as HTMLElement).scrollTop = nextScrollTop;\n      }\n      if (time < duration) {\n        reqAnimFrame(frameFunc);\n      } else if (typeof callback === 'function') {\n        // Caretaker note: the `frameFunc` is called within the `<root>` zone, but we have to re-enter\n        // the Angular zone when calling custom callback to be backwards-compatible.\n        this.ngZone.run(callback);\n      }\n    };\n    // Caretaker note: the `requestAnimationFrame` triggers change detection, but updating a `scrollTop` property or\n    // calling `window.scrollTo` doesn't require Angular to run `ApplicationRef.tick()`.\n    this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));\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 { MediaMatcher } from '@angular/cdk/layout';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, takeUntil } from 'rxjs/operators';\n\nimport { NzResizeService } from './resize';\n\nexport enum NzBreakpointEnum {\n  xxl = 'xxl',\n  xl = 'xl',\n  lg = 'lg',\n  md = 'md',\n  sm = 'sm',\n  xs = 'xs'\n}\n\nexport type BreakpointMap = { [key in NzBreakpointEnum]: string };\nexport type BreakpointBooleanMap = { [key in NzBreakpointEnum]: boolean };\nexport type NzBreakpointKey = keyof typeof NzBreakpointEnum;\n\nexport const gridResponsiveMap: BreakpointMap = {\n  xs: '(max-width: 575px)',\n  sm: '(min-width: 576px)',\n  md: '(min-width: 768px)',\n  lg: '(min-width: 992px)',\n  xl: '(min-width: 1200px)',\n  xxl: '(min-width: 1600px)'\n};\n\nexport const siderResponsiveMap: BreakpointMap = {\n  xs: '(max-width: 479.98px)',\n  sm: '(max-width: 575.98px)',\n  md: '(max-width: 767.98px)',\n  lg: '(max-width: 991.98px)',\n  xl: '(max-width: 1199.98px)',\n  xxl: '(max-width: 1599.98px)'\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzBreakpointService implements OnDestroy {\n  private destroy$ = new Subject<void>();\n\n  constructor(private resizeService: NzResizeService, private mediaMatcher: MediaMatcher) {\n    this.resizeService\n      .subscribe()\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => {});\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n  }\n\n  subscribe(breakpointMap: BreakpointMap): Observable<NzBreakpointEnum>;\n  subscribe(breakpointMap: BreakpointMap, fullMap: true): Observable<BreakpointBooleanMap>;\n  subscribe(breakpointMap: BreakpointMap, fullMap?: true): Observable<NzBreakpointEnum | BreakpointBooleanMap> {\n    if (fullMap) {\n      // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n      const get = () => this.matchMedia(breakpointMap, true);\n      return this.resizeService.subscribe().pipe(\n        map(get),\n        startWith(get()),\n        distinctUntilChanged(\n          (x: [NzBreakpointEnum, BreakpointBooleanMap], y: [NzBreakpointEnum, BreakpointBooleanMap]) => x[0] === y[0]\n        ),\n        map(x => x[1])\n      );\n    } else {\n      // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n      const get = () => this.matchMedia(breakpointMap);\n      return this.resizeService.subscribe().pipe(map(get), startWith(get()), distinctUntilChanged());\n    }\n  }\n\n  private matchMedia(breakpointMap: BreakpointMap): NzBreakpointEnum;\n  private matchMedia(breakpointMap: BreakpointMap, fullMap: true): [NzBreakpointEnum, BreakpointBooleanMap];\n  private matchMedia(\n    breakpointMap: BreakpointMap,\n    fullMap?: true\n  ): NzBreakpointEnum | [NzBreakpointEnum, BreakpointBooleanMap] {\n    let bp = NzBreakpointEnum.md;\n\n    const breakpointBooleanMap: Partial<BreakpointBooleanMap> = {};\n\n    Object.keys(breakpointMap).map(breakpoint => {\n      const castBP = breakpoint as NzBreakpointEnum;\n      const matched = this.mediaMatcher.matchMedia(gridResponsiveMap[castBP]).matches;\n\n      breakpointBooleanMap[breakpoint as NzBreakpointEnum] = matched;\n\n      if (matched) {\n        bp = castBP;\n      }\n    });\n\n    if (fullMap) {\n      return [bp, breakpointBooleanMap as BreakpointBooleanMap];\n    } else {\n      return bp;\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 { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class NzDestroyService extends Subject<void> implements OnDestroy {\n  ngOnDestroy(): void {\n    this.next();\n    this.complete();\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 { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\ninterface PreloadOption {\n  src: string;\n  srcset?: string;\n}\n\nexport type PreloadDisposeHandle = () => void;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ImagePreloadService {\n  private counter = new Map<string, number>();\n  private linkRefs = new Map<string, HTMLLinkElement>();\n\n  constructor(@Inject(DOCUMENT) private document: NzSafeAny, private platform: Platform) {}\n\n  addPreload(option: PreloadOption): PreloadDisposeHandle {\n    if (this.platform.isBrowser) {\n      return () => void 0;\n    }\n    const uniqueKey = `${option.src}${option.srcset}`;\n    let currentCount = this.counter.get(uniqueKey) || 0;\n    currentCount++;\n    this.counter.set(uniqueKey, currentCount);\n    if (!this.linkRefs.has(uniqueKey)) {\n      const linkNode = this.appendPreloadLink(option);\n      this.linkRefs.set(uniqueKey, linkNode);\n    }\n    return () => {\n      if (this.counter.has(uniqueKey)) {\n        let count = this.counter.get(uniqueKey)!;\n        count--;\n        if (count === 0) {\n          const linkNode = this.linkRefs.get(uniqueKey)!;\n          this.removePreloadLink(linkNode);\n          this.counter.delete(uniqueKey);\n          this.linkRefs.delete(uniqueKey);\n        } else {\n          this.counter.set(uniqueKey, count);\n        }\n      }\n    };\n  }\n\n  private appendPreloadLink(option: PreloadOption): HTMLLinkElement {\n    const linkNode = this.document.createElement('link') as HTMLLinkElement;\n    linkNode.setAttribute('rel', 'preload');\n    linkNode.setAttribute('as', 'image');\n    linkNode.setAttribute('href', option.src);\n\n    if (option.srcset) {\n      linkNode.setAttribute('imagesrcset', option.srcset);\n    }\n    this.document.head.appendChild(linkNode);\n    return linkNode;\n  }\n\n  private removePreloadLink(linkNode: HTMLLinkElement): void {\n    if (this.document.head.contains(linkNode)) {\n      this.document.head.removeChild(linkNode);\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\nexport * from './resize';\nexport * from './singleton';\nexport * from './drag';\nexport * from './scroll';\nexport * from './breakpoint';\nexport * from './destroy';\nexport * from './image-preload';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NzResizeService"],"mappings":"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"}