primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 5.37 kB
Source Map (JSON)
{"version":3,"file":"primeng-defer.mjs","sources":["../../src/defer/defer.ts","../../src/defer/primeng-defer.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, ContentChild, Directive, EmbeddedViewRef, EventEmitter, inject, NgModule, OnDestroy, Output, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Nullable } from 'primeng/ts-helpers';\n\n/**\n * Defer postpones the loading the content that is initially not in the viewport until it becomes visible on scroll.\n * @deprecated use Angular defer block instead.\n * @group Components\n */\n@Directive({\n selector: '[pDefer]',\n standalone: true\n})\nexport class Defer extends BaseComponent implements AfterViewInit, OnDestroy {\n /**\n * Callback to invoke when deferred content is loaded.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onLoad: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ContentChild(TemplateRef) template: TemplateRef<any> | undefined;\n\n documentScrollListener: Nullable<Function>;\n\n view: Nullable<EmbeddedViewRef<any>>;\n\n viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n ngOnInit() {\n super.ngOnInit();\n console.log('Defer is deprecated as of v18, use Angular defer block instead.');\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (isPlatformBrowser(this.platformId)) {\n if (this.shouldLoad()) {\n this.load();\n }\n\n if (!this.isLoaded()) {\n this.documentScrollListener = this.renderer.listen(this.document.defaultView, 'scroll', () => {\n if (this.shouldLoad()) {\n this.load();\n this.documentScrollListener && this.documentScrollListener();\n this.documentScrollListener = null;\n }\n });\n }\n }\n }\n\n shouldLoad(): boolean {\n if (this.isLoaded()) {\n return false;\n } else {\n let rect = this.el.nativeElement.getBoundingClientRect();\n let docElement = this.document.documentElement;\n let winHeight = docElement.clientHeight;\n\n return winHeight >= rect.top;\n }\n }\n\n load(): void {\n this.view = this.viewContainer.createEmbeddedView(this.template as TemplateRef<any>);\n this.onLoad.emit();\n this.cd.detectChanges();\n }\n\n isLoaded() {\n return this.view != null && isPlatformBrowser(this.platformId);\n }\n\n ngOnDestroy() {\n this.view = null;\n\n if (this.documentScrollListener) {\n this.documentScrollListener();\n }\n }\n}\n\n@NgModule({\n imports: [Defer],\n exports: [Defer]\n})\nexport class DeferModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}