element-web-synapse01pim.gr.jp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

blurhash.worker.js.map (13318B)


      1 {"version":3,"file":"bundles/12c8185ea2689492c07b/blurhash.worker.js","mappings":"mBAAA,MACA,uBAAAA,oBAAA,CACA,IAAAC,EAAAD,oBAAAE,EACAC,EAAAH,oBAAAI,EACAC,EAAA,GACAC,EAAA,GAIAN,oBAAAE,EAAA,SAAAK,GAEA,OADAN,EAAAM,IAGAF,EAAAG,eAAAD,GAAA,IAAAF,EAAAE,GAAA,GAEA,EACAP,oBAAAI,EAAA,SAAAG,GAEA,OADAJ,EAAAI,GACAE,MAAA,SAAAC,GACA,IAAAC,EAAAL,EAAAE,eAAAD,GAAAD,EAAAC,GAAA,EACA,GAAAI,EAAA,GACA,IAAAC,EAAAX,EAAAM,GAQA,MAPAG,EAAAG,QACA,iBACAN,EACA,8BACAK,EACA,IACAF,EAAAI,QAAAF,EACAF,CACA,CACA,WAAAK,QAAA,SAAAC,GAEAC,WAAA,WACA,IACAC,EAAAC,KAAAC,MAEAf,EAAAE,GAAAW,EACAZ,EAAAC,GAAAI,EAAA,EACAK,EAAAhB,oBAAAI,EAAAG,GACA,EAjCA,IAkCA,EACA,EACA,CACA,CACC,EA7CD,GCAA,IAAMc,EAAkB,CACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAaWC,EAAW,CAACC,EAAWnB,KAClC,IAAIoB,EAAS,GACb,QAASC,EAAI,EAAGA,GAAKrB,EAAQqB,IAAK,CAChC,IAAIC,EAASC,KAAKC,MAAML,GAAKI,KAAKE,IAAI,GAAIzB,EAASqB,GAAM,GACzDD,GAAUH,EAAgBM,KAAKC,MAAMF,GACvC,CACA,OAAOF,GCtGIM,EAA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","sources":["webpack://element-web/webpack/runtime/compat","webpack://element-web/../node_modules/.pnpm/blurhash@2.0.5/node_modules/blurhash/src/base83.ts","webpack://element-web/../node_modules/.pnpm/blurhash@2.0.5/node_modules/blurhash/src/utils.ts","webpack://element-web/../node_modules/.pnpm/blurhash@2.0.5/node_modules/blurhash/src/error.ts","webpack://element-web/../node_modules/.pnpm/blurhash@2.0.5/node_modules/blurhash/src/encode.ts","webpack://element-web/./src/workers/blurhash.worker.ts"],"sourcesContent":["(() => {\n  if (typeof __webpack_require__ !== 'undefined') {\n    var oldGetScript = __webpack_require__.u;\n    var oldLoadScript = __webpack_require__.e;\n    var queryMap = {};\n    var countMap = {};\n    var getRetryDelay = function () {\n      return 500;\n    };\n    __webpack_require__.u = function (chunkId) {\n      var result = oldGetScript(chunkId);\n      return (\n        result +\n        (queryMap.hasOwnProperty(chunkId) ? '?' + queryMap[chunkId] : '')\n      );\n    };\n    __webpack_require__.e = function (chunkId) {\n      var result = oldLoadScript(chunkId);\n      return result.catch(function (error) {\n        var retries = countMap.hasOwnProperty(chunkId) ? countMap[chunkId] : 3;\n        if (retries < 1) {\n          var realSrc = oldGetScript(chunkId);\n          error.message =\n            'Loading chunk ' +\n            chunkId +\n            ' failed after 3 retries.\\n(' +\n            realSrc +\n            ')';\n          error.request = realSrc;\n          throw error;\n        }\n        return new Promise(function (resolve) {\n          var retryAttempt = 3 - retries + 1;\n          setTimeout(function () {\n            var retryAttemptString = '&retry-attempt=' + retryAttempt;\n            var cacheBust = (() => Date.now())();\n            +retryAttemptString;\n            queryMap[chunkId] = cacheBust;\n            countMap[chunkId] = retries - 1;\n            resolve(__webpack_require__.e(chunkId));\n          }, getRetryDelay(retryAttempt));\n        });\n      });\n    };\n  }\n})();\n","const digitCharacters = [\n  \"0\",\n  \"1\",\n  \"2\",\n  \"3\",\n  \"4\",\n  \"5\",\n  \"6\",\n  \"7\",\n  \"8\",\n  \"9\",\n  \"A\",\n  \"B\",\n  \"C\",\n  \"D\",\n  \"E\",\n  \"F\",\n  \"G\",\n  \"H\",\n  \"I\",\n  \"J\",\n  \"K\",\n  \"L\",\n  \"M\",\n  \"N\",\n  \"O\",\n  \"P\",\n  \"Q\",\n  \"R\",\n  \"S\",\n  \"T\",\n  \"U\",\n  \"V\",\n  \"W\",\n  \"X\",\n  \"Y\",\n  \"Z\",\n  \"a\",\n  \"b\",\n  \"c\",\n  \"d\",\n  \"e\",\n  \"f\",\n  \"g\",\n  \"h\",\n  \"i\",\n  \"j\",\n  \"k\",\n  \"l\",\n  \"m\",\n  \"n\",\n  \"o\",\n  \"p\",\n  \"q\",\n  \"r\",\n  \"s\",\n  \"t\",\n  \"u\",\n  \"v\",\n  \"w\",\n  \"x\",\n  \"y\",\n  \"z\",\n  \"#\",\n  \"$\",\n  \"%\",\n  \"*\",\n  \"+\",\n  \",\",\n  \"-\",\n  \".\",\n  \":\",\n  \";\",\n  \"=\",\n  \"?\",\n  \"@\",\n  \"[\",\n  \"]\",\n  \"^\",\n  \"_\",\n  \"{\",\n  \"|\",\n  \"}\",\n  \"~\",\n];\n\nexport const decode83 = (str: String) => {\n  let value = 0;\n  for (let i = 0; i < str.length; i++) {\n    const c = str[i];\n    const digit = digitCharacters.indexOf(c);\n    value = value * 83 + digit;\n  }\n  return value;\n};\n\nexport const encode83 = (n: number, length: number): string => {\n  var result = \"\";\n  for (let i = 1; i <= length; i++) {\n    let digit = (Math.floor(n) / Math.pow(83, length - i)) % 83;\n    result += digitCharacters[Math.floor(digit)];\n  }\n  return result;\n};\n","export const sRGBToLinear = (value: number) => {\n  let v = value / 255;\n  if (v <= 0.04045) {\n    return v / 12.92;\n  } else {\n    return Math.pow((v + 0.055) / 1.055, 2.4);\n  }\n};\n\nexport const linearTosRGB = (value: number) => {\n  let v = Math.max(0, Math.min(1, value));\n  if (v <= 0.0031308) {\n    return Math.trunc(v * 12.92 * 255 + 0.5);\n  } else {\n    return Math.trunc((1.055 * Math.pow(v, 1 / 2.4) - 0.055) * 255 + 0.5);\n  }\n};\n\nexport const sign = (n: number) => (n < 0 ? -1 : 1);\n\nexport const signPow = (val: number, exp: number) =>\n  sign(val) * Math.pow(Math.abs(val), exp);\n","export class ValidationError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = \"ValidationError\";\n    this.message = message;\n  }\n}\n","import { encode83 } from \"./base83\";\nimport { sRGBToLinear, signPow, linearTosRGB } from \"./utils\";\nimport { ValidationError } from \"./error\";\n\ntype NumberTriplet = [number, number, number];\n\nconst bytesPerPixel = 4;\n\nconst multiplyBasisFunction = (\n  pixels: Uint8ClampedArray,\n  width: number,\n  height: number,\n  basisFunction: (i: number, j: number) => number\n): NumberTriplet => {\n  let r = 0;\n  let g = 0;\n  let b = 0;\n  const bytesPerRow = width * bytesPerPixel;\n\n  for (let x = 0; x < width; x++) {\n    const bytesPerPixelX = bytesPerPixel * x;\n\n    for (let y = 0; y < height; y++) {\n      const basePixelIndex = bytesPerPixelX + y * bytesPerRow;\n      const basis = basisFunction(x, y);\n      r +=\n        basis * sRGBToLinear(pixels[basePixelIndex]);\n      g +=\n        basis * sRGBToLinear(pixels[basePixelIndex + 1]);\n      b +=\n        basis * sRGBToLinear(pixels[basePixelIndex + 2]);\n    }\n  }\n\n  let scale = 1 / (width * height);\n\n  return [r * scale, g * scale, b * scale];\n};\n\nconst encodeDC = (value: NumberTriplet): number => {\n  const roundedR = linearTosRGB(value[0]);\n  const roundedG = linearTosRGB(value[1]);\n  const roundedB = linearTosRGB(value[2]);\n  return (roundedR << 16) + (roundedG << 8) + roundedB;\n};\n\nconst encodeAC = (value: NumberTriplet, maximumValue: number): number => {\n  let quantR = Math.floor(\n    Math.max(\n      0,\n      Math.min(18, Math.floor(signPow(value[0] / maximumValue, 0.5) * 9 + 9.5))\n    )\n  );\n  let quantG = Math.floor(\n    Math.max(\n      0,\n      Math.min(18, Math.floor(signPow(value[1] / maximumValue, 0.5) * 9 + 9.5))\n    )\n  );\n  let quantB = Math.floor(\n    Math.max(\n      0,\n      Math.min(18, Math.floor(signPow(value[2] / maximumValue, 0.5) * 9 + 9.5))\n    )\n  );\n\n  return quantR * 19 * 19 + quantG * 19 + quantB;\n};\n\nconst encode = (\n  pixels: Uint8ClampedArray,\n  width: number,\n  height: number,\n  componentX: number,\n  componentY: number\n): string => {\n  if (componentX < 1 || componentX > 9 || componentY < 1 || componentY > 9) {\n    throw new ValidationError(\"BlurHash must have between 1 and 9 components\");\n  }\n  if (width * height * 4 !== pixels.length) {\n    throw new ValidationError(\"Width and height must match the pixels array\");\n  }\n\n  let factors: Array<[number, number, number]> = [];\n  for (let y = 0; y < componentY; y++) {\n    for (let x = 0; x < componentX; x++) {\n      const normalisation = x == 0 && y == 0 ? 1 : 2;\n      const factor = multiplyBasisFunction(\n        pixels,\n        width,\n        height,\n        (i: number, j: number) =>\n          normalisation *\n          Math.cos((Math.PI * x * i) / width) *\n          Math.cos((Math.PI * y * j) / height)\n      );\n      factors.push(factor);\n    }\n  }\n\n  const dc = factors[0];\n  const ac = factors.slice(1);\n\n  let hash = \"\";\n\n  let sizeFlag = componentX - 1 + (componentY - 1) * 9;\n  hash += encode83(sizeFlag, 1);\n\n  let maximumValue: number;\n  if (ac.length > 0) {\n    let actualMaximumValue = Math.max(...ac.map((val) => Math.max(...val)));\n    let quantisedMaximumValue = Math.floor(\n      Math.max(0, Math.min(82, Math.floor(actualMaximumValue * 166 - 0.5)))\n    );\n    maximumValue = (quantisedMaximumValue + 1) / 166;\n    hash += encode83(quantisedMaximumValue, 1);\n  } else {\n    maximumValue = 1;\n    hash += encode83(0, 1);\n  }\n\n  hash += encode83(encodeDC(dc), 4);\n\n  ac.forEach((factor) => {\n    hash += encode83(encodeAC(factor, maximumValue), 2);\n  });\n\n  return hash;\n};\n\nexport default encode;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { encode } from \"blurhash\";\n\nimport { type WorkerPayload } from \"./worker\";\n\nconst ctx: Worker = self as any;\n\nexport interface Request {\n    imageData: ImageData;\n}\n\nexport interface Response {\n    blurhash: string;\n}\n\nctx.addEventListener(\"message\", (event: MessageEvent<Request & WorkerPayload>): void => {\n    const { seq, imageData } = event.data;\n    const blurhash = encode(\n        imageData.data,\n        imageData.width,\n        imageData.height,\n        // use 4 components on the longer dimension, if square then both\n        imageData.width >= imageData.height ? 4 : 3,\n        imageData.height >= imageData.width ? 4 : 3,\n    );\n\n    ctx.postMessage({ seq, blurhash });\n});\n"],"names":["__webpack_require__","oldGetScript","u","oldLoadScript","e","queryMap","countMap","chunkId","hasOwnProperty","catch","error","retries","realSrc","message","request","Promise","resolve","setTimeout","cacheBust","Date","now","q","p","t","r","n","l","Math","floor","pow","f","h","max","min","trunc","M","F","abs","d","Error","constructor","super","this","name","D","m","b","g","c","s","o","a","i","S","length","y","B","R","cos","PI","push","slice","map","$","forEach","H","ctx","self","addEventListener","event","seq","imageData","data","blurhash","encode","width","height","postMessage"],"sourceRoot":""}