@angular/cdk
Version:
Angular Material Component Development Kit
61 lines (58 loc) • 1.64 kB
JavaScript
import * as i0 from '@angular/core';
import { inject, Injector, EnvironmentInjector, ApplicationRef, createComponent, Injectable } from '@angular/core';
const appsWithLoaders = new WeakMap();
class _CdkPrivateStyleLoader {
_appRef;
_injector = inject(Injector);
_environmentInjector = inject(EnvironmentInjector);
load(loader) {
const appRef = this._appRef = this._appRef || this._injector.get(ApplicationRef);
let data = appsWithLoaders.get(appRef);
if (!data) {
data = {
loaders: new Set(),
refs: []
};
appsWithLoaders.set(appRef, data);
appRef.onDestroy(() => {
appsWithLoaders.get(appRef)?.refs.forEach(ref => ref.destroy());
appsWithLoaders.delete(appRef);
});
}
if (!data.loaders.has(loader)) {
data.loaders.add(loader);
data.refs.push(createComponent(loader, {
environmentInjector: this._environmentInjector
}));
}
}
static ɵfac = i0.ɵɵngDeclareFactory({
minVersion: "12.0.0",
version: "21.0.0",
ngImport: i0,
type: _CdkPrivateStyleLoader,
deps: [],
target: i0.ɵɵFactoryTarget.Injectable
});
static ɵprov = i0.ɵɵngDeclareInjectable({
minVersion: "12.0.0",
version: "21.0.0",
ngImport: i0,
type: _CdkPrivateStyleLoader,
providedIn: 'root'
});
}
i0.ɵɵngDeclareClassMetadata({
minVersion: "12.0.0",
version: "21.0.0",
ngImport: i0,
type: _CdkPrivateStyleLoader,
decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}]
});
export { _CdkPrivateStyleLoader };
//# sourceMappingURL=_style-loader-chunk.mjs.map