moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
91 lines • 8.37 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild, Input, Output, EventEmitter, ViewContainerRef, ViewEncapsulation } from '@angular/core';
import { ModalDirective } from 'ngx-bootstrap/modal';
import { CommonImage } from '../../models/images.model';
export class ThumbnailComponent {
/**
* @param {?} viewContainerRef
*/
constructor(viewContainerRef) {
this.reviewMode = false;
this.deleteImage = new EventEmitter();
this.scaledWidth = 300;
this.viewContainerRef = viewContainerRef;
}
/**
* @return {?}
*/
ngOnInit() {
/** @type {?} */
const scaledWidthString = (180 * this.imageObject.naturalWidth / this.imageObject.naturalHeight).toFixed(0);
this.scaledWidth = parseInt(scaledWidthString, 10);
if (this.scaledWidth > 250) {
this.scaledWidth = 250;
}
else if (this.scaledWidth < 30) {
this.scaledWidth = 100;
}
if (isNaN(this.scaledWidth)) {
this.scaledWidth = 300;
}
}
/**
* @param {?} evt
* @return {?}
*/
delete(evt) {
this.deleteImage.emit(this.imageObject);
}
/**
* @return {?}
*/
showFullSizeView() {
this.fullSizeViewModal.config.backdrop = false;
this.fullSizeViewModal.show();
}
/**
* @return {?}
*/
hideFullSizeView() {
this.fullSizeViewModal.hide();
}
}
ThumbnailComponent.decorators = [
{ type: Component, args: [{
selector: 'common-thumbnail',
template: "<div class=\"thumbnail-container\">\r\n <img [src]=\"imageObject.fileContent\" alt=\"\" tabindex=\"0\"\r\n [ngClass]=\"{'image-thumbnail': scaledWidth <= 300, 'image-thumbnail-width-priority': scaledWidth > 300}\"\r\n (click)=\"showFullSizeView()\">\r\n <div class=\"action-strip\" *ngIf=\"!reviewMode\">\r\n <a href=\"javascript:void(0)\" (click)=\"delete($event)\" class='text-danger' tabindex=\"0\">Remove</a>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #fullSizeViewModal=\"bs-modal\" class=\"modal fade\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">{{imageObject.name}}</h4>\r\n <button type=\"button\" class=\"close\" (click)=\"hideFullSizeView()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" >\r\n <img [src]=\"imageObject.fileContent\" alt=\"{{imageObject.name}}\" class=\"center-block img-fluid\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>",
encapsulation: ViewEncapsulation.None,
styles: [""]
}] }
];
/** @nocollapse */
ThumbnailComponent.ctorParameters = () => [
{ type: ViewContainerRef }
];
ThumbnailComponent.propDecorators = {
imageObject: [{ type: Input }],
reviewMode: [{ type: Input }],
deleteImage: [{ type: Output }],
fullSizeViewModal: [{ type: ViewChild, args: ['fullSizeViewModal',] }]
};
if (false) {
/** @type {?} */
ThumbnailComponent.prototype.imageObject;
/** @type {?} */
ThumbnailComponent.prototype.reviewMode;
/** @type {?} */
ThumbnailComponent.prototype.deleteImage;
/** @type {?} */
ThumbnailComponent.prototype.fullSizeViewModal;
/**
* @type {?}
* @private
*/
ThumbnailComponent.prototype.viewContainerRef;
/** @type {?} */
ThumbnailComponent.prototype.scaledWidth;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFReEQsTUFBTSxPQUFPLGtCQUFrQjs7OztJQU83QixZQUFZLGdCQUFrQztRQUxyQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7UUFRbkYsZ0JBQVcsR0FBVyxHQUFHLENBQUM7UUFIeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7Ozs7SUFHRCxRQUFROztjQUVBLGlCQUFpQixHQUFXLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVuRCxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztTQUN4QjtRQUVELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztTQUN4QjtJQUNILENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7OztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7WUE3Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDJ2Q0FBK0I7Z0JBRS9CLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7OztZQVRtRSxnQkFBZ0I7OzswQkFXakYsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLE1BQU07Z0NBQ04sU0FBUyxTQUFDLG1CQUFtQjs7OztJQUg5Qix5Q0FBa0M7O0lBQ2xDLHdDQUFxQzs7SUFDckMseUNBQW1GOztJQUNuRiwrQ0FBeUU7Ozs7O0lBRXpFLDhDQUEyQzs7SUFLM0MseUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbERpcmVjdGl2ZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xyXG5pbXBvcnQgeyBDb21tb25JbWFnZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbWFnZXMubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb21tb24tdGh1bWJuYWlsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RodW1ibmFpbC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGh1bWJuYWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpbWFnZU9iamVjdDogQ29tbW9uSW1hZ2U7XHJcbiAgQElucHV0KCkgcmV2aWV3TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVJbWFnZTogRXZlbnRFbWl0dGVyPENvbW1vbkltYWdlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbW9uSW1hZ2U+KCk7XHJcbiAgQFZpZXdDaGlsZCgnZnVsbFNpemVWaWV3TW9kYWwnKSBwdWJsaWMgZnVsbFNpemVWaWV3TW9kYWw6IE1vZGFsRGlyZWN0aXZlO1xyXG5cclxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgY29uc3RydWN0b3Iodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmID0gdmlld0NvbnRhaW5lclJlZjtcclxuICB9XHJcblxyXG4gIHNjYWxlZFdpZHRoOiBudW1iZXIgPSAzMDA7XHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgY29uc3Qgc2NhbGVkV2lkdGhTdHJpbmc6IHN0cmluZyA9ICgxODAgKiB0aGlzLmltYWdlT2JqZWN0Lm5hdHVyYWxXaWR0aCAvIHRoaXMuaW1hZ2VPYmplY3QubmF0dXJhbEhlaWdodCkudG9GaXhlZCgwKTtcclxuICAgIHRoaXMuc2NhbGVkV2lkdGggPSBwYXJzZUludChzY2FsZWRXaWR0aFN0cmluZywgMTApO1xyXG5cclxuICAgIGlmICh0aGlzLnNjYWxlZFdpZHRoID4gMjUwKSB7XHJcbiAgICAgIHRoaXMuc2NhbGVkV2lkdGggPSAyNTA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2NhbGVkV2lkdGggPCAzMCkge1xyXG4gICAgICB0aGlzLnNjYWxlZFdpZHRoID0gMTAwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc05hTih0aGlzLnNjYWxlZFdpZHRoKSkge1xyXG4gICAgICB0aGlzLnNjYWxlZFdpZHRoID0gMzAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGV2dDogYW55KSB7XHJcbiAgICB0aGlzLmRlbGV0ZUltYWdlLmVtaXQodGhpcy5pbWFnZU9iamVjdCk7XHJcbiAgfVxyXG5cclxuICBzaG93RnVsbFNpemVWaWV3KCkge1xyXG4gICAgdGhpcy5mdWxsU2l6ZVZpZXdNb2RhbC5jb25maWcuYmFja2Ryb3AgPSBmYWxzZTtcclxuICAgIHRoaXMuZnVsbFNpemVWaWV3TW9kYWwuc2hvdygpO1xyXG4gIH1cclxuXHJcbiAgaGlkZUZ1bGxTaXplVmlldygpIHtcclxuICAgIHRoaXMuZnVsbFNpemVWaWV3TW9kYWwuaGlkZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19