angular-upcrop
Version:
Library with upload and crop feature for Angular 6+
88 lines (87 loc) • 7.1 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';
export class UpcropService {
/**
* @param {?} dialog
*/
constructor(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 {?}
*/
open(dialogConfig = this.dialogConfig, uploadConfig = this.uploadConfig, 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((resolve, reject) => {
/** @type {?} */
let dialogRef = this.dialog.open(UpcropDialogComponent, this.dialogConfig);
//
// Subscribe to on close event
dialogRef.afterClosed().subscribe(result => {
//
// Validate result
if (result) {
resolve(result);
}
else {
reject();
}
});
});
}
}
UpcropService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
UpcropService.ctorParameters = () => [
{ type: MatDialog }
];
if (false) {
/** @type {?} */
UpcropService.prototype.dialogConfig;
/** @type {?} */
UpcropService.prototype.uploadConfig;
/** @type {?} */
UpcropService.prototype.cropConfig;
/** @type {?} */
UpcropService.prototype.dialog;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjcm9wLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXVwY3JvcC8iLCJzb3VyY2VzIjpbImxpYi91cGNyb3Auc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHaEYsTUFBTTs7OztJQXFCRixZQUNXO1FBQUEsV0FBTSxHQUFOLE1BQU07NEJBcEJVO1lBQ3ZCLEtBQUssRUFBRSxLQUFLO1NBQ2Y7NEJBQzBCO1lBQ3ZCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsS0FBSztZQUNqQixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLGVBQWUsRUFBRSxLQUFLO1NBQ3pCOzBCQUN3QjtZQUNyQixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxJQUFJO1lBQ2QsWUFBWSxFQUFFLENBQUM7U0FDbEI7S0FJSTs7Ozs7OztJQUVMLElBQUksQ0FDQSxlQUFvQixJQUFJLENBQUMsWUFBWSxFQUNyQyxlQUFvQixJQUFJLENBQUMsWUFBWSxFQUNyQyxhQUFrQixJQUFJLENBQUMsVUFBVTs7O1FBS2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUU7WUFDbkUsSUFBSSxFQUFFO2dCQUNGLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzlCO1NBQ0osQ0FBQyxDQUFDOzs7UUFJSCxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O1lBSW5DLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzs7O1lBSTNFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7OztnQkFJdkMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ25CO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO2lCQUNaO2FBQ0osQ0FBQyxDQUFDO1NBQ04sQ0FBQyxDQUFDO0tBQ047OztZQWhFSixVQUFVOzs7O1lBSEYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgVXBjcm9wRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi91cGNyb3AtZGlhbG9nL3VwY3JvcC1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFVwY3JvcFNlcnZpY2Uge1xuXG4gICAgcHVibGljIGRpYWxvZ0NvbmZpZzogYW55ID0ge1xuICAgICAgICB3aWR0aDogJzgwJSdcbiAgICB9O1xuICAgIHB1YmxpYyB1cGxvYWRDb25maWc6IGFueSA9IHtcbiAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICBhdXRoVG9rZW46IG51bGwsXG4gICAgICAgIGF1dG9VcGxvYWQ6IGZhbHNlLFxuICAgICAgICBhZGRpdGlvbmFsUGFyYW1ldGVyOiB7fSxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZVxuICAgIH07XG4gICAgcHVibGljIGNyb3BDb25maWc6IGFueSA9IHtcbiAgICAgICAgbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgc2NhbGFibGU6IHRydWUsXG4gICAgICAgIHpvb21hYmxlOiB0cnVlLFxuICAgICAgICB2aWV3TW9kZTogMSxcbiAgICAgICAgYXV0b0Nyb3A6IHRydWUsXG4gICAgICAgIGF1dG9Dcm9wQXJlYTogMVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nXG4gICAgKSB7IH1cblxuICAgIG9wZW4oXG4gICAgICAgIGRpYWxvZ0NvbmZpZzogYW55ID0gdGhpcy5kaWFsb2dDb25maWcsXG4gICAgICAgIHVwbG9hZENvbmZpZzogYW55ID0gdGhpcy51cGxvYWRDb25maWcsXG4gICAgICAgIGNyb3BDb25maWc6IGFueSA9IHRoaXMuY3JvcENvbmZpZ1xuICAgICkge1xuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIE1lcmdlIGNvbmZpZ1xuICAgICAgICB0aGlzLnVwbG9hZENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy51cGxvYWRDb25maWcsIHVwbG9hZENvbmZpZyk7XG4gICAgICAgIHRoaXMuY3JvcENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5jcm9wQ29uZmlnLCBjcm9wQ29uZmlnKTtcbiAgICAgICAgdGhpcy5kaWFsb2dDb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRpYWxvZ0NvbmZpZywgZGlhbG9nQ29uZmlnLCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdXBsb2FkQ29uZmlnOiB0aGlzLnVwbG9hZENvbmZpZyxcbiAgICAgICAgICAgICAgICBjcm9wQ29uZmlnOiB0aGlzLmNyb3BDb25maWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQ3JlYXRlIHByb21pc2UgdG8gcmV0dXJuIHRoZSBkaWFsb2cgcmVzdWx0XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBPcGVuIGNvbmZpcm1hdGlvbiBkaWFsb2dcbiAgICAgICAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVwY3JvcERpYWxvZ0NvbXBvbmVudCwgdGhpcy5kaWFsb2dDb25maWcpO1xuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG9uIGNsb3NlIGV2ZW50XG4gICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcblxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gVmFsaWRhdGUgcmVzdWx0XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==