angular-upcrop
Version:
Library with upload and crop feature for Angular 6+
69 lines (68 loc) • 4.19 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, Input, ElementRef, Renderer2 } from '@angular/core';
var UpcropImagePreviewDirective = /** @class */ (function () {
function UpcropImagePreviewDirective(el, renderer) {
this.el = el;
this.renderer = renderer;
}
/**
* Ng on changes
* Read file when image changes
* @param changes
*/
/**
* Ng on changes
* Read file when image changes
* @param {?} changes
* @return {?}
*/
UpcropImagePreviewDirective.prototype.ngOnChanges = /**
* Ng on changes
* Read file when image changes
* @param {?} changes
* @return {?}
*/
function (changes) {
/** @type {?} */
var reader = new FileReader();
/** @type {?} */
var el = this.el;
//
// On load
reader.onloadend = function (e) {
el.nativeElement.src = reader.result;
};
//
// Validate
if (this.image) {
return reader.readAsDataURL(this.image);
}
};
UpcropImagePreviewDirective.decorators = [
{ type: Directive, args: [{
selector: 'img[upcropImagePreview]'
},] },
];
/** @nocollapse */
UpcropImagePreviewDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
UpcropImagePreviewDirective.propDecorators = {
image: [{ type: Input }]
};
return UpcropImagePreviewDirective;
}());
export { UpcropImagePreviewDirective };
if (false) {
/** @type {?} */
UpcropImagePreviewDirective.prototype.image;
/** @type {?} */
UpcropImagePreviewDirective.prototype.el;
/** @type {?} */
UpcropImagePreviewDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjcm9wLWltYWdlLXByZXZpZXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11cGNyb3AvIiwic291cmNlcyI6WyJsaWIvdXBjcm9wLWltYWdlLXByZXZpZXcvdXBjcm9wLWltYWdlLXByZXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7SUFTbkYscUNBQ1ksSUFDQTtRQURBLE9BQUUsR0FBRixFQUFFO1FBQ0YsYUFBUSxHQUFSLFFBQVE7S0FDZjtJQUVMOzs7O09BSUc7Ozs7Ozs7SUFDSCxpREFBVzs7Ozs7O0lBQVgsVUFBWSxPQUFzQjs7UUFJOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQzs7UUFDOUIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQzs7O1FBSWpCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1lBQzFCLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDeEMsQ0FBQzs7O1FBSUYsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDYixNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7S0FFSjs7Z0JBcENKLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO2lCQUN0Qzs7OztnQkFKMEIsVUFBVTtnQkFBRSxTQUFTOzs7d0JBTzNDLEtBQUs7O3NDQVBWOztTQUthLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ltZ1t1cGNyb3BJbWFnZVByZXZpZXddJ1xufSlcbmV4cG9ydCBjbGFzcyBVcGNyb3BJbWFnZVByZXZpZXdEaXJlY3RpdmUge1xuXG4gICAgQElucHV0KCkgcHVibGljIGltYWdlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7IH1cblxuICAgIC8qKlxuICAgICAqIE5nIG9uIGNoYW5nZXNcbiAgICAgKiBSZWFkIGZpbGUgd2hlbiBpbWFnZSBjaGFuZ2VzXG4gICAgICogQHBhcmFtIGNoYW5nZXNcbiAgICAgKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gU2V0IGVsZW1lbnQgYW5kIGZpbGUgcmVhZGVyXG4gICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICBsZXQgZWwgPSB0aGlzLmVsO1xuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIE9uIGxvYWRcbiAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBlbC5uYXRpdmVFbGVtZW50LnNyYyA9IHJlYWRlci5yZXN1bHQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVmFsaWRhdGVcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZEFzRGF0YVVSTCh0aGlzLmltYWdlKTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuIl19