{"version":3,"file":"ng-resize-observer.mjs","sources":["../../../projects/ng-resize-observer/src/lib/resize-observer.ts","../../../projects/ng-resize-observer/src/lib/ng-resize-observer.service.ts","../../../projects/ng-resize-observer/src/lib/ponyfill.module.ts","../../../projects/ng-resize-observer/src/public-api.ts","../../../projects/ng-resize-observer/src/ng-resize-observer.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport { ResizeObserver } from \"@juggle/resize-observer\";\n\ndeclare var window: any;\n\nexport type ResizeObserverClass = {\n  new(callback: (entries: any[]) => void): ResizeObserver;\n};\n\nexport const RESIZE_OBSERVER = new InjectionToken<ResizeObserverClass>(\n  \"Resize Observer\",\n  {\n    providedIn: \"root\",\n    factory: () => window.ResizeObserver || null\n  }\n);\n","import {\n  ChangeDetectorRef,\n  ElementRef,\n  Inject,\n  Injectable,\n  OnDestroy,\n  Optional,\n} from \"@angular/core\";\nimport { ResizeObserver, ResizeObserverEntry } from \"@juggle/resize-observer\";\nimport { Observable, Subject } from \"rxjs\";\nimport { RESIZE_OBSERVER, ResizeObserverClass } from \"./resize-observer\";\n\nexport class NgResizeObserver extends Observable<ResizeObserverEntry> {}\n\n@Injectable()\nexport class ResizeObserverService implements OnDestroy {\n  private onResizeSubject = new Subject<ResizeObserverEntry>();\n  private resizeObserver!: ResizeObserver;\n  public onResize: Observable<\n    ResizeObserverEntry\n  > = this.onResizeSubject.asObservable();\n\n  constructor(\n    private chgRef: ChangeDetectorRef,\n    @Optional() private el: ElementRef,\n    @Inject(RESIZE_OBSERVER)\n    private ResizeObserver: ResizeObserverClass\n  ) {\n    if (this.el === null) {\n      console.error(\n        `ng-resize-observer: No provider for ElementRef. This error is most likely because you added the ng-resize-observer provider in a @NgModule. Only add ng-resize-observer on @Component()`\n      );\n      return;\n    }\n\n    if (this.ResizeObserver === null) {\n      console.error(\n        `ng-resize-observer: ResizeObserver not available. Use the ponyfill module: NgResizeObserverPonyfillModule.`\n      );\n      return;\n    }\n\n    this.observe();\n  }\n\n  ngOnDestroy() {\n    this.unobserve();\n    this.onResizeSubject.complete();\n  }\n\n  private observe() {\n    this.resizeObserver = new this.ResizeObserver((entries) => {\n      const entry = entries && entries[0];\n      if (entry) {\n        this.onResizeSubject.next(entry);\n        this.chgRef.detectChanges();\n      }\n    });\n    this.resizeObserver.observe(this.target);\n  }\n\n  private unobserve() {\n    this.resizeObserver.unobserve(this.target);\n  }\n\n  private get target() {\n    return this.el.nativeElement;\n  }\n}\n\nexport function ngResizeObserverFactory(\n  resizeObserverService: ResizeObserverService\n) {\n  return resizeObserverService.onResize;\n}\n\nexport const NgResizeObserverProvider = {\n  provide: NgResizeObserver,\n  useFactory: ngResizeObserverFactory,\n  deps: [ResizeObserverService],\n};\n","import { NgModule } from \"@angular/core\";\nimport { RESIZE_OBSERVER } from \"./resize-observer\";\nimport { ResizeObserver as Polyfill } from \"@juggle/resize-observer\";\n\ndeclare var window: any;\n\nexport function ponyFillFactory() {\n  return window.ResizeObserver || Polyfill;\n};\n\nexport const polyfillProvider = { provide: RESIZE_OBSERVER, useFactory: ponyFillFactory };\n\n@NgModule({\n  providers: [polyfillProvider]\n})\nexport class NgResizeObserverPonyfillModule {}\n","import {\n  NgResizeObserverProvider,\n  ResizeObserverService,\n  NgResizeObserver,\n} from './lib/ng-resize-observer.service';\nimport {\n  NgResizeObserverPonyfillModule,\n  polyfillProvider,\n} from './lib/ponyfill.module';\n\nconst ngResizeObserverProviders = [\n  NgResizeObserverProvider,\n  ResizeObserverService,\n];\n\nconst ngResizeObserverProvidersWithPonyfill = [\n  ...ngResizeObserverProviders,\n  polyfillProvider,\n];\n\n/*\n * Public API Surface of ng-resize-observer\n */\nexport {\n  NgResizeObserver,\n  ngResizeObserverProviders,\n  ngResizeObserverProvidersWithPonyfill,\n  NgResizeObserverPonyfillModule,\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Polyfill"],"mappings":"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"}