{"version":3,"file":"ynmstudio-utils-scrollspy.mjs","sources":["../../../projects/ynm-utils/scrollspy/src/lib/scroll-spy-item/scroll-spy-item.directive.ts","../../../projects/ynm-utils/scrollspy/src/lib/scroll-spy-service/scroll-spy.service.ts","../../../projects/ynm-utils/scrollspy/src/lib/scroll-spy/scroll-spy.directive.ts","../../../projects/ynm-utils/scrollspy/src/lib/scroll-spy-section/scroll-spy-section.directive.ts","../../../projects/ynm-utils/scrollspy/src/lib/scroll-spy.module.ts","../../../projects/ynm-utils/scrollspy/src/public_api.ts","../../../projects/ynm-utils/scrollspy/src/ynmstudio-utils-scrollspy.ts"],"sourcesContent":["import {\n  Directive,\n  Input,\n  HostBinding,\n  ChangeDetectorRef,\n  EventEmitter,\n  Output,\n} from '@angular/core';\n\n/**\n * A directive used to add an `active` class to a nav item\n * when the section is in the viewport\n *\n * @example\n * ```html\n * <a snScrollSpyItem for=\"foo\" href=\"#section1\">Section 1</a>\n * ```\n *\n */\n@Directive({\n  selector: '[snScrollSpyItem]',\n  standalone: true\n})\nexport class ScrollSpyItemDirective {\n\n  private activeClass: string = 'active';\n\n  /**\n   * True if the nav item is the active item in the `items` list\n   * for `ScrollSpyDirective` instance\n   *\n   * @memberof ScrollSpyItemDirective\n   */\n  @HostBinding('class') get getActiveClass() {\n    return this.active ? this.activeClass : '';\n  }\n\n  /**\n   * Emits when the `active` property changes\n   */\n  @Output() activeChange = new EventEmitter<boolean>();\n\n  private _active = false;\n  set active(state: boolean) {\n    if (this._active === state) return;\n    this.activeChange.emit(state);\n    this._active = state;\n  }\n  get active() {\n    return this._active;\n  }\n\n  @Input()\n  set snScrollSpyItemActive(data: string) {\n    this.activeClass = data;\n  }\n  /**\n   * ID of `ScrollSpyDirective` instance\n   *\n   * @memberof ScrollSpyItemDirective\n   */\n  @Input()\n  public for!: string;\n  /**\n   * Hash for section to link to\n   *\n   * @memberof ScrollSpyItemDirective\n   */\n  @Input()\n  public href!: string;\n  /**\n   * If true means the section is in the viewport\n   *\n   * @memberof ScrollSpyItemDirective\n   */\n  public inViewport = false;\n  /**\n   * Id of section that links navigates to\n   *\n   * @readonly\n   * @memberof ScrollSpyItemDirective\n   */\n  public get section(): string {\n    return this.href.replace('#', '');\n  }\n  /**\n   * Creates an instance of ScrollSpyItemDirective.\n   * @memberof ScrollSpyItemDirective\n   */\n  constructor(private cdRef: ChangeDetectorRef) { }\n  /**\n   * Manually trigger change detection\n   *\n   * @memberof ScrollSpyItemDirective\n   */\n  public detectChanges(): void {\n    this.cdRef.detectChanges();\n  }\n}\n","import { Injectable, QueryList } from '@angular/core';\n\nimport { ScrollSpyItemDirective } from '../scroll-spy-item/scroll-spy-item.directive';\nimport { Spy } from '../shared/spy.model';\n\n/**\n * Service that stores a list of `Spy`'s and the state\n * of their nav items `inViewport` and `active` state\n *\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class ScrollSpyService {\n  /**\n   * List of `Spy`'s\n   *\n   * @memberof ScrollSpyService\n   */\n  public spys: Spy[] = [];\n  /**\n   * Stores requests to add items to spy when spy hasn't been created\n   * yet. Once spy has been added then request will be made again.\n   *\n   * @memberof ScrollSpyService\n   */\n  public buffer: any[] = [];\n  /**\n   * Add spy to list of `spys`\n   *\n   * @memberof ScrollSpyService\n   */\n  public addSpy(id: string, items: QueryList<ScrollSpyItemDirective>): void {\n    this.spys.push({ id, items });\n    const buffer = this.buffer.filter(i => i.spyId === id);\n    this.buffer = this.buffer.filter(i => i.spyId !== id);\n    buffer.forEach(i => this.setSpySectionStatus(i.sectionId, i.spyId, i.inViewport));\n  }\n  /**\n   * Remove spy from list of `spys`\n   *\n   * @memberof ScrollSpyService\n   */\n  public removeSpy(id: string): void {\n    const i = this.spys.findIndex(s => s.id === id);\n    this.spys.splice(i, 1);\n  }\n  /**\n   * Set the `inViewport` status for a spy item then sets the active\n   * to true for the first item in the list that has `inViewport`\n   * set to true\n   *\n   * @memberof ScrollSpyService\n   */\n  public setSpySectionStatus(\n    sectionId: string,\n    spyId: string,\n    inViewport: boolean,\n  ): void {\n    const spy = this.spys.find(s => s.id === spyId);\n    if (!spy) {\n      this.buffer.push({ sectionId, spyId, inViewport });\n      return;\n    }\n    const item = spy.items.find(i => i.section === sectionId);\n    if (!item) {\n      return;\n    }\n\n    item.inViewport = inViewport;\n    const firstInViewport = spy.items.find(i => i.inViewport);\n    spy.items.forEach(i => i.active = firstInViewport === i);\n    if (firstInViewport) {\n      firstInViewport.detectChanges();\n    }\n  }\n}\n","import {\n  Directive,\n  ContentChildren,\n  QueryList,\n  AfterViewInit,\n  Input,\n  OnDestroy,\n} from '@angular/core';\n\nimport { ScrollSpyItemDirective } from '../scroll-spy-item/scroll-spy-item.directive';\nimport { ScrollSpyService } from '../scroll-spy-service/scroll-spy.service';\n\n/**\n * Adds `active` class to navigation links when section is in the viewport.\n * Used in conjuction with `snScrollItem` directive which should be added\n * to anchor links in the nav\n *\n * @example\n * ```\n * <ul role=\"navigation\" snScrollSpy id=\"foo\">\n *  <li><a snScrollSpyItem for=\"foo\" href=\"#section1\">Section 1</a></li>\n *  <li><a snScrollSpyItem for=\"foo\" href=\"#section2\">Section 2</a></li>\n *  <li><a snScrollSpyItem for=\"foo\" href=\"#section3\">Section 3</a></li>\n *  <li><a snScrollSpyItem for=\"foo\" href=\"#section4\">Section 4</a></li>\n * </ul>\n * ```\n *\n */\n@Directive({\n  selector: '[snScrollSpy]',\n  standalone: true\n})\nexport class ScrollSpyDirective implements AfterViewInit, OnDestroy {\n  /**\n   * Collection of `ScrollSpyItem`. They are the list of\n   * nav items.\n   *\n   * @memberof ScrollSpyDirective\n   */\n  @ContentChildren(ScrollSpyItemDirective, { descendants: true })\n  public items!: QueryList<ScrollSpyItemDirective>;\n  /**\n   * ID of scrollSpy instance\n   *\n   * @memberof ScrollSpyDirective\n   */\n  @Input()\n  public id!: string;\n  /**\n   * Creates an instance of ScrollSpyDirective.\n   * @memberof ScrollSpyDirective\n   */\n  constructor(private scrollSpySvc: ScrollSpyService) { }\n  /**\n   * Adds spy to list of spys in `ScrollSpyService`\n   *\n   * @memberof ScrollSpyDirective\n   */\n  public ngAfterViewInit(): void {\n    this.scrollSpySvc.addSpy(this.id, this.items);\n  }\n  /**\n   * Remove spy from list of spys when directive is destroyed\n   *\n   * @memberof ScrollSpyDirective\n   */\n  public ngOnDestroy(): void {\n    this.scrollSpySvc.removeSpy(this.id);\n  }\n}\n","import { Directive, HostListener, inject, InjectionToken, Input } from '@angular/core';\nimport { INTERSECTION_OBSERVER_INIT, InViewportDirective } from '@ynmstudio/utils/inviewport';\nimport { ScrollSpyService } from '../scroll-spy-service/scroll-spy.service';\n\nexport const SCROLL_SPY_INTERSECTION_OBSERVER_INIT = new InjectionToken<IntersectionObserverInit>('Options for IntersectionObserver within ScrollSpy', {\n  factory: () => ({ rootMargin: '-100px 0px 50px 0px' })\n});\n\n/**\n * A component to wrap section content within that will update the\n * `ScrollSpyService` when it's in view\n *\n * @example\n * ```html\n *  <section sn-scroll-spy-section id=\"section1\" for=\"foo\">\n *    ...\n *  </section>\n * ```\n */\n@Directive({\n  selector: '[sn-scroll-spy-section]',\n  standalone: true,\n  hostDirectives: [\n    {\n      directive: InViewportDirective,\n      outputs: ['inViewportChange'],\n    }\n  ],\n  providers: [\n    {\n      provide: INTERSECTION_OBSERVER_INIT,\n      useExisting: SCROLL_SPY_INTERSECTION_OBSERVER_INIT,\n    }\n  ]\n})\nexport class ScrollSpySectionDirective {\n  /**\n   * Identifies the section\n   *\n   * @memberof ScrollSpySectionComponent\n   */\n  @Input()\n  public id!: string;\n  /**\n   * Specifies which `ScrollSpy` instance to update\n   *\n   * @memberof ScrollSpySectionComponent\n   */\n  @Input()\n  public for!: string;\n  /**\n   * Creates an instance of ScrollSpySectionComponent.\n   * @memberof ScrollSpySectionComponent\n   */\n  constructor(private scrollSpySvc: ScrollSpyService) { }\n  /**\n   * Updates `ScrollSpy` section when element enters/leaves viewport\n   *\n   * @memberof ScrollSpySectionComponent\n   */\n  @HostListener('inViewportChange', ['$event']) public onInViewportChange(inViewport: boolean): void {\n    this.scrollSpySvc.setSpySectionStatus(this.id, this.for, inViewport);\n  }\n\n  @Input()\n  public inViewportOptions = inject(SCROLL_SPY_INTERSECTION_OBSERVER_INIT, { optional: true });\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ScrollSpyDirective } from './scroll-spy/scroll-spy.directive';\nimport { ScrollSpySectionDirective } from './scroll-spy-section/scroll-spy-section.directive';\nimport { ScrollSpyItemDirective } from './scroll-spy-item/scroll-spy-item.directive';\nimport { ScrollSpyService } from './scroll-spy-service/scroll-spy.service';\nimport { InViewportDirective } from '@ynmstudio/utils/inviewport';\n\n/**\n * A simple lightweight library for Angular which automatically\n * updates links to indicate the currently active section in the viewport\n *\n */\n@NgModule({\n  imports: [InViewportDirective, ScrollSpySectionDirective, ScrollSpyDirective, ScrollSpyItemDirective],\n  declarations: [],\n  exports: [ScrollSpyDirective, ScrollSpyItemDirective, ScrollSpySectionDirective],\n})\nexport class ScrollSpyModule {\n  /**\n   * Specify a static method for root module to ensure providers are\n   * only provided once but allows the module to still be imported\n   * into other modules without reproviding services.\n   *\n   * @memberof ScrollSpyModule\n   */\n  public static forRoot(): ModuleWithProviders<ScrollSpyModule> {\n    return {\n      ngModule: ScrollSpyModule,\n      providers: [ScrollSpyService],\n    };\n  }\n}\n","/*\n * Public API Surface of ngx-scrollspy\n */\n\nexport * from './lib/scroll-spy/scroll-spy.directive';\nexport * from './lib/scroll-spy-item/scroll-spy-item.directive';\nexport * from './lib/scroll-spy-section/scroll-spy-section.directive';\nexport * from './lib/scroll-spy-service/scroll-spy.service';\nexport * from './lib/shared/spy.model';\nexport * from './lib/scroll-spy.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ScrollSpyService"],"mappings":"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"}