@yelon/abc
Version:
Common business components of ng-yunzai.
1 lines • 32.8 kB
Source Map (JSON)
{"version":3,"file":"pdf.mjs","sources":["../../../../packages/abc/pdf/pdf.config.ts","../../../../packages/abc/pdf/pdf.types.ts","../../../../packages/abc/pdf/pdf.component.ts","../../../../packages/abc/pdf/pdf.module.ts","../../../../packages/abc/pdf/pdf.ts"],"sourcesContent":["import { YunzaiPdfConfig } from '@yelon/util/config';\n\nexport const PDF_DEFULAT_CONFIG: YunzaiPdfConfig = {\n lib: `https://cdn.jsdelivr.net/npm/pdfjs-dist@3.6.x/`,\n showAll: true,\n renderText: true,\n showBorders: false,\n originalSize: true,\n fitToPage: false,\n autoReSize: true\n};\n","// import type { PDFDocumentProxy } from 'pdfjs-dist';\n\ntype PDFDocumentProxy = any;\n\nexport type PdfChangeEventType =\n | 'loaded'\n | 'load-progress'\n | 'pages-init'\n | 'page-rendered'\n | 'text-layer-rendered'\n | 'pi'\n | 'error';\nexport type PdfZoomScale = 'page-height' | 'page-fit' | 'page-width';\n\nexport interface PdfChangeEvent {\n type?: PdfChangeEventType;\n pi?: number;\n total?: number;\n pdf?: PDFDocumentProxy | null;\n ev?: any;\n progress?: { loaded: number; total: number };\n error?: any;\n}\n\nexport enum PdfTextLayerMode {\n DISABLE = 0,\n ENABLE = 1,\n ENABLE_ENHANCE = 2\n}\n\nexport enum PdfExternalLinkTarget {\n NONE = 0, // Default value.\n SELF = 1,\n BLANK = 2,\n PARENT = 3,\n TOP = 4\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, timer, debounceTime, filter } from 'rxjs';\n\n// import type { PDFDocumentLoadingTask, PDFDocumentProxy } from 'pdfjs-dist';\n// import type { EventBus } from 'pdfjs-dist/types/web/event_utils';\n// import type { PDFFindController } from 'pdfjs-dist/types/web/pdf_find_controller';\n// import type { PDFLinkService } from 'pdfjs-dist/types/web/pdf_link_service';\n// import type { PDFViewer } from 'pdfjs-dist/types/web/pdf_viewer';\n\nimport { YunzaiConfigService } from '@yelon/util/config';\nimport { ZoneOutside } from '@yelon/util/decorator';\nimport { LazyService } from '@yelon/util/other';\nimport { NzSkeletonComponent } from 'ng-zorro-antd/skeleton';\n\nimport { PDF_DEFULAT_CONFIG } from './pdf.config';\nimport { PdfChangeEvent, PdfChangeEventType, PdfExternalLinkTarget, PdfTextLayerMode, PdfZoomScale } from './pdf.types';\n\n// TODO: Although pdfjs-dist is an optional dependency on canvas\n// will be installed automatically when the dependency is installed by default;\n// This requires a higher environment and often fails to install\ntype PDFDocumentLoadingTask = any;\ntype PDFDocumentProxy = any;\ntype EventBus = any;\ntype PDFFindController = any;\ntype PDFLinkService = any;\ntype PDFViewer = any;\n\nconst CSS_UNITS: number = 96.0 / 72.0;\nconst BORDER_WIDTH = 9;\n\n@Component({\n selector: 'pdf',\n exportAs: 'pdf',\n template: `\n @if (!inited || loading) {\n <nz-skeleton />\n }\n <div class=\"pdf-container\">\n <div class=\"pdfViewer\"></div>\n </div>\n `,\n host: {\n '[class.d-block]': `true`\n },\n\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzSkeletonComponent]\n})\nexport class PdfComponent implements OnChanges, AfterViewInit, OnDestroy {\n private readonly lazySrv = inject(LazyService);\n private readonly platform = inject(Platform);\n private readonly _el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly doc = inject(DOCUMENT);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly ngZone = inject(NgZone);\n private readonly destroy$ = inject(DestroyRef);\n private readonly cogSrv = inject(YunzaiConfigService);\n\n inited = false;\n private lib: string = '';\n private _pdf?: PDFDocumentProxy | null;\n private loadingTask?: PDFDocumentLoadingTask;\n private _src: any;\n private lastSrc?: any;\n private _pi = 1;\n private _total = 0;\n private _showAll = true;\n private _rotation = 0;\n private _zoom = 1;\n private _renderText = true;\n private _loading = false;\n\n private multiPageViewer?: PDFViewer;\n private multiPageLinkService?: PDFLinkService;\n private multiPageFindController?: PDFFindController;\n private singlePageViewer?: PDFViewer;\n private singlePageLinkService?: PDFLinkService;\n private singlePageFindController?: PDFFindController;\n private _eventBus?: EventBus;\n\n @Input() set src(dataOrBuffer: any) {\n this._src = dataOrBuffer;\n this.load();\n }\n @Input({ transform: numberAttribute })\n set pi(val: number) {\n this._pi = this.getValidPi(val);\n if (this.pageViewer) {\n this.pageViewer.scrollPageIntoView({ pageNumber: this._pi });\n }\n }\n @Input({ transform: booleanAttribute }) set showAll(val: boolean) {\n this._showAll = val;\n this.resetDoc();\n }\n @Input({ transform: booleanAttribute }) set renderText(val: boolean) {\n this._renderText = val;\n if (this.pageViewer) {\n this.resetDoc();\n }\n }\n @Input() textLayerMode = PdfTextLayerMode.ENABLE;\n @Input({ transform: booleanAttribute }) showBorders = false;\n @Input({ transform: booleanAttribute }) stickToPage = false;\n @Input({ transform: booleanAttribute }) originalSize = true;\n @Input({ transform: booleanAttribute }) fitToPage = false;\n @Input({ transform: numberAttribute }) set zoom(val: number) {\n if (val <= 0) return;\n this._zoom = val;\n }\n @Input() zoomScale: PdfZoomScale = 'page-width';\n @Input({ transform: numberAttribute }) set rotation(val: number) {\n if (val % 90 !== 0) {\n console.warn(`Invalid rotation angle, shoule be divisible by 90.`);\n return;\n }\n this._rotation = val;\n }\n @Input({ transform: booleanAttribute }) autoReSize = true;\n @Input() externalLinkTarget = PdfExternalLinkTarget.BLANK;\n @Input({ transform: numberAttribute }) delay?: number;\n @Output() readonly change = new EventEmitter<PdfChangeEvent>();\n\n get loading(): boolean {\n return this._loading;\n }\n\n get pdf(): PDFDocumentProxy | undefined | null {\n return this._pdf;\n }\n\n get findController(): PDFFindController | undefined {\n return this._showAll ? this.multiPageFindController : this.singlePageFindController;\n }\n\n get pageViewer(): PDFViewer | undefined {\n return this._showAll ? this.multiPageViewer : this.singlePageViewer;\n }\n\n get linkService(): PDFLinkService | undefined {\n return this._showAll ? this.multiPageLinkService : this.singlePageLinkService;\n }\n\n get eventBus(): EventBus | undefined {\n return this._eventBus;\n }\n\n private get _textLayerMode(): PdfTextLayerMode {\n return this._renderText ? this.textLayerMode : PdfTextLayerMode.DISABLE;\n }\n\n private get win(): any {\n return this.doc.defaultView || window;\n }\n\n private get el(): HTMLElement {\n return this._el.querySelector('.pdf-container') as HTMLElement;\n }\n\n constructor() {\n const cog = this.cogSrv.merge('pdf', PDF_DEFULAT_CONFIG)!;\n Object.assign(this, cog);\n\n const lib = cog.lib!;\n this.lib = lib.endsWith('/') ? lib : `${lib}/`;\n }\n\n private getValidPi(pi: number): number {\n if (pi < 1) return 1;\n const pdf = this._pdf;\n return pdf && pi > pdf.numPages ? pdf.numPages : pi;\n }\n\n private emit(type: PdfChangeEventType, opt?: PdfChangeEvent): void {\n this.ngZone.run(() =>\n this.change.emit({\n type,\n pdf: this._pdf,\n pi: this._pi,\n total: this._total,\n ...opt\n })\n );\n }\n\n private initDelay(): void {\n if (!this.win.pdfjsLib) {\n throw new Error(\n `No window.pdfjsLib found, please make sure that cdn or local path exists, the current referenced path is: ${JSON.stringify(\n this.lib\n )}`\n );\n }\n this.inited = true;\n this.cdr.detectChanges();\n this.win.pdfjsLib.GlobalWorkerOptions.workerSrc = `${this.lib}build/pdf.worker.min.js`;\n\n timer(this.delay ?? 0)\n .pipe(takeUntilDestroyed(this.destroy$))\n .subscribe(() => this.load());\n }\n\n setLoading(status: boolean): void {\n this.ngZone.run(() => {\n this._loading = status;\n this.cdr.detectChanges();\n });\n }\n\n @ZoneOutside()\n private load(): void {\n const { _src } = this;\n if (!this.inited || !_src) {\n return;\n }\n\n if (this.lastSrc === _src) {\n this.render();\n return;\n }\n\n this.destroy();\n this.ngZone.run(() => {\n this._loading = true;\n this.cdr.detectChanges();\n });\n this.setLoading(true);\n const loadingTask: PDFDocumentLoadingTask = (this.loadingTask = this.win.pdfjsLib.getDocument(_src));\n loadingTask.onProgress = (progress: { loaded: number; total: number }) => this.emit('load-progress', { progress });\n (loadingTask.promise as PromiseLike<PDFDocumentProxy>)\n .then(\n pdf => {\n this._pdf = pdf;\n this.lastSrc = _src;\n this._total = pdf.numPages;\n\n this.emit('loaded');\n\n if (!this.pageViewer) {\n this.setupPageViewer();\n }\n\n this.resetDoc();\n this.render();\n },\n error => this.emit('error', { error })\n )\n .then(() => this.setLoading(false));\n }\n\n @ZoneOutside()\n private resetDoc(): void {\n const pdf = this._pdf;\n if (!pdf) {\n return;\n }\n this.cleanDoc();\n\n this.findController!.setDocument(pdf);\n this.pageViewer!.setDocument(pdf);\n this.linkService!.setDocument(pdf, null);\n }\n\n private cleanDoc(): void {\n this.multiPageViewer!.setDocument(null as any);\n this.singlePageViewer!.setDocument(null as any);\n\n this.multiPageLinkService!.setDocument(null, null);\n this.singlePageLinkService!.setDocument(null, null);\n\n this.multiPageFindController!.setDocument(null as any);\n this.singlePageFindController!.setDocument(null as any);\n }\n\n private render(): void {\n const currentViewer = this.pageViewer;\n if (!currentViewer) {\n return;\n }\n\n if (this._rotation !== 0 || currentViewer.pagesRotation !== this._rotation) {\n this.timeExec(() => {\n currentViewer.pagesRotation = this._rotation;\n });\n }\n\n if (this.stickToPage) {\n this.timeExec(() => {\n currentViewer.currentPageNumber = this._pi;\n });\n }\n\n this.updateSize();\n }\n\n private timeExec(fn: () => void): void {\n this.ngZone.runOutsideAngular(() => {\n timer(0)\n .pipe(takeUntilDestroyed(this.destroy$))\n .subscribe(() => this.ngZone.runOutsideAngular(() => fn()));\n });\n }\n\n @ZoneOutside()\n private updateSize(): void {\n const currentViewer = this.pageViewer;\n if (!currentViewer) return;\n\n this._pdf!.getPage(currentViewer.currentPageNumber).then((page: any) => {\n const { _rotation, _zoom } = this;\n const rotation = _rotation || page.rotate;\n const viewportWidth =\n page.getViewport({\n scale: _zoom,\n rotation\n }).width * CSS_UNITS;\n let scale = _zoom;\n\n // Scale the document when it shouldn't be in original size or doesn't fit into the viewport\n if (!this.originalSize || (this.fitToPage && viewportWidth > this.el.clientWidth)) {\n const viewPort = page.getViewport({ scale: 1, rotation });\n scale = this.getScale(viewPort.width, viewPort.height);\n }\n\n currentViewer.currentScale = scale;\n });\n }\n\n private getScale(viewportWidth: number, viewportHeight: number): number {\n const borderSize = this.showBorders ? 2 * BORDER_WIDTH : 0;\n const el = this.el;\n const containerWidth = el.clientWidth - borderSize;\n const containerHeight = el.clientHeight - borderSize;\n\n if (containerHeight === 0 || viewportHeight === 0 || containerWidth === 0 || viewportWidth === 0) {\n return 1;\n }\n\n let ratio = 1;\n switch (this.zoomScale) {\n case 'page-fit':\n ratio = Math.min(containerHeight / viewportHeight, containerWidth / viewportWidth);\n break;\n case 'page-height':\n ratio = containerHeight / viewportHeight;\n break;\n case 'page-width':\n default:\n ratio = containerWidth / viewportWidth;\n break;\n }\n\n return (this._zoom * ratio) / CSS_UNITS;\n }\n\n @ZoneOutside()\n private destroy(): void {\n const { loadingTask } = this;\n if (loadingTask && !loadingTask.destroyed) {\n loadingTask.destroy();\n }\n if (this._pdf) {\n this._pdf.destroy();\n this._pdf = null;\n this.cleanDoc();\n }\n }\n\n private setupPageViewer(): void {\n this.win.pdfjsLib.disableTextLayer = !this._renderText;\n this.win.pdfjsLib.externalLinkTarget = this.externalLinkTarget;\n\n this.setupMultiPageViewer();\n this.setupSinglePageViewer();\n }\n\n private createEventBus(): EventBus {\n const eventBus: EventBus = new this.win.pdfjsViewer.EventBus();\n eventBus.on(`pagesinit`, (ev: any) => {\n this.emit('pages-init', { ev });\n });\n eventBus.on(`pagerendered`, (ev: any) => {\n this.emit('page-rendered', { ev });\n });\n eventBus.on(`pagechanging`, (ev: any) => {\n const nowPi = ev.pageNumber;\n if (nowPi !== this._pi) {\n this._pi = nowPi;\n this.emit('pi', { ev });\n }\n });\n eventBus.on(`textlayerrendered`, (ev: any) => {\n this.emit('text-layer-rendered', { ev });\n });\n return eventBus;\n }\n\n private setupMultiPageViewer(): void {\n const VIEWER = this.win.pdfjsViewer;\n\n const eventBus = (this._eventBus = this.createEventBus());\n const linkService: PDFLinkService = (this.multiPageLinkService = new VIEWER.PDFLinkService({\n eventBus\n }));\n const findController: PDFFindController = (this.multiPageFindController = new VIEWER.PDFFindController({\n eventBus,\n linkService\n }));\n\n const viewer: PDFViewer = (this.multiPageViewer = new VIEWER.PDFViewer({\n eventBus,\n container: this.el,\n removePageBorders: !this.showBorders,\n textLayerMode: this._textLayerMode,\n linkService,\n findController\n }));\n linkService.setViewer(viewer);\n }\n\n private setupSinglePageViewer(): void {\n const VIEWER = this.win.pdfjsViewer;\n\n const eventBus = this.createEventBus();\n const linkService: PDFLinkService = (this.singlePageLinkService = new VIEWER.PDFLinkService({\n eventBus\n }));\n const findController: PDFFindController = (this.singlePageFindController = new VIEWER.PDFFindController({\n eventBus,\n linkService\n }));\n\n const pageViewer = (this.singlePageViewer = new VIEWER.PDFSinglePageViewer({\n eventBus,\n container: this.el,\n removePageBorders: !this.showBorders,\n textLayerMode: this._textLayerMode,\n linkService,\n findController\n }));\n linkService.setViewer(pageViewer);\n pageViewer._currentPageNumber = this._pi;\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n if (this.win.pdfjsLib) {\n this.initDelay();\n return;\n }\n const { lib } = this;\n this.lazySrv\n .load(`${lib}build/pdf.min.js`)\n .then(() => this.lazySrv.load([`${lib}web/pdf_viewer.js`, `${lib}web/pdf_viewer.css`]))\n .then(() => this.initDelay());\n\n this.ngZone.runOutsideAngular(() => this.initResize());\n }\n\n private initResize(): void {\n fromEvent(this.win, 'resize')\n .pipe(\n debounceTime(100),\n filter(() => this.autoReSize && this._pdf != null),\n takeUntilDestroyed(this.destroy$)\n )\n .subscribe(() => this.updateSize());\n }\n\n ngOnChanges(changes: { [p in keyof PdfComponent]?: SimpleChange }): void {\n if (this.inited && !changes.src) {\n this.render();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { PdfComponent } from './pdf.component';\n\nconst COMPONENTS = [PdfComponent];\n\n@NgModule({\n imports: [CommonModule, NzSkeletonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class PdfModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}