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,1019 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var index = require('../../../_virtual/index8.js');
|
|
6
|
+
|
|
7
|
+
var UPNG = {};
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
UPNG.toRGBA8 = function(out)
|
|
12
|
+
{
|
|
13
|
+
var w = out.width, h = out.height;
|
|
14
|
+
if(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];
|
|
15
|
+
|
|
16
|
+
var frms = [];
|
|
17
|
+
if(out.frames[0].data==null) out.frames[0].data = out.data;
|
|
18
|
+
|
|
19
|
+
var len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len);
|
|
20
|
+
for(var i=0; i<out.frames.length; i++)
|
|
21
|
+
{
|
|
22
|
+
var frm = out.frames[i];
|
|
23
|
+
var fx=frm.rect.x, fy=frm.rect.y, fw = frm.rect.width, fh = frm.rect.height;
|
|
24
|
+
var fdata = UPNG.toRGBA8.decodeImage(frm.data, fw,fh, out);
|
|
25
|
+
|
|
26
|
+
if(i!=0) for(var j=0; j<len; j++) prev[j]=img[j];
|
|
27
|
+
|
|
28
|
+
if (frm.blend==0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);
|
|
29
|
+
else if(frm.blend==1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);
|
|
30
|
+
|
|
31
|
+
frms.push(img.buffer.slice(0));
|
|
32
|
+
|
|
33
|
+
if (frm.dispose==0) ;
|
|
34
|
+
else if(frm.dispose==1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);
|
|
35
|
+
else if(frm.dispose==2) for(var j=0; j<len; j++) img[j]=prev[j];
|
|
36
|
+
}
|
|
37
|
+
return frms;
|
|
38
|
+
};
|
|
39
|
+
UPNG.toRGBA8.decodeImage = function(data, w, h, out)
|
|
40
|
+
{
|
|
41
|
+
var area = w*h, bpp = UPNG.decode._getBPP(out);
|
|
42
|
+
var bpl = Math.ceil(w*bpp/8); // bytes per line
|
|
43
|
+
|
|
44
|
+
var bf = new Uint8Array(area*4), bf32 = new Uint32Array(bf.buffer);
|
|
45
|
+
var ctype = out.ctype, depth = out.depth;
|
|
46
|
+
var rs = UPNG._bin.readUshort;
|
|
47
|
+
|
|
48
|
+
if (ctype==6) { // RGB + alpha
|
|
49
|
+
var qarea = area<<2;
|
|
50
|
+
if(depth== 8) for(var i=0; i<qarea;i+=4) { bf[i] = data[i]; bf[i+1] = data[i+1]; bf[i+2] = data[i+2]; bf[i+3] = data[i+3]; }
|
|
51
|
+
if(depth==16) for(var i=0; i<qarea;i++ ) { bf[i] = data[i<<1]; }
|
|
52
|
+
}
|
|
53
|
+
else if(ctype==2) { // RGB
|
|
54
|
+
var ts=out.tabs["tRNS"];
|
|
55
|
+
if(ts==null) {
|
|
56
|
+
if(depth== 8) for(var i=0; i<area; i++) { var ti=i*3; bf32[i] = (255<<24)|(data[ti+2]<<16)|(data[ti+1]<<8)|data[ti]; }
|
|
57
|
+
if(depth==16) for(var i=0; i<area; i++) { var ti=i*6; bf32[i] = (255<<24)|(data[ti+4]<<16)|(data[ti+2]<<8)|data[ti]; }
|
|
58
|
+
}
|
|
59
|
+
else { var tr=ts[0], tg=ts[1], tb=ts[2];
|
|
60
|
+
if(depth== 8) for(var i=0; i<area; i++) { var qi=i<<2, ti=i*3; bf32[i] = (255<<24)|(data[ti+2]<<16)|(data[ti+1]<<8)|data[ti];
|
|
61
|
+
if(data[ti] ==tr && data[ti+1] ==tg && data[ti+2] ==tb) bf[qi+3] = 0; }
|
|
62
|
+
if(depth==16) for(var i=0; i<area; i++) { var qi=i<<2, ti=i*6; bf32[i] = (255<<24)|(data[ti+4]<<16)|(data[ti+2]<<8)|data[ti];
|
|
63
|
+
if(rs(data,ti)==tr && rs(data,ti+2)==tg && rs(data,ti+4)==tb) bf[qi+3] = 0; }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if(ctype==3) { // palette
|
|
67
|
+
var p=out.tabs["PLTE"], ap=out.tabs["tRNS"], tl=ap?ap.length:0;
|
|
68
|
+
//console.log(p, ap);
|
|
69
|
+
if(depth==1) for(var y=0; y<h; y++) { var s0 = y*bpl, t0 = y*w;
|
|
70
|
+
for(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>3)]>>(7-((i&7)<<0)))& 1), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j<tl)?ap[j]:255; }
|
|
71
|
+
}
|
|
72
|
+
if(depth==2) for(var y=0; y<h; y++) { var s0 = y*bpl, t0 = y*w;
|
|
73
|
+
for(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>2)]>>(6-((i&3)<<1)))& 3), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j<tl)?ap[j]:255; }
|
|
74
|
+
}
|
|
75
|
+
if(depth==4) for(var y=0; y<h; y++) { var s0 = y*bpl, t0 = y*w;
|
|
76
|
+
for(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>1)]>>(4-((i&1)<<2)))&15), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j<tl)?ap[j]:255; }
|
|
77
|
+
}
|
|
78
|
+
if(depth==8) for(var i=0; i<area; i++ ) { var qi=i<<2, j=data[i] , cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j<tl)?ap[j]:255; }
|
|
79
|
+
}
|
|
80
|
+
else if(ctype==4) { // gray + alpha
|
|
81
|
+
if(depth== 8) for(var i=0; i<area; i++) { var qi=i<<2, di=i<<1, gr=data[di]; bf[qi]=gr; bf[qi+1]=gr; bf[qi+2]=gr; bf[qi+3]=data[di+1]; }
|
|
82
|
+
if(depth==16) for(var i=0; i<area; i++) { var qi=i<<2, di=i<<2, gr=data[di]; bf[qi]=gr; bf[qi+1]=gr; bf[qi+2]=gr; bf[qi+3]=data[di+2]; }
|
|
83
|
+
}
|
|
84
|
+
else if(ctype==0) { // gray
|
|
85
|
+
var tr = out.tabs["tRNS"] ? out.tabs["tRNS"] : -1;
|
|
86
|
+
for(var y=0; y<h; y++) {
|
|
87
|
+
var off = y*bpl, to = y*w;
|
|
88
|
+
if (depth== 1) for(var x=0; x<w; x++) { var gr=255*((data[off+(x>>>3)]>>>(7 -((x&7) )))& 1), al=(gr==tr*255)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
|
|
89
|
+
else if(depth== 2) for(var x=0; x<w; x++) { var gr= 85*((data[off+(x>>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
|
|
90
|
+
else if(depth== 4) for(var x=0; x<w; x++) { var gr= 17*((data[off+(x>>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
|
|
91
|
+
else if(depth== 8) for(var x=0; x<w; x++) { var gr=data[off+ x], al=(gr ==tr)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
|
|
92
|
+
else if(depth==16) for(var x=0; x<w; x++) { var gr=data[off+(x<<1)], al=(rs(data,off+(x<<i))==tr)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//console.log(Date.now()-time);
|
|
96
|
+
return bf;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
UPNG.decode = function(buff)
|
|
102
|
+
{
|
|
103
|
+
var data = new Uint8Array(buff), offset = 8, bin = UPNG._bin, rUs = bin.readUshort, rUi = bin.readUint;
|
|
104
|
+
var out = {tabs:{}, frames:[]};
|
|
105
|
+
var dd = new Uint8Array(data.length), doff = 0; // put all IDAT data into it
|
|
106
|
+
var fd, foff = 0; // frames
|
|
107
|
+
|
|
108
|
+
var mgck = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
|
|
109
|
+
for(var i=0; i<8; i++) if(data[i]!=mgck[i]) throw "The input is not a PNG file!";
|
|
110
|
+
|
|
111
|
+
while(offset<data.length)
|
|
112
|
+
{
|
|
113
|
+
var len = bin.readUint(data, offset); offset += 4;
|
|
114
|
+
var type = bin.readASCII(data, offset, 4); offset += 4;
|
|
115
|
+
//console.log(type,len);
|
|
116
|
+
|
|
117
|
+
if (type=="IHDR") { UPNG.decode._IHDR(data, offset, out); }
|
|
118
|
+
else if(type=="IDAT") {
|
|
119
|
+
for(var i=0; i<len; i++) dd[doff+i] = data[offset+i];
|
|
120
|
+
doff += len;
|
|
121
|
+
}
|
|
122
|
+
else if(type=="acTL") {
|
|
123
|
+
out.tabs[type] = { num_frames:rUi(data, offset), num_plays:rUi(data, offset+4) };
|
|
124
|
+
fd = new Uint8Array(data.length);
|
|
125
|
+
}
|
|
126
|
+
else if(type=="fcTL") {
|
|
127
|
+
if(foff!=0) { var fr = out.frames[out.frames.length-1];
|
|
128
|
+
fr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height); foff=0;
|
|
129
|
+
}
|
|
130
|
+
var rct = {x:rUi(data, offset+12),y:rUi(data, offset+16),width:rUi(data, offset+4),height:rUi(data, offset+8)};
|
|
131
|
+
var del = rUs(data, offset+22); del = rUs(data, offset+20) / (del==0?100:del);
|
|
132
|
+
var frm = {rect:rct, delay:Math.round(del*1000), dispose:data[offset+24], blend:data[offset+25]};
|
|
133
|
+
//console.log(frm);
|
|
134
|
+
out.frames.push(frm);
|
|
135
|
+
}
|
|
136
|
+
else if(type=="fdAT") {
|
|
137
|
+
for(var i=0; i<len-4; i++) fd[foff+i] = data[offset+i+4];
|
|
138
|
+
foff += len-4;
|
|
139
|
+
}
|
|
140
|
+
else if(type=="pHYs") {
|
|
141
|
+
out.tabs[type] = [bin.readUint(data, offset), bin.readUint(data, offset+4), data[offset+8]];
|
|
142
|
+
}
|
|
143
|
+
else if(type=="cHRM") {
|
|
144
|
+
out.tabs[type] = [];
|
|
145
|
+
for(var i=0; i<8; i++) out.tabs[type].push(bin.readUint(data, offset+i*4));
|
|
146
|
+
}
|
|
147
|
+
else if(type=="tEXt") {
|
|
148
|
+
if(out.tabs[type]==null) out.tabs[type] = {};
|
|
149
|
+
var nz = bin.nextZero(data, offset);
|
|
150
|
+
var keyw = bin.readASCII(data, offset, nz-offset);
|
|
151
|
+
var text = bin.readASCII(data, nz+1, offset+len-nz-1);
|
|
152
|
+
out.tabs[type][keyw] = text;
|
|
153
|
+
}
|
|
154
|
+
else if(type=="iTXt") {
|
|
155
|
+
if(out.tabs[type]==null) out.tabs[type] = {};
|
|
156
|
+
var nz = 0, off = offset;
|
|
157
|
+
nz = bin.nextZero(data, off);
|
|
158
|
+
var keyw = bin.readASCII(data, off, nz-off); off = nz + 1;
|
|
159
|
+
data[off]; data[off+1]; off+=2;
|
|
160
|
+
nz = bin.nextZero(data, off);
|
|
161
|
+
bin.readASCII(data, off, nz-off); off = nz + 1;
|
|
162
|
+
nz = bin.nextZero(data, off);
|
|
163
|
+
bin.readUTF8(data, off, nz-off); off = nz + 1;
|
|
164
|
+
var text = bin.readUTF8(data, off, len-(off-offset));
|
|
165
|
+
out.tabs[type][keyw] = text;
|
|
166
|
+
}
|
|
167
|
+
else if(type=="PLTE") {
|
|
168
|
+
out.tabs[type] = bin.readBytes(data, offset, len);
|
|
169
|
+
}
|
|
170
|
+
else if(type=="hIST") {
|
|
171
|
+
var pl = out.tabs["PLTE"].length/3;
|
|
172
|
+
out.tabs[type] = []; for(var i=0; i<pl; i++) out.tabs[type].push(rUs(data, offset+i*2));
|
|
173
|
+
}
|
|
174
|
+
else if(type=="tRNS") {
|
|
175
|
+
if (out.ctype==3) out.tabs[type] = bin.readBytes(data, offset, len);
|
|
176
|
+
else if(out.ctype==0) out.tabs[type] = rUs(data, offset);
|
|
177
|
+
else if(out.ctype==2) out.tabs[type] = [ rUs(data,offset),rUs(data,offset+2),rUs(data,offset+4) ];
|
|
178
|
+
//else console.log("tRNS for unsupported color type",out.ctype, len);
|
|
179
|
+
}
|
|
180
|
+
else if(type=="gAMA") out.tabs[type] = bin.readUint(data, offset)/100000;
|
|
181
|
+
else if(type=="sRGB") out.tabs[type] = data[offset];
|
|
182
|
+
else if(type=="bKGD")
|
|
183
|
+
{
|
|
184
|
+
if (out.ctype==0 || out.ctype==4) out.tabs[type] = [rUs(data, offset)];
|
|
185
|
+
else if(out.ctype==2 || out.ctype==6) out.tabs[type] = [rUs(data, offset), rUs(data, offset+2), rUs(data, offset+4)];
|
|
186
|
+
else if(out.ctype==3) out.tabs[type] = data[offset];
|
|
187
|
+
}
|
|
188
|
+
else if(type=="IEND") {
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
//else { log("unknown chunk type", type, len); }
|
|
192
|
+
offset += len;
|
|
193
|
+
bin.readUint(data, offset); offset += 4;
|
|
194
|
+
}
|
|
195
|
+
if(foff!=0) { var fr = out.frames[out.frames.length-1];
|
|
196
|
+
fr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height); foff=0;
|
|
197
|
+
}
|
|
198
|
+
out.data = UPNG.decode._decompress(out, dd, out.width, out.height);
|
|
199
|
+
|
|
200
|
+
delete out.compress; delete out.interlace; delete out.filter;
|
|
201
|
+
return out;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
UPNG.decode._decompress = function(out, dd, w, h) {
|
|
205
|
+
var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), buff = new Uint8Array((bpl+1+out.interlace)*h);
|
|
206
|
+
dd = UPNG.decode._inflate(dd,buff);
|
|
207
|
+
if (out.interlace==0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);
|
|
208
|
+
else if(out.interlace==1) dd = UPNG.decode._readInterlace(dd, out);
|
|
209
|
+
//console.log(Date.now()-time);
|
|
210
|
+
return dd;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
UPNG.decode._inflate = function(data, buff) { var out=UPNG["inflateRaw"](new Uint8Array(data.buffer, 2,data.length-6),buff); return out; };
|
|
214
|
+
UPNG.inflateRaw=function(){var H={};H.H={};H.H.N=function(N,W){var R=Uint8Array,i=0,m=0,J=0,h=0,Q=0,X=0,u=0,w=0,d=0,v,C;
|
|
215
|
+
if(N[0]==3&&N[1]==0)return W?W:new R(0);var V=H.H,n=V.b,A=V.e,l=V.R,M=V.n,I=V.A,e=V.Z,b=V.m,Z=W==null;
|
|
216
|
+
if(Z)W=new R(N.length>>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);
|
|
217
|
+
var D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3;
|
|
218
|
+
w+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1;}if(m==2){J=A(N,d,5)+257;
|
|
219
|
+
h=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0;}for(var c=0;
|
|
220
|
+
c<Q;c++){var K=A(N,d+c*3,3);b.Q[(b.X[c]<<1)+1]=K;if(K>j)j=K;}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d;
|
|
221
|
+
d=l(b.u,(1<<j)-1,J+h,N,d,b.v);var r=V.V(b.v,0,J,b.C);X=(1<<r)-1;var S=V.V(b.v,J,h,b.D);u=(1<<S)-1;M(b.C,r);
|
|
222
|
+
I(b.C,r,v);M(b.D,S);I(b.D,S,C);}while(true){var T=v[e(N,d)&X];d+=T&15;var p=T>>>4;if(p>>>8==0){W[w++]=p;}else if(p==256){break}else {var z=w+p-254;
|
|
223
|
+
if(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7;}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15);
|
|
224
|
+
d+=Y&15;while(w<z){W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a];}w=z;}}}return W.length==w?W:W.slice(0,w)};
|
|
225
|
+
H.H.W=function(N,W){var R=N.length;if(W<=R)return N;var V=new Uint8Array(R<<1);V.set(N,0);return V};
|
|
226
|
+
H.H.R=function(N,W,R,V,n,A){var l=H.H.e,M=H.H.Z,I=0;while(I<R){var e=N[M(V,n)&W];n+=e&15;var b=e>>>4;
|
|
227
|
+
if(b<=15){A[I]=b;I++;}else {var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1];}else if(b==17){m=3+l(V,n,3);
|
|
228
|
+
n+=3;}else if(b==18){m=11+l(V,n,7);n+=7;}var J=I+m;while(I<J){A[I]=Z;I++;}}}return n};H.H.V=function(N,W,R,V){var n=0,A=0,l=V.length>>>1;
|
|
229
|
+
while(A<R){var M=N[A+W];V[A<<1]=0;V[(A<<1)+1]=M;if(M>n)n=M;A++;}while(A<l){V[A<<1]=0;V[(A<<1)+1]=0;A++;}return n};
|
|
230
|
+
H.H.n=function(N,W){var R=H.H.m,V=N.length,n,A,l,M,I,e=R.j;for(var M=0;M<=W;M++)e[M]=0;for(M=1;M<V;M+=2)e[N[M]]++;
|
|
231
|
+
var b=R.K;n=0;e[0]=0;for(A=1;A<=W;A++){n=n+e[A-1]<<1;b[A]=n;}for(l=0;l<V;l+=2){I=N[l+1];if(I!=0){N[l]=b[I];
|
|
232
|
+
b[I]++;}}};H.H.A=function(N,W,R){var V=N.length,n=H.H.m,A=n.r;for(var l=0;l<V;l+=2)if(N[l+1]!=0){var M=l>>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<<b,m=Z+(1<<b);
|
|
233
|
+
while(Z!=m){var J=A[Z]>>>15-W;R[J]=e;Z++;}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n<N.length;
|
|
234
|
+
n+=2){var A=N[n]<<W-N[n+1];N[n]=R[A]>>>V;}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;};
|
|
235
|
+
H.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16;};H.H.e=function(N,W,R){return (N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<<R)-1};
|
|
236
|
+
H.H.b=function(N,W,R){return (N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<<R)-1};H.H.Z=function(N,W){return (N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)};
|
|
237
|
+
H.H.i=function(N,W){return (N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array;
|
|
238
|
+
return {K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}();
|
|
239
|
+
(function(){var N=H.H.m,W=1<<15;for(var R=0;R<W;R++){var V=R;V=(V&2863311530)>>>1|(V&1431655765)<<1;
|
|
240
|
+
V=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8;
|
|
241
|
+
N.r[R]=(V>>>16|V<<16)>>>17;}function n(A,l,M){while(l--!=0)A.push(0,M);}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R];
|
|
242
|
+
N.c[R]=N.p[R]<<4|N.z[R];}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9);
|
|
243
|
+
H.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0);
|
|
244
|
+
n(N.D,30,0);n(N.v,320,0);}());return H.H.N}();
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
UPNG.decode._readInterlace = function(data, out)
|
|
248
|
+
{
|
|
249
|
+
var w = out.width, h = out.height;
|
|
250
|
+
var bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8);
|
|
251
|
+
var img = new Uint8Array( h * bpl );
|
|
252
|
+
var di = 0;
|
|
253
|
+
|
|
254
|
+
var starting_row = [ 0, 0, 4, 0, 2, 0, 1 ];
|
|
255
|
+
var starting_col = [ 0, 4, 0, 2, 0, 1, 0 ];
|
|
256
|
+
var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];
|
|
257
|
+
var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];
|
|
258
|
+
|
|
259
|
+
var pass=0;
|
|
260
|
+
while(pass<7)
|
|
261
|
+
{
|
|
262
|
+
var ri = row_increment[pass], ci = col_increment[pass];
|
|
263
|
+
var sw = 0, sh = 0;
|
|
264
|
+
var cr = starting_row[pass]; while(cr<h) { cr+=ri; sh++; }
|
|
265
|
+
var cc = starting_col[pass]; while(cc<w) { cc+=ci; sw++; }
|
|
266
|
+
var bpll = Math.ceil(sw*bpp/8);
|
|
267
|
+
UPNG.decode._filterZero(data, out, di, sw, sh);
|
|
268
|
+
|
|
269
|
+
var y=0, row = starting_row[pass];
|
|
270
|
+
while(row<h)
|
|
271
|
+
{
|
|
272
|
+
var col = starting_col[pass];
|
|
273
|
+
var cdi = (di+y*bpll)<<3;
|
|
274
|
+
|
|
275
|
+
while(col<w)
|
|
276
|
+
{
|
|
277
|
+
if(bpp==1) {
|
|
278
|
+
var val = data[cdi>>3]; val = (val>>(7-(cdi&7)))&1;
|
|
279
|
+
img[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0)));
|
|
280
|
+
}
|
|
281
|
+
if(bpp==2) {
|
|
282
|
+
var val = data[cdi>>3]; val = (val>>(6-(cdi&7)))&3;
|
|
283
|
+
img[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1)));
|
|
284
|
+
}
|
|
285
|
+
if(bpp==4) {
|
|
286
|
+
var val = data[cdi>>3]; val = (val>>(4-(cdi&7)))&15;
|
|
287
|
+
img[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2)));
|
|
288
|
+
}
|
|
289
|
+
if(bpp>=8) {
|
|
290
|
+
var ii = row*bpl+col*cbpp;
|
|
291
|
+
for(var j=0; j<cbpp; j++) img[ii+j] = data[(cdi>>3)+j];
|
|
292
|
+
}
|
|
293
|
+
cdi+=bpp; col+=ci;
|
|
294
|
+
}
|
|
295
|
+
y++; row += ri;
|
|
296
|
+
}
|
|
297
|
+
if(sw*sh!=0) di += sh * (1 + bpll);
|
|
298
|
+
pass = pass + 1;
|
|
299
|
+
}
|
|
300
|
+
return img;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
UPNG.decode._getBPP = function(out) {
|
|
304
|
+
var noc = [1,null,3,1,2,null,4][out.ctype];
|
|
305
|
+
return noc * out.depth;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
UPNG.decode._filterZero = function(data, out, off, w, h)
|
|
309
|
+
{
|
|
310
|
+
var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;
|
|
311
|
+
bpp = Math.ceil(bpp/8);
|
|
312
|
+
|
|
313
|
+
var i=0, di=1, type=data[off], x=0;
|
|
314
|
+
|
|
315
|
+
if(type>1) data[off]=[0,0,1][type-2];
|
|
316
|
+
if(type==3) for(x=bpp; x<bpl; x++) data[x+1] = (data[x+1] + (data[x+1-bpp]>>>1) )&255;
|
|
317
|
+
|
|
318
|
+
for(var y=0; y<h; y++) {
|
|
319
|
+
i = off+y*bpl; di = i+y+1;
|
|
320
|
+
type = data[di-1]; x=0;
|
|
321
|
+
|
|
322
|
+
if (type==0) for(; x<bpl; x++) data[i+x] = data[di+x];
|
|
323
|
+
else if(type==1) { for(; x<bpp; x++) data[i+x] = data[di+x];
|
|
324
|
+
for(; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpp]); }
|
|
325
|
+
else if(type==2) { for(; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpl]); }
|
|
326
|
+
else if(type==3) { for(; x<bpp; x++) data[i+x] = (data[di+x] + ( data[i+x-bpl]>>>1));
|
|
327
|
+
for(; x<bpl; x++) data[i+x] = (data[di+x] + ((data[i+x-bpl]+data[i+x-bpp])>>>1) ); }
|
|
328
|
+
else { for(; x<bpp; x++) data[i+x] = (data[di+x] + paeth(0, data[i+x-bpl], 0));
|
|
329
|
+
for(; x<bpl; x++) data[i+x] = (data[di+x] + paeth(data[i+x-bpp], data[i+x-bpl], data[i+x-bpp-bpl]) ); }
|
|
330
|
+
}
|
|
331
|
+
return data;
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
UPNG.decode._paeth = function(a,b,c)
|
|
335
|
+
{
|
|
336
|
+
var p = a+b-c, pa = (p-a), pb = (p-b), pc = (p-c);
|
|
337
|
+
if (pa*pa <= pb*pb && pa*pa <= pc*pc) return a;
|
|
338
|
+
else if (pb*pb <= pc*pc) return b;
|
|
339
|
+
return c;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
UPNG.decode._IHDR = function(data, offset, out)
|
|
343
|
+
{
|
|
344
|
+
var bin = UPNG._bin;
|
|
345
|
+
out.width = bin.readUint(data, offset); offset += 4;
|
|
346
|
+
out.height = bin.readUint(data, offset); offset += 4;
|
|
347
|
+
out.depth = data[offset]; offset++;
|
|
348
|
+
out.ctype = data[offset]; offset++;
|
|
349
|
+
out.compress = data[offset]; offset++;
|
|
350
|
+
out.filter = data[offset]; offset++;
|
|
351
|
+
out.interlace = data[offset]; offset++;
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
UPNG._bin = {
|
|
355
|
+
nextZero : function(data,p) { while(data[p]!=0) p++; return p; },
|
|
356
|
+
readUshort : function(buff,p) { return (buff[p]<< 8) | buff[p+1]; },
|
|
357
|
+
writeUshort: function(buff,p,n){ buff[p] = (n>>8)&255; buff[p+1] = n&255; },
|
|
358
|
+
readUint : function(buff,p) { return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]); },
|
|
359
|
+
writeUint : function(buff,p,n){ buff[p]=(n>>24)&255; buff[p+1]=(n>>16)&255; buff[p+2]=(n>>8)&255; buff[p+3]=n&255; },
|
|
360
|
+
readASCII : function(buff,p,l){ var s = ""; for(var i=0; i<l; i++) s += String.fromCharCode(buff[p+i]); return s; },
|
|
361
|
+
writeASCII : function(data,p,s){ for(var i=0; i<s.length; i++) data[p+i] = s.charCodeAt(i); },
|
|
362
|
+
readBytes : function(buff,p,l){ var arr = []; for(var i=0; i<l; i++) arr.push(buff[p+i]); return arr; },
|
|
363
|
+
pad : function(n) { return n.length < 2 ? "0" + n : n; },
|
|
364
|
+
readUTF8 : function(buff, p, l) {
|
|
365
|
+
var s = "", ns;
|
|
366
|
+
for(var i=0; i<l; i++) s += "%" + UPNG._bin.pad(buff[p+i].toString(16));
|
|
367
|
+
try { ns = decodeURIComponent(s); }
|
|
368
|
+
catch(e) { return UPNG._bin.readASCII(buff, p, l); }
|
|
369
|
+
return ns;
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
UPNG._copyTile = function(sb, sw, sh, tb, tw, th, xoff, yoff, mode)
|
|
373
|
+
{
|
|
374
|
+
var w = Math.min(sw,tw), h = Math.min(sh,th);
|
|
375
|
+
var si=0, ti=0;
|
|
376
|
+
for(var y=0; y<h; y++)
|
|
377
|
+
for(var x=0; x<w; x++)
|
|
378
|
+
{
|
|
379
|
+
if(xoff>=0 && yoff>=0) { si = (y*sw+x)<<2; ti = (( yoff+y)*tw+xoff+x)<<2; }
|
|
380
|
+
else { si = ((-yoff+y)*sw-xoff+x)<<2; ti = (y*tw+x)<<2; }
|
|
381
|
+
|
|
382
|
+
if (mode==0) { tb[ti] = sb[si]; tb[ti+1] = sb[si+1]; tb[ti+2] = sb[si+2]; tb[ti+3] = sb[si+3]; }
|
|
383
|
+
else if(mode==1) {
|
|
384
|
+
var fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa;
|
|
385
|
+
var ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba;
|
|
386
|
+
|
|
387
|
+
var ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa);
|
|
388
|
+
tb[ti+3] = 255*oa;
|
|
389
|
+
tb[ti+0] = (fr+br*ifa)*ioa;
|
|
390
|
+
tb[ti+1] = (fg+bg*ifa)*ioa;
|
|
391
|
+
tb[ti+2] = (fb+bb*ifa)*ioa;
|
|
392
|
+
}
|
|
393
|
+
else if(mode==2){ // copy only differences, otherwise zero
|
|
394
|
+
var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2];
|
|
395
|
+
var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2];
|
|
396
|
+
if(fa==ba && fr==br && fg==bg && fb==bb) { tb[ti]=0; tb[ti+1]=0; tb[ti+2]=0; tb[ti+3]=0; }
|
|
397
|
+
else { tb[ti]=fr; tb[ti+1]=fg; tb[ti+2]=fb; tb[ti+3]=fa; }
|
|
398
|
+
}
|
|
399
|
+
else if(mode==3){ // check if can be blended
|
|
400
|
+
var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2];
|
|
401
|
+
var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2];
|
|
402
|
+
if(fa==ba && fr==br && fg==bg && fb==bb) continue;
|
|
403
|
+
//if(fa!=255 && ba!=0) return false;
|
|
404
|
+
if(fa<220 && ba>20) return false;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return true;
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
UPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte)
|
|
414
|
+
{
|
|
415
|
+
if(ps==null) ps=0;
|
|
416
|
+
if(forbidPlte==null) forbidPlte = false;
|
|
417
|
+
|
|
418
|
+
var nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);
|
|
419
|
+
UPNG.encode.compressPNG(nimg, -1);
|
|
420
|
+
|
|
421
|
+
return UPNG.encode._main(nimg, w, h, dels, tabs);
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
UPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) {
|
|
425
|
+
var nimg = { ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4), depth: depth, frames: [] };
|
|
426
|
+
var bipp = (cc+ac)*depth, bipl = bipp * w;
|
|
427
|
+
for(var i=0; i<bufs.length; i++)
|
|
428
|
+
nimg.frames.push({ rect:{x:0,y:0,width:w,height:h}, img:new Uint8Array(bufs[i]), blend:0, dispose:1, bpp:Math.ceil(bipp/8), bpl:Math.ceil(bipl/8) });
|
|
429
|
+
|
|
430
|
+
UPNG.encode.compressPNG(nimg, 0, true);
|
|
431
|
+
|
|
432
|
+
var out = UPNG.encode._main(nimg, w, h, dels, tabs);
|
|
433
|
+
return out;
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
UPNG.encode._main = function(nimg, w, h, dels, tabs) {
|
|
437
|
+
if(tabs==null) tabs={};
|
|
438
|
+
var crc = UPNG.crc.crc, wUi = UPNG._bin.writeUint, wUs = UPNG._bin.writeUshort, wAs = UPNG._bin.writeASCII;
|
|
439
|
+
var offset = 8, anim = nimg.frames.length>1, pltAlpha = false;
|
|
440
|
+
|
|
441
|
+
var leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0);
|
|
442
|
+
if(tabs["sRGB"]!=null) leng += 8+1+4;
|
|
443
|
+
if(tabs["pHYs"]!=null) leng += 8+9+4;
|
|
444
|
+
if(nimg.ctype==3) {
|
|
445
|
+
var dl = nimg.plte.length;
|
|
446
|
+
for(var i=0; i<dl; i++) if((nimg.plte[i]>>>24)!=255) pltAlpha = true;
|
|
447
|
+
leng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0);
|
|
448
|
+
}
|
|
449
|
+
for(var j=0; j<nimg.frames.length; j++)
|
|
450
|
+
{
|
|
451
|
+
var fr = nimg.frames[j];
|
|
452
|
+
if(anim) leng += 38;
|
|
453
|
+
leng += fr.cimg.length + 12;
|
|
454
|
+
if(j!=0) leng+=4;
|
|
455
|
+
}
|
|
456
|
+
leng += 12;
|
|
457
|
+
|
|
458
|
+
var data = new Uint8Array(leng);
|
|
459
|
+
var wr=[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
|
|
460
|
+
for(var i=0; i<8; i++) data[i]=wr[i];
|
|
461
|
+
|
|
462
|
+
wUi(data,offset, 13); offset+=4;
|
|
463
|
+
wAs(data,offset,"IHDR"); offset+=4;
|
|
464
|
+
wUi(data,offset,w); offset+=4;
|
|
465
|
+
wUi(data,offset,h); offset+=4;
|
|
466
|
+
data[offset] = nimg.depth; offset++; // depth
|
|
467
|
+
data[offset] = nimg.ctype; offset++; // ctype
|
|
468
|
+
data[offset] = 0; offset++; // compress
|
|
469
|
+
data[offset] = 0; offset++; // filter
|
|
470
|
+
data[offset] = 0; offset++; // interlace
|
|
471
|
+
wUi(data,offset,crc(data,offset-17,17)); offset+=4; // crc
|
|
472
|
+
|
|
473
|
+
// 13 bytes to say, that it is sRGB
|
|
474
|
+
if(tabs["sRGB"]!=null) {
|
|
475
|
+
wUi(data,offset, 1); offset+=4;
|
|
476
|
+
wAs(data,offset,"sRGB"); offset+=4;
|
|
477
|
+
data[offset] = tabs["sRGB"]; offset++;
|
|
478
|
+
wUi(data,offset,crc(data,offset-5,5)); offset+=4; // crc
|
|
479
|
+
}
|
|
480
|
+
if(tabs["pHYs"]!=null) {
|
|
481
|
+
wUi(data,offset, 9); offset+=4;
|
|
482
|
+
wAs(data,offset,"pHYs"); offset+=4;
|
|
483
|
+
wUi(data,offset, tabs["pHYs"][0]); offset+=4;
|
|
484
|
+
wUi(data,offset, tabs["pHYs"][1]); offset+=4;
|
|
485
|
+
data[offset]=tabs["pHYs"][2]; offset++;
|
|
486
|
+
wUi(data,offset,crc(data,offset-13,13)); offset+=4; // crc
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
if(anim) {
|
|
490
|
+
wUi(data,offset, 8); offset+=4;
|
|
491
|
+
wAs(data,offset,"acTL"); offset+=4;
|
|
492
|
+
wUi(data,offset, nimg.frames.length); offset+=4;
|
|
493
|
+
wUi(data,offset, tabs["loop"]!=null?tabs["loop"]:0); offset+=4;
|
|
494
|
+
wUi(data,offset,crc(data,offset-12,12)); offset+=4; // crc
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
if(nimg.ctype==3) {
|
|
498
|
+
var dl = nimg.plte.length;
|
|
499
|
+
wUi(data,offset, dl*3); offset+=4;
|
|
500
|
+
wAs(data,offset,"PLTE"); offset+=4;
|
|
501
|
+
for(var i=0; i<dl; i++){
|
|
502
|
+
var ti=i*3, c=nimg.plte[i], r=(c)&255, g=(c>>>8)&255, b=(c>>>16)&255;
|
|
503
|
+
data[offset+ti+0]=r; data[offset+ti+1]=g; data[offset+ti+2]=b;
|
|
504
|
+
}
|
|
505
|
+
offset+=dl*3;
|
|
506
|
+
wUi(data,offset,crc(data,offset-dl*3-4,dl*3+4)); offset+=4; // crc
|
|
507
|
+
|
|
508
|
+
if(pltAlpha) {
|
|
509
|
+
wUi(data,offset, dl); offset+=4;
|
|
510
|
+
wAs(data,offset,"tRNS"); offset+=4;
|
|
511
|
+
for(var i=0; i<dl; i++) data[offset+i]=(nimg.plte[i]>>>24)&255;
|
|
512
|
+
offset+=dl;
|
|
513
|
+
wUi(data,offset,crc(data,offset-dl-4,dl+4)); offset+=4; // crc
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
var fi = 0;
|
|
518
|
+
for(var j=0; j<nimg.frames.length; j++)
|
|
519
|
+
{
|
|
520
|
+
var fr = nimg.frames[j];
|
|
521
|
+
if(anim) {
|
|
522
|
+
wUi(data, offset, 26); offset+=4;
|
|
523
|
+
wAs(data, offset,"fcTL"); offset+=4;
|
|
524
|
+
wUi(data, offset, fi++); offset+=4;
|
|
525
|
+
wUi(data, offset, fr.rect.width ); offset+=4;
|
|
526
|
+
wUi(data, offset, fr.rect.height); offset+=4;
|
|
527
|
+
wUi(data, offset, fr.rect.x); offset+=4;
|
|
528
|
+
wUi(data, offset, fr.rect.y); offset+=4;
|
|
529
|
+
wUs(data, offset, dels[j]); offset+=2;
|
|
530
|
+
wUs(data, offset, 1000); offset+=2;
|
|
531
|
+
data[offset] = fr.dispose; offset++; // dispose
|
|
532
|
+
data[offset] = fr.blend ; offset++; // blend
|
|
533
|
+
wUi(data,offset,crc(data,offset-30,30)); offset+=4; // crc
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
var imgd = fr.cimg, dl = imgd.length;
|
|
537
|
+
wUi(data,offset, dl+(j==0?0:4)); offset+=4;
|
|
538
|
+
var ioff = offset;
|
|
539
|
+
wAs(data,offset,(j==0)?"IDAT":"fdAT"); offset+=4;
|
|
540
|
+
if(j!=0) { wUi(data, offset, fi++); offset+=4; }
|
|
541
|
+
data.set(imgd,offset);
|
|
542
|
+
offset += dl;
|
|
543
|
+
wUi(data,offset,crc(data,ioff,offset-ioff)); offset+=4; // crc
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
wUi(data,offset, 0); offset+=4;
|
|
547
|
+
wAs(data,offset,"IEND"); offset+=4;
|
|
548
|
+
wUi(data,offset,crc(data,offset-4,4)); offset+=4; // crc
|
|
549
|
+
|
|
550
|
+
return data.buffer;
|
|
551
|
+
};
|
|
552
|
+
|
|
553
|
+
UPNG.encode.compressPNG = function(out, filter, levelZero) {
|
|
554
|
+
for(var i=0; i<out.frames.length; i++) {
|
|
555
|
+
var frm = out.frames[i]; frm.rect.width; var nh=frm.rect.height;
|
|
556
|
+
var fdata = new Uint8Array(nh*frm.bpl+nh);
|
|
557
|
+
frm.cimg = UPNG.encode._filterZero(frm.img,nh,frm.bpp,frm.bpl,fdata, filter, levelZero);
|
|
558
|
+
}
|
|
559
|
+
};
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
UPNG.encode.compress = function(bufs, w, h, ps, prms) // prms: onlyBlend, minBits, forbidPlte
|
|
564
|
+
{
|
|
565
|
+
//var time = Date.now();
|
|
566
|
+
var onlyBlend = prms[0], evenCrd = prms[1], forbidPrev = prms[2], minBits = prms[3], forbidPlte = prms[4];
|
|
567
|
+
|
|
568
|
+
var ctype = 6, depth = 8, alphaAnd=255;
|
|
569
|
+
|
|
570
|
+
for(var j=0; j<bufs.length; j++) { // when not quantized, other frames can contain colors, that are not in an initial frame
|
|
571
|
+
var img = new Uint8Array(bufs[j]), ilen = img.length;
|
|
572
|
+
for(var i=0; i<ilen; i+=4) alphaAnd &= img[i+3];
|
|
573
|
+
}
|
|
574
|
+
var gotAlpha = (alphaAnd!=255);
|
|
575
|
+
|
|
576
|
+
//console.log("alpha check", Date.now()-time); time = Date.now();
|
|
577
|
+
|
|
578
|
+
//var brute = gotAlpha && forGIF; // brute : frames can only be copied, not "blended"
|
|
579
|
+
var frms = UPNG.encode.framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev);
|
|
580
|
+
//console.log("framize", Date.now()-time); time = Date.now();
|
|
581
|
+
|
|
582
|
+
var cmap={}, plte=[], inds=[];
|
|
583
|
+
|
|
584
|
+
if(ps!=0) {
|
|
585
|
+
var nbufs = []; for(var i=0; i<frms.length; i++) nbufs.push(frms[i].img.buffer);
|
|
586
|
+
|
|
587
|
+
var abuf = UPNG.encode.concatRGBA(nbufs), qres = UPNG.quantize(abuf, ps);
|
|
588
|
+
var cof = 0, bb = new Uint8Array(qres.abuf);
|
|
589
|
+
for(var i=0; i<frms.length; i++) { var ti=frms[i].img, bln=ti.length; inds.push(new Uint8Array(qres.inds.buffer, cof>>2, bln>>2));
|
|
590
|
+
for(var j=0; j<bln; j+=4) { ti[j]=bb[cof+j]; ti[j+1]=bb[cof+j+1]; ti[j+2]=bb[cof+j+2]; ti[j+3]=bb[cof+j+3]; } cof+=bln; }
|
|
591
|
+
|
|
592
|
+
for(var i=0; i<qres.plte.length; i++) plte.push(qres.plte[i].est.rgba);
|
|
593
|
+
//console.log("quantize", Date.now()-time); time = Date.now();
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
// what if ps==0, but there are <=256 colors? we still need to detect, if the palette could be used
|
|
597
|
+
for(var j=0; j<frms.length; j++) { // when not quantized, other frames can contain colors, that are not in an initial frame
|
|
598
|
+
var frm = frms[j], img32 = new Uint32Array(frm.img.buffer), nw=frm.rect.width, ilen = img32.length;
|
|
599
|
+
var ind = new Uint8Array(ilen); inds.push(ind);
|
|
600
|
+
for(var i=0; i<ilen; i++) {
|
|
601
|
+
var c = img32[i];
|
|
602
|
+
if (i!=0 && c==img32[i- 1]) ind[i]=ind[i-1];
|
|
603
|
+
else if(i>nw && c==img32[i-nw]) ind[i]=ind[i-nw];
|
|
604
|
+
else {
|
|
605
|
+
var cmc = cmap[c];
|
|
606
|
+
if(cmc==null) { cmap[c]=cmc=plte.length; plte.push(c); if(plte.length>=300) break; }
|
|
607
|
+
ind[i]=cmc;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
//console.log("make palette", Date.now()-time); time = Date.now();
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
var cc=plte.length; //console.log("colors:",cc);
|
|
615
|
+
if(cc<=256 && forbidPlte==false) {
|
|
616
|
+
if(cc<= 2) depth=1; else if(cc<= 4) depth=2; else if(cc<=16) depth=4; else depth=8;
|
|
617
|
+
depth = Math.max(depth, minBits);
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
for(var j=0; j<frms.length; j++)
|
|
621
|
+
{
|
|
622
|
+
var frm = frms[j]; frm.rect.x; frm.rect.y; var nw=frm.rect.width, nh=frm.rect.height;
|
|
623
|
+
var cimg = frm.img; new Uint32Array(cimg.buffer);
|
|
624
|
+
var bpl = 4*nw, bpp=4;
|
|
625
|
+
if(cc<=256 && forbidPlte==false) {
|
|
626
|
+
bpl = Math.ceil(depth*nw/8);
|
|
627
|
+
var nimg = new Uint8Array(bpl*nh);
|
|
628
|
+
var inj = inds[j];
|
|
629
|
+
for(var y=0; y<nh; y++) { var i=y*bpl, ii=y*nw;
|
|
630
|
+
if (depth==8) for(var x=0; x<nw; x++) nimg[i+(x) ] = (inj[ii+x] );
|
|
631
|
+
else if(depth==4) for(var x=0; x<nw; x++) nimg[i+(x>>1)] |= (inj[ii+x]<<(4-(x&1)*4));
|
|
632
|
+
else if(depth==2) for(var x=0; x<nw; x++) nimg[i+(x>>2)] |= (inj[ii+x]<<(6-(x&3)*2));
|
|
633
|
+
else if(depth==1) for(var x=0; x<nw; x++) nimg[i+(x>>3)] |= (inj[ii+x]<<(7-(x&7)*1));
|
|
634
|
+
}
|
|
635
|
+
cimg=nimg; ctype=3; bpp=1;
|
|
636
|
+
}
|
|
637
|
+
else if(gotAlpha==false && frms.length==1) { // some next "reduced" frames may contain alpha for blending
|
|
638
|
+
var nimg = new Uint8Array(nw*nh*3), area=nw*nh;
|
|
639
|
+
for(var i=0; i<area; i++) { var ti=i*3, qi=i*4; nimg[ti]=cimg[qi]; nimg[ti+1]=cimg[qi+1]; nimg[ti+2]=cimg[qi+2]; }
|
|
640
|
+
cimg=nimg; ctype=2; bpp=3; bpl=3*nw;
|
|
641
|
+
}
|
|
642
|
+
frm.img=cimg; frm.bpl=bpl; frm.bpp=bpp;
|
|
643
|
+
}
|
|
644
|
+
//console.log("colors => palette indices", Date.now()-time); time = Date.now();
|
|
645
|
+
|
|
646
|
+
return {ctype:ctype, depth:depth, plte:plte, frames:frms };
|
|
647
|
+
};
|
|
648
|
+
UPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) {
|
|
649
|
+
/* DISPOSE
|
|
650
|
+
- 0 : no change
|
|
651
|
+
- 1 : clear to transparent
|
|
652
|
+
- 2 : retstore to content before rendering (previous frame disposed)
|
|
653
|
+
BLEND
|
|
654
|
+
- 0 : replace
|
|
655
|
+
- 1 : blend
|
|
656
|
+
*/
|
|
657
|
+
var frms = [];
|
|
658
|
+
for(var j=0; j<bufs.length; j++) {
|
|
659
|
+
var cimg = new Uint8Array(bufs[j]), cimg32 = new Uint32Array(cimg.buffer);
|
|
660
|
+
var nimg;
|
|
661
|
+
|
|
662
|
+
var nx=0, ny=0, nw=w, nh=h, blend=alwaysBlend?1:0;
|
|
663
|
+
if(j!=0) {
|
|
664
|
+
var tlim = (forbidPrev || alwaysBlend || j==1 || frms[j-2].dispose!=0)?1:2, tstp = 0, tarea = 1e9;
|
|
665
|
+
for(var it=0; it<tlim; it++)
|
|
666
|
+
{
|
|
667
|
+
var pimg = new Uint8Array(bufs[j-1-it]), p32 = new Uint32Array(bufs[j-1-it]);
|
|
668
|
+
var mix=w,miy=h,max=-1,may=-1;
|
|
669
|
+
for(var y=0; y<h; y++) for(var x=0; x<w; x++) {
|
|
670
|
+
var i = y*w+x;
|
|
671
|
+
if(cimg32[i]!=p32[i]) {
|
|
672
|
+
if(x<mix) mix=x; if(x>max) max=x;
|
|
673
|
+
if(y<miy) miy=y; if(y>may) may=y;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
if(max==-1) mix=miy=max=may=0;
|
|
677
|
+
if(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; }
|
|
678
|
+
var sarea = (max-mix+1)*(may-miy+1);
|
|
679
|
+
if(sarea<tarea) {
|
|
680
|
+
tarea = sarea; tstp = it;
|
|
681
|
+
nx = mix; ny = miy; nw = max-mix+1; nh = may-miy+1;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
// alwaysBlend: pokud zjistím, že blendit nelze, nastavím předchozímu snímku dispose=1. Zajistím, aby obsahoval můj obdélník.
|
|
686
|
+
var pimg = new Uint8Array(bufs[j-1-tstp]);
|
|
687
|
+
if(tstp==1) frms[j-1].dispose = 2;
|
|
688
|
+
|
|
689
|
+
nimg = new Uint8Array(nw*nh*4);
|
|
690
|
+
UPNG._copyTile(pimg,w,h, nimg,nw,nh, -nx,-ny, 0);
|
|
691
|
+
|
|
692
|
+
blend = UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 3) ? 1 : 0;
|
|
693
|
+
if(blend==1) UPNG.encode._prepareDiff(cimg,w,h,nimg,{x:nx,y:ny,width:nw,height:nh});
|
|
694
|
+
else UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 0);
|
|
695
|
+
//UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, blend==1?2:0);
|
|
696
|
+
}
|
|
697
|
+
else nimg = cimg.slice(0); // img may be rewritten further ... don't rewrite input
|
|
698
|
+
|
|
699
|
+
frms.push({rect:{x:nx,y:ny,width:nw,height:nh}, img:nimg, blend:blend, dispose:0});
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
if(alwaysBlend) for(var j=0; j<frms.length; j++) {
|
|
704
|
+
var frm = frms[j]; if(frm.blend==1) continue;
|
|
705
|
+
var r0 = frm.rect, r1 = frms[j-1].rect;
|
|
706
|
+
var miX = Math.min(r0.x, r1.x), miY = Math.min(r0.y, r1.y);
|
|
707
|
+
var maX = Math.max(r0.x+r0.width, r1.x+r1.width), maY = Math.max(r0.y+r0.height, r1.y+r1.height);
|
|
708
|
+
var r = {x:miX, y:miY, width:maX-miX, height:maY-miY};
|
|
709
|
+
|
|
710
|
+
frms[j-1].dispose = 1;
|
|
711
|
+
if(j-1!=0)
|
|
712
|
+
UPNG.encode._updateFrame(bufs, w,h,frms, j-1,r, evenCrd);
|
|
713
|
+
UPNG.encode._updateFrame(bufs, w,h,frms, j ,r, evenCrd);
|
|
714
|
+
}
|
|
715
|
+
var area = 0;
|
|
716
|
+
if(bufs.length!=1) for(var i=0; i<frms.length; i++) {
|
|
717
|
+
var frm = frms[i];
|
|
718
|
+
area += frm.rect.width*frm.rect.height;
|
|
719
|
+
//if(i==0 || frm.blend!=1) continue;
|
|
720
|
+
//var ob = new Uint8Array(
|
|
721
|
+
//console.log(frm.blend, frm.dispose, frm.rect);
|
|
722
|
+
}
|
|
723
|
+
//if(area!=0) console.log(area);
|
|
724
|
+
return frms;
|
|
725
|
+
};
|
|
726
|
+
UPNG.encode._updateFrame = function(bufs, w,h, frms, i, r, evenCrd) {
|
|
727
|
+
var U8 = Uint8Array, U32 = Uint32Array;
|
|
728
|
+
var pimg = new U8(bufs[i-1]), pimg32 = new U32(bufs[i-1]), nimg = i+1<bufs.length ? new U8(bufs[i+1]):null;
|
|
729
|
+
var cimg = new U8(bufs[i]), cimg32 = new U32(cimg.buffer);
|
|
730
|
+
|
|
731
|
+
var mix=w,miy=h,max=-1,may=-1;
|
|
732
|
+
for(var y=0; y<r.height; y++) for(var x=0; x<r.width; x++) {
|
|
733
|
+
var cx = r.x+x, cy = r.y+y;
|
|
734
|
+
var j = cy*w+cx, cc = cimg32[j];
|
|
735
|
+
// no need to draw transparency, or to dispose it. Or, if writing the same color and the next one does not need transparency.
|
|
736
|
+
if(cc==0 || (frms[i-1].dispose==0 && pimg32[j]==cc && (nimg==null || nimg[j*4+3]!=0))/**/) ;
|
|
737
|
+
else {
|
|
738
|
+
if(cx<mix) mix=cx; if(cx>max) max=cx;
|
|
739
|
+
if(cy<miy) miy=cy; if(cy>may) may=cy;
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
if(max==-1) mix=miy=max=may=0;
|
|
743
|
+
if(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; }
|
|
744
|
+
r = {x:mix, y:miy, width:max-mix+1, height:may-miy+1};
|
|
745
|
+
|
|
746
|
+
var fr = frms[i]; fr.rect = r; fr.blend = 1; fr.img = new Uint8Array(r.width*r.height*4);
|
|
747
|
+
if(frms[i-1].dispose==0) {
|
|
748
|
+
UPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);
|
|
749
|
+
UPNG.encode._prepareDiff(cimg,w,h,fr.img,r);
|
|
750
|
+
//UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2);
|
|
751
|
+
}
|
|
752
|
+
else
|
|
753
|
+
UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);
|
|
754
|
+
};
|
|
755
|
+
UPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) {
|
|
756
|
+
UPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2);
|
|
757
|
+
/*
|
|
758
|
+
var n32 = new Uint32Array(nimg.buffer);
|
|
759
|
+
var og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer);
|
|
760
|
+
UPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0);
|
|
761
|
+
for(var i=4; i<nimg.length; i+=4) {
|
|
762
|
+
if(nimg[i-1]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)-1]) {
|
|
763
|
+
n32[i>>>2]=o32[i>>>2];
|
|
764
|
+
//var j = i, c=p32[(i>>>2)-1];
|
|
765
|
+
//while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; }
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
for(var i=nimg.length-8; i>0; i-=4) {
|
|
769
|
+
if(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) {
|
|
770
|
+
n32[i>>>2]=o32[i>>>2];
|
|
771
|
+
//var j = i, c=p32[(i>>>2)-1];
|
|
772
|
+
//while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; }
|
|
773
|
+
}
|
|
774
|
+
}*/
|
|
775
|
+
};
|
|
776
|
+
|
|
777
|
+
UPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero)
|
|
778
|
+
{
|
|
779
|
+
var fls = [], ftry=[0,1,2,3,4];
|
|
780
|
+
if (filter!=-1) ftry=[filter];
|
|
781
|
+
else if(h*bpl>500000 || bpp==1) ftry=[0];
|
|
782
|
+
var opts; if(levelZero) opts={level:0};
|
|
783
|
+
|
|
784
|
+
var CMPR = (levelZero && UZIP!=null) ? UZIP : index.default;
|
|
785
|
+
|
|
786
|
+
for(var i=0; i<ftry.length; i++) {
|
|
787
|
+
for(var y=0; y<h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, ftry[i]);
|
|
788
|
+
//var nimg = new Uint8Array(data.length);
|
|
789
|
+
//var sz = UZIP.F.deflate(data, nimg); fls.push(nimg.slice(0,sz));
|
|
790
|
+
//var dfl = pako["deflate"](data), dl=dfl.length-4;
|
|
791
|
+
//var crc = (dfl[dl+3]<<24)|(dfl[dl+2]<<16)|(dfl[dl+1]<<8)|(dfl[dl+0]<<0);
|
|
792
|
+
//console.log(crc, UZIP.adler(data,2,data.length-6));
|
|
793
|
+
fls.push(CMPR["deflate"](data,opts));
|
|
794
|
+
}
|
|
795
|
+
var ti, tsize=1e9;
|
|
796
|
+
for(var i=0; i<fls.length; i++) if(fls[i].length<tsize) { ti=i; tsize=fls[i].length; }
|
|
797
|
+
return fls[ti];
|
|
798
|
+
};
|
|
799
|
+
UPNG.encode._filterLine = function(data, img, y, bpl, bpp, type)
|
|
800
|
+
{
|
|
801
|
+
var i = y*bpl, di = i+y, paeth = UPNG.decode._paeth;
|
|
802
|
+
data[di]=type; di++;
|
|
803
|
+
|
|
804
|
+
if(type==0) {
|
|
805
|
+
if(bpl<500) for(var x=0; x<bpl; x++) data[di+x] = img[i+x];
|
|
806
|
+
else data.set(new Uint8Array(img.buffer,i,bpl),di);
|
|
807
|
+
}
|
|
808
|
+
else if(type==1) {
|
|
809
|
+
for(var x= 0; x<bpp; x++) data[di+x] = img[i+x];
|
|
810
|
+
for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]-img[i+x-bpp]+256)&255;
|
|
811
|
+
}
|
|
812
|
+
else if(y==0) {
|
|
813
|
+
for(var x= 0; x<bpp; x++) data[di+x] = img[i+x];
|
|
814
|
+
|
|
815
|
+
if(type==2) for(var x=bpp; x<bpl; x++) data[di+x] = img[i+x];
|
|
816
|
+
if(type==3) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - (img[i+x-bpp]>>1) +256)&255;
|
|
817
|
+
if(type==4) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - paeth(img[i+x-bpp], 0, 0) +256)&255;
|
|
818
|
+
}
|
|
819
|
+
else {
|
|
820
|
+
if(type==2) { for(var x= 0; x<bpl; x++) data[di+x] = (img[i+x]+256 - img[i+x-bpl])&255; }
|
|
821
|
+
if(type==3) { for(var x= 0; x<bpp; x++) data[di+x] = (img[i+x]+256 - (img[i+x-bpl]>>1))&255;
|
|
822
|
+
for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - ((img[i+x-bpl]+img[i+x-bpp])>>1))&255; }
|
|
823
|
+
if(type==4) { for(var x= 0; x<bpp; x++) data[di+x] = (img[i+x]+256 - paeth(0, img[i+x-bpl], 0))&255;
|
|
824
|
+
for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - paeth(img[i+x-bpp], img[i+x-bpl], img[i+x-bpp-bpl]))&255; }
|
|
825
|
+
}
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
UPNG.crc = {
|
|
829
|
+
table : ( function() {
|
|
830
|
+
var tab = new Uint32Array(256);
|
|
831
|
+
for (var n=0; n<256; n++) {
|
|
832
|
+
var c = n;
|
|
833
|
+
for (var k=0; k<8; k++) {
|
|
834
|
+
if (c & 1) c = 0xedb88320 ^ (c >>> 1);
|
|
835
|
+
else c = c >>> 1;
|
|
836
|
+
}
|
|
837
|
+
tab[n] = c; }
|
|
838
|
+
return tab; })(),
|
|
839
|
+
update : function(c, buf, off, len) {
|
|
840
|
+
for (var i=0; i<len; i++) c = UPNG.crc.table[(c ^ buf[off+i]) & 0xff] ^ (c >>> 8);
|
|
841
|
+
return c;
|
|
842
|
+
},
|
|
843
|
+
crc : function(b,o,l) { return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; }
|
|
844
|
+
};
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
UPNG.quantize = function(abuf, ps)
|
|
848
|
+
{
|
|
849
|
+
var oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer);
|
|
850
|
+
|
|
851
|
+
var KD = UPNG.quantize.getKDtree(nimg, ps);
|
|
852
|
+
var root = KD[0], leafs = KD[1];
|
|
853
|
+
|
|
854
|
+
UPNG.quantize.planeDst;
|
|
855
|
+
var sb = oimg, tb = nimg32, len=sb.length;
|
|
856
|
+
|
|
857
|
+
var inds = new Uint8Array(oimg.length>>2);
|
|
858
|
+
for(var i=0; i<len; i+=4) {
|
|
859
|
+
var r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);
|
|
860
|
+
|
|
861
|
+
// exact, but too slow :(
|
|
862
|
+
var nd = UPNG.quantize.getNearest(root, r, g, b, a);
|
|
863
|
+
//var nd = root;
|
|
864
|
+
//while(nd.left) nd = (planeDst(nd.est,r,g,b,a)<=0) ? nd.left : nd.right;
|
|
865
|
+
|
|
866
|
+
inds[i>>2] = nd.ind;
|
|
867
|
+
tb[i>>2] = nd.est.rgba;
|
|
868
|
+
}
|
|
869
|
+
return { abuf:nimg.buffer, inds:inds, plte:leafs };
|
|
870
|
+
};
|
|
871
|
+
|
|
872
|
+
UPNG.quantize.getKDtree = function(nimg, ps, err) {
|
|
873
|
+
if(err==null) err = 0.0001;
|
|
874
|
+
var nimg32 = new Uint32Array(nimg.buffer);
|
|
875
|
+
|
|
876
|
+
var root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null }; // basic statistic, extra statistic
|
|
877
|
+
root.bst = UPNG.quantize.stats( nimg,root.i0, root.i1 ); root.est = UPNG.quantize.estats( root.bst );
|
|
878
|
+
var leafs = [root];
|
|
879
|
+
|
|
880
|
+
while(leafs.length<ps)
|
|
881
|
+
{
|
|
882
|
+
var maxL = 0, mi=0;
|
|
883
|
+
for(var i=0; i<leafs.length; i++) if(leafs[i].est.L > maxL) { maxL=leafs[i].est.L; mi=i; }
|
|
884
|
+
if(maxL<err) break;
|
|
885
|
+
var node = leafs[mi];
|
|
886
|
+
|
|
887
|
+
var s0 = UPNG.quantize.splitPixels(nimg,nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);
|
|
888
|
+
var s0wrong = (node.i0>=s0 || node.i1<=s0);
|
|
889
|
+
//console.log(maxL, leafs.length, mi);
|
|
890
|
+
if(s0wrong) { node.est.L=0; continue; }
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
var ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null }; ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 );
|
|
894
|
+
ln.est = UPNG.quantize.estats( ln.bst );
|
|
895
|
+
var rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null }; rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N};
|
|
896
|
+
for(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i];
|
|
897
|
+
for(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i];
|
|
898
|
+
rn.est = UPNG.quantize.estats( rn.bst );
|
|
899
|
+
|
|
900
|
+
node.left = ln; node.right = rn;
|
|
901
|
+
leafs[mi]=ln; leafs.push(rn);
|
|
902
|
+
}
|
|
903
|
+
leafs.sort(function(a,b) { return b.bst.N-a.bst.N; });
|
|
904
|
+
for(var i=0; i<leafs.length; i++) leafs[i].ind=i;
|
|
905
|
+
return [root, leafs];
|
|
906
|
+
};
|
|
907
|
+
|
|
908
|
+
UPNG.quantize.getNearest = function(nd, r,g,b,a)
|
|
909
|
+
{
|
|
910
|
+
if(nd.left==null) { nd.tdst = UPNG.quantize.dist(nd.est.q,r,g,b,a); return nd; }
|
|
911
|
+
var planeDst = UPNG.quantize.planeDst(nd.est,r,g,b,a);
|
|
912
|
+
|
|
913
|
+
var node0 = nd.left, node1 = nd.right;
|
|
914
|
+
if(planeDst>0) { node0=nd.right; node1=nd.left; }
|
|
915
|
+
|
|
916
|
+
var ln = UPNG.quantize.getNearest(node0, r,g,b,a);
|
|
917
|
+
if(ln.tdst<=planeDst*planeDst) return ln;
|
|
918
|
+
var rn = UPNG.quantize.getNearest(node1, r,g,b,a);
|
|
919
|
+
return rn.tdst<ln.tdst ? rn : ln;
|
|
920
|
+
};
|
|
921
|
+
UPNG.quantize.planeDst = function(est, r,g,b,a) { var e = est.e; return e[0]*r + e[1]*g + e[2]*b + e[3]*a - est.eMq; };
|
|
922
|
+
UPNG.quantize.dist = function(q, r,g,b,a) { var d0=r-q[0], d1=g-q[1], d2=b-q[2], d3=a-q[3]; return d0*d0+d1*d1+d2*d2+d3*d3; };
|
|
923
|
+
|
|
924
|
+
UPNG.quantize.splitPixels = function(nimg, nimg32, i0, i1, e, eMq)
|
|
925
|
+
{
|
|
926
|
+
var vecDot = UPNG.quantize.vecDot;
|
|
927
|
+
i1-=4;
|
|
928
|
+
while(i0<i1)
|
|
929
|
+
{
|
|
930
|
+
while(vecDot(nimg, i0, e)<=eMq) i0+=4;
|
|
931
|
+
while(vecDot(nimg, i1, e)> eMq) i1-=4;
|
|
932
|
+
if(i0>=i1) break;
|
|
933
|
+
|
|
934
|
+
var t = nimg32[i0>>2]; nimg32[i0>>2] = nimg32[i1>>2]; nimg32[i1>>2]=t;
|
|
935
|
+
|
|
936
|
+
i0+=4; i1-=4;
|
|
937
|
+
}
|
|
938
|
+
while(vecDot(nimg, i0, e)>eMq) i0-=4;
|
|
939
|
+
return i0+4;
|
|
940
|
+
};
|
|
941
|
+
UPNG.quantize.vecDot = function(nimg, i, e)
|
|
942
|
+
{
|
|
943
|
+
return nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3];
|
|
944
|
+
};
|
|
945
|
+
UPNG.quantize.stats = function(nimg, i0, i1){
|
|
946
|
+
var R = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0];
|
|
947
|
+
var m = [0,0,0,0];
|
|
948
|
+
var N = (i1-i0)>>2;
|
|
949
|
+
for(var i=i0; i<i1; i+=4)
|
|
950
|
+
{
|
|
951
|
+
var r = nimg[i]*(1/255), g = nimg[i+1]*(1/255), b = nimg[i+2]*(1/255), a = nimg[i+3]*(1/255);
|
|
952
|
+
//var r = nimg[i], g = nimg[i+1], b = nimg[i+2], a = nimg[i+3];
|
|
953
|
+
m[0]+=r; m[1]+=g; m[2]+=b; m[3]+=a;
|
|
954
|
+
|
|
955
|
+
R[ 0] += r*r; R[ 1] += r*g; R[ 2] += r*b; R[ 3] += r*a;
|
|
956
|
+
R[ 5] += g*g; R[ 6] += g*b; R[ 7] += g*a;
|
|
957
|
+
R[10] += b*b; R[11] += b*a;
|
|
958
|
+
R[15] += a*a;
|
|
959
|
+
}
|
|
960
|
+
R[4]=R[1]; R[8]=R[2]; R[9]=R[6]; R[12]=R[3]; R[13]=R[7]; R[14]=R[11];
|
|
961
|
+
|
|
962
|
+
return {R:R, m:m, N:N};
|
|
963
|
+
};
|
|
964
|
+
UPNG.quantize.estats = function(stats){
|
|
965
|
+
var R = stats.R, m = stats.m, N = stats.N;
|
|
966
|
+
|
|
967
|
+
// when all samples are equal, but N is large (millions), the Rj can be non-zero ( 0.0003.... - precission error)
|
|
968
|
+
var m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], iN = (N==0 ? 0 : 1/N);
|
|
969
|
+
var Rj = [
|
|
970
|
+
R[ 0] - m0*m0*iN, R[ 1] - m0*m1*iN, R[ 2] - m0*m2*iN, R[ 3] - m0*m3*iN,
|
|
971
|
+
R[ 4] - m1*m0*iN, R[ 5] - m1*m1*iN, R[ 6] - m1*m2*iN, R[ 7] - m1*m3*iN,
|
|
972
|
+
R[ 8] - m2*m0*iN, R[ 9] - m2*m1*iN, R[10] - m2*m2*iN, R[11] - m2*m3*iN,
|
|
973
|
+
R[12] - m3*m0*iN, R[13] - m3*m1*iN, R[14] - m3*m2*iN, R[15] - m3*m3*iN
|
|
974
|
+
];
|
|
975
|
+
|
|
976
|
+
var A = Rj, M = UPNG.M4;
|
|
977
|
+
var b = [0.5,0.5,0.5,0.5], mi = 0, tmi = 0;
|
|
978
|
+
|
|
979
|
+
if(N!=0)
|
|
980
|
+
for(var i=0; i<10; i++) {
|
|
981
|
+
b = M.multVec(A, b); tmi = Math.sqrt(M.dot(b,b)); b = M.sml(1/tmi, b);
|
|
982
|
+
if(Math.abs(tmi-mi)<1e-9) break; mi = tmi;
|
|
983
|
+
}
|
|
984
|
+
//b = [0,0,1,0]; mi=N;
|
|
985
|
+
var q = [m0*iN, m1*iN, m2*iN, m3*iN];
|
|
986
|
+
var eMq255 = M.dot(M.sml(255,q),b);
|
|
987
|
+
|
|
988
|
+
return { Cov:Rj, q:q, e:b, L:mi, eMq255:eMq255, eMq : M.dot(b,q),
|
|
989
|
+
rgba: (((Math.round(255*q[3])<<24) | (Math.round(255*q[2])<<16) | (Math.round(255*q[1])<<8) | (Math.round(255*q[0])<<0))>>>0) };
|
|
990
|
+
};
|
|
991
|
+
UPNG.M4 = {
|
|
992
|
+
multVec : function(m,v) {
|
|
993
|
+
return [
|
|
994
|
+
m[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3],
|
|
995
|
+
m[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3],
|
|
996
|
+
m[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3],
|
|
997
|
+
m[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3]
|
|
998
|
+
];
|
|
999
|
+
},
|
|
1000
|
+
dot : function(x,y) { return x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]; },
|
|
1001
|
+
sml : function(a,y) { return [a*y[0],a*y[1],a*y[2],a*y[3]]; }
|
|
1002
|
+
};
|
|
1003
|
+
|
|
1004
|
+
UPNG.encode.concatRGBA = function(bufs) {
|
|
1005
|
+
var tlen = 0;
|
|
1006
|
+
for(var i=0; i<bufs.length; i++) tlen += bufs[i].byteLength;
|
|
1007
|
+
var nimg = new Uint8Array(tlen), noff=0;
|
|
1008
|
+
for(var i=0; i<bufs.length; i++) {
|
|
1009
|
+
var img = new Uint8Array(bufs[i]), il = img.length;
|
|
1010
|
+
for(var j=0; j<il; j+=4) {
|
|
1011
|
+
var r=img[j], g=img[j+1], b=img[j+2], a = img[j+3];
|
|
1012
|
+
if(a==0) r=g=b=0;
|
|
1013
|
+
nimg[noff+j]=r; nimg[noff+j+1]=g; nimg[noff+j+2]=b; nimg[noff+j+3]=a; }
|
|
1014
|
+
noff += il;
|
|
1015
|
+
}
|
|
1016
|
+
return nimg.buffer;
|
|
1017
|
+
};
|
|
1018
|
+
|
|
1019
|
+
exports.default = UPNG;
|