{"version":3,"sources":["webpack:///./node_modules/.pnpm/geotiff@1.0.9/node_modules/geotiff/src/compression/raw.js","webpack:///./node_modules/.pnpm/geotiff@1.0.9/node_modules/geotiff/src/predictor.js","webpack:///./node_modules/.pnpm/geotiff@1.0.9/node_modules/geotiff/src/compression/basedecoder.js"],"names":["RawDecoder","buffer","decodeRowAcc","row","stride","length","offset","i","decodeRowFloatingPoint","bytesPerSample","index","count","wc","copy","slice","b","applyPredictor","block","predictor","width","height","bitsPerSample","planarConfiguration","Error","byteLength","Uint8Array","Uint16Array","Uint32Array","fileDirectory","decoded","this","decodeBlock","Predictor","isTiled","StripOffsets","tileWidth","TileWidth","ImageWidth","tileHeight","TileLength","RowsPerStrip","ImageLength","BitsPerSample","PlanarConfiguration"],"mappings":"kHAAA,+DAEe,MAAMA,UAAmB,OACtC,YAAYC,GACV,OAAOA,K,kCCJX,SAASC,EAAaC,EAAKC,GACzB,IAAIC,EAASF,EAAIE,OAASD,EACtBE,EAAS,EACb,EAAG,CACD,IAAK,IAAIC,EAAIH,EAAQG,EAAI,EAAGA,IAC1BJ,EAAIG,EAASF,IAAWD,EAAIG,GAC5BA,IAGFD,GAAUD,QACHC,EAAS,GAGpB,SAASG,EAAuBL,EAAKC,EAAQK,GAC3C,IAAIC,EAAQ,EACRC,EAAQR,EAAIE,OAChB,MAAMO,EAAKD,EAAQF,EAEnB,MAAOE,EAAQP,EAAQ,CACrB,IAAK,IAAIG,EAAIH,EAAQG,EAAI,IAAKA,EAC5BJ,EAAIO,EAAQN,IAAWD,EAAIO,KACzBA,EAEJC,GAASP,EAGX,MAAMS,EAAOV,EAAIW,QACjB,IAAK,IAAIP,EAAI,EAAGA,EAAIK,IAAML,EACxB,IAAK,IAAIQ,EAAI,EAAGA,EAAIN,IAAkBM,EACpCZ,EAAKM,EAAiBF,EAAKQ,GAAKF,GAAOJ,EAAiBM,EAAI,GAAKH,EAAML,GAKtE,SAASS,EAAeC,EAAOC,EAAWC,EAAOC,EAAQC,EAC9DC,GACA,IAAKJ,GAA2B,IAAdA,EAChB,OAAOD,EAGT,IAAK,IAAIV,EAAI,EAAGA,EAAIc,EAAchB,SAAUE,EAAG,CAC7C,GAAIc,EAAcd,GAAK,IAAM,EAC3B,MAAM,IAAIgB,MAAM,wEAElB,GAAIF,EAAcd,KAAOc,EAAc,GACrC,MAAM,IAAIE,MAAM,sEAIpB,MAAMd,EAAiBY,EAAc,GAAK,EACpCjB,EAAiC,IAAxBkB,EAA4B,EAAID,EAAchB,OAE7D,IAAK,IAAIE,EAAI,EAAGA,EAAIa,IAAUb,EAAG,CAE/B,GAAIA,EAAIH,EAASe,EAAQV,GAAkBQ,EAAMO,WAC/C,MAEF,IAAIrB,EACJ,GAAkB,IAAde,EAAiB,CACnB,OAAQG,EAAc,IACpB,KAAK,EACHlB,EAAM,IAAIsB,WACRR,EAAOV,EAAIH,EAASe,EAAQV,EAAgBL,EAASe,EAAQV,GAE/D,MACF,KAAK,GACHN,EAAM,IAAIuB,YACRT,EAAOV,EAAIH,EAASe,EAAQV,EAAgBL,EAASe,EAAQV,EAAiB,GAEhF,MACF,KAAK,GACHN,EAAM,IAAIwB,YACRV,EAAOV,EAAIH,EAASe,EAAQV,EAAgBL,EAASe,EAAQV,EAAiB,GAEhF,MACF,QACE,MAAM,IAAIc,MAAM,gCAAgCF,EAAc,uBAElEnB,EAAaC,EAAKC,EAAQK,QACH,IAAdS,IACTf,EAAM,IAAIsB,WACRR,EAAOV,EAAIH,EAASe,EAAQV,EAAgBL,EAASe,EAAQV,GAE/DD,EAAuBL,EAAKC,EAAQK,IAGxC,OAAOQ,E,kCCpFM,MAAM,EACnB,aAAaW,EAAe3B,GAC1B,MAAM4B,QAAgBC,KAAKC,YAAY9B,GACjCiB,EAAYU,EAAcI,WAAa,EAC7C,GAAkB,IAAdd,EAAiB,CACnB,MAAMe,GAAWL,EAAcM,aACzBC,EAAYF,EAAUL,EAAcQ,UAAYR,EAAcS,WAC9DC,EAAaL,EAAUL,EAAcW,WACzCX,EAAcY,cAAgBZ,EAAca,YAE9C,OAAOzB,EACLa,EAASX,EAAWiB,EAAWG,EAAYV,EAAcc,cACzDd,EAAce,qBAGlB,OAAOd","file":"chunk-3e0e62ad.56704606ec8b39b8a9be.js","sourcesContent":["import BaseDecoder from './basedecoder';\n\nexport default class RawDecoder extends BaseDecoder {\n  decodeBlock(buffer) {\n    return buffer;\n  }\n}\n","function decodeRowAcc(row, stride) {\n  let length = row.length - stride;\n  let offset = 0;\n  do {\n    for (let i = stride; i > 0; i--) {\n      row[offset + stride] += row[offset];\n      offset++;\n    }\n\n    length -= stride;\n  } while (length > 0);\n}\n\nfunction decodeRowFloatingPoint(row, stride, bytesPerSample) {\n  let index = 0;\n  let count = row.length;\n  const wc = count / bytesPerSample;\n\n  while (count > stride) {\n    for (let i = stride; i > 0; --i) {\n      row[index + stride] += row[index];\n      ++index;\n    }\n    count -= stride;\n  }\n\n  const copy = row.slice();\n  for (let i = 0; i < wc; ++i) {\n    for (let b = 0; b < bytesPerSample; ++b) {\n      row[(bytesPerSample * i) + b] = copy[((bytesPerSample - b - 1) * wc) + i];\n    }\n  }\n}\n\nexport function applyPredictor(block, predictor, width, height, bitsPerSample,\n  planarConfiguration) {\n  if (!predictor || predictor === 1) {\n    return block;\n  }\n\n  for (let i = 0; i < bitsPerSample.length; ++i) {\n    if (bitsPerSample[i] % 8 !== 0) {\n      throw new Error('When decoding with predictor, only multiple of 8 bits are supported.');\n    }\n    if (bitsPerSample[i] !== bitsPerSample[0]) {\n      throw new Error('When decoding with predictor, all samples must have the same size.');\n    }\n  }\n\n  const bytesPerSample = bitsPerSample[0] / 8;\n  const stride = planarConfiguration === 2 ? 1 : bitsPerSample.length;\n\n  for (let i = 0; i < height; ++i) {\n    // Last strip will be truncated if height % stripHeight != 0\n    if (i * stride * width * bytesPerSample >= block.byteLength) {\n      break;\n    }\n    let row;\n    if (predictor === 2) { // horizontal prediction\n      switch (bitsPerSample[0]) {\n        case 8:\n          row = new Uint8Array(\n            block, i * stride * width * bytesPerSample, stride * width * bytesPerSample,\n          );\n          break;\n        case 16:\n          row = new Uint16Array(\n            block, i * stride * width * bytesPerSample, stride * width * bytesPerSample / 2,\n          );\n          break;\n        case 32:\n          row = new Uint32Array(\n            block, i * stride * width * bytesPerSample, stride * width * bytesPerSample / 4,\n          );\n          break;\n        default:\n          throw new Error(`Predictor 2 not allowed with ${bitsPerSample[0]} bits per sample.`);\n      }\n      decodeRowAcc(row, stride, bytesPerSample);\n    } else if (predictor === 3) { // horizontal floating point\n      row = new Uint8Array(\n        block, i * stride * width * bytesPerSample, stride * width * bytesPerSample,\n      );\n      decodeRowFloatingPoint(row, stride, bytesPerSample);\n    }\n  }\n  return block;\n}\n","import { applyPredictor } from '../predictor';\n\nexport default class BaseDecoder {\n  async decode(fileDirectory, buffer) {\n    const decoded = await this.decodeBlock(buffer);\n    const predictor = fileDirectory.Predictor || 1;\n    if (predictor !== 1) {\n      const isTiled = !fileDirectory.StripOffsets;\n      const tileWidth = isTiled ? fileDirectory.TileWidth : fileDirectory.ImageWidth;\n      const tileHeight = isTiled ? fileDirectory.TileLength : (\n        fileDirectory.RowsPerStrip || fileDirectory.ImageLength\n      );\n      return applyPredictor(\n        decoded, predictor, tileWidth, tileHeight, fileDirectory.BitsPerSample,\n        fileDirectory.PlanarConfiguration,\n      );\n    }\n    return decoded;\n  }\n}\n"],"sourceRoot":""}