carbon-components-angular
Version:
Next generation components
92 lines (87 loc) • 3.54 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, Optional, SkipSelf, NgModule } from '@angular/core';
class ExperimentalService {
constructor() {
/**
* Map to hold all our experiments
*/
this.experiments = new Map();
}
/**
* Adds an experiment if it doesn't exist.
*/
addExperiment(name, options = { enabled: false }) {
if (!this.experiments.has(name)) {
this.experiments.set(name, options);
}
}
/**
* Enables an experiment by name
* @param name name of the experiment to enable
*/
enableExperiment(name) {
const experiment = this.getExperiment(name);
experiment.enabled = true;
}
/**
* Disables an experiment by name
* @param name name of the experiment to disable
*/
disableExperiment(name) {
const experiment = this.getExperiment(name);
experiment.enabled = false;
}
/**
* Get the options for an experiment by name
* @param name name of experiment to get
*/
getExperiment(name) {
if (!this.experiments.has(name)) {
this.addExperiment(name);
return this.getExperiment(name);
}
return this.experiments.get(name);
}
/**
* Get an array of tuples representing an experiment and it's options
*/
getExperiments() {
return Array.from(this.experiments.entries());
}
}
ExperimentalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
ExperimentalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalService, decorators: [{
type: Injectable
}] });
// either provides a new instance of ExperimentalService, or returns the parent
function EXPERIMENTAL_SERVICE_PROVIDER_FACTORY(parentService) {
return parentService || new ExperimentalService();
}
const EXPERIMENTAL_SERVICE_PROVIDER = {
provide: ExperimentalService,
deps: [[new Optional(), new SkipSelf(), ExperimentalService]],
useFactory: EXPERIMENTAL_SERVICE_PROVIDER_FACTORY
};
class ExperimentalModule {
}
ExperimentalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
ExperimentalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalModule });
ExperimentalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalModule, providers: [
ExperimentalService,
EXPERIMENTAL_SERVICE_PROVIDER
] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ExperimentalModule, decorators: [{
type: NgModule,
args: [{
providers: [
ExperimentalService,
EXPERIMENTAL_SERVICE_PROVIDER
]
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { EXPERIMENTAL_SERVICE_PROVIDER, EXPERIMENTAL_SERVICE_PROVIDER_FACTORY, ExperimentalModule, ExperimentalService };
//# sourceMappingURL=carbon-components-angular-experimental.mjs.map