@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.
- package/README.md +102 -81
- package/fesm2022/uniprank-ngx-scrollspy.mjs +389 -0
- package/fesm2022/uniprank-ngx-scrollspy.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/ngx-scrollspy.module.d.ts +24 -1
- package/lib/ngx-scrollspy.module.d.ts.map +1 -0
- package/lib/scroll-direction.enum.d.ts +1 -0
- package/lib/scroll-direction.enum.d.ts.map +1 -0
- package/lib/scroll-element.directive.d.ts +12 -9
- package/lib/scroll-element.directive.d.ts.map +1 -0
- package/lib/scroll-element.interface.d.ts +1 -0
- package/lib/scroll-element.interface.d.ts.map +1 -0
- package/lib/scroll-item.directive.d.ts +12 -12
- package/lib/scroll-item.directive.d.ts.map +1 -0
- package/lib/scroll-object.interface.d.ts +1 -0
- package/lib/scroll-object.interface.d.ts.map +1 -0
- package/lib/scroll-spy.directive.d.ts +11 -10
- package/lib/scroll-spy.directive.d.ts.map +1 -0
- package/lib/scroll-spy.service.d.ts +13 -10
- package/lib/scroll-spy.service.d.ts.map +1 -0
- package/package.json +20 -13
- package/public-api.d.ts +3 -1
- package/public-api.d.ts.map +1 -0
- package/uniprank-ngx-scrollspy.d.ts.map +1 -0
- package/CHANGELOG.md +0 -32
- package/bundles/uniprank-ngx-scrollspy.umd.js +0 -708
- package/bundles/uniprank-ngx-scrollspy.umd.js.map +0 -1
- package/bundles/uniprank-ngx-scrollspy.umd.min.js +0 -2
- package/bundles/uniprank-ngx-scrollspy.umd.min.js.map +0 -1
- package/esm2015/lib/ngx-scrollspy.module.js +0 -25
- package/esm2015/lib/scroll-direction.enum.js +0 -6
- package/esm2015/lib/scroll-element.directive.js +0 -48
- package/esm2015/lib/scroll-element.interface.js +0 -1
- package/esm2015/lib/scroll-item.directive.js +0 -48
- package/esm2015/lib/scroll-object.interface.js +0 -1
- package/esm2015/lib/scroll-spy.directive.js +0 -50
- package/esm2015/lib/scroll-spy.service.js +0 -206
- package/esm2015/public-api.js +0 -14
- package/esm2015/uniprank-ngx-scrollspy.js +0 -6
- package/fesm2015/uniprank-ngx-scrollspy.js +0 -379
- package/fesm2015/uniprank-ngx-scrollspy.js.map +0 -1
- package/uniprank-ngx-scrollspy.d.ts +0 -5
- 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
|
@@ -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"}
|
|
@@ -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 {
|
|
1
|
+
import { OnInit, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ScrollDirectionEnum } from './scroll-direction.enum';
|
|
3
|
-
import {
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private
|
|
10
|
-
onScroll(
|
|
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"}
|
|
@@ -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 {
|
|
2
|
-
import
|
|
3
|
-
export declare class ScrollItemDirective implements
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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"}
|
|
@@ -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,
|
|
2
|
-
import
|
|
1
|
+
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class ScrollSpyDirective implements AfterViewInit, OnDestroy {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
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
|
|
19
|
-
* Set the
|
|
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
|
|
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
|
|
31
|
-
private _scrollEvents;
|
|
32
|
+
private _window;
|
|
32
33
|
private _lookAhead;
|
|
33
34
|
private _activateOnlySetItems;
|
|
34
35
|
readonly attributeType: 'id' | 'data-id';
|
|
35
|
-
constructor(
|
|
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": "
|
|
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": "
|
|
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": "
|
|
22
|
-
"@angular/core": "
|
|
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.
|
|
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
|