{"version":3,"file":"mdb-angular-ui-kit-scrollspy.mjs","sources":["../../../projects/mdb-angular-ui-kit/scrollspy/scrollspy-link.directive.ts","../../../projects/mdb-angular-ui-kit/scrollspy/scrollspy.service.ts","../../../projects/mdb-angular-ui-kit/scrollspy/scrollspy.directive.ts","../../../projects/mdb-angular-ui-kit/scrollspy/scrollspy-element.directive.ts","../../../projects/mdb-angular-ui-kit/scrollspy/scrollspy-window.directive.ts","../../../projects/mdb-angular-ui-kit/scrollspy/scrollspy.module.ts","../../../projects/mdb-angular-ui-kit/scrollspy/mdb-angular-ui-kit-scrollspy.ts"],"sourcesContent":["import {\n  Directive,\n  OnInit,\n  Input,\n  HostListener,\n  HostBinding,\n  ChangeDetectorRef,\n  Inject,\n  DOCUMENT,\n} from '@angular/core';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbScrollspyLink]',\n  standalone: false,\n})\nexport class MdbScrollspyLinkDirective implements OnInit {\n  @Input()\n  get scrollIntoView(): boolean {\n    return this._scrollIntoView;\n  }\n  set scrollIntoView(value: boolean) {\n    this._scrollIntoView = value;\n  }\n  private _scrollIntoView = true;\n\n  get section(): HTMLElement {\n    return this._section;\n  }\n  set section(value: HTMLElement) {\n    if (value) {\n      this._section = value;\n    }\n  }\n  private _section: HTMLElement;\n  private _id: string;\n\n  constructor(private cdRef: ChangeDetectorRef, @Inject(DOCUMENT) private document: any) {}\n\n  @Input('mdbScrollspyLink')\n  get id(): string {\n    return this._id;\n  }\n  set id(newId: string) {\n    if (newId) {\n      this._id = newId;\n    }\n  }\n\n  @HostBinding('class.scrollspy-link')\n  scrollspyLink = true;\n\n  @HostBinding('class.active')\n  active = false;\n\n  @HostListener('click', [])\n  onClick(): void {\n    if (this.section && this.scrollIntoView === true) {\n      this.section.scrollIntoView();\n    }\n  }\n\n  detectChanges(): void {\n    this.cdRef.detectChanges();\n  }\n\n  assignSectionToId(): void {\n    this.section = this.document.documentElement.querySelector(`#${this.id}`);\n  }\n\n  ngOnInit(): void {\n    this.assignSectionToId();\n  }\n}\n","import { Injectable, QueryList } from '@angular/core';\nimport { MdbScrollspyLinkDirective } from './scrollspy-link.directive';\nimport { Subject, Observable } from 'rxjs';\n\nexport interface MdbScrollspy {\n  id: string;\n  links: QueryList<MdbScrollspyLinkDirective>;\n}\n\n@Injectable()\nexport class MdbScrollspyService {\n  scrollSpys: MdbScrollspy[] = [];\n\n  private activeSubject = new Subject<MdbScrollspyLinkDirective>();\n  active$: Observable<any> = this.activeSubject;\n\n  addScrollspy(scrollSpy: MdbScrollspy): void {\n    this.scrollSpys.push(scrollSpy);\n  }\n\n  removeScrollspy(scrollSpyId: string): void {\n    const scrollSpyIndex = this.scrollSpys.findIndex((spy) => {\n      return spy.id === scrollSpyId;\n    });\n    this.scrollSpys.splice(scrollSpyIndex, 1);\n  }\n\n  updateActiveState(scrollSpyId: string, activeLinkId: string): void {\n    const scrollSpy = this.scrollSpys.find((spy) => {\n      return spy.id === scrollSpyId;\n    });\n\n    if (!scrollSpy) {\n      return;\n    }\n\n    const activeLink = scrollSpy.links.find((link) => {\n      return link.id === activeLinkId;\n    });\n\n    this.setActiveLink(activeLink);\n  }\n\n  removeActiveState(scrollSpyId: string, activeLinkId: string): void {\n    const scrollSpy = this.scrollSpys.find((spy) => {\n      return spy.id === scrollSpyId;\n    });\n\n    if (!scrollSpy) {\n      return;\n    }\n\n    const activeLink = scrollSpy.links.find((link) => {\n      return link.id === activeLinkId;\n    });\n\n    if (!activeLink) {\n      return;\n    }\n\n    activeLink.active = false;\n    activeLink.detectChanges();\n  }\n\n  setActiveLink(activeLink: MdbScrollspyLinkDirective | any): void {\n    if (activeLink) {\n      activeLink.active = true;\n      activeLink.detectChanges();\n      this.activeSubject.next(activeLink);\n    }\n  }\n\n  removeActiveLinks(scrollSpyId: string): void {\n    const scrollSpy: MdbScrollspy | undefined = this.scrollSpys.find((spy) => {\n      return spy.id === scrollSpyId;\n    });\n\n    if (!scrollSpy) {\n      return;\n    }\n\n    scrollSpy.links.forEach((link) => {\n      link.active = false;\n      link.detectChanges();\n    });\n  }\n}\n","import {\n  AfterContentInit,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  PLATFORM_ID,\n  QueryList,\n  Renderer2,\n} from '@angular/core';\nimport { MdbScrollspyLinkDirective } from './scrollspy-link.directive';\nimport { MdbScrollspyService } from './scrollspy.service';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject, Subscription } from 'rxjs';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: '[mdbScrollspy]',\n  template: '<ng-content></ng-content>',\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MdbScrollspyDirective implements OnInit, AfterContentInit, OnDestroy {\n  @ContentChildren(MdbScrollspyLinkDirective, { descendants: true })\n  links: QueryList<MdbScrollspyLinkDirective>;\n\n  readonly _destroy$: Subject<void> = new Subject<void>();\n\n  @Input('mdbScrollspy')\n  get id(): string {\n    return this._id;\n  }\n\n  set id(newId: string) {\n    if (newId) {\n      this._id = newId;\n    }\n  }\n\n  private _id: string;\n\n  @Input()\n  get collapsible(): boolean {\n    return this._collapsible;\n  }\n  set collapsible(value: boolean) {\n    this._collapsible = coerceBooleanProperty(value);\n  }\n\n  private _collapsible = false;\n\n  private _isBrowser: boolean;\n\n  @Output() activeLinkChange: EventEmitter<any> = new EventEmitter<any>();\n\n  activeSub: Subscription;\n\n  constructor(\n    private scrollSpyService: MdbScrollspyService,\n    private _elementRef: ElementRef,\n    private _renderer: Renderer2,\n    @Inject(PLATFORM_ID) platformId: Object\n  ) {\n    this._isBrowser = isPlatformBrowser(platformId);\n  }\n\n  get host(): HTMLElement {\n    return this._elementRef.nativeElement;\n  }\n\n  collapsibleElementHeight = 0;\n\n  ngOnInit(): void {\n    if (this._isBrowser) {\n      this.collapsibleElementHeight = this.host.getBoundingClientRect().height;\n    }\n\n    this.activeSub = this.scrollSpyService.active$\n      .pipe(takeUntil(this._destroy$), distinctUntilChanged())\n      .subscribe((activeLink) => {\n        this.activeLinkChange.emit(activeLink);\n        if (this.collapsible) {\n          this.styleCollapsibleElement();\n        }\n      });\n  }\n\n  ngAfterContentInit(): void {\n    this.scrollSpyService.addScrollspy({ id: this.id, links: this.links });\n  }\n\n  ngOnDestroy(): void {\n    this.scrollSpyService.removeScrollspy(this.id);\n    this._destroy$.next();\n    this._destroy$.complete();\n  }\n\n  private styleCollapsibleElement(): void {\n    this._renderer.setStyle(this.host, 'overflow', 'hidden');\n    this._renderer.setStyle(this.host, 'transition', 'height 0.2s ease-in-out');\n    this._renderer.setStyle(this.host, 'flex-wrap', 'nowrap');\n\n    const hostSiblings = this.getAllSiblings(this.host);\n    const isAnySiblingActive = hostSiblings.some((element) => {\n      return element.classList.contains('active');\n    });\n\n    if (this.collapsible && isAnySiblingActive) {\n      this._renderer.setStyle(this.host, 'height', `${this.collapsibleElementHeight}px`);\n    } else if (this.collapsible && !isAnySiblingActive) {\n      this._renderer.setStyle(this.host, 'height', '0px');\n    }\n  }\n\n  private getAllSiblings(element: HTMLElement) {\n    let siblings = [];\n    if (!element.parentNode) {\n      return siblings;\n    }\n    let sibling = element.parentNode.firstElementChild;\n    do {\n      if (sibling != element) {\n        siblings.push(sibling);\n      }\n    } while ((sibling = sibling.nextElementSibling));\n    return siblings;\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  OnInit,\n  Renderer2,\n  NgZone,\n  Input,\n  AfterViewInit,\n  OnDestroy,\n  Inject,\n  DOCUMENT,\n} from '@angular/core';\nimport { MdbScrollspyService } from './scrollspy.service';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbScrollspyElement]',\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class MdbScrollspyElementDirective implements OnInit, AfterViewInit, OnDestroy {\n  private id: string;\n  private _unlisten: (() => void) | null = null;\n  private _lastInView: boolean | null = null;\n\n  get host(): HTMLElement {\n    return this._elementRef.nativeElement;\n  }\n\n  @Input() container: HTMLElement;\n\n  @Input('mdbScrollspyElement')\n  get scrollSpyId(): string {\n    return this._scrollSpyId;\n  }\n  set scrollSpyId(newId: string) {\n    if (newId) {\n      this._scrollSpyId = newId;\n    }\n  }\n  private _scrollSpyId: string;\n\n  @Input() offset = 0;\n\n  constructor(\n    private _elementRef: ElementRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    private scrollSpyService: MdbScrollspyService,\n    @Inject(DOCUMENT) private _document: any\n  ) {}\n\n  isElementInViewport(): boolean {\n    if (!this.container) {\n      return false;\n    }\n\n    const scrollTop = this.container.scrollTop;\n    const elTop = this.host.offsetTop - this.offset;\n    const elHeight = this.host.offsetHeight;\n\n    return scrollTop >= elTop && scrollTop < elTop + elHeight;\n  }\n\n  updateActiveState(scrollSpyId: string, id: string): void {\n    if (this.isElementInViewport()) {\n      this.scrollSpyService.removeActiveLinks(scrollSpyId);\n      this.scrollSpyService.updateActiveState(scrollSpyId, id);\n    }\n  }\n\n  onScroll(): void {\n    const inView = this.isElementInViewport();\n\n    if (this._lastInView === inView) {\n      return;\n    }\n\n    this._lastInView = inView;\n\n    this.ngZone.run(() => {\n      this.updateActiveState(this.scrollSpyId, this.id);\n    });\n  }\n\n  listenToScroll(): void {\n    if (!this.container) {\n      return;\n    }\n\n    this._unlisten = this.renderer.listen(this.container, 'scroll', () => {\n      this.onScroll();\n    });\n  }\n\n  ngOnInit(): void {\n    this.id = this.host.id;\n\n    if (!this.container) {\n      this.container = this._getClosestEl(this.host, '.scrollspy-container');\n    }\n\n    if (this.container) {\n      this.renderer.setStyle(this.container, 'position', 'relative');\n      this.ngZone.runOutsideAngular(this.listenToScroll.bind(this));\n    }\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this._lastInView = this.isElementInViewport();\n      this.ngZone.run(() => {\n        this.updateActiveState(this.scrollSpyId, this.id);\n      });\n    }, 0);\n  }\n\n  ngOnDestroy(): void {\n    this._unlisten?.();\n  }\n\n  private _getClosestEl(el: any, selector: string): HTMLElement | null {\n    for (; el && el !== this._document; el = el.parentNode) {\n      if (el.matches && el.matches(selector)) {\n        return el;\n      }\n    }\n    return null;\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  OnInit,\n  Inject,\n  Renderer2,\n  NgZone,\n  Input,\n  AfterViewInit,\n  OnDestroy,\n  DOCUMENT,\n} from '@angular/core';\n\nimport { MdbScrollspyService } from './scrollspy.service';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbScrollspyWindow]',\n  standalone: false,\n})\nexport class MdbScrollspyWindowDirective implements OnInit, AfterViewInit, OnDestroy {\n  private id: string;\n  private _unlisten: (() => void) | null = null;\n  private _lastInView: boolean | null = null;\n\n  @Input('mdbScrollspyWindow')\n  get scrollSpyId(): string {\n    return this._scrollSpyId;\n  }\n  set scrollSpyId(newId: string) {\n    if (newId) {\n      this._scrollSpyId = newId;\n    }\n  }\n  private _scrollSpyId: string;\n\n  @Input() offset = 0;\n\n  constructor(\n    @Inject(DOCUMENT) private document: any,\n    private el: ElementRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    private scrollSpyService: MdbScrollspyService\n  ) {}\n\n  isElementInViewport(): boolean {\n    const scrollTop = this.document.documentElement.scrollTop || this.document.body.scrollTop;\n    const elHeight = this.el.nativeElement.offsetHeight;\n    const elTop = this.el.nativeElement.offsetTop - this.offset;\n    const elBottom = elTop + elHeight;\n\n    return scrollTop >= elTop && scrollTop <= elBottom;\n  }\n\n  updateActiveState(scrollSpyId: string, id: string): void {\n    if (this.isElementInViewport()) {\n      this.scrollSpyService.updateActiveState(scrollSpyId, id);\n    } else {\n      this.scrollSpyService.removeActiveState(scrollSpyId, id);\n    }\n  }\n\n  onScroll(): void {\n    const inView = this.isElementInViewport();\n\n    if (this._lastInView === inView) {\n      return;\n    }\n\n    this._lastInView = inView;\n\n    this.ngZone.run(() => {\n      this.updateActiveState(this.scrollSpyId, this.id);\n    });\n  }\n\n  listenToScroll(): void {\n    this._unlisten = this.renderer.listen(window, 'scroll', () => {\n      this.onScroll();\n    });\n  }\n\n  ngOnInit(): void {\n    this.id = this.el.nativeElement.id;\n\n    this.ngZone.runOutsideAngular(this.listenToScroll.bind(this));\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this._lastInView = this.isElementInViewport();\n      this.ngZone.run(() => {\n        this.updateActiveState(this.scrollSpyId, this.id);\n      });\n    }, 0);\n  }\n\n  ngOnDestroy(): void {\n    this._unlisten?.();\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { MdbScrollspyDirective } from './scrollspy.directive';\nimport { MdbScrollspyLinkDirective } from './scrollspy-link.directive';\nimport { MdbScrollspyElementDirective } from './scrollspy-element.directive';\nimport { MdbScrollspyService } from './scrollspy.service';\nimport { MdbScrollspyWindowDirective } from './scrollspy-window.directive';\n\n@NgModule({\n  declarations: [\n    MdbScrollspyDirective,\n    MdbScrollspyLinkDirective,\n    MdbScrollspyElementDirective,\n    MdbScrollspyWindowDirective,\n  ],\n  exports: [\n    MdbScrollspyDirective,\n    MdbScrollspyLinkDirective,\n    MdbScrollspyElementDirective,\n    MdbScrollspyWindowDirective,\n  ],\n  providers: [MdbScrollspyService],\n})\nexport class MdbScrollspyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MdbScrollspyService"],"mappings":"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"}