carbon-components-angular
Version:
Next generation components
57 lines • 5.74 kB
JavaScript
import { Injectable } from "@angular/core";
import * as i0 from "@angular/core";
export 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
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJpbWVudGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwZXJpbWVudGFsL2V4cGVyaW1lbnRhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFQzs7V0FFRztRQUNLLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7S0FnRHBEO0lBOUNBOztPQUVHO0lBQ0gsYUFBYSxDQUFDLElBQVksRUFBRSxVQUFzQixFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUM7UUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwQztJQUNGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLElBQVk7UUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDOztnSEFuRFcsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgb3B0aW9ucyBmb3IgYW4gZXhwZXJpbWVudC4gVGhlIG9ubHkgcmVxdWlyZWQgcHJvcGVydHkgaXMgYGVuYWJsZWRgLCBob3dldmVyIG90aGVyIG9wdGlvbnMgbWF5IGJlIHN1cHBsaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cGVyaW1lbnQge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeHBlcmltZW50YWxTZXJ2aWNlIHtcblx0LyoqXG5cdCAqIE1hcCB0byBob2xkIGFsbCBvdXIgZXhwZXJpbWVudHNcblx0ICovXG5cdHByaXZhdGUgZXhwZXJpbWVudHMgPSBuZXcgTWFwPHN0cmluZywgRXhwZXJpbWVudD4oKTtcblxuXHQvKipcblx0ICogQWRkcyBhbiBleHBlcmltZW50IGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG5cdCAqL1xuXHRhZGRFeHBlcmltZW50KG5hbWU6IHN0cmluZywgb3B0aW9uczogRXhwZXJpbWVudCA9IHtlbmFibGVkOiBmYWxzZX0pIHtcblx0XHRpZiAoIXRoaXMuZXhwZXJpbWVudHMuaGFzKG5hbWUpKSB7XG5cdFx0XHR0aGlzLmV4cGVyaW1lbnRzLnNldChuYW1lLCBvcHRpb25zKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW5hYmxlcyBhbiBleHBlcmltZW50IGJ5IG5hbWVcblx0ICogQHBhcmFtIG5hbWUgbmFtZSBvZiB0aGUgZXhwZXJpbWVudCB0byBlbmFibGVcblx0ICovXG5cdGVuYWJsZUV4cGVyaW1lbnQobmFtZTogc3RyaW5nKSB7XG5cdFx0Y29uc3QgZXhwZXJpbWVudCA9IHRoaXMuZ2V0RXhwZXJpbWVudChuYW1lKTtcblx0XHRleHBlcmltZW50LmVuYWJsZWQgPSB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc2FibGVzIGFuIGV4cGVyaW1lbnQgYnkgbmFtZVxuXHQgKiBAcGFyYW0gbmFtZSBuYW1lIG9mIHRoZSBleHBlcmltZW50IHRvIGRpc2FibGVcblx0ICovXG5cdGRpc2FibGVFeHBlcmltZW50KG5hbWU6IHN0cmluZykge1xuXHRcdGNvbnN0IGV4cGVyaW1lbnQgPSB0aGlzLmdldEV4cGVyaW1lbnQobmFtZSk7XG5cdFx0ZXhwZXJpbWVudC5lbmFibGVkID0gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBvcHRpb25zIGZvciBhbiBleHBlcmltZW50IGJ5IG5hbWVcblx0ICogQHBhcmFtIG5hbWUgbmFtZSBvZiBleHBlcmltZW50IHRvIGdldFxuXHQgKi9cblx0Z2V0RXhwZXJpbWVudChuYW1lOiBzdHJpbmcpOiBFeHBlcmltZW50IHtcblx0XHRpZiAoIXRoaXMuZXhwZXJpbWVudHMuaGFzKG5hbWUpKSB7XG5cdFx0XHR0aGlzLmFkZEV4cGVyaW1lbnQobmFtZSk7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRFeHBlcmltZW50KG5hbWUpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmV4cGVyaW1lbnRzLmdldChuYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYW4gYXJyYXkgb2YgdHVwbGVzIHJlcHJlc2VudGluZyBhbiBleHBlcmltZW50IGFuZCBpdCdzIG9wdGlvbnNcblx0ICovXG5cdGdldEV4cGVyaW1lbnRzKCk6IEFycmF5PFtzdHJpbmcsIEV4cGVyaW1lbnRdPiB7XG5cdFx0cmV0dXJuIEFycmF5LmZyb20odGhpcy5leHBlcmltZW50cy5lbnRyaWVzKCkpO1xuXHR9XG59XG4iXX0=