@compdfkit_pdf_sdk/react_native
Version:
ComPDFKit for React Native is a comprehensive SDK that allows you to quickly add PDF functionality to Android, iOS, and React Native applications.
56 lines • 4.11 kB
JavaScript
;
/**
* Copyright © 2014-2026 PDF Technologies, Inc. All Rights Reserved.
*
* THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
* AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
* UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
* This notice may not be removed from this file.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.CPDFAnnotationFactory = void 0;
const CPDFOptions_1 = require("../configuration/CPDFOptions");
const CPDFEnumUtils_1 = require("../util/CPDFEnumUtils");
const CPDFAnnotation_1 = require("./CPDFAnnotation");
const CPDFCircleAnnotation_1 = require("./CPDFCircleAnnotation");
const CPDFFreeTextAnnotation_1 = require("./CPDFFreeTextAnnotation");
const CPDFImageAnnotation_1 = require("./CPDFImageAnnotation");
const CPDFInkAnnotation_1 = require("./CPDFInkAnnotation");
const CPDFLineAnnotation_1 = require("./CPDFLineAnnotation");
const CPDFLinkAnnotation_1 = require("./CPDFLinkAnnotation");
const CPDFMarkupAnnotation_1 = require("./CPDFMarkupAnnotation");
const CPDFNoteAnnotation_1 = require("./CPDFNoteAnnotation");
const CPDFSignatureAnnotation_1 = require("./CPDFSignatureAnnotation");
const CPDFSoundAnnotation_1 = require("./CPDFSoundAnnotation");
const CPDFSquareAnnotation_1 = require("./CPDFSquareAnnotation");
const CPDFStampAnnotation_1 = require("./CPDFStampAnnotation");
class CPDFAnnotationFactory {
static annotationMap = new Map([
[CPDFOptions_1.CPDFAnnotationType.NOTE, (json) => CPDFNoteAnnotation_1.CPDFNoteAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.HIGHLIGHT, (json) => CPDFMarkupAnnotation_1.CPDFHighlightAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.UNDERLINE, (json) => CPDFMarkupAnnotation_1.CPDFUnderlineAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.SQUIGGLY, (json) => CPDFMarkupAnnotation_1.CPDFSquigglyAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.STRIKEOUT, (json) => CPDFMarkupAnnotation_1.CPDFStrikeOutAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.INK, (json) => CPDFInkAnnotation_1.CPDFInkAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.FREETEXT, (json) => CPDFFreeTextAnnotation_1.CPDFFreeTextAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.SQUARE, (json) => CPDFSquareAnnotation_1.CPDFSquareAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.CIRCLE, (json) => CPDFCircleAnnotation_1.CPDFCircleAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.LINE, (json) => CPDFLineAnnotation_1.CPDFLineAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.ARROW, (json) => CPDFLineAnnotation_1.CPDFLineAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.LINK, (json) => CPDFLinkAnnotation_1.CPDFLinkAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.STAMP, (json) => CPDFStampAnnotation_1.CPDFStampAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.PICTURES, (json) => CPDFImageAnnotation_1.CPDFImageAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.SIGNATURE, (json) => CPDFSignatureAnnotation_1.CPDFSignatureAnnotation.fromJson(json)],
[CPDFOptions_1.CPDFAnnotationType.SOUND, (json) => CPDFSoundAnnotation_1.CPDFSoundAnnotation.fromJson(json)],
]);
static create(json) {
const type = (0, CPDFEnumUtils_1.safeParseEnumValue)(json.type, Object.values(CPDFOptions_1.CPDFAnnotationType), CPDFOptions_1.CPDFAnnotationType.UNKNOWN);
const annotationCreator = CPDFAnnotationFactory.annotationMap.get(type);
return annotationCreator ? annotationCreator(json) : CPDFAnnotation_1.CPDFAnnotation.fromJson(json);
}
static createFromArray(jsonArray) {
return jsonArray.map(item => CPDFAnnotationFactory.create(item));
}
}
exports.CPDFAnnotationFactory = CPDFAnnotationFactory;
//# sourceMappingURL=CPDFAnnotationFactory.js.map