@ng-web-apis/resize-observer
Version:
A library for declarative use of Resize Observer API with Angular
1 lines • 6 kB
Source Map (JSON)
{"version":3,"file":"ng-web-apis-resize-observer.mjs","sources":["../../../libs/resize-observer/src/classes/safe-observer.ts","../../../libs/resize-observer/src/tokens/resize-option-box.ts","../../../libs/resize-observer/src/services/resize-observer.service.ts","../../../libs/resize-observer/src/directives/resize-observer.directive.ts","../../../libs/resize-observer/src/tokens/support.ts","../../../libs/resize-observer/src/ng-web-apis-resize-observer.ts"],"sourcesContent":["export const SafeObserver =\n typeof ResizeObserver !== 'undefined'\n ? ResizeObserver\n : class implements ResizeObserver {\n public observe(): void {}\n public unobserve(): void {}\n public disconnect(): void {}\n };\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_RESIZE_OPTION_BOX_DEFAULT = 'content-box';\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_RESIZE_OPTION_BOX_DEFAULT}\n */\nexport const RESIZE_OPTION_BOX_DEFAULT = WA_RESIZE_OPTION_BOX_DEFAULT;\n\nexport const WA_RESIZE_OPTION_BOX = new InjectionToken<ResizeObserverBoxOptions>(\n '[WA_RESIZE_OPTION_BOX]',\n {\n providedIn: 'root',\n factory: () => RESIZE_OPTION_BOX_DEFAULT,\n },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_RESIZE_OPTION_BOX}\n */\nexport const RESIZE_OPTION_BOX = WA_RESIZE_OPTION_BOX;\n","import {ElementRef, inject, Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {SafeObserver} from '../classes/safe-observer';\nimport {RESIZE_OPTION_BOX} from '../tokens/resize-option-box';\n\n@Injectable()\nexport class ResizeObserverService extends Observable<readonly ResizeObserverEntry[]> {\n constructor() {\n const nativeElement: HTMLElement = inject(ElementRef).nativeElement;\n const box = inject(RESIZE_OPTION_BOX);\n\n super((subscriber) => {\n const observer = new SafeObserver((entries) => subscriber.next(entries));\n\n observer.observe(nativeElement, {box});\n\n return () => {\n observer.disconnect();\n };\n });\n }\n}\n","import {Directive, ElementRef, inject} from '@angular/core';\n\nimport {ResizeObserverService} from '../services/resize-observer.service';\nimport {RESIZE_OPTION_BOX, RESIZE_OPTION_BOX_DEFAULT} from '../tokens/resize-option-box';\n\n@Directive({\n standalone: true,\n selector: '[waResizeObserver]',\n inputs: ['waResizeBox: box'],\n outputs: ['waResizeObserver'],\n providers: [\n ResizeObserverService,\n {\n provide: RESIZE_OPTION_BOX,\n useFactory: (): ResizeObserverBoxOptions =>\n inject(ElementRef).nativeElement.getAttribute('waResizeBox') ||\n RESIZE_OPTION_BOX_DEFAULT,\n },\n ],\n})\nexport class WaResizeObserver {\n protected readonly waResizeObserver = inject(ResizeObserverService);\n\n public box: ResizeObserverBoxOptions = RESIZE_OPTION_BOX_DEFAULT;\n}\n\n/**\n * @deprecated: use {@link WaResizeObserver}\n */\nexport const ResizeObserverDirective = WaResizeObserver;\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\nexport const WA_RESIZE_OBSERVER_SUPPORT = new InjectionToken<boolean>(\n '[WA_RESIZE_OBSERVER_SUPPORT]',\n {\n providedIn: 'root',\n factory: () => !!(inject(WA_WINDOW) as any).ResizeObserver,\n },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_RESIZE_OBSERVER_SUPPORT}\n */\nexport const RESIZE_OBSERVER_SUPPORT = WA_RESIZE_OBSERVER_SUPPORT;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}