UNPKG

carbon-components-angular

Version:
57 lines 5.74 kB
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=