mc-image-editor
Version:
An image editor library for magic-cut app (http://www.magic-cut.in/)
35 lines • 4.03 kB
JavaScript
import { Injectable } from '@angular/core';
import { AvailableFeatures } from './available-feature.service';
import { EditableImageService } from './editable-image.service';
import * as i0 from "@angular/core";
import * as i1 from "./available-feature.service";
export class ImageEditorService {
constructor(availableFeatures) {
this.features = {};
for (const f in availableFeatures) {
if (availableFeatures[f]) {
this.registerFeature(availableFeatures[f]);
}
}
}
registerFeature(feature) {
if (this.features[feature.name] &&
this.features[feature.name] === feature) {
throw new Error(`${feature.name} is already registered`);
}
this.features[feature.name] = feature;
}
edit(image) {
return new EditableImageService(image, this.features);
}
}
ImageEditorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ImageEditorService_Factory() { return new ImageEditorService(i0.ɵɵinject(i1.AvailableFeatures)); }, token: ImageEditorService, providedIn: "root" });
ImageEditorService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
ImageEditorService.ctorParameters = () => [
{ type: AvailableFeatures }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYy1pbWFnZS1lZGl0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9pbWFnZS1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUFZLGlCQUFvQztRQUZoRCxhQUFRLEdBQThDLEVBQUUsQ0FBQztRQUd2RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixFQUFFO1lBQ2pDLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1QztTQUNGO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUEyQjtRQUNqRCxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQ3ZDO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLHdCQUF3QixDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFrQjtRQUNyQixPQUFPLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs7O1lBMUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTFEsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbWFnZUVkaXRvckZlYXR1cmUgfSBmcm9tICcuLi9tb2RlbHMvaW1hZ2UtZWRpdG9yLWZlYXR1cmUubW9kZWwnO1xuaW1wb3J0IHsgQXZhaWxhYmxlRmVhdHVyZXMgfSBmcm9tICcuL2F2YWlsYWJsZS1mZWF0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdGFibGVJbWFnZVNlcnZpY2UgfSBmcm9tICcuL2VkaXRhYmxlLWltYWdlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VFZGl0b3JTZXJ2aWNlIHtcbiAgZmVhdHVyZXM6IHsgW2ZlYXR1cmU6IHN0cmluZ106IEltYWdlRWRpdG9yRmVhdHVyZSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoYXZhaWxhYmxlRmVhdHVyZXM6IEF2YWlsYWJsZUZlYXR1cmVzKSB7XG4gICAgZm9yIChjb25zdCBmIGluIGF2YWlsYWJsZUZlYXR1cmVzKSB7XG4gICAgICBpZiAoYXZhaWxhYmxlRmVhdHVyZXNbZl0pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckZlYXR1cmUoYXZhaWxhYmxlRmVhdHVyZXNbZl0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJGZWF0dXJlKGZlYXR1cmU6IEltYWdlRWRpdG9yRmVhdHVyZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZS5uYW1lXSAmJlxuICAgICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlLm5hbWVdID09PSBmZWF0dXJlXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZmVhdHVyZS5uYW1lfSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWRgKTtcbiAgICB9XG4gICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlLm5hbWVdID0gZmVhdHVyZTtcbiAgfVxuXG4gIGVkaXQoaW1hZ2U6IEJsb2IgfCBGaWxlKSB7XG4gICAgcmV0dXJuIG5ldyBFZGl0YWJsZUltYWdlU2VydmljZShpbWFnZSwgdGhpcy5mZWF0dXJlcyk7XG4gIH1cbn1cbiJdfQ==