@progress/kendo-angular-pdfviewer 22.0.1 → 22.1.0-develop.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,7 +22,10 @@ The [Kendo UI for Angular PDFViewer](https://www.telerik.com/kendo-angular-ui/co
22
22
  Among the many features which the Kendo UI for Angular PDFViewer delivers are:
23
23
 
24
24
  * [Data Binding](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/data-binding)—The PDFViewer supports diverse data binding types such as `URL` string, `Base64` string, `ArrayBuffer` object, or `TypedArray` object.
25
+ * [Blank Page](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/blank-page)—The PDFViewer renders a blank view when no document is loaded. You can customize the blank view and handle file selection.
25
26
  * [Toolbar Tools](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/tools)—The PDF Viewer offers built-in toolbar tools, enabling users to interact with the component and execute various actions on the PDF content such as page navigation, text search, zoom in and out, download, upload print and many more.
27
+ * [Form Filling](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/form-filling)—The PDFViewer enables users to fill out interactive PDF forms directly within the component and export the document with all the entered values preserved.
28
+ * [Load Pages on Demand](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/load-on-demand)—Optimize the loading time and performance of the PDFViewer by loading pages on demand as users navigate through the document.
26
29
  * [Events](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/events)—The PDFViewer exposes various events that allows you to easily handle and customize file operations.
27
30
  * [Accessibility](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/accessibility)—The PDFViewer is accessible for screen readers and supports WAI-ARIA attributes.
28
31
  * [Keyboard Navigation](https://www.telerik.com/kendo-angular-ui/components/pdfviewer/keyboard-navigation)—The PDFViewer supports a number of keyboard shortcuts which allow users to accomplish various commands.
package/directives.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { PDFViewerCustomMessagesComponent } from "./localization/custom-messages.component";
6
6
  import { PDFViewerComponent } from "./pdfviewer.component";
7
+ import { BlankPageTemplateDirective } from "./templates/blank-page-template.directive";
7
8
  /**
8
9
  * Use the `KENDO_PDFVIEWER` utility array to add all `@progress/kendo-angular-pdf-viewer`-related components and directives to a standalone Angular component.
9
10
  *
@@ -21,4 +22,4 @@ import { PDFViewerComponent } from "./pdfviewer.component";
21
22
  * export class AppComponent {}
22
23
  * ```
23
24
  */
24
- export declare const KENDO_PDFVIEWER: readonly [typeof PDFViewerComponent, typeof PDFViewerCustomMessagesComponent];
25
+ export declare const KENDO_PDFVIEWER: readonly [typeof PDFViewerComponent, typeof PDFViewerCustomMessagesComponent, typeof BlankPageTemplateDirective];
@@ -3,12 +3,13 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Input, Directive, forwardRef, Component, Injectable, HostBinding, EventEmitter, Output, ViewChild, ElementRef, HostListener, isDevMode, ViewContainerRef, NgModule } from '@angular/core';
6
+ import { Input, Directive, forwardRef, Component, Injectable, HostBinding, EventEmitter, Output, ViewChild, ElementRef, HostListener, isDevMode, ViewContainerRef, ContentChild, NgModule } from '@angular/core';
7
7
  import * as i1 from '@progress/kendo-angular-l10n';
8
8
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
9
9
  import { validatePackage } from '@progress/kendo-licensing';
10
10
  import { PdfViewerInteractionMode, removeChildren, PdfViewer } from '@progress/kendo-pdfviewer-common';
11
11
  import { PreventableEvent, Keys, normalizeKeys, focusableSelector, getLicenseMessage, shouldShowValidationUI, hasObservers, EventsOutsideAngularDirective, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
12
+ import { FileSelectComponent, UploadDropZoneComponent, CustomMessagesComponent as CustomMessagesComponent$1 } from '@progress/kendo-angular-upload';
12
13
  import { Subscription } from 'rxjs';
13
14
  import { PagerComponent, CustomMessagesComponent } from '@progress/kendo-angular-pager';
14
15
  import { zoomInIcon, zoomOutIcon, handIcon, pointerIcon, searchIcon, folderOpenIcon, downloadIcon, printIcon, trackChangesIcon, highlightIcon, freeTextIcon, xIcon, convertLowercaseIcon, arrowUpIcon, arrowDownIcon, paletteIcon, trashIcon, checkIcon } from '@progress/kendo-svg-icons';
@@ -25,6 +26,7 @@ import * as i2$1 from '@progress/kendo-angular-popup';
25
26
  import { PopupService } from '@progress/kendo-angular-popup';
26
27
  import * as i1$2 from '@progress/kendo-angular-dialog';
27
28
  import { DialogService } from '@progress/kendo-angular-dialog';
29
+ import { NgTemplateOutlet } from '@angular/common';
28
30
  import { IconsService } from '@progress/kendo-angular-icons';
29
31
 
30
32
  /**
@@ -183,8 +185,20 @@ class Messages extends ComponentMessages {
183
185
  * Sets the label for the PDF viewer canvas container.
184
186
  */
185
187
  canvasLabel;
188
+ /**
189
+ * Sets the text for the FileSelect drop zone hint when no file is being dragged.
190
+ */
191
+ blankPageDropFilesHere;
192
+ /**
193
+ * Sets the text for the FileSelect external drop zone hint when no file is being dragged.
194
+ */
195
+ blankPageExternalDropFilesHere;
196
+ /**
197
+ * Sets the text for the FileSelect button in the blank page drop zone.
198
+ */
199
+ blankPageSelect;
186
200
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
187
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: Messages, isStandalone: true, selector: "kendo-pdfviewer-messages-base", inputs: { zoomInTitle: "zoomInTitle", zoomOutTitle: "zoomOutTitle", selectionTitle: "selectionTitle", panningTitle: "panningTitle", searchTitle: "searchTitle", openTitle: "openTitle", downloadTitle: "downloadTitle", printTitle: "printTitle", pagerInputLabel: "pagerInputLabel", pagerInputTitle: "pagerInputTitle", pagerFirstPage: "pagerFirstPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerLastPage: "pagerLastPage", pagerOf: "pagerOf", pagerPage: "pagerPage", fitToPage: "fitToPage", fitToWidth: "fitToWidth", searchInputPlaceholder: "searchInputPlaceholder", searchMatchesOf: "searchMatchesOf", searchPreviousMatchTitle: "searchPreviousMatchTitle", searchNextMatchTitle: "searchNextMatchTitle", searchCloseTitle: "searchCloseTitle", searchMatchCaseTitle: "searchMatchCaseTitle", zoomInputPlaceholder: "zoomInputPlaceholder", annotationsTitle: "annotationsTitle", annotationEditorTitle: "annotationEditorTitle", deleteAnnotationTitle: "deleteAnnotationTitle", highlightAnnotationTitle: "highlightAnnotationTitle", freeTextAnnotationTitle: "freeTextAnnotationTitle", closeAnnotationsToolbarTitle: "closeAnnotationsToolbarTitle", deleteAnnotationConfirmationDialogTitle: "deleteAnnotationConfirmationDialogTitle", deleteAnnotationConfirmationDialogContent: "deleteAnnotationConfirmationDialogContent", deleteAnnotationConfirmationDialogConfirmText: "deleteAnnotationConfirmationDialogConfirmText", deleteAnnotationConfirmationDialogRejectText: "deleteAnnotationConfirmationDialogRejectText", annotationEditorFontSizeTitle: "annotationEditorFontSizeTitle", annotationEditorColorTitle: "annotationEditorColorTitle", canvasLabel: "canvasLabel" }, usesInheritance: true, ngImport: i0 });
201
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: Messages, isStandalone: true, selector: "kendo-pdfviewer-messages-base", inputs: { zoomInTitle: "zoomInTitle", zoomOutTitle: "zoomOutTitle", selectionTitle: "selectionTitle", panningTitle: "panningTitle", searchTitle: "searchTitle", openTitle: "openTitle", downloadTitle: "downloadTitle", printTitle: "printTitle", pagerInputLabel: "pagerInputLabel", pagerInputTitle: "pagerInputTitle", pagerFirstPage: "pagerFirstPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerLastPage: "pagerLastPage", pagerOf: "pagerOf", pagerPage: "pagerPage", fitToPage: "fitToPage", fitToWidth: "fitToWidth", searchInputPlaceholder: "searchInputPlaceholder", searchMatchesOf: "searchMatchesOf", searchPreviousMatchTitle: "searchPreviousMatchTitle", searchNextMatchTitle: "searchNextMatchTitle", searchCloseTitle: "searchCloseTitle", searchMatchCaseTitle: "searchMatchCaseTitle", zoomInputPlaceholder: "zoomInputPlaceholder", annotationsTitle: "annotationsTitle", annotationEditorTitle: "annotationEditorTitle", deleteAnnotationTitle: "deleteAnnotationTitle", highlightAnnotationTitle: "highlightAnnotationTitle", freeTextAnnotationTitle: "freeTextAnnotationTitle", closeAnnotationsToolbarTitle: "closeAnnotationsToolbarTitle", deleteAnnotationConfirmationDialogTitle: "deleteAnnotationConfirmationDialogTitle", deleteAnnotationConfirmationDialogContent: "deleteAnnotationConfirmationDialogContent", deleteAnnotationConfirmationDialogConfirmText: "deleteAnnotationConfirmationDialogConfirmText", deleteAnnotationConfirmationDialogRejectText: "deleteAnnotationConfirmationDialogRejectText", annotationEditorFontSizeTitle: "annotationEditorFontSizeTitle", annotationEditorColorTitle: "annotationEditorColorTitle", canvasLabel: "canvasLabel", blankPageDropFilesHere: "blankPageDropFilesHere", blankPageExternalDropFilesHere: "blankPageExternalDropFilesHere", blankPageSelect: "blankPageSelect" }, usesInheritance: true, ngImport: i0 });
188
202
  }
189
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Messages, decorators: [{
190
204
  type: Directive,
@@ -268,6 +282,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
268
282
  type: Input
269
283
  }], canvasLabel: [{
270
284
  type: Input
285
+ }], blankPageDropFilesHere: [{
286
+ type: Input
287
+ }], blankPageExternalDropFilesHere: [{
288
+ type: Input
289
+ }], blankPageSelect: [{
290
+ type: Input
271
291
  }] } });
272
292
 
273
293
  /**
@@ -322,7 +342,7 @@ const packageMetadata = {
322
342
  productCode: 'KENDOUIANGULAR',
323
343
  productCodes: ['KENDOUIANGULAR'],
324
344
  publishDate: 0,
325
- version: '22.0.1',
345
+ version: '22.1.0-develop.10',
326
346
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning',
327
347
  };
328
348
 
@@ -1621,6 +1641,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
1621
1641
  }]
1622
1642
  }], ctorParameters: () => [{ type: i1.LocalizationService }] });
1623
1643
 
1644
+ /**
1645
+ * Renders the content of the blank page in the PDFViewer component.
1646
+ *
1647
+ * To define a blank page template, nest an `<ng-template>` tag with the `kendoPdfViewerBlankPageTemplate` directive inside the `<kendo-pdfviewer>` tag.
1648
+ *
1649
+ * @example
1650
+ * ```html
1651
+ * <kendo-pdfviewer>
1652
+ * <ng-template kendoPdfViewerBlankPageTemplate>
1653
+ * <div class="custom-blank-page">
1654
+ * <p>Drop a PDF file here or click to select</p>
1655
+ * </div>
1656
+ * </ng-template>
1657
+ * </kendo-pdfviewer>
1658
+ * ```
1659
+ */
1660
+ class BlankPageTemplateDirective {
1661
+ templateRef;
1662
+ constructor(templateRef) {
1663
+ this.templateRef = templateRef;
1664
+ }
1665
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BlankPageTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1666
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: BlankPageTemplateDirective, isStandalone: true, selector: "[kendoPdfViewerBlankPageTemplate]", ngImport: i0 });
1667
+ }
1668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BlankPageTemplateDirective, decorators: [{
1669
+ type: Directive,
1670
+ args: [{
1671
+ selector: '[kendoPdfViewerBlankPageTemplate]',
1672
+ standalone: true
1673
+ }]
1674
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
1675
+
1624
1676
  /**
1625
1677
  * @hidden
1626
1678
  */
@@ -1956,6 +2008,10 @@ class PDFViewerComponent {
1956
2008
  * @default true
1957
2009
  */
1958
2010
  removeAnnotationConfirmation = true;
2011
+ /**
2012
+ * Fires when the user selects a file, from the blank page, to be loaded in the PDFViewer.
2013
+ */
2014
+ fileSelect = new EventEmitter();
1959
2015
  /**
1960
2016
  * Fires when the component loads a PDF document successfully.
1961
2017
  */
@@ -1979,6 +2035,11 @@ class PDFViewerComponent {
1979
2035
  pagesContainer;
1980
2036
  pagesContainerViewContainerRef;
1981
2037
  dialogContainerViewContainerRef;
2038
+ /**
2039
+ * The template for the blank page displayed before a PDF document is loaded.
2040
+ * Use this to customize the appearance of the blank page.
2041
+ */
2042
+ blankPageTemplate;
1982
2043
  /**
1983
2044
  * Returns the current page number of the loaded PDF document.
1984
2045
  */
@@ -2025,6 +2086,12 @@ class PDFViewerComponent {
2025
2086
  get annotationsToolId() {
2026
2087
  return `k-pdfviewer-${counter}-annotations-button`;
2027
2088
  }
2089
+ /**
2090
+ * @hidden
2091
+ */
2092
+ get pdfId() {
2093
+ return `k-pdfviewer-${counter}`;
2094
+ }
2028
2095
  loading = false;
2029
2096
  searchActive = false;
2030
2097
  matchCase = false;
@@ -2046,6 +2113,12 @@ class PDFViewerComponent {
2046
2113
  get enabledSelection() {
2047
2114
  return this._enabledSelection;
2048
2115
  }
2116
+ /**
2117
+ * @hidden
2118
+ */
2119
+ get isBlankPage() {
2120
+ return !this.pdfContext?.pdfPages?.length && !this.loading;
2121
+ }
2049
2122
  /**
2050
2123
  * @hidden
2051
2124
  */
@@ -2089,6 +2162,9 @@ class PDFViewerComponent {
2089
2162
  }
2090
2163
  ngOnInit() {
2091
2164
  this.subs.add(this.localizationService.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
2165
+ if (this.isBlankPage) {
2166
+ this.enabledSelection = true;
2167
+ }
2092
2168
  }
2093
2169
  ngOnDestroy() {
2094
2170
  this.subs.unsubscribe();
@@ -2287,6 +2363,31 @@ class PDFViewerComponent {
2287
2363
  this.pdfViewerWidget?.goToPreviousSearchMatch();
2288
2364
  this.currentMatch = this.currentMatch - 1 < 1 ? this.currentMatches.length : this.currentMatch - 1;
2289
2365
  }
2366
+ /**
2367
+ * @hidden
2368
+ */
2369
+ onSelectFile(e) {
2370
+ if (!e.files?.length) {
2371
+ return;
2372
+ }
2373
+ this.fileSelect.emit(e);
2374
+ const file = e.files[0].rawFile;
2375
+ if (file.name.toLowerCase().endsWith('.pdf')) {
2376
+ const reader = new FileReader();
2377
+ this.loading = true;
2378
+ reader.onload = () => {
2379
+ const base64Data = reader.result;
2380
+ this.loadPdf('data', base64Data);
2381
+ this.loading = false;
2382
+ this.enabledSelection = false;
2383
+ };
2384
+ reader.onerror = (error) => {
2385
+ this.zoneAwareEmitter('error', { error: error, context: this.pdfContext });
2386
+ this.loading = false;
2387
+ };
2388
+ reader.readAsDataURL(file);
2389
+ }
2390
+ }
2290
2391
  /**
2291
2392
  * @hidden
2292
2393
  */
@@ -2470,127 +2571,136 @@ class PDFViewerComponent {
2470
2571
  return observer;
2471
2572
  };
2472
2573
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFViewerComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i2$1.PopupService }], target: i0.ɵɵFactoryTarget.Component });
2473
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: PDFViewerComponent, isStandalone: true, selector: "kendo-pdfviewer", inputs: { tools: "tools", loaderSettings: "loaderSettings", renderForms: "renderForms", saveFileName: "saveFileName", saveOptions: "saveOptions", url: "url", data: "data", arrayBuffer: "arrayBuffer", typedArray: "typedArray", zoom: "zoom", zoomRate: "zoomRate", minZoom: "minZoom", maxZoom: "maxZoom", loadOnDemand: "loadOnDemand", loadOnDemandPageSize: "loadOnDemandPageSize", removeAnnotationConfirmation: "removeAnnotationConfirmation" }, outputs: { load: "load", error: "error", download: "download", pageChange: "pageChange", zoomLevelChange: "zoomLevelChange" }, host: { properties: { "class.k-pdf-viewer": "this.hostClass", "attr.dir": "this.direction", "attr.display": "this.display" } }, providers: [
2574
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: PDFViewerComponent, isStandalone: true, selector: "kendo-pdfviewer", inputs: { tools: "tools", loaderSettings: "loaderSettings", renderForms: "renderForms", saveFileName: "saveFileName", saveOptions: "saveOptions", url: "url", data: "data", arrayBuffer: "arrayBuffer", typedArray: "typedArray", zoom: "zoom", zoomRate: "zoomRate", minZoom: "minZoom", maxZoom: "maxZoom", loadOnDemand: "loadOnDemand", loadOnDemandPageSize: "loadOnDemandPageSize", removeAnnotationConfirmation: "removeAnnotationConfirmation" }, outputs: { fileSelect: "fileSelect", load: "load", error: "error", download: "download", pageChange: "pageChange", zoomLevelChange: "zoomLevelChange" }, host: { properties: { "class.k-pdf-viewer": "this.hostClass", "attr.dir": "this.direction", "attr.display": "this.display" } }, providers: [
2474
2575
  LocalizationService,
2475
2576
  {
2476
2577
  provide: L10N_PREFIX,
2477
2578
  useValue: 'kendo.pdfviewer'
2478
2579
  }
2479
- ], viewQueries: [{ propertyName: "pagesContainer", first: true, predicate: ["pagesContainer"], descendants: true }, { propertyName: "pagesContainerViewContainerRef", first: true, predicate: ["pagesContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "dialogContainerViewContainerRef", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }], exportAs: ["kendo-pdfviewer"], usesOnChanges: true, ngImport: i0, template: `
2580
+ ], queries: [{ propertyName: "blankPageTemplate", first: true, predicate: BlankPageTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "pagesContainer", first: true, predicate: ["pagesContainer"], descendants: true }, { propertyName: "pagesContainerViewContainerRef", first: true, predicate: ["pagesContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "dialogContainerViewContainerRef", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }], exportAs: ["kendo-pdfviewer"], usesOnChanges: true, ngImport: i0, template: `
2480
2581
  <ng-container kendoPDFViewerLocalizedMessages
2481
2582
  i18n-pagerFirstPage="kendo.pdfviewer.pagerFirstPage|The label for the first page button in the Pager"
2482
2583
  pagerFirstPage="Go to the first page"
2483
-
2584
+
2484
2585
  i18n-pagerPreviousPage="kendo.pdfviewer.pagerPreviousPage|The label for the previous page button in the Pager"
2485
2586
  pagerPreviousPage="Go to the previous page"
2486
-
2587
+
2487
2588
  i18n-pagerNextPage="kendo.pdfviewer.pagerNextPage|The label for the next page button in the Pager"
2488
2589
  pagerNextPage="Go to the next page"
2489
-
2590
+
2490
2591
  i18n-pagerLastPage="kendo.pdfviewer.pagerLastPage|The label for the last page button in the Pager"
2491
2592
  pagerLastPage="Go to the last page"
2492
-
2593
+
2493
2594
  i18n-pagerPage="kendo.pdfviewer.pagerPage|The text before the current page number in the Pager"
2494
2595
  pagerPage="Page"
2495
-
2596
+
2496
2597
  i18n-pagerOf="kendo.pdfviewer.pagerOf|The text before the total pages number in the Pager"
2497
2598
  pagerOf="of"
2498
-
2599
+
2499
2600
  i18n-pagerInputTitle="kendo.pdfviewer.pagerInputTitle|The label of the pager input element"
2500
2601
  pagerInputTitle="Page Number"
2501
-
2602
+
2502
2603
  i18n-pagerInputLabel="kendo.pdfviewer.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number."
2503
2604
  pagerInputLabel="Type a page number"
2504
-
2605
+
2505
2606
  i18n-zoomInTitle="kendo.pdfviewer.zoomInTitle|The ZoomIn tool title and label."
2506
2607
  zoomInTitle="Zoom in"
2507
-
2608
+
2508
2609
  i18n-zoomOutTitle="kendo.pdfviewer.zoomOutTitle|The ZoomOut tool title and label."
2509
2610
  zoomOutTitle="Zoom out"
2510
-
2611
+
2511
2612
  i18n-selectionTitle="kendo.pdfviewer.selectionTitle|The Selection tool title and label."
2512
2613
  selectionTitle="Enable selection"
2513
-
2614
+
2514
2615
  i18n-panningTitle="kendo.pdfviewer.panningTitle|The Panning tool title and label."
2515
2616
  panningTitle="Enable panning"
2516
-
2617
+
2517
2618
  i18n-searchTitle="kendo.pdfviewer.searchTitle|The Search tool title and label."
2518
2619
  searchTitle="Search"
2519
-
2620
+
2520
2621
  i18n-openTitle="kendo.pdfviewer.openTitle|The Open tool title and label."
2521
2622
  openTitle="Open"
2522
-
2623
+
2523
2624
  i18n-downloadTitle="kendo.pdfviewer.downloadTitle|The Download tool title and label."
2524
2625
  downloadTitle="Download"
2525
-
2626
+
2526
2627
  i18n-printTitle="kendo.pdfviewer.printTitle|The Print tool title and label."
2527
2628
  printTitle="Print"
2528
-
2629
+
2529
2630
  i18n-fitToPage="kendo.pdfviewer.fitToPage|The text for the zoom level chooser Fit to page option."
2530
2631
  fitToPage="Fit to page"
2531
-
2632
+
2532
2633
  i18n-fitToWidth="kendo.pdfviewer.fitToWidth|The text for the zoom level chooser Fit to width option."
2533
2634
  fitToWidth="Fit to width"
2534
-
2635
+
2535
2636
  i18n-searchInputPlaceholder="kendo.pdfviewer.searchInputPlaceholder|The text for the search input placeholder."
2536
2637
  searchInputPlaceholder="Search"
2537
-
2638
+
2538
2639
  i18n-searchMatchesOf="kendo.pdfviewer.searchMatchesOf|The text before the total number of matches in the Search tool."
2539
2640
  searchMatchesOf="of"
2540
-
2641
+
2541
2642
  i18n-searchPreviousMatchTitle="kendo.pdfviewer.searchPreviousMatchTitle|The title of the Search tool previous match button."
2542
2643
  searchPreviousMatchTitle="Previous match"
2543
-
2644
+
2544
2645
  i18n-searchNextMatchTitle="kendo.pdfviewer.searchNextMatchTitle|The title of the Search tool next match button."
2545
2646
  searchNextMatchTitle="Next match"
2546
-
2647
+
2547
2648
  i18n-searchCloseTitle="kendo.pdfviewer.searchCloseTitle|The title of the Search tool close button."
2548
2649
  searchCloseTitle="Close"
2549
-
2650
+
2550
2651
  i18n-searchMatchCaseTitle="kendo.pdfviewer.searchMatchCaseTitle|The title of the Search tool match case button."
2551
2652
  searchMatchCaseTitle="Match case"
2552
-
2653
+
2553
2654
  i18n-zoomInputPlaceholder="kendo.pdfviewer.zoomInputPlaceholder|The text for the zoom tool input placeholder."
2554
2655
  zoomInputPlaceholder="Choose zoom level"
2555
-
2656
+
2556
2657
  i18n-annotationsTitle="kendo.pdfviewer.annotationsTitle|The Annotations tool title and label."
2557
2658
  annotationsTitle="Annotations"
2558
-
2659
+
2559
2660
  i18n-annotationEditorTitle="kendo.pdfviewer.annotationEditorTitle|The annotation editor tool title and label."
2560
2661
  annotationEditorTitle="Annotation editor"
2561
-
2662
+
2562
2663
  i18n-deleteAnnotationTitle="kendo.pdfviewer.deleteAnnotationTitle|The delete annotation tool title and label."
2563
2664
  deleteAnnotationTitle="Delete annotation"
2564
-
2665
+
2565
2666
  i18n-highlightAnnotationTitle="kendo.pdfviewer.highlightAnnotationTitle|The highlight annotation tool title and label."
2566
2667
  highlightAnnotationTitle="Highlight"
2567
-
2668
+
2568
2669
  i18n-freeTextAnnotationTitle="kendo.pdfviewer.freeTextAnnotationTitle|The free text annotation tool title and label."
2569
2670
  freeTextAnnotationTitle="Free text"
2570
-
2671
+
2571
2672
  i18n-closeAnnotationsToolbarTitle="kendo.pdfviewer.closeAnnotationsToolbarTitle|The close annotations toolbar tool title and label."
2572
2673
  closeAnnotationsToolbarTitle="Close"
2573
-
2674
+
2574
2675
  i18n-deleteAnnotationConfirmationDialogTitle="kendo.pdfviewer.deleteAnnotationConfirmationDialogTitle|The delete annotation confirmation dialog title."
2575
2676
  deleteAnnotationConfirmationDialogTitle="Delete annotation"
2576
-
2677
+
2577
2678
  i18n-deleteAnnotationConfirmationDialogContent="kendo.pdfviewer.deleteAnnotationConfirmationDialogContent|The delete annotation confirmation dialog content."
2578
2679
  deleteAnnotationConfirmationDialogContent="Are you sure you want to delete this annotation?"
2579
-
2680
+
2580
2681
  i18n-deleteAnnotationConfirmationDialogConfirmText="kendo.pdfviewer.deleteAnnotationConfirmationDialogConfirmText|The delete annotation confirmation dialog confirm button text."
2581
2682
  deleteAnnotationConfirmationDialogConfirmText="Delete"
2582
-
2683
+
2583
2684
  i18n-deleteAnnotationConfirmationDialogRejectText="kendo.pdfviewer.deleteAnnotationConfirmationDialogRejectText|The delete annotation confirmation dialog reject button text."
2584
2685
  deleteAnnotationConfirmationDialogRejectText="Cancel"
2585
-
2686
+
2586
2687
  i18n-annotationEditorFontSizeTitle="kendo.pdfviewer.annotationEditorFontSizeTitle|The annotation editor font size section title."
2587
2688
  annotationEditorFontSizeTitle="Font size"
2588
-
2689
+
2589
2690
  i18n-annotationEditorColorTitle="kendo.pdfviewer.annotationEditorColorTitle|The annotation editor color section title."
2590
2691
  annotationEditorColorTitle="Color"
2591
-
2692
+
2592
2693
  i18n-canvasLabel="kendo.pdfviewer.canvasLabel|The label for the PDF viewer canvas container."
2593
- canvasLabel="PDF document">
2694
+ canvasLabel="PDF document"
2695
+
2696
+ i18n-blankPageDropFilesHere="kendo.pdfviewer.blankPageDropFilesHere|The FileSelect drop zone hint for the blank page."
2697
+ blankPageDropFilesHere="Drop files here to upload"
2698
+
2699
+ i18n-blankPageExternalDropFilesHere="kendo.pdfviewer.blankPageExternalDropFilesHere|The external FileSelect drop zone hint for the blank page."
2700
+ blankPageExternalDropFilesHere="Drag and drop files here to upload"
2701
+
2702
+ i18n-blankPageSelect="kendo.pdfviewer.blankPageSelect|The FileSelect button text for the blank page."
2703
+ blankPageSelect="Select files...">
2594
2704
  </ng-container>
2595
2705
  @if (loading) {
2596
2706
  <div kendoPDFViewerLoader
@@ -2662,14 +2772,39 @@ class PDFViewerComponent {
2662
2772
  wheel: stopPropagation
2663
2773
  }"
2664
2774
  class="k-pdf-viewer-pages"
2665
- [attr.id]="pagesContainerId"></div>
2775
+ [attr.id]="pagesContainerId">
2776
+ @if (isBlankPage) {
2777
+ <div class="k-page k-blank-page">
2778
+ @if (blankPageTemplate) {
2779
+ <ng-template [ngTemplateOutlet]="blankPageTemplate.templateRef"></ng-template>
2780
+ } @else {
2781
+ <kendo-uploaddropzone [zoneId]="pdfId">
2782
+ <kendo-uploaddropzone-messages
2783
+ [externalDropFilesHere]="messageFor('blankPageExternalDropFilesHere')">
2784
+ </kendo-uploaddropzone-messages>
2785
+ </kendo-uploaddropzone>
2786
+ <kendo-fileselect
2787
+ [zoneId]="pdfId"
2788
+ (select)="onSelectFile($event)"
2789
+ [multiple]="false"
2790
+ [showFileList]="false"
2791
+ [restrictions]="{ allowedExtensions: ['.pdf'] }">
2792
+ <kendo-upload-messages
2793
+ [dropFilesHere]="messageFor('blankPageDropFilesHere')"
2794
+ [select]="messageFor('blankPageSelect')">
2795
+ </kendo-upload-messages>
2796
+ </kendo-fileselect>
2797
+ }
2798
+ </div>
2799
+ }
2800
+ </div>
2666
2801
  </div>
2667
-
2802
+
2668
2803
  <div #dialogContainer></div>
2669
2804
  @if (showLicenseWatermark) {
2670
2805
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
2671
2806
  }
2672
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedPDFViewerMessagesDirective, selector: "[kendoPDFViewerLocalizedMessages]" }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: LoaderComponent, selector: "[kendoPDFViewerLoader]", inputs: ["settings"] }, { kind: "component", type: ToolbarComponent, selector: "[kendoPDFViewerToolbar]", inputs: ["zoomLevel", "calculatedComboBoxValue", "skip", "pageSize", "total", "zoomInDisabled", "zoomOutDisabled", "disabledTools", "zoomLevelChooserValue", "zoomOptionsData", "pagesContainerId", "tools", "type", "wrapperId", "isAnnotationsToolbarVisible", "annotationsToolId", "isSelectionEnabled"], outputs: ["fileSelect", "fileSelectStart", "fileSelectError", "download", "selectionEnabled", "panningEnabled", "pageChange", "zoomIn", "zoomOut", "zoomLevelChange", "print", "search", "toggleAnnotationsToolbar", "setAnnotationMode"] }, { kind: "component", type: PDFViewerSearchComponent, selector: "[kendoPDFViewerSearch]", inputs: ["matches", "currentMatch"], outputs: ["searchChange", "prevMatch", "nextMatch", "close"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }] });
2807
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedPDFViewerMessagesDirective, selector: "[kendoPDFViewerLocalizedMessages]" }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: LoaderComponent, selector: "[kendoPDFViewerLoader]", inputs: ["settings"] }, { kind: "component", type: ToolbarComponent, selector: "[kendoPDFViewerToolbar]", inputs: ["zoomLevel", "calculatedComboBoxValue", "skip", "pageSize", "total", "zoomInDisabled", "zoomOutDisabled", "disabledTools", "zoomLevelChooserValue", "zoomOptionsData", "pagesContainerId", "tools", "type", "wrapperId", "isAnnotationsToolbarVisible", "annotationsToolId", "isSelectionEnabled"], outputs: ["fileSelect", "fileSelectStart", "fileSelectError", "download", "selectionEnabled", "panningEnabled", "pageChange", "zoomIn", "zoomOut", "zoomLevelChange", "print", "search", "toggleAnnotationsToolbar", "setAnnotationMode"] }, { kind: "component", type: PDFViewerSearchComponent, selector: "[kendoPDFViewerSearch]", inputs: ["matches", "currentMatch"], outputs: ["searchChange", "prevMatch", "nextMatch", "close"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }, { kind: "component", type: FileSelectComponent, selector: "kendo-fileselect", inputs: ["name"], outputs: ["valueChange"], exportAs: ["kendoFileSelect"] }, { kind: "component", type: UploadDropZoneComponent, selector: "kendo-uploaddropzone", inputs: ["zoneId", "icon", "iconClass", "svgIcon"], exportAs: ["kendoUploadDropZone"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CustomMessagesComponent$1, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages" }] });
2673
2808
  }
2674
2809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFViewerComponent, decorators: [{
2675
2810
  type: Component,
@@ -2687,117 +2822,126 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2687
2822
  <ng-container kendoPDFViewerLocalizedMessages
2688
2823
  i18n-pagerFirstPage="kendo.pdfviewer.pagerFirstPage|The label for the first page button in the Pager"
2689
2824
  pagerFirstPage="Go to the first page"
2690
-
2825
+
2691
2826
  i18n-pagerPreviousPage="kendo.pdfviewer.pagerPreviousPage|The label for the previous page button in the Pager"
2692
2827
  pagerPreviousPage="Go to the previous page"
2693
-
2828
+
2694
2829
  i18n-pagerNextPage="kendo.pdfviewer.pagerNextPage|The label for the next page button in the Pager"
2695
2830
  pagerNextPage="Go to the next page"
2696
-
2831
+
2697
2832
  i18n-pagerLastPage="kendo.pdfviewer.pagerLastPage|The label for the last page button in the Pager"
2698
2833
  pagerLastPage="Go to the last page"
2699
-
2834
+
2700
2835
  i18n-pagerPage="kendo.pdfviewer.pagerPage|The text before the current page number in the Pager"
2701
2836
  pagerPage="Page"
2702
-
2837
+
2703
2838
  i18n-pagerOf="kendo.pdfviewer.pagerOf|The text before the total pages number in the Pager"
2704
2839
  pagerOf="of"
2705
-
2840
+
2706
2841
  i18n-pagerInputTitle="kendo.pdfviewer.pagerInputTitle|The label of the pager input element"
2707
2842
  pagerInputTitle="Page Number"
2708
-
2843
+
2709
2844
  i18n-pagerInputLabel="kendo.pdfviewer.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number."
2710
2845
  pagerInputLabel="Type a page number"
2711
-
2846
+
2712
2847
  i18n-zoomInTitle="kendo.pdfviewer.zoomInTitle|The ZoomIn tool title and label."
2713
2848
  zoomInTitle="Zoom in"
2714
-
2849
+
2715
2850
  i18n-zoomOutTitle="kendo.pdfviewer.zoomOutTitle|The ZoomOut tool title and label."
2716
2851
  zoomOutTitle="Zoom out"
2717
-
2852
+
2718
2853
  i18n-selectionTitle="kendo.pdfviewer.selectionTitle|The Selection tool title and label."
2719
2854
  selectionTitle="Enable selection"
2720
-
2855
+
2721
2856
  i18n-panningTitle="kendo.pdfviewer.panningTitle|The Panning tool title and label."
2722
2857
  panningTitle="Enable panning"
2723
-
2858
+
2724
2859
  i18n-searchTitle="kendo.pdfviewer.searchTitle|The Search tool title and label."
2725
2860
  searchTitle="Search"
2726
-
2861
+
2727
2862
  i18n-openTitle="kendo.pdfviewer.openTitle|The Open tool title and label."
2728
2863
  openTitle="Open"
2729
-
2864
+
2730
2865
  i18n-downloadTitle="kendo.pdfviewer.downloadTitle|The Download tool title and label."
2731
2866
  downloadTitle="Download"
2732
-
2867
+
2733
2868
  i18n-printTitle="kendo.pdfviewer.printTitle|The Print tool title and label."
2734
2869
  printTitle="Print"
2735
-
2870
+
2736
2871
  i18n-fitToPage="kendo.pdfviewer.fitToPage|The text for the zoom level chooser Fit to page option."
2737
2872
  fitToPage="Fit to page"
2738
-
2873
+
2739
2874
  i18n-fitToWidth="kendo.pdfviewer.fitToWidth|The text for the zoom level chooser Fit to width option."
2740
2875
  fitToWidth="Fit to width"
2741
-
2876
+
2742
2877
  i18n-searchInputPlaceholder="kendo.pdfviewer.searchInputPlaceholder|The text for the search input placeholder."
2743
2878
  searchInputPlaceholder="Search"
2744
-
2879
+
2745
2880
  i18n-searchMatchesOf="kendo.pdfviewer.searchMatchesOf|The text before the total number of matches in the Search tool."
2746
2881
  searchMatchesOf="of"
2747
-
2882
+
2748
2883
  i18n-searchPreviousMatchTitle="kendo.pdfviewer.searchPreviousMatchTitle|The title of the Search tool previous match button."
2749
2884
  searchPreviousMatchTitle="Previous match"
2750
-
2885
+
2751
2886
  i18n-searchNextMatchTitle="kendo.pdfviewer.searchNextMatchTitle|The title of the Search tool next match button."
2752
2887
  searchNextMatchTitle="Next match"
2753
-
2888
+
2754
2889
  i18n-searchCloseTitle="kendo.pdfviewer.searchCloseTitle|The title of the Search tool close button."
2755
2890
  searchCloseTitle="Close"
2756
-
2891
+
2757
2892
  i18n-searchMatchCaseTitle="kendo.pdfviewer.searchMatchCaseTitle|The title of the Search tool match case button."
2758
2893
  searchMatchCaseTitle="Match case"
2759
-
2894
+
2760
2895
  i18n-zoomInputPlaceholder="kendo.pdfviewer.zoomInputPlaceholder|The text for the zoom tool input placeholder."
2761
2896
  zoomInputPlaceholder="Choose zoom level"
2762
-
2897
+
2763
2898
  i18n-annotationsTitle="kendo.pdfviewer.annotationsTitle|The Annotations tool title and label."
2764
2899
  annotationsTitle="Annotations"
2765
-
2900
+
2766
2901
  i18n-annotationEditorTitle="kendo.pdfviewer.annotationEditorTitle|The annotation editor tool title and label."
2767
2902
  annotationEditorTitle="Annotation editor"
2768
-
2903
+
2769
2904
  i18n-deleteAnnotationTitle="kendo.pdfviewer.deleteAnnotationTitle|The delete annotation tool title and label."
2770
2905
  deleteAnnotationTitle="Delete annotation"
2771
-
2906
+
2772
2907
  i18n-highlightAnnotationTitle="kendo.pdfviewer.highlightAnnotationTitle|The highlight annotation tool title and label."
2773
2908
  highlightAnnotationTitle="Highlight"
2774
-
2909
+
2775
2910
  i18n-freeTextAnnotationTitle="kendo.pdfviewer.freeTextAnnotationTitle|The free text annotation tool title and label."
2776
2911
  freeTextAnnotationTitle="Free text"
2777
-
2912
+
2778
2913
  i18n-closeAnnotationsToolbarTitle="kendo.pdfviewer.closeAnnotationsToolbarTitle|The close annotations toolbar tool title and label."
2779
2914
  closeAnnotationsToolbarTitle="Close"
2780
-
2915
+
2781
2916
  i18n-deleteAnnotationConfirmationDialogTitle="kendo.pdfviewer.deleteAnnotationConfirmationDialogTitle|The delete annotation confirmation dialog title."
2782
2917
  deleteAnnotationConfirmationDialogTitle="Delete annotation"
2783
-
2918
+
2784
2919
  i18n-deleteAnnotationConfirmationDialogContent="kendo.pdfviewer.deleteAnnotationConfirmationDialogContent|The delete annotation confirmation dialog content."
2785
2920
  deleteAnnotationConfirmationDialogContent="Are you sure you want to delete this annotation?"
2786
-
2921
+
2787
2922
  i18n-deleteAnnotationConfirmationDialogConfirmText="kendo.pdfviewer.deleteAnnotationConfirmationDialogConfirmText|The delete annotation confirmation dialog confirm button text."
2788
2923
  deleteAnnotationConfirmationDialogConfirmText="Delete"
2789
-
2924
+
2790
2925
  i18n-deleteAnnotationConfirmationDialogRejectText="kendo.pdfviewer.deleteAnnotationConfirmationDialogRejectText|The delete annotation confirmation dialog reject button text."
2791
2926
  deleteAnnotationConfirmationDialogRejectText="Cancel"
2792
-
2927
+
2793
2928
  i18n-annotationEditorFontSizeTitle="kendo.pdfviewer.annotationEditorFontSizeTitle|The annotation editor font size section title."
2794
2929
  annotationEditorFontSizeTitle="Font size"
2795
-
2930
+
2796
2931
  i18n-annotationEditorColorTitle="kendo.pdfviewer.annotationEditorColorTitle|The annotation editor color section title."
2797
2932
  annotationEditorColorTitle="Color"
2798
-
2933
+
2799
2934
  i18n-canvasLabel="kendo.pdfviewer.canvasLabel|The label for the PDF viewer canvas container."
2800
- canvasLabel="PDF document">
2935
+ canvasLabel="PDF document"
2936
+
2937
+ i18n-blankPageDropFilesHere="kendo.pdfviewer.blankPageDropFilesHere|The FileSelect drop zone hint for the blank page."
2938
+ blankPageDropFilesHere="Drop files here to upload"
2939
+
2940
+ i18n-blankPageExternalDropFilesHere="kendo.pdfviewer.blankPageExternalDropFilesHere|The external FileSelect drop zone hint for the blank page."
2941
+ blankPageExternalDropFilesHere="Drag and drop files here to upload"
2942
+
2943
+ i18n-blankPageSelect="kendo.pdfviewer.blankPageSelect|The FileSelect button text for the blank page."
2944
+ blankPageSelect="Select files...">
2801
2945
  </ng-container>
2802
2946
  @if (loading) {
2803
2947
  <div kendoPDFViewerLoader
@@ -2869,16 +3013,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2869
3013
  wheel: stopPropagation
2870
3014
  }"
2871
3015
  class="k-pdf-viewer-pages"
2872
- [attr.id]="pagesContainerId"></div>
3016
+ [attr.id]="pagesContainerId">
3017
+ @if (isBlankPage) {
3018
+ <div class="k-page k-blank-page">
3019
+ @if (blankPageTemplate) {
3020
+ <ng-template [ngTemplateOutlet]="blankPageTemplate.templateRef"></ng-template>
3021
+ } @else {
3022
+ <kendo-uploaddropzone [zoneId]="pdfId">
3023
+ <kendo-uploaddropzone-messages
3024
+ [externalDropFilesHere]="messageFor('blankPageExternalDropFilesHere')">
3025
+ </kendo-uploaddropzone-messages>
3026
+ </kendo-uploaddropzone>
3027
+ <kendo-fileselect
3028
+ [zoneId]="pdfId"
3029
+ (select)="onSelectFile($event)"
3030
+ [multiple]="false"
3031
+ [showFileList]="false"
3032
+ [restrictions]="{ allowedExtensions: ['.pdf'] }">
3033
+ <kendo-upload-messages
3034
+ [dropFilesHere]="messageFor('blankPageDropFilesHere')"
3035
+ [select]="messageFor('blankPageSelect')">
3036
+ </kendo-upload-messages>
3037
+ </kendo-fileselect>
3038
+ }
3039
+ </div>
3040
+ }
3041
+ </div>
2873
3042
  </div>
2874
-
3043
+
2875
3044
  <div #dialogContainer></div>
2876
3045
  @if (showLicenseWatermark) {
2877
3046
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
2878
3047
  }
2879
3048
  `,
2880
3049
  standalone: true,
2881
- imports: [LocalizedPDFViewerMessagesDirective, EventsOutsideAngularDirective, LoaderComponent, ToolbarComponent, PDFViewerSearchComponent, WatermarkOverlayComponent]
3050
+ imports: [LocalizedPDFViewerMessagesDirective, EventsOutsideAngularDirective, LoaderComponent, ToolbarComponent, PDFViewerSearchComponent, WatermarkOverlayComponent, FileSelectComponent, UploadDropZoneComponent, BlankPageTemplateDirective, NgTemplateOutlet, CustomMessagesComponent$1],
2882
3051
  }]
2883
3052
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i2$1.PopupService }], propDecorators: { hostClass: [{
2884
3053
  type: HostBinding,
@@ -2921,6 +3090,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2921
3090
  type: Input
2922
3091
  }], removeAnnotationConfirmation: [{
2923
3092
  type: Input
3093
+ }], fileSelect: [{
3094
+ type: Output
2924
3095
  }], load: [{
2925
3096
  type: Output
2926
3097
  }], error: [{
@@ -2940,6 +3111,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2940
3111
  }], dialogContainerViewContainerRef: [{
2941
3112
  type: ViewChild,
2942
3113
  args: ['dialogContainer', { read: ViewContainerRef }]
3114
+ }], blankPageTemplate: [{
3115
+ type: ContentChild,
3116
+ args: [BlankPageTemplateDirective]
2943
3117
  }] } });
2944
3118
 
2945
3119
  /**
@@ -2961,7 +3135,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2961
3135
  */
2962
3136
  const KENDO_PDFVIEWER = [
2963
3137
  PDFViewerComponent,
2964
- PDFViewerCustomMessagesComponent
3138
+ PDFViewerCustomMessagesComponent,
3139
+ BlankPageTemplateDirective
2965
3140
  ];
2966
3141
 
2967
3142
  // IMPORTANT: NgModule export kept for backwards compatibility
@@ -2985,7 +3160,7 @@ const KENDO_PDFVIEWER = [
2985
3160
  */
2986
3161
  class PDFViewerModule {
2987
3162
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2988
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: PDFViewerModule, imports: [PDFViewerComponent, PDFViewerCustomMessagesComponent], exports: [PDFViewerComponent, PDFViewerCustomMessagesComponent] });
3163
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: PDFViewerModule, imports: [PDFViewerComponent, PDFViewerCustomMessagesComponent, BlankPageTemplateDirective], exports: [PDFViewerComponent, PDFViewerCustomMessagesComponent, BlankPageTemplateDirective] });
2989
3164
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFViewerModule, providers: [
2990
3165
  IconsService,
2991
3166
  PopupService,
@@ -3009,5 +3184,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
3009
3184
  * Generated bundle index. Do not edit.
3010
3185
  */
3011
3186
 
3012
- export { KENDO_PDFVIEWER, LoaderComponent, LocalizedPDFViewerMessagesDirective, PDFViewerComponent, PDFViewerCustomMessagesComponent, PDFViewerDownloadEvent, PDFViewerModule, PDFViewerSearchComponent, ToolbarComboBoxDirective, ToolbarComponent, ToolbarFocusableDirective, ToolbarInputWrapperComponent };
3187
+ export { BlankPageTemplateDirective, KENDO_PDFVIEWER, LoaderComponent, LocalizedPDFViewerMessagesDirective, PDFViewerComponent, PDFViewerCustomMessagesComponent, PDFViewerDownloadEvent, PDFViewerModule, PDFViewerSearchComponent, ToolbarComboBoxDirective, ToolbarComponent, ToolbarFocusableDirective, ToolbarInputWrapperComponent };
3013
3188
 
package/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export { PDFViewerErrorEvent, PDFViewerLoadEvent, PDFViewerDownloadEvent, PDFVie
13
13
  export { LoaderSettings } from './models/loader-settings';
14
14
  export { PDFViewerCustomMessagesComponent } from './localization/custom-messages.component';
15
15
  export { LocalizedPDFViewerMessagesDirective } from './localization/localized-messages.directive';
16
+ export { BlankPageTemplateDirective } from './templates/blank-page-template.directive';
16
17
  export { ToolbarFocusableDirective } from './toolbar/toolbar-focusable.directive';
17
18
  export { ToolbarInputWrapperComponent } from './toolbar/input-wrapper.component';
18
19
  export { ToolbarComboBoxDirective } from './toolbar/toolbar-combobox.directive';
@@ -160,6 +160,18 @@ export declare class Messages extends ComponentMessages {
160
160
  * Sets the label for the PDF viewer canvas container.
161
161
  */
162
162
  canvasLabel: string;
163
+ /**
164
+ * Sets the text for the FileSelect drop zone hint when no file is being dragged.
165
+ */
166
+ blankPageDropFilesHere: string;
167
+ /**
168
+ * Sets the text for the FileSelect external drop zone hint when no file is being dragged.
169
+ */
170
+ blankPageExternalDropFilesHere: string;
171
+ /**
172
+ * Sets the text for the FileSelect button in the blank page drop zone.
173
+ */
174
+ blankPageSelect: string;
163
175
  static ɵfac: i0.ɵɵFactoryDeclaration<Messages, never>;
164
- static ɵdir: i0.ɵɵDirectiveDeclaration<Messages, "kendo-pdfviewer-messages-base", never, { "zoomInTitle": { "alias": "zoomInTitle"; "required": false; }; "zoomOutTitle": { "alias": "zoomOutTitle"; "required": false; }; "selectionTitle": { "alias": "selectionTitle"; "required": false; }; "panningTitle": { "alias": "panningTitle"; "required": false; }; "searchTitle": { "alias": "searchTitle"; "required": false; }; "openTitle": { "alias": "openTitle"; "required": false; }; "downloadTitle": { "alias": "downloadTitle"; "required": false; }; "printTitle": { "alias": "printTitle"; "required": false; }; "pagerInputLabel": { "alias": "pagerInputLabel"; "required": false; }; "pagerInputTitle": { "alias": "pagerInputTitle"; "required": false; }; "pagerFirstPage": { "alias": "pagerFirstPage"; "required": false; }; "pagerPreviousPage": { "alias": "pagerPreviousPage"; "required": false; }; "pagerNextPage": { "alias": "pagerNextPage"; "required": false; }; "pagerLastPage": { "alias": "pagerLastPage"; "required": false; }; "pagerOf": { "alias": "pagerOf"; "required": false; }; "pagerPage": { "alias": "pagerPage"; "required": false; }; "fitToPage": { "alias": "fitToPage"; "required": false; }; "fitToWidth": { "alias": "fitToWidth"; "required": false; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; }; "searchMatchesOf": { "alias": "searchMatchesOf"; "required": false; }; "searchPreviousMatchTitle": { "alias": "searchPreviousMatchTitle"; "required": false; }; "searchNextMatchTitle": { "alias": "searchNextMatchTitle"; "required": false; }; "searchCloseTitle": { "alias": "searchCloseTitle"; "required": false; }; "searchMatchCaseTitle": { "alias": "searchMatchCaseTitle"; "required": false; }; "zoomInputPlaceholder": { "alias": "zoomInputPlaceholder"; "required": false; }; "annotationsTitle": { "alias": "annotationsTitle"; "required": false; }; "annotationEditorTitle": { "alias": "annotationEditorTitle"; "required": false; }; "deleteAnnotationTitle": { "alias": "deleteAnnotationTitle"; "required": false; }; "highlightAnnotationTitle": { "alias": "highlightAnnotationTitle"; "required": false; }; "freeTextAnnotationTitle": { "alias": "freeTextAnnotationTitle"; "required": false; }; "closeAnnotationsToolbarTitle": { "alias": "closeAnnotationsToolbarTitle"; "required": false; }; "deleteAnnotationConfirmationDialogTitle": { "alias": "deleteAnnotationConfirmationDialogTitle"; "required": false; }; "deleteAnnotationConfirmationDialogContent": { "alias": "deleteAnnotationConfirmationDialogContent"; "required": false; }; "deleteAnnotationConfirmationDialogConfirmText": { "alias": "deleteAnnotationConfirmationDialogConfirmText"; "required": false; }; "deleteAnnotationConfirmationDialogRejectText": { "alias": "deleteAnnotationConfirmationDialogRejectText"; "required": false; }; "annotationEditorFontSizeTitle": { "alias": "annotationEditorFontSizeTitle"; "required": false; }; "annotationEditorColorTitle": { "alias": "annotationEditorColorTitle"; "required": false; }; "canvasLabel": { "alias": "canvasLabel"; "required": false; }; }, {}, never, never, true, never>;
176
+ static ɵdir: i0.ɵɵDirectiveDeclaration<Messages, "kendo-pdfviewer-messages-base", never, { "zoomInTitle": { "alias": "zoomInTitle"; "required": false; }; "zoomOutTitle": { "alias": "zoomOutTitle"; "required": false; }; "selectionTitle": { "alias": "selectionTitle"; "required": false; }; "panningTitle": { "alias": "panningTitle"; "required": false; }; "searchTitle": { "alias": "searchTitle"; "required": false; }; "openTitle": { "alias": "openTitle"; "required": false; }; "downloadTitle": { "alias": "downloadTitle"; "required": false; }; "printTitle": { "alias": "printTitle"; "required": false; }; "pagerInputLabel": { "alias": "pagerInputLabel"; "required": false; }; "pagerInputTitle": { "alias": "pagerInputTitle"; "required": false; }; "pagerFirstPage": { "alias": "pagerFirstPage"; "required": false; }; "pagerPreviousPage": { "alias": "pagerPreviousPage"; "required": false; }; "pagerNextPage": { "alias": "pagerNextPage"; "required": false; }; "pagerLastPage": { "alias": "pagerLastPage"; "required": false; }; "pagerOf": { "alias": "pagerOf"; "required": false; }; "pagerPage": { "alias": "pagerPage"; "required": false; }; "fitToPage": { "alias": "fitToPage"; "required": false; }; "fitToWidth": { "alias": "fitToWidth"; "required": false; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; }; "searchMatchesOf": { "alias": "searchMatchesOf"; "required": false; }; "searchPreviousMatchTitle": { "alias": "searchPreviousMatchTitle"; "required": false; }; "searchNextMatchTitle": { "alias": "searchNextMatchTitle"; "required": false; }; "searchCloseTitle": { "alias": "searchCloseTitle"; "required": false; }; "searchMatchCaseTitle": { "alias": "searchMatchCaseTitle"; "required": false; }; "zoomInputPlaceholder": { "alias": "zoomInputPlaceholder"; "required": false; }; "annotationsTitle": { "alias": "annotationsTitle"; "required": false; }; "annotationEditorTitle": { "alias": "annotationEditorTitle"; "required": false; }; "deleteAnnotationTitle": { "alias": "deleteAnnotationTitle"; "required": false; }; "highlightAnnotationTitle": { "alias": "highlightAnnotationTitle"; "required": false; }; "freeTextAnnotationTitle": { "alias": "freeTextAnnotationTitle"; "required": false; }; "closeAnnotationsToolbarTitle": { "alias": "closeAnnotationsToolbarTitle"; "required": false; }; "deleteAnnotationConfirmationDialogTitle": { "alias": "deleteAnnotationConfirmationDialogTitle"; "required": false; }; "deleteAnnotationConfirmationDialogContent": { "alias": "deleteAnnotationConfirmationDialogContent"; "required": false; }; "deleteAnnotationConfirmationDialogConfirmText": { "alias": "deleteAnnotationConfirmationDialogConfirmText"; "required": false; }; "deleteAnnotationConfirmationDialogRejectText": { "alias": "deleteAnnotationConfirmationDialogRejectText"; "required": false; }; "annotationEditorFontSizeTitle": { "alias": "annotationEditorFontSizeTitle"; "required": false; }; "annotationEditorColorTitle": { "alias": "annotationEditorColorTitle"; "required": false; }; "canvasLabel": { "alias": "canvasLabel"; "required": false; }; "blankPageDropFilesHere": { "alias": "blankPageDropFilesHere"; "required": false; }; "blankPageExternalDropFilesHere": { "alias": "blankPageExternalDropFilesHere"; "required": false; }; "blankPageSelect": { "alias": "blankPageSelect"; "required": false; }; }, {}, never, never, true, never>;
165
177
  }
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1768482026,
11
- "version": "22.0.1",
10
+ "publishDate": 1769677800,
11
+ "version": "22.1.0-develop.10",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-pdfviewer",
3
- "version": "22.0.1",
3
+ "version": "22.1.0-develop.10",
4
4
  "description": "Kendo UI PDFViewer for Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -19,7 +19,7 @@
19
19
  "package": {
20
20
  "productName": "Kendo UI for Angular",
21
21
  "productCode": "KENDOUIANGULAR",
22
- "publishDate": 1768482026,
22
+ "publishDate": 1769677800,
23
23
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
24
24
  }
25
25
  },
@@ -28,23 +28,24 @@
28
28
  "@angular/common": "19 - 21",
29
29
  "@angular/core": "19 - 21",
30
30
  "@angular/platform-browser": "19 - 21",
31
- "@progress/kendo-licensing": "^1.7.0",
32
- "@progress/kendo-angular-buttons": "22.0.1",
33
- "@progress/kendo-angular-common": "22.0.1",
34
- "@progress/kendo-angular-dialog": "22.0.1",
35
- "@progress/kendo-angular-dropdowns": "22.0.1",
36
- "@progress/kendo-angular-inputs": "22.0.1",
37
- "@progress/kendo-angular-intl": "22.0.1",
38
- "@progress/kendo-angular-l10n": "22.0.1",
39
- "@progress/kendo-angular-icons": "22.0.1",
40
- "@progress/kendo-angular-indicators": "22.0.1",
41
- "@progress/kendo-angular-pager": "22.0.1",
42
- "@progress/kendo-angular-popup": "22.0.1",
31
+ "@progress/kendo-licensing": "^1.10.0",
32
+ "@progress/kendo-angular-buttons": "22.1.0-develop.10",
33
+ "@progress/kendo-angular-common": "22.1.0-develop.10",
34
+ "@progress/kendo-angular-dialog": "22.1.0-develop.10",
35
+ "@progress/kendo-angular-dropdowns": "22.1.0-develop.10",
36
+ "@progress/kendo-angular-inputs": "22.1.0-develop.10",
37
+ "@progress/kendo-angular-intl": "22.1.0-develop.10",
38
+ "@progress/kendo-angular-l10n": "22.1.0-develop.10",
39
+ "@progress/kendo-angular-icons": "22.1.0-develop.10",
40
+ "@progress/kendo-angular-indicators": "22.1.0-develop.10",
41
+ "@progress/kendo-angular-pager": "22.1.0-develop.10",
42
+ "@progress/kendo-angular-popup": "22.1.0-develop.10",
43
+ "@progress/kendo-angular-upload": "22.1.0-develop.10",
43
44
  "rxjs": "^6.5.3 || ^7.0.0"
44
45
  },
45
46
  "dependencies": {
46
47
  "tslib": "^2.3.1",
47
- "@progress/kendo-angular-schematics": "22.0.1",
48
+ "@progress/kendo-angular-schematics": "22.1.0-develop.10",
48
49
  "@progress/kendo-file-saver": "^1.0.1",
49
50
  "@progress/kendo-pdfviewer-common": "0.6.2"
50
51
  },
@@ -3,6 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core';
6
+ import { LicenseMessage } from '@progress/kendo-licensing';
6
7
  import { LoaderSettings } from './models/loader-settings';
7
8
  import { TypedArray } from '@progress/kendo-pdfviewer-common';
8
9
  import { PDFViewerContext } from './models/pdfviewer-context';
@@ -10,9 +11,11 @@ import { LocalizationService } from '@progress/kendo-angular-l10n';
10
11
  import { PDFViewerDownloadEvent, PDFViewerErrorEvent, PDFViewerLoadEvent, PDFViewerPageChangeEvent, PDFViewerZoomChangeEvent } from './models/events';
11
12
  import { SaveOptions } from '@progress/kendo-file-saver';
12
13
  import { PageChangeEvent } from '@progress/kendo-angular-pager';
14
+ import { SelectEvent } from '@progress/kendo-angular-upload';
13
15
  import { ZoomLevel } from './models/zoom-level';
14
16
  import { PDFViewerTool } from './models/toolbar-tool';
15
17
  import { ToolbarComponent } from './toolbar/toolbar.component';
18
+ import { BlankPageTemplateDirective } from './templates/blank-page-template.directive';
16
19
  import 'pdfjs-dist/build/pdf.worker.min.mjs';
17
20
  import { AnnotationEditorType } from './models/annotation-editor.type';
18
21
  import { PopupService } from '@progress/kendo-angular-popup';
@@ -130,6 +133,10 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
130
133
  * @default true
131
134
  */
132
135
  removeAnnotationConfirmation: boolean;
136
+ /**
137
+ * Fires when the user selects a file, from the blank page, to be loaded in the PDFViewer.
138
+ */
139
+ fileSelect: EventEmitter<SelectEvent>;
133
140
  /**
134
141
  * Fires when the component loads a PDF document successfully.
135
142
  */
@@ -153,6 +160,11 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
153
160
  private pagesContainer;
154
161
  private pagesContainerViewContainerRef;
155
162
  private dialogContainerViewContainerRef;
163
+ /**
164
+ * The template for the blank page displayed before a PDF document is loaded.
165
+ * Use this to customize the appearance of the blank page.
166
+ */
167
+ blankPageTemplate: BlankPageTemplateDirective;
156
168
  /**
157
169
  * Returns the current page number of the loaded PDF document.
158
170
  */
@@ -178,6 +190,10 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
178
190
  * @hidden
179
191
  */
180
192
  get annotationsToolId(): string;
193
+ /**
194
+ * @hidden
195
+ */
196
+ get pdfId(): string;
181
197
  loading: boolean;
182
198
  searchActive: boolean;
183
199
  matchCase: boolean;
@@ -192,6 +208,10 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
192
208
  * @hidden
193
209
  */
194
210
  get enabledSelection(): boolean;
211
+ /**
212
+ * @hidden
213
+ */
214
+ get isBlankPage(): boolean;
195
215
  /**
196
216
  * @hidden
197
217
  */
@@ -203,7 +223,7 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
203
223
  /**
204
224
  * @hidden
205
225
  */
206
- licenseMessage?: string;
226
+ licenseMessage?: LicenseMessage;
207
227
  skip: number;
208
228
  zoomOptionsData: ({
209
229
  id: number;
@@ -308,6 +328,10 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
308
328
  * @hidden
309
329
  */
310
330
  onPreviousMatch(): void;
331
+ /**
332
+ * @hidden
333
+ */
334
+ onSelectFile(e: SelectEvent): void;
311
335
  /**
312
336
  * @hidden
313
337
  */
@@ -328,5 +352,5 @@ export declare class PDFViewerComponent implements OnInit, OnDestroy {
328
352
  private zoneAwareEmitter;
329
353
  private classMutationObserver;
330
354
  static ɵfac: i0.ɵɵFactoryDeclaration<PDFViewerComponent, never>;
331
- static ɵcmp: i0.ɵɵComponentDeclaration<PDFViewerComponent, "kendo-pdfviewer", ["kendo-pdfviewer"], { "tools": { "alias": "tools"; "required": false; }; "loaderSettings": { "alias": "loaderSettings"; "required": false; }; "renderForms": { "alias": "renderForms"; "required": false; }; "saveFileName": { "alias": "saveFileName"; "required": false; }; "saveOptions": { "alias": "saveOptions"; "required": false; }; "url": { "alias": "url"; "required": false; }; "data": { "alias": "data"; "required": false; }; "arrayBuffer": { "alias": "arrayBuffer"; "required": false; }; "typedArray": { "alias": "typedArray"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "zoomRate": { "alias": "zoomRate"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "loadOnDemand": { "alias": "loadOnDemand"; "required": false; }; "loadOnDemandPageSize": { "alias": "loadOnDemandPageSize"; "required": false; }; "removeAnnotationConfirmation": { "alias": "removeAnnotationConfirmation"; "required": false; }; }, { "load": "load"; "error": "error"; "download": "download"; "pageChange": "pageChange"; "zoomLevelChange": "zoomLevelChange"; }, never, never, true, never>;
355
+ static ɵcmp: i0.ɵɵComponentDeclaration<PDFViewerComponent, "kendo-pdfviewer", ["kendo-pdfviewer"], { "tools": { "alias": "tools"; "required": false; }; "loaderSettings": { "alias": "loaderSettings"; "required": false; }; "renderForms": { "alias": "renderForms"; "required": false; }; "saveFileName": { "alias": "saveFileName"; "required": false; }; "saveOptions": { "alias": "saveOptions"; "required": false; }; "url": { "alias": "url"; "required": false; }; "data": { "alias": "data"; "required": false; }; "arrayBuffer": { "alias": "arrayBuffer"; "required": false; }; "typedArray": { "alias": "typedArray"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "zoomRate": { "alias": "zoomRate"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "loadOnDemand": { "alias": "loadOnDemand"; "required": false; }; "loadOnDemandPageSize": { "alias": "loadOnDemandPageSize"; "required": false; }; "removeAnnotationConfirmation": { "alias": "removeAnnotationConfirmation"; "required": false; }; }, { "fileSelect": "fileSelect"; "load": "load"; "error": "error"; "download": "download"; "pageChange": "pageChange"; "zoomLevelChange": "zoomLevelChange"; }, ["blankPageTemplate"], never, true, never>;
332
356
  }
@@ -5,6 +5,7 @@
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "./pdfviewer.component";
7
7
  import * as i2 from "./localization/custom-messages.component";
8
+ import * as i3 from "./templates/blank-page-template.directive";
8
9
  /**
9
10
  * Represents the [`NgModule`](link:site.data.urls.angular['ngmoduleapi']) definition for the PDFViewer component.
10
11
  *
@@ -25,6 +26,6 @@ import * as i2 from "./localization/custom-messages.component";
25
26
  */
26
27
  export declare class PDFViewerModule {
27
28
  static ɵfac: i0.ɵɵFactoryDeclaration<PDFViewerModule, never>;
28
- static ɵmod: i0.ɵɵNgModuleDeclaration<PDFViewerModule, never, [typeof i1.PDFViewerComponent, typeof i2.PDFViewerCustomMessagesComponent], [typeof i1.PDFViewerComponent, typeof i2.PDFViewerCustomMessagesComponent]>;
29
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PDFViewerModule, never, [typeof i1.PDFViewerComponent, typeof i2.PDFViewerCustomMessagesComponent, typeof i3.BlankPageTemplateDirective], [typeof i1.PDFViewerComponent, typeof i2.PDFViewerCustomMessagesComponent, typeof i3.BlankPageTemplateDirective]>;
29
30
  static ɵinj: i0.ɵɵInjectorDeclaration<PDFViewerModule>;
30
31
  }
@@ -9,8 +9,8 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'PDFViewerModule', package: 'pdfviewer', peerDependencies: {
11
11
  // peers of the dropdowns
12
- '@progress/kendo-angular-navigation': '22.0.1',
13
- '@progress/kendo-angular-treeview': '22.0.1'
12
+ '@progress/kendo-angular-navigation': '22.1.0-develop.10',
13
+ '@progress/kendo-angular-treeview': '22.1.0-develop.10'
14
14
  } });
15
15
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
16
16
  }
@@ -0,0 +1,28 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { TemplateRef } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Renders the content of the blank page in the PDFViewer component.
9
+ *
10
+ * To define a blank page template, nest an `<ng-template>` tag with the `kendoPdfViewerBlankPageTemplate` directive inside the `<kendo-pdfviewer>` tag.
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <kendo-pdfviewer>
15
+ * <ng-template kendoPdfViewerBlankPageTemplate>
16
+ * <div class="custom-blank-page">
17
+ * <p>Drop a PDF file here or click to select</p>
18
+ * </div>
19
+ * </ng-template>
20
+ * </kendo-pdfviewer>
21
+ * ```
22
+ */
23
+ export declare class BlankPageTemplateDirective {
24
+ templateRef: TemplateRef<any>;
25
+ constructor(templateRef: TemplateRef<any>);
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<BlankPageTemplateDirective, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BlankPageTemplateDirective, "[kendoPdfViewerBlankPageTemplate]", never, {}, {}, never, never, true, never>;
28
+ }