angular-upcrop
Version:
Library with upload and crop feature for Angular 6+
60 lines (59 loc) • 3.75 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, Input, ElementRef, Renderer2 } from '@angular/core';
export class UpcropImagePreviewDirective {
/**
* @param {?} el
* @param {?} renderer
*/
constructor(el, renderer) {
this.el = el;
this.renderer = renderer;
}
/**
* Ng on changes
* Read file when image changes
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
/** @type {?} */
let reader = new FileReader();
/** @type {?} */
let 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 = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
UpcropImagePreviewDirective.propDecorators = {
image: [{ type: Input }]
};
if (false) {
/** @type {?} */
UpcropImagePreviewDirective.prototype.image;
/** @type {?} */
UpcropImagePreviewDirective.prototype.el;
/** @type {?} */
UpcropImagePreviewDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjcm9wLWltYWdlLXByZXZpZXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11cGNyb3AvIiwic291cmNlcyI6WyJsaWIvdXBjcm9wLWltYWdlLXByZXZpZXcvdXBjcm9wLWltYWdlLXByZXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUt2RixNQUFNOzs7OztJQUlGLFlBQ1ksSUFDQTtRQURBLE9BQUUsR0FBRixFQUFFO1FBQ0YsYUFBUSxHQUFSLFFBQVE7S0FDZjs7Ozs7OztJQU9MLFdBQVcsQ0FBQyxPQUFzQjs7UUFJOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQzs7UUFDOUIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQzs7O1FBSWpCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1lBQzFCLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDeEMsQ0FBQzs7O1FBSUYsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDYixNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7S0FFSjs7O1lBcENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUseUJBQXlCO2FBQ3RDOzs7O1lBSjBCLFVBQVU7WUFBRSxTQUFTOzs7b0JBTzNDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbdXBjcm9wSW1hZ2VQcmV2aWV3XSdcbn0pXG5leHBvcnQgY2xhc3MgVXBjcm9wSW1hZ2VQcmV2aWV3RGlyZWN0aXZlIHtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBpbWFnZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBOZyBvbiBjaGFuZ2VzXG4gICAgICogUmVhZCBmaWxlIHdoZW4gaW1hZ2UgY2hhbmdlc1xuICAgICAqIEBwYXJhbSBjaGFuZ2VzXG4gICAgICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFNldCBlbGVtZW50IGFuZCBmaWxlIHJlYWRlclxuICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgbGV0IGVsID0gdGhpcy5lbDtcblxuICAgICAgICAvL1xuICAgICAgICAvLyBPbiBsb2FkXG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgZWwubmF0aXZlRWxlbWVudC5zcmMgPSByZWFkZXIucmVzdWx0O1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFZhbGlkYXRlXG4gICAgICAgIGlmICh0aGlzLmltYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWRBc0RhdGFVUkwodGhpcy5pbWFnZSk7XG4gICAgICAgIH1cblxuICAgIH1cbn1cbiJdfQ==