stimulsoft-viewer-angular
Version:
Stimulsoft Viewer Angular
54 lines • 6.81 kB
JavaScript
import { Component, Input, ViewChild } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../services/model.service";
import * as i2 from "../services/controller.service";
import * as i3 from "@angular/common";
export class OpenDialogComponent {
constructor(model, controller) {
this.model = model;
this.controller = controller;
}
ngOnChanges(changes) {
if (this.fileMask != null && this.model.openDialogFileMask != null) {
setTimeout(() => {
this.element.nativeElement.focus();
this.element.nativeElement.click();
});
}
}
ngOnInit() { }
onchange(event) {
const files = event.target.files;
const fileName = files[0] ? files[0].name : 'Report';
const filePath = event.target.value;
const reader = new FileReader();
reader.onload = (e) => {
this.controller.loadFile(fileName, e.target.result);
};
this.model.openDialogFileMask = null;
reader.readAsDataURL(files[0]);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OpenDialogComponent, deps: [{ token: i1.ModelService }, { token: i2.ControllerService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OpenDialogComponent, selector: "sti-open-dialog", inputs: { fileMask: "fileMask" }, viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
<input #element *ngIf="model.openDialogFileMask != null" type="file" name="files[]" multiple="" [style.display]="'none'"
[attr.accept]="model.openDialogFileMask"
(change)="onchange($event)">
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OpenDialogComponent, decorators: [{
type: Component,
args: [{
selector: 'sti-open-dialog',
template: `
<input #element *ngIf="model.openDialogFileMask != null" type="file" name="files[]" multiple="" [style.display]="'none'"
[attr.accept]="model.openDialogFileMask"
(change)="onchange($event)">
`
}]
}], ctorParameters: () => [{ type: i1.ModelService }, { type: i2.ControllerService }], propDecorators: { element: [{
type: ViewChild,
args: ['element']
}], fileMask: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RpbXVsc29mdC12aWV3ZXItYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFhM0YsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFtQixLQUFtQixFQUFTLFVBQTZCO1FBQXpELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUFJLENBQUM7SUFFakYsV0FBVyxDQUFDLE9BQThDO1FBQ3hELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuRSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxLQUFLLENBQUM7SUFFZCxRQUFRLENBQUMsS0FBVTtRQUNqQixNQUFNLEtBQUssR0FBVSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBL0JVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtOQVBwQjs7OztHQUlUOzs0RkFHVSxtQkFBbUI7a0JBVC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0Y7aUhBSXVCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFFWCxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2RlbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb250cm9sbGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdGktb3Blbi1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8aW5wdXQgI2VsZW1lbnQgKm5nSWY9XCJtb2RlbC5vcGVuRGlhbG9nRmlsZU1hc2sgIT0gbnVsbFwiICB0eXBlPVwiZmlsZVwiIG5hbWU9XCJmaWxlc1tdXCIgbXVsdGlwbGU9XCJcIiBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxyXG4gICAgICBbYXR0ci5hY2NlcHRdPVwibW9kZWwub3BlbkRpYWxvZ0ZpbGVNYXNrXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbmNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgYFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE9wZW5EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VsZW1lbnQnKSBlbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSBmaWxlTWFzazogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kZWw6IE1vZGVsU2VydmljZSwgcHVibGljIGNvbnRyb2xsZXI6IENvbnRyb2xsZXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogaW1wb3J0KCdAYW5ndWxhci9jb3JlJykuU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZU1hc2sgIT0gbnVsbCAmJiB0aGlzLm1vZGVsLm9wZW5EaWFsb2dGaWxlTWFzayAhPSBudWxsKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICBvbmNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaWxlczogYW55W10gPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGVzWzBdID8gZmlsZXNbMF0ubmFtZSA6ICdSZXBvcnQnO1xyXG4gICAgY29uc3QgZmlsZVBhdGggPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5sb2FkRmlsZShmaWxlTmFtZSwgZS50YXJnZXQucmVzdWx0KTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5tb2RlbC5vcGVuRGlhbG9nRmlsZU1hc2sgPSBudWxsO1xyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZXNbMF0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19