art-bd-ui 1.0.21 → 1.0.23
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/_virtual/common.js +5 -0
- package/dist/cjs/_virtual/dayjs.min.js +11 -0
- package/dist/cjs/_virtual/dayjs.min2.js +5 -0
- package/dist/cjs/_virtual/deflate.js +5 -0
- package/dist/cjs/_virtual/deflate2.js +5 -0
- package/dist/cjs/_virtual/index10.js +5 -0
- package/dist/cjs/_virtual/index5.js +2 -8
- package/dist/cjs/_virtual/index6.js +4 -4
- package/dist/cjs/_virtual/index7.js +8 -2
- package/dist/cjs/_virtual/index8.js +8 -2
- package/dist/cjs/_virtual/index9.js +2 -2
- package/dist/cjs/_virtual/inflate.js +5 -0
- package/dist/cjs/_virtual/inflate2.js +5 -0
- package/dist/cjs/_virtual/quarterOfYear.js +11 -0
- package/dist/cjs/_virtual/quarterOfYear2.js +5 -0
- package/dist/cjs/_virtual/strings.js +5 -0
- package/dist/cjs/_virtual/trees.js +5 -0
- package/dist/cjs/_virtual/warning.js +11 -0
- package/dist/cjs/components/ui/date-pickers/date-input/date-input.js +116 -0
- package/dist/cjs/components/ui/date-pickers/date-range-picker/date-range-picker.js +64 -0
- package/dist/cjs/components/ui/date-pickers/date-time-picker/date-time-picker.js +2 -2
- package/dist/cjs/components/ui/pdf-content/hooks/use-page-layout.js +49 -0
- package/dist/cjs/components/ui/pdf-content/hooks/use-pdf-scale.js +23 -0
- package/dist/cjs/components/ui/pdf-content/hooks/use-virtual-pages.js +90 -0
- package/dist/cjs/components/ui/pdf-content/pdf-content.js +91 -0
- package/dist/cjs/components/ui/pdf-content/pdf-page.js +20 -0
- package/dist/cjs/components/ui/pdf-content/utils.js +7 -0
- package/dist/cjs/components/ui/pdf-viewer/pdf-field-types.js +144 -0
- package/dist/cjs/components/ui/pdf-viewer/pdf-viewer.js +48 -0
- package/dist/cjs/components/ui/pdf-viewer/pdf-worker-client.js +24 -0
- package/dist/cjs/components/ui/pdf-viewer/toolbar.js +13 -0
- package/dist/cjs/components/ui/pdf-viewer/use-filled-pdf.js +67 -0
- package/dist/cjs/components/ui/pdf-viewer/utils.js +284 -0
- package/dist/cjs/components/ui/rich-editor/rich-content-preview.js +342 -0
- package/dist/cjs/components/ui/rich-editor/rich-content-renderer.js +115 -41
- package/dist/cjs/components/ui/rich-editor/toolbar.js +6 -3
- package/dist/cjs/hooks/use-intersection.js +24 -0
- package/dist/cjs/hooks/use-raf-throttle.js +20 -0
- package/dist/cjs/hooks/use-resize-observer.js +20 -0
- package/dist/cjs/index.js +28 -3
- package/dist/cjs/node_modules/@ckeditor/ckeditor5-mention/dist/index.js +1 -1
- package/dist/cjs/node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js +1 -1
- package/dist/cjs/node_modules/@ckeditor/ckeditor5-ui/dist/index.js +1 -1
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Encoding.js +39 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Font.js +87 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Helvetica-Bold.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Helvetica-BoldOblique.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Helvetica-Oblique.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Helvetica.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Symbol.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Times-Bold.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Times-BoldItalic.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Times-Italic.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/Times-Roman.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/ZapfDingbats.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/all-encodings.compressed.json.js +7 -0
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/utils.js +69 -0
- package/dist/cjs/node_modules/@pdf-lib/upng/UPNG.js +1019 -0
- package/dist/cjs/node_modules/attr-accept/dist/es/index.js +1 -1
- package/dist/cjs/node_modules/chrono-node/dist/esm/calculation/mergingCalculation.js +76 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/calculation/years.js +34 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/chrono.js +113 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/abstractRefiners.js +41 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/calculation/weekdays.js +68 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/casualReferences.js +136 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/parsers/AbstractParserWithWordBoundary.js +33 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/parsers/AbstractTimeExpressionParser.js +336 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/parsers/ISOFormatParser.js +70 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/parsers/SlashDateFormatParser.js +79 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/AbstractMergeDateRangeRefiner.js +65 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/AbstractMergeDateTimeRefiner.js +24 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/ExtractTimezoneAbbrRefiner.js +57 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/ExtractTimezoneOffsetRefiner.js +42 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/ForwardDateRefiner.js +78 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/MergeWeekdayComponentRefiner.js +26 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/OverlapRemovalRefiner.js +41 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/common/refiners/UnlikelyFormatFilter.js +54 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/configurations.js +23 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/configuration.js +66 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/constants.js +277 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/index.js +36 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENCasualDateParser.js +55 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENCasualTimeParser.js +41 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js +58 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +72 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENMonthNameParser.js +46 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENRelativeDateFormatParser.js +57 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENSlashMonthFormatParser.js +21 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeExpressionParser.js +61 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitAgoFormatParser.js +31 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js +38 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitLaterFormatParser.js +30 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js +39 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENWeekdayParser.js +67 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/parsers/ENYearMonthDayParser.js +51 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/refiners/ENExtractYearSuffixRefiner.js +37 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeDateRangeRefiner.js +13 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeDateTimeRefiner.js +13 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js +33 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.js +39 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.js +38 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/constants.js +342 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/index.js +71 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js +24 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKCasualDateParser.js +35 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKCasualTimeParser.js +52 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js +55 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKMonthNameParser.js +43 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js +63 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeExpressionParser.js +60 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +21 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +28 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +25 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKWeekdayParser.js +48 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/refiners/UKMergeDateRangeRefiner.js +13 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/locales/uk/refiners/UKMergeDateTimeRefiner.js +13 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/results.js +269 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/timezone.js +278 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/types.js +32 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/utils/dates.js +9 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/utils/dayjs.js +43 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/utils/pattern.js +30 -0
- package/dist/cjs/node_modules/chrono-node/dist/esm/utils/timeunits.js +30 -0
- package/dist/cjs/node_modules/color-parse/index.js +1 -1
- package/dist/cjs/node_modules/comlink/dist/esm/comlink.js +360 -0
- package/dist/cjs/node_modules/dayjs/dayjs.min.js +18 -0
- package/dist/cjs/node_modules/dayjs/plugin/quarterOfYear.js +18 -0
- package/dist/cjs/node_modules/dequal/dist/index.js +88 -0
- package/dist/cjs/node_modules/make-cancellable-promise/dist/index.js +20 -0
- package/dist/cjs/node_modules/make-event-props/dist/index.js +151 -0
- package/dist/cjs/node_modules/merge-refs/dist/index.js +40 -0
- package/dist/cjs/node_modules/pako/index.js +29 -0
- package/dist/cjs/node_modules/pako/lib/deflate.js +417 -0
- package/dist/cjs/node_modules/pako/lib/inflate.js +442 -0
- package/dist/cjs/node_modules/pako/lib/utils/common.js +119 -0
- package/dist/cjs/node_modules/pako/lib/utils/strings.js +199 -0
- package/dist/cjs/node_modules/pako/lib/zlib/adler32.js +62 -0
- package/dist/cjs/node_modules/pako/lib/zlib/constants.js +79 -0
- package/dist/cjs/node_modules/pako/lib/zlib/crc32.js +70 -0
- package/dist/cjs/node_modules/pako/lib/zlib/deflate.js +1891 -0
- package/dist/cjs/node_modules/pako/lib/zlib/gzheader.js +69 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inffast.js +356 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inflate.js +1570 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inftrees.js +356 -0
- package/dist/cjs/node_modules/pako/lib/zlib/messages.js +43 -0
- package/dist/cjs/node_modules/pako/lib/zlib/trees.js +1235 -0
- package/dist/cjs/node_modules/pako/lib/zlib/zstream.js +58 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFDocument.js +1444 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFDocumentOptions.js +9 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFEmbeddedFile.js +154 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFEmbeddedPage.js +170 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFFont.js +218 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFImage.js +207 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFJavaScript.js +143 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFPage.js +1518 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/PDFPageOptions.js +17 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/StandardFonts.js +19 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/colors.js +72 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/errors.js +166 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFButton.js +295 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFCheckBox.js +311 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFDropdown.js +655 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFField.js +459 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFForm.js +802 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFOptionList.js +574 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFRadioGroup.js +490 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFSignature.js +118 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/PDFTextField.js +814 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/form/appearances.js +433 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/image/alignment.js +8 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/objects.js +84 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/operations.js +491 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/operators.js +285 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/rotations.js +81 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/sizes.js +6 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/svgPath.js +381 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/text/alignment.js +8 -0
- package/dist/cjs/node_modules/pdf-lib/es/api/text/layout.js +220 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/PDFContext.js +209 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/PDFObjectCopier.js +121 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroButton.js +99 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroCheckBox.js +53 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroChoice.js +130 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroComboBox.js +29 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroField.js +156 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroForm.js +80 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroListBox.js +27 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroNonTerminal.js +37 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroPushButton.js +29 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroRadioButton.js +60 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroSignature.js +19 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroTerminal.js +73 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/PDFAcroText.js +76 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/flags.js +148 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/acroform/utils.js +128 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/annotation/AppearanceCharacteristics.js +125 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/annotation/BorderStyle.js +31 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/annotation/PDFAnnotation.js +125 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/annotation/PDFWidgetAnnotation.js +113 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/annotation/flags.js +83 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/document/PDFCrossRefSection.js +131 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/document/PDFHeader.js +49 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/document/PDFTrailer.js +50 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/document/PDFTrailerDict.js +34 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/CMap.js +48 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/CustomFontEmbedder.js +248 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/CustomFontSubsetEmbedder.js +77 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/FileEmbedder.js +76 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/FontFlags.js +38 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/JavaScriptEmbedder.js +38 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/JpegEmbedder.js +109 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/PDFPageEmbedder.js +98 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/PngEmbedder.js +71 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/embedders/StandardFontEmbedder.js +106 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/errors.js +327 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/interactive/ViewerPreferences.js +517 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFArray.js +120 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFBool.js +55 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFDict.js +141 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFHexString.js +82 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFInvalidObject.js +35 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFName.js +146 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFNull.js +37 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFNumber.js +47 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFObject.js +25 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFRawStream.js +42 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFRef.js +55 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFStream.js +78 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/objects/PDFString.js +124 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/operators/PDFOperator.js +65 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/operators/PDFOperatorNames.js +91 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/parser/BaseParser.js +117 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/parser/ByteStream.js +66 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/parser/PDFObjectParser.js +241 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/parser/PDFObjectStreamParser.js +78 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/parser/PDFParser.js +364 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/parser/PDFXRefStreamParser.js +94 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/Ascii85Stream.js +90 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/AsciiHexStream.js +78 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/DecodeStream.js +151 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/FlateStream.js +366 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/LZWStream.js +140 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/RunLengthStream.js +58 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/Stream.js +108 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/streams/decode.js +59 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFCatalog.js +98 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFContentStream.js +63 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFCrossRefStream.js +195 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFFlateStream.js +42 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFObjectStream.js +86 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFPageLeaf.js +209 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFPageTree.js +180 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/syntax/CharCodes.js +68 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/syntax/Delimiters.js +17 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/syntax/Irregular.js +13 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/syntax/Keywords.js +85 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/syntax/Numeric.js +27 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/syntax/Whitespace.js +13 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/writers/PDFStreamWriter.js +122 -0
- package/dist/cjs/node_modules/pdf-lib/es/core/writers/PDFWriter.js +153 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/Cache.js +25 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/arrays.js +145 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/async.js +13 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/base64.js +89 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/errors.js +7 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/numbers.js +59 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/objects.js +16 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/pdfDocEncoding.js +70 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/png.js +62 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/rng.js +22 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/strings.js +154 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/unicode.js +247 -0
- package/dist/cjs/node_modules/pdf-lib/es/utils/validators.js +200 -0
- package/dist/cjs/node_modules/pdfjs-dist/build/pdf.js +25600 -0
- package/dist/cjs/node_modules/prop-types/index.js +1 -1
- package/dist/cjs/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/cjs/node_modules/react-pdf/dist/Document.js +311 -0
- package/dist/cjs/node_modules/react-pdf/dist/DocumentContext.js +10 -0
- package/dist/cjs/node_modules/react-pdf/dist/LinkService.js +155 -0
- package/dist/cjs/node_modules/react-pdf/dist/Message.js +11 -0
- package/dist/cjs/node_modules/react-pdf/dist/Page/AnnotationLayer.css.js +10 -0
- package/dist/cjs/node_modules/react-pdf/dist/Page/AnnotationLayer.js +152 -0
- package/dist/cjs/node_modules/react-pdf/dist/Page/Canvas.js +104 -0
- package/dist/cjs/node_modules/react-pdf/dist/Page/TextLayer.css.js +10 -0
- package/dist/cjs/node_modules/react-pdf/dist/Page/TextLayer.js +183 -0
- package/dist/cjs/node_modules/react-pdf/dist/Page.js +256 -0
- package/dist/cjs/node_modules/react-pdf/dist/PageContext.js +10 -0
- package/dist/cjs/node_modules/react-pdf/dist/PasswordResponses.js +11 -0
- package/dist/cjs/node_modules/react-pdf/dist/StructTree.js +81 -0
- package/dist/cjs/node_modules/react-pdf/dist/StructTreeItem.js +27 -0
- package/dist/cjs/node_modules/react-pdf/dist/index.js +9 -0
- package/dist/cjs/node_modules/react-pdf/dist/shared/constants.js +62 -0
- package/dist/cjs/node_modules/react-pdf/dist/shared/hooks/useDocumentContext.js +12 -0
- package/dist/cjs/node_modules/react-pdf/dist/shared/hooks/usePageContext.js +12 -0
- package/dist/cjs/node_modules/react-pdf/dist/shared/hooks/useResolver.js +23 -0
- package/dist/cjs/node_modules/react-pdf/dist/shared/structTreeUtils.js +75 -0
- package/dist/cjs/node_modules/react-pdf/dist/shared/utils.js +163 -0
- package/dist/cjs/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +19 -0
- package/dist/cjs/node_modules/tslib/tslib.es6.js +54 -0
- package/dist/cjs/node_modules/warning/warning.js +73 -0
- package/dist/cjs/utils/file.js +69 -0
- package/dist/esm/_virtual/common.js +3 -0
- package/dist/esm/_virtual/dayjs.min.js +7 -0
- package/dist/esm/_virtual/dayjs.min2.js +3 -0
- package/dist/esm/_virtual/deflate.js +3 -0
- package/dist/esm/_virtual/deflate2.js +3 -0
- package/dist/esm/_virtual/index10.js +3 -0
- package/dist/esm/_virtual/index5.js +2 -6
- package/dist/esm/_virtual/index6.js +4 -4
- package/dist/esm/_virtual/index7.js +6 -2
- package/dist/esm/_virtual/index8.js +6 -2
- package/dist/esm/_virtual/index9.js +2 -2
- package/dist/esm/_virtual/inflate.js +3 -0
- package/dist/esm/_virtual/inflate2.js +3 -0
- package/dist/esm/_virtual/quarterOfYear.js +7 -0
- package/dist/esm/_virtual/quarterOfYear2.js +3 -0
- package/dist/esm/_virtual/strings.js +3 -0
- package/dist/esm/_virtual/trees.js +3 -0
- package/dist/esm/_virtual/warning.js +7 -0
- package/dist/esm/components/ui/date-pickers/date-input/date-input.js +114 -0
- package/dist/esm/components/ui/date-pickers/date-range-picker/date-range-picker.js +62 -0
- package/dist/esm/components/ui/date-pickers/date-time-picker/date-time-picker.js +2 -2
- package/dist/esm/components/ui/pdf-content/hooks/use-page-layout.js +47 -0
- package/dist/esm/components/ui/pdf-content/hooks/use-pdf-scale.js +21 -0
- package/dist/esm/components/ui/pdf-content/hooks/use-virtual-pages.js +88 -0
- package/dist/esm/components/ui/pdf-content/pdf-content.js +88 -0
- package/dist/esm/components/ui/pdf-content/pdf-page.js +18 -0
- package/dist/esm/components/ui/pdf-content/utils.js +5 -0
- package/dist/esm/components/ui/pdf-viewer/pdf-field-types.js +140 -0
- package/dist/esm/components/ui/pdf-viewer/pdf-viewer.js +46 -0
- package/dist/esm/components/ui/pdf-viewer/pdf-worker-client.js +21 -0
- package/dist/esm/components/ui/pdf-viewer/toolbar.js +11 -0
- package/dist/esm/components/ui/pdf-viewer/use-filled-pdf.js +65 -0
- package/dist/esm/components/ui/pdf-viewer/utils.js +280 -0
- package/dist/esm/components/ui/rich-editor/rich-content-preview.js +321 -0
- package/dist/esm/components/ui/rich-editor/rich-content-renderer.js +114 -40
- package/dist/esm/components/ui/rich-editor/toolbar.js +6 -3
- package/dist/esm/hooks/use-intersection.js +22 -0
- package/dist/esm/hooks/use-raf-throttle.js +18 -0
- package/dist/esm/hooks/use-resize-observer.js +18 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/node_modules/@ckeditor/ckeditor5-mention/dist/index.js +1 -1
- package/dist/esm/node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js +1 -1
- package/dist/esm/node_modules/@ckeditor/ckeditor5-ui/dist/index.js +1 -1
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Encoding.js +37 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Font.js +85 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Helvetica-Bold.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Helvetica-BoldOblique.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Helvetica-Oblique.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Helvetica.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Symbol.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Times-Bold.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Times-BoldItalic.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Times-Italic.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/Times-Roman.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/ZapfDingbats.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/all-encodings.compressed.json.js +3 -0
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/utils.js +65 -0
- package/dist/esm/node_modules/@pdf-lib/upng/UPNG.js +1015 -0
- package/dist/esm/node_modules/attr-accept/dist/es/index.js +1 -1
- package/dist/esm/node_modules/chrono-node/dist/esm/calculation/mergingCalculation.js +73 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/calculation/years.js +31 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/chrono.js +110 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/abstractRefiners.js +38 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/calculation/weekdays.js +62 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/casualReferences.js +121 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/parsers/AbstractParserWithWordBoundary.js +31 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/parsers/AbstractTimeExpressionParser.js +334 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/parsers/ISOFormatParser.js +66 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/parsers/SlashDateFormatParser.js +75 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/AbstractMergeDateRangeRefiner.js +61 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/AbstractMergeDateTimeRefiner.js +20 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/ExtractTimezoneAbbrRefiner.js +53 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/ExtractTimezoneOffsetRefiner.js +38 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/ForwardDateRefiner.js +74 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/MergeWeekdayComponentRefiner.js +22 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/OverlapRemovalRefiner.js +37 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/common/refiners/UnlikelyFormatFilter.js +50 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/configurations.js +21 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/configuration.js +62 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/constants.js +260 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/index.js +17 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENCasualDateParser.js +51 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENCasualTimeParser.js +37 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js +54 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +68 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENMonthNameParser.js +42 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENRelativeDateFormatParser.js +53 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENSlashMonthFormatParser.js +17 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeExpressionParser.js +57 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitAgoFormatParser.js +27 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js +34 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitLaterFormatParser.js +26 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js +35 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENWeekdayParser.js +63 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/parsers/ENYearMonthDayParser.js +47 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/refiners/ENExtractYearSuffixRefiner.js +33 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeDateRangeRefiner.js +9 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeDateTimeRefiner.js +9 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js +29 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.js +35 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.js +34 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/constants.js +326 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/index.js +52 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js +21 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKCasualDateParser.js +31 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKCasualTimeParser.js +48 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js +51 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKMonthNameParser.js +39 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js +59 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeExpressionParser.js +56 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +17 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +24 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +21 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/parsers/UKWeekdayParser.js +44 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/refiners/UKMergeDateRangeRefiner.js +9 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/locales/uk/refiners/UKMergeDateTimeRefiner.js +9 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/results.js +265 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/timezone.js +273 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/types.js +32 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/utils/dates.js +7 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/utils/dayjs.js +37 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/utils/pattern.js +26 -0
- package/dist/esm/node_modules/chrono-node/dist/esm/utils/timeunits.js +27 -0
- package/dist/esm/node_modules/color-parse/index.js +1 -1
- package/dist/esm/node_modules/comlink/dist/esm/comlink.js +350 -0
- package/dist/esm/node_modules/dayjs/dayjs.min.js +16 -0
- package/dist/esm/node_modules/dayjs/plugin/quarterOfYear.js +16 -0
- package/dist/esm/node_modules/dequal/dist/index.js +86 -0
- package/dist/esm/node_modules/make-cancellable-promise/dist/index.js +16 -0
- package/dist/esm/node_modules/make-event-props/dist/index.js +128 -0
- package/dist/esm/node_modules/merge-refs/dist/index.js +36 -0
- package/dist/esm/node_modules/pako/index.js +27 -0
- package/dist/esm/node_modules/pako/lib/deflate.js +415 -0
- package/dist/esm/node_modules/pako/lib/inflate.js +440 -0
- package/dist/esm/node_modules/pako/lib/utils/common.js +117 -0
- package/dist/esm/node_modules/pako/lib/utils/strings.js +197 -0
- package/dist/esm/node_modules/pako/lib/zlib/adler32.js +60 -0
- package/dist/esm/node_modules/pako/lib/zlib/constants.js +77 -0
- package/dist/esm/node_modules/pako/lib/zlib/crc32.js +68 -0
- package/dist/esm/node_modules/pako/lib/zlib/deflate.js +1889 -0
- package/dist/esm/node_modules/pako/lib/zlib/gzheader.js +67 -0
- package/dist/esm/node_modules/pako/lib/zlib/inffast.js +354 -0
- package/dist/esm/node_modules/pako/lib/zlib/inflate.js +1568 -0
- package/dist/esm/node_modules/pako/lib/zlib/inftrees.js +354 -0
- package/dist/esm/node_modules/pako/lib/zlib/messages.js +41 -0
- package/dist/esm/node_modules/pako/lib/zlib/trees.js +1233 -0
- package/dist/esm/node_modules/pako/lib/zlib/zstream.js +56 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFDocument.js +1440 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFDocumentOptions.js +9 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFEmbeddedFile.js +150 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFEmbeddedPage.js +166 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFFont.js +214 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFImage.js +203 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFJavaScript.js +139 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFPage.js +1514 -0
- package/dist/esm/node_modules/pdf-lib/es/api/PDFPageOptions.js +17 -0
- package/dist/esm/node_modules/pdf-lib/es/api/StandardFonts.js +19 -0
- package/dist/esm/node_modules/pdf-lib/es/api/colors.js +64 -0
- package/dist/esm/node_modules/pdf-lib/es/api/errors.js +153 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFButton.js +291 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFCheckBox.js +307 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFDropdown.js +651 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFField.js +454 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFForm.js +798 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFOptionList.js +570 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFRadioGroup.js +486 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFSignature.js +114 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/PDFTextField.js +810 -0
- package/dist/esm/node_modules/pdf-lib/es/api/form/appearances.js +425 -0
- package/dist/esm/node_modules/pdf-lib/es/api/image/alignment.js +8 -0
- package/dist/esm/node_modules/pdf-lib/es/api/objects.js +80 -0
- package/dist/esm/node_modules/pdf-lib/es/api/operations.js +474 -0
- package/dist/esm/node_modules/pdf-lib/es/api/operators.js +245 -0
- package/dist/esm/node_modules/pdf-lib/es/api/rotations.js +72 -0
- package/dist/esm/node_modules/pdf-lib/es/api/sizes.js +4 -0
- package/dist/esm/node_modules/pdf-lib/es/api/svgPath.js +379 -0
- package/dist/esm/node_modules/pdf-lib/es/api/text/alignment.js +8 -0
- package/dist/esm/node_modules/pdf-lib/es/api/text/layout.js +216 -0
- package/dist/esm/node_modules/pdf-lib/es/core/PDFContext.js +205 -0
- package/dist/esm/node_modules/pdf-lib/es/core/PDFObjectCopier.js +117 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroButton.js +95 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroCheckBox.js +49 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroChoice.js +126 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroComboBox.js +25 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroField.js +152 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroForm.js +76 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroListBox.js +23 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroNonTerminal.js +33 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroPushButton.js +25 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroRadioButton.js +56 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroSignature.js +15 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroTerminal.js +69 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/PDFAcroText.js +72 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/flags.js +148 -0
- package/dist/esm/node_modules/pdf-lib/es/core/acroform/utils.js +125 -0
- package/dist/esm/node_modules/pdf-lib/es/core/annotation/AppearanceCharacteristics.js +121 -0
- package/dist/esm/node_modules/pdf-lib/es/core/annotation/BorderStyle.js +27 -0
- package/dist/esm/node_modules/pdf-lib/es/core/annotation/PDFAnnotation.js +121 -0
- package/dist/esm/node_modules/pdf-lib/es/core/annotation/PDFWidgetAnnotation.js +109 -0
- package/dist/esm/node_modules/pdf-lib/es/core/annotation/flags.js +83 -0
- package/dist/esm/node_modules/pdf-lib/es/core/document/PDFCrossRefSection.js +127 -0
- package/dist/esm/node_modules/pdf-lib/es/core/document/PDFHeader.js +45 -0
- package/dist/esm/node_modules/pdf-lib/es/core/document/PDFTrailer.js +46 -0
- package/dist/esm/node_modules/pdf-lib/es/core/document/PDFTrailerDict.js +30 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/CMap.js +46 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/CustomFontEmbedder.js +244 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/CustomFontSubsetEmbedder.js +73 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/FileEmbedder.js +72 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/FontFlags.js +36 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/JavaScriptEmbedder.js +34 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/JpegEmbedder.js +105 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/PDFPageEmbedder.js +94 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/PngEmbedder.js +67 -0
- package/dist/esm/node_modules/pdf-lib/es/core/embedders/StandardFontEmbedder.js +102 -0
- package/dist/esm/node_modules/pdf-lib/es/core/errors.js +299 -0
- package/dist/esm/node_modules/pdf-lib/es/core/interactive/ViewerPreferences.js +513 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFArray.js +116 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFBool.js +51 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFDict.js +137 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFHexString.js +78 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFInvalidObject.js +31 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFName.js +142 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFNull.js +33 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFNumber.js +43 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFObject.js +21 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFRawStream.js +38 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFRef.js +51 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFStream.js +74 -0
- package/dist/esm/node_modules/pdf-lib/es/core/objects/PDFString.js +120 -0
- package/dist/esm/node_modules/pdf-lib/es/core/operators/PDFOperator.js +61 -0
- package/dist/esm/node_modules/pdf-lib/es/core/operators/PDFOperatorNames.js +87 -0
- package/dist/esm/node_modules/pdf-lib/es/core/parser/BaseParser.js +113 -0
- package/dist/esm/node_modules/pdf-lib/es/core/parser/ByteStream.js +62 -0
- package/dist/esm/node_modules/pdf-lib/es/core/parser/PDFObjectParser.js +237 -0
- package/dist/esm/node_modules/pdf-lib/es/core/parser/PDFObjectStreamParser.js +74 -0
- package/dist/esm/node_modules/pdf-lib/es/core/parser/PDFParser.js +360 -0
- package/dist/esm/node_modules/pdf-lib/es/core/parser/PDFXRefStreamParser.js +90 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/Ascii85Stream.js +86 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/AsciiHexStream.js +74 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/DecodeStream.js +147 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/FlateStream.js +362 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/LZWStream.js +136 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/RunLengthStream.js +54 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/Stream.js +104 -0
- package/dist/esm/node_modules/pdf-lib/es/core/streams/decode.js +57 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFCatalog.js +94 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFContentStream.js +59 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFCrossRefStream.js +191 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFFlateStream.js +38 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFObjectStream.js +82 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFPageLeaf.js +205 -0
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFPageTree.js +176 -0
- package/dist/esm/node_modules/pdf-lib/es/core/syntax/CharCodes.js +64 -0
- package/dist/esm/node_modules/pdf-lib/es/core/syntax/Delimiters.js +15 -0
- package/dist/esm/node_modules/pdf-lib/es/core/syntax/Irregular.js +11 -0
- package/dist/esm/node_modules/pdf-lib/es/core/syntax/Keywords.js +83 -0
- package/dist/esm/node_modules/pdf-lib/es/core/syntax/Numeric.js +23 -0
- package/dist/esm/node_modules/pdf-lib/es/core/syntax/Whitespace.js +11 -0
- package/dist/esm/node_modules/pdf-lib/es/core/writers/PDFStreamWriter.js +118 -0
- package/dist/esm/node_modules/pdf-lib/es/core/writers/PDFWriter.js +149 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/Cache.js +21 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/arrays.js +131 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/async.js +11 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/base64.js +85 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/errors.js +5 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/numbers.js +55 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/objects.js +11 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/pdfDocEncoding.js +68 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/png.js +60 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/rng.js +20 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/strings.js +134 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/unicode.js +239 -0
- package/dist/esm/node_modules/pdf-lib/es/utils/validators.js +182 -0
- package/dist/esm/node_modules/pdfjs-dist/build/pdf.js +25542 -0
- package/dist/esm/node_modules/prop-types/index.js +1 -1
- package/dist/esm/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/esm/node_modules/react-pdf/dist/Document.js +308 -0
- package/dist/esm/node_modules/react-pdf/dist/DocumentContext.js +6 -0
- package/dist/esm/node_modules/react-pdf/dist/LinkService.js +151 -0
- package/dist/esm/node_modules/react-pdf/dist/Message.js +7 -0
- package/dist/esm/node_modules/react-pdf/dist/Page/AnnotationLayer.css.js +6 -0
- package/dist/esm/node_modules/react-pdf/dist/Page/AnnotationLayer.js +148 -0
- package/dist/esm/node_modules/react-pdf/dist/Page/Canvas.js +100 -0
- package/dist/esm/node_modules/react-pdf/dist/Page/TextLayer.css.js +6 -0
- package/dist/esm/node_modules/react-pdf/dist/Page/TextLayer.js +179 -0
- package/dist/esm/node_modules/react-pdf/dist/Page.js +252 -0
- package/dist/esm/node_modules/react-pdf/dist/PageContext.js +6 -0
- package/dist/esm/node_modules/react-pdf/dist/PasswordResponses.js +7 -0
- package/dist/esm/node_modules/react-pdf/dist/StructTree.js +77 -0
- package/dist/esm/node_modules/react-pdf/dist/StructTreeItem.js +23 -0
- package/dist/esm/node_modules/react-pdf/dist/index.js +7 -0
- package/dist/esm/node_modules/react-pdf/dist/shared/constants.js +59 -0
- package/dist/esm/node_modules/react-pdf/dist/shared/hooks/useDocumentContext.js +8 -0
- package/dist/esm/node_modules/react-pdf/dist/shared/hooks/usePageContext.js +8 -0
- package/dist/esm/node_modules/react-pdf/dist/shared/hooks/useResolver.js +19 -0
- package/dist/esm/node_modules/react-pdf/dist/shared/structTreeUtils.js +68 -0
- package/dist/esm/node_modules/react-pdf/dist/shared/utils.js +146 -0
- package/dist/esm/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +15 -0
- package/dist/esm/node_modules/tslib/tslib.es6.js +52 -1
- package/dist/esm/node_modules/warning/warning.js +71 -0
- package/dist/esm/utils/file.js +66 -0
- package/dist/styles.css +21 -0
- package/dist/types/index.d.ts +176 -12
- package/package.json +5 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef, useRef, useState, useMemo, useImperativeHandle } from 'react';
|
|
4
|
+
import { TimePicker } from '../time-picker/time-picker.js';
|
|
5
|
+
import { Calendar } from '../../calendar/calendar.js';
|
|
6
|
+
import { Popover, PopoverTrigger, PopoverContent } from '../../../popovers/popover/popover.js';
|
|
7
|
+
import { Button } from '../../../buttons/button/button.js';
|
|
8
|
+
import { cn } from '../../../../lib/utils.js';
|
|
9
|
+
import { Flex } from '../../../layout/flex/flex.js';
|
|
10
|
+
import { Text } from '../../../typography/text/text.js';
|
|
11
|
+
import { formatDate as format } from '../../../../node_modules/date-fns/format.js';
|
|
12
|
+
import { uk } from '../../../../node_modules/date-fns/locale/uk.js';
|
|
13
|
+
import { enUS } from '../../../../node_modules/date-fns/locale/en-US.js';
|
|
14
|
+
|
|
15
|
+
const setDefaultTime = (date) => new Date(date.setHours(0, 0, 0, 0));
|
|
16
|
+
const getDate = (date) => date || setDefaultTime(new Date());
|
|
17
|
+
const getDateFnsLocale = (locale) => (locale === "ua" ? uk : enUS);
|
|
18
|
+
const DateRangePicker = forwardRef(({ value: range, onChange, granularity = "day", hourCycle = 24, locale = "en", placeholder = "Select date range", className, numberOfMonths = 1, }, ref) => {
|
|
19
|
+
const buttonRef = useRef(null);
|
|
20
|
+
const [hoveredDate, setHoveredDate] = useState(null);
|
|
21
|
+
const loc = getDateFnsLocale(locale);
|
|
22
|
+
const displayValue = (range === null || range === void 0 ? void 0 : range.from) && (range === null || range === void 0 ? void 0 : range.to)
|
|
23
|
+
? `${format(range.from, "PPP", { locale: loc })} - ${format(range.to, "PPP", { locale: loc })}`
|
|
24
|
+
: placeholder;
|
|
25
|
+
const modifiers = useMemo(() => ({
|
|
26
|
+
hoverRange: (range === null || range === void 0 ? void 0 : range.from) && hoveredDate ? { from: range.from, to: hoveredDate } : undefined,
|
|
27
|
+
}), [hoveredDate, range === null || range === void 0 ? void 0 : range.from, range === null || range === void 0 ? void 0 : range.to]);
|
|
28
|
+
useImperativeHandle(ref, () => ({
|
|
29
|
+
value: range,
|
|
30
|
+
focus: () => { var _a; return (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },
|
|
31
|
+
}), [range]);
|
|
32
|
+
return (jsxs(Popover, { children: [jsx(PopoverTrigger, { asChild: true, children: jsx(Button, { ref: buttonRef, variant: "outline", leftIcon: "calendar", className: cn("w-full justify-start text-left font-normal", !(range === null || range === void 0 ? void 0 : range.from) && "text-muted-foreground", className), children: displayValue }) }), jsxs(PopoverContent, { className: "w-auto p-0 relative", children: [jsx(Calendar, { mode: "range", selected: range, onSelect: onChange, numberOfMonths: numberOfMonths, locale: loc, required: true, onDayMouseEnter: setHoveredDate, onDayMouseLeave: () => setHoveredDate(null), modifiers: modifiers }), granularity !== "day" && (jsxs(Flex, { direction: "col", gap: 4, className: "border-t border-border p-3", children: [jsxs(Flex, { direction: "col", gap: 1, children: [jsx(Text, { children: "Start time" }), jsx(TimePicker, { value: range === null || range === void 0 ? void 0 : range.from, onChange: (value) => {
|
|
33
|
+
if (value) {
|
|
34
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
35
|
+
from: value,
|
|
36
|
+
to: getDate(range === null || range === void 0 ? void 0 : range.to),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
41
|
+
from: getDate(range === null || range === void 0 ? void 0 : range.from),
|
|
42
|
+
to: getDate(range === null || range === void 0 ? void 0 : range.to),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}, hourCycle: hourCycle, granularity: granularity })] }), jsxs(Flex, { direction: "col", gap: 1, children: [jsx(Text, { children: "End time" }), jsx(TimePicker, { value: range === null || range === void 0 ? void 0 : range.to, onChange: (value) => {
|
|
46
|
+
if (value) {
|
|
47
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
48
|
+
from: getDate(range === null || range === void 0 ? void 0 : range.from),
|
|
49
|
+
to: value,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
54
|
+
from: getDate(range === null || range === void 0 ? void 0 : range.from),
|
|
55
|
+
to: getDate(range === null || range === void 0 ? void 0 : range.to),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}, hourCycle: hourCycle, granularity: granularity })] })] }))] })] }));
|
|
59
|
+
});
|
|
60
|
+
DateRangePicker.displayName = "DateRangePicker";
|
|
61
|
+
|
|
62
|
+
export { DateRangePicker };
|
|
@@ -7,10 +7,10 @@ import { Calendar } from '../../calendar/calendar.js';
|
|
|
7
7
|
import { cn } from '../../../../lib/utils.js';
|
|
8
8
|
import { Popover, PopoverTrigger, PopoverContent } from '../../../popovers/popover/popover.js';
|
|
9
9
|
import { Button } from '../../../buttons/button/button.js';
|
|
10
|
-
import { uk } from '../../../../node_modules/date-fns/locale/uk.js';
|
|
11
|
-
import { enUS } from '../../../../node_modules/date-fns/locale/en-US.js';
|
|
12
10
|
import { add } from '../../../../node_modules/date-fns/add.js';
|
|
13
11
|
import { formatDate as format } from '../../../../node_modules/date-fns/format.js';
|
|
12
|
+
import { uk } from '../../../../node_modules/date-fns/locale/uk.js';
|
|
13
|
+
import { enUS } from '../../../../node_modules/date-fns/locale/en-US.js';
|
|
14
14
|
|
|
15
15
|
const getDateFnsLocale = (locale) => (locale === "ua" ? uk : enUS);
|
|
16
16
|
const DateTimePicker = forwardRef((_a, ref) => {
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { useRef, useState, useCallback, useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
const DEFAULT_PAGE_HEIGHT = 800;
|
|
4
|
+
const PAGE_GAP = 16;
|
|
5
|
+
function usePageLayout({ numPages, scale }) {
|
|
6
|
+
const pageDims = useRef(new Map());
|
|
7
|
+
// Bumped when page measurements change so memoized offsets recompute.
|
|
8
|
+
const [layoutVersion, setLayoutVersion] = useState(0);
|
|
9
|
+
const onPageMeasured = useCallback((page, dims) => {
|
|
10
|
+
const prev = pageDims.current.get(page);
|
|
11
|
+
if (prev && Math.abs(prev.height - dims.height) < 1 && Math.abs(prev.width - dims.width) < 1)
|
|
12
|
+
return;
|
|
13
|
+
pageDims.current.set(page, dims);
|
|
14
|
+
setLayoutVersion((v) => v + 1);
|
|
15
|
+
}, []);
|
|
16
|
+
const estimatePageHeight = useCallback((page) => {
|
|
17
|
+
const measured = pageDims.current.get(page);
|
|
18
|
+
if (measured)
|
|
19
|
+
return measured.height;
|
|
20
|
+
// Use nearest known height as a better estimate
|
|
21
|
+
for (const [, dim] of pageDims.current)
|
|
22
|
+
return dim.height;
|
|
23
|
+
return DEFAULT_PAGE_HEIGHT * scale;
|
|
24
|
+
}, [scale]);
|
|
25
|
+
const pageOffsets = useMemo(() => {
|
|
26
|
+
const offsets = [];
|
|
27
|
+
let y = 0;
|
|
28
|
+
for (let i = 0; i < numPages; i++) {
|
|
29
|
+
offsets.push(y);
|
|
30
|
+
y += estimatePageHeight(i + 1) + PAGE_GAP;
|
|
31
|
+
}
|
|
32
|
+
return offsets;
|
|
33
|
+
// layoutVersion is intentionally included to recompute when measurements change
|
|
34
|
+
}, [numPages, estimatePageHeight, layoutVersion]);
|
|
35
|
+
const totalHeight = useMemo(() => {
|
|
36
|
+
if (numPages === 0 || pageOffsets.length === 0)
|
|
37
|
+
return 0;
|
|
38
|
+
return pageOffsets[numPages - 1] + estimatePageHeight(numPages);
|
|
39
|
+
}, [numPages, pageOffsets, estimatePageHeight]);
|
|
40
|
+
const resetLayout = useCallback(() => {
|
|
41
|
+
pageDims.current.clear();
|
|
42
|
+
setLayoutVersion(0);
|
|
43
|
+
}, []);
|
|
44
|
+
return { pageOffsets, totalHeight, estimatePageHeight, onPageMeasured, resetLayout };
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { usePageLayout };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import { clamp } from '../utils.js';
|
|
3
|
+
|
|
4
|
+
function usePdfScale({ initialScale, minScale, maxScale, onScaleChange }) {
|
|
5
|
+
const [scale, setScaleState] = useState(initialScale);
|
|
6
|
+
const setScale = useCallback((next) => {
|
|
7
|
+
setScaleState((prev) => {
|
|
8
|
+
const raw = typeof next === "function" ? next(prev) : next;
|
|
9
|
+
const clamped = clamp(Number(raw.toFixed(2)), minScale, maxScale);
|
|
10
|
+
if (clamped === prev)
|
|
11
|
+
return prev;
|
|
12
|
+
return clamped;
|
|
13
|
+
});
|
|
14
|
+
}, [minScale, maxScale]);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
onScaleChange === null || onScaleChange === void 0 ? void 0 : onScaleChange(scale);
|
|
17
|
+
}, [scale, onScaleChange]);
|
|
18
|
+
return { scale, setScale };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { usePdfScale };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useState, useCallback, useEffect, useMemo } from 'react';
|
|
2
|
+
import { useRafThrottle } from '../../../../hooks/use-raf-throttle.js';
|
|
3
|
+
|
|
4
|
+
const OVERSCAN = 2;
|
|
5
|
+
/**
|
|
6
|
+
* Binary-search for the last offset index whose value is <= target.
|
|
7
|
+
* `offsets` is a sorted array of cumulative page-top positions.
|
|
8
|
+
*/
|
|
9
|
+
function bisectRight(offsets, target) {
|
|
10
|
+
let lo = 0;
|
|
11
|
+
let hi = offsets.length - 1;
|
|
12
|
+
while (lo < hi) {
|
|
13
|
+
const mid = (lo + hi + 1) >>> 1;
|
|
14
|
+
if (offsets[mid] <= target)
|
|
15
|
+
lo = mid;
|
|
16
|
+
else
|
|
17
|
+
hi = mid - 1;
|
|
18
|
+
}
|
|
19
|
+
return lo;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Find the page whose center is closest to the viewport center.
|
|
23
|
+
*/
|
|
24
|
+
function findMostVisiblePage(first, last, viewportMid, pageOffsets, estimatePageHeight) {
|
|
25
|
+
let bestPage = first + 1;
|
|
26
|
+
let bestDist = Number.POSITIVE_INFINITY;
|
|
27
|
+
for (let i = first; i <= last; i++) {
|
|
28
|
+
const pageH = estimatePageHeight(i + 1);
|
|
29
|
+
const pageMid = pageOffsets[i] + pageH / 2;
|
|
30
|
+
const dist = Math.abs(viewportMid - pageMid);
|
|
31
|
+
if (dist < bestDist) {
|
|
32
|
+
bestDist = dist;
|
|
33
|
+
bestPage = i + 1;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return bestPage;
|
|
37
|
+
}
|
|
38
|
+
function useVirtualPages({ containerRef, numPages, pageOffsets, estimatePageHeight, scale }) {
|
|
39
|
+
const [visibleRange, setVisibleRange] = useState([1, 1]);
|
|
40
|
+
const [visiblePage, setVisiblePage] = useState(1);
|
|
41
|
+
const computeVisibleRange = useCallback(() => {
|
|
42
|
+
const container = containerRef.current;
|
|
43
|
+
if (!container || numPages === 0)
|
|
44
|
+
return;
|
|
45
|
+
const { scrollTop, clientHeight } = container;
|
|
46
|
+
const first = Math.max(0, bisectRight(pageOffsets, scrollTop));
|
|
47
|
+
let last = first;
|
|
48
|
+
const bottomEdge = scrollTop + clientHeight;
|
|
49
|
+
while (last < numPages - 1 && pageOffsets[last + 1] <= bottomEdge) {
|
|
50
|
+
last++;
|
|
51
|
+
}
|
|
52
|
+
const firstPage = first + 1;
|
|
53
|
+
const lastPage = last + 1;
|
|
54
|
+
setVisibleRange((prev) => {
|
|
55
|
+
if (prev[0] === firstPage && prev[1] === lastPage)
|
|
56
|
+
return prev;
|
|
57
|
+
return [firstPage, lastPage];
|
|
58
|
+
});
|
|
59
|
+
const viewportMid = scrollTop + clientHeight / 2;
|
|
60
|
+
const bestPage = findMostVisiblePage(first, last, viewportMid, pageOffsets, estimatePageHeight);
|
|
61
|
+
setVisiblePage((prev) => (prev === bestPage ? prev : bestPage));
|
|
62
|
+
}, [containerRef, numPages, pageOffsets, estimatePageHeight]);
|
|
63
|
+
// Recompute visible range when scale changes (page heights change)
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
computeVisibleRange();
|
|
66
|
+
}, [scale, computeVisibleRange]);
|
|
67
|
+
const onScroll = useRafThrottle(computeVisibleRange);
|
|
68
|
+
const renderedPages = useMemo(() => {
|
|
69
|
+
if (numPages === 0)
|
|
70
|
+
return [];
|
|
71
|
+
const [first, last] = visibleRange;
|
|
72
|
+
const start = Math.max(1, first - OVERSCAN);
|
|
73
|
+
const end = Math.min(numPages, last + OVERSCAN);
|
|
74
|
+
const pages = [];
|
|
75
|
+
for (let p = start; p <= end; p++)
|
|
76
|
+
pages.push(p);
|
|
77
|
+
if (pages.length === 0)
|
|
78
|
+
pages.push(1);
|
|
79
|
+
return pages;
|
|
80
|
+
}, [visibleRange, numPages]);
|
|
81
|
+
const resetVirtualState = useCallback(() => {
|
|
82
|
+
setVisibleRange([1, 1]);
|
|
83
|
+
setVisiblePage(1);
|
|
84
|
+
}, []);
|
|
85
|
+
return { visiblePage, renderedPages, onScroll, resetVirtualState };
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { useVirtualPages };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useRef, useState, useEffect, useCallback, useImperativeHandle } from 'react';
|
|
3
|
+
import '../../../node_modules/react-pdf/dist/index.js';
|
|
4
|
+
import '../../../node_modules/react-pdf/dist/Page/AnnotationLayer.css.js';
|
|
5
|
+
import '../../../node_modules/react-pdf/dist/Page/TextLayer.css.js';
|
|
6
|
+
import { PDFPage } from './pdf-page.js';
|
|
7
|
+
import { usePdfScale } from './hooks/use-pdf-scale.js';
|
|
8
|
+
import { usePageLayout } from './hooks/use-page-layout.js';
|
|
9
|
+
import { useVirtualPages } from './hooks/use-virtual-pages.js';
|
|
10
|
+
import { clamp } from './utils.js';
|
|
11
|
+
import { EmptyState, EmptyMedia, EmptyHeader, EmptyTitle, EmptyDescription } from '../../utility/empty/empty.js';
|
|
12
|
+
import { Icon } from '../../media/icon/icon.js';
|
|
13
|
+
import { Skeleton } from '../../utility/skeleton/skeleton.js';
|
|
14
|
+
import { useResizeObserver } from '../../../hooks/use-resize-observer.js';
|
|
15
|
+
import Document from '../../../node_modules/react-pdf/dist/Document.js';
|
|
16
|
+
import { GlobalWorkerOptions } from '../../../node_modules/pdfjs-dist/build/pdf.js';
|
|
17
|
+
|
|
18
|
+
GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/build/pdf.worker.min.mjs", import.meta.url).toString();
|
|
19
|
+
const PAGE_GAP = 16;
|
|
20
|
+
function PDFSkeleton() {
|
|
21
|
+
return (jsxs("div", { className: "flex flex-col gap-4 p-6", children: [jsx(Skeleton, { className: "h-6 w-1/3" }), jsx(Skeleton, { className: "h-4 w-3/4" }), jsx(Skeleton, { className: "h-4 w-full" }), jsx(Skeleton, { className: "h-4 w-5/6" }), jsx(Skeleton, { className: "h-4 w-2/3" }), jsx(Skeleton, { className: "h-4 w-full" }), jsx(Skeleton, { className: "h-4 w-4/5" })] }));
|
|
22
|
+
}
|
|
23
|
+
function PDFEmptyState({ icon, title, description }) {
|
|
24
|
+
return (jsxs(EmptyState, { className: "py-12", children: [jsx(EmptyMedia, { variant: "icon", children: jsx(Icon, { name: icon }) }), jsxs(EmptyHeader, { children: [jsx(EmptyTitle, { children: title }), jsx(EmptyDescription, { children: description })] })] }));
|
|
25
|
+
}
|
|
26
|
+
const PDFContent = forwardRef(function PDFContent({ file, renderTextLayer = true, renderAnnotationLayer = true, initialScale = 1, minScale = 0.5, maxScale = 3, height, onDocumentLoad, onPageChange, onScaleChange, }, ref) {
|
|
27
|
+
var _a;
|
|
28
|
+
const containerRef = useRef(null);
|
|
29
|
+
const rect = useResizeObserver(containerRef);
|
|
30
|
+
const containerWidth = (_a = rect === null || rect === void 0 ? void 0 : rect.width) !== null && _a !== void 0 ? _a : 0;
|
|
31
|
+
const [numPages, setNumPages] = useState(0);
|
|
32
|
+
const { scale, setScale } = usePdfScale({ initialScale, minScale, maxScale, onScaleChange });
|
|
33
|
+
const { pageOffsets, totalHeight, estimatePageHeight, onPageMeasured, resetLayout } = usePageLayout({
|
|
34
|
+
numPages,
|
|
35
|
+
scale,
|
|
36
|
+
});
|
|
37
|
+
const { visiblePage, renderedPages, onScroll, resetVirtualState } = useVirtualPages({
|
|
38
|
+
containerRef,
|
|
39
|
+
numPages,
|
|
40
|
+
pageOffsets,
|
|
41
|
+
estimatePageHeight,
|
|
42
|
+
scale,
|
|
43
|
+
});
|
|
44
|
+
// Notify parent of page changes
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(visiblePage);
|
|
47
|
+
}, [visiblePage, onPageChange]);
|
|
48
|
+
// Imperative scrollToPage
|
|
49
|
+
const scrollToPage = useCallback((page) => {
|
|
50
|
+
var _a;
|
|
51
|
+
const safe = clamp(Number.isFinite(page) ? page : 1, 1, Math.max(1, numPages));
|
|
52
|
+
const container = containerRef.current;
|
|
53
|
+
if (!container)
|
|
54
|
+
return;
|
|
55
|
+
const top = (_a = pageOffsets[safe - 1]) !== null && _a !== void 0 ? _a : 0;
|
|
56
|
+
container.scrollTo({
|
|
57
|
+
top: Math.max(0, top - PAGE_GAP),
|
|
58
|
+
behavior: "smooth",
|
|
59
|
+
});
|
|
60
|
+
}, [numPages, pageOffsets]);
|
|
61
|
+
// Expose imperative API
|
|
62
|
+
useImperativeHandle(ref, () => ({
|
|
63
|
+
scrollToPage,
|
|
64
|
+
getState: () => ({
|
|
65
|
+
currentPage: visiblePage,
|
|
66
|
+
numPages,
|
|
67
|
+
scale,
|
|
68
|
+
}),
|
|
69
|
+
setScale,
|
|
70
|
+
}), [scrollToPage, visiblePage, numPages, scale, setScale]);
|
|
71
|
+
// Reset state when document changes
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
resetLayout();
|
|
74
|
+
resetVirtualState();
|
|
75
|
+
setNumPages(0);
|
|
76
|
+
}, [file, resetLayout, resetVirtualState]);
|
|
77
|
+
// Document load handler
|
|
78
|
+
const handleDocumentLoad = useCallback((pdf) => {
|
|
79
|
+
setNumPages(pdf.numPages);
|
|
80
|
+
onDocumentLoad === null || onDocumentLoad === void 0 ? void 0 : onDocumentLoad(pdf.numPages);
|
|
81
|
+
}, [onDocumentLoad]);
|
|
82
|
+
return (jsx("div", { ref: containerRef, "data-pdf-stage": "root", className: "relative overflow-auto bg-muted/40", style: { height }, onScroll: onScroll, children: jsx(Document, { file: file, onLoadSuccess: handleDocumentLoad, loading: jsx(PDFSkeleton, {}), error: jsx(PDFEmptyState, { icon: "alert-circle", title: "Failed to load PDF", description: "The PDF file could not be loaded." }), noData: jsx(PDFEmptyState, { icon: "file-text", title: "No PDF to display", description: "Provide a PDF file to preview it here." }), children: jsx("div", { className: "relative", style: { height: totalHeight }, children: renderedPages.map((pageNumber) => {
|
|
83
|
+
var _a;
|
|
84
|
+
return (jsx(PDFPage, { pageNumber: pageNumber, offsetY: (_a = pageOffsets[pageNumber - 1]) !== null && _a !== void 0 ? _a : 0, containerWidth: containerWidth, scale: scale, renderTextLayer: renderTextLayer, renderAnnotationLayer: renderAnnotationLayer, placeholderHeight: estimatePageHeight(pageNumber), onMeasured: onPageMeasured }, pageNumber));
|
|
85
|
+
}) }) }) }));
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
export { PDFContent };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import '../../../node_modules/react-pdf/dist/index.js';
|
|
4
|
+
import { Skeleton } from '../../utility/skeleton/skeleton.js';
|
|
5
|
+
import Page from '../../../node_modules/react-pdf/dist/Page.js';
|
|
6
|
+
|
|
7
|
+
function PDFPage({ pageNumber, offsetY, containerWidth, scale, renderTextLayer, renderAnnotationLayer, placeholderHeight, onMeasured, }) {
|
|
8
|
+
const wrapRef = useRef(null);
|
|
9
|
+
const width = containerWidth > 0 ? containerWidth : undefined;
|
|
10
|
+
return (jsx("div", { ref: wrapRef, "data-page-num": pageNumber, className: "absolute inset-x-0 flex will-change-transform justify-center", style: { transform: `translateY(${offsetY}px)` }, children: jsx(Page, { pageNumber: pageNumber, width: width, scale: scale, renderTextLayer: renderTextLayer, renderAnnotationLayer: renderAnnotationLayer, onRenderSuccess: () => {
|
|
11
|
+
const el = wrapRef.current;
|
|
12
|
+
if (!el)
|
|
13
|
+
return;
|
|
14
|
+
onMeasured(pageNumber, { width: el.offsetWidth, height: el.offsetHeight });
|
|
15
|
+
}, loading: jsxs("div", { className: "flex w-full flex-col gap-3 p-6", style: { height: placeholderHeight }, children: [jsx(Skeleton, { className: "h-4 w-3/4" }), jsx(Skeleton, { className: "h-4 w-full" }), jsx(Skeleton, { className: "h-4 w-5/6" }), jsx(Skeleton, { className: "h-4 w-2/3" }), jsx(Skeleton, { className: "h-4 w-full" }), jsx(Skeleton, { className: "h-4 w-4/5" })] }) }) }));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { PDFPage };
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import '../../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import '../../../node_modules/pdf-lib/es/api/colors.js';
|
|
3
|
+
import '../../../node_modules/pdf-lib/es/api/operators.js';
|
|
4
|
+
import '../../../node_modules/pdf-lib/es/api/rotations.js';
|
|
5
|
+
import '../../../node_modules/pdf-lib/es/core/errors.js';
|
|
6
|
+
import '../../../node_modules/pdf-lib/es/core/syntax/CharCodes.js';
|
|
7
|
+
import '../../../node_modules/pdf-lib/es/core/PDFContext.js';
|
|
8
|
+
import '../../../node_modules/pdf-lib/es/core/PDFObjectCopier.js';
|
|
9
|
+
import '../../../node_modules/pdf-lib/es/core/writers/PDFWriter.js';
|
|
10
|
+
import '../../../node_modules/pdf-lib/es/core/writers/PDFStreamWriter.js';
|
|
11
|
+
import '../../../node_modules/pdf-lib/es/core/document/PDFHeader.js';
|
|
12
|
+
import '../../../node_modules/pdf-lib/es/core/document/PDFTrailer.js';
|
|
13
|
+
import '../../../node_modules/pdf-lib/es/core/document/PDFTrailerDict.js';
|
|
14
|
+
import '../../../node_modules/pdf-lib/es/core/document/PDFCrossRefSection.js';
|
|
15
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/StandardFontEmbedder.js';
|
|
16
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/CustomFontEmbedder.js';
|
|
17
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/CustomFontSubsetEmbedder.js';
|
|
18
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/FileEmbedder.js';
|
|
19
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/JpegEmbedder.js';
|
|
20
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/PngEmbedder.js';
|
|
21
|
+
import '../../../node_modules/pdf-lib/es/core/embedders/PDFPageEmbedder.js';
|
|
22
|
+
import '../../../node_modules/pdf-lib/es/core/interactive/ViewerPreferences.js';
|
|
23
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFObject.js';
|
|
24
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFBool.js';
|
|
25
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFNumber.js';
|
|
26
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFString.js';
|
|
27
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFHexString.js';
|
|
28
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFName.js';
|
|
29
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFNull.js';
|
|
30
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFArray.js';
|
|
31
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFDict.js';
|
|
32
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFRef.js';
|
|
33
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFInvalidObject.js';
|
|
34
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFStream.js';
|
|
35
|
+
import '../../../node_modules/pdf-lib/es/core/objects/PDFRawStream.js';
|
|
36
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFCatalog.js';
|
|
37
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFContentStream.js';
|
|
38
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFCrossRefStream.js';
|
|
39
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFObjectStream.js';
|
|
40
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFPageTree.js';
|
|
41
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFPageLeaf.js';
|
|
42
|
+
import '../../../node_modules/pdf-lib/es/core/structures/PDFFlateStream.js';
|
|
43
|
+
import '../../../node_modules/pdf-lib/es/core/operators/PDFOperator.js';
|
|
44
|
+
import '../../../node_modules/pdf-lib/es/core/operators/PDFOperatorNames.js';
|
|
45
|
+
import '../../../node_modules/pdf-lib/es/core/parser/PDFObjectParser.js';
|
|
46
|
+
import '../../../node_modules/pdf-lib/es/core/parser/PDFObjectStreamParser.js';
|
|
47
|
+
import '../../../node_modules/pdf-lib/es/core/parser/PDFParser.js';
|
|
48
|
+
import '../../../node_modules/pdf-lib/es/core/parser/PDFXRefStreamParser.js';
|
|
49
|
+
import '../../../node_modules/pdf-lib/es/core/streams/Ascii85Stream.js';
|
|
50
|
+
import '../../../node_modules/pdf-lib/es/core/streams/AsciiHexStream.js';
|
|
51
|
+
import '../../../node_modules/pdf-lib/es/core/streams/FlateStream.js';
|
|
52
|
+
import '../../../node_modules/pdf-lib/es/core/streams/LZWStream.js';
|
|
53
|
+
import '../../../node_modules/pdf-lib/es/core/streams/RunLengthStream.js';
|
|
54
|
+
import '../../../node_modules/pdf-lib/es/core/streams/Stream.js';
|
|
55
|
+
import '../../../node_modules/pdf-lib/es/core/annotation/PDFAnnotation.js';
|
|
56
|
+
import '../../../node_modules/pdf-lib/es/core/annotation/PDFWidgetAnnotation.js';
|
|
57
|
+
import '../../../node_modules/pdf-lib/es/core/annotation/AppearanceCharacteristics.js';
|
|
58
|
+
import '../../../node_modules/pdf-lib/es/core/annotation/flags.js';
|
|
59
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroButton.js';
|
|
60
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroCheckBox.js';
|
|
61
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroChoice.js';
|
|
62
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroComboBox.js';
|
|
63
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroField.js';
|
|
64
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroForm.js';
|
|
65
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroListBox.js';
|
|
66
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroNonTerminal.js';
|
|
67
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroPushButton.js';
|
|
68
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroRadioButton.js';
|
|
69
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroSignature.js';
|
|
70
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroTerminal.js';
|
|
71
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/PDFAcroText.js';
|
|
72
|
+
import '../../../node_modules/pdf-lib/es/core/acroform/flags.js';
|
|
73
|
+
import '../../../node_modules/pdf-lib/es/api/errors.js';
|
|
74
|
+
import '../../../node_modules/pdf-lib/es/api/text/alignment.js';
|
|
75
|
+
import '../../../node_modules/pdf-lib/es/utils/base64.js';
|
|
76
|
+
import '../../../node_modules/pdf-lib/es/utils/unicode.js';
|
|
77
|
+
import '../../../node_modules/pdf-lib/es/utils/objects.js';
|
|
78
|
+
import '../../../node_modules/pdf-lib/es/utils/pdfDocEncoding.js';
|
|
79
|
+
import '../../../node_modules/pdf-lib/es/utils/Cache.js';
|
|
80
|
+
import '../../../node_modules/pdf-lib/es/api/form/PDFButton.js';
|
|
81
|
+
import PDFCheckBox from '../../../node_modules/pdf-lib/es/api/form/PDFCheckBox.js';
|
|
82
|
+
import PDFDropdown from '../../../node_modules/pdf-lib/es/api/form/PDFDropdown.js';
|
|
83
|
+
import '../../../node_modules/pdf-lib/es/api/form/PDFField.js';
|
|
84
|
+
import '../../../node_modules/pdf-lib/es/api/form/PDFForm.js';
|
|
85
|
+
import PDFOptionList from '../../../node_modules/pdf-lib/es/api/form/PDFOptionList.js';
|
|
86
|
+
import PDFRadioGroup from '../../../node_modules/pdf-lib/es/api/form/PDFRadioGroup.js';
|
|
87
|
+
import PDFSignature from '../../../node_modules/pdf-lib/es/api/form/PDFSignature.js';
|
|
88
|
+
import PDFTextField from '../../../node_modules/pdf-lib/es/api/form/PDFTextField.js';
|
|
89
|
+
import '../../../node_modules/pdf-lib/es/api/image/alignment.js';
|
|
90
|
+
import '../../../node_modules/pdf-lib/es/api/PDFPageOptions.js';
|
|
91
|
+
import '../../../node_modules/pdf-lib/es/api/PDFDocumentOptions.js';
|
|
92
|
+
import '../../../node_modules/pdf-lib/es/api/StandardFonts.js';
|
|
93
|
+
import '../../../node_modules/pdf-lib/es/api/PDFDocument.js';
|
|
94
|
+
import '../../../node_modules/pdf-lib/es/api/PDFFont.js';
|
|
95
|
+
import '../../../node_modules/pdf-lib/es/api/PDFImage.js';
|
|
96
|
+
import '../../../node_modules/pdf-lib/es/api/PDFPage.js';
|
|
97
|
+
import '../../../node_modules/pdf-lib/es/api/PDFEmbeddedPage.js';
|
|
98
|
+
import '../../../node_modules/pdf-lib/es/api/PDFJavaScript.js';
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Detects the PDF form field type using pdf-lib field classes.
|
|
102
|
+
* Use this in both UI (e.g. building forms from a PDF) and when applying form data.
|
|
103
|
+
*/
|
|
104
|
+
function getPDFFieldType(field) {
|
|
105
|
+
if (field instanceof PDFTextField)
|
|
106
|
+
return "text";
|
|
107
|
+
if (field instanceof PDFCheckBox)
|
|
108
|
+
return "checkbox";
|
|
109
|
+
if (field instanceof PDFDropdown)
|
|
110
|
+
return "dropdown";
|
|
111
|
+
if (field instanceof PDFRadioGroup)
|
|
112
|
+
return "radio";
|
|
113
|
+
if (field instanceof PDFOptionList)
|
|
114
|
+
return "optionList";
|
|
115
|
+
if (field instanceof PDFSignature)
|
|
116
|
+
return "signature";
|
|
117
|
+
return "unknown";
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Returns type and optional options (for dropdown, radio, optionList).
|
|
121
|
+
* Use when you need both type and options in one call.
|
|
122
|
+
*/
|
|
123
|
+
function getPDFFieldInfo(field) {
|
|
124
|
+
var _a;
|
|
125
|
+
const type = getPDFFieldType(field);
|
|
126
|
+
const info = { type };
|
|
127
|
+
const withOptions = field;
|
|
128
|
+
if ((type === "dropdown" || type === "radio" || type === "optionList") && typeof withOptions.getOptions === "function") {
|
|
129
|
+
info.options = (_a = withOptions.getOptions()) !== null && _a !== void 0 ? _a : [];
|
|
130
|
+
}
|
|
131
|
+
return info;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Returns field name plus type and options. Convenient for building UI from PDF form fields.
|
|
135
|
+
*/
|
|
136
|
+
function getPdfFieldInfoWithName(field) {
|
|
137
|
+
return Object.assign({ name: field.getName() }, getPDFFieldInfo(field));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export { getPDFFieldInfo, getPDFFieldType, getPdfFieldInfoWithName };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef, useState, useCallback } from 'react';
|
|
3
|
+
import { Toolbar } from './toolbar.js';
|
|
4
|
+
import { PDFContent } from '../pdf-content/pdf-content.js';
|
|
5
|
+
import { useFilledPdf } from './use-filled-pdf.js';
|
|
6
|
+
import { clamp } from '../pdf-content/utils.js';
|
|
7
|
+
import { cn } from '../../../lib/utils.js';
|
|
8
|
+
import { saveFile, printBlob } from '../../../utils/file.js';
|
|
9
|
+
|
|
10
|
+
function PDFViewer({ file, formData, flatten = true, initialScale = 1, minScale = 0.5, maxScale = 3, scaleStep = 0.1, renderTextLayer = true, renderAnnotationLayer = true, className, style, height = 640, }) {
|
|
11
|
+
const contentRef = useRef(null);
|
|
12
|
+
const [scale, setScale] = useState(initialScale);
|
|
13
|
+
const [numPages, setNumPages] = useState(0);
|
|
14
|
+
const [visiblePage, setVisiblePage] = useState(1);
|
|
15
|
+
const { pdfBlob, isProcessing } = useFilledPdf({
|
|
16
|
+
file,
|
|
17
|
+
formData,
|
|
18
|
+
flatten,
|
|
19
|
+
});
|
|
20
|
+
const goToPage = useCallback((p) => {
|
|
21
|
+
var _a;
|
|
22
|
+
const safe = clamp(Number.isFinite(p) ? p : 1, 1, Math.max(1, numPages));
|
|
23
|
+
(_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.scrollToPage(safe);
|
|
24
|
+
}, [numPages]);
|
|
25
|
+
const zoomIn = useCallback(() => { var _a; return (_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.setScale((s) => s + scaleStep); }, [scaleStep]);
|
|
26
|
+
const zoomOut = useCallback(() => { var _a; return (_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.setScale((s) => s - scaleStep); }, [scaleStep]);
|
|
27
|
+
const prev = useCallback(() => goToPage(visiblePage - 1), [goToPage, visiblePage]);
|
|
28
|
+
const next = useCallback(() => goToPage(visiblePage + 1), [goToPage, visiblePage]);
|
|
29
|
+
const handleDocumentLoad = useCallback((pages) => {
|
|
30
|
+
setNumPages(pages);
|
|
31
|
+
setVisiblePage((p) => clamp(p, 1, pages));
|
|
32
|
+
}, []);
|
|
33
|
+
const download = useCallback(() => {
|
|
34
|
+
if (!pdfBlob)
|
|
35
|
+
return;
|
|
36
|
+
saveFile("document.pdf", pdfBlob);
|
|
37
|
+
}, [pdfBlob]);
|
|
38
|
+
const print = useCallback(() => {
|
|
39
|
+
if (!pdfBlob)
|
|
40
|
+
return;
|
|
41
|
+
printBlob(pdfBlob);
|
|
42
|
+
}, [pdfBlob]);
|
|
43
|
+
return (jsxs("div", { className: cn("flex flex-col overflow-hidden rounded-xl border", className), style: style, children: [jsx(Toolbar, { scale: scale, minScale: minScale, maxScale: maxScale, onZoomIn: zoomIn, onZoomOut: zoomOut, pageNumber: visiblePage, numPages: numPages, onPageChange: goToPage, onPrev: prev, onNext: next, canDownload: !isProcessing, onDownload: download, canPrint: !isProcessing, onPrint: print, isBusy: isProcessing }), jsx(PDFContent, { ref: contentRef, file: pdfBlob, initialScale: initialScale, minScale: minScale, maxScale: maxScale, renderTextLayer: renderTextLayer, renderAnnotationLayer: renderAnnotationLayer, onDocumentLoad: handleDocumentLoad, onPageChange: setVisiblePage, onScaleChange: setScale, height: height })] }));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { PDFViewer };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import '../../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import { wrap } from '../../../node_modules/comlink/dist/esm/comlink.js';
|
|
3
|
+
|
|
4
|
+
let worker = null;
|
|
5
|
+
let api = null;
|
|
6
|
+
function canUseWorker() {
|
|
7
|
+
return typeof window !== "undefined" && typeof Worker !== "undefined";
|
|
8
|
+
}
|
|
9
|
+
function getPDFWorkerApi() {
|
|
10
|
+
if (!canUseWorker())
|
|
11
|
+
return null;
|
|
12
|
+
if (api)
|
|
13
|
+
return api;
|
|
14
|
+
worker = new Worker(new URL("./pdf.worker.ts", import.meta.url), {
|
|
15
|
+
type: "module",
|
|
16
|
+
});
|
|
17
|
+
api = wrap(worker);
|
|
18
|
+
return api;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { getPDFWorkerApi };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Button } from '../../buttons/button/button.js';
|
|
3
|
+
import { Input } from '../../forms/input/input.js';
|
|
4
|
+
import { Separator } from '../../utility/separator/separator.js';
|
|
5
|
+
|
|
6
|
+
function Toolbar({ scale, minScale, maxScale, onZoomIn, onZoomOut, pageNumber, numPages, onPageChange, onPrev, onNext, canDownload, onDownload, canPrint, onPrint, isBusy, }) {
|
|
7
|
+
const scalePct = Math.round(scale * 100);
|
|
8
|
+
return (jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b bg-background px-3 py-2", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onZoomOut, disabled: isBusy || scale <= minScale, children: "\u2212" }), jsxs("div", { className: "min-w-[64px] text-center text-sm tabular-nums text-muted-foreground", children: [scalePct, "%"] }), jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onZoomIn, disabled: isBusy || scale >= maxScale, children: "+" })] }), jsx(Separator, { orientation: "vertical", className: "mx-1 h-6" }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onPrev, disabled: isBusy || numPages === 0 || pageNumber <= 1, children: "Prev" }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Input, { className: "h-9 w-[72px] tabular-nums", type: "number", inputMode: "numeric", min: 1, max: Math.max(1, numPages), value: numPages ? pageNumber : "", onChange: (e) => onPageChange(Number(e.target.value || 1)), disabled: isBusy || numPages === 0 }), jsxs("span", { className: "text-sm text-muted-foreground tabular-nums", children: ["/ ", numPages || "—"] })] }), jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onNext, disabled: isBusy || numPages === 0 || pageNumber >= numPages, children: "Next" })] }), jsx("div", { className: "flex-1" }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button, { type: "button", variant: "secondary", size: "sm", onClick: onDownload, disabled: isBusy || !canDownload, children: "Download" }), jsx(Button, { type: "button", variant: "secondary", size: "sm", onClick: onPrint, disabled: isBusy || !canPrint, children: "Print" })] })] }));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { Toolbar };
|