@pdfme/pdf-lib 5.4.0-dev.63 → 5.4.0-dev.66
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/dist/cjs/src/api/PDFDocument.js +3 -11
- package/dist/cjs/src/api/PDFDocument.js.map +1 -1
- package/dist/cjs/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/cjs/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/cjs/src/api/PDFFont.js.map +1 -1
- package/dist/cjs/src/api/PDFJavaScript.js.map +1 -1
- package/dist/cjs/src/api/PDFPage.js +16 -42
- package/dist/cjs/src/api/PDFPage.js.map +1 -1
- package/dist/cjs/src/api/colors.js.map +1 -1
- package/dist/cjs/src/api/errors.js.map +1 -1
- package/dist/cjs/src/api/form/PDFButton.js +1 -3
- package/dist/cjs/src/api/form/PDFButton.js.map +1 -1
- package/dist/cjs/src/api/form/PDFCheckBox.js +1 -3
- package/dist/cjs/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/cjs/src/api/form/PDFDropdown.js +1 -3
- package/dist/cjs/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/cjs/src/api/form/PDFField.js +4 -10
- package/dist/cjs/src/api/form/PDFField.js.map +1 -1
- package/dist/cjs/src/api/form/PDFForm.js +1 -3
- package/dist/cjs/src/api/form/PDFForm.js.map +1 -1
- package/dist/cjs/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/cjs/src/api/form/PDFRadioGroup.js +1 -3
- package/dist/cjs/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/cjs/src/api/form/PDFSignature.js +1 -3
- package/dist/cjs/src/api/form/PDFSignature.js.map +1 -1
- package/dist/cjs/src/api/form/PDFTextField.js.map +1 -1
- package/dist/cjs/src/api/form/appearances.js.map +1 -1
- package/dist/cjs/src/api/operations.js.map +1 -1
- package/dist/cjs/src/api/operators.js +1 -5
- package/dist/cjs/src/api/operators.js.map +1 -1
- package/dist/cjs/src/api/rotations.js.map +1 -1
- package/dist/cjs/src/api/svg.js +25 -23
- package/dist/cjs/src/api/svg.js.map +1 -1
- package/dist/cjs/src/api/svgPath.js +1 -2
- package/dist/cjs/src/api/svgPath.js.map +1 -1
- package/dist/cjs/src/api/text/layout.js.map +1 -1
- package/dist/cjs/src/core/PDFContext.js.map +1 -1
- package/dist/cjs/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/cjs/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/cjs/src/core/acroform/utils.js.map +1 -1
- package/dist/cjs/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/cjs/src/core/crypto.js +122 -179
- package/dist/cjs/src/core/crypto.js.map +1 -1
- package/dist/cjs/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/cjs/src/core/document/PDFHeader.js.map +1 -1
- package/dist/cjs/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/cjs/src/core/embedders/CMap.js.map +1 -1
- package/dist/cjs/src/core/embedders/CustomFontEmbedder.js +1 -2
- package/dist/cjs/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/cjs/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/cjs/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/PDFPageEmbedder.js +11 -7
- package/dist/cjs/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/cjs/src/core/errors.js +1 -3
- package/dist/cjs/src/core/errors.js.map +1 -1
- package/dist/cjs/src/core/index.js.map +1 -1
- package/dist/cjs/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFArray.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFDict.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFName.js +1 -3
- package/dist/cjs/src/core/objects/PDFName.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFRef.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFStream.js.map +1 -1
- package/dist/cjs/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/cjs/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFParser.js +1 -2
- package/dist/cjs/src/core/parser/PDFParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/cjs/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/cjs/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/cjs/src/core/streams/FlateStream.js.map +1 -1
- package/dist/cjs/src/core/streams/LZWStream.js.map +1 -1
- package/dist/cjs/src/core/streams/Stream.js.map +1 -1
- package/dist/cjs/src/core/streams/decode.js +1 -1
- package/dist/cjs/src/core/streams/decode.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/cjs/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/cjs/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFPageTree.js +1 -1
- package/dist/cjs/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/cjs/src/core/syntax/Keywords.js +4 -30
- package/dist/cjs/src/core/syntax/Keywords.js.map +1 -1
- package/dist/cjs/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/cjs/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/cjs/src/types/matrix.js.map +1 -1
- package/dist/cjs/src/utils/arrays.js +2 -5
- package/dist/cjs/src/utils/arrays.js.map +1 -1
- package/dist/cjs/src/utils/base64.js.map +1 -1
- package/dist/cjs/src/utils/elements/Arc.js +3 -6
- package/dist/cjs/src/utils/elements/Arc.js.map +1 -1
- package/dist/cjs/src/utils/elements/Circle.js.map +1 -1
- package/dist/cjs/src/utils/elements/Ellipse.js +1 -1
- package/dist/cjs/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/cjs/src/utils/elements/Line.js +1 -3
- package/dist/cjs/src/utils/elements/Line.js.map +1 -1
- package/dist/cjs/src/utils/elements/Segment.js +1 -2
- package/dist/cjs/src/utils/elements/Segment.js.map +1 -1
- package/dist/cjs/src/utils/intersections.js.map +1 -1
- package/dist/cjs/src/utils/maths.js.map +1 -1
- package/dist/cjs/src/utils/strings.js.map +1 -1
- package/dist/cjs/src/utils/unicode.js.map +1 -1
- package/dist/cjs/src/utils/validators.js.map +1 -1
- package/dist/esm/src/api/PDFDocument.js +3 -11
- package/dist/esm/src/api/PDFDocument.js.map +1 -1
- package/dist/esm/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/esm/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/esm/src/api/PDFFont.js +1 -1
- package/dist/esm/src/api/PDFFont.js.map +1 -1
- package/dist/esm/src/api/PDFJavaScript.js.map +1 -1
- package/dist/esm/src/api/PDFPage.js +16 -42
- package/dist/esm/src/api/PDFPage.js.map +1 -1
- package/dist/esm/src/api/colors.js.map +1 -1
- package/dist/esm/src/api/errors.js.map +1 -1
- package/dist/esm/src/api/form/PDFButton.js +3 -5
- package/dist/esm/src/api/form/PDFButton.js.map +1 -1
- package/dist/esm/src/api/form/PDFCheckBox.js +3 -5
- package/dist/esm/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/esm/src/api/form/PDFDropdown.js +2 -4
- package/dist/esm/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/esm/src/api/form/PDFField.js +4 -10
- package/dist/esm/src/api/form/PDFField.js.map +1 -1
- package/dist/esm/src/api/form/PDFForm.js +2 -4
- package/dist/esm/src/api/form/PDFForm.js.map +1 -1
- package/dist/esm/src/api/form/PDFOptionList.js +2 -2
- package/dist/esm/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/esm/src/api/form/PDFRadioGroup.js +2 -4
- package/dist/esm/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/esm/src/api/form/PDFSignature.js +1 -3
- package/dist/esm/src/api/form/PDFSignature.js.map +1 -1
- package/dist/esm/src/api/form/PDFTextField.js +2 -2
- package/dist/esm/src/api/form/PDFTextField.js.map +1 -1
- package/dist/esm/src/api/form/appearances.js +1 -1
- package/dist/esm/src/api/form/appearances.js.map +1 -1
- package/dist/esm/src/api/operations.js.map +1 -1
- package/dist/esm/src/api/operators.js +2 -6
- package/dist/esm/src/api/operators.js.map +1 -1
- package/dist/esm/src/api/rotations.js.map +1 -1
- package/dist/esm/src/api/svg.js +26 -24
- package/dist/esm/src/api/svg.js.map +1 -1
- package/dist/esm/src/api/svgPath.js +2 -3
- package/dist/esm/src/api/svgPath.js.map +1 -1
- package/dist/esm/src/api/text/layout.js +1 -1
- package/dist/esm/src/api/text/layout.js.map +1 -1
- package/dist/esm/src/core/PDFContext.js.map +1 -1
- package/dist/esm/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/esm/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/esm/src/core/acroform/utils.js.map +1 -1
- package/dist/esm/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/esm/src/core/crypto.js +122 -179
- package/dist/esm/src/core/crypto.js.map +1 -1
- package/dist/esm/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/esm/src/core/document/PDFHeader.js.map +1 -1
- package/dist/esm/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/esm/src/core/embedders/CMap.js +1 -1
- package/dist/esm/src/core/embedders/CMap.js.map +1 -1
- package/dist/esm/src/core/embedders/CustomFontEmbedder.js +2 -3
- package/dist/esm/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/esm/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/esm/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/PDFPageEmbedder.js +12 -8
- package/dist/esm/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/StandardFontEmbedder.js +1 -1
- package/dist/esm/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/esm/src/core/errors.js +1 -3
- package/dist/esm/src/core/errors.js.map +1 -1
- package/dist/esm/src/core/index.js +2 -2
- package/dist/esm/src/core/index.js.map +1 -1
- package/dist/esm/src/core/interactive/ViewerPreferences.js +1 -1
- package/dist/esm/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/esm/src/core/objects/PDFArray.js.map +1 -1
- package/dist/esm/src/core/objects/PDFDict.js.map +1 -1
- package/dist/esm/src/core/objects/PDFName.js +2 -4
- package/dist/esm/src/core/objects/PDFName.js.map +1 -1
- package/dist/esm/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/esm/src/core/objects/PDFRef.js.map +1 -1
- package/dist/esm/src/core/objects/PDFStream.js.map +1 -1
- package/dist/esm/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/esm/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/esm/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFParser.js +1 -2
- package/dist/esm/src/core/parser/PDFParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/esm/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/esm/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/esm/src/core/streams/FlateStream.js.map +1 -1
- package/dist/esm/src/core/streams/LZWStream.js.map +1 -1
- package/dist/esm/src/core/streams/Stream.js.map +1 -1
- package/dist/esm/src/core/streams/decode.js +1 -1
- package/dist/esm/src/core/streams/decode.js.map +1 -1
- package/dist/esm/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/esm/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/esm/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/esm/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/esm/src/core/structures/PDFPageTree.js +1 -1
- package/dist/esm/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/esm/src/core/syntax/Keywords.js +4 -30
- package/dist/esm/src/core/syntax/Keywords.js.map +1 -1
- package/dist/esm/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/esm/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/esm/src/types/matrix.js.map +1 -1
- package/dist/esm/src/utils/arrays.js +2 -5
- package/dist/esm/src/utils/arrays.js.map +1 -1
- package/dist/esm/src/utils/base64.js.map +1 -1
- package/dist/esm/src/utils/elements/Arc.js +3 -6
- package/dist/esm/src/utils/elements/Arc.js.map +1 -1
- package/dist/esm/src/utils/elements/Circle.js +1 -1
- package/dist/esm/src/utils/elements/Circle.js.map +1 -1
- package/dist/esm/src/utils/elements/Ellipse.js +1 -1
- package/dist/esm/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/esm/src/utils/elements/Line.js +1 -3
- package/dist/esm/src/utils/elements/Line.js.map +1 -1
- package/dist/esm/src/utils/elements/Segment.js +2 -3
- package/dist/esm/src/utils/elements/Segment.js.map +1 -1
- package/dist/esm/src/utils/intersections.js.map +1 -1
- package/dist/esm/src/utils/maths.js.map +1 -1
- package/dist/esm/src/utils/strings.js.map +1 -1
- package/dist/esm/src/utils/unicode.js.map +1 -1
- package/dist/esm/src/utils/validators.js.map +1 -1
- package/dist/node/src/api/PDFDocument.js +3 -11
- package/dist/node/src/api/PDFDocument.js.map +1 -1
- package/dist/node/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/node/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/node/src/api/PDFFont.js.map +1 -1
- package/dist/node/src/api/PDFJavaScript.js.map +1 -1
- package/dist/node/src/api/PDFPage.js +16 -42
- package/dist/node/src/api/PDFPage.js.map +1 -1
- package/dist/node/src/api/colors.js.map +1 -1
- package/dist/node/src/api/errors.js.map +1 -1
- package/dist/node/src/api/form/PDFButton.js +1 -3
- package/dist/node/src/api/form/PDFButton.js.map +1 -1
- package/dist/node/src/api/form/PDFCheckBox.js +1 -3
- package/dist/node/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/node/src/api/form/PDFDropdown.js +1 -3
- package/dist/node/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/node/src/api/form/PDFField.js +4 -10
- package/dist/node/src/api/form/PDFField.js.map +1 -1
- package/dist/node/src/api/form/PDFForm.js +1 -3
- package/dist/node/src/api/form/PDFForm.js.map +1 -1
- package/dist/node/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/node/src/api/form/PDFRadioGroup.js +1 -3
- package/dist/node/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/node/src/api/form/PDFSignature.js +1 -3
- package/dist/node/src/api/form/PDFSignature.js.map +1 -1
- package/dist/node/src/api/form/PDFTextField.js.map +1 -1
- package/dist/node/src/api/form/appearances.js.map +1 -1
- package/dist/node/src/api/operations.js.map +1 -1
- package/dist/node/src/api/operators.js +1 -5
- package/dist/node/src/api/operators.js.map +1 -1
- package/dist/node/src/api/rotations.js.map +1 -1
- package/dist/node/src/api/svg.js +25 -23
- package/dist/node/src/api/svg.js.map +1 -1
- package/dist/node/src/api/svgPath.js +1 -2
- package/dist/node/src/api/svgPath.js.map +1 -1
- package/dist/node/src/api/text/layout.js.map +1 -1
- package/dist/node/src/core/PDFContext.js.map +1 -1
- package/dist/node/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/node/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/node/src/core/acroform/utils.js.map +1 -1
- package/dist/node/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/node/src/core/crypto.js +122 -179
- package/dist/node/src/core/crypto.js.map +1 -1
- package/dist/node/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/node/src/core/document/PDFHeader.js.map +1 -1
- package/dist/node/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/node/src/core/embedders/CMap.js.map +1 -1
- package/dist/node/src/core/embedders/CustomFontEmbedder.js +1 -2
- package/dist/node/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/node/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/node/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/PDFPageEmbedder.js +11 -7
- package/dist/node/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/node/src/core/errors.js +1 -3
- package/dist/node/src/core/errors.js.map +1 -1
- package/dist/node/src/core/index.js.map +1 -1
- package/dist/node/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/node/src/core/objects/PDFArray.js.map +1 -1
- package/dist/node/src/core/objects/PDFDict.js.map +1 -1
- package/dist/node/src/core/objects/PDFName.js +1 -3
- package/dist/node/src/core/objects/PDFName.js.map +1 -1
- package/dist/node/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/node/src/core/objects/PDFRef.js.map +1 -1
- package/dist/node/src/core/objects/PDFStream.js.map +1 -1
- package/dist/node/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/node/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/node/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFParser.js +1 -2
- package/dist/node/src/core/parser/PDFParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/node/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/node/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/node/src/core/streams/FlateStream.js.map +1 -1
- package/dist/node/src/core/streams/LZWStream.js.map +1 -1
- package/dist/node/src/core/streams/Stream.js.map +1 -1
- package/dist/node/src/core/streams/decode.js +1 -1
- package/dist/node/src/core/streams/decode.js.map +1 -1
- package/dist/node/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/node/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/node/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/node/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/node/src/core/structures/PDFPageTree.js +1 -1
- package/dist/node/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/node/src/core/syntax/Keywords.js +4 -30
- package/dist/node/src/core/syntax/Keywords.js.map +1 -1
- package/dist/node/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/node/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/node/src/types/matrix.js.map +1 -1
- package/dist/node/src/utils/arrays.js +2 -5
- package/dist/node/src/utils/arrays.js.map +1 -1
- package/dist/node/src/utils/base64.js.map +1 -1
- package/dist/node/src/utils/elements/Arc.js +3 -6
- package/dist/node/src/utils/elements/Arc.js.map +1 -1
- package/dist/node/src/utils/elements/Circle.js.map +1 -1
- package/dist/node/src/utils/elements/Ellipse.js +1 -1
- package/dist/node/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/node/src/utils/elements/Line.js +1 -3
- package/dist/node/src/utils/elements/Line.js.map +1 -1
- package/dist/node/src/utils/elements/Segment.js +1 -2
- package/dist/node/src/utils/elements/Segment.js.map +1 -1
- package/dist/node/src/utils/intersections.js.map +1 -1
- package/dist/node/src/utils/maths.js.map +1 -1
- package/dist/node/src/utils/strings.js.map +1 -1
- package/dist/node/src/utils/unicode.js.map +1 -1
- package/dist/node/src/utils/validators.js.map +1 -1
- package/dist/types/src/api/form/PDFField.d.ts +1 -1
- package/dist/types/src/core/index.d.ts +2 -2
- package/dist/types/src/core/streams/decode.d.ts +1 -1
- package/dist/types/src/core/writers/PDFWriter.d.ts +1 -4
- package/dist/types/src/types/matrix.d.ts +1 -8
- package/package.json +1 -1
- package/src/api/PDFDocument.ts +11 -44
- package/src/api/PDFEmbeddedFile.ts +1 -4
- package/src/api/PDFEmbeddedPage.ts +1 -5
- package/src/api/PDFFont.ts +1 -6
- package/src/api/PDFJavaScript.ts +2 -9
- package/src/api/PDFPage.ts +26 -93
- package/src/api/PDFPageOptions.ts +4 -4
- package/src/api/colors.ts +1 -6
- package/src/api/errors.ts +1 -2
- package/src/api/form/PDFButton.ts +9 -34
- package/src/api/form/PDFCheckBox.ts +4 -19
- package/src/api/form/PDFDropdown.ts +6 -21
- package/src/api/form/PDFField.ts +11 -41
- package/src/api/form/PDFForm.ts +11 -29
- package/src/api/form/PDFOptionList.ts +5 -21
- package/src/api/form/PDFRadioGroup.ts +6 -22
- package/src/api/form/PDFSignature.ts +4 -13
- package/src/api/form/PDFTextField.ts +5 -20
- package/src/api/form/appearances.ts +33 -33
- package/src/api/operations.ts +23 -25
- package/src/api/operators.ts +11 -43
- package/src/api/rotations.ts +1 -4
- package/src/api/svg.ts +145 -195
- package/src/api/svgPath.ts +5 -32
- package/src/api/text/layout.ts +3 -18
- package/src/core/PDFContext.ts +10 -36
- package/src/core/PDFObjectCopier.ts +1 -2
- package/src/core/acroform/PDFAcroButton.ts +3 -13
- package/src/core/acroform/PDFAcroCheckBox.ts +1 -2
- package/src/core/acroform/PDFAcroChoice.ts +2 -9
- package/src/core/acroform/PDFAcroComboBox.ts +1 -2
- package/src/core/acroform/PDFAcroField.ts +1 -2
- package/src/core/acroform/PDFAcroForm.ts +2 -5
- package/src/core/acroform/PDFAcroListBox.ts +1 -2
- package/src/core/acroform/PDFAcroNonTerminal.ts +1 -2
- package/src/core/acroform/PDFAcroPushButton.ts +1 -2
- package/src/core/acroform/PDFAcroRadioButton.ts +1 -2
- package/src/core/acroform/PDFAcroSignature.ts +1 -2
- package/src/core/acroform/PDFAcroTerminal.ts +1 -2
- package/src/core/acroform/utils.ts +3 -9
- package/src/core/annotation/PDFWidgetAnnotation.ts +1 -2
- package/src/core/crypto.ts +143 -287
- package/src/core/document/PDFCrossRefSection.ts +3 -15
- package/src/core/document/PDFHeader.ts +1 -2
- package/src/core/document/PDFTrailer.ts +1 -2
- package/src/core/embedders/CMap.ts +1 -6
- package/src/core/embedders/CustomFontEmbedder.ts +4 -16
- package/src/core/embedders/CustomFontSubsetEmbedder.ts +2 -13
- package/src/core/embedders/FileEmbedder.ts +5 -23
- package/src/core/embedders/JpegEmbedder.ts +2 -11
- package/src/core/embedders/PDFPageEmbedder.ts +12 -14
- package/src/core/embedders/StandardFontEmbedder.ts +3 -12
- package/src/core/errors.ts +1 -3
- package/src/core/index.ts +2 -8
- package/src/core/interactive/ViewerPreferences.ts +4 -18
- package/src/core/objects/PDFArray.ts +2 -8
- package/src/core/objects/PDFDict.ts +3 -11
- package/src/core/objects/PDFName.ts +2 -9
- package/src/core/objects/PDFRawStream.ts +3 -10
- package/src/core/objects/PDFRef.ts +1 -5
- package/src/core/objects/PDFStream.ts +2 -8
- package/src/core/operators/PDFOperator.ts +2 -9
- package/src/core/parser/PDFObjectParser.ts +5 -14
- package/src/core/parser/PDFObjectStreamParser.ts +2 -4
- package/src/core/parser/PDFParser.ts +5 -21
- package/src/core/parser/PDFXRefStreamParser.ts +1 -2
- package/src/core/streams/Ascii85Stream.ts +1 -2
- package/src/core/streams/DecryptStream.ts +2 -9
- package/src/core/streams/FlateStream.ts +4 -14
- package/src/core/streams/LZWStream.ts +2 -9
- package/src/core/streams/Stream.ts +2 -8
- package/src/core/streams/decode.ts +2 -10
- package/src/core/structures/PDFCatalog.ts +2 -6
- package/src/core/structures/PDFCrossRefStream.ts +2 -10
- package/src/core/structures/PDFFlateStream.ts +1 -4
- package/src/core/structures/PDFObjectStream.ts +4 -14
- package/src/core/structures/PDFPageLeaf.ts +9 -28
- package/src/core/structures/PDFPageTree.ts +2 -5
- package/src/core/syntax/Keywords.ts +4 -30
- package/src/core/writers/PDFStreamWriter.ts +2 -11
- package/src/core/writers/PDFWriter.ts +2 -6
- package/src/types/fontkit.ts +3 -16
- package/src/types/index.ts +6 -14
- package/src/types/matrix.ts +1 -8
- package/src/utils/arrays.ts +3 -8
- package/src/utils/base64.ts +2 -4
- package/src/utils/elements/Arc.ts +5 -15
- package/src/utils/elements/Circle.ts +1 -9
- package/src/utils/elements/Ellipse.ts +6 -24
- package/src/utils/elements/Line.ts +1 -3
- package/src/utils/elements/Segment.ts +3 -14
- package/src/utils/intersections.ts +20 -65
- package/src/utils/maths.ts +10 -22
- package/src/utils/strings.ts +6 -16
- package/src/utils/unicode.ts +9 -22
- package/src/utils/validators.ts +9 -45
|
@@ -19,11 +19,7 @@ export default class Ellipse extends GraphElement {
|
|
|
19
19
|
B: Point;
|
|
20
20
|
C: Point;
|
|
21
21
|
|
|
22
|
-
constructor(
|
|
23
|
-
A: Point = new Point(),
|
|
24
|
-
B: Point = new Point(),
|
|
25
|
-
C: Point = new Point(),
|
|
26
|
-
) {
|
|
22
|
+
constructor(A: Point = new Point(), B: Point = new Point(), C: Point = new Point()) {
|
|
27
23
|
super();
|
|
28
24
|
this.A = A;
|
|
29
25
|
this.B = B;
|
|
@@ -75,10 +71,7 @@ export default class Ellipse extends GraphElement {
|
|
|
75
71
|
return (
|
|
76
72
|
isEqual(eltA, a) &&
|
|
77
73
|
isEqual(eltB, b) &&
|
|
78
|
-
isEqual(
|
|
79
|
-
rotation + (Math.PI % Math.PI),
|
|
80
|
-
eltRotation + (Math.PI % Math.PI),
|
|
81
|
-
)
|
|
74
|
+
isEqual(rotation + (Math.PI % Math.PI), eltRotation + (Math.PI % Math.PI))
|
|
82
75
|
);
|
|
83
76
|
}
|
|
84
77
|
// If the small axis is different
|
|
@@ -87,10 +80,7 @@ export default class Ellipse extends GraphElement {
|
|
|
87
80
|
return (
|
|
88
81
|
isEqual(eltA, b) &&
|
|
89
82
|
isEqual(eltB, a) &&
|
|
90
|
-
isEqual(
|
|
91
|
-
rotation + (Math.PI % Math.PI),
|
|
92
|
-
eltRotation + (((3 * Math.PI) / 2) % Math.PI),
|
|
93
|
-
)
|
|
83
|
+
isEqual(rotation + (Math.PI % Math.PI), eltRotation + (((3 * Math.PI) / 2) % Math.PI))
|
|
94
84
|
);
|
|
95
85
|
}
|
|
96
86
|
}
|
|
@@ -100,14 +90,8 @@ export default class Ellipse extends GraphElement {
|
|
|
100
90
|
const { x: cx, y: cy } = this.center().toCoords();
|
|
101
91
|
const teta = this.rotation();
|
|
102
92
|
return isEqual(
|
|
103
|
-
Math.pow(
|
|
104
|
-
((x - cx) * Math.
|
|
105
|
-
2,
|
|
106
|
-
) +
|
|
107
|
-
Math.pow(
|
|
108
|
-
((x - cx) * Math.sin(teta) - (y - cy) * Math.cos(teta)) / this.b(),
|
|
109
|
-
2,
|
|
110
|
-
),
|
|
93
|
+
Math.pow(((x - cx) * Math.cos(teta) + (y - cy) * Math.sin(teta)) / this.a(), 2) +
|
|
94
|
+
Math.pow(((x - cx) * Math.sin(teta) - (y - cy) * Math.cos(teta)) / this.b(), 2),
|
|
111
95
|
1,
|
|
112
96
|
);
|
|
113
97
|
}
|
|
@@ -128,8 +112,6 @@ export default class Ellipse extends GraphElement {
|
|
|
128
112
|
const a = this.a();
|
|
129
113
|
const b = this.b();
|
|
130
114
|
const excentricity = Math.sqrt(Math.abs(a * a - b * b)) / Math.max(a, b);
|
|
131
|
-
return (
|
|
132
|
-
Math.min(a, b) / Math.sqrt(1 - Math.pow(excentricity * Math.cos(teta), 2))
|
|
133
|
-
);
|
|
115
|
+
return Math.min(a, b) / Math.sqrt(1 - Math.pow(excentricity * Math.cos(teta), 2));
|
|
134
116
|
}
|
|
135
117
|
}
|
|
@@ -64,9 +64,7 @@ export default class Line extends GraphElement {
|
|
|
64
64
|
includes(P: Point) {
|
|
65
65
|
const { x, y } = P.toCoords();
|
|
66
66
|
const vect = this.dirVect();
|
|
67
|
-
return isEqual(vect.x, 0)
|
|
68
|
-
? isEqual(this.origin().toCoords().x, x)
|
|
69
|
-
: isEqual(this.y(x), y);
|
|
67
|
+
return isEqual(vect.x, 0) ? isEqual(this.origin().toCoords().x, x) : isEqual(this.y(x), y);
|
|
70
68
|
}
|
|
71
69
|
|
|
72
70
|
/** This is used to standarsize type Segment | HalfLine | Line */
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
distance,
|
|
3
|
-
isColinear,
|
|
4
|
-
norm,
|
|
5
|
-
scalar,
|
|
6
|
-
vector,
|
|
7
|
-
plus,
|
|
8
|
-
times,
|
|
9
|
-
} from '../maths';
|
|
1
|
+
import { distance, isColinear, norm, scalar, vector, plus, times } from '../maths';
|
|
10
2
|
|
|
11
3
|
import GraphElement from './GraphElement';
|
|
12
4
|
import Line from './Line';
|
|
@@ -46,8 +38,7 @@ export default class Segment extends GraphElement {
|
|
|
46
38
|
const destE = element.destination();
|
|
47
39
|
return (
|
|
48
40
|
element instanceof Segment &&
|
|
49
|
-
((o.isEqual(oE) && dest.isEqual(destE)) ||
|
|
50
|
-
(o.isEqual(destE) && dest.isEqual(oE)))
|
|
41
|
+
((o.isEqual(oE) && dest.isEqual(destE)) || (o.isEqual(destE) && dest.isEqual(oE)))
|
|
51
42
|
);
|
|
52
43
|
}
|
|
53
44
|
|
|
@@ -70,9 +61,7 @@ export default class Segment extends GraphElement {
|
|
|
70
61
|
}
|
|
71
62
|
|
|
72
63
|
middle() {
|
|
73
|
-
const mid = new Point(
|
|
74
|
-
plus(this.origin().toCoords(), times(this.dirVect(), 0.5)),
|
|
75
|
-
);
|
|
64
|
+
const mid = new Point(plus(this.origin().toCoords(), times(this.dirVect(), 0.5)));
|
|
76
65
|
return mid;
|
|
77
66
|
}
|
|
78
67
|
|
|
@@ -19,66 +19,44 @@ import {
|
|
|
19
19
|
rotate,
|
|
20
20
|
} from './maths';
|
|
21
21
|
|
|
22
|
-
export function intersections(
|
|
23
|
-
A: GraphicElement,
|
|
24
|
-
B: GraphicElement,
|
|
25
|
-
): Coordinates[] {
|
|
22
|
+
export function intersections(A: GraphicElement, B: GraphicElement): Coordinates[] {
|
|
26
23
|
if (A instanceof Point || B instanceof Point) return [];
|
|
27
24
|
else if (A instanceof Text || B instanceof Text) return [];
|
|
28
25
|
else if (A instanceof Image || B instanceof Image) return [];
|
|
29
26
|
// TODO: calculate the coords of the intersection: https://www.emathzone.com/tutorials/geometry/intersection-of-line-and-ellipse.html
|
|
30
27
|
else if (A instanceof Line) return intersectionsLine(A, B);
|
|
31
28
|
else if (A instanceof Segment) {
|
|
32
|
-
return intersectionsLine(A.getLine(), B).filter((P) =>
|
|
33
|
-
A.includes(new Point(P)),
|
|
34
|
-
);
|
|
29
|
+
return intersectionsLine(A.getLine(), B).filter((P) => A.includes(new Point(P)));
|
|
35
30
|
} else if (A instanceof Circle) return intersectionsCircle(A, B);
|
|
36
31
|
else if (A instanceof Arc) {
|
|
37
|
-
return intersectionsCircle(A.getCircle(), B).filter((P) =>
|
|
38
|
-
A.includes(new Point(P)),
|
|
39
|
-
);
|
|
32
|
+
return intersectionsCircle(A.getCircle(), B).filter((P) => A.includes(new Point(P)));
|
|
40
33
|
} else if (A instanceof Plot) return intersectionsPlot(A, B);
|
|
41
34
|
else if (A instanceof Rectangle) return intersectionsRectangle(A, B);
|
|
42
35
|
else if (A instanceof Ellipse) return intersectionsEllipse(A, B);
|
|
43
36
|
return A;
|
|
44
37
|
}
|
|
45
38
|
|
|
46
|
-
export function intersection(
|
|
47
|
-
A: GraphicElement,
|
|
48
|
-
B: GraphicElement,
|
|
49
|
-
): Coordinates | undefined {
|
|
39
|
+
export function intersection(A: GraphicElement, B: GraphicElement): Coordinates | undefined {
|
|
50
40
|
return intersections(A, B)[0];
|
|
51
41
|
}
|
|
52
42
|
|
|
53
|
-
function intersectionsLine(
|
|
54
|
-
A: Line,
|
|
55
|
-
B: Exclude<GraphicElement, Text | Point>,
|
|
56
|
-
): Coordinates[] {
|
|
43
|
+
function intersectionsLine(A: Line, B: Exclude<GraphicElement, Text | Point>): Coordinates[] {
|
|
57
44
|
if (B instanceof Line) return intersectionLine(A, B);
|
|
58
45
|
else if (B instanceof Segment) {
|
|
59
|
-
return intersectionLine(A, B.getLine()).filter((P) =>
|
|
60
|
-
B.includes(new Point(P)),
|
|
61
|
-
);
|
|
46
|
+
return intersectionLine(A, B.getLine()).filter((P) => B.includes(new Point(P)));
|
|
62
47
|
} else if (B instanceof Circle) return intersectionCircleLine(B, A);
|
|
63
48
|
else if (B instanceof Arc) {
|
|
64
|
-
return intersectionsCircle(B.getCircle(), A).filter((P) =>
|
|
65
|
-
B.includes(new Point(P)),
|
|
66
|
-
);
|
|
49
|
+
return intersectionsCircle(B.getCircle(), A).filter((P) => B.includes(new Point(P)));
|
|
67
50
|
} else if (B instanceof Plot) return intersectionsPlot(B, A);
|
|
68
51
|
else if (B instanceof Rectangle) return intersectionsRectangle(B, A);
|
|
69
52
|
else if (B instanceof Ellipse) return intersectionsEllipse(B, A);
|
|
70
53
|
return B;
|
|
71
54
|
}
|
|
72
55
|
|
|
73
|
-
function intersectionsEllipse(
|
|
74
|
-
A: Ellipse,
|
|
75
|
-
B: Exclude<GraphicElement, Text | Point>,
|
|
76
|
-
): Coordinates[] {
|
|
56
|
+
function intersectionsEllipse(A: Ellipse, B: Exclude<GraphicElement, Text | Point>): Coordinates[] {
|
|
77
57
|
if (B instanceof Line) return intersectionsLineAndEllipse(A, B);
|
|
78
58
|
else if (B instanceof Segment) {
|
|
79
|
-
return intersectionsEllipse(A, B.getLine()).filter((P) =>
|
|
80
|
-
B.includes(new Point(P)),
|
|
81
|
-
);
|
|
59
|
+
return intersectionsEllipse(A, B.getLine()).filter((P) => B.includes(new Point(P)));
|
|
82
60
|
}
|
|
83
61
|
// TODO:
|
|
84
62
|
// else if (B instanceof Circle) return intersectionEllipseCircle(B, A)
|
|
@@ -87,9 +65,7 @@ function intersectionsEllipse(
|
|
|
87
65
|
// else if (B instanceof Ellipse) return intersectionEllipseEllipse(B, A)
|
|
88
66
|
else if (B instanceof Ellipse) return [];
|
|
89
67
|
else if (B instanceof Arc) {
|
|
90
|
-
return intersectionsEllipse(A, B.getCircle()).filter((P) =>
|
|
91
|
-
B.includes(new Point(P)),
|
|
92
|
-
);
|
|
68
|
+
return intersectionsEllipse(A, B.getCircle()).filter((P) => B.includes(new Point(P)));
|
|
93
69
|
} else if (B instanceof Plot) return intersectionsPlot(B, A);
|
|
94
70
|
else if (B instanceof Rectangle) return intersectionsRectangle(B, A);
|
|
95
71
|
return B;
|
|
@@ -112,17 +88,10 @@ function intersectionsLineAndEllipse(A: Ellipse, B: Line): Coordinates[] {
|
|
|
112
88
|
const p2X = isLineParallel2YAxis ? B.origin().toCoords().x : 2;
|
|
113
89
|
const p2 = { x: p2X, y: p2Y };
|
|
114
90
|
|
|
115
|
-
const p1Normalized = rotate(
|
|
116
|
-
|
|
117
|
-
-rotation,
|
|
118
|
-
);
|
|
119
|
-
const p2Normalized = rotate(
|
|
120
|
-
{ x: p2.x - center.x, y: p2.y - center.y },
|
|
121
|
-
-rotation,
|
|
122
|
-
);
|
|
91
|
+
const p1Normalized = rotate({ x: p1.x - center.x, y: p1.y - center.y }, -rotation);
|
|
92
|
+
const p2Normalized = rotate({ x: p2.x - center.x, y: p2.y - center.y }, -rotation);
|
|
123
93
|
|
|
124
|
-
const angular =
|
|
125
|
-
(p1Normalized.y - p2Normalized.y) / (p1Normalized.x - p2Normalized.x);
|
|
94
|
+
const angular = (p1Normalized.y - p2Normalized.y) / (p1Normalized.x - p2Normalized.x);
|
|
126
95
|
const linear = p1Normalized.y - angular * p1Normalized.x;
|
|
127
96
|
|
|
128
97
|
const lineY = (x: number) => angular * x + linear;
|
|
@@ -184,10 +153,8 @@ export function intersectionLine(A: Line, B: Line): Coordinates[] {
|
|
|
184
153
|
const { x: vx, y: vy } = B.dirVect();
|
|
185
154
|
const { x: xA, y: yA } = A.origin().toCoords();
|
|
186
155
|
const { x: xB, y: yB } = B.origin().toCoords();
|
|
187
|
-
const x =
|
|
188
|
-
|
|
189
|
-
const y =
|
|
190
|
-
(uy * (vy * (xA - xB) + vx * yB) - ux * vy * yA) / (uy * vx - ux * vy);
|
|
156
|
+
const x = (ux * (vx * (yA - yB) + vy * xB) - uy * vx * xA) / (ux * vy - uy * vx);
|
|
157
|
+
const y = (uy * (vy * (xA - xB) + vx * yB) - ux * vy * yA) / (uy * vx - ux * vy);
|
|
191
158
|
return [{ x, y }];
|
|
192
159
|
}
|
|
193
160
|
}
|
|
@@ -195,18 +162,13 @@ export function intersectionLine(A: Line, B: Line): Coordinates[] {
|
|
|
195
162
|
function intersectionsPlot(A: Plot, B: GraphicElement): Coordinates[] {
|
|
196
163
|
const points = A.getPoints().map((pt) => new Point(pt));
|
|
197
164
|
const head = points.pop();
|
|
198
|
-
const segments = points.map(
|
|
199
|
-
(pt, i) => new Segment(pt, points[i + 1] || head),
|
|
200
|
-
);
|
|
165
|
+
const segments = points.map((pt, i) => new Segment(pt, points[i + 1] || head));
|
|
201
166
|
// @ts-ignore
|
|
202
167
|
const inters = segments.map((s) => intersections(s, B)).flat();
|
|
203
168
|
return inters;
|
|
204
169
|
}
|
|
205
170
|
|
|
206
|
-
function intersectionsRectangle(
|
|
207
|
-
A: Rectangle,
|
|
208
|
-
B: GraphicElement,
|
|
209
|
-
): Coordinates[] {
|
|
171
|
+
function intersectionsRectangle(A: Rectangle, B: GraphicElement): Coordinates[] {
|
|
210
172
|
const P1 = A.getCoords();
|
|
211
173
|
const P3 = A.getEnd();
|
|
212
174
|
const P2 = { x: P1.x, y: P3.y };
|
|
@@ -251,20 +213,13 @@ export function intersectionCircle(A: Circle, B: Circle): Coordinates[] {
|
|
|
251
213
|
}
|
|
252
214
|
}
|
|
253
215
|
|
|
254
|
-
function intersectionsCircle(
|
|
255
|
-
A: Circle,
|
|
256
|
-
B: Exclude<GraphicElement, Text | Point>,
|
|
257
|
-
): Coordinates[] {
|
|
216
|
+
function intersectionsCircle(A: Circle, B: Exclude<GraphicElement, Text | Point>): Coordinates[] {
|
|
258
217
|
if (B instanceof Circle) return intersectionCircle(A, B);
|
|
259
218
|
else if (B instanceof Line) return intersectionCircleLine(A, B);
|
|
260
219
|
else if (B instanceof Segment) {
|
|
261
|
-
return intersectionCircleLine(A, B.getLine()).filter((P) =>
|
|
262
|
-
B.includes(new Point(P)),
|
|
263
|
-
);
|
|
220
|
+
return intersectionCircleLine(A, B.getLine()).filter((P) => B.includes(new Point(P)));
|
|
264
221
|
} else if (B instanceof Arc) {
|
|
265
|
-
return intersectionCircle(A, B.getCircle()).filter((P) =>
|
|
266
|
-
B.includes(new Point(P)),
|
|
267
|
-
);
|
|
222
|
+
return intersectionCircle(A, B.getCircle()).filter((P) => B.includes(new Point(P)));
|
|
268
223
|
} else if (B instanceof Plot) return intersectionsPlot(B, A);
|
|
269
224
|
else if (B instanceof Rectangle) return intersectionsRectangle(B, A);
|
|
270
225
|
else if (B instanceof Ellipse) return intersectionsEllipse(B, A);
|
package/src/utils/maths.ts
CHANGED
|
@@ -7,12 +7,10 @@ export const FLOAT_APPROXIMATION = 0.000001;
|
|
|
7
7
|
/** Calculates the distance between 2 points */
|
|
8
8
|
export const distance = (A: Point, B: Point) => norm(vector(A, B));
|
|
9
9
|
|
|
10
|
-
export const distanceCoords = (A: Coordinates, B: Coordinates) =>
|
|
11
|
-
norm(minus(B, A));
|
|
10
|
+
export const distanceCoords = (A: Coordinates, B: Coordinates) => norm(minus(B, A));
|
|
12
11
|
|
|
13
12
|
/** Calculates the distance denoted by a vector */
|
|
14
|
-
export const norm = (vect: Coordinates) =>
|
|
15
|
-
Math.sqrt(vect.x * vect.x + vect.y * vect.y);
|
|
13
|
+
export const norm = (vect: Coordinates) => Math.sqrt(vect.x * vect.x + vect.y * vect.y);
|
|
16
14
|
|
|
17
15
|
/** Calculates the orthogonal vector of provided vector */
|
|
18
16
|
export const orthogonal = ({ x, y }: Coordinates): Coordinates => ({
|
|
@@ -21,10 +19,8 @@ export const orthogonal = ({ x, y }: Coordinates): Coordinates => ({
|
|
|
21
19
|
});
|
|
22
20
|
|
|
23
21
|
/** Check if 2 vectors are proportional */
|
|
24
|
-
export const isColinear = (
|
|
25
|
-
|
|
26
|
-
{ x: vx, y: vy }: Coordinates,
|
|
27
|
-
): boolean => isEqual(ux * vy, uy * vx);
|
|
22
|
+
export const isColinear = ({ x: ux, y: uy }: Coordinates, { x: vx, y: vy }: Coordinates): boolean =>
|
|
23
|
+
isEqual(ux * vy, uy * vx);
|
|
28
24
|
|
|
29
25
|
/** Check if 2 floating values can be considered equals */
|
|
30
26
|
export const isEqual = (a: number, b: number): boolean =>
|
|
@@ -35,10 +31,8 @@ export const isProportional = (a: number, b: number): boolean =>
|
|
|
35
31
|
isEqual((Math.abs(a) + FLOAT_APPROXIMATION / 10) % b, 0);
|
|
36
32
|
|
|
37
33
|
/** Calculate the scalar product between 2 vectors */
|
|
38
|
-
export const scalar = (
|
|
39
|
-
|
|
40
|
-
{ x: vx, y: vy }: Coordinates,
|
|
41
|
-
): number => ux * vx + uy * vy;
|
|
34
|
+
export const scalar = ({ x: ux, y: uy }: Coordinates, { x: vx, y: vy }: Coordinates): number =>
|
|
35
|
+
ux * vx + uy * vy;
|
|
42
36
|
|
|
43
37
|
/** Calculate the sum of 2 vectors */
|
|
44
38
|
export const plus = (
|
|
@@ -53,12 +47,10 @@ export const times = ({ x, y }: Coordinates, k = 1): Coordinates => ({
|
|
|
53
47
|
});
|
|
54
48
|
|
|
55
49
|
/** Calculate the difference of 2 vectors */
|
|
56
|
-
export const minus = (u: Coordinates, v: Coordinates): Coordinates =>
|
|
57
|
-
plus(u, times(v, -1));
|
|
50
|
+
export const minus = (u: Coordinates, v: Coordinates): Coordinates => plus(u, times(v, -1));
|
|
58
51
|
|
|
59
52
|
/** Returns the vector between 2 points. */
|
|
60
|
-
export const vector = (A: Point, B: Point): Coordinates =>
|
|
61
|
-
minus(B.toCoords(), A.toCoords());
|
|
53
|
+
export const vector = (A: Point, B: Point): Coordinates => minus(B.toCoords(), A.toCoords());
|
|
62
54
|
|
|
63
55
|
/**
|
|
64
56
|
* Returns the angle between the vector and the horizontal axis (Ox).
|
|
@@ -92,12 +84,8 @@ export const angle = (u: Coordinates, v: Coordinates, previousAngle = 0) => {
|
|
|
92
84
|
/** Returns the angle between the lines (BA) and (BC) in radian
|
|
93
85
|
* @returns {number} the angle in radian, between -Pi and Pi
|
|
94
86
|
*/
|
|
95
|
-
export const angleABC = (
|
|
96
|
-
A
|
|
97
|
-
B: Point,
|
|
98
|
-
C: Point,
|
|
99
|
-
previousAngle = 0,
|
|
100
|
-
): number => angle(vector(B, A), vector(B, C), previousAngle);
|
|
87
|
+
export const angleABC = (A: Point, B: Point, C: Point, previousAngle = 0): number =>
|
|
88
|
+
angle(vector(B, A), vector(B, C), previousAngle);
|
|
101
89
|
|
|
102
90
|
/** Rotate the vector by an angle in radian */
|
|
103
91
|
export const rotate = (vect: Coordinates, teta: number): Coordinates => {
|
package/src/utils/strings.ts
CHANGED
|
@@ -25,11 +25,7 @@ export const stringAsByteArray = (str: string): Uint8Array => {
|
|
|
25
25
|
return buffer;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
export const copyStringIntoBuffer = (
|
|
29
|
-
str: string,
|
|
30
|
-
buffer: Uint8Array,
|
|
31
|
-
offset: number,
|
|
32
|
-
): number => {
|
|
28
|
+
export const copyStringIntoBuffer = (str: string, buffer: Uint8Array, offset: number): number => {
|
|
33
29
|
const length = str.length;
|
|
34
30
|
for (let idx = 0; idx < length; idx++) {
|
|
35
31
|
buffer[offset++] = str.charCodeAt(idx);
|
|
@@ -40,8 +36,7 @@ export const copyStringIntoBuffer = (
|
|
|
40
36
|
export const addRandomSuffix = (prefix: string, suffixLength = 4) =>
|
|
41
37
|
`${prefix}-${Math.floor(Math.random() * 10 ** suffixLength)}`;
|
|
42
38
|
|
|
43
|
-
export const escapeRegExp = (str: string) =>
|
|
44
|
-
str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
39
|
+
export const escapeRegExp = (str: string) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
45
40
|
|
|
46
41
|
export const cleanText = (text: string) =>
|
|
47
42
|
text.replace(/\t|\u0085|\u2028|\u2029/g, ' ').replace(/[\b\v]/g, '');
|
|
@@ -54,8 +49,7 @@ export const isNewlineChar = (text: string) => /^[\n\f\r\u000B]$/.test(text);
|
|
|
54
49
|
|
|
55
50
|
export const lineSplit = (text: string) => text.split(/[\n\f\r\u000B]/);
|
|
56
51
|
|
|
57
|
-
export const mergeLines = (text: string) =>
|
|
58
|
-
text.replace(/[\n\f\r\u000B]/g, ' ');
|
|
52
|
+
export const mergeLines = (text: string) => text.replace(/[\n\f\r\u000B]/g, ' ');
|
|
59
53
|
|
|
60
54
|
// JavaScript's String.charAt() method doesn work on strings containing UTF-16
|
|
61
55
|
// characters (with high and low surrogate pairs), such as 💩 (poo emoji). This
|
|
@@ -145,8 +139,7 @@ export const breakTextIntoLines = (
|
|
|
145
139
|
};
|
|
146
140
|
|
|
147
141
|
// See section "7.9.4 Dates" of the PDF specification
|
|
148
|
-
const dateRegex =
|
|
149
|
-
/^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/;
|
|
142
|
+
const dateRegex = /^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/;
|
|
150
143
|
|
|
151
144
|
export const parseDate = (dateStr: string): Date | undefined => {
|
|
152
145
|
const match = dateStr.match(dateRegex);
|
|
@@ -167,11 +160,8 @@ export const parseDate = (dateStr: string): Date | undefined => {
|
|
|
167
160
|
] = match;
|
|
168
161
|
|
|
169
162
|
// http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
|
|
170
|
-
const tzOffset =
|
|
171
|
-
|
|
172
|
-
const date = new Date(
|
|
173
|
-
`${year}-${month}-${day}T${hours}:${mins}:${secs}${tzOffset}`,
|
|
174
|
-
);
|
|
163
|
+
const tzOffset = offsetSign === 'Z' ? 'Z' : `${offsetSign}${offsetHours}:${offsetMins}`;
|
|
164
|
+
const date = new Date(`${year}-${month}-${day}T${hours}:${mins}:${secs}${tzOffset}`);
|
|
175
165
|
|
|
176
166
|
return date;
|
|
177
167
|
};
|
package/src/utils/unicode.ts
CHANGED
|
@@ -200,10 +200,7 @@ export const utf8Encode = (input: string, byteOrderMark = true): Uint8Array => {
|
|
|
200
200
|
* - [3] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description
|
|
201
201
|
*
|
|
202
202
|
*/
|
|
203
|
-
export const utf16Encode = (
|
|
204
|
-
input: string,
|
|
205
|
-
byteOrderMark = true,
|
|
206
|
-
): Uint16Array => {
|
|
203
|
+
export const utf16Encode = (input: string, byteOrderMark = true): Uint16Array => {
|
|
207
204
|
const encoded = [];
|
|
208
205
|
|
|
209
206
|
if (byteOrderMark) encoded.push(0xfeff);
|
|
@@ -238,8 +235,7 @@ export const utf16Encode = (
|
|
|
238
235
|
*
|
|
239
236
|
* Reference: https://en.wikipedia.org/wiki/UTF-16#Description
|
|
240
237
|
*/
|
|
241
|
-
export const isWithinBMP = (codePoint: number) =>
|
|
242
|
-
codePoint >= 0 && codePoint <= 0xffff;
|
|
238
|
+
export const isWithinBMP = (codePoint: number) => codePoint >= 0 && codePoint <= 0xffff;
|
|
243
239
|
|
|
244
240
|
/**
|
|
245
241
|
* Returns `true` if the given `codePoint` is valid and must be represented
|
|
@@ -248,8 +244,7 @@ export const isWithinBMP = (codePoint: number) =>
|
|
|
248
244
|
*
|
|
249
245
|
* Reference: https://en.wikipedia.org/wiki/UTF-16#Description
|
|
250
246
|
*/
|
|
251
|
-
export const hasSurrogates = (codePoint: number) =>
|
|
252
|
-
codePoint >= 0x010000 && codePoint <= 0x10ffff;
|
|
247
|
+
export const hasSurrogates = (codePoint: number) => codePoint >= 0x010000 && codePoint <= 0x10ffff;
|
|
253
248
|
|
|
254
249
|
// From Unicode 3.0 spec, section 3.7:
|
|
255
250
|
// http://unicode.org/versions/Unicode3.0.0/ch03.pdf
|
|
@@ -258,8 +253,7 @@ export const highSurrogate = (codePoint: number) =>
|
|
|
258
253
|
|
|
259
254
|
// From Unicode 3.0 spec, section 3.7:
|
|
260
255
|
// http://unicode.org/versions/Unicode3.0.0/ch03.pdf
|
|
261
|
-
export const lowSurrogate = (codePoint: number) =>
|
|
262
|
-
((codePoint - 0x10000) % 0x400) + 0xdc00;
|
|
256
|
+
export const lowSurrogate = (codePoint: number) => ((codePoint - 0x10000) % 0x400) + 0xdc00;
|
|
263
257
|
|
|
264
258
|
enum ByteOrder {
|
|
265
259
|
BigEndian = 'BigEndian',
|
|
@@ -280,10 +274,7 @@ const REPLACEMENT = '�'.codePointAt(0)!;
|
|
|
280
274
|
* at the start of the encoding. (default `true`)
|
|
281
275
|
* @returns The decoded string.
|
|
282
276
|
*/
|
|
283
|
-
export const utf16Decode = (
|
|
284
|
-
input: Uint8Array,
|
|
285
|
-
byteOrderMark = true,
|
|
286
|
-
): string => {
|
|
277
|
+
export const utf16Decode = (input: Uint8Array, byteOrderMark = true): string => {
|
|
287
278
|
// Need at least 2 bytes of data in UTF-16 encodings
|
|
288
279
|
if (input.length <= 1) return String.fromCodePoint(REPLACEMENT);
|
|
289
280
|
|
|
@@ -332,8 +323,7 @@ export const utf16Decode = (
|
|
|
332
323
|
*
|
|
333
324
|
* Reference: https://en.wikipedia.org/wiki/UTF-16#Description
|
|
334
325
|
*/
|
|
335
|
-
const isHighSurrogate = (codePoint: number) =>
|
|
336
|
-
codePoint >= 0xd800 && codePoint <= 0xdbff;
|
|
326
|
+
const isHighSurrogate = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdbff;
|
|
337
327
|
|
|
338
328
|
/**
|
|
339
329
|
* Returns `true` if the given `codePoint` is a low surrogate.
|
|
@@ -341,8 +331,7 @@ const isHighSurrogate = (codePoint: number) =>
|
|
|
341
331
|
*
|
|
342
332
|
* Reference: https://en.wikipedia.org/wiki/UTF-16#Description
|
|
343
333
|
*/
|
|
344
|
-
const isLowSurrogate = (codePoint: number) =>
|
|
345
|
-
codePoint >= 0xdc00 && codePoint <= 0xdfff;
|
|
334
|
+
const isLowSurrogate = (codePoint: number) => codePoint >= 0xdc00 && codePoint <= 0xdfff;
|
|
346
335
|
|
|
347
336
|
/**
|
|
348
337
|
* Decodes the given utf-16 values first and second using the specified
|
|
@@ -376,11 +365,9 @@ const readBOM = (bytes: Uint8Array): ByteOrder => (
|
|
|
376
365
|
: ByteOrder.BigEndian
|
|
377
366
|
);
|
|
378
367
|
|
|
379
|
-
const hasUtf16BigEndianBOM = (bytes: Uint8Array) =>
|
|
380
|
-
bytes[0] === 0xfe && bytes[1] === 0xff;
|
|
368
|
+
const hasUtf16BigEndianBOM = (bytes: Uint8Array) => bytes[0] === 0xfe && bytes[1] === 0xff;
|
|
381
369
|
|
|
382
|
-
const hasUtf16LittleEndianBOM = (bytes: Uint8Array) =>
|
|
383
|
-
bytes[0] === 0xff && bytes[1] === 0xfe;
|
|
370
|
+
const hasUtf16LittleEndianBOM = (bytes: Uint8Array) => bytes[0] === 0xff && bytes[1] === 0xfe;
|
|
384
371
|
|
|
385
372
|
export const hasUtf16BOM = (bytes: Uint8Array) =>
|
|
386
373
|
hasUtf16BigEndianBOM(bytes) || hasUtf16LittleEndianBOM(bytes);
|
package/src/utils/validators.ts
CHANGED
|
@@ -15,11 +15,7 @@ const formatValue = (value: any) => {
|
|
|
15
15
|
else return value;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
export const createValueErrorMsg = (
|
|
19
|
-
value: any,
|
|
20
|
-
valueName: string,
|
|
21
|
-
values: Primitive[],
|
|
22
|
-
) => {
|
|
18
|
+
export const createValueErrorMsg = (value: any, valueName: string, values: Primitive[]) => {
|
|
23
19
|
const allowedValues = new Array(values.length);
|
|
24
20
|
|
|
25
21
|
for (let idx = 0, len = values.length; idx < len; idx++) {
|
|
@@ -117,11 +113,7 @@ export const isType = (value: any, type: TypeDescriptor) => {
|
|
|
117
113
|
return value instanceof (type as [Function, string])[0];
|
|
118
114
|
};
|
|
119
115
|
|
|
120
|
-
export const createTypeErrorMsg = (
|
|
121
|
-
value: any,
|
|
122
|
-
valueName: string,
|
|
123
|
-
types: TypeDescriptor[],
|
|
124
|
-
) => {
|
|
116
|
+
export const createTypeErrorMsg = (value: any, valueName: string, types: TypeDescriptor[]) => {
|
|
125
117
|
const allowedTypes = new Array(types.length);
|
|
126
118
|
|
|
127
119
|
for (let idx = 0, len = types.length; idx < len; idx++) {
|
|
@@ -145,41 +137,24 @@ export const createTypeErrorMsg = (
|
|
|
145
137
|
return `${backtick(valueName)} must be of type ${joinedTypes}, but was actually of type ${backtick(getType(value))}`;
|
|
146
138
|
};
|
|
147
139
|
|
|
148
|
-
export const assertIs = (
|
|
149
|
-
value: any,
|
|
150
|
-
valueName: string,
|
|
151
|
-
types: TypeDescriptor[],
|
|
152
|
-
) => {
|
|
140
|
+
export const assertIs = (value: any, valueName: string, types: TypeDescriptor[]) => {
|
|
153
141
|
for (let idx = 0, len = types.length; idx < len; idx++) {
|
|
154
142
|
if (isType(value, types[idx])) return;
|
|
155
143
|
}
|
|
156
144
|
throw new TypeError(createTypeErrorMsg(value, valueName, types));
|
|
157
145
|
};
|
|
158
146
|
|
|
159
|
-
export const assertOrUndefined = (
|
|
160
|
-
value: any,
|
|
161
|
-
valueName: string,
|
|
162
|
-
types: TypeDescriptor[],
|
|
163
|
-
) => {
|
|
147
|
+
export const assertOrUndefined = (value: any, valueName: string, types: TypeDescriptor[]) => {
|
|
164
148
|
assertIs(value, valueName, types.concat('undefined'));
|
|
165
149
|
};
|
|
166
150
|
|
|
167
|
-
export const assertEachIs = (
|
|
168
|
-
values: any[],
|
|
169
|
-
valueName: string,
|
|
170
|
-
types: TypeDescriptor[],
|
|
171
|
-
) => {
|
|
151
|
+
export const assertEachIs = (values: any[], valueName: string, types: TypeDescriptor[]) => {
|
|
172
152
|
for (let idx = 0, len = values.length; idx < len; idx++) {
|
|
173
153
|
assertIs(values[idx], valueName, types);
|
|
174
154
|
}
|
|
175
155
|
};
|
|
176
156
|
|
|
177
|
-
export const assertRange = (
|
|
178
|
-
value: any,
|
|
179
|
-
valueName: string,
|
|
180
|
-
min: number,
|
|
181
|
-
max: number,
|
|
182
|
-
) => {
|
|
157
|
+
export const assertRange = (value: any, valueName: string, min: number, max: number) => {
|
|
183
158
|
assertIs(value, valueName, ['number']);
|
|
184
159
|
assertIs(min, 'min', ['number']);
|
|
185
160
|
assertIs(max, 'max', ['number']);
|
|
@@ -190,21 +165,12 @@ export const assertRange = (
|
|
|
190
165
|
}
|
|
191
166
|
};
|
|
192
167
|
|
|
193
|
-
export const assertRangeOrUndefined = (
|
|
194
|
-
value: any,
|
|
195
|
-
valueName: string,
|
|
196
|
-
min: number,
|
|
197
|
-
max: number,
|
|
198
|
-
) => {
|
|
168
|
+
export const assertRangeOrUndefined = (value: any, valueName: string, min: number, max: number) => {
|
|
199
169
|
assertIs(value, valueName, ['number', 'undefined']);
|
|
200
170
|
if (typeof value === 'number') assertRange(value, valueName, min, max);
|
|
201
171
|
};
|
|
202
172
|
|
|
203
|
-
export const assertMultiple = (
|
|
204
|
-
value: any,
|
|
205
|
-
valueName: string,
|
|
206
|
-
multiplier: number,
|
|
207
|
-
) => {
|
|
173
|
+
export const assertMultiple = (value: any, valueName: string, multiplier: number) => {
|
|
208
174
|
assertIs(value, valueName, ['number']);
|
|
209
175
|
if (value % multiplier !== 0) {
|
|
210
176
|
// prettier-ignore
|
|
@@ -214,9 +180,7 @@ export const assertMultiple = (
|
|
|
214
180
|
|
|
215
181
|
export const assertInteger = (value: any, valueName: string) => {
|
|
216
182
|
if (!Number.isInteger(value)) {
|
|
217
|
-
throw new Error(
|
|
218
|
-
`${backtick(valueName)} must be an integer, but was actually ${value}`,
|
|
219
|
-
);
|
|
183
|
+
throw new Error(`${backtick(valueName)} must be an integer, but was actually ${value}`);
|
|
220
184
|
}
|
|
221
185
|
};
|
|
222
186
|
|