angular-upcrop
Version:
Library with upload and crop feature for Angular 6+
97 lines (96 loc) • 7.68 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { MatDialog } from "@angular/material";
import { UpcropDialogComponent } from './upcrop-dialog/upcrop-dialog.component';
var UpcropService = /** @class */ (function () {
function UpcropService(dialog) {
this.dialog = dialog;
this.dialogConfig = {
width: '80%'
};
this.uploadConfig = {
url: null,
authToken: null,
autoUpload: false,
additionalParameter: {},
withCredentials: false
};
this.cropConfig = {
movable: true,
scalable: true,
zoomable: true,
viewMode: 1,
autoCrop: true,
autoCropArea: 1
};
}
/**
* @param {?=} dialogConfig
* @param {?=} uploadConfig
* @param {?=} cropConfig
* @return {?}
*/
UpcropService.prototype.open = /**
* @param {?=} dialogConfig
* @param {?=} uploadConfig
* @param {?=} cropConfig
* @return {?}
*/
function (dialogConfig, uploadConfig, cropConfig) {
var _this = this;
if (dialogConfig === void 0) { dialogConfig = this.dialogConfig; }
if (uploadConfig === void 0) { uploadConfig = this.uploadConfig; }
if (cropConfig === void 0) { cropConfig = this.cropConfig; }
//
// Merge config
this.uploadConfig = Object.assign(this.uploadConfig, uploadConfig);
this.cropConfig = Object.assign(this.cropConfig, cropConfig);
this.dialogConfig = Object.assign({}, this.dialogConfig, dialogConfig, {
data: {
uploadConfig: this.uploadConfig,
cropConfig: this.cropConfig
}
});
//
// Create promise to return the dialog result
return new Promise(function (resolve, reject) {
/** @type {?} */
var dialogRef = _this.dialog.open(UpcropDialogComponent, _this.dialogConfig);
//
// Subscribe to on close event
dialogRef.afterClosed().subscribe(function (result) {
//
// Validate result
if (result) {
resolve(result);
}
else {
reject();
}
});
});
};
UpcropService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
UpcropService.ctorParameters = function () { return [
{ type: MatDialog }
]; };
return UpcropService;
}());
export { UpcropService };
if (false) {
/** @type {?} */
UpcropService.prototype.dialogConfig;
/** @type {?} */
UpcropService.prototype.uploadConfig;
/** @type {?} */
UpcropService.prototype.cropConfig;
/** @type {?} */
UpcropService.prototype.dialog;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjcm9wLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXVwY3JvcC8iLCJzb3VyY2VzIjpbImxpYi91cGNyb3Auc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0lBd0I1RSx1QkFDVztRQUFBLFdBQU0sR0FBTixNQUFNOzRCQXBCVTtZQUN2QixLQUFLLEVBQUUsS0FBSztTQUNmOzRCQUMwQjtZQUN2QixHQUFHLEVBQUUsSUFBSTtZQUNULFNBQVMsRUFBRSxJQUFJO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixlQUFlLEVBQUUsS0FBSztTQUN6QjswQkFDd0I7WUFDckIsT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxDQUFDO1NBQ2xCO0tBSUk7Ozs7Ozs7SUFFTCw0QkFBSTs7Ozs7O0lBQUosVUFDSSxZQUFxQyxFQUNyQyxZQUFxQyxFQUNyQyxVQUFpQztRQUhyQyxpQkFzQ0M7UUFyQ0csNkJBQUEsRUFBQSxlQUFvQixJQUFJLENBQUMsWUFBWTtRQUNyQyw2QkFBQSxFQUFBLGVBQW9CLElBQUksQ0FBQyxZQUFZO1FBQ3JDLDJCQUFBLEVBQUEsYUFBa0IsSUFBSSxDQUFDLFVBQVU7OztRQUtqQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFO1lBQ25FLElBQUksRUFBRTtnQkFDRixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM5QjtTQUNKLENBQUMsQ0FBQzs7O1FBSUgsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07O1lBSS9CLElBQUksU0FBUyxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzs7O1lBSTNFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBQSxNQUFNOzs7Z0JBSXBDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNuQjtnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDSixNQUFNLEVBQUUsQ0FBQztpQkFDWjthQUNKLENBQUMsQ0FBQztTQUNOLENBQUMsQ0FBQztLQUNOOztnQkFoRUosVUFBVTs7OztnQkFIRixTQUFTOzt3QkFEbEI7O1NBS2EsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgVXBjcm9wRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi91cGNyb3AtZGlhbG9nL3VwY3JvcC1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFVwY3JvcFNlcnZpY2Uge1xuXG4gICAgcHVibGljIGRpYWxvZ0NvbmZpZzogYW55ID0ge1xuICAgICAgICB3aWR0aDogJzgwJSdcbiAgICB9O1xuICAgIHB1YmxpYyB1cGxvYWRDb25maWc6IGFueSA9IHtcbiAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICBhdXRoVG9rZW46IG51bGwsXG4gICAgICAgIGF1dG9VcGxvYWQ6IGZhbHNlLFxuICAgICAgICBhZGRpdGlvbmFsUGFyYW1ldGVyOiB7fSxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZVxuICAgIH07XG4gICAgcHVibGljIGNyb3BDb25maWc6IGFueSA9IHtcbiAgICAgICAgbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgc2NhbGFibGU6IHRydWUsXG4gICAgICAgIHpvb21hYmxlOiB0cnVlLFxuICAgICAgICB2aWV3TW9kZTogMSxcbiAgICAgICAgYXV0b0Nyb3A6IHRydWUsXG4gICAgICAgIGF1dG9Dcm9wQXJlYTogMVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nXG4gICAgKSB7IH1cblxuICAgIG9wZW4oXG4gICAgICAgIGRpYWxvZ0NvbmZpZzogYW55ID0gdGhpcy5kaWFsb2dDb25maWcsXG4gICAgICAgIHVwbG9hZENvbmZpZzogYW55ID0gdGhpcy51cGxvYWRDb25maWcsXG4gICAgICAgIGNyb3BDb25maWc6IGFueSA9IHRoaXMuY3JvcENvbmZpZ1xuICAgICkge1xuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIE1lcmdlIGNvbmZpZ1xuICAgICAgICB0aGlzLnVwbG9hZENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy51cGxvYWRDb25maWcsIHVwbG9hZENvbmZpZyk7XG4gICAgICAgIHRoaXMuY3JvcENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5jcm9wQ29uZmlnLCBjcm9wQ29uZmlnKTtcbiAgICAgICAgdGhpcy5kaWFsb2dDb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRpYWxvZ0NvbmZpZywgZGlhbG9nQ29uZmlnLCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdXBsb2FkQ29uZmlnOiB0aGlzLnVwbG9hZENvbmZpZyxcbiAgICAgICAgICAgICAgICBjcm9wQ29uZmlnOiB0aGlzLmNyb3BDb25maWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQ3JlYXRlIHByb21pc2UgdG8gcmV0dXJuIHRoZSBkaWFsb2cgcmVzdWx0XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBPcGVuIGNvbmZpcm1hdGlvbiBkaWFsb2dcbiAgICAgICAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVwY3JvcERpYWxvZ0NvbXBvbmVudCwgdGhpcy5kaWFsb2dDb25maWcpO1xuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG9uIGNsb3NlIGV2ZW50XG4gICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcblxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gVmFsaWRhdGUgcmVzdWx0XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==