@progress/kendo-angular-pdfviewer 19.3.0-develop.3 → 19.3.0-develop.31
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/annotations/annotation-editor.d.ts +41 -0
- package/esm2022/annotations/annotation-editor.mjs +199 -0
- package/esm2022/localization/messages.mjs +73 -1
- package/esm2022/models/annotation-editor.type.mjs +13 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdfviewer.component.mjs +317 -62
- package/esm2022/toolbar/toolbar.component.mjs +477 -310
- package/esm2022/util.mjs +4 -0
- package/fesm2022/progress-kendo-angular-pdfviewer.mjs +1071 -380
- package/localization/messages.d.ts +49 -1
- package/models/annotation-editor.type.d.ts +17 -0
- package/models/toolbar-tool.d.ts +1 -1
- package/package.json +15 -14
- package/pdfviewer.component.d.ts +51 -4
- package/schematics/ngAdd/index.js +2 -2
- package/toolbar/toolbar.component.d.ts +17 -1
- package/util.d.ts +4 -0
@@ -3,26 +3,31 @@
|
|
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 { Directive, Input, forwardRef, Component, Injectable, HostBinding, EventEmitter, ViewChild, Output, ElementRef, HostListener, isDevMode, NgModule } from '@angular/core';
|
6
|
+
import { Directive, Input, forwardRef, Component, Injectable, HostBinding, EventEmitter, ViewChild, Output, ElementRef, HostListener, isDevMode, ViewContainerRef, 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
|
-
import { removeChildren, PdfViewer } from '@progress/kendo-pdfviewer-common';
|
11
|
-
import { PreventableEvent, Keys, focusableSelector, shouldShowValidationUI, hasObservers, EventsOutsideAngularDirective, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
10
|
+
import { PdfViewerInteractionMode, removeChildren, PdfViewer } from '@progress/kendo-pdfviewer-common';
|
11
|
+
import { PreventableEvent, Keys, focusableSelector, getLicenseMessage, shouldShowValidationUI, hasObservers, EventsOutsideAngularDirective, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
12
12
|
import { saveAs } from '@progress/kendo-file-saver';
|
13
13
|
import { Subscription } from 'rxjs';
|
14
14
|
import { PagerComponent, CustomMessagesComponent } from '@progress/kendo-angular-pager';
|
15
|
-
import { zoomInIcon, zoomOutIcon, handIcon, pointerIcon, searchIcon, folderOpenIcon, downloadIcon, printIcon, convertLowercaseIcon, arrowUpIcon, arrowDownIcon,
|
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';
|
16
16
|
import * as i1$1 from '@progress/kendo-angular-dropdowns';
|
17
|
-
import { ComboBoxComponent, ItemTemplateDirective } from '@progress/kendo-angular-dropdowns';
|
18
|
-
import
|
17
|
+
import { ComboBoxComponent, ItemTemplateDirective, KENDO_DROPDOWNLIST } from '@progress/kendo-angular-dropdowns';
|
18
|
+
import * as i2 from '@progress/kendo-angular-buttons';
|
19
|
+
import { ButtonGroupComponent, ButtonComponent, KENDO_BUTTON } from '@progress/kendo-angular-buttons';
|
19
20
|
import { NgFor, NgSwitch, NgSwitchCase, NgIf } from '@angular/common';
|
20
|
-
import { map } from 'rxjs/operators';
|
21
|
-
import
|
21
|
+
import { map, take } from 'rxjs/operators';
|
22
|
+
import * as i3 from '@progress/kendo-angular-inputs';
|
23
|
+
import { TextBoxComponent, TextBoxSuffixTemplateDirective, KENDO_FLATCOLORPICKER } from '@progress/kendo-angular-inputs';
|
22
24
|
import { LoaderComponent as LoaderComponent$1 } from '@progress/kendo-angular-indicators';
|
23
25
|
import 'pdfjs-dist/build/pdf.worker.min.mjs';
|
24
|
-
import
|
26
|
+
import * as i2$1 from '@progress/kendo-angular-popup';
|
25
27
|
import { PopupService } from '@progress/kendo-angular-popup';
|
28
|
+
import * as i1$2 from '@progress/kendo-angular-dialog';
|
29
|
+
import { DialogService } from '@progress/kendo-angular-dialog';
|
30
|
+
import { IconsService } from '@progress/kendo-angular-icons';
|
26
31
|
|
27
32
|
/**
|
28
33
|
* @hidden
|
@@ -128,8 +133,56 @@ class Messages extends ComponentMessages {
|
|
128
133
|
* Sets the placeholder text for the zoom tool input.
|
129
134
|
*/
|
130
135
|
zoomInputPlaceholder;
|
136
|
+
/**
|
137
|
+
* Sets the title and label for the **Annotation Editor** tool.
|
138
|
+
*/
|
139
|
+
annotationsTitle;
|
140
|
+
/**
|
141
|
+
* Sets the title and label for the **Annotation Editor** tool.
|
142
|
+
*/
|
143
|
+
annotationEditorTitle;
|
144
|
+
/**
|
145
|
+
* Sets the title and label for the **Delete Annotation** tool.
|
146
|
+
*/
|
147
|
+
deleteAnnotationTitle;
|
148
|
+
/**
|
149
|
+
* Sets the title and label for the **Highligh Annotation** tool.
|
150
|
+
*/
|
151
|
+
highlightAnnotationTitle;
|
152
|
+
/**
|
153
|
+
* Sets the title and label for the **Free Text Annotation** tool.
|
154
|
+
*/
|
155
|
+
freeTextAnnotationTitle;
|
156
|
+
/**
|
157
|
+
* Sets the title and label for the **Close Annotations Toolbar** tool.
|
158
|
+
*/
|
159
|
+
closeAnnotationsToolbarTitle;
|
160
|
+
/**
|
161
|
+
* Sets the title of the **Delete Annotation** confirmation dialog.
|
162
|
+
*/
|
163
|
+
deleteAnnotationConfirmationDialogTitle;
|
164
|
+
/**
|
165
|
+
* Sets the content text of the **Delete Annotation** confirmation dialog.
|
166
|
+
*/
|
167
|
+
deleteAnnotationConfirmationDialogContent;
|
168
|
+
/**
|
169
|
+
* Sets the text of the **Delete Annotation** confirmation dialog confirm action button.
|
170
|
+
*/
|
171
|
+
deleteAnnotationConfirmationDialogConfirmText;
|
172
|
+
/**
|
173
|
+
* Sets the text of the **Delete Annotation** confirmation dialog reject action button.
|
174
|
+
*/
|
175
|
+
deleteAnnotationConfirmationDialogRejectText;
|
176
|
+
/**
|
177
|
+
* Sets the text of the **Font Size** section in the annotation editor dialog.
|
178
|
+
*/
|
179
|
+
annotationEditorFontSizeTitle;
|
180
|
+
/**
|
181
|
+
* Sets the text of the **Color** section in the annotation editor dialog.
|
182
|
+
*/
|
183
|
+
annotationEditorColorTitle;
|
131
184
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
132
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, 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" }, usesInheritance: true, ngImport: i0 });
|
185
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, 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" }, usesInheritance: true, ngImport: i0 });
|
133
186
|
}
|
134
187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
|
135
188
|
type: Directive,
|
@@ -187,6 +240,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
187
240
|
type: Input
|
188
241
|
}], zoomInputPlaceholder: [{
|
189
242
|
type: Input
|
243
|
+
}], annotationsTitle: [{
|
244
|
+
type: Input
|
245
|
+
}], annotationEditorTitle: [{
|
246
|
+
type: Input
|
247
|
+
}], deleteAnnotationTitle: [{
|
248
|
+
type: Input
|
249
|
+
}], highlightAnnotationTitle: [{
|
250
|
+
type: Input
|
251
|
+
}], freeTextAnnotationTitle: [{
|
252
|
+
type: Input
|
253
|
+
}], closeAnnotationsToolbarTitle: [{
|
254
|
+
type: Input
|
255
|
+
}], deleteAnnotationConfirmationDialogTitle: [{
|
256
|
+
type: Input
|
257
|
+
}], deleteAnnotationConfirmationDialogContent: [{
|
258
|
+
type: Input
|
259
|
+
}], deleteAnnotationConfirmationDialogConfirmText: [{
|
260
|
+
type: Input
|
261
|
+
}], deleteAnnotationConfirmationDialogRejectText: [{
|
262
|
+
type: Input
|
263
|
+
}], annotationEditorFontSizeTitle: [{
|
264
|
+
type: Input
|
265
|
+
}], annotationEditorColorTitle: [{
|
266
|
+
type: Input
|
190
267
|
}] } });
|
191
268
|
|
192
269
|
/**
|
@@ -240,8 +317,8 @@ const packageMetadata = {
|
|
240
317
|
productName: 'Kendo UI for Angular',
|
241
318
|
productCode: 'KENDOUIANGULAR',
|
242
319
|
productCodes: ['KENDOUIANGULAR'],
|
243
|
-
publishDate:
|
244
|
-
version: '19.3.0-develop.
|
320
|
+
publishDate: 1754576893,
|
321
|
+
version: '19.3.0-develop.31',
|
245
322
|
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',
|
246
323
|
};
|
247
324
|
|
@@ -320,6 +397,10 @@ const zoomToFitOptions = {
|
|
320
397
|
'fitToPage': 'FitToPage',
|
321
398
|
'fitToWidth': 'FitToWidth'
|
322
399
|
};
|
400
|
+
/**
|
401
|
+
* @hidden
|
402
|
+
*/
|
403
|
+
const fontSizes = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];
|
323
404
|
|
324
405
|
/**
|
325
406
|
* Represents the arguments for the PDFViewer `download` event. The event fires when the user clicks the **Download** tool. Canceling the event prevents the download.
|
@@ -589,6 +670,10 @@ class ToolbarComponent {
|
|
589
670
|
zoomOptionsData;
|
590
671
|
pagesContainerId;
|
591
672
|
tools;
|
673
|
+
type = 'tools';
|
674
|
+
wrapperId;
|
675
|
+
isAnnotationsToolbarVisible = false;
|
676
|
+
annotationsToolId;
|
592
677
|
fileSelect = new EventEmitter();
|
593
678
|
fileSelectStart = new EventEmitter();
|
594
679
|
fileSelectError = new EventEmitter();
|
@@ -601,6 +686,8 @@ class ToolbarComponent {
|
|
601
686
|
zoomLevelChange = new EventEmitter();
|
602
687
|
print = new EventEmitter();
|
603
688
|
search = new EventEmitter();
|
689
|
+
toggleAnnotationsToolbar = new EventEmitter();
|
690
|
+
setAnnotationMode = new EventEmitter();
|
604
691
|
zoomInIcon = zoomInIcon;
|
605
692
|
zoomOutIcon = zoomOutIcon;
|
606
693
|
handIcon = handIcon;
|
@@ -609,7 +696,14 @@ class ToolbarComponent {
|
|
609
696
|
folderOpenIcon = folderOpenIcon;
|
610
697
|
downloadIcon = downloadIcon;
|
611
698
|
printIcon = printIcon;
|
699
|
+
trackChangesIcon = trackChangesIcon;
|
700
|
+
highlightIcon = highlightIcon;
|
701
|
+
freeTextIcon = freeTextIcon;
|
702
|
+
xIcon = xIcon;
|
612
703
|
pagerType = 'input';
|
704
|
+
isSelectionEnabled = false;
|
705
|
+
isHighlightMode;
|
706
|
+
isFreeTextMode;
|
613
707
|
constructor(localization, navigationService) {
|
614
708
|
this.localization = localization;
|
615
709
|
this.navigationService = navigationService;
|
@@ -638,6 +732,16 @@ class ToolbarComponent {
|
|
638
732
|
focus() {
|
639
733
|
this.navigationService.focusableTools[this.navigationService.currentFocusIndex].activate();
|
640
734
|
}
|
735
|
+
onHighlightClick() {
|
736
|
+
this.isHighlightMode = !this.isHighlightMode;
|
737
|
+
this.isFreeTextMode = false;
|
738
|
+
this.setAnnotationMode.emit(this.isHighlightMode ? 'highlight' : 'none');
|
739
|
+
}
|
740
|
+
onFreeTextClick() {
|
741
|
+
this.isFreeTextMode = !this.isFreeTextMode;
|
742
|
+
this.isHighlightMode = false;
|
743
|
+
this.setAnnotationMode.emit(this.isFreeTextMode ? 'freeText' : 'none');
|
744
|
+
}
|
641
745
|
valueNormalizer = (text) => text.pipe(map((value) => {
|
642
746
|
const parsedValue = parseFloat(value);
|
643
747
|
const newValue = Number.isNaN(parsedValue) ? 1 : parsedValue / 100;
|
@@ -648,184 +752,250 @@ class ToolbarComponent {
|
|
648
752
|
};
|
649
753
|
}));
|
650
754
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.LocalizationService }, { token: ToolbarNavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
651
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarComponent, isStandalone: true, selector: "[kendoPDFViewerToolbar]", inputs: { zoomLevel: "zoomLevel", calculatedComboBoxValue: "calculatedComboBoxValue", skip: "skip", pageSize: "pageSize", total: "total", zoomInDisabled: "zoomInDisabled", zoomOutDisabled: "zoomOutDisabled", disabledTools: "disabledTools", zoomLevelChooserValue: "zoomLevelChooserValue", zoomOptionsData: "zoomOptionsData", pagesContainerId: "pagesContainerId", tools: "tools" }, outputs: { fileSelect: "fileSelect", fileSelectStart: "fileSelectStart", fileSelectError: "fileSelectError", download: "download", selectionEnabled: "selectionEnabled", panningEnabled: "panningEnabled", pageChange: "pageChange", zoomIn: "zoomIn", zoomOut: "zoomOut", zoomLevelChange: "zoomLevelChange", print: "print", search: "search" }, host: { properties: { "class.k-toolbar": "this.toolbarClasses", "class.k-toolbar-md": "this.toolbarClasses", "class.k-toolbar-flat": "this.toolbarClasses" } }, providers: [ToolbarNavigationService], viewQueries: [{ propertyName: "fileSelectEl", first: true, predicate: ["fileSelectEl"], descendants: true }], ngImport: i0, template: `
|
652
|
-
<ng-container *
|
653
|
-
<ng-container
|
654
|
-
<
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
755
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarComponent, isStandalone: true, selector: "[kendoPDFViewerToolbar]", inputs: { zoomLevel: "zoomLevel", calculatedComboBoxValue: "calculatedComboBoxValue", skip: "skip", pageSize: "pageSize", total: "total", zoomInDisabled: "zoomInDisabled", zoomOutDisabled: "zoomOutDisabled", disabledTools: "disabledTools", zoomLevelChooserValue: "zoomLevelChooserValue", zoomOptionsData: "zoomOptionsData", pagesContainerId: "pagesContainerId", tools: "tools", type: "type", wrapperId: "wrapperId", isAnnotationsToolbarVisible: "isAnnotationsToolbarVisible", annotationsToolId: "annotationsToolId" }, outputs: { fileSelect: "fileSelect", fileSelectStart: "fileSelectStart", fileSelectError: "fileSelectError", download: "download", selectionEnabled: "selectionEnabled", panningEnabled: "panningEnabled", pageChange: "pageChange", zoomIn: "zoomIn", zoomOut: "zoomOut", zoomLevelChange: "zoomLevelChange", print: "print", search: "search", toggleAnnotationsToolbar: "toggleAnnotationsToolbar", setAnnotationMode: "setAnnotationMode" }, host: { properties: { "class.k-toolbar": "this.toolbarClasses", "class.k-toolbar-md": "this.toolbarClasses", "class.k-toolbar-flat": "this.toolbarClasses" } }, providers: [ToolbarNavigationService], viewQueries: [{ propertyName: "fileSelectEl", first: true, predicate: ["fileSelectEl"], descendants: true }], ngImport: i0, template: `
|
756
|
+
<ng-container *ngIf="type === 'tools'">
|
757
|
+
<ng-container *ngFor="let tool of tools">
|
758
|
+
<ng-container [ngSwitch]="tool">
|
759
|
+
<kendo-toolbar-input-wrapper
|
760
|
+
*ngSwitchCase="'pager'"
|
761
|
+
kendoPDFViewerToolbarFocusable
|
762
|
+
[toolbarTool]="pager">
|
763
|
+
<kendo-datapager
|
764
|
+
#pager
|
765
|
+
[attr.aria-controls]="pagesContainerId"
|
766
|
+
[attr.aria-label]="messageFor('page') + ' ' + (skip + 1) + ' ' + messageFor('of') + total"
|
767
|
+
[class.k-disabled]="disabledTools"
|
768
|
+
[navigable]="true"
|
769
|
+
[pageSize]="pageSize"
|
770
|
+
[skip]="skip"
|
771
|
+
[total]="total"
|
772
|
+
[pageSizeValues]="false"
|
773
|
+
[info]="false"
|
774
|
+
[type]="pagerType"
|
775
|
+
(pageChange)="pageChange.emit($event)">
|
776
|
+
<kendo-datapager-messages
|
777
|
+
[firstPage]="messageFor('pagerFirstPage')"
|
778
|
+
[previousPage]="messageFor('pagerPreviousPage')"
|
779
|
+
[nextPage]="messageFor('pagerNextPage')"
|
780
|
+
[lastPage]="messageFor('pagerLastPage')"
|
781
|
+
[inputLabel]="messageFor('pagerInputLabel')"
|
782
|
+
[pageNumberInputTitle]="messageFor('pagerInputTitle')"
|
783
|
+
[of]="messageFor('pagerOf')"
|
784
|
+
[page]="messageFor('pagerPage')"></kendo-datapager-messages>
|
785
|
+
</kendo-datapager>
|
786
|
+
</kendo-toolbar-input-wrapper>
|
787
|
+
<span
|
788
|
+
*ngSwitchCase="'spacer'"
|
789
|
+
class="k-spacer"></span>
|
790
|
+
<kendo-buttongroup
|
791
|
+
*ngSwitchCase="'zoomInOut'"
|
660
792
|
[attr.aria-controls]="pagesContainerId"
|
661
|
-
|
662
|
-
[
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
[
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
793
|
+
class="k-button-group-flat k-toolbar-button-group"
|
794
|
+
[navigable]="false">
|
795
|
+
<button
|
796
|
+
type="button"
|
797
|
+
kendoButton
|
798
|
+
fillMode="flat"
|
799
|
+
kendoPDFViewerToolbarFocusable
|
800
|
+
icon="zoom-out"
|
801
|
+
[disabled]="disabledTools || zoomOutDisabled"
|
802
|
+
[svgIcon]="zoomOutIcon"
|
803
|
+
[attr.title]="messageFor('zoomOutTitle')"
|
804
|
+
[attr.aria-label]="messageFor('zoomOutTitle')"
|
805
|
+
(click)="zoomOut.emit()"></button>
|
806
|
+
<button
|
807
|
+
type="button"
|
808
|
+
kendoButton
|
809
|
+
fillMode="flat"
|
810
|
+
kendoPDFViewerToolbarFocusable
|
811
|
+
icon="zoom-in"
|
812
|
+
[disabled]="disabledTools || zoomInDisabled"
|
813
|
+
[svgIcon]="zoomInIcon"
|
814
|
+
[attr.title]="messageFor('zoomInTitle')"
|
815
|
+
[attr.aria-label]="messageFor('zoomInTitle')"
|
816
|
+
(click)="zoomIn.emit()"></button>
|
817
|
+
</kendo-buttongroup>
|
818
|
+
<kendo-toolbar-input-wrapper
|
819
|
+
*ngSwitchCase="'zoom'"
|
820
|
+
kendoPDFViewerToolbarFocusable
|
821
|
+
[toolbarTool]="combobox">
|
822
|
+
<kendo-combobox
|
823
|
+
#combobox
|
824
|
+
kendoPDFViewerComboBox
|
825
|
+
class="k-toolbar-combobox"
|
826
|
+
fillMode="flat"
|
827
|
+
[attr.aria-controls]="pagesContainerId"
|
828
|
+
[tabindex]="-1"
|
829
|
+
[data]="zoomOptionsData"
|
830
|
+
[disabled]="disabledTools"
|
831
|
+
[placeholder]="messageFor('zoomInputPlaceholder')"
|
832
|
+
textField="displayValue"
|
833
|
+
valueField="id"
|
834
|
+
[value]="zoomLevelChooserValue"
|
835
|
+
[allowCustom]="true"
|
836
|
+
[valueNormalizer]="valueNormalizer"
|
837
|
+
[clearButton]="false"
|
838
|
+
(valueChange)="onZoomLevelChooserValueChange($event)">
|
839
|
+
<ng-template kendoComboBoxItemTemplate let-dataItem>
|
840
|
+
{{ dataItem.type ? messageFor('f' + dataItem.type.slice(1)) : dataItem.text }}
|
841
|
+
</ng-template>
|
842
|
+
</kendo-combobox>
|
843
|
+
</kendo-toolbar-input-wrapper>
|
844
|
+
<kendo-buttongroup
|
845
|
+
*ngSwitchCase="'selection'"
|
846
|
+
[attr.aria-controls]="pagesContainerId"
|
847
|
+
[navigable]="false"
|
848
|
+
class="k-button-group-flat k-toolbar-button-group"
|
849
|
+
selection="single">
|
850
|
+
<button
|
851
|
+
type="button"
|
852
|
+
kendoButton
|
853
|
+
kendoPDFViewerToolbarFocusable
|
854
|
+
fillMode="flat"
|
855
|
+
icon="pointer"
|
856
|
+
[toggleable]="true"
|
857
|
+
[svgIcon]="pointerIcon"
|
858
|
+
[attr.title]="messageFor('selectionTitle')"
|
859
|
+
[attr.aria-label]="messageFor('selectionTitle')"
|
860
|
+
(click)="selectionEnabled.emit(); isSelectionEnabled = true;"></button>
|
861
|
+
<button
|
862
|
+
type="button"
|
863
|
+
kendoButton
|
864
|
+
kendoPDFViewerToolbarFocusable
|
865
|
+
fillMode="flat"
|
866
|
+
icon="hand"
|
867
|
+
[svgIcon]="handIcon"
|
868
|
+
[toggleable]="true"
|
869
|
+
[selected]="true"
|
870
|
+
[attr.title]="messageFor('panningTitle')"
|
871
|
+
[attr.aria-label]="messageFor('panningTitle')"
|
872
|
+
(click)="panningEnabled.emit(); isSelectionEnabled = false;"></button>
|
873
|
+
</kendo-buttongroup>
|
690
874
|
<button
|
875
|
+
*ngSwitchCase="'search'"
|
691
876
|
type="button"
|
877
|
+
kendoPDFViewerToolbarFocusable
|
692
878
|
kendoButton
|
879
|
+
class="k-toolbar-button"
|
693
880
|
fillMode="flat"
|
694
|
-
|
695
|
-
|
696
|
-
[
|
697
|
-
[
|
698
|
-
|
699
|
-
[
|
700
|
-
(click)="
|
881
|
+
icon="search"
|
882
|
+
[disabled]="disabledTools"
|
883
|
+
[attr.title]="messageFor('searchTitle')"
|
884
|
+
[attr.aria-label]="messageFor('searchTitle')"
|
885
|
+
aria-haspopup="dialog"
|
886
|
+
[svgIcon]="searchIcon"
|
887
|
+
(click)="search.emit()"></button>
|
701
888
|
<button
|
889
|
+
*ngSwitchCase="'open'"
|
702
890
|
type="button"
|
703
|
-
kendoButton
|
704
891
|
fillMode="flat"
|
705
892
|
kendoPDFViewerToolbarFocusable
|
706
|
-
|
707
|
-
|
708
|
-
[svgIcon]="zoomInIcon"
|
709
|
-
[attr.title]="messageFor('zoomInTitle')"
|
710
|
-
[attr.aria-label]="messageFor('zoomInTitle')"
|
711
|
-
(click)="zoomIn.emit()"></button>
|
712
|
-
</kendo-buttongroup>
|
713
|
-
<kendo-toolbar-input-wrapper
|
714
|
-
*ngSwitchCase="'zoom'"
|
715
|
-
kendoPDFViewerToolbarFocusable
|
716
|
-
[toolbarTool]="combobox">
|
717
|
-
<kendo-combobox
|
718
|
-
#combobox
|
719
|
-
kendoPDFViewerComboBox
|
720
|
-
class="k-toolbar-combobox"
|
893
|
+
kendoButton
|
894
|
+
class="k-toolbar-button"
|
721
895
|
fillMode="flat"
|
896
|
+
icon="folder-open"
|
897
|
+
[svgIcon]="folderOpenIcon"
|
898
|
+
[attr.title]="messageFor('openTitle')"
|
899
|
+
[attr.aria-label]="messageFor('openTitle')"
|
722
900
|
[attr.aria-controls]="pagesContainerId"
|
723
|
-
|
724
|
-
|
725
|
-
[disabled]="disabledTools"
|
726
|
-
[placeholder]="messageFor('zoomInputPlaceholder')"
|
727
|
-
textField="displayValue"
|
728
|
-
valueField="id"
|
729
|
-
[value]="zoomLevelChooserValue"
|
730
|
-
[allowCustom]="true"
|
731
|
-
[valueNormalizer]="valueNormalizer"
|
732
|
-
[clearButton]="false"
|
733
|
-
(valueChange)="onZoomLevelChooserValueChange($event)">
|
734
|
-
<ng-template kendoComboBoxItemTemplate let-dataItem>
|
735
|
-
{{ dataItem.type ? messageFor('f' + dataItem.type.slice(1)) : dataItem.text }}
|
736
|
-
</ng-template>
|
737
|
-
</kendo-combobox>
|
738
|
-
</kendo-toolbar-input-wrapper>
|
739
|
-
<kendo-buttongroup
|
740
|
-
*ngSwitchCase="'selection'"
|
741
|
-
[attr.aria-controls]="pagesContainerId"
|
742
|
-
[navigable]="false"
|
743
|
-
class="k-button-group-flat k-toolbar-button-group"
|
744
|
-
selection="single">
|
901
|
+
(click)="fileSelectEl?.nativeElement.click()">
|
902
|
+
</button>
|
745
903
|
<button
|
904
|
+
*ngSwitchCase="'download'"
|
746
905
|
type="button"
|
747
|
-
kendoButton
|
748
|
-
kendoPDFViewerToolbarFocusable
|
749
906
|
fillMode="flat"
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
[
|
755
|
-
|
907
|
+
kendoPDFViewerToolbarFocusable
|
908
|
+
kendoButton
|
909
|
+
class="k-toolbar-button"
|
910
|
+
icon="download"
|
911
|
+
[svgIcon]="downloadIcon"
|
912
|
+
[disabled]="disabledTools"
|
913
|
+
[attr.title]="messageFor('downloadTitle')"
|
914
|
+
[attr.aria-label]="messageFor('downloadTitle')"
|
915
|
+
(click)="download.emit()"></button>
|
756
916
|
<button
|
917
|
+
*ngSwitchCase="'print'"
|
757
918
|
type="button"
|
919
|
+
fillMode="flat"
|
920
|
+
kendoPDFViewerToolbarFocusable
|
758
921
|
kendoButton
|
922
|
+
class="k-toolbar-button"
|
923
|
+
icon="print"
|
924
|
+
[svgIcon]="printIcon"
|
925
|
+
[disabled]="disabledTools"
|
926
|
+
[attr.title]="messageFor('printTitle')"
|
927
|
+
[attr.aria-label]="messageFor('printTitle')"
|
928
|
+
(click)="print.emit()"></button>
|
929
|
+
<button
|
930
|
+
*ngSwitchCase="'annotations'"
|
931
|
+
type="button"
|
932
|
+
[attr.id]="annotationsToolId"
|
759
933
|
kendoPDFViewerToolbarFocusable
|
934
|
+
kendoButton
|
935
|
+
class="k-toolbar-button"
|
760
936
|
fillMode="flat"
|
761
|
-
icon="
|
762
|
-
[
|
763
|
-
[
|
764
|
-
[
|
765
|
-
[attr.
|
766
|
-
[attr.aria-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
type="button"
|
772
|
-
kendoPDFViewerToolbarFocusable
|
773
|
-
kendoButton
|
774
|
-
class="k-toolbar-button"
|
775
|
-
fillMode="flat"
|
776
|
-
icon="search"
|
777
|
-
[disabled]="disabledTools"
|
778
|
-
[attr.title]="messageFor('searchTitle')"
|
779
|
-
[attr.aria-label]="messageFor('searchTitle')"
|
780
|
-
aria-haspopup="dialog"
|
781
|
-
[svgIcon]="searchIcon"
|
782
|
-
(click)="search.emit()"></button>
|
783
|
-
<button
|
784
|
-
*ngSwitchCase="'open'"
|
785
|
-
type="button"
|
786
|
-
fillMode="flat"
|
787
|
-
kendoPDFViewerToolbarFocusable
|
788
|
-
kendoButton
|
789
|
-
class="k-toolbar-button"
|
790
|
-
fillMode="flat"
|
791
|
-
icon="folder-open"
|
792
|
-
[svgIcon]="folderOpenIcon"
|
793
|
-
[attr.title]="messageFor('openTitle')"
|
794
|
-
[attr.aria-label]="messageFor('openTitle')"
|
795
|
-
[attr.aria-controls]="pagesContainerId"
|
796
|
-
(click)="fileSelectEl?.nativeElement.click()">
|
797
|
-
</button>
|
798
|
-
<button
|
799
|
-
*ngSwitchCase="'download'"
|
800
|
-
type="button"
|
801
|
-
fillMode="flat"
|
802
|
-
kendoPDFViewerToolbarFocusable
|
803
|
-
kendoButton
|
804
|
-
class="k-toolbar-button"
|
805
|
-
icon="download"
|
806
|
-
[svgIcon]="downloadIcon"
|
807
|
-
[disabled]="disabledTools"
|
808
|
-
[attr.title]="messageFor('downloadTitle')"
|
809
|
-
[attr.aria-label]="messageFor('downloadTitle')"
|
810
|
-
(click)="download.emit()"></button>
|
811
|
-
<button
|
812
|
-
*ngSwitchCase="'print'"
|
813
|
-
type="button"
|
814
|
-
fillMode="flat"
|
815
|
-
kendoPDFViewerToolbarFocusable
|
816
|
-
kendoButton
|
817
|
-
class="k-toolbar-button"
|
818
|
-
icon="print"
|
819
|
-
[svgIcon]="printIcon"
|
820
|
-
[disabled]="disabledTools"
|
821
|
-
[attr.title]="messageFor('printTitle')"
|
822
|
-
[attr.aria-label]="messageFor('printTitle')"
|
823
|
-
(click)="print.emit()"></button>
|
937
|
+
icon="track-changes"
|
938
|
+
[selected]="isAnnotationsToolbarVisible"
|
939
|
+
[disabled]="disabledTools || !isSelectionEnabled"
|
940
|
+
[attr.title]="messageFor('annotationsTitle')"
|
941
|
+
[attr.aria-label]="messageFor('annotationsTitle')"
|
942
|
+
[attr.aria-controls]="wrapperId"
|
943
|
+
[attr.aria-expanded]="isAnnotationsToolbarVisible"
|
944
|
+
[svgIcon]="trackChangesIcon"
|
945
|
+
(click)="toggleAnnotationsToolbar.emit();"></button>
|
946
|
+
</ng-container>
|
824
947
|
</ng-container>
|
825
948
|
</ng-container>
|
949
|
+
<ng-container *ngIf="type === 'annotations'">
|
950
|
+
<button
|
951
|
+
type="button"
|
952
|
+
kendoPDFViewerToolbarFocusable
|
953
|
+
kendoButton
|
954
|
+
class="k-toolbar-button"
|
955
|
+
fillMode="flat"
|
956
|
+
icon="highlight"
|
957
|
+
[selected]="isHighlightMode"
|
958
|
+
[disabled]="disabledTools"
|
959
|
+
[attr.title]="messageFor('highlightAnnotationTitle')"
|
960
|
+
[attr.aria-label]="messageFor('highlightAnnotationTitle')"
|
961
|
+
aria-haspopup="dialog"
|
962
|
+
[svgIcon]="highlightIcon"
|
963
|
+
(click)="onHighlightClick()"></button>
|
964
|
+
<div class="k-toolbar-separator k-separator"></div>
|
965
|
+
<button
|
966
|
+
type="button"
|
967
|
+
fillMode="flat"
|
968
|
+
kendoPDFViewerToolbarFocusable
|
969
|
+
kendoButton
|
970
|
+
[selected]="isFreeTextMode"
|
971
|
+
class="k-toolbar-button"
|
972
|
+
fillMode="flat"
|
973
|
+
icon="free-text"
|
974
|
+
[svgIcon]="freeTextIcon"
|
975
|
+
[attr.title]="messageFor('freeTextAnnotationTitle')"
|
976
|
+
[attr.aria-label]="messageFor('freeTextAnnotationTitle')"
|
977
|
+
[attr.aria-controls]="pagesContainerId"
|
978
|
+
(click)="onFreeTextClick()">
|
979
|
+
</button>
|
980
|
+
<span class="k-spacer"></span>
|
981
|
+
<button
|
982
|
+
type="button"
|
983
|
+
fillMode="flat"
|
984
|
+
kendoPDFViewerToolbarFocusable
|
985
|
+
kendoButton
|
986
|
+
class="k-toolbar-button"
|
987
|
+
fillMode="flat"
|
988
|
+
icon="x"
|
989
|
+
[svgIcon]="xIcon"
|
990
|
+
[attr.title]="messageFor('closeAnnotationsToolbarTitle')"
|
991
|
+
[attr.aria-label]="messageFor('closeAnnotationsToolbarTitle')"
|
992
|
+
[attr.aria-controls]="pagesContainerId"
|
993
|
+
(click)="toggleAnnotationsToolbar.emit();">
|
994
|
+
</button>
|
995
|
+
</ng-container>
|
826
996
|
<input
|
827
997
|
#fileSelectEl
|
828
|
-
*ngIf="tools?.indexOf('open') > -1;"
|
998
|
+
*ngIf="type === 'tools' &&tools?.indexOf('open') > -1;"
|
829
999
|
type="file"
|
830
1000
|
[style.display]="'none'"
|
831
1001
|
aria-hidden="true"
|
@@ -839,183 +1009,249 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
839
1009
|
selector: '[kendoPDFViewerToolbar]',
|
840
1010
|
providers: [ToolbarNavigationService],
|
841
1011
|
template: `
|
842
|
-
<ng-container *
|
843
|
-
<ng-container
|
844
|
-
<
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
1012
|
+
<ng-container *ngIf="type === 'tools'">
|
1013
|
+
<ng-container *ngFor="let tool of tools">
|
1014
|
+
<ng-container [ngSwitch]="tool">
|
1015
|
+
<kendo-toolbar-input-wrapper
|
1016
|
+
*ngSwitchCase="'pager'"
|
1017
|
+
kendoPDFViewerToolbarFocusable
|
1018
|
+
[toolbarTool]="pager">
|
1019
|
+
<kendo-datapager
|
1020
|
+
#pager
|
1021
|
+
[attr.aria-controls]="pagesContainerId"
|
1022
|
+
[attr.aria-label]="messageFor('page') + ' ' + (skip + 1) + ' ' + messageFor('of') + total"
|
1023
|
+
[class.k-disabled]="disabledTools"
|
1024
|
+
[navigable]="true"
|
1025
|
+
[pageSize]="pageSize"
|
1026
|
+
[skip]="skip"
|
1027
|
+
[total]="total"
|
1028
|
+
[pageSizeValues]="false"
|
1029
|
+
[info]="false"
|
1030
|
+
[type]="pagerType"
|
1031
|
+
(pageChange)="pageChange.emit($event)">
|
1032
|
+
<kendo-datapager-messages
|
1033
|
+
[firstPage]="messageFor('pagerFirstPage')"
|
1034
|
+
[previousPage]="messageFor('pagerPreviousPage')"
|
1035
|
+
[nextPage]="messageFor('pagerNextPage')"
|
1036
|
+
[lastPage]="messageFor('pagerLastPage')"
|
1037
|
+
[inputLabel]="messageFor('pagerInputLabel')"
|
1038
|
+
[pageNumberInputTitle]="messageFor('pagerInputTitle')"
|
1039
|
+
[of]="messageFor('pagerOf')"
|
1040
|
+
[page]="messageFor('pagerPage')"></kendo-datapager-messages>
|
1041
|
+
</kendo-datapager>
|
1042
|
+
</kendo-toolbar-input-wrapper>
|
1043
|
+
<span
|
1044
|
+
*ngSwitchCase="'spacer'"
|
1045
|
+
class="k-spacer"></span>
|
1046
|
+
<kendo-buttongroup
|
1047
|
+
*ngSwitchCase="'zoomInOut'"
|
850
1048
|
[attr.aria-controls]="pagesContainerId"
|
851
|
-
|
852
|
-
[
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
[
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
1049
|
+
class="k-button-group-flat k-toolbar-button-group"
|
1050
|
+
[navigable]="false">
|
1051
|
+
<button
|
1052
|
+
type="button"
|
1053
|
+
kendoButton
|
1054
|
+
fillMode="flat"
|
1055
|
+
kendoPDFViewerToolbarFocusable
|
1056
|
+
icon="zoom-out"
|
1057
|
+
[disabled]="disabledTools || zoomOutDisabled"
|
1058
|
+
[svgIcon]="zoomOutIcon"
|
1059
|
+
[attr.title]="messageFor('zoomOutTitle')"
|
1060
|
+
[attr.aria-label]="messageFor('zoomOutTitle')"
|
1061
|
+
(click)="zoomOut.emit()"></button>
|
1062
|
+
<button
|
1063
|
+
type="button"
|
1064
|
+
kendoButton
|
1065
|
+
fillMode="flat"
|
1066
|
+
kendoPDFViewerToolbarFocusable
|
1067
|
+
icon="zoom-in"
|
1068
|
+
[disabled]="disabledTools || zoomInDisabled"
|
1069
|
+
[svgIcon]="zoomInIcon"
|
1070
|
+
[attr.title]="messageFor('zoomInTitle')"
|
1071
|
+
[attr.aria-label]="messageFor('zoomInTitle')"
|
1072
|
+
(click)="zoomIn.emit()"></button>
|
1073
|
+
</kendo-buttongroup>
|
1074
|
+
<kendo-toolbar-input-wrapper
|
1075
|
+
*ngSwitchCase="'zoom'"
|
1076
|
+
kendoPDFViewerToolbarFocusable
|
1077
|
+
[toolbarTool]="combobox">
|
1078
|
+
<kendo-combobox
|
1079
|
+
#combobox
|
1080
|
+
kendoPDFViewerComboBox
|
1081
|
+
class="k-toolbar-combobox"
|
1082
|
+
fillMode="flat"
|
1083
|
+
[attr.aria-controls]="pagesContainerId"
|
1084
|
+
[tabindex]="-1"
|
1085
|
+
[data]="zoomOptionsData"
|
1086
|
+
[disabled]="disabledTools"
|
1087
|
+
[placeholder]="messageFor('zoomInputPlaceholder')"
|
1088
|
+
textField="displayValue"
|
1089
|
+
valueField="id"
|
1090
|
+
[value]="zoomLevelChooserValue"
|
1091
|
+
[allowCustom]="true"
|
1092
|
+
[valueNormalizer]="valueNormalizer"
|
1093
|
+
[clearButton]="false"
|
1094
|
+
(valueChange)="onZoomLevelChooserValueChange($event)">
|
1095
|
+
<ng-template kendoComboBoxItemTemplate let-dataItem>
|
1096
|
+
{{ dataItem.type ? messageFor('f' + dataItem.type.slice(1)) : dataItem.text }}
|
1097
|
+
</ng-template>
|
1098
|
+
</kendo-combobox>
|
1099
|
+
</kendo-toolbar-input-wrapper>
|
1100
|
+
<kendo-buttongroup
|
1101
|
+
*ngSwitchCase="'selection'"
|
1102
|
+
[attr.aria-controls]="pagesContainerId"
|
1103
|
+
[navigable]="false"
|
1104
|
+
class="k-button-group-flat k-toolbar-button-group"
|
1105
|
+
selection="single">
|
1106
|
+
<button
|
1107
|
+
type="button"
|
1108
|
+
kendoButton
|
1109
|
+
kendoPDFViewerToolbarFocusable
|
1110
|
+
fillMode="flat"
|
1111
|
+
icon="pointer"
|
1112
|
+
[toggleable]="true"
|
1113
|
+
[svgIcon]="pointerIcon"
|
1114
|
+
[attr.title]="messageFor('selectionTitle')"
|
1115
|
+
[attr.aria-label]="messageFor('selectionTitle')"
|
1116
|
+
(click)="selectionEnabled.emit(); isSelectionEnabled = true;"></button>
|
1117
|
+
<button
|
1118
|
+
type="button"
|
1119
|
+
kendoButton
|
1120
|
+
kendoPDFViewerToolbarFocusable
|
1121
|
+
fillMode="flat"
|
1122
|
+
icon="hand"
|
1123
|
+
[svgIcon]="handIcon"
|
1124
|
+
[toggleable]="true"
|
1125
|
+
[selected]="true"
|
1126
|
+
[attr.title]="messageFor('panningTitle')"
|
1127
|
+
[attr.aria-label]="messageFor('panningTitle')"
|
1128
|
+
(click)="panningEnabled.emit(); isSelectionEnabled = false;"></button>
|
1129
|
+
</kendo-buttongroup>
|
880
1130
|
<button
|
1131
|
+
*ngSwitchCase="'search'"
|
881
1132
|
type="button"
|
1133
|
+
kendoPDFViewerToolbarFocusable
|
882
1134
|
kendoButton
|
1135
|
+
class="k-toolbar-button"
|
883
1136
|
fillMode="flat"
|
884
|
-
|
885
|
-
|
886
|
-
[
|
887
|
-
[
|
888
|
-
|
889
|
-
[
|
890
|
-
(click)="
|
1137
|
+
icon="search"
|
1138
|
+
[disabled]="disabledTools"
|
1139
|
+
[attr.title]="messageFor('searchTitle')"
|
1140
|
+
[attr.aria-label]="messageFor('searchTitle')"
|
1141
|
+
aria-haspopup="dialog"
|
1142
|
+
[svgIcon]="searchIcon"
|
1143
|
+
(click)="search.emit()"></button>
|
891
1144
|
<button
|
1145
|
+
*ngSwitchCase="'open'"
|
892
1146
|
type="button"
|
893
|
-
kendoButton
|
894
1147
|
fillMode="flat"
|
895
1148
|
kendoPDFViewerToolbarFocusable
|
896
|
-
|
897
|
-
|
898
|
-
[svgIcon]="zoomInIcon"
|
899
|
-
[attr.title]="messageFor('zoomInTitle')"
|
900
|
-
[attr.aria-label]="messageFor('zoomInTitle')"
|
901
|
-
(click)="zoomIn.emit()"></button>
|
902
|
-
</kendo-buttongroup>
|
903
|
-
<kendo-toolbar-input-wrapper
|
904
|
-
*ngSwitchCase="'zoom'"
|
905
|
-
kendoPDFViewerToolbarFocusable
|
906
|
-
[toolbarTool]="combobox">
|
907
|
-
<kendo-combobox
|
908
|
-
#combobox
|
909
|
-
kendoPDFViewerComboBox
|
910
|
-
class="k-toolbar-combobox"
|
1149
|
+
kendoButton
|
1150
|
+
class="k-toolbar-button"
|
911
1151
|
fillMode="flat"
|
1152
|
+
icon="folder-open"
|
1153
|
+
[svgIcon]="folderOpenIcon"
|
1154
|
+
[attr.title]="messageFor('openTitle')"
|
1155
|
+
[attr.aria-label]="messageFor('openTitle')"
|
912
1156
|
[attr.aria-controls]="pagesContainerId"
|
913
|
-
|
914
|
-
|
915
|
-
[disabled]="disabledTools"
|
916
|
-
[placeholder]="messageFor('zoomInputPlaceholder')"
|
917
|
-
textField="displayValue"
|
918
|
-
valueField="id"
|
919
|
-
[value]="zoomLevelChooserValue"
|
920
|
-
[allowCustom]="true"
|
921
|
-
[valueNormalizer]="valueNormalizer"
|
922
|
-
[clearButton]="false"
|
923
|
-
(valueChange)="onZoomLevelChooserValueChange($event)">
|
924
|
-
<ng-template kendoComboBoxItemTemplate let-dataItem>
|
925
|
-
{{ dataItem.type ? messageFor('f' + dataItem.type.slice(1)) : dataItem.text }}
|
926
|
-
</ng-template>
|
927
|
-
</kendo-combobox>
|
928
|
-
</kendo-toolbar-input-wrapper>
|
929
|
-
<kendo-buttongroup
|
930
|
-
*ngSwitchCase="'selection'"
|
931
|
-
[attr.aria-controls]="pagesContainerId"
|
932
|
-
[navigable]="false"
|
933
|
-
class="k-button-group-flat k-toolbar-button-group"
|
934
|
-
selection="single">
|
1157
|
+
(click)="fileSelectEl?.nativeElement.click()">
|
1158
|
+
</button>
|
935
1159
|
<button
|
1160
|
+
*ngSwitchCase="'download'"
|
936
1161
|
type="button"
|
937
|
-
kendoButton
|
938
|
-
kendoPDFViewerToolbarFocusable
|
939
1162
|
fillMode="flat"
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
[
|
945
|
-
|
1163
|
+
kendoPDFViewerToolbarFocusable
|
1164
|
+
kendoButton
|
1165
|
+
class="k-toolbar-button"
|
1166
|
+
icon="download"
|
1167
|
+
[svgIcon]="downloadIcon"
|
1168
|
+
[disabled]="disabledTools"
|
1169
|
+
[attr.title]="messageFor('downloadTitle')"
|
1170
|
+
[attr.aria-label]="messageFor('downloadTitle')"
|
1171
|
+
(click)="download.emit()"></button>
|
946
1172
|
<button
|
1173
|
+
*ngSwitchCase="'print'"
|
947
1174
|
type="button"
|
1175
|
+
fillMode="flat"
|
1176
|
+
kendoPDFViewerToolbarFocusable
|
948
1177
|
kendoButton
|
1178
|
+
class="k-toolbar-button"
|
1179
|
+
icon="print"
|
1180
|
+
[svgIcon]="printIcon"
|
1181
|
+
[disabled]="disabledTools"
|
1182
|
+
[attr.title]="messageFor('printTitle')"
|
1183
|
+
[attr.aria-label]="messageFor('printTitle')"
|
1184
|
+
(click)="print.emit()"></button>
|
1185
|
+
<button
|
1186
|
+
*ngSwitchCase="'annotations'"
|
1187
|
+
type="button"
|
1188
|
+
[attr.id]="annotationsToolId"
|
949
1189
|
kendoPDFViewerToolbarFocusable
|
1190
|
+
kendoButton
|
1191
|
+
class="k-toolbar-button"
|
950
1192
|
fillMode="flat"
|
951
|
-
icon="
|
952
|
-
[
|
953
|
-
[
|
954
|
-
[
|
955
|
-
[attr.
|
956
|
-
[attr.aria-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
type="button"
|
962
|
-
kendoPDFViewerToolbarFocusable
|
963
|
-
kendoButton
|
964
|
-
class="k-toolbar-button"
|
965
|
-
fillMode="flat"
|
966
|
-
icon="search"
|
967
|
-
[disabled]="disabledTools"
|
968
|
-
[attr.title]="messageFor('searchTitle')"
|
969
|
-
[attr.aria-label]="messageFor('searchTitle')"
|
970
|
-
aria-haspopup="dialog"
|
971
|
-
[svgIcon]="searchIcon"
|
972
|
-
(click)="search.emit()"></button>
|
973
|
-
<button
|
974
|
-
*ngSwitchCase="'open'"
|
975
|
-
type="button"
|
976
|
-
fillMode="flat"
|
977
|
-
kendoPDFViewerToolbarFocusable
|
978
|
-
kendoButton
|
979
|
-
class="k-toolbar-button"
|
980
|
-
fillMode="flat"
|
981
|
-
icon="folder-open"
|
982
|
-
[svgIcon]="folderOpenIcon"
|
983
|
-
[attr.title]="messageFor('openTitle')"
|
984
|
-
[attr.aria-label]="messageFor('openTitle')"
|
985
|
-
[attr.aria-controls]="pagesContainerId"
|
986
|
-
(click)="fileSelectEl?.nativeElement.click()">
|
987
|
-
</button>
|
988
|
-
<button
|
989
|
-
*ngSwitchCase="'download'"
|
990
|
-
type="button"
|
991
|
-
fillMode="flat"
|
992
|
-
kendoPDFViewerToolbarFocusable
|
993
|
-
kendoButton
|
994
|
-
class="k-toolbar-button"
|
995
|
-
icon="download"
|
996
|
-
[svgIcon]="downloadIcon"
|
997
|
-
[disabled]="disabledTools"
|
998
|
-
[attr.title]="messageFor('downloadTitle')"
|
999
|
-
[attr.aria-label]="messageFor('downloadTitle')"
|
1000
|
-
(click)="download.emit()"></button>
|
1001
|
-
<button
|
1002
|
-
*ngSwitchCase="'print'"
|
1003
|
-
type="button"
|
1004
|
-
fillMode="flat"
|
1005
|
-
kendoPDFViewerToolbarFocusable
|
1006
|
-
kendoButton
|
1007
|
-
class="k-toolbar-button"
|
1008
|
-
icon="print"
|
1009
|
-
[svgIcon]="printIcon"
|
1010
|
-
[disabled]="disabledTools"
|
1011
|
-
[attr.title]="messageFor('printTitle')"
|
1012
|
-
[attr.aria-label]="messageFor('printTitle')"
|
1013
|
-
(click)="print.emit()"></button>
|
1193
|
+
icon="track-changes"
|
1194
|
+
[selected]="isAnnotationsToolbarVisible"
|
1195
|
+
[disabled]="disabledTools || !isSelectionEnabled"
|
1196
|
+
[attr.title]="messageFor('annotationsTitle')"
|
1197
|
+
[attr.aria-label]="messageFor('annotationsTitle')"
|
1198
|
+
[attr.aria-controls]="wrapperId"
|
1199
|
+
[attr.aria-expanded]="isAnnotationsToolbarVisible"
|
1200
|
+
[svgIcon]="trackChangesIcon"
|
1201
|
+
(click)="toggleAnnotationsToolbar.emit();"></button>
|
1202
|
+
</ng-container>
|
1014
1203
|
</ng-container>
|
1015
1204
|
</ng-container>
|
1205
|
+
<ng-container *ngIf="type === 'annotations'">
|
1206
|
+
<button
|
1207
|
+
type="button"
|
1208
|
+
kendoPDFViewerToolbarFocusable
|
1209
|
+
kendoButton
|
1210
|
+
class="k-toolbar-button"
|
1211
|
+
fillMode="flat"
|
1212
|
+
icon="highlight"
|
1213
|
+
[selected]="isHighlightMode"
|
1214
|
+
[disabled]="disabledTools"
|
1215
|
+
[attr.title]="messageFor('highlightAnnotationTitle')"
|
1216
|
+
[attr.aria-label]="messageFor('highlightAnnotationTitle')"
|
1217
|
+
aria-haspopup="dialog"
|
1218
|
+
[svgIcon]="highlightIcon"
|
1219
|
+
(click)="onHighlightClick()"></button>
|
1220
|
+
<div class="k-toolbar-separator k-separator"></div>
|
1221
|
+
<button
|
1222
|
+
type="button"
|
1223
|
+
fillMode="flat"
|
1224
|
+
kendoPDFViewerToolbarFocusable
|
1225
|
+
kendoButton
|
1226
|
+
[selected]="isFreeTextMode"
|
1227
|
+
class="k-toolbar-button"
|
1228
|
+
fillMode="flat"
|
1229
|
+
icon="free-text"
|
1230
|
+
[svgIcon]="freeTextIcon"
|
1231
|
+
[attr.title]="messageFor('freeTextAnnotationTitle')"
|
1232
|
+
[attr.aria-label]="messageFor('freeTextAnnotationTitle')"
|
1233
|
+
[attr.aria-controls]="pagesContainerId"
|
1234
|
+
(click)="onFreeTextClick()">
|
1235
|
+
</button>
|
1236
|
+
<span class="k-spacer"></span>
|
1237
|
+
<button
|
1238
|
+
type="button"
|
1239
|
+
fillMode="flat"
|
1240
|
+
kendoPDFViewerToolbarFocusable
|
1241
|
+
kendoButton
|
1242
|
+
class="k-toolbar-button"
|
1243
|
+
fillMode="flat"
|
1244
|
+
icon="x"
|
1245
|
+
[svgIcon]="xIcon"
|
1246
|
+
[attr.title]="messageFor('closeAnnotationsToolbarTitle')"
|
1247
|
+
[attr.aria-label]="messageFor('closeAnnotationsToolbarTitle')"
|
1248
|
+
[attr.aria-controls]="pagesContainerId"
|
1249
|
+
(click)="toggleAnnotationsToolbar.emit();">
|
1250
|
+
</button>
|
1251
|
+
</ng-container>
|
1016
1252
|
<input
|
1017
1253
|
#fileSelectEl
|
1018
|
-
*ngIf="tools?.indexOf('open') > -1;"
|
1254
|
+
*ngIf="type === 'tools' &&tools?.indexOf('open') > -1;"
|
1019
1255
|
type="file"
|
1020
1256
|
[style.display]="'none'"
|
1021
1257
|
aria-hidden="true"
|
@@ -1061,6 +1297,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
1061
1297
|
type: Input
|
1062
1298
|
}], tools: [{
|
1063
1299
|
type: Input
|
1300
|
+
}], type: [{
|
1301
|
+
type: Input
|
1302
|
+
}], wrapperId: [{
|
1303
|
+
type: Input
|
1304
|
+
}], isAnnotationsToolbarVisible: [{
|
1305
|
+
type: Input
|
1306
|
+
}], annotationsToolId: [{
|
1307
|
+
type: Input
|
1064
1308
|
}], fileSelect: [{
|
1065
1309
|
type: Output
|
1066
1310
|
}], fileSelectStart: [{
|
@@ -1085,6 +1329,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
1085
1329
|
type: Output
|
1086
1330
|
}], search: [{
|
1087
1331
|
type: Output
|
1332
|
+
}], toggleAnnotationsToolbar: [{
|
1333
|
+
type: Output
|
1334
|
+
}], setAnnotationMode: [{
|
1335
|
+
type: Output
|
1088
1336
|
}] } });
|
1089
1337
|
|
1090
1338
|
/**
|
@@ -1341,6 +1589,198 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
1341
1589
|
}]
|
1342
1590
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
1343
1591
|
|
1592
|
+
/**
|
1593
|
+
* @hidden
|
1594
|
+
*/
|
1595
|
+
const AnnotationEditorTypes = {
|
1596
|
+
disable: -1,
|
1597
|
+
none: 0,
|
1598
|
+
freeText: 3,
|
1599
|
+
highlight: 9
|
1600
|
+
};
|
1601
|
+
|
1602
|
+
/**
|
1603
|
+
* @hidden
|
1604
|
+
*/
|
1605
|
+
class AnnotationPopupToolbarContentComponent {
|
1606
|
+
dialogService;
|
1607
|
+
ngZone;
|
1608
|
+
hostClasses = true;
|
1609
|
+
paletteIcon = paletteIcon;
|
1610
|
+
trashIcon = trashIcon;
|
1611
|
+
localizationService;
|
1612
|
+
pdfViewerWidget;
|
1613
|
+
anchor;
|
1614
|
+
annotationEditorType;
|
1615
|
+
popupRef;
|
1616
|
+
showToolbar = true;
|
1617
|
+
initialColor;
|
1618
|
+
fontSizes = fontSizes;
|
1619
|
+
initialFontSize;
|
1620
|
+
dialogContainer;
|
1621
|
+
removeAnnotationConfirmation;
|
1622
|
+
dialogResultSub;
|
1623
|
+
constructor(dialogService, ngZone) {
|
1624
|
+
this.dialogService = dialogService;
|
1625
|
+
this.ngZone = ngZone;
|
1626
|
+
}
|
1627
|
+
ngOnDestroy() {
|
1628
|
+
if (this.dialogResultSub) {
|
1629
|
+
this.dialogResultSub.unsubscribe();
|
1630
|
+
}
|
1631
|
+
}
|
1632
|
+
editAnnotation() {
|
1633
|
+
this.popupRef.popup.setInput('popupClass', 'k-pdf-viewer-annotation-editor');
|
1634
|
+
this.hostClasses = false;
|
1635
|
+
this.ngZone.run(() => this.showToolbar = false);
|
1636
|
+
}
|
1637
|
+
deleteAnnotation() {
|
1638
|
+
const removeItem = (shouldRemove) => {
|
1639
|
+
if (shouldRemove) {
|
1640
|
+
this.pdfViewerWidget.deleteAnnotation();
|
1641
|
+
}
|
1642
|
+
};
|
1643
|
+
if (this.removeAnnotationConfirmation) {
|
1644
|
+
this.ngZone.run(() => {
|
1645
|
+
const dialog = this.dialogService.open({
|
1646
|
+
appendTo: this.dialogContainer,
|
1647
|
+
title: this.localizationService.get('deleteAnnotationConfirmationDialogTitle'),
|
1648
|
+
content: this.localizationService.get('deleteAnnotationConfirmationDialogContent'),
|
1649
|
+
actions: [{
|
1650
|
+
text: this.localizationService.get('deleteAnnotationConfirmationDialogConfirmText'),
|
1651
|
+
themeColor: 'primary',
|
1652
|
+
svgIcon: checkIcon,
|
1653
|
+
icon: 'check'
|
1654
|
+
}, {
|
1655
|
+
text: this.localizationService.get('deleteAnnotationConfirmationDialogRejectText'),
|
1656
|
+
svgIcon: xIcon,
|
1657
|
+
icon: 'x'
|
1658
|
+
}],
|
1659
|
+
});
|
1660
|
+
this.dialogResultSub = dialog.result.pipe(take(1)).subscribe((e) => {
|
1661
|
+
const shouldRemove = e.text === (this.localizationService.get('deleteAnnotationConfirmationDialogConfirmText'));
|
1662
|
+
removeItem(shouldRemove);
|
1663
|
+
this.dialogResultSub.unsubscribe();
|
1664
|
+
this.dialogResultSub = null;
|
1665
|
+
});
|
1666
|
+
});
|
1667
|
+
}
|
1668
|
+
else {
|
1669
|
+
removeItem(true);
|
1670
|
+
}
|
1671
|
+
}
|
1672
|
+
onColorValueChange(value) {
|
1673
|
+
this.pdfViewerWidget[this.annotationEditorType === 'highlight' ? 'setHighlightColor' : 'setFreeTextColor'](value);
|
1674
|
+
}
|
1675
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnotationPopupToolbarContentComponent, deps: [{ token: i1$2.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
1676
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AnnotationPopupToolbarContentComponent, isStandalone: true, selector: "[kendoPDFViewerAnnotationPopupToolbar]", host: { properties: { "class.k-toolbar": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "class.k-toolbar-flat": "this.hostClasses" } }, providers: [DialogService], ngImport: i0, template: `
|
1677
|
+
<ng-container *ngIf="showToolbar">
|
1678
|
+
<button
|
1679
|
+
kendoButton
|
1680
|
+
[attr.title]="localizationService?.get('annotationEditorTitle')"
|
1681
|
+
[attr.aria-label]="localizationService?.get('annotationEditorTitle')"
|
1682
|
+
[svgIcon]="paletteIcon"
|
1683
|
+
icon="palette"
|
1684
|
+
fillMode="flat"
|
1685
|
+
type="button"
|
1686
|
+
(click)="editAnnotation()"></button>
|
1687
|
+
<button
|
1688
|
+
kendoButton
|
1689
|
+
[attr.title]="localizationService?.get('deleteAnnotationTitle')"
|
1690
|
+
[attr.aria-label]="localizationService?.get('deleteAnnotationTitle')"
|
1691
|
+
[svgIcon]="trashIcon"
|
1692
|
+
icon="trash"
|
1693
|
+
fillMode="flat"
|
1694
|
+
type="button"
|
1695
|
+
(click)="deleteAnnotation()"></button>
|
1696
|
+
</ng-container>
|
1697
|
+
<ng-container *ngIf="!showToolbar">
|
1698
|
+
<ng-container *ngIf="annotationEditorType === 'freeText'">
|
1699
|
+
<span class="k-column-menu-group-header">
|
1700
|
+
<span id="text-font-size-label" class="k-column-menu-group-header-text">{{ localizationService?.get('annotationEditorFontSizeTitle') }}</span>
|
1701
|
+
</span>
|
1702
|
+
<kendo-dropdownlist
|
1703
|
+
[data]="fontSizes"
|
1704
|
+
[value]="initialFontSize"
|
1705
|
+
(valueChange)="pdfViewerWidget.setFreeTextFontSize($event)"
|
1706
|
+
fillMode="flat"
|
1707
|
+
aria-labelledby="text-font-size-label"></kendo-dropdownlist>
|
1708
|
+
</ng-container>
|
1709
|
+
<span class="k-column-menu-group-header">
|
1710
|
+
<label [for]="flatColorPicker" class="k-column-menu-group-header-text">{{ localizationService?.get('annotationEditorColorTitle') }}</label>
|
1711
|
+
</span>
|
1712
|
+
<kendo-flatcolorpicker
|
1713
|
+
#flatColorPicker
|
1714
|
+
[preview]="false"
|
1715
|
+
[value]="initialColor"
|
1716
|
+
(valueChange)="onColorValueChange($event)"
|
1717
|
+
fillMode="flat"></kendo-flatcolorpicker>
|
1718
|
+
<ng-container>
|
1719
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i3.FlatColorPickerComponent, selector: "kendo-flatcolorpicker", inputs: ["readonly", "disabled", "format", "value", "tabindex", "clearButton", "preview", "actionsLayout", "activeView", "views", "gradientSettings", "adaptiveMode", "paletteSettings", "size"], outputs: ["valueChange", "cancel", "activeViewChange", "clearButtonClick", "actionButtonClick"], exportAs: ["kendoFlatColorPicker"] }, { kind: "component", type: i1$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
1720
|
+
}
|
1721
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnotationPopupToolbarContentComponent, decorators: [{
|
1722
|
+
type: Component,
|
1723
|
+
args: [{
|
1724
|
+
selector: '[kendoPDFViewerAnnotationPopupToolbar]',
|
1725
|
+
standalone: true,
|
1726
|
+
providers: [DialogService],
|
1727
|
+
imports: [KENDO_BUTTON, KENDO_FLATCOLORPICKER, KENDO_DROPDOWNLIST, NgIf],
|
1728
|
+
template: `
|
1729
|
+
<ng-container *ngIf="showToolbar">
|
1730
|
+
<button
|
1731
|
+
kendoButton
|
1732
|
+
[attr.title]="localizationService?.get('annotationEditorTitle')"
|
1733
|
+
[attr.aria-label]="localizationService?.get('annotationEditorTitle')"
|
1734
|
+
[svgIcon]="paletteIcon"
|
1735
|
+
icon="palette"
|
1736
|
+
fillMode="flat"
|
1737
|
+
type="button"
|
1738
|
+
(click)="editAnnotation()"></button>
|
1739
|
+
<button
|
1740
|
+
kendoButton
|
1741
|
+
[attr.title]="localizationService?.get('deleteAnnotationTitle')"
|
1742
|
+
[attr.aria-label]="localizationService?.get('deleteAnnotationTitle')"
|
1743
|
+
[svgIcon]="trashIcon"
|
1744
|
+
icon="trash"
|
1745
|
+
fillMode="flat"
|
1746
|
+
type="button"
|
1747
|
+
(click)="deleteAnnotation()"></button>
|
1748
|
+
</ng-container>
|
1749
|
+
<ng-container *ngIf="!showToolbar">
|
1750
|
+
<ng-container *ngIf="annotationEditorType === 'freeText'">
|
1751
|
+
<span class="k-column-menu-group-header">
|
1752
|
+
<span id="text-font-size-label" class="k-column-menu-group-header-text">{{ localizationService?.get('annotationEditorFontSizeTitle') }}</span>
|
1753
|
+
</span>
|
1754
|
+
<kendo-dropdownlist
|
1755
|
+
[data]="fontSizes"
|
1756
|
+
[value]="initialFontSize"
|
1757
|
+
(valueChange)="pdfViewerWidget.setFreeTextFontSize($event)"
|
1758
|
+
fillMode="flat"
|
1759
|
+
aria-labelledby="text-font-size-label"></kendo-dropdownlist>
|
1760
|
+
</ng-container>
|
1761
|
+
<span class="k-column-menu-group-header">
|
1762
|
+
<label [for]="flatColorPicker" class="k-column-menu-group-header-text">{{ localizationService?.get('annotationEditorColorTitle') }}</label>
|
1763
|
+
</span>
|
1764
|
+
<kendo-flatcolorpicker
|
1765
|
+
#flatColorPicker
|
1766
|
+
[preview]="false"
|
1767
|
+
[value]="initialColor"
|
1768
|
+
(valueChange)="onColorValueChange($event)"
|
1769
|
+
fillMode="flat"></kendo-flatcolorpicker>
|
1770
|
+
<ng-container>
|
1771
|
+
`
|
1772
|
+
}]
|
1773
|
+
}], ctorParameters: function () { return [{ type: i1$2.DialogService }, { type: i0.NgZone }]; }, propDecorators: { hostClasses: [{
|
1774
|
+
type: HostBinding,
|
1775
|
+
args: ['class.k-toolbar']
|
1776
|
+
}, {
|
1777
|
+
type: HostBinding,
|
1778
|
+
args: ['class.k-toolbar-md']
|
1779
|
+
}, {
|
1780
|
+
type: HostBinding,
|
1781
|
+
args: ['class.k-toolbar-flat']
|
1782
|
+
}] } });
|
1783
|
+
|
1344
1784
|
let counter = 0;
|
1345
1785
|
/**
|
1346
1786
|
* Represents the [Kendo UI PDFViewer component for Angular](slug:overview_pdfviewer).
|
@@ -1363,11 +1803,13 @@ class PDFViewerComponent {
|
|
1363
1803
|
localizationService;
|
1364
1804
|
cdr;
|
1365
1805
|
host;
|
1806
|
+
popupService;
|
1366
1807
|
hostClass = true;
|
1367
1808
|
direction;
|
1809
|
+
display = 'flex';
|
1368
1810
|
/**
|
1369
1811
|
* Represents the tools collection rendered in the toolbar.
|
1370
|
-
* @default ['pager', 'spacer', 'zoomInOut', 'zoom', 'selection', 'spacer', 'search', 'open', 'download', 'print' ]
|
1812
|
+
* @default ['pager', 'spacer', 'zoomInOut', 'zoom', 'selection', 'spacer', 'search', 'open', 'download', 'print', 'annotations' ]
|
1371
1813
|
*/
|
1372
1814
|
tools = [
|
1373
1815
|
'pager',
|
@@ -1379,7 +1821,8 @@ class PDFViewerComponent {
|
|
1379
1821
|
'search',
|
1380
1822
|
'open',
|
1381
1823
|
'download',
|
1382
|
-
'print'
|
1824
|
+
'print',
|
1825
|
+
'annotations'
|
1383
1826
|
];
|
1384
1827
|
/**
|
1385
1828
|
* The configuration of the internal Loader component.
|
@@ -1464,6 +1907,12 @@ class PDFViewerComponent {
|
|
1464
1907
|
* @default 1
|
1465
1908
|
*/
|
1466
1909
|
loadOnDemandPageSize = 1;
|
1910
|
+
/**
|
1911
|
+
* Determines whether a confirmation dialog is shown when the user tries to delete an annotation.
|
1912
|
+
*
|
1913
|
+
* @default true
|
1914
|
+
*/
|
1915
|
+
removeAnnotationConfirmation = true;
|
1467
1916
|
/**
|
1468
1917
|
* Fires when the component loads a PDF document successfully.
|
1469
1918
|
*/
|
@@ -1485,6 +1934,8 @@ class PDFViewerComponent {
|
|
1485
1934
|
*/
|
1486
1935
|
zoomLevelChange = new EventEmitter();
|
1487
1936
|
pagesContainer;
|
1937
|
+
pagesContainerViewContainerRef;
|
1938
|
+
dialogContainerViewContainerRef;
|
1488
1939
|
/**
|
1489
1940
|
* Returns the current page number of the loaded PDF document.
|
1490
1941
|
*/
|
@@ -1519,17 +1970,30 @@ class PDFViewerComponent {
|
|
1519
1970
|
}
|
1520
1971
|
return `k-pdfviewer-${counter}-pages-container`;
|
1521
1972
|
}
|
1973
|
+
/**
|
1974
|
+
* @hidden
|
1975
|
+
*/
|
1976
|
+
get annotationsToolbarId() {
|
1977
|
+
return `k-pdfviewer-${counter}-annotations-toolbar`;
|
1978
|
+
}
|
1979
|
+
/**
|
1980
|
+
* @hidden
|
1981
|
+
*/
|
1982
|
+
get annotationsToolId() {
|
1983
|
+
return `k-pdfviewer-${counter}-annotations-button`;
|
1984
|
+
}
|
1522
1985
|
loading = false;
|
1523
1986
|
searchActive = false;
|
1524
1987
|
matchCase = false;
|
1525
1988
|
currentMatches = [];
|
1526
1989
|
currentMatch;
|
1990
|
+
showAnnotationsToolbar = false;
|
1527
1991
|
/**
|
1528
1992
|
* @hidden
|
1529
1993
|
*/
|
1530
1994
|
set enabledSelection(value) {
|
1531
1995
|
if (this.pdfViewerWidget) {
|
1532
|
-
|
1996
|
+
this.ngZone.runOutsideAngular(() => this.pdfViewerWidget.setInteractionMode({ mode: value ? PdfViewerInteractionMode.TextSelection : PdfViewerInteractionMode.Pan }));
|
1533
1997
|
}
|
1534
1998
|
this._enabledSelection = value;
|
1535
1999
|
}
|
@@ -1539,10 +2003,22 @@ class PDFViewerComponent {
|
|
1539
2003
|
get enabledSelection() {
|
1540
2004
|
return this._enabledSelection;
|
1541
2005
|
}
|
2006
|
+
/**
|
2007
|
+
* @hidden
|
2008
|
+
*/
|
2009
|
+
onSetAnnotationMode(mode) {
|
2010
|
+
this.pdfViewerWidget?.resetAnnotationEditorMode();
|
2011
|
+
this.pdfViewerWidget?.setInteractionMode({ mode: PdfViewerInteractionMode.TextSelection });
|
2012
|
+
this.pdfViewerWidget?.setAnnotationEditorMode({ mode: AnnotationEditorTypes[mode], interactionMode: PdfViewerInteractionMode.TextSelection });
|
2013
|
+
}
|
1542
2014
|
/**
|
1543
2015
|
* @hidden
|
1544
2016
|
*/
|
1545
2017
|
showLicenseWatermark = false;
|
2018
|
+
/**
|
2019
|
+
* @hidden
|
2020
|
+
*/
|
2021
|
+
licenseMessage;
|
1546
2022
|
skip = 0;
|
1547
2023
|
zoomOptionsData = zoomOptionsData;
|
1548
2024
|
zoomLevel = this.zoomOptionsData[5];
|
@@ -1552,14 +2028,18 @@ class PDFViewerComponent {
|
|
1552
2028
|
_fitType;
|
1553
2029
|
_zoomToFit = false;
|
1554
2030
|
subs = new Subscription();
|
2031
|
+
popupSub = new Subscription();
|
1555
2032
|
emitLoad = true;
|
1556
|
-
|
2033
|
+
pdfViewerWidget;
|
2034
|
+
constructor(ngZone, renderer, localizationService, cdr, host, popupService) {
|
1557
2035
|
this.ngZone = ngZone;
|
1558
2036
|
this.renderer = renderer;
|
1559
2037
|
this.localizationService = localizationService;
|
1560
2038
|
this.cdr = cdr;
|
1561
2039
|
this.host = host;
|
2040
|
+
this.popupService = popupService;
|
1562
2041
|
const isValid = validatePackage(packageMetadata);
|
2042
|
+
this.licenseMessage = getLicenseMessage(packageMetadata);
|
1563
2043
|
this.showLicenseWatermark = shouldShowValidationUI(isValid);
|
1564
2044
|
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
1565
2045
|
counter++;
|
@@ -1569,8 +2049,11 @@ class PDFViewerComponent {
|
|
1569
2049
|
}
|
1570
2050
|
ngOnDestroy() {
|
1571
2051
|
this.subs.unsubscribe();
|
2052
|
+
this.popupSub?.unsubscribe();
|
1572
2053
|
this.pdfViewerWidget?.destroy();
|
1573
2054
|
this.pdfContext = null;
|
2055
|
+
this.observer?.disconnect();
|
2056
|
+
this.observer = null;
|
1574
2057
|
}
|
1575
2058
|
ngOnChanges(changes) {
|
1576
2059
|
const newBase64Data = changes['data'] && this.data;
|
@@ -1610,6 +2093,27 @@ class PDFViewerComponent {
|
|
1610
2093
|
onPageChange(e) {
|
1611
2094
|
this.ngZone.runOutsideAngular(() => this.scrollToPage(e.skip + 1));
|
1612
2095
|
}
|
2096
|
+
/**
|
2097
|
+
* @hidden
|
2098
|
+
*/
|
2099
|
+
onPanningEnabled() {
|
2100
|
+
this.enabledSelection = false;
|
2101
|
+
this.showAnnotationsToolbar = false;
|
2102
|
+
this.ngZone.runOutsideAngular(() => {
|
2103
|
+
this.pdfViewerWidget?.resetAnnotationEditorMode();
|
2104
|
+
this.pdfViewerWidget?.setInteractionMode({ mode: PdfViewerInteractionMode.Pan });
|
2105
|
+
});
|
2106
|
+
}
|
2107
|
+
/**
|
2108
|
+
* @hidden
|
2109
|
+
*/
|
2110
|
+
onSelectionEnabled() {
|
2111
|
+
this.enabledSelection = true;
|
2112
|
+
this.ngZone.runOutsideAngular(() => {
|
2113
|
+
this.pdfViewerWidget?.resetAnnotationEditorMode();
|
2114
|
+
this.pdfViewerWidget?.setInteractionMode({ mode: PdfViewerInteractionMode.TextSelection });
|
2115
|
+
});
|
2116
|
+
}
|
1613
2117
|
/**
|
1614
2118
|
* @hidden
|
1615
2119
|
*/
|
@@ -1734,7 +2238,16 @@ class PDFViewerComponent {
|
|
1734
2238
|
this.pdfViewerWidget?.goToPreviousSearchMatch();
|
1735
2239
|
this.currentMatch = this.currentMatch - 1 < 1 ? this.currentMatches.length : this.currentMatch - 1;
|
1736
2240
|
}
|
1737
|
-
|
2241
|
+
/**
|
2242
|
+
* @hidden
|
2243
|
+
*/
|
2244
|
+
toggleAnnotationsToolbar() {
|
2245
|
+
this.showAnnotationsToolbar = !this.showAnnotationsToolbar;
|
2246
|
+
this.host.nativeElement.querySelector(`#${this.annotationsToolId}`)?.focus();
|
2247
|
+
if (!this.showAnnotationsToolbar) {
|
2248
|
+
this.pdfViewerWidget?.resetAnnotationEditorMode();
|
2249
|
+
}
|
2250
|
+
}
|
1738
2251
|
loadPdf(dataType, data) {
|
1739
2252
|
this.pdfViewerWidget?.destroy();
|
1740
2253
|
this.loading = true;
|
@@ -1759,7 +2272,9 @@ class PDFViewerComponent {
|
|
1759
2272
|
this.loading = false;
|
1760
2273
|
},
|
1761
2274
|
scroll: this.scrollHandler,
|
1762
|
-
error: this.errorHandler
|
2275
|
+
error: this.errorHandler,
|
2276
|
+
annotationEditorToolBarShow: this.onAnnotationEditorToolBarShowHandler,
|
2277
|
+
annotationEditorToolBarHide: this.onAnnotationEditorToolBarHideHandler,
|
1763
2278
|
}
|
1764
2279
|
});
|
1765
2280
|
});
|
@@ -1807,6 +2322,7 @@ class PDFViewerComponent {
|
|
1807
2322
|
if (!this.pdfContext) {
|
1808
2323
|
this.pdfViewerWidget.documentScroller.enablePanEventsTracking();
|
1809
2324
|
}
|
2325
|
+
this.pdfViewerWidget.setInteractionMode({ mode: PdfViewerInteractionMode.Pan });
|
1810
2326
|
if (!this._zoomToFit) {
|
1811
2327
|
this.pdfContext = { ...e, element: this.pagesContainer.nativeElement, zoom: e.sender.state.zoomLevel };
|
1812
2328
|
if (this.emitLoad) {
|
@@ -1819,6 +2335,7 @@ class PDFViewerComponent {
|
|
1819
2335
|
this.pdfContext = { ...e, element: this.pagesContainer.nativeElement };
|
1820
2336
|
this.onZoomLevelChange(zoomLevelOption, false);
|
1821
2337
|
}
|
2338
|
+
this.pdfViewerWidget.activatePageNumber(1);
|
1822
2339
|
this.cdr.markForCheck();
|
1823
2340
|
this.assignPageIds();
|
1824
2341
|
this.ngZone.run(() => this.loading = false);
|
@@ -1836,19 +2353,80 @@ class PDFViewerComponent {
|
|
1836
2353
|
this.pdfContext = null;
|
1837
2354
|
this.zoneAwareEmitter('error', { error: e, context: this.pdfContext });
|
1838
2355
|
};
|
2356
|
+
annotationPopup = null;
|
2357
|
+
observer;
|
2358
|
+
onAnnotationEditorToolBarShowHandler = (e) => {
|
2359
|
+
this.cdr.markForCheck();
|
2360
|
+
this.observer?.disconnect();
|
2361
|
+
const type = e.annotationEditorMode;
|
2362
|
+
const anchor = e.anchor;
|
2363
|
+
const editor = e.source.firstSelectedEditor;
|
2364
|
+
const popup = this.annotationPopup?.popup;
|
2365
|
+
// Do not continue if popup is already visible for this annotation.
|
2366
|
+
if (popup && popup.instance.anchor === anchor && type === "freeText") {
|
2367
|
+
return;
|
2368
|
+
}
|
2369
|
+
if (this.annotationPopup) {
|
2370
|
+
this.annotationPopup.close();
|
2371
|
+
this.annotationPopup = null;
|
2372
|
+
}
|
2373
|
+
this.annotationPopup = this.popupService.open({
|
2374
|
+
anchor: anchor,
|
2375
|
+
appendTo: this.pagesContainerViewContainerRef,
|
2376
|
+
content: AnnotationPopupToolbarContentComponent,
|
2377
|
+
popupClass: 'k-pdfviewer-annotation-popup',
|
2378
|
+
});
|
2379
|
+
const annotationToolbarInstance = this.annotationPopup.content.instance;
|
2380
|
+
annotationToolbarInstance.localizationService = this.localizationService;
|
2381
|
+
annotationToolbarInstance.annotationEditorType = type;
|
2382
|
+
annotationToolbarInstance.pdfViewerWidget = this.pdfViewerWidget;
|
2383
|
+
annotationToolbarInstance.anchor = anchor;
|
2384
|
+
annotationToolbarInstance.popupRef = this.annotationPopup;
|
2385
|
+
annotationToolbarInstance.initialColor = editor?.color;
|
2386
|
+
annotationToolbarInstance.initialFontSize = editor.propertiesToUpdate[0][1];
|
2387
|
+
annotationToolbarInstance.dialogContainer = this.dialogContainerViewContainerRef;
|
2388
|
+
annotationToolbarInstance.removeAnnotationConfirmation = this.removeAnnotationConfirmation;
|
2389
|
+
this.popupSub = this.annotationPopup.popup.instance.anchorViewportLeave.subscribe(() => {
|
2390
|
+
this.ngZone.run(() => this.annotationPopup?.close());
|
2391
|
+
this.annotationPopup = null;
|
2392
|
+
this.popupSub?.unsubscribe();
|
2393
|
+
this.popupSub = null;
|
2394
|
+
});
|
2395
|
+
this.ngZone.runOutsideAngular(() => {
|
2396
|
+
this.observer = this.classMutationObserver(anchor, 'k-selected', () => {
|
2397
|
+
this.ngZone.run(() => this.annotationPopup?.close());
|
2398
|
+
});
|
2399
|
+
});
|
2400
|
+
};
|
2401
|
+
onAnnotationEditorToolBarHideHandler = () => {
|
2402
|
+
this.cdr.markForCheck();
|
2403
|
+
if (this.annotationPopup?.popup) {
|
2404
|
+
this.annotationPopup.close();
|
2405
|
+
this.annotationPopup = null;
|
2406
|
+
}
|
2407
|
+
};
|
1839
2408
|
zoneAwareEmitter = (eventName, eventData) => {
|
1840
2409
|
if (hasObservers(this[eventName])) {
|
1841
2410
|
this.ngZone.run(() => this[eventName].emit(eventData));
|
1842
2411
|
}
|
1843
2412
|
};
|
1844
|
-
|
1845
|
-
|
2413
|
+
classMutationObserver = (element, className, callback) => {
|
2414
|
+
const observer = new MutationObserver((m) => {
|
2415
|
+
m.forEach(() => {
|
2416
|
+
callback();
|
2417
|
+
});
|
2418
|
+
});
|
2419
|
+
observer.observe(element, { attributeFilter: ['class'] });
|
2420
|
+
return observer;
|
2421
|
+
};
|
2422
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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 });
|
2423
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PDFViewerComponent, isStandalone: true, selector: "kendo-pdfviewer", inputs: { tools: "tools", loaderSettings: "loaderSettings", 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: [
|
1846
2424
|
LocalizationService,
|
1847
2425
|
{
|
1848
2426
|
provide: L10N_PREFIX,
|
1849
2427
|
useValue: 'kendo.pdfviewer'
|
1850
2428
|
}
|
1851
|
-
], viewQueries: [{ propertyName: "pagesContainer", first: true, predicate: ["pagesContainer"], descendants: true }], exportAs: ["kendo-pdfviewer"], usesOnChanges: true, ngImport: i0, template: `
|
2429
|
+
], 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: `
|
1852
2430
|
<ng-container kendoPDFViewerLocalizedMessages
|
1853
2431
|
i18n-pagerFirstPage="kendo.pdfviewer.pagerFirstPage|The label for the first page button in the Pager"
|
1854
2432
|
pagerFirstPage="Go to the first page"
|
@@ -1873,59 +2451,95 @@ class PDFViewerComponent {
|
|
1873
2451
|
|
1874
2452
|
i18n-pagerInputLabel="kendo.pdfviewer.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number."
|
1875
2453
|
pagerInputLabel="Type a page number"
|
1876
|
-
|
2454
|
+
|
1877
2455
|
i18n-zoomInTitle="kendo.pdfviewer.zoomInTitle|The ZoomIn tool title and label."
|
1878
2456
|
zoomInTitle="Zoom in"
|
1879
|
-
|
2457
|
+
|
1880
2458
|
i18n-zoomOutTitle="kendo.pdfviewer.zoomOutTitle|The ZoomOut tool title and label."
|
1881
2459
|
zoomOutTitle="Zoom out"
|
1882
|
-
|
2460
|
+
|
1883
2461
|
i18n-selectionTitle="kendo.pdfviewer.selectionTitle|The Selection tool title and label."
|
1884
2462
|
selectionTitle="Enable selection"
|
1885
|
-
|
2463
|
+
|
1886
2464
|
i18n-panningTitle="kendo.pdfviewer.panningTitle|The Panning tool title and label."
|
1887
2465
|
panningTitle="Enable panning"
|
1888
|
-
|
2466
|
+
|
1889
2467
|
i18n-searchTitle="kendo.pdfviewer.searchTitle|The Search tool title and label."
|
1890
2468
|
searchTitle="Search"
|
1891
|
-
|
2469
|
+
|
1892
2470
|
i18n-openTitle="kendo.pdfviewer.openTitle|The Open tool title and label."
|
1893
2471
|
openTitle="Open"
|
1894
|
-
|
2472
|
+
|
1895
2473
|
i18n-downloadTitle="kendo.pdfviewer.downloadTitle|The Download tool title and label."
|
1896
2474
|
downloadTitle="Download"
|
1897
|
-
|
2475
|
+
|
1898
2476
|
i18n-printTitle="kendo.pdfviewer.printTitle|The Print tool title and label."
|
1899
2477
|
printTitle="Print"
|
1900
|
-
|
2478
|
+
|
1901
2479
|
i18n-fitToPage="kendo.pdfviewer.fitToPage|The text for the zoom level chooser Fit to page option."
|
1902
2480
|
fitToPage="Fit to page"
|
1903
|
-
|
2481
|
+
|
1904
2482
|
i18n-fitToWidth="kendo.pdfviewer.fitToWidth|The text for the zoom level chooser Fit to width option."
|
1905
2483
|
fitToWidth="Fit to width"
|
1906
|
-
|
2484
|
+
|
1907
2485
|
i18n-searchInputPlaceholder="kendo.pdfviewer.searchInputPlaceholder|The text for the search input placeholder."
|
1908
2486
|
searchInputPlaceholder="Search"
|
1909
|
-
|
2487
|
+
|
1910
2488
|
i18n-searchMatchesOf="kendo.pdfviewer.searchMatchesOf|The text before the total number of matches in the Search tool."
|
1911
2489
|
searchMatchesOf="of"
|
1912
|
-
|
2490
|
+
|
1913
2491
|
i18n-searchPreviousMatchTitle="kendo.pdfviewer.searchPreviousMatchTitle|The title of the Search tool previous match button."
|
1914
2492
|
searchPreviousMatchTitle="Previous match"
|
1915
|
-
|
2493
|
+
|
1916
2494
|
i18n-searchNextMatchTitle="kendo.pdfviewer.searchNextMatchTitle|The title of the Search tool next match button."
|
1917
2495
|
searchNextMatchTitle="Next match"
|
1918
|
-
|
2496
|
+
|
1919
2497
|
i18n-searchCloseTitle="kendo.pdfviewer.searchCloseTitle|The title of the Search tool close button."
|
1920
2498
|
searchCloseTitle="Close"
|
1921
|
-
|
2499
|
+
|
1922
2500
|
i18n-searchMatchCaseTitle="kendo.pdfviewer.searchMatchCaseTitle|The title of the Search tool match case button."
|
1923
2501
|
searchMatchCaseTitle="Match case"
|
1924
|
-
|
2502
|
+
|
1925
2503
|
i18n-zoomInputPlaceholder="kendo.pdfviewer.zoomInputPlaceholder|The text for the zoom tool input placeholder."
|
1926
|
-
zoomInputPlaceholder="Choose zoom level"
|
2504
|
+
zoomInputPlaceholder="Choose zoom level"
|
2505
|
+
|
2506
|
+
i18n-annotationsTitle="kendo.pdfviewer.annotationsTitle|The Annotations tool title and label."
|
2507
|
+
annotationsTitle="Annotations"
|
2508
|
+
|
2509
|
+
i18n-annotationEditorTitle="kendo.pdfviewer.annotationEditorTitle|The annotation editor tool title and label."
|
2510
|
+
annotationEditorTitle="Annotation editor"
|
2511
|
+
|
2512
|
+
i18n-deleteAnnotationTitle="kendo.pdfviewer.deleteAnnotationTitle|The delete annotation tool title and label."
|
2513
|
+
deleteAnnotationTitle="Delete annotation"
|
2514
|
+
|
2515
|
+
i18n-highlightAnnotationTitle="kendo.pdfviewer.highlightAnnotationTitle|The highlight annotation tool title and label."
|
2516
|
+
highlightAnnotationTitle="Highlight"
|
2517
|
+
|
2518
|
+
i18n-freeTextAnnotationTitle="kendo.pdfviewer.freeTextAnnotationTitle|The free text annotation tool title and label."
|
2519
|
+
freeTextAnnotationTitle="Free text"
|
2520
|
+
|
2521
|
+
i18n-closeAnnotationsToolbarTitle="kendo.pdfviewer.closeAnnotationsToolbarTitle|The close annotations toolbar tool title and label."
|
2522
|
+
closeAnnotationsToolbarTitle="Close"
|
2523
|
+
|
2524
|
+
i18n-deleteAnnotationConfirmationDialogTitle="kendo.pdfviewer.deleteAnnotationConfirmationDialogTitle|The delete annotation confirmation dialog title."
|
2525
|
+
deleteAnnotationConfirmationDialogTitle="Delete annotation"
|
2526
|
+
|
2527
|
+
i18n-deleteAnnotationConfirmationDialogContent="kendo.pdfviewer.deleteAnnotationConfirmationDialogContent|The delete annotation confirmation dialog content."
|
2528
|
+
deleteAnnotationConfirmationDialogContent="Are you sure you want to delete this annotation?"
|
2529
|
+
|
2530
|
+
i18n-deleteAnnotationConfirmationDialogConfirmText="kendo.pdfviewer.deleteAnnotationConfirmationDialogConfirmText|The delete annotation confirmation dialog confirm button text."
|
2531
|
+
deleteAnnotationConfirmationDialogConfirmText="Delete"
|
2532
|
+
|
2533
|
+
i18n-deleteAnnotationConfirmationDialogRejectText="kendo.pdfviewer.deleteAnnotationConfirmationDialogRejectText|The delete annotation confirmation dialog reject button text."
|
2534
|
+
deleteAnnotationConfirmationDialogRejectText="Cancel"
|
2535
|
+
|
2536
|
+
i18n-annotationEditorFontSizeTitle="kendo.pdfviewer.annotationEditorFontSizeTitle|The annotation editor font size section title."
|
2537
|
+
annotationEditorFontSizeTitle="Font size"
|
2538
|
+
|
2539
|
+
i18n-annotationEditorColorTitle="kendo.pdfviewer.annotationEditorColorTitle|The annotation editor color section title."
|
2540
|
+
annotationEditorColorTitle="Color">
|
1927
2541
|
</ng-container>
|
1928
|
-
<div kendoPDFViewerLoader
|
2542
|
+
<div kendoPDFViewerLoader
|
1929
2543
|
*ngIf="loading"
|
1930
2544
|
[settings]="loaderSettings"></div>
|
1931
2545
|
<div kendoPDFViewerToolbar
|
@@ -1941,18 +2555,32 @@ class PDFViewerComponent {
|
|
1941
2555
|
[zoomOptionsData]="zoomOptionsData"
|
1942
2556
|
[zoomLevelChooserValue]="zoomLevel"
|
1943
2557
|
[disabledTools]="!pdfContext?.pdfDoc"
|
2558
|
+
[isAnnotationsToolbarVisible]="showAnnotationsToolbar"
|
2559
|
+
[wrapperId]="showAnnotationsToolbar ? annotationsToolbarId : undefined"
|
2560
|
+
[annotationsToolId]="annotationsToolId"
|
1944
2561
|
(pageChange)="onPageChange($event)"
|
1945
2562
|
(fileSelect)="onFileSelect($event)"
|
1946
2563
|
(fileSelectStart)="loading = true;"
|
1947
2564
|
(fileSelectError)="onFileSelectError($event)"
|
1948
2565
|
(download)="onDownload()"
|
1949
|
-
(panningEnabled)="
|
1950
|
-
(selectionEnabled)="
|
2566
|
+
(panningEnabled)="onPanningEnabled();"
|
2567
|
+
(selectionEnabled)="onSelectionEnabled();"
|
1951
2568
|
(zoomIn)="onZoomIn()"
|
1952
2569
|
(zoomOut)="onZoomOut()"
|
1953
2570
|
(zoomLevelChange)="onZoomLevelChange($event)"
|
1954
2571
|
(print)="onPrint()"
|
1955
|
-
(search)="onSearch()"
|
2572
|
+
(search)="onSearch()"
|
2573
|
+
(toggleAnnotationsToolbar)="toggleAnnotationsToolbar()"></div>
|
2574
|
+
<div *ngIf="showAnnotationsToolbar"
|
2575
|
+
[attr.id]="annotationsToolbarId"
|
2576
|
+
kendoPDFViewerToolbar
|
2577
|
+
#toolbar
|
2578
|
+
role="toolbar"
|
2579
|
+
type="annotations"
|
2580
|
+
(setAnnotationMode)="onSetAnnotationMode($event)"
|
2581
|
+
[attr.aria-controls]="pagesContainerId"
|
2582
|
+
[disabledTools]="!pdfContext?.pdfDoc"
|
2583
|
+
(toggleAnnotationsToolbar)="toggleAnnotationsToolbar()"></div>
|
1956
2584
|
<div
|
1957
2585
|
class="k-canvas k-pdf-viewer-canvas k-pos-relative k-overflow-auto"
|
1958
2586
|
[class.k-enable-text-select]="enabledSelection"
|
@@ -1969,7 +2597,7 @@ class PDFViewerComponent {
|
|
1969
2597
|
(prevMatch)="onPreviousMatch()"
|
1970
2598
|
(nextMatch)="onNextMatch()"
|
1971
2599
|
(close)="closeSearch(toolbar)"></div>
|
1972
|
-
<div
|
2600
|
+
<div
|
1973
2601
|
#pagesContainer
|
1974
2602
|
[kendoEventsOutsideAngular]="{
|
1975
2603
|
wheel: stopPropagation
|
@@ -1978,8 +2606,9 @@ class PDFViewerComponent {
|
|
1978
2606
|
[attr.id]="pagesContainerId"></div>
|
1979
2607
|
</div>
|
1980
2608
|
|
1981
|
-
<div
|
1982
|
-
|
2609
|
+
<div #dialogContainer></div>
|
2610
|
+
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
|
2611
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedPDFViewerMessagesDirective, selector: "[kendoPDFViewerLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"], 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"] }] });
|
1983
2612
|
}
|
1984
2613
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PDFViewerComponent, decorators: [{
|
1985
2614
|
type: Component,
|
@@ -2018,59 +2647,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
2018
2647
|
|
2019
2648
|
i18n-pagerInputLabel="kendo.pdfviewer.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number."
|
2020
2649
|
pagerInputLabel="Type a page number"
|
2021
|
-
|
2650
|
+
|
2022
2651
|
i18n-zoomInTitle="kendo.pdfviewer.zoomInTitle|The ZoomIn tool title and label."
|
2023
2652
|
zoomInTitle="Zoom in"
|
2024
|
-
|
2653
|
+
|
2025
2654
|
i18n-zoomOutTitle="kendo.pdfviewer.zoomOutTitle|The ZoomOut tool title and label."
|
2026
2655
|
zoomOutTitle="Zoom out"
|
2027
|
-
|
2656
|
+
|
2028
2657
|
i18n-selectionTitle="kendo.pdfviewer.selectionTitle|The Selection tool title and label."
|
2029
2658
|
selectionTitle="Enable selection"
|
2030
|
-
|
2659
|
+
|
2031
2660
|
i18n-panningTitle="kendo.pdfviewer.panningTitle|The Panning tool title and label."
|
2032
2661
|
panningTitle="Enable panning"
|
2033
|
-
|
2662
|
+
|
2034
2663
|
i18n-searchTitle="kendo.pdfviewer.searchTitle|The Search tool title and label."
|
2035
2664
|
searchTitle="Search"
|
2036
|
-
|
2665
|
+
|
2037
2666
|
i18n-openTitle="kendo.pdfviewer.openTitle|The Open tool title and label."
|
2038
2667
|
openTitle="Open"
|
2039
|
-
|
2668
|
+
|
2040
2669
|
i18n-downloadTitle="kendo.pdfviewer.downloadTitle|The Download tool title and label."
|
2041
2670
|
downloadTitle="Download"
|
2042
|
-
|
2671
|
+
|
2043
2672
|
i18n-printTitle="kendo.pdfviewer.printTitle|The Print tool title and label."
|
2044
2673
|
printTitle="Print"
|
2045
|
-
|
2674
|
+
|
2046
2675
|
i18n-fitToPage="kendo.pdfviewer.fitToPage|The text for the zoom level chooser Fit to page option."
|
2047
2676
|
fitToPage="Fit to page"
|
2048
|
-
|
2677
|
+
|
2049
2678
|
i18n-fitToWidth="kendo.pdfviewer.fitToWidth|The text for the zoom level chooser Fit to width option."
|
2050
2679
|
fitToWidth="Fit to width"
|
2051
|
-
|
2680
|
+
|
2052
2681
|
i18n-searchInputPlaceholder="kendo.pdfviewer.searchInputPlaceholder|The text for the search input placeholder."
|
2053
2682
|
searchInputPlaceholder="Search"
|
2054
|
-
|
2683
|
+
|
2055
2684
|
i18n-searchMatchesOf="kendo.pdfviewer.searchMatchesOf|The text before the total number of matches in the Search tool."
|
2056
2685
|
searchMatchesOf="of"
|
2057
|
-
|
2686
|
+
|
2058
2687
|
i18n-searchPreviousMatchTitle="kendo.pdfviewer.searchPreviousMatchTitle|The title of the Search tool previous match button."
|
2059
2688
|
searchPreviousMatchTitle="Previous match"
|
2060
|
-
|
2689
|
+
|
2061
2690
|
i18n-searchNextMatchTitle="kendo.pdfviewer.searchNextMatchTitle|The title of the Search tool next match button."
|
2062
2691
|
searchNextMatchTitle="Next match"
|
2063
|
-
|
2692
|
+
|
2064
2693
|
i18n-searchCloseTitle="kendo.pdfviewer.searchCloseTitle|The title of the Search tool close button."
|
2065
2694
|
searchCloseTitle="Close"
|
2066
|
-
|
2695
|
+
|
2067
2696
|
i18n-searchMatchCaseTitle="kendo.pdfviewer.searchMatchCaseTitle|The title of the Search tool match case button."
|
2068
2697
|
searchMatchCaseTitle="Match case"
|
2069
|
-
|
2698
|
+
|
2070
2699
|
i18n-zoomInputPlaceholder="kendo.pdfviewer.zoomInputPlaceholder|The text for the zoom tool input placeholder."
|
2071
|
-
zoomInputPlaceholder="Choose zoom level"
|
2700
|
+
zoomInputPlaceholder="Choose zoom level"
|
2701
|
+
|
2702
|
+
i18n-annotationsTitle="kendo.pdfviewer.annotationsTitle|The Annotations tool title and label."
|
2703
|
+
annotationsTitle="Annotations"
|
2704
|
+
|
2705
|
+
i18n-annotationEditorTitle="kendo.pdfviewer.annotationEditorTitle|The annotation editor tool title and label."
|
2706
|
+
annotationEditorTitle="Annotation editor"
|
2707
|
+
|
2708
|
+
i18n-deleteAnnotationTitle="kendo.pdfviewer.deleteAnnotationTitle|The delete annotation tool title and label."
|
2709
|
+
deleteAnnotationTitle="Delete annotation"
|
2710
|
+
|
2711
|
+
i18n-highlightAnnotationTitle="kendo.pdfviewer.highlightAnnotationTitle|The highlight annotation tool title and label."
|
2712
|
+
highlightAnnotationTitle="Highlight"
|
2713
|
+
|
2714
|
+
i18n-freeTextAnnotationTitle="kendo.pdfviewer.freeTextAnnotationTitle|The free text annotation tool title and label."
|
2715
|
+
freeTextAnnotationTitle="Free text"
|
2716
|
+
|
2717
|
+
i18n-closeAnnotationsToolbarTitle="kendo.pdfviewer.closeAnnotationsToolbarTitle|The close annotations toolbar tool title and label."
|
2718
|
+
closeAnnotationsToolbarTitle="Close"
|
2719
|
+
|
2720
|
+
i18n-deleteAnnotationConfirmationDialogTitle="kendo.pdfviewer.deleteAnnotationConfirmationDialogTitle|The delete annotation confirmation dialog title."
|
2721
|
+
deleteAnnotationConfirmationDialogTitle="Delete annotation"
|
2722
|
+
|
2723
|
+
i18n-deleteAnnotationConfirmationDialogContent="kendo.pdfviewer.deleteAnnotationConfirmationDialogContent|The delete annotation confirmation dialog content."
|
2724
|
+
deleteAnnotationConfirmationDialogContent="Are you sure you want to delete this annotation?"
|
2725
|
+
|
2726
|
+
i18n-deleteAnnotationConfirmationDialogConfirmText="kendo.pdfviewer.deleteAnnotationConfirmationDialogConfirmText|The delete annotation confirmation dialog confirm button text."
|
2727
|
+
deleteAnnotationConfirmationDialogConfirmText="Delete"
|
2728
|
+
|
2729
|
+
i18n-deleteAnnotationConfirmationDialogRejectText="kendo.pdfviewer.deleteAnnotationConfirmationDialogRejectText|The delete annotation confirmation dialog reject button text."
|
2730
|
+
deleteAnnotationConfirmationDialogRejectText="Cancel"
|
2731
|
+
|
2732
|
+
i18n-annotationEditorFontSizeTitle="kendo.pdfviewer.annotationEditorFontSizeTitle|The annotation editor font size section title."
|
2733
|
+
annotationEditorFontSizeTitle="Font size"
|
2734
|
+
|
2735
|
+
i18n-annotationEditorColorTitle="kendo.pdfviewer.annotationEditorColorTitle|The annotation editor color section title."
|
2736
|
+
annotationEditorColorTitle="Color">
|
2072
2737
|
</ng-container>
|
2073
|
-
<div kendoPDFViewerLoader
|
2738
|
+
<div kendoPDFViewerLoader
|
2074
2739
|
*ngIf="loading"
|
2075
2740
|
[settings]="loaderSettings"></div>
|
2076
2741
|
<div kendoPDFViewerToolbar
|
@@ -2086,18 +2751,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
2086
2751
|
[zoomOptionsData]="zoomOptionsData"
|
2087
2752
|
[zoomLevelChooserValue]="zoomLevel"
|
2088
2753
|
[disabledTools]="!pdfContext?.pdfDoc"
|
2754
|
+
[isAnnotationsToolbarVisible]="showAnnotationsToolbar"
|
2755
|
+
[wrapperId]="showAnnotationsToolbar ? annotationsToolbarId : undefined"
|
2756
|
+
[annotationsToolId]="annotationsToolId"
|
2089
2757
|
(pageChange)="onPageChange($event)"
|
2090
2758
|
(fileSelect)="onFileSelect($event)"
|
2091
2759
|
(fileSelectStart)="loading = true;"
|
2092
2760
|
(fileSelectError)="onFileSelectError($event)"
|
2093
2761
|
(download)="onDownload()"
|
2094
|
-
(panningEnabled)="
|
2095
|
-
(selectionEnabled)="
|
2762
|
+
(panningEnabled)="onPanningEnabled();"
|
2763
|
+
(selectionEnabled)="onSelectionEnabled();"
|
2096
2764
|
(zoomIn)="onZoomIn()"
|
2097
2765
|
(zoomOut)="onZoomOut()"
|
2098
2766
|
(zoomLevelChange)="onZoomLevelChange($event)"
|
2099
2767
|
(print)="onPrint()"
|
2100
|
-
(search)="onSearch()"
|
2768
|
+
(search)="onSearch()"
|
2769
|
+
(toggleAnnotationsToolbar)="toggleAnnotationsToolbar()"></div>
|
2770
|
+
<div *ngIf="showAnnotationsToolbar"
|
2771
|
+
[attr.id]="annotationsToolbarId"
|
2772
|
+
kendoPDFViewerToolbar
|
2773
|
+
#toolbar
|
2774
|
+
role="toolbar"
|
2775
|
+
type="annotations"
|
2776
|
+
(setAnnotationMode)="onSetAnnotationMode($event)"
|
2777
|
+
[attr.aria-controls]="pagesContainerId"
|
2778
|
+
[disabledTools]="!pdfContext?.pdfDoc"
|
2779
|
+
(toggleAnnotationsToolbar)="toggleAnnotationsToolbar()"></div>
|
2101
2780
|
<div
|
2102
2781
|
class="k-canvas k-pdf-viewer-canvas k-pos-relative k-overflow-auto"
|
2103
2782
|
[class.k-enable-text-select]="enabledSelection"
|
@@ -2114,7 +2793,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
2114
2793
|
(prevMatch)="onPreviousMatch()"
|
2115
2794
|
(nextMatch)="onNextMatch()"
|
2116
2795
|
(close)="closeSearch(toolbar)"></div>
|
2117
|
-
<div
|
2796
|
+
<div
|
2118
2797
|
#pagesContainer
|
2119
2798
|
[kendoEventsOutsideAngular]="{
|
2120
2799
|
wheel: stopPropagation
|
@@ -2123,17 +2802,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
2123
2802
|
[attr.id]="pagesContainerId"></div>
|
2124
2803
|
</div>
|
2125
2804
|
|
2126
|
-
<div
|
2805
|
+
<div #dialogContainer></div>
|
2806
|
+
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
|
2127
2807
|
`,
|
2128
2808
|
standalone: true,
|
2129
2809
|
imports: [LocalizedPDFViewerMessagesDirective, NgIf, EventsOutsideAngularDirective, LoaderComponent, ToolbarComponent, PDFViewerSearchComponent, WatermarkOverlayComponent]
|
2130
2810
|
}]
|
2131
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
|
2811
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i2$1.PopupService }]; }, propDecorators: { hostClass: [{
|
2132
2812
|
type: HostBinding,
|
2133
2813
|
args: ['class.k-pdf-viewer']
|
2134
2814
|
}], direction: [{
|
2135
2815
|
type: HostBinding,
|
2136
2816
|
args: ['attr.dir']
|
2817
|
+
}], display: [{
|
2818
|
+
type: HostBinding,
|
2819
|
+
args: ['attr.display']
|
2137
2820
|
}], tools: [{
|
2138
2821
|
type: Input
|
2139
2822
|
}], loaderSettings: [{
|
@@ -2162,6 +2845,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
2162
2845
|
type: Input
|
2163
2846
|
}], loadOnDemandPageSize: [{
|
2164
2847
|
type: Input
|
2848
|
+
}], removeAnnotationConfirmation: [{
|
2849
|
+
type: Input
|
2165
2850
|
}], load: [{
|
2166
2851
|
type: Output
|
2167
2852
|
}], error: [{
|
@@ -2175,6 +2860,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
2175
2860
|
}], pagesContainer: [{
|
2176
2861
|
type: ViewChild,
|
2177
2862
|
args: ['pagesContainer']
|
2863
|
+
}], pagesContainerViewContainerRef: [{
|
2864
|
+
type: ViewChild,
|
2865
|
+
args: ['pagesContainer', { read: ViewContainerRef }]
|
2866
|
+
}], dialogContainerViewContainerRef: [{
|
2867
|
+
type: ViewChild,
|
2868
|
+
args: ['dialogContainer', { read: ViewContainerRef }]
|
2178
2869
|
}] } });
|
2179
2870
|
|
2180
2871
|
/**
|