{"version":3,"file":"ng-devui-anchor.mjs","sources":["../../devui/anchor/anchor.service.ts","../../devui/anchor/anchor.directive.ts","../../devui/anchor/anchor-box.directive.ts","../../devui/anchor/anchor-link.directive.ts","../../devui/anchor/anchor-box-hash.directive.ts","../../devui/anchor/anchor.module.ts","../../devui/anchor/ng-devui-anchor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class AnchorService {\n  currentActiveAnchorSubject = new ReplaySubject(1);\n  currentActiveAnchorObs = this.currentActiveAnchorSubject.asObservable();\n  currentActiveAnchor: string;\n  anchorList: string[] = [];\n\n  setCurrentActive(anchor: string) {\n    if (this.anchorList.indexOf(anchor) >= 0) {\n      this.currentActiveAnchor = anchor;\n      this.currentActiveAnchorSubject.next(anchor);\n    } else if (!anchor) {\n      this.currentActiveAnchor = '';\n    }\n  }\n\n  getCurrentActive() {\n    return this.currentActiveAnchorObs;\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { ReplaySubject, Subscription } from 'rxjs';\nimport { AnchorService } from './anchor.service';\nimport { AnchorActiveChangeSource, IAnchorBox } from './anchor.type';\n\n@Directive({\n  selector: '[dAnchor]',\n})\nexport class AnchorDirective implements AfterViewInit, OnDestroy {\n  @Input('dAnchor') anchor: string;\n  @Input() anchorActive = 'active';\n  _isActive: boolean;\n  set isActive(active: boolean) {\n    this._isActive = active;\n    this.activeChangeSubject.next(active);\n    if (active) {\n      this.anchorService.setCurrentActive(this.anchor);\n    } else if (this.anchorService.currentActiveAnchor === this.anchor) {\n      this.anchorService.setCurrentActive('');\n    }\n  }\n  get isActive() {\n    return this._isActive;\n  }\n  activeChangeBy: AnchorActiveChangeSource;\n  activeChangeSubscription: Subscription;\n  activeChangeSubject = new ReplaySubject(1);\n  lastActiveBy: string;\n\n  element: HTMLElement;\n  _boxElement: IAnchorBox;\n  set boxElement(box: IAnchorBox) {\n    this._boxElement = box;\n    this.updateScrollListenTarget();\n  }\n  get boxElement() {\n    return this._boxElement;\n  }\n\n  scrollListenTarget: Element | Window;\n  REACH_TOP_VISION_OFFSET = 50;\n\n  private THROTTLE_DELAY = 100;\n  private THROTTLE_TRIGGER = 600;\n  private scrollPreStart;\n  private scrollTimer;\n\n  constructor(private el: ElementRef, private anchorService: AnchorService) {\n    this.element = this.el.nativeElement;\n  }\n\n  ngAfterViewInit() {\n    this.activeChangeSubscription = this.activeChangeSubject.asObservable().subscribe((active) => {\n      if (this.lastActiveBy) {\n        this.element.classList.remove(this.lastActiveBy);\n      }\n      if (active) {\n        this.element.classList.add(this.anchorActive);\n        this.lastActiveBy = 'anchor-active-by-' + this.activeChangeBy;\n        setTimeout(() => {\n          this.element.classList.add(this.lastActiveBy);\n        }, 0);\n      } else {\n        this.element.classList.remove(this.anchorActive);\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    this.scrollListenTarget.removeEventListener('scroll', this.throttle);\n    if (this.activeChangeSubscription) {\n      this.activeChangeSubscription.unsubscribe();\n    }\n  }\n\n  @HostListener('click') // 鼠标落入范围，激活anchor\n  beFocused() {\n    this.boxElement.forceActiveAnchor(this.anchor, 'click-inside');\n    this.boxElement.isScrollingToTarget = false;\n  }\n\n  throttle = () => {\n    const fn = this.checkActiveStatus;\n    const time = Date.now();\n    if (this.scrollTimer) {\n      clearTimeout(this.scrollTimer);\n    }\n    if (!this.scrollPreStart) {\n      this.scrollPreStart = time;\n    }\n    if (time - this.scrollPreStart > this.THROTTLE_TRIGGER) {\n      fn();\n      this.scrollPreStart = null;\n      this.scrollTimer = null;\n    } else {\n      this.scrollTimer = setTimeout(() => {\n        fn();\n        this.scrollPreStart = null;\n        this.scrollTimer = null;\n      }, this.THROTTLE_DELAY);\n    }\n  };\n\n  checkActiveStatus = (activeChangeBy?: AnchorActiveChangeSource) => {\n    if (this.boxElement.isScrollingToTarget) {\n      return;\n    }\n    const dom = this.boxElement.scrollTarget;\n    const fix = dom && dom instanceof Element ? dom.getBoundingClientRect().top : 0;\n    const top = this.element.getBoundingClientRect().top - fix - ((this.boxElement.view && this.boxElement.view.top) || 0);\n    const bottom = this.element.getBoundingClientRect().bottom - fix - ((this.boxElement.view && this.boxElement.view.top) || 0);\n    const currentActiveAnchor = this.anchorService.currentActiveAnchor;\n\n    if (this.anchor === this.boxElement.defaultAnchor && (!currentActiveAnchor || currentActiveAnchor === this.boxElement.defaultAnchor)) {\n      this.activeChangeBy = activeChangeBy || 'scroll';\n      this.isActive = bottom > this.REACH_TOP_VISION_OFFSET;\n      return;\n    }\n\n    this.activeChangeBy = activeChangeBy || 'scroll';\n    this.isActive = bottom > this.REACH_TOP_VISION_OFFSET && top < this.REACH_TOP_VISION_OFFSET;\n  };\n\n  updateScrollListenTarget() {\n    if (this.scrollListenTarget) {\n      return;\n    }\n    if (this.boxElement && typeof window !== 'undefined') {\n      this.scrollListenTarget = this.boxElement.scrollTarget || window; // window有scroll事件，document.documentElement没有scroll事件\n    }\n    this.scrollListenTarget.addEventListener('scroll', this.throttle, { passive: true });\n  }\n}\n","import { ContentChildren, Directive, Input, OnChanges, OnDestroy, QueryList, SimpleChanges } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { AnchorDirective } from './anchor.directive';\nimport { AnchorService } from './anchor.service';\nimport { AnchorActiveChangeSource, IAnchorBox } from './anchor.type';\n\n@Directive({\n  selector: '[dAnchorBox]',\n})\nexport class AnchorBoxDirective implements IAnchorBox, OnChanges, OnDestroy {\n  public isScrollingToTarget = false;\n  private activeChangeSubject = new Subject();\n  public activeChange = this.activeChangeSubject.asObservable();\n  isInit = true;\n  refreshAnchorMap: Subject<void> = new Subject<void>();\n  anchorMap: { [anchor: string]: AnchorDirective };\n  _anchorList: QueryList<AnchorDirective>;\n  sub: Subscription;\n  @Input() view: {\n    top?: number;\n    bottom?: number;\n  };\n  @Input() defaultAnchor: string;\n  @Input() scrollTarget: HTMLElement;\n  @ContentChildren(AnchorDirective, { descendants: true })\n  set anchorList(list: QueryList<AnchorDirective>) {\n    if (this.sub) {\n      this.sub.unsubscribe();\n    }\n    this.sub = new Subscription();\n    this.anchorMap = {};\n    this._anchorList = list;\n    this.anchorService.anchorList = this._anchorList.map((item) => item.anchor);\n    this._anchorList.toArray().forEach((targetAnchor) => {\n      this.anchorMap[targetAnchor.anchor] = targetAnchor;\n      targetAnchor.boxElement = this;\n      this.sub.add(\n        targetAnchor.activeChangeSubject.pipe(filter((bool) => !!bool)).subscribe(() => {\n          this.activeChangeSubject.next(targetAnchor);\n        })\n      );\n    });\n    this.refreshAnchorMap.next();\n  }\n\n  get anchorList() {\n    return this._anchorList;\n  }\n\n  constructor(private anchorService: AnchorService) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.defaultAnchor?.currentValue) {\n      this.forceActiveAnchor(this.defaultAnchor, 'initial');\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.activeChangeSubject.complete();\n    if (this.sub) {\n      this.sub.unsubscribe();\n    }\n  }\n\n  forceActiveAnchor(anchorName: string, forceActiveSource: AnchorActiveChangeSource = 'scroll', deactivateOtherAnchor = true) {\n    if (this.anchorMap && this.anchorService.anchorList.indexOf(anchorName) >= 0) {\n      this.anchorMap[anchorName].activeChangeBy = forceActiveSource;\n      this.anchorMap[anchorName].isActive = true;\n      if (deactivateOtherAnchor) {\n        Object.keys(this.anchorMap)\n          .filter((name) => name !== anchorName)\n          .map((name) => this.anchorMap[name])\n          .forEach((anchor) => {\n            anchor.activeChangeBy = forceActiveSource;\n            anchor.isActive = false;\n          });\n      }\n    }\n  }\n}\n","import { Directive, forwardRef, HostBinding, HostListener, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { scrollAnimate } from 'ng-devui/utils';\nimport { AnchorBoxDirective } from './anchor-box.directive';\nimport { AnchorDirective } from './anchor.directive';\nimport { AnchorActiveChangeSource } from './anchor.type';\n\n@Directive({\n  selector: '[dAnchorLink]',\n})\nexport class AnchorLinkDirective implements OnInit, OnDestroy {\n  @HostBinding('class') get anchorActiveClass() {\n    return this.anchorBlock && this.anchorBlock.isActive ? this.anchorActive || '' : '';\n  }\n  private _anchorName;\n  @Input('dAnchorLink')\n  set anchorName(anchor: string) {\n    this._anchorName = anchor;\n    this.bindAnchorAfterBoxReady();\n  }\n  get anchorName() {\n    return this._anchorName;\n  }\n\n  @Input() anchorActive: string;\n\n  boxElement: AnchorBoxDirective;\n  anchorBlock: AnchorDirective;\n  bindingAnchorTimer;\n  subscription;\n\n  constructor(@Inject(forwardRef(() => AnchorBoxDirective)) box: AnchorBoxDirective) {\n    this.boxElement = box;\n  }\n\n  ngOnInit() {\n    this.subscribeAnchorMapChange();\n  }\n\n  ngOnDestroy() {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  subscribeAnchorMapChange() {\n    if (this.boxElement) {\n      this.subscription = this.boxElement.refreshAnchorMap.subscribe(() => {\n        if (this.bindingAnchorTimer) {\n          clearTimeout(this.bindingAnchorTimer);\n          this.bindingAnchorTimer = undefined;\n        }\n        this.bindAnchorAfterBoxReady();\n      });\n    }\n  }\n\n  bindAnchorAfterBoxReady = () => {\n    if (this.boxElement.anchorMap) {\n      setTimeout(() => {\n        this.anchorBlock = this.boxElement.anchorMap[this.anchorName];\n      }, 0);\n    } else {\n      this.bindingAnchorTimer = setTimeout(this.bindAnchorAfterBoxReady, 500);\n    }\n  };\n\n  @HostListener('click')\n  scrollToAnchor(activeChangeBy?: AnchorActiveChangeSource) {\n    if (typeof document === 'undefined') {\n      return;\n    }\n    if (!this.anchorBlock) {\n      return;\n    }\n    const callback = () => {\n      setTimeout(() => {\n        this.boxElement.forceActiveAnchor(this.anchorName, activeChangeBy || 'anchor-link');\n        this.boxElement.isScrollingToTarget = false;\n      }, 120);\n    };\n    ((container: Element, anchor: Element) => {\n      let containerScrollTop = container.scrollTop;\n      let containerOffsetTop = container.getBoundingClientRect().top;\n      if (container === document.documentElement) {\n        containerScrollTop += document.body.scrollTop; // scrollTop兼容性问题\n        containerOffsetTop = 0; // offsettop抵消\n      }\n      scrollAnimate(\n        container,\n        containerScrollTop,\n        containerScrollTop +\n          anchor.getBoundingClientRect().top -\n          containerOffsetTop -\n          ((this.boxElement.view && this.boxElement.view.top) || 0),\n        undefined,\n        undefined,\n        callback\n      );\n    })(this.boxElement.scrollTarget || document.documentElement, this.anchorBlock.element);\n    this.boxElement.isScrollingToTarget = true;\n  }\n}\n","import { AfterViewInit, Directive, Input, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Subscription} from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { AnchorBoxDirective } from './anchor-box.directive';\nimport { AnchorLinkDirective } from './anchor-link.directive';\nimport { AnchorDirective } from './anchor.directive';\n\n@Directive({\n  selector: '[dAnchorBox][dAnchorHashSupport]'\n})\nexport class AnchorBoxHashSupportDirective implements OnInit, AfterViewInit, OnDestroy {\n  @Input() updateUrlWhenAnchorActive = true;\n  @Input() scrollToAnchorByHashOnlyInit = false;\n  sub: Subscription = new Subscription();\n  manual = false;\n\n  constructor(private box: AnchorBoxDirective, private router: Router, private route: ActivatedRoute) {}\n\n  ngOnInit(): void {\n    this.sub.add(this.box.activeChange.pipe(\n      debounceTime(300),\n      filter(anchor => this.updateUrlWhenAnchorActive)\n    ).subscribe(this.navigateToHash));\n\n    this.sub.add(this.router.events.pipe(\n      filter(event => event instanceof NavigationEnd)\n    ).subscribe(\n      this.navigateToAnchor\n    ));\n  }\n\n  ngAfterViewInit(): void {\n    const frag = this.route.snapshot.fragment;\n    setTimeout(() => {\n      this.scrollToFragment(frag);\n    }, 120);\n  }\n\n  ngOnDestroy(): void {\n    if (this.sub) {\n      this.sub.unsubscribe();\n    }\n  }\n\n  navigateToHash = (targetAnchor: AnchorDirective) => {\n    if (targetAnchor.activeChangeBy === 'initial') { return; }\n    this.router.navigate([], { fragment: targetAnchor.anchor, replaceUrl: true });\n    this.manual = true;\n  };\n\n  navigateToAnchor = (event: NavigationEnd) => {\n    if (this.manual) {\n      this.manual = false;\n      return;\n    }\n    if (this.scrollToAnchorByHashOnlyInit) { return; }\n    const frag = this.router.parseUrl(event.url).fragment;\n    this.scrollToFragment(frag);\n  };\n\n  scrollToFragment = (frag: string) => {\n    if (!frag) { return; }\n    if (this.box.anchorMap[frag]) {\n      const tempAnchor = new AnchorLinkDirective(this.box);\n      tempAnchor.anchorName = frag;\n      tempAnchor.anchorBlock = this.box.anchorMap[frag];\n      tempAnchor.scrollToAnchor('fragment');\n    }\n  };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AnchorBoxHashSupportDirective } from './anchor-box-hash.directive';\nimport { AnchorBoxDirective } from './anchor-box.directive';\nimport { AnchorLinkDirective } from './anchor-link.directive';\nimport { AnchorDirective } from './anchor.directive';\nimport { AnchorService } from './anchor.service';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule\n  ],\n  declarations: [\n    AnchorLinkDirective,\n    AnchorBoxDirective,\n    AnchorDirective,\n    AnchorBoxHashSupportDirective\n  ],\n  exports: [\n    AnchorLinkDirective,\n    AnchorBoxDirective,\n    AnchorDirective,\n    AnchorBoxHashSupportDirective\n  ],\n  providers: [AnchorService],\n})\nexport class AnchorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AnchorService","i1.AnchorBoxDirective"],"mappings":"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"}