ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
59 lines • 6.98 kB
JavaScript
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
import { Injectable } from '@angular/core';
import { environment } from 'ng-zorro-antd/core/environments';
import * as i0 from "@angular/core";
/**
* When running in test, singletons should not be destroyed. So we keep references of singletons
* in this global variable.
*/
const testSingleRegistry = new Map();
/**
* Some singletons should have life cycle that is same to Angular's. This service make sure that
* those singletons get destroyed in HMR.
*/
export class NzSingletonService {
constructor() {
/**
* This registry is used to register singleton in dev mode.
* So that singletons get destroyed when hot module reload happens.
*
* This works in prod mode too but with no specific effect.
*/
this._singletonRegistry = new Map();
}
get singletonRegistry() {
return environment.isTestMode ? testSingleRegistry : this._singletonRegistry;
}
registerSingletonWithKey(key, target) {
const alreadyHave = this.singletonRegistry.has(key);
const item = alreadyHave ? this.singletonRegistry.get(key) : this.withNewTarget(target);
if (!alreadyHave) {
this.singletonRegistry.set(key, item);
}
}
unregisterSingletonWithKey(key) {
if (this.singletonRegistry.has(key)) {
this.singletonRegistry.delete(key);
}
}
getSingletonWithKey(key) {
return this.singletonRegistry.has(key) ? this.singletonRegistry.get(key).target : null;
}
withNewTarget(target) {
return {
target
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzSingletonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzSingletonService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzSingletonService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jb3JlL3NlcnZpY2VzL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFPOUQ7OztHQUdHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztBQUVwRTs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBUUU7Ozs7O1dBS0c7UUFDSyx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztLQTBCdkU7SUFwQ0MsSUFBWSxpQkFBaUI7UUFDM0IsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQy9FLENBQUM7SUFVRCx3QkFBd0IsQ0FBQyxHQUFXLEVBQUUsTUFBaUI7UUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxNQUFNLElBQUksR0FBMEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWhILElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsR0FBVztRQUNwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBSSxHQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxNQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRyxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQWlCO1FBQ3JDLE9BQU87WUFDTCxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7OEdBcENVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL2Vudmlyb25tZW50cyc7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbnRlcmZhY2UgU2luZ2xldG9uUmVnaXN0cnlJdGVtIHtcbiAgdGFyZ2V0OiBOelNhZmVBbnk7XG59XG5cbi8qKlxuICogV2hlbiBydW5uaW5nIGluIHRlc3QsIHNpbmdsZXRvbnMgc2hvdWxkIG5vdCBiZSBkZXN0cm95ZWQuIFNvIHdlIGtlZXAgcmVmZXJlbmNlcyBvZiBzaW5nbGV0b25zXG4gKiBpbiB0aGlzIGdsb2JhbCB2YXJpYWJsZS5cbiAqL1xuY29uc3QgdGVzdFNpbmdsZVJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIFNpbmdsZXRvblJlZ2lzdHJ5SXRlbT4oKTtcblxuLyoqXG4gKiBTb21lIHNpbmdsZXRvbnMgc2hvdWxkIGhhdmUgbGlmZSBjeWNsZSB0aGF0IGlzIHNhbWUgdG8gQW5ndWxhcidzLiBUaGlzIHNlcnZpY2UgbWFrZSBzdXJlIHRoYXRcbiAqIHRob3NlIHNpbmdsZXRvbnMgZ2V0IGRlc3Ryb3llZCBpbiBITVIuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE56U2luZ2xldG9uU2VydmljZSB7XG4gIHByaXZhdGUgZ2V0IHNpbmdsZXRvblJlZ2lzdHJ5KCk6IE1hcDxzdHJpbmcsIFNpbmdsZXRvblJlZ2lzdHJ5SXRlbT4ge1xuICAgIHJldHVybiBlbnZpcm9ubWVudC5pc1Rlc3RNb2RlID8gdGVzdFNpbmdsZVJlZ2lzdHJ5IDogdGhpcy5fc2luZ2xldG9uUmVnaXN0cnk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyByZWdpc3RyeSBpcyB1c2VkIHRvIHJlZ2lzdGVyIHNpbmdsZXRvbiBpbiBkZXYgbW9kZS5cbiAgICogU28gdGhhdCBzaW5nbGV0b25zIGdldCBkZXN0cm95ZWQgd2hlbiBob3QgbW9kdWxlIHJlbG9hZCBoYXBwZW5zLlxuICAgKlxuICAgKiBUaGlzIHdvcmtzIGluIHByb2QgbW9kZSB0b28gYnV0IHdpdGggbm8gc3BlY2lmaWMgZWZmZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBfc2luZ2xldG9uUmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgU2luZ2xldG9uUmVnaXN0cnlJdGVtPigpO1xuXG4gIHJlZ2lzdGVyU2luZ2xldG9uV2l0aEtleShrZXk6IHN0cmluZywgdGFyZ2V0OiBOelNhZmVBbnkpOiB2b2lkIHtcbiAgICBjb25zdCBhbHJlYWR5SGF2ZSA9IHRoaXMuc2luZ2xldG9uUmVnaXN0cnkuaGFzKGtleSk7XG4gICAgY29uc3QgaXRlbTogU2luZ2xldG9uUmVnaXN0cnlJdGVtID0gYWxyZWFkeUhhdmUgPyB0aGlzLnNpbmdsZXRvblJlZ2lzdHJ5LmdldChrZXkpISA6IHRoaXMud2l0aE5ld1RhcmdldCh0YXJnZXQpO1xuXG4gICAgaWYgKCFhbHJlYWR5SGF2ZSkge1xuICAgICAgdGhpcy5zaW5nbGV0b25SZWdpc3RyeS5zZXQoa2V5LCBpdGVtKTtcbiAgICB9XG4gIH1cblxuICB1bnJlZ2lzdGVyU2luZ2xldG9uV2l0aEtleShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNpbmdsZXRvblJlZ2lzdHJ5LmhhcyhrZXkpKSB7XG4gICAgICB0aGlzLnNpbmdsZXRvblJlZ2lzdHJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNpbmdsZXRvbldpdGhLZXk8VD4oa2V5OiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2luZ2xldG9uUmVnaXN0cnkuaGFzKGtleSkgPyAodGhpcy5zaW5nbGV0b25SZWdpc3RyeS5nZXQoa2V5KSEudGFyZ2V0IGFzIFQpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgd2l0aE5ld1RhcmdldCh0YXJnZXQ6IE56U2FmZUFueSk6IFNpbmdsZXRvblJlZ2lzdHJ5SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldFxuICAgIH07XG4gIH1cbn1cbiJdfQ==