@cause-911/material
Version:
Run `npm install @cause-911/material --save` to add this library to your project
182 lines • 12.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { MatDialog } from '@angular/material';
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { TranslateService } from '@cause-911/core';
import { SimpleDialogComponent } from '../simple-dialog/simple-dialog.component';
var InputFileComponent = /** @class */ (function () {
function InputFileComponent(translateService, dialog) {
this.translateService = translateService;
this.dialog = dialog;
this.readend = new EventEmitter();
this.accept = '';
this.multiple = false;
this.icon = '';
this.text = '';
this.labels = {};
}
/**
* @return {?}
*/
InputFileComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (!this.icon && !this.text) {
this.translateService.get(['material.select', 'material.dialogTitle', 'material.dialogMessage']).subscribe((/**
* @param {?} labels
* @return {?}
*/
function (labels) {
_this.labels = labels;
_this.text = labels['material.select'];
}));
}
};
/**
* @param {?} e
* @return {?}
*/
InputFileComponent.prototype.onSelectFile = /**
* @param {?} e
* @return {?}
*/
function (e) {
var _this = this;
var _loop_1 = function (i, j) {
/** @type {?} */
var file = e.target.files[i];
/** @type {?} */
var reader = new FileReader();
reader.onerror = ((/**
* @param {?} error
* @return {?}
*/
function (error) { return _this.onError(error); }));
reader.onload = ((/**
* @param {?} event
* @return {?}
*/
function (event) { return _this.onReadEnd(file, event); }));
reader.readAsDataURL(file);
};
for (var i = 0, j = e.target.files.length; i < j; i++) {
_loop_1(i, j);
}
if (e.target.files.length) {
this.dialog.open(SimpleDialogComponent, {
width: '250px',
disableClose: true,
data: {
title: this.labels['material.dialogTitle'],
message: this.labels['material.dialogMessage']
}
});
}
};
/**
* @param {?} event
* @return {?}
*/
InputFileComponent.prototype.openDialog = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.file) {
this.file.nativeElement.click();
}
event.stopPropagation();
};
/**
* @private
* @param {?} error
* @return {?}
*/
InputFileComponent.prototype.onError = /**
* @private
* @param {?} error
* @return {?}
*/
function (error) {
throw error;
};
/**
* @private
* @param {?} file
* @param {?} e
* @return {?}
*/
InputFileComponent.prototype.onReadEnd = /**
* @private
* @param {?} file
* @param {?} e
* @return {?}
*/
function (file, e) {
this.dialog.closeAll();
this.readend.emit({
name: file.name,
size: file.size,
type: file.type,
lastModifiedDate: file.lastModifiedDate,
content: e.target['result'],
file: file,
});
};
InputFileComponent.decorators = [
{ type: Component, args: [{
selector: 'cause-input-file',
template: "<button mat-raised-button (click)=\"openDialog($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n <span *ngIf=\"text\">{{text}}</span>\n</button>\n<ng-container *ngIf=\"multiple; else notMultipleInput\">\n <input #file type=\"file\" (change)=\"onSelectFile($event)\" [accept]=\"accept\" multiple=\"multiple\" />\n</ng-container>\n\n<ng-template #notMultipleInput>\n <input #file type=\"file\" (change)=\"onSelectFile($event)\" [accept]=\"accept\" />\n</ng-template>",
styles: [":host input{display:none}"]
}] }
];
/** @nocollapse */
InputFileComponent.ctorParameters = function () { return [
{ type: TranslateService },
{ type: MatDialog }
]; };
InputFileComponent.propDecorators = {
file: [{ type: ViewChild, args: ['file', { static: false },] }],
readend: [{ type: Output }],
accept: [{ type: Input }],
multiple: [{ type: Input }],
icon: [{ type: Input }],
text: [{ type: Input }]
};
return InputFileComponent;
}());
export { InputFileComponent };
if (false) {
/** @type {?} */
InputFileComponent.prototype.file;
/** @type {?} */
InputFileComponent.prototype.readend;
/** @type {?} */
InputFileComponent.prototype.accept;
/** @type {?} */
InputFileComponent.prototype.multiple;
/** @type {?} */
InputFileComponent.prototype.icon;
/** @type {?} */
InputFileComponent.prototype.text;
/**
* @type {?}
* @private
*/
InputFileComponent.prototype.labels;
/**
* @type {?}
* @private
*/
InputFileComponent.prototype.translateService;
/**
* @type {?}
* @private
*/
InputFileComponent.prototype.dialog;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2F1c2UtOTExL21hdGVyaWFsLyIsInNvdXJjZXMiOlsibGliL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFakY7SUFlSSw0QkFDWSxnQkFBa0MsRUFDbEMsTUFBaUI7UUFEakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBVm5CLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUFRLEVBQUUsQ0FBQztJQU16QixDQUFDOzs7O0lBRUQscUNBQVE7OztJQUFSO1FBQUEsaUJBU0M7UUFSRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FDckIsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUN4RSxDQUFDLFNBQVM7Ozs7WUFBQyxVQUFBLE1BQU07Z0JBQ2QsS0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7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Qjs7SUFDckIsc0NBQTBCOztJQUMxQixrQ0FBbUI7O0lBQ25CLGtDQUFtQjs7Ozs7SUFFbkIsb0NBQXlCOzs7OztJQUdyQiw4Q0FBMEM7Ozs7O0lBQzFDLG9DQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGNhdXNlLTkxMS9jb3JlJztcbmltcG9ydCB7IFNpbXBsZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3NpbXBsZS1kaWFsb2cvc2ltcGxlLWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhdXNlLWlucHV0LWZpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1maWxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdmaWxlJywge3N0YXRpYzogZmFsc2V9KSBmaWxlOiBFbGVtZW50UmVmO1xuICAgIEBPdXRwdXQoKSByZWFkZW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBJbnB1dCgpIGFjY2VwdCA9ICcnO1xuICAgIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgaWNvbiA9ICcnO1xuICAgIEBJbnB1dCgpIHRleHQgPSAnJztcblxuICAgIHByaXZhdGUgbGFiZWxzOiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5pY29uICYmICF0aGlzLnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoXG4gICAgICAgICAgICAgICAgWydtYXRlcmlhbC5zZWxlY3QnLCAnbWF0ZXJpYWwuZGlhbG9nVGl0bGUnLCAnbWF0ZXJpYWwuZGlhbG9nTWVzc2FnZSddXG4gICAgICAgICAgICApLnN1YnNjcmliZShsYWJlbHMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzID0gbGFiZWxzO1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGxhYmVsc1snbWF0ZXJpYWwuc2VsZWN0J107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0RmlsZShlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBqID0gZS50YXJnZXQuZmlsZXMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gZS50YXJnZXQuZmlsZXNbaV07XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IgPT4gdGhpcy5vbkVycm9yKGVycm9yKSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGV2ZW50ID0+IHRoaXMub25SZWFkRW5kKGZpbGUsIGV2ZW50KSk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlLnRhcmdldC5maWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oU2ltcGxlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcyNTBweCcsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMubGFiZWxzWydtYXRlcmlhbC5kaWFsb2dUaXRsZSddLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLmxhYmVsc1snbWF0ZXJpYWwuZGlhbG9nTWVzc2FnZSddXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuRGlhbG9nKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVycm9yKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25SZWFkRW5kKGZpbGUsIGUpIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgICAgICAgdGhpcy5yZWFkZW5kLmVtaXQoe1xuICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgbGFzdE1vZGlmaWVkRGF0ZTogZmlsZS5sYXN0TW9kaWZpZWREYXRlLFxuICAgICAgICAgICAgY29udGVudDogZS50YXJnZXRbJ3Jlc3VsdCddLFxuICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19