ng-cw-v12
Version:
Angular UI component library
41 lines • 4.8 kB
JavaScript
import { __awaiter } from "tslib";
import { Component, Input } from '@angular/core';
import { renderAsync } from 'docx-preview';
import * as i0 from "@angular/core";
export class WordViewerComponent {
constructor(eleRef) {
this.eleRef = eleRef;
this.ncUrl = '';
}
ngOnChanges(changes) {
if (changes['ncUrl']) {
this.renderWordDocument();
}
}
renderWordDocument() {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield fetch(this.ncUrl);
const blob = yield response.blob();
const container = this.eleRef.nativeElement.querySelector('#word-container');
yield renderAsync(blob, container);
}
catch (error) {
console.error('渲染Word文档时出错:', error);
}
});
}
}
WordViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: WordViewerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
WordViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: WordViewerComponent, selector: "nc-word-viewer", inputs: { ncUrl: "ncUrl" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"word-container\"></div>\n", styles: ["#word-container{width:100%;height:100%}\n"] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: WordViewerComponent, decorators: [{
type: Component,
args: [{
selector: 'nc-word-viewer',
templateUrl: './word-viewer.component.html',
styleUrls: ['./word-viewer.component.less']
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { ncUrl: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93b3JkLXZpZXdlci93b3JkLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dvcmQtdmlld2VyL3dvcmQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUFvQixNQUFrQjtRQUFsQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBRjdCLFVBQUssR0FBVyxFQUFFLENBQUM7SUFFYyxDQUFDO0lBRTNDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFSyxrQkFBa0I7O1lBQ3RCLElBQUk7Z0JBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzdFLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNwQztZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3RDO1FBQ0gsQ0FBQztLQUFBOztnSEFwQlUsbUJBQW1CO29HQUFuQixtQkFBbUIsdUdDUmhDLHFDQUNBOzJGRE9hLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDNUM7aUdBRVUsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZW5kZXJBc3luYyB9IGZyb20gJ2RvY3gtcHJldmlldyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25jLXdvcmQtdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29yZC12aWV3ZXIuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXb3JkVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbmNVcmw6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlUmVmOiBFbGVtZW50UmVmKSB7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ25jVXJsJ10pIHtcbiAgICAgIHRoaXMucmVuZGVyV29yZERvY3VtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVuZGVyV29yZERvY3VtZW50KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMubmNVcmwpO1xuICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHJlc3BvbnNlLmJsb2IoKTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZWxlUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI3dvcmQtY29udGFpbmVyJyk7XG4gICAgICBhd2FpdCByZW5kZXJBc3luYyhibG9iLCBjb250YWluZXIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfmuLLmn5NXb3Jk5paH5qGj5pe25Ye66ZSZOicsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJ3b3JkLWNvbnRhaW5lclwiPjwvZGl2PlxuIl19