@syncfusion/ej2-pdf-export 23.2.4 → 24.1.41
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/CHANGELOG.md +0 -18
- package/dist/ej2-pdf-export.min.js +2 -2
- package/dist/ej2-pdf-export.umd.min.js +2 -2
- package/dist/ej2-pdf-export.umd.min.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es2015.js +6 -1
- package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es5.js +6 -1
- package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
- package/dist/global/ej2-pdf-export.min.js +2 -2
- package/dist/global/ej2-pdf-export.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/dist/ts/implementation/actions/action.ts +76 -0
- package/dist/ts/implementation/actions/uri-action.ts +52 -0
- package/dist/ts/implementation/annotations/action-link-annotation.ts +43 -0
- package/dist/ts/implementation/annotations/annotation-collection.ts +159 -0
- package/dist/ts/implementation/annotations/annotation.ts +241 -0
- package/dist/ts/implementation/annotations/document-link-annotation.ts +118 -0
- package/dist/ts/implementation/annotations/link-annotation.ts +32 -0
- package/dist/ts/implementation/annotations/pdf-text-web-link.ts +265 -0
- package/dist/ts/implementation/annotations/uri-annotation.ts +86 -0
- package/dist/ts/implementation/collections/dictionary.ts +150 -0
- package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +125 -0
- package/dist/ts/implementation/collections/utils.ts +38 -0
- package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +39 -0
- package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +108 -0
- package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +127 -0
- package/dist/ts/implementation/document/automatic-fields/composite-field.ts +76 -0
- package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +37 -0
- package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +75 -0
- package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +157 -0
- package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +82 -0
- package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +60 -0
- package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +48 -0
- package/dist/ts/implementation/document/pdf-catalog.ts +65 -0
- package/dist/ts/implementation/document/pdf-document-base.ts +180 -0
- package/dist/ts/implementation/document/pdf-document-template.ts +310 -0
- package/dist/ts/implementation/document/pdf-document.ts +342 -0
- package/dist/ts/implementation/document/pdf-viewer-preferences.ts +578 -0
- package/dist/ts/implementation/drawing/pdf-drawing.ts +218 -0
- package/dist/ts/implementation/general/enum.ts +21 -0
- package/dist/ts/implementation/general/functions/pdf-function.ts +66 -0
- package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +63 -0
- package/dist/ts/implementation/general/pdf-cache-collection.ts +97 -0
- package/dist/ts/implementation/general/pdf-collection.ts +41 -0
- package/dist/ts/implementation/general/pdf-destination.ts +170 -0
- package/dist/ts/implementation/graphics/brushes/enum.ts +237 -0
- package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +294 -0
- package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +68 -0
- package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +2438 -0
- package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +295 -0
- package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +311 -0
- package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +406 -0
- package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +290 -0
- package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +107 -0
- package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +304 -0
- package/dist/ts/implementation/graphics/constants.ts +31 -0
- package/dist/ts/implementation/graphics/enum.ts +413 -0
- package/dist/ts/implementation/graphics/figures/arc.ts +133 -0
- package/dist/ts/implementation/graphics/figures/base/draw-element.ts +59 -0
- package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +260 -0
- package/dist/ts/implementation/graphics/figures/base/fill-element.ts +72 -0
- package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +34 -0
- package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +69 -0
- package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +276 -0
- package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +205 -0
- package/dist/ts/implementation/graphics/figures/ellipse-part.ts +76 -0
- package/dist/ts/implementation/graphics/figures/enum.ts +80 -0
- package/dist/ts/implementation/graphics/figures/layout-element.ts +132 -0
- package/dist/ts/implementation/graphics/figures/path.ts +646 -0
- package/dist/ts/implementation/graphics/figures/pdf-template.ts +205 -0
- package/dist/ts/implementation/graphics/figures/rectangle-area.ts +108 -0
- package/dist/ts/implementation/graphics/figures/text-element.ts +445 -0
- package/dist/ts/implementation/graphics/fonts/enum.ts +385 -0
- package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +248 -0
- package/dist/ts/implementation/graphics/fonts/pdf-font.ts +316 -0
- package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +606 -0
- package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +243 -0
- package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +474 -0
- package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +165 -0
- package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +958 -0
- package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +374 -0
- package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +255 -0
- package/dist/ts/implementation/graphics/fonts/string-layouter.ts +617 -0
- package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +275 -0
- package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +206 -0
- package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +18 -0
- package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +18 -0
- package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +14 -0
- package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +26 -0
- package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +35 -0
- package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +94 -0
- package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +56 -0
- package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +10 -0
- package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +14 -0
- package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +106 -0
- package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +58 -0
- package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +33 -0
- package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +22 -0
- package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +42 -0
- package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +1254 -0
- package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +26 -0
- package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +26 -0
- package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +577 -0
- package/dist/ts/implementation/graphics/images/byte-array.ts +137 -0
- package/dist/ts/implementation/graphics/images/image-decoder.ts +439 -0
- package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +110 -0
- package/dist/ts/implementation/graphics/images/pdf-image.ts +132 -0
- package/dist/ts/implementation/graphics/pdf-color.ts +478 -0
- package/dist/ts/implementation/graphics/pdf-graphics.ts +2429 -0
- package/dist/ts/implementation/graphics/pdf-margins.ts +124 -0
- package/dist/ts/implementation/graphics/pdf-pen.ts +370 -0
- package/dist/ts/implementation/graphics/pdf-resources.ts +300 -0
- package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +246 -0
- package/dist/ts/implementation/graphics/pdf-transparency.ts +93 -0
- package/dist/ts/implementation/graphics/unit-convertor.ts +96 -0
- package/dist/ts/implementation/input-output/big-endian-writer.ts +121 -0
- package/dist/ts/implementation/input-output/cross-table.ts +21 -0
- package/dist/ts/implementation/input-output/enum.ts +16 -0
- package/dist/ts/implementation/input-output/pdf-cross-table.ts +524 -0
- package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +571 -0
- package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +194 -0
- package/dist/ts/implementation/input-output/pdf-operators.ts +363 -0
- package/dist/ts/implementation/input-output/pdf-stream-writer.ts +681 -0
- package/dist/ts/implementation/input-output/pdf-writer.ts +88 -0
- package/dist/ts/implementation/pages/enum.ts +201 -0
- package/dist/ts/implementation/pages/page-added-event-arguments.ts +39 -0
- package/dist/ts/implementation/pages/pdf-document-page-collection.ts +180 -0
- package/dist/ts/implementation/pages/pdf-page-base.ts +181 -0
- package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +348 -0
- package/dist/ts/implementation/pages/pdf-page-layer.ts +271 -0
- package/dist/ts/implementation/pages/pdf-page-settings.ts +192 -0
- package/dist/ts/implementation/pages/pdf-page-size.ts +162 -0
- package/dist/ts/implementation/pages/pdf-page-template-element.ts +663 -0
- package/dist/ts/implementation/pages/pdf-page.ts +235 -0
- package/dist/ts/implementation/pages/pdf-section-collection.ts +187 -0
- package/dist/ts/implementation/pages/pdf-section-page-collection.ts +61 -0
- package/dist/ts/implementation/pages/pdf-section-templates.ts +96 -0
- package/dist/ts/implementation/pages/pdf-section.ts +644 -0
- package/dist/ts/implementation/primitives/pdf-array.ts +386 -0
- package/dist/ts/implementation/primitives/pdf-boolean.ts +119 -0
- package/dist/ts/implementation/primitives/pdf-dictionary.ts +513 -0
- package/dist/ts/implementation/primitives/pdf-name.ts +218 -0
- package/dist/ts/implementation/primitives/pdf-number.ts +165 -0
- package/dist/ts/implementation/primitives/pdf-reference.ts +430 -0
- package/dist/ts/implementation/primitives/pdf-stream.ts +306 -0
- package/dist/ts/implementation/primitives/pdf-string.ts +397 -0
- package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +2027 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +1193 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +206 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +470 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +853 -0
- package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +240 -0
- package/dist/ts/implementation/structured-elements/grid/styles/style.ts +424 -0
- package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +16 -0
- package/dist/ts/interfaces/i-pdf-cache.ts +23 -0
- package/dist/ts/interfaces/i-pdf-changable.ts +17 -0
- package/dist/ts/interfaces/i-pdf-clonable.ts +12 -0
- package/dist/ts/interfaces/i-pdf-primitives.ts +45 -0
- package/dist/ts/interfaces/i-pdf-true-type-font.ts +48 -0
- package/dist/ts/interfaces/i-pdf-wrapper.ts +13 -0
- package/dist/ts/interfaces/i-pdf-writer.ts +29 -0
- package/package.json +7 -7
- package/src/implementation/document/pdf-document-base.js +1 -2
- package/src/implementation/graphics/pdf-graphics.js +7 -2
- package/src/implementation/graphics/pdf-transformation-matrix.d.ts +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { PdfLinkAnnotation } from './link-annotation';
|
|
2
|
+
import { RectangleF } from './../drawing/pdf-drawing';
|
|
3
|
+
import { PdfDestination } from './../general/pdf-destination';
|
|
4
|
+
/**
|
|
5
|
+
* `PdfDocumentLinkAnnotation` class represents an annotation object with holds link on another location within a document.
|
|
6
|
+
* ```typescript
|
|
7
|
+
* // create a new PDF document
|
|
8
|
+
* let document : PdfDocument = new PdfDocument();
|
|
9
|
+
* // create new pages
|
|
10
|
+
* let page1 : PdfPage = document.pages.add();
|
|
11
|
+
* let page2 : PdfPage = document.pages.add();
|
|
12
|
+
* // create a new rectangle
|
|
13
|
+
* let bounds : RectangleF = new RectangleF({x : 10, y : 200}, {width : 300, height : 25});
|
|
14
|
+
* //
|
|
15
|
+
* // create a new document link annotation
|
|
16
|
+
* let documentLinkAnnotation : PdfDocumentLinkAnnotation = new PdfDocumentLinkAnnotation(bounds);
|
|
17
|
+
* // set the annotation text
|
|
18
|
+
* documentLinkAnnotation.text = 'Document link annotation';
|
|
19
|
+
* // set the destination
|
|
20
|
+
* documentLinkAnnotation.destination = new PdfDestination(page2);
|
|
21
|
+
* // set the documentlink annotation location
|
|
22
|
+
* documentLinkAnnotation.destination.location = new PointF(10, 0);
|
|
23
|
+
* // add this annotation to a new page
|
|
24
|
+
* page1.annotations.add(documentLinkAnnotation);
|
|
25
|
+
* //
|
|
26
|
+
* // save the document to disk
|
|
27
|
+
* document.save('output.pdf');
|
|
28
|
+
* // destroy the document
|
|
29
|
+
* document.destroy();
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export class PdfDocumentLinkAnnotation extends PdfLinkAnnotation {
|
|
33
|
+
// Fields
|
|
34
|
+
/**
|
|
35
|
+
* `Destination` of the annotation.
|
|
36
|
+
* @default null
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
private pdfDestination : PdfDestination = null;
|
|
40
|
+
// Properties
|
|
41
|
+
/**
|
|
42
|
+
* Gets or sets the `destination` of the annotation.
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // create a new PDF document
|
|
45
|
+
* let document : PdfDocument = new PdfDocument();
|
|
46
|
+
* // create new pages
|
|
47
|
+
* let page1 : PdfPage = document.pages.add();
|
|
48
|
+
* let page2 : PdfPage = document.pages.add();
|
|
49
|
+
* // create a new rectangle
|
|
50
|
+
* let bounds : RectangleF = new RectangleF({x : 10, y : 200}, {width : 300, height : 25});
|
|
51
|
+
* //
|
|
52
|
+
* // create a new document link annotation
|
|
53
|
+
* let documentLinkAnnotation : PdfDocumentLinkAnnotation = new PdfDocumentLinkAnnotation(bounds);
|
|
54
|
+
* // set the annotation text
|
|
55
|
+
* documentLinkAnnotation.text = 'Document link annotation';
|
|
56
|
+
* // set the destination
|
|
57
|
+
* documentLinkAnnotation.destination = new PdfDestination(page2);
|
|
58
|
+
* // set the documentlink annotation location
|
|
59
|
+
* documentLinkAnnotation.destination.location = new PointF(10, 0);
|
|
60
|
+
* // add this annotation to a new page
|
|
61
|
+
* page1.annotations.add(documentLinkAnnotation);
|
|
62
|
+
* //
|
|
63
|
+
* // save the document to disk
|
|
64
|
+
* document.save('output.pdf');
|
|
65
|
+
* // destroy the document
|
|
66
|
+
* document.destroy();
|
|
67
|
+
* ```
|
|
68
|
+
* @default null
|
|
69
|
+
*/
|
|
70
|
+
public get destination() : PdfDestination {
|
|
71
|
+
return this.pdfDestination;
|
|
72
|
+
}
|
|
73
|
+
public set destination(value : PdfDestination) {
|
|
74
|
+
// if (this.pdfDestination !== value) {
|
|
75
|
+
this.pdfDestination = value;
|
|
76
|
+
// }
|
|
77
|
+
}
|
|
78
|
+
// Constructors
|
|
79
|
+
/**
|
|
80
|
+
* Initializes new `PdfDocumentLinkAnnotation` instance with specified bounds.
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
public constructor(rectangle : RectangleF)
|
|
84
|
+
/**
|
|
85
|
+
* Initializes new `PdfDocumentLinkAnnotation` instance with specified bounds and destination.
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
public constructor(rectangle : RectangleF, destination : PdfDestination)
|
|
89
|
+
public constructor(rectangle : RectangleF, destination ?: PdfDestination) {
|
|
90
|
+
super(rectangle);
|
|
91
|
+
if (typeof destination !== 'undefined') {
|
|
92
|
+
this.destination = destination;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Implementation
|
|
96
|
+
/**
|
|
97
|
+
* `Saves` annotation object.
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
public save() : void {
|
|
101
|
+
super.save();
|
|
102
|
+
if (this.pdfDestination != null) {
|
|
103
|
+
this.dictionary.items.setValue(this.dictionaryProperties.dest, this.pdfDestination.element);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* `Clone` the document link annotation.
|
|
108
|
+
* @private
|
|
109
|
+
*/
|
|
110
|
+
public clone() : PdfDocumentLinkAnnotation {
|
|
111
|
+
let annot : PdfDocumentLinkAnnotation = new PdfDocumentLinkAnnotation(this.bounds, this.destination);
|
|
112
|
+
annot.color = this.color;
|
|
113
|
+
annot.brush = this.brush;
|
|
114
|
+
annot.destination = this.destination;
|
|
115
|
+
annot.font = this.font;
|
|
116
|
+
return annot;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PdfAnnotation } from './annotation';
|
|
2
|
+
import { RectangleF } from './../drawing/pdf-drawing';
|
|
3
|
+
import { PdfName } from './../primitives/pdf-name';
|
|
4
|
+
/**
|
|
5
|
+
* `PdfLinkAnnotation` class represents the ink annotation class.
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export abstract class PdfLinkAnnotation extends PdfAnnotation {
|
|
9
|
+
// Constructors
|
|
10
|
+
/**
|
|
11
|
+
* Initializes new instance of `PdfLineAnnotation` class with specified points.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
public constructor()
|
|
15
|
+
/**
|
|
16
|
+
* Initializes new instance of `PdfLineAnnotation` class with set of points and annotation text.
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
public constructor(rectangle : RectangleF)
|
|
20
|
+
public constructor(rectangle ?: RectangleF) {
|
|
21
|
+
super(rectangle);
|
|
22
|
+
}
|
|
23
|
+
// Implementation
|
|
24
|
+
/**
|
|
25
|
+
* `Initializes` annotation object.
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
protected initialize() : void {
|
|
29
|
+
super.initialize();
|
|
30
|
+
this.dictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.link));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { PdfPage } from './../pages/pdf-page';
|
|
2
|
+
import { PdfGraphics } from './../graphics/pdf-graphics';
|
|
3
|
+
import { PointF, RectangleF, SizeF } from './../drawing/pdf-drawing';
|
|
4
|
+
import { PdfTextElement } from './../graphics/figures/text-element';
|
|
5
|
+
import { PdfUriAnnotation } from './uri-annotation';
|
|
6
|
+
import { PdfStringLayouter, PdfStringLayoutResult } from './../graphics/fonts/string-layouter';
|
|
7
|
+
import { PdfFontStyle } from './../graphics/fonts/enum';
|
|
8
|
+
import { PdfLayoutResult } from './../graphics/figures/base/element-layouter';
|
|
9
|
+
import { PdfTextAlignment } from './../graphics/enum';
|
|
10
|
+
import { PdfArray } from './../primitives/pdf-array';
|
|
11
|
+
import { PdfNumber } from './../primitives/pdf-number';
|
|
12
|
+
/**
|
|
13
|
+
* `PdfTextWebLink` class represents the class for text web link annotation.
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // create a new PDF document.
|
|
16
|
+
* let document : PdfDocument = new PdfDocument();
|
|
17
|
+
* // add a page to the document.
|
|
18
|
+
* let page1 : PdfPage = document.pages.add();
|
|
19
|
+
* // create the font
|
|
20
|
+
* let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
|
|
21
|
+
* //
|
|
22
|
+
* // create the Text Web Link
|
|
23
|
+
* let textLink : PdfTextWebLink = new PdfTextWebLink();
|
|
24
|
+
* // set the hyperlink
|
|
25
|
+
* textLink.url = 'http://www.google.com';
|
|
26
|
+
* // set the link text
|
|
27
|
+
* textLink.text = 'Google';
|
|
28
|
+
* // set the font
|
|
29
|
+
* textLink.font = font;
|
|
30
|
+
* // draw the hyperlink in PDF page
|
|
31
|
+
* textLink.draw(page1, new PointF(10, 40));
|
|
32
|
+
* //
|
|
33
|
+
* // save the document.
|
|
34
|
+
* document.save('output.pdf');
|
|
35
|
+
* // destroy the document
|
|
36
|
+
* document.destroy();
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export class PdfTextWebLink extends PdfTextElement {
|
|
40
|
+
// Fields
|
|
41
|
+
/**
|
|
42
|
+
* Internal variable to store `Url`.
|
|
43
|
+
* @default ''
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
private uniformResourceLocator : string = '';
|
|
47
|
+
/**
|
|
48
|
+
* Internal variable to store `Uri Annotation` object.
|
|
49
|
+
* @default null
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
private uriAnnotation : PdfUriAnnotation = null;
|
|
53
|
+
/**
|
|
54
|
+
* Checks whether the drawTextWebLink method with `PointF` overload is called or not.
|
|
55
|
+
* If it set as true, then the start position of each lines excluding firest line is changed as (0, Y).
|
|
56
|
+
* @private
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
private recalculateBounds : boolean = false;
|
|
60
|
+
private defaultBorder : PdfArray = new PdfArray();
|
|
61
|
+
// Properties
|
|
62
|
+
/**
|
|
63
|
+
* Gets or sets the `Uri address`.
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // create a new PDF document.
|
|
66
|
+
* let document : PdfDocument = new PdfDocument();
|
|
67
|
+
* // add a page to the document.
|
|
68
|
+
* let page1 : PdfPage = document.pages.add();
|
|
69
|
+
* // create the font
|
|
70
|
+
* let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
|
|
71
|
+
* // create the Text Web Link
|
|
72
|
+
* let textLink : PdfTextWebLink = new PdfTextWebLink();
|
|
73
|
+
* //
|
|
74
|
+
* // set the hyperlink
|
|
75
|
+
* textLink.url = 'http://www.google.com';
|
|
76
|
+
* //
|
|
77
|
+
* // set the link text
|
|
78
|
+
* textLink.text = 'Google';
|
|
79
|
+
* // set the font
|
|
80
|
+
* textLink.font = font;
|
|
81
|
+
* // draw the hyperlink in PDF page
|
|
82
|
+
* textLink.draw(page1, new PointF(10, 40));
|
|
83
|
+
* // save the document.
|
|
84
|
+
* document.save('output.pdf');
|
|
85
|
+
* // destroy the document
|
|
86
|
+
* document.destroy();
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
public get url() : string {
|
|
90
|
+
return this.uniformResourceLocator;
|
|
91
|
+
}
|
|
92
|
+
public set url(value : string) {
|
|
93
|
+
if (value.length === 0) {
|
|
94
|
+
throw new Error('ArgumentException : Url - string can not be empty');
|
|
95
|
+
}
|
|
96
|
+
this.uniformResourceLocator = value;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Constructors
|
|
100
|
+
/**
|
|
101
|
+
* Initializes a new instance of the `PdfTextWebLink` class.
|
|
102
|
+
* @private
|
|
103
|
+
*/
|
|
104
|
+
public constructor() {
|
|
105
|
+
super();
|
|
106
|
+
for (let i : number = 0; i < 3; i++) {
|
|
107
|
+
this.defaultBorder.add(new PdfNumber(0));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Implementation
|
|
112
|
+
/* tslint:disable */
|
|
113
|
+
/**
|
|
114
|
+
* `Draws` a Text Web Link on the Page with the specified location.
|
|
115
|
+
* @private
|
|
116
|
+
*/
|
|
117
|
+
public draw(page : PdfPage, location : PointF) : PdfLayoutResult
|
|
118
|
+
/**
|
|
119
|
+
* `Draws` a Text Web Link on the Page with the specified bounds.
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
public draw(page : PdfPage, bounds : RectangleF) : PdfLayoutResult
|
|
123
|
+
/**
|
|
124
|
+
* `Draw` a Text Web Link on the Graphics with the specified location.
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
public draw(graphics : PdfGraphics, location : PointF) : PdfLayoutResult
|
|
128
|
+
/**
|
|
129
|
+
* `Draw` a Text Web Link on the Graphics with the specified bounds.
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
public draw(graphics : PdfGraphics, bounds : RectangleF) : PdfLayoutResult
|
|
133
|
+
public draw(arg1 : PdfGraphics|PdfPage, arg2 : PointF|RectangleF) : PdfLayoutResult {
|
|
134
|
+
if (arg1 instanceof PdfPage) {
|
|
135
|
+
let layout : PdfStringLayouter = new PdfStringLayouter();
|
|
136
|
+
let previousFontStyle : PdfFontStyle = this.font.style;
|
|
137
|
+
if (arg2 instanceof PointF) {
|
|
138
|
+
this.recalculateBounds = true;
|
|
139
|
+
this.font.style = PdfFontStyle.Underline;
|
|
140
|
+
let layoutResult : PdfStringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg1.graphics.clientSize.width - arg2.x), 0), true, arg1.graphics.clientSize);
|
|
141
|
+
if (layoutResult.lines.length === 1) {
|
|
142
|
+
let textSize : SizeF = this.font.measureString(this.value);
|
|
143
|
+
let rect : RectangleF = new RectangleF(arg2, textSize);
|
|
144
|
+
rect = this.calculateBounds(rect, textSize.width, arg1.graphics.clientSize.width, arg2.x);
|
|
145
|
+
this.uriAnnotation = new PdfUriAnnotation(rect, this.url);
|
|
146
|
+
this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
|
|
147
|
+
arg1.annotations.add(this.uriAnnotation);
|
|
148
|
+
let result : PdfLayoutResult = this.drawText(arg1, arg2);
|
|
149
|
+
this.font.style = previousFontStyle;
|
|
150
|
+
return result;
|
|
151
|
+
} else {
|
|
152
|
+
let result : PdfLayoutResult = this.drawMultipleLineWithPoint(layoutResult, arg1, arg2);
|
|
153
|
+
this.font.style = previousFontStyle;
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
} else {
|
|
157
|
+
let layoutResult : PdfStringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg2 as RectangleF).width, 0), false, new SizeF(0, 0));
|
|
158
|
+
this.font.style = PdfFontStyle.Underline;
|
|
159
|
+
if (layoutResult.lines.length === 1) {
|
|
160
|
+
let textSize : SizeF = this.font.measureString(this.value);
|
|
161
|
+
let rect : RectangleF = new RectangleF(new PointF((arg2 as RectangleF).x, (arg2 as RectangleF).y), textSize);
|
|
162
|
+
rect = this.calculateBounds(rect, textSize.width, (arg2 as RectangleF).width, (arg2 as RectangleF).x);
|
|
163
|
+
this.uriAnnotation = new PdfUriAnnotation(rect, this.url);
|
|
164
|
+
this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
|
|
165
|
+
arg1.annotations.add(this.uriAnnotation);
|
|
166
|
+
let returnValue : PdfLayoutResult = this.drawText(arg1, arg2 as RectangleF);
|
|
167
|
+
this.font.style = previousFontStyle;
|
|
168
|
+
return returnValue;
|
|
169
|
+
} else {
|
|
170
|
+
let returnValue : PdfLayoutResult = this.drawMultipleLineWithBounds(layoutResult, arg1, arg2 as RectangleF);
|
|
171
|
+
this.font.style = previousFontStyle;
|
|
172
|
+
return returnValue;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
} else {
|
|
176
|
+
let page : PdfPage = new PdfPage();
|
|
177
|
+
page = arg1.page as PdfPage;
|
|
178
|
+
return this.draw(page, arg2);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/* tslint:enable */
|
|
182
|
+
//Private methods
|
|
183
|
+
/**
|
|
184
|
+
* Helper method `Draw` a Multiple Line Text Web Link on the Graphics with the specified location.
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
private drawMultipleLineWithPoint(result : PdfStringLayoutResult, page : PdfPage, location : PointF) : PdfLayoutResult {
|
|
188
|
+
let layoutResult : PdfLayoutResult;
|
|
189
|
+
for (let i : number = 0; i < result.layoutLines.length; i++) {
|
|
190
|
+
let size : SizeF = this.font.measureString(result.lines[i].text);
|
|
191
|
+
let bounds : RectangleF = new RectangleF(location, size);
|
|
192
|
+
if (i !== 0) {
|
|
193
|
+
bounds.x = 0;
|
|
194
|
+
}
|
|
195
|
+
this.text = result.lines[i].text;
|
|
196
|
+
if (bounds.y + size.height > page.graphics.clientSize.height) {
|
|
197
|
+
if (i !== 0) {
|
|
198
|
+
page = page.graphics.getNextPage();
|
|
199
|
+
bounds = new RectangleF(0, 0, page.graphics.clientSize.width, size.height);
|
|
200
|
+
location.y = 0;
|
|
201
|
+
} else {
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
bounds = this.calculateBounds(bounds, size.width, page.graphics.clientSize.width, bounds.x);
|
|
206
|
+
this.uriAnnotation = new PdfUriAnnotation(bounds, this.url);
|
|
207
|
+
this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
|
|
208
|
+
page.annotations.add(this.uriAnnotation);
|
|
209
|
+
if (i !== 0) {
|
|
210
|
+
layoutResult = this.drawText(page, new PointF(0, bounds.y));
|
|
211
|
+
} else {
|
|
212
|
+
layoutResult = this.drawText(page, bounds.x, bounds.y);
|
|
213
|
+
}
|
|
214
|
+
location.y += size.height;
|
|
215
|
+
}
|
|
216
|
+
return layoutResult;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Helper method `Draw` a Multiple Line Text Web Link on the Graphics with the specified bounds.
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
private drawMultipleLineWithBounds(result : PdfStringLayoutResult, page : PdfPage, bounds : RectangleF) : PdfLayoutResult {
|
|
223
|
+
let layoutResult : PdfLayoutResult;
|
|
224
|
+
for (let i : number = 0; i < result.layoutLines.length; i++) {
|
|
225
|
+
let size : SizeF = this.font.measureString(result.lines[i].text);
|
|
226
|
+
let internalBounds : RectangleF = new RectangleF(new PointF(bounds.x, bounds.y), size);
|
|
227
|
+
internalBounds = this.calculateBounds(internalBounds, size.width, bounds.width, bounds.x);
|
|
228
|
+
this.text = result.lines[i].text;
|
|
229
|
+
if (bounds.y + size.height > page.graphics.clientSize.height) {
|
|
230
|
+
if (i !== 0) {
|
|
231
|
+
page = page.graphics.getNextPage();
|
|
232
|
+
bounds = new RectangleF(bounds.x, 0, bounds.width, size.height);
|
|
233
|
+
internalBounds.y = 0;
|
|
234
|
+
} else {
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
this.uriAnnotation = new PdfUriAnnotation(internalBounds, this.url);
|
|
239
|
+
this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
|
|
240
|
+
page.annotations.add(this.uriAnnotation);
|
|
241
|
+
layoutResult = this.drawText(page, bounds);
|
|
242
|
+
bounds.y += size.height;
|
|
243
|
+
}
|
|
244
|
+
return layoutResult;
|
|
245
|
+
}
|
|
246
|
+
/* tslint:disable */
|
|
247
|
+
private calculateBounds(currentBounds : RectangleF, lineWidth : number, maximumWidth : number, startPosition : number) : RectangleF {
|
|
248
|
+
let shift : number = 0;
|
|
249
|
+
if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Center) {
|
|
250
|
+
currentBounds.x = startPosition + (maximumWidth - lineWidth) / 2;
|
|
251
|
+
currentBounds.width = lineWidth;
|
|
252
|
+
} else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Right) {
|
|
253
|
+
currentBounds.x = startPosition + (maximumWidth - lineWidth);
|
|
254
|
+
currentBounds.width = lineWidth;
|
|
255
|
+
} else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Justify) {
|
|
256
|
+
currentBounds.x = startPosition;
|
|
257
|
+
currentBounds.width = maximumWidth;
|
|
258
|
+
} else {
|
|
259
|
+
currentBounds.width = startPosition;
|
|
260
|
+
currentBounds.width = lineWidth;
|
|
261
|
+
}
|
|
262
|
+
return currentBounds;
|
|
263
|
+
}
|
|
264
|
+
/* tslint:enable */
|
|
265
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PdfUriAnnotation.ts class for EJ2-PDF
|
|
3
|
+
*/
|
|
4
|
+
import { PdfAction } from './../actions/action';
|
|
5
|
+
import { RectangleF } from './../drawing/pdf-drawing';
|
|
6
|
+
import { PdfActionLinkAnnotation } from './action-link-annotation';
|
|
7
|
+
import { PdfName } from './../primitives/pdf-name';
|
|
8
|
+
import { PdfUriAction } from './../actions/uri-action';
|
|
9
|
+
import { IPdfPrimitive } from './../../interfaces/i-pdf-primitives';
|
|
10
|
+
/**
|
|
11
|
+
* `PdfUriAnnotation` class represents the Uri annotation.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
export class PdfUriAnnotation extends PdfActionLinkAnnotation {
|
|
15
|
+
// Fields
|
|
16
|
+
/**
|
|
17
|
+
* Internal variable to store `acton` for the annotation.
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
private pdfUriAction : PdfUriAction;
|
|
21
|
+
/**
|
|
22
|
+
* Get `action` of the annotation.
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
public get uriAction() : PdfUriAction {
|
|
26
|
+
if (typeof this.pdfUriAction === 'undefined') {
|
|
27
|
+
this.pdfUriAction = new PdfUriAction();
|
|
28
|
+
}
|
|
29
|
+
return this.pdfUriAction;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Properties
|
|
33
|
+
/**
|
|
34
|
+
* Gets or sets the `Uri` address.
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
public get uri() : string {
|
|
38
|
+
return this.uriAction.uri;
|
|
39
|
+
}
|
|
40
|
+
public set uri(value : string) {
|
|
41
|
+
if (this.uriAction.uri !== value) {
|
|
42
|
+
this.uriAction.uri = value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Gets or sets the `action`.
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
public get action() : PdfAction {
|
|
50
|
+
return this.getSetAction() as PdfAction;
|
|
51
|
+
}
|
|
52
|
+
public set action(value : PdfAction) {
|
|
53
|
+
this.getSetAction(value);
|
|
54
|
+
this.uriAction.next = value;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Constructors
|
|
58
|
+
/**
|
|
59
|
+
* Initializes a new instance of the `PdfUriAnnotation` class with specified bounds.
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
public constructor(rectangle : RectangleF)
|
|
63
|
+
/**
|
|
64
|
+
* Initializes a new instance of the `PdfUriAnnotation` class with specified bounds and URI.
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
public constructor(rectangle : RectangleF, uri : string)
|
|
68
|
+
public constructor(rectangle : RectangleF, uri ?: string) {
|
|
69
|
+
super(rectangle);
|
|
70
|
+
if (typeof uri !== 'undefined') {
|
|
71
|
+
this.uri = uri;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Implementation
|
|
76
|
+
/**
|
|
77
|
+
* `Initializes` annotation object.
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
protected initialize() : void {
|
|
81
|
+
super.initialize();
|
|
82
|
+
this.dictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.link));
|
|
83
|
+
let tempPrimitive : IPdfPrimitive = this.uriAction.element;
|
|
84
|
+
this.dictionary.items.setValue(this.dictionaryProperties.a, this.uriAction.element);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dictionary.ts class for EJ2-PDF
|
|
3
|
+
* @private
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
import {defaultToString} from './utils';
|
|
7
|
+
// Used internally by dictionary
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export interface IDictionaryPair<K, V> {
|
|
13
|
+
key: K;
|
|
14
|
+
value: V;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @private
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
20
|
+
export class Dictionary<K, V>{
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
* @hidden
|
|
24
|
+
*/
|
|
25
|
+
protected table: { [key: string]: IDictionaryPair<K, V> };
|
|
26
|
+
//: [key: K] will not work since indices can only by strings in javascript and typescript enforces this.
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
protected nElements: number;
|
|
32
|
+
/**
|
|
33
|
+
* @private
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
|
+
protected toStr: (key: K) => string;
|
|
37
|
+
/**
|
|
38
|
+
* @private
|
|
39
|
+
* @hidden
|
|
40
|
+
*/
|
|
41
|
+
public constructor(toStringFunction?: (key: K) => string) {
|
|
42
|
+
this.table = {};
|
|
43
|
+
this.nElements = 0;
|
|
44
|
+
this.toStr = toStringFunction || defaultToString;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
* @hidden
|
|
49
|
+
*/
|
|
50
|
+
public getValue(key: K): V {
|
|
51
|
+
const pair: IDictionaryPair<K, V> = this.table['$' + this.toStr(key)];
|
|
52
|
+
if (typeof pair === 'undefined') {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
return pair.value;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @private
|
|
59
|
+
* @hidden
|
|
60
|
+
*/
|
|
61
|
+
public setValue(key: K, value: V): V {
|
|
62
|
+
// if (typeof key === 'undefined' || typeof value === 'undefined') {
|
|
63
|
+
// return undefined;
|
|
64
|
+
// }
|
|
65
|
+
let ret: V;
|
|
66
|
+
const k : string = '$' + this.toStr(key);
|
|
67
|
+
const previousElement: IDictionaryPair<K, V> = this.table[k];
|
|
68
|
+
// if (typeof previousElement === 'undefined') {
|
|
69
|
+
this.nElements++;
|
|
70
|
+
ret = undefined;
|
|
71
|
+
// }
|
|
72
|
+
this.table[k] = {
|
|
73
|
+
key: key,
|
|
74
|
+
value: value
|
|
75
|
+
};
|
|
76
|
+
return ret;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @private
|
|
80
|
+
* @hidden
|
|
81
|
+
*/
|
|
82
|
+
public remove(key: K): V {
|
|
83
|
+
const k : string = '$' + this.toStr(key);
|
|
84
|
+
const previousElement: IDictionaryPair<K, V> = this.table[k];
|
|
85
|
+
// if (typeof previousElement !== 'undefined') {
|
|
86
|
+
delete this.table[k];
|
|
87
|
+
this.nElements--;
|
|
88
|
+
return previousElement.value;
|
|
89
|
+
// }
|
|
90
|
+
// return undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @private
|
|
94
|
+
* @hidden
|
|
95
|
+
*/
|
|
96
|
+
public keys(): K[] {
|
|
97
|
+
const keysArray: K[] = [];
|
|
98
|
+
let namesOfKeys : string[] = Object.keys(this.table);
|
|
99
|
+
for (let index1 : number = 0; index1 < namesOfKeys.length; index1++) {
|
|
100
|
+
// if (Object.prototype.hasOwnProperty.call(this.table, namesOfKeys[index1])) {
|
|
101
|
+
const pair1: IDictionaryPair<K, V> = this.table[namesOfKeys[index1]];
|
|
102
|
+
keysArray.push(pair1.key);
|
|
103
|
+
// }
|
|
104
|
+
}
|
|
105
|
+
return keysArray;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @private
|
|
109
|
+
* @hidden
|
|
110
|
+
*/
|
|
111
|
+
public values(): V[] {
|
|
112
|
+
const valuesArray: V[] = [];
|
|
113
|
+
let namesOfValues : string[] = Object.keys(this.table);
|
|
114
|
+
for (let index2 : number = 0; index2 < namesOfValues.length; index2++) {
|
|
115
|
+
// if (Object.prototype.hasOwnProperty.call(this.table, namesOfValues[index2])) {
|
|
116
|
+
const pair2: IDictionaryPair<K, V> = this.table[namesOfValues[index2]];
|
|
117
|
+
valuesArray.push(pair2.value);
|
|
118
|
+
// }
|
|
119
|
+
}
|
|
120
|
+
return valuesArray;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @private
|
|
124
|
+
* @hidden
|
|
125
|
+
*/
|
|
126
|
+
public containsKey(key: K): boolean {
|
|
127
|
+
let retutnValue : boolean = true;
|
|
128
|
+
if (typeof this.getValue(key) === 'undefined') {
|
|
129
|
+
retutnValue = true;
|
|
130
|
+
} else {
|
|
131
|
+
retutnValue = false;
|
|
132
|
+
}
|
|
133
|
+
return !retutnValue;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* @private
|
|
137
|
+
* @hidden
|
|
138
|
+
*/
|
|
139
|
+
public clear() : void {
|
|
140
|
+
this.table = {};
|
|
141
|
+
this.nElements = 0;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* @private
|
|
145
|
+
* @hidden
|
|
146
|
+
*/
|
|
147
|
+
public size(): number {
|
|
148
|
+
return this.nElements;
|
|
149
|
+
}
|
|
150
|
+
} // End of dictionary
|