blue-chestnut-solar-expert 0.0.68 → 0.0.70

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.
Files changed (57) hide show
  1. package/dist/stencil-library/{decoder-DNOvLSaS.js → decoder-CuK4bYyT.js} +3 -3
  2. package/dist/stencil-library/{decoder-DNOvLSaS.js.map → decoder-CuK4bYyT.js.map} +1 -1
  3. package/dist/stencil-library/decoder-DO85tL09.js +39 -0
  4. package/dist/stencil-library/decoder-DO85tL09.js.map +1 -0
  5. package/dist/stencil-library/{deflate-0Vdd6-55.js → deflate-B_19Wwe5.js} +3 -3
  6. package/dist/stencil-library/{deflate-0Vdd6-55.js.map → deflate-B_19Wwe5.js.map} +1 -1
  7. package/dist/stencil-library/deflate-BnZRAamW.js +21 -0
  8. package/dist/stencil-library/deflate-BnZRAamW.js.map +1 -0
  9. package/dist/stencil-library/{jpeg-Dd5nnHR5.js → jpeg-BYwBjmYM.js} +3 -3
  10. package/dist/stencil-library/{jpeg-Dd5nnHR5.js.map → jpeg-BYwBjmYM.js.map} +1 -1
  11. package/dist/stencil-library/jpeg-Carqigwf.js +910 -0
  12. package/dist/stencil-library/jpeg-Carqigwf.js.map +1 -0
  13. package/dist/stencil-library/{lerc-7W4E8EBs.js → lerc-BrKFrpOl.js} +3 -3
  14. package/dist/stencil-library/{lerc-7W4E8EBs.js.map → lerc-BrKFrpOl.js.map} +1 -1
  15. package/dist/stencil-library/lerc-C23gVCZY.js +2469 -0
  16. package/dist/stencil-library/lerc-C23gVCZY.js.map +1 -0
  17. package/dist/stencil-library/loading-widget.entry.js +1 -1
  18. package/dist/stencil-library/{lzw--P4c0ZHH.js → lzw-Cv4Jzqw8.js} +3 -3
  19. package/dist/stencil-library/{lzw--P4c0ZHH.js.map → lzw-Cv4Jzqw8.js.map} +1 -1
  20. package/dist/stencil-library/lzw-CyjveJk_.js +144 -0
  21. package/dist/stencil-library/lzw-CyjveJk_.js.map +1 -0
  22. package/dist/stencil-library/{map-draw-Cx9WZoKH.js → map-draw-I6HehGjN.js} +20 -20
  23. package/dist/stencil-library/map-draw-I6HehGjN.js.map +1 -0
  24. package/dist/stencil-library/map-draw-s4wyOrpW.js +25568 -0
  25. package/dist/stencil-library/{map-draw-Cx9WZoKH.js.map → map-draw-s4wyOrpW.js.map} +1 -1
  26. package/dist/stencil-library/map-draw.entry.js +1 -1
  27. package/dist/stencil-library/map-selector.entry.js +3 -3
  28. package/dist/stencil-library/{packbits-X3R_utTs.js → packbits-DYI_WQMn.js} +3 -3
  29. package/dist/stencil-library/{packbits-X3R_utTs.js.map → packbits-DYI_WQMn.js.map} +1 -1
  30. package/dist/stencil-library/packbits-DZ08I0fK.js +39 -0
  31. package/dist/stencil-library/packbits-DZ08I0fK.js.map +1 -0
  32. package/dist/stencil-library/polygon-buttons.entry.js +1 -1
  33. package/dist/stencil-library/polygon-information.entry.js +2 -2
  34. package/dist/stencil-library/{raw-BxukYehy.js → raw-DmgLt5Xw.js} +3 -3
  35. package/dist/stencil-library/{raw-BxukYehy.js.map → raw-DmgLt5Xw.js.map} +1 -1
  36. package/dist/stencil-library/raw-DxHWSwjD.js +20 -0
  37. package/dist/stencil-library/raw-DxHWSwjD.js.map +1 -0
  38. package/dist/stencil-library/settings-modal.entry.js +8 -8
  39. package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -1
  40. package/dist/stencil-library/solar-expert.entry.js +3 -2
  41. package/dist/stencil-library/solar-expert.entry.js.map +1 -1
  42. package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -1
  43. package/dist/stencil-library/solar-system-form.entry.js +38 -36
  44. package/dist/stencil-library/solar-system-form.entry.js.map +1 -1
  45. package/dist/stencil-library/stencil-library.esm.js +1 -1
  46. package/dist/stencil-library/tool-box.entry.js +3 -3
  47. package/dist/stencil-library/tutorial-component.entry.js +3 -3
  48. package/dist/stencil-library/{webimage-CBrfoxHM.js → webimage-DjTbF9dC.js} +3 -3
  49. package/dist/stencil-library/{webimage-CBrfoxHM.js.map → webimage-DjTbF9dC.js.map} +1 -1
  50. package/dist/stencil-library/webimage-DpQLhKY4.js +53 -0
  51. package/dist/stencil-library/webimage-DpQLhKY4.js.map +1 -0
  52. package/dist/types/components/map-draw/map-draw.d.ts +1 -0
  53. package/dist/types/components/solar-expert/solar-expert.d.ts +1 -0
  54. package/dist/types/components/solar-system-form/solar-system-form.d.ts +1 -0
  55. package/dist/types/components.d.ts +6 -0
  56. package/dist/types/utils/api.d.ts +1 -0
  57. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"jpeg-Dd5nnHR5.js","sources":["../../node_modules/geotiff/dist-module/compression/jpeg.js"],"sourcesContent":["import BaseDecoder from './basedecoder.js';\n\n/* -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/*\n Copyright 2011 notmasteryet\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nconst dctZigZag = new Int32Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63,\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896;// sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0;\n const code = [];\n let length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n --length;\n }\n code.push({ children: [], index: 0 });\n\n let p = code[0];\n let q;\n for (let i = 0; i < length; i++) {\n for (let j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction decodeScan(data, initialOffset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successivePrev, successive) {\n const { mcusPerLine, progressive } = frame;\n\n const startOffset = initialOffset;\n let offset = initialOffset;\n let bitsData = 0;\n let bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n const nextByte = data[offset++];\n if (nextByte) {\n throw new Error(`unexpected marker: ${((bitsData << 8) | nextByte).toString(16)}`);\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n let node = tree;\n let bit;\n while ((bit = readBit()) !== null) { // eslint-disable-line no-cond-assign\n node = node[bit];\n if (typeof node === 'number') {\n return node;\n }\n if (typeof node !== 'object') {\n throw new Error('invalid huffman sequence');\n }\n }\n return null;\n }\n function receive(initialLength) {\n let length = initialLength;\n let n = 0;\n while (length > 0) {\n const bit = readBit();\n if (bit === null) {\n return undefined;\n }\n n = (n << 1) | bit;\n --length;\n }\n return n;\n }\n function receiveAndExtend(length) {\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, zz) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.pred += diff;\n zz[0] = component.pred;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n const r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n } else {\n k += r;\n const z = dctZigZag[k];\n zz[z] = receiveAndExtend(s);\n k++;\n }\n }\n }\n function decodeDCFirst(component, zz) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n component.pred += diff;\n zz[0] = component.pred;\n }\n function decodeDCSuccessive(component, zz) {\n zz[0] |= readBit() << successive;\n }\n let eobrun = 0;\n function decodeACFirst(component, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n const r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n } else {\n k += r;\n const z = dctZigZag[k];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n }\n let successiveACState = 0;\n let successiveACNextValue;\n function decodeACSuccessive(component, zz) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n while (k <= e) {\n const z = dctZigZag[k];\n const direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: { // initial state\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new Error('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue; // eslint-disable-line no-continue\n }\n case 1: // skipping r zero items\n case 2:\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n } else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n }\n break;\n default:\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n function decodeMcu(component, decodeFunction, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n const blockRow = (mcuRow * component.v) + row;\n const blockCol = (mcuCol * component.h) + col;\n decodeFunction(component, component.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component, decodeFunction, mcu) {\n const blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n decodeFunction(component, component.blocks[blockRow][blockCol]);\n }\n\n const componentsLength = components.length;\n let component;\n let i;\n let j;\n let k;\n let n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0;\n let marker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n const usedResetInterval = resetInterval || mcuExpected;\n\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < usedResetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < usedResetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n const { h, v } = component;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n\n // If we've reached our expected MCU's, stop decoding\n if (mcu === mcuExpected) {\n break;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker < 0xFF00) {\n throw new Error('marker was not found');\n }\n\n if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\nfunction buildComponentData(frame, component) {\n const lines = [];\n const { blocksPerLine, blocksPerColumn } = component;\n const samplesPerLine = blocksPerLine << 3;\n const R = new Int32Array(64);\n const r = new Uint8Array(64);\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(zz, dataOut, dataIn) {\n const qt = component.quantizationTable;\n let v0;\n let v1;\n let v2;\n let v3;\n let v4;\n let v5;\n let v6;\n let v7;\n let t;\n const p = dataIn;\n let i;\n\n // dequant\n for (i = 0; i < 64; i++) {\n p[i] = zz[i] * qt[i];\n }\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n const row = 8 * i;\n\n // check for all-zero AC coefficients\n if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0\n && p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0\n && p[7 + row] === 0) {\n t = ((dctSqrt2 * p[0 + row]) + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue; // eslint-disable-line no-continue\n }\n\n // stage 4\n v0 = ((dctSqrt2 * p[0 + row]) + 128) >> 8;\n v1 = ((dctSqrt2 * p[4 + row]) + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = ((dctSqrt1d2 * (p[1 + row] - p[7 + row])) + 128) >> 8;\n v7 = ((dctSqrt1d2 * (p[1 + row] + p[7 + row])) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = ((v2 * dctSin6) + (v3 * dctCos6) + 128) >> 8;\n v2 = ((v2 * dctCos6) - (v3 * dctSin6) + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = ((v4 * dctSin3) + (v7 * dctCos3) + 2048) >> 12;\n v4 = ((v4 * dctCos3) - (v7 * dctSin3) + 2048) >> 12;\n v7 = t;\n t = ((v5 * dctSin1) + (v6 * dctCos1) + 2048) >> 12;\n v5 = ((v5 * dctCos1) - (v6 * dctSin1) + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n const col = i;\n\n // check for all-zero AC coefficients\n if (p[(1 * 8) + col] === 0 && p[(2 * 8) + col] === 0 && p[(3 * 8) + col] === 0\n && p[(4 * 8) + col] === 0 && p[(5 * 8) + col] === 0 && p[(6 * 8) + col] === 0\n && p[(7 * 8) + col] === 0) {\n t = ((dctSqrt2 * dataIn[i + 0]) + 8192) >> 14;\n p[(0 * 8) + col] = t;\n p[(1 * 8) + col] = t;\n p[(2 * 8) + col] = t;\n p[(3 * 8) + col] = t;\n p[(4 * 8) + col] = t;\n p[(5 * 8) + col] = t;\n p[(6 * 8) + col] = t;\n p[(7 * 8) + col] = t;\n continue; // eslint-disable-line no-continue\n }\n\n // stage 4\n v0 = ((dctSqrt2 * p[(0 * 8) + col]) + 2048) >> 12;\n v1 = ((dctSqrt2 * p[(4 * 8) + col]) + 2048) >> 12;\n v2 = p[(2 * 8) + col];\n v3 = p[(6 * 8) + col];\n v4 = ((dctSqrt1d2 * (p[(1 * 8) + col] - p[(7 * 8) + col])) + 2048) >> 12;\n v7 = ((dctSqrt1d2 * (p[(1 * 8) + col] + p[(7 * 8) + col])) + 2048) >> 12;\n v5 = p[(3 * 8) + col];\n v6 = p[(5 * 8) + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = ((v2 * dctSin6) + (v3 * dctCos6) + 2048) >> 12;\n v2 = ((v2 * dctCos6) - (v3 * dctSin6) + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = ((v4 * dctSin3) + (v7 * dctCos3) + 2048) >> 12;\n v4 = ((v4 * dctCos3) - (v7 * dctSin3) + 2048) >> 12;\n v7 = t;\n t = ((v5 * dctSin1) + (v6 * dctCos1) + 2048) >> 12;\n v5 = ((v5 * dctCos1) - (v6 * dctSin1) + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[(0 * 8) + col] = v0 + v7;\n p[(7 * 8) + col] = v0 - v7;\n p[(1 * 8) + col] = v1 + v6;\n p[(6 * 8) + col] = v1 - v6;\n p[(2 * 8) + col] = v2 + v5;\n p[(5 * 8) + col] = v2 - v5;\n p[(3 * 8) + col] = v3 + v4;\n p[(4 * 8) + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n const sample = 128 + ((p[i] + 8) >> 4);\n if (sample < 0) {\n dataOut[i] = 0;\n } else if (sample > 0XFF) {\n dataOut[i] = 0xFF;\n } else {\n dataOut[i] = sample;\n }\n }\n }\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n const scanLine = blockRow << 3;\n for (let i = 0; i < 8; i++) {\n lines.push(new Uint8Array(samplesPerLine));\n }\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n\n let offset = 0;\n const sample = blockCol << 3;\n for (let j = 0; j < 8; j++) {\n const line = lines[scanLine + j];\n for (let i = 0; i < 8; i++) {\n line[sample + i] = r[offset++];\n }\n }\n }\n }\n return lines;\n}\n\nclass JpegStreamReader {\n constructor() {\n this.jfif = null;\n this.adobe = null;\n\n this.quantizationTables = [];\n this.huffmanTablesAC = [];\n this.huffmanTablesDC = [];\n this.resetFrames();\n }\n\n resetFrames() {\n this.frames = [];\n }\n\n parse(data) {\n let offset = 0;\n // const { length } = data;\n function readUint16() {\n const value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n let maxH = 0;\n let maxV = 0;\n let component;\n let componentId;\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n if (maxH < component.h) {\n maxH = component.h;\n }\n if (maxV < component.v) {\n maxV = component.v;\n }\n }\n }\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n const blocks = [];\n for (let i = 0; i < blocksPerColumnForMcu; i++) {\n const row = [];\n for (let j = 0; j < blocksPerLineForMcu; j++) {\n row.push(new Int32Array(64));\n }\n blocks.push(row);\n }\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n component.blocks = blocks;\n }\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) { // SOI (Start of Image)\n throw new Error('SOI not found');\n }\n\n fileMarker = readUint16();\n while (fileMarker !== 0xFFD9) { // EOI (End of image)\n switch (fileMarker) {\n case 0xFF00: break;\n case 0xFFE0: // APP0 (Application Specific)\n case 0xFFE1: // APP1\n case 0xFFE2: // APP2\n case 0xFFE3: // APP3\n case 0xFFE4: // APP4\n case 0xFFE5: // APP5\n case 0xFFE6: // APP6\n case 0xFFE7: // APP7\n case 0xFFE8: // APP8\n case 0xFFE9: // APP9\n case 0xFFEA: // APP10\n case 0xFFEB: // APP11\n case 0xFFEC: // APP12\n case 0xFFED: // APP13\n case 0xFFEE: // APP14\n case 0xFFEF: // APP15\n case 0xFFFE: { // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49\n && appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\n this.jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + (3 * appData[12] * appData[13])),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F\n && appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\n this.adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n }\n\n case 0xFFDB: { // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16();\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Int32Array(64);\n if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n for (let j = 0; j < 64; j++) {\n const z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if ((quantizationTableSpec >> 4) === 1) { // 16 bit\n for (let j = 0; j < 64; j++) {\n const z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else {\n throw new Error('DQT: invalid table spec');\n }\n this.quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n }\n\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\n case 0xFFC2: { // SOF2 (Start of Frame, Progressive DCT)\n readUint16(); // skip data length\n const frame = {\n extended: (fileMarker === 0xFFC1),\n progressive: (fileMarker === 0xFFC2),\n precision: data[offset++],\n scanLines: readUint16(),\n samplesPerLine: readUint16(),\n components: {},\n componentsOrder: [],\n };\n\n const componentsCount = data[offset++];\n let componentId;\n // let maxH = 0;\n // let maxV = 0;\n for (let i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n const qId = data[offset + 2];\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId,\n };\n offset += 3;\n }\n prepareComponents(frame);\n this.frames.push(frame);\n break;\n }\n\n case 0xFFC4: { // DHT (Define Huffman Tables)\n const huffmanLength = readUint16();\n for (let i = 2; i < huffmanLength;) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (let j = 0; j < 16; j++, offset++) {\n codeLengths[j] = data[offset];\n codeLengthSum += codeLengths[j];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (let j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n if ((huffmanTableSpec >> 4) === 0) {\n this.huffmanTablesDC[huffmanTableSpec & 15] = buildHuffmanTable(\n codeLengths, huffmanValues,\n );\n } else {\n this.huffmanTablesAC[huffmanTableSpec & 15] = buildHuffmanTable(\n codeLengths, huffmanValues,\n );\n }\n }\n break;\n }\n\n case 0xFFDD: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n this.resetInterval = readUint16();\n break;\n\n case 0xFFDA: { // SOS (Start of Scan)\n readUint16(); // skip length\n const selectorsCount = data[offset++];\n const components = [];\n const frame = this.frames[0];\n for (let i = 0; i < selectorsCount; i++) {\n const component = frame.components[data[offset++]];\n const tableSpec = data[offset++];\n component.huffmanTableDC = this.huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = this.huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset,\n frame, components, this.resetInterval,\n spectralStart, spectralEnd,\n successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n break;\n }\n\n case 0xFFFF: // Fill bytes\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n if (data[offset - 3] === 0xFF\n && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n throw new Error(`unknown JPEG marker ${fileMarker.toString(16)}`);\n }\n fileMarker = readUint16();\n }\n }\n\n getResult() {\n const { frames } = this;\n if (this.frames.length === 0) {\n throw new Error('no frames were decoded');\n } else if (this.frames.length > 1) {\n console.warn('more than one frame is not supported');\n }\n\n // set each frame's components quantization table\n for (let i = 0; i < this.frames.length; i++) {\n const cp = this.frames[i].components;\n for (const j of Object.keys(cp)) {\n cp[j].quantizationTable = this.quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n\n const frame = frames[0];\n const { components, componentsOrder } = frame;\n const outComponents = [];\n const width = frame.samplesPerLine;\n const height = frame.scanLines;\n\n for (let i = 0; i < componentsOrder.length; i++) {\n const component = components[componentsOrder[i]];\n outComponents.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n });\n }\n\n const out = new Uint8Array(width * height * outComponents.length);\n let oi = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n for (let i = 0; i < outComponents.length; ++i) {\n const component = outComponents[i];\n out[oi] = component.lines[0 | y * component.scaleY][0 | x * component.scaleX];\n ++oi;\n }\n }\n }\n return out;\n }\n}\n\nexport default class JpegDecoder extends BaseDecoder {\n constructor(fileDirectory) {\n super();\n this.reader = new JpegStreamReader();\n if (fileDirectory.JPEGTables) {\n this.reader.parse(fileDirectory.JPEGTables);\n }\n }\n\n decodeBlock(buffer) {\n this.reader.resetFrames();\n this.reader.parse(new Uint8Array(buffer));\n return this.reader.getResult().buffer;\n }\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"jpeg-BYwBjmYM.js","sources":["../../node_modules/geotiff/dist-module/compression/jpeg.js"],"sourcesContent":["import BaseDecoder from './basedecoder.js';\n\n/* -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/*\n Copyright 2011 notmasteryet\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nconst dctZigZag = new Int32Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63,\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896;// sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0;\n const code = [];\n let length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n --length;\n }\n code.push({ children: [], index: 0 });\n\n let p = code[0];\n let q;\n for (let i = 0; i < length; i++) {\n for (let j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction decodeScan(data, initialOffset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successivePrev, successive) {\n const { mcusPerLine, progressive } = frame;\n\n const startOffset = initialOffset;\n let offset = initialOffset;\n let bitsData = 0;\n let bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n const nextByte = data[offset++];\n if (nextByte) {\n throw new Error(`unexpected marker: ${((bitsData << 8) | nextByte).toString(16)}`);\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n let node = tree;\n let bit;\n while ((bit = readBit()) !== null) { // eslint-disable-line no-cond-assign\n node = node[bit];\n if (typeof node === 'number') {\n return node;\n }\n if (typeof node !== 'object') {\n throw new Error('invalid huffman sequence');\n }\n }\n return null;\n }\n function receive(initialLength) {\n let length = initialLength;\n let n = 0;\n while (length > 0) {\n const bit = readBit();\n if (bit === null) {\n return undefined;\n }\n n = (n << 1) | bit;\n --length;\n }\n return n;\n }\n function receiveAndExtend(length) {\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, zz) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.pred += diff;\n zz[0] = component.pred;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n const r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n } else {\n k += r;\n const z = dctZigZag[k];\n zz[z] = receiveAndExtend(s);\n k++;\n }\n }\n }\n function decodeDCFirst(component, zz) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n component.pred += diff;\n zz[0] = component.pred;\n }\n function decodeDCSuccessive(component, zz) {\n zz[0] |= readBit() << successive;\n }\n let eobrun = 0;\n function decodeACFirst(component, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n const r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n } else {\n k += r;\n const z = dctZigZag[k];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n }\n let successiveACState = 0;\n let successiveACNextValue;\n function decodeACSuccessive(component, zz) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n while (k <= e) {\n const z = dctZigZag[k];\n const direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: { // initial state\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new Error('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue; // eslint-disable-line no-continue\n }\n case 1: // skipping r zero items\n case 2:\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n } else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n }\n break;\n default:\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n function decodeMcu(component, decodeFunction, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n const blockRow = (mcuRow * component.v) + row;\n const blockCol = (mcuCol * component.h) + col;\n decodeFunction(component, component.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component, decodeFunction, mcu) {\n const blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n decodeFunction(component, component.blocks[blockRow][blockCol]);\n }\n\n const componentsLength = components.length;\n let component;\n let i;\n let j;\n let k;\n let n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0;\n let marker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n const usedResetInterval = resetInterval || mcuExpected;\n\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < usedResetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < usedResetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n const { h, v } = component;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n\n // If we've reached our expected MCU's, stop decoding\n if (mcu === mcuExpected) {\n break;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker < 0xFF00) {\n throw new Error('marker was not found');\n }\n\n if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\nfunction buildComponentData(frame, component) {\n const lines = [];\n const { blocksPerLine, blocksPerColumn } = component;\n const samplesPerLine = blocksPerLine << 3;\n const R = new Int32Array(64);\n const r = new Uint8Array(64);\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(zz, dataOut, dataIn) {\n const qt = component.quantizationTable;\n let v0;\n let v1;\n let v2;\n let v3;\n let v4;\n let v5;\n let v6;\n let v7;\n let t;\n const p = dataIn;\n let i;\n\n // dequant\n for (i = 0; i < 64; i++) {\n p[i] = zz[i] * qt[i];\n }\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n const row = 8 * i;\n\n // check for all-zero AC coefficients\n if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0\n && p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0\n && p[7 + row] === 0) {\n t = ((dctSqrt2 * p[0 + row]) + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue; // eslint-disable-line no-continue\n }\n\n // stage 4\n v0 = ((dctSqrt2 * p[0 + row]) + 128) >> 8;\n v1 = ((dctSqrt2 * p[4 + row]) + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = ((dctSqrt1d2 * (p[1 + row] - p[7 + row])) + 128) >> 8;\n v7 = ((dctSqrt1d2 * (p[1 + row] + p[7 + row])) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = ((v2 * dctSin6) + (v3 * dctCos6) + 128) >> 8;\n v2 = ((v2 * dctCos6) - (v3 * dctSin6) + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = ((v4 * dctSin3) + (v7 * dctCos3) + 2048) >> 12;\n v4 = ((v4 * dctCos3) - (v7 * dctSin3) + 2048) >> 12;\n v7 = t;\n t = ((v5 * dctSin1) + (v6 * dctCos1) + 2048) >> 12;\n v5 = ((v5 * dctCos1) - (v6 * dctSin1) + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n const col = i;\n\n // check for all-zero AC coefficients\n if (p[(1 * 8) + col] === 0 && p[(2 * 8) + col] === 0 && p[(3 * 8) + col] === 0\n && p[(4 * 8) + col] === 0 && p[(5 * 8) + col] === 0 && p[(6 * 8) + col] === 0\n && p[(7 * 8) + col] === 0) {\n t = ((dctSqrt2 * dataIn[i + 0]) + 8192) >> 14;\n p[(0 * 8) + col] = t;\n p[(1 * 8) + col] = t;\n p[(2 * 8) + col] = t;\n p[(3 * 8) + col] = t;\n p[(4 * 8) + col] = t;\n p[(5 * 8) + col] = t;\n p[(6 * 8) + col] = t;\n p[(7 * 8) + col] = t;\n continue; // eslint-disable-line no-continue\n }\n\n // stage 4\n v0 = ((dctSqrt2 * p[(0 * 8) + col]) + 2048) >> 12;\n v1 = ((dctSqrt2 * p[(4 * 8) + col]) + 2048) >> 12;\n v2 = p[(2 * 8) + col];\n v3 = p[(6 * 8) + col];\n v4 = ((dctSqrt1d2 * (p[(1 * 8) + col] - p[(7 * 8) + col])) + 2048) >> 12;\n v7 = ((dctSqrt1d2 * (p[(1 * 8) + col] + p[(7 * 8) + col])) + 2048) >> 12;\n v5 = p[(3 * 8) + col];\n v6 = p[(5 * 8) + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = ((v2 * dctSin6) + (v3 * dctCos6) + 2048) >> 12;\n v2 = ((v2 * dctCos6) - (v3 * dctSin6) + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = ((v4 * dctSin3) + (v7 * dctCos3) + 2048) >> 12;\n v4 = ((v4 * dctCos3) - (v7 * dctSin3) + 2048) >> 12;\n v7 = t;\n t = ((v5 * dctSin1) + (v6 * dctCos1) + 2048) >> 12;\n v5 = ((v5 * dctCos1) - (v6 * dctSin1) + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[(0 * 8) + col] = v0 + v7;\n p[(7 * 8) + col] = v0 - v7;\n p[(1 * 8) + col] = v1 + v6;\n p[(6 * 8) + col] = v1 - v6;\n p[(2 * 8) + col] = v2 + v5;\n p[(5 * 8) + col] = v2 - v5;\n p[(3 * 8) + col] = v3 + v4;\n p[(4 * 8) + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n const sample = 128 + ((p[i] + 8) >> 4);\n if (sample < 0) {\n dataOut[i] = 0;\n } else if (sample > 0XFF) {\n dataOut[i] = 0xFF;\n } else {\n dataOut[i] = sample;\n }\n }\n }\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n const scanLine = blockRow << 3;\n for (let i = 0; i < 8; i++) {\n lines.push(new Uint8Array(samplesPerLine));\n }\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n\n let offset = 0;\n const sample = blockCol << 3;\n for (let j = 0; j < 8; j++) {\n const line = lines[scanLine + j];\n for (let i = 0; i < 8; i++) {\n line[sample + i] = r[offset++];\n }\n }\n }\n }\n return lines;\n}\n\nclass JpegStreamReader {\n constructor() {\n this.jfif = null;\n this.adobe = null;\n\n this.quantizationTables = [];\n this.huffmanTablesAC = [];\n this.huffmanTablesDC = [];\n this.resetFrames();\n }\n\n resetFrames() {\n this.frames = [];\n }\n\n parse(data) {\n let offset = 0;\n // const { length } = data;\n function readUint16() {\n const value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n let maxH = 0;\n let maxV = 0;\n let component;\n let componentId;\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n if (maxH < component.h) {\n maxH = component.h;\n }\n if (maxV < component.v) {\n maxV = component.v;\n }\n }\n }\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n const blocks = [];\n for (let i = 0; i < blocksPerColumnForMcu; i++) {\n const row = [];\n for (let j = 0; j < blocksPerLineForMcu; j++) {\n row.push(new Int32Array(64));\n }\n blocks.push(row);\n }\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n component.blocks = blocks;\n }\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) { // SOI (Start of Image)\n throw new Error('SOI not found');\n }\n\n fileMarker = readUint16();\n while (fileMarker !== 0xFFD9) { // EOI (End of image)\n switch (fileMarker) {\n case 0xFF00: break;\n case 0xFFE0: // APP0 (Application Specific)\n case 0xFFE1: // APP1\n case 0xFFE2: // APP2\n case 0xFFE3: // APP3\n case 0xFFE4: // APP4\n case 0xFFE5: // APP5\n case 0xFFE6: // APP6\n case 0xFFE7: // APP7\n case 0xFFE8: // APP8\n case 0xFFE9: // APP9\n case 0xFFEA: // APP10\n case 0xFFEB: // APP11\n case 0xFFEC: // APP12\n case 0xFFED: // APP13\n case 0xFFEE: // APP14\n case 0xFFEF: // APP15\n case 0xFFFE: { // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49\n && appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\n this.jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + (3 * appData[12] * appData[13])),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F\n && appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\n this.adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n }\n\n case 0xFFDB: { // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16();\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Int32Array(64);\n if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n for (let j = 0; j < 64; j++) {\n const z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if ((quantizationTableSpec >> 4) === 1) { // 16 bit\n for (let j = 0; j < 64; j++) {\n const z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else {\n throw new Error('DQT: invalid table spec');\n }\n this.quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n }\n\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\n case 0xFFC2: { // SOF2 (Start of Frame, Progressive DCT)\n readUint16(); // skip data length\n const frame = {\n extended: (fileMarker === 0xFFC1),\n progressive: (fileMarker === 0xFFC2),\n precision: data[offset++],\n scanLines: readUint16(),\n samplesPerLine: readUint16(),\n components: {},\n componentsOrder: [],\n };\n\n const componentsCount = data[offset++];\n let componentId;\n // let maxH = 0;\n // let maxV = 0;\n for (let i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n const qId = data[offset + 2];\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId,\n };\n offset += 3;\n }\n prepareComponents(frame);\n this.frames.push(frame);\n break;\n }\n\n case 0xFFC4: { // DHT (Define Huffman Tables)\n const huffmanLength = readUint16();\n for (let i = 2; i < huffmanLength;) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (let j = 0; j < 16; j++, offset++) {\n codeLengths[j] = data[offset];\n codeLengthSum += codeLengths[j];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (let j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n if ((huffmanTableSpec >> 4) === 0) {\n this.huffmanTablesDC[huffmanTableSpec & 15] = buildHuffmanTable(\n codeLengths, huffmanValues,\n );\n } else {\n this.huffmanTablesAC[huffmanTableSpec & 15] = buildHuffmanTable(\n codeLengths, huffmanValues,\n );\n }\n }\n break;\n }\n\n case 0xFFDD: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n this.resetInterval = readUint16();\n break;\n\n case 0xFFDA: { // SOS (Start of Scan)\n readUint16(); // skip length\n const selectorsCount = data[offset++];\n const components = [];\n const frame = this.frames[0];\n for (let i = 0; i < selectorsCount; i++) {\n const component = frame.components[data[offset++]];\n const tableSpec = data[offset++];\n component.huffmanTableDC = this.huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = this.huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset,\n frame, components, this.resetInterval,\n spectralStart, spectralEnd,\n successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n break;\n }\n\n case 0xFFFF: // Fill bytes\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n if (data[offset - 3] === 0xFF\n && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n throw new Error(`unknown JPEG marker ${fileMarker.toString(16)}`);\n }\n fileMarker = readUint16();\n }\n }\n\n getResult() {\n const { frames } = this;\n if (this.frames.length === 0) {\n throw new Error('no frames were decoded');\n } else if (this.frames.length > 1) {\n console.warn('more than one frame is not supported');\n }\n\n // set each frame's components quantization table\n for (let i = 0; i < this.frames.length; i++) {\n const cp = this.frames[i].components;\n for (const j of Object.keys(cp)) {\n cp[j].quantizationTable = this.quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n\n const frame = frames[0];\n const { components, componentsOrder } = frame;\n const outComponents = [];\n const width = frame.samplesPerLine;\n const height = frame.scanLines;\n\n for (let i = 0; i < componentsOrder.length; i++) {\n const component = components[componentsOrder[i]];\n outComponents.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n });\n }\n\n const out = new Uint8Array(width * height * outComponents.length);\n let oi = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n for (let i = 0; i < outComponents.length; ++i) {\n const component = outComponents[i];\n out[oi] = component.lines[0 | y * component.scaleY][0 | x * component.scaleX];\n ++oi;\n }\n }\n }\n return out;\n }\n}\n\nexport default class JpegDecoder extends BaseDecoder {\n constructor(fileDirectory) {\n super();\n this.reader = new JpegStreamReader();\n if (fileDirectory.JPEGTables) {\n this.reader.parse(fileDirectory.JPEGTables);\n }\n }\n\n decodeBlock(buffer) {\n this.reader.resetFrames();\n this.reader.parse(new Uint8Array(buffer));\n return this.reader.getResult().buffer;\n }\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}