UNPKG

@delon/abc

Version:

Common business components of ng-alain.

1 lines 34.4 kB
{"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 { AlainPdfConfig } from '@delon/util/config';\n\nexport const PDF_DEFULAT_CONFIG: AlainPdfConfig = {\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\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\ntype PDFDocumentProxy = NzSafeAny;\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?: NzSafeAny;\n progress?: { loaded: number; total: number };\n error?: NzSafeAny;\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 { AlainConfigService } from '@delon/util/config';\nimport { ZoneOutside } from '@delon/util/decorator';\nimport { LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\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 = NzSafeAny;\ntype PDFDocumentProxy = NzSafeAny;\ntype EventBus = NzSafeAny;\ntype PDFFindController = NzSafeAny;\ntype PDFLinkService = NzSafeAny;\ntype PDFViewer = NzSafeAny;\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 preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\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\n inited = false;\n private lib: string = '';\n private _pdf?: PDFDocumentProxy | null;\n private loadingTask?: PDFDocumentLoadingTask;\n private _src: NzSafeAny;\n private lastSrc?: NzSafeAny;\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: NzSafeAny) {\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(): NzSafeAny {\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(configSrv: AlainConfigService) {\n const cog = configSrv.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 NzSafeAny);\n this.singlePageViewer!.setDocument(null as NzSafeAny);\n\n this.multiPageLinkService!.setDocument(null, null);\n this.singlePageLinkService!.setDocument(null, null);\n\n this.multiPageFindController!.setDocument(null as NzSafeAny);\n this.singlePageFindController!.setDocument(null as NzSafeAny);\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: NzSafeAny) => {\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: NzSafeAny) => {\n this.emit('pages-init', { ev });\n });\n eventBus.on(`pagerendered`, (ev: NzSafeAny) => {\n this.emit('page-rendered', { ev });\n });\n eventBus.on(`pagechanging`, (ev: NzSafeAny) => {\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: NzSafeAny) => {\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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"}