@uniprank/ngx-scrollspy 1.1.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +102 -81
  2. package/fesm2022/uniprank-ngx-scrollspy.mjs +389 -0
  3. package/fesm2022/uniprank-ngx-scrollspy.mjs.map +1 -0
  4. package/index.d.ts +6 -0
  5. package/lib/ngx-scrollspy.module.d.ts +24 -1
  6. package/lib/ngx-scrollspy.module.d.ts.map +1 -0
  7. package/lib/scroll-direction.enum.d.ts +1 -0
  8. package/lib/scroll-direction.enum.d.ts.map +1 -0
  9. package/lib/scroll-element.directive.d.ts +12 -9
  10. package/lib/scroll-element.directive.d.ts.map +1 -0
  11. package/lib/scroll-element.interface.d.ts +1 -0
  12. package/lib/scroll-element.interface.d.ts.map +1 -0
  13. package/lib/scroll-item.directive.d.ts +12 -12
  14. package/lib/scroll-item.directive.d.ts.map +1 -0
  15. package/lib/scroll-object.interface.d.ts +1 -0
  16. package/lib/scroll-object.interface.d.ts.map +1 -0
  17. package/lib/scroll-spy.directive.d.ts +11 -10
  18. package/lib/scroll-spy.directive.d.ts.map +1 -0
  19. package/lib/scroll-spy.service.d.ts +13 -10
  20. package/lib/scroll-spy.service.d.ts.map +1 -0
  21. package/package.json +20 -13
  22. package/public-api.d.ts +3 -1
  23. package/public-api.d.ts.map +1 -0
  24. package/uniprank-ngx-scrollspy.d.ts.map +1 -0
  25. package/CHANGELOG.md +0 -32
  26. package/bundles/uniprank-ngx-scrollspy.umd.js +0 -708
  27. package/bundles/uniprank-ngx-scrollspy.umd.js.map +0 -1
  28. package/bundles/uniprank-ngx-scrollspy.umd.min.js +0 -2
  29. package/bundles/uniprank-ngx-scrollspy.umd.min.js.map +0 -1
  30. package/esm2015/lib/ngx-scrollspy.module.js +0 -25
  31. package/esm2015/lib/scroll-direction.enum.js +0 -6
  32. package/esm2015/lib/scroll-element.directive.js +0 -48
  33. package/esm2015/lib/scroll-element.interface.js +0 -1
  34. package/esm2015/lib/scroll-item.directive.js +0 -48
  35. package/esm2015/lib/scroll-object.interface.js +0 -1
  36. package/esm2015/lib/scroll-spy.directive.js +0 -50
  37. package/esm2015/lib/scroll-spy.service.js +0 -206
  38. package/esm2015/public-api.js +0 -14
  39. package/esm2015/uniprank-ngx-scrollspy.js +0 -6
  40. package/fesm2015/uniprank-ngx-scrollspy.js +0 -379
  41. package/fesm2015/uniprank-ngx-scrollspy.js.map +0 -1
  42. package/uniprank-ngx-scrollspy.d.ts +0 -5
  43. package/uniprank-ngx-scrollspy.metadata.json +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniprank-ngx-scrollspy.mjs","sources":["../../../library/ngx-scrollspy/src/lib/scroll-direction.enum.ts","../../../library/ngx-scrollspy/src/lib/scroll-spy.service.ts","../../../library/ngx-scrollspy/src/lib/scroll-spy.directive.ts","../../../library/ngx-scrollspy/src/lib/scroll-element.directive.ts","../../../library/ngx-scrollspy/src/lib/scroll-item.directive.ts","../../../library/ngx-scrollspy/src/lib/ngx-scrollspy.module.ts","../../../library/ngx-scrollspy/src/public-api.ts","../../../library/ngx-scrollspy/src/uniprank-ngx-scrollspy.ts"],"sourcesContent":["export enum ScrollDirectionEnum {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n","import { Injectable, ElementRef, InjectionToken, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject, Observable, Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\n\nimport { ScrollObjectInterface } from './scroll-object.interface';\nimport { ScrollElementInterface } from './scroll-element.interface';\nimport { ScrollDirectionEnum } from './scroll-direction.enum';\n\nconst defaultElementId = 'window';\n\nexport const SPY_CONFIG = new InjectionToken<SpyConfig>('SPY_CONFIG');\n\nexport interface SpyConfig {\n /**\n * @param boolean lookAhead\n * Set the first scroll item active even when the scroll element has not yet been reached\n */\n lookAhead?: boolean;\n /**\n * @param boolean activateOnlySetItems\n * Set the scroll items active only when the scroll element reached the set offset and is still in the viewport\n */\n activateOnlySetItems?: boolean;\n /**\n * @param attributeType\n * Set the scroll items active only when the scroll element reached the set offset and is still in the viewport\n */\n attributeType?: 'id' | 'data-id';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollSpyService {\n private readonly _doc = inject(DOCUMENT);\n private readonly _config = inject(SPY_CONFIG, { optional: true });\n\n private _scrollItems: Record<string, ScrollObjectInterface> = {};\n private _scrollElements: Record<string, ScrollElementInterface> = {};\n private _$scrollElementListener: Record<string, BehaviorSubject<ScrollObjectInterface | null>> = {};\n\n private _scrollElementListener: Record<string, ScrollObjectInterface | null> = {};\n\n private _onStopListening = new Subject<void>();\n private _window: Window | null;\n\n private _lookAhead: boolean;\n private _activateOnlySetItems: boolean;\n\n readonly attributeType: 'id' | 'data-id';\n\n constructor() {\n this._window = this._doc.defaultView;\n\n this._initScrollElementListener(\n defaultElementId,\n this._generateScrollElement(\n defaultElementId,\n new ElementRef(this._doc.documentElement || this._doc.body),\n ScrollDirectionEnum.vertical\n )\n );\n\n if (this._window) {\n fromEvent(this._window, 'resize')\n .pipe(auditTime(300), takeUntil(this._onStopListening))\n .subscribe(() => this._windowScroll());\n fromEvent(this._window, 'scroll')\n .pipe(auditTime(10), takeUntil(this._onStopListening))\n .subscribe(() => this._windowScroll());\n }\n\n this._windowScroll();\n\n if (this._config != null) {\n this._lookAhead = this._config.lookAhead ?? false;\n this._activateOnlySetItems = this._config.activateOnlySetItems ?? false;\n this.attributeType = this._config.attributeType ?? 'id';\n } else {\n this._lookAhead = false;\n this._activateOnlySetItems = false;\n this.attributeType = 'id';\n }\n }\n\n private _initScrollElementListener(scrollElementId: string, scrollElement: ScrollElementInterface): void {\n this._scrollElements[scrollElementId] = scrollElement;\n this._scrollElementListener[scrollElementId] = null;\n this._$scrollElementListener[scrollElementId] = new BehaviorSubject<ScrollObjectInterface | null>(null);\n }\n\n private _windowScroll() {\n this.updateScrollElement(defaultElementId);\n }\n\n private _generateScrollElement(\n scrollElementId: string,\n elementRef: ElementRef,\n direction: ScrollDirectionEnum,\n offset = 0\n ): ScrollElementInterface {\n return {\n id: scrollElementId,\n elementRef,\n direction,\n offset\n };\n }\n\n public setOffset(scrollElementId: string, offset: number): void {\n this._checkScrollElementExists(scrollElementId);\n this._scrollElements[scrollElementId].offset = offset;\n }\n\n public setScrollElement(scrollElementId: string, elementRef: ElementRef, direction: ScrollDirectionEnum, offset = 0): void {\n const existing = this._scrollElements[scrollElementId];\n if (existing != null && existing.elementRef.nativeElement.isConnected) {\n throw new Error(`ScrollSpyService: The scroll element with the id [${scrollElementId}] already exists in the DOM.`);\n }\n this._initScrollElementListener(scrollElementId, this._generateScrollElement(scrollElementId, elementRef, direction, offset));\n }\n\n public setItem(itemId: string, elementRef: ElementRef, scrollElementId = defaultElementId): void {\n const existing = this._scrollItems[itemId];\n if (existing != null && existing.nativeElement.isConnected) {\n throw new Error(`ScrollSpyService: The scroll item with the id [${itemId}] already exists in the DOM.`);\n }\n this._scrollItems[itemId] = this._generateScrollObject(itemId, elementRef, scrollElementId);\n this._setDefaultItem(itemId, scrollElementId);\n }\n\n private _generateScrollObject(id: string, elementRef: ElementRef, scrollElementId: string): ScrollObjectInterface {\n return {\n id,\n scrollElementId,\n elementRef,\n nativeElement: elementRef.nativeElement\n };\n }\n\n private _setDefaultItem(itemId: string, scrollElementId: string): void {\n if (this._lookAhead) {\n return;\n }\n const _value = this._scrollElementListener[scrollElementId];\n if (_value == null) {\n this._setScrollElementListener(scrollElementId, this._scrollItems[itemId]);\n }\n }\n\n private _setScrollElementListener(scrollElementId: string, scrollObject: ScrollObjectInterface | null): void {\n this._scrollElementListener[scrollElementId] = scrollObject;\n setTimeout(() => this._$scrollElementListener[scrollElementId].next(scrollObject));\n }\n\n public changeScrollElement(itemId: string, oldElementId: string, newElementId: string, override = false) {\n this._checkScrollElementExists(oldElementId);\n this._checkScrollElementExists(newElementId);\n this._checkItemExists(itemId);\n\n const _scrollItem = this._scrollItems[itemId];\n if ((_scrollItem.scrollElementId !== defaultElementId && override) || _scrollItem.scrollElementId === defaultElementId) {\n this._scrollItems[itemId].scrollElementId = newElementId;\n }\n\n this._setDefaultItem(itemId, newElementId);\n\n const _oldElements = this._getElementItems(oldElementId);\n if (_oldElements.length > 0) {\n this._setDefaultItem(_oldElements[0].id, oldElementId);\n }\n }\n\n private _getElementItems(scrollElementId: string): ScrollObjectInterface[] {\n const _items: ScrollObjectInterface[] = [];\n for (const key in this._scrollItems) {\n if (Object.prototype.hasOwnProperty.call(this._scrollItems, key)) {\n const value = this._scrollItems[key];\n if (value.scrollElementId === scrollElementId) {\n _items.push(value);\n }\n }\n }\n return _items;\n }\n\n private _checkItemExists(itemId: string): void {\n if (this._scrollItems[itemId] == null) {\n throw new Error(`ScrollSpyService: The scroll item with the id [${itemId}] doesn't exist.`);\n }\n }\n\n public observe(scrollElementId: string = defaultElementId): Observable<ScrollObjectInterface | null> {\n this._checkScrollElementExists(scrollElementId);\n return this._$scrollElementListener[scrollElementId].asObservable();\n }\n\n private _checkScrollElementExists(scrollElementId: string): void {\n if (this._scrollElements[scrollElementId] == null) {\n throw new Error(`ScrollSpyService: The scroll element with the id [${scrollElementId}] doesn't exist.`);\n }\n }\n\n public updateScrollElement(scrollElementId: string): void {\n this._checkScrollElementExists(scrollElementId);\n\n const _element = this._scrollElements[scrollElementId];\n const _elementItems = this._getElementItems(scrollElementId);\n\n const _nextActiveItem = this._getActiveItem(_element, _elementItems);\n const _currentActiveItem = this._scrollElementListener[scrollElementId];\n\n if (_currentActiveItem == null) {\n if (_nextActiveItem != null) {\n this._setScrollElementListener(scrollElementId, _nextActiveItem);\n }\n } else if (_nextActiveItem != null) {\n if (_currentActiveItem.id !== _nextActiveItem.id) {\n this._setScrollElementListener(scrollElementId, _nextActiveItem);\n }\n } else if (_nextActiveItem == null && this._lookAhead) {\n this._setScrollElementListener(scrollElementId, null);\n }\n }\n\n private _getActiveItem(scrollElement: ScrollElementInterface, listOfElements: ScrollObjectInterface[]): ScrollObjectInterface | null {\n const _direction = scrollElement.direction;\n let _scrollObject: ScrollObjectInterface | null = null;\n\n const nativeElement = scrollElement.elementRef.nativeElement;\n listOfElements.forEach((_element) => {\n let _active = false;\n switch (_direction) {\n case ScrollDirectionEnum.horizontal: {\n const _scrollLeft = scrollElement.id.toLowerCase() === 'window' ? (this._window?.pageXOffset ?? 0) : nativeElement.scrollLeft;\n _active = _element.nativeElement.offsetLeft <= _scrollLeft + scrollElement.offset;\n break;\n }\n default: {\n const _scrollTop = scrollElement.id.toLowerCase() === 'window' ? (this._window?.scrollY ?? 0) : nativeElement.scrollTop;\n if (this._activateOnlySetItems) {\n _active =\n _element.nativeElement.offsetTop < _scrollTop + scrollElement.offset &&\n _element.nativeElement.offsetTop + _element.nativeElement.offsetHeight > _scrollTop + scrollElement.offset;\n } else {\n _active = _element.nativeElement.offsetTop <= _scrollTop + scrollElement.offset;\n }\n }\n }\n if (_active) {\n _scrollObject = _element;\n }\n });\n return _scrollObject;\n }\n\n public deleteScrollElement(scrollElementId: string): void {\n if (scrollElementId === 'window') {\n this._setScrollElementListener(scrollElementId, null);\n } else {\n this._checkScrollElementExists(scrollElementId);\n delete this._scrollElements[scrollElementId];\n delete this._$scrollElementListener[scrollElementId];\n delete this._scrollElementListener[scrollElementId];\n }\n }\n\n public deleteItem(itemId: string): void {\n if (this._scrollItems[itemId] != null) {\n delete this._scrollItems[itemId];\n }\n }\n\n public destroy(): void {\n this._onStopListening.next();\n this._onStopListening.complete();\n }\n}\n","import { Directive, AfterViewInit, ElementRef, OnDestroy, DestroyRef, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ScrollSpyService } from './scroll-spy.service';\n\n@Directive({\n selector: '[uniScrollSpy]',\n standalone: true,\n host: {\n '[class.active]': 'classActive()'\n }\n})\nexport class ScrollSpyDirective implements AfterViewInit, OnDestroy {\n readonly itemId = input.required<string>({ alias: 'uniScrollSpy' });\n readonly scrollElement = input<string>('window');\n\n readonly classActive = signal(false);\n\n private readonly _el = inject(ElementRef);\n private readonly _scrollSpyService = inject(ScrollSpyService);\n private readonly _destroyRef = inject(DestroyRef);\n\n ngOnDestroy(): void {\n this._scrollSpyService.deleteItem(this.itemId());\n }\n\n ngAfterViewInit(): void {\n this._scrollSpyService\n .observe(this.scrollElement())\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((element) => {\n if (element != null) {\n this.classActive.set(element.id === this.itemId());\n }\n });\n this._scrollSpyService.setItem(this.itemId(), this._el, this.scrollElement());\n\n const keyType = this._scrollSpyService.attributeType === 'data-id' ? 'data-id' : 'id';\n this._el.nativeElement.setAttribute(keyType, this.itemId());\n }\n}\n","import { Directive, ElementRef, OnInit, OnDestroy, AfterViewInit, inject, input, contentChildren } from '@angular/core';\n\nimport { ScrollDirectionEnum } from './scroll-direction.enum';\nimport { ScrollSpyService } from './scroll-spy.service';\nimport { ScrollSpyDirective } from './scroll-spy.directive';\n\n@Directive({\n selector: '[uniScrollElement]',\n standalone: true,\n host: {\n '(scroll)': 'onScroll()'\n }\n})\nexport class ScrollElementDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly elementId = input.required<string>({ alias: 'uniScrollElement' });\n readonly direction = input<ScrollDirectionEnum>(ScrollDirectionEnum.vertical);\n\n readonly scrollSpyElements = contentChildren(ScrollSpyDirective, { descendants: true });\n\n private readonly _el = inject(ElementRef);\n private readonly _scrollSpyService = inject(ScrollSpyService);\n\n onScroll() {\n this._scrollSpyService.updateScrollElement(this.elementId());\n }\n\n ngOnInit(): void {\n this._scrollSpyService.setScrollElement(this.elementId(), this._el, this.direction());\n if (this._scrollSpyService.attributeType === 'id') {\n this._el.nativeElement.setAttribute('id', this.elementId());\n } else {\n this._el.nativeElement.setAttribute('data-id', this.elementId());\n }\n }\n\n ngAfterViewInit(): void {\n const elements = this.scrollSpyElements();\n elements.forEach((element) => {\n this._scrollSpyService.changeScrollElement(element.itemId(), element.scrollElement(), this.elementId());\n });\n }\n\n ngOnDestroy(): void {\n this._scrollSpyService.deleteScrollElement(this.elementId());\n }\n}\n","import { Directive, AfterViewInit, DestroyRef, inject, input, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ScrollSpyService } from './scroll-spy.service';\n\n@Directive({\n selector: '[uniScrollItem]',\n standalone: true,\n host: {\n '[class.active]': 'classActive()'\n }\n})\nexport class ScrollItemDirective implements AfterViewInit {\n readonly itemId = input.required<string>({ alias: 'uniScrollItem' });\n readonly scrollElement = input<string>('window');\n\n readonly activeEvent = output<boolean>();\n readonly classActive = signal(false);\n\n private readonly _scrollSpyService = inject(ScrollSpyService);\n private readonly _destroyRef = inject(DestroyRef);\n\n ngAfterViewInit(): void {\n this._scrollSpyService\n .observe(this.scrollElement())\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((element) => {\n let _active: boolean;\n if (element != null) {\n _active = element.id === this.itemId();\n this.activeEvent.emit(_active);\n } else {\n _active = false;\n }\n this.classActive.set(_active);\n });\n }\n}\n","import { NgModule, ModuleWithProviders, makeEnvironmentProviders, EnvironmentProviders } from '@angular/core';\n\nimport { ScrollSpyDirective } from './scroll-spy.directive';\nimport { ScrollItemDirective } from './scroll-item.directive';\nimport { ScrollElementDirective } from './scroll-element.directive';\n\nimport { SPY_CONFIG, SpyConfig } from './scroll-spy.service';\n\nconst directives = [ScrollSpyDirective, ScrollItemDirective, ScrollElementDirective];\n\n/**\n * Provide ScrollSpy configuration for standalone applications.\n *\n * @example\n * ```typescript\n * bootstrapApplication(AppComponent, {\n * providers: [provideScrollSpy({ lookAhead: true })]\n * });\n * ```\n */\nexport function provideScrollSpy(config: SpyConfig = { lookAhead: false }): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: SPY_CONFIG, useValue: config }]);\n}\n\n/**\n * @deprecated Use standalone directives (ScrollSpyDirective, ScrollItemDirective, ScrollElementDirective)\n * and provideScrollSpy() instead.\n */\n@NgModule({\n imports: [...directives],\n exports: [...directives]\n})\nexport class NgxScrollspyModule {\n public static forRoot(parameters: SpyConfig = { lookAhead: false }): ModuleWithProviders<NgxScrollspyModule> {\n return {\n ngModule: NgxScrollspyModule,\n providers: [{ provide: SPY_CONFIG, useValue: parameters }]\n };\n }\n}\n","/*\n * Public API Surface of ngx-scrollspy\n */\n// enums\nexport { ScrollDirectionEnum } from './lib/scroll-direction.enum';\n\n// interfaces\nexport { ScrollObjectInterface } from './lib/scroll-object.interface';\nexport { ScrollElementInterface } from './lib/scroll-element.interface';\n\n// services\nexport { ScrollSpyService, SpyConfig, SPY_CONFIG } from './lib/scroll-spy.service';\n\n// directives\nexport { ScrollElementDirective } from './lib/scroll-element.directive';\nexport { ScrollItemDirective } from './lib/scroll-item.directive';\nexport { ScrollSpyDirective } from './lib/scroll-spy.directive';\n\n// module (legacy)\nexport { NgxScrollspyModule } from './lib/ngx-scrollspy.module';\n\n// standalone provider function\nexport { provideScrollSpy } from './lib/ngx-scrollspy.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@uniprank/ngx-scrollspy" />
5
+ export * from './public-api';
6
+ //# sourceMappingURL=uniprank-ngx-scrollspy.d.ts.map
@@ -1,5 +1,28 @@
1
- import { ModuleWithProviders } from '@angular/core';
1
+ import { ModuleWithProviders, EnvironmentProviders } from '@angular/core';
2
2
  import { SpyConfig } from './scroll-spy.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./scroll-spy.directive";
5
+ import * as i2 from "./scroll-item.directive";
6
+ import * as i3 from "./scroll-element.directive";
7
+ /**
8
+ * Provide ScrollSpy configuration for standalone applications.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * bootstrapApplication(AppComponent, {
13
+ * providers: [provideScrollSpy({ lookAhead: true })]
14
+ * });
15
+ * ```
16
+ */
17
+ export declare function provideScrollSpy(config?: SpyConfig): EnvironmentProviders;
18
+ /**
19
+ * @deprecated Use standalone directives (ScrollSpyDirective, ScrollItemDirective, ScrollElementDirective)
20
+ * and provideScrollSpy() instead.
21
+ */
3
22
  export declare class NgxScrollspyModule {
4
23
  static forRoot(parameters?: SpyConfig): ModuleWithProviders<NgxScrollspyModule>;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxScrollspyModule, never>;
25
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxScrollspyModule, never, [typeof i1.ScrollSpyDirective, typeof i2.ScrollItemDirective, typeof i3.ScrollElementDirective], [typeof i1.ScrollSpyDirective, typeof i2.ScrollItemDirective, typeof i3.ScrollElementDirective]>;
26
+ static ɵinj: i0.ɵɵInjectorDeclaration<NgxScrollspyModule>;
5
27
  }
28
+ //# sourceMappingURL=ngx-scrollspy.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-scrollspy.module.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/ngx-scrollspy.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,mBAAmB,EAA4B,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAM9G,OAAO,EAAc,SAAS,EAAE,MAAM,sBAAsB,CAAC;;;;;AAI7D;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,SAAgC,GAAG,oBAAoB,CAE/F;AAED;;;GAGG;AACH,qBAIa,kBAAkB;WACf,OAAO,CAAC,UAAU,GAAE,SAAgC,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;yCADjG,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CAO9B"}
@@ -2,3 +2,4 @@ export declare enum ScrollDirectionEnum {
2
2
  vertical = "vertical",
3
3
  horizontal = "horizontal"
4
4
  }
5
+ //# sourceMappingURL=scroll-direction.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-direction.enum.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-direction.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC3B,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC5B"}
@@ -1,15 +1,18 @@
1
- import { ElementRef, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
1
+ import { OnInit, OnDestroy, AfterViewInit } from '@angular/core';
2
2
  import { ScrollDirectionEnum } from './scroll-direction.enum';
3
- import { ScrollSpyService } from './scroll-spy.service';
3
+ import { ScrollSpyDirective } from './scroll-spy.directive';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class ScrollElementDirective implements OnInit, AfterViewInit, OnDestroy {
5
- private _el;
6
- private _scrollSpyService;
7
- elementId: string;
8
- direction: ScrollDirectionEnum;
9
- private _scrollSpyElements;
10
- onScroll($event: any): void;
11
- constructor(_el: ElementRef, _scrollSpyService: ScrollSpyService);
6
+ readonly elementId: import("@angular/core").InputSignal<string>;
7
+ readonly direction: import("@angular/core").InputSignal<ScrollDirectionEnum>;
8
+ readonly scrollSpyElements: import("@angular/core").Signal<readonly ScrollSpyDirective[]>;
9
+ private readonly _el;
10
+ private readonly _scrollSpyService;
11
+ onScroll(): void;
12
12
  ngOnInit(): void;
13
13
  ngAfterViewInit(): void;
14
14
  ngOnDestroy(): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollElementDirective, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollElementDirective, "[uniScrollElement]", never, { "elementId": { "alias": "uniScrollElement"; "required": true; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, {}, ["scrollSpyElements"], never, true, never>;
15
17
  }
18
+ //# sourceMappingURL=scroll-element.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-element.directive.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-element.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,EAAE,SAAS,EAAE,aAAa,EAAkC,MAAM,eAAe,CAAC;AAExH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;;AAE5D,qBAOa,sBAAuB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IAC7E,QAAQ,CAAC,SAAS,8CAAyD;IAC3E,QAAQ,CAAC,SAAS,2DAA4D;IAE9E,QAAQ,CAAC,iBAAiB,gEAA8D;IAExF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAE9D,QAAQ;IAIR,QAAQ,IAAI,IAAI;IAShB,eAAe,IAAI,IAAI;IAOvB,WAAW,IAAI,IAAI;yCA7BR,sBAAsB;2CAAtB,sBAAsB;CAgClC"}
@@ -6,3 +6,4 @@ export interface ScrollElementInterface {
6
6
  direction: ScrollDirectionEnum;
7
7
  offset: number;
8
8
  }
9
+ //# sourceMappingURL=scroll-element.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-element.interface.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-element.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -1,14 +1,14 @@
1
- import { EventEmitter, OnDestroy, AfterViewInit, ChangeDetectorRef } from '@angular/core';
2
- import { ScrollSpyService } from './scroll-spy.service';
3
- export declare class ScrollItemDirective implements OnDestroy, AfterViewInit {
4
- private _scrollSpyService;
5
- private _cdr;
6
- classActive: boolean;
7
- itemId: string;
8
- scrollElement: string;
9
- activeEvent: EventEmitter<boolean>;
10
- private _subscriber;
11
- constructor(_scrollSpyService: ScrollSpyService, _cdr: ChangeDetectorRef);
12
- ngOnDestroy(): void;
1
+ import { AfterViewInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScrollItemDirective implements AfterViewInit {
4
+ readonly itemId: import("@angular/core").InputSignal<string>;
5
+ readonly scrollElement: import("@angular/core").InputSignal<string>;
6
+ readonly activeEvent: import("@angular/core").OutputEmitterRef<boolean>;
7
+ readonly classActive: import("@angular/core").WritableSignal<boolean>;
8
+ private readonly _scrollSpyService;
9
+ private readonly _destroyRef;
13
10
  ngAfterViewInit(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollItemDirective, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollItemDirective, "[uniScrollItem]", never, { "itemId": { "alias": "uniScrollItem"; "required": true; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; }, { "activeEvent": "activeEvent"; }, never, never, true, never>;
14
13
  }
14
+ //# sourceMappingURL=scroll-item.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-item.directive.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-item.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAA6C,MAAM,eAAe,CAAC;;AAKpG,qBAOa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,MAAM,8CAAsD;IACrE,QAAQ,CAAC,aAAa,8CAA2B;IAEjD,QAAQ,CAAC,WAAW,oDAAqB;IACzC,QAAQ,CAAC,WAAW,kDAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAElD,eAAe,IAAI,IAAI;yCAVZ,mBAAmB;2CAAnB,mBAAmB;CAyB/B"}
@@ -5,3 +5,4 @@ export interface ScrollObjectInterface {
5
5
  elementRef: ElementRef;
6
6
  nativeElement: HTMLElement;
7
7
  }
8
+ //# sourceMappingURL=scroll-object.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-object.interface.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-object.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,WAAW,CAAC;CAC9B"}
@@ -1,14 +1,15 @@
1
- import { AfterViewInit, ElementRef, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
- import { ScrollSpyService } from './scroll-spy.service';
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
3
  export declare class ScrollSpyDirective implements AfterViewInit, OnDestroy {
4
- private _el;
5
- private _scrollSpyService;
6
- private _cdr;
7
- classActive: boolean;
8
- itemId: string;
9
- scrollElement: string;
10
- private _subscriber;
11
- constructor(_el: ElementRef, _scrollSpyService: ScrollSpyService, _cdr: ChangeDetectorRef);
4
+ readonly itemId: import("@angular/core").InputSignal<string>;
5
+ readonly scrollElement: import("@angular/core").InputSignal<string>;
6
+ readonly classActive: import("@angular/core").WritableSignal<boolean>;
7
+ private readonly _el;
8
+ private readonly _scrollSpyService;
9
+ private readonly _destroyRef;
12
10
  ngOnDestroy(): void;
13
11
  ngAfterViewInit(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollSpyDirective, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollSpyDirective, "[uniScrollSpy]", never, { "itemId": { "alias": "uniScrollSpy"; "required": true; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
14
  }
15
+ //# sourceMappingURL=scroll-spy.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-spy.directive.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-spy.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAc,SAAS,EAAqC,MAAM,eAAe,CAAC;;AAKnH,qBAOa,kBAAmB,YAAW,aAAa,EAAE,SAAS;IACjE,QAAQ,CAAC,MAAM,8CAAqD;IACpE,QAAQ,CAAC,aAAa,8CAA2B;IAEjD,QAAQ,CAAC,WAAW,kDAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAElD,WAAW,IAAI,IAAI;IAInB,eAAe,IAAI,IAAI;yCAdZ,kBAAkB;2CAAlB,kBAAkB;CA4B9B"}
@@ -2,6 +2,7 @@ import { ElementRef, InjectionToken } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { ScrollObjectInterface } from './scroll-object.interface';
4
4
  import { ScrollDirectionEnum } from './scroll-direction.enum';
5
+ import * as i0 from "@angular/core";
5
6
  export declare const SPY_CONFIG: InjectionToken<SpyConfig>;
6
7
  export interface SpyConfig {
7
8
  /**
@@ -11,46 +12,48 @@ export interface SpyConfig {
11
12
  lookAhead?: boolean;
12
13
  /**
13
14
  * @param boolean activateOnlySetItems
14
- * Set the the scroll items active only when the scroll element reached the set offset and is still in the viewport
15
+ * Set the scroll items active only when the scroll element reached the set offset and is still in the viewport
15
16
  */
16
17
  activateOnlySetItems?: boolean;
17
18
  /**
18
- * @param boolean activateOnlySetItems
19
- * Set the the scroll items active only when the scroll element reached the set offset and is still in the viewport
19
+ * @param attributeType
20
+ * Set the scroll items active only when the scroll element reached the set offset and is still in the viewport
20
21
  */
21
22
  attributeType?: 'id' | 'data-id';
22
23
  }
23
24
  export declare class ScrollSpyService {
24
- private doc;
25
+ private readonly _doc;
26
+ private readonly _config;
25
27
  private _scrollItems;
26
28
  private _scrollElements;
27
29
  private _$scrollElementListener;
28
30
  private _scrollElementListener;
29
31
  private _onStopListening;
30
- private _resizeEvents;
31
- private _scrollEvents;
32
+ private _window;
32
33
  private _lookAhead;
33
34
  private _activateOnlySetItems;
34
35
  readonly attributeType: 'id' | 'data-id';
35
- constructor(doc: any, config?: SpyConfig);
36
+ constructor();
36
37
  private _initScrollElementListener;
37
38
  private _windowScroll;
38
39
  private _generateScrollElement;
39
40
  setOffset(scrollElementId: string, offset: number): void;
40
41
  setScrollElement(scrollElementId: string, elementRef: ElementRef, direction: ScrollDirectionEnum, offset?: number): void;
41
- private _checkScrollElementNotExists;
42
42
  setItem(itemId: string, elementRef: ElementRef, scrollElementId?: string): void;
43
- private _checkItemNotExists;
44
43
  private _generateScrollObject;
45
44
  private _setDefaultItem;
46
45
  private _setScrollElementListener;
47
46
  changeScrollElement(itemId: string, oldElementId: string, newElementId: string, override?: boolean): void;
48
47
  private _getElementItems;
49
48
  private _checkItemExists;
50
- observe(scrollElementId?: string): Observable<ScrollObjectInterface>;
49
+ observe(scrollElementId?: string): Observable<ScrollObjectInterface | null>;
51
50
  private _checkScrollElementExists;
52
51
  updateScrollElement(scrollElementId: string): void;
53
52
  private _getActiveItem;
54
53
  deleteScrollElement(scrollElementId: string): void;
55
54
  deleteItem(itemId: string): void;
55
+ destroy(): void;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollSpyService, never>;
57
+ static ɵprov: i0.ɵɵInjectableDeclaration<ScrollSpyService>;
56
58
  }
59
+ //# sourceMappingURL=scroll-spy.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-spy.service.d.ts","sourceRoot":"","sources":["../../../library/ngx-scrollspy/src/lib/scroll-spy.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,cAAc,EAAU,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAmB,UAAU,EAAsB,MAAM,MAAM,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;;AAI9D,eAAO,MAAM,UAAU,2BAA8C,CAAC;AAEtE,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CAClC;AAED,qBACa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAElE,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,uBAAuB,CAAqE;IAEpG,OAAO,CAAC,sBAAsB,CAAoD;IAElF,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,qBAAqB,CAAU;IAEvC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC;;IAoCzC,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,sBAAsB;IAcvB,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKxD,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAI,GAAG,IAAI;IAQnH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,SAAmB,GAAG,IAAI;IAShG,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAK1B,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,UAAQ;IAkBvG,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;IAMjB,OAAO,CAAC,eAAe,GAAE,MAAyB,GAAG,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAKpG,OAAO,CAAC,yBAAyB;IAM1B,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAsBzD,OAAO,CAAC,cAAc;IA+Bf,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAWlD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,OAAO,IAAI,IAAI;yCAhPX,gBAAgB;6CAAhB,gBAAgB;CAoP5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniprank/ngx-scrollspy",
3
- "version": "1.1.0",
3
+ "version": "2.0.1",
4
4
  "author": {
5
5
  "name": "Dennis Fiedler",
6
6
  "email": "npm-package@uniprank.com",
@@ -12,24 +12,31 @@
12
12
  "scrollspy",
13
13
  "scroll",
14
14
  "scroll spy",
15
+ "signals",
16
+ "standalone",
15
17
  "@uniprank"
16
18
  ],
17
19
  "homepage": "https://github.com/uniprank/ngx-scrollspy#readme",
18
- "description": "This is a library to detect scroll events with a servie or directives.",
20
+ "description": "Angular library to detect scroll events with a service or directives. Supports standalone components and signals.",
19
21
  "private": false,
20
22
  "peerDependencies": {
21
- "@angular/common": ">=7.2.0",
22
- "@angular/core": ">=7.2.0"
23
+ "@angular/common": "^19.0.0",
24
+ "@angular/core": "^19.0.0",
25
+ "rxjs": "^7.0.0"
23
26
  },
24
27
  "dependencies": {
25
- "tslib": "^2.0.0"
28
+ "tslib": "^2.6.0"
29
+ },
30
+ "module": "fesm2022/uniprank-ngx-scrollspy.mjs",
31
+ "typings": "index.d.ts",
32
+ "exports": {
33
+ "./package.json": {
34
+ "default": "./package.json"
35
+ },
36
+ ".": {
37
+ "types": "./index.d.ts",
38
+ "default": "./fesm2022/uniprank-ngx-scrollspy.mjs"
39
+ }
26
40
  },
27
- "main": "bundles/uniprank-ngx-scrollspy.umd.js",
28
- "module": "fesm2015/uniprank-ngx-scrollspy.js",
29
- "es2015": "fesm2015/uniprank-ngx-scrollspy.js",
30
- "esm2015": "esm2015/uniprank-ngx-scrollspy.js",
31
- "fesm2015": "fesm2015/uniprank-ngx-scrollspy.js",
32
- "typings": "uniprank-ngx-scrollspy.d.ts",
33
- "metadata": "uniprank-ngx-scrollspy.metadata.json",
34
41
  "sideEffects": false
35
- }
42
+ }
package/public-api.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  export { ScrollDirectionEnum } from './lib/scroll-direction.enum';
2
2
  export { ScrollObjectInterface } from './lib/scroll-object.interface';
3
3
  export { ScrollElementInterface } from './lib/scroll-element.interface';
4
- export { ScrollSpyService } from './lib/scroll-spy.service';
4
+ export { ScrollSpyService, SpyConfig, SPY_CONFIG } from './lib/scroll-spy.service';
5
5
  export { ScrollElementDirective } from './lib/scroll-element.directive';
6
6
  export { ScrollItemDirective } from './lib/scroll-item.directive';
7
7
  export { ScrollSpyDirective } from './lib/scroll-spy.directive';
8
8
  export { NgxScrollspyModule } from './lib/ngx-scrollspy.module';
9
+ export { provideScrollSpy } from './lib/ngx-scrollspy.module';
10
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../library/ngx-scrollspy/src/public-api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniprank-ngx-scrollspy.d.ts","sourceRoot":"","sources":["../../library/ngx-scrollspy/src/uniprank-ngx-scrollspy.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
package/CHANGELOG.md DELETED
@@ -1,32 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [1.1.0] - 2020-08-28
9
-
10
- ### Changed
11
-
12
- - Update to Angular 10
13
-
14
- ## [1.0.7] - 2020-03-23
15
-
16
- ### Changed
17
-
18
- - refactor scroll spy service and directive
19
-
20
- ## [1.0.6] - 2020-02-28
21
-
22
- ### Added
23
-
24
- - add **changelog** for later changes
25
-
26
- ### Changed
27
-
28
- - Allow to configure the identifier write native attribute "id" or "data-id"
29
-
30
- [unreleased]: https://github.com/uniprank/ngx-scrollspy/tree/master
31
- [1.0.7]: https://github.com/uniprank/ngx-scrollspy/tree/1.0.7
32
- [1.0.6]: https://github.com/uniprank/ngx-scrollspy/tree/1.0.6